반응형
1. 프로세스 간 통신
- 한 컴퓨터 내에서 프로세스 간 통신
- 파일을 이용하여 통신
- 파이프를 이용하여 통신
- 운영체제가 생성한 파이프이용
- 쓰레드를 이용하여 통신
- 한 프로세스 내에서 쓰레드 간 통신
- 쓰레드의 데이터영역에 있는 전역변수나 힙을 이용하여 통신
- 한 프로세스 내에서 쓰레드 간 통신
- 네트워크를 이용하여 통신
- 운영체제가 제공하는 소켓통신이나 RPC(다른 컴퓨터에 있는 함수를 호출)를 이용하여 통신
2. 공유자원과 임계구역
- 공유자원
- 프로세스 간 통신을 할때 공동으로 이용하는 변수나 파일들문제
- 공유자원은 여러프로세스가 공유하고 있기 때문에 각 프로세스의 접근 순서에 따라 결과가 달라짐
- 컨텍스트 스위칭으로 시분할 처리를 하기 때문에 프로세스의 실행을 예측할 수 없음
- 임계구역
- 여러 프로세스가 동시에 사용하면 안되는 영역
- 경쟁조건
- 공유자원을 서로 사용하기 위해 경쟁하는 것
- 임계구역문제를 해결하기 위한 상호배제 매커니즘
- 임계영역엔 동시에 하나의 프로세스만 접근한다
- 여러 요청에도 하나의 프로세스의 접근만 허용한다
- 임계구역에 들어간 프로세스는 빠르게 나와야한다
- 프로세스 간 통신을 할때 공동으로 이용하는 변수나 파일들문제
3. 세마포어
- 상호배제 매커니즘의 한가지
- 세마포어로 동기화 문제를 해결하려 하지만 단점이 있다.
- wait 함수와 signal 함수의 순서를 이상하게 호출하여 세마포어를 잘못 사용할 가능성이 있음 ⇒ 이 문제를 해결한 방법이 모니터 이다.
4. 모니터
- 세마포어의 단점을 해결한 상호배제 매커니즘
- 따로 운영체제가 처리하는 것이 아니라 프로그래밍 언어차원에서 지원
- ex) 자바에서 synchronized 키워드가 붙으면 이 키워드가 붙은 함수들은 동시에 여러 프로세스에서 실행 시킬 수 없다. ⇒ 상호배제가 이뤄짐
해당 글은 [인프런 - 그림으로 쉽게 배우는 운영체제] 강의를 듣고 정리한 글 입니다.
'🔥 🔥' 카테고리의 다른 글
[강의] 그림으로 쉽게 배우는 운영체제 - 4. 데드락 (0) | 2024.05.23 |
---|---|
[강의] 그림으로 쉽게 배우는 운영체제 - 2. CPU 스케줄링 (0) | 2024.05.13 |
[강의] 그림으로 쉽게 배우는 운영체제 - 1. 프로세스와 쓰레드 (0) | 2024.05.13 |
[강의] 그림으로 쉽게 배우는 운영체제 - 0. 운영체제 들어가기 (0) | 2024.05.13 |
yarn berry (0) | 2021.12.05 |