프로그래밍/TIL(Today I Learned)

방통대 - 운영체제 2강

가라멜 2019. 3. 25. 23:06
반응형

2.1 프로세스 제어 블록

- Process Control Block, PCB

- 프로세스 상태, PID, PC, 레지스터, 메모리, 프로세스 우선순위, 회계정보


프로세스 간의 관계

- 독립적 프로세스 : 시스템에서 실행 중인 다른 프로세스의 영향을 받지도 않고 주지도 않는 프로세스

> 프로세스의 상태를 다른 프로세스와 공유되지 않음

> 프로세스의 실행은 결정적임. 즉 실행결과는 입력상태의 의해서만 결정

> 로세스의 실행은 재생가능

> 프로세스의 실행은 타 프로세스와 무관하게 중단되거나 재시작될 수 있음

- 유기적 프로세스 : 시스템에서 실행중인 다른 프로세스의 영향을 주고받으며 동작하는 프로세스

> 프로세스의 상태를 다른 프로세스와 공유

> 비결정적, 실행순서에 의해 좌우되기 떄문에 예측 불가

> 재생불가능, 동일한 입력에 대하여 항상 동일하지 않음


2.2 쓰레드

- 프로세스 내에서의 다중처리를 위하여 제안된 개념으로 실행 단위를 프로세스에서 한 단계 낮추어 규정한 것

- 자원 소유의 단위, 디스패칭의 단위

- 하나의 프로그램 내에서 제어의 단일 순차적 흐름으로 정의, 하나의 쓰레드 내에서는 하나의 실행점만이 존재하고 각 쓰레드는 PC, 스택, 쓰레드관리정보 등과 같은 수행에 필요한 최소한의 정보만으로 구성


2.3 스케줄링

- 주어진 프로세스들이 여러 개인 경우 어떤 순서대로 CPU를 얼마동안 배정하여 프로세스를 처리할지를 결정하는 스케줄링

- 스케줄링 단계

- 상위단계 : 시스템에 들어오는 작업들을 선택하여 프로세스를 생성한 후 프로세스 준비 큐에 전달하는 역할

- 하위단계 : 사용가능한 CPU를 준비상태의 어느 프로세스에 배당할지 결정하는 것 

- 준비상태 >> 실행상태로 바뀜 : 디스패치 

- 중간단계 : 프로세스를 일시적으로 메모리에서 제거하여 중지시키거나 다시 활성화시켜서 시스템에 대한 단기적인 부하 조절

- 스케줄링 정책

- 선점 스케줄링 정책(preemptive)

- 진행중인 작업에 인터럽트를 걸고 다른 작업에  CPU를 할당하는 스케줄링 전략

- 높은 우선순위의 프로세스가 긴급한 경우에 유용

- 프로세스가 종료되지 않은 상태에서 선점 스케줄링 정책에 따라 CPU 가 다른 프로세스에 할당되려면 문맥교환이 필요

- 문맥교환이 일정 부분 시간과 자원의 소모때문에 오버헤드 발생 초래

- 비선점 스케줄링 정책(nonpreemptive)

- 프로세스가 CPU를 할당받아 실행이 시작되면 프로세스 자체가 I/O 인터럽트를 걸거나 프로세스를 종료할 때까지 실행상태

- 응답 시간의 예측 가능

- 짧은 작업이 긴 작업을 기다리게 되는 경우 발생할 수 있음


반응형

'프로그래밍 > TIL(Today I Learned)' 카테고리의 다른 글

방통대 - 정보통신망  (0) 2019.03.30
방통대 - 알고리즘 2강  (0) 2019.03.26
방통대 - 운영체제 2강 1/2  (0) 2019.03.24
방통대 - 이산수학 1강  (0) 2019.03.22
방통대 -알고리즘 1강  (0) 2019.03.22