티스토리 뷰
[한빛아카데미] 운영체제 책으로 학습한 내용을 정리한 것입니다.
* 입출력 시스템과 입출력 모듈
- 입출력 시스템(I/O System) : 모니터나 프린터 같은 하드웨어 장치와 같은 물리적 장치 뿐만 아니라 입출력 모듈까지 포함하는 개념
- 물리적 입출력장치가 실제로 입출력을 수행하고, 입출력 모듈은 메모리나 프로세서, 레지스터 등 내부 저장장치와 물리적 입출력장치 사이의 이진 정보를 전송하는 방법을 제공함
- 입출력 채널(I/O Channel) / 입출력 프로세서(I/O Processor) : 입출력 모듈이 프로세서를 대신하여 입출력과 관련된 복잡한 일을 처리
- 입출력 제어기(I/O Controller) / 장치 제어기(Device Controller) : 프로세서의 입출려과 관련된 일을 담당
[컴퓨터 하드웨어 구성과 입출력 모듈]
- 입출력장치를 직접 시스템 버스에 연결하지 않고 입출력 모듈을 이용하여 연결함
- 위 연결의 이유로는 입출력장치에 따라 제어하고 운용하는 방법이 다름
* 입출력 모듈의 기능
- 내부 자원과 데이터 입출력 등 다양한 동작을 제어하고 타이밍 기능을 제공함
- 프로세서에서 명령을 전달받고, 관련된 메시지를 인식하는 기능을 제공함
(참고) 입출력 모듈은 명령 해독 -> 데이터 교환 -> 상태 보고 -> 주소 인식 과정을 거쳐 메시지를 인식함
- 버퍼링을 이용하여 전송속도를 조절함
- 오류를 검출함
* 프로세서 역할에 따른 입출력 방법
- 프로세서와 입출력장치의 속도 차이로 데이터를 전송할 때는 프로세서의 부담이 큼
- 프로세서는 입출력장치와 전송속도를 조절하는데, 데이터를 전송하는 프로세서의 역할에 따라 입출력 방법은 크게 세가지로 구분
1) 프로세서 제어 입출력(프로그램 제어 입출력, 인터럽트 기반 입출력)
2) DMA 입출력
3) 입출력 채널
* 프로그램 제어 입출력 방법
- 폴링(Polling) 방법이라고도 함
- 프로세서 내부의 입출력 데이터와 주소 레지스터를 입출력 모듈과 연결한 형태
- 폴링은 상태 비트를 주기적으로 검사하여 프로세서보다 상대적으로 느린 입출력장치의 상태를 확인함
- 폴링은 인터럽트보다 비효율적이며, 키보드, 문자 모드의 프린터와 모니터(스크린) 등 저속 입출력 장치에 적합함
* 인터럽트 기반 입출력 방법
- 프로그램 제어 입출력 방법과 달리 입출력장치가 작업을 완료한 후 작업과 관련된 상태와 결과를 메모리에 저장하고 인터럽트를 발생시켜 프로세서에 알림
- 프로세서가 프로세서의 도움이 필요한지 입출력장치에 확인하는 대신 입출력장치가 프로세서에 직접 신호를 주는 방법
- 불규칙적이고 빠른 응답성을 요구할 때 적합함
- 프로세서가 폴링 절차를 생략할 수 있어 입출력 연산의 대기시간이 필요 없으므로 효율성이 증가함
- 현재의 작업 내용을 스택에 저장해야 하는 오버헤드가 발생하고, 프로세서의 레지스터에서 모든 데이터를 전송한다는 단점 존재
* DMA 입출력 방법
- 프로세서의 도움 없이 메인 메모리르 직접 제어하여 데이터를 전송하는 형태
- 프로세서가 읽기와 쓰기 정보, 입출력 주소와 메모리 주소, 길이를 DMA 제어기에 전달하여 입출력 요청 시 DMA 제어기가 우선적으로 메모리 참조 사이클을 수행하여 처리함
- 디스크의 데이터 전송 등 대용량 데이터 전송에 적합함
* 사이클 스틸링(Cycle Stealing)
- DMA 제어기가 데이터를 전송하는 동안 프로세서는 다른 작업을 수행할 수 있음
- 프로세서의 도움 없이 RAM에 액세스하는 방법
- 입출력장치가 시스템 버스나 저장 시스템과 같은 분할 자원을 독점적으로 액세스하려고 하기 때문에 발생하는 현상
- 프로세서의 속도를 떨어뜨리지만, 입출력 작업을 DMA에 전담시키므로 시스템의 전체 성능은 올라감
'개인공부 > 운영체제' 카테고리의 다른 글
[운영체제] 디스크 관리 (0) | 2023.12.02 |
---|---|
[운영체제] 가상 메모리(Virtual Memory) (0) | 2023.12.01 |
[운영체제] 메모리 할당 방법 (0) | 2023.12.01 |
[운영체제] 메모리 관리 (0) | 2023.11.30 |
[운영체제] 스케줄링 알고리즘 (0) | 2023.11.29 |