8.3 입출력 처리 유형
8.3.3 DMA 방법
- DMA 제어기를 이용하여 입출력을 처리
- 프로세스를 대기상태로 보내고 인터럽트가 발생할 때까지 CPU는 다른 작업을 하면 됨
*DMA : CPU를 통하지 않고 직접 메모리에 접근
- 한번에 입출력 양이 많은 경우에도 한 번의 인터럽트만 발생 (CPU의 효율증대)
DMA방법 - 처리과정
1) CPU는 입출력에 필요한 정보를 DMA 제어기에 넘김
2) [반복]DMA 제어기는 소스에서 목적지로 데이터를 보내도록 장치제어기에 요청
3) 원하는 양의 입출력이 끝나면 DMA 제어기는 인터럽트 제어기에 신호를 보내어
4) 인터럽트를 발생시켜 CPU에게 입출력 작업이 모두 끝났음을 알림
DMA 방법 - 문제 및 해결
- CPU와 DMA 제어기가 동시에 메모리 액세스를 시도하면 충돌 발생
- 사이클 스틸링(cycle stealing)
> CPU보다 DMA 제어기에 우선권 부여
> 즉, CPU로 부터 메모리 사이클을 훔쳐 내는 것, DMA 제어기 모든 일이 끝이 나면 다시 CPU에게 돌려줌
8.4 입출력 관리
8.4.1 버퍼링(buffer)
- CPU의 데이터 처리 속도와 입출력 장치의 데이터 전송 속도의 입출력장치의 데이터 전송 속도의 차이로 인한 문제를 버퍼를 통해 해결
*버퍼 : 입출력 데이터 등의 정보를 전송할 때 일시적 데이터 저장 장소로 사용되는 메모리의 일부
- 세가지 방법 :
: 단일 버퍼링, 이중 버퍼링, 순환 버퍼링
단일 버퍼링 | 이중 버퍼링 | 순환 버퍼링 |
![]() |
![]() |
![]() |
비효율적 : 저장과 처리가 동시에 이루어지지 못함 | 데이터의 저장과 처리가 동시에 일어날 수 있다. 버퍼 1에 데이터 저장, 버퍼 2에 데이터 처리 가능, | 이중 버퍼링을 확장시킨 것 |
8.4.2 스풀링(Simultaneous Peripheral Operation On Lien, SPOOLing)
- 입출력 프로세스와 저속 입출력장치 사이의 데이터 전송을 자기 디스크와 같은 고속 장치를 통하도록 하는 것(일종의 버퍼링)
- 입출력 작업이 빨리 끝나게 할 수 있음
- 전용장치를 가상장치로 변화시켜 줌
※정리하기
1. 운영체제에서 장치 관리자는 시스템의 모든 주변기기를 관리하며 입출력의 균형을 유지한다.
2. 장치는 일반적으로 전용장치, 공유장치, 그리고 가상장치의 세 가지 범주로 구분된다.
3. 입출력이 발생하는 경우 이를 처리하는 방법으로 프로그램 방법, 인터럽트 방법, DMA 방법이 있다.
4. 프로그램 방법은 CPU가 입출력장치의 상태를 지속적으로 확인하여 CPU가 원하는 상태가 될 때까지 기다리는 폴링을 이용하는 방법이다.
5. 인터럽트 방법은 어떤 장치가 다른 장치의 작업을 잠시 중단시키고 자신의 상태를 알리는 인터럽트를 이용하는 방법이다.
6. DMA는 DMA 제어기를 이용하여 CPU를 통하지 않고 직접 주기억장치에 접근하여 데이터를 전송하는 방법이다.
7. 장치와는 독립적으로 입출력을 관리하는 방법으로 버퍼링과 스풀링이 있다.
8. 버퍼링은 CPU의 데이터 처리 속도와 데이터 전송 속도의 차이로 인한 문제를 메모리의 일부를 일시적 데이터 저장 장소로 사용하는 버퍼를 이용하여 해결한다.
9. 버퍼링에는 단일 버퍼링, 이중 버퍼링, 순환 버퍼링이 있다.
10. 스풀링은 입출력의 속도를 높이기 위하여 입출력 프로세스와 저속 입출력장치 사이의 데이터 전송을 자기 디스크와 같은 고속 장치를 통하도록 하는 방법이다.
'방송통신대학 > 운영체제' 카테고리의 다른 글
N - Step SCAN, C-SCAN, LOOK, SLTF (0) | 2020.07.13 |
---|---|
저장장치 및 파일, FCFS, SSTF, SCAN (2) | 2020.07.12 |
컴퓨터 시스템 ] 장치의 구성 (0) | 2020.07.10 |
NUR, 2차 기회 , 클럭 페이지 교체 (0) | 2020.07.09 |
페이지 교체 기법, FIFO, LRU, LFU (0) | 2020.07.08 |