largando

운영체제 과제(2) DeadLock_MainMemory_VirtualMemory 본문

Operating System

운영체제 과제(2) DeadLock_MainMemory_VirtualMemory

ensoojn 2017. 12. 12. 23:13

1. 다중 처리기 시스템을 위한 동기화 프리미티브를 구현할 때 인터럽트를 사용하는 것이 부적합한 이유를 설명하시오.


    한 처리기에서 인터럽트를 통해 프로세스가 임계구역에 접근하는 것을 방지해도 다른 처리기에서 임계구역에 접근하는 것을 막을 수 없다. 따라서 다른 처리기에서 해당 임계구역에 접근할 수 있기 때문에 다중처리기 시스템을 위한 프리미티브를 구현할 때 인터럽ㅌㅌ를 사용하는 것은 부적합하다.


2. "바쁜 대기(busy-waiting)"의 의미는 무엇인가? 운영체제 안에서 이 방식과 다르게 기다리는 방식은 무엇인가? 바쁜 대기를 전혀 사용하지 않은 수 있는가?

    Busy-waiting이란 임계영역에 진입할 수 있는지 조건을 계속 검사하면서 대기하는 상태이다. 한 프로세스가 임계 영역에 있으면, 다른 프로세스는 자신의 진입 코드를 계속 반복 실행하는데 이를 busy-waiting이라 한다. Busy-waiting은 CPU를 점유하기 때문에 이 시간동안 다른 프로세스를 실행할 수 없다.

    운영체제 안에서 이 방식과 다르게 기다리는 방식은 blocking이다. block연산은 프로세스를 block-queue에 넣고, 프로세스의 상태를 대기 상태로 전환한다. 이후 제어가 CPU 스케줄러로 넘어가서 스케줄러는 다른 프로세스를 실행시키고, 봉쇄된 프로세스는 다른 프로세스가 signal()을 실행하면 wake-up되어 수행된다. 이 경우 signal을 실행 하여 wake-up을 수행해야 하는 overhead가 있다. 또 wait상태에서 signal이 실행되었는지 확인해야 하므로 busy-waiting를 전혀 사용하지 않는 것은 아니다.


3. 현재 시스템의 상태가 다음과 같다.


Allocation

Max

Available

 

A B C D 

A B C D 

A B C D 

P0

0 0 1 2 

0 0 1 2 

1 5 2 0 

P1 

1 0 0 0 

1 7 5 0 

 

P2

1 3 5 4 

2 3 5 6 

 

P3

0 6 3 2 

0 6 5 2 

 

P4 

0 0 1 4 

0 6 5 6 

 


a) Need 행렬을 구하시오.


A    B    C    D

P0   0    0    0    0

P1   0    7    5    0

P2   1    0    0    2

P3   0    0    2    0

P4   0    6    4    2


b)안전 순서(safe sequence)를 구하시오.

P0 à P2 à P1 à P3 à P4

P0 à P2 à P3 à P4 à P1

(여러 경우가 있음)


4. 내부 단편화(internal fragmentation)와 외부 단편화(external fragmentation)를 비교 설명하시오.


    내부 단편화는 메모리에 프로그램을 적재 후 남는 영역으로 고정 분할에서만 발생하는 단편화이다. m워드 크기의 기억장소를 필요로 하는 어떤 작업이 n>=m인 n워드 크기의 영역에서 실행될 때, 이 두 워드의 차(n-m)을 말한다.

    외부 단편화는 고정 분할과 가변 분할 모두에서 발생할 수 있다. 어떤 영역이 사용되지 앟고 남아있어서 이용할 수 있지만, 대기 중인 작업의 크기에 비해 기억장소가 작아 적재하지 못 하는 영역을 말한다.


5.


'Operating System' 카테고리의 다른 글

운영체제 과제(1)  (0) 2019.08.25
Ch.7 교착상태 (Dead Lock)  (0) 2019.08.11