CS/운영체제_[교재]그림으로 배우는 구조와 원리 운영체제

Chapter04 병행 프로세스와 상호배제

Jedy_Kim 2021. 9. 17. 21:22
728x90

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

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

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

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

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

 

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

① deadlock

② mutual exclusion

③ interrupt

④ critical section

 

03. 상호배제(mutual exclusion)방법을 사용하여 임계 영역(critical region)을 보호했다. 다음 설명 중 옳지 않은 것은?

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

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

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

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

 

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

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

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

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

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

 

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

① monitor

② semaphore

③ critical section

④ working set

 

06. 임계 영역(critical section)에 대한 설명으로 옳은 것은?

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

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

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

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

 

07. 임계 영역(구역)의 원칙으로 옳지 않은 것은?

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

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

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

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

 

08. 임계 영역(critical section)에 대한 설명으로 옳지 않은 것은?

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

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

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

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

 

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

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

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

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

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

 

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

① Dekker 알고리즘

② Peterson 알고리즘

③ Test&Set 알고리즘

④ Lamport의 빵집 알고리즘

 

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

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

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

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

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

 

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

① locality

② page

③ semaphore

④ critical section

 

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

· 데커의 알고리즘
· 패터슨 알고리즘
· Lamprot의 빵집 알고리즘
· Test and Set 방법
· 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

 

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

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

② 다익스트라(E. J. Dijkstra)가 제안한 방법이다.

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

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

 

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

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

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

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

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

 

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

① P1,P3

 P1, P4

 P2, P4

 P3, P4

 

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

① 버퍼(buffer)

② 채널(channel)

③ 모니터(monitor)

④ 세마포(semaphore) 

 

19. 모니터(monitor)에 대한 설명으로 옳지 않은 것은?

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

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

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

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

 

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

① 세마포(semaphore)

② 비동기화(asynchronization)

③ 상호배제(mutual exclusion)

④ 모니터(monitor) 

 

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

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

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

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

④ 모니터에서는 wait와 signal 연산을 사용한다. 

 

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

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

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

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

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

 

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

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

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

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

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

 

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

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

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

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

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

 

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

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

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

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

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

 

https://notability.com/n/0ZeAdN5FSAs86dFUyNGuID

 

Chapter04 병행프로세스와 상호배제

 

notability.com

 

반응형