1. 준비, 실행, 대기 상태 3가지의 프로세스 상태도를 그리고 생성과 완료를 넣어 완성하시오.
2. 프로세스제어블록과 문맥교환에 대해 간단히 설명하시오.
프로세스 제어 블록(PCB)
- 프로세스를 실행하는데 필요한 중요한 정보를 보관하는 자료구조이다. 프로세스는 고유의 프로세스 제어블록을 가지고, 프로세스 생성 시 만들어져서 프로세스가 실행을 완료하면 폐기 된다. 포인터, 프로세스 상태, 프로세스 구분자, 프로그램 카운터, 프로세스 우선순위, 각종 레지스터 정보, 메모리 관리 정보, 할당된 자원 정보, 게정 정보, 부모 프로세스 구분자와 자식 프로세스 구분자로 구성되어 있다.
문맥 교환
cpu를 차지하던 프로세스가 나가고 새로운 프로세스를 받아들이는 작업이다.
실행 상태에서 나가는 프로세스 제어 블록에는 지금까지의 작업 내용을 저장하고, 반대로 실행 상태로 들어오는 프로세스 제어 블록의 내용으로 cpu가 다시 세팅된다.
3. 멀티스레드 모델 3가지를 간단히 설명하고 장단점을 비교하시오.
사용자 레벨 스레드
- 커널 스레드를 지원하지 않는 운영체제에서 사용한다.
- 사용자 프로세스 내에 여러 개의 스레드가 커널의 스레드 하나와 연결된다.
- 장점 : 라이브러리가 직접 스케줄링을 하고 작업에 필요한 정보를 처리하기 때문에 문맥교환이 필요 없다.
단점 : 커널 스레드가 입출력 작업을 위해 대기 상태에 들어가면 모든 사용자 스레드가 같이 대기하게 된다. 한 프로세스의 타임 슬라이스를 여러 스레드가 공유하기 때문에 여러 개의 cpu를 동시에 사용할 수 없다.
커널 레벨 스레드
운영체제 자체에서 제공하는 스레드, 스레드 관리와 관련된 모든 작업이 커널에 의해서 이루어진다.
하나의 사용자 스레드가 하나의 커널 스레드와 연결된다.
- 장점 : 독립적으로 스케줄링이 되므로 특정 스레드가 대기 상태에 들어가도 다른 스레드는 작업을 계속할 수 있다. 커널 레벨에서 모든 작업을 지원하기 때문에 멀티 cpu를 사용할 수 있다. 하나의 스레드가 대기상태에 있어도 다른 스레드는 작업을 계속할 수 있다. 보안에 강하고 안정적으로 작동한다.
단점 : 문맥 교환을 할 때 오버헤드 때문에 느리게 작동한다.
멀티 레벨 스레드
사용자 레벨 스레드와 커널 레벨 스레드를 혼합한 방식이다.
빠르게 움직여야 하는 스레드는 사용자 레벨 스레드로 작동하고, 안정적으로 움직여야 하는 스레드는 커널 레벨 스레드로 작동한다.
장점 : 커널 스레드가 대기 상태에 들어가면 다른 커널 스레드가 대신 작업을 하여 사용자 레벨 스레드 보다 유연하게 작업을 처리할 수 있다.
단점 : 커널 레벨 스레드를 같이 사용하기 때문에 여전히 문맥 교환시 오베 헤드가 있어 사용자 레벨 스레드 만큼 빠르지 않다.
요약해보겠다. 사용자 레벨 스레드는 문맥 교환이 필요 없지만 여러 개의 cpu를 동시에 사용할 수 없고, 커널 스레드가 대기 상태에 들어가면 다 기다려야 된다. 커널 레벨 스레드는 커널 스레드 중 하나가 대기 상태에 들어가도 다른 작업이 계속 가능하고 보안에 강하지만 문맥 교환시 오베 헤드가 발생한다. 멀티 레벨 스레드는 사용자레벨 스레드와 커널 레벨 스레드 두 개의 장단점을 혼합한 것이다. 커널스레드가 대기상태에 들어가도 다른 작업이 가능한 장점이 있지만 문맥 교환시 오버헤드는 여전히 존재하여 사용자 레벨 스레드만큼 빠르진 않다.
'Dev > 운영체제' 카테고리의 다른 글
쉽게 배우는 운영체제 5장 연습문제 풀이 (0) | 2021.04.15 |
---|---|
스케줄링 알고리즘 적용 연습문제 (2) | 2021.04.15 |
쉽게 배우는 운영체제 4장 연습문제 풀이 (0) | 2021.04.15 |
시스템 소프트웨어 용어 정리 (0) | 2020.04.11 |
쉽게 배우는 운영체제 2장 연습문제 풀이 (1) | 2020.03.13 |