스레드
목차
01. 운영체제의 개요
02. 컴퓨터의 구조와 성능 향상
03. 프로세스와 스레드
04. CPU 스케줄링
05. 프로세스 동기화
06. 교착 상태
07. 물리 메모리 관리
08. 가상 메모리의 기초
09. 가상 메모리 관리
10. 입출력 시스템과 저장장치
11. 파일 시스템
12. 네트워크와 분산 시스템
스레드
스레드의 정의
CPU 스케쥴러가 CPU에 전달하는 일 하나가 스레드이다.
CPU가 처리하는 작업의 단위는 프로세스로부터 전달받은 스레드이다.
작업의 크기는 작업 > 프로세스 > 스레드 이다.
프로세스와 스레드의 차이
프로세스는 약하게 연결되어있다. 그러나, 스레드는 강하게 연결되어있다.
멀티 태스크와 멀티 스레드의 차이
멀티 태스크는 여러개의 프로세스로 구성되어 있고,
멀티 스레드는 하나의 프로세스에 멀티 스레드로 구성되어있는 것이다.
스레드 관련 용어
멀티 스레드
멀티 스레드는 프로세스 내 여러 스레드로 작업을 분산 시켜 작업 효율을 늘려준다.
멀티 태스킹
운영체제가 CPU에 작업을 줄 때 시간을 잘게 나누어 배분하는 기법이다.
(하나의 CPU로 여러개의 프로세스 동시에 작업 가능)
멀티 프로세싱
CPU를 여러 개 사용하고 여러개의 스레드로 동시에 작업을 처리하는 기법이다.
슈퍼 스칼라 기법이랑 같다.
CPU 멀티 스레드
한 번에 하나씩 처리해야 하는 스레드를 파이프 라인 깁버으로 동시에 여러 스레드를 처리하도록 만든 병렬처리기법이다.
- 멀티 스레드 : 소프트웨어적으로 작은 단위의 스레드를 분할하여 운영하는 기법.
- CPU 멀티 스레드 : 하드웨어적인 방법으로, 하나의 CPU에서 여러 스레드를 동시에 처리하는 기법
멀티 스레드
스레드는 멀티 태스킹의 낭비 요소를 제거하기 위해 사용한다.
멀티 태스킹과 멀티 스레드의 차이
만약, 스레드가 여러개가 없으면 fork() 시스템 호출로 여러개의 프로세스를 만들게 되면, 필요 없는 정적 영역이 여러 개가 된다.
그런데, 멀티 스레드는 추가적인 프로세스를 생성할 필요 없이 작업할 수 있기 때문에 자원의 낭비를 막고 효율성을 향상시킨다.
멀티 스레드의 장점
- 응답성 향상
- 자원 공유
- 효율성 향상
- 다중 CPU 지원
멀티 스레드의 단점
스레드는 너무 긴밀하게 연결되어있어서 하나가 오류나면, 전체가 오류가 난다.
멀티 스레드 모델
- 커널 스레드 : 커널이 직접 생성하고 관리하는 스레드이다.
- 사용자 스레드 : 라이브러리에 의해 구현된 일반적인 스레드이다.
사용자 레벨 스레드
운영체제가 멀티스레드를 지원하지 않을 때 사용하는 방법으로, 라이브러리로 구현.
사용자 레벨 스레드의 단점
커널 스레드가 입출력 작업을 위해 대기 상태에 들어가면, 모든 사용자 스레드가 같이 대기하게 된다는 것이다.
그리고 한 프로세스의 타입 슬라이스를 여러 스레드가 공유하기 때문에 여러 개의 CPU를 동시에 사용할 수 없다는 것이다.
커널 레벨 스레드
커널이 멀티 스레드 지원방식으로 하나의 사용자 스레드가 하나의 커널 스레드와 연결되기 때문에 1 to 1모델이라고 한다.
독립적으로 스케쥴링이 되어서 특정 스레드가 대기 상태에 들어가도 다른 스레드는 작업 가능하다.
멀티 CPU사용가능하다. 보안에 강하고 안정적으로 작동한다.
그러나, 문맥교환을 할 때, 오버헤드 때문에 느리게 작동한다.
멀티 레벨 스레드
사용자 레벨 스레드랑 커널 레벨 스레드를 혼합해서 M to N이다.
오버헤딩이 단점이며, 여러 CPU사용이 가능하다.
'Operating System' 카테고리의 다른 글
스케줄링시 고려사항 (0) | 2022.04.11 |
---|---|
스케줄링의 개요 (0) | 2022.04.10 |
프로세스의 연산 (0) | 2022.04.05 |
프로세스 제어 블록과 문맥 교환 (0) | 2022.04.04 |
프로세스의 개요 (0) | 2022.04.03 |
댓글
이 글 공유하기
다른 글
-
스케줄링시 고려사항
스케줄링시 고려사항
2022.04.11 -
스케줄링의 개요
스케줄링의 개요
2022.04.10 -
프로세스의 연산
프로세스의 연산
2022.04.05 -
프로세스 제어 블록과 문맥 교환
프로세스 제어 블록과 문맥 교환
2022.04.04