PintOS

· PintOS
대망의 마지막 핀토스 발표주제는 Swap Out 시 차용할 수 있는 페이지 교체 알고리즘의 정책들을 소개하고 비교해보는 것이었다. 우선 Memory의 Frame을 왜 Swap Out하며, 애초에 Swap Out이란 무엇일까?이 부분부터 짚고 넘어가자 Swap Out?Swap Out은 우리가 실제 물리메모리를 Frame 단위로 관리하고 이를 메인 메모리인 RAM에 적재하는 과정에서 더 이상 RAM에 적재할 수 없을때(용량이 다 차서) Page Fault를 일으키며, 발생하게된다. 그래서 페이지 교체가 어떻게 일어난다는건데! 🧐그걸 위해 희생자 Frame을 만든다. 이때 어떠한 정책을 선택하느냐에 따라 Swap Out의 효율성이 갈리게 된다.그래서 지금부터 어떠한 정책이 존재하고 각 이점을 설명하도록하겠다..
· PintOS
이번 핀토스 프로젝트 3에서는 페이지 폴트를 다뤄야 하는 상황이 많았는데, 해당 Case들을 전부 다뤄보고자 한다. 크게 Fault가 발생하는 경우는 3가지가 존재한다. 프로세스가 요청한 가상 메모리 페이지가 물리 메모리에 적재되지 않았을 경우 발생하는 페이지 폴트쓰기 권한이 없는 페이지(읽기 전용, read-only)에 write 작업을 수행할 경우유효하지않은 주소에 대한 접근 요청인 경우 각각의 Case들을 살펴보도록하자1. Demand Paging요구 페이징에는 각각 3가지의 케이스에서 Page Fault가 발생할 수 있다. 1. LazyLoading2. Swap Out3. Stack Overflow Lazy Loading lazy loading 방식에서는 프로그램이 처음 실행될 때, 운영체제가 ..
· PintOS
Pintos에서 **단위(Unit)** Test를 진행하기 위해서 아래와 같은 커맨드를 한번은 터미널창에 입력해봤을 것이다.pintos --fs-disk=10 -p tests/userprog/args-single:args-single -- -q -f run 'args-single onearg'우리가 이 커맨드를 실행하면 과연 Pintos는 어떻게 이를 알아 듣고 실행을 하게되는 것일까?우리 10팀은 이러한 부분에 근본적인 의문을 가지게 되었다.그렇기에 크게 목차는 아래와 같이 나누어지게 된다.목차커맨드 입력Pintos 가상화PIntos의 시작점프로세스 초기 생성프로세스의 실행사용자 모드 변경System Call 호출 시점System CallSystem Call Handler1. 커맨드 입력 2. Pint..
· PintOS
목차모니터의 구조Semaphore vs Monitor모니터는 언제 사용되어야 하는가모니터의 구성요소TestCase 톺아보기LanguageJava에서의 MonitorQ & A모니터의 구조Semaphore vs Monitor모니터의 경우 직접적으로 signal과 wait 을 사용하지않고 요청이된다.모니터는 요청받은 작업을 모니터 큐(Entry_queue, Waiting_queue)에 저장한 후 순서대로 처리하고 그 결과만 해당 프로세스에 알려준다.모니터는 언제 사용되어야 하는가?한번에 하나의 스레드만 순차적으로 처리하여야할 때 (Mutex의 성질)➡️ Race Condition, DeadLock 방지임계구역(Critical Section)에서 여러 스레드와 협업이 필요할 때특정 조건 하에서 스레드의 동기화와..
LEE티씨
'PintOS' 카테고리의 글 목록