[OS] 주소 공간의 동적 재배치
·
OS
사람들이 컴퓨터를 더 많이 사용하길 원하면서 시분할, 대화식 이용의 개념이 등장하였다.시분할을 구현하는 가장 고전적인 방법은 프로세스를 짧은 시간동안 실행시키고, 중단한 후 중단 시점의 모든 상태를 디스크에 저장하고, 다른 프로세스를 또 탑재해서 실행시키는 것을 반복하는 방법이 있다. 하지만 알다시피 디스크 입출력은 엄청나게 느리기 때문에 이 방식은 비효율적이였다. 따라서 프로세스 전환 시 프로세스를 메모리에 그대로 유지하면서 운영체제가 시분할을 할 수 있도록 하는 개념이 등장하였다.말은 좋지만, 결국 여러 프로그램이 메모리에 동시에 존재하려면 한 프로세스의 메모리를 다른 프로세스의 메모리로부터 보호해야하는 문제가 생겼다.그런 위험에 대비해서 운영체제가 사용하는 메모리 개념이 주소 공간이다. 주소 공간은..
[OS] IPC
·
OS
IPC는 프로세스간 소통하는 방법이다. 프로세스는 independent 이거나 cooperating한다.independent한 프로세스의 경우 다른 프로세스에 영향을 주지 않지만,cooperating이 필요한 프로세스의 경우, 다른 프로세스에 영향을 주고받을 수 있다. 프로세스간 소통이라는게 말은 쉽지만, 일반적으로 프로세스에 할당된 메모리 공간은 해당 프로세스에 고유하기 때문에다른 프로세스가 접근할 수 없다. 이를 문제를 해결하는 방법이 IPC이다. IPC의 두 가지 모델공유 메모리 (Shared Memory Model)프로세스끼리 공유할 수 있는 메모리 공간을 생성하고 이 메모리를 통해 정보를 교환한다.(조금더 자세히 말하면, 어떤 프로세스가 공유하고싶은 실제 메모리 공간을 참조하는 메모리 공간을 생..
[OS] 스케줄링
·
OS
CPU 스케줄링에 대해 알아보기 전,지금의 CPU 스케줄링이 있기 전까지 어떤 방식의 스케줄링이 있었고, 결국에 어떤 평가 항목이 지금의 스케줄링을 만들었는지 알아보았다. 먼저 시스템에 실행중인 프로세스에 대해 가장 이상적인 가정을 하고 가정을 하나씩 제거하면서 스케줄링에 대한 역사를 알아보겠다.가정모든 작업은 같은 시간동안 시행모든 작업은 동시에 도착각 작업은 시작되면 완료될 때 까지 수행모든 작업은 CPU만 사용 (입출력 x)각 작업의 실행시간은 사전에 알려져있음 스케줄링 평가항목반환 시간이라는 개념을 도입한다. 반환시간은 작업이 완료된 시간 ~ 작업이 시스템에 도착한 시간의 차이다.공정성이라는 개념은, 성능과는 상충되는 개념으로 성능 극대화를 위해 몇몇 작업을 중지시키면 공정성이 악화된다. 선입선출..
[OS] 추첨 스케줄링 (비례배분)
·
OS
이번에는 비례배분 스케줄링에 대해 공부하였다. 비례 배분의 개념은 간단한데, 반환 시간이나 응답 시간을 최적화하는 대신 스케줄러가 각 작업에게 CPU의 일정 비율을 보장하는 것이 목적이다. 비례 배분 스케줄링의 좋은 예가 추첨 스케줄링으로 알려져있다.이 스케줄링의 간단한 아이디어는 다음 실행될 프로세스를 추첨을 통해 결정하고, 더 자주 수행되야하는 프로세스에게 당첨기회를 더 많이 주는 것이다. 여기서의 핵심 질문은, 어떻게 CPU를 정해진 비율로 배분할 수 있는가? 와 그렇게 하기 위한 중요한 기법은 무엇인가? 이다. 기본 개념추첨권이라는 기본적 개념이 추첨 스케줄링의 근간을 이룬다. 추첨권은 받아야할 자원의 몫을 나타내는데 사용되며, 프로세스가 소유한 티켓의 개수와 전체 티켓의 비율이 자신의 몫이 될 ..
[OS] MLFQ
·
OS
스케줄링 기법 중 멀티 레벨 피드백 큐 (MLFQ) 스케줄링 기법에 대해 공부하였다.MLFQ가 해결하고자 하는 기본적인 문제는 다음과 같다.- 짧은 작업을 먼저 실행시켜 반환 시간을 최적화- 응답이 빠른 시스템이라는 느낌을 주기 위한 응답 시간 최적화운영체제가 프로세스에 대한 정보를 가지고 있지 않은데 어떻게 이러한 스케줄러를 만들 수 있을까 ?MLFQ는 여러 개의 큐로 구성되며, 각각 다른 우선순위가 배정된다. 실행 준비가 된 프로세스는 이중 하나의 큐에 존재한다.한 큐에는 둘 이상의 작업이 존재할 수 있으며, 이들은 모두 같은 우선순위를 가진다.이 작업들 사이에는 타임슬라이싱 스케줄링이 사용된다.MLFQ 스케줄링의 핵심은 작업의 우선순위를 정하는 방식이며, 작업의 특성에 따라 동적으로 우선순위를 부여..