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

서민지·2022년 2월 1일
0

아는만큼 보인다

목록 보기
2/9

1. 프로세스의 개념

파일로 작성 된 프로그램은 로더(Loader)에 의해 주기억 장치에 상주되어 CPU에 의해서 처리된다. 이때 주기억 장치에 상주된 프로그램이 CPU에 의해서 처리되는 상태를 프로세스라고 한다.

  • CPU에 의해서 현재 실행되고 있는 프로그램
  • PCB(Process Control Block, 프로세스 제어 블록)의 존재로서 명시되는 것
  • 프로세서가 할당되는 개체로서 디스패치(Dispatch)가 가능한 단위
  • 비동기적 행위를 일으키는 주체
  • CPU가 할당되는 실체
  • 운영체제가 관리하는 최소 단위의 작업(프로그램)
  • task란 용어와 함께 사용되며, 다양한 정의를 가짐
  • 프로그램과 달리 메모리에 주소 공간을 갖는 능동적인 객체


2. 프로세스의 상태

  1. 보조 기억 장치에 존재하는 A.exe가 사용자에 의해 실행된다.
  2. A.exe는 스풀(SPool)로 이동한다.
  3. 스풀에 있던 실팽 프로그램 파일이 Job Scheduler 에 의해서 주기억 장치로 로딩된다.
  4. 주기억 장치에 있는 A.exe는 준비(Ready)상태가 된다.
  5. A.exe가 실행(Run)상태가 된다.
  6. A.exe는 정해진 시간 할당량에 따라 다시 준비 상태가 된다.
  7. A.exe가 자체적인 입출력(I/O) 행위가 요구되면 대기(Block) 상태가 되고 채널에 의해 입출력이 행해진다.
  8. 입출력 수행이 끝나면 다시 준비 상태가 된다(Wake up)
  9. 보류 상태에서 준비가 안 된 입출력이 요구되면 잠시 중단되어서 중단된 봉쇄 상태가 된다.
  10. 보류 상태에서 실행 상태로 전이될 수 없으며 준비 상태에서 대기 상태로 전이될 수도 없다.

하나의 프로세스는 다음과 같이 3가지 주요 상태로 존재하게 된다. 실행(CPU사용)을 위해 준비(Ready)하고 있는 상태에 있다가 실행(Run)되며, 실행 중에 있다가도 필요에 따라서 대기(Block)하고 있는 상태로 있게 된다.

준비(Ready)상태

  • 프로세스가 처리기(CPU)를 사용하지 있지는 않지만 언제든 사용할 수 있는 상태
  • 프로세스가 처리기의 배정을 기다리고 있는 상태
  • 다른 프로세스 실행을 위해서 일시적으로 정지해 있는 상태
  • CPU에 의해 처리되기 위해 주기억 장치에 존재하는 상태

실행(Run) 상태

  • 프로세스가 CPU를 차지하고 있는 상태
  • 프로세스의 명령이 실행되고 있는 상태

대기(Block, Wait, 보류) 상태

  • 프로세스가 어떤 사건이 일어나기를 기다리고 있는 상태
  • 처리속도가 느린 I/O(입출력) 작업 중인 상태
  • 외부적인 사건이 생길 떄까지 실행할 수 없는 상태

3. 프로세스 생성과정

  1. PCB가 생성되며 OS가 실행한 프로그램의 코드를 읽어들여 프로세스에 할당된 메모리의 Text segment에 저장한다.
  2. 초기화된 전역 변수 및 static 변수를 data segment에 할당.
  3. HEAP과 Stack은 초기 메모리 주소만 초기화됨.
  4. PCB에 여러 정보가 기록되면 Ready Queue에서 CPU를 할당받기까지 대기한다.
profile
Do what I want for no regret

0개의 댓글