Memory Management ในยุคก่อน

Slides:



Advertisements
งานนำเสนอที่คล้ายกัน
ความรู้เบื้องต้นเกี่ยวกับระบบฐาจข้อมูล
Advertisements

หลักการบันทึกข้อความ
วิชาหัวข้อเรื่องที่ทันสมัยทางวิทยาการคอมพิวเตอร์ 6 มกราคม 2555
Process Synchronization
กระบวนการ (Process).
การเสนอโครงการวิทยานิพนธ์
ความสำคัญของงานวิจัย เสนอ รศ.ดร.เผชิญ กิจระการ
โครงสร้างของระบบปฏิบัติการ Operating System Structure
ระบบมัลติโปรแกรมมิ่ง (Multiprogramming System)
การพัฒนาระบบการส่งคำสั่งล้างข้อมูล ระยะไกล
การสังเกต อ.สมพงษ์ พันธุรัตน์.
สภาวะแวดล้อมในขณะโปรแกรมทำงาน
Software คือ ชุดคำสั่งหรือ ขั้นตอนการทำงานของคอมพิวเตอร์
ประสบการณ์จากงานบริการสารสนเทศ: ประโยชน์
บทที่ 2 หลักการแก้ปัญหา
การจัดการอุปกรณ์รับ และแสดงผล
บทที่ 3 พื้นฐานการเขียนโปรแกรม Visual Basic
บทที่ 13 การผลิตแบบทันเวลาพอดี
การพัฒนาการปิด การเจรจาต่อรอง
HTTP Client-Server.
Surachai Wachirahatthapong
Operating System ฉ NASA 4.
หน่วยความจำเสมือน Virtual Memory.
โครงสร้างการทำงานของ OS
การติดตั้งภาษาไทยและการจัดการดิสก์
บทที่ 4 กระบวนการตัดสินใจ
Introduction to Cache Memory Systems
Chapter 2 Database systems Architecture
การเฝ้าระวังกับนโยบายสังคม
บทที่ 3 การวิเคราะห์โครงสร้าง Structure Analysis
การออกแบบฐานข้อมูลเชิงสัมพันธ์
CPU ไม่รวม I/O PROCESSOR , MATH CO-PROCESSOR
CSC420 Operating Systems ผู้สอน : อ.สุรชัย ดียิ่ง ห้องเรียน : 5-357
CSC431 Computer Network System
บทที่ 8 File Management. ประเด็นที่ต้องพิจารณา ถ้าต้องการเก็บข้อมูลจะเก็บข้อมูลไว้ที่ไหน สามารถเก็บข้อมูลตรงไปยัง media โดยไม่ต้อง จัดรูปแบบการเก็บได้หรือไม่
ประเด็นสำคัญในการพัฒนา คุณภาพการบริหารจัดการภาครัฐ
บทที่ 3 การวิเคราะห์ Analysis.
Linked List (ลิงค์ลิสต์)
บทนำเกี่ยวกับระบบฐานข้อมูล
บทที่ 2 หลักการแก้ปัญหา
วิชา เทคโนโลยีสารสนเทศ เรื่อง. หลักการทำงาน และ
Computer Programming for Engineers
ตัวชี้วัดระดับความสำเร็จของการดำเนินการ มาตรการประหยัดพลังงาน
วิชา COSC2202 โครงสร้างข้อมูล (Data Structure)
การพัฒนาระบบงานโดยเทคนิคเชิงโครงสร้าง
หลักการเขียนโปรแกรม ( )
ข้อคำถามที่ 1 จงตอบคำถามต่อไปนี้
การเข้าใช้ Speexx ครั้งแรก Foundation English II
ขั้นตอนและหลักการวิเคราะห์
กระบวนการวิจัย Process of Research
การจัดการฐานข้อมูล.
โปรแกรมฐานข้อมูลที่นิยมใช้
การเขียนโปรแกรมแบบวนซ้ำ: คำสั่ง while คำสั่ง do….while
การเพิ่มประสิทธิภาพ คอมพิวเตอร์. วัตถุประสงค์วัตถุประสงค์ 1. สามารถบูทเข้า windows หรือ shut down ได้เร็วขึ้น 2. คอมฯมีพื้นที่ว่างในการทำงาน มากขึ้น 3.
หลักการแก้ปัญหา
การบริหารจัดการ PDCA cycle
กระบวนการสมานฉันท์และสันติวิธี
อาจารย์ปิยศักดิ์ ถีอาสนา
stack #2 ผู้สอน อาจารย์ ยืนยง กันทะเนตร
การแก้ปัญหาโปรแกรม (Flowchart)
หลักการเขียนโปรแกรม ( )
สารานุกรมการศึกษา (The Encyclopedia of Education) ให้ความหมายไว้ว่า คือ “การจัดการสืบค้นอย่างมีระบบเกี่ยวกับการศึกษาและผลผลิตที่ได้รับจากการศึกษา”
ความรู้พื้นฐานเกี่ยวกับการโปรแกรมคอมพิวเตอร์
ADDIE Model.
The McKinsey Way.
Introduction to Database
การจัดเรียงข้อมูล (sorting)
โครงสร้างข้อมูลแบบ สแตก (stack)
Computer Program คือ ขั้นตอนการทำงาน ของคอมพิวเตอร์
บทที่ 7 การสร้างและการใช้งาน ฟังก์ชัน อาจารย์ชนิดา คำเพ็ง สาขาวิชาเทคโนโลยีสารสนเทศ คณะวิทยาศาสตร์ และเทคโนโลยี
ใบสำเนางานนำเสนอ:

Memory Management ในยุคก่อน บทที่ 2 Memory Management ในยุคก่อน

ความเดิมตอนที่แล้ว องค์ประกอบของ OS User Interface Memory Management Process Management Devices Management Files Management Security Management Network Management

เช็คชื่อ คนที่เข้าหลังจากนี้ จะเสียคะแนนไปส่วนหนึ่ง นักศึกษาส่งรายชื่อคนในกลุ่ม 6 กลุ่ม (ถ้าต้องการเปลี่ยนแปลงรายชื่อภายหลัง สามารถทำได้ แต่ต้องแจ้งอาจารย์ด้วย เพราะมีคะแนนตลอด)

บทบาทหน้าที่ของ Memory Management Memory ในที่นี้หมายถึงเฉพาะ primary memory เท่านั้น Memory มีขนาดจำกัด มีผู้ต้องการใช้งาน memory จำนวนมาก รวมถึง OS เองด้วย ประเด็นที่ต้องพิจารณา จะจัดพิ้นที่ส่วนไหนให้ผู้ขอใช้ จะต้องไม่จัดพื้นที่ซ้ำซ้อน ถ้าผู้ใช้ขอคืน memory ต้องทำอย่างไร ถ้าผู้ใช้ไม่จำเป็นต้องใช้ แต่ไม่ได้ส่งคืน (ผู้ใช้ตายแล้ว) จะทำอย่างไร ถ้า memory หมด ทำอย่างไร ถ้า memory มี แต่ไม่เพียงพอเท่าที่ขอ ทำอย่างไร ทำอย่างไรถึงจะให้บริการได้เร็ว

ทำความเข้าใจกับโครงสร้าง memory (แบบ logical) Memory เป็น random access storage มี address บอกตำแหน่งและอ้างอิงตำแหน่ง ข้อมูลเก็บอยู่ในรูป binary มีแต่ 0 กับ 1 มี 0 หมด ไม่ได้หมายความว่า memory ตรงนั้นว่าง มี 1 อยู่ ไม่ได้หมายความว่า memory ตรงนั้นไม่ว่าง

ใครขอใช้ memory OS ใช้เอง โปรแกรมที่โหลดลงมาใหม่ ส่วนของโปรแกรมที่อาจโหลดลงมาเพิ่ม พื้นที่ซึ่งโปรแกรมขอเพิ่มเติมเช่นคำสั่ง malloc ในภาษา C (ถ้าไม่มีข้อมูล OS ไม่สามารถแยกได้ว่าสิ่งที่อยู่ใน memory นั้นเป็นตัวโปรแกรม หรือว่าเป็นส่วนของข้อมูล เพราะมีแต่ 0 และ 1 เหมือนกัน)

Single-user Contiguous Scheme รันได้ครั้งละโปรแกรม (monoprogramming) ต้องอยู่ใน memory ทั้งโปรแกรม ต้องอยู่ในพื้นที่ติดกันทั้งโปรแกรม ข้อสังเกตุ ใน memory มีเพียง OS กับอีก 1 โปรแกรม OS ต้องเก็บข้อมูลตำแหน่ง memory ที่จะลงโปรแกรมและขนาดที่ลงได้ ไม่สามารถรันโปรแกรมที่ใหญ่กว่า memory ที่เหลือ ถ้าโปรแกรมมีขนาดเล็ก ถึงจะเหลือพื้นที่ก็รันโปรแกรมอื่นไม่ได้ พื้นที่เหลือโดยเปล่าประโยชน์เรียกว่า fragmentation

Three simple ways of organizing memory with an operating system and one user process. Tanenbaum, Modern Operating Systems 3 e, (c) 2008 Prentice-Hall, Inc. All rights reserved. 0-13-6006639

ประเด็นที่ต้องพิจารณาเพิ่มเติม โปรแกรมทุกโปรแกรมจะมีตำแหน่งของคำสั่ง และการอ้างอิงถึงตำแหน่งของคำสั่ง ซึ่งปกติจะเริ่มนับตำแหน่ง 0 จากต้นโปรแกรม ขณะเดียวกัน memory ก็มีตำแหน่งซึ่งเริ่มนับตำแหน่ง 0 จากต้น memory ถ้าโปรแกรมถูกโหลดลงที่ต้น memory ตำแหน่ง 0 ของโปรแกรมจะตรงกับตำแหน่ง 0 ของ memory การรันโปรแกรมจะไม่มีปัญหา ถ้าโปรแกรมถูกโหลดในตำแหน่งอื่น จำเป็นต้องมีวิธีการอ้างอิงหรือแปลง ตำแหน่งจาก relative address ไปเป็น physical address กรณี Single user นั้นง่าย เพียงแค่บวก memory address ตำแหน่งแรกของโปรแกรม เข้าไปยัง relative address ก็ได้แล้ว

Fixed Partitions เรียกอีกอย่างว่า Static Partitions รันได้หลายโปรแกรม (multiprogramming) OS แบ่ง memory ออกเป็นหลายส่วนเรียกว่า partition จำนวน partition และขนาด partition เปลี่ยนแปลงไม่ได้ โปรแกรมต้องโหลดลง partition ใด partition หนึ่ง เท่านั้น ต้องโหลดทั้งโปรแกรม แต่ละ partition โหลดได้โปรแกรมเดียว

ประเด็นปัญหา ถ้าต้องการโหลดโปรแกรม จะโหลดลง partition ใด First-fit โหลดลง partition แรกที่ว่าง Best-fit โหลดลง partition ที่ทำให้เกิด internal fragmentation น้อยที่สุด Worst-fit ตรงข้ามกับ best-fit กรณี best-fit หรือ worst-fit ถ้าตำแหน่งที่ต้องการไม่ว่าง รอคิว (มีคิวสำหรับทุก partition) เลือกลง partition อื่นที่ว่างตามนโยบาย (มีคิวเดียวสำหรับทุก partition)

ประเด็นปัญหา(ต่อ) การหา physical address OS ต้องมีข้อมูลตำแหน่งของแต่ละ partition (ขนาดและสถานะจำเป็นสำหรับเรื่องอื่น) OS ต้องมีข้อมูลว่าโปรแกรมไหนอยู่ partition ใด การคำนวณ ให้นักศึกษากลุ่ม ... ตอบคำถาม (นึกถึง single user คิดยังไง) การกำหนดขนาดของ partition เพื่อให้รันโปรแกรมได้มากที่สุด และเกิด fragmentation น้อยสี่สุด ให้นักศึกษากลุ่ม ... เสนอความเห็น ถ้ามีโปรแกรมที่ขนาดใหญ่กว่า partition ที่ว่าง ให้นักศึกษากลุ่ม ... ตอบคำถาม ถ้ามีโปรแกรมขนาดใหญ่กว่า partition ที่มีทั้งหมด ให้นักศึกษากลุ่ม .. ตอบคำถาม

Dynamic Partitions เหมือน Fixed Partitions นอกจาก กรณี partition ว่าง อยู่ก่อนหน้า partition ที่เพิ่งจบ กรณี partition ว่างอยู่หลัง partition ที่เพิ่งจบ กรณีมี partition ว่างทั้งก่อนหน้าและหลัง partition ที่เพิ่งจบ กรณีมี fragmentation ใน partition ก่อนหน้า ถ้าใช้ไปนานๆอาจมี fragmentation กระจัดกระจาย อาจทำ compaction เพื่อรวม fragmentation ที่กระจัดกระจาย เป็นพื้นที่ว่างติดกันขนาดใหญ่พอจะรันโปรแกรมเพิ่มเติมได้ การทำ compaction มี overhead สูง

Compaction (ให้น.ศ.เปรียบเทียบแต่ละแบบ)

ประเด็นปัญหา ข้อมูลที่ OS ต้องเก็บมีอะไรบ้าง (กลุ่ม ... ตอบ) Data structure เป็นอย่างไร (กลุ่ม ... ตอบ) ถ้าต้องการโหลดโปรแกรมจะลง partition ไหน (กลุ่ม ... ตอบ) การหา physical address (กลุ่ม ... ตอบ) ถ้าโปรแกรมที่โหลดมีขนาดใหญ่กว่า partition ที่ว่าง (กลุ่ม ... ตอบ) คำถามอื่น ๆ

ปิดท้ายด้วย Quiz อย่าลืมฝึกเขียนโปรแกรม ส่งก่อน midterm ใช้โปรแกรมประเภท secured shell หาไม่เจอให้ load จาก itnet.rsu.ac.th/surachai/program Putty.exe เป็น 1 ในโปรแกรม ssh User password บอกไปแล้ว