일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 |
- 파싱
- 클래스
- 도커
- 데이터베이스
- 스케줄러
- React
- 자료구조
- 언어모델
- 컴파일러
- 836
- css
- 프로세스
- 자연어처리
- DB
- 운영체제
- C언어
- docker
- 웹소프트웨어
- OS
- 파싱테이블
- 소프트웨어공학
- 오픈소스웹소프트웨어
- Linear Algebra
- 객체지향설계
- 정보검색
- 데이터분석
- 컴파일
- 가상메모리
- NLP
- 랩실일기
- Today
- Total
observe_db
[OS] 10. Secondary Storage Management(보조기억장치 관리) 본문
(강의 날짜)
Part 1.
보조기억장치(secondary storage)
- 대량의 저장공간 제공
- 블록 단위 접근(read/write)
- 저속 접근
- 순차적 저장장치(sequential storage) ex) 자기테이프
- 무작위 접근 저장장치(random access storage) ex) 자기 디스크, 플래시 메모리
보조기억장치 관리 필요성
- 전체 시스템 성능의 병목(bottleneck)에 해당
- 보조기억장치 성능향상이 전체 성능에 크게 기여 가능
- 소프트웨어적 성능향상과 하드웨어적 성능 향상
구조
직접 연결 저장장치(direct-attached storage, DAS)
- I/O 버스에 연결된 I/O 포트에 장착된 저장장치
네트워크 연결 저장장치(Network-attached storage, NAS)
- 네트워크를 통해 연결된 저장장치
- NFS(network file system)와 같은 client-server 방식으로 접근 제어
- 파일 시스템 구조 및 통신 부담 때문에 확장성(scalability) 및 접근 속도 제약
- 파일 단위로 관리
광저장장치 영역 네트워크(Storage Area Network, SAN)
- 광체널(fibre channel)등 고성능 네트워크를 통해 원격 컴퓨터의 보조기억장치를 대규모로 공유하도록 하는 구조
- 전체 저장장치가 하나의 파일 시스템으로 간주
- 블록 단위 접근
- NAS 보다 일반화
자기디스크(magnetic disk)
- 물리적으로 구동되는 원반(platter)과 암(arm) 포함
- 자기 디스크를 트랙(track)과 섹터(sector)로 구분
접근시간(access time)
- 탐색시간(seek time): 헤드를 움직여 적절한 트랙 위로 이동하는데 걸리는 시간
- 회전 지연시간(rotational latency): 헤드를 대상 섹터 위로 이동하는 데 걸리는 시간
- 전송 시간(transfer time): 데이터를 주고받는데 걸리는 시간
디스크 입출력 시스템
구성
- 호스트 버스 어뎁터(host bus adapter, HBA)
- 시스템 보드에서 하드디스크 컨트롤러로 명령어를 전송하고, 데이터를 주고받는 역할
- 디스크 컨트롤러(disk controller)
- 하드디스크에 대한 저수준 연산 제어
- 하드디스크에 내장
- 디스크(disk)
- 인터페이스 프로토콜(interface protocol)
Part 2.
디스크 스케줄링(disk scheduling)
- 디스크 드라이브에 대한 접근시간을 줄일 수 있도록 디스크에 대한 서비스 요청을 효과적으로 관리하는 것
- 성능 척도
- 처리량: 단위 시간당 처리되는 요청의 개수
- 평균 응답시간: 요청이 처리될 때까지 대기한 평균 시간
- 응답시간의 분산: 응답시간의 예측성 측정
- 스케줄링 목적
- 처리량 최대화
- 응답시간 및 응답시간의 분산 최소화
탐색시간 최적화 스케줄링
선착순(FCFS) 스케줄링
- 먼저 도착한 요청 우선적으로 서비스 받게 처리
- 장점
- 공평(fair)
- 무기한 대기 방지
- 낮은 구현 비용
- 단점
- 낮은 처리량 가능(무작위 탐색 패턴)
최단 탐색시간 우선(SSTF) 스케줄링
- 탐색 거리가 가장 짧은 요청이 먼저 서비스
- FCFS보다 높은 처리량, 짧은 응답시간
- 일괄처리 시스템에 적합
- 공평성 보장X(무기한 대기의 가능성)
- 응답시간의 분산이 큼-> 대화형 시스템 부적합
SCAN 스케줄링
- 헤드가 이동하는 방향에서 가장 가까이 있는 요청 먼저 서비스
- 헤드가 끝까지 가면 다시 반대쪽으로 끝까지 가면서 요청 처리
- 진행 방향에 새로 도착하는 요청도 처리
- 무기한 대기 발생X
C-SCAN 스케줄링
- 헤드는 항상 바깥쪽 실린더에서 안쪽 실린더로 이동하면서 가장 짧은 탐색 시간을 갖는 요청 처리
- SCAN 방식에 비해 대기 시간 균등화
FSCAN(Freeze SCAN) 스케줄링
- 주기적으로 디스크 요청 대기열을 고정하여 이때 대기열에 있는 요청만 처리
- 도중에 도착하는 요청은 다음 주기에
N-Step SCAN 스케줄링
- 요청 대기열의 처음 N개의 요청 단위로 SCAN 방식으로 처리
- 응답시간 분산을 축소시키는 효과
LOOK 스케줄링
- 일명 엘리베이터 알고리즘
- SCAN과 유사하나 헤드를 움직일 때 진행방향에 요청이 없으면 마지막 실린더까지 가지 않음
C-LOOK 스케줄링
- C-SCAN을 LOOK과 같이 처리
회전 지연시간 최적화
회전 최적화(rotational optimization)
- 과거에는 탐색 시간만 주된 최적화 요소
- 기술의 발전에 따라 회전 지연시간도 동일한 단위(order)의 시간 요구
최단지연시간우선(SLTF) 스케줄링
- 현재 실린더에서 회전 지연이 가장 적은 것 먼저 처리
이동시간 및 접근시간 스케줄링
최단 위치이동 시간 우선(Shortest-positioning-time-first, SPTF) 스케줄링
- 위치이동시간 == 탐색시간 + 회전지연
- 위치이동시간이 최소인 요청부터 처리
- 무기한 대기 요청 가능성
최단 접근시간 우선 스케줄링(SATF)
- 접근시간 == 위치이동시간 + 전송시간
- 접근시간 최소인 요청부터 처리
- 무기한 대기 요청 가능성
마감시간 디스크 스케줄링
- 무기한 대기 상황을 피하기 위해 디스크 요청에 대해 마감시간 부여.(시간 이내에 요청 처리)
- 읽기 마감시간 기본 500ms
- 쓰기 마감시간 기본 5s
- 마감시간 대기열
- 읽기 요청 및 쓰기 요청 각각을 관리하는 FIFO 대기열
- 정렬된 대기열
- 읽기 요청 및 쓰기 요청을 섹터번호의 증가 순으로 관리하는 대기열
- 각 요청은 마감시간 대기열과 정렬된 대기열에 각각 삽입
- 읽기 요청을 쓰기 요청보다 우선 처리
- 마감시간 대기열의 첫번째 요청 확인 => 마감시간 초과 요청을 먼저 처리
- 정렬된 대기열에서 여러 요청을 순차적으로 처리
- 리눅스에서 기본 디스크 스케줄링 방법
완전공정 대기열 디스크 스케줄링(CFQ)
- 프로세스마다 I/O 대기열 보유, 최대한 균등하게 예약
- 많은 프로세스가 세세한 I/O를 많이 발생시킬 때 적합
- Fedora Core 커널 패키지의 기본 제공
디스크 스케줄링
- 효과가 미미한 경우도 발생(CPU를 많이 사용하는 프로세스 위주의 환경에서)
- 디스크 요청이 디스크 상에서 무작위 위치로 발생할 때 효과적
- 파일 시스템의 구조에 따른 영향도 발생 가능
디스크 캐시(disk cache)
- 디스크 데이터의 사본을 더 빠른 메모리에 저장
- 주 메모리, 보드상 캐시, 또는 디스크 컨트롤러에 위치
- 디스크보다 빠른 접근 지원
- 디스크가 여유로워질 때까지 디스크에 기록할 데이터를 잠시 보관
- write-through caching: 수정시 바로 디스크에도 기록
- write-back-caching: 수정 내용을 디스크 캐시에 저장했다가 주기적으로 디스크 기록
Part3.
RAID(Redundant Array of Inexpensive Disks/Redundant Array of Independent Disks)
- 여러개의 하드디스크에 일부 중복된 데이터를 나눠서 저장
- 디스크 용량/성능/신뢰도 개선목적
Level 0-스트리핑
- 파일을 여러개의 조각으로 나누어 디스크에 분산 저장
- 스트립별로 R/W 가능(처리속도 개선)
Level 1-미러링
- 복사본 유지
Level 2
- Bit level Hamming ECC Parity 사용
- Bit 수준에서 스트리핑: 하나의 word가 여러 디스크에 나누어져 저장
- 별도의 패리티 비트를 저장하는 디스크 사용
- ECC(Error Correction Code) 계산 시간 부담 발생
Level 3
- Bit-level XOR ECC Parity
- XOR을 사용하여 ECC 계산(1개 디스크만)
Level 4
- Block-Level XOR ECC Parity
- RAID Level 3와 유사- 비트수준이 아닌 블록 수준 스트라이핑
Level 5
- Block-Level Distributed XOR ECC Parity
- Level 4와 유사-패리티 정보가 디스크에 분산 저장
Level 6
- Level 5와 유사- 2비트 패리티 정보가 디스크에 분산 저장
비교

[0] 주석
'학교 공부 > 운영체제(OS)(3-1)' 카테고리의 다른 글
[OS] 12. 보안 (0) | 2023.06.02 |
---|---|
[OS] 11. File System(파일 시스템) (0) | 2023.06.02 |
[OS] 9. Virtual Memory Management(가상 메모리 관리) (0) | 2023.05.16 |
[OS] 8. Memory Management(메모리 관리) (0) | 2023.05.12 |
[OS] 6. 교착상태와 무기한 연기 (0) | 2023.04.10 |