많은 프로세스들이 파일접근요청을 하는데, 이는 커널을 통해 디스크 시스템으로 전달
11.1 디스크의 구조
💡 전체 디스크의 용량 계산하기
sec_size * 한트랙당 섹터수 * 한면당 트랙수 * 면(디스크개수*2-2)
//위 아래는 보호면
디스크팩: 데이터를 저장
- 원판 디스크로 이루어짐
- 2가지 동작
- 회전축에의한 회전
- 붐(BOOM)에 의한 전후동작
- 디스크는 여러개의 트랙, 트랙은 여러개의 섹터
- 동심원의 트랙은 실린더라고 한다,
- 큰 프로그램은 실린더 단위로 저장 (헤드의 이동 최소)
디스크 드라이브: 데이터를 읽어내는 구동 장치
💡CAV (일정 각 속도) 하드디스크-회전속도가 일정
- 회전 속도가 항상 일정
- 바깥쪽 트랙이 더 빨리 돈다.& 바깥쪽 섹터의 길이 길지만 동일한 용량
- 바깥쪽섹터가 더 느슨하게 기록된다.
💡CLV (일정 선형 속도) CD,CDrom
- 모든 섹터의 밀도를 같게 하여 용량 up, 회전 속도를 조절
11.2 디스크 스케줄링
- FCFS
- 디스크 입출력 부하가 작을떄 적합
- 디스크 입출력 부하가 작을떄 적합
- SSTF 단위시간 당 처리량 BEST // 일괄처리에서 유용
- 가장 가까운 요구 먼저 서비스
- 응답시간 예측성이 떨어짐
- 무한대기
- SCAN
- 응답시간의 분산을 줄여줌
- 스케쥴링 기법의 근간
- LOOK - 엘레베이터 알고리즘
- 진행방향 앞에 요구 없으면 내려감
- 3가지 특징
- 진행방향 같은 처리 빠름
- 뒤는 기다림
- 가운데 중심임
- N-step SCAN
- 새로 도착하는거 같은 방향이어도 미리 안 해줌
- 큐에 있어야 해줌
- K= 요청의 개수이자 큐의 사이즈
- SCAN에서 왔다갔다 스캔하는 시간이 빨라져 유효기간 내에 서비스를 받을 수 있다.
- C-SCAN variance 가장 낮춤
- 한 방향으로만 서비스
- 중앙 트랙과 양끝트랙 균등한 서비스
- Eschenbach
- 가장 가까운 요구 먼저 서비스
- 응답시간 예측성이 떨어짐
- 무한대기
- C-SCAN variance 가장 낮춤
- 한 회전 안에 처리되지 못한 서비스는 다음에 하자
- 한 트랙에 헤드가 머무르는 시간 = 한바퀴
- 탐색 시간 최적화 회전 지연 시작의 최적화를 추구
11.3 회전 지연 시간의 최적화
기본적으로 스펙에 달려있음
섹터큐잉 기법(SLTF)
- 각 섹터별로 별도의 큐를 두어 관리- 거의 최적에 가깝다.
11.4 디스크 관리를 위해
버퍼링
- 디스크의 입출력 횟수를 적어지게 한다.
- 커널공간 내에 버퍼 캐시, inode캐시를 두어 사용
- 단점
- 디스크 블록이 각각 다른 호스트에 접근가능(분산데이터베이스시스템)에서는 데이터의 일치성 체크
- 지역성이 껄어지며 hit ratio가 매우 낮을 수 있다.
디스크 스트라이핑 = 디스크 인터리빙
- 디스크 여러개로 나누어 독립적이고 병렬
- 접근 시간이 크게 단축
RAID 구조
- 신뢰성과 가용성을 늘리기 위함
- 0: 신뢰 X 그냥 디스크 스트라이핑
- 1: 미러링
- -0+1: 스트라이핑 미러링
- 2: 해밍코드를 이용한 중복
- 3: 패리티를 이용한 중복 — 병목
- 4:스트라이핑 + 패리티를 이용한 중복 — 병목
- 5: 분산 패리티 - 회전 패리티 배열 개념 사용 —주로사용
- 6: 분산 이중 패리티 —주로사용
'CS > 운영체제' 카테고리의 다른 글
Chapter 9: 가상 메모리의 관리 (0) | 2022.05.11 |
---|---|
Chapter 8: 가상 메모리 (0) | 2022.05.10 |
Chapter 7: 메모리 관리 (0) | 2022.05.09 |
Chapter 6: 교착 상태(Dead Lock) (0) | 2022.05.05 |
Chapter 5: 병행 프로세스와 동기화 (0) | 2022.05.03 |