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=하나의 프로세스가 임계구역에 있을 때 다른 모든 프로세스는 임계구역에 들어갈 수 없어야 한다.
'CS공부 > 운영체제' 카테고리의 다른 글
[운영체제] CPU 스케줄링 (2) (0) | 2024.05.05 |
---|---|
[운영체제] CPU 스케줄링 (1) (2) | 2024.04.23 |
[운영체제] 프로세스 관리(2) (0) | 2024.04.23 |
[운영체제] 프로세스 관리 (1) (0) | 2024.04.22 |
[운영체제] 컴퓨터 시스템의 구조(2) (1) | 2024.04.22 |