일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 |
Tags
- 타입 객체
- DirectX12
- 영속성
- 락
- 멀티쓰레드
- I/O장치
- 렌더링 파이프라인
- 다이나믹 프로그래밍
- 자료구조
- OS
- Direct12
- 그리디알고리즘
- 프로그래머스
- 다이나믹프로그래밍
- 그리디 알고리즘
- directx
- 파일시스템 구현
- 스케줄링
- 디자인패턴
- DirectX 12
- 운영체제
- 컨디션 변수
- 동적계획법
- 병행성
- 멀티프로세서
- 쓰레드
- 백준
- 병행성 관련 오류
- 알고리즘
- codility
Archives
- Today
- Total
목록세마포어 (1)
기록공간

세마포어는 정수 값을 갖는 객체로서 두 개의 루틴으로 조작할 수 있다. 이 두 개의 루틴은 각각 sem_wait()와 sem_post()이다. 세마포어는 초기값에 의해 동작이 결정되기 때문에, 사용하기 전 "제일 먼저" 값을 초기화해야 한다. class semaphore { int value; semaphore() {value = 1;} }; 세마포어 객체 정수 값을 1로 초기화 한다. 이제 세마포어 내에 있는 sem_wait()와 sem_post() 메서드를 살펴보도록 하겠다. 이 둘은 원자적으로 실행된다. 레이스 컨디션 (쓰레드 간의 공유하는 값을 서로 쓰려고 하는 경쟁상태)이 발생할 수 있다는 사실은 걱정하지 말자. 그것은 곧 락과 컨디션 변수를 사용하게 될 것이다. * sem_wait() int ..
OS
2020. 5. 4. 23:11