(55)
프로세스 제어 블록(PCB, Process Control Block)
- 프로세스(=작업 제어 블록): 운영체제 내에서 프로세스 제어 블록이라 표현
- 프로세스를 관리하기 위해 유지되는 데이터 블록 또는 레코드의 데이터 구조
- 프로세스 식별자, 프로세스 상태, 프로그램 카운터 등으로 구성
- 프로세스 생성 시 생성되며 메인 메모리에 유지, 운영체제에서 한 프로세스의 존재를 정의함
- 프로세스 제어 블록의 정보: 운영체제의 모든 모듈이 읽고 수정 가능
- 프로세스 제어 블록 정보
| 프로세스 식별자 | - 각 프로세스에 대한 고유 식별자 지정 |
| 프로세스 현재 상태 | - 생성, 준비, 실행, 대기, 중단 등의 상태 유지 |
| 프로그램 카운터 | - 프로그램 실행을 위한 다음 명령의 주소 표시 |
| 레지스터 저장 영역 | - 누산기, 인덱스 레지스터, 범용 레지스터 조건 코드 등에 관한 저보 - 컴퓨터 구조에 따라 수, 형태가 달라짐 |
| 프로세서 스케줄링 정보 | - 프로세스의 우선순위, 스케줄링 큐에 대한 포인터, 그 외 다른 스케줄 매게변수를 가짐 |
| 계정 정보 | - 프로세서 사용시간, 실제 사용시간, 사용 상한 시간, 계정 번호, 작업 또는 프로세스 번호 |
| 입출력 상태 정보 | - 특별한 입출력 요구 프로세스에 할당된 입출력장치 - 개방된(Opened) 파일의 목록 |
| 메모리 관련 정보 | - 메모리 영역을 정의하는 하한 및 상한 레지스터 또는 페이지 테이블 정보 |
(56)
스레드(Thread)
- 프로세스의 구성: 제어흐름 부분(실행부분)과 실행환경 부분으로 분리 가능
*스레드: 프로세스의 실행 부분을 담당, 실행의 기본 단위
- 입출력 자원의 할당에는 관여 X, 중앙처리장치 스케줄링의 단위로만 사용되는 정량 프로세스
- 프로세서를 사용하는 기본단위, 명령어를 독립적으로 실행할 수 있는 하나의 제어 흐름
- 프로세스와 마찬가지로 스레드들도 중앙처리장치 공유, 한순간에 오직 하나의 스레드만이 수행됨
- 프로세스 스케줄링에 따른 프로세스 문맥교환(Context Swiching)의 부담 줄여서 성능 향상시키기 위한 프로세스의 다른 표현방식
(57)
스케줄링 종류
| 장기 스케줄링 (Long - term Scheduler) |
= 작업 스케줄링 = 상위 스케줄링 - 작업 스케줄러에 의해서 수행됨 - 어느 작업을 개시하여 시스템 자원을 이용하게 할 것인가를 장기 스케줄링에 의해 결정됨 - 몇 분 또는 그 이상의 시간 단위로 발생 -> 수행시간이 가장 오래 걸림 |
| 중기 스케줄링 (Mid - tern Scheduler) |
- 중기 스케줄러에 의해서 수행됨 - 형성된 프로세스들 또는 프로세스 그룹에서 어느 것을 활성화시키고, 보류할 것인가를 중기 스케줄링에 의해 결정됨 - 시스템에서 단기적인 부하를 조절하는 버퍼 역할 수행 |
| 단기 스케줄링 (Short - term Scheduler) |
= 프로세스 스케줄링 - 프로세스 스케줄러에 의해서 수행됨 - 활성된 프로세스: 단기 스케줄링에 의해 디스패치되어 실행상태로 전이 -> 선점이나 시간초과로 활성화된 프로세스로 전이 - 프로세스 대기리스트에 있는 프로세스들 중에서 어느 프로세스에게 프로세서를 할당할 것인가를 결정 |
'컴퓨터 일반' 카테고리의 다른 글
| 2. 운영체제 - 파일 관리 (0) | 2026.01.22 |
|---|---|
| 2. 운영체제 - 기억장치 관리 (0) | 2026.01.22 |
| 2. 운영체제 - 운영체제의 개념 (0) | 2026.01.22 |
| 1. 컴퓨터 구조 - 입출력장치 및 병렬처리 (1) | 2026.01.21 |
| 1. 컴퓨터 구조 - 기억장치 (0) | 2026.01.21 |