보조 기억장치
오늘날 보조기억장치는 크게 2가지다.
- 하드 디스크 드라이브
- 플래시 메모리 기반 저장장치
하드디스크
➡ 요약: 플래터가 회전하면 헤드가 데이터를 읽고 쓰고, 스핀들은 이걸 빠르게 돌려줌!
- 스핀들(Spindle) → 플래터를 고속 회전시켜 데이터 접근 속도를 높임.
- 플래터(Platter) → 데이터가 저장되는 디스크(자기디스크)로, 여러 장이 쌓여 있음.
- 헤드(Head) → 플래터 표면에서 데이터를 읽고 쓰는 역할을 함.
플래시 메모리
전기적인 방식으로 데이터를 읽고 쓰는 반도체 기반의 저장장치 ( USB 메모리, SD카드,SSD )
얘네 역할은 2가지임
- 전원이 꺼져도 데이터를 안전하게 보관
- CPU가 필요로 하는 정보를 조금이라도 빠른 성능으로 메모리에 전달
→ 얘네(데이터)들을 빠르고 안전하게 다루는 방법?!
RAID다.
🔥 RAID (Redundant Array of Independent/Inexpensive Disks)란?
RAID는 여러 개의 디스크를 묶어 속도, 안정성, 용량을 최적화하는 기술이다. (HDD,SSD로 구상 가능)
➡ 데이터를 빠르게 저장하거나, 고장 시 복구할 수 있도록 설계된 다양한 RAID 레벨이 있다.
🎯 RAID의 주요 목적
- 속도 향상 (Performance Boost) → 여러 디스크에서 데이터를 동시에 읽고 쓰기
- 데이터 보호 (Redundancy) → 디스크 하나가 고장 나도 복구 가능
- 대용량 스토리지 구성 → 여러 디스크를 하나처럼 사용
🚀 주요 RAID 레벨 종류
RAID 레벨 특징 장점 단점
RAID 0 (스트라이핑, Striping) | 데이터를 여러 디스크에 나눠 저장 | 속도 가장 빠름 🚀 | 디스크 하나라도 고장 나면 데이터 손실 😨 |
RAID 1 (미러링, Mirroring) | 동일한 데이터를 두 개 이상의 디스크에 복사 | 안정성 최강 💾 | 용량 비효율적 (디스크 절반만 사용 가능) |
RAID 4 (전용 패리티, Dedicated Parity) | 데이터를 나눠 저장 + 패리티(오류 복구용 데이터)는 한 디스크에 저장 | 데이터 복구 가능 | 패리티 디스크가 병목(bottleneck)이 됨 |
RAID 5 (패리티 분산, Distributed Parity) | 데이터를 나눠 저장 + 패리티를 여러 디스크에 분산 | 속도+안정성 밸런스 좋음 ⚖️ | 최소 3개 디스크 필요, 쓰기 성능 다소 낮음 |
RAID 6 (이중 패리티, Double Parity) | RAID 5보다 더 강력한 보호 (디스크 2개까지 고장 허용) | 보안성 최강 🔥 | 최소 4개 디스크 필요, 속도 다소 낮음 |
RAID 10 (RAID 1+0, 스트라이핑 + 미러링) | RAID 0 + RAID 1 조합 (빠르고 안전함) | 속도+보안 최고 🚀💾 | 디스크 절반만 사용 가능 (비효율적) |
🎯 RAID 4 vs RAID 5
항목 RAID 4 RAID 5
패리티 저장 방식 | 한 개의 전용 패리티 디스크 사용 | 모든 디스크에 패리티를 분산 |
속도 | 읽기 속도 빠름, 쓰기는 병목 발생 | 읽기·쓰기 균형 좋음 |
복구 가능성 | 디스크 1개 고장 시 복구 가능 | 디스크 1개 고장 시 복구 가능 |
단점 | 패리티 디스크가 병목이 됨 | 패리티 연산이 많아 쓰기 속도 다소 느림 |
추천 용도 | 읽기 작업이 많은 환경 | 속도+보안 밸런스가 필요한 환경 |
✅ 요약
- RAID 4 → 전용 패리티 디스크가 있어서 쓰기 병목 발생 가능
- RAID 5 → 패리티를 분산시켜 속도와 안정성 균형 좋음
💡 어떤 RAID를 써야 할까?
✅ 속도 최우선 → RAID 0
✅ 데이터 안전성 최우선 → RAID 1, RAID 5, RAID 6
✅ 속도+보안 둘 다 → RAID 10
✅ 읽기 성능 위주, 단순한 데이터 보호 → RAID 4
🔥 한 줄 요약
- RAID 0 → 빠름, 하지만 고장 나면 끝
- RAID 1 → 백업 강력하지만 용량 비효율
- RAID 4 → 패리티 전용 디스크 사용, 쓰기 병목 가능
- RAID 5 → 패리티 분산, 속도와 안정성 밸런스 좋음
- RAID 6 → 디스크 2개까지 고장 허용 (안정성 최고)
- RAID 10 → 속도+안전성 최상급, 하지만 비효율적
레이드를 혼합할 수도 있다. (Nested RAID)
- RAID0 , RAID1 = RAID10
- RAID0, RAID5 = RAID50
🔥 입출력 기법 & 인터럽트 처리 요약
장치 컨트롤러 & 장치 드라이버
- 장치 컨트롤러(Device Controller) → CPU와 입출력장치 간 통신을 담당하는 하드웨어
- 장치 드라이버(Device Driver) → 운영체제(OS)가 장치 컨트롤러와 소통할 수 있도록 돕는 소프트웨어
- 입출력장치는 CPU와 직접 연결되지 않고 컨트롤러를 통해 작동함.
- OS가 기본적으로 제공하는 드라이버가 있지만, 특정 장치는 별도로 설치해야 함.
1. 입출력 기법 3가지
입출력 방식 설명 장점 단점
프로그램 입출력 (Programmed I/O) | CPU가 직접 장치를 지속적으로 확인하면서 데이터 전송 | - 구현이 단순하고 하드웨어 요구사항이 적음 | - CPU가 계속 바빠서 다른 작업 수행 불가 (비효율적) |
인터럽트 기반 입출력 (Interrupt I/O) | 입출력 장치가 작업 완료 시 CPU에 인터럽트를 발생시켜 알림 | - CPU가 다른 작업을 수행할 수 있어 효율적- CPU의 불필요한 대기 시간 감소 | - 인터럽트 발생 시 오버헤드(부하)가 증가할 수 있음 |
DMA (Direct Memory Access) 입출력 | CPU 개입 없이 장치 컨트롤러가 직접 메모리와 데이터 교환 | - CPU의 부담 감소- 대용량 데이터 전송에 최적화됨 | - DMA 컨트롤러가 필요하여 하드웨어 복잡성 증가 |
✅ 요약
- Polling → 단순하지만 CPU 낭비 심함 ❌
- Interrupt → 효율적이지만 인터럽트 오버헤드 발생 ⚖️
- DMA → CPU 부담을 줄이고 대용량 데이터 전송에 적합 🚀
➡ 속도와 효율성을 고려하면 일반적으로 DMA 방식이 가장 선호됨! 😆🔥
➡ 정리
- 장치 컨트롤러 = CPU와 장치 연결하는 하드웨어 중개자
- 장치 드라이버 = 컨트롤러와 OS를 연결하는 소프트웨어
- 입출력 방식: Polling(비효율) → Interrupt(효율적) → DMA(고속 최적화)
2. 다중 인터럽트 (Multiple Interrupts)
- 여러 개의 인터럽트가 동시에 발생할 때 우선순위를 정해 처리하는 방식
- 처리 방법
- 순차 처리 → 발생한 순서대로 인터럽트를 처리
- 우선순위 처리 → 더 중요한 인터럽트가 들어오면 먼저 처리 후 기존 작업 재개
- NMI(Non-Maskable Interrupt) → 무조건 처리해야 하는 인터럽트 (예: 하드웨어 오류)
3. DMA (Direct Memory Access)
- CPU를 거치지 않고 입출력장치와 메모리 간 데이터를 직접 주고받는 방식
- 작동 과정
- CPU가 DMA 컨트롤러에게 입출력 작업 명령
- DMA 컨트롤러가 직접 데이터 전송
- 완료 후 CPU에 인터럽트 발생 (작업 완료 알림)
✅ 사이클 스틸링 (Cycle Stealing)
- CPU가 메모리 버스를 사용할 때 DMA 컨트롤러가 틈틈이 버스를 사용하여 데이터를 전송
4. PIC (Programmable Interrupt Controller)
- 여러 입출력장치에서 발생하는 인터럽트의 우선순위를 관리하는 하드웨어
- 장치마다 IRQ (Interrupt Request) 번호가 있어 특정 장치의 인터럽트를 관리
5. PCIe (Peripheral Component Interconnect Express)
- 입출력 버스(PCI)의 발전된 형태, GPU, SSD, 네트워크 카드 연결 시 사용
- 버전별 속도 차이 (레인당 최대 속도)
- PCIe 3.0 → 985MB/s
- PCIe 4.0 → 1.969GB/s
- PCIe 5.0 → 3.94GB/s
- PCIe 6.0 → 7.56GB/s
- PCIe 7.0 → 15.13GB/s
✅ PCIe x1, x4, x8, x16 → 레인 수가 많을수록 속도가 증가
🔥 최종 요약
- Polling I/O → CPU가 직접 확인 (비효율적)
- Interrupt I/O → 작업 완료 시 CPU에 알림 (효율적)
- DMA I/O → CPU 없이 장치가 직접 메모리와 데이터 교환 (고속 최적화)
- 다중 인터럽트 → 인터럽트 우선순위 처리
- PIC → 인터럽트 우선순위 관리하는 하드웨어
- PCIe → 최신 고속 입출력 버스 (SSD, GPU, 네트워크 카드 연결)
🔥 속도와 효율성을 고려하면 DMA 방식이 가장 선호됨!
'Study > CS' 카테고리의 다른 글
03-2 프로세스와 스레드 (1) | 2025.02.12 |
---|---|
03-1 운영체제 큰그림 (0) | 2025.02.12 |
02-4 메모리 (0) | 2025.02.05 |
02-3 CPU (0) | 2025.02.05 |
02.컴퓨터 구조 (2) | 2025.01.22 |