CS/운영체제

CS/운영체제

[운영체제] Page Fault, Thrashing

Page Fault 가상메모리에서 물리 메모리에 올려두지 않은 페이지에 대한 요청이 들어와 발생하는 예외 페이지 폴트가 발생하면 운영 체제는 그 데이터를 메모리로 가져와서 마치 페이지 폴트가 전혀 발생하지 않은 것처럼 프로그램이 계속적으로 작동하게 해준다. 원인 Major Page Fault 요청한 페이지가 물리 메모리로부터 page-out 되어 보조기억장치의 가상 메모리에 저장되어있다면 해당 페이지를 다시 물리 메모리로 page-in 해야 하는데 이것을 major page fault라고 한다. major page fault는 Disk I/O를 발생시킨다. Minor Page Fault 요청한 페이지가 물리 메모리에는 로드되었지만 MMU에는 로드되어있지 않다고 표시된 경우 이를 Minor page fau..

CS/운영체제

[운영체제] 가상메모리(Virtual Memory), 페이지 교체(Page Replacement)

Virtual memory 프로세스 전체가 메모리에 올라와 있지 않아도 실행이 가능하도록 하는 기법 당장 실행에 필요한 부분만 주기억장치(RAM)에 저장하고, 나머지는 보조기억장치(HDD)에 두고 동작하도록 하는 방법. 프로세스의 일부 메모리만 올려서 전체 프로세스를 병렬적으로 돌리게 함. 물리적 메모리에 제약을 덜 받으며 더 많은 프로세스를 한꺼번에 돌릴 수 있다. 장점 프로그래밍 용이성 이용률, 처리율 상성 단점 메모리 디스크 간 이동량 증가 → 속도 떨어짐, 교체 공간 확보 필요 페이지 부재 시 처리 방법 필요 왜 필요한가 프로그램이 실행되려면 우선 주기억장치에 들어가야 하는데, 다음과 같이 크기 5의 프로그램이 실행을 위해 크기 10의 주기억장치로 들어갈 때는 아무런 문제가 발생하지 않는다. 하지..

CS/운영체제

blocking(블로킹) / non-blocking(논블로킹) / synchronous(동기) / asynchronous(비동기)

보통 블로킹&동기, 논블로킹&비동기가 쌍이다. 사실 블로킹과 동기, 논블로킹과 비동기는 비슷한 소리를 하고 있다. 단지 관점이 다르다. 블로킹/논블로킹은 제어권에 대해, 동기/비동기는 호출된 함수의 리턴에 주목한다. Blocking & Nonblocking 제어권이란 자신의 코드를 실행할 권리 정도로 보면 된다. Blocking Blocking은 A함수가 B함수를 호출할 때 제어권도 넘긴다. 제어권을 잃은 A함수는 자신의 코드를 실행하지 못하고, 반대로 B함수는 호출됨과 동시에 자신의 함수를 실행하게 된다. B함수가 신나게 자신의 코드를 다 실행하고 나면 리턴값과 함께 제어권을 다시 A함수로 넘겨준다. 그러면 그제서야 제어권이 생긴 A함수는 자신의 나머지 코드를 실행하게 된다. 이걸 함수 스택관점에서 보..

얌얌념념
'CS/운영체제' 카테고리의 글 목록