728x90
동기식 입출력 & 비동기식 입출력
입출력 처리를 운영체제를 통해서 해야 한다.
- 입출력을 요청한 프로세스가 기다려야 한다면 → 동기식 입출력이다.
- 입출력이 진행되는 동안에 그 프로세스가 곧바로 CPU를 점유하여 실행한다면 → 비동기식 입출력이다.
동기식 입출력
- I/O 요청 후 입출력 작업이 완료된 후에야 제어가 사용자 프로그램에 넘어감
- 방법 1 : I/O 가 끝날 때 까지 CPU를 낭비시킨다. → 매 시점에 하나의 I/O 만 일어날 수 있음
- 방법 2 : I/O가 완료될 때까지 해당 프로그램에게서 CPU 를 빼앗음 → 다른 프로그램에게 CPU 를 준다.
대부분 방법2로 구현된다.
비동기식 입출력
- I/O 가 시작된 후 입출력 작업이 끝나기를 기다리지 않고 제어가 사용자 프로그램에 즉시 넘어감.
동기식 & 비동기식 입출력 모두, I/O 작업 의 완료는 인터럽트로 알려준다.
Thread
Thread는 CPU의 수행 단위이다.
- Thread 의 구성 : Program Counter (메모리의 어느 부분을 수행중인지 가리킴)+ Register Set + Stack 공간
- Thread 가 동료 Thread와 공유하는 부분 (= Task) : 코드 영역, 데이터 영역, OS 자원
- Thread들이 각각 별도로 가지고 있는 부분은 CPU 의 수행과 관련된 부분이다. 예를 들어, Stack, Register, PC 정보에 대해 각자 들고 있다. (각각 스레드들이 실행되는 내용이 다를 것이기 때문이다.)
Thread 사용의 장점
- 다중 스레드로 구성된 태스크 구조에는, 하나의 서버 스레드가 blocked (= waiting) 상태일 때 다른 스레드가 CPU를 잡고 실행(=running)될 수 있어서 응답시간이 더 빨라 질 수 있다.
- EX) 웹 브라우저 : 네트워크를 통해 웹 페이지를 읽어오는 작업 (I/O 작업), 웹 페이지를 읽어오는 동안에는 내 웹 브라우저는 blocked 상태이다. 사용자 입장에서는 답답할 것이다. 만약 웹 브라우저를 여러개 스레드 사용해서 만든다면, 하나의 스레드가 웹 서버에서 데이터를 불러오는 동안에, 또 다른 스레드가 이미 읽어온 데이터를 화면에 보여준다면 사용자 입장에서는 결과를 빨리 확인할 수 있게 된다.
728x90
'Computer Science > 운영체제' 카테고리의 다른 글
[운영체제] 8.Process Management 1 - 프로세스의 생성과 종료 (0) | 2023.06.25 |
---|---|
[운영체제] 7. Process 3 - Thread의 장점 2 (0) | 2023.06.18 |
[OS] 운영체제 6 Process Synchronization & Race Condition (0) | 2023.05.28 |
[OS] 운영체제 5.2 CPU Scheduling (0) | 2023.05.28 |
[OS] 운영체제 5.1 Process (0) | 2023.05.22 |