본문 바로가기

운영체제

3)프로세스 관리

1)Job vs Process

- 작업(Job) / 프로그램(Program)

> 실행 할 프로그램 + 데이터

> 컴퓨터 시스템에 실행 요청 전의 상태

 

- 프로세스(Process)

> 실행을 위해 시스템(커널)에 등록된 작업

> 시스템 성능 향상을 위해 커널에 의해 관리된다.

2) 프로세스의 정의

- 실행중인 프로그램

> 커널에 등록되고 커널의 관리하에 있는 작업

> 각종 자원들을 요청하고 할당받을 수 있는 개체

> 프로세스 관리 블록(PCB)을 할당 받은 객체

> 능동적인 개체(active entity)(실행 중에 각종 자원을 요구, 할당, 반납하며 진행)

 

- Process Control Block (PCB)

> 커널 공간(kernal space)내에 존재

> 각 프로세스들에 대한 정보를 관리

 

3)프로세스의 종류

4)자원(Resource)의 개념

- 커널의 관리 하에 프로세스에게 할당/반납 되는 수동적 개체(passive entity)

- 자원의 분류

>H/W resources

> ex) Processor, memory, disk, keyboard 등

 

>S/W resources

> ex) Message, signal, files, installed SWs 등

 

5)Process Control Block (PCB)

- OS가 프로세스 관리에 필요한 정보를 저장한다.

- 프로세스 생성 시 생성된다.

 

6)PCB가 관리하는 정보

- PID: Process Idenification Number

> 프로세스 고유 식별 번호

 

- 스케쥴링 정보

> 프로세스 우선순위 등과 같은 스케쥴링 관련 정보들

 

- 프로세스 상태

> 자원 할당, 요청 정보 등

 

- 메모리 관리 정보

> Page table, segment table 등

 

- 입출력 상태 정보

> 할당 받은 입출력 장치, 파일 등에 대한 정보 등

 

- 문맥 저장 영역(context save area)

> 프로세스의 레지스터 상태를 저장하는 공간 등

 

- 계정 정보

> 자원 사용 시간 등을 관리

 

PCB 정보는 OS별로 서로 다르다.

 

PCB 참조 및 갱신 속도는 OS의 성능을 결정 짓는 중요한 요소중 하나이다.

 

7)프로세스의 상태 (Process States)

- 프로세스

> 자원 간의 상호작용에 의해 결정된다.

 

- 프로세스 상태 및 특성

 

8)Process State Transition Diagram

Created State

- 작업(Job)을 커널에 등록

- PCB 할당 및 프로세스 생성

- 커널

> 가용 메모리 공간 체크 및 프로세스 상태전이(Ready or Suspended ready)

 

Ready State

- 프로세서 외에 다른 모든 자원을 할당 받은 상태

> 프로세서 할당 대기 상태

> 즉시 실행 가능 상태

 

- Dispatch(or Schedule)

> ready state -> running state

 

Running State

- 프로세서와 필요한 자원을 모두 할당 받은 상태

 

- Preemption

> running state -> ready state

> 프로세서 스케쥴링

> 예) time-out, priority changes

> 프로세서를 뺏겨서 쫓겨나면 preemption이라고 한다.

 

- block/sleep

> running state -> asleep state

> I/O 등 자원 할당 요청

 

Blocked/Asleep State

- 프로세서 외에 다른 자원을 기다리는 상태

> 자원 할당은 System call에 의해 이루어진다.

 

- Wake-up

> asleep state -> ready state

 

Suspended State

- 메모리를 할당 받지 못한(빼앗긴) 상태

> Memory image를 swap device에 보관한다.

> swap device: 프로그램 정보 저장을 위한 특별한 파일 시스템

> 커널 또는 사용자에 의해 발생

 

- Swap-out(suspended) ,Swap-in(resume)

메모리를 뺏겨 memory 이미지를 swap device에 보관하는 것을 swap-out

보관된 memory 이미지를 다시 되돌리는 것을 swap-in이라고 한다.

Terminated/Zombie State

- 프로세스 수행이 끝난 상태

- 모든 자원 반납 후, 커널 내에 일부 PCB 정보만 남아 있는 상태

> 이후 프로세스 관리를 위해 정보 수집

 

9)프로세스 관리를 위한 자료구조

- Ready Queue

- I/O Queue

- Device Queue

 

10)인터럽트(Interrupt)

- 예상치 못한, 외부에서 발생한 이벤트

> Unexpected, external events

 

- 인터럽트의 종류

> I/O interrupt

> Clock interrupt

> Console interrupt

> Program check interrupt

> Machine check interrupt

> Iner-process interrupt

> System call interrupt

 

11)인터럽트 처리 과정

 

12)Context Swiching(문맥 교환)

- Context

> 프로세스와 관련된 정보들의 집합

> CPU register context => in CPU

> Code & data, Stack, PCB => in Memory

 

- Context saving

> 현재 프로세스의 Register context를 저장하는 작업

 

- Context restoring

> Register context를 프로세스로 복구하는 작업

 

- Context switching(~= Process switching)

> 실행 중인 프로세스의 context를 저장하고, 앞으로 실행 할 프로세스의 context를 복구 하는 일

> 커널의 개입으로 이루어진다.

 

13)Context Swich Overhead

- Context switching에 소요되는 비용

> OS마다 다름

> OS의 성능에 큰 영향을 줌

 

- 불필요한 Context switching을 줄이는 것이 중요

> Context switching은 매우 비싼 연산이고 가능한 줄이는 것이 좋다.

> 예) 스레드(thread) 사용 등

'운영체제' 카테고리의 다른 글

5)프로세스 스케쥴링  (0) 2021.11.03
4)스레드 관리  (0) 2021.11.02
2)운영체제 개요  (0) 2021.11.02
1)컴퓨터 시스템 개요  (0) 2021.11.01