티스토리 뷰
스래드는 프로세스 내부에 존재(프로세스는 하나의 스래드로 구성된 태스크)
- CPU 제어의 흐름(flow of CPU control)
- 실행 단위(unit of execution)
- 한 프로세스 내부에서 스케줄링이 가능한 개체
- 경량(lightweight) 프로세스
단일 스래딩(single-threading): 프로세스 내부에 오직 하나의 스래드만 존재한다
다중 스래딩(multi-threading): 프로세스 내부에 다수의 스래드들이 존재할 수 있다.
프로세스와 같은 점
- CPU를 할당하는 대상(dispatchable objects of CPU)
- 시스템 내부에서의 작업 단위(unit of works in a system)
- 상태를 가지고 있으며 상태 변환이 일어난다.
- 독립적이며 비동기적으로 실행되는 개체이다.
프로세스와 다른 점
- 프로세스 내부에 존재한다.
- 프로세스의 코드, 데이터 영역을 공유한다.
- 관리에 필요한 정보량이 훨씬 적다.(경량 프로세스)
- 문맥교환의 오버헤드(overhead)가 작다.
스래드 생성: pthread_create()
프로세스가 생성될 때 기본적으로 하나의 스래드가 존재 -> 단일 스래딩(single threading)
새로운 스래드 생성 가능 ->다중 스래딩(multi-threading)
pthread_create() 라이브러리 함수를 사용하여 새로운 스래드를 생성.
표준 라이브러리가 아님으로 컴파일링시 “-lpthread”를 반드시 첨가해야 한다.
(ex: $gcc thread.c –o thread –lpthread)
'cs > operating system' 카테고리의 다른 글
[운영체제/OS] 리눅스 프로세스 (0) | 2021.03.28 |
---|---|
[운영체제/OS] 프로세스 스케줄링 (선점/비선점) (0) | 2021.03.28 |
[운영체제/OS] 프로세스 정의, 상태, 주소 영역, 문맥 교환, PCD, 생성/종료 (0) | 2021.03.26 |
[운영체제/OS] 운영체제 진입점(Entry Points) (0) | 2021.03.14 |
[운영체제/OS] 운영체제 기능 (0) | 2021.03.14 |