1. 프로세스의 개념
A. 기본 개념
- 정의 : 프로그램이 실행되는 상태(state)로서 일련의 작업 단위이다.

- 특징
+ 능동적(active) 
*프로그램은 디스크에 저장된 파일이며 수동적이다.
+ 코드, 스택, 자료로 구성

- 프로세스의 구성
+ 신규(new) : 프로세스가 생성 중
+ 준비(ready) : 프로세스가 설정되어 대기 중
+ 실행(running) : 프로세스가 실행하는 중
+ 대기(waiting) : 프로세스가 이벤트 발생을 대기 중
+ 종료(terminated) : 프로세스가 실행을 종료

- 프로세스의 상태도

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

+ PCB 특정 프로세스에 대한 정보를 가진 데이터 블록/레코드

+ 프로세스의 변화하는 모든 정보에 대한 기억 장소 역할

+ 구성

> 프로세스 상태(state)

> CPU 레지스터들, CPU 스케줄링(scheduling) 정보

> 프로그램 카운터(program counter)

> 메모리 관리 정보

> 계정(accounting) 정보

> 입출력 상태 정보


- 프로세스 간 CPU Switching        



B. 프로세스 스케줄링

- 스케줄링 큐란?

+ 스케줄링을 위해 PCB들이 연결되는 큐가 필요해짐

+ 큐의 연결 상태 : 활동체인(active chain)과 정적 체인(static chain)

+ 종류

* 작업 큐 : 프로세스가 시스템에 들어가면 작업 큐에 입력

* 장치 큐 : 특정 입출력 장치를 대기하는 프로세스 리스트

* 준비완료 큐 : 주 기억 장치에 상주하면서 준비 상태에서 실행을 기다리는 프로세스들로 구성

+ 프로세스 스케줄링의 표현                



- 스케줄러

+ 단기(CPU) 스케줄러

* 개념

> 실행 준비가 되어 있는 프로세스들 중 한 프로세스를 선택하여 CPU 할당

> 스케줄링은 프로세스간 문맥교환(Context Switching)이 일어나는 것

* 종류

> 스케줄링 알고리즘(miliseconds)

+ 장기(작업) 스케줄러

* 개념

> 디스크 공간에 제출된 프로세스들을 선택하여 주기억장치로 적재

> 최상 성능의 시스템은 I/O bound의 CPU bound의 적절한 혼합이 필요

> 다중 프로그래밍 제어

* 종류

> 프로세스 준비상태(seconds, minutes)

> 다중 프로그래밍의 정도

> 입출력과 계산 작업 혼합 

+ 중기 스케줄러

* 개념

> 메모리 공간 확보 또는 프로세스 혼합을 개선하기 위한 디스크 교체

> 교체된 프로세스를 다시 메모리로 적재


- 문맥교환(Context switch)

+ 정의

* CPU를 다른 프로세스로 전환하기 위해 이전의 프로세스 상태를 보관하고 새 프로세스를 보관된 상태로 적재하는 작업

* 전환하는 동안 어떠한 유용한 작업도 불가능

+ 문맥교환 시간

* 하드웨어 지원에 의해 결정

> 기억장치 속도, 레지스터 수, 특권명령 등

* 운영체제가 복잡할수록 문맥교환에 더 많은 작업 요구

'2015-2학기 > 운영체제' 카테고리의 다른 글

제 1장 운영체제와 컴퓨터 시스템 구조  (0) 2015.10.29
Posted by OnewayK
,