[운영체제/연습문제] 6장 스레드 동기화 연습문제
1. 여러 스레드가 공유 변수를 접근하려고 경쟁할 때 공유 변수의 값이 훼손되는 상황이 발생할 수 있다. 공유 변수가 훼 손되지 않도록 스레드 사이에 공유 변수에 대한 접근 시간과 방법 등을 조절하는 기법을 무엇이하고 하는가?
① 스레드 동기화
2. 멀티스레드가 동시에 공유 데이터를 접근할 때 공유 데이터가 훼손되지 않도록 막는 기법의 핵심 정책은 무엇인가?
① 상호배제
3. 다음은 무엇에 대한 정의인가? 다수의 스레드로부터 공유 데이터의 훼손을 막기 위해 임계구역이 오직 한 스레드만 배타적 독점적으로 사용하도 록관리하는 기술
① 상호배제
4. 원자 명령(atomic instruction)이란?
① CPU 명령
5. Test and Set Lock 혹은 TSL 명령에 대한 설명이 틀린 것은?
④ 스핀락
6. 다음 원자명령에 대한 설명으로 옳은 것은?
④ lock 변수 값을 ax에 읽어오고 lock 변수에 1을 저장한다
7. 원자명령과 가장 거리가 먼것은?
④ 원자 명령은 거의 모든 CPU에 있으며 CPU를 막론하고 이름이 동일하다
8. 임계구역에 대한 설명으로 틀린 것은?
④ 대부분의 운영체제는 임계구역에 진입할 때 다른 스레드가 진입하지 못하도록 인터럽트를 금지시키고, 나올 때 인터 럽트를 허용하는 방법을 사용한다.
9. 멀티스레드의 동기화 기법 중 멀티코어 cpu를 가진 현대의 시스템에 적합한 것은?
② 스핀락
10. 멀티스레드의 동기화 기법 중 요청한 자원을 사용할 수 있을 때까지 대기하는 큐를 사용하지 않는 방법은?
② 스핀락
11, 임계구역의 실행 시간이 매우 짧을 경우에 적합한 멀티스레드의 동기화 기법은?
② 스핀락
12. 커널 코드나 인터럽트 서비스 루틴 등에서 임계구역에 접근할 때 멀티스레드 동기화를 위해 사용되는 기법은?
② 스핀락
13. 멀티스레드 동기화 기법 중 오랜 시간 동안 공유 자원을 접근하지 못하는 기아가 발생할 수 있는 것은?
② 스핀락
14. 멀티스레드의 동기화는 왜필요한가?
② 여러 스레드가 동시에 동일한 변수를 읽고 쓸 때 발생하는 문제를 해결하기 위해
15. 다음 중 cpu 사용 시간을 심하게 낭비하는 것이 아닌 것은?
② sleep-waiting
16. 다음 중 동기화가 발생하는 공간에 대한 것 중 옳은 것은?
③ 사용자 공간과 커널 공간 모두 동기화 필요
17. 우선순위 역전에 대한 설명 중 틀린 것은?
③ 우선순위 올림은 스레드가 공유자원을 소유할 때 미리 정해진 우선순위로 높이는 방법이다.
18. 공유 자원과 가장 거리가 먼 단어는?
④ N:1 매핑
19. 생산자 소비자 문제에 대해 잘 설명한 것은?
① 공유 버퍼를 사이에 두고 공유 버퍼에 데이터를 저장하는 스레드와 공유 버퍼로부터 데이터를 읽어가는 스레 드 사이에 공유 버퍼에 대한 동시 접근 문제이다.
20. 생산자 소비자 문제인 것을 모두 골라라.
① 마이크로부터 연속하여 들어오는 오디오 샘플을 큐에 넣는 스레드와 큐의 오디오 샘플을 스피커로 출력하는 스레드
③ 프린트할 파일이 생길 때마다 큐에 넣은 스레드와 큐에 있는 파일을 프린터로 출력하는 스레드
21. pthread 라이브러리를 이용하여 작성된 다음 4개의 보기에 대해 물음에 답하라. 보기에서 work은r() 함수는 스 레드가 실행하는 코드이다.
(1) 보기 (1)에서 임계구역의 코드를 적으라.
sum = sum + 10;
(2) worker()를 실행하는 10개의 스레드가 동시에 실행될때 4개의 보기 중 가장 실행 속도가 느린 코드는?
1번, 3번
(3) worker()를 실행하는 10개의 스레드가 동시에 실행될때 4개의 보기 중 가장 실행 속도가 빠른 코드는?
4번
(4) Worker()를 10개의 스레드가 동시에 실행될 때 스레드 동기화가 실패할 가능성이 있는 코드는?
3번
22. 다음은 비디오 플레이어 응용프로그램의 구조를 간략히 묘사한 것이다. 물음에 답하라.
(1) 이 응용프로그램을 개발하기 위해서는 생산자 소비자 문제를 해결해야 한다. 생산자 소비자 문제는 생산자 스 레드, 소비자 스레드, 그리고 공유 버퍼로 구성되는데 이들이 각각 그림의 어느 부분에 해당하는지 밝혀라.
공유 버퍼 - 비디오 버퍼
생산사 - 입력 스레드
소비자 - 재생 스레드
(2) 이 응용프로그램에서 입력스레드와 재생스레드가 생산자와 소비자로서 비디오를 재생하는 과정을 간단히 설명하라.
This post is licensed under CC BY 4.0 by the author.