Today
-
Total
-
  • 운영체제 - 4(쓰레드, 병행프로세스)
    OS 2019. 6. 26. 14:56

    쓰레드

     

    - 프로세서의 이용 기본 단위(Process > Threads)

    - 프로그램 명령을 실행하는 프로세스 내의 개체 - 명령어의 제어 흐름

     

     

    1. 쓰레드의 구조

    - 1개 Process에는 1개 이상의 Thread 존재

    - 1개의 Process 내 Thread가 모두 종료되면 Process도 제거됨

     

    2. 쓰레드의 병렬수행

    - 프로세스 하나에 포함된 쓰레드들은 공동 목적 달성을 위해 병렬 수행

    - 프로세서에서 프로그램의 다른 부분 동시 실행

     

    3. 단일 쓰레드와 다중 쓰레드

    1) 단일 쓰레드 프로세스 : 쓰레드 1개

    2) 다중 쓰레드 프로세스 : 쓰레드 n개 -> 병렬수행이 잘 이루어진다면 성능 향상

     

    4. 사용자 레벨 쓰레드 / 커널 레벨 쓰레드

    1) User level thread : Kernel의 개입 없이 사용자 영역에서 실행되는 쓰레드

    2) Kernel level thread : Kernel이 스레드를 관리하여 Kernel 종속 적인 스레드

    3) Hybrid level thread : 사용자 영역에서 생성 -> 매핑 -> 커널 영역

     


     

    병행프로세스

    병행 프로세스 :

    - 동시에 실행 중인 2개 이상의 프로세스

    - 병행성이 보장되면 성능 향상

     

    1. 병행성을 보장하려면?

     

    1) 공유자원의 배타적 사용 허용

    2) 상호 프로세스간 협력/동기화 관리

    3) 프로세스간 상호 통신방식 필요

    4) 교착상태 해결방법 제시

    5) 상호 실행속도와 상관없는 일정한 실행결과

     

    2. 선행그래프

     

    : 두 프로세스 간 존재하는 선행관계를 규칙적으로 표현한 것

    : 선행그래프로 병행성을 판별한다

     

    3. Fork, Join

     

    Fork() : 수도 코드로 프로세스를 생성하는 구문

    Join() : 2개 이상의 병행문장들을 하나로 결합

     

    댓글