Computer Science/운영체제

[OS] 운영체제 5.1 Process

minjiwoo 2023. 5. 22. 00:09
728x90

Process

프로세스는 실행중인 프로그램이다 

 

프로세스의 Context

프로세스에서는 문맥이 중요하다.  CPU 수행 상태를 나타낸다. 

  • 하드웨어 문맥 : register가 현재 어떤 값을 가지고 있었는지, Program Counter 값 
  • 프로세스의 주소 공간 : code, data, stack에 어떤 내용이 들어있는지 
  • 프로세스 관련 커널 자료 구조 : PCB (Process Control Block), Kernel stack 

이러한 프로세스 정보를 가지고 있으면 프로세스가 어떤 상태에 있는지 알 수 있다. 컴퓨터 시스템에서는 multi-tasking이 이루어진다. 즉 , 프로세스들이 번갈아 가면서 실행된다. 따라서, 현재 프로세스의 문맥을 알지 못하면 다음번에 CPU 자원을 사용할 때 실행할 수 없을 것이다. 

 

프로세스의 상태 

  • Running : CPU를 잡고 명령어를 수행중인 상태 
  • Ready : CPU를 기다리는 상태. 다른 모든 준비는 끝난 상태이다. 
  • Blocked (Wait, Sleep) : CPU를 주어도 당장 명령어를 수행할 수 없는 상태. Process 자신이 요청한 event가 즉시 만족되지 않아서 기다리는 상태 ex) I/O 작업이 오래 걸리는 경우 , 디스크에서 file을 읽어와야 하는 경우 
  • New : 프로세스가 생성중인 상태 
  • Terminated : 수행이 끝난 상태 

process 가 ready 상태가 되었을 때 최소한의 memory를 가지고 있어야 하므로 memory 상에 올라와 있는 상태이다. CPU를 얻게 되면 running 상태가 된다. 

 

728x90