학부공부/운영체제

개요 ( 병행처리 , 상호 배제 알고리즘 , 하드웨어에 의한 동기화 , 세마포 , 모니터 )

IT grow. 2018. 7. 24. 03:52
반응형

개요

 

1.     병행 프로세스

ㄱ.   두 개 이상의 프로세스가 동시에 수행

ㄴ.   서로 관련 x  or 독립적으로 수행 à 독립적 병행 프로세스

ㄷ.   다른 프로세스들과의 협력을 통해서 기능을 수행 à 협력적 병행 프로세스

2.     협력적 병행 프로세스

ㄱ.   제한된 자원을 공유하기 위하여 상호 작용이 필요

ㄴ.   프로세스들을 동기화하지 않으면 교착상태 , 임계영역 문제 , 결과를 예측할 수 없는 상황 등 여러 문제들이 발생한다.

ㄷ.   동기화가 필요하다

 


병행 처리의 문제점

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

2.     한 기능을 공유해 수행하는 두 프로세스 간의 동기화 문제가 발생한다 ( synchronization )

3.     자료 교환을 위한 메시지 전달 방식 등의 통신 문제가 발생한다 ( Communication )

4.     실행 순서와는 상관없이 항상 같은 결과를 얻을 수 있어야 하는 문제가 발생한다 ( Determinancy )

5.     교착상태 문제가 발생한다

6.     프로그래밍 언어를 통한 병행 처리 문제 발생한다 ( ConCurrent Programming )

7.     올바른 실행을 검증하는 문제가 발생한다 ( verification )

 

8.     임계구역이란

à 어떤 프로세스가 공유 자원을 접근하고 있는 동안 그 프로세스는 임계 구역에 있다고 한다.

à임계 구역에 접근한 프로세스는 상호 배제를 보장한다.

9.     상호 배제란

à여러 프로세스들이 하나의 공유 자원을 상호 배타적으로 사용할 수 있지만 동시에 사용할 수는 없도록 하는 것이다.

 


상호 배제 알고리즘

è  임계 구역 문제 해결책을 위한 세 가지 요건 충족

1.     상호 배제 : 한 프로세스가 그들의 임계 구역에서 실행되고 있다면 다른 프로세스는 그 임계 구역에 들어 갈 수 없다.

2.     진행 : 임계구역으로 진입하려는 프로세스가 있을 경우에 진입을 결정하는데 참여할 수 있으며 , 이 선택은 무한 연기 되어서는 안 된다.

3.     한정된 대기 : 진입을 요청한 이후부터 그 요청이 허용될 때 까지 다른 프로세스들의 임계구역 진입허용 횟수에 한계가 있어야 한다 .

 


하드웨어에 의한 동기화

è  임계 구역 문제를 공유 변수가 변경되는 동안 인터럽트 발생을 허용하지 않도록 설정

1.     TestAndSet() 명령 이용 : 인터럽트 되지 않는 하나의 명령어 단위로 처리

 


세마포

è  동기화 도구

è  일반적으로 세마포로 사용되는 변수 S는 정수형 변수

è  초기화를 제외하고는 단지 두 개의 표준연산으로만 접근

è  P V 연산 이용

 


모니터

è  순차적으로만 사용할 수 있는 특정 공유 자원 or 공유자원 그룹을 할당하는 데 사용되며 필요한 데이터 및 프로시듀어를 포함하는 병행성 구조 ( ConCurrency Construct )

è  공유 자원에 접근하고자 하는 프로세스는 반드시 특정 모니터의 진입부 ( Entry ) 를 호출 해야 한다.

è  이미 사용 중인 모니터에 들어가려고 하는 프로세스는 반드시 대기해야 한다.

è  데이터와 이들 데이터를 처리하는 프로시듀어의 집합

è  모니터 내의 데이터는 모니터 내부에 의해서만 접근이 가능하기 때문에 모니터 외부의 프로세스는 접근할 수 없다 ( 정보 은폐라고 함 )

è  보다 높은 신뢰성을 가지는 소프트웨어 개발을 가능케 하는 시스템 구조화 기법


반응형