3장 – 병행 프로세스 205012002 2A 김정문.

Slides:



Advertisements
Similar presentations
돈과 빈곤. 가난은 장애다 “ 이발소 건물 주인 아저씨는 휠체어를 타고 다녔어. 장애인이었지. 하지만 아버지 앞에서 는 늘 당당했어. 아버지하고 얘기를 나눌 때 면 아버지는 늘 무릎을 꿇으셨지. 눈을 맞춰 야 하니까. 위에서 내려다볼 수는 없잖아, 건 물 주인을. 그.
Advertisements

A 장형태.  병행프로세스 개요  상호배제 (Mutual Exclusion)  상호배제 ( 세마포어 )  모니터 (monitor)  프로세스간 2 가지 통신방법.
한옥과 신한옥의 개념.
정보 사회의 역기 능과 대처 01 인터넷 중독, 어떻게 예방할까
제 3 호 농촌 어메니티 관광개발 정보 -농어촌체험 ∙ 휴양마을 지정제도- 농 촌 진 흥 청 농촌자원과.
CDMA SW 구조 AIITQC 서울본원교육장 양 종 윤.
여름방학 제대로 즐기기 HOT SUMMER 컴퓨터 특강 마 재 초 컴 퓨 터 실 T) /
7~9월 프로그램 광산구드림스타트 호 소식지 신체 / 건강 인지/언어 정서/행동
제 4 장 프로세스 Section 1 프로세스의 개념 Section 2 프로세스 스케줄링
제1장 소프트웨어 프로젝트 개요 1.1 프로젝트개요 1.2 프로젝트 유형 1.3 프로젝트 관리의 중요성과 실패 원인
2017년 스타트Up-청년취Up 매칭사업 개요 □ 사업목적 □ 지원내용 □ 청년인재 정의 □ 스타트업 정의
13장. 시스템 버스 다루는 내용 시스템 버스의 개념 다중버스 계층 구조 버스 중재.
정보통신실습 및 특강(5)
커뮤니케이션 스킬 UP -전화매너- ..
제 6장 프로세스 간 동기화 및 통신 6.1 개요 6.2 병행 처리의 문제점
Premier Test 초급 이름 : • 속진 레이아웃(버전3)
재학생들의 자존감 향상을 돕기 위한 집단상담 프로그램
Chapter 13 – 병렬 프로그래밍과 병렬 처리
Concurrency: Mutual Exclusion and Synchronization (상호배제와 동기화)
Concurrency: Mutual Exclusion and Synchronization (상호배제와 동기화)
제 7 장 교착 상태 7.1 개요 개념 교착 상태란 프로세스들의 집합이 더 이상 진행을 못하고 영구적으로 블록되어 있는 상태 집합 내의 한 프로세스가 특정 사건의 발생을 기다리며 대기하고 있고, 이 사건이 집합 내의 다른 블록 된 프로세스에 의해 발생될 수 있을.
프로세스 관리.
컴퓨터 과학 개론 √ 원리를 알면 IT가 맛있다 컴퓨터 과학도를 위한 첫 전공서 ehanbit.net.
제 6 장 프로세스 동기화 (Process Synchronization)
임베디드 운영체제 (리눅스 중심) Lecture #2.
Ch 14. System Thread.
4장 병행 프로세스 병행성의 원리를 이해한다 병행 프로세스 수행과 관련된 상호 배 제 해결방안을 알아본다
Chapter 6. 프로세스 동기화(Process Synchronization)
Ch. 8 교착상태 (Deadlocks) 29-Nov-18.
한양사이버대학교 실시간(온라인) 시험 응시 안내서
운영체제 허상복 컴퓨터시스템 연구실
Chapter2 프로세스란 조은성.
Synchronization.
반도체 신입 Operator 채용 안내 ㈜ 하이닉스반도체에서는 2011년도 신입 Operator 사원을 모집합니다.
오브젝트 하드웨어 기술 언어 IT CookBook, VHDL을 이용한 디지털 회로 입문.
제6장 프로세스 동기화(Process Synchronization)
4 병행 프로세스와 상호배제.
2.1 재배정 재배정요구등록 재배정승인취소 재배정부서연결 재배정단위업무연결
Bakery Algorithm Lamport’s 람포트의 제과점 알고리즘 Designed by 이기헌
Memory & Data Management.
제 6 장 프로세스 동기화 (Process Synchronization)
병행 프로세스 이나현.
3장 운영체제 2C 김주성.
Operating System Concepts
사진동호회 홍보자료 찰나를 담는 시간여행자들의 모임 사내 사진동호회 “찰칵”
2. 상호배제와 동기화 01 program versionone; // 첫 번째 버전
낙상예방 PJ 운영 시스템 구축 1. 돌파지식 제목 : Team approach로 만성질환 어르신 낙상예방 자가관리
5. Semaphores ㈜아이티즌 기술연구소
13. 블로킹 I/O 김진홍
동기화 문제 디버깅하기 사람이 컴퓨터 보다 아름다워♪ Advanced Windows Debugging Chapter.10
병행 프로세서 과목 : 운영체제 학번 : 이름 : 조장호.
법인객실 예약 메뉴얼 하이원리조트 중부사무소.
제 2장 프로세스 관리와 CPU 스케줄링 2.1 프로세스의 개념 2.2 CPU 스케줄링의 목적과 유형
LCD.
병행프로세스의개요 주세호.
운영체제 (Operating System) (하드웨어와 응용 프로그램 사이의 인터페이스 역할을 담당하는 시스템 소프트웨어)
성립전예산 요구등록 (사업담당자) 사업관리카드 1 2
운영체제 학번 : 이름 : 이원석 반 : 2B.
천국 가는 길 천국 가는 길 ♧ 천국 가는 길 ♧ 1. 죄와 사망(지옥) 1) 사람의 3가지 공통점 - 죄인, 죽음, 심판
03. 병행 프로세스(Parallel Process)
“알콜중독자 대상 심리안정 프로그램”.
Concurrency: Mutual Exclusion and Synchronization (상호배제와 동기화)
운영체제 (Operating Systems)
저출산 극복을 위한 우리공단의 추진과제 경인 제4권역 Mind up 100분 토론.
Concurrency: Deadlock and Starvation
세부담 증가의 사례연구 1 기본가정 변동사항 목적 금융소득의 구성은 다음과 같음 1. 금융소득 중 배당소득은 비상장 법인
택시비가 너무 비싸다. 우리 함께 농어촌버스를 이용해보자!
병행 프로세스(Parallel Process)
3장 병행 프로세스 2A 박훈.
Chapter 7: Deadlocks.
Presentation transcript:

3장 – 병행 프로세스 205012002 2A 김정문

병행 프로세스 프로세스들이 동시에 수행하는 것. 서로 관련 없이 독립적 수행하거나 다른 프로세스 와 상호 작용하기도 한다. 제한된 자원 공유하기 위해 상호 작용 필요하다. 프로세스간의 동기화 필요하다. 비동기성 - 프로세스간의 상호협력 하는 것

병행 프로세스 예시 각 문장에 대응되는 노드들이 비순환 그래프를 구성 각 문장에 대응되는 노드들이 비순환 그래프를 구성 노드 si 노드 sI : 연결선(edge) 은 문장 si가 수행된 후 문장 sI 가 수행 의미한다. ① s2와 s3는 s1이 끝난 후 수행 ② s4는 s2가 끝난 후 수행 ③ s5와 s6는 s4가 끝나 후에 수 행 ④ s7은 s5, s6, s3가 끝난 후에만 수행     s3는 s2, s4, s5, s6와 병행되어 수행

비동기성으로 인한 문제점 상호배제 : 프로세스 2개가 동시에 임계 지역에 진입하 지 못하도록 하는 것. 동기화 : 임계 영역에서 프로세스가  작업을 수행하더라 도 올바른 결과를 기대할 수 있도록 하는 데이터의 정확 성과 데이터의 일관성을  보장하는 것. 결정적인 문제 : 여러 프로세서가 실행순서와 관계 없이 언제나 일정한 결과를 얻어야 한다. 통신문제 : 상호배제와 동기화 문제 해결을 위해 데이터 교환 방법이 필요하다. 일반적으로 메시지 교환 방법 사 용. 교착상태 : 무한정 기다리는 상태를 말 한다.

상호배제 임계 구역(공유 자원)을 어느 시점에서 단지 한 개 의 프로세스만이 사용할 수 있도록 하며, 다른 프로 세스가 현재 사용중인 임계 구역(공유 자원)에 대하 여 접근하려고 할때 이를 금지하는 행위를 상호배 제라고 한다.   Pdata pdata+1; pdata 주기억장치 프로세스 P1 프로세스 P2 프로세스 P1이 공유 데이터 pdata를 액세스 하면 P2는 액세스 하지 못하게 해야 한다.

임계영역 (Critical Section) 동시에 둘 이상의 스레드가 동시에 접근해서는 안되 는 공유 자원(자료 구조 또는 장치)을 접근하는 코드의 일부를 말한다. 임계 영역은 주로 지정된 시간이 지난 후 사라진다. 그래서 어떤 스레드(작업 또는 프로세스)가 임계 구역에 들어가려면 지정된 시간을 기다려야 한다. 세마포어와 같이, 배타적인 사용을 보장하기 위해서는 임계영역의 입장과 퇴장에는 어떤 동기화 동작이 필요하다. 공유메모리가 참조하는 프로그램의 부분을 말한다. 즉, 어떤 프로세스가 공유 데이터를 액세스 할 때 그 프로세스는 임계 영역 내에 있다고 말한다.

상호배제 기법 소프트 웨어적인 상호배제 기법 프로그래밍 언어 또는 운영체제의 특별한 지원 없이, 프로세스 간 협력을 통해 직접 상호배제를 보장하는 것이다. - 2개 프로세스 대상: Dekker 알고리즘-, Peterson 알고리즘 - n개 프로세스 대상: Dijstra 알고리즘, Knuth 알고리즘 & Mcguire 알고리즘, Lamport 알고리즘 하드웨어적인 상호배제 기법 특별히 설계된 기계어 명령어를 이용하는 방법이다. - Test and Set 명령어 - Swap 명령어 순환 반복대기(Busy Waiting) 기법 - 세마포어(Semaphore) - Eventcount/Sequencer(시크벤저)

데커[Dekker] 알고리즘 이 알고리즘은 두 프로세스가 동시에 임계 영역에 들어 가려고 할 때 하나만 들어가도록 한다. 한 프로세스가 이미 임계 영역에 있다면, 다른 프로세스는 전 프로세스 가 끝나기를 기다려야 한다. f0과 f1 두 개의 플래그(각각 임계영역에 들어갈 의향, 두 프로세스 사이의 우선권을 나타낸다.)를 사용하여 구현 할 수 있다.

N개 프로세스 상호 배제 기법 데이크스트라(Dijkstra) 단점 : 무기한 연기의 가능성이 있다. 쿤즈(Knuth) 단점 : 무기한 연기의 가능성을 제거 하였지만 지 연 시간이 매우 크다 아이젠버그(Eisenberg) 유한 시간내의 시도 후 임계영역 진입을 보장 한다. 람포트(Lamport) 분산 시스템 환경을 위한 상호 배제 기법이다.

세마포어 에츠허르 데이크스트라가 고안한, 두 개의 원자적 함수로 조작되는 정수 변수로서, 멀티프로그 래밍 환경에서 공유 자원에 대한 접근을 제한하는 방법으로 사용된다. 이는 철학자들의 만찬 문 제의 고전적인 해법이지만 모든 교착 상태를 해결하지는 못한다. P는 임계 구역에 들어가기 전에 수행되고, V는 임계 구역에서 나올 때 수행된다. 이 때 변수 값을 수정하는 연산은 모두 원자성을 만족해야 한다. 다시 말해, 한 프로세스(또는 스레드)에서 세마 포어 값을 변경하는 동안 다른 프로세스가 동시에 이 값을 변경해서는 안 된다. 각 프로세스에 제어 신호를 전달하여 순서대로 작업을 수행하도록 하는 기법. S는 P와 V 연산으로만 접근 가능한 세마포어 변수로, 공유 자원의 개수를 나타내며 0과 1 혹은 0 과 양의 값을 가질 수 있다. P 연산 : 자원을 사용하려는 프로세스들의 진입 여부를 자원의 개수(S)를 통해 결정하는 것으로, wait 동작이라 한다. V 연산 : 대기 중인 프로세스를 깨우는 신호(Wake Up)로서, signal 동작이라 함. 계수 세마포어(counting semaphore)에서는 초기값은 가능한 자원의 수로 정해지며, 세마포어 값의 범위는 정해져 있지 않다. 이진 세마포어(binary semaphore)에서는 세마포어 값으로 0 또는 1을 가진다. 계수 세마포어보다 간단히 구현할 수 있으며, Test and Set 등 하드웨어가 지원하는 기능을 이용하여 구현하기도 한다. 또한, 이진 세마포어를 이용하여 계수 세마포어를 구현할 수도 있다.

세마포어(2) 약점> P함수와 V함수의 동작은 독립적이기 때문에 잘못 사용하는 경우, 문제가 발생한다. P - 임계 구역 - P : 현재 프로세스가 임계 구역에서 빠져나갈 수 없 게 된다. 또한 다른 프로세스들은 임계 구역에 들어갈 수 없으므로 교착 상태(Deadlock)가 발생한다. V - 임계 구역 - P : 2개 이상의 프로세스가 동시에 임계구역에 들어 갈 수 있으므로 상호 배제(Mutual Exclusion)를 보장할 수 없게 된다. 고급 언어에서 동기화를 제공해야 한다.

세마포어(3) 작동원리는 매우 간단하다. 차단을 원하는 자원에대해서 세마포어를 생성하면 해 당자원을 가리키는 세마포어 값이 할당된다. 이 세마포어 값에는 현재 세마포어를 적용하고 있는 자원에 접근할수 있는 프로세스의 숫자를 나타낸다. 이 값이 0이면 이 자원에 접근할수 있는 프로세스의 숫자가 0이라는 뜻이며, 자원), 0 보다 큰 정수면 해당 정수의 크기만큼의 프로세스가 자원에 접근할수 있다라는 뜻 이 된다. 그러므로 우리는 접근제어를 해야하는 자원에 접근하기 전에 세마포어 값 을 검사해서 값이 0이면 자원을 사용할수 있을때까지 기다리고, 0보다 더크면(1이라 고 가정하자) 자원에 접근해서 세마포어 값을 1 감소 시켜서, 세마포어 값을 0으로 만들어서, 다른 프로세스가 자원에 접근할수 없도록 하고, 자원의 사용이 끝나면 세 마포어 값을 다시 1증가시켜서 다른 프로세스가 자원을 사용할수 있도록 만들어주 면 된다. 만약 세마포어 값을 검사했는데 세마포어 값이 0이라면 사용할수 있게 될때까지 (1 이 될때까지) 기다리면 (block) 될것이다.

모니터 여러 프로세스 사이에 공유 데이터와 이 공유 데이터에 접근하는 여러 프로시져. 임계영역 코드들의 집합으로 정의. 여러 프로세스 사이에 공유 데이터와 이 공유 데이터에 접근하는 여러 프로시져. 임계영역 코드들의 집합으로 정의. 모니터에 프로시져가 몇 개 있는지에 따라 그 개수만큼 모니터 진 입 큐 (entry queue)가 존재한다. 모니터 내의 프로시져를 호출하는 프로세스는 해당 프로시져에 대 한 진입 큐를 통해 모니터 내로 진입하며 그 과정에서 이미 모니터 내에 진입해 있는 프로세스가 존재하는 경우 진입 큐에 대기한다. 즉, 모니터 내에는 항상 하나 이하의 프로세스만이 진입하도록 상 호 배제 메커니즘이 자동으로 보장한다.