희곤의 블로그

운영체제 20. 가상메모리가 무엇인가

가상 메모리가 무엇인가? 어차피 프로세스를 돌릴 때 모든 페이지가 필요하지 않고, 페이지의 일부만 있어도 당장에는 돌릴 수 있다. 따라서 프로세스의 페이지를 일부만 올리면 더 많은 프로세스를 한번에 돌릴 수 있지 않을까? 페이지 적재 여부를 vaild-invaild bit로 표시한다. 적재되지 않은 페이지는 디스크에 저장해둔다. 그렇다면 프로세스...

운영체제 19. 논리 주소와 물리 주소를 어떻게 연결할까

메모리 경영 논리 주소를 물리 주소와 언제 대응시킬까? 주소는 논리 주소와 물리 주소가 존재한다. 논리 주소는 한 프로그램에서만 사용하는 가상의 주소다. 물리 주소는 실제 램의 주소를 뜻한다. 논리 주소는 물리 주소와 대응되어야 한다. 언제 대응시켜야 할까? 프로그램은 컴파일되어 어셈블리어로 변환되고, 어셈블리어는 다시 컴파일되어 기계어로 변환된다....

운영체제 17. 동기화를 어떻게 구현할까 - Mutex, Semaphore

동기화가 무엇인가? 동기화(Synchronization)란, 여러 프로세스가 공유 영역에 동시에 접근할 때 한명씩 접근하도록 만드는 방법이다. 한명씩 접근하는 것을 순서화(Serialize)한다고 한다. 왜 동기화가 필요한가? Race Condition을 방지하기 위해서다. 공유된 자료구조에 여러 프로세스가 동시에 Write하면 의도한 동작이 아닌 ...

운영체제 15. 상호작용하는 프로세스에서 발생하는 문제

상호작용하는 프로세스 사이에 발생할 수 있는 문제가 무엇인가? 서로 정보를 주고받거나, 공유 메모리를 사용하는 프로세스를 상호작용 프로세스라고 한다. 상호작용 프로세스 사이에는 네가지 이슈가 존재한다. determinacy (결정성) : 프로세스들이 실행 속도에 상관 없이 항상 같은 초기값을 주면, 같은 결과를 내는 것. mutual exc...

운영체제 14. 실시간 스케쥴링이 무엇일까

실시간 스케쥴링이 언제 필요한가? 미사일 제어 시스템과 같이 계산 시간을 엄격하게 지켜야 하는 시스템에서 실시간 스케쥴링이 필요하다. 그러나 일반 OS에서도 적당한 실시간 스케쥴링이 필요할 때도 있다. 따라서 실시간 시스템을 연성 실시간 시스템, 경성 실시간 시스템으로 분류한다. 연성 실시간 시스템(Soft real-time system)은 실시간 ...