본문 바로가기

OS6

[OS] 페이징 컴퓨터가 가지고 있는 메모리의 자원은 매우 한정적이지만 실행해야할 프로세스와 불러들어야할 정보들은 많다. 그래서 주 기억 장치에서는 자주 페이징 교체가 일어난다. 이번 포스트는 페이징 교체 알고리즘이 아닌, 페이징 자체가 어떻게 동작하는지 알아보려고 한다. CPU와 기억 장치 사이에는 MMU(Memory Management Unit)이라고 하는 장치가 있다. 이 장치 안에 존재하는 재배치 레지스터를 이용해 cpu가 요청하는 논리적 주소를 물리적 주소로 전환시켜준다. 이렇게 논리적 메모리 주소를 쓰게 된다면 이점이 생기게 되는데 그 중 하나가 '동적 적재'가 가능하다는 점이다. 이러한 동적 적재는 "프로그램 실행에 필요한 부분만 적재하는 것"이라는 의미를 가지고 있다. 프로그램 내에서 모든 부분이 다 사용.. 2020. 10. 27.
[OS] 페이지 관리 방법 주 기억 장치와 캐시는 굉장히 작은 메모리로 운영된다. 왜냐면 굉장히 비싸기 때문인데, 이 때문에 속도가 느린 보조기억장치에서 주 기억장치로 메모리를 불러와서 데이터를 처리한다. 이 때, 램을 같은 크기의 블록으로 나누어 관리하는데 이 블록을 페이지라고 한다. 어떤 프로세스가 데이터 접근을 필요로 할 때, 만약 필요로 하는 데이터가 주기억장치에 존재할 경우 그것을 cache hit라고 하며, 없을 경우 cache miss라고 한다. 캐시에 데이터가 존재하면 따로 보조기억장치로부터 데이터를 가져올 필요가 없으므로 처리속도가 단축된다. 만약 데이터가 없을 경우 보조기억장치에서 데이터를 가져와야하므로, 처리속도가 cache hit보다 느릴 수 밖에 없다. 또한 이러한 페이지들은 주기억장치에서 계속 있을수만은 .. 2020. 9. 27.
[OS] CPU 스케쥴링 CPU 스케쥴링은 무엇일까? CPU 스케쥴링은 한정된 자원으로 최대한의 효율을 내기 위해 사용하는 기법이다. 대부분의 경우 I/O 작업이나, 입력 장치, 출력 장치의 작업 수행이 이루어질 때, CPU는 아이들 상태에 놓이게 된다. 스케쥴링은 낭비되는 자원을 좀 더 효율적으로 사용하기 위해 쓰는 방법. 또한 단일 CPU의 경우, 한 가지의 일을 한번에 밖에 처리하지 못하지만 우리는 노래도 들으면서 웹서핑까지 동시에 할 수 있다. 이런일이 가능한 것은, 스케쥴링 덕분이다. 현재의 운영체제들은 이러한 이론을 기반으로 프로세스 스케줄링(Process Scheduling)을 적용하고 있다. 스케줄링 상태 스케줄링은 크게 5가지의 상태를 가진다. 생성(create) : 프로세스가 생성되는 중이다. 실행(runnin.. 2020. 9. 18.
[OS] 데드락 - Deadlock 데드락 하면 교통체증을 떠올린다. 서로의 차들은 먼저 가고 싶어하고, 그럴수록 차로는 지체돼, 아무것도 할 수 없게 되는 것이다. 정확히 말하면, 그림과 같이 4거리에서 각자의 교통체증이 해결될 때까지 기다리기만 하는 상태이다. 더 자세한 정의를 보면, 두 개 이상의 작업이 서로 상대방의 작업이 끝나기 만을 기다리고 있기 때문에 결과적으로 아무것도 완료되지 못하는 상태를 가리킨다. 결국 작업은 자동차고, 도로는 리소스, 그리고 이러한 교통 체증이 교착 상태, 즉 데드락(Deadlock)이 되는 것이다. 작업을 수행해야 하는 프로세스가 계속 대기 상태에만 머무는 것이다. 이러한 데드락 문제는 다중 프로세스 환경에서 발생하며 최대한 예방을 하더라도 교착 상태는 발생하게 된다. 교착 상태에 운영체제가 포함 되.. 2020. 9. 18.