강의 소개
현재 수강하고 있는 KOCW 내 이화여자대학교 운영체제(2017, 반효경) 강의의 내용을 정리하였습니다.
개발자 관점에서 운영체제 기초를 학습하는 무료 강의로 자세한 강의 내용은 수강을 추천드립니다.
동기식 입출력, 비동기식 입출력
동기식 입출력(synchronous I/O)
CPU가 I/O 요청 후 I/O 장치에서 일어나는 작업과 CPU 작업이 싱크가 맞아야 하는 경우이다. 일반적인 경우에 해당된다.
I/O 요청 후 입출력 작업이 완료된 후에야 제어가 사용자 프로그램에 넘어가는 것이다.
- 순서
사용자 프로그램이 I/O 요청을 하는데, 직접 하지 못한다 -> 운영체제의 커널을 통해서(EX. device driver) device contoller에게 I/O 요청(EX. 파일을 읽어달라) -> device controller에게 입출력을 요청한 동안 요청한 requesting process는 기다린다. -> 작업이 끝나면 device controller가 CPU에게 인터럽트를 걸어 작업이 완료되었음을 알리며 파일을 읽어온다 -> 그다음 작업을 수행한다.
**어떤 특정 행위를 할 때 시간적으로 잘 맞아떨어지게 하는 것을 synchronous라 한다.
- 구현 방법
I/O가 완료될 때까지 해당 프로그램에게서 CPU를 빼앗는다. -> 그 후 I/O 처리를 기다리는 줄에 그 프로그램을 줄 세운다. -> 다른 프로그램에게 CPU를 준다.
** CPU도 기다리게 하면 CPU의 낭비, 매순간 1개의 I/O 작업만 일어나는 비효율이 발생한다.
비동기식 입출력(asynchronous I/O)
CPU가 I/O 요청 후 I/O 장치에서 일어나는 작업을 고려하지 않고(I/O의 결과물을 확인하기 전에) CPU가 다음 작업을 실행하는 경우이다.
일반적인 경우는 동기식 입출력을 하지만, 결과를 확인하기 전에 수행할 수 있는 작업이 있는 경우 비동기식 입출력을 사용한다.
(보통은 읽기 작업은 동기식, 쓰기 작업은 비동기식이 가능하기도 하다)
-순서
사용자 프로그램이 I/O 요청을 하는데, 직접 하지 못한다 -> 운영체제의 커널을 통해서(EX. device driver) device contoller에게 I/O 요청(EX. 파일을 읽어달라) -> device controller에게 입출력을 요청하고 곧바로 요청한 requesting process에게 CPU를 줘서 다른 작업을 수행하게 한다.
동기식 입출력과 비동기식 입출력의 차이점
'device controller가 I/O 작업이 끝나기를 requesting process이 기다리는 것과 기다리지 않는 차이'인 것이다.
동기식 입출력과 비동기식 입출력의 공통점
둘 모두 I/O의 완료를 인터럽트로 알려준다.
출처: 운영체제와 정보기술의 원리(반효경 저)
'교육, 학습 > CS스터디_반효경 운영체제' 카테고리의 다른 글
운영체제 - 커널 주소 공간과 구성요소(code, data, stack), 유저모드와 커널모드 (0) | 2022.01.05 |
---|---|
운영체제 - DMA 사용이유(DMA와 CPU, 메모리의 관계), 저장장치 계층구조별 특징과 캐싱 (0) | 2022.01.04 |
운영체제 - 인터럽트 종류(trap, exception, 시스템콜, 하드웨어 인터럽트) (0) | 2022.01.03 |
운영체제 - 특권 명령과 일반 명령, mode bit, 모니터 모드, timer interrupt (0) | 2022.01.03 |
운영체제 - 운영체제(OS)란 2 (0) | 2022.01.03 |
댓글