DevGang
[OS-05] 스레드&문맥 교환 본문
1. 스레드의 정의 (Thread)
- 프로세스 내에서의 작업 단위로 시스템의 여러 자원을 할당받아 실행하는 프로그램의 단위
- 하나의 프로세스에 하나의 스레드가 존재하는 경우에는 단일 스레드, 두 개 이상의 스레드가 존재하는 경우에는 다중 스레드라고 함
- 프로세스의 일부 특성을 갖고 있기 때문에 경량 프로세스라고도 함
- 프로세스 내부에 포함되는 스레드는 공통적으로 접근 가능한 기억장치를 통해 효율적으로 통신함
- 스레드를 사용하면 하드웨어, 운영체제의 성능과 응용 프로그램의 처리율을 향상할 수 있음
2. 스레드의 분류
- 사용자 수준의 스레드
- 사용자가 만든 라이브러리를 사용하여 스레드를 운용
- 속도는 빠르지만 구현이 어려움
- 커널 수준의 스레드
- 운영체제의 커널에 의해 스레드를 운용
- 구현이 쉽지만 속도가 느림
3. 문맥 교환(Context Switching)
- 하나의 프로세스가 CPU를 사용 중인 상태에서 다른 프로세스가 CPU를 사용하도록 하기 위해, 이전의 프로세스의 상태(문맥)를 보관하고 새로운 프로레스의 상태를 적재하는 작업을 말한다.
- 다중 프로그래밍 작성의 환경에서 어떤 프로그램의 실행을 중단하고 다른 프로그램의 실행을 재개할 때, 그 프로그램의 재개에 필요한 환경을 다시 설정하는 것을 의미하며, 운영체제에서 Overhead의 큰 요인 중 하나로 작용하는 것
'정보처리 > OS' 카테고리의 다른 글
[OS-07] 상호 배제 기법&동기화 기법 (0) | 2021.02.07 |
---|---|
[OS-06] 병행 프로세스&임계구역 (0) | 2021.02.07 |
[OS-04] 인터럽트(Interrupt) (0) | 2021.02.07 |
[OS-03] 프로세스 (0) | 2021.02.07 |
[OS-02] 시스템 소프트웨어 (0) | 2021.02.07 |
Comments