티스토리 뷰

[한빛아카데미] 운영체제 책으로 학습한 내용을 정리한 것입니다.

 

* 입출력 시스템과 입출력 모듈

- 입출력 시스템(I/O System) : 모니터나 프린터 같은 하드웨어 장치와 같은 물리적 장치 뿐만 아니라 입출력 모듈까지 포함하는 개념

- 물리적 입출력장치가 실제로 입출력을 수행하고, 입출력 모듈은 메모리나 프로세서, 레지스터 등 내부 저장장치와 물리적 입출력장치 사이의 이진 정보를 전송하는 방법을 제공함

- 입출력 채널(I/O Channel) / 입출력 프로세서(I/O Processor) : 입출력 모듈이 프로세서를 대신하여 입출력과 관련된 복잡한 일을 처리

- 입출력 제어기(I/O Controller) / 장치 제어기(Device Controller) : 프로세서의 입출려과 관련된 일을 담당

 

[컴퓨터 하드웨어 구성과 입출력 모듈]

출처 : https://arainablog.tistory.com/324

 

- 입출력장치를 직접 시스템 버스에 연결하지 않고 입출력 모듈을 이용하여 연결함

- 위 연결의 이유로는 입출력장치에 따라 제어하고 운용하는 방법이 다름

 

* 입출력 모듈의 기능

- 내부 자원과 데이터 입출력 등 다양한 동작을 제어하고 타이밍 기능을 제공함

- 프로세서에서 명령을 전달받고, 관련된 메시지를 인식하는 기능을 제공함
(참고) 입출력 모듈은 명령 해독 -> 데이터 교환 -> 상태 보고 -> 주소 인식 과정을 거쳐 메시지를 인식함

- 버퍼링을 이용하여 전송속도를 조절함

- 오류를 검출함

 

* 프로세서 역할에 따른 입출력 방법

- 프로세서와 입출력장치의 속도 차이로 데이터를 전송할 때는 프로세서의 부담이 큼

- 프로세서는 입출력장치와 전송속도를 조절하는데, 데이터를 전송하는 프로세서의 역할에 따라 입출력 방법은 크게 세가지로 구분

 1) 프로세서 제어 입출력(프로그램 제어 입출력, 인터럽트 기반 입출력)

 2) DMA 입출력

 3) 입출력 채널

 

* 프로그램 제어 입출력 방법

- 폴링(Polling) 방법이라고도 함

- 프로세서 내부의 입출력 데이터와 주소 레지스터를 입출력 모듈과 연결한 형태

- 폴링은 상태 비트를 주기적으로 검사하여 프로세서보다 상대적으로 느린 입출력장치의 상태를 확인함

- 폴링은 인터럽트보다 비효율적이며,  키보드, 문자 모드의 프린터와 모니터(스크린) 등 저속 입출력 장치에 적합함

 

* 인터럽트 기반 입출력 방법

- 프로그램 제어 입출력 방법과 달리 입출력장치가 작업을 완료한 후 작업과 관련된 상태와 결과를 메모리에 저장하고 인터럽트를 발생시켜 프로세서에 알림

- 프로세서가 프로세서의 도움이 필요한지 입출력장치에 확인하는 대신 입출력장치가 프로세서에 직접 신호를 주는 방법

- 불규칙적이고 빠른 응답성을 요구할 때 적합함

- 프로세서가 폴링 절차를 생략할 수 있어 입출력 연산의 대기시간이 필요 없으므로 효율성이 증가함

- 현재의 작업 내용을 스택에 저장해야 하는 오버헤드가 발생하고, 프로세서의 레지스터에서 모든 데이터를 전송한다는 단점 존재

출처 : https://arainablog.tistory.com/324

 

* DMA 입출력 방법

- 프로세서의 도움 없이 메인 메모리르 직접 제어하여 데이터를 전송하는 형태

- 프로세서가 읽기와 쓰기 정보, 입출력 주소와 메모리 주소, 길이를 DMA 제어기에 전달하여 입출력 요청 시 DMA 제어기가 우선적으로 메모리 참조 사이클을 수행하여 처리함

- 디스크의 데이터 전송 등 대용량 데이터 전송에 적합함

 

출처 : https://arainablog.tistory.com/324

 

* 사이클 스틸링(Cycle Stealing)

- DMA 제어기가 데이터를 전송하는 동안 프로세서는 다른 작업을 수행할 수 있음

- 프로세서의 도움 없이 RAM에 액세스하는 방법

- 입출력장치가 시스템 버스나 저장 시스템과 같은 분할 자원을 독점적으로 액세스하려고 하기 때문에 발생하는 현상

- 프로세서의 속도를 떨어뜨리지만, 입출력 작업을 DMA에 전담시키므로 시스템의 전체 성능은 올라감

 

공지사항
최근에 올라온 글
최근에 달린 댓글
Total
Today
Yesterday
링크
TAG
more
«   2024/07   »
1 2 3 4 5 6
7 8 9 10 11 12 13
14 15 16 17 18 19 20
21 22 23 24 25 26 27
28 29 30 31
글 보관함