3장 운영체제 2C200512116 김주성.

Slides:



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

Copyright © 2015 Pearson Education, Inc. 6 장 : 프로그래밍 언어.
A 장형태.  병행프로세스 개요  상호배제 (Mutual Exclusion)  상호배제 ( 세마포어 )  모니터 (monitor)  프로세스간 2 가지 통신방법.
성경연구 (GBS) 인도 캠프아굴라 8 기. 배움이란 무엇인가 ? - 교육은 외부의 지식을 효과적으로 내부로 넣는 것이 아니다. 내부의 것을 밖으로 끌어내는 과정이다. ( 부모라면 유태인처럼 하브루타로 교육하라 - 전성수 ) - 정답이 있을까 ? 질문과 토론 과정을.
정보 사회의 역기 능과 대처 01 인터넷 중독, 어떻게 예방할까
CDMA SW 구조 AIITQC 서울본원교육장 양 종 윤.
프로세스 동기화(Process Synchronization)

제 4 장 프로세스 Section 1 프로세스의 개념 Section 2 프로세스 스케줄링
경영 정보 시스템 구축 제안서 가우정보기술주식회사 [신화 제약 주식회사] 1997년 10월 9일 새로운 기법 철저한 사후 관리
Oracle Embedded SQL Pro*C : Chap 5 Copyright by SunYoung Kim
제 6장 프로세스 간 동기화 및 통신 6.1 개요 6.2 병행 처리의 문제점
데이터 관리의 모든 것 데이터 최적화하기 데이터 정렬하기 자동 필터와 고급 필터
Chapter 13 – 병렬 프로그래밍과 병렬 처리
Concurrency: Mutual Exclusion and Synchronization (상호배제와 동기화)
Concurrency: Mutual Exclusion and Synchronization (상호배제와 동기화)
제 7 장 교착 상태 7.1 개요 개념 교착 상태란 프로세스들의 집합이 더 이상 진행을 못하고 영구적으로 블록되어 있는 상태 집합 내의 한 프로세스가 특정 사건의 발생을 기다리며 대기하고 있고, 이 사건이 집합 내의 다른 블록 된 프로세스에 의해 발생될 수 있을.
프로세스 관리.
컴퓨터 과학 개론 √ 원리를 알면 IT가 맛있다 컴퓨터 과학도를 위한 첫 전공서 ehanbit.net.
제 6 장 프로세스 동기화 (Process Synchronization)
임베디드 운영체제 (리눅스 중심) Lecture #2.
4장 병행 프로세스 병행성의 원리를 이해한다 병행 프로세스 수행과 관련된 상호 배 제 해결방안을 알아본다
Chapter 6. 프로세스 동기화(Process Synchronization)
트랜잭션과 잠금 트랜잭션 처리 메커니즘을 자세히 이해한다. 트랜잭션의 종류를 파악한다.
Java의 정석 제 12 장 쓰레드(thread) Java 정석 남궁성 강의
최용술 장 Thread 최용술
10장 다중 스레드 10.1 스레드 개요 10.2 Thread 클래스 10.3 스레드 생성
운영체제 허상복 컴퓨터시스템 연구실
DataScience Lab. 박사과정 김희찬 (월)
YOU Youngseok 트랜잭션(Transaction) YOU Youngseok
03. 병행 프로세스 (Parallel Process)
제6장 프로세스 동기화(Process Synchronization)
4 병행 프로세스와 상호배제.
USB Door Lock System 공 민 표 강 정 이 권 경 곤
Bakery Algorithm Lamport’s 람포트의 제과점 알고리즘 Designed by 이기헌
성균관대학교 전자전기컴퓨터공학과 오영환, 박효진
Hypothesis Testing 가설 검정
강의 소개, 자료구조의 개념, SW 개발과 자료구조
제 6 장 프로세스 동기화 (Process Synchronization)
Chap10 다중 스레드 Section 1 : 스레드 개요 Section 2 : Thread 클래스와 스레드 생명주기
병행 프로세스 이나현.
Operating System Concepts
제 10장 운영체제.
매스커뮤니케이션 신문 목원대학교 서 진 희.
2. 상호배제와 동기화 01 program versionone; // 첫 번째 버전
학습목표 학습목표 본 장은 동시성 제어와 잠금(lock) 등 효과적인 트랜잭션 관리 기법 과 필요한 명령을 다룬다. 또한 데이터베이스의 장애에 대비하여 안전한 데이터의 관리를 위한 백업과 복원 기법, 서로 다른 DBMS 간이나 다른 서버 사이의 데이터 교환을 위한 데이터.
데이터베이스 (Database) 데이터베이스와 데이터베이스 사용자 문양세 강원대학교 IT대학 컴퓨터과학전공.
DataScience Lab. 박사과정 김희찬 (화)
5. Semaphores ㈜아이티즌 기술연구소
[INA470] Java Programming Youn-Hee Han
U N I X 창원대학교 전자계산학과 김병찬.
동기화 문제 디버깅하기 사람이 컴퓨터 보다 아름다워♪ Advanced Windows Debugging Chapter.10
병행 프로세서 과목 : 운영체제 학번 : 이름 : 조장호.
병행프로세스의개요 주세호.
기술 진화와 진보.
최대 공약수 구하기 (1) 프로그램 예제2 : 최대 공약수 구하기 문제 해결 방법 구상 (아는 지식 정리) GCD1 알고리즘
병행 프로세스 병행처리는 프로세스들이 서로 관계없이 독립적으 로 수행 가능하고 다른 프로세스들과 협력을 필요로 하면서 기능 수행 3.1 개요 parbegin/parend 제어문 : 순차적인 수행으로부터 여러 개의 동시 수행으로 갈라짐을 지시하는 명령어와 여러 개의 동시.
천국 가는 길 천국 가는 길 ♧ 천국 가는 길 ♧ 1. 죄와 사망(지옥) 1) 사람의 3가지 공통점 - 죄인, 죽음, 심판
03. 병행 프로세스(Parallel Process)
인터럽트 발생원인 정전 혹은 데이터 전송 과정에서 오류 발생 등 컴퓨터 자체의 기계적인 문제 발생
차세대 뱅킹시스템 프로젝트의 DBMS 튜닝 이슈 극복 사례
Concurrency: Mutual Exclusion and Synchronization (상호배제와 동기화)
11장 다형성과 추상 클래스, 인터페이스 Section 1 객체의 형 변환 Section 2 연산자 Section 3 다형성
DataScience Lab. 박사과정 김희찬 (화)
Concurrency: Deadlock and Starvation
병행 프로세스(Parallel Process)
3장 병행 프로세스 2A 박훈.
Chapter 7: Deadlocks.
3장 – 병행 프로세스 A 김정문.
Report #3- 문제 1 Set(집합) 추상 데이터 타입을 정의하고, 다음과 같은 연산자들을 포함시켜라. 여기서 S, S1, S2는 집합을 나타내고, i는 집합 원소를 나타낸다. 연산 의미 create() Return {} insert(S, i) If i є S then.
Presentation transcript:

3장 운영체제 2C200512116 김주성

병행 프로세스 정의 병행 프로세스 개요 병행 프로세스란 여러 프로세스들이 동시에 수행상태에 있는 것을 말하며 독립적 또는 다른 프로세스와 협력하면서 기능을 수행한다. 비동기성(Asynchronous)란 프로세스간의 상호협력 하는 것 병행 프로세스의 비동기성으로 인해 발생하는 문제점 상호배제(Mutual Exclusion) 동기화(synchronization) 결정적인(Determinacy) 문제 통신(Communication) 문제 교착상태(Dead Lock)

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

선형 그래프 S1 S2 S3 S4 S6 S5 S7

상호배제(Mutual Exclusion) 상호배제란 여러 프로세스가 하나의 공유 데이터를 액세스 하면서 작업이 수행될 때 한 프로세스가 그 데이터를 액세스 할 때 다른 프로세스는 그 데이터를 액세스하지 못하도록 하는 기법. 임계 영역(Critical Section) 임계 영역이란 공유메모리가 참조하는 프로그램의 부분을 말한다. 즉, 어떤 프로세스가 공유 데이터를 액세스 할 때 그 프로세스는 임계영역 내에 있다고 말한다. 상호배제 기법 소프트 웨어 적인 상호배제 기법 2개 프로세스 대상: Dekker 알고리즘, Peterson 알고리즘 n개 프로세스 대상: Dijstra 알고리즘, Knuth 알고리즘 & Mcguire 알고리즘, Lamport 알고리즘

순환 반복대기(Busy Waiting) 기법 하드웨어적인 상호배제 기법 Test and Set 명령어 Swap 명령어 순환 반복대기(Busy Waiting) 기법 세마포어(Semaphore) Eventcount/Sequencer(시크 벤저) 상호배제 기법(Dekker의 알고리즘) 2개의 프로세스가 모두 자신의 flag[]값을 true로 설정하고 임계영역에 진입하는 경우 그 당시의 turn 값에 따라 진입순서를 결정한다.(P0=turn ←1;, P1=turn←0;) 그리고 한 프로세서가 임계 영역에 진입하기 위해서는 반드시 상대방 프로세스의 flag[]값이false 인지 확인 요

상호배제 기법(Peterson의 알고리즘) Dekker 알고리즘을 보완하여 1981년에 피터슨에 의해 제안 프로세스 P0는 turn의 값을 1로, P1은 turn 값을 0으로 설정 한다. 그 뒤에 while 루프에 진입하여 상대 프로세스가 진입을 시도하는지 여부를 검사하여, 이 때 2개의 프로세스가 모두 진입을 시도한다면 flag[0]와 flag[1]의 값이 모두 true이면 true 값에 따라 turn이 가리키는 순서의 프로세스가 임계영역에 진입 한다. 즉, turn의 값을 먼저 설정한 프로세서가 임계영역에 진입.

상호배제 프리미티브 1 프로세스가 상호배제를 수행하는 것을 해결 하려한 첫 번째 예. parbegin/parend 때문에 pone과 ptwo가 동시에 수행됨. 두 프로세스들은 무한순환을 하는데 계속해서 임계영역을 들어갔다 나왔다 하는 일을 반복함. while loop이 상호배제로 들어가는 것으로 구현되었는데, pnumbe r라는 변수가 자기 프로세스의 번호와 같아 지기 까지 계속 loop을 돌며 기다림. 상호배제 탈출은 pnumber라는 변수를 상대방 프로세스의 번호로치환시키게 끔 구현되었음. pone이 while do문을 수행하게 되면 pnumber의 초기치가 1이므로 pone이 임계영역에 진입한다. ptwo는 pnumber가 1인 것을 확인하고는 while do 순환을 계속한다. ptwo가 CPU에 돌아갈 때는 pnumber가 2로 되는 것을 기다리며 loop을 반복하게 된다. 따라서 ptwo는 임계영역에 들어가지 못하고 상호배제는 보장됨.

상호배제 프리미티브 2 2개의 변수 사용 예. p1변수는 pone이 임계영역에 있을 때 참(True)이 되고, p2변수는 ptwo가 임계영역에 있을 때 참(True)이 됨. p2가 참(True)일 동안 pone은 busy wait를 하게 됨. 언젠가는 ptwo가 임계영역을 벗어나게 되고 그때 p2를 거짓(False)으로 한다. 그때에 pone은 p1을 참(True)으로 하고 임계영역으로 들어간다. p1이 참(True)일 동안 ptwo는 임계영역에 들어갈 수 없음 . p1과 p2의 초기치가 모두 거짓(false)으로 되어있음. 따라서 2개의 프로세스가 동시에 임계영역에 들어가게 되어 상호배제가 보장되지 않음.

다익스트라 (Dijkstra) Flag[] 변수 값. 이 알고리즘의 임계영역 진입시도 1단계에서는해당 프로세스 flag[] 값을 want-in으로 설정하고turn의 값이 i와 같을 때 제2단계로 진입한다. 2단계에서 이와 같이 제 1 단계를 통과한 프로세스 들의 수를 파악하여 그 수가 2 이상이면 임계영역 진입시도를 처음부터 다시 한다. 즉, 자신외도 제 1단계를 통과한 프로세서들이 있으면 임계영역 진입시도를 처음부터 다시 시작한다.

다익스트라 (Dijkstra) Flag[] 변수 값. 이 알고리즘의 임계영역 진입시도 1단계에서는해당 프로세스 flag[] 값을 want-in으로 설정하고turn의 값이 i와 같을 때 제2단계로 진입한다. 2단계에서 이와 같이 제 1 단계를 통과한 프로세스 들의 수를 파악하여 그 수가 2 이상이면 임계영역 진입시도를 처음부터 다시 한다. 즉, 자신외도 제 1단계를 통과한 프로세서들이 있으면 임계영역 진입시도를 처음부터 다시 시작한다.

하드 웨어 적인 상호배제 기법 Test and set 알고리즘의 방법 Dekker, Peterson, Dijstra 알고리즘은 소프트웨어적인 상호배제 해결방법으로 실행시간이 길며, 프리미티브(Primitives)의 실행 중 블록 될 가능성이 있는 문제점이 있다. 이를 해결하기 위해 하드웨어적인 상호배제 해결 방법으로 IBM에서 제안한 Test and set 명령어가 있다. Test and set 알고리즘의 방법 먼저 변수를 읽고 그것의 값을 저장 영역(Save Area)에 기억시킨 후 그 변수에 다른 값을 Set시키는 방법이다. 임계구역 진입, 해제 전후에 다른 프로세스가 개입할 수 없게 만든다. 즉 아예 인터럽트를 걸지 못하게 한다. 다른 프로세스 개입 불가.

모니터 Dekker, Perterson, Dijkstra, Test and set 명령어, 세마포어 등에 의한 기법들은 저 수준의 기법들로 너무 기초적이고, 복잡한 병행성문제에 대한 해답을 표현하기 어렵다. 또한 코딩이 어려워질 수 있고, 디버깅이나 정확성 증명에 어려움 단점이 있다. 이러한 단점을 보완한 것이 수준 병 행성 제어 구조인 모니터 가 제안 되었다. 모니터란 여러 프로세스 사이에 공유 데이터와 이 공유 데이터에 접근하는 여러 프로시져(Procedure)이다. 즉, 임계영역 코드들의 집합으로 정의 한다. 프로시져(Procedure)란 자주 실행해야 하는 업무 흐름을 이 문법에 미리 작성하여 데이터베이스 내에 저장해 두었다가 필요할 때마다 호출하여 실행할 수 있는 PL/SQL 블록. PL/SQL 은 APPLICATION LOGIC 을 추가하여 SQL 을 확장한 ORACLE의 절차 적인 언어.

프로세스 동기화 Critical Section(임계 영역)에 대해서 프로세스들이 어떠한 순서로 작업을 수행하더라도 올바른 결과를 기대할 수 있도록 하는 데이터의 정확성(correctness)과 데이터의 일관성(consistency)을 보장. 메시지 송신 측 프로세스와 수신 측 프로세스간에 교환될 수 있는 정보의 집합으로써 둘 or 그 이상의 프로세스 간에 전송될 데이터 또는 실행명령 등을 의미.