Process
프로세스는 연속적으로 실행중인 프로그램으로 스케쥴링의 대상이다.
PCB(Process Control Block): 프로세스를 관리하기 위한 자료구조로 pid, CPU register 등 다양한 정보가 있다.
State and Transition
Suspend & Resume
- Suspend: 시스템의 메모리가 부족하여 ready, waiting 상태의 프로세스 중 사용이 적은 프로세스를 Disk의 swap 공간으로 내리는 작업.
- Resume: 시스템의 메모리 공간이 여유로워져 suspend로 인해 Disk의 swap공간으로 내려갔었던 프로세스를 메모리로 다시 올리는 작업.
Mechanism: Limited Direct Execution
Problem #1: Restricted Operation
대부분의 명령어는 직접 수행하지만 일부 명령어는 특권을 가진 모드에서 명령어를 간접적으로 수행하는 방식이다. CPU, Memory의 자원 할당, Disk로의 접근 작업들은 특권 모드에서 간접적으로 수행한다.
Problem #2: Switching Between Process
프로세스간의 교환 작업인 context switch를 위해서는 아래와 같은 방법을 통해 가능하다.
1. Cooperative Approach: 시스템 콜, 예외 발생
예시. 프로세스1이 시스템 콜을 수행하면 trap이 발생하여 OS에게 제어가 넘어가 스케쥴링 기회가 생긴다.
※문제점: 프로세스가 무한루프에 빠진 뒤 trap이 발생하지 않으면 시스템 전체가 마비된다.
2. Non-copperative Approach: Timer interrupt
시스템 내부에 존재하는 타이머를 통해 일정 주기마다 인터럽트를 발생시켜 OS에 제어가 넘어간다.
Trap & Interrupt
- Trap: 소프트웨어 인터럽트로 프로그램 내부에서 시스템 콜의 호출이나 예외로 인해 발생한다.
- Interrupt: 하드웨어적인 사건의 알림이다.
'Domain > 운영체제' 카테고리의 다른 글
[운영체제] 5. Concurrency: Semaphores and Deadlock2 (0) | 2020.07.08 |
---|---|
[운영체제] 5. Concurrency: Semaphores and Deadlock1 (2) | 2020.07.08 |
[운영체제] 4. Concurrency: Thread and Lock (0) | 2020.06.28 |
[운영체제] 3. Scheduling (0) | 2020.06.28 |
[운영체제] 1. Introduction (0) | 2020.06.28 |