📌 채널
→ 채널(Channel)은 주변장치에 대한 제어 권한을 CPU(중앙처리장치)로부터 넘겨받아, CPU 대신 입 ⋅ 출력을 관리하는 것이다.
- 채널은 주기억장치와 입 ⋅ 출력장치의 중간에 위치한다.
- 채널은 입 ⋅ 출력장치와 CPU의 속도차로 인한 단점을 해결한다.
- 채널은 CPU의 제어장치로부터 입 ⋅ 출력 전송을 위한 명령어를 받으면 CPU와는 독립적으로 동작하여 입 ⋅ 출력을 완료한다.
- 채널은 주기억장치에 기억되어 있는 채널 프로그램의 수행과 자료의 전송을 위하여 주기억장치에 직접 접근한다.
📌 Selector Channel(선택 채널)
→ 고속 입 ⋅ 출력장치와 입 ⋅ 출력하기 위해 사용함.
- 특정한 한 개의 장치를 독점하여 입 ⋅ 출력함.
📌 Multiplexer Channel(다중 채널)
→ 저속 입 ⋅ 출력장치를 제어하는 채널로, Byte Multiplexer Channel이라고도 함.
- 동시에 여러 개의 입 ⋅ 출력장치를 제어함.
📌 Block Multiplexer Channel
→ 고속 입 ⋅ 출력장치를 제어하는 채널로, 동시에 여러 개의 입 ⋅ 출력장치를 제어함.
📌 DMA(직접 메모리 접근)
→ DMA(Direct Memory Access)는 CPU의 참여 없이 입 ⋅ 출력장치와 메모리가 직접 데이터를 주고받는 것을 말한다.
- DMA 제어기는 작업이 끝나면 CPU에게 인터럽트 신호를 보내 작업이 종료됐음을 알린다.
- DMA 방식을 이용하면 CPU는 입 ⋅ 출력 작업에 참여하지 않고 다음 명령을 계속 처리하므로, 시스템의 전반적인 속도가 향상된다.
- DMA의 주요 구성 요소에는 인터페이스 회로, 주소 레지스터, 데이터 카운터 레지스터, 제어 레지스터, 데이터 레지스터 등이 있다.
📌 스풀링
→ 스풀링은 디스크의 일부를 스풀공간이라 부르는 매우 큰 버퍼처럼 사용하는 방식으로 CPU와 입출력장치 사이의 속도 차이를 해소하기 위해 사용한다.
- 디스크에 수록된 파일을 미리 입력 장치로부터 읽어들이고, 출력장치가 그것을 받을 수 있을 때까지 일시적으로 저장함으로써, 한 작업의 출력을 프린터를 통해서 인쇄하는 동안에 다른 작업의 입력을 읽어들일 수 있으며, 이 시간 동안 또 다른 작업이 수행될 수 있다.
- 많은 작업의 계산과 입출력을 중복할 수 있다.
- 작업 풀(Job Pool)이라는 중요한 데이터 구조를 제공하는데, 이는 디스크에 읽혀져 실행을 위해 대기하고 있는 여거 개의 작업을 수행할 수 있도록 준비해 주고, 디스크에 저장된 작업들은 프로세서 이용률을 향상시키기 위해 OS가 다음에 수행할 작업을 선택할 수 있도록 해준다.
- 디스크를 버퍼로 사용.
- 스풀 : 일정한 기억장소로 하드디스크의 공간을 스풀이라고 한다.
📌 버퍼링
→ 버퍼링은 빠른 CPU와 상대적으로 속도가 느린 입출력장치 사이에 효율을 높이기 위해서 사용한다.
- CPU와 입출력 장치를 항상 활용하고자 한다.
- 주기억장치 내에 버퍼를 둠으로써 입력시에는 CPU가 버퍼의 내용을 가져다 쓰고 입력장치가 버퍼에 내용을 기록한다.
- 출력시에는 CPU가 연산된 결과를 버퍼에 저장하고, 출력장치는 버퍼의 내용을 꺼내서 출력한다.
- 한 레코드가 읽혀 CPU가 그것에 대해 연산을 시작함과 동시에 입출력 장치는 곧 다음에 필요한 레코드를 미리 읽어서 주기억장치에 저장함으로써 CPU가 필요로하는 레코드를 기다림 없이 전달해 줄 수 있다.
- 주기억 장치를 버퍼로 사용.
- 버퍼 : 파일로부터 데이터 전송을 하여 저장하기 위한 주기억장치 공간으로 비교적 빠른 CPU과 느린 보조기억장치 사이의 완충역할을 한다.
📌 인터럽트
→ 인터럽트(Interrupt)는 프로그램을 실행하는 도중에 예기치 않은 상황이 발생할 경우, 현재 실행중인 작업을 즉시 중단하고 발생된 상황을 우선 처리한 후 실행 중이던 작업으로 복귀하여 계속 처리하는 것을 말한다. 일명 '끼어들기'라고도 한다.
- 인터럽트는 외부 인터럽드, 내부 인터럽트, 소프트웨어 인터럽트로 분류하는데, 외부나 내부 인터럽트는 CPU의 하드웨어에서의 신호에 의해 발생하고 소프트웨어 인터럽트는 명령어의 수행에 의해 발생한다.
- 동시에 하나 이상의 인터럽트가 발생하였을 때 먼저 서비스할 장치를 결정하는 인터럽트 우선순위 판별 방법에는 소프트웨어적인 방법으로 폴링, 하드웨어적인 방법으로 데이지 체인과 병렬 우선 처리 방식이 있다.
- 인터럽트가 발생하면 인터럽트를 처리하고 되돌아올 주소가 스택(Stack)에 저장된다.