You are on page 1of 3

นางสาว ป ยา การ

ประ ล ล
ชื่อ ……………………………………………………….. รหัสนักศึกษา .................................................
64050543

ใบงาน 4
ัตถุประ งค์ ึก า system call fork() และ อื่นๆ ที่เกี่ย ข้อง
4.1 fork()
System call คือ library า รับ
นักพัฒนาโปรแกรมเรียกใ ้ kernel
ใ ้บริการตามค าม ามารถของ
system call นั้นๆ
fork() เป็นคา ั่ง ร้างโพรเซ โพรเซ ใน
ระบบคอมพิ เตอร์มักมีค าม ัมพันธ์แม่
ลูก า รับ โพรเซ ที่ ร้าง และ โพรเซ
ที่ถูก ร้าง
การเรียก fork() ต้องใช้ unistd.h และ sys/types.h
fork() ทา าเนาของ code ของแม่ และคืน process id ของลูกที่ ร้างมาใ ้แม่ ทั้ง 2 โพรเซ จะทางานต่อใน
statement ถัดไป ทาใ ้ pid ใน copy ของลูกเป็น 0 เราจึงใช้ค่านีเ้ ป็นตั แยก code ของแม่ และ ลูก ลังจาก
การ fork()
เนื่องจากการเลือกโพรเซ เข้าไปครอบครองซีพียูเป็น
น้าที่ของโอเอ กล่า คือลาดับการทางานระ ่างโพ
รเซ แม่ กับ โพรเซ ลูกไม่จาเป็นต้องแม่ได้
ครอบครองซีพียูก่อนลูกเ มอ
Q1 จาก code ที่ใ ้ เขียน output 3 แบบที่เป็นไป
ได้

outputi.my
copy of i is 4

ofi is
my copy 2

out put 2 ะ

of i is 2
my copy

my copy of i is 1

out pnt 3 :

of i is 1
my copy
ศิ
ริ
ป์
มู
นางสาว ป ยา การ
ประ ล ล
ชื่อ ……………………………………………………….. รหัสนักศึกษา .................................................
64050543

4.2 fork() and wait()


จึงมี system call wait() เพื่อใ ้นักพัฒนาโปรแกรม ร้างกลไกเพื่อคุมจัง ะการทางานได้ระดับ นึ่ง โดยแม่จะ
เป็นผู้เรียก เมื่อเรียก wait() แล้ แม่จะรอใ ้ลูกจบการ
ทางานจึงจะไปทางานต่อที่ ่ นของโปรแกรม ลัง wait()
กึ า ่า child ลุดจาก wait() ได้อย่างไร ที่
https://man7.org/linux/man-
pages/man2/waitpid.2.html
Q2 จาก code ที่ใ ้ output มีได้ กี่ แบบ อะไรบ้าง

2 แบบ

out put 1 :

copy af i is
my 1

copy of i is
my 2

out put 2 ะ

ot i is 2
my copy

copy of i is 1
my
ศิ
ริ
ป์
มู
นางสาว ป ยา การ
ประ ล ล
ชื่อ ……………………………………………………….. รหัสนักศึกษา .................................................
64050543

4.3 fork() wait() and exit()


เมื่อใช้ if ในการแยก code ่ นของแม่กับลูก ากมีโค้ดต่อจาก if ลูกย่อมไปทาด้ ย ซึง่ ปกติไม่ใช่ ิ่งที่นักพัฒนา
โปรแกรมต้องการ จึงเรียก exit() เพื่อใ ้ลูกจบการทางาน เมื่อทางานของตนเ ร็จ

Q3.1 4_31 บรรทัดที่ 18 ทางานกี่ครั้ง 2 คง

Q3.2 4_32 บรรทัดที่ 18 ทางานกี่ครั้ง 1 คง


ศิ
ริ
รั้
รั้
ป์
มู

You might also like