운영체제 프로세스
본 자료는 3페이지 의 미리보기를 제공합니다. 이미지를 클릭하여 주세요.
닫기
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
해당 자료는 3페이지 까지만 미리보기를 제공합니다.
3페이지 이후부터 다운로드 후 확인할 수 있습니다.

목차

1. 프로세스 개념

2. 병행(concurrent)프로세스 / 프로세스 관계

3. 프로세스 상태

4. 문맥 교환(context switching)

5. 프로세스제어블럭(PCB:Process Control Block)

6. 프로세스에서의 연산

7. 스케쥴링 단계(3단계)

8. 교착상태(Deadlock)

9. 병행프로세스

본문내용

자원을 요구하기 때문에 환형대기가 발생할 수 없다.
- 단점 : ① 자원은 반드시 고유번호순으로 요구해야 한다.
→ 새로운 자원 추가시 기존 프로그램과 시스템을 다시 고쳐야한다.
② 번호부여시 작업이 자원을 사용하는 순서를 반영 → 자원 낭비의 초래
③ 순서배정법은 편리하게 사용하는데 지장을 줄 수 있다.
나. 교착상태 회피(deadlock aviodance)
사전정보를 가지고 교착상태가 발생하지 않도록 알고리즘을 처리하는 방법을 "교착상태 회피"라고 한다.
안정상태(safe state): 전체자원의 상황이 작업을 완료할 수 있는 상태
불안전 상태 : 교착상태가 일어날 수 있는 상태.
프로세스가 자원을 요청할 때 그 자원이 가용상태라고 하더라도 프로세스는 대기상태가 될 수 있다.
다. 교착상태 탐지(deadlock detectionb)
교착상태가 일어났는지를 실제로 결정하고 교착상태에 관계된 프로세스와 자원을 규명하는 과정.
- 자원할당 그래프를 이용하여 탐지한다.
(1) 자원할당 그래프를 그린다.
(2) cycle 상태를 확인한다. ( 생성 : 교착상태의 가능 )
(3) cycle이 생성되었다면 해결될 수 있는지 없는지를 확인한다.
라. 교착상태 복구(recovery from deadlock)
조작자에게 교착상태가 발생했음을 알려주어서 직접 수작업으로 처리 하도록 하는 것.
시스템으로 하여금 교착상태를 자동적으로 복구하도록 하는것.
★ 환형대기를 없애기 위해 프로세스들을 선점시키는 방법
- 모든 교착상태 프로세스들을 종료하는 것 : 이것은 교착 상태 사이클을 분해시키지만 많은 비용이 소요된다.
- 교착상태 사이클이 제거될 때까지 하나씩 프로세스를 종료하는 것 : 상당한 오버헤드를 요구한다.
★ 교착상태에 있는 하나 이상의 프로세스들로부터 몇 개의 자원 선점(resource preemption) 시키는 것.
* 자원선점을 이용하여 교착상태를 제거하기 위해서는 프로세스로부터자원들을 단계적으로 선점시켜야 하며, 이들 자원들을 교착상태 사이클이 없어질 때까지 다른 프로세스들에게 할당해야한다.
1) 희생자선택
- 프로세스가 종료상태에 있게 되면 비용을 최소화하기 위해 선점의 순서를 결정해야한다
2) 복귀(rollback)
- 프로세스로부터 자원을 선점한다면, 그 프로세스를 어떤 상태로 놓을 것인지를 결정해야한다. 그러나 정상적인 수행을 계속할 수 없을 때에는 그 프로세스를 안전한 상태로 되돌려 놓고, 그 상태로부터 재시작해야 한다.(예: 완전복귀)
3) 기아상태(starvation)
- 희생자 선택은 주로 비용 요소에 기초를 두는 시스템에서 동일한 프로세스가 매번 선택 될 수 있어서 그 프로세스는 지정된 작업을 결코 완료하지 못할 상황을 기아상태라 한다.
- 특정 프로세스가 희생된다면 어떤 한정된 시간내에 재개시하여 자신의 작업을 수행할 수 있도록 보장해 주는 것을 고려되어야 한다. → 비용요소에 복귀 횟수를 포함시키는 것.
9. 병행프로세스
단일 프로세스내에서의 병행성 : 우선순위 그래프나 Fork Join구조, 병행문
프로세스들간의 병행성(비동기적) : 완전히 독립하여 수행되거나 다른 프로세스들과 가끔 협력 하는 기능.
(1) 병행문(concurrent statement)
병행문은 식별하는 고급언어구조로 Dijkstra[1965]의
parbegin/parend문에서 볼수 있음.
parbegin S₁; S₂; ; Sn parend;
- 각각의 Si는 단일문이고 parbegin과 parend사이에 있는 모든 문들을 병행으로 수행.
(2) 임계구역(critical section) 문제
하나의 프로세스가 임계구역에서 수행중일 때 다른 어떠한 프로세스도 이 임계구역에서 수행 할 수 없다. - 상호배제적
◎ 각 프로세스는 그 임계구역에 들어갈수 있는지 미리 요청한다. (모니터 구조)
- 진입구역 (entry section) : 요구를 구현하는 코드구역
- 출구구역(exit section) : 임계구역 다음
- 잔류구역(remanider section) : 나머지 코드
상호배제의 해결책
① 상호배제 :프로세스 Pi가 임계구역에서 수행중일 때 다른 어떤 프 로세스도 임계구역에서 수행될 수 없다.
② 진행요구가 만족
③ 제한된 대기 : 한 프로세스가 임계구역에 대한 요청 후부터 요청의 수락까지의 기간내에 다른 프로세스가 임계구역을 수행할 수 있는 횟수에 제한을 둔다.
(3) 세마포어
세마포어는 S는 두 표준단위연산 wait와 signal에 의해서만 접근되는 정수변수이다.
- 하나의 프로세스가 세마포어의 값을 수정할 때 다른 어떠한 프로세스가 동시에 세마포어의 값을 수정할 수 없다.
- 세마포어는 단위적으로 수행된다.
(4) 프로세스간의 통신
가. 공유기억장치기법
통신하는 프로세스들간에 어떤 변수를 공유하도록 한다.
- 응용프로그래머가 책임을 진다.
예) 유한공유버퍼 사용
나. 메시지시스템기법
프로세스가 메시지를 교환할 수 있도록 되어 있다.
- 운영체제 자체가 책임을 진다.
- 프로세스가 공유변수에 의존하지 않고도 서로 통신을 할 수 있게 한다
예) send(message)와 receive(message) 제공
1) 직접통신
메시지를 주고받기를 원하는 각각의 프로세스는 통시느이 수신자나 전송자의 이름을 외부적으로 표현.
send(P, message) : 프로세스 P로 메시지를 보낸다.
receive(Q, message) : 프로세스 Q에서 메시지를 받는다.
- 주소지정에서 대칭성을 보여준다.(전송자와 수신자 모두는 통신하기 위해 상대방을 명명.)
2) 간접통신
간접통신을 통해서 우편함으로부터 메시지를 보내거나 받을수 있다.
- 두개의 프로세스는 공유 우편함을 갖고 있을 때만 통신을 한다.
send(A, message) : 프로세스 A로 메시지를 보낸다.
receive(A, message) : 프로세스 A에서 메시지를 받는다.
* 우편함의 소유권
우편함은 프로세스나 혹은 시스템에 소속될 수 있다.
운영체제가 소유하는 우편함은 스스로 존재하며 다음과 같은 기능 제공
- 새로운 우편함의 생성
- 우편함을 통한 메시지의 송수신
- 우편함의 소멸

키워드

  • 가격2,000
  • 페이지수11페이지
  • 등록일2011.05.06
  • 저작시기2011.5
  • 파일형식한글(hwp)
  • 자료번호#674672
본 자료는 최근 2주간 다운받은 회원이 없습니다.
청소해
다운로드 장바구니