스레드란?
- 프로세스의 두 가지 특성인 자원과 제어 중 제어로 분리된 실행 단위
- 프로세스 == 한 개 이상의 스레드
- 스레드들은 프로세스의 직접 실행 정보를 제외한 나머지 관리 정보를 공유
- 다른 스레드와 코드, 전역 데이터, 힙을 공유
- 스택은 독립적으로 소유
➡️ 응용 프로그램에는 적어도 하나의 프로세스가 있고, 프로세스는 적어도 하나의 스레드로 이루어져 있다.
스레드 사용 시 이점
- 사용자 응답성 증가 : 병렬 프로그래밍으로 다중 스레드를 적용한 브라우저는 스레드가 한 개가 파일을 로딩하는 동안 다른 스레드는 사용자와 상호작용
- 프로세스의 자원과 메모리 공유 가능 : 하나의 주소 공간에서 시스템 성능 향상
- 경제성이 좋음 : 스레드를 생성하여 문맥을 교환하면 오버헤드 감소
- 다중 처리로 성능과 효율 향상 : 각 스레드를 여러 프로세서에서 병렬로 실행하면 성능과 효율성 증대
단일 스레드 vs. 다중 스레드
- 현대 운영체제는 대부분 다중 스레드
- 스레드는 프로세스의 자원을 공유하므로 자원 생성과 관리의 중복성을 최소화
- 스레드 한 개가 읽기 권한으로 힙에 있는 파일을 열면, 동일한 프로세스의 다른 스레드도 이 파일을 읽기 가능
→ 이러한 특성 때문에 프로세스보다 스레드를 생성하는 것이 빠름
스레드의 상태 변화
- 프로세스와 비슷하게 준비, 실행, 대기(보류), 종료 상태
- 스레드 생성 및 종료의 오버헤드가 적은 이유 : 스레드 생성에서는 부모프로세스와 공유할 자원을 초기화할 필요가 없다. 해당 프로세스가 스택과 레지스터를 제공하기 때문이다.
- 스레드는 사용자 한 명이 여러 스레드로 개인 프로세스 하나를 소유
스레드의 제어 블록
- 실행 상태
- 스케줄링 정보
- 계정 정보
- 스케줄링 큐용 다양한 포인터
해당 글은 <운영체제: 그림으로 배우는 구조와 원리>를 보고 정리한 내용입니다.
IT CookBook, 운영체제(개정3판)
구현회 koohhoe@gmail.com 배화여자대학교 스마트IT학과 명예교수로 연구와 집필 활동 중이다. 운영체제 외에도 유닉스 서버, 컴퓨터 보안, 데이터베이스 등에 관심이 많으며, 강의도 이 범주에서 진
books.google.co.kr
'CS > 운영체제' 카테고리의 다른 글
[OS] 멀티레벨 피드백 큐 (MLFQ) (0) | 2023.11.27 |
---|---|
[OS] 벨레이디의 모순(Belady's anomaly)이란? (0) | 2023.11.27 |
[OS] 프로세스의 상태 변화와 관리 (0) | 2023.11.20 |
[OS] 운영체제의 서비스와 구조 (0) | 2023.11.05 |
[OS] 운영체제의 유형 (0) | 2023.11.05 |
스레드란?
- 프로세스의 두 가지 특성인 자원과 제어 중 제어로 분리된 실행 단위
- 프로세스 == 한 개 이상의 스레드
- 스레드들은 프로세스의 직접 실행 정보를 제외한 나머지 관리 정보를 공유
- 다른 스레드와 코드, 전역 데이터, 힙을 공유
- 스택은 독립적으로 소유
➡️ 응용 프로그램에는 적어도 하나의 프로세스가 있고, 프로세스는 적어도 하나의 스레드로 이루어져 있다.
스레드 사용 시 이점
- 사용자 응답성 증가 : 병렬 프로그래밍으로 다중 스레드를 적용한 브라우저는 스레드가 한 개가 파일을 로딩하는 동안 다른 스레드는 사용자와 상호작용
- 프로세스의 자원과 메모리 공유 가능 : 하나의 주소 공간에서 시스템 성능 향상
- 경제성이 좋음 : 스레드를 생성하여 문맥을 교환하면 오버헤드 감소
- 다중 처리로 성능과 효율 향상 : 각 스레드를 여러 프로세서에서 병렬로 실행하면 성능과 효율성 증대
단일 스레드 vs. 다중 스레드
- 현대 운영체제는 대부분 다중 스레드
- 스레드는 프로세스의 자원을 공유하므로 자원 생성과 관리의 중복성을 최소화
- 스레드 한 개가 읽기 권한으로 힙에 있는 파일을 열면, 동일한 프로세스의 다른 스레드도 이 파일을 읽기 가능
→ 이러한 특성 때문에 프로세스보다 스레드를 생성하는 것이 빠름
스레드의 상태 변화
- 프로세스와 비슷하게 준비, 실행, 대기(보류), 종료 상태
- 스레드 생성 및 종료의 오버헤드가 적은 이유 : 스레드 생성에서는 부모프로세스와 공유할 자원을 초기화할 필요가 없다. 해당 프로세스가 스택과 레지스터를 제공하기 때문이다.
- 스레드는 사용자 한 명이 여러 스레드로 개인 프로세스 하나를 소유
스레드의 제어 블록
- 실행 상태
- 스케줄링 정보
- 계정 정보
- 스케줄링 큐용 다양한 포인터
해당 글은 <운영체제: 그림으로 배우는 구조와 원리>를 보고 정리한 내용입니다.
IT CookBook, 운영체제(개정3판)
구현회 koohhoe@gmail.com 배화여자대학교 스마트IT학과 명예교수로 연구와 집필 활동 중이다. 운영체제 외에도 유닉스 서버, 컴퓨터 보안, 데이터베이스 등에 관심이 많으며, 강의도 이 범주에서 진
books.google.co.kr
'CS > 운영체제' 카테고리의 다른 글
[OS] 멀티레벨 피드백 큐 (MLFQ) (0) | 2023.11.27 |
---|---|
[OS] 벨레이디의 모순(Belady's anomaly)이란? (0) | 2023.11.27 |
[OS] 프로세스의 상태 변화와 관리 (0) | 2023.11.20 |
[OS] 운영체제의 서비스와 구조 (0) | 2023.11.05 |
[OS] 운영체제의 유형 (0) | 2023.11.05 |