본문 바로가기

검색용 개발 블로그

[운영체제] 입출력의 수행, 동기-비동기 입출력, 인터럽트

 

 

컴퓨터의 구조

유튜브로 참조함: https://www.youtube.com/watch?v=uMyKBYF48nY&t=18s

 

 

 

 

운영체제의 목적

프로세서 기억장치, 입출력 장치 등의 효율적 관리

유튜브: https://www.youtube.com/watch?v=uMyKBYF48nY&t=18s

 

1. 입출력 수행

 

입출력이란

데이터를 입력, 출력하는 행위이다.

 

다양한 장치로부터 입출력을 받는다.

1) 순서를 정한다

I/O 스케쥴링 --> 성능이 높아진다

 

 

2. 동기식 입출력

여러 프로세스가 동시에 I/O요청을 할 경우, 각 요청을 큐에 넣어 순서대로 처리한다.

 

프로그램이 I/O 요청을 했을 때, 해당 I/O를 작업이 완료되어야 다음 작업을 할 수 있다.

완료되면 --> 사용자 프로그램으로 제어가 넘어간다.

 

I/O가 진행되는 동안 다음 명령을 수행하지않고 기다린다.

I/O 상태의 프로세스는 Block state로 전환된다.

I/O가 완료되면 인터럽트를 통해 완료를 알린다. 이후 CPU의 제어권이 기존 프로그램에 넘어간다.

Blocked state의 프로세스는 wait 상태로 돌아간다

명령 수행 속도 빠르다 입출력 연산은 느리다
I/O가 진행되면 CPU는 다른 프로그램의 작업을 수행한다 기다리는 과정에서 CPU 자원 낭비 초래

 

3. 비동기식 입출력

CPU의 제어권을 입출력 연산을 호출한 프로그램에게 곧바로 다시 부여한다.

I/O 결과와 관련이 없는 연산이 있을 경우 주로 사용된다.

CPU는 I/O 결과와 상관 없이 처리가 가능한 작업부터 처리한다.

I/O 연산이 완료되면 인터럽트를 통해 알린다.

 

공통점

I/O의 완료는 인터럽트로 알려준다.

4. 인터럽트

CPU는 굉장히 빠르다

I/O는 굉장히 느리다

CPU가 기다리지않게... CPU는 계속 일한다... 중간에  I/O가 CPU에게 '나 작업 끝났어'라고 알리는 것이 인터럽트다.

 

CPU가 프로그램을 실해앟고 있을 때, 입출력 하드웨어 등의 장치나 예외 상황이 발생하여 처리가 필요한 경우

마이크로 프로세(CPU)에게 알려서 처리할 수 있도록 한다.

 

하드워에 인터럽트 소프트웨어 인터럽트
하드웨어가 발생시킴
하드웨어 장치가 CPU에게 요청, 사실 전달할 경우 발생
소프트웨어가 발생시킴
사용자 프로그램이 스스로 인터럽트 라인은 세팅한다.
ex) 예외 상황, system call

'검색용 개발 블로그' 카테고리의 다른 글

웹소켓  (0) 2022.09.16
[운영체제] 프로세스 상태, 라이프 사이클, PCB, 문맥교환  (0) 2022.07.08
코드를 깃에 올리는 법  (0) 2022.06.21
서브쿼리  (0) 2022.05.13
문자열 빈칸, null, isEmpty()  (0) 2022.04.19