잰이_IT/OS

05. Process 2

janey25 2018. 8. 1. 18:58

 

Process 2

 

- 동기식 입출력과 비동기식 입출력

instruction이 끝날 때까지 기다리고 아무것도 안하면 동기식

입출력 진행 동안에 곧바로 CPU를 잡아서 instruction을 수행 비동기식

 

-> 동기식과 비동기식 입출력 헷갈리는 것

프로세스가 IO요청 후 CPU를 가지고 있으면서 기다리면 구현방법 1

다른 프로그램에게 CPU를 넘겨주면 구현방법 2 / 효율적인 CPU 사용을 위함

-> 구현방법 2CPU를 빼앗아서 프로그램을 줄 세우는 거고 비동기식은 시작하자마자 제어가 사용자 프로그램으로 넘어가는 것.

 

 

 

- Thread (lightweight process)

 

프로세스 내부에 CPU 수행 단위가 여러 개 있는 경우

보통 프로세스가 하나가 주어지면 stack, data, code가 주어지는데 프로세스 상태를 나타나는 PCB( 여기서 현재 메모리를 어느 부분이 사용하고 있는지 PC가 가리키고 있음)도 함께 나타나게 된다.

 

 

프로세스를 여러 개 만들면 별도의 주소공간이 만들어지기에 같은 일을 하는 프로세스를 여러 개 사용하고 싶을 때 한 가지 주소공간으로 다른 부분의 코드를 사용하게 하면 된다.(PC만 여러 개를 두면 되는 것)

 

-> 프로세스 하나에서 메모리 주소 공간, 프로세스 상태, 각종 자원들 까지 공유(task)

-> CPU 수행관련 정보 Program Counter, Register set, Stack space 과 같은 것들만 별도로 가지고 있게 됨

 

- 스레드의 장점

 

1. 응답성, Responsiveness : 다중 스레드로 구성된 태스크 구조에서는 하나의 서버 스레드가 blocked, waiting 상태인 동안에도

                                    동일 태스크 내 다른 스레드가 running 되어 빠른 처리가 가능하다. ex)multi-threaded Web

2. 자원 공유,Resource Sharing : 동일한 일 수행 다중 스레드가 협력하여 높은 처리율, throughtput과 성능 향상을 얻을 수 있다.

3. 경제성, Economy : 프로세스 하나를 만드는 것에 대한 오버헤드, CPU switching 에 관한 오버헤드를 줄일 수 있다.

4. 병렬성, Utilization of MP Architectures : CPU가 여러 개 일 경우!

 

 

- 단일 스레드와 멀티 스레드 비교

 

 

 

 

 

 

 

 

 

 

'잰이_IT > OS' 카테고리의 다른 글

Process 3  (0) 2018.08.08
04. Process1  (0) 2018.07.23
03. System Structure & Program Execution 2  (0) 2018.07.20
02. System Structure & Program Execution 1  (0) 2018.07.18
01. Introduction to Operating Systems  (0) 2018.07.17