본문 바로가기

CS/운영체제

운영체제(7) - Race condition과 임계구역(Critical-Section problem)

반응형
  • 공유 데이터 (Shared data)의 동시 접근(concurrent access)은 데이터의 불일치 문제(inconsistency)를 발생시킬 수 있다.
  • 일관성 (consistency) 유지를 위해서는 협력 프로세스 (cooperating process)간의 실행 순서 (orderly execution)를 정해주는 메커니즘 필요

Race condition

  • 여러 프로세스들이 동시에 공유 데이터를 접근하는 상황
  • Memory를 공유하는 CPU가 여럿 있는 경우 Race condition의 가능성이 있음
  • 데이터의 최종 연산 결과는 마지막에 그 데이터를 다룬 프로세스에 따라 달라짐
  • Race condition을 막기 위해서는 병행적으로 실행되는 프로세스는 동기화(Synchronize)되어야 한다

OS에서 race condition은 언제 발생하는가??

  1. kernel 수행 중 인터럽트 발생 시
  2. Process가 Sytsem call을 하여 kernel mode로 수행 중인데 문맥 교환(context switch)가 일어나는 경우
  3. Multiprocessor에서 shared memory 내의 kernel data

 

임계구역( The Critical-Section Problem)

  • N개의 프로세스가 공유 데이터를 동시에 사용하기를 원하는 경우, 각 프로세스의 code segment에는 공유 데이터에 접근 하는 코드인 Critical Section이 존재한다.
  • 하나의 프로세스가 Critical Section에 있을 때 다른 모든 프로세스는 Critical Section에 들어갈 수 없어야 한다.
  • 프로세스들은 수행의 동기화(Synchronize)를 위해 몇몇 변수를 공유할 수 있다. -> Synchronization varaibles

임계구역 문제를 해결하기 위해선 3가지 조건이 충족되어야 한다.

  1. Mutual Exclusion (상호 배제)
    • Process Pi가 critical section 부분을 수행 중이면 다른 모든 프로세스들은 그들의 Critical section에 들어가면 안ㄷ 된다.
  2. Progress (진행)
    • 아무도 critical section에 있지 않은 상태에서 critical section에 들어가고자 하는 프로세스가 있으면 critical section에 들어가게 해주어야 한다
  3. Bounded waiting (한정 대기)
    • 프로세스가 critical section에 들어가려고 요청한 후부터 그 요청이 허용될 때까지 다른 프로세스들이 critical section에 들어가는 횟수에 한계가 있어야 한다

 

 

이 포스팅은 이화여대에서 무료로제공하는 반효경님의 운영체제강의를 수강하며 정리한 내용입니다.

필자가 잘 이해하지 못해서 잘못된 내용이 있을 수 있으므로 주의바라며, 발견되면 알려주시면 감사하겠습니다.

http://www.kocw.net/home/search/kemView.do?kemId=1046323 

 

운영체제

운영체제는 컴퓨터 하드웨어 바로 위에 설치되는 소프트웨어 계층으로서 모든 컴퓨터 시스템의 필수적인 부분이다. 본 강좌에서는 이와 같은 운영체제의 개념과 역할, 운영체제를 구성하는 각

www.kocw.net

 

반응형