멀티 프로세싱 환경에서의 Locking
329
5 asked
안녕하세요! 좋은 강의 제공해주셔서 감사드립니다.
강의를 듣던 중 궁금한 점이 있습니다.
1. Producer-Consumer 실습(36:18)에서 해당 코드를 수행 시 Producer와 Consumer가 각각 1개씩만 존재할 때 가끔 Consumer가 2번씩 수행되는 이유가 무엇인가요?
Producer와 Consumer가 여러 개 존재하고 소비하는 Item이 다르다면 모르겠지만, 한 개씩 존재하는데 소비하는 Item 이 같아 왜 그런지 이해가 잘 가지않습니다!
2. 만약 멀티 프로세싱 환경에서 서로 다른 프로세서에서 2개의 Producer를 동시에 수행시켜도 해당 코드에수 mutual exclusive를 보장하나요?
예를 들어 Producer1과 Producer2가 서로 다른 cpu core에서 pthread_mutex_lock을 동시에 수행하면 어떤 일이 벌어지나요?
조금 복잡한 질문 드린 것 같아 죄송합니다. 언제나 좋은 강의 감사합니다!
Answer 2
1
1번은 해결하셨다니, 다행입니다. ^^;
2번에 대해서는 simple하게 생각하면 뮤텍스를 보장합니다.
서로 다른 코어에서 실행되더라도 뮤텍스 락을 획득한 프로세스만 임계영역에 진입하기 때문이죠.
하지만, 만약 뮤텍스 락을 메모리 변수 등으로 구현한다면, 상호배제가 안 될 수도 있겠죠.
그래서 멀티 코어 환경에서는 반드시 test_and_set이나 compare_and_swap 같은
하드웨어 인스트럭션으로 뮤텍스 락을 구현해 주어야 됩니다.
하드웨어 인스트럭션으로 뮤텍스 락이 구현되어 있다면,
다른 코어에서 같은 CPU 클럭에 동시에 실행하더라도 동시에 락을 획득할 수가 없을 것입니다.
컨텍스트 스위칭과 PCB
0
146
1
퀴즈 답지
0
215
1
자바 serversocket 관련 질문입니다.
0
152
1
운영체제 공룡책 사려고하는데 원서랑 번역본 중에 어느걸 더 추천하시나요?
0
516
1
java 소켓 통신 예제 질문
0
256
1
코드가 실행이 안됩니다
0
279
1
강사님. 수료 기준이 있을까요?
0
643
1
강의 ppt 제공
0
502
1
강의에서 사용된 Source code는 어디서 볼 수 있을까요?
0
329
1
퀴즈 1번 2번
0
416
2
24:35초에 설명하는 time-sharing이 책에서 다루는 내용과 달라요.
0
396
1
자바 Bounded-Buffer 코드 질문 있습니다.
0
304
0
window10 이 아니면 안되나요??
0
692
1
피터슨 알고리즘과 compare_and_swap 명령어 질문입니다
0
581
1
chapter3. Processes(1) pid_t 정의되지 않은 타입
0
655
1
코드를 실행할 떄
0
348
1
wsl 오류
0
395
2
ubuntu 에러가 뜹니다.
0
2169
1
멀티 프로세싱 vs 멀티 프로그래밍
1
1258
1
데드락 질문
0
388
1
semaphore 로우레벨 코드 질문
0
506
1
1.운영체제가 뭐길래 7분 58초 질문이요
0
749
1
데드락 관련 질문입니다.
1
515
1
좀비 프로세스와 고아 프로세스
1
1115
1

