반응형
병행 프로세스와 상호배제
학습 목표
- 프로세스 및 스레드 동기화
- 상호배제 (Mutual Exclusion)
- 멀티스레드 동기화 기법
- 생산자 소비자 문제
- 모니터
오늘은 프로세스 및 스레드 동기화만..
병행 프로세스
병행 프로세스는 운영체제가 프로세서를 빠르게 전환하여 프로세서의 시간을 나누어 사용함으로써 여러 프로세스가 동시에 실행되는 것처럼 보이게 하는 개념임. 크게 독립 프로세스와 협력 프로세스로 나뉨.
- 독립 프로세스: 다른 프로세스에 영향을 주고받지 않으며 독립적으로 실행됨.
- 협력 프로세스: 다른 프로세스와 상호작용하며 특정 기능을 수행하는 프로세스.
협력 프로세스와 스레드
협력 프로세스 및 스레드는 다른 프로세스 또는 스레드와 상호작용하는 특성을 가짐. 자원의 공유, 빠른 수행, 모듈화된 시스템 구성을 위해 필요함.
특성:
- 자원과 상태를 공유함
- 비결정성: 실행 순서에 따라 결과가 달라질 수 있음
- 재현의 어려움: 비결정성 때문에 디버깅이 어려움
프로세스 사이의 통신 기법
프로세스 간 통신 방법에는 메시지 전달, 공유 메모리 등이 있음. 통신 기법은 프로세스 간 협력을 위한 필수 요소임.
동시성과 동기화
동시성은 여러 프로세스가 동시에 실행되는 것을 의미하며, 동기화는 공유 데이터에 대한 접근 순서를 제어하는 기법임.
- 동기화 필요성: 여러 프로세스나 스레드가 공유 데이터에 동시에 접근하면 데이터 손상이 발생할 수 있음. 따라서 동기화가 필요함.
스레드 동기화 문제
예를 들어, 두 스레드가 동시에 공유 변수를 변경할 경우 잘못된 결과가 발생할 수 있음. 예를 들어 두 스레드 T1과 T2가 동시에 sum이라는 변수를 변경할 때, 실제로 더해져야 할 값이 제대로 반영되지 않는 문제가 발생함.
해결책 - 스레드 동기화
- 문제점: 여러 스레드가 공유 변수에 접근할 때 공유 데이터 손상 발생 가능성 있음.
- 해결책: 한 스레드가 공유 데이터를 사용 중일 때, 다른 스레드가 해당 데이터에 접근하지 못하도록 동기화 기법을 적용함.
임계구역과 상호배제
- 임계구역: 공유 데이터에 접근하는 프로그램 코드 부분을 임계구역이라고 함.
- 상호배제: 임계구역에 한 번에 하나의 스레드만 접근할 수 있도록 제어하는 기법으로, 자물쇠-열쇠 관계로 쉽게 구현 가능함.
반응형
'공부해요 > 운영체제' 카테고리의 다른 글
중간 퀴즈 (0) | 2024.10.09 |
---|---|
스레드 병행프로세스 퀴즈 (0) | 2024.10.03 |
프로세스와 스레드(2) (1) | 2024.10.03 |
프로세스와 스레드 퀴즈 (0) | 2024.09.26 |
프로세스와 스레드 (0) | 2024.09.26 |