﻿1
00:00:19,292 --> 00:00:20,160
บทที่แล้วนะครับ เราพูดถึง

2
00:00:20,160 --> 00:00:20,438
ที่อยู่นะคะ

3
00:00:20,438 --> 00:00:22,302
การจัดการ CPU

4
00:00:22,302 --> 00:00:26,302
แล้วก็จะพูดถึงการจัดการ

5
00:00:26,402 --> 00:00:28,987
หน่วยความจำนะคะ

6
00:00:28,987 --> 00:00:32,987
ความจำก็เป็น

7
00:00:35,230 --> 00:00:37,491
อุปกรณ์ตัวหนึ่งที่มีส่วนสำคัญในคอมพิวเตอร์ของเรานะครับ

8
00:00:37,491 --> 00:00:41,491
เราจะดูว่าเครื่องคอมพิวเตอร์เครื่องไหน

9
00:00:42,734 --> 00:00:46,734
มีขีดความสามารถมากกว่ากัน

10
00:00:48,110 --> 00:00:48,411
เราจะดูได้จากหน่วยความจำนะคะ

11
00:00:48,411 --> 00:00:52,411
แต่ทั้งนี้ทั้งนั้นนะครับ

12
00:00:54,614 --> 00:00:58,614
ไม่ได้ตอบได้เสมอว่า

13
00:01:00,044 --> 00:01:00,223
เครื่องที่มีหน่วยความจำมาก

14
00:01:00,223 --> 00:01:04,223
ทำงานได้ดีกว่านะครับ

15
00:01:06,211 --> 00:01:10,211
ในการจัดการหน่วยความจำนั้นก็เป็นขีดความสามารถอันหนึ่ง ของระบบ

16
00:01:11,744 --> 00:01:12,172
ปฏิบัติการของเราด้วยนะครับ

17
00:01:12,172 --> 00:01:16,172
ถ้าระบบปฏิบัติการของเรา

18
00:01:17,369 --> 00:01:17,596
จัดการหน่วยความจำไม่ดีนะครับ

19
00:01:17,596 --> 00:01:20,567
ประสิทธิภาพในการใช้งานก็จะ

20
00:01:20,567 --> 00:01:23,806
ด้อยลงนะครับ

21
00:01:23,806 --> 00:01:24,090
คราวนี้เรามาดูว่า

22
00:01:24,090 --> 00:01:26,760
มาตรการอย่างไรนะครับ

23
00:01:26,760 --> 00:01:30,760
การจัดการหน่วยความจำมีอยู่ 3 แบบ

24
00:01:34,496 --> 00:01:34,811
นะครับ

25
00:01:34,811 --> 00:01:36,725
มีอยู่ 3

26
00:01:36,725 --> 00:01:40,725
เฟซวางแทนที่

27
00:01:41,789 --> 00:01:44,730
มี 3 ลักษณะ

28
00:01:44,730 --> 00:01:48,730
เราก็ดูว่าทำอย่างไรนะครับ

29
00:01:50,292 --> 00:01:54,125
พอดีมาดูการจัดสรรหน่วยความจำนะครับ

30
00:01:54,125 --> 00:01:56,462
โปรแกรมโปรแกรมที่ใช้งานในคอมพิวเตอร์

31
00:01:56,462 --> 00:01:57,237
จำเป็นจะต้องใช้หน่วยความจำ

32
00:01:57,237 --> 00:01:57,688
นะครับ

33
00:01:57,688 --> 00:02:01,688
จะมากจะน้อยก็แล้วแต่หน่วยความจำ

34
00:02:01,964 --> 00:02:04,691
โปรแกรม

35
00:02:04,691 --> 00:02:07,201
เกม

36
00:02:07,201 --> 00:02:07,473
อาจจะใช้เยอะ

37
00:02:07,473 --> 00:02:11,454
โปรแกรมพิมพ์งานอาจจะใช้น้อยอะไรประมาณนี้นะครับ

38
00:02:11,454 --> 00:02:14,041
คราวนี้เรามาดูว่าถ้าเกิด

39
00:02:14,041 --> 00:02:18,041
ในการจัดสรรหน่วยความจำนะครับ

40
00:02:22,501 --> 00:02:26,417
สามารถแบ่งออกเป็น 3 ประเภทคือ

41
00:02:26,417 --> 00:02:28,332
การจัดสรรแบบ

42
00:02:28,332 --> 00:02:29,373
ต่อเนื่อง

43
00:02:29,373 --> 00:02:31,730
แล้วก็แบบไม่ต่อเนื่องนะครับ

44
00:02:31,730 --> 00:02:35,730
การจัดสรรหน่วยความจำแบบ

45
00:02:36,169 --> 00:02:40,169
ต่อเนื่องก็คือหมายความว่า

46
00:02:41,531 --> 00:02:42,135
หน่วยความจำจะต้องว่างต่อเนื่องกัน

47
00:02:42,135 --> 00:02:45,191
นะครับ

48
00:02:45,191 --> 00:02:46,957
อยู่ที่ว่าจะต้องต่อเนื่องกันนะครับ

49
00:02:46,957 --> 00:02:47,059
ขาดช่วยอะไรไม่ได้นะครับ

50
00:02:47,059 --> 00:02:51,059
แล้วก็ต้องมีพื้นที่ใหญ่พอ

51
00:02:51,884 --> 00:02:55,099
ถึงจะสามารถ

52
00:02:55,099 --> 00:02:55,326
เข้ามาทำงานได้นะครับ

53
00:02:55,326 --> 00:02:59,326
ส่วนไม่ต่อเนื่องนะครับ

54
00:03:01,686 --> 00:03:01,947
ก็คือ

55
00:03:01,947 --> 00:03:05,947
เข้าไปครอบครองหน่วยความจำแล้วนะความจำอาจจะอยู่คนละที่อยู่คนละแบบ

56
00:03:09,442 --> 00:03:13,442
ครับ อยู่คนละที่

57
00:03:17,965 --> 00:03:16,344
นะครับ

58
00:03:11,123 --> 00:03:15,123
แต่จะต้องมีเนื้อที่เพียงพอที่โปรแกรมที่ใช้งานนะคะ

59
00:03:17,156 --> 00:03:21,156
คราวนี้มาดูในระบบ

60
00:03:23,145 --> 00:03:25,904
โปรแกรมเดียว

61
00:03:25,904 --> 00:03:26,115
ครับ โปรแกรมเดี่ยว

62
00:03:26,115 --> 00:03:29,205
Single Program

63
00:03:29,205 --> 00:03:30,626
นะครับ ก็คือ

64
00:03:30,626 --> 00:03:34,626
คอมพิวเตอร์

65
00:03:36,023 --> 00:03:38,972
มีผู้ใช้งานเพียงโปรแกรมเดียว

66
00:03:38,972 --> 00:03:39,135
การจัดสรรหน่วยความจำจะไม่ยุ่งยากนะครับ

67
00:03:39,135 --> 00:03:43,135
ซึ่งเราสามารถแบ่งพื้นที่ของหน่วยความจำได้เป็น 2 ส่วนนะครับ

68
00:03:48,685 --> 00:03:51,708
ก็คือส่วนแรก

69
00:03:51,708 --> 00:03:54,784
เป็นของระบบปฏิบัติการนะครับ

70
00:03:54,784 --> 00:03:58,784
และเป็นส่วนที่จำเป็นจะต้อง

71
00:04:01,860 --> 00:04:02,234
มีพื้นที่ว่างยาวติดต่อกัน

72
00:04:02,234 --> 00:04:04,805
เป็นผืนใหญ่ผืนเดียวเลย

73
00:04:04,805 --> 00:04:05,088
นะครับ

74
00:04:05,088 --> 00:04:09,088
นี่

75
00:04:11,328 --> 00:04:12,154
OS

76
00:04:12,154 --> 00:04:16,014
นะครับ

77
00:04:16,014 --> 00:04:16,184
ต้องมีพื้นที่หน่วยความจำของมันด้วยนะครับ

78
00:04:16,184 --> 00:04:19,755
แล้วต้องเป็นพื้นที่ยาวต่อเนื่องกัน

79
00:04:19,755 --> 00:04:23,755
2

80
00:04:28,268 --> 00:04:28,371
ส่วนหน่วยความจำของผู้ใช้

81
00:04:28,371 --> 00:04:32,371
ก็คือ

82
00:04:32,895 --> 00:04:33,151
เรากลายเป็นส่วนของผู้ใช้

83
00:04:33,151 --> 00:04:35,223
ในระบบโปรแกรมเดี่ยว

84
00:04:35,223 --> 00:04:39,223
มันบอกความจำออกเป็น 2 ส่วนนะครับ 2 ส่วน

85
00:04:42,771 --> 00:04:44,378
ดูของระบบ

86
00:04:44,378 --> 00:04:45,540
ปฏิบัติการเองเป็น

87
00:04:45,540 --> 00:04:45,777
หน่วยป้องกัน

88
00:04:45,777 --> 00:04:49,247
เพื่อไม่ให้ตัวของมันเองถูกรุกล้ำเข้ามา

89
00:04:49,247 --> 00:04:53,247
วิธีการป้องกันก็คือ

90
00:04:53,804 --> 00:04:53,923
การใช้ register ขอบเขต

91
00:04:53,923 --> 00:04:57,923
นะครับ register ขอบเขตคืออะไร

92
00:05:02,601 --> 00:05:02,796
ก็คือส่วนที่ป้องกันระหว่าง

93
00:05:02,796 --> 00:05:06,096
ระหว่างอะไรครับ

94
00:05:06,096 --> 00:05:08,888
OS

95
00:05:08,888 --> 00:05:11,614
ส่วนของผู้ใช้

96
00:05:11,614 --> 00:05:11,834
ไม่ให้เข้ามายุ่งเกี่ยวกันนะครับ

97
00:05:11,834 --> 00:05:15,834
ดังนั้นการเขียนโปรแกรม

98
00:05:18,655 --> 00:05:18,861
ไวรัสคอมพิวเตอร์

99
00:05:18,861 --> 00:05:22,861
ตัวหนึ่งก็คือเจาะตรงนี้นะครับ

100
00:05:23,908 --> 00:05:24,193
เจาะขอบเขตเจาะเข้าไป

101
00:05:24,193 --> 00:05:28,193
ดีนะครับ

102
00:05:29,917 --> 00:05:33,917
ถ้ามีการรุกล้ำ register ขอบเขต

103
00:05:34,996 --> 00:05:37,662
ก็จะมีการแจ้งเตือน

104
00:05:37,662 --> 00:05:37,943
นะครับ

105
00:05:37,943 --> 00:05:41,943
วันนี้มาดูระบบหลายโปรแกรม

106
00:05:44,568 --> 00:05:48,568
ระบบหลายโปรแกรม

107
00:05:50,995 --> 00:05:51,788
การทำงานของระบบหลายโปรแกรมนั้นส่วนมากนะครับ

108
00:05:51,788 --> 00:05:55,788
ส่วนมากจะเกิดขึ้นก็คือ

109
00:05:58,140 --> 00:06:01,609
การทำงานอินพุตเอาต์พุตคือการไป

110
00:06:01,609 --> 00:06:02,702
มันไม่ได้ครอบครอง CPU ว่าง ๆ ๆ

111
00:06:02,702 --> 00:06:06,702
เราเรียกระบบ

112
00:06:11,111 --> 00:06:11,886
มัลติโปรแกรมมิ่ง

113
00:06:11,886 --> 00:06:12,191
นะครับ

114
00:06:12,191 --> 00:06:16,191
ระบบ programming นี้นะครับ ก็คือ

115
00:06:19,446 --> 00:06:20,260
การทำงานที่

116
00:06:20,260 --> 00:06:24,260
มีโปรแกรมมากกว่าหนึ่งโปรแกรมทำงาน

117
00:06:26,844 --> 00:06:27,337
ในเวลาเดียวกัน 2 3 4 5 6 7

118
00:06:27,337 --> 00:06:29,290
นะครับ

119
00:06:29,290 --> 00:06:32,981
การทำงานของระบบหลายโปรแกรม

120
00:06:32,981 --> 00:06:33,985
มันจะแบ่งเป็น

121
00:06:33,985 --> 00:06:35,856
partition

122
00:06:35,856 --> 00:06:36,098
ของหน่วยความจำ

123
00:06:36,098 --> 00:06:40,098
แบ่ง partition ของหน่วยความจำออฟเป็นส่วนส่วน

124
00:06:40,849 --> 00:06:44,849
ซึ่งการแบ่งหน่วยความจำนะครับ

125
00:06:51,065 --> 00:06:54,460
ระบบหลายโปรแกรม

126
00:06:54,460 --> 00:06:54,857
แบบหน่วยความจำนะครับ

127
00:06:54,857 --> 00:06:56,192
ยังสามารถ

128
00:06:56,192 --> 00:06:59,014
แบ่งได้เป็น 2 ประเภท

129
00:06:59,014 --> 00:07:01,799
นะครับ ก็คือ

130
00:07:01,799 --> 00:07:03,018
หลายโปรแกรมแบบ

131
00:07:03,018 --> 00:07:03,237
แบ่งหน่วยความจำ

132
00:07:03,237 --> 00:07:06,653
แบบคงที่

133
00:07:06,653 --> 00:07:07,489
แล้วก็ไม่คงที่

134
00:07:07,489 --> 00:07:07,737
นะครับ

135
00:07:07,737 --> 00:07:11,737
ระบบและโปรแกรมแบบระบบสลับหน่วยความจำ

136
00:07:15,381 --> 00:07:15,698
นะครับ

137
00:07:15,698 --> 00:07:19,698
แบ่งหน่วยความจำนะครับ

138
00:07:22,576 --> 00:07:23,275
แล้วก็สลับหน่วยความจำ

139
00:07:23,275 --> 00:07:26,435
วันนี้เรามาดูประเภทที่ 1 กันนะครับ

140
00:07:26,435 --> 00:07:29,815
การแบ่งหน่วยความจำขนาดคงที่นะครับ

141
00:07:29,815 --> 00:07:33,815
เห็นไหมครับ

142
00:07:39,057 --> 00:07:39,401
โปรแกรมส่วนที่ 1 ที่ ส่วนที่ 2 ส่วนที่ 3

143
00:07:39,401 --> 00:07:42,350
มีขนาดที่เท่ากัน

144
00:07:42,350 --> 00:07:42,676
ครับ ที่เท่ากัน

145
00:07:42,676 --> 00:07:46,676
และการแปลงหน่วยความจำแบบคงที่

146
00:07:59,675 --> 00:07:59,888
แบ่งออกเป็น 2 ประเภท 2 แบบ

147
00:07:59,888 --> 00:08:03,888
ได้แก่

148
00:08:04,571 --> 00:08:04,786
การแปลงและโหลดด้วยค่าสมบูรณ์นะครับ

149
00:08:04,786 --> 00:08:08,786
รูปนี้ประกอบนะครับ

150
00:08:10,447 --> 00:08:12,117
โปรแกรมส่วนที่ 1

151
00:08:12,117 --> 00:08:15,013
เห็นไหมครับส่วน ที่ 1

152
00:08:15,013 --> 00:08:19,013
ส่วนที่ 1 ที่ 2 ข้อที่ 2

153
00:08:19,907 --> 00:08:20,175
23 9 ซอย 13

154
00:08:20,175 --> 00:08:22,237
จำสดที่ 1

155
00:08:22,237 --> 00:08:22,942
ที่ 2

156
00:08:22,942 --> 00:08:23,202
ที่ 3

157
00:08:23,202 --> 00:08:26,360
เห็นว่ามีขนาดที่เท่ากัน

158
00:08:26,360 --> 00:08:26,636
ครับ ที่เท่ากัน

159
00:08:26,636 --> 00:08:30,636
ขอบคุณนะครับ

160
00:08:31,413 --> 00:08:32,840
ดูนะครับ

161
00:08:32,840 --> 00:08:33,132
โปรแกรมส่วนที่ 1

162
00:08:33,132 --> 00:08:34,866
เช่น

163
00:08:34,866 --> 00:08:37,411
รอดู

164
00:08:37,411 --> 00:08:38,532
โปรแกรมวันที่ 1 ที่ 2 ที่ 3

165
00:08:38,532 --> 00:08:39,493
มีขนาดเท่ากับ 10

166
00:08:39,493 --> 00:08:43,493
โปรแกรมส่งที่ 1

167
00:08:43,520 --> 00:08:44,555
เสร็จแล้ว

168
00:08:44,555 --> 00:08:44,776
โหลดเข้าไป

169
00:08:44,776 --> 00:08:48,776
มีค่าไม่เกิน 10

170
00:08:48,973 --> 00:08:49,159
จะเข้าไปในส่วนที่ 1

171
00:08:49,159 --> 00:08:51,568
นะครับ

172
00:08:51,568 --> 00:08:55,568
ถ้าโปรแกรม

173
00:08:55,924 --> 00:08:57,494
วันที่ 2

174
00:08:57,494 --> 00:08:57,733
ต้องมีค่าตั้งแต่

175
00:08:57,733 --> 00:09:01,733
11 จะถึง 20

176
00:09:01,849 --> 00:09:02,235
จะเข้าส่วนที่ 2

177
00:09:02,235 --> 00:09:06,235
นะครับ

178
00:09:06,279 --> 00:09:07,555
โปรแกรม

179
00:09:07,555 --> 00:09:10,361
ส่วนที่ 1

180
00:09:10,361 --> 00:09:10,508
Program a Program B Program C

181
00:09:10,508 --> 00:09:14,508
มาแปลงด้วยค่าสมบูรณ์เสร็จแล้ว

182
00:09:16,958 --> 00:09:17,923
เข้าไปที่คิวที่ 1 อย่างเดียว

183
00:09:17,923 --> 00:09:18,482
นะครับ

184
00:09:18,482 --> 00:09:22,086
นี่คือข้อเสียของมันนะครับ

185
00:09:22,086 --> 00:09:25,804
ใช่ไหมครับ

186
00:09:25,804 --> 00:09:25,970
มันจะว่างเลย

187
00:09:25,970 --> 00:09:29,970
ส่วนที่ 1 ที่ 2 ที่ 3 ที่ 4 ที่ 5 ที่ 6 ที่ 7

188
00:09:32,402 --> 00:09:36,402
ดังนั้นก็เลย

189
00:09:37,542 --> 00:09:38,509
วิธีการ

190
00:09:38,509 --> 00:09:39,300
มีปัญหานะครับ

191
00:09:39,300 --> 00:09:42,775
เป็นการแปลงได้โหลดของค่าสัมพัทธ์นะครับ

192
00:09:42,775 --> 00:09:46,775
เพื่อแก้ปัญหาเมื่อกี้นะครับ ก็คือ

193
00:09:47,805 --> 00:09:51,564
มีคิวเดียวเลยนะครับ

194
00:09:51,564 --> 00:09:55,280
มีคิวเดียว

195
00:09:55,280 --> 00:09:57,197
คิวเดียวแล้วก็คือ

196
00:09:57,197 --> 00:09:57,688
บทที่ 1 2 3 4

197
00:09:57,688 --> 00:09:59,190

198
00:09:59,190 --> 00:10:01,357
หมายความว่าวิธีการโหลดตรงนี้

199
00:10:01,357 --> 00:10:03,679
พี่คิว

200
00:10:03,679 --> 00:10:04,185
โดยมีคิวแค่คิวเดียว

201
00:10:04,185 --> 00:10:04,367
ครับ

202
00:10:04,367 --> 00:10:08,367
แปลงเสร็จปุ๊บมีค่าเท่ากับ 10

203
00:10:10,734 --> 00:10:10,928
เข้ามาในส่วนที่ 1

204
00:10:10,928 --> 00:10:13,309
มีค่าเท่ากับ 10

205
00:10:13,309 --> 00:10:15,955
เอาบอกเขาไปสิ

206
00:10:15,955 --> 00:10:19,852
1 2 Call ส่วนที่ 2

207
00:10:19,852 --> 00:10:21,527
การโหลดเสร็จ

208
00:10:21,527 --> 00:10:24,109
15

209
00:10:24,109 --> 00:10:25,327
ข้อ 2 ไม่ได้

210
00:10:25,327 --> 00:10:27,297
66

211
00:10:27,297 --> 00:10:28,145
+ 7 + 10 เข้าไป

212
00:10:28,145 --> 00:10:28,429
ซื้อให้

213
00:10:28,429 --> 00:10:32,381
คอนโดที่ 2

214
00:10:32,381 --> 00:10:34,399
ที่ 3 ที่ 4 ที่ 5 เข้าไปเรื่อย ๆ นะครับ

215
00:10:34,399 --> 00:10:38,399
ดังนั้นการป้องกันนะครับ

216
00:10:40,576 --> 00:10:40,751
ถ้าเป็นระบบในโปรแกรมเดียว

217
00:10:40,751 --> 00:10:44,751
จะเป็นใน register ขอบเขตในการป้องกัน

218
00:10:45,501 --> 00:10:47,228
ถ้าเป็นระบบหลักโปรแกรม

219
00:10:47,228 --> 00:10:47,546
แจ้งเตือนความจำ

220
00:10:47,546 --> 00:10:51,546
26 ใช้ก็คือแบ่ง

221
00:10:52,716 --> 00:10:53,956
register แล้วก็ขอบเขตล่าง

222
00:10:53,956 --> 00:10:55,426
การป้องกันไม่ให้

223
00:10:55,426 --> 00:10:57,405
โปรแกรมเข้ามานะครับ

224
00:10:57,405 --> 00:11:01,405
ขอบเขตล่าง

225
00:11:01,908 --> 00:11:04,460
ขอบเขตบนขอบเขตล่าง

226
00:11:04,460 --> 00:11:04,759
ขอบเขตบนนะครับ

227
00:11:04,759 --> 00:11:08,295
ส่วนตัวของ

228
00:11:08,295 --> 00:11:11,934
ระบบปฏิบัติการ

229
00:11:11,934 --> 00:11:13,159
ก็คือใช้ตัวของ register ขอบเขตในการป้องกัน

230
00:11:13,159 --> 00:11:17,159
คราวนี้การแบ่งหน่วยความจำ

231
00:11:21,389 --> 00:11:21,820
ไม่ว่าจะเป็นวิธีการใดก็แล้วแต่

232
00:11:21,820 --> 00:11:25,495
ต้องเผื่อพื้นที่ในการ

233
00:11:25,495 --> 00:11:25,642
เหลือใช้งานเรียกว่าการแตกกระจาย

234
00:11:25,642 --> 00:11:29,642
การแตกกระจายก็คือส่วนของหน่วยความจำ ที่

235
00:11:34,059 --> 00:11:34,315
ไม่ถูกใช้งาน

236
00:11:34,315 --> 00:11:37,429
ในระบบ

237
00:11:37,429 --> 00:11:38,899
แบ่งหน่วยความจำนะครับ

238
00:11:38,899 --> 00:11:39,121

239
00:11:39,121 --> 00:11:42,171
เราเรียก

240
00:11:42,171 --> 00:11:46,171
การแตกกระจายนี้ออกเป็น 2 กรณีนะครับ

241
00:11:50,315 --> 00:11:50,534
คือการแตกกระจายภายนอกและก็การแตกกระจายภายในนะครับ

242
00:11:50,534 --> 00:11:53,861
การแพร่กระจายภายนอก

243
00:11:53,861 --> 00:11:54,118
เป็นอย่างไรครับ

244
00:11:54,118 --> 00:11:56,409
ดูนะครับ

245
00:11:56,409 --> 00:12:00,409
ส่วนที่ 1

246
00:12:01,604 --> 00:12:01,976
การแตกกระจายภายนอก

247
00:12:01,976 --> 00:12:05,976
หมายถึง

248
00:12:06,582 --> 00:12:09,553
ส่วนของ

249
00:12:09,553 --> 00:12:10,334
หน่วยความจำที่ไม่ถูกใช้งาน

250
00:12:10,334 --> 00:12:13,336
ในระบบ

251
00:12:13,336 --> 00:12:15,141
แบ่งหน่วยความจำแบบขนาดคงที่

252
00:12:15,141 --> 00:12:15,555
ไม่ถูกใช้งานเลยนะครับ

253
00:12:15,555 --> 00:12:17,755
ไม่ถูกใช้งาน

254
00:12:17,755 --> 00:12:21,755
ส่วนการแตกกระจายภายใน

255
00:12:22,352 --> 00:12:25,222
หมายถึง

256
00:12:25,222 --> 00:12:27,963
ส่วนของหน่วยความจำ

257
00:12:27,963 --> 00:12:30,556
ที่ถูกใช้งาน

258
00:12:30,556 --> 00:12:34,556
นะครับ ที่ใช้งานแต่ใช้งานไม่หมด

259
00:12:36,558 --> 00:12:37,235
นะครับ ใช้ไม่หมดนะครับ

260
00:12:37,235 --> 00:12:40,709
ในการ

261
00:12:40,709 --> 00:12:41,882
แบ่งหน่วยความจำแบบคงที่

262
00:12:41,882 --> 00:12:44,315
ต่างกันนะครับ

263
00:12:44,315 --> 00:12:48,315
การแตกกระจายภายนอกก็คือส่วนที่ว่างไม่ถูกใช้งานเลย

264
00:12:49,408 --> 00:12:52,980
การแตกกระจายภายในคือ

265
00:12:52,980 --> 00:12:55,324
หน่วยความจำว่าง

266
00:12:55,324 --> 00:12:55,683
โดนใช้ไปแล้วใช้ไม่หมด

267
00:12:55,683 --> 00:12:59,683
คราวนี้มาดู

268
00:13:04,652 --> 00:13:04,949
การแบ่งหน่วยความจำ

269
00:13:04,949 --> 00:13:06,328
ขนาดคงที่

270
00:13:06,328 --> 00:13:10,076
ขนาดไม่คงที่นะครับ

271
00:13:10,076 --> 00:13:10,783
เมื่อกี้ไปขนาดคงที่นะครับ

272
00:13:10,783 --> 00:13:14,783
ผู้ออกแบบ

273
00:13:19,811 --> 00:13:21,053
ระบบปฏิบัติการได้ตระหนักถึงข้อเสียของการแบ่งการจัดพื้นที่ไว้

274
00:13:21,053 --> 00:13:21,676
มีข้อจำกัด

275
00:13:21,676 --> 00:13:23,494
ก็เลย

276
00:13:23,494 --> 00:13:27,494
คิดค้นวิธีการที่เรียกว่าการแบ่งหน่วยความจำแบบไม่คงที่ขึ้น

277
00:13:29,151 --> 00:13:29,831
บ้านตัวอย่าง

278
00:13:29,831 --> 00:13:30,186
นะครับ

279
00:13:30,186 --> 00:13:31,603
เห็นไหมครับ

280
00:13:31,603 --> 00:13:34,264
ผู้ใช้เอ

281
00:13:34,264 --> 00:13:35,444
ต้องการใช้สิทธิ์

282
00:13:35,444 --> 00:13:38,850
ก็เข้าไปเลย 10 K

283
00:13:38,850 --> 00:13:42,850
นะครับ

284
00:13:50,990 --> 00:13:54,990
ผู้ชายดีต้องการไป 30

285
00:13:56,882 --> 00:13:58,260
ใช้ไป

286
00:13:58,260 --> 00:13:58,498
ขนาดไม่คงที่นะคะ

287
00:13:58,498 --> 00:14:02,225
ขอให้มีพื้นที่ว่างเพียงพอก็สามารถจัดการ

288
00:14:02,225 --> 00:14:04,911
หน่วยความจำได้เลยนะครับ

289
00:14:04,911 --> 00:14:08,911
ระบบโปรแกรมแบบแบ่งหน่วยความจำ

290
00:14:14,352 --> 00:14:16,146
แบบไม่คงที่นะครับ

291
00:14:16,146 --> 00:14:18,245
สามารถ Run

292
00:14:18,245 --> 00:14:22,245
ได้หลายโปรแกรมนะครับ ดู

293
00:14:22,900 --> 00:14:26,900
... ถึงแม้ว่า

294
00:14:31,058 --> 00:14:32,341
การแบ่งหน่วยความจำแบบไม่คงที่

295
00:14:32,341 --> 00:14:33,928
นะครับ

296
00:14:33,928 --> 00:14:37,928
ก็ยังมีส่วนที่ไม่ถูกใช้งานเหมือนกัน

297
00:14:38,519 --> 00:14:38,996
นะครับ เหมือนเดิม

298
00:14:38,996 --> 00:14:40,971
ถ้าเป็นแบบค่าคงที่

299
00:14:40,971 --> 00:14:44,272
นึกว่าการแตกกระจายนะครับ

300
00:14:44,272 --> 00:14:46,722
ส่วนถ้าเกิด

301
00:14:46,722 --> 00:14:47,866
ใน

302
00:14:47,866 --> 00:14:50,273
พื้นที่ที่ไม่ถูกใช้งาน

303
00:14:50,273 --> 00:14:53,426
ในการแบ่งหน่วยความจำขนาด

304
00:14:53,426 --> 00:14:56,615
ไม่คงที่

305
00:14:56,615 --> 00:14:56,984
เราเรียกว่าช่องโหว่นะครับ หรือ

306
00:14:56,984 --> 00:15:00,984
Hold เกิดขึ้นได้อย่างไร

307
00:15:02,658 --> 00:15:06,658
โปรแกรม a Program B โปรแกรม C Program D

308
00:15:12,550 --> 00:15:13,302
เห็นไหมครับ Hold เกิดขึ้นแล้ว

309
00:15:13,302 --> 00:15:14,740
ข้างล่างสุด

310
00:15:14,740 --> 00:15:17,956
ช่องว่างช่องโหว่

311
00:15:17,956 --> 00:15:19,168
ครับ

312
00:15:19,168 --> 00:15:21,643
สักระยะหนึ่ง

313
00:15:21,643 --> 00:15:24,508
โปรแกรม B

314
00:15:24,508 --> 00:15:24,693
จบคือหน่วยความจำให้ระบบ

315
00:15:24,693 --> 00:15:27,655
เห็นไหมครับ ช่องโหว่เกิดขึ้นแล้ว

316
00:15:27,655 --> 00:15:31,655
พักหนึ่ง

317
00:15:32,631 --> 00:15:32,963
โปรแกรมดี

318
00:15:32,963 --> 00:15:35,491
จบ

319
00:15:35,491 --> 00:15:36,876
คืนความจำให้ระบบ

320
00:15:36,876 --> 00:15:37,733
เกิด ขึ้นแล้ว

321
00:15:37,733 --> 00:15:41,733
เมื่อเกิด Hole ขึ้นนะครับ

322
00:15:46,336 --> 00:15:47,943
ก็มีวิธีการ

323
00:15:47,943 --> 00:15:51,943
เอาโปรแกรมใหม่ลงไปวางแทนนะครับ

324
00:15:54,470 --> 00:15:54,644
ซึ่งมีอยู่ 3 วิธีการนะครับ

325
00:15:54,644 --> 00:15:56,355
1

326
00:15:56,355 --> 00:16:00,221
เลือก Hole ที่พบก่อน

327
00:16:00,221 --> 00:16:04,221
ไม่มีขนาดใหญ่พอที่จะวางโปรแกรมใหม่ลงไปนะครับ

328
00:16:08,370 --> 00:16:08,606
วิธีการที่ 2

329
00:16:08,606 --> 00:16:12,606
เลือก Hole ที่เหมาะสม

330
00:16:13,541 --> 00:16:16,802
ที่เหมาะสมที่สุด

331
00:16:16,802 --> 00:16:18,512
เอาเข้าไปแล้วเหลือหน่วยความจำ

332
00:16:18,512 --> 00:16:18,709
ใหม่น้อยที่สุด

333
00:16:18,709 --> 00:16:19,877
ครับ

334
00:16:19,877 --> 00:16:23,877
3

335
00:16:26,923 --> 00:16:28,191
เลือก Hที่ใหญ่ที่สุด

336
00:16:28,191 --> 00:16:28,497
ครับ ที่ใหญ่ที่สุด

337
00:16:28,497 --> 00:16:31,310
ดูนะครับ

338
00:16:31,310 --> 00:16:35,208
วิธีแต่ละวิธีไปอย่างไรมาดู

339
00:16:35,208 --> 00:16:35,393
มาดูรูป

340
00:16:35,393 --> 00:16:37,647
บริการที่ 1

341
00:16:37,647 --> 00:16:41,647
เช็กรอบพบก่อน

342
00:16:42,905 --> 00:16:44,275
ต้องมีเงื่อนไขว่า

343
00:16:44,275 --> 00:16:44,554
ต้องมีพื้นที่

344
00:16:44,554 --> 00:16:47,100
ของ

345
00:16:47,100 --> 00:16:51,100
Hole ใหญ่เพียงพอนะครับ

346
00:16:53,674 --> 00:16:54,618
13 เข้า 16 ได้ไหมครับ

347
00:16:54,618 --> 00:16:58,618
ไม่ได้

348
00:16:59,117 --> 00:16:59,365
คราวก่อนเจอก่อนเลย

349
00:16:59,365 --> 00:17:02,587
เอาไปวางก่อนเลย

350
00:17:02,587 --> 00:17:05,344
2

351
00:17:05,344 --> 00:17:06,866
เหมาะสมที่สุดเมื่อเข้าไปวางแล้ว

352
00:17:06,866 --> 00:17:09,086
Hole ใหม่ที่เกิดขึ้น

353
00:17:09,086 --> 00:17:09,215
มีขนาด

354
00:17:09,215 --> 00:17:12,333
ที่เหลือน้อยที่สุด

355
00:17:12,333 --> 00:17:13,072
จาก 16 เหลือ

356
00:17:13,072 --> 00:17:14,805
3

357
00:17:14,805 --> 00:17:14,979
ถ้าเข้า 14

358
00:17:14,979 --> 00:17:18,979
เข้า 5 เข้าไม่ได้

359
00:17:20,158 --> 00:17:21,835
ค่าเข้า 30

360
00:17:21,835 --> 00:17:22,647
17

361
00:17:22,647 --> 00:17:25,301
ใช่ไหมครับ

362
00:17:25,301 --> 00:17:29,301
เลือก Hole เข้าไปแล้ว

363
00:17:29,964 --> 00:17:30,178
ทำให้เกิด Hole น้อยที่สุด

364
00:17:30,178 --> 00:17:34,178
วันที่ 3 นะครับ

365
00:17:34,814 --> 00:17:37,789
วิธีการวก็คือ

366
00:17:37,789 --> 00:17:37,913
เรือหที่ใหญ่ที่สุด

367
00:17:37,913 --> 00:17:41,913
นะครับ

368
00:17:41,922 --> 00:17:42,135
30 กว่าเพื่อน

369
00:17:42,135 --> 00:17:46,135
คราวนี้

370
00:17:50,683 --> 00:17:51,129
ในกรณีที่

371
00:17:51,129 --> 00:17:55,129
มีโฮเกิดขึ้นพื้นที่ติดกัน

372
00:17:57,573 --> 00:17:57,899
กันนะครับ ติดกัน

373
00:17:57,899 --> 00:18:01,899
ถ้า os มีความ

374
00:18:04,578 --> 00:18:05,215
สามารถนะครับ

375
00:18:05,215 --> 00:18:09,215
มันจะมีความสามารถในการจับ

376
00:18:10,409 --> 00:18:10,719
รวม Hole เข้าไปด้วยกัน

377
00:18:10,719 --> 00:18:12,279
นะครับ

378
00:18:12,279 --> 00:18:16,279
เดี๋ยวออกไปครับ

379
00:18:20,092 --> 00:18:23,006
อยู่ติดกัน

380
00:18:23,006 --> 00:18:24,766
ติดกันกับโครงการนะครับ

381
00:18:24,766 --> 00:18:26,693
วิธีการ 1

382
00:18:26,693 --> 00:18:27,285
วิธีการอัดหน่วยความจำ

383
00:18:27,285 --> 00:18:29,329
การอ

384
00:18:29,329 --> 00:18:31,532
ก็คือถ้ามี Home

385
00:18:31,532 --> 00:18:34,937
ว่าง

386
00:18:34,937 --> 00:18:38,937
ขึ้น

387
00:18:39,989 --> 00:18:41,355
กันก็ได้ไม่ติดกันก็ได้นะครับ

388
00:18:41,355 --> 00:18:44,935
วิธีการอัพหน่วยความจำคือ

389
00:18:44,935 --> 00:18:48,935
กลับหน่วยความจำแล้วก็เช็คดู

390
00:18:52,580 --> 00:18:54,451
ระบบ อัตราความจำที่ว่าง ๆ มาจัดรวมกัน

391
00:18:54,451 --> 00:18:54,669
รวมกันให้ใหญ่ขึ้นนะครับ

392
00:18:54,669 --> 00:18:58,669
เราเรียกว่าการรวบรวมขยะ

393
00:19:01,543 --> 00:19:03,528
นะครับ

394
00:19:03,528 --> 00:19:04,075
โปรแกรม defrag

395
00:19:04,075 --> 00:19:05,626
เดี๋ยว

396
00:19:05,626 --> 00:19:09,485
ทำไมแยกไปเรียนปฏิบัติครับ

397
00:19:09,485 --> 00:19:09,915
เราจะเห็นว่า

398
00:19:09,915 --> 00:19:13,009
โปรแกรม defrag ทำงาน

399
00:19:13,009 --> 00:19:13,836
ทำงานอย่างไร

400
00:19:13,836 --> 00:19:17,836
มาทีหลังทำไมไม่เอาแบบฝึกหัด

401
00:19:18,128 --> 00:19:20,925
เพิ่งเข้ามาเมื่อกี้

402
00:19:20,925 --> 00:19:23,234
มาเอาแบบฝึกหัด

403
00:19:23,234 --> 00:19:26,373
แล้วทำอะไรอยู่

404
00:19:26,373 --> 00:19:30,373
นี่ดูคลิปวิธีการรวบรวมหน่อยครับ

405
00:19:44,387 --> 00:19:44,945
อัดหน่วยความจำ

406
00:19:44,945 --> 00:19:48,945
ใช่ไหมครับ

407
00:19:51,347 --> 00:19:52,281
ใช้งาน 1 2 3

408
00:19:52,281 --> 00:19:54,883
Ho

409
00:19:54,883 --> 00:19:57,250
le Hole Hole นะครับ

410
00:19:57,250 --> 00:19:59,728
พออัดในความจำ

411
00:19:59,728 --> 00:20:03,728
เกิดช่องว่างขึ้นเกิดว่างขึ้นใหญ่ขึ้น

412
00:20:04,388 --> 00:20:04,771
ครับ

413
00:20:04,771 --> 00:20:08,771
วิธีการอัดหน่วยความจำนะครับ

414
00:20:09,161 --> 00:20:13,161
คราวนี่มาดูแล้ว

415
00:20:14,504 --> 00:20:16,123
โปรแกรม

416
00:20:16,123 --> 00:20:16,411
สลับค

417
00:20:16,411 --> 00:20:19,761
วามจำที่เป็นแบบแบ่งหน่วยความจำนะครับ

418
00:20:19,761 --> 00:20:20,242
ความจำ

419
00:20:20,242 --> 00:20:23,039
เมื่อกี้ก็มีแบบขนาด

420
00:20:23,039 --> 00:20:26,300
ของที่ระลึกคงที่

421
00:20:26,300 --> 00:20:28,020
ตอนนี้มาดูระบบแบบสลับหน่วยความจำ

422
00:20:28,020 --> 00:20:28,535
หลักการก็คือ

423
00:20:28,535 --> 00:20:29,909
ลบโปรแกรม

424
00:20:29,909 --> 00:20:31,530
ถูก

425
00:20:31,530 --> 00:20:32,361
ใช้งาน

426
00:20:32,361 --> 00:20:34,179
ก็นึกว่าสลับเข้า

427
00:20:34,179 --> 00:20:38,179
นะครับ เอามา เอามา

428
00:20:38,612 --> 00:20:42,612


