ABOUT ME

-

Today
-
Yesterday
-
Total
-
  • 3-2~3. Process 2,3
    OS/운영체제 강의정리 2021. 12. 30. 19:32

    3-2. Process 2

    동기식 입출력과 비동기식 입출력, 프로세스 스케줄링 큐의 모습, Thread

    Thread

    • “A Thread(or lightweight process) is a basic unit of CPU utilization” :CPU를 수행하는 단위
    • Thread의 구성
      • Program Counter
      • register set
      • stack space
    • Thread가 동료 thread와 공유하는 부분 (=task)
      • code section
      • data section
      • OS resources
    • 전통적인 개념의 heavyweight process는 하나의 thread를 가지고 있는 task로 볼 수 있다.
    • 장점
      • 응답성(Responsiveness) : 사용자 입장에서 빠른것 왜 ? 웹브라우저라는 하나의 프로그램이 쓰레드를 여러개 가지고 있으면, 웹브라우저를 띄어놓고 주소를 치면, html 문서가 제일먼저 보이지, 그 문서를 웹브라우저 화면에 디스플레이하려고 봤더니 임베드된 그림들이 있음. 그러면 웹브라우저가 해석을해서 이미지들을 웹브라우저에 요청을하고 도착을 하면 Html화면에다가 하나의 웹페이지로 완성해서 보여주지. 보통은 이미지를 가져오는걸 오래걸리는 작업이기에 블럭을 시킬것임. 근데 쓰레드를 여러개 두면 이미지를 요청한 그 쓰레드만 블럭이됨 다른 쓰레드가 이미 읽어온 html 문서라도 화면에 보여주면 사용자입장에서 답답함이 덜하겠지.
      • 자원 공유(Resource Sharing) : 만약 똑같은 일을 하는 프로그램이 여러개 있는데 별도의 프로세스를 사용하는것 보다는 하나의 프로세스를 사용하여 그 안에 CPU수행 단위만 여러개를 두면, 각종 자원을 공유하며 좀더 효율적으로 쓸 수 있겠지.
      • 경제성(Economy) : 응답성과는 조금 다른 개념이지만 빠르다는 말, 프로세스를 하나 만드는것은 오버헤드가 크다. 다만 프로세스 안에다가 쓰레드를 만드는것은 숟가락만 얹으면 되기에 그렇게 오버헤드가 크지않고. 문맥교환은 오버헤드가 굉장히 큰데, 프로세스 내부에서 쓰레드간에 CPU스위치가 일어나는것은 간단한문제다. 같은 주소공간을 사용하기에 대부분의 문맥을 그대로 사용할 수 있는것.
      • Utilization of MP Architectures: CPU가 여러개 있는 경우에서의 장점
        • 각각의 쓰레드가 서로다른 CPU에서 병렬적으로 일을 할 수 있기에 결과를 더 빨리 얻을 수 있음. (굉장히 큰 행렬을 곱했을경우와같은것)
      • 다중 스레드로 구성된 테스크 구조에서는 하나의 서버 스레드가 blocked(waiting)상태인 동안에도 동일한 태스크 내의 다른 스레드가 실행(runnig)되어 빠른 처리를 할 수 있다.
      • 동일한 일을 수행하는 다중 스레드가 협력하여 높은 처리율(throughput)과 성능 향상을 얻을 수 있다.
      • 스레드를 사용하면 병렬성을 높일 수 있다. (CPU가 여러개인 것에서만 장점임)

    쓰레드는 프로세스 내부의 CPU수행 단위가 여러개 있는걸 부름

    프로세스를 여러개 띄어놓고 싶으면, 주소공간은 하나만 (메모리공간은 하나만) 띄어놓고, 프로세스마다 다른 부분의 코드를 실행할 수 있게 해주면 됨. Code, Data, Stack은 하나만 띄어놓고, 프로그램 카운터만 여러개 두는 것,

    즉. 쓰레드라는 것은 프로세스 하나에서 공유할 수 있는건 최대한 공유하고 (메모리 주소공간, 프로세스 상태도 공유, 프로세스가 사용하는 각종 자원들도 공유) 다만, 별도로 가지고 있는것은 CPU수행과 관련된 정보 (프로그램 카운터나 레지스터나 스택같은 것! 쓰레드만의 별도로 가지고 있게 됨)

    https://copycode.tistory.com/52?category=740133

     

    'OS > 운영체제 강의정리' 카테고리의 다른 글

    5-1. CPU Scheduling 1  (0) 2021.12.30
    4-1~2. Process Management 1,2  (0) 2021.12.30
    3-1. Process 1  (0) 2021.12.30
    2-2. System Structure & Program Execution 2  (0) 2021.12.30
    2-1. System Structure & Program Execution 1  (0) 2021.12.30

    댓글

Designed by Tistory.