728x90
프로세스 간 통신(inter-process communication, IPC)
1. pipe : 같은 컴퓨터 내 프로세스간 단방향 통신

2. named pipe (FIFO) : pipe와 유사
※ pipe 와 차이점
- FIFO라는 파일을 거쳐야 프로세스 간 통신 가능
- 서로 독립된 프로세스간 통신 가능
3. socket : 다른 컴퓨터 내 프로세스 간 양방향 통신 (독립된 프로세스간 통신 가능)

임계영역 & 프로세스 동기화
경쟁 상태(race condition) : 여러 프로세스 or 스레드들이 공유자원에 동시 접근하여 읽/쓸 때 발생
문제 : 공유자원에 저장된 값이 달라짐
임계 영역 (Critical section) : 경쟁 상태가 발생하는 영역
→ 경쟁 상태를 막기 위해 한 프로세스 or 스레드가 임계영역에 접근
임계영역 해결 위한 조건
1. 상호 배제 (mutual exclusion, mutex)
- 1 번에 1개 프로세스 또는 스레드가 임계영역에 접근(비선점)
2. 한정 대기(bounded waiting)
- 임계영역에서 실행되기 위해 기다리는 시간은 정해져 있음
3. 진행의 융통성(progress flexibility)
- 임계영역이 비었을 때 다른 프로세서는 임계영역에서 실행될 수 있음
임계영역 문제 해결 방법
→ 피터슨 알고리즘, 데커 알고리즘, 세마포어(semaphore)
프로세스 동기화 (= 스레드 동기화) : 상호 배제 가능하게 함 → 공유자원에 저장되는 값의 일관성 보장
semaphore
Semaphore(n); //S = n;
P(); // if (S > 0 then S = S – 1;) else block();
// 임계영역(critical section)
V(); // S = S + 1; wake_up();
1. Semaphore(n);
→ 임계영역에서 동시에 실행 가능한 프로세스 수(S)를 n으로 초기화
2. P();
→ 프로세스는 S > 0이 될 때까지 세마포어 큐에서 기다림
3. V();
→ 세마포어 큐에 있는 프로세스에게 임계영역에 진입해도 좋다는 신호를 보냄 (wake_up();)
※ Semaphore 종류
- Counting semaphore (S 초기값 1이상, S는 0이상)
- Binary semaphore (S 초기값 = 1, S = 0, 1)
반응형
'CS > Operating System' 카테고리의 다른 글
요구 페이징 & 페이지 교체 알고리즘 (0) | 2023.08.31 |
---|---|
메모리 주소 & 메모리 할당 (0) | 2023.08.31 |
Process Priority (0) | 2023.08.31 |
Process & Thread (0) | 2023.08.30 |
컴퓨터의 구조 (0) | 2023.08.30 |