본문 바로가기

분류 전체보기8

PBFT 최대한 직관적으로 정리 - 1. 합의 알고리즘, 부분 동기 네트워크, Safety 및 Liveness PBFT 최대한 직관적으로 정리 - 1. 합의 알고리즘, 부분 동기 네트워크, Safety 및 Liveness 목차 0. 이 글을 읽기 전에 1. 배경 및 개요 1.1. 블록체인과 분산 합의 알고리즘 1.2. 부분 동기 네트워크 1.3. Safety 및 Liveness 1.4. PBFT 개요 2. 합의 알고리즘 (Normal Case) 3. 합의 알고리즘 (View Change) 4. 결론 5. 출처 위 내용들은 이번 포스트에서 전부 다루지 않고 점차적으로 작성해나가면서 글을 포스트할 예정이며, 내용 및 목차 구성은 글을 작성함에 따라 수정될 수 있습니다. 0. 이 글을 읽기 전에 이 글은 블록체인 관점에서 합의 알고리즘으로써의 PBFT에 대해 설명하는 글입니다. PBFT 논문에서 언급된 내용 전체를 설.. 2021. 2. 24.
Load balancing 알고리즘 비교&분석 github 주소: 아직 안올렸음 1 프로젝트 목표 그림 1 프로젝트 목표 그림과 같이 바리스타가 있고, 각 손님들이 주문을 한다. 그 주문들을 바리스타들에게 어떻게 효율적으로 분배할 것인가에 대한 것이 이번 프로젝트의 주제이다. 이러한 분배에 관한 알고리즘을 Load Balancing 알고리즘이라 한다. 이번 프로젝트에서 우리는 4개의 알고리즘을 실행하고 이를 그래픽적으로 보여주는 프로그램을 제작한다. 또 한 4개의 알고리즘을 비교하여 어느 알고리즘이 효율적인 알고리즘인지 분석한다. 효율적인 Load balancing 알고리즘이란, 바리스타, 주문과 조건이 있을 때, 같은 조건에 대해 전체 실행 시간이 가장 작은 알고리즘을 뜻한다. 뿐만 아니라, 각 손님이 기다리는 시간 까지도 고려해줘야 한다. 그러기.. 2016. 12. 19.
linux커널 2.4 context-switch 과정 (수정중) 정리 하나의 프로세스는 하나의 페이지 테이블을 갖는다. 하나의 프로세스는 하나의(자신만의) 주소공간을 갖는다. 그 프로세스의 스레드들은 이 주소공간을 공유한다. 즉, 프로세스가 소유하고 있는 메모리영역만 접근 가능하다. 페이지가 메모리에 있으면, 그 페이지에 대한 맵핑정보는 페이지테이블에 에 존재한다. 없으면, 없다.( 페이지 테이블의 valid bit로 이를 표현함). 그러니까 페이지 테이블은 현재 메인 메모리에 존재하는 페이지에 대한 정보들을 가지고 있는 것이다. 페이지폴트: 페이지 테이블에 해당 페이지에 대한 정보가 없다(invalid) = 메인 메모리에 해당 페이지에 존재하지 않는다. 이 때 디스크에서 해당 페이지를 찾아서 비어있는 프레임(free page)에 가져온다. 또는 페이지교체 알고리즘을.. 2016. 12. 19.
동시 파일 전송 프로그램 만들기(소켓 프로그래밍) 동시 파일 전송 프로그램 github 주소: https://github.com/HeesangJin/adv-sys-programming 1. 프로그램 설명 1) 1개의 서버와 20개의 클라이언트, 20개의 1MB 파일이 있다. 2) 각각의 클라이언트는 1MB 파일을 한 줄씩 읽어 서버에게 전송한다. 3) 서버는 이 파일들을 전송받음과 동시에 20개의 클라이언트에게 전송해준다. 4) 모든 클라이언트는 이 파일들을 각각 하나의 파일들로 저장한다. 5) 결과적으로 20개의 20MB 파일이 생성된다. 2. 프로그램 동작 흐름 쉬운 설명을 위해 클라이언트, 파일의 수는 3개로 가정한다. A. 1개의 서버와 3개의 클라이언트 3개의 1MB 파일 3개가 있다. B. 각 클라이언트는 파일의 일부분을 서버로 보낸다. C... 2016. 12. 18.