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

2
00:00:11,600 --> 00:00:11,602

3
00:00:11,602 --> 00:00:15,600

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

5
00:00:19,601 --> 00:00:23,601
ของการจัดการ

6
00:00:23,603 --> 00:00:27,600
Process นะครับ

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

8
00:00:31,604 --> 00:00:35,600
Process

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

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

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

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

13
00:00:51,604 --> 00:00:55,604

14
00:00:55,613 --> 00:00:59,600

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

30
00:01:59,601 --> 00:02:03,601
หมู่ 1 หมู่ 1 ส่งไว้ที่ไหน

31
00:02:03,605 --> 00:02:07,601
ยังไม่ส่งใช่ไหม พ่อเห็

32
00:02:07,601 --> 00:02:11,600

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

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

35
00:02:19,602 --> 00:02:23,601
นะครับ ใครมาช้ามาเอา

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

54
00:03:35,602 --> 00:03:39,601

55
00:03:39,601 --> 00:03:43,601
คืออะไร

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

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

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

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

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

61
00:04:03,603 --> 00:04:07,603
เรียนหรือยัง เรียนหรือยังครับ หมู่ 1

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

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

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

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

66
00:04:23,604 --> 00:04:27,601
นะครับ

67
00:04:27,601 --> 00:04:31,601
ผมเข้าใจนะ พวกเราเป็น Generation ที่แตกต่างจากอาจา

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

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

70
00:04:39,602 --> 00:04:43,601
Gen Y บ แม่นหรอ

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

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

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

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

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

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

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

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

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

80
00:05:19,602 --> 00:05:23,602
นะครับ แนวคิดต่างกัน รุ่นพวกเรานี่

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

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

83
00:05:31,602 --> 00:05:35,601
ถ้าจะให้ไปต่อคิวก็ไม่ไปนะครับ

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

85
00:05:39,603 --> 00:05:43,602
พวกแก๊บ พวก Food Panda ใช่ไหม

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

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

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

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

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

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

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

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

94
00:06:15,605 --> 00:06:19,602
มาจัดสะ ปี 1 เทอม 1

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

96
00:06:23,604 --> 00:06:27,602
โปรแกรมที่กำลังถูก Execute ถ้าเรามอง ก็คือ

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

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

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

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

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

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

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

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

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

106
00:07:03,603 --> 00:07:07,602
Input ประมวลผล Process ใช่ไหม

107
00:07:07,602 --> 00:07:11,602
แล้วก็ออกไป Output นี่คือหลักการของมัน

108
00:07:11,604 --> 00:07:15,602
เขาบอกว่า Process คือ โปรแกรมที่

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

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

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

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

113
00:07:31,603 --> 00:07:35,603
นะครับ คือ หลักการ ก็คือคำว่า "Process" ก็คือ

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

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

116
00:07:43,605 --> 00:07:47,603
นามสกุล ไฟล์ทุกไฟล์ต้องมีนามสกุล เดี๋ยว

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

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

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

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

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

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

123
00:08:11,610 --> 00:08:15,602
คราวนี้ถ้า Process

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

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

126
00:08:23,611 --> 00:08:27,605
Input เสร็จ

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

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

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

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

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

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

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

134
00:08:55,603 --> 00:08:59,603
เหมือนกับว่าในคอมพิวเตอร์เรานี่มี CPU อยู่แค่ตัวเดียว

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

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

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

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

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

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

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

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

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

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

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

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

147
00:09:47,603 --> 00:09:51,603
จะลากจะพ่วง ทำไม่ได้ หลักการทำไม่ได้

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

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

150
00:09:59,604 --> 00:10:03,603
แล้วไปจอดหน้าค่ายกฤษ

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

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

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

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

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

156
00:10:23,610 --> 00:10:27,601
สูงไหม สูงไหม

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

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

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

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

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

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

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

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

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

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

167
00:11:07,602 --> 00:11:11,601

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

190
00:12:39,602 --> 00:12:43,602
เหมือนชื่อไฟล์น่ะ ชื่อไฟล์ซ้ำกันได้ไหม

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

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

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

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

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

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

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

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

199
00:13:15,605 --> 00:13:19,604
เช่น อาจจะมีพิเชน จันทร์ปุ่ม 5 คนก็ได้ เหมือนกัน

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

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

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

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

204
00:13:35,601 --> 00:13:39,601
Process ทุก Process

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

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

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

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

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

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

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

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

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

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

215
00:14:19,603 --> 00:14:23,602
กันได้ ตัวอย่างของ Process

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

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

218
00:14:31,606 --> 00:14:35,603
นะครับ

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

220
00:14:39,605 --> 00:14:43,601
เช่น เรามา

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

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

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

224
00:14:55,603 --> 00:14:59,602
นะครับ ศูนย์คอมไปกองพัฒฯ

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

226
00:15:03,604 --> 00:15:07,603
นะครับ

227
00:15:07,603 --> 00:15:11,601
องค์ประกอบ

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

229
00:15:15,602 --> 00:15:19,602
Process Control Block นะครับ หรือ Block ควบคุมโปรแกรม

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

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

232
00:15:27,604 --> 00:15:31,602
Control Block

233
00:15:31,602 --> 00:15:35,602
หรือ PCB นะครับ

234
00:15:35,602 --> 00:15:39,602

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

236
00:15:43,606 --> 00:15:47,602
กำหนดไว้เพื่อเป็น

237
00:15:47,602 --> 00:15:51,602

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

239
00:15:55,603 --> 00:15:59,602
อยู่ใน PCB นะครับ

240
00:15:59,602 --> 00:16:03,602
ใน Process แต่ละตัวจะมี

241
00:16:03,605 --> 00:16:07,605
Blocikควบคุมโปรแกรมหรือ PCB อยู่นะครับ ซึ่ง PCB นี้

242
00:16:07,612 --> 00:16:11,605
ก็จะเก็บสถานะของ Process

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

244
00:16:15,609 --> 00:16:19,608
นอกจากนั้น

245
00:16:19,608 --> 00:16:23,608
ก็ยังเก็บสารสนเทศที่เกี่ยวกับ

246
00:16:23,609 --> 00:16:27,606
การจัดการหน่วยความจำของ Process

247
00:16:27,606 --> 00:16:31,605
ข้อมูลการรับส่งข้อมูลของ Process

248
00:16:31,605 --> 00:16:35,605
หรือเก็บข้ามูลสำคัญของ Process

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

250
00:16:39,604 --> 00:16:43,604
นะครับ

251
00:16:43,608 --> 00:16:47,603
Register คือ หน่วยความจำขนาดเล็ก

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

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

254
00:16:55,621 --> 00:16:59,602
ให้พวกเรามอภาพกว้าง ๆ

255
00:16:59,602 --> 00:17:03,602

256
00:17:03,603 --> 00:17:07,603

257
00:17:07,604 --> 00:17:11,604
ครับผม

258
00:17:11,607 --> 00:17:15,606

259
00:17:15,606 --> 00:17:19,605

260
00:17:19,605 --> 00:17:23,603

261
00:17:23,603 --> 00:17:27,603

262
00:17:27,605 --> 00:17:31,603

263
00:17:31,603 --> 00:17:35,603

264
00:17:35,603 --> 00:17:39,603

265
00:17:39,604 --> 00:17:43,603
ดูต่อนะครับ

266
00:17:43,603 --> 00:17:47,603
องค์ประกอบต่อมา

267
00:17:47,606 --> 00:17:51,606
นะครับ ของ Process ก็คือ Program Status

268
00:17:51,609 --> 00:17:55,603
นะครับ

269
00:17:55,603 --> 00:17:59,603
หรือ PSW นะครับ Program Status Words นะครับ

270
00:17:59,605 --> 00:18:03,603
เป็นตัวควบคุมลับดับของ Exec

271
00:18:03,603 --> 00:18:07,603
ของ Process

272
00:18:07,615 --> 00:18:11,606
มันจะบอกว่า Process นี้จะเข้าไปครอบครอง

273
00:18:11,606 --> 00:18:15,606
CPU ลำดับที่เท่าไรนะครับ

274
00:18:15,609 --> 00:18:19,603

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

276
00:18:23,612 --> 00:18:27,609
จะมีคุณสมบัติดังต่อไปนี้

277
00:18:27,609 --> 00:18:31,609
นะครับ ก็คือ 1. Process ทุก

278
00:18:31,619 --> 00:18:35,607
ตัวจะมีลำดับความสำคัญ

279
00:18:35,607 --> 00:18:39,607
ต่างกันนะครับ Process ทุก Process

280
00:18:39,612 --> 00:18:43,606
จะมีลำดับความสำคัญ เช่น

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

282
00:18:47,612 --> 00:18:51,605
ผู้ดูแลระบบอาจจะมีความสำคัญมากกว่า

283
00:18:51,605 --> 00:18:55,605
ของ User อย่างนี้ อันที่ 2

284
00:18:55,617 --> 00:18:59,610
คุณสมบัติอันที่ 2 อำนาจหน้าที่

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

286
00:19:03,607 --> 00:19:07,607
ของผู้ดูแลระบบมีอำนาจ

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

288
00:19:11,609 --> 00:19:15,607
คุณสมบัติอื่น ๆ ที่

289
00:19:15,607 --> 00:19:19,607
OS กำหนด

290
00:19:19,609 --> 00:19:23,609
อันนี้ขึ้นอยู่กับ OS ครับ ขึ้นอยู่ว่าเราใช้ OS อะไร

291
00:19:23,632 --> 00:19:27,606
เช่น ใช้ Windows 8

292
00:19:27,606 --> 00:19:31,606
ใช้ Windows 10 คุณสมบัติของ OS

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

294
00:19:35,610 --> 00:19:39,604
Windoes 8

295
00:19:39,604 --> 00:19:43,604
สามารถตั้งชื่อได้

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

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

298
00:19:51,608 --> 00:19:55,608
เราสามารตั้งชื่อได้นะ

299
00:19:55,608 --> 00:19:59,608
นะครับ กับ Windows 11

300
00:19:59,611 --> 00:20:03,605
ต่างกันไหม ลองดูนะ ลองดู เดี๋ยวเรา

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

302
00:20:07,605 --> 00:20:11,605
ถ้าเกิดเป็น Windows 8 ตั้งชื่อได้กี่ตัว

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

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

305
00:20:19,609 --> 00:20:23,606
เป็นคนกำหนดนะครับ

306
00:20:23,606 --> 00:20:27,606

307
00:20:27,607 --> 00:20:31,607
เมื่อกี้องค์ประกอบของ Process นะครับ คราวนี้มาดูสถานะ

308
00:20:31,610 --> 00:20:35,607
ของ Process นะครับ

309
00:20:35,607 --> 00:20:39,607
สไลด์นะครับ อยู่กับพี่พลอยนะ

310
00:20:39,610 --> 00:20:43,607
พลอยค่อย อัปขึ้นให้น้องนะครั

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

312
00:20:47,608 --> 00:20:51,605
แวะดูก่อนนะครับ คราวนี้

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

314
00:20:55,611 --> 00:20:59,610
ได้ดังต่อไปนี้นะครับ 1.

315
00:20:59,610 --> 00:21:03,610
สถานะพร้อม สถานะพร้อมเป็นอย่างไร

316
00:21:03,611 --> 00:21:07,609
สถานะพร้อมเป็นสถานะพร้อมที่ Process

317
00:21:07,609 --> 00:21:11,608
พร้อมที่จะใช้ CPU ทันทีที่

318
00:21:11,608 --> 00:21:15,607
OS มอบหมายให้ เรา

319
00:21:15,607 --> 00:21:19,606
รอแล้ว เหมือนเรารอคิวแล้ว ยืนรอแล้ว

320
00:21:19,606 --> 00:21:23,606
รอเข้าไปครอบครอง CPU

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

322
00:21:27,610 --> 00:21:31,607
เช่น

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

324
00:21:35,611 --> 00:21:39,609
นี่ เราพร้อมแล้ว พร้อมจะเข้าไปใช้งาน

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

326
00:21:43,609 --> 00:21:47,606
สถานะ Run

327
00:21:47,606 --> 00:21:51,606
Run คืออะไร ครับ สถานะ Run เป็นสถานะ

328
00:21:51,606 --> 00:21:55,606
Process กำลังครอบครอง CPU อยู่

329
00:21:55,608 --> 00:21:59,608
CPU อยู่ ก็คือเข้าไปครอบครอง CPU

330
00:21:59,610 --> 00:22:03,608
ที่เราเรียกว่า Run Progarm

331
00:22:03,608 --> 00:22:07,608
นี่คือสถานะ Run

332
00:22:07,613 --> 00:22:11,609
นะครับ

333
00:22:11,609 --> 00:22:15,608
สถานะที่ 3 นะครับ 8

334
00:22:15,608 --> 00:22:19,608
สถานะติดขัด

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

336
00:22:23,608 --> 00:22:27,608
ที่ Process หยุดรอ

337
00:22:27,608 --> 00:22:31,607
เหตุการณ์ใดเหตุการณ์หนึ่งให้เกิดขึ้น

338
00:22:31,607 --> 00:22:35,607
โดย Process ไม่จำเป็นต้องใช้ CPU

339
00:22:35,609 --> 00:22:39,608
และมันต้องไปครอบครอง CPU เราไม่รู้ครับ ว่า

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

341
00:22:43,610 --> 00:22:47,607
ยกตัวอย่างเช่น

342
00:22:47,607 --> 00:22:51,607
ผมกับแม็กกี้หรืออุบลกับอุบล

343
00:22:51,608 --> 00:22:55,608
ผมเป็น Process A ไปยืนรอคิวใน

344
00:22:55,608 --> 00:22:59,607
สถานะพร้อม อุบลรอผมคนที่ 2

345
00:22:59,607 --> 00:23:03,607
ผมเปลี่ยนจากสถานะ

346
00:23:03,609 --> 00:23:07,609
พร้อมเข้าเป็นสถานะ Run ก็คือ

347
00:23:07,609 --> 00:23:11,607
เข้าไปครอบครอง CPU

348
00:23:11,607 --> 00:23:15,607
อุบลก็รออยู่ อยู่ในสถานะพร้อม

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

350
00:23:19,608 --> 00:23:23,608
ผมจำเป็นจะต้อง

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

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

353
00:23:31,613 --> 00:23:35,608
แล้วช่วงที่ออกไปที่พรินตเตอร์นี่

354
00:23:35,608 --> 00:23:39,607
ต้องใช้งาน CPU

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

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

357
00:23:47,608 --> 00:23:51,608
ออกไปติดต่ออุปกรณ์รอบข้าง จังหวะนี้

358
00:23:51,610 --> 00:23:55,607
อุบลก็จะเข้ามาแทนที่ผม

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

360
00:23:59,615 --> 00:24:03,615
จากอะไร เราก็บอกว่าเกิดจากสถานะ

361
00:24:03,615 --> 00:24:07,608
ที่ Process เข้าไปครอบครอง CPU แล้วนะครับ

362
00:24:07,608 --> 00:24:11,607
แต่เกิดเหตที่ Process เอง

363
00:24:11,607 --> 00:24:15,607
ไม่จำเป็นจะต้องครอบครอง CPU ต่อ

364
00:24:15,615 --> 00:24:19,611
หรือไปติดต่อกับอุปกรณ์ข้างนอก

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

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

367
00:24:27,608 --> 00:24:31,608
นี่คือสถานะติดขัด

368
00:24:31,608 --> 00:24:35,608
สถานะต่อมานะครับ สถานะพัก

369
00:24:35,612 --> 00:24:39,609
เขาบอกสถานะพัก

370
00:24:39,609 --> 00:24:43,609
ก็คือสถานะ Process ไม่มีการทำง

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

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

373
00:24:51,611 --> 00:24:55,610
จบเลย มาทำงานต่อ ได้พัก จบนะครับ

374
00:24:55,610 --> 00:24:59,608

375
00:24:59,608 --> 00:25:03,608

376
00:25:03,612 --> 00:25:07,610
ซึ่ง Process นั้นนะครับ

377
00:25:07,610 --> 00:25:11,610
สามารถที่จะเปลี่ยนสถานะหนึ่งเป็น

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

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

380
00:25:19,610 --> 00:25:23,610
อาจจะพร้อม พร้อมเสร็จ

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

382
00:25:27,612 --> 00:25:31,608
เป็นสถานะติดขัด พอติดขัดเสร็จ

383
00:25:31,608 --> 00:25:35,608
กลับไปพร้อมใหม่ พร้อมเสร็จกลับไป Run Run

384
00:25:35,610 --> 00:25:39,607
เสร็จแล้ว จบแล้วไปพัก

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

386
00:25:43,609 --> 00:25:47,607

387
00:25:47,607 --> 00:25:51,607

388
00:25:51,613 --> 00:25:55,613

389
00:25:55,615 --> 00:25:59,608
อันนี้อาจารย์อธิบายไปแล้วนะครับ

390
00:25:59,608 --> 00:26:03,608
ลอง

391
00:26:03,619 --> 00:26:07,608
ดูรูปนะครับ เห็นไหมครับ

392
00:26:07,608 --> 00:26:11,608
ในรูปภาพอธิบาย

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

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

395
00:26:19,620 --> 00:26:23,614
ยืนต่อคิวเลย 1 2 3 4 5

396
00:26:23,614 --> 00:26:27,614
พร้อมไหม พร้อม

397
00:26:27,625 --> 00:26:31,618
พอพร้อมเสร็จ ได้เวลา โอเค Run

398
00:26:31,618 --> 00:26:35,613
ทีละตัวทีละตัว ทีลโปรแกรมทีละ Processe

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

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

401
00:26:43,627 --> 00:26:47,620
แต่ถ้าเกิดเหตุการณ์ใดเหตุการณ์หนึ่งขึ้น

402
00:26:47,620 --> 00:26:51,612
นะครับ เพราะอะไรครับ ถ้าเรามอง

403
00:26:51,612 --> 00:26:55,612
รูปนี้ รูปนี้

404
00:26:55,612 --> 00:26:59,608
มาพร้อม มา Run

405
00:26:59,608 --> 00:27:03,608
แล้วก็จบ ถ้าสมมติว่า

406
00:27:03,609 --> 00:27:07,609
Process แต่ละตัวเข้าไป Run ใช้เวลาไม่

407
00:27:07,610 --> 00:27:11,610
เท่ากันจะเกิดอะไรขึ้นนะ เช่น

408
00:27:11,612 --> 00:27:15,612
Process A เช่นผม

409
00:27:15,617 --> 00:27:19,608
พร้อมเข้าไป Run 2 วินาที

410
00:27:19,608 --> 00:27:23,608
แล้วก็จบ มีอะไรเกินขึ้นไหม

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

430
00:28:40,615 --> 00:28:44,612
เช่น เรากำหนดเวลาควอนตัมไว้

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

450
00:30:00,624 --> 00:30:04,610
ใช่ไหมเราหายใจแทบไม่ทัน เวลาประมวลผล

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

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

453
00:30:12,610 --> 00:30:16,609
เวลาเรา Run โปรแกรม เราจะกด Escape ยกเลิกทันน

454
00:30:16,609 --> 00:30:20,609
p

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

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

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

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

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

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

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

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

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

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

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

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

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

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

469
00:31:16,617 --> 00:31:20,610

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

471
00:31:24,615 --> 00:31:28,609
นะครับ ที่เรา

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

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

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

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

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

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

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

479
00:31:56,610 --> 00:32:00,610
ติดต่อกับ Printer

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

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

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

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

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

485
00:32:20,610 --> 00:32:24,609

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

487
00:32:28,610 --> 00:32:32,610
ทั้ง 3 ของ Process ก็คือ พร้อม Run ติดขัด

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

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

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

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

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

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

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

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

496
00:33:04,609 --> 00:33:08,609
เพราะสถานะพักเราบอกว่า

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

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

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

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

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

502
00:33:28,613 --> 00:33:32,609

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

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

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

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

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

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

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

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

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

512
00:34:08,613 --> 00:34:12,611
สถานะพัก จนกว่าเหตุการณ์ปกติ ก็จะกลับมา

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

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

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

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

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

518
00:34:32,612 --> 00:34:36,608
เช่น Run Run อยู่กดยกเลิกอย่างนี้

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

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

521
00:34:44,611 --> 00:34:48,608

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

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

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

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

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

527
00:35:08,609 --> 00:35:12,608
เห็นไหมครับ

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

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

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

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

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

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

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

535
00:35:40,610 --> 00:35:44,608

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

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

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

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

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

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

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

543
00:36:12,618 --> 00:36:16,613

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

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

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

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

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

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

550
00:36:40,613 --> 00:36:44,610
ถ้าหลายคนสับสน เช่น บอกถ้าอาจารย์ค

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

552
00:36:48,609 --> 00:36:52,608
ได้ไหม

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

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

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

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

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

558
00:37:12,610 --> 00:37:16,608

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

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

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

562
00:37:28,608 --> 00:37:32,608

563
00:37:32,614 --> 00:37:36,609

564
00:37:36,609 --> 00:37:40,607

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

566
00:37:44,607 --> 00:37:48,607

567
00:37:48,608 --> 00:37:52,607

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

590
00:39:20,611 --> 00:39:24,610
อุบล

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

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

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

594
00:39:36,618 --> 00:39:40,607

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

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

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

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

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

600
00:40:00,609 --> 00:39:52,613
อุบลก็จะมี Process ย่อย

601
00:39:52,613 --> 00:39:56,607
แต่พออุบลเข้าไปแต่พออุบลเข้าไป

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

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

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

605
00:40:08,611 --> 00:40:12,611
ซึ่งตัวของ Process ย่อย

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

607
00:40:16,612 --> 00:40:20,608
นะครับ

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

609
00:40:24,613 --> 00:40:28,608
ผู้ให้กำเนิดเราเรียกว่า Process

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

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

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

613
00:40:40,609 --> 00:40:44,609

614
00:40:44,610 --> 00:40:48,607

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

616
00:40:52,608 --> 00:40:56,607
ระหว่าง Process

617
00:40:56,607 --> 00:41:00,607

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

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

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

621
00:41:12,610 --> 00:41:16,610
พี่ล่ามจะได้ไป ทานน้ำ ไปเข้าน้ำ

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

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

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

625
00:41:28,609 --> 00:41:32,607

626
00:41:32,607 --> 00:41:36,607

627
00:41:36,607 --> 00:41:40,607

628
00:41:40,609 --> 00:41:44,608

629
00:41:44,608 --> 00:41:48,607

630
00:41:48,607 --> 00:41:52,607

631
00:41:52,607 --> 00:41:56,607

632
00:41:56,607 --> 00:42:00,607

633
00:42:00,607 --> 00:42:04,607

634
00:42:04,609 --> 00:42:08,607

635
00:42:08,607 --> 00:42:12,607

636
00:42:12,607 --> 00:42:16,607

637
00:42:16,610 --> 00:42:20,608

638
00:42:20,608 --> 00:42:24,607

639
00:42:24,607 --> 00:42:28,607

640
00:42:28,607 --> 00:42:32,607

641
00:42:32,607 --> 00:42:36,607

642
00:42:36,611 --> 00:42:40,611

643
00:42:40,613 --> 00:42:44,607

644
00:42:44,607 --> 00:42:48,607

645
00:42:48,607 --> 00:42:52,607

646
00:42:52,610 --> 00:42:56,606

647
00:42:56,606 --> 00:43:00,606

648
00:43:00,606 --> 00:43:04,606

649
00:43:04,607 --> 00:43:08,606

650
00:43:08,606 --> 00:43:12,606

651
00:43:12,607 --> 00:43:16,607

652
00:43:16,608 --> 00:43:20,607

653
00:43:20,607 --> 00:43:24,606

654
00:43:24,606 --> 00:43:28,606

655
00:43:28,619 --> 00:43:32,607

656
00:43:32,607 --> 00:43:36,607

657
00:43:36,607 --> 00:43:40,607

658
00:43:40,607 --> 00:43:44,607

659
00:43:44,608 --> 00:43:48,607

660
00:43:48,607 --> 00:43:52,606

661
00:43:52,606 --> 00:43:56,606

662
00:43:56,614 --> 00:44:00,610

663
00:44:00,610 --> 00:44:04,607

664
00:44:04,607 --> 00:44:08,607

665
00:44:08,607 --> 00:44:12,607

666
00:44:12,607 --> 00:44:16,607

667
00:44:16,607 --> 00:44:20,606

668
00:44:20,606 --> 00:44:24,606

669
00:44:24,606 --> 00:44:28,606

670
00:44:28,608 --> 00:44:32,606

671
00:44:32,606 --> 00:44:36,606

672
00:44:36,606 --> 00:44:40,606

673
00:44:40,608 --> 00:44:44,607

674
00:44:44,607 --> 00:44:48,607

675
00:44:48,607 --> 00:44:52,607

676
00:44:52,607 --> 00:44:56,606

677
00:44:56,606 --> 00:45:00,606

678
00:45:00,606 --> 00:45:04,606

679
00:45:04,608 --> 00:45:08,607

680
00:45:08,607 --> 00:45:12,606

681
00:45:12,606 --> 00:45:16,606

682
00:45:16,607 --> 00:45:20,607

683
00:45:20,607 --> 00:45:24,606

684
00:45:24,606 --> 00:45:28,606

685
00:45:28,607 --> 00:45:32,607

686
00:45:32,621 --> 00:45:36,609

687
00:45:36,609 --> 00:45:40,606

688
00:45:40,606 --> 00:45:44,606

689
00:45:44,607 --> 00:45:48,606

690
00:45:48,606 --> 00:45:52,606

691
00:45:52,606 --> 00:45:56,606

692
00:45:56,609 --> 00:46:00,606

693
00:46:00,606 --> 00:46:04,606

694
00:46:04,606 --> 00:46:08,606

695
00:46:08,606 --> 00:46:12,606

696
00:46:12,606 --> 00:46:16,606

697
00:46:16,621 --> 00:46:20,610

698
00:46:20,610 --> 00:46:24,606

699
00:46:24,606 --> 00:46:28,606

700
00:46:28,608 --> 00:46:32,606

701
00:46:32,606 --> 00:46:36,606

702
00:46:36,607 --> 00:46:40,606

703
00:46:40,606 --> 00:46:44,606

704
00:46:44,607 --> 00:46:48,606

705
00:46:48,606 --> 00:46:52,606

706
00:46:52,606 --> 00:46:56,606

707
00:46:56,607 --> 00:47:00,607

708
00:47:00,607 --> 00:47:04,606

709
00:47:04,606 --> 00:47:08,606

710
00:47:08,606 --> 00:47:12,606

711
00:47:12,606 --> 00:47:16,606

712
00:47:16,607 --> 00:47:20,606

713
00:47:20,606 --> 00:47:24,606

714
00:47:24,607 --> 00:47:28,606

715
00:47:28,606 --> 00:47:32,606

716
00:47:32,606 --> 00:47:36,606

717
00:47:36,607 --> 00:47:40,606

718
00:47:40,606 --> 00:47:44,606

719
00:47:44,606 --> 00:47:48,606

720
00:47:48,607 --> 00:47:52,606

721
00:47:52,606 --> 00:47:56,606

722
00:47:56,606 --> 00:48:00,606

723
00:48:00,611 --> 00:48:04,606

724
00:48:04,606 --> 00:48:08,606

725
00:48:08,606 --> 00:48:12,606

726
00:48:12,606 --> 00:48:16,606

727
00:48:16,606 --> 00:48:20,606

728
00:48:20,606 --> 00:48:24,606

729
00:48:24,606 --> 00:48:28,606

730
00:48:28,607 --> 00:48:32,606

731
00:48:32,606 --> 00:48:36,606

732
00:48:36,606 --> 00:48:40,606

733
00:48:40,606 --> 00:48:44,606

734
00:48:44,607 --> 00:48:48,607

735
00:48:48,607 --> 00:48:52,606

736
00:48:52,606 --> 00:48:56,606

737
00:48:56,606 --> 00:49:00,606

738
00:49:00,606 --> 00:49:04,606

739
00:49:04,611 --> 00:49:08,606

740
00:49:08,606 --> 00:49:12,606

741
00:49:12,606 --> 00:49:16,606

742
00:49:16,606 --> 00:49:20,606

743
00:49:20,607 --> 00:49:24,606

744
00:49:24,606 --> 00:49:28,606

745
00:49:28,607 --> 00:49:32,607

746
00:49:32,609 --> 00:49:36,609

747
00:49:36,610 --> 00:49:40,606

748
00:49:40,606 --> 00:49:44,606

749
00:49:44,606 --> 00:49:48,606

750
00:49:48,609 --> 00:49:52,607

751
00:49:52,607 --> 00:49:56,607

752
00:49:56,608 --> 00:50:00,606

753
00:50:00,606 --> 00:50:04,606

754
00:50:04,606 --> 00:50:08,606

755
00:50:08,606 --> 00:50:12,606

756
00:50:12,607 --> 00:50:16,606

757
00:50:16,606 --> 00:50:20,606

758
00:50:20,606 --> 00:50:24,606

759
00:50:24,608 --> 00:50:28,606

760
00:50:28,606 --> 00:50:32,606

761
00:50:32,606 --> 00:50:36,606

762
00:50:36,606 --> 00:50:40,606

763
00:50:40,606 --> 00:50:44,606

764
00:50:44,606 --> 00:50:48,606

765
00:50:48,607 --> 00:50:52,607

766
00:50:52,607 --> 00:50:56,607

767
00:50:56,607 --> 00:51:00,607

768
00:51:00,607 --> 00:51:04,607

769
00:51:04,607 --> 00:51:08,607

770
00:51:08,607 --> 00:51:12,606

771
00:51:12,606 --> 00:51:16,606

772
00:51:16,614 --> 00:51:20,606

773
00:51:20,606 --> 00:51:24,606

774
00:51:24,606 --> 00:51:28,606

775
00:51:28,606 --> 00:51:32,606

776
00:51:32,624 --> 00:51:36,607

777
00:51:36,607 --> 00:51:40,607

778
00:51:40,607 --> 00:51:44,607

779
00:51:44,607 --> 00:51:48,607

780
00:51:48,608 --> 00:51:52,606

781
00:51:52,606 --> 00:51:56,606

782
00:51:56,613 --> 00:52:00,607

783
00:52:00,607 --> 00:52:04,606

784
00:52:04,606 --> 00:52:08,606

785
00:52:08,606 --> 00:52:12,606

786
00:52:12,615 --> 00:52:16,610

787
00:52:16,610 --> 00:52:20,608

788
00:52:20,608 --> 00:52:24,607
(อาจารย์พิเชนทร์)

789
00:52:24,607 --> 00:52:28,607
ดูต่อนะครับ

790
00:52:28,607 --> 00:52:32,607
ความสัมพันธ์ระหว่าง Process

791
00:52:32,611 --> 00:52:36,611
นะครับ

792
00:52:36,613 --> 00:52:40,612
การทำงานของระบบคอมพิวเตอร์นั้นนะครับ ก็จะประกอบไปด้วย

793
00:52:40,612 --> 00:52:44,608
Process ต่าง ๆ นะครับ

794
00:52:44,608 --> 00:52:48,608
ทั้งของระบบแล้วของผู้ใช้นะครับ

795
00:52:48,614 --> 00:52:52,608
เมื่อมันมี

796
00:52:52,608 --> 00:52:56,608
Process มากมายทำงานพร้อม ๆ กันนะครับ จึงต้องมีการจัดการขึ้น

797
00:52:56,610 --> 00:53:00,608
นะครับ นอกจากการจัดการแล้วนะครับ

798
00:53:00,608 --> 00:53:04,607
เราก็ต้องมีการ

799
00:53:04,607 --> 00:53:08,607
ติดต่อระหว่างกันนะครับ เหมือนเรา เรา

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

801
00:53:12,611 --> 00:53:16,608
นะครับ คราวนี้

802
00:53:16,608 --> 00:53:20,608
เรามาดูหัวข้อความสัมพันธ์ระหว่าง Process นะครับ

803
00:53:20,612 --> 00:53:24,608
การติดต่อระหว่าง Process นั้น ก็คือ

804
00:53:24,608 --> 00:53:28,608
หมายความว่า Process หนึ่งอาจต้องการใช้ข้อมูล

805
00:53:28,608 --> 00:53:32,608
ของอีก Process หนึ่งจึงต้องมีการทำไมครับ

806
00:53:32,610 --> 00:53:36,608
ต้องมีการส่งข้อมูลหรือต้องการติดต่อ

807
00:53:36,608 --> 00:53:40,608
กันระหว่าง Process นะครับ ซึ่ง

808
00:53:40,609 --> 00:53:44,609
การติดต่อกันระหว่าง Process นั้นนะครับ ก็มีหลายวิธี หลายวิธี

809
00:53:44,611 --> 00:53:48,608
มาดูวิธีที่ 1 นะครับ

810
00:53:48,608 --> 00:53:52,608

811
00:53:52,608 --> 00:53:56,608
ติดต่อกันโดยนะครับ

812
00:53:56,618 --> 00:54:00,608
ใช้หน่วยความจำร่วม

813
00:54:00,608 --> 00:54:04,608
นะครับ

814
00:54:04,618 --> 00:54:08,610
หมายความว่า เมื่อ Process หนึ่งต้องการส่ง Process

815
00:54:08,610 --> 00:54:12,610
หรือส่งข้อมูลไปให้อีก Process หนึ่ง

816
00:54:12,615 --> 00:54:16,608
มันจะส่งข้อมูลผ่านหน่วยความจำร่วม

817
00:54:16,608 --> 00:54:20,608
ฟังก่อนนะครับ ฟังก่อนนะครับ อย่าเพิ่ง

818
00:54:20,608 --> 00:54:24,608
คุยกันครับ จะจบแล้ว อีก

819
00:54:24,612 --> 00:54:28,608
แค่ 10 สไลด์นะครับ

820
00:54:28,608 --> 00:54:32,608
ฟังหรือเปล่าครับ นี่ฟังหรือเปล่า บอก

821
00:54:32,614 --> 00:54:36,608
เงียบก่อนนะครับ ฟังก่อน

822
00:54:36,608 --> 00:54:40,608
อย่าเพิ่งคุยกันเสียงดังนะครับ เดี๋ยวมันจะไม่เข้าใจ

823
00:54:40,609 --> 00:54:44,609
นะครับ เวลาสอบ เรามัวแต่ลอก

824
00:54:44,610 --> 00:54:48,610
ในหน้าจอนี่ บางทีมันพอเวลาไปสอบนะครับ มันจะตอบไม่ได้นะครับ

825
00:54:48,612 --> 00:54:52,610

826
00:54:52,610 --> 00:54:56,610
เดี๋ยวสอบกลางภาคก็จะรู้คะแนนตัวเองนะครับ ว่าเป็นอย่างไร

827
00:54:56,616 --> 00:55:00,610
ผมบอกแล้วนะครับ ว่าข้อสอบผมนั้นมี

828
00:55:00,610 --> 00:55:04,610
ทั้งหมด 8 ชุดนะครับ ผมให้นั่ง

829
00:55:04,613 --> 00:55:08,609
สอบแบบติดกันเลยนะครับ

830
00:55:08,609 --> 00:55:12,609
ข้อสอบคนละชุดนะครับ ถ้าเราไม่เข้าใจเราจะเขียน

831
00:55:12,611 --> 00:55:16,611
อธิบายได้ ดูนะครับ ความสัมพันธ์

832
00:55:16,611 --> 00:55:20,611
อันที่ 1 ก็คือเวลามันติดต่อหากัน มันจะใช้หน่วยความจำร่วมกัน

833
00:55:20,612 --> 00:55:24,612
ดูรูปข้างล่างเลยนะครับ ดูรูปข้างล่าง

834
00:55:24,612 --> 00:55:28,611
Process A

835
00:55:28,611 --> 00:55:32,609
ต้องการส่งข้อมูลไปให้ Process B

836
00:55:32,609 --> 00:55:36,609
มันทำกันอย่างไรนะครับ วิธีการ ก็คือ Process A จัด

837
00:55:36,611 --> 00:55:40,610
ส่งไปแล้ว จัดส่งไปที่หน่วยความจำ

838
00:55:40,610 --> 00:55:44,610
นะครับ ส่งไปที่หน่วนความจำ เมื่อ Process B

839
00:55:44,611 --> 00:55:48,611
ต้องการจะไปรับข้อมูลจาก Process A

840
00:55:48,616 --> 00:55:52,613
มันก็จะไปรับที่หน่วยความจำนะครับ ซึ่งหน่วยความจำก็จะ

841
00:55:52,613 --> 00:55:56,608
มี Address

842
00:55:56,608 --> 00:56:00,608
แล้วเราจะรู้ได้อย่างไรครับ Process A ส่งอะไร

843
00:56:00,618 --> 00:56:04,609
มาให้เช็กจากอะไรครับ

844
00:56:04,609 --> 00:56:08,609
เช็กจากชื่อ จาก ID ใช่ไหม เพราะว่า

845
00:56:08,610 --> 00:56:12,610
ชื่อของ Process แต่ละตัวก็จะมีรหัสด้วยนะครับ

846
00:56:12,613 --> 00:56:16,610
เห็นไหมครับ Process A นี่ มันจะส่งข้อมูล

847
00:56:16,610 --> 00:56:20,610
มานะครับ ก็ส่งไปที่

848
00:56:20,617 --> 00:56:24,611
หน่วยความจำร่วม Process A ก็ไปรับที่หน่วยความจำ

849
00:56:24,611 --> 00:56:28,611
นะครับ การติดต่อกันระหว่างหน่อวยความจำนะครับ

850
00:56:28,618 --> 00:56:32,609

851
00:56:32,609 --> 00:56:36,609
นอกจากการใช้หน่วยควาามจำร่วมในการ

852
00:56:36,610 --> 00:56:40,610
ติดต่อระหว่าง Process นะครับ ก็ยังมีวิธีการที่สะดวก

853
00:56:40,610 --> 00:56:44,610
นะครับ แล้วก็นิยมใช้เป็นมาตราฐานนะครับ

854
00:56:44,613 --> 00:56:48,613
นั่นก็คือการใช้ช่องทางข้อมูล

855
00:56:48,614 --> 00:56:52,611
หรือเรียกง่าย ๆ ว่า "พอร์ต"

856
00:56:52,611 --> 00:56:56,611
นะครับ ติดต่อผ่านพอร์ต

857
00:56:56,613 --> 00:57:00,608
รู้จัก Port นะ Port USB

858
00:57:00,608 --> 00:57:04,608
Port Pararal

859
00:57:04,608 --> 00:57:08,608
ต่อสายเข้าไปในเครื่องคอทมพิวเตอร์เราผ้

860
00:57:08,610 --> 00:57:12,610
นะครับ อันนี้ง่ายกว่านะครับ สะดวกกว่า

861
00:57:12,613 --> 00:57:16,613
เช่น เราต้องการส่งข้อมูลจาก

862
00:57:16,613 --> 00:57:20,609
เครื่องของคนหนึ่งไปเครื่องอีกคนหนึ่ง

863
00:57:20,609 --> 00:57:24,609
ผ่านอะไร ผ่านพอร์ตนะครับ

864
00:57:24,610 --> 00:57:28,608

865
00:57:28,608 --> 00:57:32,608
คราวนี้วิธีการ

866
00:57:32,609 --> 00:57:36,609
ส่งข้อมูลทั้งผ่านหน่วยความจำร่วมแล้วก็ผ่านพอร์ต

867
00:57:36,612 --> 00:57:40,609
นั้นนะครับ ในเรื่องของ

868
00:57:40,609 --> 00:57:44,609
โครงสร้างของพอร์ตก็มีหลายแบบนะครับ จะส่งแบบไหนนะครับ

869
00:57:44,617 --> 00:57:48,610
อันที่ 1 นะครับ โครสร้างของ Port

870
00:57:48,610 --> 00:57:52,610
แบบที่ 1 ก็คือแบบคิว

871
00:57:52,610 --> 00:57:56,610
นะครับ โครงสร้างแบบนี้ก็คือ ข้อมูล

872
00:57:56,612 --> 00:58:00,611
จะถูกดึงออกมาจากพอร์ตตามลำดับก่อน-หลัง

873
00:58:00,611 --> 00:58:04,610
ข้อมูลไหนส่งเข้ามาก่อนก็จะ

874
00:58:04,610 --> 00:58:08,610
ออกไปก่อน ก็คือแบบคิวเป็นคิว

875
00:58:08,612 --> 00:58:12,609
นะครับ เช่น ผมเข้าไปก่อนอุบล

876
00:58:12,609 --> 00:58:16,609
ผมก็ออกก่อนอุบลนะครับ นี่คือโครงสร้างข้อมูลแบบพอร์ต

877
00:58:16,614 --> 00:58:20,609
ง่าย ๆ ครับ เข้าก่อน ออกก่อน

878
00:58:20,609 --> 00:58:24,609
นะครับ โครงสร้างพอร์ต

879
00:58:24,610 --> 00:58:28,610
แบบที่ 2 ก้คือโครงสร้างแบบ

880
00:58:28,615 --> 00:58:32,610
รูปข้างล่างใช่ไหม

881
00:58:32,610 --> 00:58:36,609
แบบ Pipe นะครับ แบบ Pipe ก็มีโครงการทำงาน

882
00:58:36,609 --> 00:58:40,609
การทำงานแบบคิว คือเข้าก่อน

883
00:58:40,609 --> 00:58:44,609
ออกก่อน แต่มี

884
00:58:44,610 --> 00:58:48,610
ข้อแตกต่างกับแบบคิวที่ว่าถ้าเป็นพอร์ตแบบไปป์

885
00:58:48,613 --> 00:58:52,611
จะมีความยาวของ Port ไม่จำกัด

886
00:58:52,611 --> 00:58:56,610
ถ้าเป็นแบบคิวจะจำกัน

887
00:58:56,610 --> 00:59:00,609
เช่น พอร์ตแบบคิวบอกว่า

888
00:59:00,609 --> 00:59:04,609
มีขนาดของพอร์ต ความยาว

889
00:59:04,609 --> 00:59:08,609
10 ช่องสมมตินะ

890
00:59:08,610 --> 00:59:12,610
ก็แสดงว่าเข้าไปได้แค่ 10 คิวนะครับ

891
00:59:12,610 --> 00:59:16,610
แต่ถ้าพอร์ตแบบไปป์โครงสร้าง

892
00:59:16,610 --> 00:59:20,610
เหมือนพอร์ตแบบคิวก็จริง เข้าก่อนออกก่อน แต่จะ

893
00:59:20,610 --> 00:59:24,609
มีความยาวของ Port

894
00:59:24,609 --> 00:59:28,609

895
00:59:28,616 --> 00:59:32,609
นี่คือโครงสร้าง

896
00:59:32,609 --> 00:59:36,609
แบบไปป์นะครับ

897
00:59:36,610 --> 00:59:40,610
โครงสร้าง Port แบบที่ 3 ก็คือแบบ

898
00:59:40,612 --> 00:59:44,610
Stack นะครับ เป็นอย่างไรครับ

899
00:59:44,610 --> 00:59:48,608
แบบสแต็ก

900
00:59:48,608 --> 00:59:52,608
Stack คือ โครงสร้างที่ตรงข้ามกับแบบคิวเลยครับ

901
00:59:52,613 --> 00:59:56,611
ก็คือข้อมูลชุดใดที่ถูกส่งออกมาก่อน

902
00:59:56,611 --> 01:00:00,611
จะถูกดึงออกทีหลัง คือ เข้าก่อนออกทีหลัง

903
01:00:00,614 --> 01:00:04,612
นะครับ นี่คือโครงสร้างแบบ

904
01:00:04,612 --> 01:00:08,612
Stack นะครับ นี่คือโครงสร้างของพอร์ตทั้ง 3 แบบนะครับ

905
01:00:08,614 --> 01:00:12,609

906
01:00:12,609 --> 01:00:16,609
คราวนี้มาดู

907
01:00:16,609 --> 01:00:20,609
ปัญหาของ Process นะครับ

908
01:00:20,612 --> 01:00:24,610
เมื่อมีการทำงานมากกว่า 1 Process ขึ้นไป

909
01:00:24,610 --> 01:00:28,610
นะครับ มันย่อมทำให้เกิดปัญหาเกิดขึ้น

910
01:00:28,610 --> 01:00:32,610
ในการใช้งาน ถ้ามีโปรแกรม 1 โปรแกรม

911
01:00:32,611 --> 01:00:36,610
ทำงานในระบบคอมพิวเตอร์เรา ปัญหาก็ไม่เกิดขึ้นร

912
01:00:36,610 --> 01:00:40,610
นะครับ เมื่อมีหลาย ๆ โปรแกรมทำงานอยู่บนระบบเดียวกัน

913
01:00:40,612 --> 01:00:44,611
มีการใช้ทรัพยากร

914
01:00:44,611 --> 01:00:48,611
แย่งกันใช้ มันย่อมเกิดปัญหาขึ้น

915
01:00:48,612 --> 01:00:52,610
นะครับ ดังนั้น มันจะต้องมีการจัดสรร

916
01:00:52,610 --> 01:00:56,610
การใช้ Process ขึ้นนะครับ

917
01:00:56,618 --> 01:01:00,609
ถึงอย่างไรก็ตามนะครับ ปัญหาของการทำงาน

918
01:01:00,609 --> 01:01:04,609
ที่เราจะกล่าวต่อไปนี้ มันจะต้อง

919
01:01:04,610 --> 01:01:08,610
ไม่เกิดขึ้นกับระบบของเรา

920
01:01:08,615 --> 01:01:12,615
นะครับ ดังนั้น คนที่ออกแบบระบบปฏิบัติการจะต้องแก้ปัญหา

921
01:01:12,615 --> 01:01:16,609
ดังต่อไปนี้ให้ได้นะครับ

922
01:01:16,609 --> 01:01:20,609
เวลาเราเขียนโปรแกรม เราจะต้องเลี่ยงปัญหาเหล่านี้ให้ได้

923
01:01:20,612 --> 01:01:24,610
นะครับ ปัญหาการทำงานของ Process อันดับ

924
01:01:24,610 --> 01:01:28,610
แรกเลยนะครับ ก็คือปัญหาการตัดตอน

925
01:01:28,621 --> 01:01:32,610
นะครับ ปัญหาการตัดตอน

926
01:01:32,610 --> 01:01:36,610
เกิดจากอะไรครับ เกิดจากการที่ Process หนึ่ง

927
01:01:36,613 --> 01:01:40,609
ต้องการใช้ทรัพยากร

928
01:01:40,609 --> 01:01:44,609
ของ Process แต่ปรากฏว่า Process นั้นมีลำกับความสำคัญ

929
01:01:44,612 --> 01:01:48,610
น้อยกว่าจึงยอมปลดปล่อย หรือปล่อยให้ Process

930
01:01:48,610 --> 01:01:52,610
ที่มีระดับความสำคัญมากกว่าเข้าไปครอบครองตัว CPU

931
01:01:52,626 --> 01:01:56,610
แทนตัวมันเอง

932
01:01:56,610 --> 01:02:00,610
นึกออกใช่ไหมครับ ก็คือ Process หนึ่ง อย่าง

933
01:02:00,610 --> 01:02:04,610
เช่น ผมน่ะกำลังจะเข้าไปครอบครอง

934
01:02:04,616 --> 01:02:08,610
CPU แต่ปรากฏว่าอุบลเข้ามาต่อคิวผม

935
01:02:08,610 --> 01:02:12,610
บังเอิญว่าลำดับความสำคัญอุบล

936
01:02:12,612 --> 01:02:16,612
สำคัญมากกว่าผม ผมยอมให้อุบลเข้าไปแทนผม นี่

937
01:02:16,615 --> 01:02:20,613
เกิดการตัดตอนขึ้น ถ้าเราต้องการอธิบาย

938
01:02:20,613 --> 01:02:24,611
ให้เป็นวิชาการ อธิบายว่าเกิดจาการ

939
01:02:24,611 --> 01:02:28,609
ที่ Process ใด Process หนึ่ง

940
01:02:28,609 --> 01:02:32,609
ที่จะเข้าไปครอบครอง CPU หรือเข้าไปในสถานะ Run นั้น

941
01:02:32,622 --> 01:02:36,622
ยอมให้ Process ที่มีลำดับ

942
01:02:36,624 --> 01:02:40,612
ความสำคัญมากกว่าเข้าไปแทนที่มัน มันก็จะเกิด

943
01:02:40,612 --> 01:02:44,612
การตัดตอนขึ้นนะครับ

944
01:02:44,615 --> 01:02:48,614
ซึ่งปัญหาตัวนี้นะครับ คนที่ออกแบบระบบปฏิบัติการจะต้อง

945
01:02:48,614 --> 01:02:52,610
ไม่ให้เกิดขึ้นนะครับ

946
01:02:52,610 --> 01:02:56,609

947
01:02:56,609 --> 01:03:00,609
ปัญหาต่อมานอกจากปัญหาการตัดตอน

948
01:03:00,611 --> 01:03:04,611
แล้ว ปัญหาต่อมา ก็คือปัญหา

949
01:03:04,615 --> 01:03:08,611
การอดตาย หรือปัญหา

950
01:03:08,611 --> 01:03:12,611
การเลื่อนไปอย่างไม่มีสิ้นสุด

951
01:03:12,611 --> 01:03:16,611
หมายความว่าเมื่อเกิดการตัดตอนขึ้นใช่ไหม

952
01:03:16,615 --> 01:03:20,615
Process หนึ่งปล่อยให้ Process อีก Process หนึ่งที่มีความสำคัญ

953
01:03:20,618 --> 01:03:24,610
มากกว่าเข้าไปครอบครอง CPU มัน

954
01:03:24,610 --> 01:03:28,610
แล้วแทนไปเรื่อย ๆ

955
01:03:28,610 --> 01:03:32,610
นี่เราเรียกว่าว่า "การอดตาย"

956
01:03:32,610 --> 01:03:36,610
เช่น ตัวอย่างเมื่อกี้ผมจะเข้าไปครอบครอง CPU

957
01:03:36,614 --> 01:03:40,611
แต่บังเอิญว่าอุบล

958
01:03:40,611 --> 01:03:44,611
มาต่อคิว อุบลมีลำดับความสำคัญมากกว่า อุบลเข้าไปแทนที่

959
01:03:44,614 --> 01:03:48,613
พออุบลเสร็จแล้ว

960
01:03:48,613 --> 01:03:52,611
ผมจะเข้าไปต่อ แต่ปรากฏว่า

961
01:03:52,611 --> 01:03:56,611
แม็กกี้มาต่อแล้วแม็กกี้มีความสำคัญมากกว่าผม แม็กกี้

962
01:03:56,612 --> 01:04:00,610
ก็เข้าไปแทนที่อีก พอ

963
01:04:00,610 --> 01:04:04,610
แม็กกี้ออกมา ผมจะเข้าไปต่อ ปรากฎว่า

964
01:04:04,621 --> 01:04:08,611
มิ่งมาต่อ แล้ว

965
01:04:08,611 --> 01:04:12,611
มิ่งมีความสำคัญมากกว่า มิ่งก็

966
01:04:12,625 --> 01:04:16,610
ก็คือรอไป

967
01:04:16,610 --> 01:04:20,610
ไม่มีวันสิ้นสุด รอไปเรื่อย ๆ  ไม่มีวันสิ้นสุด

968
01:04:20,614 --> 01:04:24,614
นะครับ ถ้าเป็นสมัยก่อนนะครับ

969
01:04:24,616 --> 01:04:28,611
ผมก็จะยกตัวอย่างให้พวกเราเห็นภาพชัดเจน ก็คือ

970
01:04:28,611 --> 01:04:32,611
สมมติว่าที่อาคาร 7 เรานะครับ

971
01:04:32,612 --> 01:04:36,611
สร้างห้องน้ำมาใหม่นะครับ ห้องน้ำ

972
01:04:36,611 --> 01:04:40,610
เปรียบเสมือน CPU สมมตินะ

973
01:04:40,610 --> 01:04:44,610
ผมจะเข้าเป็นคนแรก

974
01:04:44,617 --> 01:04:48,617
กำลังจะเปิดประตูเข้าไปห้องน้ำ ปรากฏว่าอุบล ไม่ใช่อุบล

975
01:04:48,626 --> 01:04:52,609
อธิการ สะกิดหลัง

976
01:04:52,609 --> 01:04:56,609
พิเชนทร์ ๆ ผมขออญาตเข้าก่อน ผมมองไปข้างหลัง

977
01:04:56,611 --> 01:05:00,610
อธิการใหญ่กว่าผม

978
01:05:00,610 --> 01:05:04,610
นี่เกิดการตัดตอน

979
01:05:04,613 --> 01:05:08,613
แต่พออธิการเข้าไปเสร็จปุ๊บ

980
01:05:08,615 --> 01:05:12,614
ปรากฏว่ามีคนสะกิดหลังอีกแล้ว ผู้ว่าฯ สะกิดหลัง

981
01:05:12,614 --> 01:05:16,610
เป็นอย่างไรครับ ผู้ว่าเข้าไป

982
01:05:16,610 --> 01:05:20,610
นายอำเภอสกิดหลัง ผู้ว่าสกิดหลังเกิดการ

983
01:05:20,613 --> 01:05:24,612
ต้องตัดตอน พอตัดตอนเสร็จปุ๊บ

984
01:05:24,612 --> 01:05:28,611
ไม่มีโอกาสได้เข้า ก็เลยเป็นอดตายนะครับ

985
01:05:28,611 --> 01:05:32,611
นี่คือปัญหาหาที่ 2 ที่เกิดขึ้นกับ Process

986
01:05:32,613 --> 01:05:36,613
ของเรานะครับ ปัญหาที่ 3

987
01:05:36,615 --> 01:05:40,609

988
01:05:40,609 --> 01:05:44,609
เขาบอกว่าทำไมถึงให้เกิดการ

989
01:05:44,611 --> 01:05:48,611
ตัดตอนไม่ได้ หรือการอดตายไม่ได้

990
01:05:48,612 --> 01:05:52,612
มันจะเกิดปัญหาขึ้น ถ้าทรัพยากรบางประเภท

991
01:05:52,619 --> 01:05:56,612
ถ้าเราปล่อยให้เกิดการตัดตอน

992
01:05:56,612 --> 01:06:00,612
จะเกิดปัญหาขึ้น เช่น เครื่องพิมพ์

993
01:06:00,613 --> 01:06:04,612
ให้เรามองถึงเป็นเครื่องพิมพ์

994
01:06:04,612 --> 01:06:08,612
ที่เป็นหัวเข็ม เคยเห็นไหม มันจะดังแกร๊ก มันจะ

995
01:06:08,617 --> 01:06:12,611
พรินต์ทีละบรรทัด

996
01:06:12,611 --> 01:06:16,611
เคยเห็นไหมครับ เครื่องพิมพ์แบบหัวเข็ม เหมือนเราไปซื้อ

997
01:06:17,614 --> 01:06:21,611
ของตามเซเว่น

998
01:06:21,611 --> 01:06:25,611
หรือเราไปจ่ายค่าเทอม มันจะ

999
01:06:25,611 --> 01:06:29,610
พรินต์เป็นหัวเข็มออกมา

1000
01:06:29,610 --> 01:06:33,610
ถ้าเราปล่อยให้เกิดการตัดตอนขึ้น เช่น ผมสั่งพรินต์

1001
01:06:33,620 --> 01:06:37,611
ไปได้ 2 บรรทัด

1002
01:06:37,611 --> 01:06:41,611
สั่งมา อุบลบอกว่าอุบลมีความสำคัญมากกว่าแล้วเกิดการตัดตอน

1003
01:06:41,612 --> 01:06:45,611
บรรทัดที่ 3 จะกลายเป็นของอุบล

1004
01:06:45,611 --> 01:06:49,610
ดังนั้น ห้ามให้มีเหตุการณ์นี้เกิดขึ้นนะครับ

1005
01:06:49,610 --> 01:06:53,610
เพราะทรัพยากร บางอย่างมัน

1006
01:06:53,612 --> 01:06:57,609
ให้เกิดขึ้นไม่ได้นะครับ

1007
01:06:57,609 --> 01:07:01,609
ปัญหาต่อมานะครับ

1008
01:07:01,612 --> 01:07:05,609
ปัญหาการติดตาย

1009
01:07:05,609 --> 01:07:09,609
ดูรูปประกอบเลยนะครับ

1010
01:07:09,611 --> 01:07:13,611
ปัญหาการติดตายคืออะไร ครับ ดูรูปเลย เมื่อ Process

1011
01:07:13,624 --> 01:07:17,618
ใดก็แล้วแต่ ครอบครองทรัพยากรของตัวเองอยู่

1012
01:07:17,618 --> 01:07:21,609
แล้วในขณะเดียวกัน

1013
01:07:21,609 --> 01:07:25,609
ต้องการไปครอบครองทรัพยากรของเรา

1014
01:07:25,609 --> 01:07:29,609
แต่ไม่ยอมให้ Process อื่น เข้า

1015
01:07:29,610 --> 01:07:33,610
มาครอบครองทรัพยากรของตัวเอง

1016
01:07:33,622 --> 01:07:37,609
เหมือนกันนะครับ เช่น ผมบอกอุบล

1017
01:07:37,609 --> 01:07:41,609
อาจารย์ยืมสตางค์ของอุบลหน่อย 1 ร้อยล้าน

1018
01:07:41,610 --> 01:07:45,610
อุบลก็บอกเหมือนกัน อาจารย์

1019
01:07:45,615 --> 01:07:49,610
ผมก็ยืมสตางค์อาจารย์หน่อย 200

1020
01:07:49,610 --> 01:07:53,610
แต่อุบลก็ไม่ควักให้ผมนะ ผมก็ไม่ควักให้อุบล

1021
01:07:53,612 --> 01:07:57,612
เพราะเราก็ไม่มีทั้งคูนะ

1022
01:07:57,615 --> 01:08:01,613
คือ อยากได้สตางค์อุบล อุบล

1023
01:08:01,613 --> 01:08:05,612
ไม่ควักให้ นี่คือลักษณะการปิดตาย

1024
01:08:05,612 --> 01:08:09,612
ก็คือ Process ใด Process หนึ่งนี่ครอบครองทรัพยากรตัวเอง

1025
01:08:09,614 --> 01:08:13,612
อยู่แต่อยากไปได้ทรัพยากรของคนอื่น

1026
01:08:13,612 --> 01:08:17,611
คนอื่น แต่ตัวเองก็ไม่ยอมให้ทรัพยากรของตัวเอง

1027
01:08:17,611 --> 01:08:21,611
นะครับ นี่คือลักษณะการติดตายหรือ Dead Lock นะครับ

1028
01:08:21,612 --> 01:08:25,609

1029
01:08:25,609 --> 01:08:29,609
เขาบอกว่า

1030
01:08:29,619 --> 01:08:33,612
ปัญหาการติดตายนั้น ไม่จำเป็นต้องเกิดจาก 2

1031
01:08:33,612 --> 01:08:37,609
Process อาจจะ

1032
01:08:37,609 --> 01:08:41,609
เกิดจากหลาย Process ก็ได้นะครับ มากกว่า 2 Process แต่ต้อง

1033
01:08:41,614 --> 01:08:45,613
มีเงื่อนไขดังนี้นะครับ เช่น

1034
01:08:45,613 --> 01:08:49,610
1. การครอบครองเป็นแบบตัดตอนไม่ได้

1035
01:08:49,610 --> 01:08:53,610
อันนี้ก็ตัดตอนไม่ได้นะ

1036
01:08:53,615 --> 01:08:57,615
Process A, Process B ก็ไม่ได้ Process C ก็ไม่ได้ Dead Lock เลย ติดตาย

1037
01:08:57,615 --> 01:09:01,609

1038
01:09:01,609 --> 01:09:05,609
ไม่ไป ไม่มา นะครับ เงื่อนไขแบบที่ 2

1039
01:09:05,611 --> 01:09:09,609
การครอบครองเป็นแบบไม่เกิดร่วม

1040
01:09:09,609 --> 01:09:13,609
ต่างคนต่างทำงาน ต่างคนต่างอยู่คนละส่วน

1041
01:09:13,612 --> 01:09:17,611
ติดตายขึ้น

1042
01:09:17,611 --> 01:09:21,611
นะครับ เงื่อนไขที่ 3 คือ

1043
01:09:21,615 --> 01:09:25,609
ในการรอใช้ทรัพยากร

1044
01:09:25,609 --> 01:09:29,609
เป็นการรอแบบวนรอบ

1045
01:09:29,609 --> 01:09:33,609
หรือวงรอบ หรือภาษาเขีียนโปรแกรม

1046
01:09:33,611 --> 01:09:37,611
เราเรียกว่า "วนลูป" หรือ "วนรอบ"

1047
01:09:37,611 --> 01:09:41,609
ก็จะเกิดปัญหาการปิดตายขึ้น

1048
01:09:41,609 --> 01:09:45,609
นะครับ นี่คือปัญหา 3 ปัญหาที่เกิดขึ้นในระบบเรา

1049
01:09:45,611 --> 01:09:49,609
แต่เวลาเราออกแบบ OS ก็เกิดขึ้น

1050
01:09:49,609 --> 01:09:53,608

1051
01:09:53,608 --> 01:09:57,608
หัวข้อสุดท้ายนะครับ หัวข้อสุดท้าย

1052
01:09:57,613 --> 01:10:01,611
ของบทนี้นะครับ เธรดนะครับ

1053
01:10:01,611 --> 01:10:05,610
เขาบอกในระบบปฏิบัติการ

1054
01:10:05,610 --> 01:10:09,610
บางตัวซึ่งเราใช้แล้วนะครับ เราใช้แบบนี้อยู่

1055
01:10:09,610 --> 01:10:13,610
นะครับ ถ้าเป็นสมัยก่อนยกไม่เกิดระบ

1056
01:10:13,621 --> 01:10:17,615
นะครับ เธรด ก็คือเป็นการที่ระบบปฏิบัติการ

1057
01:10:17,615 --> 01:10:21,611
แบ่งย่อย Process ออกเป็นส่วน ๆ

1058
01:10:21,611 --> 01:10:25,609
ดูรูปประกอบเลยนะครับ

1059
01:10:25,609 --> 01:10:29,609

1060
01:10:29,610 --> 01:10:33,610
นี่... ทำไมไม่ขึ้น

1061
01:10:33,612 --> 01:10:37,610
ขวามือผมนะครับ

1062
01:10:37,610 --> 01:10:41,608
กับ Process B

1063
01:10:41,608 --> 01:10:45,608
Process A

1064
01:10:45,608 --> 01:10:49,608
โค้ดโปรแกรม

1065
01:10:49,609 --> 01:10:53,609
แล้วก็ข้อมูลองค์ประกอบอื่น

1066
01:10:53,609 --> 01:10:57,609
เขียนโปรแกรมแบบไม่ใช่เธรด แต่

1067
01:10:57,613 --> 01:11:01,610
พอเธรดปุ๊บมันจะแบ่งส่วนเธรด

1068
01:11:01,610 --> 01:11:05,610
1, 2, 3, 4, 5 เป็นส่วนย่อยนะครับ

1069
01:11:05,610 --> 01:11:09,610
เราแบ่ง มีประโยชน์อะไร

1070
01:11:09,610 --> 01:11:13,610
นะครับ มันจะให้ทำงานเร็วขึ้น สามารถ

1071
01:11:13,610 --> 01:11:17,610
ทำงานกับหน่วยความจำที่มีขนาดเล็กกว่าได้

1072
01:11:17,614 --> 01:11:21,612
แก้ไขง่าย นี่คือหลักการเขียนโปรแกรม

1073
01:11:21,612 --> 01:11:25,608
ใน ณ ปัจจุบันนี้นะครับ ณ ปัจจุบันนี้

1074
01:11:25,608 --> 01:11:29,608
เดี๋ยวพอเราเขียนโปรแกรมเราเรียนไปสัก ปี 2 เราจะเข้าใจว่า

1075
01:11:29,614 --> 01:11:33,610
ทำไมเราต้องมาเขียนเป็นแบบเธรด

1076
01:11:33,610 --> 01:11:37,610
โบราณนะครับ เขียนทีเดียว 100 บรรทัด, 500 บรรทัด

1077
01:11:37,610 --> 01:11:41,610
เวลามีปัญหามาปุ๊บการแก้ไขปัญหา

1078
01:11:41,611 --> 01:11:45,611
นะครับ แก้ไขยากนะครับ นี่คือหลักการ

1079
01:11:45,611 --> 01:11:49,611
ของการเขียนโปรแกรม

1080
01:11:49,612 --> 01:11:53,612
แจ้งพวกเรานะครับ เมื่อกี้ได้พูดไปแล้วนะครับ

1081
01:11:53,621 --> 01:11:57,609
สัปดาห์หน้านะครับ ก็วันที่ 7

1082
01:11:57,609 --> 01:12:01,609
เราก็จะไปศึกษาดูงานนอกสถานที่นะครับ

1083
01:12:01,610 --> 01:12:05,608
หมู่ 2 นะครับ หมู่ 2 นะครับ

1084
01:12:05,608 --> 01:12:09,608
หมู่ 1 ยังไม่ได้ไปนะครับ เราจะไปศึกษาดูงาน

1085
01:12:09,610 --> 01:12:13,609
ที่นครพนม ผมจะ

1086
01:12:13,609 --> 01:12:17,608
พาไปที่มุสมานก่อน

1087
01:12:17,608 --> 01:12:21,608
ไปดูหมู่บ้าน

1088
01:12:21,611 --> 01:12:25,611
อะไรไม่รู้จำไม่ได้นะครับ พวกทำเกี่ยวกับพื้นเมือง แล้วก็จะพาไปพิพิธภัณฑ์สัตว์น้ำจืด

1089
01:12:25,613 --> 01:12:29,609

1090
01:12:29,609 --> 01:12:33,608
ที่นครพนม ก็สัปดาห์หน้าก็

1091
01:12:33,608 --> 01:12:37,608
หมู่ 1 ก็ต้องมาเรียน ก็เห็นพี่พลอย

1092
01:12:37,612 --> 01:12:41,612
ประสานไปที่อาจารย์อะไรนะที่เราเรียนน่ะ ตอนเช้าน่ะ

1093
01:12:41,618 --> 01:12:45,612
ก็เรียนด้วยกันใช่ไหม

1094
01:12:45,612 --> 01:12:49,608
เห็นว่าอาจารย์ว่าคณะฯ ก็

1095
01:12:49,608 --> 01:12:53,608
ไหว้ครู แต่ว่าสัปดาห์หน้าเราไม่มีเรียน

1096
01:12:53,621 --> 01:12:57,613
นะครับ ห้อง 1 นะมีเรียน แต่สัปดาห์หน้าหมู่ 2

1097
01:12:57,613 --> 01:13:01,608
เราจะไปนอกสถานที่นะครับ

1098
01:13:01,608 --> 01:13:05,608
จะพาไปดูอะไรนะ ไปดู

1099
01:13:05,609 --> 01:13:09,609
ปลาบึก ใช่ไหม เขาจะป้อนอาหารปลา ปลาบึก

1100
01:13:09,609 --> 01:13:13,609
เอาอุบลไปให้อาหารปลา อุบลนะ

1101
01:13:13,629 --> 01:13:17,611
ก็ไปทั้งวันนะครับ สัปดาห์หน้า

1102
01:13:17,611 --> 01:13:21,609
ก็แจ้งพวกเราไว้ พอสัปดาห์หน้าก็หยุด

1103
01:13:21,609 --> 01:13:25,609
นะครับ สัปดาห์ถัดไปก็เจอกันนู้นเลยครับ

1104
01:13:25,611 --> 01:13:29,611
นะครับ ก็ตอนนี้เราเปิดเทอมมาได้

1105
01:13:29,612 --> 01:13:33,611
เดือนหนึ่งนะครับ เป็นอย่างไรครับ ปรับตัวได้

1106
01:13:33,611 --> 01:13:37,611
ได้แล้วนะ บางคนก็ส่งงานไว้ที่โต๊ะนะครับ เดี๋ยว

1107
01:13:37,613 --> 01:13:41,608
ผมจะส่งคืนให้นะ ผมจะตรวจ

1108
01:13:41,608 --> 01:13:45,608
แล้วส่งคืนให้ ๆ เราเอาเก็บไว้อ่านสอบ

1109
01:13:45,611 --> 01:13:49,608
แบบฝึกหัดที่ผมให้ทำ

1110
01:13:49,608 --> 01:13:53,608
มีใครอยากจะถามอะไรเพิ่มเติมไหมครับ

1111
01:13:53,613 --> 01:13:57,607

1112
01:13:57,607 --> 01:14:01,607
ครับ ถ้าไม่มีก็...

1113
01:14:01,608 --> 01:14:05,607

1114
01:14:05,607 --> 01:14:09,607
Process พ่อเกิดอย่างไร

1115
01:14:09,608 --> 01:14:13,608
Process พ่อเกิดขึ้นจากนะครับ เกิดขึ้นจาก

1116
01:14:13,609 --> 01:14:17,609
การที่เมื่อเวลาใดเวลาหนึ่ง เช่น เรา... สมมตินะ ๆ

1117
01:14:17,613 --> 01:14:21,609
ผมเป็น Process ผมต้องการจะเข้าไป

1118
01:14:21,609 --> 01:14:25,609
จะเข้าไปครอบครอง CPU ตัวของระบบปฏิบัติการจะสร้าง

1119
01:14:25,614 --> 01:14:29,610
Process หนึ่งขึ้นมา เพื่อมากำกับผม

1120
01:14:29,610 --> 01:14:33,610
ไป จะพาเข้าไปครอบครอง CPU นะ นี่

1121
01:14:33,610 --> 01:14:37,608
เป็นการให้กำเนิด เป็นการให้กำเนิด

1122
01:14:37,608 --> 01:14:41,608
เพื่อพา Process เข้าไป ตรงนี้เรียกว่า Process พ่อ

1123
01:14:41,609 --> 01:14:45,608
นะครับ นี่คือหลักการของมันนะครับ

1124
01:14:45,608 --> 01:14:49,607

1125
01:14:49,607 --> 01:14:53,607
ครับ ก็ต้อง

1126
01:14:53,612 --> 01:14:57,612
ขอบคุณพี่ล่ามมากนะครับ ที่ได้ให้การอนุเคราะห์เรา

1127
01:14:57,612 --> 01:15:01,608
มาอีก 1 สัปดาห์ สัปดาห์หน้า

1128
01:15:01,608 --> 01:15:05,608
เราไม่ได้เจอกันนะครับพี่ล่าม สัปดาห์หน้าจะพาน้อง ๆ ไปนอกสถานที่

1129
01:15:05,613 --> 01:15:09,609
ก็ถ้าไม่มีใครถามอะไรแล้วนะครับ

1130
01:15:09,609 --> 01:15:13,609
ก็เจอกันสัปดาห์หน้านะครับ ไปดูงานนอกสถานที่

1131
01:15:13,628 --> 01:15:17,607
กัน โอเคครับผมไป

1132
01:15:17,607 --> 01:15:21,607

1133
01:15:21,607 --> 01:15:25,607

1134
01:15:25,608 --> 01:15:29,608

1135
01:15:29,608 --> 01:15:33,607

1136
01:15:33,607 --> 01:15:37,607

1137
01:15:37,609 --> 01:15:41,607

1138
01:15:41,607 --> 01:15:45,607

1139
01:15:45,607 --> 01:15:49,607

1140
01:15:49,608 --> 01:15:53,608

1141
01:15:53,618 --> 01:15:57,618


