키워드

Time-sharing system

Timer Interrupt

Timer sleep

Synchronization

Time-sharing system

여러 프로세스가 동시에 실행되는 환경.

Context Switching

하나의 사용자 프로세스로부터 다른 사용자 프로세스로 CPU의 제어권이 이양되는 과정이다. 커널에 의해 일어난다. 이전 프로세스 상태(문맥)을 보관하고 새로운 프로세스의 문맥을 적재하는 작업이다.

<aside> 💡 커널은 어느 별도의 프로세스가 아니다. 단지 시스템 콜과 같은 예외 상황에 실행되는 메모리 상단에 위치한 각각의 프로세스의 일부분이다.

</aside>

제어 흐름이 프로세스 A로부터 B로 이양되었다 다시 A로 돌아왔다.

제어 흐름이 프로세스 A로부터 B로 이양되었다 다시 A로 돌아왔다.

Context 문맥

시분할 시스템 환경에서는 각각의 프로세스가 타이머 인터럽트에 의해 짧은 시간동안 CPU를 사용한 후 빼앗겼다가 다시 획득하는 구조로 이루어진다. 따라서 다시 CPU를 획득해 명령을 수행할 때 직전 수행 시점의 상태를 알아야 한다. 이 때 필요한 정보가 프로세스의 문맥이다.

프로세스의 문맥은 크게 3가지로 구분된다.

Scheduler

시분열 시스템에서 운영체제는 CPU와 같은 컴퓨터 자원들을 적절히 프로세스마다 배분함으로써 효율적으로 많은 프로세스들을 동시에 실행시킬 수 있다. 이런 역할을 수행하는 프로세스(소프트웨어)를 스케줄러라고 한다.

Process scheduling Queues

운영체제는 모든 PCB를 Process Scheduling Queue들에 보관한다. 각각의 프로세스 상태에 따라 다른 종류의 큐들에 보관하는데, 프로세스가 한 상태에서 다른 상태로 넘어가면 기존의 큐와의 연결을 끊고 다음 상태의 큐로 넘어간다.