IT/COMPUTER ARCHITECTURE

[OS]운영체제 프로세스 개요 프로세스 제어 블록 PCB 스레드

freddy12 2021. 1. 16. 23:47

프로세스의 개념 

- 일반적으로 프로세서(CPU) 에 의해 처리되는 사용자 프로그램, 시스템 프로그램을 의미

- 프로세스는 실행 중인 프로그램을 의미

- 멀티 프로세싱이란 CPU 내에서 동시에 여러 프로세스가 수행되는 경우

- 실행중인 프로그램

- PCB를 가진 프로그램

- 프로세서가 활동 중인 것

- 프로세서에 할당 된 개체

- 실행 중인 프로세서의 제어 경로

- 실제 기억 장치에 저장된 프로그램

 

 

PCB(Process Control Block, 프로세스 제어 블록)

- 운영체제가 프로세스 스케줄링을 위해 프로세스에 관한 모든 정보를 가지고 있는 데이터베이스

- 테스크 제어 블록 또는 작업 제어블록이라고도 함

- 운영체제에서 프로세스는 PCB로 나타내어 짐

- 각 프로세스가 생성될 때마다 고유의 PCB가 생성되고 프로세스가 완료되면 PCB는 제거 됨

 

 

PCB 가 가지고 있는 정보

- 프로세스의 현재 상태

- 포인터

- 프로세스 고유 식별자

- 스케줄링 및 프로세스의 우선순위

- CPU 레지스터 정보

- 주기억 장치 관련 정보

- 입출력 상태 및 계정 정보 

 

프로세스의 상태 

하나의 프로세스가 시스템에 존재하는 동안 일련의 서로 다른 상태를 가지게 됨

 

1. 실행(Run) 상태 - 프로세스가 중앙 처리 장치(CPU)를 차지하고 있는 상태

2. 준비(Ready) 상태 - 프로세스가 중앙 처리 장치를 사용하고 있지는 않지만 언제든지 사용할 수 있는 상태

3. 대기(Block) 상태  - 프로세스가 입출력 완료 등과 같은 어떤 사건이 일어나 주기를 기다리고 있는 상태

 

 

프로세스의 상태 전이(Transition) 이란?

하나의 작업이 컴퓨터 시스템에 입력되어 완료되기까지 프로세스의 상태가 준비, 실행, 대기 상태등으로 변함

 

1. 실행상태애서의 전이

- 시간초과(Time Runout) 

  어떤 프로세스가 CPU를 독점하는것을 방지하기 위함

  주어진 시간 내에 작업을 끝내지 않으면 인터럽트를 발생 시켜 운영체제로 하여금 프로세스 제어권을 강제 인수

  실행상태에서 준비상태로 전이

 

- 블록(Block)

  실행 상태 프로세스가 지정 시간 이전 입출력 및 다른 수행을 필요로 할 경우 프로세스는 스스로 프로세서를 양보

  실행상태에서 대기상태로 전이

 

2. 준비상태에서의 전이

- 디스패치(Dispatch)

  중앙처리장치가 준비 상태에서 대기하고 있는 프로세스들 중 우선순위가 높은 프로세스를 실행상태로 전이

 

3. 대기상태에서의 전이

- 깨움(Wake up)

  스스로 대기상태로 전이했던 프로세스가 작업이 완료되어 대기상태에서 준비상태로 전이

 

 

 

스레드(Thread)

프로세스 스케줄링의 부담을 줄여 성능 향상을 위한 프로세스의 다른 표현 방식

내부에서 실행되는 일련의 작업

멀티스레딩이란 하나의 프로세스 내에 여러개 스레드가 수행