[OS] Process Synchronization 1

동동·2022년 4월 18일
post-thumbnail

운영체제(OS)에서 race condition은 언제 발생하는가?

  1. Kernel 수행 중 interrupt 발생 시
  2. Process가 System call을 하여 kernel mode로 수행 중인데 context switch가 일어나는 경우
  3. Multiprocessor에서 shared memory 내의 kernel data

1) Kernel 수행 중 interrupt 발생 시

2) Process가 System call을 하여 Kernel mode로 수행 중인데 Context switch가 일어나는 경우

3) Multiprocessor에서 shared memory 내의 Kernel data

Process Synchronization 문제

  • 공유 데이터(shared data)의 동시 접근(concurrent access)은 데이터의 불일치 문제(inconsistency)를 발생시킬 수 있다.
  • 일관성(consistency) 유지를 위해서는 협력 프로세스(cooperating process) 간의 실행 순서(orderly exeution)를 정해주는 메커니즘이 필요하다.
  • race condition을 막기 위해서는 concurrent process는 동기화(synchronize)되어야 한다.

race condition
두 개 이상의 프로세스가 공통 자원을 병행적으로(concurrently) 읽거나 쓰는 동작을 할 때, 공용 데이터에 대한 접근이 어떤 순서에 따라 이루어졌는지에 따라 그 실행 결과가 같지 않고 달라지는 상황을 말한다. Race의 뜻 그대로, 간단히 말하면 경쟁하는 상태, 즉 두 개의 스레드가 하나의 자원을 놓고 서로 사용하려고 경쟁하는 상황을 말한다.


The Critical-Section Problem

Critical-Section(임계구역)은 공유데이터를 접근하는 코드를 의미

profile
괴발개발

0개의 댓글