일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 |
- 100 days of SwiftUI
- 앨런
- 데드락
- IOS
- SwiftUI
- struct
- 파일 시스템
- 운영체제
- forEach
- 알고리즘
- decode
- 오브젝트
- COLOR
- Linked List
- deadlock
- 비동기
- 상호배제
- Codable
- @state
- 가상 메모리
- async
- 프로세스 스케줄링
- UserDefaults
- 인프런
- 동시성
- core data
- Swift
- Algorithm
- 동기화
- Apple Developer Academy
- Today
- Total
목록운영체제 (8)
기어가더라도 제대로
HW 솔루션도 Busy Waiting 문제가 있다는 것을 알게됨 Spinlock 정수 변수 S = a + 1 위와 같은 연산은 불가 초기화, P(), V() 연산으로만 접근 가능 위 연산들은 indivisible(or atomic) 연산 OS support 보장 전체가 한 Instruction cycle 에 수행 됨 S = 물건의 개수 P() 물건을 꺼내가는 것 자물쇠를 거는것 V() 물건을 집어 넣는 것 자물쇠를 푸는 것 active 라는 변수를 가정해 보겠습니다. 1 물건이 있다. 있어야 다른 프로세스가 실행 가능 0 물건이 없다. P = 잠는 것 - 잠그고 일을하다 끝나면 나올 때 푼다. V = 푸는 것 프로세서가 하나인 경우 Pi 가 active 를 0 으로 만들고 열심히 일..
HW 솔루션 TestAndSet (TAS) instruction test 와 set을 한번에 수행하는 기계어 Machine instruction Atomicity, Indivisible 실행 중 interrupt를 받지 않음(preemption 되지 않음) Busy waiting 비효율적 TAS Instruction 타겟값을 저장, 타겟에 true 저장, 반환 세동작이 한번에 실행된다. 한명이 들어가서 일을 하고 있을 때, 2,3번이 뺑뺑돌고 있는데, 3번이 갔다고 치고, 다음에 4번이 온다면? 2번은 계속 기다릴 수 밖에 없다. ME with TAS Instruction N-process mutual exclusion 장점 구현이 간단 단점 Busy waiti..
Thread => 실타래 먼저, 프로세스는 리소스 할당 + 제어를 통해 작업(Job)을 수행하는 것을 이해해야 한다. 프로세스 중에서 제어 부분만 분리해 놓은 것을 스레드라고 한다. 프로세스 하나에서 여러개의 스레드가 있을 수 있다. 1 : N 스레드는 프로세스 내에서 리소스를 공유해서 사용한다. 제어 정보 stackPointer Program Counter 상태 지역 데이터 for 문 안에서 순회 위의 요소들이 스택에 저장이 된다. 정의 Light Weight Process(LWP) 프로세서(CPU) 활용의 기본 단위 구성 요소 Thread ID Register Set(PC, SP) Stack(local data) 제어 요소 외 코드, 데..