Notice
Recent Posts
Recent Comments
Link
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 | 31 |
Tags
- Flutter
- pintos
- corou
- defee
- 핀토스
- userprog
- 크래프톤 정글
- 시스템콜
- 나만무
- 코드트리
- TiL
- 티스토리챌린지
- 4기
- 알고리즘
- 모션비트
- Vue.js
- 스택
- 백준
- Java
- JavaScript
- HTML
- 자바
- 오블완
- 크래프톤정글
- 소켓
- 자바스크립트
- CSS
- 사이드프로젝트
- 리액트
- 큐
Archives
- Today
- Total
미새문지
크래프톤 정글 week05, day36 - 디스크 저장 장치 본문
728x90
디스크
- RAM 메모리의 수천 메가 바이트 단위에 비해 수백에서 수천 기가바이트 단위의 엄청난 양의 데이터를 저장하는 대표적인 저장 장치
- 하지만 디스크에서 정보를 읽는 데에는 밀리 초 단위로 걸리며, 이것은 SRAM보다 백만 배 더 길고 DRAM보다 십만 배 더 걸리는 것이다.
- 데이터를 영구적으로 저장 가능하며 일반적으로 하드디스크(HDD)를 사용한다.
- 디스크의 구성 요소
- 플래터(Platters)
- 디스크의 주요 저장 매체로, 얇고 원판 모양의 금속 또는 유리 플레이트이며, 매우 미세한 페라마그네틱 재료 코팅이 되어 있어, 이를 통해 데이터를 저장한다.
- 플래터의 개수가 많아질수록 용량이 늘어난다.
- 리드/라이트 헤드(Read/Write Heads)
- 플래터 위에 떠있는 소형 기기로, 플래터에 정보를 쓰거나 플래터에서 정보를 읽는 역할을 한다.
- 각 플래터 면에 대해 한 개의 리드/라이트 헤드가 있다.
- 스핀들(Spindle)
- 플래터를 중심축으로 회전시키는 역할을 하며, 스핀들의 속도는 디스크 드라이브의 성능에 큰 영향을 미친다.
- 액추에이터(Arm Actuator)
- 리드/라이트 헤드를 플래터의 적절한 위치로 이동시키는 역할을 한다.
- 플래터(Platters)
- 데이터는 플래터의 표면에 미세한 자기장으로 저장되며, 이는 리드/라이트 헤드에 의해 읽혀지거나 쓰여진다. 디스크의 회전과 함께 헤드가 플래터 위를 움직이며 해당 위치의 데이터에 접근할 수 있다.
- 이러한 구조 덕분에 디스크 저장장치는 대량의 데이터를 안정적으로 오랜 기간 동안 보관할 수 있다. 하지만 물리적인 움직임에 의존하기 때문에 솔리트 스테이트 드라이브(SSD)와 같은 플래시 기반 저장 장치에 비해 상대적으로 속도가 느리다.
디스크 용량
- 디스크에 기록될 수 있는 최대 비트 수는 간단히 용량이라고 부르거나 디스크의 최대 용량이라고 한다.
- 요소
- 기록밀도(bits/in)
- 1인치의 트랙에 집어넣을 수 있는 비트의 수
- 트랙밀도(tracks/in)
- 원판 중심에서 반지름의 1인치 길이에 넣을 수 있는 트랙의 수
- 면적밀도(bits/in^2)
- 기록밀도와 트랙밀도의 곱
- 기록밀도(bits/in)
- 디스크의 용량 계산 식
- 섹터 당 몇 바이트 * 트랙 당 평균 몇 섹터 * 표면 당 트랙 수 * 원판의 표면 수 * 디스크의 원판 수
- 섹터(sector) 당 512byte * 트랙(track) 당 300개의 섹터 * 표면(surface) 마다 20,000개의 트랙 * 원판에 2개의 표면 * 5개의 원판(platters)으로 계산했을 때
- 총 30,720,000,000 bytes(30.72GB)
- B → KB → MB → GB → TB → PB…
디스크의 동작
- 스핀들과 플래터의 회전
- 디스크 내부의 스핀들 모터가 작동하면 이에 연결된 플래터들이 회전하기 시작하는데, 이 회전 속도는 디스크의 성능에 큰 영향을 미치며 일반적으로 초당 수천 회에서 수만 회 사이이다.
- 리드/라이트 헤드의 이동
- 데이터를 읽거나 쓸 위치가 결정되면 액추에이터가 리드/라이트 헤드를 해당 위치로 이동시키는데, 이 헤드는 플래터 위를 떠다니며 플래터와 미세한 거리를 유지한다.
- 데이터의 쓰기
- 데이터를 디스크에 쓸 때 리드/라이트 헤드는 플래터 표면의 미세한 영역에 자기장을 생성하는데, 이 자기장은 플래터 표면의 방향을 바꾸어, 이진 데이터(0과 1)를 표현한다.
- 데이터의 읽기
- 데이터를 읽을 때 리드/라이트 헤드는 플래터 표면에서 자기장을 감지하는데, 이 자기장의 방향에 따라 0 또는 1의 이진 데이터를 읽어들인다.
< 단일 원판의 모습 >
< 다중 원판의 모습 >
- 디스크 표면은 일정한 비율로 회전한다.
- 읽기/쓰기 헤드는 팔의 끝 부분에 부착되어 있으며, 얇은 공기 쿠션 위에 디스크 표면 위를 날아간다.
- 팔은 빠르게 이동하면서 읽기/쓰기 헤드를 모든 트랙 위에 놓을 수 있다.
- 디스크는 데이터를 섹터 크기의 블록으로 읽고 기록하는데, 섹터에 접근하는 시간은 세 개의 주요 부분으로 이루어진다.
- 탐색 시간
- 리드/라이트 헤드가 디스크의 특정 트랙으로 이동하는데 걸리는 시간.
- 헤드가 현재 위치에서 목표 트랙으로 이동하는데 얼마나 빠른지에 따라 결정된다.
- 탐색 시간
-
- 회전 지연 시간
- 헤드가 원하는 섹터가 헤드 아래로 회전할 때까지 기다리는 시간.
- 디스크의 회전 속도에 따라 결정되며, 일반적으로 평균 회전 지연 시간은 디스크의 회전 속도의 절반으로 계산된다.
- 회전 지연 시간
-
- 전송 시간
- 실제로 데이터가 헤드를 통해 메모리로 이동하는데 걸리는 시간
- 읽거나 쓸 데이터의 양과 디스크의 데이터 전송 속도에 따라 결정된다.
- 전송 시간
논리적 디스크 블록
- 논리 블록 주소(Logical Block Addressing, LBA)라고도 불리며 컴퓨터 저장장치에서 데이터 블록을 참조하는 메소드이다.
- CHS(Cylinder-Head-Sector) 주소 체계는 물리적 디스크 구조에 직접 매핑되지만, LBA는 물리적 세부 정보를 추상화한다. 대신 논리적 블록 번호만을 사용해 저장장치의 각 섹터를 일련의 연속적인 번호로 참조한다.
- CHS
- 디스크 드라이브에 저장된 데이터의 위치를 참조하는데 사용되는 물리적 주소 체계이다.
- 실린더 번호, 헤드 번호, 섹터 번호의 세 가지 값으로 고유하게 식별될 수 있다.
- ex) CHS(10, 2, 50) → 10번 째 실린더, 2번 째 헤드, 50번 째 섹터
- CHS
-
-
- 구조
- Cylinder(실린더) : 여러 개의 플래터가 쌓여 형성되는 구조. 같은 반경에 위치한 트랙들이 하나의 실린더를 형성한다.
- 구조
-
-
-
-
- Head(헤드) : 헤드는 플래터의 각 면에 위치한 데이터를 읽고 쓰는 장치이다. 각 플래터 면마다 헤드가 하나씩 있다.
-
-
-
-
-
- Sector(섹터) : 트랙을 일정한 크기로 나눈 영역으로, 디스크의 가장 작은 데이터 단위이다. 한 섹터는 일반적으로 512바이트 또는 4킬로 바이트의 데이터를 저장할 수 있다.
-
-
입출력 장치 연결
- 그래픽 카드, 모니터, 마우스 등의 입출력 장치(I/O)들은 입출력 버스로 CPU와 메인 메모리에 연결된다.
- 직접 메모리 접근(Direct Memory Access, DMA)
- 입출력 장치가 시스템 메모리에 직접 접근할 수 있게 하며, CPU의 부하를 줄이고 데이터 전송 속도를 높일 수 있다.
- 하드 디스크나 그래픽 카드 등이 이 방식을 사용
- 직접 메모리 접근(Direct Memory Access, DMA)
-
- 폴링(Polling)
- CPU는 주기적으로 입출력 장치의 상태를 확인(폴링)하여 데이터를 전송할 준비가 되었는지 확인한다.
- 이 방식은 간단하지만, CPU의 계산 자원을 많이 사용하므로 효율적이지 않을 수 있다.
- 폴링(Polling)
-
- 인터럽트(Interrupt)
- 입출력 장치는 데이터를 전송할 준비가 되면 CPU에 인터럽트 신호를 보낸다. CPU는 이 신호를 받으면 현재 작업을 일시 중단하고 입출력 작업을 처리한다.
- 이 방식은 CPU 자원을 효율적으로 사용할 수 있지만, 너무 많은 인터럽트가 CPU의 성능을 저하시킬 수 있다.
- 인터럽트(Interrupt)
-
- 포트 매핑(Port-Mapped I/O)
- 입출력 장치를 메모리의 일부분으로 취급하여, 메모리 주소를 통해 장치에 접근한다.
- 이 방식은 주로 저수준 프로그래밍에서 사용되며, 입출력 장치의 통제를 더욱 유연하게 할 수 있다.
- 포트 매핑(Port-Mapped I/O)
- 이외에도 USB, HDMI 등의 표준화된 물리적 연결 방식이 존재한다.
학습 시간 : 10 ~ 25시
728x90
'크래프톤 정글 > TIL' 카테고리의 다른 글
크래프톤 정글 week05, day38 - 연휴 과제 - 이진 트리, 이진 탐색 트리 (1) | 2024.02.21 |
---|---|
크래프톤 정글 week05, day37 - 연휴 과제 - 큐, 스택 (2) | 2024.02.21 |
크래프톤 정글 week05, day35 - 연휴 과제 - 연결리스트 (1) | 2024.02.21 |
크래프톤 정글 week05, day34 - 저장 장치 기술 (1) | 2024.02.21 |
크래프톤 정글 week05, day33 - 포인터 문제 -1 (2) | 2024.02.21 |