일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 |
- dfs
- 가상메모리
- 수학
- 다익스트라
- dict
- level1
- level0
- 힙
- 다이나믹 프로그래밍
- 그리디
- level3
- 구현
- 파이썬
- level2
- 스택
- 재귀
- programmers
- 백준
- MYSQL
- 브루트포스
- 프로그래머스
- N과M
- BFS
- BOJ
- 코딩테스트
- 딕셔너리
- DP
- 운영체제
- python
- 가상메모리 관리
- Today
- Total
목록동기화 (3)
동캄의 코딩도장
High-level Mechanism - Language-level constructs - Object-Oriented concept와 유사 - Monitor, path expressions 등이 존재 장점 - 사용이 쉬움 - Deadlock등 error 발생 가능성이 낮음 단점 - 지원하는 언어에서만 사용가능 - 컴파일러가 OS를 이해하고 있어야 함 Monitor - 공유 데이터와 Critical section의 집합 - Conditional variable (wait(), signal() 연산) Monior의 구조 Entey queue(진입 큐) - 모니터 내의 procedure 수 만큼 존재 Mutual Exclusion - 모니터 내에는 항상 하나의 프로세스만 진입 가능 Information hi..
OS supported SW solution Spinlock - 정수변수 - 초기화, P(), V() 연산으로만 접근가능 - OS가 연산이 한번에 처리되는 것을 보장 P(): 자원을 사용하는 함수 V(): 자원을 반환하는 함수 -멀티 프로세서 시스템에서만 사용가능 - busy waiting 문제 발생 Semaphore - 음이 아닌 정수형 변수(S), 초기화 연산,P(),V()로만 접근 가능 - 임의의 S 변수 하나에 ready queue 하나가 할당 됨 - P()연산을 실행할 수 없으면 ready queue에 대기 - busy waiting 문제 해결 - Semaphore queue 대한 wake-up 순서는 비결정적--> starvation problem Semaphore로 해결 가능한 동기화 문제 ..
동기화 (Synchronization) - 프로세스들이 서로 동작을 맞추는 것 - 프로세스들이 서로 정보를 공유하는 것 임계영역(Critical section) - 공유 데이터를 접근하는 코드 영역 상호배제(Mutual exclusion) - 둘 이상의 프로세스가 동시에 critical section에 진입하는 것을 막는 것 동기화 구현 조건 상호배제 (Mutual exclusion) - Critical section (CS)에 프로세스가 있으면, 다른 프로세스의 진입을 금지 진행 (Progress) - CS 안에 있는 프로세스 외에는, 다른 프로세스가 CS에 진입하는 것을 방해 하면 안됨. 한정대기 (Bounded waiting) - 프로세스의 CS진입은 유한시간 내에 허용되어야 함 Mutual Exc..