본문 바로가기

📜✏️노트 자리없어서 적는 IT 지식📜✏️

운영체제 - (병행프로세스 문제.)

6장 프로세스 간 동기화 및 통신(병행 프로세스)

[임계 구역, 상호 배제]

 

1. 다중 프로그래밍 운영체제에서 한 순간에 여러 개의 프로세스에 의하여 공유되는 데이터 및 자원에 대하여, 한 순간에는 반드시 하나의 프로세스에 의해 서만 자원 또는 데이터가 사용되도록 하고, 이러한 자원이 프로세스에 의하여 반잡된 후 비로소 다른 프로세스에서 자원을 이용하거나 데이터를 접근 할 수 있도록 지정된 영역을 의미하는 것은?

 

 

가. locality   나. semaphore   다. Critical section  라. Working set

 

 

더보기

다. : Critical section (즉, 임계영역)에대한 문제는 무조건 나온다고 볼 수 있다.

 

2. 한 프로세스가 공유 메모리 혹은 공유 파일을 사 용하고 있을 때 다른 프로세스들이 사용하지 못하도 록 배제 시키는 제어 기법을 무엇이라고 하는가?

 

가. deadlock  나. Mutual exclusion  다. interrupt  라. Critical section

 

더보기

나. : 배제 시키는 기법 = 배제 기법( Mutual exclusion) 문제에 정답이있다.

 

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

 

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

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

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

라. 임계 영역에서의 작업은 신속하게 이루어져야 한다.

 

더보기

라.

 

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

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

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

> 프로세스 1개만 사용해야한다.

 

 

[동기화 기법]

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

 

가. 모니터의 경계에서 상호배제가 시행된다.

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

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

라. 모니터 내의 데이터는 모니터 외부에서도 액세스 할 수 있다

 

더보기

라 . : 모니터 외부에서는 접근 불가!

 

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

 

가. 세마포어

나. 비동기화

다. 상호배제

라. 모니터

 

더보기

나. : 비동기화는 병행 프로그래밍 오류 방지 방법이 아님.

 

6. 아래와 같은 P.V 연산에 의해 임계 구역의 접근을 제어하는 상호 배제기법은?

P(S)  { while S ≤ 0 do skip;

            S-- ;

         }

V(S)  {

            S++ ;

         }

 

가. dekker algorithm

나. peterson algorithm

다. lamport 빵집 알고리즘

라. 세마포어

 

더보기

라. : P(S) V(S)와 같은  P.V 연산은 무조건 세마포어임.

 

7. 병행성과 병렬성의 공통점과 차이점에 대하여 설명하시오, <매우 중요!!! ★★★★★>

 

 

 

공통점 : 동일한 시간 동안 여러 프로세스를 동시 실행

 

차이점  : 

- 병렬성 : 병렬성을 기반으로 한 병렬 컴퓨팅은

-다중 프로세서 시스템(cpu가 여러개 )에서 동일한 시간에 별도의 프로세서에서 실행 하는것

 

-병행성 : 병해성을 기반으로 한 동시 컴퓨팅은

모두 동일한 시간에 실행 할 필요가 없는 것으로 예를 들어 병행 프로세스는 시분할로 각 프로세스의 실행 단계를 전환하여 어느 한 순간에는 프로세스 하나를 실행하도록 하는 방법으로 단일 프로세서 시스템(cpu 1개)에서도 가능함

 

 

병렬성 병행성
다중 프로세서 시스템에서 동일한 시간에 실행 동일한 시간에 실행 할 필요가 없음
다중 프로세서 시스템 단일 프로세서 시스템

 

 

병행성과 병렬성 비교

 

• 공통점: 동일한 시간 동안, 여러 프로세스를 동시 실행

 

• 차이점:

 병렬성 : 다중 프로세서 시스템에서 동일한 시간 별도의 프로세서에서 실행 하는 것

 

 병행성 :  모두 동일한 시간 실행 할 필요가 없는 것으로 예를 들어 병행 프로세스는 시분할로 각 프로세스의 실행 단계를 전환하여 어느 한 순간에는 프로세스 하나를 실행하도록 하는 방법으로 단일 프로세서 시스템에서도 가능함

 

 

 

 

 

 

 

8. 병행 프로세스의 대표적 문제점 3가지에 대하여 설명 하시오.

상호 배제, 동기화 문제, 교착 상태 < 문제 3대장 암기 필수.

 

상호 배제의 개념 : 

병행 프로세스에서 프로세스 하나가 공유 자원 사용 시 다른 프로세스들이 동일한 일을 할 수 없도록 하는 방법 

(기법, 알고리즘)

 

 

동기화 > 내가 원래 사용하려하는 프린트를 동시에 요청하면 생기는 문제

- 동기화로 상호배제 보장할 수 있지만, 이 과정에서 교착 상태와 기아 상태가 발생할 수 있음

 

교착 상태 > 운영체제 또는 소프트웨어의 잘못된 자원 관리로 인하여 둘 이상의 프로세스 또는 스레드들이 아무것도 진행하지 않는 상태로 서로 영원히 대기하는 상황

 

 

 

 

9. 공유 자원과 임계 자원의 차이점에 대하여 설명 하시오.

시험문제 ★★★★★ <공유자원, 임계자원 차이점 무조건 알기>

 

 

공유 영역 : 공유 자원으로 cpu, 메모리, 디스크, 입출력장치 버퍼등이 해당됨.
=> 메모리 자원은 공유 영역에서 병렬(parallel)로 사용
=> 입출력 장치 일부나 프로세서는 한번에 프로세스 하나만 사용 할 수 있는 공유 자원임

 


임계 자원  : 두 프로세스가 동시에 사용할 수 없는 공유 자원

 

 

10. 상호 배제 기법에서 임계 구역 문제 해결을 위 한 세 가지 충족요건에 대하여 설명하시오.

 

 

  • 상호 배제 :  프로세스가 임계구역에 들어가면, 다른 프로세스는 들어갈 수 없다.
  • 한정 대기 : 어떤 프로세스도 무한 대기하지 않아야 한다.
  • 진행의 융통성 :  프로세스가 다른 프로세스의 진행 방해하지 않아야 한다.



 

 

문제 1

스레드에 관한 설명으로 옳지 않은 것은?


가. 스레드는 하나의 프로세스 내에서 병행성을 증대시키기 위한 메커니즘이다.
나. 스레드는 프로세스의 일부 특성을 갖고 있기 때문에 정량프로세스라고도 한다.
다. 스레드를 동일 프로세스 환경에서 서로 독립적인 다중수행이 불가능하다.
라. 스레드 기반 시스템에서 스레드는 독립적인 스케줄링의 최소 단위로서 프로세스의 역할을 담당한다.

 

 

더보기
닫기

다. 스레드는 해당 스레드를 위한 스택을 생성할 뿐 프로세스내의 코드,데이터, 힙영역의 메모리를 공유(다중수행가능)한다..

 

다수의 스레드가 수행되면 이를 멀티 스테드라고 함

    => 한 프로세스의 한 스레드가 존재하면 단일 스레드, 다수에 스레드가 존재하면 다중스레드

  - 독립적인 스케줄링의 최소단위, 동일 프로세스 환경에서 서로 독립적인 다중 수행이 가능

 

문제 2

다중 프로그래밍 운영체제에서 한 순간에 여러 개의 프로세스에 의하여 공유되는 데이터 및 자원에 대하여, 한 순간에는 반드시 하나의 프로세스에 의해서만 자원 또는 데이터가 사용되도록 하고, 이러한 자원이 프로세스에 의하여 반잡된 후 비로소 다른 프로세스에서 자원을 이용하거나 데이터를 접근 할 수 있도록 지정된 영역을 의미하는 것은?


가. locality

나. semaphore

다. Critical section

라. Working set

 

더보기
닫기

다. : Critical section = 임계영역(구역)

 

 

 

문제 3

한 프로세스가 공유 메모리 혹은 공유 파일을 사용하고 있을 때 다른 프로세스들이 사용하지 못하도록 배제 시키는 제어 기법을 무엇이라고 하는가?


가. deadlock
나. Mutual exclusion
다. interrupt
라. Critical section

 

더보기
닫기

나. Mutual exclusion = 상호 배제 기법( 다른 프로세스들이 사용하지 못하도록 배제 시키는 제어 기법 < 문제에 정답이있다. 하지만 영어를 몰라서 틀렸다.

 

문제 4

세마포어에 대한 설명으로 옳지 않은 것은?


가. dijkstra 가 제시한 상호배제 알고리즘이다.
나. 세마포어 변수는 양의 정수값 만을 가질 수 있다.
다. V 조작은 블록 큐에 대기 중인 프로세스를 깨우는 신호(wake up)로서, 흔히 signal 동작이라한다.
라. P조작은 임계영역을 사용하려는 프로세스들의 진입 여부를 결정하는 조작으로 흔히 wait 동작이라한다.

 

 

더보기
닫기

나. 세마포어 변수는 0 과 양의 정수값 만을 가질 수 있다.

 

문제 5

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


가. 특정의 공유자원을 할당하는데 필요한 데이터 및 프로시저를 포함하는 병행성 구조이다.
나. 모니터 외부의 프로세스는 모니터 내부의 데이터를 직접 액세스 할 수 없다.
다. 모니터 내의 자원을 원하는 프로세스는 반드시 해당 모니터의 진입부를 호출해야 하고, 원하는 모든 프로세스는 동시에 모니터 내에 들어갈 수 있다.
라. 모니터에서 사용되는 연산은 wait와 signal이 있다.

 

더보기
닫기

다. :

  • 모니터 내의 자원을 원하는 프로세스는 반드시 해당 모니터의 진입부를 호출해야 합니다.
  • 그러나 모든 프로세스가 동시에 모니터 내에 들어갈 수 있는 것은 아닙니다. 모니터는 한 번에 하나의 프로세스나 스레드만 내부에 들어가도록 보장합니다. < GPT 왈

 

 

 

 

 

 


-동기화 기법-
동기화 기법은 두 개 이상의 프로세스를 한 시점에서는 동시에 처리할 수 없으므로 각 프로세스에 대한 처리수서를 결정하는 것으로, 상호 배제의 한 형태이다.

동기화를 구현할 수 있는 방법

-세마포어
n개의 공유 자원을 다수의 프로세스가 공유하기 위한 기법

-모니터
: 내부의 프로시저와 데이터 정보를 은폐시킴
세마포어는 프로그래머가 만들었고 그걸 간단하게 만든게 모니터이다.