Please enable JavaScript.
Coggle requires JavaScript to display documents.
บทที่ 7 การจัดการหน่วยความจำ Part 1, เลขที่ 25 หมู่ 800 6221659434…
บทที่ 7 การจัดการหน่วยความจำ Part 1
7.1 ประเภทของหน่วยความจำ
หน่วยความจำภายใน (Internal memory)
หน่วยความจำแคช (Cache memory
ความเร็วสูงมาก
เข้าถึงได้โดยตรงและรวดเร็ว
หน่วยความจำหลัก (Main memory)
ใช้ความเร็วสูงใช้
สำหรับเก็บคำสั่งและข้อมูลระหว่างการทำงาน
เข้าถึงได้โดยตรง + รวดเร็ว
หน่วยความจำสำรอง (Secondary memory)
ความเร็วน้อยกว่า
เหมาะกับงานขนาดใหญ
ไม่ต้องการนำมาประมวลผล
7.3 หน่วยความจำหลัก
3.1 การเชื่อมโยงตำแหน่ง (Address Binding)
เวลาแปลโปรแกรม (Compile time)
ตำแหน่งที่แน่นอนและมีอยู่จริงในหน่วยความจำหลัก
การกำหนดตัวระบบ
ชื่อตัวแปร
ซับรูทีน
อ้างถึงหน่วยความจำหลักด้วยเลขที่อยู่สัมพัทธ์
เวลาโหลดโปรแกรม (Load time)
มีการระบุตำแหน่ง
เลขที่อยู่สัมพัทธ์มาผ่านการแปลด้วยคอมไพเลอร์
ทำการแปลจากเลขที่อยู่เชิงสัมพัทธ์ให้เป็นเลขที่อยู่เชิงสัมบูรณ์
เวลากระทำการ (Execution time)
3.2 Dynamic Loading
Routine จะไม่ถูกโหลด
มีประโยชน์สำหรับ
โปรแกรมขนาดใหญ่
การ Implement โดยการออกแบบโปรแกรมเอง
3.3 Dynamic Linking and Shared Libraries
ใช้ระบบไลบรารีในการแบ่งปันไลบรา
มีชุดคำสั่งเล็ก ๆ เรียกว่า Stub
7.7 ปัญหาการจัดสรรหน่วยเก็บแบบพลวัต
First-Fit
เลือกช่องโหว่แรกที่พบ
มีขนาดใหญ่เพียงพอกับพื้นที่ที่ต้องการ
เป็นวิธีที่ง่ายที่สุดและเสียเวลาน้อยที่สุด
Best-Fit
การเลือกช่องโหว่ที่เหมาะสมที่สุด
ข้อเสีย
ใช้เวลานาน
นำพื้นที่ว่างทุกรายการเปรียบเทียบ
ช่องว่างเล็ก ๆ ภายในหน่วยความจำเป็นจำนวนมาก
ค้นหาเร็วขึ้น
การเรียงรายการ
ตามลำดับจากขนาดเล็กไปใหญ่
ประหยัดเวลา
ท าให้เหลือพื้นที่เล็กที่สุด
Worst-Fit
การเลือกช่องโหว่ที่ใหญ่ที่สุด
เกิดเนื้อที่ว่าง
เล็ก ๆ เป็นจำนวนมากอย่าง Best-Fit
7.5 การจัดการหน่วยความจำหลัก
5.1 วิธีการซ้อนทับ (Overlays)
มีขนาดน้อยกว่าหรือเท่ากับขนาดของหน่วยความจำหลัก
ถูกแบ่งออกเป็นส่วนย่อยที่อิสระต่อกัน
โพรเซสให้เก็บไว้ในหน่วยความจำสำรอง
5.2 วิธีการสับเปลี่ยน (Swapping)
มีขนาดพื้นที่จำกัด
นำบางโพรเซสออก
เพื่อให้มีพื้นที่ว่างสำหรัะบอันอื่น
ระบบปฏิบัติการ
หลัก --> สำรอง
สับเปลี่ยนออก (Swap out)
สำรอง --> หลัก
สับเปลี่ยนเข้า (Swap in)
7.2 แนวคิดพื้นฐานการจัดการหน่วยความจำหลัก
หน้าที่
ควบคุมดูแลสถานะของแต่ละตำแหน่ง
จัดสรรหน่วยความจำหลักขนาดเท่าไร ให้กับงานใด ณ ตำแหน่งใด
จัดสรรหน่วยความจำหลักให้งานที่ได้เลือกแล้ว
ปลดปล่อยหน่วยให้ว่าง เมื่องานเสร็จแล้ว
Instruction-execution cycle
ขั้นตอนที่ 1 ไปนำมา (Fetch)
ขั้นตอนที่ 2 ถอดรหัส (Decode)
ขั้นตอนที่ 3 กระทำการ (Execution)
ขั้นตอนที่ 4 จัดเก็บ (Store)
7.6 การจัดสรรหน่วยความจำแบบต่อเนื่อง
6.1 การจัดสรรพื้นที่แบบขนาดคงที่ (Fixed-Size Partition)
แบบขนาดคงที่หรือแบบส่วนเดียว (Single-partition allocation)
เปลี่ยนรหัสของระบบ
รีจิสเตอร์ย้ายตำแหน่ง บรรจุด้วยค่าเลขที่อยู๋
ความง่ายในการจัดสรร
ลดความซ้ำซ้อน
6.2 การแบ่งหน่วยความจำออกเป็นพาร์ติชั่น
การกำหนดขนาดพาร์ติชั่นคงที่ (Static Partition)
มีขนาดแน่นอน
เหมาะระบบรู้ขนาดของโพรเซสล่วงหน้า
การกำหนดขนาดของพาร์ติชั่นให้เปลี่ยนแปลงได้(Dynamic Partition)
ตามขนาดที่ผู้ใช้ร้องขอเมื่อมีการขอใช้หน่วยความจำหลัก
6.3 การจัดการหน่วยความจำหลักแบบพาร์ติชั่นและย้ายที่อยู่
การอัดแน่น (Compaction)
ต้องปรับเลขที่อยู่
ผ่านโหลดเดอร์ อีกครั้งหนึ่ง
มีขนาดไม่เพียงพอ
7.4 ตำแหน่งที่ว่างทางกายภาพและทางตรรกะ
ตำแหน่งทางตรรกะ (Logical address)
การจัดการ
เป็นตำแหน่งเดียวกันในช่วงของ Compile time และ Load time
เชื่อมโยง Logical address เข้ ากับแต่ละ Physical address
Execution time
ตำแหน่งเสมือน (Virtual address)
ตำแหน่งที่ว่างทางตรรกะ (Logical address space)
การอ้างอิงโดยโปรแกรม
เลขที่ 25 หมู่ 800
6221659434 นางสาวขนิษฐา ศรีพิน