티스토리 뷰
728x90
보조기억장치
- 전원이 꺼져도 사라지지 않는 비휘발성(non-volatile) 저장장치
- 데이터를 안전하게 보관하고 CPU가 필요로 하는 정보를 조금이라도 빠른 성능으로 메모리에게 전달하는 것이 목표
종류
- HDD: 자기적인 방식으로 데이터 읽고 쓰는 저장장치
- 플래시 메모리: 전기적 방식으로 데이터 읽고 쓰는 반도체 기반 저장장치
- ex) USB, SSD
RAID
- Redundant Array of Independent Disks
- 데이터의 안전성 혹은 성능을 확보하기 위해 여러 개의 독립적인 보조기억장치를 마치 하나의 보조기억장치처럼 사용하는 기술
- HDD, SSD 혼합 사용도 가능은 하지만 병목 발생할 수 있어 권장하지 않음
- RAID 레벨
- ex) RAID0, RAID1, RAID2, RAID3, RAID4, RAID5, RAID6, RAID10, RAID50, ….
- RAID0: 데이터를 여러 보조기억장치로 단순하게 본산 저장 (= 스트라이핑)
- RAID1: 완전한 복사본을 만들어 저장 (=미러링)
- RAID4: 패리티 정보를 저장하는 디스크를 따로 두는 구성 방식
- 패리티 (parity): 오류를 검출할 수 있는 정보
- Nested RAID: 여러 레벨 혼합 방식

저장장치 계층 구조

입출력장치
- 컴퓨터 외부에 연결되어 컴퓨터 내부와 정보를 교환하는 장치
- 입력장치 예: 마우스, 키보드
- 출력장치 예: 스피커, 모니터, 프린터
- 장치 컨트롤러 (device controller): CPU와 다양한 입출력장치 사이의 통신을 중개하는 역할의 하드웨어
- 장치 드라이버 (device driver): 장치 컨트롤러의 동작을 알고, 장치 컨트롤러가 컴퓨터 내부와 정보를 주고받을 수 있도록 하는 프로그램
프로그램 기반 입출력 (I/O): 프로그램 속 명령어로 입출력 작업을 수행하는 작업
- 고립형(isolated) 입출력: 입출력장치에 접근하려는 주소와 메모리에 접근하는 주소를 별도의 주소 공간으로 간주하는 방식
- 메모리 맵(memory mapped) 입출력: 입출력장치에 접근하는 주소 공간과 메모리에 접근하는 주소 공간을 구분하지 않고, 메모리에 부여된 주소 공간 일부를 입출력장치를 식별하기 위한 주소 공간으로 사용하는 방식

인터럽트 기반 입출력: 다중 인터럽트
- ex) 키보드, 마우스, 모니터, 스피커 등의 입출력장치를 동시에 사용하는 상황
- 다중 인터럽트 발생 시 일반적으로 우선순위가 높은 인터럽트를 우선적으로 처리
- 현재 처리 중인 인터럽트A보다 높은 우선순위의 인터럽트B 발생 시 B 처리 후 A를 마저 처리
- PIC (programmable interrupt controller)
- 여러 장치 컨트롤러에 연결되어있어 장치 컨트롤러에서 보낸 하드웨어 인터럽트 요청들의 우선순위를 판별한 뒤, CPU에게 지금 처리해야 할 하드웨어 인터럽트가 무엇인지 알려주는 장치
- 2개 이상의 계층으로 구성

DMA 입출력
- Direct Memory Access
- CPU를 거치지 않고 입출력장치와 메모리가 상호작용 할 수 있는 입출력 방식
- DMA 컨트롤러는 시스템 버스에 연결, 입출력 장치들은 입출력 버스라는 입출력 장치 컨트롤러의 전용 버스와 연결됨
- CPU는 DMA 컨트롤러와만 상호작용하여 입출력 부담 낮출 수 있음
- PCIe: 대표적인 입출력 버스

참고: 이것이 취업을 위한 컴퓨터 과학이다 with CS 기술 면접 (https://product.kyobobook.co.kr/detail/S000214014967)
728x90
'CS' 카테고리의 다른 글
| [CS] 메모리 - RAM, 엔디안, 캐시 (0) | 2025.11.19 |
|---|---|
| [CS] CPU - 레지스터, 인터럽트, 멀티코어/멀티스레드 (0) | 2025.11.12 |
| [컴퓨터 구조] 문자 인코딩 - ASCII, EUR-KR, 유니코드, Base64 (0) | 2025.11.05 |
| [컴퓨터 구조] 데이터, 명령어, 부동 소수점, 핵심 부품 (0) | 2025.11.02 |
댓글
300x250
공지사항
최근에 올라온 글
최근에 달린 댓글
- Total
- Today
- Yesterday
링크
TAG
- 캐시
- MySQL
- Spring
- database
- JUnit
- k8s
- docker
- kubernetes
- 분산처리
- 몽고디비
- CS
- springboot
- laravel
- 카프카
- Container
- 샤딩
- AOP
- devops
- java
- mongoDB
- 라라벨
- 스프링
- Infra
- NoSQL
- kafka
- 대규모 데이터 처리
- 쿠버네티스
- php
- index
- phpUnit
| 일 | 월 | 화 | 수 | 목 | 금 | 토 |
|---|---|---|---|---|---|---|
| 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 |
글 보관함