inflearn logo
강의

강의

N
챌린지

챌린지

멘토링

멘토링

N
클립

클립

로드맵

로드맵

지식공유

운영체제 공룡책 강의

06. 프로세스간 통신의 실제: Chapter 3. Processes (Part 4)

질문이 있습니다!

252

SIsB

작성한 질문수 19

0

parent 가 언제나 child보다 먼저 실행된다는 보장이 없다고 전 강의에서 설명해주셨고, 이번 강의에서도 concurrency 하게 작동한다고 얘기해주셨는데요 fork 한 이후에 child process가 먼저 파이프에서 READ 하려 먼저 시도하면 원하는 결과인 parent process가 파이프에 WRITE 한 뒤에 child process 가 READ하는 과정은 보장할 수 없지 않나요?

read() 함수가 buffer에 아무것도 없다면 blocking 되는 API인가요?

동시성 운영체제

답변 3

0

주니온

네. 맞습니다. ^^;

0

SIsB

답변이 이렇게 빨리 해주시다니! 감사합니당

후자로 얘기해주셨던 부분은 non-blocking io 인 경우에는 wait() 시스템 콜로 부모의 프로세스가 끝날 때까지 기다린 이후에 인터럽트를 받아서 non-blocking io를 실행하면 된다는 얘기이신거죠?

0

주니온

좋은 의문이네요.

말씀하신 상황에서 child가 read() 했을 때, buffer에 아무 것도 없다면 어떤 일이 벌어지나요?

blocking io일 경우에 buffer에 뭔가 쓰여질 때까지 계속 읽으려고 하고 있겠죠?

그 후에 parent가 write()를 하고 나면 child가 그것을 읽을 수 있으니까

파이프의 정상 동작에는 문제가 없습니다.

non-blocking io일 경우에도 wait하고 있다가 parent의 signal을 받아서 깨어나니까

파이프의 정상 동작에는 문제가 없겠지요.

퀴즈 7번의 답에 대한 질문입니다.

0

541

1

이해하고 있는것이 맞는건지 궁금합니다 ㅠㅠ

0

802

1

타우시간

0

533

1

퀴즈1 1번 질문합니다 !

1

593

1

Page는 Text Data이외에 다른 메모리도 포함하나요?

1

369

0

IPC shared memory 코드

0

508

1

[간단한 질문 ]banker's algorithm 을 linux 에서 실제로 프로세스 관리할때 쓰이나요?

0

393

0

user mode i/o 관련 질문

0

273

1

shared memory 관련해서 질문 드립니다.

0

508

1

교수님 fork()함수에 대해 질문이 있습니다.

0

878

2

process 와 thread

0

360

1

교수님 Docker 로 실습해도 괜찮을까요?

1

856

1

Mac OS에서 Docker 이용하여 Ubuntu 20.04 환경설정 방법 공유

22

3313

2

moniter, condition variable, synchronized에 대해서 궁금한점이 있습니다..

0

660

1

왜 무료인지 이해를 못 하겠네요..

3

420

1

7.1 Classic Problems of Synchronization 질문이 있습니다

0

292

1

공룡책 8판과 10판중

0

589

1

6.3 peterson's solution 질문이 있습니다

0

217

1

08-01 연습문제 8번 질문있습니다!

0

275

0

06. 프로세스간 통신의 실제: Chapter 3. Processes (Part 4) 에 그림 3.16 3.17 실습 오류

0

259

1

안녕하세요 교수님 실습 해봤는데 LINE J가 실행이 됩니다

1

347

1

2강 실습을 위한 개발환경 구축(Windows 10 + WSL 2 + Visual Studio Code)에서 출력오류

0

337

1

아래 질문 관련하여 다시 문의드립니다

0

192

1

Thread & Concurrency (Part 2) 질문드립니다

0

181

1