[컴퓨터의 이해] 쓰레드 (Thread) 관련 정리
쓰레드(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가 작업을 완전히 종료한 상태, 레지스터와 스택을 비움
다음 포스트가 궁금하시다면
↓↓↓ 아래 링크를 클릭해주세요. ↓↓↓↓
'공감'버튼 및 '좋아요'는 글쓴이에게 큰 힘이 됩니다!