inflearn logo
강의

Course

Instructor

Operating System Dinosaur Book Lecture

15. Classical problems of concurrency control: Chapter 7. Synchronization Examples (Part 1)

멀티 프로세싱 환경에서의 Locking

329

GE LO

5 asked

0

안녕하세요! 좋은 강의 제공해주셔서 감사드립니다.

강의를 듣던 중 궁금한 점이 있습니다.

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

joonion

1번은 해결하셨다니, 다행입니다. ^^;

2번에 대해서는 simple하게 생각하면 뮤텍스를 보장합니다.

서로 다른 코어에서 실행되더라도 뮤텍스 락을 획득한 프로세스만 임계영역에 진입하기 때문이죠.

하지만, 만약 뮤텍스 락을 메모리 변수 등으로 구현한다면, 상호배제가 안 될 수도 있겠죠.

그래서 멀티 코어 환경에서는 반드시 test_and_set이나 compare_and_swap 같은

하드웨어 인스트럭션으로 뮤텍스 락을 구현해 주어야 됩니다.

하드웨어 인스트럭션으로 뮤텍스 락이 구현되어 있다면, 

다른 코어에서 같은 CPU 클럭에 동시에 실행하더라도 동시에 락을 획득할 수가 없을 것입니다.

0

GE LO

하드웨어 단에서 반드시 지원을 해주어야하는군요..!

감사합니다!!

0

GE LO

질문 1은 세마포어의 S값이 1이 아닌 상태로 수행되었기 때문에 그렇군요 ㅎㅎ 조금 더 생각해보고 질문드릴걸 그랬습니다. 감사합니다.

컨텍스트 스위칭과 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