관리 메뉴

caLAB

[운영체제 3주차] 하루 30분 컴퓨터 과학 공부하기 본문

개발 공부/컴퓨터 과학

[운영체제 3주차] 하루 30분 컴퓨터 과학 공부하기

도이(doi) 2021. 9. 7. 22:59
728x90

스케쥴링 척도, FCFS, 쓰레드

 

CPU 스케쥴링이란 메인 메모리에 여러개의 프로세스가 있을 때 현재 프로세스가 끝난 후 어던 프로세스를 돌릴지 정하는 것을 말한다. 여기에는 두 가지 방식이 있다. 하나는 Preemptive(선점) 다른 하나는 Non-Preemptive(비선점) 방식이다. 이 둘의 차이는 현재 프로세스가 돌아가고 있을 때 이 프로세스가 끝나기 전에 개입할 수 있는지 없는지 여부이다. Preemptive의 경우에는 이름과 마찬가지로 끝나기 전에 개입이 가능한 방식이고, Non-Preemptive의 경우에는 현재 프로세스가 끝나기 전에 개입할 수 없다. 

 

스케쥴링의 척도

스케쥴링의 척도 즉, 스케쥴링의 성능에 대해서 평가하는 항목들이 여러개 있는데 몇 가지를 보겠다.

- CPU Utilization (CPU 이용률) : CPU가 얼마나 놀지 않고 일하는가.

- Throughput (처리율) : 단위 시간당 몇 개의 작업을 끝내는가.

- Turnaround time (반환 시간) : 작업이 Ready Queue에 들어간 후 언제 끝나는가.

- Waiting Time (대기 시간) : Ready Queue에 얼마나 오래 기다렸는가.

- Response Time (응답 시간) : 응답이 나올 때까지 걸리는 시간.

 

CPU 스케쥴링 알고리즘의 종류

앞으로 공부할 CPU를 스케쥴링하는 알고리즘의 종류는 아래와 같다.

- Fist-Come, First-Served(FCFS) : 먼저 온 것 먼저 서비스

- Shortest-Job-First(SJF) : 작업 시간이 짧은 것 먼저 서비스

- Priority : 우선 순위가 높은 것 먼저 서비스.

- Round-Robin(RR) : 빙글빙글 돌면서 순서대로 서비스.

- Multilevel Queue : 큐를 여러개 두는 것.

- Multilevel Feedback Queue : 큐를 여러개 두는 것.

 

First-Come, First-Served (FCFS)

우선, First-Come, First-Served 알고리즘인 FCFS에 대해서 알아자. FCFS는 이름에서 뜻하는 바와 같이 먼저 온 순서대로 서비스를 하는 것이다. 스케쥴링의 척도를 알 수 있는 Waiting Time을 기준으로 FCFS를 한 번 봐보자. 평균적인 대기 시간을 구하는 것을 Find Average Waiting Time(AWT)라고 한다. 

 

호위효과

위의 이미지와 같이 p1은 24의 시간이 걸리고 p2와 p3은 3의 시간이 걸릴 때 p1이 먼저와서 이를 먼저 처리하게 될 경우 대기시간을 더해서 더한 값의 개수로 나누면 AWT의 값은 ( 0 + 24 + 27 ) / 3 = 17 이 된다. 이는 반대로 처리 했을 때에 비해서 훨씬 더 큰 값이다. 만약 반대로 처리하게 되면 평균 대기 시간은 ( 0 + 3 + 6 ) / 3 = 3 으로 AWT가 확 줄어들게 된다. 대기 시간 면에서는 순서대로 하지 않는게 더 좋다.이러한 FCFS의 단점을 호위 효과라고 한다. 호위 효과는 CPU 실행시간을 많이 잡아먹는 애가 앞에 있을 경우 뒤에 애들이 따라다니는 모습이 호위하는 것처럼 보여서 호위 효과라고 불리워지게 되었다. 이러한 호위 효과가 FCFS의 단점이다. FCFS는 비선점 스케쥴링이다.

 

쓰레드

프로그램 내부의 흐름, 맥이다.

코드를 실행하는 과정이라고 생각하면 된다.

 

멀티 쓰레드

빠르게 여러개의 쓰레드가 스위칭 되면서 마치 여러개의 쓰레드가 동시에 동작하는 것처럼 보인다. 

하지만, 실제로는 한 번에 하나의 쓰레드가 움직이고 있다. 

 

한 프로세스에는 기본적으로 1개의 쓰레드가 있다. 한 프로세스에 여러 개의 쓰레드가 존재하기도 한다. 

쓰레드의 구조는 프로세스의 메모리 공간과 자원을 공유한다. 스택포인터나 레지스터 스택은 공유하지 않는다.

과거에는 프로세스 스위칭을 하였지만, 현대에 와서는 쓰레드 스위칭을 한다.

728x90
반응형
Comments