﻿1
00:00:03,919 --> 00:00:07,919

2
00:00:11,299 --> 00:00:11,307

3
00:00:11,307 --> 00:00:15,298

4
00:00:15,298 --> 00:00:19,298

5
00:00:19,302 --> 00:00:23,302
(อาจารย์พิเชนทร์) วันนี้เราจะพูดถึงหัวข้อของการจัดการ

6
00:00:23,309 --> 00:00:27,299
Process นะครับ

7
00:00:27,299 --> 00:00:31,299
เราเคยได้ยินไหม

8
00:00:31,299 --> 00:00:35,298
Process

9
00:00:35,298 --> 00:00:39,298
ครับ ถามหมู่ 1 เคยได้ยินไหมครับ คำนี้

10
00:00:39,302 --> 00:00:43,299
เรียนตั้งแต่มัธยม

11
00:00:43,299 --> 00:00:47,299
Process คืออะไรเอ่ย

12
00:00:47,300 --> 00:00:51,299
Process ครับ

13
00:00:51,299 --> 00:00:55,298

14
00:00:55,298 --> 00:00:59,298

15
00:00:59,298 --> 00:01:03,298
เขาบอกว่านะครับ เขาให้ความหมาย ความหมายเยอะแยะ

16
00:01:03,299 --> 00:01:07,299
นะครับ แต่ความหมายที่เรา

17
00:01:07,299 --> 00:01:11,299
ใช้กันนะครับ เอกสารยังไม่ได้หรือ

18
00:01:11,309 --> 00:01:15,299
อยู่กับใครเอกสารหมดหรือยัง

19
00:01:15,299 --> 00:01:19,299
อยู่กับใครครับ เอกสาร

20
00:01:19,300 --> 00:01:23,300
เหลืออยู่กับใคร

21
00:01:23,304 --> 00:01:27,303
มีไหม อยู่กับใครครับ เอกสารเหลือน่ะ

22
00:01:27,303 --> 00:01:31,300
หมดไหมครับ

23
00:01:31,300 --> 00:01:35,299
บทที่ 2 น่ะ

24
00:01:35,299 --> 00:01:39,299
อยู่กับใคร เหลืออยู่กับใคร มันต้องเหลือสิ

25
00:01:39,301 --> 00:01:43,301
มันต้อง 50 ชุดนะครับ ถ่ายมา

26
00:01:43,301 --> 00:01:47,298
อยู่ไหนล่ะ

27
00:01:47,298 --> 00:01:51,298
ห้อง 1 มันยังไม่เห็นเอกสารอาทิตย์ที่แล้ว

28
00:01:51,311 --> 00:01:55,304
วางไว้ที่โต๊ะไหน

29
00:01:55,304 --> 00:01:59,299
หรือหมู่ 1

30
00:01:59,299 --> 00:02:03,299
หมู่ 1 หมู่ 1 ส่

31
00:02:03,303 --> 00:02:07,300
งไปที่ไหน ยังไม่ส่งใช่ไหม

32
00:02:07,300 --> 00:02:11,298

33
00:02:11,298 --> 00:02:15,298
เห็นแต่ของห้อง 2

34
00:02:15,302 --> 00:02:19,302
แต่ผมตรวขแล้วนะครับผม ตรวจแล้วก็คืนให้แล้ว

35
00:02:19,302 --> 00:02:23,299
นะครับ นี่ ๆ ใครมาช้ามาเอา

36
00:02:23,299 --> 00:02:27,298
นะครับ

37
00:02:27,298 --> 00:02:31,298

38
00:02:31,298 --> 00:02:35,298
เอกสารที่ผมตรวจนะครับผม จะไม่ได้ตรวจให้ทุกข้อ

39
00:02:35,302 --> 00:02:39,301
นะ ผมจะเซ็นลายเซ็นให้เฉย ๆ นะครับ เป็นการตรวจเช็กแต่ละสัปดาห์

40
00:02:39,301 --> 00:02:43,301
แล้วก็เราเอาไว้อ่านสอบนะครับ เพราะว่า

41
00:02:43,302 --> 00:02:47,302
ตอนนี้เราเรียน 2-3 สัปดาห์แล้วนะครับ จะครบเดือนแล้ว

42
00:02:47,306 --> 00:02:51,300
เดี๋ยวสัปดาห์หน้านะครับ

43
00:02:51,300 --> 00:02:55,300
ห้องหมู่ 2 จะไม่อยู่นะครับ

44
00:02:55,300 --> 00:02:59,300
ผมก็ไม่อยู่นะครับ สัปดาห์หน้าเราไม่มี

45
00:02:59,302 --> 00:03:03,302
นะครับ เราจะยกเลิกคลาสนะครับ เพราะว่าหมู่ 2 จะไป

46
00:03:03,306 --> 00:03:07,305
ศึกษาดูงานข้างนอกนะครับ

47
00:03:07,305 --> 00:03:11,302
ผมก็ไปด้วยนะครับ ทั้งวันนะครับ

48
00:03:11,302 --> 00:03:15,299
สัปดาห์ถัดไปปิดใช่ไหม

49
00:03:15,299 --> 00:03:19,299
หยุด สัปดาห์ถัดไปอีกเรียน สัปดาห์ถัดไปหยุดอีก

50
00:03:19,301 --> 00:03:23,301
เดือนนี้หยุดเยอะนะครับ

51
00:03:23,301 --> 00:03:27,301
มาดูนะครับ Process นะครับ Process Process

52
00:03:27,301 --> 00:03:31,301
เขาให้ความหมายว่า

53
00:03:31,301 --> 00:03:35,300
Process คือ โปรแกรมที่กำลังถูก Execute

54
00:03:35,300 --> 00:03:39,299

55
00:03:39,299 --> 00:03:43,299
นะครับ Execute คืออะไร

56
00:03:43,303 --> 00:03:47,303
เคยได้ยินไหมครับ

57
00:03:47,307 --> 00:03:51,301
เขาบอก Process คือ โปรแกรมที่กำลังถูก Execute

58
00:03:51,301 --> 00:03:55,301
เป็นอย่างไรครับ Execute

59
00:03:55,306 --> 00:03:59,300
ผมเชื่อว่าพวกเราจบ

60
00:03:59,300 --> 00:04:03,300
มัธยมศึกษาปีที่ 6 มา มันต้องเคยได้

61
00:04:03,302 --> 00:04:07,302
เรียนนะครับคอมพิวเตอร์พื้นเรียนหรือยัง เรียนหรือยังครับ หมู่ 1

62
00:04:07,307 --> 00:04:11,300
เรียนแล้วใช่ไหม

63
00:04:11,300 --> 00:04:15,300
นะครับ ถามตอบด้วยเด้อ ถามตอบ

64
00:04:15,301 --> 00:04:19,299
มีปฏิสัมพันธ์ด้วยนะครับ

65
00:04:19,299 --> 00:04:23,299
เพราะเราทุกวันนี้นะครับ เราค่อนข้างขาดปฏิสัมพันธ์

66
00:04:23,303 --> 00:04:27,300
นะครับ

67
00:04:27,300 --> 00:04:31,300
ผมเข้าใจนะ พวกเราเป็น generation

68
00:04:31,301 --> 00:04:35,300
นะครับ เราเจนอะไรครับ

69
00:04:35,300 --> 00:04:39,300
เรา Genaration อะไร

70
00:04:39,300 --> 00:04:43,299
Gen Y หรอ แม่นหรอ

71
00:04:43,299 --> 00:04:47,299
ใช่ไหม ใช่หรือ เรา Gen y หรือ

72
00:04:47,301 --> 00:04:51,300
Gen อะไรดี

73
00:04:51,300 --> 00:04:55,300
ยังไม่รู้อีกตัวเอง Gen อะไร เดี๋ยวไปถามห้อง 2

74
00:04:55,303 --> 00:04:59,302
ยังไม่ถามห้อง 2 ถามห้อง 1 ก่อน

75
00:04:59,302 --> 00:05:03,302
ตอนนี้พวกเรามีปัญหานะครับ เรื่องของ

76
00:05:03,306 --> 00:05:07,300
ความแตกต่างระหว่าง Genaretion

77
00:05:07,300 --> 00:05:11,300
รุ่นผมนี่ คุยกับพวกเรานี่

78
00:05:11,302 --> 00:05:15,299
ไม่ค่อยรู้เรื่อง

79
00:05:15,299 --> 00:05:19,299
จริงไหม จริงไหมอุบล เราคนละ Generation

80
00:05:19,301 --> 00:05:23,299
นะครับ รุ่นพวกเรานี่

81
00:05:23,299 --> 00:05:27,299
ความอดทนน้อยนะครับ รอได้ไหม รอไม่ได้นะครับ

82
00:05:27,302 --> 00:05:31,301
จะเอาเดี๋ยวนี้จะกินข้าวก็จะกินเดี๋ยวนี้

83
00:05:31,301 --> 00:05:35,300
ถ้าจะให้ไปต่อคิวก็ไม่ไป

84
00:05:35,300 --> 00:05:39,300
เห็นไหมครับ มันถึงเกิดอะไรขึ้นมา เกิดการขาย

85
00:05:39,301 --> 00:05:43,300
ออนไลน์ เกิดพวก Grab พวก Food Panda ใช่ไหม

86
00:05:43,300 --> 00:05:47,300

87
00:05:47,309 --> 00:05:51,300
จากที่ผมอ่านนะครับ อ่าน

88
00:05:51,300 --> 00:05:55,300
ทดสอบก่อนเรียนพวกเรา ก็พื้นฐาน

89
00:05:55,301 --> 00:05:59,301
พอ ๆ กันนะ พอ ๆ กันนะครับ

90
00:05:59,302 --> 00:06:03,300
ก็คือยังไม่เข้าใจ

91
00:06:03,300 --> 00:06:07,300
ความหมาย ยังไม่เข้าใจหลักการของคอมพิวเตอร์มาก

92
00:06:07,302 --> 00:06:11,302
นะครับ ก็ไม่เป็นไรนะครับ จริง  ๆ อย่างที่ผมบ

93
00:06:11,304 --> 00:06:15,302
อกเราควรจะจัดให้เรียนอยู่ชั้นปีที่ 3 นะครับ แต่เราก็

94
00:06:15,302 --> 00:06:19,300
มาจัดเสีย ปี 1 เทอม 1

95
00:06:19,300 --> 00:06:23,300
ก็ไม่เป็นไรนะครับ ก็ปรับเอา เขาบอกว่า Process

96
00:06:23,301 --> 00:06:27,301
โปรแกรมที่กำลังถูก Execute

97
00:06:27,302 --> 00:06:31,302
สัปดาห์ก่อนใช่ไหม พอเราส่งข้อมูลจากคีย์บอร์ด

98
00:06:31,314 --> 00:06:35,299
ใช่ไหมครับ

99
00:06:35,299 --> 00:06:39,299
ส่งจากคีย์บอร์ปุ๊บเข้าไปไหนครับ คิดตาม

100
00:06:39,301 --> 00:06:43,299
เข้าไปไหน

101
00:06:43,299 --> 00:06:47,299
คีย์บอร์ด คือ Input ใช่ไหม

102
00:06:47,300 --> 00:06:51,300
พอเข้าไปในคอมพิวเตอร์เราเรียกว่าเข้าไปอะไร

103
00:06:51,308 --> 00:06:55,301
ไปประมวลผลใช่ไหมครับ ประมวลผลเสร็จ

104
00:06:55,301 --> 00:06:59,300
ทำอะไรต่อ

105
00:06:59,300 --> 00:07:03,300
ก็ไปแสดงผลใช่ไหม นี่คือหลักของมัน

106
00:07:03,301 --> 00:07:07,300
Input ประมวลผล Process

107
00:07:07,300 --> 00:07:11,300
ใช่ไหมแล้วก็ออกไป Output

108
00:07:11,300 --> 00:07:15,300
นี่คือหลักการของมัน เขาบอกว่า Process คือโปรแกรม

109
00:07:15,302 --> 00:07:19,302
กำลังถูก Execute นั่นหมายความว่า... บางคนให้ความหมายว่า

110
00:07:19,307 --> 00:07:23,303
เป็นโปรแกรมที่เข้าไปครอบครอง CPU

111
00:07:23,303 --> 00:07:27,301
หรือเข้าไปใช้งาน CPU

112
00:07:27,301 --> 00:07:31,300
แล้วแต่เอกสารตำราแต่ละคนแต่ง

113
00:07:31,300 --> 00:07:35,300
นะครับ คือ หลักการก็คือ

114
00:07:35,301 --> 00:07:39,300
โปรแกรมที่กำลังถูก Execute

115
00:07:39,300 --> 00:07:43,300
ในคอมพิวเตอร์เรา มันจะมีไฟล์อยู่ไฟล์หนึ่ง เป็น

116
00:07:43,302 --> 00:07:47,301
นามสกุล ไฟล์ทุกไฟล์ต้องมีนามสกุล

117
00:07:47,301 --> 00:07:51,301
ดูรายละเอียดต่อไปนะครับ ก็คือนามสกุลที่ .exe

118
00:07:51,302 --> 00:07:55,300
เคยเห็นไหมเคยสังเกตไหมเวลาเราใช้

119
00:07:55,300 --> 00:07:59,300
หรือไม่รู้เปิดขึ้นมาใช้แล้วก็ปิด

120
00:07:59,302 --> 00:08:03,302
นะครับ เราอย่าไปดู

121
00:08:03,302 --> 00:08:07,302
ในสไลด์อาจารย์มากนะ อาจารย์ก็พูดไปเรื่อยนะ

122
00:08:07,304 --> 00:08:11,299
ครับ มันไม่ได้อยู่ในนี้

123
00:08:11,299 --> 00:08:15,299
หรอก คราวนี้ถ้า Process

124
00:08:15,300 --> 00:08:19,300
ถ้าโปรแกรมเดียว โปรแกรม...

125
00:08:19,301 --> 00:08:23,301
ทำงานปุ๊บเป็นอย่างไรครับ ยุ่งยากไหม

126
00:08:23,306 --> 00:08:27,302
Input เสร็จ เข้าไปประมลผลเสร็จ

127
00:08:27,302 --> 00:08:31,302
เข้าไปประมวลผลเสร็จ แสดงออก ถ้าโปรแกรมเดียว

128
00:08:31,303 --> 00:08:35,303
ไม่มีปัญหานะครับ แต่ถ้าเมื่อไรก็ตามที่

129
00:08:35,303 --> 00:08:39,303
มีหลาย ๆ โปรแกรมทำงานพร้อมกัน ที่เขาบอกว่าเป็นระบบหลายโปรแกรม

130
00:08:39,314 --> 00:08:43,300
เขาบอก Process

131
00:08:43,300 --> 00:08:47,300
อาจเปรียบได้กับรถยนต์ คือ มีรถยนต์หลายคัน

132
00:08:47,304 --> 00:08:51,302
และตัวของ

133
00:08:51,302 --> 00:08:55,300
CPU เอง ก็เปรียบเหมือนคนขับ

134
00:08:55,300 --> 00:08:59,300
เหมือนกับว่า คอมพิวเตอร์เรา

135
00:08:59,300 --> 00:09:03,300
มี CPU อยู่แค่ตัวเดียว แต่มีคนต้องการใช้งานเยอะ โปรแกรมเยอะ ต้องทำอย่างไรครับ

136
00:09:03,311 --> 00:09:07,302
วิธีการมัน ถ้าเป็นเรา เราทำอย่างไรครับ

137
00:09:07,302 --> 00:09:11,301
เช่น มีรถอยู่ 5 คัน

138
00:09:11,301 --> 00:09:15,301
มีคนขับอยู่คนเดียว ทำอย่างไรจึงจะขับเข้าไปในเมืองพร้อมกันได้

139
00:09:15,303 --> 00:09:19,302
พร้อมกันได

140
00:09:19,302 --> 00:09:23,300
้ลากรถ 4 คัน คนอื่นล่ะ

141
00:09:23,300 --> 00:09:27,300
คนอื่นล่ะทำอย่างไร

142
00:09:27,300 --> 00:09:31,300
คนอื่นมีวิธีการอื่นไหมครับ

143
00:09:31,301 --> 00:09:35,301
หลักการคอมพิวเตอร์เวลาทำงาน

144
00:09:35,307 --> 00:09:39,301
ใช่ไหม โปรแกรมจะเข้าไปทำงาน เข้าไปครอบ

145
00:09:39,301 --> 00:09:43,301
CPU ได้ที่ละ 1 โปรแกรม ก็เหมือนคนเรานี่

146
00:09:43,302 --> 00:09:47,302
ขับรถ ขับได้ทีละคัน

147
00:09:47,306 --> 00:09:51,303
จะลากจะพ่วงเหมือนเราว่าไม่ได้ตามหลักการนะ  ทำไม่ได้ หลักการทำไม่ได้

148
00:09:51,303 --> 00:09:55,300
ทำอย่างไรดีล่ะ วิธีการก็คือ

149
00:09:55,300 --> 00:09:59,300
ขึ้นไปขับคันที่ 1 จากราชภัฏสกลนคร

150
00:09:59,304 --> 00:10:03,300
แล้วไปจอด

151
00:10:03,300 --> 00:10:07,300
กลับมาขับครั้งที่ 2 ก็มา... คันที่ 3 คันที่ 4 คันที่ 5

152
00:10:07,301 --> 00:10:11,301
นะครับ พอถึงขับไปใหม่ขับ

153
00:10:11,301 --> 00:10:15,301
ไปถึงหน้าประตูเมือง ย้อนไปที่ 2 3 4 5 อย่างนี้

154
00:10:15,303 --> 00:10:19,300
นะครับ แต่

155
00:10:19,300 --> 00:10:23,300
เวลาทำงานจริงเป็นอย่างไรครับ คอมพิวเตอร์ทำงานด้วยความเร็ว

156
00:10:23,304 --> 00:10:27,301
สูงไหม

157
00:10:27,301 --> 00:10:31,301
หายใจทันไหมครับ ทันไหม

158
00:10:31,305 --> 00:10:35,300
ไม่น่าทันนะ

159
00:10:35,300 --> 00:10:39,300
การทำงานจริง ๆ มันจะทำงานเหมือนที่อาจารย์

160
00:10:39,302 --> 00:10:43,300
ยกตัวอย่างเมื่อกี้ ไปทีละคัน ๆ

161
00:10:43,300 --> 00:10:47,300
แต่พอมาทำงานจริงมันทำงานได้ความเร็วสูง มันเลยเหมือนประหนึ่ง

162
00:10:47,329 --> 00:10:51,307
ว่ามันไปพร้อม ๆ กันเลย

163
00:10:51,307 --> 00:10:55,301
นะครับ นี่คือหลักการทำงานของคอมพิวเตอร์

164
00:10:55,301 --> 00:10:59,300
จะอย่างยกตัวอย่างนี้ ระบบ

165
00:10:59,300 --> 00:11:03,300
หลายโปรแกรมก็เหมือนเป็น CPU เป็นคนขับโปรแกรมหลาย ๆ โปรแกรม เหมือนรถ

166
00:11:03,306 --> 00:11:07,302
นะครับ ทำอย่างไรให้ไปด้วยความเร็วสูง

167
00:11:07,302 --> 00:11:11,300

168
00:11:11,300 --> 00:11:15,299
คราวนี้มาดู

169
00:11:15,299 --> 00:11:19,299
องค์ประกอบของ Process นะครับ

170
00:11:19,301 --> 00:11:23,300
Process มีองค์ประกอบอะไรบ้าง

171
00:11:23,300 --> 00:11:27,300
พอเรียนจบบทนี้นะครับ นักศึกษาก็จะงง

172
00:11:27,301 --> 00:11:31,301
เริ่มงงนะ มันเริ่มเหมือนบทที่ 1 ใช่ไหม

173
00:11:31,302 --> 00:11:35,300
บทที่ 1 พื้นฐานนะครับ งงไม่ต้องตกใจครับ

174
00:11:35,300 --> 00:11:39,300
ค่อย ๆ ปรับนะครับ เราเพิ่งเข้าเรียนปี 1 นะครับ

175
00:11:39,300 --> 00:11:43,300
ปรับสภาพแวดล้อม ปรับสภาพหลาย ๆ อย่างนะครับ

176
00:11:43,301 --> 00:11:47,301
แล้วตอนนี้ห้องแล็ปเราก็ยังใช้ไม่ได้ใช่ไหม

177
00:11:47,302 --> 00:11:51,302
อาจารย์เข้าแจ้งหรือยังว่าใช้ได้เมื่อไร อาคาร 7 เรา

178
00:11:51,311 --> 00:11:55,307
ไม่แจ้งเพราะว่าเราไม่รู้ว่าจะใช้ได้เมื่อไ

179
00:11:55,307 --> 00:11:59,301
รผมแวะไปเมื่อวานก็ไม่มีทีท่าว่าจะได้ใช้เลยนะ

180
00:11:59,301 --> 00:12:03,301
คนทำก็นั่งทำง็อกแง็ก ๆ อยู่คน 2 คน

181
00:12:03,302 --> 00:12:07,302
เทอมนี้ผมว่าไม่น่าทันนะ น่าจะได้ใช้เทอมหน้า

182
00:12:07,302 --> 00:12:11,300
นะครับ เทอมหน้าก็

183
00:12:11,300 --> 00:12:15,300
เราได้เครื่องใหม่มาเทอมหน้าก็ได้ใช้ ก็เป็นรุ่นพวกเราได้ใช้

184
00:12:15,305 --> 00:12:19,302
นะครับ เทอมหน้า

185
00:12:19,302 --> 00:12:23,302
องค์ประกอบตัวที่ 1 ของ Process นะครับ ก็คือ 1. Process

186
00:12:23,311 --> 00:12:27,304
ทุกวตัวจะต้องมีชื่อและหมายเลขประจำตัว

187
00:12:27,304 --> 00:12:31,300
นะครับ Process ID

188
00:12:31,300 --> 00:12:35,300
นะครับ และจะต้อง

189
00:12:35,300 --> 00:12:39,300
ไม่ซ้ำกันนะครับ

190
00:12:39,300 --> 00:12:43,299
เหมือนชื่อ ไฟล์น่ะ

191
00:12:43,299 --> 00:12:47,299

192
00:12:47,300 --> 00:12:51,300
ได้ไหมครับ ชื่อไฟล์นามสกุลไฟล์

193
00:12:51,300 --> 00:12:55,300
นะครับ องค์ประกอบ Process อีกตัวหนึ่ง คือ

194
00:12:55,311 --> 00:12:59,307
ชื่อและหมายเลขประจำตัวเหมือนหมายเลขบัตรประจำตัวเราน

195
00:12:59,307 --> 00:13:03,306
ะ เราซ้ำกันได้ไหมครับ ได้ไหม

196
00:13:03,306 --> 00:13:07,300
ไม่ได้นะครับ แต่ถ้าถาม

197
00:13:07,300 --> 00:13:11,300
ย้อนกลับว่าชื่อและนามสกุลมีโอกาสซ้ำกันได้ไหม

198
00:13:11,301 --> 00:13:15,300
ได้นะครับ เพราะอะไร

199
00:13:15,300 --> 00:13:19,300
เช่น อาจจะมีพิเชน จันทร์ปุ่ม เหมือนกัน

200
00:13:19,303 --> 00:13:23,303
เพราะอะไรครับ เพราะอาจจะมีญาติพี่น้อง

201
00:13:23,304 --> 00:13:27,304
นามสกุลเหมือนกัน บังเอิญว่าชื่อพิเชนทร์มันเพราะ เลยตั้งเหมือนกัน

202
00:13:27,308 --> 00:13:31,303
เลข 123 หลักห้ามซ้ำกัน

203
00:13:31,303 --> 00:13:35,301
องค์ประกอบอันที่ 2 ของ

204
00:13:35,301 --> 00:13:39,299
Process ทุก Pro

205
00:13:39,299 --> 00:13:43,299
cess มีโค้ดนะครับ เป็นโค้ดนะครับ

206
00:13:43,300 --> 00:13:47,300
เป็น code เป็นรหัส

207
00:13:47,300 --> 00:13:51,300
คำว่า "โค้ด" ก็คือจะต้อง Execute ได้ทันที

208
00:13:51,303 --> 00:13:55,300
คือภาษาเครื่องแปล้รียบร้อยแล้ว

209
00:13:55,300 --> 00:13:59,300
นะครับ

210
00:13:59,300 --> 00:14:03,300
องค์ประกอบอันที่ 3 ก็คือข้อมูล

211
00:14:03,302 --> 00:14:07,300
Data ข้อมูลนะครับ

212
00:14:07,300 --> 00:14:11,300
เขาบอกว่าโปรแกรม

213
00:14:11,300 --> 00:14:15,300
ต้องการหรือจัดการข้อมูลอาจจะเป็นของ Process ใด Process หนึ่ง

214
00:14:15,305 --> 00:14:19,301
หรืออาจจะใช้ข้อมูลร่วมกันกับ Process

215
00:14:19,301 --> 00:14:23,301
ใช้ร่วมกันได้ ตัวอย่างของ Process

216
00:14:23,303 --> 00:14:27,303
ที่ใช้ข้อมูลร่วมกัน เช่น

217
00:14:27,305 --> 00:14:31,302
Process ในระบบฐานข้อมูล

218
00:14:31,302 --> 00:14:35,300
นะครับ

219
00:14:35,300 --> 00:14:39,300
เช่น ฐานข้อมูลระบบทะเบียนราชภัฏสกลนคร

220
00:14:39,300 --> 00:14:43,300
อย่างนี้ เช่น เรามา

221
00:14:43,301 --> 00:14:47,301
รายงานตัวเป็นนักศึกษานะครับ พอเราขึ้นทะเบียนปุ๊บ

222
00:14:47,303 --> 00:14:51,303
พอเราไปห้องสมุดก็ใช้ฐานข้อมูลเดียวกัน

223
00:14:52,303 --> 00:14:56,303
ในการเงิน ก็ใช้ฐานข้อมูลชุดเดียวกัน

224
00:14:56,305 --> 00:15:00,301
นะครับ ศูนย์คอมไปกอง

225
00:15:00,301 --> 00:15:04,301
ก็ฐานข้อมูลอันเดียวกันนะครับ โดยใช้ฐานข้อมูลร่วมกัน

226
00:15:04,310 --> 00:15:08,300
นะครับ

227
00:15:08,300 --> 00:15:12,300
องค์ประกอบ

228
00:15:12,300 --> 00:15:16,300
อันที่ 4 ของ Process ก็คือ

229
00:15:16,301 --> 00:15:20,301
Process  Control Block นะครับ หรือบล็อกควบคุมโปรแกรม

230
00:15:20,309 --> 00:15:24,307
ระบบปฎิบัติการจะกำหนดเนื้อที่บางส่วน

231
00:15:24,307 --> 00:15:28,303
กำหนดเนื้อที่บางส่วนในหน่วยความจำ ทำเป็น Process

232
00:15:28,303 --> 00:15:32,299
Contoln bO

233
00:15:32,299 --> 00:15:36,299
หรือ PCB นะครับ

234
00:15:36,318 --> 00:15:40,300

235
00:15:40,300 --> 00:15:44,300
กำหนดไว้ทำไมนะครับ ก็คือ 1. กำหนดไว้เป็น Process

236
00:15:44,304 --> 00:15:48,304
กำหนดไว้เพื่อเป็น

237
00:15:48,307 --> 00:15:52,300

238
00:15:52,300 --> 00:15:56,300
เก็บหมาเลขความสำคัญของ Process

239
00:15:56,303 --> 00:16:00,303
อยู่ใน PCB นะครับ

240
00:16:00,303 --> 00:16:04,303
ใน Process แต่ละตัวจะมี

241
00:16:04,307 --> 00:16:08,307
บล็อกควบคุมโปรแกรมหรือ PCB อยู่นะครับ ซึ่ง PCB นี้

242
00:16:08,307 --> 00:16:12,307
ก็จะเก็บสถานะของ Process

243
00:16:12,320 --> 00:16:16,306
แล้วก็เก็บลำดับความสำคัญของ Process เอาไว้นะครับ

244
00:16:16,306 --> 00:16:20,306
นอกจากนั้น

245
00:16:20,310 --> 00:16:24,302
ก็ยังเก็บสารสนเทศที่เกี่ยวกับ

246
00:16:24,302 --> 00:16:28,301
การจัดการหน่วยความจำของ Process

247
00:16:28,301 --> 00:16:32,301
ข้อมูลรับส่งข้อมูลของ Process

248
00:16:32,301 --> 00:16:36,301
หรือเก็บข้ามูลสำคัญของ Pro

249
00:16:36,301 --> 00:16:40,301
ใน PCB นั่นเองนะครับ พื้นที่จัดเก็บ คือ Register

250
00:16:40,303 --> 00:16:44,303
นะครับ

251
00:16:44,307 --> 00:16:48,307
Register คืออะไร Register ก็คือหน่วยความจำขนาดเล็ก

252
00:16:48,310 --> 00:16:52,303
ที่ในหน่วยความจำ ส่วนในรายละเอียดต่าง ๆ

253
00:16:52,303 --> 00:16:56,303
อาจารย์จะพูดในบทที่ 3, 4, 5 นะครับ อันนี้พูดคร่าว ๆ ก่อน

254
00:16:56,311 --> 00:17:00,302
ให้พวกเรามอภาพกว้าง ๆ

255
00:17:00,302 --> 00:17:04,301

256
00:17:04,301 --> 00:17:08,301

257
00:17:08,308 --> 00:17:12,301
ครับผม

258
00:17:12,301 --> 00:17:16,301

259
00:17:16,301 --> 00:17:20,301

260
00:17:20,302 --> 00:17:24,301

261
00:17:24,301 --> 00:17:28,301

262
00:17:28,306 --> 00:17:32,301

263
00:17:32,301 --> 00:17:36,301

264
00:17:36,310 --> 00:17:40,302

265
00:17:40,302 --> 00:17:44,302
ดูต่อนะครับ

266
00:17:44,302 --> 00:17:48,302
องค์ประกอบต่อมา

267
00:17:48,302 --> 00:17:52,302
นะครับ ของ Process ก็คือ

268
00:17:52,303 --> 00:17:56,303
นะครับ

269
00:17:56,307 --> 00:18:00,307
หรือ PSW นะครับ Program Status Words นะครับ

270
00:18:00,314 --> 00:18:04,305
เป็นตัวควบคุมลับดับของ Exci

271
00:18:04,305 --> 00:18:08,305
ของ Process

272
00:18:08,313 --> 00:18:12,312
มันจะบอกว่า Process นี้จะเข้าไปครอบครอง

273
00:18:12,312 --> 00:18:16,304
CPU ลำดับที่เท่าไรนะครับ

274
00:18:16,304 --> 00:18:20,302

275
00:18:20,302 --> 00:18:24,302
ต่อมานะครับ คุณสมบัติของ Process นะครับ แต่ละ Process

276
00:18:24,323 --> 00:18:28,305
จะมีคุณสมบัติดังต่อไปนี้

277
00:18:28,305 --> 00:18:32,305
นะครับ ก็คือ 1. Process ทุก

278
00:18:32,305 --> 00:18:36,304
ตัวจะมีลำดับความสำคัญ

279
00:18:36,304 --> 00:18:40,304
ต่างกันนะครับ Process ทุก Process

280
00:18:40,304 --> 00:18:44,303
จะมีลำดับความสำคัญ เช่น

281
00:18:44,303 --> 00:18:48,303
Process A อาจจะมีความสำคัญมากกว่า Process B หรือ Process ของ

282
00:18:48,319 --> 00:18:52,319
ผู้ดูแลรับอาจจะมีความสำคัญมากกว่าข

283
00:18:52,347 --> 00:18:56,303
ของ User อย่างนี้ อันที่ 2

284
00:18:56,303 --> 00:19:00,303
คุณสมบัติอันที่ 2 อำนาจหน้าที่

285
00:19:00,307 --> 00:19:04,307
Process ทุกตัวจะมีอำนาจหน้าที่ที่ต่างกัน เช่น Process

286
00:19:04,312 --> 00:19:08,305
ของผู้ดูแลระบบมีอนาจ

287
00:19:08,305 --> 00:19:12,305
มากกว่าของ User อย่างนี้เป็นต้นนะครับ หรือ

288
00:19:12,309 --> 00:19:16,304
คุณสมบัติอื่น ๆ ที่

289
00:19:16,304 --> 00:19:20,304
OS กำหนด

290
00:19:20,304 --> 00:19:24,303
อันนี้ขึ้นอยู่กับ OS ครับ

291
00:19:24,303 --> 00:19:28,303
เช่น ใช้ Windows 8

292
00:19:28,304 --> 00:19:32,303
ใ ช้ Windows 10

293
00:19:32,303 --> 00:19:36,303
ของ Process ก็จะต่างออกไป ยกตัวอย่างเช่นนะครับ

294
00:19:36,304 --> 00:19:40,303
Windoes 8

295
00:19:40,303 --> 00:19:44,303
สามารถตั้งชื่อได้

296
00:19:44,303 --> 00:19:48,303
ความยาวกี่ตัวอักษรรู้ไหม

297
00:19:48,304 --> 00:19:52,304
เคยไหม อาจารย์จะยังไม่บอกว่ากี่ตัวอักษรนะ

298
00:19:52,312 --> 00:19:56,309
เราสามารตั้งชื่อได้นะ

299
00:19:56,309 --> 00:20:00,305
นะครับ กับ Windows 11

300
00:20:00,305 --> 00:20:04,304
ต่างกันไหม ลองดูนะ ลองดู

301
00:20:04,304 --> 00:20:08,304
จะไปลองตอนภาคปฏิบัติ ลองสิว่าเรา

302
00:20:08,304 --> 00:20:12,304
ถ้าเกิดเป็น Window

303
00:20:12,312 --> 00:20:16,305
Windows 11 สามารถตั้งชื่อความยาวกี่ตัว

304
00:20:16,305 --> 00:20:20,305
นะครับ นี่คือคุณสมบัติที่แต่ละตัว

305
00:20:20,307 --> 00:20:24,305
เป็นคนกำหนดนะครับ

306
00:20:24,305 --> 00:20:28,304

307
00:20:28,304 --> 00:20:32,304
เมื่อกี้องค์ประกอบของ Process นะครับ คราวนี้องค์ประกอบ

308
00:20:32,309 --> 00:20:36,307
ของ Process นะครับ

309
00:20:36,307 --> 00:20:40,305
สไลด์นะครับ อยู่กับพี่พลอยนะ

310
00:20:40,305 --> 00:20:44,305
พลอยค่อย เอาขึ้นให้น้องนะครั

311
00:20:44,308 --> 00:20:48,307
อาจารย์ลืมอัปลงในไลน์กลุ่มนะครับ

312
00:20:48,307 --> 00:20:52,304
แวะดูก่อนนะครับ คราวนี้

313
00:20:52,304 --> 00:20:56,304
มาดูสถานะของ Process นะครับ Process ก็แบ่งออกเป็นสถานะ

314
00:20:56,315 --> 00:21:00,315
ได้ดังต่อไปนนี้นะครับ

315
00:21:00,316 --> 00:21:04,309
สถานะพร้อมเป็นอย่างไร

316
00:21:04,309 --> 00:21:08,305
สถานะพร้อมเป็นสถานะพร้อมที่ Process

317
00:21:08,305 --> 00:21:12,305
พร้อมที่จะใช้ CPU ทันทีที่

318
00:21:12,305 --> 00:21:16,305
OS มอบหมายให้

319
00:21:16,307 --> 00:21:20,307
รอแล้ว เหมือนเรารอคิวแล้ว ยืนรอแล้ว

320
00:21:20,308 --> 00:21:24,304
รอเข้าไปครอบครอง CPU

321
00:21:24,304 --> 00:21:28,304
หรือรอเข้าไปใช้งาน CPU เราเรียกว่า "สถานะพร้อม"

322
00:21:28,306 --> 00:21:32,306
เช่น

323
00:21:32,306 --> 00:21:36,306
เราจะไปเข้าห้องน้ำ ห้องน้ำเป็น CPU แล้วนะครับ เรายืนรอคิว

324
00:21:36,330 --> 00:21:40,315
นี่ เราพร้อมแล้ว พร้อมจะเข้าไปใช้งาน

325
00:21:40,315 --> 00:21:44,315
เราเรียกว่า "สถานะพร้อม" นะครับ สถานะที่ 2 คือ

326
00:21:44,317 --> 00:21:48,307
สถานะ run

327
00:21:48,307 --> 00:21:52,305
Run คืออะไร ครับ สถานะ Run เป็นสถานะ

328
00:21:52,305 --> 00:21:56,305
Process กำลังครอบครอง CPU อยู

329
00:21:56,311 --> 00:22:00,306
่ ก็คือเข้าไปครอบครอง CPU

330
00:22:00,306 --> 00:22:04,306
ที่เราเรียกว่า Run Progarm

331
00:22:04,308 --> 00:22:08,304
นี่คือสถานะ Run

332
00:22:08,304 --> 00:22:12,304
นะครับ

333
00:22:12,305 --> 00:22:16,305
สถานะที่ 3 นะครับ

334
00:22:16,307 --> 00:22:20,304
สถานะติดขัด

335
00:22:20,304 --> 00:22:24,304
เขาบอกว่าสถานะติดขัดเกิดจากการ

336
00:22:24,306 --> 00:22:28,305
ที่ Process หยุดรอ

337
00:22:28,305 --> 00:22:32,305
เหตุการณ์ใดเหตุการณ์หนึ่งให้เกิดขึ้น

338
00:22:32,307 --> 00:22:36,305
โดย Process ไม่จำเป็นต้องใช้ CPU

339
00:22:36,305 --> 00:22:40,305
และมันต้องไปครอบครอง CPU เราไม่รู้

340
00:22:40,307 --> 00:22:44,307
เหตุการณ์นั้นคือเหตุการณ์อะไร ไม่รู้

341
00:22:44,308 --> 00:22:48,304
ยกตัวอย่างเช่น

342
00:22:48,304 --> 00:22:52,304
ผมกับแม็กกี้หรือกับอุบล

343
00:22:52,310 --> 00:22:56,306
ผมเป็น  Process A ไปยืนรอคิวใน

344
00:22:56,306 --> 00:23:00,306
สถานะพร้อม อุบลรอผมคนที่ 2

345
00:23:00,306 --> 00:23:04,306
คนที่ 2 ผมเปลี่ยนจากสถานะ

346
00:23:04,307 --> 00:23:08,306
พร้อมเข้าเป็นสถานะ Run ก็คือ

347
00:23:08,306 --> 00:23:12,305
เข้าไปครอบครอง CPU

348
00:23:12,305 --> 00:23:16,305
อุบลก็รออยู่สถานะพร้อม

349
00:23:16,306 --> 00:23:20,306
ในจังหวะที่ผมกำลังครอบครอง CPU อยู่ บังเอิญว่า

350
00:23:20,309 --> 00:23:24,305
ผมจำเป็นจะต้อง

351
00:23:24,305 --> 00:23:28,305
ไปพิมพ์งาน ไปพิมพ์เอกสาร ช่วงที่พิมพ์

352
00:23:28,316 --> 00:23:32,309
เอกสาร ผมจะต้องออกไปที่พรินต์เตอร์

353
00:23:32,309 --> 00:23:36,309
ไปที่พรินเตอร์ แล้วช่วงที่ออกไปที่พรินเตอร์นี่

354
00:23:36,312 --> 00:23:40,306
ต้องใช้งาน CPU

355
00:23:40,306 --> 00:23:44,306
จังหวะนี่ล่ะครับ เรียกว่าสถานะติดขัด

356
00:23:44,313 --> 00:23:48,313
คือเกิดเหตุการณ์ที่ตัวของ Process

357
00:23:48,316 --> 00:23:52,311
ออกไปติดต่ออุปกรณ์รองข้าง จังหวะนี้

358
00:23:52,311 --> 00:23:56,307
อุบลก็จะเข้ามาแทนที่ผม

359
00:23:56,307 --> 00:24:00,307
นึกออกไหมนะครับ ถ้าเขาถามว่าสถานะติดขัด

360
00:24:00,312 --> 00:24:04,308
จากอะไร เราก็บอกว่าเกิดจากสถานะ

361
00:24:04,308 --> 00:24:08,307
ที่ Process เข้าไปครอบครอง CPU แล้วนะครับ

362
00:24:08,307 --> 00:24:12,306
แต่เกิดเหตที่ Process

363
00:24:12,306 --> 00:24:16,306
a ไม่จำเป็นจะต้องครอบครอง CPU ต่อ

364
00:24:16,306 --> 00:24:20,306
หรือ ไปติดต่ออุปกรณ์ข้างนอก

365
00:24:20,312 --> 00:24:24,309
อุปกรณ์รอบข้างแทน ต้องปล่อย CPU ออกไป Process ใหม่ก็

366
00:24:24,309 --> 00:24:28,309
เข้ามาครองแทนที่นะครับ

367
00:24:28,309 --> 00:24:32,308
นี่คือสถานะติดขัด

368
00:24:32,308 --> 00:24:36,308
สถานะต่อมานะครับ สถานะพัก

369
00:24:36,311 --> 00:24:40,310
เ ขาบอกสถานะพัก

370
00:24:40,310 --> 00:24:44,308
ก็คือาถานะ Process ไม่มีการทำง

371
00:24:44,308 --> 00:24:48,308
ก็คือจบสมบูรณ์ เช่น ผมไปครอบครอง

372
00:24:48,309 --> 00:24:52,309
CPU ทำงานเสร็จสิ้นแล้วปุ๊บ ออก

373
00:24:52,314 --> 00:24:56,307
จบเลย มาทำงานต่อ ได้พัก จบนะครับ

374
00:24:56,307 --> 00:25:00,306

375
00:25:00,306 --> 00:25:04,305

376
00:25:04,305 --> 00:25:08,305
ซึ่ง Process นั้นนะครับ

377
00:25:08,310 --> 00:25:12,306
สามารถที่จะเปลี่ยนสถานะหนึ่งเป็น

378
00:25:12,306 --> 00:25:16,306
สถานะหนึ่ง ได้ตลอดเวลา

379
00:25:16,308 --> 00:25:20,308
นะครับ ขึ้นอยู่ว่า ณ ตรงนั้นอยู่ในสถานะอะไร

380
00:25:20,310 --> 00:25:24,310
อาจจะพร้อม พร้อมเสร็จ

381
00:25:24,312 --> 00:25:28,311
เข้าไป Run Run เสร็จปุ๊บต้องไปติดต่ออุปกรณ์รอบข้าง

382
00:25:28,311 --> 00:25:32,307
เป็นสถานะติดขัด พอติดขัดเสร็จก็

383
00:25:32,307 --> 00:25:36,307
กลับไปพร้อมใหม่ พร้อมเสร็จเข้าไป Run Run

384
00:25:36,308 --> 00:25:40,306
เสร็จแล้ว จบแล้วไปพัก

385
00:25:40,306 --> 00:25:44,306
นะครับ มันจะเปลี่ยนไปอย่างนี้ตลอดเวลานะครับ

386
00:25:44,308 --> 00:25:48,308

387
00:25:48,316 --> 00:25:52,307

388
00:25:52,307 --> 00:25:56,307

389
00:25:56,307 --> 00:26:00,307
อันนี้อาจารย์อธิบายไปแล้วนะครับ

390
00:26:00,308 --> 00:26:04,308
อันนี้อาจารย์ ฮธิบายไปแล้วนะครับ ลอง

391
00:26:04,309 --> 00:26:08,307
ดูรูปนะครับ เห็นไหมครับ

392
00:26:08,307 --> 00:26:12,307
ในรูปภาพอธิบาย

393
00:26:12,307 --> 00:26:16,307
การเปลี่ยนสถานะของ Process ใช่ไหม

394
00:26:16,308 --> 00:26:20,308
เหมือนที่อาจายร์อธิบายไปเมื่อกี้

395
00:26:20,308 --> 00:26:24,308
ยืนต่อคิวเลย 1 2 3 4 5

396
00:26:24,311 --> 00:26:28,309
พร้อมไหม พร้อม

397
00:26:28,309 --> 00:26:32,309
พอพร้อมเสร็จ ได้เวลา โอเค Run

398
00:26:32,312 --> 00:26:36,309
ทีละตัวทีละโปรแกรมทีละ Processe

399
00:26:36,309 --> 00:26:40,309
ถ้ามีอะไรเกิดขึ้น จบครับ พักเลย

400
00:26:40,309 --> 00:26:44,309
นี่คือการเปลี่ยนสถานะของ Process

401
00:26:44,313 --> 00:26:48,312
แต่ถ้าเกิดเหตุการณ์ใดเหตุการณ์หนึ่งขึ้น

402
00:26:48,312 --> 00:26:52,311
นะครับ เพราะอะไรครับ

403
00:26:52,311 --> 00:26:56,306
รูปนี้ รูปนี้

404
00:26:56,306 --> 00:27:00,306
มาพร้อมมา Run

405
00:27:00,308 --> 00:27:04,308
แล้วก็จบ ถ้าสมมติว่า

406
00:27:04,314 --> 00:27:08,309
Process แต่ละตัวเข้าไป Run ไม่

407
00:27:08,309 --> 00:27:12,309
ใช้เวลาไม่เท่ากันจะเกิดอะไรขึ้นนะ เช่น

408
00:27:12,309 --> 00:27:16,309
Process A เช่นผม

409
00:27:16,311 --> 00:27:20,307
พร้อมเข้าไป Run 2 วินาที

410
00:27:20,307 --> 00:27:24,306
แล้วก็จบ มีอะไรเกินขึ้นไหม

411
00:27:24,306 --> 00:27:28,306
ไม่มี คราวนี้อุบล

412
00:27:28,306 --> 00:27:32,306
อุบลมาต่อคิวมาพร้อม

413
00:27:32,306 --> 00:27:36,306
อุบลเข้าไป Run ปุ๊บ อุบลบอกผมใช้เวลา 3 ชั่วโมง

414
00:27:36,311 --> 00:27:40,306
เป็นอย่างไรครับ เราก็จบ

415
00:27:40,306 --> 00:27:44,306
ใช่ไหม คราวนี้

416
00:27:44,307 --> 00:27:48,307
มิ่ง  3 คนที่ 3 มา

417
00:27:48,312 --> 00:27:52,308
ต่อคิวพร้อม แต่ปรากฏว่ามิ่งต้องการใช้เวลาแค่

418
00:27:52,308 --> 00:27:56,307
1 วินาที แตค่ต้องรออุบล

419
00:27:56,307 --> 00:28:00,307
3 ชั่วโมงนึกออกไหม นึกภาพตามนะ

420
00:28:00,327 --> 00:28:04,307
ดังนั้นในระบบคอมพิวเตอร์ของเรานั้น

421
00:28:04,307 --> 00:28:08,307
มันจะต้องไม่ให้เกิดเหตุการณ์นี้เกิดขึ้น มันจึงต้องกำหนด

422
00:28:08,323 --> 00:28:12,309
เวลาขึ้นมา คุณจะต้อง

423
00:28:12,309 --> 00:28:16,309
เข้าไปเวลานี้แล้วจบนะ เราเรียกเวลานี้ว่าเวลาควอนตัม

424
00:28:16,309 --> 00:28:20,306
ถ้าย้อนถามกลับว่า

425
00:28:20,306 --> 00:28:24,306
เวลาควอนตัมคืออะไร

426
00:28:24,307 --> 00:28:28,307
คืออะไรครับ คือเวลาที่

427
00:28:28,308 --> 00:28:32,307
ถูกกำหนดไว่ว่า Process แต่ละตัวสามารถ

428
00:28:32,307 --> 00:28:36,307
เข้าไปครอบครอง

429
00:28:36,307 --> 00:28:40,307
CPU ได้เป็นเวลาเท่าไร หรือนานเท่าไร

430
00:28:40,311 --> 00:28:44,307
เช่น เรากดหนดเวลา ควอนตัม

431
00:28:44,307 --> 00:28:48,307
5 วินาทีสมมตินะ 5 วินาที แสดงว่า

432
00:28:48,309 --> 00:28:52,309
Process ทุกตัวจะสามารถเข้าไปครอบครองได้แ

433
00:28:52,314 --> 00:28:56,308
5 วินาที เช่น เมื่อกี้อย่างเมื่อกี้

434
00:28:56,308 --> 00:29:00,307
ผม Process A เข้าไป

435
00:29:00,307 --> 00:29:04,307
3 วิฯ จบไหม จบ

436
00:29:04,311 --> 00:29:08,309
เพราะว่าเราให้ 5 วินาทีใช่ไหมควอนตัม

437
00:29:08,309 --> 00:29:12,309
อุบลก็จะเข้าไปได้แค่ 5 วิ(นาที) แล้วอุบลต้องย้อนกลับ

438
00:29:12,315 --> 00:29:16,315
ไปพร้อมใหม่เพิ่มให้ มิ้งเข้าไปใหม่

439
00:29:16,320 --> 00:29:20,307
นี่คือหลักการของมันนะครับ

440
00:29:20,307 --> 00:29:24,307

441
00:29:24,307 --> 00:29:28,307
มันก็จะเกิดรูปนี้ขึ้น

442
00:29:28,307 --> 00:29:32,307
ใช่ไหม

443
00:29:32,307 --> 00:29:36,307
นี่นะครับ พร้อม

444
00:29:36,308 --> 00:29:40,307
พออเราเอาเวลาควอนตัมมาจับ

445
00:29:40,307 --> 00:29:44,307
เข้าไป Run ได้แค่ 5 วิฯ นะ ถ้าเกินนั้นกลับไปวนใหม่

446
00:29:44,310 --> 00:29:48,308
มันเลยทำให้เกิดระบบหลายโป

447
00:29:48,308 --> 00:29:52,308
นะครับ แต่เวลาเราทำงานกับคอมพิวเตอร์ มันเป็นอย่างไรครับ

448
00:29:52,310 --> 00:29:56,308
แต่ในความรู้สึกเราเป็นอย่างไรครับ มันทำงาน

449
00:29:56,308 --> 00:30:00,308
ด้วยความเร็วสูง มันเลยเหมือนประหนึ่งว่าอย่างนี้จริงหรือ

450
00:30:00,310 --> 00:30:04,308
ใช่ไหมเราหายใจแทบไม่ทัน

451
00:30:04,308 --> 00:30:08,308
สมัยที่อาจารย์เรียนเขียนโปรแกรมนะครับ

452
00:30:08,309 --> 00:30:12,309
เมื่อเกือบ 30 ปีที่แล้วนะ

453
00:30:12,312 --> 00:30:16,309
เวลาเรา Run โปรแกรม เราจะกด Escape

454
00:30:16,309 --> 00:30:20,309
S Slacap

455
00:30:20,309 --> 00:30:24,309
กด F8 F9 ปุ๊บ นึกได้ผ่านไป 2 นาที

456
00:30:24,311 --> 00:30:28,309
ไม่ถูกกดยกเลิก

457
00:30:28,309 --> 00:30:32,308
แต่โปรแกรมเราทุกวันนี้ เราคลิก

458
00:30:32,308 --> 00:30:36,307
ปุ๊บ ประมวลผลปั๊บ

459
00:30:36,307 --> 00:30:40,307
มันมีความเร็วสูงนะครับ ตามรูปนี้นะครับ

460
00:30:40,310 --> 00:30:44,308
พยายามมองตามนะ เพราะว่า

461
00:30:44,308 --> 00:30:48,308
เราจะเรียนอีก 3 ครั้ง

462
00:30:48,317 --> 00:30:52,307
แล้วก็จะสอบกลางภา

463
00:30:52,307 --> 00:30:56,307
คนะครับ สอบกลางภาค พอสอบกลางภาคเสร็จ

464
00:30:56,309 --> 00:31:00,307
อาจารย์ก็จะะยกคลาสไปอยู่

465
00:31:00,307 --> 00:31:04,307
อาคาร 7 เพื่อเรียนภาคปฏิบัติ

466
00:31:04,310 --> 00:31:08,310
นะครับ ภาคปฎิบัติเราก็จะ

467
00:31:08,312 --> 00:31:12,311
เรียนแค่สัปดาห์ละ 8 คน เราจะไม่เรียนทั้งห้อง

468
00:31:12,311 --> 00:31:16,311
แบบนี้นะครับ

469
00:31:16,312 --> 00:31:20,307

470
00:31:20,307 --> 00:31:24,307
คราวนี้มาดูอีกสถานะ

471
00:31:24,308 --> 00:31:28,308
หนึ่งนะครับ ที่เรา

472
00:31:28,309 --> 00:31:32,308
พูดไว้ก็คือสถานะติดขัด

473
00:31:32,308 --> 00:31:36,308
เห็นไหมครับ ดูรูป

474
00:31:36,309 --> 00:31:40,307
มาพร้อม เห็นไหม

475
00:31:40,307 --> 00:31:44,307
พร้อมปุ๊บ มา Run เข้าไป

476
00:31:44,307 --> 00:31:48,307
Run จะหมดเวลาควอนตัม หรือไม่หมดก็แล

477
00:31:48,312 --> 00:31:52,307
้วแต่ บังเอิญว่า Process นั้น

478
00:31:52,307 --> 00:31:56,307
ไปติดต่อกับอุปกรณ์รอบข้าง

479
00:31:56,308 --> 00:32:00,307
เช่น ติดต่อกับ Printer

480
00:32:00,307 --> 00:32:04,307
ช่วงที่ติดต่อพรินเตอร์ไม่ได้ทำงานก็จ

481
00:32:04,309 --> 00:32:08,309
ะถูกผลักออกมาเป็นสถานะติดขัด พอติดขัดเสร็จ

482
00:32:08,310 --> 00:32:12,307
ก็จะย้อนกลับไปพร้อมใหม่

483
00:32:12,307 --> 00:32:16,307
นะครับ นี่คือสถานะติดขัด

484
00:32:16,311 --> 00:32:20,311

485
00:32:20,315 --> 00:32:24,307

486
00:32:24,307 --> 00:32:28,307
เขาบอกว่าการเปลี่ยน

487
00:32:28,307 --> 00:32:32,307
สถานะทั้ง 3 ของ Process ก็คือ พร้อม Run ติดขัด

488
00:32:32,307 --> 00:32:36,307
เป็นการเปลี่ยน

489
00:32:36,307 --> 00:32:40,307
ในสภาพทั่วไปนะครับ พร้อม

490
00:32:40,307 --> 00:32:44,307
Run ติดขัด

491
00:32:44,307 --> 00:32:48,306
แต่ถ้าเกิดเหตุการณ์ที่

492
00:32:48,306 --> 00:32:52,306
ผิดปกติขึ้นในระบบปฏิบัติการ

493
00:32:52,315 --> 00:32:56,312
หรือระบบคอมพิวเตอร์เรา ระบบปฏิบัติการอาจจะย้าย Process

494
00:32:56,312 --> 00:33:00,306
ใดสถานะหนึ่ง

495
00:33:00,306 --> 00:33:04,306
ให้ไปอยู่สถานะพักก็ได้

496
00:33:04,308 --> 00:33:08,307
เพราะสถานะพักเราบอกว่ามันหยุดนิ่งเลย

497
00:33:08,307 --> 00:33:12,307
มันหยุดนิ่งเลย ไม่ทำงานต่อแล้ว ก็คือเข้าไป Run แล้วก็จบใช่ไหม แต่

498
00:33:12,311 --> 00:33:16,307
ถ้าเกิดเหตการณ์ขึ้น

499
00:33:16,307 --> 00:33:20,307
จากสถานะพร้อม Run ติดขัด ไปพักก็ได้

500
00:33:20,309 --> 00:33:24,309
นะครับ ซึ่ง

501
00:33:24,309 --> 00:33:28,308
จะเกิดขึ้นได้ก็ด้วยสาเหตุดังต่อไปนี้นะครับ

502
00:33:28,308 --> 00:33:32,307
1

503
00:33:32,307 --> 00:33:36,307
เกิดการทำงานของระบบผิดพลาด

504
00:33:36,307 --> 00:33:40,307
เช่นสั่ง ๆ ไป ปรากฎว่าระบบ Error

505
00:33:40,319 --> 00:33:44,310
ปรากฏว่าระบบ Error ผิดพลาด

506
00:33:44,310 --> 00:33:48,306
ไปกดสตางค์ 1,000 บาท

507
00:33:48,306 --> 00:33:52,306
ออกมา 10,000 บาท ดีไหมโทมัส ดีไหม

508
00:33:52,308 --> 00:33:56,306
เอาไหม อย่าไปเอานะลูก

509
00:33:56,306 --> 00:34:00,306
เขาจับเจ้าเด้อ

510
00:34:00,306 --> 00:34:04,306
ต้องไปแจ้งธนาคารนะครับ

511
00:34:04,306 --> 00:34:08,306
นี่คือระบบผิดพลาด มันก็จะย้ายทุกอย่างไปที่

512
00:34:08,322 --> 00:34:12,307
สถานะพัก จนกว่าเหตุการณ์ปกติ

513
00:34:12,307 --> 00:34:16,307
เริ่มต้นใหม่นะครับ สาเหตุอันที่ 2 นะครับ

514
00:34:16,308 --> 00:34:20,307
ที่จะเกิดสถานะพักนะครับ

515
00:34:20,307 --> 00:34:24,306
ผู้ใช้ต้องการหยุดการทำงาน

516
00:34:24,306 --> 00:34:28,306
ชั่วคราว ทำ ๆ อยู่

517
00:34:28,308 --> 00:34:32,307
เราสั่งหยุดอย่างนี้ มันก็จะไปอยู่สถานะพัก

518
00:34:32,307 --> 00:34:36,307
เช่น Run อยู่กดยกเลิก

519
00:34:36,307 --> 00:34:40,307
สาเหตุอันที่ 3 นะครับ

520
00:34:40,308 --> 00:34:44,307
ในระบบมีงานมากเกินไป

521
00:34:44,307 --> 00:34:48,305

522
00:34:48,305 --> 00:34:52,305
สั่งเข้าไป ๆ Over load

523
00:34:52,313 --> 00:34:56,308
แฮงค์ Error ก็ย้ายไปสถานะพัก

524
00:34:56,308 --> 00:35:00,308
นะครับ นี่คือสาเหตุหลัก ๆ 3 สาเหตุ

525
00:35:00,309 --> 00:35:04,309
ทำให้การเปลี่ยนสถานะจากสถานะพร้อม

526
00:35:04,310 --> 00:35:08,307
Run ติดขัดไปอยู่ในสถานะพ

527
00:35:08,307 --> 00:35:12,306
ักนะครับ เห็นไหมครับ

528
00:35:12,306 --> 00:35:16,306
รูป

529
00:35:16,306 --> 00:35:20,306
จากรูปนะครับ พร้อม

530
00:35:20,308 --> 00:35:24,308
Run ติดขัด

531
00:35:24,308 --> 00:35:28,307
แต่ถ้าเกิดสาเหตุจากเมื่อกี้ ระบบ

532
00:35:28,307 --> 00:35:32,307
เกิดทำงานผิดพลาด ผู้ใช้สั่งหยุดเอง

533
00:35:32,308 --> 00:35:36,308
ระบบทำงานมากเกินไปปุ๊บ มาพักเลย

534
00:35:36,308 --> 00:35:40,308
นะครับ

535
00:35:40,308 --> 00:35:44,308

536
00:35:44,317 --> 00:35:48,306
ดังนั้นนะครับ เราก็สามารถ

537
00:35:48,306 --> 00:35:52,306
แยกสถานะของ Process เป็น 2 ส่วน

538
00:35:52,308 --> 00:35:56,307
ก็คือส่วนที่ 1 พร้อม Run ติดขัด

539
00:35:56,307 --> 00:36:00,307
Run ติดขัดใช่ไหม ส่วนที่ 2 คือ

540
00:36:00,308 --> 00:36:04,305
พักนะครับ

541
00:36:04,305 --> 00:36:08,305

542
00:36:08,307 --> 00:36:12,307

543
00:36:12,310 --> 00:36:16,306

544
00:36:16,306 --> 00:36:20,306
คราานี้มาดูลำดับชั้นของ Process

545
00:36:20,313 --> 00:36:24,313
นะครับ Process ก็มีลำดับชั้นนะครับ

546
00:36:24,313 --> 00:36:28,306
เขาบอกว่าระบบปฏิบัติการ

547
00:36:28,306 --> 00:36:32,306
หรือ OS นะครับ ผมใช้คำย่อว่า OS

548
00:36:32,311 --> 00:36:36,307
เขาบอกว่า OS เอง

549
00:36:36,307 --> 00:36:40,306
ก็ประกอบด้วย หลาย ๆ Process

550
00:36:40,306 --> 00:36:44,306
ถ้าหลายคนสับสน ถ้าอาจา

551
00:36:44,306 --> 00:36:48,306
รย์ Process เราจะเรียกว่าโปรแกรมได้ไหม

552
00:36:48,308 --> 00:36:52,306
ได้ไหม

553
00:36:52,306 --> 00:36:56,306
ได้ไหมครับ

554
00:36:56,306 --> 00:37:00,306
บางคนไม่รู้เหมือนกัน

555
00:37:00,308 --> 00:37:04,307
เขาบอกว่า OS เองก็ประกอบไปด้วยหลาย

556
00:37:04,307 --> 00:37:08,307
ๆ Process 1 2 3 เยอะแยะมากมาย

557
00:37:08,311 --> 00:37:12,306
เมื่อผู้ใช้สั่งงาน

558
00:37:12,306 --> 00:37:16,306

559
00:37:16,306 --> 00:37:20,306

560
00:37:20,306 --> 00:37:24,306

561
00:37:24,306 --> 00:37:28,306
เอาสีอะไรดี

562
00:37:28,307 --> 00:37:32,305

563
00:37:32,305 --> 00:37:36,305

564
00:37:36,306 --> 00:37:40,305

565
00:37:40,305 --> 00:37:44,305

566
00:37:44,308 --> 00:37:48,305

567
00:37:48,305 --> 00:37:52,305

568
00:37:52,305 --> 00:37:56,305

569
00:37:56,311 --> 00:38:00,307
พื้นสีดำไปไม่เป็นเลยนะครับ ไม่เป็นไรไปต่อ

570
00:38:00,307 --> 00:38:04,307
เขาบอกว่าเมื่อ Process ประกอบด้วย หลายข

571
00:38:04,309 --> 00:38:08,308
ันตอนนั้นนะครับ เมื่อผู้ใช้สั่งงานหรือให้โปรแกรม Run

572
00:38:08,308 --> 00:38:12,308
OS หรือระบบปฏิบัติการจะ

573
00:38:12,312 --> 00:38:16,310
สร้าง Process สำหรับงานนั้นขึ้นมานะครับ ซึ่ง Process สำหรับผู้ใช้

574
00:38:16,310 --> 00:38:20,305
นี่นะครับ เป็น Process ย่อยของ

575
00:38:20,305 --> 00:38:24,305
นึกออกไหม

576
00:38:24,307 --> 00:38:28,307
เขาบอกว่า Process เองก็มีเยอะแยะมา

577
00:38:28,308 --> 00:38:32,308
ของมันนะครับ ซึ่งเราสำหรับผู้ใช้สั่งงานปุ๊บ เช่น อุบล

578
00:38:32,313 --> 00:38:36,308
บอกอุบลต้องการเข้าไปครอบครอง CPU

579
00:38:36,308 --> 00:38:40,308
ระบบปฏิบัติการก็จะสร้าง Process หนึ่งเข้ามาในระบบปฏิบัติการ

580
00:38:40,311 --> 00:38:44,311
สำหรับงานนะครับ นั่นแสดงว่า

581
00:38:44,314 --> 00:38:48,310
Process ของอุบลนั้นก็เป็น Process ย่อยของระบบปฏิบัติการ

582
00:38:48,310 --> 00:38:52,310
นึกออกไหมครับ นึกตามนะ

583
00:38:52,317 --> 00:38:56,305
นะครับ ซึ่ง

584
00:38:56,305 --> 00:39:00,305
Process OS ก็จะมีคุณสมาบัติเหมือน

585
00:39:00,307 --> 00:39:04,307
อื่น ๆ ทั่วไปนะครับ เขาว่าดังนั้น Process อื่น ๆ

586
00:39:04,309 --> 00:39:08,309
ก็สามารถมี Process ย่อย ๆ ไปอีกเรื่อย ๆ ได้

587
00:39:08,312 --> 00:39:12,306
นะครับ เขาเรียกว่าการให้กำเนิด

588
00:39:12,306 --> 00:39:16,306

589
00:39:16,317 --> 00:39:20,311
นึกออกไหม ตัวอย่างเช่นนะครับ

590
00:39:20,311 --> 00:39:24,305
อุบล

591
00:39:24,305 --> 00:39:28,305
ต้องการเข้าไปครอบครอง CPU อุบลเป็น Process หนึ่งแล้ว

592
00:39:28,310 --> 00:39:32,310
ตัวอาจารย์เองเป็น OS เป็นระบบปฏิบัติ

593
00:39:32,315 --> 00:39:36,308
เมื่ออุบลจะเข้าไปครอบครอง CPU หรือเข้าไปสถานะ Run

594
00:39:36,308 --> 00:39:40,305

595
00:39:40,305 --> 00:39:44,305
อุบลจะถูกผม OS ตั้ง Process หนึ่งขึ้นมา

596
00:39:44,310 --> 00:39:48,306
เพื่อไปกำกับดูแลอุบล

597
00:39:48,306 --> 00:39:52,306
นะครับ นี่เราเรียกว่า "การให้กำเนิด

598
00:39:52,306 --> 00:39:56,305
" แต่พออุบลเข้าไป

599
00:39:56,305 --> 00:40:00,305
ครอบครอง CPU แล้ว เข้าไปสถานะ Run แล้ว

600
00:40:00,306 --> 00:40:04,306
อุบลก็จะมี Process ย่อย

601
00:40:04,306 --> 00:40:08,306
ต่อไปอีก นึกออกไหม ซึ่งไม่รู้ว่ามีอะไรบ้าง เราไม่รู้

602
00:40:08,312 --> 00:40:12,306
ซึ่งตัวของ Process ย่อย

603
00:40:12,306 --> 00:40:16,306
ที่เราเรียกว่า การให้กำเนิดนั้นเราจะเรียกว่า โปรเซสพ่อ

604
00:40:16,309 --> 00:40:20,305
นะครับ

605
00:40:20,305 --> 00:40:24,305
ส่วน Process ย่อยที่สร้างต่อจาก Process

606
00:40:24,306 --> 00:40:28,306
ผู้ให้กำเนิดเรีาเรียกว่า Proc

607
00:40:28,308 --> 00:40:32,308
ess เป็นลำดับชั้นนะครับ เป็นลักษณะแบบโครงสร้าง

608
00:40:32,308 --> 00:40:36,306
แบบต้นไม้ ดูรูปนี้เห็นไหมครับ

609
00:40:36,306 --> 00:40:40,306
นี่คือลำดับชั้นของ Process นะครับ

610
00:40:40,306 --> 00:40:44,306
นี่คือลำดับย่อของ Porcess

611
00:40:44,309 --> 00:40:48,305

612
00:40:48,305 --> 00:40:52,305
หัวข้อต่อมานะครับ ความสัมพันธ์

613
00:40:52,308 --> 00:40:56,305
ระหว่าง Process

614
00:40:56,305 --> 00:41:00,305

615
00:41:00,305 --> 00:41:04,305
เราไม่พักเลยนะ

616
00:41:04,305 --> 00:41:08,305
พี่ล่ามคนเดียวนะครับ

617
00:41:08,307 --> 00:41:12,307
ขอพัก 5 นาทีนะครับ

618
00:41:12,307 --> 00:41:16,307
ขอพัก 5 นาทีนะครับ พี่ล่ามจะได้ไป ทานน้ำ ไปเข้าน้ำ

619
00:41:16,308 --> 00:41:20,307
ทานน้ำ แล้วก็เข้าห้องน้ำนะครับ

620
00:41:20,307 --> 00:41:24,305
พักก่อน 5 นาทีนะครับ เดี๋ยวเราต่ออีก

621
00:41:24,305 --> 00:41:28,304
ประมาณ 15 สไลด์นะครับ

622
00:41:28,304 --> 00:41:32,304

623
00:41:32,304 --> 00:41:36,304

624
00:41:36,311 --> 00:41:40,305

625
00:41:40,305 --> 00:41:44,305

626
00:41:44,305 --> 00:41:48,305

627
00:41:48,307 --> 00:41:52,306

628
00:41:52,306 --> 00:41:56,306

629
00:41:56,307 --> 00:42:00,305

630
00:42:00,305 --> 00:42:04,305

631
00:42:04,305 --> 00:42:08,305

632
00:42:08,308 --> 00:42:12,304

633
00:42:12,304 --> 00:42:16,304

634
00:42:16,305 --> 00:42:20,305

635
00:42:20,305 --> 00:42:24,305

636
00:42:24,305 --> 00:42:28,305

637
00:42:28,305 --> 00:42:32,305

638
00:42:32,306 --> 00:42:36,305

639
00:42:36,305 --> 00:42:40,304

640
00:42:40,304 --> 00:42:44,304

641
00:42:44,304 --> 00:42:48,304

642
00:42:48,310 --> 00:42:52,308

643
00:42:52,308 --> 00:42:56,308

644
00:42:56,526 --> 00:43:00,305

645
00:43:00,305 --> 00:43:04,305

646
00:43:04,309 --> 00:43:08,305

647
00:43:08,305 --> 00:43:12,304

648
00:43:12,304 --> 00:43:16,304

649
00:43:16,304 --> 00:43:20,304

650
00:43:20,304 --> 00:43:24,304

651
00:43:24,304 --> 00:43:28,304

652
00:43:28,307 --> 00:43:32,305

653
00:43:32,305 --> 00:43:36,305

654
00:43:36,305 --> 00:43:40,305

655
00:43:40,305 --> 00:43:44,305

656
00:43:44,307 --> 00:43:48,306

657
00:43:48,306 --> 00:43:52,305

658
00:43:52,305 --> 00:43:56,305

659
00:43:56,305 --> 00:44:00,304

660
00:44:00,304 --> 00:44:04,304

661
00:44:04,305 --> 00:44:08,304

662
00:44:08,304 --> 00:44:12,304

663
00:44:12,305 --> 00:44:16,305

664
00:44:16,305 --> 00:44:20,305

665
00:44:20,305 --> 00:44:24,305

666
00:44:24,305 --> 00:44:28,305

667
00:44:28,305 --> 00:44:32,305

668
00:44:32,305 --> 00:44:36,305

669
00:44:36,305 --> 00:44:40,305

670
00:44:40,305 --> 00:44:44,305

671
00:44:44,305 --> 00:44:48,305

672
00:44:48,305 --> 00:44:52,304

673
00:44:52,304 --> 00:44:56,304

674
00:44:56,305 --> 00:45:00,305

675
00:45:00,305 --> 00:45:04,304

676
00:45:04,304 --> 00:45:08,304

677
00:45:08,305 --> 00:45:12,305

678
00:45:12,305 --> 00:45:16,305

679
00:45:16,305 --> 00:45:20,304

680
00:45:20,304 --> 00:45:24,304

681
00:45:24,305 --> 00:45:28,304

682
00:45:28,304 --> 00:45:32,304

683
00:45:32,305 --> 00:45:36,305

684
00:45:36,311 --> 00:45:40,305

685
00:45:40,305 --> 00:45:44,305

686
00:45:44,309 --> 00:45:48,305

687
00:45:48,305 --> 00:45:52,305

688
00:45:52,305 --> 00:45:56,305

689
00:45:56,306 --> 00:46:00,305

690
00:46:00,305 --> 00:46:04,305

691
00:46:04,307 --> 00:46:08,304

692
00:46:08,304 --> 00:46:12,304

693
00:46:12,305 --> 00:46:16,305

694
00:46:16,305 --> 00:46:20,305

695
00:46:20,306 --> 00:46:24,304

696
00:46:24,304 --> 00:46:28,304

697
00:46:28,314 --> 00:46:32,306

698
00:46:32,306 --> 00:46:36,306

699
00:46:36,306 --> 00:46:40,304

700
00:46:40,304 --> 00:46:44,304

701
00:46:44,304 --> 00:46:48,304

702
00:46:48,305 --> 00:46:52,304

703
00:46:52,304 --> 00:46:56,304

704
00:46:56,304 --> 00:47:00,304

705
00:47:00,304 --> 00:47:04,304

706
00:47:04,304 --> 00:47:08,304

707
00:47:08,308 --> 00:47:12,304

708
00:47:12,304 --> 00:47:16,304

709
00:47:16,305 --> 00:47:20,305

710
00:47:20,305 --> 00:47:24,304

711
00:47:24,304 --> 00:47:28,304

712
00:47:28,305 --> 00:47:32,304

713
00:47:32,304 --> 00:47:36,304

714
00:47:36,308 --> 00:47:40,304

715
00:47:40,304 --> 00:47:44,304

716
00:47:44,304 --> 00:47:48,304

717
00:47:48,304 --> 00:47:52,304

718
00:47:52,306 --> 00:47:56,306

719
00:47:56,308 --> 00:48:00,304

720
00:48:00,304 --> 00:48:04,304

721
00:48:04,304 --> 00:48:08,304

722
00:48:08,313 --> 00:48:12,304

723
00:48:12,304 --> 00:48:16,304

724
00:48:16,304 --> 00:48:20,304

725
00:48:20,304 --> 00:48:24,304

726
00:48:24,304 --> 00:48:28,304

727
00:48:28,304 --> 00:48:32,304

728
00:48:32,304 --> 00:48:36,304

729
00:48:36,306 --> 00:48:40,306

730
00:48:40,311 --> 00:48:44,305

731
00:48:44,305 --> 00:48:48,304

732
00:48:48,304 --> 00:48:52,304

733
00:48:52,304 --> 00:48:56,304

734
00:48:56,306 --> 00:49:00,305

735
00:49:00,305 --> 00:49:04,304

736
00:49:04,304 --> 00:49:08,304

737
00:49:08,304 --> 00:49:12,304

738
00:49:12,314 --> 00:49:16,305

739
00:49:16,305 --> 00:49:20,304

740
00:49:20,304 --> 00:49:24,304

741
00:49:24,305 --> 00:49:28,305

742
00:49:28,311 --> 00:49:32,305

743
00:49:32,305 --> 00:49:36,305

744
00:49:36,305 --> 00:49:40,305

745
00:49:40,305 --> 00:49:44,305

746
00:49:44,305 --> 00:49:48,304

747
00:49:48,304 --> 00:49:52,304

748
00:49:52,305 --> 00:49:56,305

749
00:49:56,305 --> 00:50:00,304

750
00:50:00,304 --> 00:50:04,304

751
00:50:04,304 --> 00:50:08,304

752
00:50:08,304 --> 00:50:12,304

753
00:50:12,304 --> 00:50:16,304

754
00:50:16,304 --> 00:50:20,304

755
00:50:20,308 --> 00:50:24,305

756
00:50:24,305 --> 00:50:28,305

757
00:50:28,305 --> 00:50:32,304

758
00:50:32,304 --> 00:50:36,304

759
00:50:36,304 --> 00:50:40,304

760
00:50:40,314 --> 00:50:44,306

761
00:50:44,306 --> 00:50:48,305

762
00:50:48,305 --> 00:50:52,305

763
00:50:52,314 --> 00:50:56,314

764
00:50:57,310 --> 00:51:01,305

765
00:51:01,305 --> 00:51:05,305

766
00:51:05,307 --> 00:51:09,307

767
00:51:09,307 --> 00:51:13,306

768
00:51:13,306 --> 00:51:17,305

769
00:51:17,305 --> 00:51:21,305

770
00:51:21,305 --> 00:51:25,305

771
00:51:25,306 --> 00:51:29,305

772
00:51:29,305 --> 00:51:33,305

773
00:51:33,309 --> 00:51:37,306

774
00:51:37,306 --> 00:51:41,305

775
00:51:41,305 --> 00:51:45,305

776
00:51:45,311 --> 00:51:49,305

777
00:51:49,305 --> 00:51:53,305

778
00:51:53,305 --> 00:51:57,305

779
00:51:57,305 --> 00:52:01,305

780
00:52:01,306 --> 00:52:05,306

781
00:52:05,321 --> 00:52:09,306

782
00:52:09,306 --> 00:52:13,306

783
00:52:13,307 --> 00:52:17,307

784
00:52:17,312 --> 00:52:21,305

785
00:52:21,305 --> 00:52:25,305
(อาจารย์พิเชนทร์)

786
00:52:25,307 --> 00:52:29,307
ดูต่อนะครับ

787
00:52:29,308 --> 00:52:33,307
ความสัมพันธ์ระหว่าง Process

788
00:52:33,307 --> 00:52:37,305
นะครับ

789
00:52:37,305 --> 00:52:41,305
การทำงานของระบบคอมพิวเตอร์นั้นนะครับ จะประกอบไปด้วย

790
00:52:41,315 --> 00:52:45,306
Process ต่าง ๆ นะครับ

791
00:52:45,306 --> 00:52:49,306
ทั้งของระบบแล้วของผู้ใช้นะครับ

792
00:52:49,307 --> 00:52:53,305
เมื่อมันมี

793
00:52:53,305 --> 00:52:57,305
Process มากมายทำงานพร้อม ๆ กันนะครับ จัดการขึ้น

794
00:52:57,310 --> 00:53:01,307
นะครับ นอกจากการจัดการแล้ว

795
00:53:01,307 --> 00:53:05,307
เราก็ต้องมีการ

796
00:53:05,308 --> 00:53:09,307
ติดต่อระหว่างกัน เหมือนเราเรา

797
00:53:09,307 --> 00:53:13,307
อยู่ในห้องเรานะครับ เราจะต้องมีการติดต่อสัมพันธ์กัน

798
00:53:13,312 --> 00:53:17,307
นะครับ คราวนี้

799
00:53:17,307 --> 00:53:21,307
เรามาดูหัวข้อความสัมพันธ์ระหว่าง Process นะครับ

800
00:53:21,309 --> 00:53:25,306
การติดต่อระหว่าง Process นั้น

801
00:53:25,306 --> 00:53:29,306
หมายความว่า Process หนึ่งอาจต้องการใช้ข้อมูล

802
00:53:29,308 --> 00:53:33,308
ของอีก Process  นึ่งจึงต้องทำไมครับ

803
00:53:33,309 --> 00:53:37,308
ต้องมีการส่งข้อมูลหรือต้องการติดต่อ

804
00:53:37,308 --> 00:53:41,308
กันระหว่าง Process นะครับ ซึ่ง

805
00:53:41,313 --> 00:53:45,307
การติดต่อกันระหว่าง Process นั้นนะครับ ก็มีหลายวิธี

806
00:53:45,307 --> 00:53:49,307
มาดูวิธีที่ 1 นะครับ

807
00:53:49,307 --> 00:53:53,305

808
00:53:53,305 --> 00:53:57,305
ติดต่อกันโดย

809
00:53:57,307 --> 00:54:01,305
ใช้หน่วยความจำร่วม

810
00:54:01,305 --> 00:54:05,305
นะครับ

811
00:54:05,305 --> 00:54:09,305
หมายความว่า เมื่อ Process หนึ่งต้องการ

812
00:54:09,308 --> 00:54:13,307
หรือส่งข้อมูลไปให้อีก Process หนึ่ง

813
00:54:13,307 --> 00:54:17,307
มันจะส่งข้อมูลผ่านหน่วยความจำร่วม

814
00:54:17,309 --> 00:54:21,309
ฟังก่อนนะครับ ฟังก่อนอย่างพึ่

815
00:54:21,311 --> 00:54:25,310
อย่าเพิ่งคุยกันครับ จะจบแล้ว อีก

816
00:54:25,310 --> 00:54:29,310
แค่ 10 สไลด์นะครับ

817
00:54:29,311 --> 00:54:33,311
ฟังหรือเปล่าครับ นี่ ฟังหรือเปล่า บอก

818
00:54:33,313 --> 00:54:37,306
เงียบก่อนนะครับ ฟังก่อน

819
00:54:37,306 --> 00:54:41,306
อย่าเพิ่งคุยกันเสียงดังนะครับ เดี๋ยวมันจะไม่เข้าใจ

820
00:54:41,308 --> 00:54:45,308
นะครับ เวลาสอบ เรามัวแต่ลอก

821
00:54:45,310 --> 00:54:49,310
ในหน้าจอนี่บางทีมันพอเวลาไปสอบนะครับ มันจะตอบไม่ได้นะครับ

822
00:54:49,320 --> 00:54:53,306

823
00:54:53,306 --> 00:54:57,306
เดี๋ยวสอบกลางภาคก็จะรู้คะแนนตัวเองว่าได้เท่าไร

824
00:54:57,307 --> 00:55:01,307
ผมบอกแล้วนะครับ ว่าข้อสอบผมนั้นมี

825
00:55:01,310 --> 00:55:05,309
ทั้งหมด 8 ชุดนะครับ ผมให้นั่ง

826
00:55:05,309 --> 00:55:09,307
สอบแบบติดกันเลยนะครับ

827
00:55:09,307 --> 00:55:13,307
ข้อสอบคนละชุดนะครับ ถ้าเราไม่เข้าใจเราจะเขียน

828
00:55:13,311 --> 00:55:17,308
อธิบายได้ ดูนะครับ ความสัมพันธ์

829
00:55:17,308 --> 00:55:21,308
อันที่ 1 ก็คือเวลามันติดต่อหากันมันจะใช้หน่วยความจำร่วมกัน

830
00:55:21,313 --> 00:55:25,311
ดูรูปข้างล่างเลยนะครับ

831
00:55:25,311 --> 00:55:29,307
Process A

832
00:55:29,307 --> 00:55:33,307
ต้องการส่งข้อมูลไปให้ Process B

833
00:55:33,308 --> 00:55:37,308
มันทำกันอย่างไรนะครับ วิธีการ ก็คือ Process A

834
00:55:37,309 --> 00:55:41,309
ส่งไปแล้วจัดส่งไปที่หน่วยความจำ

835
00:55:41,310 --> 00:55:45,309
นะครับ ส่งไปที่หน่วนความจำ เมื่อ Process B

836
00:55:45,309 --> 00:55:49,309
ต้องการจะไปรับข้อมูลจาก Process A

837
00:55:49,309 --> 00:55:53,307
มันก็จะไปรับที่หน่วยความจำนะครับ ซึ่งหน่วยความจำก็จะ

838
00:55:53,307 --> 00:55:57,307
มี Adssdes

839
00:55:57,309 --> 00:56:01,307
แล้วเราจะรู้ได้อย่างไรครับ Process A ส่งอะไร

840
00:56:01,307 --> 00:56:05,307
มาให้เช็กจากอะไรครับ

841
00:56:05,309 --> 00:56:09,309
เช็กจากชื่อ จาก ID ใช่ไหม เพราะว่า

842
00:56:09,310 --> 00:56:13,310
ชื่อของ Process  แต่ละตัวก็จะมีรหัสด้วยนะครับ

843
00:56:13,312 --> 00:56:17,310
เห็นไหมครับ Process A นี่ มันจะส่งข้อมูล

844
00:56:17,310 --> 00:56:21,310
มานะครับ เราส่งไปให้

845
00:56:21,312 --> 00:56:25,309
หน่วยความจำร่วม Process A ก็ไปรับที่หน่วยความจำ

846
00:56:25,309 --> 00:56:29,308
นะครับ การติดต่อกันระหว่างหน่อวยความจำระครับ

847
00:56:29,308 --> 00:56:33,306

848
00:56:33,306 --> 00:56:37,306
นอกจากการใช้หน่วยควาามจำร่วม

849
00:56:37,307 --> 00:56:41,307
ติดต่อระหว่าง Process นะครับ ก็ยังมีวิธีการที่สะดวก

850
00:56:41,309 --> 00:56:45,309
นะครับ แล้วก้นิยมใช้เป็นมาตราฐานนะครับ

851
00:56:45,309 --> 00:56:49,307
นั่นก็คือการใช้ช่องทางข้อมูล

852
00:56:49,307 --> 00:56:53,307
หรือเรียกง่าย ๆ ว่า Port

853
00:56:53,311 --> 00:56:57,307
นะครับ ติดต่อผ่าน Port

854
00:56:57,307 --> 00:57:01,306
รู้จัก Port นะ

855
00:57:01,306 --> 00:57:05,306
Port parareal

856
00:57:05,306 --> 00:57:09,306
ต่อสายเข้าไปในเครื่องคอมพิวเตอร์เรา

857
00:57:09,309 --> 00:57:13,308
นะครับ อันนี้ง่ายกว่านะครับ สะดวกกว่า

858
00:57:13,308 --> 00:57:17,308
เช่น เราต้องการส่งข้อมูลจาก

859
00:57:17,312 --> 00:57:21,309
เครื่องของคนหนึ่งไปเครื่องอีกคนหนึ่ง

860
00:57:21,309 --> 00:57:25,307
ผ่านอะไร ผ่าน Port นะครับ

861
00:57:25,307 --> 00:57:29,306

862
00:57:29,306 --> 00:57:33,306
คราวนี้วิธี่การส่งข้อมูล

863
00:57:33,307 --> 00:57:37,307
ส่งข้อมูลทั้งผ่านหน่วยความจำร่วมแล้วก็ผ่านพอร์ต

864
00:57:37,316 --> 00:57:41,310
นั้นนะครับ ในเรื่องของ

865
00:57:41,310 --> 00:57:45,310
โครงสร้างของพอร์ตก็มีหลายแบบนะครับ จะส่งแบบไหนนะครับ

866
00:57:45,312 --> 00:57:49,308
อันที่ 1 นะครับ โครสร้างของ Port

867
00:57:49,308 --> 00:57:53,308
แบบที่ 1 ก็คือแบบคิว

868
00:57:53,308 --> 00:57:57,308
นะครับ โครงสร้างแบบนี้ก็คือ ข้อมูล

869
00:57:57,311 --> 00:58:01,310
จะถูกดึงออกมาจาก Port ตามลำดับก่อน-หลัง

870
00:58:01,310 --> 00:58:05,310
ข้อมูลไหนส่งเข้ามาก่อนก็จะ

871
00:58:05,311 --> 00:58:09,310
ออกไปก่อน ก็คือแบบคิวเป็นคิว

872
00:58:09,310 --> 00:58:13,308
นะครับ เช่น ผมเข้าไปก่อนอุบล

873
00:58:13,308 --> 00:58:17,308
ผมก็ออกก่อนอุบลนะครับ นี่คือโครงสร้างข้อมูลแบบพอร์ต

874
00:58:17,313 --> 00:58:21,310
ง่าย ๆ ครับ เข้าก่อน ออกก่อน

875
00:58:21,310 --> 00:58:25,307
นะครับ โครงสร้างพอร์ต

876
00:58:25,307 --> 00:58:29,306
แบบที่ 2 ก็คือโครงสร้างแบบ

877
00:58:29,306 --> 00:58:33,306
รูปข้างล่างใช่ไหม

878
00:58:33,307 --> 00:58:37,306
แบบ prit

879
00:58:37,306 --> 00:58:41,306
แบบมีการทำงานแบบคิว คือเข้าก่อน

880
00:58:41,309 --> 00:58:45,309
ออกก่อน แต่มี

881
00:58:45,310 --> 00:58:49,310
ข้อแตกต่างกับแบบคิวที่ว่าถ้าเป็นพอร์ตแบบไปป์

882
00:58:49,311 --> 00:58:53,309
จะมีความยาวของ Port ไม่จำกัด

883
00:58:53,309 --> 00:58:57,309
ถ้าเป็นแบบคิวจะจำกั

884
00:58:57,317 --> 00:59:01,308
ด เช่น พอร์ตแบบคิวแบบว่า

885
00:59:01,308 --> 00:59:05,308
มีขนาดของพอร์ต ความยาว

886
00:59:05,310 --> 00:59:09,308
10 ช่องสมมตินะ

887
00:59:09,308 --> 00:59:13,308
ก็แสดงว่าเข้าไปได้แค่ 10 คิวนะครับ

888
00:59:13,322 --> 00:59:17,307
แต่ถ้าพอร์ตแบบไปท์โครงส

889
00:59:17,307 --> 00:59:21,307
ร้างเหมือนพอร์ตแบบคิวก็จริง เข้าก่อนออกก่อน แต่จะ

890
00:59:21,311 --> 00:59:25,307
มีความยาวของ Port

891
00:59:25,307 --> 00:59:29,307

892
00:59:29,312 --> 00:59:33,311
นี่คือโครงสร้าง

893
00:59:33,311 --> 00:59:37,309
แบบไปป์นะครับ

894
00:59:37,309 --> 00:59:41,309
โครงสร้าง Port แบบที่ 3 ก็คือ

895
00:59:41,312 --> 00:59:45,310
Stack นะครับ เป็นอย่างไรครับ

896
00:59:45,310 --> 00:59:49,310
แบบสแต็ก

897
00:59:49,310 --> 00:59:53,310
Stack คือ โครงสร้างที่ตรงข้ามกับแบบคิวเลยครับ

898
00:59:53,311 --> 00:59:57,309
ก็คือข้อมูลชุดใดที่ถูกส่งออกมาก่อน

899
00:59:57,309 --> 01:00:01,309
จะถูกดึงออกทีหลัง คือ เข้าก่อนออกทีหลัง

900
01:00:01,310 --> 01:00:05,309
นะครับ นี่คือโครงสร้างแบบ

901
01:00:05,309 --> 01:00:09,309
Stack นะครับ นี่คือโครงสร้างของพอร์ตทั้ง 3 แบบนะครับ

902
01:00:09,311 --> 01:00:13,308

903
01:00:13,308 --> 01:00:17,307
คราวนี้มาดู

904
01:00:17,307 --> 01:00:21,307
ปัญหาของ Process นะครับ

905
01:00:21,312 --> 01:00:25,309
เมื่อมีการทำงานมากกว่า 1 Process ขึ้นไป

906
01:00:25,309 --> 01:00:29,309
นะครับ มันย่อมทำให้เกิดปัญหาเกิดขึ้น

907
01:00:29,311 --> 01:00:33,309
ในการใช้งาน เมื่อมีโปรแกรม

908
01:00:33,309 --> 01:00:37,309
ทำงานในระบบคอมพิวเตอร์เรา ปัยหาก้ไม่เกิดขึ้นร

909
01:00:37,315 --> 01:00:41,315
นะครับ เมื่อมีหลาย ๆ โปรแกรมทำงานอยู่บนระบบเดียวกัน

910
01:00:41,316 --> 01:00:45,308
มีการใช้ทรัพยากร

911
01:00:45,308 --> 01:00:49,308
แย่งกันใช้ มันย่อมเกิดปัญหาขึ้น

912
01:00:49,308 --> 01:00:53,308
นะครับ ดังนั้นมันจะต้องมีการจัดสรร

913
01:00:53,312 --> 01:00:57,312
การใช้ Process ขึ้นนะครับ

914
01:00:57,315 --> 01:01:01,307
ถึงอย่างไรก็ตาม

915
01:01:01,307 --> 01:01:05,307
ที่เราจะกล่าวต่อไปนี้ มันจะต้อง

916
01:01:05,308 --> 01:01:09,307
ไม่เกิดขึ้นกับระบบของเรา

917
01:01:09,307 --> 01:01:13,307
นะครับ ดังนั้น คนที่ออกแบบระบบปฏิบัติการจะต้องแก้ปัญหา

918
01:01:13,320 --> 01:01:17,307
ดังต่อไปนี้ให้ได้

919
01:01:17,307 --> 01:01:21,307
เวลาเราเขียนโปรแกรมเราจะต้องเลี่ยงปัญหาเหล่านี้ให้ได้

920
01:01:21,331 --> 01:01:25,311
นะครับ ปัญหาการทำงานของ Process อันดับ

921
01:01:25,311 --> 01:01:29,308
แรกเลยนะครับ ก็คือปัญหาการตัดตอน

922
01:01:29,308 --> 01:01:33,307
นะครับ ปัญหา

923
01:01:33,307 --> 01:01:37,307
เกิดจากอะไรครับ เกิดจากการที่ Process หนึ่ง

924
01:01:37,309 --> 01:01:41,308
ต้องการใช้ทรัพยากร

925
01:01:41,308 --> 01:01:45,308
ของ Process แต่ปรากฏว่า Process นั้นมีลำกับความสำคัญ

926
01:01:45,315 --> 01:01:49,311
น้อยกว่าจึงยอมปลดปล่อย

927
01:01:49,311 --> 01:01:53,310
ที่มีระดับความสำคัญมากกว่าเข้าไปครอบครองตัว CPU

928
01:01:53,310 --> 01:01:57,310
แทนตัวมันเอง

929
01:01:57,311 --> 01:02:01,311
นึกออกใช่ไหมครับ ก็คือ Process หนึ่ง อย่าง

930
01:02:01,315 --> 01:02:05,315
เช่น ผมกำลังจะเข้าไปครอบครอง

931
01:02:05,319 --> 01:02:09,311
CPU แต่ปรากฏว่าอุบลเข้ามาต่อคิวผม

932
01:02:09,311 --> 01:02:13,311
บังเอิญว่าลำดับความสำคัญอุบ

933
01:02:13,321 --> 01:02:17,310
ลสำคัญมากกว่าผม ผมยอมให้อุบลเข้าไปแทนผม นี่

934
01:02:17,310 --> 01:02:21,308
เกิดการตัดตอนขึ้น

935
01:02:21,308 --> 01:02:25,308
ให้เป็นวิชาการ อธิบายว่าเกิดจาการ

936
01:02:25,313 --> 01:02:29,312
ที่ Process ใด Process หนึ่ง

937
01:02:29,312 --> 01:02:33,311
ที่จะเข้าไปครอบครอง CPU หรือเข้าไปในสถานะ Run นั้น

938
01:02:33,311 --> 01:02:37,309
ยอมให้ Process น

939
01:02:37,309 --> 01:02:41,309
ความสำคัญมากกว่าเข้าไปแทนที่มัน มันก็จะเกิด

940
01:02:41,309 --> 01:02:45,308
การตัดตอนขึ้นนะครับ

941
01:02:45,308 --> 01:02:49,308
ซึ่งปัญหาตัวนี้นะครับ คนที่ออกแบบระบบปฏิบัติการจะต้อง

942
01:02:49,313 --> 01:02:53,310
ไม่ให้เกิดขึ้นนะครัย

943
01:02:53,310 --> 01:02:57,308

944
01:02:57,308 --> 01:03:01,308
ปัญหาต่อมานอกจากปัญหาการตัดตอ

945
01:03:01,310 --> 01:03:05,310
ปัญหาการตัดตอนแล้ว ปัญหาต่อมา ก็คือปัญหา

946
01:03:05,317 --> 01:03:09,308
การอดตาย หรือปัญหา

947
01:03:09,308 --> 01:03:13,308
การเลื่อนไปอย่างไม่มีสิ้นสุด

948
01:03:13,312 --> 01:03:17,310
หมายความว่าเมื่อเกิดการตัดตอนขึ้น

949
01:03:17,310 --> 01:03:21,310
Process หนึ่งปล่อยให้ Process อีก Process หนึ่งที่มีความสำคัญ

950
01:03:21,314 --> 01:03:25,309
มากกว่าเข้าไปครอบคลอง CPU มัน

951
01:03:25,309 --> 01:03:29,309
แล้วแทนไปเรื่อย ๆ

952
01:03:29,311 --> 01:03:33,311
นี่เราเรียกว่าว่า "การอดตาย"

953
01:03:33,314 --> 01:03:37,314
เช่น ตัวอย่างเมื่อกี้ผมจะเข้าไปครอบครอง CPU

954
01:03:37,314 --> 01:03:41,311
แต่บังเอินว่า อุบล

955
01:03:41,311 --> 01:03:45,311
มาต่อคิว อุบลมีลำดับความสำคัญมากกว่า อุบลเข้าไปแทนที่

956
01:03:45,321 --> 01:03:49,308
พออุบลเสร็จแล้ว

957
01:03:49,308 --> 01:03:53,308
ผมจะเข้าไปต่อ แต่ปรากฏว่า

958
01:03:53,320 --> 01:03:57,308
แม็กกี้มาต่อแล้วแม็กกี้มีความ

959
01:03:57,308 --> 01:04:01,308
สำคัญมากกว่าผม ก็เข้าไปแทนที่อีก พอ

960
01:04:01,316 --> 01:04:05,311
แม็กกี้ออกมา ผมจะเข้าไปต่อ ปรากฎว่า

961
01:04:05,311 --> 01:04:09,307
มิ่งมาต่อ แล้ว

962
01:04:09,307 --> 01:04:13,307
มิ้งมีความสำคัญมากกว่า มิ้งก็

963
01:04:13,309 --> 01:04:17,309
เข้าไปอีก ก็คือรอไป

964
01:04:17,315 --> 01:04:21,311
ไม่มีวันสิ้นสุด รอไปเรื่อย ๆ  ไม่มีวันสิ้นสุ

965
01:04:21,311 --> 01:04:25,310
นะครับ ถ้าเป็นสมัยก่อนนะครับ

966
01:04:25,310 --> 01:04:29,308
ผมก็จะยกตัวอย่างให้พวกเรา

967
01:04:29,308 --> 01:04:33,308
สมมติว่าที่อาคาร 7 เรานะครับ

968
01:04:33,308 --> 01:04:37,308
สร้างห้องน้ำมาใหม่

969
01:04:37,310 --> 01:04:41,308
เปรียบเสมือน CPU สมมตินะ

970
01:04:41,308 --> 01:04:45,307
ผมจะเข้าเป็นคนแรก

971
01:04:45,307 --> 01:04:49,307
กำลังจะเปิดประตูเข้าไปห้องน้ำ ปรากฏว่าอุบล ไม่ใช่อุบล

972
01:04:49,313 --> 01:04:53,308
อธิการ สะกิดหลัง

973
01:04:53,308 --> 01:04:57,308
พิเชนทร์ ๆ ผมขออนุญาตเข้าก่อน ผมมองไปข้างหลัง

974
01:04:57,309 --> 01:05:01,309
อธิการใหญ่กว่าผม

975
01:05:01,311 --> 01:05:05,309
นี่เกิดการตัดตอน

976
01:05:05,309 --> 01:05:09,309
แต่พออธิการเข้าไปเสร็จปุ๊บ

977
01:05:09,310 --> 01:05:13,309
ปรากฏว่ามีคนสะกิดหลังอีกแล้ว ผู้ว่าฯ สะกิดหลัง

978
01:05:13,309 --> 01:05:17,309
เป็นอย่างไรครับ ผู้ว่าเข้าไป

979
01:05:17,310 --> 01:05:21,310
นายอำเภอสกิดหลัง ผู้ว่าสกิดหลังเกิดการ

980
01:05:21,322 --> 01:05:25,310
ต้องตัดตอน พอตัดตอนเสร็จปุ๊บ

981
01:05:25,310 --> 01:05:29,309
ไม่มีโอกาสได้เข้า ก็เลยเป็นอดตายนะครับ

982
01:05:29,309 --> 01:05:33,309
นี่คือปัญหาหาที่ 2

983
01:05:33,310 --> 01:05:37,309
ของเรานะครับ ปัญหาที่ 3

984
01:05:37,309 --> 01:05:41,309

985
01:05:41,309 --> 01:05:45,309
เขาบอกว่าทำไมถึงให้เกิดการ

986
01:05:45,312 --> 01:05:49,308
ตัดตอนไม่ได้หรือการอดตายไม่ได้

987
01:05:49,308 --> 01:05:53,308
มันจะเกิดปัญหาขึ้น ถ้าทรัพยากรบางประเภท

988
01:05:53,335 --> 01:05:57,311
ถ้าเราปล่อยให้เกิดการตัดตอน

989
01:05:57,311 --> 01:06:01,308
จะเกิดปัญหาขึ้น เช่น เครื่องพิมพ์

990
01:06:01,308 --> 01:06:05,308
ให้เรามาถึงเครื่องพิมพ์

991
01:06:05,309 --> 01:06:09,309
ที่เป็นหัวเข็ม เคยเห็นไหม มันจะดังแกร๊ก มันจะ

992
01:06:09,332 --> 01:06:13,308
พรินทีละบรรทัด

993
01:06:13,308 --> 01:06:17,308
เคยเห็นไหมครับ เครื่องพิมพ์แบบหัวเข็ม เหมือนเราไปซื้อ

994
01:06:17,311 --> 01:06:21,308
ของตามเซเว่น

995
01:06:21,308 --> 01:06:25,307
หรือเราไปจ่ายค่าเทอม มันจะ

996
01:06:25,307 --> 01:06:29,307
พรินเป็นหัวเข็มออกมา

997
01:06:29,307 --> 01:06:33,307
ถ้าเราปล่อยให้เกิดการตัดตอนขึ้น เช่น ผมสั่งพรินต์

998
01:06:33,312 --> 01:06:37,307
ไปได้ 2 บรรทัด

999
01:06:37,307 --> 01:06:41,307
อุบลสั่งมา อุบลบอกว่าอุบลมีความสำคัญมากกว่าแล้วเกิดการตัดตอน

1000
01:06:41,311 --> 01:06:45,309
บรรทัดที่ 3 จะกลายเป็นของอุบล

1001
01:06:45,309 --> 01:06:49,309
ดังนั้น ห้ามให้มีเหตุการณ์นี้เกิดขึ้นนะครับ

1002
01:06:49,324 --> 01:06:53,308
เพราะทรัพยากร บางอย่าง

1003
01:06:53,308 --> 01:06:57,308
ให้เกิดขึ้นไม่ได้นะครับ

1004
01:06:57,309 --> 01:07:01,309
ปัญหาต่อมานะครับ

1005
01:07:01,317 --> 01:07:05,308
ปัญหาการติดตาย

1006
01:07:05,308 --> 01:07:09,308
ดูรูปประกอบเลยนะครับ

1007
01:07:09,309 --> 01:07:13,309
ปัญหาการติดตายคืออะไร ครับ ดูรูปเลย เมื่อ Process

1008
01:07:13,309 --> 01:07:17,309
ใดก็แล้วแต่ ครอบครองทรัพยากรของตั

1009
01:07:17,311 --> 01:07:21,308
ทรัพยากรของตัวเองอยู่ แล้วในขณะเดียวกัน

1010
01:07:21,308 --> 01:07:25,307
ต้องการไปครอบครองทรัพยากรของเรา

1011
01:07:25,307 --> 01:07:29,307
แต่ไม่ยอมให้ Process อื่น เข้า

1012
01:07:29,309 --> 01:07:33,308
มาครอบครองทรัพยากรของตัวเอง

1013
01:07:33,308 --> 01:07:37,307
เหมือนกันนะครับ เช่น ผมบอกอุบล

1014
01:07:37,307 --> 01:07:41,307
อาจารย์ยิมสตางค์ของอุบลหน่อย 1 ร้อยล

1015
01:07:41,314 --> 01:07:45,309
้าน อุบลก็บอกเหมือนกัน อาจารย์

1016
01:07:45,309 --> 01:07:49,309
ผมก็ยืมตังอาจารย์หน่อย 2

1017
01:07:49,316 --> 01:07:53,309
ร้อยล้าน แต่อุบลก็ไม่ควักให้ผมนะ ผมก็ไม่ควักให้อุบล

1018
01:07:53,309 --> 01:07:57,309
เพราะเราก็ไม่มีทั้งคูนะ

1019
01:07:57,310 --> 01:08:01,308
คือ อยากได้สตางค์อุบล อุบล

1020
01:08:01,308 --> 01:08:05,307
ไม่ควักให้ นี่คือลักษณะการปิดตาย

1021
01:08:05,307 --> 01:08:09,307
ก็คือ Process ใด Process หนึ่งนี่ครอบครองทรัพยากรตัวเอง

1022
01:08:09,310 --> 01:08:13,308
อยู่แต่อยากไปได้ทรัพยากรของคนอื่น

1023
01:08:13,308 --> 01:08:17,308
คนอื่น แต่ตัวเองก็ไม่ยอมให้ทรัพยากรของตัวเอง

1024
01:08:17,309 --> 01:08:21,309
นะครับ นี่คือลักษณธการติดตายหรือ

1025
01:08:21,309 --> 01:08:25,308

1026
01:08:25,308 --> 01:08:29,308
เขาบอกว่า

1027
01:08:29,308 --> 01:08:33,308
ปัญหาการติดตายนั้น ไม่จำเป็นต้องเกิดจาก 2

1028
01:08:33,311 --> 01:08:37,308
Process อาจจะ

1029
01:08:37,308 --> 01:08:41,308
เกิดจากหลาย Process ก็ได้นะครับ มากกว่า 2 Process แต่ต้อง

1030
01:08:41,312 --> 01:08:45,306
มีเงื่อนไขดังนี้ เช่น

1031
01:08:45,306 --> 01:08:49,306
1. การครอบครองเป็นแบบตัดตอนไม่ได้

1032
01:08:49,307 --> 01:08:53,307
อันนี้ก้ตัดตอนไม่ได้นะ

1033
01:08:53,309 --> 01:08:57,309
Process A, Process B ก็ไม่ได้ Process C ก็ไม่ได้

1034
01:08:57,309 --> 01:09:01,306

1035
01:09:01,306 --> 01:09:05,306
ไม่ไป ไม่มา นะครับ เงื่อนไขแบบที่ 2

1036
01:09:05,308 --> 01:09:09,308
การครอบครองเป็นแบบไม่เกิดร่วม

1037
01:09:09,309 --> 01:09:13,309
ต่างคนต่างทำงาน ต่างคนต่างอยู่คนละส่วน

1038
01:09:13,309 --> 01:09:17,309
ปิดตายขึ้น

1039
01:09:17,309 --> 01:09:21,307
นะครับ เงื่อนไขที่ 3 คือ

1040
01:09:21,307 --> 01:09:25,307
ในการรอใช้ทรัพยากร

1041
01:09:25,310 --> 01:09:29,308
เป็นการรอแบบวนรอบ

1042
01:09:29,308 --> 01:09:33,308
หรือวนรอบ หรือภาษาเขีียนโปรแกรม

1043
01:09:33,311 --> 01:09:37,309
เราเรียกว่าวนลูป หรือวนรอบ

1044
01:09:37,309 --> 01:09:41,307
ก็จะเกิดปัญหาการติดตายขึ้น

1045
01:09:41,307 --> 01:09:45,307
นะครับ นี่คือปัญหา 3 ปัญหาที่เกิดขึ้นในระบบเรา

1046
01:09:45,317 --> 01:09:49,312
แต่เวลาเราออกแบบ OS ก็เกิดขึ้น

1047
01:09:49,312 --> 01:09:53,307

1048
01:09:53,307 --> 01:09:57,307
หัวข้อสุดท้ายนะครับ

1049
01:09:57,308 --> 01:10:01,308
ของบทนี้นะครับ เธรดนะครับ

1050
01:10:01,308 --> 01:10:05,307
เขาบอกในระบบ

1051
01:10:05,307 --> 01:10:09,307
ปฏิบัติการรุ่นใหม่ ๆ บางตัวซึ่งเราใช้แล้วนะครับ เราใช้แบบนี้อยู่

1052
01:10:09,310 --> 01:10:13,308
นะครับ ถ้าเป็นสมัยก่อนยกไม่เกิดระบ

1053
01:10:13,308 --> 01:10:17,308
นะครับ เธรด ก็คือเป็นการที่ระบบปฏิบัติการ

1054
01:10:17,310 --> 01:10:21,307
แบ่งย่อย Processing ออกมาเป็นส่วน ๆ

1055
01:10:21,307 --> 01:10:25,307
ดูรูปประกอบเลยนะครับ

1056
01:10:25,307 --> 01:10:29,307

1057
01:10:29,308 --> 01:10:33,308
นี่... ทำไมไม่ขึ้น

1058
01:10:33,308 --> 01:10:37,308
ขวามือผมนะครับ

1059
01:10:37,308 --> 01:10:41,307
กับ Process B

1060
01:10:41,307 --> 01:10:45,306
Process A

1061
01:10:45,306 --> 01:10:49,305
โค้ดโปรแกรม

1062
01:10:49,305 --> 01:10:53,305
แล้วก็ข้อมูลองค์ประกอบอื่น

1063
01:10:53,307 --> 01:10:57,307
เขียนโปรแกรมแบบไม่ใช่เธรด แต่

1064
01:10:57,307 --> 01:11:01,307
พอเทรดปุ๊บมันจะแบ่งส่วนเทรด

1065
01:11:01,309 --> 01:11:05,309
1, 2, 3, 4, 5 เป็นส่วนย่อยนะครับ

1066
01:11:05,310 --> 01:11:09,308
เราแบ่ง มีประโยชน์อะไร

1067
01:11:09,308 --> 01:11:13,308
นะครับ มันจะให้ทำงานเร็วขึ้น สามารถ

1068
01:11:13,309 --> 01:11:17,307
ทำงานกับหน่วยความจำที่มีขนาดเล็กได้

1069
01:11:17,307 --> 01:11:21,307
แก้ไขง่าย นี่คือหลักการเขียนโปรแกรม

1070
01:11:21,310 --> 01:11:25,306
ใน ณ ปัจจุบันนี้นะครับ

1071
01:11:25,306 --> 01:11:29,306
เดี๋ยวพอเราเขียนโปรแกรมเราเรียนไปสัก ปี 2

1072
01:11:29,309 --> 01:11:33,308
ทำไมเราต้องมาเขียนเป็นแบบเทรด

1073
01:11:33,308 --> 01:11:37,308
โบราณนะครับ เขียนทีเดียว 100 บรรทัด 500 บรรทัด

1074
01:11:37,312 --> 01:11:41,306
เวลามีปัญหามาปุ๊บการแก้ไขปัญหา

1075
01:11:41,306 --> 01:11:45,306
นะครับ แก้ไขยากนะครับ นี่คือหลักการ

1076
01:11:45,306 --> 01:11:49,306
ของการเขียนโปรแกรม

1077
01:11:49,306 --> 01:11:53,306
แจ้งพวกเรานะครับ เมื่อกี้ได้พูดไปแล้วนะครับ

1078
01:11:53,308 --> 01:11:57,308
สัปดาห์หน้านะครับ

1079
01:11:57,308 --> 01:12:01,308
วันที่ 7 เราก็จะไปศึกษาดูงานนอกสถานที่นะครับ

1080
01:12:01,319 --> 01:12:05,307
หมู่ 2 นะครับ หมู่ 2

1081
01:12:05,307 --> 01:12:09,307
หมู่ 1 ยังไม่ได้ไปนะครับ เราจะไปศึกษาดูงาน

1082
01:12:09,308 --> 01:12:13,306
ที่นครพนม ผมจะ

1083
01:12:13,306 --> 01:12:17,306
พาไปที่บุสบานก่อน

1084
01:12:17,306 --> 01:12:21,306
ไปดูหมู่บ้าน

1085
01:12:21,306 --> 01:12:25,306
อะไรไม่รู้จำไม่ได้นะครับ พวกทำเกี่ยวกับพื้นเมือง แล้วก็จะพาไปพิพิธภัณฑ์สัตว์น้ำ

1086
01:12:25,315 --> 01:12:29,306

1087
01:12:29,306 --> 01:12:33,306
นครพนม ก็สัปดาห์หน้าก็

1088
01:12:33,306 --> 01:12:37,306
หมู่ 1 ก็ต้องมาเรียน ก็เห็นพี่พลอย

1089
01:12:37,307 --> 01:12:41,307
ประสานไปที่อาจารย์อะไรนะที่เราเรียนน่ะ ตอนเช้าน่ะ

1090
01:12:41,308 --> 01:12:45,308
ก็เรียนด้วยกันใช่ไหม

1091
01:12:45,309 --> 01:12:49,307
เห็นว่าอาจารย์ว่าคณะก็

1092
01:12:49,307 --> 01:12:53,307
ไหว้ครู แต่ว่าสัปดาห์หน้าเราไม่มีเรียน

1093
01:12:53,312 --> 01:12:57,311
นะครับ ห้อง 1 นะมีเรียน แต่สัปดาห์หน้าหมู่ 2

1094
01:12:57,311 --> 01:13:01,306
เราจะไปนอกสถานที่

1095
01:13:01,306 --> 01:13:05,306
จะพาไปดูอะไรนะ ไปดู

1096
01:13:05,308 --> 01:13:09,306
ปลาบึก เขาจะป้อนอาหารปลาบึก

1097
01:13:09,306 --> 01:13:13,306
เอาอุบลไปให้อาหารปลา อุบลนะ

1098
01:13:13,307 --> 01:13:17,307
ก็ไปทั้งวันนะครับ

1099
01:13:17,308 --> 01:13:21,306
ก็แจ้งพวกเราไว้ สัปดาห์หน้าก็หยุด

1100
01:13:21,306 --> 01:13:25,306
นะครับ สัปดาห์ถัดไปก็เจอกันนู้นเลยครับ

1101
01:13:25,307 --> 01:13:29,306
นะครับ ก็ตอนนี้เราเปิดเทอมมาได้

1102
01:13:29,306 --> 01:13:33,306
เดือนหนึ่งนะครับ เป้นอย้างไรครับ ปรับตัวได้

1103
01:13:33,310 --> 01:13:37,308
ได้แล้วนะ บางคนก็ส่งงานไว้ที่โต๊ะนะครับ เดี๋ยว

1104
01:13:37,308 --> 01:13:41,308
ผมจะส่งคืนให้นะ ผมจะตรวจ

1105
01:13:41,308 --> 01:13:45,308
แล้วส่งคืนให้ ๆ เราเอาเก็บไว้อ่านสอบ

1106
01:13:45,310 --> 01:13:49,308
แบบฝึกหัดที่ผมให้ทำ

1107
01:13:49,308 --> 01:13:53,308
มีใครอยากจะถามอะไรเพิ่มเติมไหมครับ

1108
01:13:53,310 --> 01:13:57,306

1109
01:13:57,306 --> 01:14:01,306
ครับ ถ้าไม่มีก็...

1110
01:14:01,306 --> 01:14:05,305

1111
01:14:05,305 --> 01:14:09,305
Process พ่อเกิดอย่างไร

1112
01:14:09,306 --> 01:14:13,306
Process พ่อเกิดขึ้นจาก

1113
01:14:13,307 --> 01:14:17,307
การที่เมื่อเวลาใดเวลาหนึ่ง เช่น เรา... สมมตินะ ๆ

1114
01:14:17,309 --> 01:14:21,309
ผมเป็น Process  ผมต้องการจะเข้าไป ครอบครอง

1115
01:14:21,311 --> 01:14:25,310
จะเข้าไปครอบครอง CPU ตัวของระบบปฏิบัติการจะสร้าง

1116
01:14:25,310 --> 01:14:29,307
Process หนึ่งขึ้นมา เพื่อมากำกับผม

1117
01:14:29,307 --> 01:14:33,307
ไป จะพาเข้าไปครอบครอง CPU นะ นี่

1118
01:14:33,309 --> 01:14:37,307
เป็นการให้กำเนิด เป้นการให้กำเนิด

1119
01:14:37,307 --> 01:14:41,307
เพื่อพา Process เข้าไป ตรงนี้เรียกว่า Process พ่อ

1120
01:14:41,321 --> 01:14:45,321
นะครับ นี่คือหลักการของมัน

1121
01:14:45,321 --> 01:14:49,305
ของมันนะครับ

1122
01:14:49,305 --> 01:14:53,305
ครับ ก็ต้อง

1123
01:14:53,312 --> 01:14:57,312
ขอบคุณพี่ล่ามมากนะครับ ที่ได้ให้การอนุเคราะห์เรา

1124
01:14:57,317 --> 01:15:01,306
มาอีก 1 สัปดาห์ สัปดาห์หน้า

1125
01:15:01,306 --> 01:15:05,306
เราไม่ได้เจอกันนะครับ พี่ล่าม สัปดาห์หน้าจะพาน้อง ๆ ไปนอกสถานที่

1126
01:15:05,316 --> 01:15:09,306
ก็ ถ้าไม่มีใครถามอะไรแล้วนะครับ

1127
01:15:09,306 --> 01:15:13,306
ก็เจอกันสัปดาห์หน้านะครับ ไปดูงานนอกสถานที่

1128
01:15:13,318 --> 01:15:17,318
กัน โอเคครับผม ไป

1129
01:15:28,225 --> 01:15:38,572

1130
01:15:25,975 --> 01:15:28,967

1131
01:15:28,967 --> 01:15:28,968

1132
01:15:28,968 --> 01:15:32,968

1133
01:15:32,972 --> 01:15:33,976

1134
01:15:33,976 --> 01:15:37,976

1135
01:15:37,983 --> 01:15:41,983

1136
01:15:41,986 --> 01:15:45,986

1137
01:15:45,991 --> 01:15:49,991

1138
01:15:49,992 --> 01:15:53,992

1139
01:15:53,997 --> 01:15:57,997

1140
01:15:58,001 --> 01:16:02,001

1141
01:16:02,004 --> 01:16:06,004

1142
01:16:06,005 --> 01:16:10,005

1143
01:16:10,007 --> 01:16:14,007


