병행프로세스의개요 200605077 주세호.

Slides:



Advertisements
Similar presentations
A 장형태.  병행프로세스 개요  상호배제 (Mutual Exclusion)  상호배제 ( 세마포어 )  모니터 (monitor)  프로세스간 2 가지 통신방법.
Advertisements

컴퓨터와 인터넷.
UNIX 운영 체제의 설계 - Chapter 4. 파일의 내부 표현
운영체제 Chapter 3 병형 프로세스 박요안.
운영체제 3주차 정리 박 남 규.
네트워크 기술을 통한 현재와 미래 소개.
2장. 프로그램의 기본 구성. 2장. 프로그램의 기본 구성 2-1"Hello, World!" 들여다 보기 /* Hello.c */ #include int main(void) { printf("Hello, World! \n"); return 0;
MS-Access의 개요 1강 MOS Access 2003 CORE 학습내용 액세스 응용 프로그램은 유용한 데이터를
인공지능실험실 석사 2학기 이희재 TCP/IP Socket Programming… 제 11장 프로세스간 통신 인공지능실험실 석사 2학기 이희재
1. Windows Server 2003의 역사 개인용 Windows의 발전 과정
Report #2 - Solution 문제 #1: 다음과 같이 프로그램을 작성하라.
컴퓨터 프로그래밍 기초 [Final] 기말고사
제7강 학습 내용 주소지정 방식의 예 값 즉시 지정 방식과 실행 예 레지스터 직접지정 방식 메모리 직접지정 방식과 실행 예
보고서 #7 (기한: 6/2) 2개의 스택, stk1, stk2를 이용하여 큐를 구현하라.
운영체제 4장 요약정리(CPU 스케줄링) 2A 박훈.
Windows Server 장. 사고를 대비한 데이터 백업.
윤성우의 열혈 C 프로그래밍 윤성우 저 열혈강의 C 프로그래밍 개정판 Chapter 12. 포인터의 이해.
테이블 : 데이터베이스를 구성하는 요소로 같은 성격에 정보의 집합체. 레코드 : 하나의 정보를 가지고 있는 컬럼의 집합체
UNIT 07 Memory Map 로봇 SW 교육원 조용수.
Linux서버를 이용한 채팅프로그램 지도 교수님 : 이형원 교수님 이 름 : 이 은 영 학 번 :
07. 디바이스 드라이버의 초기화와 종료 김진홍
11장. 포인터 01_ 포인터의 기본 02_ 포인터와 Const.
SqlParameter 클래스 선문 비트 18기 발표자 : 박성한.
컴퓨터 프로그래밍 기초 #02 : printf(), scanf()
컴퓨터과학 전공탐색 배상원.
NJM Messenger 박상원 박연호.
                              데이터베이스 프로그래밍 (소프트웨어 개발 트랙)                               퍼스널 오라클 9i 인스톨.
메시지 큐[5] – test1.c 메시지 제어: msgctl(2) #include <sys/msg.h>
10 장 데이터 링크 제어(Data Link Control)
뇌를 자극하는 Windows Server 장. 장애 조치 클러스터.
03. 병행 프로세스 (Parallel Process)
1장. 데이터베이스 자료의 조직적 집합체_데이터베이스 시스템의 이해
자바 5.0 프로그래밍.
프로그래밍 개요
Chap 6.Assembler 유건우.
UNIT 07 Memory Map 로봇 SW 교육원 조용수.
메모리 관리 & 동적 할당.
2장. 데이터베이스 관리 시스템 데이터베이스 관리 시스템의 등장 배경 데이터베이스 관리 시스템의 정의
병행 프로세스 이나현.
3장 운영체제 2C 김주성.
뇌를 자극하는 Windows Server 2012 R2
USN(Ubiquitous Sensor Network)
자바 5.0 프로그래밍.
School of Electronics and Information. Kyung Hee University.
컴퓨터 프로그래밍 기초 - 10th : 포인터 및 구조체 -
2장. 변수와 타입.
Part 4 클래스 라이브러리 Chapter 10 : 다중 스레드 Chapter 11 : 패키지와 주요 클래스
ARM Development Suite v1.2
컴퓨터 프로그래밍 기초 - 8th : 함수와 변수 / 배열 -
-네트워크 관리 개요 및 SNMP 프로토콜 동작과정
메모리 타입 분석을 통한 안전하고 효율적인 메모리 재사용
10 장 데이터 링크 제어(Data Link Control)
10 장 데이터 링크 제어(Data Link Control)
보고서 #7 (기한: 6/2) 2개의 스택, stk1, stk2를 이용하여 큐를 구현하라.
네트워크 환경 구축과 이미지 전송 호스트/타겟 통신 직렬 통신을 이용한 이미지 전송 수퍼 데몬 BOOTP 환경 구축
( Windows Service Application Debugging )
알고리즘 알고리즘이란 무엇인가?.
AT MEGA 128 기초와 응용 I 기본적인 구조.
병행 프로세스 병행처리는 프로세스들이 서로 관계없이 독립적으 로 수행 가능하고 다른 프로세스들과 협력을 필요로 하면서 기능 수행 3.1 개요 parbegin/parend 제어문 : 순차적인 수행으로부터 여러 개의 동시 수행으로 갈라짐을 지시하는 명령어와 여러 개의 동시.
발표자 : 이지연 Programming Systems Lab.
System Security Operating System.
06. 디바이스의 등록과 해제 김진홍
1장 C 언어의 개요 C 언어의 역사와 기원 C 언어의 특징 프로그램 과정 C 프로그램 구조 C 프로그램 예제.
CHAP 15. 데이터 스토리지.
상속 (Inheritance) private 전용부분 전용부분 공용부분 공용부분 public 기본 클래스
교착 상태 해결 : 교착 상태 탐지 교착 상태 탐지(Deadlock Detection)
병행 프로세스(Parallel Process)
2. 프로세스 B 안우진 - 운영체제 -.
3장 – 병행 프로세스 A 김정문.
교과서 78쪽 학습 목표 정보 관리의 필요성을 이해할 수 있다. 데이터베이스의 개념과 필요성을 이해할 수 있다.
Presentation transcript:

병행프로세스의개요 200605077 주세호

병행 프로세스란? 비동기성(Asynchronous) - 프로세스간의 상호협력 하는것 여러 프로세스들이 동시에 수행상태에 있는 것을 말하며 독립적 또는 다른 프 로세스와 협력하면서 기능을 수행한다. 비동기성(Asynchronous) - 프로세스간의 상호협력 하는것 병행 프로세스의 비동기성으로 인해 발생하는 문제점 상호배제(Mutual Exclusion),동기화(synchronization),결정적인 (Determinacy) 문제,통신(Communication) 문제,교착상태(Dead Lock) 상호 배제란(Mutual Exclusiotn)? 여러 프로세스가 하나의 공유 데이터를 액세스 하면서 작업이 수행될 때 한 프 로세스가 그 데이터를 액세스 할 때 다른 프로세스는 그 데이터를 액세를 못하 도록 하는 기법 임계영역 이란(Critical Section)? 임계 영역이란 공유메모리가 참조하는 프로그램의 부분을 말한다.즉, 어떤 프 로세스가 공유 데이터를 액세스 할 때 그 프로세스는 임계영역 내에 있다고 말 한다.

공유 데이터의 접근 프로세스 P2 주 기억장치 Pdata . Pdata←pdata+1; . Pdata←pdata+1; Pdata 공유 데이터의 접근 . Pdata←pdata+1; . Pdata←pdata+1; 프로세스 P1 프로세스 P2 주 기억장치 상호 배제 기법 소프트 웨어적인 상호배제 기법 - 2개 프로세스 대상: Dekker 알고리즘, Peterson 알고리즘 - n개 프로세스 대상: Dijstra 알고리즘, Knuth 알고리즘 & Mcguire 알고리즘, Lamport 알고리즘 하드웨어적인 상호배제 기법 - Test and Set 명령어 - Swap 명령어 순환 반복대기(Busy Waiting) 기법 - 세마포어(Semaphore) - Eventcount/Sequencer(시크벤저)

N개 프로세스 상호 배제 기법 다익스트라(Dijkstra) Flag[] 변수 값 하드 웨어 적인 상호배제 기법 쿤즈(Knuth) - 무기한 연기의 가능성을 제거 하였지만 지연 시간이 매우 크다 아이젠버그(Eisenberg) - 유한 시간내의 시도 후 임계영역 진입을 보장 한다. 람포트(Lamport) - 분산 시스템 환경을 위한 상호 배제 기법이다. 다익스트라(Dijkstra) Flag[] 변수 값 Flag[ ] 값 의 미 Idle 프로세스가 임계영역을 진입을 시도하지 않을 때 Want-in 프로세스의 임계영역을 진입을 시도 1단계일 때 In-CS 프로세스의 임계영역을 진입 시도 2단계 및 임계영역 내에 있을 때 하드 웨어 적인 상호배제 기법 Dekker, Peterson, Dijstra 알고리즘은 소프트웨어적인 상호배제 해결방법 으로 실행시간이 길며, 프리미티브(Primitives)의 실행 중 블록 될 가능성이 있는 문제점이 있다. 이를 해결하기 위해 하드웨어적인 상호배제 해결 방법 으로 IBM에서 제안한 Test and set 명령어가 있다.

Test and set 알고리즘? 프로세스 Pi 는 임계 영역에 다른 프로세스가 없을 때(active= false) 이 값을 flag[i]로 복사 하면서 동시에 active 값을 true로 설정하고 임계 영역에 진입 한다. - 지금 까지 언급한 소프트웨어, 하드웨어적 상호배제 해결 방법은 모드 순환 반복 대기 (busy waiting)이라는 특성으로 인해 비효율적임 이러한 순환 반복 대기를 방지하는 상호배제 기법들로는 세머포어(semaphore) 사용 기법, sequencer/eventcount 사용 기법 등이 있다.(대기 상태로 전이 시킴) 상호배제 기법? -1965년 Dijkstra가 상호배제를 위한 enterCS( ) 프리미티브(Primitives)에서 존재하던 순환 반복되기 문제를 해결하기 위해 세마포어라는 개념을 제안했다. 세머포어는 P와, V, 초기화 연산에 의해서만 접근 가능한 통제된 변수이다. 종류? - 이진 세마포어 : 상호배제 또는 프로세스 동기화 목적으로 사용 - 카운팅 세마포어 : 프로세스간에 통신 등을 해결하기 위해 사용

정의 모니터란? If(s>0) Then s←s-1; Else wait on the queue Qs; 여기서 S는 0과 1를 값을 가지는 이진 세마포어 변수를 의미한다. - S가 0 보 다 크면 S를 감소 시킨다. 그리고 S가 0이라면 프로세스를 중단 시킨다. If (E(뒤집힌E) waiting processes on Qs) Then wakeup one of them; Else S←S+1; 중단된 다른 프로세스의 수행을 재개 시킨다. 중단된 프로세스가 없다면 S를 증가 시킨다. 모니터란? 여러 프로세스 사이에 공유 데이터와 이 공유 데이터에 접근하는 여러 프로시 져(Procedure)이다. 즉, 임계영역 코드들의 집합으로 정의 한다. 프로시져(Procedure)란 ? 자주 실행해야 하는 업무 흐름을 이 문법에 미리작성하여 데이터베이스 내에 저장해 두었다가 필요할 때마다 호출하여 실행할 수 있는 PL/SQL 블록이다.

모니터의 기능 모니터에 프로시져가 몇 개 있는지에 따라 그 개수만큼 모니터 진입 큐 (entry queue)가 존재 한다. 모니터 내의 프로시져를 호출하는 프로세스는 해당 프로시져에 대한 진입 큐를 통 해 모니터 내로 진입하며 그 과정에서 이미 모니터 내에 진입해 있는 프로세스가 존재하는 경우 진입 큐에 대기한다. 즉, 모니터 내에는 항상 하나 이하의 프로세 스만이 진입하도록 상호 배제 메커니즘이 자동으로 보장한다. 프로세스간 2가지 통신 방법 공유메모리 변수 시스템 -송수신 프로세스가 공동으로 접근 가능한 메모리 공간을 할당하며 공유변수를 이 용하여 정보를 교환 한다. → 운영체제는 메모리만 제공하고 통신기능은 응용프로그래머에게 주어진다. 메시지 시스템 -프로세스들이 메시지를 이용하여 정보를 교환하며, 통신 기능을 제공하는 책임이 운영체제에게 주어 진다. → 큐)Queue)의 기본원리를 이용하여 송수신 프로세스가 정보 를 메시지 큐를 통해 전달.

통신방법의 예 중앙 집중식 시스템 -공유변수를 이용하여 통신하며, 세마포오어 같은 메커니즘을 이용하여 동기 화 및 상호배제의 문제를 해결. 분산 처리 시스템 -통신 네트워크를 통한 메시지 전달을 이용하여 동기화를 할 수 있다. 메시지 전달 방법 분산처리 시스템에 적합하며 비교적 안정된 메시지 전달을 이용한 동기화 (Synchronization) 문제 해결 방법이다. -많은 다중 프로그래밍 운영체제들이 몇 가지 종류의 프로세스 간 통신을 지 원하기 위해 사용. 프로세스 동기화(Synchronization)란? -Critical Section(임계 영역)에 대해서 프로세스들이 어떠한 순서로 작업을 수 행하더라도 올바른 결과를 기대할 수 있도록 하는 데이터의 정확성 (correctness)과 데이터의 일관성(consistency)을 보장하는 것. 메시지 란? -송신측 프로세스와 수신측 프로세스간에 교환될 수 있는 정보의 집합으로써 둘 or 그 이상의 프로세스 간에 전송될 데이터 또는실행명령 등을 의미 한다.