1. 프로세스(쓰레드)의 집합
운영체제에서 실행되고 있는 모든 프로세스들의 모임을 의미한다.
프로세스 집합은 운영체제가 프로세스를 생성, 관리 및 제어를 위해 사용된다. 이는 각 프로세스의 상태를 알 수 있고 프로세스 간의 스케줄링, 자원 할당 및 동기화 등을 관리하는데 사용된다.
2. 선행제약
부분 순서(partial order)성질을 갖는 것으로 이행성(transitive relation)을 가진다.
즉 p1,p2,...,pn의 프로세스가 있을 때, 선행 순서는 pi < pj로 표시된다. pi가 프로세스 pj의 실행을 선행해야한다 이는 pi프로세스는 pj가 시작하기 전에 완료해야 한다는 의미를 가지고 있다.
pi < pj이고 pj < pk이면, pi < pk 이 성립한다.
선행 제약 관계가 없는 두 프로세스는 독립적이다.
프로세스 시스템 내의 프로세스들은 서로 독립적이거나 선행제약 관계가 있다면 비순환적이어야 한다.
01 선행 그래프
프로세스 시스템 내의 프로세스간 선행제약 관계를 Directed 그래프로 표현한것
정상적인 프로세스 시스템의 선행 그래프는 비순환적이다.
순환이 내포된 선행 그래프의 예
p3 < p2(p3가 p2의 실행을 선행)이고 p2<p3(p2가 p3의 실행을 선)이기 때문에 p3<p3이라는 모순이 생기며 선행 그래프 상의 순환 부분으로 나타난다. -> 선행제약 관계의 판단이 불가하다.
비순환적 선행관계가 있거나 독립적이면 프로세스 시스템에 문제가 없을까?
앞서 배운 RaceCondition이 발생할 수 있다. 독립적인 선행관계가 있다고 하더라도 자원 경합 문제가 발생하게 되면 간섭이 발생하게 되므로 결과가 다르게 나타날 수 있다. 이러한 문제를 예방하기 위해 결정성과 비간섭성도 고려해야 한다.
3. 결정성(Determinacy)
프로세스 시스템 내의 프로세스들 간의코드 실행 순열이 매번 다를 수 있지만 같은 조건과 입력이 주어진다면, 항상 같은 결과를 산출해야 한다는 성질
4. 비간섭성(Non - Interference)
프로세스 시스템에서 두 개의 프로세스가 있을 때, 한 프로세스가 다른 프로세스를 선행하거나 이들이 서로 독립적인 경우, 한 프로세스의 출력 장소가 다른 프로세스의 입력 장소 혹은 출력 장소가 아니라면 이들은 비간섭 관계에 있다고 정의한다.
따라서 한 프로세스의 동작이 다른 프로세스의 동작에 영향을 미치지 않는 성질이다.
간섭이 발생한 경우
비간섭과 결정성의 관계
프로세스 시스템에서 프로세스 간의 비간섭성을 보장하여 프로세스 간의 간섭을 방지하면 결정성을 유지 할 수 있다.
5. 선행제약, 독립적, 간섭, 결정성 관계
'cs공부 > 운영체제' 카테고리의 다른 글
운영체제 - Peterson's Solution, Bakery 알고리즘(상호배제 문제 해결) (0) | 2023.05.16 |
---|---|
운영체제 - 임계구역,동기화(Monitor,try-finally,lock) (0) | 2023.05.16 |
운영체제 - Interlocked(Increment,Exchange,Add메서드 등) (0) | 2023.05.15 |
운영체제 - RaceCondition, Atomic (0) | 2023.05.11 |
운영체제 - 캐시(Cache)이론 (0) | 2023.05.02 |
댓글