Download presentation
Presentation is loading. Please wait.
1
4대자원관리(입출력장치) 박정환
2
개요 정의(입출력장치) 입출력 기능 블록단위 전송기능 자원의 공유 기능 입출력 방식 직접 입출력 간접 입출력
3
입출력장치란? 컴퓨터와 사용자 사이의 정보를 교환할 수 있는 장치의 집합을 말한다
컴퓨터로 데이터를 처리하기 위해서는 우선 처리할 데이터를 입력장치를 통하여 컴퓨터로 입력시켜야 하고, 컴퓨터가 처리한 결과의 데이터는 출력장치를 통하여 사용자가 읽을 수 있는 형태로 다시 되돌려야 한다. 입력장치는 카드판독기, 광학식 문자판독기(OCR), 광학마크판독기(OMR), 바코드인식기, 자기잉크문자인식기, 키보드, 스캐너, 음성입력장치, 라이트펜, 터치스크린, 조이스틱, 마우스, 디지타이저 등이 있고 출력장치는 프린터, CRT, 음성합성장치, 플로터, 음성응답장치
4
입출력 기능 장치 관리자: 데이터 입출력을 위한 모든 컴퓨터의 입출력 장치를 제어.
입출력장치의 할당(allocation), 분리(isolation), 공유(sharing) 기법을 관리, 입출력 장치와 시스템과의 인터페이스 기능을 제공
5
입출력 기능 블록단위 전송기능 신경 쓰지 않고 입출력 할 수 있는 기능
장치 관리자의 기능 ● 주변장치와 기억장치간의 블록단위 전송기능 ● 주변장치와 인터페이스를 통한 논리적, 물리적 특성의 일치 기능 ● 자원의 공유기능 블록단위 전송기능 ● 에러의 발견 및 교정기능 ● 컴퓨터 본체와 주변장치간의 인터페이스 담당기능 ● 일반 사용자나 프로그래머가 하드웨어적인 부분을 신경 쓰지 않고 입출력 할 수 있는 기능
6
입출력 기능 자원의 공유 기능 여러 프로세스간에 자원을 할당하고 회수하는 등 자원관리를 담당.
멀티플렉싱에 의해 한 대의 입출력 채널을 서로간에 공유. 보조기억 장치들은 스풀링 개념에 의해 다수의 프로세스들 의해 공유. 다중 프로그래밍이나 다중처리를 위해서도 CPU나 주기억장치 등은 여러 프로세스에 의해서 공유.
7
입출력 방식 컴퓨터 입출력 방식 인터럽트 방식 입출력 입출력 채널(I/O channel)
● 직접 입출력 : 폴링 방식 입출력. 인터럽트 방식 입출력 ● 간접 입출력 : 직접 기억 장치 액세스(DMA) 입출력 채널(I/O channel)
8
입출력 방식 직접 입출력 폴링 방식 직접 입출력 CPU가 프로그램 수행 중 입출력 명령을 만나면, 직접 CPU가
나서서 입출력을 실행하는 방법. 입출력 연산의 종료시점을 결정하고 주 기억 장치와 장치 제어기 간의 데이터 전송을 CPU가 책임지는 방법. 입출력장치가 연산을 종료하는 시점을 결정하기 위해 장치 구동기 소프트웨어가 장치 제어기 상태 레지스터를 끊임없이 폴링(polling)
9
입출력 방식 직접 입출력 폴링 방식 직접 입출력 데이터 출력 시
10
입출력 방식 직접 입출력 폴링 방식 직접 입출력 데이터 출력 시 응용 프로세스가 쓰기 write() 연산을 요청.
장치 구동기는 장치가 쉬고 있는지를 결정하기 위해서 상태 레지스터를 검사. 만약 장치가 바쁘면 장치 구동기는 장치가 유휴상태(idle status)가 되기를 기다림. 장치 구동기는 사용자 기억장치 공간에서 장치 제어기의 데이터 레지스터로 데이터를 복사. 장치 구동기는 쓰기 write() 명령을 제어기 명령레지스터에 저장하여 장치를 시작시킴. 장치 구동기는 장치가 그의 연산을 완료하기를 기다리는 동안 반복적으로 상태 레지스터를 검사. =>polling
11
입출력 방식 직접 입출력 인터럽트 방식 직접 입출력 인터럽트를 컴퓨터 하드웨어에 도입하는 이유:
장치 구동기 소프트웨어가 제어기 상태 레지스터를 계속 polling 할 필요성을 제거, 연산이 완료되었을 때 장치제어기가 자동으로 장치 관리자에게 완료사실을 통보 . 인터럽트를 이용한 입출력에서 장치관리자 4가지 기능 - 장치 구동기의 연산 초기화 - 장치상태 테이블(device status table) 관리 - 인터럽트 처리기(interrupt handler) 관리 - 장치 처리기(device handler) 관리
12
입출력 방식 직접 입출력 인터럽트 방식 직접 입출력 데이터 입력 시
13
입출력 방식 직접 입출력 인터럽트 방식 직접 입출력 데이터 입력 수행 단계 ① 응용 프로세스가 읽기 read() 연산을 요청.
② 장치 구동기는 상태 레지스터를 검사. 만약 장치가 바쁘면 장치 구동기는 장치가 유휴상태가 되기를 기다림. ③ 장치 구동기는 읽기 read() 명령을 장치 제어기의 명령 레지스터에 저장하여 장치를 시작시킴. ④ 장치 구동기는 연산 초기화가 종료할 때 장치 구동기가 시작시킨 연산과 관련된 정보를 장치 상태 테이블(device status table)에 저장. 장치 관리자는 프로세스 관리자의 스케줄러를 호출하여 스케줄링 된 다른 프로세스에 CPU를 사용하게 함. 그런 다음 장치관리자는 종료. ⑤ 입력연산을 종료하면 CPU에 인터럽트를 걸어 인터럽트 처리기 실행. ⑥ 인터럽트 처리기는 어떤 장치가 인터럽트를 걸었는지 결정하고 해당 장치의 장치 처리기로 분기. ⑦ 장치 처리기는 장치 상태 테이블에서 보류된 입출력 상태정보를 추출. ⑧ 장치 처리기는 제어기의 데이터 레지스터내용을 사용자 프로세스 공간으로 복사. ⑨ 장치 처리기는 응용 프로세스에게 제어를 반환.
14
입출력 방식 간접 입출력 DMA(direct memory access) 디스크 제어기에 의한 DMA 전송과정
디스크제어기가 입출력 장치로부터 자신의 버퍼에 모든 블록을 읽음. DMA에 의해 지정된 주소의 주기억장치에 최초 바이트나 워드가 복사됨 DMA의 기억장치 주소는 증가하고, 전송된 바이트수 만큼 카운터는 감소 DMA카운터가 0이 될 때 까지 반복. 카운터가 0이 되면 디스크제어기가 인터럽트를 발생시켜 CPU에 완료사실을 보고.
15
입출력 방식 간접 입출력 DMA에 의한 데이터 입출력 예
16
입출력 방식 간접 입출력 DMA에 의한 데이터 입출력 수행 단계 ① 프로그램 수행도중 CPU가 입출력 명령을 만남.
② CPU는 DMA에게 입출력 명령(기억장치내의 데이터의 위치, 개수, I/O 명령의 종류 등이 전달). ③ CPU와 독립적으로 DMA는 기억장치의 데이터를 직접 입출력. 이때, CPU는 입출력 명령을 내린 후 다른 프로그램을 수행. ④ 주기억 장치와 주변장치 사이에 실제의 데이터 전송. ⑤ DMA는 입출력 완료 시 CPU에게 인터럽트로 완료사실을 보고.
17
입출력 방식 간접 입출력 DMA에 의한 데이터 입출력 수행 단계 ① 프로그램 수행도중 CPU가 입출력 명령을 만남.
② CPU는 DMA에게 입출력 명령(기억장치내의 데이터의 위치, 개수, I/O 명령의 종류 등이 전달). ③ CPU와 독립적으로 DMA는 기억장치의 데이터를 직접 입출력. 이때, CPU는 입출력 명령을 내린 후 다른 프로그램을 수행. ④ 주기억 장치와 주변장치 사이에 실제의 데이터 전송. ⑤ DMA는 입출력 완료 시 CPU에게 인터럽트로 완료사실을 보고.
18
입출력 방식 간접 입출력 DMA(direct memory access) 직접 입출력과의 차이
DMA에서는 CPU 레지스터를 이용하지 않고, CPU의 사이클을 훔쳐(cycle steal) 입출력을 수행한다는 점.
19
입출력 방식 간접 입출력 입출력 채널 PPU(peripheral processing units) 또는 채널
가장 완벽한 입출력 방식. 입출력은 독립된 입출력 프로세서인 채널이 대신하고, 입출력을 수행하는 동안 CPU는 다른 프로그램을 실행. CPU의 효율을 향상시킬 수 있고, 다중 프로그래밍이 가능해 짐. PPU(peripheral processing units) 또는 채널 그 자체가 하나의 CPU와 비슷한 성능을 가지는 프로세서.. CPU와 기억장치를 공유. 범용 레지스터는 없고 명령어 주소 레지스터, 데이터카운터 등 내부에 몇 개의 레지스터를 포함. 한 컴퓨터 시스템에는 최대 8대의 채널을 둘 수 있고,채널당 최대 8대의 주변장치들을 연결가능.
20
입출력 방식 간접 입출력 입출력 채널 입출력 채널의 종류 ● 선택(selector) 채널
한 순간에 하나의 주변 장치만을 선택하여 연결하여 처리하고 주로 디스크나 드럼과 같이 고속인 장치들을 연결. ● 멀티플렉서(multiplexer) 채널 일시에 여러 장치들을 연결하여 처리하고 주로 터미널, 프린터 같은 저속의 장치들을 연결. ● 블록 멀티플렉서(block multiplexer) 채널 주로 블록단위로 입출력 하는 테이프 같은 장치와 연결하여 처리하고,다수의 주변장치들을 멀티플렉싱하며 동시에 처리.
21
입출력 방식 간접 입출력 입출력 채널
22
입출력 방식 간접 입출력 입출력 채널 채널의 구조 ● 채널 명령어 : CCW(channel command word)
☞명령 코드 : 데이터 전송 명령(read, write등), 장치 제어 명령(page skip, rewind등), 분기 명령(go to 등) ☞ 데이터 주소 : 입출력이 수행될 데이터의 기억장치내의 위치 표시. ☞ 플래그 비트 : 특수한 용도. ☞ 카운트 : 데이터의 개수.
23
입출력 방식 간접 입출력 입출력 채널 채널의 구조 ● 채널 상태 워드 : CSW(channel statue word)
☞ 보호키 : 채널을 보호하기 위한 보호 키. ☞ CCW의 주소 : 다음에 수행될 명령어의 주소. ☞ 상태 필드 : 채널의 상태(수행 중, 입출력의 종료, 입출력에러발생 등). ☞ 잔여 카운트 필드 : 아직 수행되지 않는 CCW의 수.
Similar presentations