일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 |
- Linked List
- 동시성
- 운영체제
- 데드락
- 100 days of SwiftUI
- Codable
- COLOR
- deadlock
- 파일 시스템
- Swift
- decode
- 앨런
- struct
- 프로세스 스케줄링
- 상호배제
- forEach
- core data
- 동기화
- IOS
- 알고리즘
- Apple Developer Academy
- Algorithm
- @state
- 비동기
- async
- UserDefaults
- 인프런
- SwiftUI
- 가상 메모리
- 오브젝트
- Today
- Total
목록데드락 (4)
기어가더라도 제대로
목차 - UIKit 이 Thread-Safe 하지 않은 이유 - Run Loop 와 뷰 드로잉 사이클 - iOS 렌더링 과정을 이해하기 - 렌더링 프레임워크 - Core Animation Pipeline - Texture or ComponentKit - 결론 - 역자의 말(소감, 추가 의문) 개발을 하다보면 background 스레드에서 UIKit 의 요소를 호출하는 경우가 있다. background 에서 작업하는 네트워크 콜백에서 imageView.image = image 라고 하거나, UIApplication.sharedApplication 을 호출하는 등의 작업을 백그라운드 스레드에서 하는 경우말이다. 이럴 경우에, 우리는 런타임 에러를 얻게 되고 즉시 그것들을 고칠 것이다. 근데 생각을 해보면, ..
Deadlock Detection Deadlock 방지를 위하 사전작업을 하지 않음 deadlock 발생 가능 주기적으로 deadlock 발생 확인 시스템이 deadlock 상태인가? 어떤 프로세스가 deadlock 상태인가? Resource allocation graph(RAG) 사용 Deadlock 검출을 위해 사용 Directed, bipartite Graph(바이파타이트) 양분된 영역이 존재 그래프의 모습은 대략 이렇다. 전체 프로세스의 개수 - Np 전체 자원의 개수 - Nr Resource allocation graph(RAG) Edge는 Np와 Nr 사이에만 존재 e = (Pi, Rj): 자원 요청 간선의 방향이 나타나는데, P에서 R로 가면 요청 e = (Rj, Pi): 자원 할..
시스템의 상태를 계속 감시 시스템이 Deadlock 상태가 될 가능성이 있는 자원 할당 요청 보류 시스템을 항상 safe state 로 유지 Safe state 모든 프로세스가 정상적 종료 가능한 상태 Safe sequence 가 존재 Deadlock 상태가 되지 않을 수 있음을 보장 Unsafe state Deadlock 상태가 될 가능성이 있음 반드시 발생한다는 의미는 아님 가정 프로세스의 수가 고정됨 자원의 종류와 수가 고정됨 프로세스가 요구하는 자원 및 최대 수량을 알고 있음 프로세스는 자원을 사용 후 반드시 반납한다. 가정들이 비현실적이다. 그치만 Avoidance 를 위한 알고리즘이 존재한다. (출처: 위키피디아) 데이크스트라님 다익스트라 알고리즘은 최단 경로 ..