스레드?
: 프로세스 내에서 실행되는 독립적인 실행 흐름
멀티스레드 프로그램에서는 여러 개의 스레드가 동시에 실행되며, 이때 스케줄러(Scheduler)가 스레드들 간의 실행을 관리한다.
스케줄러?
운영체제의 커널 또는 스레드 라이브러리에 의해 제공되는 컴포넌트
스케줄러의 주요 기능
1️⃣스케줄링(Scheduling):
스케줄러는 여러 개의 준비 상태(Ready)에 있는 스레드 중에서 어떤 스레드가 실행될지를 결정한다
각 스레드는 우선순위(Priority)를 가지며, 스케줄러는 이를 고려하여 실행할 스레드를 선택한다
스케줄링 알고리즘에는 라운드 로빈(Round-Robin), 우선순위 기반, 실시간 스케줄링 등 다양한 종류가 있다.
2️⃣문맥 교환(Context Switching):
스케줄러는 현재 실행 중인 스레드와 준비 상태에 있는 다른 스레드 간의 문맥 교환을 수행한다.
문맥 교환은 현재 스레드의 상태를 저장하고 다음 스레드의 상태를 복원하는 과정이다.
스케줄러는 이를 통해 다른 스레드로의 전환을 신속하게 수행하여 멀티스레드 환경에서 CPU 시간을 효율적으로 공유한다.
3️⃣자원 할당(Resource Allocation):
스케줄러는 CPU 시간을 포함한 다른 시스템 자원을 스레드들에게 할당합니다.
각 스레드는 CPU 실행 시간을 얻어 작업을 수행하고, 필요한 다른 자원에 대한 접근 권한을 얻습니다.
4️⃣우선순위 관리(Priority Management):
스케줄러는 각 스레드에 우선순위를 부여하고 이를 관리한다.
우선순위는 스레드가 실행되는 동안 스케줄링 결정에 영향을 준다.
스케줄러는 우선순위를 기반으로 스레드를 스케줄링하여 중요한 작업에 더 많은 CPU 시간을 할당할 수 있다.
스케줄러는 시스템의 효율성, 응답 시간, 우선순위 처리 등을 관리하여 멀티스레드 환경에서 공정하고 효율적인 작업 수행을 지원한다.
스케줄러의 동작은 운영체제나 스레드 라이브러리에 의해 제공되며, 스레드들 간의 실행 순서와 자원의 할당을 조정하여 시스템 성능을 최적화한다.
'I LEARNED > 자료구조' 카테고리의 다른 글
[자료 구조] 시리얼 통신이란? (39) | 2023.06.01 |
---|---|
[자료 구조]정적할당?동적할당? (3) | 2023.04.26 |
[자료 구조] 컴파일(Compile) & 링크(Link) & 빌드(Build) (0) | 2023.04.25 |
[자료 구조] 프로세스 & 스레드 (0) | 2023.04.21 |
[자료 구조] 프로세스 동기화 #2 Semaphore& Mutex (0) | 2023.01.31 |
댓글