컴퓨터
- 필수 장치
- CPU
- 메모리
- 주변 장치
- 입출력 장치
- 저장 장치

1. 입출력 시스템
1. 입출력장치와 채널
컴퓨터의 각 장치는 버스로 연결되어 있는다. 데이터 전송 속도에 따라 구분할 수 있다.
버스 한개만 사용하면 병목현상이 발생하므로 여러개의 버스(채널)를 묶어서 사용한다.
- 저속 주변장치: 데이터양이 적어 데이터 전송률이 낮은 장치 (키보드)
- 고속 주변장치: 대용량의 데이터로, 전송률이 높은 장치를 말한다. (그래픽 카드, 하드디스크)
전송속도가 비슷한 장치끼지 묶어서 장치별로 채널을 할당하면 여러 패널을 효율적으로 사용하여 전체 데이터 전송속도를 향상할 수 있다.

2. 입출력 버스의 구조
초기의 구조
폴링 방식: 모든 장치가 하나의 버스로 연결되고, CPU가 작업을 진행하다가 입출력 명령을 만나면 직접 입출력장치에서 데이터를 가져왔다. (입출력이 끝날때까지 다른 작업을 할 수 없다.)

입출력 제어기를 사용한 구조
입출력 제어기: 메인버스와 입출력 버스 2개, 느린 입출력 장치로 인해 CPU와 메모리의 작업이 느려지는 것을 막을 수 있어 전체 작업 효율이 향상된다.

-> 고속 주변장치의 데이터 전송이 느려지는 문제
입출력 버스의 분리
입출력 버스를 고속 입출력 버스와 고속 입출력 버스로 분리하여 운영한다. 두 버스 사이 데이터 전송은 채널선택기가 관리한다.
고속 입출력 버스에서 데이터를 10번 받으면 저속 입출력 버스에서 데이터를 1번 받는 식으로 두 버스의 데이터 전송 속도를 조절한다.

- AGP: 그래픽 전용 포트, 대용량 데이터를 전송하기 위해 메인버스와 직접 연결된 그래픽 버스를 사용
-> 메인버스(CPU와 메모리), 그래픽 버스(CPU와 그래픽 카드), 고속 입출력 버스, 저속 입출력버스
- 하나의 버스 채널
- 주소버스: 데이터를 가져올 주소
- 데이터 버스: 실제로 송수신되는 데이터
- 제어버스: 명령어의 시작과 종료, 데이터의 이동 방향, 오류 처리, 인터럽트 같은 다양한 신호를 싣는다.
3. 직접 메모리 접근
입출력 제어기는 다양한 주변장치의 입출력을 대행하고 여러 채널에서 온 데이터를 메모로 옮기는 역할을 한다
직접 메모리 접근은 CPU명령없이 메모리에 접근할 수 있는 집출력 제어기 권한. 입출력 제어기에는 직접 메모리 접근을 위한 DMA 제어기가 마련되어 있다.

- 입출력 제어기 (여러 채널을 하나의 데이터 흐름으로) -> 채널 선택기(어떤 메모리로 보낼지) -> DMA제어기(메모리로 올라감)
이떄 메모리의 작업 공간이 겹친다. 때문에 DMA제어기는 별도의 메모리에 보관한다.
CPU의 작업 공간과 DMA 제어기의 데이터를 옮기는 공간을 분리하여 메인메모리를 운영한다.
- 메모리 맵 입출력(MMO): 메인 메모리의 주소 공간 중 일부를 DMA 제어기에 할당하여 작업 공간이 겹치는 것을 막는다.

4. 인터럽트
입출력과 인터럽트
입출력 제어기와 DMA 제어기의 작업이 완료되면 입출력 제어기는 CPU에 인터럽트(주변장치의 입출력 요구나 하드웨어의 이상 현상을 CPU에 알려주는 신호)를 보낸다.
- 외부 인터럽트 (하드웨어 인터럽트): 전원이상, 기계적 오류
- CPU가 요청한 작업을 완료했을 때
- 하드웨어에 이상이 발생했을 때
- 네트워크 카드에 새로운 데이터가 도착했을 떄
- 키보드로 데이터 받을 때
- 내부 인터럽트 (예외 상황 인터럽트)
- 프로세스 오류
- 사용자가 직접 발생시키는 인터런트 (시그널) 인터럽트 벡터
IRQ: 고유의 인터럽트 번호 (어디서 인터럽트를 받았는지 식별가능)
인터럽트가 발생하면 CPU는 IRQ를 보고 어떤 장치에서 인터럽트가 발생했는지 파악한다
인터럽트 벡터와 인터럽트 핸들러
인터럽트는 한 번에 하나가 발생하기도 하고 한꺼번에 여러 개가 발생하기도 한다.
- 인터럽트 벡터: 벡터값이 1이면 인터럽트 발생으로 간주
- 인터럽트 핸들러: 인터럽트가 발생하면 인터럽트 핸들러를 호출하 여 작업
인터럽트 벡터에는 해당 인터럽트 핸들러를 호출할 수 있도록 인터럽트 핸들러가 저장된 메모리 주소가 포인터 형태로 있다.

5. 단일 버퍼와 이중 버퍼
버퍼는 속도가 다른 두 장치의 속도 차이를 완화하는 역할을 한다
버퍼에 모아 한꺼번에 이동하면 효율적이다. (하드디스크, CD-ROM)
- 커널 버퍼: 커널이 입출력장치로 보내야 할 데이터를 버퍼에 담아놓으면 입출력 제어기가 커널 버퍼에서 입출력장치로 데이터를 보낸다.
- 입출력이 완료되지 전에 다른 작업을 할 수 있다.
- 스풀러: 출력할 데이터를 스풀러로 보낸 후 바 로 다음작업을 할 수 있다.
단일버퍼보다는 이중 버퍼가 더 유리하다.
단일 버퍼를 사용하면 데이터를 담는 작업과 퍼 가는 작업을 동시에 하기가 어렵다. 그러나 이중 버퍼를 사용하면 한 버퍼는 데이터를 담는 용도로 쓰고 다른 버퍼는 데이터를 가져가는 용도 로 쓸 수 있다.

2. 저장장치
1. 저장장치의 종류
하드디스크
원반을 사용한 저장장치로, 맨 앞에 있는 데이터나 맨 뒤에 있는 데이터에 접근하는 속도가 거의 비슷하다.
하드디스크는 메모리를 보조하는 장치라는 의미에서 제2저장장치라고 불린다.

- 플래터: 자성체의 자기를 이용하여 0과 1의 데이터를 저장할 수 있다. (N극이면 0, S극이면 1)
- 섹터와 블록:
- 섹터: 하드디스트의 가장 작은 저장 단위, 하나의 섹터에는 한 덩이리의 데이터가 저장된다.
- 블록(클러스터): 여러 개의 섹터로 구성되며
- 트랙과 실린더:
- 트랙: 플래터에서 회전축을 중심으로 데이터가 기록되는 동일한 동심원상에 있는 섹터의 집합을 말한다.
- 헤드는 디스트 암에 고정되어 있어서 모든 헤드가 항상 같이 움직인다.헤드는 여러 플래터의 같은 위치에 있는 트랙을 동시에 읽어나 쓸 수 있다.
- 실리더: 여러 개의 플래터에 있는 같은 트랙의 집합
- 헤더와 플래터:
- 헤드의 수 = 플래터의 표면 수
- 배드 섹터: 플래터 표면에 상터가 나면 데이터를 저잘할 수 없게 된다.
- 파킹: 플래터 표면에 흠집이 나지 않도록, 데이터가 저장되어 있지 않은 플래터의 바깥쪽으로 헤드가 이동
-> 하드디스크는 반도체를 이용한 저장장치보다는 느리다. 메모리와 속도차이가 난다.
-> 단편화 현상: 조각 발생 -> 헤드가 여러 곳을 돌아다녀서 속도가 느려진다. -> 주기적으로 조각모음
SSD
SSD는 하드디스크에 속도차이를 극복, 전원이 사라져도 데이터를 보관할 수 있는 플래시 메모리로 구성된다.
데이터 입출력 속도 빠르고, 소음도 없고, 크기가 작고, 외부 충격에 강하고, 소모되는 전력량과 발열수준이 낮다. 근데 비쌈.
-> 단편화 현상: 조각 발생 -> 데이터 접근 속도에 영향이 없다. -> 조각모음 하지 마라
CD
CD는 원반을 사용, 휴대할 수 있는 소형 원반에 데이터를 저장한다.
CD -> DVD -> 블루레리디스트(듀얼레이어)
CD의 트랙과 섹터:
CD는 표면에 미세한 홈이 파여 있어 헤드에서 발사된 레이저가 홈에 들어가 반사되지 않으면 0, 반사되어 돌아오면 1로 인식한다.
하드디스크와 CD의 비교
- 하드디스크 성능 단위: RPM: 일정한 속도, 밖 -> 안
- 각속도 일정 방식의 회전: 바깥쪽에 있는 섹터가 가장 안쪽에 있는 섹터보다 더 크다.
- 각속도 일정 방식의 섹터: 트랙마다 속도가 다르다, 트랙의 섹터 수가 같고 바깥쪽 섹터의 크기가 안쪽 섹터 보다 크다.
- 밖으로 갈 수록 낭비 되지만, 단순하고 조용하게 작동
- CD의 성능 단위: 배속: 회전 속도 변화, 안 -> 밖
- 선속도 일정 방식의 회전: 단위 시간당 이동 거리가 같다. (안쪽이 빠르고, 바깥은 드리게)
- 선속도 일정 방식의 섹터: 속고가 같고, 섹터가 같다. 모든 트랙의 섹터 수가 다르다.
- 낭비 문제는 없지만, 모터 제어가 복잡하고 소음이 발생한다.


2. 디스크 장치의 데이터 전송 시간

1. 탐색 시간: 읽기 원한느 섹터가 있는 트랙까지 헤드가 이동해야 한다.
(조각이 많으면 헤드가 여기저기 돌아다녀서 속도가 느려진다. -> 조각모음, 디스트 스케줄링 기법)
2. 회전 지연 시간: 트랙까지 이동한 헤드가 원하는 섹터를 만날 때까지 기다린다.
3. 전송 시간: 헤드는 원하는 섹터에 있는 데이터를 읽어 전송한다.
데이터 전속 시간 = 탐색시간 + 회전 지연 시간 + 전송 시간
3. 디스크 스케줄링
- 디스크 스케줄링은 트랙의 이동을 최소화하여 탐색의 시간을 줄이는 목적
1. FCFS 디스크 스케줄링 - 순서
요청이 들어온 트랙 순서대로 서비스 한다.
7 + 9 + 6 + 8 + 20 + 4 + 5 + 6 = 65

2. SSTF 디스크 스케줄링 - 거리 > 순서
현재 헤드가 있는 위치에서 가장 가까운 트랙부터 찾는다.
1+ 3 + 3 + 1 + 3 + 12 + 3 + 5 = 31로

-> 아사현상: 헤더가 중간에 있으면, 가장 안쪽이나 가장 바깥쪽에 있는 트랙은 확률이 낮아진다.
3. 블록 SSTF 디스트 스케줄링 - 블록으로 거리 > 순서
공정성 위배를 해결
큐에 있는 트랙 요청을 일장한 블록 형태로 묶는다. -> 현재에거 가장 먼 트랙의 블록 끝으로 이동 -> 반복
멀리 있는 트랙도 몇 번만 양보하면 도착할 수 있다.


2 + 9 + 3 + 8 + 20 + 3 + 1+ 5 = 51
-> 에이징으로 공평성 보장
4. SCAN 디스크 스케줄링 - 한 방향으로
공정성 위해 문제 완화
헤드가 한 방향으로만 움직이면서 서비스 한다: 헤드가 움직이면 맨마지막 트랙에 도달할때 까지 되돌아가지 않고 계속 앞으로만 전진한다.
1 + 3 + 3 + 5 + 3 + 17 + 2 + 1 + 3 = 38

-> 공정성 덜 위배
-> 중간에 있는 트랙을 두 번씩 방문 (바깥쪽이 상대적으로 불이익)
5. C-SCAN 디스트 스케줄링
헤드가 한쪽 방향으로 움직일 때는 요청받은 트랙을 서비스하고 반대방향으로 갈때 서비스하지 않고 이동만 한다.
1 + 3 +3 +5 + 3 +24 + 1 + 3 + 1 + 2 = 46으

6. LOOK 디스크 스케줄링
효율을 높인 기법
더이상 서비스할 트랙이 없으면 헤드가 끝까지 가지 않고 중간에서 방향을 바꾼다.

1 + 3 + 3 + 5 + 17 + 2 +1 + 3 = 35로
7. C=LOOK 디스트 스케줄링
1 + 3 + 3 + 5 + 20 + 3 + 1 + 2 = 38

8. SLTF 디스크 스케줄링 (최소 지연 우선 기법)
드럼을 사용하는 일부 하드디스크의 경우 헤드 지지대를 고정하고, 모든 트랙을 읽을 수 있는 여러 개의 헤드를 지지대에 부착한다.
작업 요청이 들어온 섹터의 순서를 정렬한다. ( 섹터의 순서를 디스크가 회전하는 방향에 맞추어 다시 정렬한다. )

4. RAID
1. RAID의 개요
RAID: 자동으로 백업하고 장애가 발생하면 이를 복구하는 시스템으로 '레이드'라고 읽는다.
RAID는 동일한 규격의 디스크를 여러 개 모아 구성하며, 장애가 발생했을 때 데이터를 복구하는 데 사용된다.
- 미러링: 2개의 디스크에 거울처럼 똑같은 내용을 저장한다
- 스트라이핑: 디스크가 4개일때 각각의 디스크에 1개씩 4개의 데이터를 동시에 저장하여 입출력 속도를 높일 수 있다.
2. RAID 0 (스트라이핑) -- 복구 x
병렬로 연결된 여러 개의 디스크에 데이터를 동시에 입출력할 수 있도록 구성된다.
4개의 데이터를 동시에 저장한다. ( A1, A2, A3, A4) 가 4개의 디스크에 동시에 저장된다.

- 일반 시스템보다 입출력 속도가 4배 빠르다.
- 장애 발생 시 복구하는 기능이 없다.
3. RAID 1 (미러링)
하나의 데이터를 2개의 디스크에 나누어 저장하여 장애 시 백업 디스크로 활용한다.
데이터가 똑같이 여러 디스크레 복사되기 때문에 미러링이라고 한다.
디스크가 최소 2개 이상 필요하며 짝수 개로 구성된다.

- 같은 데이터를 여러 디스크에 저장하기 때문에 장애 발생 시 미러링된 디스크를 활용해 데이터를 복구할 수 있다.
- 디스크가 하나 더 필요해서 비용이 증가한다.
- 같은 내용을 두번 저장하기 때문에 속도가 느려질 수 있다.
4. RAID 2
오류 교종 코드(ECC)를 따로 관리하고, 오류가 발생하면 이 코드를 이용하여 디스크를 복구한다.
- 오류 검출 코드: 오류가 발생했는지 확인할 수 있는 코드 (패리티 코드)
- 오류 교정 코드: 오류가 발생했는지 확인하는 동시에 오류를 교정할 수 있는 코드 (해밍 코드)
메모리는 패리티 코드를 갖고 있어 오류 수정을 못하지만, RAID2는 오류를 찾고 교정까지 한다.
오류 교정 코드를 별도의 디스크에 따로 보관하고 있다가 장애가 발생하면 이를 이용하여 데이터를 복구하는 것이다.

비트로 저장하면, 각 비트의 오류 교정 코드를 구성하여 나중에 비트 단위 복구하고, 비트별로 별도의 디스크에 저장되며, 장애 발생 시 이 코드를 이용해 데이터를 복구한다.
- N개의 디스크에 대해 오류 교정 코드를 저장하기 위한 N-1개의 추가 디스크가 필요하다.
- 이는 RAID 1보다 적은 저장공간이다.
- 하지만, 오류 교정 코드를 계산하는 데 많은 시간이 소비된다.
5. RAID 3
패리티 비트를 이용한 오류 복구 방법
- 짝수 패리티 비트: 1의 총수를 짝수로 만드는 것
- 홀수 패리티 비트: 1의 총수를 홀수로 만드는 것

장애가 생겨서 복구해야 한다면 짝수 패리티 비트와 나머지 디스크의 1의 개수를 근거로 세 번째 디스크 값을 알 수 있다.
짝수 패리티 비트 이므로 3번째 디스크의 값은 1이 된다.

섹터 간위로 나누어 데이터를 저장한다.
일반적으로 디스크는 섹터 단위로 읽기 때문에 어떤 섹터에 오류가 있는지 여부를 알 수 있다.
N-way 패트리 비트: 패터리 비트를 여러 섹터끼리 묶어서 구성하면 오류가 없는 섹터를 이용하여 오류가 있는 섹터의 데이터를 복원할 수 있다.
데이터를 쓰거나 읽을 때 패터리 비트를 구서하기 위해 모든 디스크가 동시에 동작해야 한다. (진한 색)
- 추가되는 디스크가 적다.
- 계산량이 많다.
6. RAID 4

하나의 디스트에 블록 단위로 저장하고 패트리 비트를 블록과 연결하여 구성한다.
데이터가 저장되는 디스크와 패리티 비트가 저장되는 디스크만 동작한다.
- 계산량은 많은데, 추가 디스크의 양이 적다.
- 데이터의 병목 현상: 모든 패리티 비트가 하나의 디스크에 저장되기 떄문에 입출력이 일어날 때마다 패리티 비트 디스크에 데이터가 저장되어 병목 현상이 발생한다.
- 패리티 비트 디스크와 다른 디스크에서 동시에 장애가 발행할 경우 복구가 안 된다.
7. RAID 5
RAID4의 패리티 비트를 여러 디스크에 분산하여 구성한다. -> 디스크의 병목현상 완화
패리티 비트를 해당 데이터가 없는 디스크에 보관한다.

- 한 디스크에 장애가 발생하면 다른 디스크에 있는 패리티 비트를 이용하여 데이터를 복구할 수 있다.
- 디스트 2개에 동시에 장애가 발생하면 복구가 불가능하다. ( 디스크 2개에 동시에 장애가 발생하면 패리티 비 트가 사라지기 때문이다.)
8. RAID 6
RAID5와 같지만 패리티 비트가 2개이다.
패러티 비트를 2개로 구성하여 분산하므로 디스크 2개의 장애를 복구할 수 있다.

- 계산량이 많고, 추가 디스크가 필요
9. RAID 10
RAID 0 (빠른 입출력) + RAID 1 (미러링)
- RAID 0 + 1: 디스크 2개씩 묶어 RAID0구성 -> RAID1로 묶는다.
- RAID 10: 디스크 2개씩 묶어 RAID1 구성 -> RAID0으로 묶는다.

- 공
- 둘다 병렬로 데이터를 처리하여 입출력 속도를 높일 수 있다.
- 장애 발생 시 미러링된 디스크로 복구가 가능하다.
- 차
- RAID 0 + 1: 장애 발생시 모든 디스크 일시 중단
- RAID10: 장애 발생시 일부 디스크 중단.
10. RAID 50과 RAID 60
- RAID 50: RAID 5 + RAID 0
- RAID 60: RAID 6 + RAID 0

5. 하드웨어의 규격과 발전
1. 포트의 규격
메인보드의 포트

- CPU 포트
- 램포트
- 그래픽 포트: AGP (외부 그래픽 카드와 연결)
- SATA: 저장장치와 연결하는 직렬 ATA 포트 ( SSD, CD-ROM )
- PCI: 주변장치와 연결하는 PCI 버스 인터페이스
직렬 포트와 병렬 포트
직렬 방식: 1차선 도로: 마우스 키보드 (느린 장치)
병렬 방식: 여러 차선 도로: 프린터, 하드디스크(빠른 장치)
USB 포트
기존의 다양한 연결 방식을 대체하기 위해 만든 포트
표준 연결 포트
USB 1.0은 초당 1.5Mbit(15OKB)를 전송할 수 있고, 최신 규격인 USB 3.0은 초당 5Gbit(500MB)를 전송할 수 있다.
포트 연결 단자

- USB: 주변장치에 연결하는 범용 포트
- SATA: 하드디스크, SSD, CD-RIM
- D-SUB
- DVI: 디지털 디스플레이 장치 화질에 최적화된 표준 영상 인터페이스 (사운드 단자와 따로 연결해야 한다.)
- HDMI: 비압충 방식의 디지털 비디오/오디오 인터페이스 규격
2. CD의 규격
CD는 디지털 음원이나 디지털 데이터를 저장하기 위해 지름 12cm 크기의 원반
오디오용 CD에는 약 74분 분량의 음원 파일이 저장되고 디지털 데이터에는 약 650MB가 저장된다.
선속도 일정 방식: 작은 디스크에 많은 양의 데이터를 넣기 위해
각속도 일정 방식: 맨 바깥쪽 트랙의 음질 이 가장 좋고 맨 안쪽 트랙의 음질이 가장 좋지 않다.
- 영화는 MPEG 레벨 1
- MP3는 MPEG 레벨 3
- MP4는 MPEG 레벨 4
아날로구 -> 디지털: HDTV, DVD 등장
SHD -> FHD -> Quad HD -> 울트라 HD
3. 그래픽카드의 발전
3차원 게임의 발전으로 많은 계산이 필여해서 GPU가 추가됨.
GPU는 본질적인 역할은 모니터에 그래픽을 출력하는 것인데 3D 게임의 발달로 계산 능력 이 월등히 향상되었다.
GPU는 그래픽 계산을 병렬로 처 리하도록 설계되어 있다.
출처 : 조성호 , 『IT CookBook, 쉽게 배우는 운영체제(2판)』한빛아카데미(2023).
'COMPUTER SCIENCE > OS' 카테고리의 다른 글
| [쉽게 배우는 운영체제 2판] 9장 연습문제 (0) | 2025.09.20 |
|---|---|
| [쉽게 배우는 운영체제 2판] 11. 파일 시스템 (0) | 2025.06.06 |
| [쉽게 배우는 운영체제 2판] 9. 가상 메모리 관리 (0) | 2025.05.27 |
| [쉽게 배우는 운영체제 2판] 8장 연습문제 (0) | 2025.05.23 |
| [쉽게 배우는 운영체제 2판]8. 가상 메모리의 기초 (0) | 2025.05.23 |