Notice
Recent Posts
Recent Comments
Link
«   2024/04   »
1 2 3 4 5 6
7 8 9 10 11 12 13
14 15 16 17 18 19 20
21 22 23 24 25 26 27
28 29 30
Tags
more
Archives
Today
Total
관리 메뉴

따..딱히 공부하려고 포스팅하는 건 아니니까..!

프로세스(Process) 본문

시스템|서버|네트워크

프로세스(Process)

보즈리 2017. 5. 4. 00:31

1. 프로세스(Process)

1) 정의

 실행중이거나 실행 준비 중인 프로그램 개체

 CPU 시간이나 메모리 등, 시스템 자원이 할당되는 독립적인 개체


2) 특징

 별도의 주소 공간에서 실행된다.

 다른 프로세스의 변수나 자료구조에 접근할 수 없다.


2. 프로세스의 구성요소


 코드영역

  함수, 제어문, 상수 등 프로그램 명령이 존재하는 곳

 하위

 데이터영역

  Data : 초기화된 전역, 정적 변수
  BSS : 초기화되지 않은 전역, 정적 변수

 

 힙 영역 (↓)

  동적 할당 시 할당되는 메모리 영역.

  메모리 주소 값에 의해 창조된다.

.

.

.


 

 스택영역 (↑)

  지역, 매개 변수, 리턴값 등 임시 할당시 할당되는 메모리 영역.

  프로그램 도중 얼마나 사용될 지 몰라 거꾸로 채워나간다.

 상위


3. 프로세스 스케쥴링

1) 프로세스 상태 전이도




2) 프로세스 스케쥴링 시 고려사항

 - 프로세스의 속성

: 입출력 위주 vs 연산 위주

 -> 입출력은 우선권 획득에 유리하여 소요시간이 적다. 그러므로 빠르게 처리하고 CPU가 다른 일을 할 수 있다는 장점이 있다. 그에 비해 연산 위주는 계속 CPU를 써야하는 단점이 있다.


 - 응답시간의 중요성

 - 프로세스의 우선순위

 - 페이지 부재

: 프로그램이 페이지 단위로 나뉘어 일부만 올라와 있는 경우


4. 프로세스 스케쥴링 알고리즘


<비선점>

 프로세스가 일단 실행되면 CPU가 자발적으로 놓을 때까지 뺴앗기지 않는다.


1) FCFS(First Come First Served)

 먼저 온 프로세스부터 처리한다


2) STF(Shortest Job First), SPN(Shortest Process Next)

 기다리고 있는 프로세스 중에서, 처리시간이 가장 짧은 것부터 처리한다.


3) HRN(Highest Response Next)

 '(대기시간 + 처리시간) / 처리시간'이 가장 큰 프로세스를 다음으로 처리한다.


<선점>

 현재 실행중인 프로세스라도 운영체제에 의해 인터럽트가 걸려 준비 큐로 이동시킬 수 있다.


1) Round-Robin

 일정 시간을 넘기면 해당 프로세스를 준비 큐의 맨 뒤에 저장하고, 다음에 오는 프로세스를 강제로 넘긴다. (일부 FCFS 방식)


장점 : 모든 프로세스가 정당하게 실행하고 끝낼 수 있다.

단점 : 인터럽트 문맥교환이 일어나는 횟수가 많아 오버헤드가 크다.


2) SRT(Shortest Remaining Time)

 SPN의 선점 형태로, 남아있는 실행 시간이 가장 짧은 프로세스를 선점한다.

 ex) P1 실행 도중에 P2가 도착했는데, P2 time < P1 time이면 바로 P2를 선점한다.


단점 : 긴 프로세스의 기아상태를 초래한다.

 : 매 스케쥴링마다 시간을 평가해야하므로 비현실적이다.


3) MLQ(Multi Level Queue, 다단계 큐)

 프로세스들을 여러 그룹으로 나누고, 여러개의 큐를 이용하여 각자의 스케쥴링을 진행한다. 단, 다른 큐로 이동할 수 없다.


4) MFQ(Multi Level Feedback Quere, 다단계 피드백 큐)

 MLQ에서 각 큐마다 우선순위를 부여하여 큐의 순서를 바꿀 수 있는 기법이다.

 너무 뒤로 연기되면 상대적으로 더 높은 우선순위를 부여하거나, 하위 단계를 처리할 때 더 오랜 시간을 할당해주면서 무기한 연기를 방지한다.


<선점/비선점>


우선순위 스케쥴링

 내부적/외부적 우선순위를 두어 우선순위가 높은대로 프로세스를 처리하는 방법으로, 선점/비선점 방식 모두 가능하다.

선점일 경우 : 새로 도착한 프로세스의 우선순위와 비교하여 선점 여부를 결정한다.

비선점일 경우 : 새로 도착한 프로세스의 우선순위와 비교하여 순위가 더 높으면 준비 큐의 맨 앞에 놓아 다음에 처리한다.


단점 : 기아상태와 무한 블록을 초래할 수 있다. (= CPU를 사용하지 못하는 프로세스는 CPU가 봉쇄된 걸로 간주할 수 있다)

해결방법 : 에이징 기법(대기시간이 길어질 수록 우선순위를 높임)을 사용한다.

Comments