반응형
오답이 있을 시 댓글 부탁드리겠습니다
[4.1 다중 스레딩이 단일 스레드 해결책보다 더 나은 성능을 제공하는 프로그래밍 예를 두개 제시하시오]
1. 요청이 들어올 때마다 스레드를 생성하는 웹서버
2. 연산같은 작업을 할 때 병렬로 작업할 수 있음
[4.2 사용자 수준 스레드와 커널 수준 스레드의 차이점 2가지를 제시하시오. 어떤 경우에 다른 유형 보다 성능이 나은지 설명하시오]
1. 쓰레드와 관련된 모든 행위를 사용자 영역에서 한다. 때문에 커널이 쓰레드의 존재를 알지 못함
2. 사용자 수준 스레드는 스레드를 전환할 때 커널 스케줄러를 호출할 필요가 없기 때문에 오버헤드가 적지만 커널 수준 스레드는 스레드를 전환할 때 커널 스케줄러를 호출해 레지스터 저장 등 많은 작업이 필요하기 때문에 오버헤드가 있다.
사용자 수준 스레드는 스레드 교체 등으로 인한 오버헤드는 없지만 하나의 스레드가 봉쇄당하면 전체 프로세스가 봉쇄된다.
커널 수준 스레드는 커널이 각 스레드를 개별적으로 관리하기 때문에 쓰레드들이 병행 실행될 수 있고 동일한 프로세스의 스레드가 대기 상태가 되어도 다른 스레드들을 실행시킬 수 있다.
[4.3 커널 수준 스레드 간에 문맥 교환이 일어날 때 커널이 수행하는 작업을 설명하시오]
cpu의 레지스터 값을 저장하고 문맥 교환이 일어날 스레드의 cpu레지스터 값을 복원한다.
[4.4 스레드가 생성될 때 사용되는 자원은 무엇인가? 프로세스가 생성될 때 사용되는 자원과는 어떤 차이가 있는가?]
스레드가 생성될 때 레지스터, 스택 등 크기가 작은 자원들이 필요하지만 프로세스를 생성하기 위해서는 스레드보다 더 큰 자원이 필요하다. 프로세스를 생성하기 위해서는 비교적 크기가 큰 PCB(프로세스 제어 블록)이 만들어져야 한다. PCB에는 프로세스 상태, 프로세스 번호, 프로그램 카운터, 레지스터 등 스레드보다 더 큰 자원이 필요하다.
반응형
'운영체제' 카테고리의 다른 글
OPERATING SYSTEM CONCEPTS 에센셜 연습문제 4장 #2 (0) | 2022.04.24 |
---|---|
문맥 교환(Context Switch) (0) | 2022.04.11 |
프로세스 스케줄링,스케줄러 종류 (0) | 2022.04.11 |
OPERATING SYSTEM CONCEPTS 에센셜 연습문제 3장 #2 (0) | 2022.04.09 |
OPERATING SYSTEM CONCEPTS 에센셜 연습문제 3장 #1 (0) | 2022.04.09 |
댓글