Full Transcript

Computer Architecture and Organization บทที่ 8 ระบบปฏิบัติการ 1) โครงสร้างโดยทั่วไปของระบบปฏิบัติการ (OS) Computer Hardware and Software Structure OS ทาหนาที่ควบคุมการทางานของโปรแกรมผูใชและเปนตัวกลางระหวางโปรแกรมผูใชกับ ฮารดแวรระบบ จุดมุงหมายของการมีระบบปฏิบัติการ เพื่...

Computer Architecture and Organization บทที่ 8 ระบบปฏิบัติการ 1) โครงสร้างโดยทั่วไปของระบบปฏิบัติการ (OS) Computer Hardware and Software Structure OS ทาหนาที่ควบคุมการทางานของโปรแกรมผูใชและเปนตัวกลางระหวางโปรแกรมผูใชกับ ฮารดแวรระบบ จุดมุงหมายของการมีระบบปฏิบัติการ เพื่อประสิทธิภาพการใชงานหรือชวยใหผูใชและโปรแกรมผูใช (User program) ควบคุมฮารดแวรอยางมีประสิทธิภาพที่สุด เพื่อความสะดวกในการใชงานคอมพิวเตอร หน้าที่หลักของระบบปฏิบัติการ การพัฒนาโปรแกรม เอดิเตอร์และดีบักเกอร์: ระบบปฏิบัติการมักมีเครื่องมือเหล่านี้มาให้ในตัว หรือสามารถ ติดตั้งเพิ่มเติมได้ ทาให้การเขียนและแก้ไขโปรแกรมเป็นไปอย่างสะดวก ไลบรารี: ระบบปฏิบัติการมีไลบรารีฟังก์ชันต่างๆ มากมายให้โปรแกรมเมอร์เรียกใช้ งานได้โดยตรง ทาให้การพัฒนาโปรแกรมรวดเร็วขึ้น การจัดการทรัพยากร การจัดสรรหน่วยความจา: ระบบปฏิบัติการจะแบ่งหน่วยความจาออกเป็นส่วนๆ ให้กับโปรแกรมต่างๆ ที่กาลังทางานอยู่ การจัดการ CPU: ระบบปฏิบัติการจะสลับการทางานของโปรแกรมต่างๆ บน CPU เพื่อให้โปรแกรมทั้งหมดทางานได้อย่างมีประสิทธิภาพ การจัดการอุปกรณ์ I/O: นอกจากการจัดการการเข้าถึงอุปกรณ์ I/O แล้ว ระบบปฏิบัติการยังจัดการการรับส่งข้อมูลระหว่างอุปกรณ์ต่างๆ ด้วย หน้าที่หลักของระบบปฏิบัติการ การสร้างสภาพแวดล้อมการทางาน อินเทอร์เฟซผู้ใช้: ระบบปฏิบัติการสร้างอินเทอร์เฟซที่ผู้ใช้สามารถใช้งานได้ง่าย เช่น GUI (Graphical User Interface) หรือ CLI (Command-Line Interface) ระบบไฟล์: ระบบปฏิบัติการจัดระเบียบข้อมูลบนหน่วยความจาสารองในรูปแบบ ของไฟล์และไดเรกทอรี การรักษาความปลอดภัย การควบคุมการเข้าถึง: ระบบปฏิบัติการจะกาหนดสิทธิ์การเข้าถึงทรัพยากรต่างๆ ให้กับผู้ใช้แต่ละคน การป้องกันไวรัส: ระบบปฏิบัติการมีกลไกในการตรวจสอบและป้องกันไวรัส และมัลแวร์ต่างๆ ไฟร์วอลล์: ระบบปฏิบัติการบางตัวมีไฟร์วอลล์ในตัวเพื่อป้องกันการเข้าถึงจาก ภายนอก การทางานแบบมัลติทาสกิ้งและมัลติโปรแกรมมิ่ง มัลติทาสกิง้ : ระบบปฏิบัติการสามารถทางานหลายโปรแกรมพร้อมกันได้ มัลติโปรแกรมมิ่ง: ระบบปฏิบัติการสามารถรองรับผู้ใช้หลายคนใช้งานคอมพิวเตอร์ เครื่องเดียวกันได้ ตัวอย่างการให้บริการของระบบปฏิบัติการเพิ่มเติม การจัดการกระบวนการ: ระบบปฏิบัติการจะสร้างและจัดการกระบวนการ (Process) ซึ่งเป็นหน่วยงานที่เล็กที่สุดของโปรแกรมที่ระบบปฏิบัติการสามารถ จัดสรรทรัพยากรให้ได้ การสื่อสารระหว่างกระบวนการ: ระบบปฏิบัติการจะอานวยความสะดวกในการ สื่อสารระหว่างกระบวนการต่างๆ การจัดการหน่วยความจาเสมือน: ระบบปฏิบัติการจะสร้างหน่วยความจาเสมือน เพื่อให้โปรแกรมสามารถใช้หน่วยความจาได้มากกว่าที่มีอยู่จริง Interfaces Key interfaces in a typical computer system: Application Application Instruction set binary interface programming architecture (ISA) (ABI) interface (API) Gives a program access to the hardware resources and Defines the machine language Defines a standard for binary services available in a system instructions that a computer portability across programs through the user ISA can follow supplemented with high-level language (HLL) library calls Defines the system call interface to the operating Using an API enables Boundary between hardware system and the hardware application software to be and software resources and services ported easily to other systems available in a system through that support the same API the user ISA 1. Instruction Set Architecture (ISA) บทบาท: ระบบปฏิบัติการทาหน้าที่เป็นตัวกลางในการสื่อสารระหว่างซอฟต์แวร์กับ ฮาร์ดแวร์ (ซีพีย)ู โดยเฉพาะการจัดการชุดคาสั่งที่ซีพียูสามารถเข้าใจได้ (ISA) วิธีการ: ตรวจสอบความสามารถ: ระบบปฏิบัติการจะตรวจสอบว่าซีพียูที่ติดตั้งมานั้นรองรับคาสั่ง พิเศษใดบ้าง เช่น AVX256, AVX512 แจ้งให้ซอฟต์แวร์ทราบ: ระบบปฏิบัติการจะส่งข้อมูลนี้ไปยังซอฟต์แวร์ เพื่อให้ซอฟต์แวร์ สามารถเลือกใช้คาสั่งที่เหมาะสมกับซีพียูได้ สร้างไลบรารี: ระบบปฏิบัติการอาจสร้างไลบรารีของฟังก์ชันที่ใช้คาสั่งพิเศษของซีพียูโดยตรง เพื่อให้โปรแกรมเมอร์เรียกใช้ได้ง่ายขึ้น เป้าหมาย: เพื่อให้ซอฟต์แวร์สามารถทางานได้อย่างมีประสิทธิภาพสูงสุด โดยใช้ ประโยชน์จากความสามารถของซีพียูได้เต็มที่ 2. Application Binary Interface (ABI) บทบาท: กาหนดมาตรฐานในการเข้าถึงส่วนต่างๆ ของระบบปฏิบัติการ เช่น ฮาร์ดแวร์ หรือบริการต่างๆ วิธีการ: System call: เป็นคาสั่งที่โปรแกรมใช้ในการเรียกใช้ฟังก์ชันของ ระบบปฏิบัติการ โดยเขียนในรูปแบบของภาษาเครื่อง ภาษาเครื่อง: โค้ดที่ระบบปฏิบัติการใช้ในการสื่อสารกับฮาร์ดแวร์โดยตรง เป้าหมาย: เพื่อให้โปรแกรมต่างๆ สามารถทางานร่วมกับระบบปฏิบัติการได้ อย่างถูกต้องและสอดคล้องกัน Application Programming Interface (API) บทบาท: เป็นชุดของฟังก์ชันที่ระบบปฏิบัติการจัดเตรียมไว้ให้สาหรับ โปรแกรมเมอร์ เพื่อใช้ในการพัฒนาโปรแกรม วิธีการ: ภาษาระดับสูง: ฟังก์ชัน API เขียนด้วยภาษาที่โปรแกรมเมอร์เข้าใจง่าย เช่น C, C++ ซ่อนรายละเอียด: API จะซ่อนรายละเอียดของการทางานภายในของ ระบบปฏิบัติการ ทาให้โปรแกรมเมอร์ไม่ต้องกังวลกับรายละเอียดที่ซับซ้อน เป้าหมาย: เพื่ออานวยความสะดวกในการพัฒนาโปรแกรม และทาให้ โปรแกรมสามารถเข้าถึงฟังก์ชันต่างๆ ของระบบปฏิบัติการได้อย่างง่ายดาย ความสัมพันธ์ระหว่าง ISA, ABI และ API ISA: เป็นพื้นฐานที่กาหนดความสามารถของฮาร์ดแวร์ ABI: เป็นชั้นที่อยู่เหนือ ISA กาหนดวิธีการที่โปรแกรมจะเข้าถึงฮาร์ดแวร์ ผ่านระบบปฏิบัติการ API: เป็นชั้นที่อยู่เหนือ ABI อีกชั้นหนึ่ง ทาให้การพัฒนาโปรแกรมง่ายขึ้น หนาที่ของระบบปฏิบัติการในฐานะของผูบริหารทรัพยากรระบบ คอมพิวเตอรทางานในลักษณะของการมีทรัพยากรระบบที่ทาหนา ที่เคลื่อนยาย จัดเก็บ และประมวลผลขอมูล การจัดการสิ่งที่กลาวนี้เปนหนาที่ของระบบปฏิบัติการ ความเขาใจลักษณะการเขาควบคุมระบบของพื้นฐานระบบปฏิบัติการ 2 อยาง คือ ระบบปฏิบัติการ ทางานลักษณะซอฟตแวรตัวหนึ่งที่รันอยูในคอมพิวเตอรไมตางอะไร กับโปรแกรมผูใช้ การจัดสรรการทางานระหวางระบบปฏิบัติการกับซอฟตแวรผูใช จะอยูในลักษณะของ ซีพียูประมวลคาสั่งของระบบปฏิบัติการไปจนถึงจุดที่ระบบปฏิบัติการโยนงานกลับไปให ซอฟตแวรผูใชทางานตอ (ซึง่ เปนการกระโดดการทางานของโคดโปรแกรม) และอาศัย ฮารดแวรของซีพียูเพื่อใหสงการทางานกลับมายังระบบปฏิบัติการไดใหม (เชน การเกิด การขัดจังหวะ และ interrupt handler นัน้ เปนองคประกอบของระบบปฏิบัติการ Computer System I/O Devices Memory Operating I/O Controller Printers, System keyboards, Software digital camera, I/O Controller etc. Programs and Data I/O Controller Processor Processor Storage OS Programs Data Figure 8.2 The Operating System as Resource Manager ระบบปฏิบัติการในฐานะผู้บริหารทรัพยากรระบบ หน้าที่หลัก: จัดสรรทรัพยากร: แบ่งปันทรัพยากรให้กับโปรแกรมต่างๆ ที่กาลังทางาน จัดการกระบวนการ: ควบคุมการทางานของโปรแกรมต่างๆ รักษาความปลอดภัย: ป้องกันการเข้าถึงข้อมูลที่ไม่ได้รับอนุญาต จัดการไฟล์: จัดเก็บและจัดระเบียบข้อมูลบนหน่วยความจา ตัวอย่าง: การเปิดหลายโปรแกรมพร้อมกัน: ระบบปฏิบัติการจะแบ่งเวลาให้กับแต่ ละโปรแกรม ทาให้ดูเหมือนว่าโปรแกรมทั้งหมดทางานไปพร้อมๆ กัน การบันทึกไฟล์: ระบบปฏิบัติการจะจัดการการเขียนข้อมูลลงบน ฮาร์ดดิสก์ ประเภทของ OS ระบบโต้ตอบ (Interactive System): ผู้ใช้สั่งงานได้ทันที เช่น Windows, macOS ระบบชุดงาน (Batch System): ผู้ใช้ส่งงานเป็นชุดให้ระบบประมวลผล เช่น ระบบเมนเฟรมเก่า ระบบแบ่งเวลา (Time-sharing System): หลายคนใช้เครื่องเดียวกันพร้อม กัน ระบบเรียลไทม์ (Real-time System): ต้องตอบสนองทันที เช่น ระบบ ควบคุมเครื่องจักร ระบบกระจาย (Distributed System): เชื่อมโยงคอมพิวเตอร์หลายเครื่อง เข้าด้วยกัน ระบบฝังตัว (Embedded System): ฝังอยู่ในอุปกรณ์ เช่น สมาร์ทโฟน แนวคิดหลัก Program A Run Wait Run Wait พร้อมใช้งาน: โปรแกรมทั้งหมดที่ Time (a) Uniprogramming ต้องการทางานจะถูกโหลดเข้าสู่ หน่วยความจาหลักพร้อมกัน Program A Run Wait Run Wait สลับการทางาน: เมื่อโปรแกรมหนึ่ง Program B Wait Run Wait Run Wait ต้องรอการตอบสนองจากอุปกรณ์ I/O Run Run Run Run Combined A B Time Wait A B Wait (เช่น ฮาร์ดดิสก์) ระบบปฏิบัติการจะ (b) Multiprogramming with two programs สลับไปทางานโปรแกรมอื่นแทนทันที Program A Run Wait Run Wait วนซ้า: กระบวนการสลับการทางานนี้ Program B Wait Run Wait Run Wait จะเกิดขึ้นซ้าๆ อย่างรวดเร็ว ทาให้ดู Program C Wait Run Wait Run Wait เหมือนว่าโปรแกรมทั้งหมดทางานไป Combined Run Run Run A B C Wait Run Run Run A B C Wait พร้อมกัน Time (c) Multiprogramming with three programs Figure 8.5 Multiprogramming Example สงผลทาใหใชงานซีพียูไดคุมค่ามากขึ้น การทางานดังกลาว ตองอาศัยกลไกการขัดจังหวะ และการใชงาน DMA ทั้งนี้เพราะตองมีกลไกที่ใหโพรเซสเซอรโยนงานการ จัดการถายโอนขอมูลกับ I/O ไปให DMA โมดูล และปลอยให ซีพียูไปประมวลผลตอไปได้ ตารางเปรียบเทียบการรัน 3 โปรแกรมแบบเรียงตามลาดับและการรันแบบ multi programming ที่มีการโหลดโปรแกรมขึ้นหนวยความจาหลักและสั่งวนเรียกใชงานสลับ กันไป เมื่อโปรแกรมในลาดับกอนหนารอ I/O จะเห็นวาโปรแกรมทั้ง 3 ตัวรวมกัน จะใช เวลาประมวลนอยลงและใชซีพียูและทรัพยากรสวนตางๆ ไดมีประสิทธิภาพมากขึ้น 100% 100% CPU CPU 0% 0% 100% 100% Memory Memory 0% 0% 100% 100% Disk Disk 0% 0% 100% 100% Terminal Terminal 0% 0% 100% 100% Printer Printer 0% 0% Job History Job History JOB1 JOB1 JOB2 JOB3 JOB2 0 5 10 15 20 25 30 minutes JOB3 0 5 10 15 time minutes time (a) Uniprogramming (b) Multiprogramming Figure 8.6 Utilization Histograms Time Sharing Systems เปนการออกแบบที่เหมาะสม กรณีมผี ูใช้งานคอมพิวเตอรอยูตลอดเวลา เวลาที่ซีพียูประมวลผลโปรแกรมแตละตัวจะแบงไปใหกับผูใชหลายๆ คน ผูใชงานแตละคนจะเขาใชระบบโดยอาศัยเทอรมินัล (terminal) โดย ระบบปฏิบัติการจะสลับเปลี่ยน (interleave) การประมวลผลโปรแกรม แตละตัวของผูใชแคละคนสลับกันไป โดยใหเวลาเปนชวงเวลาสั้นๆ ผลของการสลับการประมวลผล ทาใหผูใชมองเห็นประสิทธิภาพของ คอมพิวเตอรลดลง เชน ถ้ามีผูใช n คน จะพบวา คอมพิวเตอรมี ประสิทธิภาพเพียง 1/n ของความเปนจริง (เพราะซีพียูตองสลับไปทางาน ใหกับผูใชแตละคน (ดวยเวลาที่เทาๆ กัน และในที่นี้ยังไมคิดถึงเวลารอ I/O ที่มีผลตอการทา multitasking ดังที่ไดกลาวไปแลวกอนหนานี)้ Time Sharing Systems ระบบที่ให้ผู้ใช้หลายคนสามารถใช้คอมพิวเตอร์เครื่องเดียวกันได้พร้อมๆ กัน โดย ระบบปฏิบัติการจะแบ่งเวลาให้กับแต่ละผู้ใช้สลับกันไป ทาให้ดูเหมือนว่าแต่ละคนกาลังใช้ คอมพิวเตอร์คนเดียว ข้อดี: ประหยัดค่าใช้จ่าย: ใช้คอมพิวเตอร์เครื่อง เดียวได้หลายคน เพิ่มประสิทธิภาพ: ใช้ทรัพยากรของ คอมพิวเตอร์ได้คุ้มค่า ข้อเสีย: ประสิทธิภาพลดลง: เมื่อมีผู้ใช้มากขึ้น ประสิทธิภาพโดยรวมจะลดลงเล็กน้อย ความซับซ้อน: ระบบปฏิบัติการต้องมีการ จัดการที่ซับซ้อน Table 8.4 Types of Scheduling Long-term scheduling The decision to add to the pool of processes to be executed Medium-term scheduling The decision to add to the number of processes that are partially or fully in main memory Short-term scheduling The decision as to which available process will be executed by the processor I/O scheduling The decision as to which process's pending I/O request shall be handled by an available I/O device เพื่อใหเห็นความแตกตางระหวางการประมวลผลทั้งแบบ batch multi programming กับ time sharing จึงนิยามคาศัพท process โพรเซสคือ เปนโปรแกรมที่กาลังประมวลผลอยู อาจเรียกวาเปนวิญญาณที่กาลังราย (animated spirit) ของโปรแกรม เปนองค(entity) ของการทางานที่มีการสงวนทรัพยากรซีพียูใหทางาน ประเภทของการจัดตารางงาน (Scheduling) ในระบบปฏิบัติการ ซึ่ง เป็นกระบวนการตัดสินใจว่าโปรแกรมหรือกระบวนการใดจะได้รับการ ประมวลผลเมื่อใด โดยแบ่งออกเป็น 3 ระดับหลัก ได้แก่ Long-term scheduling: เกี่ยวข้องกับการตัดสินใจว่าจะนาโปรแกรม ใหม่เข้ามาประมวลผลหรือไม่ และโปรแกรมใดควรได้รับการพิจารณาเป็น อันดับแรก Medium-term scheduling: เกี่ยวข้องกับการสลับโปรแกรมระหว่าง หน่วยความจาหลักและหน่วยความจาสารอง Short-term scheduling: เกี่ยวข้องกับการตัดสินใจว่าโปรแกรมใดจะ ได้รับการประมวลผลในขณะนี้ โดยมีการสลับเปลี่ยนโปรแกรมที่ทางานอยู่ บ่อยครั้ง Long-term scheduling ควบคุมจานวนโปรแกรมที่ทางานในระบบ (degree of multiprogramming) ปัจจัยที่พิจารณา: ขนาดของหน่วยความจา ลาดับความสาคัญของงาน ความต้องการทรัพยากร เวลาที่คาดว่าจะใช้ในการประมวลผล ผลกระทบ: การตัดสินใจในระดับนี้จะส่งผลต่อประสิทธิภาพโดยรวมของ ระบบ และความสามารถในการตอบสนองต่อผู้ใช้ Medium-term scheduling สลับโปรแกรมออกจากหน่วยความจาหลักเพื่อเพิ่มพื้นที่ว่างให้กับโปรแกรมอื่นๆ ปัจจัยที่พิจารณา: ขนาดของหน่วยความจาที่ว่าง ลาดับความสาคัญของโปรแกรม ระยะเวลาที่โปรแกรมไม่ได้ใช้งาน ผลกระทบ: ช่วยเพิ่มประสิทธิภาพในการใช้หน่วยความจา และปรับปรุงการ ตอบสนองของระบบ Short-term scheduling เลือกโปรแกรมที่จะได้รบั การประมวลผลในขณะนี้ (Dispatcher - เลือกโปรแกรมที่จะได้รบั การประมวลผลในขณะนี้ ) ปัจจัยที่พิจารณา: ลาดับความสาคัญ เวลาที่โปรแกรมรอการประมวลผล ความต้องการทรัพยากร ผลกระทบ: ส่งผลต่อประสิทธิภาพของแต่ละโปรแกรม และความสามารถในการตอบสนอง ของระบบโดยรวม ความสัมพันธ์ระหว่างแต่ละระดับ: การทางานของแต่ละระดับมีความเชื่อมโยงกัน โดย Long-term scheduling จะกาหนดจานวนโปรแกรมที่เข้าสู่ระบบ Medium-term scheduling จะจัดการการสลับโปรแกรมระหว่างหน่วยความจา และ Short- term scheduling จะตัดสินใจว่าโปรแกรมใดจะได้รับการประมวลผลในขณะนี้ Dispatch Admit Release New Ready Running Exit Timeout Event Occurs Event Wait Blocked Figure 8.7 Five-State Process Model Five State Process Model เป็นแบบจาลองที่อธิบายถึงสถานะต่างๆ ที่กระบวนการ (Process) สามารถอยูใ่ น ระบบปฏิบัติการได้ โดยสถานะเหล่านี้จะสัมพันธ์อย่างใกล้ชิดกับ Scheduling ซึ่ง เป็นกลไกในการตัดสินใจว่ากระบวนการใดจะได้รับการประมวลผลเมื่อใด สถานะของกระบวนการและความเกี่ยวข้องกับ Scheduling: 1. New: กระบวนการที่เพิ่งถูกสร้างขึ้นมา จะเข้าสู่คิวของ long-term scheduler เพื่อ รอการตัดสินใจว่าจะรับเข้าสู่ระบบหรือไม่ 2. Ready: กระบวนการที่พร้อมที่จะได้รับการประมวลผล จะอยู่ในคิวของ short- term scheduler เพื่อรอการเลือกให้ทางาน 3. Running: กระบวนการที่กาลังได้รับการประมวลผลโดย CPU 4. Waiting: กระบวนการที่กาลังรอทรัพยากร เช่น I/O หรือเหตุการณ์อื่นๆ 5. Terminated: กระบวนการที่สิ้นสุดการทางานแล้ว ความสัมพันธ์ Long-term scheduling: เกี่ยวข้องกับการตัดสินใจนากระบวนการจาก สถานะ New เข้าสู่สถานะ Ready Medium-term scheduling: เกี่ยวข้องกับการสลับกระบวนการ ระหว่างสถานะ Ready และ Waiting (โดยอาจมีการสลับไปยัง หน่วยความจาสารอง) Short-term scheduling: เกี่ยวข้องกับการเลือกกระบวนการจาก สถานะ Ready เข้าสู่สถานะ Running ตัวอย่าง: เมือ่ มีโปรแกรมใหม่ถูกสร้างขึ้น (New) long-term scheduler จะ พิจารณาว่าจะรับโปรแกรมนี้เข้าสู่ระบบหรือไม่ ถ้าได้รับอนุญาต โปรแกรม จะเข้าสู่สถานะ Ready เมื่อ CPU ว่าง short-term scheduler จะเลือกโปรแกรมหนึ่งจาก สถานะ Ready เข้ามาทางาน (Running) หากโปรแกรมที่กาลังทางานต้องการเข้าถึงดิสก์ โปรแกรมจะเข้าสูส่ ถานะ Waiting จนกว่าการเข้าถึงดิสก์เสร็จสิ้น แล้วจึงกลับสู่สถานะ Ready อีก ครั้ง Identifier Process Control Block (PCB) หรือเรียกอีกอย่างว่า State Task Control Block (TCB) เป็นโครงสร้างข้อมูลใน Priority Program counter ระบบปฏิบัติการ มีหน้าที่เก็บข้อมูลที่จาเป็นทั้งหมด Memory pointers เกี่ยวกับกระบวนการ (Process) Context data Identifier: เป็นรหัสประจาตัวที่ไม่ซ้ากันของ I/O status information กระบวนการ ช่วยในการระบุและอ้างอิงกระบวนการ Accounting information State: บ่งบอกสถานะปัจจุบันของกระบวนการ เช่น New, Ready, Running, Waiting, Terminated ซึ่ง จะเกี่ยวข้องโดยตรงกับการจัดตารางงาน (Scheduling) Priority: กาหนดลาดับความสาคัญของกระบวนการ Figure 8.8 Process Control Block Program counter: ชี้ไปยังคาสั่งถัดไปที่จะต้องถูกประมวลผล เมื่อกระบวนการถูกสลับ ออกจาก CPU ค่านี้จะถูกบันทึกไว้ เพื่อให้เมื่อกระบวนการกลับมาทางานต่อ จะสามารถ เริ่มต้นจากจุดทีค่ ้างไว้ได้ Memory pointers: บ่งบอกถึงพื้นทีห่ น่วยความจาที่กระบวนการกาลังใช้งานอยู่ รวมถึง ขนาดของพื้นที่นั้น Context data: ประกอบด้วยค่าของรีจสิ เตอร์ตา่ งๆ ใน CPU ที่เกี่ยวข้องกับกระบวนการ เมื่อกระบวนการถูกสลับออกจาก CPU ค่าของรีจิสเตอร์เหล่านี้จะถูกบันทึกไว้ใน PCB เพื่อให้เมื่อกระบวนการกลับมาทางานต่อ สามารถคืนค่าของรีจิสเตอร์ให้กลับสูส่ ภาพเดิมได้ อย่างรวดเร็ว I/O status information: บันทึกข้อมูลเกีย่ วกับการเข้าถึงอุปกรณ์ I/O ของกระบวนการ เช่น ไฟล์ที่กาลังเปิดอยู่ อุปกรณ์ I/O ที่กาลังรอคอย เป็นต้น Accounting information: เก็บข้อมูลสถิติตา่ งๆ เกี่ยวกับการทางานของกระบวนการ เช่น เวลาที่เริ่มทางาน เวลาที่สิ้นสุดการทางาน ปริมาณทรัพยากรที่ใช้ เป็นต้น Operating system Operating system Operating system In control Service handler Service handler Service handler Scheduler Scheduler Scheduler Interrupt handler Interrupt handler Interrupt handler A A A "Running" "Waiting" "Waiting" In control B B B "Ready" "Ready" "Running" In control Other partitions Other partitions Other partitions (a) (b) (c) Figure 8.9 Scheduling Example รูปแสดงการโอนการทางานไปมาระหวางโพรเซสผูใชและโพรเซส ระบบ ปฏิบัติการ ในเวลาใดๆ (ในรูปแสดงการจัดสรรพื้นที่หนวย ความจาของระบบใหกับโพรเซสผูใชและของระบบปฏิบัติการเอง) ในเวลาหนึ่งๆ โพรเซสผูใชทางานโดยซีพียูประมวลคาสั่ง (in control) รูป a) เมื่อเวลาผานไป โพรเซสของระบบปฏิบัติการ มี โอกาสถูกประมวลคาสั่งบาง สถานการณนี้เกิดขึ้นไดจาก 3 สาเหตุ ดังนี้ 1. โพรเซส A รองขอบริการจากระบบปฏิบัติการ (system call) ซึ่งคือการเรียกใชฟงกชันของระบบปฏิบัติการเอง ดังนั้นโพ รเซส A จะถูกหยุดไวจนกระทั่งการทา system call เสร็จสิ้น 2. โพรเซส A ทาใหเกิดกลไกการขัดจังหวะเกิดขึ้น ซึ่งอาจจะเกิดจาก การทางานผิดพลาดของโพ รเซส A หรือเมื่อหมดเวลาประมวลผลที่ ระบบปฏิบัติการกาหนดไว (ผานวงจรจับเวลา) เมื่อมี สัญญาณขัดจังหวะ เกิดขึ้นในระบบ ระบบปฏิบัติการจะเขามาทางานตอผานทาง interrupt handler 3. มีเหตุการณอื่นเกิดขึ้นในระบบทีไ่ มเกี่ยวของกับโพรเซส A ที่ทาให เกิดการขัดจังหวะเกิดขึ้น ตัวอยางเชน เมื่ออุปกรณ I/O ทางานเสร็จสิ้น ไมวาจะมาจากสาเหตุใดก็ตาม จะมีกระบวนการดังนี้เกิดขึ้น กลาวคือ ซีพียู(จากคาสั่งของระบบปฏิบัติการเอง) บันทึกคาตางๆ ในซีพียูทั้งหมด รวมถึง Program counter เรจิสเตอรที่ใชทางานกับโพรเซส A จนถึงปจ จุบันไวใน PCB จากนั้นทางานตอในสวนการจัดการของระบบปฏิบัติการ ตัวอยาง เชน การเตรียมพรอมการทางานของอุปกรณ I/O จากนั้นสวน short-term scheduler พิจารณา วาควรจะหยิบโพรเซสอื่นใด (จาก ready queue) เขามาทางานตอ จากรูปขางบนสมมติ วาเปนโพรเซส B ดังนั้นจะมีการคืนสถานะของซพีียจู าก PCB ของโพรเซส B และกระโดด ไปทางานตอในโพรเซส B จากจุดที่คางไว (อาศัยการโหลด PC ดวยเลขที่ อยูของคาสั่งในโพรเซส B ที่บันทึกไว ) Operating System Service Call Service from Process Call Handler (code) Long- Short- I/O Interrupt Term Term Queues from Process Interrupt Queue Queue Interrupt Handler (code) from I/O Short-Term Scheduler (code) Pass Control to Process Figure 8.10 Key Elements of an Operating System for Multiprogramming รูปขางบนเปนองค์ประกอบที่สาคัญของการจัดการ multiprogramming ของระบบปฏิบัติการ ระบบปฏิบัติการมีสวน service call handler สาหรับรับการรองของ system call และสวน interrupt handler สาหรับตอบสนองการ ขัดจังหวะ เมื่อมีการรับการบริการตามที่กลาวมาขางตน สวน short-term scheduler จะรับทางานในการสลับงาน ตอไป โพรเซสต่างๆ ที่หยุดรอ จะถูกนาไปวางไวในคิวตางๆ กัน โดยมี รายละเอียดดังนี้ long-term queue สาหรับงานที่รอจะเขามาประมวลในระบบ ซึ่งเมื่อ ระบบมีทรัพยากรพรอม ก็จะดึงเอางานเขามาและจองพื้นที่หนวยความจา และทรัพยากรตางๆ ใหพรอมที่จะเริม่ ทางาน ในระบบ short-term queue สาหรับโพรเซสที่อยูใน ready state (ready queue - ผูแปล) ซึ่งการ ตัดสินใจอาจจะใชวิธีเวียนกันไป (round-robin) หรือมีขั้นตอนวิธีเฉพาะ (ดูรายละเอียดจากวิชา ระบบปฏิบัติการ) I/O queue จะมีคิวสาหรับอุปกรณ I/O แยกเปนรายอุปกรณ ซึ่งอาจ กาลังมีหลายโพรเซส กาลังรอใชอุปกรณI/O เดียวกัน ดังน้นกั ารบริการต องจัดเปนลาดับกันไป Long-term Short-term queue queue Admit End Processor I/O 1 Occurs I/O 1 Queue I/O 2 Occurs I/O 2 Queue I/O n Occurs I/O n Queue Figure 8.11 Queuing Diagram Representation of Processor Scheduling รูปดานบนอธิบายลักษณะการทางานของโพรเซส โดยเริ่มจากงาน ที่สั่งจากสวนจัดการ batch หรือจากสวนติดตอ กับผูใชสั่งการให เริ่มทางาน งานจะถูกเขาคิวที่ long-term queue เมื่อระบบมี ทรัพยากรพรอมที่จะทางาน จะมี การดึงงานเขามา สรางโพรเซส และจัดสรรทรัพยากรตางๆ ให และนาโพรเซสที่สรางแลวไปวาง ไวใน short-term queue ซีพียูจะสลับการประมวลผลไป มาระหวางโพรเซสผูใชและโพรเซสของระบบปฏิบัติการดงัทไี่ ด อธิบายมากอน หนานี้ โดยเมื่อโพรเซสระบบปฏิบัติการเขาทางาน จะมีการตรวจสอบโพรเซสใน short-term queue วาจะเลือกตัว ใดเขามาทางานตอไป โพรเซสที่กาลังทางานอยู อาจถูกสั่งใหหยุดการทางานเปนการชั่วคราว (suspend) จากหลายสาเหตุ (ดังกลาวกอนหนานี)้ ถาเปน การหยุดเพราะ รอบริการอุปกรณ I/O (ผาน system call) โพรเซสก็จะไปรอใน I/O queue ของอุปกรณนั้นๆ แตถาเปนการหยุดเพราะหมดเวลาที่ระบบกาหนดไวโพ รเซสจะถูกนาไปวางไวใน ready queue เพื่อรอประมวลในรอบเวลาถัดๆ ไป สาหรับโพรเซสที่รออุปกรณ I/O และอุปกรณ I/O ทางานเสร็จสิ้น โพรเซสที่ รออยูใน I/O queue จะถูก นาไปวางไวใน short-term queue เพื่อพรอม ประมวลตอไป และในเวลาเดียวกันนี้ ก็อาจจะพิจารณาโพรเซสที่กาลัง ทางานอยูและอาจจะมีการสลับงานในชวงนีไ้ ดเชนกัน การจัดการหนวยความจา พื้นที่หนวยความจาหลักแบงการใชงานออกเปน 2 สวน สวนแรกสาหรับ โพรเซสของระบบปฏิบัติการ และสวนที่สอง สาหรับโพรเซสผูใช ซึ่งจะมี การแบงการใชงานระหวางโพรเซสผูใชตางๆ จึงตองมีการจัดสรรพื้นที่สวน นี้ โดยระบบปฏิบัติการ ในระบบ multiprogramming นั้น การจัดสรรพื้นที่หนวยความจาใหกับ โพรเซสจานวนมากเปนสิ่งสาคัญ ทั้งนี้ถามีโพรเซสรันอยูนอย จะสงผลให ซีพียูอาจจะตองรองานเพราะโพรเซสอาจจะรอ I/O และไมมีโพรเซสใด พรอมประมวลผล แตการเพิ่มจานวนโพรเซสใหมากขึ้น ยอมหมายความวาจะตองการพื้นที่ หนวยความจามากขึ้น แตหนวยความจามีราคาแพง ดังนั้นจึงตองมีวธิ ีที่ ดีกวาในการจัดการ Disk storage Main memory Operating การ swapping เปนการสลับพื้นที่ system หนวยความจาของโพร เซสที่ยังมิ Long-term queue Completed jobs and user sessions ไดใชงานในขณะนั้น กับพื้นที่หนวย ความจาที่โพร เซสจะทางาน ตัวอยางการ swapping กับการ (a) Simple job scheduling Disk storage Main memory จัดการใน long-term queue Intermediate โพรเซสที่อยูใน long-term queue Operating system Long-term queue Completed jobs and user sessions queue โดยทั่วไปจะอยูในหนวย ความจาสารอง (b) Swapping Figure 8.12 The Use of Swapping โพรเซสจะถูกโหลดเขามาในหนวยความจาหลักทีละตัวเมื่อระบบมีหนวย ความจาเพียงพอ เพื่อโพรเซสทางานเสร็จ จะถูกปลดออกจากหนวยความจาหลัก ในกรณีทโี่ พรเซสไมไดอยูใน ready state แทนที่จะปลอยใหโพรเซสใช พื้นที่หนวยความจา จะสลับ แลกเปลี่ยนเอาโพรเซสดังกลาวไปวางไวใน หนวยความจาสารอง และนาเขา intermediate queue อัน เปนคิว สาหรับโพรเซสที่ถูกปลดการใชงานหนวยความจาหลักเปนการชั่วคราว หลังจากนั้น ระบบปฏิบัติการอาจจะดึงโพรเซสอื่นจาก intermediate queue หรือดึงโพรเซสใหมจาก long-term queue เขามาในระบบ หนวยความจาสารองเปนอุปกรณ I/O ซึ่งความเร็วในการทางาน ที่ชากวาหนวยความจาหลักและซีพียูอาจจะสงผล ทางลบตอ ระบบโดยรวมได ตามปกติจะมีการใชฮารดดิสกทั้งนี้เพราะเปนสือ่ หนวยความจาสารองที่มีความเร็วกวา ประเภทอื่น (เชนเทป เปน ตน) การ swapping ในลักษณะเชนนี้สังเกตวาไมจาเปนตองใชระบบ หนวยความสาเสมือนเขามารองรับ แตสาหรับ วิธีการ swapping ที่ตองอาศัยกลไกหนวยความจาเสมือนจะเพิ่มประสิทธิภาพในการ จัดการไดดีกวา และจะกลาว ตอไปภายหลังในบทนี้ Operating System 8M Operating System 8M การจัดสรรพื้นที่หนวยความจาให 8M 2M 4M กับโพรเซสในวิธีที่งายที่สุดคือการ 8M 6M แบงพื้นที่ออกเปนสวนๆ เรียกวา 8M fixed-side partitions 8M 8M การแบงพื้นที่อาจจะแบงเปนสวน 8M เทาๆ กัน หรืออาจจะไมเทากัน 8M 12 M โดยสามารถกาหนดขนาดบล็อก 8M หนวยความจาไวมีขนาดตางๆ 8M 16 M และเมื่อมีการสรางโพรเซส จะ เลือกบล็อกที่มีขนาดใกลเคียงมาก (a) Equal-size partitions (b) Unequal-size partitions ที่สุดเพื่อวางโพรเซสใหมนั้น Figure 8.13 Example of Fixed Partitioning of a 64-Mbyte Memory Operating System 8M Operating System Operating System Operating System อีกวิธีหนึ่งคือการใชวิธีการ Process 1 20M Process 1 20M Process 1 20M กาหนดขนาดเมื่อมีโพรเซส 56M Process 2 14M Process 2 14M ใหมเขามา และระบบ 36M 22M Process 3 18M ปฏิบัติการจัดสรรพื้นทีใ่ ห 4M (a) (b) (c) (d) พอดีกับที่ตองการ Operating System Operating System Operating System Operating System แตการจัดสรรพื้นที่ใหพอดี Process 1 20M Process 1 20M 20M Process 2 14M 6M กับโพรเซสจะเกิดปญหา 14M Process 4 8M 6M Process 4 8M 6M Process 4 8M 6M เมื่อมีโพรเซสเกาออกไป Process 3 18M Process 3 18M Process 3 18M Process 3 18M และโพรเซสใหมเขามา (e) 4M (f) 4M (g) 4M (h) 4M เรื่อยๆ จะเกิดชองวางที่ไม สามารถนาไปใชงานตอได Figure 8.14 The Effect of Dynamic Partitioning การแกปญหานี้ ระบบปฏิบัติการ จะใชวิธีการ compaction เปน ครั้งคราว เพื่อยายพื้นที่หนวยความจาของโพรเซสใหไปเรียงติดกัน เพื่อรวบชองวางนามาใชใหมไดอีกครั้ง (ดูรายละเอียดเนื้อหาสวน นี้จากวิชาระบบปฏิบัติการ) ปญหาของการทา partitioning โพรเซสอาจจะไมไดถูกจัดสรรพื้นที่หนวยความจาในตาแหนงเดิม ทุกครั้งเมื่อนาสลับเขามาทางานใหมในภายหลัง (หลังจากที่ไปพัก ไวใน immediated queue) ดังนั้นจะเกิดปญหาเรื่องที่อยูเลือ่ น ซึ่งทีอ่ ยูนี้ อาจจะเปนที่อยูของขอมูล หรือของคาสั่ง(ฟงกชัน) ที่ กาลังทางานอยู การแกไขปญหาเรื่องเลขทีอ่ ยูนี้ อาจใชวิธีการกาหนดเลขทีอ่ ยูของ หนวยความจาที่โพรเซสมองเห็น ใหแตกตางไป จากที่ระบบอาง ถึงโดยเรียกเลขทีอ่ ยูทโี่ พรเซสมองเห็นเปน logical address ในขณะที่เลขทีอ่ ยูของหนวยความจา ตามความเปนจริงคือ physical address และการแมปพื้นที่จาก logical address ไป ยัง physical address อาศัย คา base address ซึ่งคือคาหนวย ความจาเริ่มตนใน physical address ที่ใน logical addres จะ เห็นมีคาเปน 0 นั่นเอง Paging การจัดสรรหนวยความจาแบบเพจจิง การทาเพจจิง เปนการแบง Main Main memory memory Process A 13 Process A 13 Page 1 of A พื้นที่หนวยความจากาย Page 0 Page 1 Page 2 14 Page 0 Page 1 Page 2 14 Page 2 of A ภาพออกเปนบล็อกยอยๆ Page 3 15 Page 3 15 Page 3 of A ที่เรียกวา frames และ 16 In use 16 In use ภายในโพรเซส จะมองพื้น Free frame list 13 14 17 In use Free frame list 20 17 In use ที่หนวยความจา logical 15 18 20 18 Process A page table 18 Page 0 of A ออกเปนบล็อกยอยๆ ที่มี 18 19 In use 13 14 19 In use ขนาดเทากับเฟรม เรียกวา 20 15 20 pages (a) Before (b) After Figure 8.15 Allocation of Free Frames ระบบปฏิบัติการเก็บลิสตของเฟรมหนวยความจาที่วางไวใน free frame list โพรเซสจะถูกจัดสรรพื้นที่ในหนวยความจาสารองเพื่อเตรียมใชงาน โดย กาหนดไวเปนเพจหลายเพจ ตามขนาดพื้นที่ ที่ใชงาน จากนั้นเมื่อจะทางาน ระบบปฏิบัติการคนหาเฟรมวางจาก free frame list และจัดการจัดสรรพื้นที่เฟรม หนวยความจาใหกับแตละเพจที่เตรียม ไว และโหลดตัวโพรเซสจากหนวยความจาสารองที่เตรียมไวมาใสในเฟรม แตละเฟรม ระบบปฏิบัติการจะมีการสราง page table เพื่อจัดการในเรื่องการแมป หมายเลขเพจของหนวยความจา logical address ไปสูเฟรมหนวย ความจาใน physical address Main Memory โดยอาศัยการจัดการ Page 1 แมปดังกลาว จะเห็นวา 13 of A ไมจาเปนที่ตองจัดสรร page relative address frame relative address Page 2 number within page number within frame of A 14 พื้นที่หนวยความจาตอ Logical Address 1 30 Physical Address 13 30 Page 3 of A 15 เนื่องใหกับโพรเซส 16 18 17 13 14 Page 0 18 of A 15 Process A Page Table Figure 8.16 Logical and Physical Addresses หนวยความจาเสมือน (Virtual memory) Demand Paging เป็นกลไกที่สาคัญมากในการจัดการหน่วยความจา เสมือน โดยอาศัยหลักการที่ว่า โปรแกรมมักจะเข้าถึงข้อมูลในบริเวณที่อยู่ ใกล้เคียงกันซ้าๆ (Principle of Locality) ทาให้เราสามารถโหลดเฉพาะ ส่วนของโปรแกรมที่กาลังใช้งานอยู่เข้ามาในหน่วยความจาหลักได้ ทาให้ ประหยัดพื้นที่หน่วยความจาและเพิ่มประสิทธิภาพในการทางาน Page Fault เป็นเหตุการณ์ที่เกิดขึ้นเมื่อโปรเซสเซอร์พยายามเข้าถึงเพจที่ ไม่ได้ถูกโหลดเข้ามาในหน่วยความจาหลัก ระบบปฏิบัติการจะต้องหยุด การทางานของโปรเซสปัจจุบันชั่วคราว เพื่อไปค้นหาเพจที่ต้องการจาก หน่วยความจาเสริม (ส่วนใหญ่คือฮาร์ดดิสก์) แล้วนามาใส่ในเฟรมที่ว่างใน หน่วยความจาหลัก จากนั้นจึงกลับมาทางานของโปรแสสต่อไป ข้อดีและข้อเสีย ข้อดี: เพิ่มประสิทธิภาพ: ช่วยให้สามารถรันโปรแกรมหลายโปรแกรมพร้อมกันได้ ลดการใช้หน่วยความจา: ไม่จาเป็นต้องโหลดโปรแกรมทั้งหมดเข้ามาในหน่วยความจา ปรับขนาดหน่วยความจาได้ง่าย: สามารถเพิ่มหรือลดขนาดหน่วยความจาเสมือนได้ ตามต้องการ ข้อเสีย: Page Fault Latency: การเกิด Page Fault จะทาให้ระบบช้าลง เพราะต้อง เสียเวลาในการเข้าถึงฮาร์ดดิสก์ Thrashing: หากระบบมีการสลับเพจบ่อยเกินไป อาจทาให้ระบบทางานช้าลงอย่าง มาก Overhead: การจัดการหน่วยความจาเสมือนต้องใช้ทรัพยากรของระบบปฏิบัติการ เทคนิคการจัดการ Page Replacement เมื่อเกิด Page Fault และไม่มีเฟรมว่างให้ใช้ ระบบปฏิบัติการต้องเลือก เพจเก่าออกจากหน่วยความจาหลัก เพื่อนาเพจใหม่เข้ามาแทนที่ เทคนิคที่ นิยมใช้ในการเลือกเพจที่จะทิ้งออกไป ได้แก่ Optimal Page Replacement: เลือกเพจที่นานที่สุดที่จะไม่ได้ถกู ใช้ งานอีก (ในทางทฤษฎีให้ผลลัพธ์ที่ดีที่สุด แต่ในทางปฏิบัติไม่สามารถทาได้) Least Recently Used (LRU): เลือกเพจที่ไม่ได้ถูกใช้งานมานานที่สุด First-In-First-Out (FIFO): เลือกเพจที่เข้ามาในหน่วยความจาก่อน Clock Algorithm: เป็นการปรับปรุงของ FIFO โดยเพิ่มบิตอ้างอิง (reference bit) เพื่อบันทึกว่าเพจนัน้ ถูกใช้งานหรือไม่ Least Frequently Used (LFU): เลือกเพจที่ถูกใช้งานน้อยที่สุด ปัจจัยที่ส่งผลต่อประสิทธิภาพของ Demand Paging ขนาดของเพจ: ขนาดของเพจที่เล็กเกินไปจะทาให้เกิด Page Fault บ่อย ขึ้น แต่ถ้าใหญ่เกินไปจะทาให้สูญเสียพื้นที่หน่วยความจา อัลกอริทึมการจัดสรรหน่วยความจา: อัลกอริทึมที่ใช้ในการจัดสรรเฟรม และเลือกเพจที่จะทิ้งออกไปมีผลต่อประสิทธิภาพ ขนาดของหน่วยความจาหลัก: หน่วยความจาหลักที่มีขนาดใหญ่จะช่วย ลดโอกาสเกิด Page Fault ลักษณะการทางานของโปรแกรม: โปรแกรมที่เข้าถึงหน่วยความจาแบบ สุ่มจะทาให้เกิด Page Fault บ่อยกว่าโปรแกรมที่เข้าถึงหน่วยความจา แบบต่อเนื่อง Page Table และแนวทางการจัดการ Page Table: เป็นโครงสร้างข้อมูลที่ใช้ในการแปลที่อยู่ตรรกะ (logical address) ของโปรแกรมให้เป็นที่อยู่ทางกายภาพ (physical address) ในหน่วยความจาหลัก โครงสร้าง: ประกอบด้วยรายการของเพจ โดยแต่ละรายการจะเก็บข้อมูล เช่น หมายเลขเฟรมที่เพจนั้นถูกเก็บไว้ บิตสาหรับระบุว่าเพจนั้นถูกใช้หรือไม่ และบิต อื่นๆ ที่เกี่ยวข้อง ปัญหา: เมื่อขนาดของหน่วยความจาเสมือนมีขนาดใหญ่มาก การสร้าง Page Table ที่เก็บอยู่ในหน่วยความจาหลักทั้งหมดอาจทาให้สิ้นเปลืองพื้นที่ หน่วยความจา แนวทางแก้ไข:Page Table หลายชั้น: แบ่ง Page Table ออกเป็นหลายชั้น เพือ่ ลดขนาดของตารางที่ต้องเก็บไว้ในหน่วยความจาหลักในแต่ละครั้ง Inverted Page Table: สลับบทบาทของ Page Table โดยแทนที่จะเก็บข้อมูล ของเพจแต่ละหน้าไว้ในตาราง แต่จะเก็บข้อมูลของเฟรมแต่ละเฟรมไว้ในตารางแทน Page Table หลายชั้น ข้อดี: ลดขนาดของ Page Table ที่ต้องเก็บไว้ในหน่วยความจาหลัก เพิ่มความยืดหยุน่ ในการจัดการหน่วยความจา ข้อเสีย: การเข้าถึง Page Table อาจซับซ้อนและใช้เวลานานขึ้น เนื่องจากต้องค้นหาใน หลายระดับ Inverted Page Table ข้อดี: ขนาดของตารางคงที่ ไม่ขึ้นอยู่กับจานวนเพจของโปรแกรม การค้นหาเพจที่ต้องการทาได้รวดเร็ว ข้อเสีย: ต้องใช้หน่วยความจาในการจัดเก็บตารางขนาดใหญ่ การจัดการตารางอาจซับซ้อน ปัจจัยที่ต้องพิจารณาในการเลือกใช้ ขนาดของหน่วยความจา: หากมีหน่วยความจาจากัด ควรเลือกใช้ Page Table หลายชั้น ความถี่ในการเข้าถึงหน่วยความจา: หากต้องการเข้าถึงหน่วยความจา บ่อยๆ ควรเลือกใช้ Inverted Page Table ความซับซ้อนของระบบปฏิบัติการ: ระบบปฏิบัติการที่ซับซ้อนอาจ ต้องการโครงสร้าง Page Table ที่ซับซ้อนตามไปด้วย ปัจจัยอื่นๆ ที่เกี่ยวข้อง TLB (Translation Lookaside Buffer): เป็นแคชที่เก็บข้อมูลการแปล ที่อยู่ เพื่อลดเวลาในการเข้าถึง Page Table Segmentation: เป็นอีกหนึ่งเทคนิคในการจัดการหน่วยความจา โดย แบ่งหน่วยความจาออกเป็นส่วนๆ ที่มีขนาดแตกต่างกัน Paging และ Segmentation รวมกัน: บางระบบปฏิบัติการอาจใช้ทั้ง Paging และ Segmentation เพื่อเพิ่มความยืดหยุ่นในการจัดการ หน่วยความจา การใช้ Page Table ทาให้การเข้าถึงหน่วยความจาช้าลงเนื่องจากต้องมี การเข้าถึง Page Table ก่อน ซึ่งเป็นการเพิ่มขั้นตอนในการเข้าถึงข้อมูล เหตุผลที่การเข้าถึงหน่วยความจาช้าลงเมื่อใช้ Page Table: เพิ่มขั้นตอนการเข้าถึง: แทนที่จะเข้าถึงหน่วยความจาโดยตรง เราต้อง เข้าถึง Page Table ก่อน เพื่อหาว่าข้อมูลที่ต้องการอยู่ที่เฟรมใด เพิ่มจานวนครั้งในการเข้าถึงหน่วยความจา: จากการเข้าถึง หน่วยความจา 1 ครั้ง กลายเป็น 2 ครั้ง (เข้าถึง Page Table และเข้าถึง ข้อมูลจริง) บทบาทของ TLB (Translation Lookaside Buffer) TLB ช่วยแก้ปญั หาเรื่องประสิทธิภาพในการเข้าถึงหน่วยความจาที่ช้าลง โดยทาหน้าที่คล้ายกับแคชสาหรับ Page Table นั่นเอง หลักการทางาน: เมื่อโปรเซสเซอร์ต้องการเข้าถึงข้อมูลใดๆ จะมีการตรวจสอบใน TLB ก่อน ถ้าพบข้อมูลที่ต้องการอยู่ใน TLB ก็จะนามาใช้ในการแปลที่อยู่ได้เลย ทาให้ลด จานวนครั้งในการเข้าถึงหน่วยความจา ถ้าไม่พบใน TLB จึงต้องไปค้นหาใน Page Table ซึ่งจะช้ากว่า TLB Operation Virtual Address Page # Offset TLB TLB miss TLB hit Cache Operation Real Address + Tag Remainder Hit Value Cache Miss Main Memory Page Table Value Figure 8.19 Translation Lookaside Buffer and Cache Operation เปรียบเทียบ TLB กับแคช คุณสมบัติ TLB แคช ข้อมูลการแปลที่อยู่ (Page Table เก็บข้อมูล ข้อมูลที่ถูกเข้าถึงบ่อย Entry) วัตถุประสงค์ เร่งความเร็วในการเข้าถึงหน่วยความจา เร่งความเร็วในการเข้าถึงข้อมูล หลักการทางาน คล้ายกับแคชทั่วไป คล้ายกับแคชทั่วไป สรุปกระบวนการเข้าถึงหน่วยความจา 1. Virtual Address: โปรแกรมสร้าง Virtual Address ขึ้นมาเพื่อเข้าถึงข้อมูล 2. TLB: MMU จะนาหมายเลขเพจจาก Virtual Address ไปค้นหาใน TLB ก่อน 1. พบ: ถ้าพบข้อมูลใน TLB แสดงว่าเพจนั้นถูกโหลดเข้ามาในหน่วยความจาหลักแล้ว จะนาค่า เฟรมมาประกอบกับ offset เพื่อได้ Physical Address 2. ไม่พบ: ถ้าไม่พบใน TLB จะต้องไปค้นหาใน Page Table ต่อไป 3. Page Table: ถ้าไม่พบใน TLB จะไปค้นหาใน Page Table เพื่อหาค่าเฟรม 4. หน่วยความจาแคช: นา Physical Address ที่ได้จาก Page Table ไปค้นหาในหน่วยความจา แคช พบ: ถ้าพบข้อมูลในแคช จะนาข้อมูลมาใช้ได้เลย ไม่พบ: ถ้าไม่พบในแคช จะต้องเข้าถึงหน่วยความจาหลัก เพื่อนาข้อมูลมาใส่ทงั้ ในแคชและใน รีจิสเตอร์ 5. หน่วยความจาหลัก: ถ้าไม่พบข้อมูลในแคช จะต้องเข้าถึงหน่วยความจาหลัก เพื่อนาข้อมูลมาใช้ Segmentation Segmentation เป็นอีกหนึ่งกลไกที่สาคัญในการจัดการหน่วยความจาเสมือน โดย เน้นที่การแบ่งหน่วยความจาออกเป็นส่วนๆ ที่มีความหมายทางตรรกะ ซึ่งแตกต่าง จาก Paging ที่แบ่งหน่วยความจาออกเป็นส่วนๆ ที่มีขนาดเท่ากัน ข้อดีของ Segmentation เมื่อเทียบกับ Paging ความยืดหยุ่น: Segmentation สามารถแบ่งหน่วยความจาออกเป็นส่วนที่มีขนาด แตกต่างกันได้ตามต้องการ ทาให้เหมาะกับโครงสร้างของข้อมูลและโปรแกรม การจัดการที่ง่าย: โปรแกรมเมอร์สามารถจัดการกับหน่วยความจาในระดับของ Segment ได้โดยตรง ทาให้การพัฒนาโปรแกรมง่ายขึ้น การป้องกัน: สามารถกาหนดสิทธิ์การเข้าถึงสาหรับแต่ละ Segment ได้ ทาให้มี ความปลอดภัยสูงขึ้น การแชร์: สามารถแชร์ Segment ระหว่างโปรแกรมต่างๆ ได้ ทาให้ประหยัด หน่วยความจา ข้อจากัดของ Segmentation ความซับซ้อน: การจัดการ Segmentation มีความซับซ้อนมากกว่า Paging เนื่องจากต้องจัดการกับขนาดและโครงสร้างของ Segment ที่ แตกต่างกัน การกระจัดกระจายของ Segment: Segment อาจถูกกระจายไปอยู่ใน หน่วยความจาหลักหลายตาแหน่ง ทาให้การเข้าถึงข้อมูลช้าลง การจัดสรรหน่วยความจา: การจัดสรรหน่วยความจาให้กับ Segment อาจเป็นเรื่องที่ซับซ้อน โดยเฉพาะอย่างยิ่งเมื่อมีการเพิ่มหรือลดขนาดของ Segment การเปรียบเทียบ Segmentation กับ Paging คุณสมบัติ Segmentation Paging ขนาดของส่วน แตกต่างกัน เท่ากัน ความหมายของ มีความหมายทางตรรกะ (เช่น โค้ด, ไม่มีความหมายทางตรรกะ ส่วน ข้อมูล, สแต็ก) การจัดการ ซับซ้อนกว่า ง่ายกว่า ความยืดหยุ่น สูง ต่า ซีพียูตระกูล i3, i5 และ i7 ของ Intel นั้นใช้กลไกการจัดการหน่วยความจาทีซ่ ับซ้อนและมี ประสิทธิภาพสูง เพื่อรองรับการทางานของโปรแกรมที่หลากหลายและมีความต้องการ ทรัพยากรที่สูงขึ้นเรื่อยๆ หลักการพื้นฐาน : หน่วยความจาแคช (Cache), TLB (Translation Lookaside Buffer): Virtual Memory: MMU (Memory Management Unit): กลไกที่สาคัญ Out-of-order execution: ซีพียูสามารถประมวลผลคาสั่งได้นอกลาดับที่เขียนไว้ใน โปรแกรม เพื่อเพิ่มประสิทธิภาพ Simultaneous multithreading (SMT): ซีพียูสามารถประมวลผลคาสัง่ จากหลายเธรด พร้อมกันในหนึ่งคอร์ Hyper-Threading: เทคโนโลยีที่ทาให้หนึ่งคอร์สามารถทางานเหมือนเป็นสองคอร์ได้ Advanced Vector Extensions (AVX): ชุดคาสั่งที่ใช้ในการประมวลผลข้อมูลแบบ เวกเตอร์ ทาให้การคานวณทางคณิตศาสตร์เร็วขึ้น Out-of-order execution Out-of-order execution เป็นเทคนิคที่ใช้ในการประมวลผลคาสั่งของซีพียู โดยไม่ จาเป็นต้องประมวลผลคาสั่งตามลาดับที่เขียนไว้ในโปรแกรม ทาให้สามารถเพิ่ม ประสิทธิภาพในการประมวลผลได้ หลักการทางาน: 1. คาสั่งถูกนามาจากหน่วยความจา: คาสั่งจะถูกนามาจากหน่วยความจาและเก็บไว้ใน หน่วยความจาคาสั่ง (Instruction Fetch Stage) 2. คาสั่งถูกถอดรหัส: คาสั่งจะถูกถอดรหัสเพือ่ แยกแยะออกเป็นส่วนต่างๆ เช่น โอเปแรนด์ และรหัสคาสั่ง (Decode Stage) 3. คาสั่งถูกวางแผน: คาสั่งจะถูกวางแผนเพื่อกาหนดลาดับการประมวลผลที่เหมาะสม โดย พิจารณาจากความพร้อมของโอเปแรนด์และทรัพยากรของซีพียู (Dispatch Stage) 4. คาสั่งถูกประมวลผล: คาสั่งจะถูกประมวลผลโดยหน่วยประมวลผล (Execution Stage) 5. ผลลัพธ์ถกู เขียนกลับหน่วยความจา: ผลลัพธ์ของการประมวลผลจะถูกเขียนกลับไปยัง หน่วยความจา (Writeback Stage) ความแตกต่างจาก In-order execution: In-order execution: คาสั่งจะถูกประมวลผลตามลาดับที่เขียนไว้ในโปรแกรม Out-of-order execution: คาสั่งสามารถถูกประมวลผลนอกลาดับได้ หากคาสั่งนั้นไม่ขึ้นอยู่กับ ผลลัพธ์ของคาสั่งก่อนหน้า ข้อดีของ Out-of-order execution: เพิ่มประสิทธิภาพ: สามารถประมวลผลคาสั่งได้เร็วขึ้น โดยเฉพาะในกรณีทมี่ ีคาสั่งทีไ่ ม่ขึ้นอยู่กับกัน ลดการรอคอย: สามารถลดการรอคอยทรัพยากรของซีพยี ูได้ ปรับตัวให้เหมาะสมกับลักษณะของโปรแกรม: สามารถปรับตัวให้เหมาะสมกับลักษณะของโปรแกรม ที่แตกต่างกัน ข้อเสียของ Out-of-order execution: ความซับซ้อน: การออกแบบและการใช้งาน Out-of-order execution มีความซับซ้อนมากขึ้น การใช้ทรัพยากร: การใช้ทรัพยากรของซีพียูอาจเพิ่มขึ้น ความเสี่ยงในการเกิด Deadlock: ในบางกรณี อาจเกิด Deadlock ได้หากการวางแผนคาสั่งไม่ ถูกต้อง Simultaneous multithreading (SMT) Simultaneous Multithreading (SMT): หลักการทางานที่ทาให้ซีพียูทางานได้หลายอย่างพร้อม กัน SMT หรือ Simultaneous Multithreading เป็นเทคโนโลยีที่ทาให้ซีพียูสามารถประมวลผล คาสั่งจา

Use Quizgecko on...
Browser
Browser