Notice
Recent Posts
Recent Comments
Link
«   2025/03   »
1
2 3 4 5 6 7 8
9 10 11 12 13 14 15
16 17 18 19 20 21 22
23 24 25 26 27 28 29
30 31
Tags
more
Archives
Today
Total
관리 메뉴

archive

3. 쓰레드 (2) 본문

CS/운영체제

3. 쓰레드 (2)

안정민 2024. 1. 23. 18:10

##이전 포스팅 추가

사용자 수준 쓰레드 vs 커널 수준 쓰레드 쓰레드 운영 방식 비교 표

사용자 수준 쓰레드 커널 수준 쓰레드
커널의 개입이 작다 커널의 개입이 크다
런 타임 시스템이 필요하다 런 타임 시스템이 필요 없고 커널이 직접 한다
속도가 빠르다 속도가 느리다
문맥 교환이 적다 문맥 교환이 많다
독자적 알고리즘이 필요하다 독자적 알고리즘이 필요 없다
대형시스템에 적당하다 대형 시스템에 부적합하다
구현이 어렵다 구현이 쉽다
커널을 스스로 호출하지 못 한다 커널을 스스로 호출한다
CPU 사용을 해제하지 못 하면 시스템이 중단된다. 사용을 해제하지 못 하면 운영체제가 지원한다

 

사용자 수준의 쓰레드

* 쓰레드 라이브러리를 사용자 영역에 두고 운영체제 커널은 단일 프로세스만을 관리한다

* 쓰레드 라이브러리를 런 타임 시스템에서 운영한다

* 운영체제 입장에서는 런타임 시스템도 하나의 프로세스로 인식한다

* 쓰레드를 운영하지 않는 운영체제에서 실행할 수 있으므로 이식성이 뛰어나다

 

커널 수준의 쓰레드 

* 쓰레드 라이브러리를 운영체제에서 관리한다

* 각 응용 프로그램들은 운영체제에 영향을 많이 받게 되므로 이식성이 낮다

 


 

 

[3-3] 멀티코어와 멀티쓰레딩

 

-여러 개의 쓰레드로 구성된 하나의 응용 프로그램 (워크 스테이션, 비디오 게임 콘솔, 처리기 집중적인 응용을 실행하는 개인용 컴퓨터 등) 을 지원하기 위해서 멀티 코어 시스템을 사용하는 것은 성능과 응용 프로그램 설계에 대한 여러 이슈들을 포함한다.

 

1. 멀티코어 상에서의 소프트웨어 성능

-멀티코어 구조의 잠재적인 성능 향상은 응용이 이용 가능한 병렬 자원을 효율적으로 이용할 수 있는 능력에 영향을 받는다

 

-멀티코어 시스템 상에서 수행되는 단일 응용

- (속도 향상 ) = (단일 처리기 상에서 프로그램을 실행한 시간 ) / (N개의 병렬 처리기 상에서 프로그램을 실행한 시간)

-이 법칙은 프로그램의 실행 시간이 본래부터 순차적으로 동작하는 (병렬화가 불가능한) 코드의 실행시간 (1-f) 와 스케줄링 부하 럾이 병렬로 처리 가능한 코드의 실행시간 f로 구성되어있다고 가정한다

-이 법칙은 멀티코어 구조가 매력적으로 보이게 한다. 그러나 아주 작은 분량의 순차적으로 동작하는 코드만 있어도 영향이 큼

-또 소프트웨어는 일반적으로 멀티프로세서들 간의 통신 및 작업 분배와 캐시 일관성 유지를 위한 추가 작업의 결과로 오버헤드를 발생시킨다.

-이는 멀티 프로세서를 사용하는 오버헤드에 대한 부담을 증가시켜 성능이 정점을 찍고 감소하기 시작하는 곡선 그래프를 보여줌

 

-그러나 소프트웨어 개발자들은 이 문제를 해결하기 위해 노력해왔고, 효과적으로 멀티코어 시스템을 이용할 수 있는 응용들이 많이 존재한다.

 

[3-4] Windows 8의 프로세스와 쓰레드 관리

-Windows 8 에서 응용 프로그램의 실행을 지원하기 위한 주요 객체와 기법들에 대한 개요

-알아야돼?

 

 

'CS > 운영체제' 카테고리의 다른 글

3. 쓰레드 (1)  (0) 2024.01.23
2. 프로세스 기술과 제어 (2)  (0) 2024.01.18
2. 프로세스 기술과 제어 (1)  (0) 2024.01.16
1. 운영체제 개요 (1)  (0) 2024.01.11