
생능출판사 명품 운영체제
본 연습문제들은 작성자 본인이 푼 것이라 틀릴 수 도 있습니다.
[개념 체크]
1. 여러 스레드가 공유 변수를 접근하려고 경쟁할 때 공유 변수의 값이 훼손되는 상황이 발생할 수 있다. 공유 변수가 훼손되지 않도록 스레드 사이에 공유 변수에 대한 접근 시간과 방법 등을 조절하는 기법을 무엇이라고 하는가.
정답 및 해설)
정답: 1번
해설: 책 295페이지 참조
2. 멀티스레드가 동시에 공유 데이터를 접근할 때 데이터가 훼손되지 않도록 막는 기법의 핵심 정책은 무엇인가?
정답 및 해설)
정답: 1번
해설: 상호배제: 임계구역은 반드시 한 스레드만 배타적 특징적으로 실행하도록 관리되어야한다.
3. 다음은 무엇에 대한 정의인가?
다수의 스레드로부터 공유 데이터의 훼손을 막기 위해 임계구역이 오직 한 스레드만 배타적 독점적으로 사용하도록 관리하는 기술
정답 및 해설)
정답: 1번
해설: 책 300페이지 참조
4. 원자명령(atomic instruction)이란?
정답 및 해설)
정답: 1번
해설: 책 305페이지 참조
5. Test and Set Lock 혹은 TSL 명령에 대한 설명이 틀린 것은?
정답 및 해설)
정답: 4번
해설: 책 309페이지 참조
6. 다음 원자명령에 대한 설명으로 옳은 것은?
TSL ax, lock
정답 및 해설)
정답: 4번
해설: 책 308페이지 참조
7. 원자명령과 가장 거리가 먼 것은?
정답 및 해설)
정답: 4번
해설: 책 305페이지 참조
8. 임계구역에 대한 설명으로 틀린 것은?
정답 및 해설)
정답: 4번
해설: 대부분의 운영체제는 임계구역 보호를 위해 인터럽트 금지 대신 원자 명령 기반의 락을 사용하는데, 인터럽트 금지는 단일 코어에서의 특수한 경우에만 제한적으로 사용된다.
9. 멀티스레드의 동기화 기법 중 멀티코어 CPU를 가진 현대의 시스템에 적합한 것은?
정답 및 해설)
정답: 2번
해설: 책 322페이지 참조
10. 멀티스레드의 동기화 기법 중 요청한 자원을 사용할 수 있을 때 까지 대기하는 큐를 사용하지 않는 방법은?
정답 및 해설)
정답: 2번
해설: 책 317페이지 참조
11. 임계구역의 실행 시간이 매우 짧을 경우에 적합한 멀티스레드의 동기화 기법은?
정답 및 해설)
정답: 4번
해설: 책 318페이지 참조
12. 커널 코드나 인터럽트 서비스 루틴 등에서 임계 구역에 접근할 때 멀티스레드 동기화를 위해 사용되는 기법은?
정답 및 해설)
정답: 4번
해설: 책 322페이지 참조
13. 멀티스레드 동기화 기법 중 오랜 시간 동안 공유 자원을 접근하지 못하는 기아가 발생할 수 있는 것은?
정답 및 해설)
정답: 2번
해설: 책 319페이지 참조
14. 멀티스레드의 동기화는 왜 필요한가?
정답 및 해설)
정답: 2번
해설:
15. 다음 중 CPU 사용 시간을 심하게 낭비하는 것이 아닌 것은?
정답 및 해설)
정답: 2번
해설: 책 312페이지 참조
16. 다음 중 동기화가 발생하는 공간에 대한 것 중 옳은 것은?
정답 및 해설)
정답: 3번
해설: 책 321페이지 참조
17. 우선순위 역전에 대한 설명 중 틀린 것은?
정답 및 해설)
정답: 4번
해설: 1번 책 330페이지 참조
2번 책 331페이지 참조
3번 책 332페이지 참조
18. 공유 자원과 가장 거리가 먼 단어는?
정답 및 해설)
정답: 4번
해설:
19. 생산자 소비자 문제에 대해 잘 설명한 것은?
정답 및 해설)
정답: 1번
해설: 2번 책 332페이지 참조
3번 책 332페이지 참조
4번 단일 스레드 -> 멀티 스레드
20. 생산자 소비자 문제인 것은 모두 골라라.
정답 및 해설)
정답: 1, 3번
해설: 책 332페이지 참조
21. pthread 라이브러리를 이용하여 작성된 다음 4개의 보기에 대해 물음에 답하라. 보기에서 worker() 함수는 스레드가 실행하는 코드이다.
(1) 보기 (1)에서 임계구역의 코드를 적어라.
sum = sum + 10;
(2) worker()를 실행하는 10개의 스레드가 동시에 실행될 때 4개의 보기 중 가장 실행 속도가 느린 코드는? 3번
(3) worker()를 실행하는 10개의 스레드가 동시에 실행될 때 4개의 보기 중 가장 실행 속도가 빠른 코드는? 4번
(4) worker()를 10개의 스레드가 동시에 실행될 때 스레드 동기화가 실패할 가능성이 있는 코드는? 3번
22. 다음은 비디오 플레이어 응용프로그램의 구조를 간략히 묘사한 것이다. 물음에 답하라.
(1) 이 응용프로그램을 개발하기 위해서는 생산자 소비자 문제를 해결해야 한다. 생산자 소비자 문제는 생산자 스레드, 소비자 스레드, 스리고 공유 버퍼로 구성되는데 이들이 각각 그림의 어느 부분에 해당하는지 밝혀라.
생산자 스레드 = 입력스레드
소비자 스레드 = 재생스레드
공유버퍼 = 비디오 버퍼
(2) 이 응용프로그램에서 입력스레드와 재생스레드가 생산자와 소비자로서 비디오를 재생하는 과정을 간단히 설명하라.
입력 스레드는 네트워크에서 수신한 프레임을 비디오 버퍼에 저장하고, 재생 스레드는 해당 버퍼의 프레임을 디코딩해 화면에 출력한다.
'Book > 두근두근 자료구조' 카테고리의 다른 글
| 두근두근 자료구조 Chapter 1.1 :: 자료구조와 알고리즘 (0) | 2023.10.04 |
|---|