컴퓨터의 구조
운영체제의 목적
프로세서 기억장치, 입출력 장치 등의 효율적 관리
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 |
'기술 블로그 (Tech Blog) > 검색용 개발 블로그' 카테고리의 다른 글
mac Spectacle 권한 주기 (0) | 2022.10.31 |
---|---|
[운영체제] 프로세스 상태, 라이프 사이클, PCB, 문맥교환 (0) | 2022.07.08 |
코드를 깃에 올리는 법 (0) | 2022.06.21 |
서브쿼리 (0) | 2022.05.13 |
문자열 빈칸, null, isEmpty() (0) | 2022.04.19 |