11장 - 디스크와 스케줄링

CHO·2023년 1월 4일
0

OS(운영체제)

목록 보기
18/18

파일시스템은 대부분의 경우 디스크에 저장된다. 따라서 파일시스템에 대한 접근 요청은 디스크 시스템에의 접근을 필요로한다.

컴퓨터 시스템에는 많은 프로세스들이 동시에 존재할 수 있다. 이들의 실행 중 저마다의 파일 접근 요청을 하게 되는데, 이런 요청들은 커널의 파일 시스템을 통해 디스크 시스템으로 전달될 것이고 이에따라서 디스크 시스템에는~~짧은 기간동안에도 수많은 접근 요청이 도착할 수 있게 된다.

이런 상황에서!! 디스크 시스템 성능을 높이고!! 겨로가적으로 컴퓨터 시스템 전체 성능향승을 위해서는 '디스크 접근 요청들에 대한 스케줄링'이 필요하겠다!!

(디스크:물리적 속도+전자적 속도 공존)

11.1 디스크 구조

디스크 시스템이란? 데이터를 저장하는 디스크팩과 저장 또는 저장된 데이터를 읽는데~~ 동원되는 장치!!인 디스크 드라이브를 묶어서 표현한 것을 말한다!!

키워트 : 지지대(붐) 섹터, 트랙, 암, 헤드, 표면, 실린더, 섹터 간 갭,트랙 간 갭
트랙을 모으면 = 실린더가 된다

디스크 드라이버? 구동하는 소프트웨어
디스크 드라이브 : 하드웨어!^^

-회전축에 의한 회전동작과 붐에 의한 전후동작이 있는데 이 두가지 동작이 연동되어~특정 위치에 헤드를 위치시킨다. 그러면 읽기, 쓰기가 이뤄질 수 이쒀!!
-여러 트랙으로 구성되는데~한 트랙은 다시 여러개의 섹터로 이뤄죠~~
-트랙 : 한 개의 원을 이루는 섹터의 모임
-데이터 : 섹터 단위로 디스크에서 쓰이거나 읽힘
-블록이라 부르는 것도 일반적으로 섹터의 크기 또는 섹터 크기의 정수배임
-트랙사이의 갭은 트랙을 구분하기위해 섹터 사이의 갭은 데이터의 정상적인 읽기와 쓰기를 위한 여유공간을 말함
-섹터가 모여서 트랙을 이루고, 트랙이 모여서 한 면을 이루고, 다시 여러면이 모여서 디스크 팩의 전체 공간이 됨
-암(Arm)의 길이는 같다. 그래서 헤드는 각 면의 같은 트랙에 위치한다
-디스크팩에서 동심원의 모든 트랙을 묵어서 실린더(cylinder)이라고 부른다

209페이지
디스크 시스템에서 특정섹터에 대한 주소지정은(실린더 혹은 트랙, 번호 표면번호, 섹터번호)로 이뤄진다
이런 물리적주소는 사용하기 복잡하다. 하여 논리적으로 상대주소를 사용하도록한다. 디스크 시스템의 데이터 전체를 블럭들의 나열로 본다. 각 블럭들에 대해 번호를 부여해 임의의 블록에 접근할 수 있도록 한다

디스크에서의 접근시간(디스크에서 특정데이터 즉 특정 섹터_입출력이 이뤄지는 과정에 걸리는 시간!!)
: 위에서 쳐다본 그림
: 헤더는 움직이고~~디스크는 회전한다!!!
: 주어진 주소로부터 실린더번호르 ㄹ보고 헤드를 해당 트랙으로 이동시켜야한다. 이때 소요되는 시간을 탐색시간이라 하고 1번에 해당한다
: 다음으로 지정된 섹터가 회전해 헤드 밑으로 오는데 걸리는 시간을 회전 지연 시간(rotational delay or latency time) 이라고 하고 2번에 해당하는 시간이다
: 마지막으로 섹터가 헤드 밑을 회전하는 동안 읽거나 쓰게 되는데 이 시간을 전송시간(tranfer or transmission time)이라고 하고 3번으로 표시한다

-데이터가 3번 섹터에 있다면 현 지점에서 헤드로 옯겨가는 시간 = 탐색시간(seek time)이라고 부른다.
rpm(분당회전수)

디스크 스케줄링
: 회전지연이나 전송시간은 회전 속도에 달렸다.
: 반면 탐색 시간은 접근 시간에서 제일 큰 비중을 차지하냐? 그리고 제일 많이 처리하냐?에 따라 성능을 높일 수 있는 포인트가 된다.
: 디스크의 각 트랙에 산재한 입출력 요청들에 대한 처리를 어떤 순서로 할 건지 결정하는 걸 말한다.

디스크 스케줄링 기법의 평가기준
: 단위 시간당 처리량(throughput) - 디스크 스케줄링 기법은 단위 시간당 처리량을 최대화할 수 있어야한다. 즉, 가능하면 같은 시간에 보다 많은 디스크 입출력 요구들에 대해 서비스를 할 수 있어야한다

: 평균응답시간(Mean Response Time) - 디스크 스케줄링 기법은 각 요구들에 대해 평균 응답 시간을 최소화할 수 있어야한다. 즉, 각 디스크 입출력 요구들에 대해 가능하면 빠른 시간 내에 서비스를 제공할 수 있어야한다는 의미이다. 이를 위해서는 각 요구들의 평균대기시간(mean waiting time)을 최소화해야한다.

: 응답시간의 예측성(predictability) - 응답시간의 예측성이란 디스크 입출력 요구를 보낸 측에서 자신의 요청에 대한 서비스가 언제 끝날 것인지츨 추측할 수 있는가 하는 점과 관련된 성능 평가 지표를 말한다.
응답시간예측성이 낮을수록 (비율이 낮을수록) 좋은 거다

11.2 디스크 스케줄링 기법
1)FCFS 스케줄링 기법
: 디스크 입출력 요청들을 도착한 순서대로 서비스하는 기법
: 요청이 도착한 순서대로 서비스한다는 점은 매우 공평한 기법이다
: 스케줄링으로 인해 오버헤드가(부하) 작기 때문에 디스크 입출력에 대한 부하가 작을수록 적합한 기법이다
: 총 이동거리는

성능척도 다 맞추긴 쉽지 않음.

2)SSTF(Shortest Seek Time First) 스케줄링 기법
: 현재 헤드 위치로부터 가장 가까운!! 놈들을 먼저 서비스한다!(현헤드에서 가장 작게 움직이겠다)
: 선입선출에 비해 단위 시간당 처리량이 많은 대신에 평균 응답시간은 짧음

단점
: 헤드가 일정영역 벗어나지 못함(주변만 멤도니까) 그 영역 안의 실린더들에 대한 요구들만 계속해서 처리하게 됨
: 헤드에서 먼 다른 요구들에 대해서는 서비스 기회가 주어지지 않음. 무기한 연기 발생함
: 응답시간의 예측성이 떨어진다. 일괄처리엔 유용하지만, 대화형 시스템에는 적합하지 않음

(새로운 요청이 없다는 가정하에 진행)
0과 255에는 방문할 확률이 매우 떨어짐

3) SCAN 스케줄링
: 현재 헤드위치와 가장 가까운 위치에 대한 요구를 먼저 서비스함. 현재 헤드의 진행방향으로만 입출력 요구들을 처리한다. 마지막 실린더, 즉 양 끝의 실린더에 도착했을 때에만~~@!!! 방향을 전환해 나머지 요구들을 처리하는 기법임
: SSTF 기법을 사용할 경우 응답시간 분산이 너무 커짐..그래서 응답시간에 대한 예측성 저하 단점을 해결하기 위해 제시된 기법임 (variance를 완전히 확 줄이지는 못함)

4) LOOK 스케줄링 알고리즘
: 엘리베이터 알고리즘이라고도 부름
: SCAN 기법과 같은 방식으로 운영되는데, 다른점은 헤드가 진행하는 도중 진행방향의 앞쪽으로 더이상~~ 요구가 없으면 양 끝의 실린더까지 진행하지 않고 그 자리에서 즉시 방향을 바꾼다.
: SCAN 기법과 LOOK 기법은 SSTF 스케줄링 기법에 비해 응답시간의 예측성 측면에서 우수한 기법이다
: LOOK 스케줄링 기법은 SCAN 스케줄링 기법이 진행방향으로 더이상 디스크 접근 요구가 없음에도 불구하고 디스크 헤드를 양끝의 실린더까지 이동시키는 단점을 해결한 기법이다
: 두 기법(SCAN 기법과 LOOK 기법_은 새로운 디스크 접근이 요구되는 입출력 헤드진행방향으로 앞쪽방향에서 발생하면 즉시! 서비스 하지만 바로 뒤에서 발생하는 경우 입출력 헤드가 진행방향의 끝까지 이동한 뒤에 다시 되돌아올때까지 기다려야한다...

단점
: 입출력 헤드의 진행방향의 앞쪽으로 계속해서 디스크 접근 요구가 발생하는 경우 반대방향의 요구들의 대기시간은 계속 길어진다 ㅠㅠ
: 양끝에서 발생하는 입출력요구는 디스크 중앙 부분 실린더에서 발생하는 입출력 요구에 비해 서비스 기회를 적게 가진다!

5) N-step SCAN 스케줄링
: N-step SCAN 스케줄링 기법은 기본적으로 SCAN 스케줄링과 같음
: 디스크 헤드가 방향을 바꾸는 시점에서 큐에 대기중인 요구들만 대상으로 서비스를 진행한다
: 서비스가 진행되는 도중에 큐에 추가로 도착하는 요구들에 대해서는 다음번 방향을 바꾼 후에 처리하도록 한다는~~점에서 SCAN 스케줄링과 다름!!

예) 현재 헤드위치가 100번 실린더에 있고, 헤드 현재 바깥쪽으로 이동중이라고 가정하자.
: 다음번 요구를 서비스하기 위해서는 헤드가 115번 실린더로 이동해야한다
: 헤드가 115번 실린더로 이동하던 도중 혹은 115번 실린더의 요청처리를 위해 가는 도중에 120번 실린더가 요구가 추가로 도착했다
: SCAN 기법은 115번 실린더 요구를 처리한 후에 120번 실린더로 이동한다. 추가로 도착한 이 요구를 처리하고 계속 진행한다.
: N-step SCAN 스케줄링기법은 120번 요구를 처리하지 않고 바깥쪽 진행을 시작할 시점에 큐에 있었던 요구들만 처리하면서 진행한다. 120번 실린더에 대한 요구는 헤드가 255번 실린더에 도착해 방향을 바꾼 후에 다시 안쪽으로 진행하면서 처리한다

(step by step~! 같은 느낌ㅎㅎ)

6) C-SCAN 스케줄링
: SCAN 스케줄링과 비슷한 기법
: 디스크 헤드가 한쪽 방향으로 진행할 때에만 큐의 요구들을 처리한다
: 서비스 방향을 안쪽 또는 바깥쪽 중 한쪽으로 미리 정해놓고 정해진 방향으로 헤드가 이동할 때에만 큐의 요구들을 처리한다!
: N-step SCAN 스케줄링과 똑같은데~!! "진행방향을 한 방향으로 고정" 해뒀다는 점이 다르다!!!!
:C-LOOK
: SCAN기법은 방향을 바꿔가며 서비스한다. 양쪽 부분의 트랙에 대한 접근 요구들에 비해 중앙 부분 트랙에 대한 접군 요구들이 빠르게 서비스된다. C-SCAN 은 한쪽 방향으로만 서비스를 진행한다. 하여 양쪽 부분의 트랙과 중앙부분의 트랙을 균등하게 서비스하는 효과가 있다.

7) Eschenbach 스케줄링
:

11.3 회전 지연 시간의 최적화

11.4 디스크 관리를 위해
: 버퍼링
: 디스크 스트라이핑
: RAID 구조
:

profile
매일 개념 익히고 적용합니다

0개의 댓글