명품 운영체제 문제풀이

명품 운영체제 6장 연습문제 정답 (수정 중)

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