명품 운영체제 문제풀이
명품 운영체제 6장 연습문제 정답 (수정 중)
MK.Jooooon
2024. 5. 1. 20:54
- 여러 스레드가 공유 변수를 접근하려고 경쟁할 때 공유 변수의 값이 훼손되는 상황이 발생할 수 있다. 공유 변수가 훼손되지 않도록 스레드 사이에 공유 변수에 대한 접근 시간과 방법 등을 조절하는 기법을 무엇이라고 하는가?
①
- 멀티스레드가 동시에 공유 데이터를 접근할 때 공유 데이터가 훼손되지 않도록 막는 기법의 핵심 정책은 무엇인가?
①
- 다음은 무엇에 대한 정의인가?
다수의 스레드로부터 공유 데이터의 훼손을 막기 위해 임계구역이 오직 한 스레드만 배타적 독점적으로 사용하도록 관리하는 기술
①
- 원자명령(atomic instruction)이란?
①
- Test and Set Lock 혹은 TSL 명령에 대한 설명이 틀린 것은?
④
- 다음 원자명령에 대한 설명으로 옳은 것은?
④
- 원자명령과 가장 거리가 먼 것은?
④
- 임계구역에 대한 설명으로 틀린 것은?
①
- 멀티스레드의 동기화 기법 중 멀티코어 CPU를 가진 현대의 시스템에 적합한 것은?
③
- 멀티스레드의 동기화 기법 중 요청한 자원을 사용할 수 있을 때까지 대기하는 큐를 사용하지 않는 방법은?
②
- 임계구역의 실행 시간이 매우 짧을 경우에 적합한 멀티스레드의 동기화 기법은?
②
- 커널 코드나 인터럽트 서비스 루틴 등에서 임계구역에 접근할 때 멀티스레드 동기화를 위해 사용되는 기법은?
②
- 멀티스레드 동기화 기법 중 오랜 시간 동안 공유 자원을 접근하지 못하는 기아가 발생할 수 있는 것은?
②
- 멀티스레드의 동기화는 왜 필요한가?
②
- 다음 중 CPU 사용시간을 심하게 낭비하는 것이 아닌 것은?
②
- 다음 중 동기화가 발생하는 공간에 대한 것 중 옳은 것은?
③
- 우선 순위 역전에 대한 설명 중 틀린 것은? (시험 범위 X)
③
- 공유 자원과 가장 거리가 먼 단어는?
④
- 생산자 소비자 문제에 대해 잘 설명한 것은?
①
- 생산자 소비자 문제인 것을 모두 골라라.
①, ③
- pthread 라이브러리를 이용하여 작성된 다음 4개의 보기에 대해 물음에 답하라. 보기에서 worker() 함수는 스레드가 실행하는 코드이다.
(1) 보기 (1)에서 임계구역의 코드를 적으라.
(2) worker()를 실행하는 10개의 스레드가 동시에 실행될 때 4개의 보기 중 가장 실행 속도가 느린 코드는?sum = sum + 10;
(3) worker()를 실행하는 10개의 스레드가 동시에 실행될 때 4개의 보기 중 가장 실행 속도가 빠른 코드는?3
(4) worker()를 10개의 스레드가 동시에 실행될 때 스레드 동기화가 실패할 가능성이 있는 코드는?4
④
- 다음은 비디오 플레이어 응용프로그램의 구조를 간략히 묘사한 것이다. 물음에 답하라. (확실하지 않음)
(1) 이 응용프로그램을 개발하기 위해서는 생산자 소비자 문제를 해결해야 하낟. 생산자 소비자 문제는 생산자 스레드, 소비자 스레드, 그리고 공유 버퍼로 구성되는데 이들이 각각 그림의 어느 부분에 해당하는지 밝혀라.
(2) 이 응용프로그램에서 입력스레드와 재생 스레드가 생산자와 소비자로서 비디오를 재생하는 과정을 간단히 설명하라.입력스레드: 생산자 스레드, 비디오 버퍼: 공유 버퍼, 재생 스레드: 소비자 스레드
입력 스레드가 counter -1하며 버퍼를 채운다. 재생 스레드가 counter +1하며 버퍼를 비운다. 만약 서로 버퍼가 차거나(입력 스레드) 빈다면(재생 스레드) 잠을 자며 반대 스레드가 깨우길 기다린다.