Skip to content

Latest commit

 

History

History
93 lines (45 loc) · 2.24 KB

3_2_프로세스_관리.md

File metadata and controls

93 lines (45 loc) · 2.24 KB

프로세스 관리 - (2)

프로세스 개념, 상태, 문맥

프로세스의 개념

프로세스 context

  • CPU 수행 상태를 나타내는 하드웨어 문맥 (Program Counter, Register)
    • PC : 어디를 실행하고 있는가, Register : 현재 레지스터에 어떤 값이 저장되어 있는가
  • 프로세스의 주소 공간(코드, 데이터, 스택) : 프로세스 현재 상태
  • 프로세스 관련 커널 자료 구조(PCB, 커널 스택) :

프로세스의 상태

Running

  • CPU에서 실행되고 있는 프로세스

Ready

  • CPU를 기다리는 상태

Blocked(Wait, Sleep)

  • CPU를 할당해도 당장 명령어를 수행할 수 없는 상태
  • 프로세스가 요청한 작업/event(I/O)가 끝날때까지 기다리고 있는 상태
  • ex) 디스크에서 파일을 읽어와야 하는 경우

New

  • 프로세스 생성 중

Terminated

  • 수행중이 아닌 상태

프로세스 상태도


PCB(Process Control Block)

운영체제가 각 프로세스를 관리하기 위해 프로세스당 유지하는 정보

  1. OS가 관리상 사용하는 정보 : 프로세스 상태, 프로세스 ID, 우선순위
  2. CPU 수행 관련 하드웨어 값 : PC, Register
  3. 메모리 관련 : 코드, 데이터, 스택의 위치정보
  4. 파일 관련 : Open File Descriptor ...

Context Switch

  • CPU를 한 프로세스 A에서 다른 프로세스 B로 넘겨주는 과정
  • 현재 프로세스 상태를 A의 PCB에 저장 --> 새 프로세스 상태를 B의 PCB에서 읽어옴

시스템콜/인터럽트 발생시 반드시 Context Switch가 일어나는 것은 아님

(1) 사용자 프로세스 A --> 커널 모드 --> 사용자 프로세스 A : Context Switch X

(2) 사용자 프로세스 A --> 커널 모드 --> 사용자 프로세스 B : Context Switch O


프로세스를 스케줄링하기 위한 큐

  • Job Queue : 현재 시스템 내에 있는 모든 프로세스의 집합
  • Ready Queue : 현재 메모리 내에 있으면서 CPU를 잡아서 실행되기를 기다리는 프로세스의 집합
  • Device Queue : I/O 디바이스의 어치를 기다리는 프로세스의 집합

프로세스는 각 큐를 오가며 수행된다