일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 |
- IOS
- 동시성
- 파일 시스템
- struct
- 오브젝트
- forEach
- 인프런
- async
- 알고리즘
- @state
- COLOR
- UserDefaults
- Swift
- 운영체제
- decode
- Linked List
- 데드락
- core data
- 가상 메모리
- Codable
- 앨런
- SwiftUI
- Apple Developer Academy
- 비동기
- deadlock
- 프로세스 스케줄링
- 상호배제
- Algorithm
- 동기화
- 100 days of SwiftUI
- Today
- Total
목록운영체제 (8)
기어가더라도 제대로
서로 프로세스가 서로가 보유하고 있는 자원을 요청하는 경우 그래프 모델과 상태 전이 모델로 나타낼수 있다. 그래프 모델은 자료구조 보듯이 보면 된다. 서로 자원 할당과 요청 사이에서 Cycle 이 돌고 있다면 데드락이다. 자원에서 프로세스로 에지가 간다면 자원 할당 프로세스에서 자원으로 에지가 간다면 자원 요청 프로세스의 상태를 표로 나타낸 모델 예를 들어, 하나의 프로세스가 자원 두개를 요청할 수 있는 상태를 5가지로 나타낼 수 있다. 프로세스가 2개인 모습을 그리기엔 조금 복잡해질 수 있다. 두개의 프로세스가 자원 두개를 요청할 수 있는 경우의 상태를 나타낸 표이다. 간선에 지나가는 숫자는 해당 프로세스 id 이다. 정점을 하나씩 지나가는 경우는 자원을 요청하거나, 유지하는 경우이다. 정점을 두..
세마포어는 누구를 깨울지 순서가 부정확하다. 그래서 나온 것이 이벤트 카운트 은행의 번호표와 비슷한 개념 Sequencer 정수형 변수 생성시 0으로 초기화, 감소하지 않음 발생 사건들의 순서 유지 ticket() 연산으로만 접근 가능 ticket(s) 현재까지 ticket() 연산이 호출된 횟수에 하나를 더해서 반환 indivisible operation t
Semaphore 1965년 다익스트라님이 제안 Busy waiting 문제 해결 음이 아닌 정수형 변수(S) 초기화 연산, P(),V()로만 접근 가능 P: Probern(검사) V: Verhogen(증가) 임의의 S 변수 하나에 ready queue 하나가 할당됨 Semaphore의 종류 Binary semaphore S가 0과 1 두종류의 값만 갖는 경우 상호 배제나 프로세스 동기화의 목적으로 사용 Counting Semaphore S가 0 이상의 정수값을 가질 수 있는 경우 Producer-Consumer 문제 등을 해결하기 위해 사용 생산자-소비자 문제 P(S) 연산 물건이 없을 땐 빙빙 s Q로 가서 기다린다. Block된 상태(busy waiting X) V(S) 연산 ..