주변장치
저속 주변장치: 키보드, 마우스
고속 주변장치: 그래픽 카드, 하드 디스크
하나의 버스로 주변장치를 묶으면 저속장치가 고속장치의 데이터 이동 방해
채널: 데이터가 지나다니는 하나의 통로
전송속도가 비슷한 장치끼리 채널 할당 -> 전체 데이터 전송 속도 향상
초기의 구조
모든 장치 하나의 버스
입출력 명령 -> CPU가 작업 진행하다가 직접 입출력장치에서 데이터를 가져옴(폴링)
입출력 제어기를 사용한 구조
2개 채널
메인 버스: 고속
입출력 버스: 주변장치
CPU와 메모리의 작업이 느려지는 것을 막음 -> 전체 효율 향상
입출력 버스의 분리
3개 채널
메인 버스(+그래픽 카드), 고속 입출력 버스, 저속 입출력 버스
두 버스 사이의 데이터 전송 -> 채널 선택기가 관리
현대의 컴퓨터: 메인 버스, 그래픽 버스, 고속 입출력, 저속 입출력
직접 메모리 접근
입출력제어기가 CPU 없이 DMA 제어기를 통해 메모리에 접근
채널 선택기는 여러 채널에서 전송된 데이터 중 어떤 것을 메모리로 보낼 지 결정
메모리 공간 분할
메모리 맵 입출력:
메모리를 CPU 작업 공간과 DMA 제어기가 쓰는 공간을 분리하여 메인 메모리를 운영하는 것
주변 장치의 입출력 요구나 하드웨어의 이상을 알려주는 역할을 하는 신호
하드웨어 안전제거
버퍼가 다 찰 때까지 입출력 장치에 자료가 전송 X.
이 상태에서 장치제거 -> 버퍼 안의 데이터가 저장 X
각속도 일정 방식 : 하드 디스크 플래터
플래터->항상 일정한 속도로 회전
트랙마다 속도가 다름 -> 섹터의 크기 다름
장점: 단순하고 조용하게 작동
단점: 트랙의 섹터 수 동일, 바깥쪽 트랙에 낭비 공간
선속도 일정 방식 : CD
헤드->어느 트랙에서나 단위 시간당 디스크 이동거리 같음 (안쪽 빠름, 바깥 느림)
섹터 크기 같음 -> 모든 트랙의 섹터 수 다름
장점: 많은 데이터 저장, 낭비 공간 X
단점: 모터 제어 복잡, 소음
데이터 전송 시간 = 탐색 시간 + 회전 지연 시간 + 전송 시간
파티션
디스크를 논리적으로 분할하는 작업
1 파티션, 1 파일 시스템
대용량 하드디스크-> 여러 개로 나눠 사용하면 관리가 편함
여러 개의 하드 디스크를 하나의 파티션으로 통합해 사용하기도 함
마운트
유닉스 운영체제에서 여러 개의 파티션을 하나로 통합하는 기능
포매팅
사용할 수 있는 형태로 만드는 작업(디스크에 파일 시스템 탑재하고 디스크 표면 초기화)
빈 저장장치에 파일 태이블 탑재
빠른 포매팅: 데이터 그대로, 파일 테이블 초기화(사용하다가 다시 포매팅)
느린 포매팅: 디스크에 파일 시스템 탑재, 디스크 표면 초기화(하드 디스크 처음 사용)
조각모음
조각 많이 생김 -> 큰 파일 여러 조각으로 -> 읽을 때 여러 곳을 돌아다녀야 함 -> 성능 저하
주기적으로 조각 모음 필요
목적: 트랙의 이동을 최소화 -> 탐색 시간을 줄이는 것
1. FCFS
first come first serve
요청이 들어온 순서대로
SSTF
Shortest Seek Time First
현재 헤드가 있는 위치에서 가장 가까운 트랙부터
효율성 좋지만 아사현상(멀다는 이유로 우선순위 낮음)
블록 SSTF
큐를 블록 형태로 묶음, 블록 내에서 SSTF 알고리즘
공평성 보장(에이징 사용), 성능은 FCFS가 더 좋음
SCAN
헤드가 마지막 트랙에 도착할 때까지 한 방향으로만 이동
동일 트랙이나 실린더 요청이 연속적으로 발생 -> 아사현상
C-SCAN
Circular SCAN
헤드가 한쪽 방향으로 움직임, 반대방향으로 돌아올 때는 서비스 X
작업 없이 헤드 이동 -> 비효율적
동일 트랙 요청 연속적 발생 -> 아사현상
LOOK
한 방향으로 이동하다가 더이상 서비스할 트랙이 없으면 방향을 바꿈(SCAN과 차이)
C-LOOK
C-SCAN + LOOK
SLTF
Shortest Latency Time First
큐에 들어온 요청을 디스크의 회전 방향에 맞춰 재정렬하고 서비스
메인보드의 포트
CPU 포트, 램 포트, 그래픽 포트, SATA, PCI
직렬포트 병렬포트
직렬: 데이터 한 줄로 이동
병렬: 데이터 여러 줄로 이동
USB 포트