입출력 시스템
입출력 장치와 채널
- 컴퓨터의 각 장치는 메인보드에 있는 버스로 연결
- 데이터 전송 속도에 따라 저속 주변장치와 고속 주변장치로 구분
- 저속 주변 장치
- 메모리와 주변 장치 사이의 데이터 전송량이 적어 데이터 전송률이 낮은 장치
- 키보드 / 마우스 등이 해당
- 고속 주변 장치
- 메모리와 주변 장치 사이의 데이터 전송량이 커 데이터 전송률이 높은 장치
- 그래픽카드 / 하드디스크 등이 해당
- 버스에는 많은 주변 장치가 연결되어 있는데, 버스를 하나만 사용하는 경우엔 병목 현상이 발생 할 수 있음
- 채널
- 여러 개의 버스를 묶어서 사용하는데, 데이터를 지나다니는 하나의 통로
- 도로의 차선과 비슷한 개념
- 4채널 버스는, 4개의 주변 장치가 동시에 데이터를 주고받을 수 있는 4차선 도로와 동일
- 채널의 공유 / 분리
- 주변 장치는 저마다 데이터 전송 속도가 다름
- 같은 차선에 느린 데이터 전송 속도를 가진 버스가 있으면, 버스가 막힘
- 따라서 속도가 비슷한 장치끼리 묶어 채널을 분리하여 사용하는것이 병목 현상을 줄일 수 있음
입출력 버스의 구조
- 초기
- 모든 장치가 하나의 버스로 연결
- CPU가 작업을 진행하다가, 입출력 명령을 만나면 입출력 장치에서 직접 데이터를 가져 옴 → 풀링 방식
- 입출력이 끝날 때 까지 다른 작업을 할 수 없음
- 입출력 제어기 사용
- 주변장치의 입출력을 대행해주는 장치
- 여러 채널에서 온 데이터를 메모리로 옮기는 역할을 함
- 모든 입출력을 입출력 제어기에 맡기는 구조로 변경
- 메인 주방장이 주방 보조를 둔 것과 같은 효과
- 메인버스 ( 고속으로 작동하는 CPU / 메모리가 사용 ) / 입출력 버스 ( 주변 장치가 사용 )로 나뉨
- 입출력 버스 분리
- 주변 장치들 사이에서도 속도 차이가 남
- 고속 주변장치의 데이터 전송이 저속 주변 장치 때문에 느려지는 일이 빈번하게 발생
- 저속 / 고속 입출력 장치의 버스를 분리하여 운영
- 채널 선택기
- 데이터 전송을 저속 / 고속 입출력 채널 에서 데이터를 받는데, 고속에서 10번 받아야 저속 버스에서 1번을 받는 식으로 데이터 받는 속도를 조절
- 그래픽 카드는 AGB ( Accelerated Graphics Port )라는 그래픽 카드 전용 포트로 관리
- 메인 버스와 직접 연결된 그래픽 버스를 활용
- 즉, 컴퓨터에선 메인 버스 / 그래픽 버스 / 고속, 저속 입출력 버스를 사용 중
- 직접 메모리 접근 ( Directrly Memory Access )
- 메모리는 CPU의 명령에 따라 작동
- CPU의 도움 없이도 메모리에 접근 할 수 있도록 입출력 제어기에 부여된 권한
- 메인 메모리에 CPU가 사용하는 공간과는 분리 된 공간인 입출력 메모리에 접근 함
- 링크 : 인터럽트 참고
디스크 장치
디스크 장치의 종류
- 하드디스크
- 순차적으로 데이터에 접근하는 방식 ( 테이프 드라이브 )이 아닌, 원반을 활용하여 앞 / 뒤에서 접근하는 속도가 비슷해 진 저장 장치
- 플래터
- 자성을 활용하여 0, 1의 데이터를 저장하는 곳
- N극을 띄면 0 / S극을 띄면 1로 인식
- 보통 2장 이상으로 구성되며, 일정한 속도로 회전되고, 회전 속도를 rpm ( rotation per minute ) 이라고 표기
- 섹터 / 블록
- 섹터
- 하드디스크의 가장 작은 저장 단위
- 하나의 섹터에는 한 덩어리의 데이터가 저장 됨
- 블록
- 하드디스크와 컴퓨터 사이에 데이터를 전송하는 논리적인 저장 단위 중 가장 작은 단위
- 여러개의 섹터로 구성 됨
- 클러스터 라고도 표기 됨 ( in window )
- 운영체제 입장에서는, 하드디스크에 데이터를 보내거나 받을 때 블록이 가장 작은 단위가 됨
- 트랙 / 실린더
- 트랙
- 플래터에서 회전축을 중심으로 데이터가 기록되는 동심원에 있는 섹터의 집합
- 동일한 동심원상에 있는 섹터의 집합
- 실린더
- 헤드
- 데이터를 하드디스크에 읽거나 쓸 수 있도록 해주는 장치
- Read / Write 헤드로 구분 되어 있음
- 데이터가 저장되는 플래터 표면 수와 같은 헤드 수가 있음
- 플래터가 회전하면, 헤드는 약간 뜬 상태로 유지됨
- 헤드가 플래터에 붙어버리면, 해당 섹터는 저장을 할 수 없는 구역이 될 수 있는데, 이 구역을 배드 섹터라고 지칭
- 컴퓨터가 종료 될 때, 헤드를 플래터의 맨 바깥쪽으로 이동시키나, 갑작스런 정전, 코드를 갑자기 뽑았을 때 등 전력이 갑자기 없어지면, 헤드가 이동되지 못해 배드 섹터가 생길 수 있음
- CD
- 원반을 사용하는 저장 장치 중 하나
- 트랙 / 섹터로 구성되며, 수평으로 움직이는 헤드가 트랙 사이를 움직이면서 데이터를 읽음
- 하드디스크는 자성으로 0 / 1을 구분하지만, CD는 원반에 홈을 파고, 헤드에서 발사된 레이저가 홈에 들어가 반사가 되지 않으면 0 / 반사가 되어 돌아오면 1로 구분
- CD를 굽는다는 표현 자체가, CD에 홈을 내는 것에서 비롯 된 것
- 하드디스크 vs CD
- 원반을 사용하는건 같지만, 구동 방식이 다름
- 하드디스크의 경우, 플래터가 일정한 속도로 돌아가지만, CD의 경우 헤드 위치에 따라 디스크의 회전 속도가 변함
- 하드디스크
- 일정한 속도로 회전하기 때문에, 바깥쪽 트랙의 속도가 안쪽 트랙의 속도보다 훨씬 빠름
- 따라서, 가장 바깥쪽에 있는 섹터가 가장 안쪽에 있는 섹터보다 더 큼
- 조용하며, 구현이 쉬움
- rpm으로 성능을 측정
- CD
- 어느 트랙에서나 단위 시간당 디스크의 이동거리가 같도록 원판의 회전 속도를 조절 함
- 어느 구간에서나 섹터가 같음
- 빨라야 할 구간에서는 시끄러우며, 구현이 쉽지 않음
- 헤드가 올라가있는 위치마다 회전 속도가 다르기 때문에, rpm으로 성능 측정이 불가능
- 최초의 CD의 속도의 배수로 성능을 표기 ( 20X는, 최초의 CD보다 20배 빠르다는 의미 )