archive
3. 쓰레드 (2) 본문
##이전 포스팅 추가
사용자 수준 쓰레드 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 |