본문 바로가기

운영체제

프로세스와 스케쥴러

# 프로세스 스케쥴러


 

-배치 처리 시스템

 

이를 이해하기 위해 큐 자료구조를 이용해 보자

 

-First in First out

 

-시분할 시스템 :다중 사용자 지원을 위해 컴퓨터 응답 시간을 최소화.

 

시간 단위로 쪼개서 a1a2a3a1a2a3

 

-멀티태스킹

 

여러 응용 프로그램이 동시에 실행되는 것처럼 보이도록 하는 시스템

 

ex)음악을 들으며 문서 작성을 한다.

 

멀티 태스킹 :단일 cpu

 

멀티 프로세싱 : 다중 cpu 여러 cpu에 하나 프로그램을 병렬로 실행해서 실행속도를 극대화시키는 시스템

 

-멀티프로그래밍

 

OS가 CPU에게 명령을 내렸을 때 CPU가 '파일이 오픈이 되는지 안되는지를 확인 할 때 다른 어플리케이션을 활요한다.

 

3,0,0,0,0,0,3

 

⇒ 3,1,1,1,1,1,3

 

 

=⇒저장매체를 오픈할 수 있는지 없는지는 CPU입장에서는 오래 걸리는 작업이다 그 사이에 다른 응용프로그램 명령을 하는 것이 더 효율적

 

 

 

프로세스란?


 

-실행 중인 프로그램은 프로세스라고 함

 

프로세스 ;메모리에 올려져서 실행 중인 프로그램

 

**스케쥴링 알고리즘**

 

OS가 어느 순서대로 프로세스를 CPU한테 얘기할까에 대한 알고리즘

 

목표

 

프로세스 응답을 짧게

 

CPU 활용도를 높이는데 사용

 

예시 32221

 

- FIFO 스케쥴링(가장 간단한 스케쥴러

 

First Come First Served

 

(Q라는 자료구조로 처리)

 

12223

 

- SJF최단 작업 우선(Shortes Job First)스케쥴러

 

13222

 

- 우선순위 기반 스케쥴러

 

22213

 

정적 우선순위

 

프로세스마다 우선순위를 미리 지정

 

동적 우선순위

 

스켸줄러가 상황에 따라 우선순위를 동적으로 변경

 

- Round Robin 스케쥴러

 

시분할을 베이스로 순서대로 시작하고 레뒤큐에서 대기를 한 상태에서 CPU에서 처리함.

 

123232

 

 

 

 

 

**멀티 프로그래밍과 wait(어려움)**


 

cpu의 활용도를 극대화 하기 위해서 어떤 시점에 어떤 프로그램을 실행할 것인가에서 시작.

 

1. 스케쥴러가 어떤 시점에 어떤 프로그램을 실행할지를 안다면??

 

ready상태 : CPU에서 실행이 바로 가능한 상태

 

block상태 특정 이벤트 발생 대기 상태 EX) 프린트가 다 되었다.

 

RUNNING STATE 상태 ( 현재 CPU 실행 상태)

 

EX)파일 읽는 중 ~ 메모리에서 찾기?!

 

 

Running : CPU를 잡고 인스트럭션(instruction)을 수행중인 상태
Ready : CPU를 기다리는 상태(메모리 등 다른 조건을 모두 만족하는 상태)
Blocked (wait, sleep) : ex) 파일 읽어오기
 - CPU를 주어도 당장 instruction을 수행할 수 없는 상태
 - process 자신이 요청한 event(ex: I/O)가 즉시 만족되지 않아 이를 기다리는 상태
  ex) 디스크에서 file을 읽어와야 하는 경우

 

 

시분할 시스템으로 AAABBCC라는 응용프로그램 명령이 있다고 가정하자 A가 'Running'중이라면 B를 실행하기 위해서 A를 READY 상태로 바꿔주고 B 응용프로그램을 RUNNING 상태로 바꿔준다.

 

처음에는 READY STATE상태로 Q의 자료구조로 빠져나옴

 

RUNNING 상태가 되면 다른 프로세스를 READY STATE에서 찾음

 

WAIT 상태는 ⇒ BLOCK 상태로 변함

 

선점형과 비선점형 스케쥴러


 

비선점형 스케쥴러: 1번의 PROCESS가 5초 이상으로 길다면 다른 프로세스를 CPU가 처리하는데 오래 걸릴 수 있음.

 

선점형은 : 다른 우선순위 기준으로 바꾸기 (EXIT OR BLOCK 상태를 설정하여 처리함)

 

 

 

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

프로세스와 스케쥴러 2탄  (0) 2021.10.15
운영체제의 시작  (0) 2021.10.15