728x90
반응형
SMALL
0. 경쟁 상태
경쟁 상태란 공유 자원에 대해 여러 프로세스가 동시에 접근할 때 결과값에 영향을 줄 수 있는 상태를 말한다. 동시 접근 시 자료의 일관성을 해치는 결과가 나타난다.
1. Race Condition이 발생하는 경우
커널 작업을 수행하는 중에 인터럽트 발생
- 문제점 : 커널모드에서 데이터를 로드하여 작업을 수행하다가 인터럽트가 발생하여 같은 데이터를 조작하는 경우
- 해결법 : 커널모드에서 작업을 수행하는 동안 인터럽트를 disable 시켜 CPU 제어권을 가져가지 못하도록 한다.
프로세스가 시스템콜을 하여 커널 모드로 진입하여 작업을 수행하는 도중 문맥 교환이 발생할 때
- 문제점 : 프로세스1이 커널모드에서 데이터를 조작하는 도중 시간이 초과되어 CPU 제어권이 프로세스2로 넘어가 같은 데이터를 조작하는 경우 (프로세스2가 작업에 반영되지 않음)
- 해결법 : 프로세스가 커널모드에서 작업을 하는 경우 시간이 초과되어도 CPU 제어권이 다른 프로세스에게 넘어가지 않도록 함
멀티 프로세서 환경에서 공유 메모리 내의 커널 데이터에 접근할 때
- 문제점 : 멀티 프로세서 환경에서 2개의 CPU가 동시에 커널 내부의 공유 데이터에 접근하여 조작하는 경우
- 해결법 : 커널 내부에 있는 각 공유 데이터에 접근할 때마다 그 데이터에 대한 lock/unlock을 하는 방법
728x90
반응형
SMALL
'Computer Science > Operating System' 카테고리의 다른 글
[Operating System] 가상메모리와 물리메모리 (0) | 2022.01.23 |
---|---|
[Operating System] 11. 세마포어와 뮤텍스 (0) | 2021.07.09 |
[Operating System] 9. 데드락 Deadlock (0) | 2021.07.09 |
[Operating System] 8. CPU Scheduling (0) | 2021.07.09 |
[Operating System] 7. IPC (0) | 2021.07.01 |