본문 바로가기

Domain/운영체제

[운영체제] 2. Process

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

  1. Trap: 소프트웨어 인터럽트로 프로그램 내부에서 시스템 콜의 호출이나 예외로 인해 발생한다.
  2. Interrupt: 하드웨어적인 사건의 알림이다.