본문 바로가기
운영체제

[OS] 대량 저장 구조(Mass-Storage Structure)

by 파스텔코랄 2023. 5. 8.

하드디스크 내부

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

디스크 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), 디스크 주소, 섹터 수

  • 요청이 완료되면 디스크 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

댓글