본문 바로가기

OS2

[OS] 페이징 컴퓨터가 가지고 있는 메모리의 자원은 매우 한정적이지만 실행해야할 프로세스와 불러들어야할 정보들은 많다. 그래서 주 기억 장치에서는 자주 페이징 교체가 일어난다. 이번 포스트는 페이징 교체 알고리즘이 아닌, 페이징 자체가 어떻게 동작하는지 알아보려고 한다. CPU와 기억 장치 사이에는 MMU(Memory Management Unit)이라고 하는 장치가 있다. 이 장치 안에 존재하는 재배치 레지스터를 이용해 cpu가 요청하는 논리적 주소를 물리적 주소로 전환시켜준다. 이렇게 논리적 메모리 주소를 쓰게 된다면 이점이 생기게 되는데 그 중 하나가 '동적 적재'가 가능하다는 점이다. 이러한 동적 적재는 "프로그램 실행에 필요한 부분만 적재하는 것"이라는 의미를 가지고 있다. 프로그램 내에서 모든 부분이 다 사용.. 2020. 10. 27.
[OS] 데드락 - Deadlock 데드락 하면 교통체증을 떠올린다. 서로의 차들은 먼저 가고 싶어하고, 그럴수록 차로는 지체돼, 아무것도 할 수 없게 되는 것이다. 정확히 말하면, 그림과 같이 4거리에서 각자의 교통체증이 해결될 때까지 기다리기만 하는 상태이다. 더 자세한 정의를 보면, 두 개 이상의 작업이 서로 상대방의 작업이 끝나기 만을 기다리고 있기 때문에 결과적으로 아무것도 완료되지 못하는 상태를 가리킨다. 결국 작업은 자동차고, 도로는 리소스, 그리고 이러한 교통 체증이 교착 상태, 즉 데드락(Deadlock)이 되는 것이다. 작업을 수행해야 하는 프로세스가 계속 대기 상태에만 머무는 것이다. 이러한 데드락 문제는 다중 프로세스 환경에서 발생하며 최대한 예방을 하더라도 교착 상태는 발생하게 된다. 교착 상태에 운영체제가 포함 되.. 2020. 9. 18.