OS

[OS] Process (프로세스)

집한구석 2021. 7. 11. 22:27
728x90

Process 정의

  • 실행중인 프로그램을 뜻함
  • 주기억장치에 저장된 프로그램
  • 작업 스케줄러에 의해서 생성되어 주기억장치에 진입함을 뜻함
  • 프로세스 내부에는 최소 하나의 스레드를 가지고 있으며, 실제로  스레드 단위로 스케쥴링을 함

Process 메모리 구조

https://commons.wikimedia.org/wiki/File:Process-in-memory.jpg 참고

  • Heap : 동적할당을 위한 메모리 영역
  • Data : 전역변수, static 변수 할당
  • Stack : 지역변수, 함수 호출시 전달되는 파라미터를 위한 메모리 영역

Process 상태

  • 신규 (new)
  • 실행 (Run) : 준비 상태에 있는 프로세스가 CPU를 얻어 실제 작업을 수행하는 상태
  • 준비 (Ready) :하나의 프로세스가 중앙처리장치를 사용할 수 잇는 상태
  • 대기 (Waiting) : 프로세스가 어떤 사건이 일어나기를 기다리는 상태
  • 완료 (Termnated) : 프로세스가 CPU를 할당 받아 주어진 시간내에 완전히 수행을 종료한 상태

프로세스는 5가지 상태를 가지고 있으며, 각각의 상태가 다른상태로 변경됨


Process 상태 전이

  • 디스패치 (준비상태 -> 실행상태) : 준비상태의 프로세스들 중에서 우선순위가 가장 높은 프로세스를 선정하여 CPU를 할당 
  • 할당시간 초과 (실행상태 -> 준비상태) : 지정된 CPU의 할당시간을 모두 사용한 프로세스는 다른 프로세스를 위해 CPU가 선정되고 그 프로세스는 준비상태로 전환
  • 대기 (실행상태 -> 대기상태) : 실행중인 프로세스가 입출력명령을 만나면 인터럽트가 발생하여 CPU를 반환하고, 대기상태로 전환
  • 깨움 (대기상태 -> 준비상태) : 입출력 완료를 기다리다가 입출력 완료 신호과 들어오면, 대기중인 프로세스는 준비상태로 전환

'OS' 카테고리의 다른 글

[OS] Thread Safe  (0) 2021.11.06
[OS] 데드락  (0) 2021.11.06
[OS] Thread (쓰레드)  (0) 2021.10.03
[OS] 뮤텍스 / 세마포어  (0) 2021.06.13
[OS] PCB(Process Control Block)  (0) 2021.06.12