이 포스팅은 한국기술교육대학교 김덕수 교수님의 운영체제 강의를 참고하여 작성되었습니다.
Mutual Exclusion Solutions
SW solutions
• Dekker’s algorithm (Peterson’s algorithm)
• Dijkstra’s algorithm, Knuth’s algorithm, Eisenberg and McGuire’s algorithm, Lamport’s algorithm
HW solution
• TestAndSet (TAS) instruction
OS supported SW solution
• Spinlock
• Semaphore
• Eventcount/sequencer
Language-Level solution
• Monitor
동기화 (Synchronization)
프로세스들이 서로 동작을 맞추는 것
프로세스들이 서로 정보를 공유하는 것
비동기적 (Asynchronous) : 프로세스들이 서로에 대해 모름
병행적 (Concurrent) : 여러 개의 프로세스들이 동시에 시스템에 존재
병행 수행 중인 비동기적 프로세스들이 공유자원에 동시 접근할 때 문제가 발생할 수 있음
공유 데이터 (Shared data or Critical data) : 여러 프로세스들이 공유하는 데이터
임계 영역 (Critical section) : 공유 데이터를 접근하는 코드 영역(code segment)
상호 배제 (Mutual exclusion) : 둘 이상의 프로세스가 동시가 critical section에 진입하는 것을 막는 것
Race condition에서는 실행 순서에 따라 결과가 달라진다.
이를 해결하기 위해서 우리는 상호 배제를 한다.
Mutual Exclusion Methods
Mutual exclusion primitives(기본 연산)
- enterCS() primitive
Critical section 진입 전 검사
다른 프로세스가 critical section안에 있는지 검사
- exitCS() primitive
Critical section을 벗어날 때의 후처리 과정
Critical section을 벗어남을 시스템이 알림
위 함수를 만들기 위해 다음 세 가지 조건을 고려해야 한다.
(1) ME(Mutual exclusion) : Critical section (CS)에 프로세스가 있으면, 다른 프로세스의 진입을 금지
(2) Progress : CS 안에 있는 프로세스 외에는, 다른 프로세스가 CS에 진입하는 것을 방해하면 안 됨
(3) Bounded waiting : 프로세스의 CS 진입은 유한 시간 내에 허용되어야 함
Dekker's Algorithm
Two process ME을 보장하는 최초의 알고리즘
N-Process Mutual Exclusion
다익스트라 Dijkstra
- 최초의 프로세스 n개의 상호 배제 문제를 소프트웨어적으로 해결
- 실행 시간이 가장 짧은 프로세스에 프로세서 할당하는 세마포 방법, 가장 짧은 평균 대기시간 제공
flag[] 값
idle : 프로세스가 임계 지역 진입을 시도하고 있지 않을 때
want-in : 프로세스가 임계 지역 진입 시도 1단계일 때
in-CS : 프로세스의 임계 지역 진입 시도 2단계 및 임계 지역 내에 있을 때
SW solution들의 문제점
- 속도가 느림
- 구현이 복잡
- ME primitive 실행 중 preemption 될 수 있음
- Busy waiting
긴 글 읽어주셔서 감사드립니다.
22.12.16
'TIL (Today I Learned) > 컴퓨터 시스템(CS)' 카테고리의 다른 글
[CS] Process Synchronization and Mutual Exclusion #3 (0) | 2022.12.16 |
---|---|
[CS] Process Synchronization and Mutual Exclusion #2 (0) | 2022.12.16 |
[CS] Process Scheduler #4 (0) | 2022.12.16 |
[CS] Process Scheduler #3 (0) | 2022.12.16 |
[CS] Process Scheduler #2 (0) | 2022.12.16 |
댓글