운영체제 4장 연습문제 해답

Posted by 드린
2017.04.13 08:00 팁(TIP)

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

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


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

②mutual exclusion


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

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


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

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


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

③critical section


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

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


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

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


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

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


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

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


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

③Test&Set 알고리즘


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

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


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

④critical section


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

데커의 알고리즘      패터슨 알고리즘    Lanport의 빵집 알고리즘

Test and Set 방법    swap 명령어 방법

②상호배제


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

③ 가 S-1 나 S+1


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

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


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

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


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

①P1, P3


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

③모니터


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

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


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

②비동기화


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

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


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

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


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

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


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

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


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

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


26.바쁜 대기의 개념과 이를 피할 수 있는 방법을 간단히 설명하시오.

대기중인 스레드가 여전히 활성 상태이지만 아무 작업을 하지 않는 것

예방 방법: 세마포를 사용하거나 wait와 signal연산으로 바쁜 대기를 완전히 제거를 못하지만 바쁜 대기 시기를 이동시켜야 한다.


27.대기의 종류를 세가지 이상 나열하고 간단히 설명하시오.

무한 대기: 상대방 프로세스의 상태를 몰라 계속 기다리는 상태

순환 대기: 프로세스들이 순환을 이루어서 존재, 이를 구성하는 각 프로세스는 순환내의 이전 프로세스가 요청하는 자원을 점유하고 다음 프로세스가 점유하고 있는 자원을 요구

한정 대기: 한 프로세스가 임계영역에 대한 요청 후부터 요청이 수락되기까지의 기간 내에 다른 프로세스가 임계영역을 수행할 수 있는 횟수에는 제한이 있어야 한다는 조건


28.다음 선행 그래프를 fork/join 문장으로 구현하시오.

S1;

Fork L1

Count1 :=3;

S2;

S4;

Fork L2;

S5;

Goto L3;

S6;

Goto L3;

S3;


29.버퍼 크기가 유한한 생산자, 소비자 문제에서 버퍼가 최대 n-1개의 데이터만 허용하는 이유를 설명하시오.

버퍼가 전부 차있거나 비워져 있을 경우 버퍼의 접근을 배제해야 하기 때문


30.임계 영역 문제에서 세마포가 아닌 TestAndSet을 사용하여 해결할 때의 단점은?

프로세스가 임계 영역에 진입할 수 없을 때는 진입 조선이 true가 될 때까지 반복적으로 조사하며 바쁜대기를 하게 됨


31.임계 영역의 의미와 문제점을 간단히 설명하시오.

임계영역은 한 순간에는 하나의 프로세스만 사용할 수 있는 영역을 의미

문제점은 한 순간에 교착상태 없이 하나의 프로세스가 임계영역에 진입하도록 설계하는 알고리즘


32.임계 영역이 만족해야 하는 세가지 조건을 기술하시오.

상호배제,    진행,    한정 대기

33.프로세스들의 병행 처리를 명시하는 언어적 표현을 간략하게 기술하시오.

Parbegin : a:=x+y; , b:=z+1

parend : c:=a-b; w:=c+1


34.세마포의 두 가지 연산을 설명하시오.

fork/join 단일 연산을 독립연산 2개로 분할 후 합침

fork로 나눈뒤 join으로 다시 합친다.

parbegin/parend

하나의 연산으로 퍼졌다가 다시 하나로 뭉쳐지는 구조

parbegin을 먼저 실행해야 parend를 할 수가 있다.


35.세마포의 단점을 설명하시오.

한 개의 프로세스가 임게 구역에 있는 동안, 임계 구역에 진입하려는 다른 모든 프로세스가 진입 영역에서 계속 대기


36.모니터의 개념을 설명하시오.

임계 영역을 관리하는 소프트웨어 구성체이며 사용자 사이에 통신하려고 동기화하고 자원에 배타적으로 접근할 수 있도록 병행 프로그래밍 구조


37.경쟁 상태를 설명하고, 이를 피할 수 있는 방법은 간단히 설명하시오.

여러 프로세스가 동시에 공유 데이터에 접근할 때 접근 순서에 따라 실행결과가 달라지는 상황이란 뜻이다. 예방 방법은 병행 프로세스를 동기화해야된다.


38.세마포와 조건 변수의 wait와 signal 연산 차이를 설명하시오.

wait: 세마포를 의미하는 S는 표준 단위 연산 프로세스를 대기하게 하는 동작이다.

signal: 대기 중인 프로세스를 꺠우려고 신호를 보내는 동작이다.

#운영체제 #구현회 지음 #4장 #연습문제 #해답

  1. 전문가 수준의 문제들 이군요..
    잘보고 갑니다..
  2. 익숙한 단어들이 머릿속에서 떠오릅니다.^^
    • 웅영
    • 2017.11.09 10:24 신고
    28번 fork/join 문장 구현이 완성이 안된 것 같습니다!
    이렇게가 아닌가 싶네요...
    count1:=2;
    count2:=2;
    S1;
    fork L1;
    S2;
    S4;
    fork L2;
    S5;
    Go to L3;
    L1: S3;
    L2: join count1;
    S6;
    L3: join count2;
    S7;
    • BlogIcon User1@~
    • 2018.04.20 15:32
    관리자의 승인을 기다리고 있는 댓글입니다
    • BlogIcon Icepak
    • 2018.04.20 15:36
    관리자의 승인을 기다리고 있는 댓글입니다
이 댓글을 비밀 댓글로