[운영체제] 프로세스 생성 과정

2022. 4. 13. 12:28코딩공부/ComputerScience

프로세스란?

CPU에 의해서 현재 실행되고 있는 프로그램

 

프로세스의 상태

Ready 상태
  • 프로세스가 처리기(CPU)를 사용하지 있지는 않지만 언제든 사용할 수 있는 상태
  • 프로세스가 처리기의 배정을 기다리고 있는 상태
  • 다른 프로세스 실행을 위해서 일시적으로 정지해 있는 상태
  • CPU에 의해 처리되기 위해 주기억 장치에 존재하는 상태
Run 상태
  • 프로세스가 CPU를 차지하고 있는 상태
  • 프로세스의 명령이 실행되고 있는 상태
Block, Wait, 보류 상태
  • 프로세스가 어떤 사건이 일어나기를 기다리고 있는 상태
  • 처리속도가 느린 I/O(입출력) 작업 중인 상태
  • 외부적인 사건이 생길 떄까지 실행할 수 없는 상태

 

프로세스 생성과정

  • 먼저 프로세스가 생성이 되려면 파일 시스템의 그 대상이 되는 exe파일이 있어야 한다. 이 exe파일의 Path를 OS에게 전달 해야한다.
  • OS는 실행 가능한 파일들의 코드를 읽어 들인다. -> 즉 Memory Context의 한 부분인 Code 세그먼트로 exe 파일의 코드들을 읽어 들인다.
  • 또 exe파일에는 전역 변수의 선언과 정보 들이 있다. 이 정보들을 기반으로 Data 세그먼트에 알맞게 영역을 잡아준다.
  • 이렇게 Code 세그먼트와, Data 세그먼트로 exe파일들을 불러들이는이 작업을 프로그램을 로드 한다고 말한다.
  • 스택 세그먼트와, 힙 세그먼트는 아직 아무것도 없으므로 초기화만 시킨다.
  • 그리고 그 프로세스의 정보를 담은 PCB(Process control block)를 Malloc 해서 필요한 정보를 채워 넣는다.
  • 이렇게 생성돤 PCB를 레디큐에 장착시킨다.