본문 바로가기
Computer Science/OS

직무면접을 위한 공룡책 OS ch.4

by 수제햄버거 2020. 11. 10.
728x90
반응형

Threads

  • 프로세스 작업의 흐름
  • Single Thread vs Multi Thread
    • single - 한번에 하나의 작업만 수행
    • multi - 동시에 여러 작업을 수행
    • Why we use multi-thread? → 두 프로세서가 하나의 데이터를 공유하기 위해선 메세지 패싱 or 공유 메모리 or 공유 파이프 사용이 필요하다. 이는 효율도 떨어지고, 구현 및 관리도 번거롭다. → Context switch가 계속 일어나면 성능저하가 발생된다. Thread 전환은 비교적 속도가 더 빠르다.

Multithreaded Server Architecture & Multicore Programming

  • 서버나 클라이언트 사이도 멀티쓰레드로 구현한다. 클라이언트가 서버에게 요청을 보내면 서버는 새로운 쓰레드를 생성해 요청을 수행한다. 이는 프로세서를 생성하는것보다 쓰레드를 생성하는 것이 더 빠르기 때문이다.
  • 또한 멀티 코어 , 멀티 프로세서 시스템을 구현할때 동시성(Concurrency)와 병렬성(Parallelism)을 알아야 한다. 동시성 (Concurrency) : 동시에 실행되는 것처럼 보이게 하는 방식 병렬성 (Parallelism) : 쓰레드를 동시에 수행하는 방식( 여러개의 코어들이)

Multithreading Models

  • 유저 쓰레드와 커널 쓰레드 간의 관계를 설계하는 방법이다.

  • Many to One Model

    -하나의 커널 쓰레드에 여러개의 유저 쓰레드 연결 -한번에 하나의 유저 쓰레드만 커널에 접근이 가능하다.(⇒ 멀티코어 시스템에서도 병렬적인 수행이 불가능)

  • One to One Model

    -하나의 유저 쓰레드에 하나의 커널 쓰레드가 대응하는 모델. 동시성을 높여주고, 멀티 프로세서 시스템에서 동시에 여러 쓰레드를 수행할 수 있게 해준다. 커널 스레드를 많이 생성해야 해서 오버헤드가 커지고 성능 저하가 발생할 수 있다.

  • Many to Many Model

  • 여러 유저 쓰레드에 더 적거나 같은 수의 커널 쓰레드를 대응시키는 모델.

  • Two-level Model

  • 특정 유저 쓰레드를 위한 커널 쓰레드를 따로 제공. 점유율이 높아야 하는 유저 쓰레드를 더 빠르게 처리해줄 수 있다.

Thread Pools

  • 스레드 요청→ 새로운 쓰레드 생성 → 수행 →삭제 ⇒ 반복시 성능저하 때문에 미리 Pools에 여러개의 쓰레드를 만들어두고 요청 오면 풀에서 할당해주는 방법

 

Keyword Reviews

Threads? /

Multithreaded Server/

Multicore Programming/

Multithreading Models/

Thread Pools

 

출처 : parksb.github.io/article/8.html

 

🦕 공룡책으로 정리하는 운영체제 Ch.4

Multithreaded Programming

parksb.github.io

  •  
반응형

'Computer Science > OS' 카테고리의 다른 글

Python Programming 요약  (0) 2022.06.09
직무면접을 위한 공룡책 OS ch.3  (0) 2020.10.29
직무면접을 위한 공룡책 OS ch.1  (0) 2020.10.28