티스토리 뷰
경쟁 상태(Race Condition)란 ?
1. 경쟁 상태(Race Condition)
공유 자원에 대해 여러 프로세스가 동시에 접근을 시도할 때, 타이밍이나 순서 등이 결과 값에 영향을 줄 수 있는 상태를 의미한다.
공유 자원에 여러 프로세스가 동시에 접근할 때 자료의 일관성을 해치는 결과가 나타날 수 있다.
2. 경쟁 상태(Race Condition) 가 발생하는 경우
✔ 커널 코드 실행 중에 인터럽트가 발생한 경우
커널 모드에서 데이터를 로드 하여 작업을 하던 도중 인터럽트가 발생하여 같은 데이터를 조작하는 경우에 발생할 수 있다.
커널이 가진 전역변수는 모든 프로세스의 공유물이므로 경쟁상태의 가능성이 있다.
✔ 프로세스가 시스템 콜(System call)을 하여 커널 모드로 진입해서 작업을 수행하는 도중에 문맥 교환이 일어난 경우
프로세스1이 커널 모드에서 데이터를 조작하던 도중 시간이 초과되어 CPU제어권이 프로세스2로 넘어가 같은 데이터를 조작하는 경우를 말한다.
✔ 멀티 프로세서 환경에서 2개의 CPU가 동시에 커널 내부의 공유 데이터에 접근하여 조작하는 경우
또는 멀티 스레드 환경에서 공통 자원을 병행하여 작업하는 경우
멀티프로세스 환경에서 2개의 CPU가 동시에 커널 내부의 공유 데이터에 접근하여 조작하는 경우에 발생할 수 있다.
3. 임계 영역(Critical Section)
운영체제에서 여러 프로세스가 데이터를 공유하면서 수행될 때 각 프로세스에서 공유 자원에 접근하는 프로그램 코드 부분을 의미한다. 프로세스간에 공유자원을 접근하는데 있어서 문제가 발생하지 않도록 공유자원의 독점을 보장해줘야 하는 영역이다.
임계 영역 문제를 해결하기 위해서는 아래의 3가지 조건을 충족해주어야 한다.
✔ 상호 배제(Mutual Exclusion)
한 프로세스가 자신의 임계 영역을 수행 중인 경우 다른 모든 프로세스들은 그 임계 영역에 들어가지 못하게 한다.
✔ 진행(Progress)
임계 영역에 들어간 프로세스가 있지 않은 상태에서 임계 영역에 들어가려는 프로세스가 있으면 들어가게 해준다. 즉, 임계 영역에 아무도 진입하지 못하면 안되며 다음에 어떤 프로세스가 임계 영역에 진입해야 하는지는 유한한 시간에 결정되어야 한다.
✔ 한정 대기(Bounded Waiting)
프로세스가 임계 영역에 진입하기 위해 무한 정으로 기다리는 현상(Starvation)이 발생해서는 안된다.
'Study > CS' 카테고리의 다른 글
[네트워크] 대칭키 공개키 (0) | 2022.06.26 |
---|---|
[네트워크] OSI 7계층 (0) | 2022.06.26 |
[운영체제] 데드락(Deadlock, 교착 상태)이란 (0) | 2022.06.19 |
[운영체제] 프로세스 주소공간(Process Address Space) (0) | 2022.06.12 |
[운영체제] 운영체제(OS; Operating System) 란 (0) | 2022.06.12 |
- Total
- Today
- Yesterday
- 알고리즘
- 프로그래머스강의
- 파이썬
- CS.
- 자료구조와알고리즘 23강
- It
- Greedy sort
- 코드업 기초
- 리스트
- 운영체제
- CS 스터디
- 이진탐색
- CS
- 보험
- 이차 리스트
- 프로세스 주소공간
- 리스트 복사
- 정렬
- 자료구조
- https
- 리스트2
- 프로그래머스
- 스터디
- 연결리스트활용
- 리스트함축
- 네트워크
- 자바
- 데이터베이스
- 완전탐색
- SW
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 |