ABOUT ME

-

Today
-
Yesterday
-
Total
-
  • 운영체제 4장 연습문제 풀이
    운영체제 2021. 10. 19. 01:13
    728x90
    반응형

    1. 병행 프로세스들의 고려 사항이 아닌 것은?

    ① 공유 자원을 상호 배타적으로 사용해야 한다.

    ② 병행 프로세스 사이는 협력이나 동기화가 되어야 한다.

    ③ 병행 프로세스들은 프로그래머가 외부적으로 스케줄링할 수 없도록 한다.

    ④ 교착 상태를 해결해야 하고, 병행 프로세스들의 병렬 처리도를 극대화해야 한다.

     

    답 : ③ 병행 프로세스들은 프로그래머가 외부적으로 스케줄링할 수 없도록 한다.

    ? : 다중 처리 시스템에서는 프로세서들이 모든 입출력장치와 메모리를 참조할 수 있다.

     

     

    2. 한 프로세스가 공유 메모리나 공유 파일을 사용할 때 다른 프로세스들이 사용하지 못하도록 배제시키는 제어 방법은?

    ① deadlock

    ② mutual exclusion

    ③ interrupt

    ④ critical section

     

    답 : ② mutual exclusion

    ? : 문제는 상호 배제에 대한 설명이다.

     

     

    3. 상호배제 방법을 사용하여 임계 영역을 보호했다. 다음 설명 중 옳지 않은 것은?

    ① 어떤 프로세스가 임계 영역 내의 명령어 실행 중 인터럽트가 발생하면 이 프로세스는 실행을 멈추고, 다른 프로세스가 이 임계 영역 내의 명령어를 실행한다.

    ② 임계 영역 내의 프로그램 수행 중에 교착 상태가 발생하면 교착 상태를 해제할 때까지 임계 영역을 벗어날 수 없다. 따라서 임계 영역 내의 프로그램에서는 교착 상태가 발생하지 않도록 해야 한다.

    ③ 임계 영역 내의 프로그램에서 무한 루프가 발생하면 임계 영역을 탈출할 수 없다. 따라서 임계 영역 내의 프로그램에서는 무한 루프가 발생하지 않도록 해야 한다.

    ④ 여러 프로세스 중에 하나의 프로세스만 임계 영역을 사용할 수 있도록 하여 임계 영역에서 공유 변수 값의 무결성을 보장한다.

     

    답 : ① 어떤 프로세스가 임계 영역 내의 명령어 실행 중 인터럽트가 발생하면 이 프로세스는 실행을 멈추고, 다른 프로세스가 이 임계 영역 내의 명령어를 실행한다.

    ? : 어떤 프로세스가 임계 영역에서 작업 중이면 다른 프로세스는 임계 영역으로 들어갈 수 없다.

     

     

    4. 상호배제를 올바르게 구현하는 요구 조건에 대한 설명으로 틀린 것은?

    ① 프로세스 2개 이상의 공유 데이터에 접근하여 동시에 수행할 수 있어야 한다.

    ② 임계 영역 밖에 있는 프로세스가 다른 프로세스의 임계 영역 진입을 막아서는 안된다.

    ③ 어떤 프로세스도 임계 영역으로 들어가는 것을 무한정 연기해서는 안 된다.

    ④ 임계 영역은 특정 프로세스가 독점할 수 없다.

     

    답 : ① 프로세스 2개 이상의 공유 데이터에 접근하여 동시에 수행할 수 있어야 한다.

    ? : 프로세스 하나만 접근하여 수행해야 한다.

     

     

    5. 다중 프로그래밍 운영체제에서 한순간에 여러 프로세스로 공유하는 데이터와 자원에서 한순간에는 반드시 프로세스 하나만 자원이나 데이터를 사용하도록 한다. 이런 자원을 프로세스가 반납한 후 비로소 다른 프로세스에서 자원을 이용하거나 데이터에 접근할 수 있도록 지정된 영역은?

    ① monitor    ② semaphore    ③ critical section    ④ working set

     

    답 : ③ critical section

    ? : 문제는 임계 영역에 대한 설명이다.

     

     

    6. 임계 영역에 대한 설명으로 옳은 것은?

    ① 프로세스들의 상호배제가 일어나지 않도록 주의해야 한다.

    ② 임계 영역에서 수행 중인 프로세스는 인터럽트가 가능한 상태로 만들어야 한다.

    ③ 어느 한 시점에서 프로세스 2개 이상이 동시에 자원 또는 데이터를 사용하도록 지정된 공유 영역을 의미한다.

    ④ 임계 영역에서 작업은 신속하게 해야 한다.

     

    답 : ④ 임계 영역에서 작업은 신속하게 해야 한다.

    ? : ① : 상호배제를 해야 한다.

    ② : 인터럽트가 불가능하게 해야 한다.

    ③ : 프로세스는 하나만 자원에 접근할 수 있어야 한다.

     

     

    7. 임계 영역의 원칙으로 옳지 않은 것은?

    ① 프로세스 2개 이상을 동시에 사용할 수 있다.

    ② 순서를 지키면서 신속하게 사용한다.

    ③ 프로세스 하나가 독점하게 해서는 안 된다.

    ④ 임계 영역이 무한 루프에 빠지지 않도록 주의해야 한다.

     

    답 : ① 프로세스 2개 이상을 동시에 사용할 수 있다.

    ? : 프로세스 하나만 자원에 접근할 수 있어야 한다.

     

     

    8. 임계 영역에 대한 설명으로 옳지 않은 것은?

    ① 특정 프로세스가 독점해서는 안 된다.

    ② 프로세스 하나만 접근할 수 있다.

    ③ 임계 영역 안에서 작업은 신속하게 진행해야 한다.

    ④ 실행 중인 프로세스가 일정 시간 동안 참조하는 페이지의 집합을 의미한다.

     

    답 : ④ 실행 중인 프로세스가 일정 시간 동안 참조하는 페이지의 집합을 의미한다.

    ? : ④는 working set에 대한 설명이다.

     

     

    9. 모니터에 대한 설명으로 옳지 않은 것은?

    ① 모니터의 경계에서 상호배제를 시행한다.

    ② 데이터 추상화와 정보 은폐 방법을 기초로 한다.

    ③ 공유 데이터와 이 데이터를 처리하는 프로시저로 구성된다.

    ④ 모니터 외부에서도 모니터 안의 데이터에 직접 접근할 수 있다.

     

    답 : ④ 모니터 외부에서도 모니터 안의 데이터에 직접 접근할 수 있다.

    ? : 외부에서의 접근은 불가하며, 준비 큐에서 진입을 기다린다.

     

     

    10. 다음 상호배제 방법 중 특수한 하드웨어 자원이 필요한 것은?

    ① Dekker 알고리즘    ② Peterson 알고리즘    ③ Test&Set 알고리즘    ④ Lamport의 빵집 알고리즘

     

    답 : ③ Test&Set 알고리즘

    ? : TestAndSet 알고리즘(TAS 알고리즘)은 소프트웨어적인 해결책은 더 복잡하고, 프로세스가 2개 이상일 때는 더 많이 대기할 수 있다. 이때 기계를 비교하거나 단어 내용을 검사 및 수정하는 특별한 하드웨어 명령어(TestAndSet)를 사용하여 간단한 방법으로 임계 영역 문제를 해결할 수 있다.

     

     

    11. Dekker 알고리즘에 대한 설명 중 옳지 않은 것은?

    ① 교착 상태가 발생하지 않음을 보장한다.

    ② 프로세스가 임계 영역에 들어가는 것이 무한정 지연될 수 있다.

    ③ 공유 데이터를 처리할 때 상호배제를 보장한다.

    ④ 별도의 특수 명령어 없이 순수하게 소프트웨어로 해결된다.

     

    답 : ② 프로세스가 임계 영역에 들어가는 것이 무한정 지연될 수 있다.

    ? : 데커 알고리즘은 임계 영역에 들어가기를 원하는 프로세서를 무한정 기다리게 하지 않는다는 특징이 있다.

     

     

    12. 상호배제의 문제는 병행하여 처리하는 여러 프로세스가 공유 자원을 동시에 접근하기 때문에 발생한다. 따라서 공유하는 자원의 처리 내용 중에서 상호배제를 해야 하는 일정 부분에서는 어느 프로세스 하나를 처리하는 동안에 다른 프로세스의 접근은 허용하지 말아야 한다. 이때 상호배제를 해야 하는 일정 부분을 무엇이라고 하는가?

    ① locality    ② page    ③ semaphore    ④ critical section

     

    답 : ④ critical section

    ? : 임계 영역에 대한 설명이다.

     

     

    13. 다음은 무엇을 구현하는 방법인가?

    · 데커의 알고리즘
    · 패터슨 알고리즘
    · Lamport의 빵집 알고리즘
    · TestAndSet 방법
    · swap 명령어 방법

    ① 세마포    ② 상호배제    ③ 모니터    ④ 페이지 교체

     

    답 : ② 상호배제

    ? : 모두 상호배제를 구현하는 방법이다.

     

     

    14. 다음은 세마포와 관련된 두 연산 P(S)와 V(S)이다. ㉮, ㉯의 내용으로 옳게 짝지은 것은?

    · P(S) : if (S <= 0) then S를 기다림;
                 else S = ( ㉮ );

    · V(S) : if (1개 이상의 프로세스가 S를 기다림)
                 then 그중 한 프로세스를 진행;
             else S = ( );

    ① ㉮ S-1 ㉯ S-1    ② ㉮ S+1 ㉯ S-1    ③ ㉮ S-1 ㉯ S+1    ④ ㉮ S+1 ㉯ S+1

     

    답 : ③ ㉮ S-1 ㉯ S+1

    ? : 세마포의 기본 정의에 따라 ㉮는 S--, ㉯는 S++이 되어야 하고, 이는 각각 S-1, S+1과 동일한 의미를 갖는다.

     

     

    15. 세마포에 대한 설명 중 옳지 않은 것은?

    ① 세마포 연산은 처리 중에 인터럽트해야 한다.

    ② 다익스트라가 제안한 방법이다.

    ③ 여러 프로세스가 동시에 그 값을 수정하지 못한다.

    ④ 상호배제의 원리를 보장하는 데 사용한다.

     

    답 : ① 세마포 연산은 처리 중에 인터럽트해야 한다.

    ? : 세마포 연산 도중 인터럽트가 불가능하다.

     

     

    16. 세마포와 관련된 설명 중 틀린 것은?

    ① 상호배제 문제를 해결하는 데 사용한다.

    ② 정수의 변수로 양의 값만 가진다.

    ③ 여러 프로세스가 동시에 그 값을 수정하지 못한다.

    ④ 세마포 연산 처리 도중에 인터럽트해서는 안 된다.

     

    답 : ② 정수의 변수로 양의 값만 가진다.

    ? : 세마포가 갖는 변수로 0도 포함되기 때문에 양의 값만 가진다고 할 수 없다.

     

     

    17. 프로세스 2개 사이에서 선행 순서를 Pi < Pj로 표현할 때 Pj를 먼저 실행한다고 가정한다면, P2 < P1, P4 < P2, P4 < P3의 선행 관계가 있을 때 병행으로 실행할 수 있는 프로세스로 짝지은 것은?

    ① P1, P3    ② P1, P4    ③ P2, P4    ④ P3, P4

     

    답 : ① P1, P3

    ? : P1 > P2 = P3 > P4 이므로 P1과 P3가 병행 실행 가능하다.

     

     

    18. 순차적으로만 사용할 수 있는 공유 자원이나 공유 자원 그룹을 할당하는 데 사용하며, 데이터와 프로시저를 포함하는 병행성 구조는?

    ① 버퍼    ② 채널    ③ 모니터    ④ 세마포

     

    답 : ③ 모니터

    ? : 모니터는 사용자 사이에서 통신하려고 동기화하고, 자원에 배타적으로 접근할 수 있도록 프로세스가 사용하는 병행 프로그래밍 구조이다.

     

     

    19. 모니터에 대한 설명으로 옳지 않은 것은?
    ① 모니터의 경계에서 상호배제를 시행한다.

    ② 데이터 추상화와 정보 은폐 방법을 기초로 한다.

    ③ 순차적으로 재사용 가능한 특정 공유 자원이나 공유 자원 그룹을 할당하는 데 필요한 데이터 및 프로시저를 포함하는 병행성 구조이다.

    ④ 모니터 안의 데이터는 모니터 외부에서도 접근할 수 있다.

     

    답 : ④ 모니터 안의 데이터는 모니터 외부에서도 접근할 수 있다.

    ? : 모니터 외부에서는 접근할 수 없다.

     

     

    20. 병행 프로그래밍 방법에서 발생할 수 있는 오류를 방지하는 방법이 아닌 것은?

    ① 세마포    ② 비동기화    ③ 상호배제    ④ 모니터

     

    답 : ② 비동기화

    ? : 비동기화는 병행 프로그래밍에서의 오류를 방지할 수 있는 기술이 아니다.

     

     

    21. 모니터에 대한 설명으로 옳지 않은 것은?
    ① 공유 데이터와 이 데이터를 처리하는 프로시저로 구성된다.

    ② 한순간에 여러 프로세스가 모니터에 동시에 진입하여 자원을 공유할 수 있다.

    ③ 모니터 외부의 프로세스는 모니터 내부의 데이터에 직접 접근할 수 없다.

    ④ 모니터는 wait과 signal 연산을 사용한다.

     

    답 : ② 한순간에 여러 프로세스가 모니터에 동시에 진입하여 자원을 공유할 수 있다.

    ? : 한 번에 하나의 프로세스만 진입할 수 있다.

     

     

    22. 모니터에 대한 설명으로 틀린 것은?

    ① 자료 추상화와 정보 은폐 방법을 기초로 한다.

    ② 병행 다중 프로그래밍에서 상호배제를 구현하는 특수 프로그래밍 방법이다.

    ③ 구조적인 측면에서 공유 데이터와 이 데이터를 처리하는 프로시저의 집합이라고 할 수 있다.

    ④ 모니터 외부의 프로세스도 모니터 내부 데이터에 직접 접근할 수 있다.

     

    답 : ④ 모니터 외부의 프로세스도 모니터 내부 데이터에 직접 접근할 수 있다.

    ? : 모니터 외부에서는 접근할 수 없다.

     

     

    23. 모니터에 대한 설명으로 틀린 것은?

    ① 모니터 내부의 자원을 원하는 프로세스는 반드시 해당 모니터의 진입부를 호출하여 공유 데이터에 접근할 수 있다.

    ② 구조적인 측면에서 모니터는 데이터와 이 데이터를 처리하는 프로시저의 집합이라고 할 수 있다.

    ③ 모니터 외부의 프로세스도 모니터 내부의 데이터에 접근할 수 있다.

    ④ 한순간에 프로세스 하나만 모니터 안에서 활동하도록 보장한다.

     

    답 : ③ 모니터 외부의 프로세스도 모니터 내부의 데이터에 접근할 수 있다.

    ? : 19, 22번 참고

     

     

    24. 모니터에 대한 설명으로 옳지 않은 것은?

    ① 특정의 공유 자원을 할당하는 데 필요한 데이터와 프로시저를 포함하는 병행성 구조이다.

    ② 모니터 외부의 프로세스는 모니터 내부의 데이터에 직접 접근할 수 없다.

    ③ 모니터 내부의 자원을 원하는 프로세스는 반드시 해당 모니터의 진입부를 호출해야 하고, 원하는 모든 프로세스는 동시에 모니터 내부에 들어갈 수 있다.

    ④ 모니터에서 사용하는 연산에는 wait과 signal이 있다.

     

    답 : ③ 모니터 내부의 자원을 원하는 프로세스는 반드시 해당 모니터의 진입부를 호출해야 하고, 원하는 모든 프로세스는 동시에 모니터 내부에 들어갈 수 있다.

    ? : 모니터 내부 자원을 원하면 진입부를 호출해야 하는 건 맞지만, 동시에 모니터 내부를 들어갈 수는 없다.

     

     

    25. 모니터에 대한 설명으로 옳지 않은 것은?

    ① 한순간에 프로세스 2개 이상이 모니터에 들어갈 수 있다.

    ② 모니터의 경계에서 상호배제를 시행한다.

    ③ 모니터 외부의 프로세스는 모니터 내부 데이터에 접근할 수 없다.

    ④ 특정 공유 자원이나 한 그룹의 공유 자원을 할당하는 데 필요한 데이터와 프로시저를 포함하는 병행성 구조이다.

     

    답 : ① 한순간에 프로세스 2개 이상이 모니터에 들어갈 수 있다.

    ? : 19, 22번 참고

    728x90
    반응형
Designed by Tistory.