본문 바로가기
운영체제

스레드 모델 (thread) 핵심 요약 정리(2)

by 컨텐츠플러스 2023. 6. 9.

스레드
스레드

스레드 모델 단일 코어 시스템

스레드 모델 프로그래밍은 이러한 다중 컴퓨팅 코어를 보다 효율적으로 사용하고 병렬성을 개선하기 위한 기술을 제공한다.

단일 컴퓨팅 코어가 있는 시스템에서 병렬은 하나의 실만이 처리 코어에 의해 동시에 실행될 수 있으므로 실의 실행은 시간이 지남에 따라 중단됨을 의미한다.

 

그러나 다중 코어 시스템에서 병렬은 시스템이 각 코어마다 다른 주제를 할당할 수 있기 때문에 일부 테마가 병렬로 작동할 수 있음을 의미한다.

다중 스레드 모델

지금까지 우리는 일반적인 의미에서 주제를 다루었습니다. 그러나, 스레드 지원은 사용자 스레드에 대한 사용자 수준 또는 커널 스레드에 대한 커널 수준에서 제공된다. 사용자들의 스레드는 코어 위에 기대어 있고 코어 지원 없이 관리된다.

 

한편, 핵심 쟁점은 운영체제에 의해 직접 지원되고 관리된다. 윈도우, 리눅스, 맥OS를 포함한 거의 모든 현대 운영체제는 코어 문제를 지원한다.

다대일 모델

다대일 모델은 많은 사용자 수준의 주제를 하나의 스레드처럼 생각한다. 스레드 관리는 사용자 공간에 있는 스레드 라이브러리가 수행한다. 따라서 효율적이라고 간주할 수 있다.

그러나 스레드가 구속 시스템을 호출하면 전체 프로세스가 차단됩니다.

 

또한 한 번에 하나의 스레드만 코어에 액세스 할 수 있으므로 다중 스레드 시스템에서 여러 스레드들이 병렬로 작동할 수 없습니다.

 

다중 A-1 모델을 사용했으며, 솔라리스 시스템을 위한 실 라이브러리를 언급하면서 자바의 초기 버전에서도 채택되었습니다.

 

그러나 대부분의 컴퓨터 시스템에서 다중 처리 코어가 표준이 되어 다중 처리 코어의 이점을 이용할 수 없기 때문에 이 모델을 사용하는 시스템은 거의 없다.

일대일 모델

일대일 모델은 각 사용자 실을 코어의 스레드처럼 생각한다. 이 모델은 하나의 스레드가 구속 시스템에 호출을 호출하더라도 다른 스레드가 실행될 수 있기 때문에 다중 대 1 모델보다 더 많은 병렬성을 제공한다.

 

또한 모델은 여러 컨트롤러에서 병렬로 여러 가닥이 수행될 수 있도록 한다. 이 모델의 유일한 단점은 사용자 실을 만드는 것은 그 스레드를 만드는 것을 필요로 하며, 많은 수의 커널 실이 시스템 성능에 긴장을 줄 수 있다는 것이다. 리눅스는 윈도우 운영 체제 패밀리와 일대일 모델을 구현한다.

다대다 모델

다수 대 다수(그림 4.9) 모델은 다수의 사용자 수준 테마를 적은 수의 노야우 테마로 다중화한다. 코어 문제의 수는 애플리케이션 또는 특정 기계에 따라 달라진다.

이러한 설계가 병렬 실행에 미치는 영향을 고려해 보자. 다대다 모델은 개발자들이 원하는 만큼 사용자 수준의 테마를 생성할 수 있게 한다. 코어는 한번에 하나의 코어 스레드만 프로그래밍할 수 있기 때문에 진정한 병렬 실행을 획득할 수 없다.

 

1대 1 모델은 더 많은 병렬 실행을 제공하지만, 애플리케이션 내에서 너무 많은 테마를 생성하지 않도록 주의해야 한다.

많은 모델들이 이 두 가지 단점 중 일부를 다루었다.

 

개발자는 필요한 만큼 사용자 차원에서 주제를 생성할 수 있다. 그리고 코어의 해당 테마는 멀티프로세서에서 병렬로 수행할 수 있다. 또한 실이 구속 시스템에 호출을 발생시킬 때 코어는 다른 실의 실행을 프로그래밍할 수 있다.

많은 모델에서 많은 모델의 변화는 여전히 많은 사용자 테마를 더 작거나 같은 수의 테마에 곱할 수 있게 해 준다. 또한 하나의 사용자 테마가 하나의 노야우 트레일과 관련될 수 있게 해 준다.

 

다수에서 다수까지의 모델은 논의된 모델 중 가장 유연해 보이지만 실제로는 구현하기가 어렵다.

또한 대부분의 시스템에서 처리 코어의 수가 증가함에 따라 코어의 주제 수를 제한하는 중요성이 줄어들었다.

 

2023.06.09 - [운영체제] - 스레드 (thread) 핵심 요약 정리(1)

 

스레드 (thread) 핵심 요약 정리(1)

스레드 스레드 : CPU를 사용하는 기본 단위입니다. ID, 프로그램 카운터(PC), 로그 세트, 그리고 같은 프로세스에서, 스레드는 열려 있는 파일과 신호와 같은 운영 체제 코드, 데이터 섹션 및 자원을

contentplus.tistory.com