- 사용할 데이터가 디스크 상의 여러 곳에 저장되어 있을 경우

데이터를 액세스하기 위해 디스크 헤드가 움직이는 경로를 결정하는 기법

 - 일반적으로 탐색 시간을 최적화 하기 위해 수행되며, 처리량 최대화

응답 시간의 최소화, 응답 시간의 편차의 최소화와 같은 목적을 가지고 있다.

// FCFS, SSTF, SCAN, C-SCAN, N-step SCAN, 에센바흐, SLTF 등






FCFS(First Come First Service)

 - 디스크 대기 큐에 가장 먼저 들어온 트랙에 대한 요청을 먼저 서비스하는 기법


초기 헤드 위치 : 53

디스크 대기 큐 : 98 183 37 122 14 124 65 67


0   14   37   53   65   67   98   122   124   183   199


53 → 98 → 183 → 37 → 122 → 14 → 124 → 65 → 67









SSTF(Shortest Seek Time First)

 - 탐색 거리가 가장 짧은 트랙에 대한 요청을 먼저 서비스하는 기법

 - 현재 서비스한 트랙에서 가장 가까운 트랙에 대한 서비스 요청이 계속 발생하는 경우,

먼 거리의 트랙에 대한 서비스는 무한정 기다려야 하는 기아 상태가 발생할 수 있다.


초기 헤드 위치 : 53

디스크 대기 큐 : 98 183 37 122 14 124 65 67


0   14   37   53   65   67   98   122   124   183   199


53 → 65 → 67 → 37 → 14 → 98 → 122 → 124 → 183








SCAN

 - SSTF가 갖는 탐색 시간의 편차를 해소하기 위한 기법이다

 - 대부부의 디스크 스케줄링에서 기본 전략으로 이용된다.

 - 현재 헤드의 위치에서 진행 방향이 결정되면 탐색 거리가 짧은 순서에 따라 그 방향의

모든 요청을 서비스하고, 끝까지 이동한 후 역방향의 요청 사항을 서비스한다.

 - 헤드가 안쪽과 바깥쪽을 왔다갔다 하면서 지나는 기에 있는 대기 요청뿐만 아니라

새로운 요청도 서비스하며, 현재의 진행 방향에 더 이상의 요청이 없을 때에만 이동 방향을 바꾼다.

 - LOOK : SCAN기법을 기초로 사용하되 요청이 없는 경우 끝까지 가지않고 바로 역방향으로 진행한다.


초기 헤드 위치 : 53

디스크 대기 큐 : 98 183 37 122 14 124 65 67


0   14   37   53   65   67   98   122   124   183   199


53 → 65 → 67 → 98 → 122 → 124 → 183 → 199 → 37 → 14








C-SCAN(Circular SCAN)

 - 항상 바깥쪽에서 안쪽으로 움직이면서 가장 짧은 탐색 거리를 갖는 요청을 서비스하는 기법

 - 헤드는 트랙의 바깥쪽에서 안쪽으로 한 방향으로만 움직이며 서비스하여 끝까지 이동한 후,

안쪽에 더 이상의 요청이 없으면 헤드는 가장 바깥쪽의 끝으로 이동한 후 다시 안쪽으로 

이동하면서 요청을 서비스한다.

 - 요청을 서비스하는 도중 새로운 요청 사항이 도착하면 다음 헤드가 진행할 때 서비스한다.

 - C-LOOK : C-SCAN기법을 기초로 사용하되 요청이 없는 경우 끝까지 이동하지 않고 그 즉시

가장 바깥쪽의 위치부터 안쪽 방향으로 서비스하는 기법이다.


초기 헤드 위치 : 53

디스크 대기 큐 : 98 183 37 122 14 124 65 67


0   14   37   53   65   67   98   122   124   183   199


53 → 37 → 14 → 0 → 199 → 183 → 124 → 122 → 98 → 67 → 65








N-SCAN(N-step SCAN)

 - SCAN 기법의 무한 대기 발생 가능성을 제거한 것으로, 어떤 방향의

진행이 시작될 당시에 대기 중이던 요청들만 서비스하고, 진행 도중 도착한 요청들은

한데 모아서 다음의 반대 방향 진행 때 서비스하는 기법이다.








에센바흐(Eschenbach) 기법

 - 부하가 매우 큰 항공 예약 시스템을 위해 개발되었다.

 - 탐색 시간과 회전 지연 시간을 최적화하기 위한 최초의 기법이다.

 - 헤드는 C-SCAN처럼 움직이며 예외적으로 모든 실린더는 그 실린더에 요청이 있던 없던 간에

전체 트랙이 한 바퀴 회전할 동안에 서비스를 받는다.








SLTF(Shortest Latency Time First)

 - 섹터 큐잉(Sector Queuing)이라고 하며, 회전 지연 시간의 최적화를 위해 구현된 기법

 - 디스크 대기 큐에 있는 여러 요청을 섹터 위치에 따라 재정렬하고, 가장 가까운 섹터를 먼저 서비스한다.

 - 헤드의 이동이 거의 없는 고정 헤드 장치인 드럼과 같은 장치에서 사용된다.






'ComputerScience > OperatingSystem' 카테고리의 다른 글

페이지 교체 알고리즘  (0) 2017.10.16
가상기억장치 구현 기법  (0) 2017.10.16
단편화  (0) 2017.10.16
주기억장치 할당 기법 - 연속 할당 기법  (0) 2017.10.16
교착상태  (0) 2017.10.16


페이지 폴트가 발생했을때 교체 방법

// OPT, FIFO, LRU, LFU, NUR, SCR 등






OPT

 - 앞으로 가장 오랫동안 사용하지 않을 페이지를 교체하는 기법

 - 각 페이지의 호출 순서와 참조 상황을 미리 예측해야 하므로 실현 가능성이 희박



참조페이지

2

3

2

1

5

2

3

5

페이지

프레임

2

2

2

2

2

2

2

2


3

3

3

3

3

3

3




1

5

5

5

5


페이지 폴트 4번 (하늘색 셀)









FIFO(First In First Out)

 - 각 페이지가 주기억장치에 적재될 때마다 그때의 시간을 기억시켜 가장 먼저

들어와서 가장 오래 있었던 페이지를 교체하는 기법

`- 벨레이디의 모순현상이 발생

  : 페이지 프레임 수가 많으면 페이지 부재의 수가 줄어드는 것이 일반적이지만,

   페이지 프레임 수를 증가시켰는데도 불구하고 페이지 폴트가 더 많이 일어나는 현상



참조페이지

2

3

2

1

5

2

3

5

페이지

프레임

2

2

2

2

5

5

5

5

 

3

3

3

3

2

2

2

 

 

 

1

1

1

3

3


페이지 폴트 6번 (하늘색 셀)








LRU(Least Recently Used)

 - 최근에 가장 오랫동안 사용하지 않은 페이지를 교체하는 기법

 - 각 페이지마다 계수기나 스택을 두어 현 시점에서 가장 오랫동안 사용하지 않은,

즉 가장 오래 전에 사용된 페이지를 교체한다.

 - 계수기나 스택과 같은 별도의 하드웨어가 필요하며, 시간적인 오버헤드가 발생



참조페이지

2

3

2

1

5

2

3

5

페이지

프레임

2

2

2

2

2

2

2

2


3

3

3

5

5

5

5




1

1

1

3

3


페이지 폴트 5번 (하늘색 셀)








LFU(Least Frequently Used)

 - 사용 빈도가 가장 적은 페이지를 교체하는 기법


참조페이지

2

3

1

3

1

2

4

5

페이지

프레임

2

2

2

2

2

2

2

2


3

3

3

3

3

3

3



1

1

1

1

1

1

 

 

 

 

 

 

4

5


페이지 폴트 5번 (하늘색 셀)









NUR(Not Used Recently)

 - LRU와 비슷한 알고리즘으로, 최근에 사용하지 않은 페이지를 교체하는 기법

 - 최근에 사용되지 않은 페이지는 향후에도 사용되지 않을 가능성이 높다는 것을 전제로,

LRU에서 나타나는 시간적인 오버헤드를 줄일 수 있다.

 - 최근의 사용 여부를 확인하기 위해서 각 페이지마다 두 개의 비트, 

즉 참조 비트(Reference Bit)와 변형 비트(Modified Bit, Dirty Bit)가 사용된다.

 - 참조 비트 : 페이지가 호출되지 않았을 때는 0, 호출되었을 때는 1로 저장된다.

 - 변형 비트 : 페이지 내용이 변경되지 않았을 때는 0, 변경되었을 때는 1로 지정된다.


참조 비트

변형 비트 

교체 순서 

0

0

1

0

1

2

1

0

3

1

1

4








SCR(Second Chance Replacement)

 - 가장 오랫동안 주기억장치에 있던 페이지 중 자주 사용되는 페이지의 교체를 방지하기 위한 것으로,

FIFO 기법의 단점을 보완하는 기법이다.

 - 각 페이지마다 참조 비트를 두고, FIFO 기법을 이용하여 페이지 교체 수행중 참조

비트가 0일 경우에는 교체하고, 참조비트가 1일 경우에는 참조 비트를 0으로 지정한 후 

FIFO 리스트의 맨 마지막으로 피드백시켜 다음 순서를 기다리게 한다.







'ComputerScience > OperatingSystem' 카테고리의 다른 글

디스크 스케줄링  (0) 2017.10.16
가상기억장치 구현 기법  (0) 2017.10.16
단편화  (0) 2017.10.16
주기억장치 할당 기법 - 연속 할당 기법  (0) 2017.10.16
교착상태  (0) 2017.10.16


 - 가상기억장치는 보조기억장치(하드디스크)의 이부를 주기억장치처럼 사용하는 것으로,

용량이 작은 주기억장치를 마치 큰 용량을 가진 것처럼 사용하는 기법이다.

 - 프로그램을 여러 개의 작은 블록 단위로 나누어서 가상 기억장치에 보관해 놓고 

프로그램 실행 시 요구되는 블록만 주기억장치에 불연속적으로 할당하여 처리한다.


페이징 기법

프로그램을 동일한 크기로 나눈 단위를 페이지라 하며 이 페이지를 블록으로 사용하는 기법


세그먼테이션 기법

프로그램을 가변적인 크기로 나눈 단위를 세그먼트라 하며, 이 세그먼트를 블록으로 사용하는 기법






페이징 기법

 - 가상기억장치에 보관되어 있는 프로그램과 주기억장치의 영역을 동일한 크기로 나눈

후 나눠진 프로그램(페이지)을 동일하게 나눠진 주기억장치의 영역(페이지 프레임)에

적재시켜 실행하는 방법이다.

 - 외부 단편화는 발생하지 않으나 내부 단편화는 발생할 수 있다.

 - 주소 변환을 위해서  페이지의 위치 정보를 가지고 있는 페이지 맵 테이블이 필요하다.











세그먼테이션 기법

 - 가상기억장치에 보고나되어 있는 프로그램을 다양한 크기의 

논리적인 단위로 나눈 후 주기억장치에 적재시켜 실행시키는 기법

 - 내부 단편화는 발생하지 않으나 외부 단편화는 발생할 수 있다.

 - 주소 변환을 위해서 세그먼트가 존재하는 위치 정보를 가지고 있는 

세그먼트 맵 테이블이 필요하다.










페이지 부재(Page Fault)

 - 프로그램 실행 시 참조한 페이지가 주기억장치에 없는 현상

 - 페이지 부재 발생 시 처리 순서

  1. 운영체제에서 트랩 요청

  2. 사용자 레지스트리와 프로그램의 상태 저장

  3. 현재 사용(교체) 가능한 페이지를 페이지 맵 테이블에서 검색

  4. 가상기억장치에 있는 페이지를 주기억장치로 가져옴

  5. 페이지 맵 테이블 갱신

  6. 프로그램 상태를 불러와 계속 작업을 진행함



'ComputerScience > OperatingSystem' 카테고리의 다른 글

디스크 스케줄링  (0) 2017.10.16
페이지 교체 알고리즘  (0) 2017.10.16
단편화  (0) 2017.10.16
주기억장치 할당 기법 - 연속 할당 기법  (0) 2017.10.16
교착상태  (0) 2017.10.16


단편화는 분할된 주기억장치에 프로그램을 할당하고 반납하는 과정을 반복하면서

사용되지 않고 남는 기억장치의 빈 공간 조각을 의미하며, 내부 단편화와 외부 단편화가 있다.






내부 단편화

 - 분할된 영역이 할당될 프로그램 크기보다 크기 때문에 

프로그램이 할당된 후 사용되지 않고 남아 있는 빈 공간


프로그램 크기 < 분할된 영역

내부 단편화 = 분할된 영역 - 프로그램 크기








외부 단편화

 - 분할된 영역이 할당될 프로그램의 크기보다 작기 때문에 프로그램이 

할당될 수 없어 사용되지 않고 빈 공간으로 남아 있는 분할된 전체 영역


프로그램 크기 > 분할된 영역

외부 단편화 = 분할된 영역








단편화 해결 방법


통합(Coalescing) 기법

 - 주기억장치 내에 인접해 있는 단편화된 공간을 하나의 공간으로 통합

 - 주기억 장치에 빈 공간이 발생할 경우 이 빈 공간이 다른 빈 공간과 

인접되어 있는지 점검한 후 결합하여 사용


압축(Compaction) 기법

 - 주기억장치 내에 분산되어 있는 단편화된 빈 공간을 결합하여 하나의 

큰 가용 공간을 만드는 작업. 집약, Garbage Collection이라고도 한다.

 -  여러 위치에 분산된 단편화된 공간을 주기억장치의 한 쪽 끝으로 옮겨서 큰 가용 공간을 만든다.

 - 압축이 실행되는 동안 시스템은 모든 일을 일시 중단한다.

'ComputerScience > OperatingSystem' 카테고리의 다른 글

페이지 교체 알고리즘  (0) 2017.10.16
가상기억장치 구현 기법  (0) 2017.10.16
주기억장치 할당 기법 - 연속 할당 기법  (0) 2017.10.16
교착상태  (0) 2017.10.16
병행 프로세스와 상호 배제  (0) 2017.10.11

주기억장치 할당 기법

주기억장치 할당 기법은 프로그램이나 데이터를 실행시키기 위해 

주기억장치에 어떻게 할당할 것인지에 대한 내용이다.


연속 할당 기법

프로그램을 주기억장치에 연속으로 할당하는 기법으로,

단일 분할 할당 기법과 다중 분할 할당 기법이 있다.






단일 분할 할당 기법

 - 단일 할당 기법은 주기억장치를 운영체제 영역과 사용자 영역으로 나누어 한 순간에는

오직 한 명의 사용자만이 주기억자치의 사용자 영역을 사용하는 기법이다.

 - 가장 단순한 기법으로 초기의 운영체제에서 많이 사용하던 기법이다.


오버레이 기법

 - 오버레이 기법은 주기억장치보다 큰 사용자 프로그램을 실행하기 위한 기법이다.

 - 보조기억장치에 저장된 하나의 프로그램을 여러 개의 조각으로 분할한 후 필요한

조각을 차례로 주기억장치에 적재하여 프로그램을 실행한다.


스와핑 기법

 - 스와핑 기법은 하나의 프로그램 전체를 주기억장치에 할당하여 사용하다 필요에 따라 

다른 프로그램과 교체하는 기법이다.









다중 분할 할당 기법


고정 분할 할당 기법

 - 고정 분할 할당은 프로그램을 할당하기 전에 운영체제가 주기억장치의 사용자 영역을

여러 개의 고정된 크기로 분할하고 준비상태 큐에서 준비중인 프로그램을 각 영역에 

할당하여 수행하는 기법이다.


가변 분할 할당 기법

 - 고정 분할 할당 기법의 단편화를 줄이기 위한 것으로, 미리 주기억장치를 분할해 놓는 것이 

아니라 프로그램을 주기억장치에 적재하면서 필요한 만큼의 크기로 영역을 분할하는 기법이다.

'ComputerScience > OperatingSystem' 카테고리의 다른 글

가상기억장치 구현 기법  (0) 2017.10.16
단편화  (0) 2017.10.16
교착상태  (0) 2017.10.16
병행 프로세스와 상호 배제  (0) 2017.10.11
프로세서 스케줄  (0) 2017.10.10


상호 배제에 의해 나타나는 문제점으로, 둘 이상의 프로세스들이 자원을 점유한 상태에서 

서로 다른 프로세스가 점유하고 있는 자원을 요구하며 무한정 기다리는 현상






교착상태 발생의 필요 충분 조건


상호배제(Mutual Exclusion)

 - 한 번에 한 개의 프로세스만이 공유 자원을 사용할 수 있어야 한다.


점유와 대기(Hold and Wait)

 - 최소한 하나의 자원을 점유하고 있으면서 다른 프로세스에 할당되어 

사용되고 있는 자원을 추가로 점유하기 위해 대기하는 프로세스가 있어야 한다.


비선점(Non-preemption)

 - 다른 프로세스에 할당된 자원은 사용이 끝날 때까지 강제로 빼앗을 수 없어야한다.


환형 대기(Circular Wait)

 - 공유 자우너과 공유 자원을 상요하기 위해 대기하는 프로세스들이 원형으로 구성되어 있어 

자신에게 할당된 자원을 점유하면서 앞이나 뒤에 있는 프로세스의 자원을 요구해야 한다.








교착 상태 해결 방법


예방 기법

 - 교착상태 발생의 4가지 조건 중에서 하나를 제거

 - 상호 배제 부정

 - 점유와 대기 부정

 - 비선점 부정

 - 환형 대기 부정


회피 기법

 - 교착 상태가 발생할 가능성을 배제하지 않고, 교착 상태가 발생하면 적절히 피해나가는 방법

 - 다익스트라가 제안한 은행원 알고리즘을 사용


발견 기법

 - 교착 상태가 발생했는지 점검하여 교착 상태에 있는 프로세스와 자원을 발견하는 것으로, 

자원 할당 그래프 등을 사용함


회복 기법

 - 교착 상태를 일으킨 프로세스를 종료하거나 교착 상태의 프로세스에 할당된 자원을 선점하여 

'프로세사나 자원을 회복하는 것




'ComputerScience > OperatingSystem' 카테고리의 다른 글

단편화  (0) 2017.10.16
주기억장치 할당 기법 - 연속 할당 기법  (0) 2017.10.16
병행 프로세스와 상호 배제  (0) 2017.10.11
프로세서 스케줄  (0) 2017.10.10
프로세스  (0) 2017.10.10


병행 프로세스

 - 두 개 이상의 프로세스들이 동시에 존재하며 실행 상태에 있는 것을 의미




임계영역(Critical Section)

 - 다중 프로그래밍 운영체제에서 여러 개의 프로세스가 공유하는 데이터 및 자원에 대하여

어느 한 시점에서는 하나의 프로세스만 자원 또는 데이터를 사용하도록 지정된 공유 자원(영역)을 의미


상호배제(Mutual Exclusion, Mutex)

 - 특정 프로세스가 공유 자원을 사용하고 있을 경우 다른 프로세스가 

해당 공유 자원을 사용하지 못하게 제어하는 기법


동기화 기법

 - 두 개 이상의 프로세스를 한 시점에서는 동시에 처리할 수 없으므로 

각 프로세스에 대한 처리 순서를 결정하는 것으로, 상호 배제의 한 형태이다.

 - 세마포어, 모니터









상호배제 구현 기법


소프트웨어적 구현 기법

 - 2개의 프로세스 기준 : 데커(Dekker) 알고리즘, 피터슨(Peterson) 알고리즘

 - 여러 개의 프로세스 기준 : Lamport의 빵집 알고리즘


하드웨어적 구현 방법

 - Test & Set 기법

 - Swap 명령어 기법








세마포어(Semaphore)

- 각 프로세스에 제어 신호를 전달하여 순서대로 작업을 수행하도록 하는 기법이다.

 - P연산 : 자원을 사용하려는 프로세스들의 진입 여부를 자원의 개수(S)를 통해 결정하는 것으로 자원의 개수를 감소시켜(S--) 자원이 점유 되었음을 알림(Wait 동작)

 - V연산 : 대기중인 프로세스를 깨우는 신호(Wake Up)로서, 자원의 개수를 증가시켜(S++) 자원이 반납되었음을 알림(Siginal 동작)


 P(S) {
     S--;
     if S < 0
         // 이 프로세스를 재움 큐에 추가 (잠 듦)
 }

 V(S) {
     S++;
     if S <= 0
         // 재움 큐로부터 프로세스를 제거 (깨어남)
 }








모니터(Monitor)

 - 동기화를 구형하기 위한 특수 프로그램 기법으로 특정 공유 자원을 프로세스에게 

할당하는 데 필요한 데이터와 이 데이터를 처리하는 프로시저로 구성된다.

 - 자료 추상화와 정보 은폐 개념을 기초로 하며 공유 자원을 할당하기 위한 병행성 구조로 이루어져 있다.

 - 모니터 내의 공유 자원을 사용하려면 프로세스는 반드시 모니터의 진입부를 호출해야 한다.

 - 외부의 프로시저는 직접 액세스할 수 없으며, 모니터의 경계에서 상호 배제가 시행된다.





'ComputerScience > OperatingSystem' 카테고리의 다른 글

주기억장치 할당 기법 - 연속 할당 기법  (0) 2017.10.16
교착상태  (0) 2017.10.16
프로세서 스케줄  (0) 2017.10.10
프로세스  (0) 2017.10.10
링커와 로더  (0) 2017.10.10


선점과 비선점


비선점 스케줄링

 - 이미 할당된 CPU를 다른 프로세스가 강제로 빼앗아 사용할 수 없는 스케줄링 기법

 - CPU를 할당받으면 해당 프로세스가 완료될 때까지 CPU를 사용한다.

 - 일괄 처리 방식에 적합

// FCFS, SJF, 우선순위, HRN, 기한부 등


선점 스케줄링

 - 하나의 프로레스가 CPU를 할당받아 실행하고 있을 때 우선순위가 

높은 다른 프로세스가 CPU를 강제로 빼앗아 사용할 수 있는 스케줄링 기법

 - 빠른 응답 시간을 요구하는 대화식 시분할 시스템에 사용

 - 많은 오버헤드 초래

 - 선점이 가능하도록 일정 시간 배당에 대한 인터럽트용 타이머 클록이 필요

// Round Robin, SRT, 선점 우선순위, 다단계 큐, 다단계 피드백 큐 등









비선점 스케줄링


FCFS(First Come First Service)

 - 도착한 순서에 따라 차례로 CPU를 할당하는 기법으로, 가장 간단한 알고리즘


P1 (10초)   P2 (3초)   P3 (7초)

p2

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

p2

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

p3

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 



SJF(Shortest Job First)

 - 준비상태 큐에서 기다리고 있는 프로세스들 중에서 실행 시간이 가장 짧은 프로세스에게 먼저 CPU를 할당하는 기법


P1 (10초)   P2 (3초)   P3 (7초)

p1 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

p2

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

p3

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 



HRN(Highest Response-ratio Next)

 - 실행시간이 긴 프로세스에 불리한 SJF 기법을 보완하기 위한 것으로,

대기 시간과 서비스 시간을 이용하는 기법이다.

 - 우선순위 계산식 = (대기시간 + 서비스 시간) / 서비스 시간


기한부

 - 프로세스에게 일정한 시간을 주어 그 시간 안에 프로세스를 완료하도록 하는 기법


우선순위

 - 준비상태 큐에서 기다리는 각 프로세스마다 우선순위를 부여하여 

그 중 가장 높은 프로세스에게 먼저 CPU를 할당하는 기법

 - 가장 낮은 순위를 부여받은 프로세스는 무한연기 또는 기아 상태가 발생할 수도 있다.







선점 스케줄링


SRT(Shortest Remaining Time)

 - 남은 시간이 가장 짧은 프로세스에게 CPU를 할당하는 기법


RR(Round Robin)

 - FCFS 기법과 같이 준비상태 큐에 먼저 들어온 프로세스가 먼저 CPU를 할당 받지만

각 프로세스는 시간 할당량 동안만 실행한 후 실행이 완료되지 않으면 

다음 프로세스에게 CPU를 넘겨주고 큐의 가장 뒤로 배치 된다.


P1 (10초)   P2 (3초)   P3 (7초)

P1

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

P2

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

P3

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 



선점 우선순위

 - 준비상태 큐의 프로세스들 중에서 우선순위가 가장 높은 프로세스에게 먼저 CPU를 할당하는 기법


다단계 큐

 - 프로세스를 특정 그룹으로 분류할 수 있을 경우 그룹에 따라 각기 다른 준비상태 큐를 사용하는 기법

 - 각 준비상태 큐는 독자적인 스케줄링을 가지고 있으므로 각 그룹의 특성에 따라 

서로 다른 스케줄링 기법을 사용할 수 있다.


다단계 피드백 큐

 - 특정 그룹의 준비상태 큐에 들어간 프로세스가 다른 준비상태 큐로 이동할 수 없는

다단계 큐 기법을 준비상태 큐 사이를 이동할 수 있도록 개선한 기법




'ComputerScience > OperatingSystem' 카테고리의 다른 글

교착상태  (0) 2017.10.16
병행 프로세스와 상호 배제  (0) 2017.10.11
프로세스  (0) 2017.10.10
링커와 로더  (0) 2017.10.10
매크로  (0) 2017.10.10


프로세서에 의해 처리되는 사용자 프로그램, 시스템 프로그램, 즉 실행중인 프로그램을 의미하며, 작업, 태스크라고도 한다.


PCB를 가진 프로그램

실기억장치에 저장된 프로그램

프로세서가 할당되는 실체로서, 디스패치가 가능한 단위

프로시저(부 프로그램)가 활동중인 것

비동기적 행위를 일으키는 주체

목적 또는 결과에 따라 발생되는 사건들의 과정

운영체제가 관리하는 실행 단위






PCB(Process Control Block)

운영체제가 프로세스에 대한 중요한 정보를 저장해 놓는 곳


프로세스의 현재 상태

포인터

 - 부모/자식 프로세스에 대한 포인터

 - 프로세스가 위치한 메모리에 대한 포인터

 - 할당된 자원에 대한 포인터

프로세스 고유 식별자

스케줄링 및 프로세스의 우선순위

CPU 레지스터 정보

주기억장치 관리 정보

입출력 상태 정보

계정 정보



 





 프로세스 상태 전이





제출(Submit)

 - 작업을 처리하기 위해 사용자가 작업을 시스템에 제출한 상태


접수(Hold)

 - 제출한 작업이 스풀 공간인 디스크의 할당 위치에 저장된 상태


준비(Ready)

 - 프로세스가 프로세서를 할당받기 위해 기다리고 있는 상태

 - 프로세스는 준비상태 큐(스케줄링 큐)에서 실행을 준비하고 있다.


실행(Run)

 - 할당 시간이 종료되면 준비상태로 전이된다.

 - 입출력 처리가 필요하면 대기상태로 전이된다.

 - 준비 상태에서 실행상태로의 전이는 CPU스케줄러에 의해 수행


대기(Wait), 블록(Block)


종료(Terminated, Exit)







스레드

스레드는 프로세스 내에서의 작업 단위로서 시스템의 여러 자원을 할당받아 실행하는 프로그램의 단위

 - 스레드 기반 시스템에서 스레드는 독립적인 스케줄링의 최소 단위로서 프로세스의 역할을 담당


사용자 수준의 스레드

 - 사용자가 만든 라이브러리를 사용하여 스레드를 운용

 - 속도는 빠르지만 구현이 어렵다.


커널 수준의 스레드

 - 운영체제의 커널에 의해 스레드를 운용

 - 구현이 쉽지만 속도는 느리다.


장점

 - 병행성 증진

 - 하드웨어, 운영체제의 성능과 응용 프로그램의 처리율을 향상

 - 응용프로그램의 응답시간 단축

 - 실행 환경을 공유시켜 기억장소의 낭비가 줄어듬

 - 프로세스간의 통신 향상

 - 스레드는 공통적으로 접근 가능한 기억장치를 통해 효율적 통신





'ComputerScience > OperatingSystem' 카테고리의 다른 글

병행 프로세스와 상호 배제  (0) 2017.10.11
프로세서 스케줄  (0) 2017.10.10
링커와 로더  (0) 2017.10.10
매크로  (0) 2017.10.10
운영체제의 개요  (0) 2017.10.10


링커

링커는 언어 번역프로그램이 생성한 목적 프로그램들과 라이브러리, 

또 다른 실행 프로그램(로드 모듈) 등을 연결하여 실행 가능한 로드 모듈을 만드는 시스템 소프트웨어이다

연결 기능만 수행하는 로더의 한 형태로, 링커에 의해 수행 수행되는 작업을 링킹이라고 한다.


로더

로더는 컴퓨터 내부로 정보를 들여오거나 로드 모듈을 디스크 등의 

보조기억장치로부터 주기억장치에 적재하는 시스템 소프트웨어이다.






로더의 기능


할당

 - 실행 프로그램을 실행시키기 위해 기억장치 내에 옮겨놓을 공간을 확보하는 기능


연결

 - 부 프로그램 호출 시 그 프로그램이 할당된 기억장소의 시작주소를 호출한 부분에 등록하여 연결하는 기능


재배치

 - 디스크 등의 보조기억장치에 저장된 프로그램이 사용하는 각 주소들을 할당된 기억장소의 실제 주소로 배치시키는 기능


적재

 - 실행 프로그램을 할당된 기억공간에 실제로 옮기는 기능









로더의 종류


Compile And Go 로더

 - 별도의 로더 없이 언어 번역 프로그램이 로더의 기능까지 수행하는 방식

 - 연결 기능은 수행하지 않고 나머지 기능은 언어 번역 프로그램이 담당한다.


절대 로더

 - 목적 프로그램을 기억장소에 적재시키는 기능만 수행하는 로더로, 로더 중 가장 간단한 프로그램으로 구성

 - 기억장소 할당이나 연결을 프로그래머가 직접 지정하며 한번 지정한 주기억장소의 위치는 변경이 어렵다.

 - 할당/연결(프로그래머), 재배치(언어 번역 프로그램), 적재(로더)


직접 연결 로더

 - 일반적인 기능의 로더로, 로더의 기능 네 가지를 모두 수행하는 로더이다.


동적 적제 로더

 - 프로그램을 한꺼번에 적재하는 것이 아니라 실행 시 필용한 부분만을 적재하고, 

나머지 부분은 보조기억장치에 저장해두는 것으로 호출시 적재라고 한다.




'ComputerScience > OperatingSystem' 카테고리의 다른 글

프로세서 스케줄  (0) 2017.10.10
프로세스  (0) 2017.10.10
매크로  (0) 2017.10.10
운영체제의 개요  (0) 2017.10.10
시스템 소프트웨어의 구성  (0) 2017.10.10

+ Recent posts