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

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

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

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

// 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

+ Recent posts