#3-2. Process

 

???) 동기식 입출력과 비동기식 입출력의 차이점.

- 동기식 : 입출력 진행되는 동안에 프로세스가 아무일도 하지 않고 기다리는 것.

- 비동기식 : 입출력이 진행되는 동안에 그 프로세스가 cpu를 잡아서 instruction을 실행을 하는것.

 


* Thread
 : 프로세스 내부에 cpu 수행 단위

 

 

 

# pc가 code 어느부분을 가리키게 된다.

 

# Thread 라는건 프로세스 하나에서 공유할수 있는건 최대한 공유,
 1. 메모리 주소공간 (data, code)
 2. 프로세스 상태
 3. 프로세스가 사용하는 각종 자원들

 

# 별도로 가지고 있는것. (점선으로 되어있는것)
 1. cpu 관련된것들(PC, register)
 2. 주소공간의 (stack)

 

* Thread 정리 (light weight process)
 : cpu를 수행하는 단위

 

 v. Thread의 구성 (독립적으로 가지고 있는 것)
  - Program Counter
  - register set
  - stack space

 v. Thread가 동료 thread와 공유하는 부분 (=task)
  - code section
  - data section
  - OS resources

 v. 전통적인 개념의 heavy weight process는 하나의 thread를 가지고 있는 task로 볼 수 있다. 
 
* 쓰레드를 사용하면 어떤 장점이 있나?

 

 - 응답시간이 빨라진다.
 : 다중 스레도로 구성된 task 구조에서는 하나의 서버 스레드가 blocked(waiting) 상태인 동아넹도 동일한 task 내의 다른 스레드가 실행 (running)되어 빠른 처리를 할 수 있다.

 

 - 동일한 일을 수행하는 다중 스레드가 협력하여 높은 처리율과 성능 향상을 얻을 수 있다.

 

 - 스레드를 사용하면 병렬성을 높일 수 있다.

 
 ex> 웹 브라우저에서 naver를 본다면, network을 통해서 web page를 읽어오는 작업이 I/O 작업이된다.

     만약 멀티 스레드가 아니라면 이 작업중에 사용자는 아무것도 할 수 없게 되어 답답한게 된다.

'cs > os' 카테고리의 다른 글

#4. Process Management  (0) 2018.01.02
#3-3. Thread  (0) 2017.12.29
#3-1. Process  (0) 2017.12.27
#2-2. System Structure & Program Execution  (0) 2017.12.25
#2-1. System Structure & Program Execution  (0) 2017.12.24

+ Recent posts