제 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: 감시프로그램에 의한 입출력 호출