상세 컨텐츠

본문 제목

프로세스 관리는 어떻게 이뤄질까?

노베이스도 이해하는 공학이야기

by Tabris4547 2023. 7. 21. 09:17

본문

728x90

여러분들, 제가 대박사실 하나 알려드릴까요?

평소에 유튜브로 영상보면서 카톡도 하시고 인스타도 하시잖아요?

여러분들은 "동시에"한다고 생각하지만

실은 여러가지 프로세스가 각각 따로따로 실행되는거 알고있나요?

아마 컴퓨터 공학을 배우지 않은 사람들은

"이건 또 뭔소리래?"하면서 의아해하실 겁니다.

사실 우리가 쓰는 CPU는 여러가지 프로그램들을 관리하면서

효율적으로 자원을 관리하고 있습니다.

프로세스는 어떤 식으로 관리가 이뤄질까?

 

왜 프로세스를 괸리해야할까?

우리는 한정된 자원으로 컴퓨터를 활용합니다.

그리고 그 안에는 다양한 프로세스가 있습니다.

제 컴퓨터 안에 돌아가는 프로세스입니다.

어떤 거는 제가 잘 쓰지도 않는 것들도 상당히 많습니다.

(이런게 왜 깔려있지??싶은 것도 있고)

 

이 많은 자원을 언제 어떻게 써야할까?

내가 잘 안쓰는 프로세스는 용량을 적게 쓰고

가장 많이 쓰는 것 위주로 하면 어떨까?

이런 고민은 OS를 개발하는 사람들이 많이 하는 고민이고

이런 고민들이 모여 지금같이 편안한 컴퓨터를 쓸 수 있게 되었습니다.

 

 프로세스 관리 기법

 

 

프로세스는 PCB(Process Control Block)에서 관리가 이뤄집니다.

크게 3가지 상태로 나눌 수 있는데

Ready ->실행전 or 실행초과되서 원상태로

Run->CPU에서 실행

Block->실행준비 중. 다른 거 쓰느라 막아둠

(더 세세하게 나눠서

Ready waiting running terminated 이런 식으로 나누는 경우도 있음.

중요한 것은 프로세스제어를 위해

상태에 따라 흐름을 제어한다는 것)

 

저 상태에 따라서 프로세스는 

'스케쥴링' 과정을 통해

프로세스를 관리합니다.

이 관리 방식도 선점,비선점이냐에 따라서 나누는데

분류해서 하나하나 접근하는 건 머리가 아프니

일부만 소개를 하겠습니다.

 

1. 우선순위

 

 

말그대로, 프로세스 우선순위에 따라서

프로세스 동작을 수행하는 방식입니다.

우선순위가 높은 프로세스에 대한 동작을 차례대로 수행하는 식.

이렇게 관리를 진행하다보면

우선순위가 낮은 프로세스의 동작이 후순위로 계속 미뤄집니다.

이 그림에서는 프로세스 5개만 들어올 때를 가정했는데,

새롭게 우선순위가 높은 프로세스가 계속 PCB에 들어온다면

낮은 우선순위를 가진 프로세스는 무한대기를 해야합니다.

(이런 상태를 '기아상태'라고 부릅니다)

이걸 해결하는 방식이 '에이징'으로,

후순위의 우선순위를 조금씩 높여주어서

어떻게든 동작시키도록 만들어주도록 유도합니다.

 

 

2. 라운드로빈

모든 프로세스가 공평하게 CPU에서 동작하는 방법입니다.

PCB에 들어온 프로세스가

동일한 시간단위동안 한번씩 사용되는 식입니다.

이 관리방법의 장점은

모든 프로세스가 동작이 가능하기 때문에

우선순위에서 문제가 된 기아상태가 발생하지 않습니다.

여기서 시간간격을 어떻게 나눠야하는지가 관건인데

너무 짧게 나누면 context Switching이 자주일어나서 오버헤드가 발생하고

너무 길게 나누면 선입선출 관리처럼 먼저 온 프로세스가 먼저 실행되는 구조로 되어 의미가 퇴색됩니다.

(시간단위를 8초로 나눴다고 가정해보자.

현재 프로세스 완료시간이 가장 큰 게 4초라면

들어온 순서대로 4초수행하고 끝내는 식이라

라운드로빈 방식의 의미가 퇴색)

 

 

3. 기한부 스케쥴링

 

마감시간(Deadline)전까지 프로세스를 수행하도록 만드는 기법입니다.

과제가 뭉탱이로 많이 남아있을 때,

"당장 제출기한 닥친 거 부터 끝내자"라고 생각해

급한 거 먼저 끝내는 것과 유사합니다.

급한 순서대로 동작을 수행할 수 있지만

deadline을 지키지 못하는 경우가 생기면

timeout을 시켜버릴 수 있습니다.

예를들면 deadline이 8초인데

현재 시간에서 동작시키면 10초가 되어버려

deadline을 넘겨버리게 된다고 가정해봅시다.

이것도 방식마다 차이가 있는데,

어떤 경우에는 "dead line못지키니깐 terminated시킨다"라면서

동작 수행을 안하는 경우가 생깁니다.

 

 

https://icksw.tistory.com/54

 

[OS] 운영체제에서 Process란? - OS 공부 1

안녕하세요 Pingu입니다! 이번 글에서는 운영체제에서 Process라고 불리는 것에 대해 알아보려고 합니다. 제가 공부할 때 참고하고 있는 OSTEP 책에선 Chapter 4 - Processes 부분입니다. Process란? Process(프

icksw.tistory.com

https://m.blog.naver.com/audrl1010/120180587148

 

(운영체제) 2. 프로세스 관리

  1. 프로세스의 개요   프로세스의 정의 - 프로세스(Process)는 일반적으로 프로세서(CPU)...

blog.naver.com

https://wonit.tistory.com/108

 

[운영체제] 17. 우선순위 스케줄링(Priority 스케줄링) 알고리즘

운영체제의 스케줄링 알고리즘을 평가하기 위해서는 다음과 같은 특성을 충분히 이해해야 한다. 프로세서 사용률 프로세서를 항상 실행상태로 유지하여 유휴 상태가 되지 않도록 한다. 처리율

wonit.tistory.com

https://yoons2owo.tistory.com/27

 

[운영체제] RR(Round Robin) 스케줄링

RR 스케줄링 RR(Round Robin / 라운드 로빈) 스케줄링은 대화형 시스템에서 사용되는 선점 스케줄링 방식이다. 이 알고리즘은 프로세스가 도착한 순서대로 프로세스를 디스패치하지만 정해진 시간

yoons2owo.tistory.com

 

728x90

관련글 더보기

댓글 영역