250x250
Notice
Recent Posts
Recent Comments
Link
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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
- 프로세스
- 백엔드
- 프로그래밍
- 국비지원코딩
- 혼공컴운
- Java
- 알고리즘
- 백엔드개발자
- 국비지원
- 개발자일기
- 프로그래머스
- 리액트
- 자바스크립트
- 스프링부트
- 자바알고리즘
- 개발자
- 소셜로그인구현
- SpringBoot
- 자바의정석
- 자바개발자
- 프로그래머
- 미라클모닝
- 자바
- 운영체제
- Codeup
- React
- db
- 코드업
- 코딩
- 데이터베이스
Archives
- Today
- Total
초코딩(chocoding)
교착 상태(Dead Lock) / 공유 자원(Shared Resource) / 임계 영역 (Critical Section) / 임계 영역을 해결하기 위한 방법 본문
[혼공컴운] 혼자 공부하는 컴퓨터 구조와 운영체제
교착 상태(Dead Lock) / 공유 자원(Shared Resource) / 임계 영역 (Critical Section) / 임계 영역을 해결하기 위한 방법
sweetychocoding 2024. 4. 4. 15:14728x90
- A와 B가 필기를 하려한다.
- 필기를 하려면 연필과 노트가 필요하다.
- A는 연필을 가지고 있고, B는 노트를 가지고 있다.
- A는 B에게 노트를 요구하고, B는 A에게 연필을 요구한다.
- 하지만 A와 B는 가지고 있는 것을 넘겨주면 필기를 할 수 없기 때문에 서로 넘겨줄 생각이 없다.
- 무한정 대기하는 상황이 발생하는데 이것을 교착 상태라고 한다.
- 여기서 연필과 노트는 공유 자원이라고 하고, 공유 자원이 속해 있어 교착 상태가 발생할 수 있는 영역을 임계 영역이라고 한다.
1. 교착 상태 (Dead Lock)
=> 둘 이상의 프로세스가 다른 프로세스가 점유하고 있는 자원을 서로 기다릴 때 무한 대기에 빠지는 상황
2. 공유 자원 (Shared Resource)
=> 시스템 안에서 각 프로세스, 스레드가 함께 접근할 수 있는 자원이나 변수 등을 의미
3. 임계 영역 (Critical Section)
=> 한순간 반드시 프로세스 하나만 진입해야 하는데, 프로그램에서 임계 자원을 이용하는 부분으로 공유 자원의 독점을 보장하는 코드 영역을 의미
=> 지정된 시간이 지난 후 종료
* 임계 영역을 해결하기 위한 방법
- 뮤텍스, 세마포어, 모니터 등이 있다.
- 상호 배제, 한정 대기, 융통성이라는 조건을 만족한다.
- 상호 배제 : 한 프로세스가 임계 영역에 들어갔을 때 다른 프로세스는 들어갈 수 없음.
- 한정 대기 : 특정 프로세스가 영원히 임계 영역에 들어가지 못하면 안 됨.
- 진행 : 임계 구역에 들어간 프로세스가 없는 상태에서, 들어가려고 하는 프로세스가 여러 개 있다면 어느 것이 들어갈지를 적절히 결정해주어야 한다.
.
.
.
참고
https://velog.io/@lovi0714/%EC%9E%84%EA%B3%84-%EC%98%81%EC%97%AD-Critical-Section
728x90
'[혼공컴운] 혼자 공부하는 컴퓨터 구조와 운영체제' 카테고리의 다른 글
CPU의 스케줄링이란? / 선점형 스케줄링과 비선점형 스케줄링 (0) | 2024.04.04 |
---|---|
프로세스와 스레드에 대하여 (0) | 2024.03.28 |
[혼공컴운] 10-2 / 프로세스 상태와 계층 구조 (0) | 2023.08.04 |
[혼공컴운] 10-1 / 프로세스 개요 (0) | 2023.07.31 |
[혼공컴운] 9-2 / 운영체제의 큰 그림 (0) | 2023.07.28 |