Thread   스레드, 쓰레드

(2020-03-13)

단일 스레드, Multi-Thread, 멀티 스레드, Multithreading, 멀티 스레딩

Top > [기술공통]
[기초과학]
[진동/파동]
[방송/멀티미디어/정보이론]
[전기전자공학]
[통신/네트워킹]
[정보기술(IT)]
[공학일반(기계,재료등)]
[표준/계측/품질]
[기술경영]
정보기술(IT) >   1. 정보기술
[전산기초]
[컴퓨터구조]
[프로그래밍]
[데이터베이스]
[소프트웨어 공학]
[운영체제]
[정보보호/보안]
[IT 기타기술]
운영체제 > [운영체제(일반)]
[프로세스]
[윈도우즈]
[UNIX (LINUX)]
프로세스  1. 프로세스
  2. 선점형
  3. 병행 프로세스
  4. 멀티 태스킹
  5. 스레드

1. 스레드 (Thread)

  ㅇ 영어 뜻 자체로는, 이야기의 흐름 또는 줄기를 말함

  ㅇ 하나의 프로세스 내에서, 더 작은 단위로 독립적으로 실행시키며 제어가 가능한 흐름 
     - 일명, Excecution Context(실행 컨텍스트) 또는 Lightweigt(경량급) 프로세스라고 함


2. 프로세스와 스레드 차이프로세스
     - 완전한 하나의 프로그램이 실행되는 것
     - 예를들어, 유닉스에서 볼때, fork()를 통해 생성되는 프로세스는,
        . 원래의 프로세스와 똑같은 변수코드 등 여러 면에서 똑같은 복사본임
     - 따라서, 부모와 똑같은 자식을 생성하기 위해서는 많은 자원이 요구됨

  ㅇ 스레드
     - 스레드는 프로세스와는 달리,
        . 부모 프로세스 전체의 복사본을 만들지 않고, 필요한 코드 덩어리 만을 생성하여 동시에 수행 
        . (생성) 해당 스레드들 모두가 동일 프로그램으로 생성되나, 서로 독립되어 실행 됨
        . (공유) 해당 스레드들 모두가 전역 메모리 공간을 함께 공유 함 
     - 따라서, 부모 스레드가 갖고 있는 모든 데이터를 완전하게 접근할 수 있기 때문에,
        . 효율적이고 메모리 제약이 있는 시스템에 널리 사용

  ※ 한편, 전통적인 유닉스 시스템은, 각 프로세스가 단 하나의 스레드로 만 구성됨


3. 멀티 타스킹, 멀티 스레드 비교멀티 타스킹은, 
     - 운영체제의 입장에서 동시에 여러 프로세스를 수행하는 것
     - 즉, 운영체제가 관리의 주체 임

  ㅇ 멀티 스레드는, 
     - 하나의 응용 프로그램이 동시에 여러 개의 실행 흐름을 만들어 내는 것
        . 하나의 응용 프로그램이 직접 스레드 생성 및 파괴를 관리하게 됨

     - 멀티 스레드의 각 스레드 마다 제각각 시스템 자원을 사용하게 됨

     - 유닉스에서, 멀티 스레드 프로세스의 경우에,
        . 동일 프로그램을 여러 스레드에서 동시에 실행 함
        . 모든 스레드가, 같은 전역 변수/힙 메모리를 공유 함
        . 또한, 프로세스 ID, 오픈 파일 디스크립터, 시그널 속성, 현재 작업 디렉토리,
               자원 한도 등의 속성도 공유 함
        . 각 스레드는, 지역 변수를 담은 개별 스택을 갖게 됨

  ※ 한편, 단일 스레드 환경은, 하나의 응용 프로그램이 단 하나의 실행 흐름 만 만듬
     - 즉, 한 번에 한가지 일 만 수행 가능
        . 이 경우, 인터럽트비동기적 처리는 어려워짐


4. 스레드 기반의 아키텍처

  ㅇ MS社의 제품군인 윈도우 NT, 2000, XP 등
     - UNIX에서와는 달리 스레드 기반의 아키텍쳐를 갖음
     - 이는 단일 프로세스 하에 다중 스레드로 구현

  ㅇ 스레드 기반의 아키텍처의 장점으로는,
     - 한 개의 프로세스의 모든 스레드들은 같은 프로세스 메모리 공간을 공유함
     - 따라서, 응용 프로그램들의 메모리 분배가 효율적
     - 유닉스 같은 운영체제에서의 프로세스 간의 메모리 분배 관리기법이 불필요

  ㅇ 스레드의 단점
     - 어느 한 스레드가 제어상에 문제가 발생하면, 타 스레드 메모리 공간을 덮어쓸 수도 있기
       때문에 안정성에 다소 취약


[프로세스] 1. 프로세스 2. 선점형 3. 병행 프로세스 4. 멀티 태스킹 5. 스레드

    요약목록
Copyrightⓒ written by 차재복 (Cha Jae Bok)        「 소액후원 」