일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 |
- 시뮬레이션
- 백준
- fork
- Deadlock
- paging
- 삼성리서치
- ascii_easy
- Brute Force
- pwnable.kr
- exec
- 데드락
- 컴공복전
- 완전탐색
- 가상메모리
- BOJ
- 알고리즘
- 구현
- higunnew
- segmentation
- 프로세스
- 백트래킹
- 운영체제
- BFS
- 삼성기출
- dfs
- 스케줄링
- samsung research
- 김건우
- 동기화문제
- Memory Management
- Today
- Total
목록Deadlock (3)
gunnew의 잡설
2. Deadlock Avoidance 이 방법은 어떤 추가적인 정보를 이용하여 데드락을 막는 방법이다. 이 추가적인 정보라 함은, 프로세스마다 자기 평생에 자원을 최대로 쓰면 얼마나 쓸지(자원 사용의 최대치)에 대한 정보이다. Deadlock Avoidance Algorithm은 두 종류가 있다. 첫 번째는 자원당 instance가 하나인 경우이고, 두 번째는 자원당 instance가 여러 개인 경우이다. 먼저 instance가 하나인 경우부터 살펴보자. * Single instance per resource types (Resource Allocation Graph Algorithm) * Deadlock Avoidance에서는 위 그래프에서 실선뿐만 아니라 점선도 둔다. 점선은 프로세스에서 자원으로 ..
이미 Deadlock이 무엇인지는 앞선 7강 동기화 문제에서 살펴본 바가 있다. 이것을 좀 더 가시화한 그림이 다음이다. 앞으로만 갈 수 있는 도로에서 차들이 꽉 막혀 진행될 수 없는 상태이다. 시스템 안에서 Deadlock은 자원이 있는데 각 프로세스들이 어떤 자원은 절대 내놓지 않고 갖고 있으면서 다른 자원을 얻으려고 하는 상태를 뜻한다. * 자원의 사용 절차 및 Deadlock 발생의 4가지 조건* 즉, 데드락이 생기는 이유는 자기 것을 내놓지 않고 다른 자원을 얻으려는 일종의 욕심 때문에 발생한다. 그렇다면 프로세스가 자원을 어떤 절차로 사용하는가 먼저 살펴보자. 1. Request (요청) 2. Allocate (할당) 3. Use (사용) 4. Release (반납) 이러한 과정 속에서 데드락..
Semaphore은 프로그래밍을 조금만 잘못해도 문제가 발생할 수 있다. 예를 들어 Semaphore 변수가 S와 Q로 두 개가 있다고 가정하자. 그리고 어떤 프로세스는 두 Semaphore를 모두 얻어야만 할 수 있는 작업이라고 하자. 예를 들면 A라는 Tape driver에 있는 내용을 B에 저장을 하는 것과 같은 작업이다. 그것들을 각각 P0와 P1이라고 하며 에 나타나 있다. 겉으로 보기엔 문제가 없어 보인다. 그러나 여기에는 심각한 문제가 발생할 수 있다. P0가 S를 얻고 CPU를 뺏겼다고 해보자. 그리고 CPU가 P1로 넘어가고 P1은 Q를 획득했다고 하자. P1이 이제 아랫부분을 실행하려고 해도 S를 P0가 가지고 있기 때문에 실행을 못하고, 반대로 P0가 Q를 얻으려고 해도 P1이 가지고..