본문 바로가기
CS

[OS] 프로세스란 무엇일까?

by wahu 2019. 2. 13.

시분할 시스템

  • 다중 프로그래밍을 기본
  • 여러 개의 작업들이 메모리에 있고 CPU는 이들 사이를 오가며 실행
 
프로세스란?
  • 수행 중인 프로그램(A program in execution)
    • 프로그램, 레지스터, 스택 등의 데이터와, PC 값 등으로 표현되어 커널에 등록되어 있는 것을 의미
    • 실행을 위해 필요한 환경을 시스템으로 부여받은 상태
 
프로세스 제어 블록이란?
  • PCB(Process Control Block)
  • 프로세스에 대한 정보를 담고 있는 테이블 모양의 자료구조
 
프로세스의 상태(Process State)와 변화
  • 생성(Created) 상태
  • 준비(Ready) 상태
    • CPU만 주어지면 실행할 준비가 되어 있는 상태
    • 준비 상태의 프로세스들의 실행 순서를 결정해 주는 것을 CPU 스케쥴링이라고 한다.
    • 준비 상태에 있는 프로세스는 준비 큐 또는 리스트에 들어간다.
  • 실행(Running) 상태
    • CPU를 할당 받아 실행중인 상태
    • 다중처리
      • 여러개의 CPU가 각각 프로세스를 하나씩 실행시키는 것
  • 대기(Blocked) 상태
    • 입출력 처리를 요청하거나, 바로 확보될 수 없는 자원을 요청하면 CPU를 양도하고 기다리는 상태
    • 요청한 일이 완료되면 실행 상태를 위해 준비 상태로 바뀌며 준비 큐에 들어간다,
      • 입출력 완료는 인터럽트를 통해 알 수 있다
  • 보류 준비(Suspended Ready) 상태
  • 보류 대기(Suspended Block) 상태
  • 종료(Terminated) 상태
    • 프로세스가 종료될 때 잠시 거치는 상태
    • 할당되었던 모든 자원 회수
    • PCB는 커널에 남아 있음
  • 운영체제가 프로세스의 흔적들을 최정 정리 후 PCB를 삭제하면 프로세스가 완전히 사라지게 된다.
  • 활성 상태
    • 준비. 실행, 대기 상태
    • 실행될 프로그램과 데이터 등을 위해 메모리 공간의 일정량을 부여 받음
    • 메모리가 부족하거나 다른 이유에 의해서 활성 상태의 프로세스로부터 메모리를 회수하는 경우가 있는데 이때를 보류(Suspension) 시킨다라고 한다.
 
출처. 누워서 보는 운영체제 이야기

 

'CS' 카테고리의 다른 글

[OS] 스케쥴링  (0) 2020.03.03
[OS] Thread 상태 제어  (0) 2020.03.03
[OS] 운영체제(OS)란?  (0) 2020.02.29
OS? Yes! 누워서 보는 운영체제 이야기  (0) 2019.02.13
[OS] 쓰레드(Thread)  (0) 2018.04.18

댓글