วันพฤหัสบดีที่ 29 สิงหาคม พ.ศ. 2556

สรุปผลการเรียนวันที่ 28 สิงหาคม 2556

CPU Scheduling (การกำหนดการใช้ซีพียู)
อัลกอริธึมที่เลือกโปรเซสเข้าไปใช้ซีพียูนั้นมีหลายอัลกอริธึม ระบบคอมพิวเตอร์จำเป็นต้องพิจารณาเลือกใช้อัลกอริธึมที่เหมาะสม ทั้งนี้ขึ้นอยู่กับเป้าหมายของระบบคอมพิวเตอร์นั้นๆ โดยที่เป้าหมายของระบบอาจเป็นข้อใดข้อหนึ่งต่อไปนี้ หรือมีหลายเป้าหมายประกอบกัน
1. มาก่อนบริการก่อน (First-Come, First-Serve Scheduling : FCFS) เป็นอัลกอริทึมที่ง่ายที่สุด โดยจะกำหนดให้โปรเซสที่ ร้องขอซีพียูก่อนเป็นโปรเซสที่ได้รับซีพียูก่อน เมื่อมีโปรเซสที่อยู่ในสถานะพร้อมที่จะทำงาน โปรเซสนั้นจะถูกนำเข้าไปต่อท้ายคิวพร้อม เมื่อซีพียูว่าง ระบบปฏิบัติการจะเรียกกำหนดการซีพียู เพื่อให้พิจารณามอบซีพียูให้แก่โปรเซสที่อยู่ต้นคิวของคิวพร้อม
2. งานสั้นทำก่อน (Shortest-Job First Scheduling : SJF) เป็นอัลกอริทึมมาก่อนบริการก่อนนั้น พบว่า ค่าเฉลี่ยของเวลาครบวงงาน และค่าเฉลี่ยของเวลารอมีค่าสูง โดยเฉพาะกรณีที่ในคิวพร้อมมีโปรเซสที่ต้องการใช้ซีพียูเป็นเวลาที่แตกต่างกันอัลกอริทึมของงานสั้น
ทำก่อนจะพยายามลดค่าเฉลี่ยของเวลาครบวงงาน และค่าเฉลี่ยของเวลารอ โดยกำหนดให้โปรเซสที่ต้องการใช้ซีพียูเป็นระยะเวลาน้อยได้เข้าใช้ซีพียูก่อนโปรเซสที่ต้องการใช้ซีพียูเป็นระยะเวลานาน
3. ลำดับความสำคัญ (Priority Scheduling)
เป็นวิธีจัดลำดับการใช้ซีพียูโดยกำหนดลำดับความสำคัญ (Priority) ให้แต่ละโปรเซส โดยระบบจะต้องกำหนดว่า
• ให้ตัวเลขที่มีค่าน้อยที่สุด แสดงถึงลำดับความสำคัญน้อยที่สุด
• ให้ตัวเลขที่มีค่ามากที่สุด แสดงถึงลำดับความสำคัญมากที่สุด
• ให้ตัวเลขที่มีค่าน้อยที่สุด แสดงถึงลำดับความสำคัญมากที่สุด
• ให้ตัวเลขที่มีค่ามากที่สุด แสดงถึงลำดับความสำคัญน้อยที่สุด
4. วิธีวนรอบ (Round-Robin Scheduling : RR) อัลกอริทึมนี้ถูกออกแบบมาเพื่อใช้สำหรับระบบแบ่งเวลา โดยมีการทำงานเหมือนอัลกอริทึมแบบมาก่อนบริการก่อน แต่กำหนดให้โปรเซสใช้ซีพียูในเวลาที่จำกัด เรียกว่า เวลาควอนตัม (Quantum time)  หรือ การแบ่งเวลา (Time slice)
5. คิวหลายระดับ (Multilevel Queue Scheduling) อัลกอริธึมของการจัดลำดับวิธีนี้ ถูกสร้างขึ้นจากแนวความคิดที่ว่า โปรเซสสามารถถูกแบ่งเป็นกลุ่มต่างๆได้หลายกลุ่ม เช่น งานระบบ ( system process ) และงานกลุ่ม ( batch process ) โดยแต่ล่ะกลุ่มมีเวลาการตอบสนองที่ต่างกัน จึงย่อมต้องการการจัดลำดับที่แตกต่างกันด้วย
การจัดการหน่วยความจำ
หน่วยความจำภายใน (Internal Memory)
บางครั้งเรียกว่า หน่วยความจำแคช ประกอบด้วยรีจิสเตอร์ความเร็วสูง หน่วยความจำส่วนนี้ส่วนนี้ถูกใช้สำหรับเก็บคำสั่งและข้อมูลที่ต้องการทำงานด้วยความเร็วสูงมาก และเป็นหน่วยความจำที่หน่วยประมวลผลกลางสามารถเข้าถึงได้โดยตรงและรวดเร็ว
หน่วยความจำหลัก(Main Memory)
หน่วยความจำหลัก เป็นศูนย์กลางของการทำงานต่างๆของระบบคอมพิวเตอร์ในปัจจุบัน หน่วยความจำหลักในพื้นที่
เก็บข้อมูลขนาดเป็น ไบต์ (byte) โดยแต่ละไบต์จะมีแอดเดรส (address) บอกตำแหน่งของตัวเอง และโดยทั่วไปแล้วโปรแกรมเมอร์ล้วนแต่ต้องการระบบที่มีหน่วยความจำหลักแบบไม่จำกัด,มีความเร็วสูง , และมีหน่วยความจำที่มีความเสถียรสูงหรือเป็นแบบไม่ถูกลบเลือน
หน่วยความจำสำรอง (Secondary Memory)
เป็นหน่วยความจำที่มีความเร็วน้อยกว่าหน่วยความจำสองประเภท ใช้สำหรับเก็บข้อมูลที่มีขนาดใหญ่ และยังไม่ต้องการนำมาประมวลผล
การยึดเหนี่ยวเลขที่อยู่ (Address Binding)
- เวลาแปรโปรแกรม (Compile Time)
เมื่อนำโปรแกรมต้นฉบับที่ระบุตำแหน่งของหน่วยความจำหลักด้วยเลขที่อยู่สัมบูรณ์ผ่านการแปลด้วยคอมไพเลอร์ จะได้ object program
- เวลาโหลด (Load Time)
เมื่อนำโปรแกรมต้นฉบับที่ระบุตำแหน่งของหน่วยความจำหลักด้วยการใช้เลขที่สัมพัทธ์ ผ่านคอมไพเลอร์ จะได้ object program ที่อ้างถึงตำแหน่งของหน่วยความจำหลักด้วยเลขที่สัมพัทธ์
- เวลากระทำการ (Execution Time)
โปรแกรมต้นฉบับถูกแบ่งออกเป็นส่วนๆแต่ล่ะส่วนถูกใช้ไม่พร้อมกัน เช่น ส่วนที่รับข้อมูล ส่วนที่ประมวลผลข้อมูล และส่วนที่แสดงผลลัพธ์
- การซ้อนทับ (Overlays)
โดยทั่วไปแล้ว งาน หรือ โปรแกรม หรือ โปรเซส ที่ต้องการประมวลผลยูวีพียู จะต้องถูกบรรจุในหน่วยความจำหลัก นั่นคือโปรเซสจะต้องมีขนาดน้อยกว่าหรือเท่ากับขนาดของหน่วยความจำหลักลบด้วยขนาดของระบบปฏิบัติการ

ไม่มีความคิดเห็น:

แสดงความคิดเห็น