728x90

    럭키-[이모티콘]어밴드


    쓰레드(Thread)란?

    프로세스 내에서 프로그램을 실행하는 작업 단위

    프로세스 내부에서 프로세스의 일부 기능을 갖고 있기 때문에 명령프로세스 라고함.

    프로세스에는 하나 혹은 여러개의 Thread를 포함

    작업을 수행할 때는 Thread가 반드시 필요

    하나의 Thread는 독립된 작업수행과 작업제어를 하기 위한 

    자기만의 스택과 레지스터를 가짐


    Thread 의 종류

    1) 프로세스 사용방법에 따른 분류

    단일 Thread :하나의 프로세스 한 개의 Thread 존재

    다중 Thread : 하나의 프로세스에 여러 개의 Thread 존재


    2) 운영체제의 종류에 따른 분류

    사용자 수준의 Thread :

    사용자가 만든 라이브러리를 사용하여 Thread운용

    사용자 수준 Thread 여러 개가 커널 Thread 하나로 매핑 됨 ( 다대일 스레드 매핑)

    속도는 빠르지만 구현이 어려움


    커널 수준의 Thread :

    운영체제의 커널에 의해서 Thread운용

    사용자 수준 스레드 한 개가 커널 Thread 하나로 매핑 됨 ( 일대일 스레드 매핑

    구현이 쉽지만 속도가 느림

    윈도우NT/XP/2000, 리눅스, 솔라리스,9 이상버전, OS/2 MACH,  등등


    혼합형 Thread

    사용자 수준의 스레드와 커널 수준의 스레드를 혼합한 형태로 운용됨

    다대다 스래드 매핑


    Thread의 상태

    준비 : 스레드가 프로세스에 의해 준비된 상태

    실행 : 스레드가 프로세스에 의핸 실행 중인 상태,활성화 된 상태

    대기 : Thread가 입출력 작업이 완료될 때까지 대기상태, Thread가 정보를 스택에 저장,

     같은 프로세스 내의 다른 Thread가 실행 될수 있음

    종료 : Thread가 작업을 완전히 종료한 상태, 레지스터와 스택을 비움


    다음 포스트가 궁금하시다면 

    ↓ 아래 링크를 클릭해주세요. ↓

    [컴퓨터의 이해] 프로세스 관리와 스케줄링 정리


    '공감'버튼 및 '좋아요'는 글쓴이에게 큰 힘이 됩니다!

    (클릭)블로그 구독도 부탁드립니다.(네이버이웃 추가)


    Posted by 천상나타