Develop+

프로세스/PCB/스풀링(spooling) 정리 본문

운영체제

프로세스/PCB/스풀링(spooling) 정리

Sunny Buddy 2021. 1. 3. 21:48
728x90
실행 중인 프로그램, 작업의 기본이 되는 단위로 프로그램에 상태를 결합한 형태를 가지고 있다.
보저기억장치에서 실행이 될 때 주기억장치에 적재가 되어 프로그램 안에서 프로세스로 나누어 진다.
 
  • 작업(Task),  Job, Thread 와 다같이 사용되고 다양한 정의를 가진다.
  • 실행 중인 프로그램이라는 일반적인 정의로도 사용됨.
  • 주기억장치(Ram)에  주소 공간을 갖는 능동적인 개체이다.
  • 각 프로그램들은 각 기능들에 따라 프로세스로 나누어져 실행된다.
  • 운영체제가 관리하는 최소 단위의 작업
  • PCB(Process Control Block)을 가진 프로그램
  • 프로시저가 활동중인 것
    • 프로시저 : 특정 작업을 수행하기 위한 작업 프로그램
  • ★비동기적 행위를 일으키는 주체
    • 비동기적 행위 : 프로세스가 규칙적 . 연속적이지 않게 실행되는 것
  • 실 기억장치(주기억장치RAM)에 저장된 프로그램
  • CPU에 의해 수행되는 사용자 및 시스템 프로그램
 

PCB(Process Control Block)

운영체제가 프로세스에 대한 중요한 정보를 저장해 놓는 곳이다.
 
  • 태스크 제어 블록 (Task Control Block)으로도 불린다.
  • cpu에게 프로세서에 대한 정보를 제공해주는 자료구조 테이블
  • 각 프로세스가 생성될 때마다 pcb가 생성되며 완료되면 pcb는 제거가 된다.
  • 부모 프로세스와 자식 프로세스는 pcb를 공유하지 않고 단독으로 사용된다.
  • pcb는 자신만의 프로세스만을 위해 사용할 수 있다.

실행 유형에 따른 분류

운영체제
프로세스
프로세스의 실행 순서 및 사용 환경 프로세스가 항상 다른 사용자의 영역을 침범하지 못하게 감시하는 기능 담당
사용자 프로세스 생성, 입출력 프로세스와 같은 운영에 필요한 작업을 수행
사용자
프로세스
사용자 코드를 수행
병행
프로세스
프로세스 여러 개가 동시에 실행되며, 독립 프로세스와 협동 프로세스로 구분된다.
 

프로세스 상태

디스패치(dispatch)
생성 ->    준비( ready )   ->        실행( running )  ->    완료
입.출력 종료(wake up)↖↘대기, 보류(입출력 요구 block)
 
프로세스는 상황과 조건에 따라 실행(running), 준비(ready),  대기(wait) 상태에 있다가 다른 상태로 전이를  반복
-> PCB 에 상태가 저장되어 있다.
디스패치
(dispatch)
준비상태에서 실행상태로 전이되는 과정, 작업 스케줄러가 해당 프로세스를 선택하여 실행
wake up
(linking)
입 출력 작업이 완료되어 프로세스가 대기 상태에서 준비 상태로 전이되는 과정
 
제줄 (submit)
작업을 처리하기 위해 시스템에게 제출한 상태
제출된 작업은 스풀 공간인 디스크의 할당 위치에 저장된 상태
준비(ready)
프로세스가 실행을 준비하고 있는 상태
  • 디스패치를 통해 실행 상태로 전이됨
  • 레디큐 상태라고 한다.
실행(running)
준비 상태 큐에 있는 프로세스가 할당을 받아  실행중인 상태
  • 에 할당된 시간이 지나면 time run out으로 상태를 다시 ready로 만든다.
  • 실행중인 프로세스에 입출력(I/O) 처리가 필요하면 실행중인 프로세스는 대기 상태로 전이된다.
대기(wait),
보류(blocked)
프로세스에 입.출력 처리가 발생하면 입출력이 완료된 때까지 대기 큐에서 대기하고 있는 상태
-block : 실행중인 프로세스가 지정된 시간 이전에 다른 작업을 위해 스스로 프로세스를 양도하고 대기 상태로 전이됨
-wake up : 입. 출력 작업이 끝났을 때 프로세스가 다시 준비 상태로 전이된다.
완료(complete)
프로세스가 cpu를 할당받아, 주어진 시간 내에 수행을 종료한 상태.
  • 종료된 프로세서는 시스템에서 제거되고 관련 pcb도 삭제된다.
실행중지(suspend)
프로세스가 입.출력 이외에 다른 이유에 의해 실행되지 못하는 상태
실행이 중지된 프로세스는 다른 프로세스로 시작하기 전까지는 실행이 될 수 없음
실행중지 원인
  • 시스템의 이상 및 부하가 많을 경우 운영체제가 필요에 의해 중지시킴

스풀링

다중 프로그래밍 환경에서 보조기억장치(디스크)를 이용해, 출력할 데이터를 직접 프린터에 보내지 않고 보조 기억장치에 모았다가 한번에 출력함으로써 프린터장치의 공유 및 프린터 처리 속도를 보완하는 기법
구분
스풀링
버퍼링
공통점
입출력 장치와 cpu간의 속도 차이를 해소하기 위해 나온 기법
스풀링과 같음
차이점
디스크
주기억장치
 
728x90