Process
- 일반적으로 프로세서에 의해 처리되는 사용자 프로그램, 시스템 프로그램 => 실행중인 프로그램
- PCB를 가진 프로그램
- 실기억장치에 저장된 프로그램
- 프로세서가 할당되는 실체 => 디스패치가 가능한 단위
- 프로시저가 활동중인 것
- 한 프로그램을 여러 개의 작은 프로그램으로 분할한 것 ( 부 프로그램 )
- 비동기적 행위를 일으키는 주체
- 다수의 프로세스가 서로 규칙적이거나 연속이지 않고 독립적으로 실행되는 것
- 지정된 결과를 얻기 위한 일련의 계통적 동작
- 목적 또는 결과에 따라 발생되는 사건들의 과정
- 운영체제가 관리하는 실행단위
PCB(Process Controll Block, 프로세스 제어 블록)
- 운영체제가 프로세스에 대한 중요한 정보를 저장해 놓는 곳
- 각 프로세스가 생성될 때마다 고유의 PCB가 생성
- 프로세스가 완료되면 PCB제거
- PCB에 저장된 정보
- 프로세스의 현재 상태
- 포인터
- 부모 프로세스에 대한 포인터
- 자식 프로세스에 대한 포인터
- 프로세스가 위치한 메모리에 대한 포인터
- 할당된 자원에 대한 포인터
- 프로세스 고유 식별자
- 스케줄링 및 프로세스의 우선순위
- CPU 레지스터 정보
- 주기억장치 관리 정보
- 입출력 상태 정보
- 계정 정보
프로세스 상태 전이
- 프로세스가 시스템 내에 존재하는 동안 프로세스의 상태가 변하는 것
- 프로세스의 상태 전이도
상태 | 내용 |
제출(Submit) | 작업을 처리하기 위해 사용자가 작업을 시스템에 제출한 상태 |
접수(Hold) | 제출된 작업이 스풀 공간인 디스크의 할당 위치에 저장된 상태 |
준비(Ready) | 프로세스가 프로세서를 할당받기 위해 기다리고 있는 상태 |
실행(Run) | 준비상태 큐에 있는 프로세스가 프로세서를 할당받아 실행되는 상태 |
대기(Wait), 블록(Block) | 프로세스에 입출력 처리가 필요하면 현재 실행중인 프로세스가 중단되고, 입출력 처리가 완료될 때까지 대기하고 있는 상태 |
종료 (Terminated, Exit) |
프로세스의 실행이 끝나고 프로세스 할당이 해제된 상태 |
프로세스 상태 전이 관련 용어
용어 | 내용 |
Dispatch | 준비 상태에서 대기하고 있는 프로세스 중 하나가 프로세서를 할당받아 실행 상태로 전이되는 과정 |
Wake Up | 입출력 작업이 완료되어 프로세스가 대기 상태에서 준비 상태로 전이 되는 과정 |
Spooling | 입출력장치의 공유 및 상대적으로 느린 입출력장치의 처리 속도를 보완하고 다중 프로그래밍 시스템의 성능을 향상시키기 위해 입출력할 데이터를 직접 입출력장치에 보내지 않고 나중에 한꺼번에 입출력하기 위해 디스크에 저장하는 과정 |
교통량 제어기 (Traffic Controller) |
프로세스의 상태의 대한 조사와 통보 담당 |
스레드(Thread)
- 시스템의 여러 자원을 할당받아 실행하는 프로그램의 단위
- 프로세스 내에서의 작업 단위
- 하나의 프로세스에 하나의 스레드가 존재하는 경우에는 단일 스레드, 하나이상의 스레드가 존재하는 경우에는 다중 스레드라고 한다.
- 프로세스의 일부 특성을 갖고 있기 때문에 경량(Light Weight) 프로세스라고도 한다.
- 스레드 기반 시스템에서 스레드는 독립적인 스케줄링의 최소단위로서 프로세스의 역할을 담당한다.
'CS' 카테고리의 다른 글
인터넷? (0) | 2022.05.02 |
---|---|
스케줄링 알고리즘 (0) | 2022.05.02 |
페이지 교체 알고리즘 (0) | 2022.04.28 |
가상기억장치(Virtual Memory) 구현기법 (0) | 2022.04.25 |
기억장치 관리 (0) | 2022.04.24 |