TechY
Process Synchronization 1 본문
kocw 강의 : 이화여자대학교 반효경 교수님의 운영 체제 강의,12강 process syncrhonization
프로세스 안에서 데이터를 접근하는 경로
Storage-box (ex. memory) -연산할 데이터-> Execution box (ex. cpu)
Execution box (ex. cpu) -연산 결과-> Storage box (ex. memory)
이런 경로로 데이터를 읽고 수정하는 과정으로 인해, 누가 먼저 읽었냐에 따라 결과가 달라질 수 있기에,
이를 해결하기 위해 나온 토픽이 process syncrhonization 이다.
Process Synchronization
공유 데이터의 동시 접근은 데이터의 불일치 문제를 발생시킬 수 있다 (race condition)
일관성 유지를 위해서는 협력 프로세스 간의 실행 순서를 정해주는 메커니즘이 필요
OS에서 race condition 은 언제 발생하는가?
- kernel mode running 중 interrupt 가 발생하여, interrupt 처리 루틴이 수행
- kernel mode 코드 실행 중에는 interrupt 를 받지 않는 식으로 대응
- process 가 system call 을 하여 kernel mode로 수행 중인데 context switch 가 일어남
- kernel mode 실행 중에는 cpu 를 preempt 하지 않음. user mode 로 돌아갈 때 preempt
- multiprocessor 에서 shared memory 내의 kernel data
- 한번에 하나의 cpu 만이 커널에 들어갈 수 있게 하는 방법 -> 전체 커널에 대한 lock, 비효율
- 커널 내부에 있는 각 공유 데이터에 접근할 때마다 그 데이터에 대한 lock/unlock 을 하는 방법 -> 특정 데이터에 대한 lock
'[개발 정리] > [OS]' 카테고리의 다른 글
Process Synchronization 2 (2) | 2024.12.11 |
---|---|
CPU Scheduling 3 (0) | 2024.12.05 |
CPU Scheduling 2 (0) | 2024.12.03 |
CPU Scheduling 1 (0) | 2024.11.27 |
Process Management 2 (0) | 2024.11.27 |