운영체제 3주차 정리 200512015 박 남 규.

Slides:



Advertisements
Similar presentations
프로그램이란 프로그램 생성 과정 프로젝트 생성 프로그램 실행 컴퓨터를 사용하는 이유는 무엇인가 ? – 주어진 문제를 쉽고, 빠르게 해결하기 위해서 사용한다. 컴퓨터를 사용한다는 것은 ? – 컴퓨터에 설치 혹은 저장된 프로그램을 사용하는 것이다. 문제를 해결하기 위한.
Advertisements

A 장형태.  병행프로세스 개요  상호배제 (Mutual Exclusion)  상호배제 ( 세마포어 )  모니터 (monitor)  프로세스간 2 가지 통신방법.
컴퓨터와 인터넷.
운영체제 Chapter 3 병형 프로세스 박요안.
2장. 프로그램의 기본 구성. 2장. 프로그램의 기본 구성 2-1"Hello, World!" 들여다 보기 /* Hello.c */ #include int main(void) { printf("Hello, World! \n"); return 0;
Ⅰ. 클라이언트 스크립트 Ⅱ. 서버 스크립트 그렇다면 프로그래밍 언어를 수행하는 컴퓨터의 개념적인 구조를 살펴 본다면, 프로그래밍 언어가 무엇인지 이해하는데 도움이 될 것입니다. 현재 컴퓨터 구조의 모태가 되고 있는 폰 노이만 구조는 그림에서 보는 것과 같이, 명령어와.
제14장 동적 메모리.
MS-Access의 개요 1강 MOS Access 2003 CORE 학습내용 액세스 응용 프로그램은 유용한 데이터를
인공지능실험실 석사 2학기 이희재 TCP/IP Socket Programming… 제 11장 프로세스간 통신 인공지능실험실 석사 2학기 이희재
Java로 배우는 디자인패턴 입문 Chapter 5. Singleton 단 하나의 인스턴스
1장. 이것이 C 언어다.. 1장. 이것이 C 언어다. 프로그래밍 언어 1-1 C 언어의 개론적 이야기 한글, 엑셀, 게임 등의 프로그램을 만들 때 사용하는 언어 ‘컴퓨터 프로그래머’라는 사람들이 제작 C 언어(C++ 포함)를 가장 많이 사용함.
제 9 장 구조체와 공용체.
컴퓨터 프로그래밍 기초 [Final] 기말고사
운영체제 4장 요약정리(CPU 스케줄링) 2A 박훈.
시스템집적반도체 설계 검증 환경과 기법 Ch 7.
Linux서버를 이용한 채팅프로그램 지도 교수님 : 이형원 교수님 이 름 : 이 은 영 학 번 :
제 3장. C보다 나은 C++ II.
07. 디바이스 드라이버의 초기화와 종료 김진홍
11장. 포인터 01_ 포인터의 기본 02_ 포인터와 Const.
컴퓨터 프로그래밍 기초 #02 : printf(), scanf()
Error Detection and Correction
13 인덱스 인덱스의 개념 인덱스의 구조 인덱스의 효율적인 사용 방법 인덱스의 종류 및 생성 방법 인덱스 실행 경로 확인
                              데이터베이스 프로그래밍 (소프트웨어 개발 트랙)                               퍼스널 오라클 9i 인스톨.
03. 병행 프로세스 (Parallel Process)
13 인덱스 인덱스의 개념 인덱스의 구조 인덱스의 효율적인 사용 방법 인덱스의 종류 및 생성 방법 인덱스 실행 경로 확인
Method & library.
사용자 함수 사용하기 함수 함수 정의 프로그램에서 특정한 기능을 수행하도록 만든 하나의 단위 작업
프로그래밍 개요
어서와 C언어는 처음이지 제14장.
Chap 6.Assembler 유건우.
자료구조: CHAP 7 트리 –review 순천향대학교 컴퓨터공학과 하 상 호.
메모리 관리 & 동적 할당.
Readers & Writers 운영체제 7조 배 영 빈( ) 서 준 교( )
2장. 데이터베이스 관리 시스템 데이터베이스 관리 시스템의 등장 배경 데이터베이스 관리 시스템의 정의
병행 프로세스 이나현.
Lesson 2. 기본 데이터형.
Chapter6 : JVM과 메모리 6.1 JVM의 구조와 메모리 모델 6.2 프로그램 실행과 메모리 6.3 객체생성과 메모리
USN(Ubiquitous Sensor Network)
자바 5.0 프로그래밍.
DK-128 실습 내부 EEPROM 제어 아이티즌 기술연구소 김태성 연구원
School of Electronics and Information. Kyung Hee University.
컴퓨터 프로그래밍 기초 - 10th : 포인터 및 구조체 -
2장. 변수와 타입.
보고서 (due 5/8) 다음과 같은 방식으로 문제를 해결하시오. 문제 분석 알고리즘 작성 프로그램 작성 테스트 및 검증
Part 4 클래스 라이브러리 Chapter 10 : 다중 스레드 Chapter 11 : 패키지와 주요 클래스
ARM Development Suite v1.2
컴퓨터 프로그래밍 기초 - 8th : 함수와 변수 / 배열 -
보고서 #7 (기한: 6/2) 2개의 스택, stk1, stk2를 이용하여 큐를 구현하라.
데이터 베이스 DB2 관계형 데이터 모델 권준영.
( Windows Service Application Debugging )
병행프로세스의개요 주세호.
알고리즘 알고리즘이란 무엇인가?.
디버깅 관련 옵션 실습해보기 발표 : 2008년 5월 19일 2분반 정 훈 승
DK-128 직렬통신 실습 아이티즌 기술연구소
AT MEGA 128 기초와 응용 I 기본적인 구조.
Homework #12 (1/2) 프로그램을 작성하고, 프로그램과 실행 결과를 프린트하여 제출한다.
병행 프로세스 병행처리는 프로세스들이 서로 관계없이 독립적으 로 수행 가능하고 다른 프로세스들과 협력을 필요로 하면서 기능 수행 3.1 개요 parbegin/parend 제어문 : 순차적인 수행으로부터 여러 개의 동시 수행으로 갈라짐을 지시하는 명령어와 여러 개의 동시.
논리회로 설계 및 실험 4주차.
발표자 : 이지연 Programming Systems Lab.
3.2 분기 명령어.
06. 디바이스의 등록과 해제 김진홍
1장 C 언어의 개요 C 언어의 역사와 기원 C 언어의 특징 프로그램 과정 C 프로그램 구조 C 프로그램 예제.
1. 지역변수와 전역변수 2. auto, register 3. static,extern 4. 도움말 사용법
 6장. SQL 쿼리.
CODE INJECTION 시스템B 김한슬.
버스와 메모리 전송 버스 시스템 레지스터와 레지스터들 사이의 정보 전송을 위한 경로
교착 상태 해결 : 교착 상태 탐지 교착 상태 탐지(Deadlock Detection)
병행 프로세스(Parallel Process)
2. 프로세스 B 안우진 - 운영체제 -.
Ⅰ. 데이터베이스 정의 Ⅱ. MS SQL 서버 Ⅲ. 데이터베이스 인터페이스
Presentation transcript:

운영체제 3주차 정리 200512015 박 남 규

병행 프로세스란? 병행 프로세스(Concurrent Process)는 두 개 이상의 프로세스들이 동시에 존재하며 실행 상태에 있는 것을 의미한다. A. 여러 프로세스들이 독립적으로 실행되는 것을 독립적 병행 프로세스, 서로 협력하며 동시에 실행되는 것을 협동적 병행 프로세스라고 한다. B. 병행 프로세스는 다중 처리 시스템이나 분산 처리 시스템에서 중요한 개념으로 사용된다. 비동기성 : 프로세스간의 상호협력 하는 것 비동기성으로 인해 발생한 문제점 <상호배제, 동기화, 결정적인 문제, 통신문제, 교착상태>

병행 프로세스 예제 노드 Si에서 노드Sj로 가는 에지(edge)는 문장 Si가 완전히 수행된 다음에 문장 Sj가 수행됨을 의미함. S2와 S3은 S1이 끝난 후 수행됨. S4는 S2가 끝난 후 수행됨. S5와 S6은 S4가 끝난 후 수행됨. S7은 S5, S6, S3가 끝난 후 수행됨.

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

상호배제 기법이란? 1. 병행 프로세스는 하나의 자원을 차지하기 위해 서로 경쟁관계에 있을 수 있으므로 자원을 순서 있게 할당하는 방법이 필요하다. 2. 어떤 프로세스가 공유자원을 액세스할 때 한 순간에 하나의 프로세스만 공유자원을 변경할 수 있도록 하는 기법으로, 한 프로세스가 공유자원을 사용하는 동안, 다른 프로세스가 이미 할당된 자원을 요구한 프로세스는 자원이 해제되기까지 기다려야 한다. 이 상황을 상호배제라고 한다. 3. 하나의 프로세스가 공유자원을 변경하는 코드를 실행하고 있을 때, 그 프로세스는 임계영역에 있다고 할 수 있다. 4. 어떤 프로세스가 임계영역에 실행되고 있을 때에는 다른 프로세스가 임계영역에 들어가지 못하게 하는 것을 상호배제라 한다. ※상호배제를 해결하기 위한 방법 (1) 소프트웨어적 해결 : Decker 알고리즘, Peterson 알고리즘, Bakery 알고리즘 (2) 하드웨어적인 해결 : 인터럽트 enable/disable, test and set 명령어, compare and swap 명령어

♧ Test and Set 방법 사용하려는 자원이 사용 가능한지 공용 불변수를 검사한 후 사용이 가능하면 불변수값을 변경하여 다른 프로세스의 접근을 방지하고 사용한다. 자원 사용이 끝나면 불변수값을 원 위치시켜서 다른 프로세스의 사용을 허가한다.

임계구역 ▪다중 프로그래밍 운영체제에서 여러 개의 프로세스가 공유하는 데이터 및 자원에 대하여 어느 한 시점에서는 하나의 프로세스만 자원 또는 데이터를 사용하도록 지정된 공유 자원(영역). ▪임계 구역에는 하나의 프로세스만 접근할 수 있으며, 해당 프로세스가 자원을 반납한 후에만 다른 프로세스가 자원이나 데이터를 사용할 수 있음.

임계구역 예 옆에 그림과 같이 프로세스 P1이 공유 데이터 Pdata를 엑세스하면 P2는 액세스 하지 못하게 해야 한다.

세마포어란? 동기화를 위한 방법으로 제공되는 것으로 프로세스간에 중요한 데이터를 접근하는데 있어서 서로 접근 순서를 정하는 방법이다. 세마포어의 종류는 크게 3가지 있는데 counting 세마포어는 초기에 신호가 들어온 상태에서 동기화중인 thread 개수를 뺀 값을 초기값으로 하는 것을 말한다. 나머지 2개는 blocking 세마포어, binary 세마포어가 있는데 blocking 세마포어는 초기값이 0인 것을 이야기 하며, binary 세마포어는 1로 초기화 된 세마포어를 말한다. ※ blocking 세마포어는 thread serialization, binary 세마포어는 한정된 resource 사용시에 많이 사용된다. 또한 inverse 세마포어란 것도 있는데 단지 신호상태가 뒤바뀐 것을 의미한다.

세마포어 방법 Dijkstra에 의해 고안된 방법으로 세마포어라 불리는 정수 변수의 값을 이용해 상호배제 문제와 동기화 문제를 해결할 수 있다. 운영체제의 자원을 경쟁적으로 사용하는 다중 프로세스에서 행동을 조정하거나 도는 동기화시키는 기술로, 공유된 자원의 접근 시 프로세스간의 통신기법이다. 소프트웨어적 해결 방법이다. 세마포어 변수는 정수값을 가지는 카운트 세마포와 0과 1값만 갖는 이진 세마포어로 구분된다. 하나의 프로세스 세마포어 값을 변경 중일 때 다른 프로세스들은 대기해야 함. 세마포어 변수는 표준 연산인 P(Wait)연산과 V(Signal)연산에 의해서만 변경이 가능하다. P연산과 V연산은 분리될 수 없는 원자적 연산으로 인터럽트 되어서는 안 된다.

Monitor & Procedure ? 모니터란 여러 프로세스 사이에 공유 데이터와 이 공유 데이터에 접근하는 여러 프로시져(Procedure)이다. 즉, 임계영역 코드들의 집합으로 정의 한다. 프로시져(Procedure)란 자주 실행해야 하는 업무 흐름을 이 문법에 미리 작성하여 데이터베이스 내에 저장해 두었다가 필요할 때마다 호출하여 실행할 수 있는 PL/SQL 블록이다. PL/SQL 은 APPLICATION LOGIC 을 추가하여 SQL 을 확장한 ORACLE의 절차적인 언어입니다.

모니터(Monitor) 방법 모니터는 공유자원을 프로세스에게 할당하는데 필요한 데이터와 프로시저의 집합으로 이루어지는 병행성 고급 구조체이다. 상호배제와 동기화를 동시에 지원하는 프로그램 기법이다. 모니터 내의 공유 데이터는 모니터 내부의 프로시저에 의해서만 액세스가 가능하므로 모니터 외부의 프로세스는 모니터 내부 데이터를 직접 액세스할 수 없으며 이를 정보은닉 개념이라고 한다.

프로세스간 2가지 통신 방법 (1) 공유메모리 변수 시스템 송수신 프로세스가 공동으로 접근 가능한 메모리 공간을 할당 하며 공유변수를 이용하여 정보를 교환 한다. → 운영체제는 메모리만 제공하고 통신기능은 응용프로그래머 에게 주어진다. (2) 메시지 시스템 프로세스들이 메시지를 이용하여 정보를 교환하며, 통신 기능을 제공하는 책임이 운영체제에게 주어 진다. → 큐)Queue)의 기본원리를 이용하여 송수신 프로세스가 정보 를 메시지 큐를 통해 전달.

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