-
[Operating System] 운영체제 : 스레드Operating System 2024. 5. 18. 17:51
운영체제의 스레드에 대해 정리하였습니다.참조 : 인프런 '개발자를 위한 컴퓨터공학 1: 혼자 공부하는 컴퓨터구조 + 운영체제'
< 스레드 >
스레드(thread)는 프로세스를 구성하는 실행 흐름의 단위입니다.
하나의 프로세스는 하나 이상의 스레드를 가질 수 있습니다.단일/멀티 스레드 프로세스
[ 스레드의 구성 요소 ]
- 스레드 ID, 프로그램 카운터를 비롯한 레지스터 값, 스택 등 실행에 필요한 최소한의 정보를 가지고 있습니다.
- 하지만, 모든 스레드들은 프로세스의 자원을 공유하면서 실행이 됩니다.
요즘 사용되는 운영체제를 보면, CPU에게 처리해야 될 작업을 전달할 때 프로세스 단위로 전달하기보다는 스레드 단위로 전달하는 경우가 많습니다.
< 멀티 프로세스 VS 멀티 스레드 >
프로세스끼리는 자원을 공유하지 않습니다 → 독립적으로 실행
스레드끼리는 같은 프로세스 내의 자원을 공유합니다.(코드/데이터/힙 영역 등) → 협력과 통신에 유리[ 멀티 프로세스 ]
[ 멀티 스레드 ]
: 멀티 스레드 환경에서는 스레드가 공유하는 자원(코드/데이터/힙/파일 등)에 문제가 발생 시 전체 프로세스에 문제가 생길 수 있다는 단점이 있습니다.
프로세스 간 통신 IPC (Inter Process Communication) 을 이용해 프로세스 간에도 자원을 주고받을 수 있습니다.
(ex. 파일을 통한 프로세스 간 통신, 공유 메모리르 통한 프로세스 간 통신 등)'Operating System' 카테고리의 다른 글
[Operating System] CPU 스케줄링 : 알고리즘 (0) 2024.05.19 [Operating System] CPU 스케줄링 : 개요 (0) 2024.05.19 [Operating System] 운영체제 : 프로세스 상태와 계층 구조 (0) 2024.05.18 [Operating System] 운영체제 : 프로세스 개요 (0) 2024.05.18 [Operating System] 운영체제 : 운영체제의 큰 그림 (0) 2024.05.17 - 스레드 ID, 프로그램 카운터를 비롯한 레지스터 값, 스택 등 실행에 필요한 최소한의 정보를 가지고 있습니다.