공부해요/운영체제

병행프로세스와 상호배제

yenas0 2024. 10. 3. 12:24
반응형

병행 프로세스와 상호배제

학습 목표

  • 프로세스 및 스레드 동기화
  • 상호배제 (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