개요
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 ) 를 호출 해야 한다.
è 이미 사용 중인 모니터에 들어가려고 하는 프로세스는 반드시 대기해야 한다.
è 데이터와 이들 데이터를 처리하는 프로시듀어의 집합
è 모니터 내의 데이터는 모니터 내부에 의해서만 접근이 가능하기 때문에 모니터 외부의 프로세스는 접근할 수 없다 ( 정보 은폐라고 함 )
è 보다 높은 신뢰성을 가지는 소프트웨어 개발을 가능케 하는 시스템 구조화 기법
'학부공부 > 운영체제' 카테고리의 다른 글
정보보호 ( 정의 , 접근 제어 정책 및 기법 ) (0) | 2018.06.11 |
---|---|
교착 상태 ( 4가지 조건 ) (0) | 2018.06.04 |
교착상태 회피 ( 은행가 알고리즘 Ex문제풀이 ) (0) | 2018.06.01 |
교착상태 회피( 은행가 알고리즘 ) (0) | 2018.06.01 |
파일시스템(정의,특징,기능,종류) (0) | 2018.05.30 |
#IT #먹방 #전자기기 #일상
#개발 #일상