일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | ||||
4 | 5 | 6 | 7 | 8 | 9 | 10 |
11 | 12 | 13 | 14 | 15 | 16 | 17 |
18 | 19 | 20 | 21 | 22 | 23 | 24 |
25 | 26 | 27 | 28 | 29 | 30 | 31 |
Tags
- db
- 동적 계획법
- 알고리즘
- git
- LeetCode
- vscode
- TypeScript
- DFS
- Algorithm
- react
- 백준
- Redux
- DP
- 그레이들
- VIM
- frontend
- BFS
- Javascript
- 안드로이드
- CS
- Database
- java
- Graph
- 다이나믹 프로그래밍
- Python
- 리트코드
- Data Structure
- 프로그래머스
- network
- 자바
Archives
- Today
- Total
늘 겸손하게
CS - Operating System - Race Condition 본문
Computer Science/Operating System
CS - Operating System - Race Condition
besforyou999 2022. 11. 24. 19:55Race Condition - 경쟁 상태
공유 자원에 대해 여러 프로세스가 동시에 접근할 때, 어떤 순서로 데이터에 접근하느냐에 따라 결과 값이 달라질 수 있는 상황을 말합니다.
-> 동시 접근 시 자료의 일관성을 해치는 결과가 나타남
Race Condition이 발생하는 경우
1. 커널 작업을 수행하는 중에 인터럽트 발생
문제점 : 커널모드에서 데이터를 로드하여 작업을 수행하다가 인터럽트가 발생하여 같은 데이터를 조작하는 경우
해결법 : 커널모드에서 작업을 수행하는 동안, 인터럽트를 disable 시켜 CPU 제어권을 가져가지 못하도록 한다.
2.프로세스가 'System Call'을 하여 커널 모드로 진입하여 작업을 수행하는 도중 Context Switch 발생할 때
문제점 : 프로세스1이 커널모드에서 데이터를 조작하는 도중, 시간이 초과되어 CPU 제어권이 프로세스2로 넘어가 같은 데이터를 조작
해결법 : 프로세스가 커널모드에서 작업을 하는 경우 시간이 초과되어도 CPU 제어권이 다른 프로세스에게 넘어가지 않도록 함
3. 멀티 프로세서 환경에서 공유 메모리 내의 커널 데이터에 접근할 때
문제점 : 멀티 프로세서 환경에서 2개의 CPU가 동시에 커널 내부의 공유 데이터에 접근하여 조작하는 경우
해결책 : 커널 내부에 있는 각 공유 데이터에 접근할 때마다, 그 데이터에 대한 lock/unlock
'Computer Science > Operating System' 카테고리의 다른 글
CS - Operating System - Memory (0) | 2022.11.24 |
---|---|
CS - Operating System - 공유자원과 임계 영역, 세마포어 & 뮤텍스 (0) | 2022.11.24 |
CS - Operating System - DeadLock (교착 상태) (0) | 2022.11.24 |
CS - Operating System - CPU Scheduling (0) | 2022.11.24 |
CS - Operating System - IPC ( Inter-Process Communication ) (0) | 2022.11.24 |