제 5 장 입출력
1. 입출력에 필요한 기능
1) 입출력 방법
① 메모리 맵에 의한 입출력 : 전체 메모리 공간을 이용.
② I/O 맵에 의한 입출력(격리형) : 메모리의 일부 공간을 I/O 포트에 할당.
2. 데이터 전송
1) 데이터 전송
① 직렬 데이터 전송 : 한 개의 선을 이용하여 한 번에 한 비트씩 전송. (PC통신)
② 버스전송 : 한개의 선을 이용하여 여러개의 비트씩 전송
③ 병렬 데이터전송:여러 개의 선을 이용하여 여러 개의 비트를 동시에 전송. (고속,고가)LAN
2) 데이터 전송 방법
① 프로그램 제어 하에 데이터 전송 . 속도 3순위로 가장느려.
② 인터럽트에 의한 데이터 전송 . 속도 2순위
③ DMA에 의한 데이터 전송 (CPU의 간섭무) 속도 1순위
3) 비동기 데이터 전송
① 스트로브 제어 : 하나의 제어 선을 갖는 경우.
② 핸드셰이킹 : 2개의 제어 선을 갖는 경우로서, (스트로브식 발전)
스트로브 방식에 비해 높은 융통성과 신뢰성을 갖는다.
3. DMA 및 채널
1) DMA(Direct Memory Access)
― 주기억장치와 주변장치 사이의 신속한 자료전송을 위해 CPU와 독립적으로 수행되는 방법.
2) 채널(Channel)
― 주기억장치와 입출력장치 사이의 데이터 전송을 담당하는 입출력 전담 프로세서로서,
CPU와 독립적으로 수행된다.
① 셀렉터 채널 : 고속 (자기테이프,자기디스크)
② 바이트 멀티플렉서 채널 : ※저속 (종이카드 판독기,키보드,프린트)
③ 블록 멀티플렉서 채널
4. 입출력 장치
1) 입력 장치
① 자기 테이프 : 기록된 순서대로만 처리하는 순차접근만 가능.
㉠ 자기 테이프 형식=레코드의 형식
․고정 길이 언 블럭(fixed unblock)
․고정 길이 블럭(fixed block):고속, 경제적, 프로그램이 간단
․가변 길이 언 블럭(variable unblock0
․가변 길이 블럭(variable block)
․부정형 길이 레코드(undefined length record)
※ 레코드수 구하는 공식
레코드 수 = | Tape 길이 × 12 | × 블럭화 인수 | ||
IBG + | block내 문자수 | |||
기록 밀도 | ||||
※ 블럭킹 하는 이유 : 입출력 횟수(입출력 시간)를 줄이기 위해, =>속도향상
저장 공간을 절약할 수 있기 때문. IBG:블록과블록사이 미사용
② 자기 디스크 : 비순서 즉, 직접처리(※순차처리도 포함) 가능.
자기디스크 3대 구성요소: 디스크, 억세스 암, 리드&라이트 헤드
※ 실린더 : 같은 위치의 트랙들의 모임(트랙 수 = 실린더 수) 섹터<트랙<실린더
․Access time : Read 신호를 줄 때부터 내용을 갖고 올 때까지의 시간. ․Seek time : Access arm이 지정한 cylinder까지 찾아가는데 소요되는 시간. ․Search time : 실린더를 찾은 후 해당 트랙 상에서 원하는 레코드가 Head까지 도달하는데소요되는 시간. (=Rotational Delay Time) ․Transmission Time: 자료를 디스크에서 주기억장치로 전송하는데 걸리는 시간 |
5. 인터럽트 (개입중단)
1) 개념
― 컴퓨터 시스템에 예기치 않은 사태에 의해 CPU가 하던 일을 잠시 멈추고,
다른 일을 처리하도록 하는 방법.
※ 동작순서
cpu에게 인터럽트 요청 → 현재 수행 중인 프로그램 저장(Stack, 0번지) → 인터럽트식별(처리루틴) → 인터럽트 처리(취급루틴) → 복귀 |
2) 인터럽트 종류
① 외부 인터럽트 (정전, 조작자 및 임의의 과실)
② 내부 인터럽트 (기계착오)
③ 소프트웨어 인터럽트
3) 인터럽트 우선 순위 체제
① 소프트웨어 적인 방법 : 폴링(Polling)
② 하드에어 적인 방법 : 직렬로 연결한 데이지 체인(Daisy chain)
※ 인터럽트 우선 순위
정전 > 기계적 오류 > 외부 인터럽트 > 입출력 인터럽트 > 프로그램 오류 > SVC
SVC: 감시프로그램에 의한 입출력 호출