하드디스크 내부
움직이는 헤드 디스크 메커니즘

디스크 I/O 서비스 시간(service time)
- 탐색 시간(Seek time) + 회전 지연(Rotation delay) + 데이터 전송 시간(Data transfer time)
- 탐색 시간(Seek time)
- 디스크 헤드를 원하는 트랙으로 이동하는 시간
- 탐색 시간 ≈ 탐색 거리
- 회전 지연(Rotation delay)
- 원하는 섹터가 디스크 헤드로 회전하는 데 걸리는 시간
- 최선의 경우 = 0
- 최악의 경우 = 1회전 시간
- 데이터 전송 시간(Data transfer time)
- 디스크 미디어에서 디스크 버퍼로 또는 그 반대로 데이터를 전송하는 시간
- 탐색 시간 또는 회전 지연 >> 데이터 전송 시간
하드 디스크
플래터의 범위는 .85"에서 14"(역사적으로)
- 일반적으로 3.5", 2.5", 1.8"
드라이브당 30GB ~ 3TB 범위
성능
- 전송 속도(이론적) : 6Gb/sec
- 유효 전송 속도(실제) : 1Gb/sec
- 3ms ~ 12ms – 9ms의 탐색 시간 : 데스크톱 드라이브에 공통
- 측정 또는 계산된 평균 탐색 시간 : 트랙의 1/3 기준
- 스핀들 속도에 따른 대기 시간 : 1 / (RPM / 60) = 60 / RPM
- 평균 대기 시간 = 1/2 대기 시간
SSD(Solid-State Disks)
하드 드라이브처럼 사용되는 비휘발성 메모리 - 다양한 기술 변화
HDD보다 더 안정적일 수 있다.
MB당 더 비싸다
아마도 수명이 더 짧다.
용량 감소
훨씬 더 빠르다.
버스 속도가 너무 느릴 수 있다. → 예를 들어 PCI에 직접 연결
움직이는 부품이 없으므로 탐색 시간, 회전 대기 시간이 없다.
자기 테이프(Magnetic Tape)
초기 보조 저장 매체 - 오픈 스풀에서 카트리지로 진화
비교적 영구적, 대량의 데이터 보유
액세스 시간이 느리다.
Disk보다 최대 1,000배 느린 랜덤 액세스
주로 백업, 자주 사용하지 않는 데이터 저장, 시스템 간 전송 매체에 사용
스풀에 보관되어 읽기-쓰기 헤드를 지나 감거나 되감음
일단 데이터가 처리되면 디스크와 비슷한 전송 속도 - 140MB/초 이상
200GB - 1.5TB 일반 스토리지
NAS(네트워크 연결 스토리지)
로컬 연결(예: 버스)이 아닌 네트워크를 통해 사용 - 파일 시스템에 원격 연결
NFS 및 CIFS는 공통 프로토콜
IP 네트워크에서 일반적으로 TCP 또는 UDP를 통해 호스트와 스토리지 간의 RPC(원격 프로시저 호출)를 통해 구현
iSCSI 프로토콜은 IP 네트워크를 사용하여 SCSI 프로ㄴ토콜을 전송 - 장치(블록)에 원격으로 부착

디스크 스케줄링 알고리즘
디스크 I/O 스케줄러
- 일반적으로 새로운 서비스 요청(Request)은 요청 대기열에 배치
- Request : 디스크 I/O 스케줄러의 스케줄링 단위.
- 유형(R/W), 디스크 주소, 섹터 수
- Request : 디스크 I/O 스케줄러의 스케줄링 단위.

- 요청이 완료되면 디스크 I/O 스케줄러가 다음 요청을 선택
- 평균 디스크 I/O 서비스 시간은 디스크 I/O 스케줄링 알고리즘에 따라 달라진다.
디스크 스케줄링 알고리즘 목표
- 탐색 시간 및 회전 지연을 최소화
- 디스크 컨트롤러의 실린더 기반 매핑

- 그러나 운영 체제는 회전 지연을 추정할 수 없다.
- 회전 속도와 디스크 트랙당 섹터 수가 다르다.
- 일반적으로 디스크 스케줄링은 탐색 시간을 최소화하는 데 중점
디스크 스케줄링 알고리즘 평가
- 요청 대기열의 상태와 디스크 헤드의 현재 위치가 제공
- → 각 디스크 스케줄링 알고리즘에 대해 총 헤드 이동이 계산
FCFS(First Come First Served)
도착 순서에 따라 요청을 처리
- 예) 대기열 상태 → R1(25), R2(92), R3(56), R4(4), R5(17), R6(52), R7(10), R8(32)
- 디스크 헤드의 위치 → 22

탐색 거리가 너무 길다.
SSTF(Shortest Seek Time First)
현재 헤드 위치에서 최소 탐색 시간으로 요청을 처리
- 예) 대기열 상태 → R1(25), R2(92), R3(56), R4(4), R5(17), R6(52), R7(10), R8(32)
- 디스크 헤드 위치 → 22

그리디 알고리즘
일부 요청이 부족(기아 상태)해질 수 있다.
SCAN
디스크 헤드는 디스크의 한쪽 끝에서 시작하여 다른 쪽 끝으로 이동하여 헤드 이동이 반대로 되고 서비스가 계속될 때까지 요청을 처리
엘리베이터 알고리즘
- 예) 대기열 상태 → R1(25), R2(92), R3(56), R4(4), R5(17), R6(52), R7(10), R8(32)
- 디스크 헤드 위치 → 22

C-SCAN
SCAN의 변형
SCAN보다 더 균일한 대기 시간을 제공
다른 쪽 끝에 도달하면 반환 요청을 처리하지 않고 디스크의 시작 부분으로 즉시 돌아간다.
- 예) 대기열 상태 → R1(25), R2(92), R3(56), R4(4), R5(17), R6(52), R7(10), R8(32)
- 디스크 헤드의 위치 → 22

C-LOOK
C-SCAN의 실질적인 구현
디스크 헤드는 각 방향의 최종 요청까지만 진행
그런 다음 디스크 끝까지 가지 않고 바로 방향을 반대로 바꾼다.
- 예) 대기열 상태 → R1(25), R2(92), R3(56), R4(4), R5(17), R6(52), R7(10), R8(32)
- 디스크 헤드의 위치 → 22

디스크 포맷
물리적 포맷(로우수준 포맷)
- 디스크를 사용하기 전에 디스크 컨트롤러가 읽고 쓸 수 있는 섹터로 분할
- 대부분의 하드 디스크는 제조 과정에서 물리적으로 포맷
- 이 과정에서 각 섹터에 대한 특별한 데이터 구조가 추가

- 헤더와 트레일러에는 디스크 컨트롤러가 사용하는 정보가 포함
- 예) 섹터 번호, 오류 수정 코드(ECC)
파티션
- 디스크는 여러 개의 논리 디스크로 나눌 수 있다.

- 운영 체제는 각 파티션을 개별 디스크처럼 처리
논리적 포맷
- 운영 체제는 초기 파일 시스템 데이터 구조를 저장
슈퍼블록, 빈 공간 비트맵 등.

스왑 공간 관리
스왑 공간
- 가상 메모리는 디스크 공간을 주 메모리의 확장으로 사용
- 구현 두 가지 유형
- 파일 시스템의 일반 파일(예: 윈도우)
- 별도의 디스크 파티션(예: UNIX)

요약
- 디스크 I/O 서비스 시간
탐색 시간, 회전 지연, 데이터 전송 시간의 합 - 디스크 I/O 스케줄러
요청이 완료되면 요청 대기열에서 다음 요청을 선택
탐색 시간을 최소화 - 디스크 I/O 스케줄링 알고리즘
SSTF, SCAN, C-SCAN - 디스크를 사용하기 전에 물리적 및 논리적으로 포맷
- 스왑 공간
파일 시스템 또는 별도의 디스크 파티션에서 일반 파일로 구현 가능
'운영체제' 카테고리의 다른 글
[OS] 파일 시스템 인터페이스(File System Interface) (0) | 2023.05.15 |
---|---|
[OS] I/O Systems (0) | 2023.05.15 |
[OS] 가상메모리(Virtual Memory) (0) | 2023.05.01 |
[OS] 메인메모리(Main Memory) (0) | 2023.04.24 |
[OS] 교착상태(Deadlocks) (0) | 2023.04.17 |
하드디스크 내부
움직이는 헤드 디스크 메커니즘

디스크 I/O 서비스 시간(service time)
- 탐색 시간(Seek time) + 회전 지연(Rotation delay) + 데이터 전송 시간(Data transfer time)
- 탐색 시간(Seek time)
- 디스크 헤드를 원하는 트랙으로 이동하는 시간
- 탐색 시간 ≈ 탐색 거리
- 회전 지연(Rotation delay)
- 원하는 섹터가 디스크 헤드로 회전하는 데 걸리는 시간
- 최선의 경우 = 0
- 최악의 경우 = 1회전 시간
- 데이터 전송 시간(Data transfer time)
- 디스크 미디어에서 디스크 버퍼로 또는 그 반대로 데이터를 전송하는 시간
- 탐색 시간 또는 회전 지연 >> 데이터 전송 시간
하드 디스크
플래터의 범위는 .85"에서 14"(역사적으로)
- 일반적으로 3.5", 2.5", 1.8"
드라이브당 30GB ~ 3TB 범위
성능
- 전송 속도(이론적) : 6Gb/sec
- 유효 전송 속도(실제) : 1Gb/sec
- 3ms ~ 12ms – 9ms의 탐색 시간 : 데스크톱 드라이브에 공통
- 측정 또는 계산된 평균 탐색 시간 : 트랙의 1/3 기준
- 스핀들 속도에 따른 대기 시간 : 1 / (RPM / 60) = 60 / RPM
- 평균 대기 시간 = 1/2 대기 시간
SSD(Solid-State Disks)
하드 드라이브처럼 사용되는 비휘발성 메모리 - 다양한 기술 변화
HDD보다 더 안정적일 수 있다.
MB당 더 비싸다
아마도 수명이 더 짧다.
용량 감소
훨씬 더 빠르다.
버스 속도가 너무 느릴 수 있다. → 예를 들어 PCI에 직접 연결
움직이는 부품이 없으므로 탐색 시간, 회전 대기 시간이 없다.
자기 테이프(Magnetic Tape)
초기 보조 저장 매체 - 오픈 스풀에서 카트리지로 진화
비교적 영구적, 대량의 데이터 보유
액세스 시간이 느리다.
Disk보다 최대 1,000배 느린 랜덤 액세스
주로 백업, 자주 사용하지 않는 데이터 저장, 시스템 간 전송 매체에 사용
스풀에 보관되어 읽기-쓰기 헤드를 지나 감거나 되감음
일단 데이터가 처리되면 디스크와 비슷한 전송 속도 - 140MB/초 이상
200GB - 1.5TB 일반 스토리지
NAS(네트워크 연결 스토리지)
로컬 연결(예: 버스)이 아닌 네트워크를 통해 사용 - 파일 시스템에 원격 연결
NFS 및 CIFS는 공통 프로토콜
IP 네트워크에서 일반적으로 TCP 또는 UDP를 통해 호스트와 스토리지 간의 RPC(원격 프로시저 호출)를 통해 구현
iSCSI 프로토콜은 IP 네트워크를 사용하여 SCSI 프로ㄴ토콜을 전송 - 장치(블록)에 원격으로 부착

디스크 스케줄링 알고리즘
디스크 I/O 스케줄러
- 일반적으로 새로운 서비스 요청(Request)은 요청 대기열에 배치
- Request : 디스크 I/O 스케줄러의 스케줄링 단위.
- 유형(R/W), 디스크 주소, 섹터 수
- Request : 디스크 I/O 스케줄러의 스케줄링 단위.

- 요청이 완료되면 디스크 I/O 스케줄러가 다음 요청을 선택
- 평균 디스크 I/O 서비스 시간은 디스크 I/O 스케줄링 알고리즘에 따라 달라진다.
디스크 스케줄링 알고리즘 목표
- 탐색 시간 및 회전 지연을 최소화
- 디스크 컨트롤러의 실린더 기반 매핑

- 그러나 운영 체제는 회전 지연을 추정할 수 없다.
- 회전 속도와 디스크 트랙당 섹터 수가 다르다.
- 일반적으로 디스크 스케줄링은 탐색 시간을 최소화하는 데 중점
디스크 스케줄링 알고리즘 평가
- 요청 대기열의 상태와 디스크 헤드의 현재 위치가 제공
- → 각 디스크 스케줄링 알고리즘에 대해 총 헤드 이동이 계산
FCFS(First Come First Served)
도착 순서에 따라 요청을 처리
- 예) 대기열 상태 → R1(25), R2(92), R3(56), R4(4), R5(17), R6(52), R7(10), R8(32)
- 디스크 헤드의 위치 → 22

탐색 거리가 너무 길다.
SSTF(Shortest Seek Time First)
현재 헤드 위치에서 최소 탐색 시간으로 요청을 처리
- 예) 대기열 상태 → R1(25), R2(92), R3(56), R4(4), R5(17), R6(52), R7(10), R8(32)
- 디스크 헤드 위치 → 22

그리디 알고리즘
일부 요청이 부족(기아 상태)해질 수 있다.
SCAN
디스크 헤드는 디스크의 한쪽 끝에서 시작하여 다른 쪽 끝으로 이동하여 헤드 이동이 반대로 되고 서비스가 계속될 때까지 요청을 처리
엘리베이터 알고리즘
- 예) 대기열 상태 → R1(25), R2(92), R3(56), R4(4), R5(17), R6(52), R7(10), R8(32)
- 디스크 헤드 위치 → 22

C-SCAN
SCAN의 변형
SCAN보다 더 균일한 대기 시간을 제공
다른 쪽 끝에 도달하면 반환 요청을 처리하지 않고 디스크의 시작 부분으로 즉시 돌아간다.
- 예) 대기열 상태 → R1(25), R2(92), R3(56), R4(4), R5(17), R6(52), R7(10), R8(32)
- 디스크 헤드의 위치 → 22

C-LOOK
C-SCAN의 실질적인 구현
디스크 헤드는 각 방향의 최종 요청까지만 진행
그런 다음 디스크 끝까지 가지 않고 바로 방향을 반대로 바꾼다.
- 예) 대기열 상태 → R1(25), R2(92), R3(56), R4(4), R5(17), R6(52), R7(10), R8(32)
- 디스크 헤드의 위치 → 22

디스크 포맷
물리적 포맷(로우수준 포맷)
- 디스크를 사용하기 전에 디스크 컨트롤러가 읽고 쓸 수 있는 섹터로 분할
- 대부분의 하드 디스크는 제조 과정에서 물리적으로 포맷
- 이 과정에서 각 섹터에 대한 특별한 데이터 구조가 추가

- 헤더와 트레일러에는 디스크 컨트롤러가 사용하는 정보가 포함
- 예) 섹터 번호, 오류 수정 코드(ECC)
파티션
- 디스크는 여러 개의 논리 디스크로 나눌 수 있다.

- 운영 체제는 각 파티션을 개별 디스크처럼 처리
논리적 포맷
- 운영 체제는 초기 파일 시스템 데이터 구조를 저장
슈퍼블록, 빈 공간 비트맵 등.

스왑 공간 관리
스왑 공간
- 가상 메모리는 디스크 공간을 주 메모리의 확장으로 사용
- 구현 두 가지 유형
- 파일 시스템의 일반 파일(예: 윈도우)
- 별도의 디스크 파티션(예: UNIX)

요약
- 디스크 I/O 서비스 시간
탐색 시간, 회전 지연, 데이터 전송 시간의 합 - 디스크 I/O 스케줄러
요청이 완료되면 요청 대기열에서 다음 요청을 선택
탐색 시간을 최소화 - 디스크 I/O 스케줄링 알고리즘
SSTF, SCAN, C-SCAN - 디스크를 사용하기 전에 물리적 및 논리적으로 포맷
- 스왑 공간
파일 시스템 또는 별도의 디스크 파티션에서 일반 파일로 구현 가능
'운영체제' 카테고리의 다른 글
[OS] 파일 시스템 인터페이스(File System Interface) (0) | 2023.05.15 |
---|---|
[OS] I/O Systems (0) | 2023.05.15 |
[OS] 가상메모리(Virtual Memory) (0) | 2023.05.01 |
[OS] 메인메모리(Main Memory) (0) | 2023.04.24 |
[OS] 교착상태(Deadlocks) (0) | 2023.04.17 |