CS공부/운영체제

[운영체제] CPU 스케줄링 (3) + Process Synchronization

혜유우 2024. 6. 4. 02:44
Algorithm Evaluation

 

Queueing models

확률 분포로 주어지는 arrival rate와 service rate 등을 통해

각종 performance index 값을 계산

 

Implementation(구현) & Measurement(성능 측정)

실제 시스템에 알고리즘을 구현하여 실제 작업(workload)에

대해서 성능을 측정 비교

 

Simulation (모의 실험)

알고리즘을 모의 프로그램으로 작성후 trace를 입력으로

하여 결과 비교

 

 

Process Synchronization

 

-E-box가 여럿 있는 경우 Race Condition(경쟁 상태)의 가능성이 있음

-Multiprocessor system

-공유메모리를 사용하는 프로세스들

커널 내부 데이터를 접근하는 루틴들 간(ex. 커널모드 수행 중 인터럽트로 커널모드 다른 루틴 수행시)

 

OS에서 race condition은 언제 발생하는가?
1. Kernel 수행 중 인터럽트 발생 시
2. Process가 system call을 하여 kernel mode로 수행 중인데
context switch가 일어나는 경우
3. Multiprocessor에서 shared memory 내의 kernel data

 

 

 

 

 

 

<CPU가 2개 이상인 경우>

방법 1의 경우 비효율적이므로

방법 2(커널 내부에 있는 각 공유 데이터에 접근할 때마다 그 데이터에 대한 Lock/unlock)가 더 효율적

 

Process Synchronization(동기화)

- 공유 데이터(shared data)의 동시 접근(concurrent access)은 데이터의 불일치 문제(inconsistency)를 발생시킬 수 있다

- 일관성(consistency) 유지를 위해서는 협력 프로세스간의 실행 순서를 정해주는 메커니즘 필요

 

Race condition

-여러 프로세스들이 동시에 공유 데이터를 접근하는 상황

-데이터의 최종 연산 결과는 마지막에 그 데이터를 다룬 프로세스에 따라 달라짐

-> race condition을 막기 위해서는 concurrent process는 동기화(synchronize) 되어야 한다.

 

임계 구역(The Critical-Section Problem)

n개의 프로세스가 공유 데이터를 동시에 사용하기를 원하는 경우

각 프로세스의 code segment에는 공유 데이터를 접근하는 코드인 임계구역이 존재

Problem=하나의 프로세스가 임계구역에 있을 때 다른 모든 프로세스는 임계구역에 들어갈 수 없어야 한다.