학습목표
1. 장치의 개념과 구성을 설명할 수 있다.
2. 입출력 처리를 위한 세 가지 방법을 설명할 수 있다.
3. 장치와는 독립적으로 입출력을 관리하는 두 가지 방법을 설명할 수 있다.
주요용어
전용장치, 공용장치, 가상장치, 장치제어기, 폴링, 인터럽트, DMA, 사이클 스틸링, 버퍼링, 스풀링
8.1 장치의 개념
컴퓨터 시스템에는 CPU, 메모리 외에도 디스크 드라이브, 키보드, 마우스, 비디오 디스플레이, 프린터, 스캐너, 네트워크 카드 등 다양한 장치들이 존재한다. 프로세스 관점에서 보면 CPU와 메모리는 프로세스를 실행시키기 위한 필수 요소인 반면, 나머지 장치들은 모두 프로세스 실행 시 데이터 입력이나 출력에 사용되는 입출력장치들로 볼 수 있다.
입출력장치의 구분
-장치의 기능적 특징과 장치 관리자의 관리 방법에 따라 구분
- 세가지 범주 : 전용장치, 공용장치, 가상장치
1) 전용장치
- 한번에 단지 하나의 프로세스에만 할당
- 예 : 테이프 드라이브, 프린터, 플로더 등
- 단점 : 대기시간이 길어질 수 있음
2) 공용장치
- 여러 프로세스에 동시에 할당
- 예 : 디스크 같은 직접접근 저장장치
- 스케줄링 기법 필요
3) 가상장치
- 전용장치를 가상의 공용장치처럼 보이게 함
- 디스크 같은 공용장치를 이용
- 예 : 스풀링을 적용한 플로터 등
8.2 장치의 구성
8.2.1 논리적 구성
장치 제어기
- 장치를 직접적으로 다루는 전자 장치
- 장치에서 발생하는 각종 데이터를 전자적인 신호로 변환하여 운영체제로 보냄
- 운영체제가 요청하는 명령을 받아 장치를 구동
- 운영체제가 보내는 출력을 장치에 맞게 변환
장치 드라이버
- 응용 프로그램의 입출력 요청을 해당 장치에 맞도록 변환
- 장치의 종류나 제조사에 따라 장치 제어기가 이해하는 명령이나 명령의 종류가 다를 수 있기 때문
- 보통 장치 제조사에서 해당 장치의 드라이버도 같이 제공
8.2.2 물리적 구성
CPU의 장치 사용법
- 장치제어기 내의 레지스터를 활용
- 장치의 상태 확인(읽기), 장치에 명령(쓰기)
- 통신 : 입출력 명령, 메모리 사상 입출력
8.3 입출력 처리 유형
입출력처리
- 프로세스가 진행하며 입출력이 발생하는 경우
- 세 가지 유형 : 프로그램 방법, 인터럽트 방법, DMA 방법
8.3.1 프로그램 방법
- CPU만을 이용하여 입출력을 처리
- 폴링 이용
: CPU가 입출력장치의 상태를 지속적으로 확인하며 원하는 상태가 될 때까지 기다리는 것
- 예 :
repeat
while state(프린터) != 가용 do skip;
한줄 인쇄;
until 10줄 인쇄 완료;
- 단점 : 비효율적 - CPU의 낭비가 심함
8.3.2 인터럽트 방법
- 인터럽트를 이용하여 입출력을 처리
*인터럽트
: 어떤 장치가 다른 장치의 작업을 잠시 중단시키고 자신의 상태를 알리는 기능
- 프로세스를 대기 상태로 보내고 인터럽트가 발생할 때까지 CPU는 다른 작업을 하면 됨
인터럽트 방법- 처리과정
1) 입출력장치가 가용한 상태가 되었다고 인터럽트 제어기에 신호를 보냄
2) 인터럽트제어기는 CPU에 인터럽트 신호를 보냄
3) CPU는 현재 실행 중이던 명령만 마친 후 즉시 인터럽트에 응답
4) 인터럽트 제어기는 이벤트 대상에 대한 정보를 CPU에게 보냄
5) CPU는 현재 상태를 보관하고 필요한 입출력 처리를 한 후 원래 프로세스 실행상태로 복귀
'방송통신대학 > 운영체제' 카테고리의 다른 글
저장장치 및 파일, FCFS, SSTF, SCAN (2) | 2020.07.12 |
---|---|
CPU]입출력 관리 (0) | 2020.07.11 |
NUR, 2차 기회 , 클럭 페이지 교체 (0) | 2020.07.09 |
페이지 교체 기법, FIFO, LRU, LFU (0) | 2020.07.08 |
가상메모리 (0) | 2020.07.07 |