티스토리 뷰
세마포어를 적용시켜 펜과 연필을 동시에 사용하는 코드를 작성해보자

펜과 연필에 대한 초기값을 3개로 설정하고 4개의 프로세스에서 각 프로세스마다 3번 실행하게 하여 12개를 출력해본 결과이다.
연필과 노트를 가지고 공부를 하는 도중에 다른 프로세스가 끼어들지 못하는 것은 세마포어를 사용했기 때문이다.
!초기값을 신경써서 operation을 적용해야함!
그렇다면 만약에 세마포어를 사용하지 않는다면 어떻게 될까?
라는 생각으로 코드를 바꿔 돌려보았다.

fork( )를 2번실행했을 때는 문제가 없었지만 프로세스를 10개를 만들었을 때 동기화문제가 발생하였다.
이후, 위에서 세마포어를 적용한 코드를 돌린 것도 프로세스를 10개 만들었을 때를 확인해본 결과 동기화 문제가 세마포어때문에 발생하지 않는다는 것도 다시 확인하였다.
공유메모리 shmbusyaccess.c를 실행한 결과와 이를 해결하기 위해 세마포어를 사용한 결과
공유메모리만 사용한 경우 => shmbusyaccess 1234실행

공유메모리만 사용된 shmbusyaccess에서 세마포어를 같이 사용해 동기화 문제를 해결한 경우. pid==getpid()의 결과가 같아야 동시에 공유메모리에 접근하지 않은 것이고 이때 ' . '을 찍어서 출력해본 결과.
=> shmcontrol 1234 2345
=> shm공유메세지를 control세마포어로 컨트롤

'네트워크프로그래밍' 카테고리의 다른 글
스레드 취소요청 (0) | 2021.06.02 |
---|---|
THREAD 프로그래밍 (0) | 2021.05.31 |
세마포어 (0) | 2021.05.31 |
소켓 옵션 변경 (0) | 2021.05.27 |
네트워크프로그래밍 - FIFO (0) | 2021.05.15 |
공지사항
최근에 올라온 글
최근에 달린 댓글
- Total
- Today
- Yesterday
링크
TAG
- 13886
- 백준 15650 파이썬
- 영화 리뷰 긍정 부정 분류
- 온라인프로필 만들기
- LAMBDA
- 핀테크 트렌드
- 11053 백준
- 4963 섬의개수
- 시뮬레이션 c
- 기본 텍스트 분류
- 백준 10866
- stack 컨테이너
- 백트래킹(1)
- 스택 파이썬
- DRF 회원관리
- mm1queue
- c++덱
- 코딩월드뉴스
- 딥러닝입문
- 모듈 사용법
- 백준 4963
- 기사작성 대외활동
- 10866 백준
- 백준 11053 파이썬
- 소프트웨어공학설계
- CSMA/CD란?
- 효율적인방법찾기
- CREATE ASSERTION
- 파이썬 알아두면 유용
- 백준 숫자놀이
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 |
글 보관함