It is What it is
로그인
It is What it is
로그인
[운영체제] 스레드와 병행성
.
·
2021년 7월 22일
팔로우
0
0
운영체제
목록 보기
4/6
개요
스레드 : CPU 이용의 기본 단위
스레드 ID, 프로그램 카운터(PC), 레지스터 집합, 스택으로 구성
코드, 데이터 섹션, 운영체제 자원들을 공유
프로세스가 다수의 제어 스레드를 지닌다면 동시에 하나 이상의 작업 수행 가능
예시
대부분의 어플리케이션은 다중 스레드를 이용
웹 브라우저 : 하나의 스레드가 이미지를 표시하고 다른 스레드는 네트워크 담당
워드 프로세서 : 그래픽 표시, 사용자의 키 입력에 응답, 맞춤법 검사를 각각의 스레드가 실행
싱글 프로세스 웹 서버 : 사용자는 자신의 차례가 올 때가지 기다려야 함
다중 프로세스 웹 서버 : 다중 스레드가 나타나기 전까지 사용했으나 프로세스를 만드는데 많은 시간과 자원 소비
다중 스레드 웹 서버 : 현대 웹 서버가 사용하고 있으며 오버헤드가 적음
운영체제 커널 : 리눅스 시스템에서 시스템을 부트하면 커널에 여러 스레드가 생성되어 각 스레드는 다른 작업들을 수행
장점
응답성 : 대화형 어플리케이션에서 프로그램의 일부가 막히거나 긴 작업을 수행하더라도 프로그램 수행이 계속 되는것을 허용 해 응답성을 증가시킴
자원 공유 : 스레드들은 그들이 속한 프로세스의 자원을 공유
경제성 : 자원을 공유하기 때문에 생성과 문맥교환이 더 경제적임
규모 적응성 : 다중 처리기 구조에서 각각의 스레드가 병렬로 수행 가능
다중 스레드 모델
사용자 스레드 : 커널 위에서 지원되며 커널의 지원 없이 관리
커널 스레드 : 운영체제에 의해 직접 지원되고 관리
일반적으로 사용자 스레드가 커널 스레드보다 빠름
사용자 스레드와 커널 스레드는 연관 관계가 존재
다대일 모델
많은 사용자 스레드가 하나의 커널 스레드와 연결
스레드 관리는 사용자 공간의 스레드 라이브러리에 의해 행해짐
한 스레드가 봉쇄형 시스템 콜을 하면 전체 프로세스가 봉쇄
한번의 하나의 스레드만 커널에 접근 가능
현재에는 쓰이지 않음
일대일 모델
사용자 스레드와 커널 스레드가 각각 연결
하나의 스레드가 봉쇄적 시스템 콜을 호출해도 다른 스레드 실행 가능
다대일 모델보다 더 많은 병렬성 제공
다중 처리기에서 다중 스레드가 병렬로 수행되는것을 허용
사용자 스레드를 만드려면 커널 스레드를 만들어야 하기 때문에 오버헤드 발생
예시 ) 리눅스, 윈도우
다대다 모델
여러개의 사용자 스레드가 그보다 적은 수 혹은 같은 수의 커널 스레드와 연결
OS가 적절한 수의 커널 스레드를 만들 수 있도록 허용
개발자는 필요한 만큼의 사용자 스레드를 만들 수 있고 상응하는 커널 스레드가 다중 처리기에서 병렬로 수행 가능
두수준 모델
다대다 모델의 한 종류로 일대일 모델과 다대다 모델을 같이 사용
.
지금부터 공부하고 개발한것들을 꾸준하게 기록하자.
팔로우
이전 포스트
[운영체제] 프로세스
다음 포스트
[운영체제] CPU 스케줄링
0개의 댓글
댓글 작성
관련 채용 정보