ABOUT ME

데브옵스, 쿠버네티스, 네트워크, 리눅스, 클라우드 등을 공부하고 있는 개발자 입니다

Today
Yesterday
Total
  • 스레드(Thread) 관리
    운영체제 2022. 7. 11. 00:11

    틀린 내용이 있을 수도 있습니다! 

    틀린 내용이 있다면 댓글로 달아주시면 감사하겠습니다!

     

     

    스레드(사용자 수준 스레드) 사용의 이점

    1. 프로세스 내 스레드들은 자원을 공유해서 사용하기 때문에 비용이 적은 스레드 수준의 context switching만 발생한다. 

    2. 일부 스레드 처리가 지연되어도, 다른 스레드들은 작업을 계속 처리할 수 있다.  

    3. 멀티 프로세서 시스템에서 병렬 처리가 가능하다.

    4. 프로세스 수준의 context switching가 발생하지 않기 때문에 멀티 프로세스를 사용하는 것 보다 경제적이다. 

     

    사용자 스레드와 커널 스레드

    스레드는 크게 사용자 수준 스레드와 커널 수준 스레드로 나눌 수 있다.

    운영체제에서는 사용자 수준 스레드와 커널 수준 스레드를 다대다 맵핑하여 사용한다. 

     

    1. 사용자 수준 스레드

    - 프로세스 내에서 라이브러리를 이용해서 만드는 스레드로 커널의 개입이 없기 때문에 관리의 부하가 적다. 

     

    2. 커널 수준 스레드 

    - 커널 수준 스레드는 프로세스 단위로 자원을 할당한다.

    - 프로세스는 적어도 하나의 커널 스레드를 갖는다. 

    - OS 커널이 직접 관리한다. 

    - 커널 영역에서 스레드를 생성하고 관리하므로 부하가 크다. 

     

    멀티 스레드 사용의 예

    기본적으로 I/O가 많은 곳에서 멀티 스레드를 사용한다.

    예를 들면 FPS와 같은 I/O가 많이 발생하는 게임의 경우 싱글 스레드만 사용하게 된다면 process는 running -> block -> ready -> running을 반복하게 될 것이고, 사용자의 입장에서는 굉장히 답답할 것이다. 

     

     

    반응형

    댓글

Designed by Tistory.