티스토리 뷰
Test-and-Set
일정횟수동안만 대기 = 한정대기(bounded waiting)
n-1번 양보하고 들어간다
CAS(Compare and Exchange / Compare and Swap)
Itanium구조는 multicore이다
interrupt는 instruction이 끝나고 다른 instruction시작되기 전에 발생함
lock cmpxchg
이 순간에는 메모리 접근 한 번만 하게 한다
코어가 여러개있을때도 atomic하게 실행하게한다
CISC(복잡한 INSTRUCTION SET) -> CAS힘듬
RISC(단순한 INSTRUCTION SET)
0,0,1
0==0이니까
lock이 1들어감
CAS false되니까
임계구역들어감
CAS 명령어를 사용한 경쟁조건 회피
다르면 false 같으면 true
while(CAS(&shared, temp, shaed+1)
temp=shared;
shared temp
멀티쓰레드프로그램하면
여러녀석이 메모리를 공유하기때문에
예기치않은 문제생기고
배타적인 접근은
임계구역에 해당하는 부분에
코드를 작성해주어야한다
세마변수
두 개의 원자적 함수로 조작되는 정수 변수
P연산 / wait연산 0이면 대기, 1이면 0뺴주고 임계구역 드렁감
V연산 / signal연산 0이면 1더해줌
valueproduced(0)
valueproduced(1) -> v연산
생산자
임계구역x 동기화
계수 세마포어
write할땐
read,write못함
read할땐
read는가능,write는못함
v p v p
java
acquire p연산
release v연산
모니터
synchronized
동시에 한 개의 메소드만 사용될수있다
'개념 > 운영체제' 카테고리의 다른 글
교착상태와 무기한 연기-2 (0) | 2022.04.08 |
---|---|
교착상태와 무기한 연기 (0) | 2022.04.05 |
비동기 병행 실행2 (0) | 2022.03.29 |
쓰레드 (0) | 2022.03.22 |
프로세스2 (0) | 2022.03.18 |
- Total
- Today
- Yesterday
- git
- 우분투
- 클로아
- 프로그래머스
- git 예전 커밋 수정
- git commit 수정
- 로스트아크 캐릭터
- oauth
- html #웹 #웹사이트 #플레이리스트
- 리눅스
- Android Studio
- DML
- authorization code
- html
- infcon 2024
- bfs
- 데이터3법
- SpringBoot
- 2024인프콘
- 데이터 3법
- SQL
- DDL
- 데이터베이스
- authorization_code
- 오픈소스
- oauth2.0
- 인프콘2024
- kloa
- javascript
- CSS
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 | 31 |