inflearn logo
강의

강의

N
챌린지

챌린지

멘토링

멘토링

N
클립

클립

로드맵

로드맵

지식공유

리눅스 시스템 프로그래밍 - 이론과 실습

프로세스 개념, 프로세스 생성 - 라이브 프로그래밍

실행이 조금 다른데요

269

문수미

작성한 질문수 6

0

실행했을 때 저 같은 경우는 parent process pid : ~~ 프린트 되고나서 child process pid ~~~가 프린트 됩니다. 그리고 this is the function(pid)가 parent, child 순으로 총 두번 연속해서 출력되는데요. 강의에서는 parent pid 출력된 후 this is the function 출력되고 child pid 출력 후 다시 this is the function이 출력됐습니다. 이부분이 저랑 조금 다른데 왜 그런건가요??

linux

답변 2

3

런잇(ProgCoach4U)

좋은 질문 해주셨네요~ :)

fork() 이후 기존 process인 parent process와 새로 생긴 process인 child process의 실행 순서는 정의되어 있지 않습니다. 즉, 어떤 process가 먼저 실행을 시작할 지 모른다는 것이고, 경우에 따라 바뀔 수 있다는 것입니다.

프로그래밍을 하다보면 parent와 child의 실행 순서를 반드시 맞춰야 하는 경우가 생기는데요, 그런 경우 사용될 수 있는 것이 바로 동기화(Synchronization) 기능입니다. 동기화를 위해 사용할 수 있는 방법은 여러 가지 입니다. 그 중 가장 대표적으로 사용될 수 있는 방법은 POSIX semaphore와 SysV semaphore 입니다. 

동기화 기능을 포함한 IPC(Inter-Process Communication)에 대한 상세한 설명과 예제는 '리눅스 IPC 프로그래밍' 강좌에서 다루고 있습니다 :D

0

문수미

아하 감사합니다 !

inotify 객체에 등록된 watch descriptor 해제 관련 질문

0

36

2

select API 실습 코드 질문

0

40

2

wsl에서 fcntl사용

0

72

2

inotify_event 구조체 질문 [파일 이벤트 - 라이브 프로그래밍]에서...

0

179

2

./stat 파일이름

0

272

2

fopen r, r+모드 차이

0

460

2

강의를 모두 수강하고 스스로 구현하면 좋을 과제나 프로젝트 주제가 있을까요?

0

326

1

pthread 질문

0

419

2

I/O Multiplexing(select) 질문

0

324

1

inotify.c. ret 질문

0

302

1

inotify.c 질의합니다.

1

317

1

child process

0

715

1

read/blocking

0

564

1

flock

0

565

1

system call

0

598

1

pthread_create() 함수 이용했을 때, thread가 두번 호출되는 것 처럼 나타납니다. 왜 그런것인가요?

0

487

1

fork() 함수 사용시 결과 관련 질문

0

371

1

exec 관련 궁금한 사항

0

450

2

파일 디스크립터와 FILE 구조체에 대한 질문

0

552

1

buf 선언에 따른 read() fail 문제

0

251

2

파일 이벤트 - 라이브 프로그래밍 에서 캐스팅 질문

0

254

1

2번 multi thread 방법 질문

0

242

1

segmentation fault 발생 관련 문의

1

842

1

라이브 코딩 실습 코드

0

235

1