บทที่2
ระบบปฏิบัติการของระบบคอมพิวเตอร์
(computer-system operation)
ระบบคอมพิวเตอร์ขนาดใหญ่ปัจจุบันประกอบด้วย ซีพียู และกลุ่มของตัวควบคุมอุปกรณ์ (device controller) ซึ่งเชื่อมต่อเพื่อเข้าถึงหน่วยความจำผ่านทางบัสระบบ (system bus)
อุปกรณ์แต่ละชนิดจะมีตัวควบคุมอุปกรณ์เฉพาะแยกจากกัน โดยมี local buffer
ซีพียูและตัวควบคุมอุปกรณ์ทั้งหมดสามารถทำงานไปพร้อมๆ กันได้
ซีพียูจะย้ายข้อมูลเข้า/ออกระหว่างหน่วยความจำหลักกับ local buffer
ตัวควบคุมอุปกรณ์จะบอกซีพียูว่าอุปกรณ์ทำงานเสร็จแล้วหรือยังโดยวิธีขัดจังหวะ (interrupt)
เพื่อประกันว่าลำดับการเข้าถึงหน่วยความจำนี้เป็นไปอย่างถูกต้อง จะเป็นหน้าที่ของตัวควบคุมหน่วยความจำที่จะเป็นผู้คอยจัดจังหวะ
Computer-System Operation (cont.)
เมื่อเปิดเครื่องหรือรีบูต (reboot) จะมีโปรแกรมเล็กๆ ถูกโหลดเข้าหน่วยความจำหลักเพื่อใช้ในการเริ่มระบบ เรียกว่า โปรแกรมปลุกเครื่อง หรือโปรแกรมบูต (bootstrap program)
เมื่อ os ถูกบรรจุ (load) เข้ามาไว้ในหน่วยความจำแล้วจึงเริ่มกระบวนการเริ่มต้น (init process) หรือ UPP (Universal Progenitor Process) และพร้อมที่ทำงานโดยการรอคอยเหตุการณ์บางอย่าง
เหตุการณ์จะเกิดขึ้นโดยอาศัยสัญญาณการขัดจังหวะ (interrupt) ซึ่งถูกส่งมาโดยฮาร์ดแวร์หรือซอฟต์แวร์
หน้าที่ของการขัดจังหวะ (Common Functions of Interrupts)
ฮาร์ดแวร์อินเทอร์รัพท์จะถูกส่งไปยังซีพียูผ่านทางบัสระบบ
ซอฟต์แวร์อินเทอร์รัพท์จะอาศัยคำสั่งปฏิบัติการพิเศษที่เรียกว่า การเรียกระบบ (system call หรือ monitor call)
การขัดจังหวะแต่ละชนิดจะได้รับการตอบสนองด้วย service routine ที่เหมาะสมกับการขัดจังหวะนั้นๆ
เมื่อซีพียูถูกขัดจังหวะมันจะหยุดทำงานชั่วคราวเพื่อให้อุปกรณ์ทำการถ่ายข้อมูลจนแล้วเสร็จ เพื่อป้องการสูญเสียการขัดจังหวะ (lost interrupt) จากนั้น ซีพียูจึงจะกลับไปทำงานที่ค้างอยู่ต่อไป
OS จะรักษาสถานะของซีพียูปัจจุบันไว้โดยเก็บเรจิสเตอร์และตัวนับโปรแกรมขณะนั้น (program counter)
Common Functions of Interrupts (cont.)
การขัดจังหวะจะส่งมอบการควบคุมไปยัง รูทีนบริการขัดจังหวะ (interrupt service routine) ผ่านทาง อินเทอร์รัพต์เว็กเตอร์ (interrupt vector) ซึ่งบรรจุที่อยู่ของรูทีนบริการทั้งหมดไว้
สถาปัตยกรรมการขัดจังหวะจะต้องจัดเก็บที่อยู่ของคำสั่งที่ถูกขัดจังหวะ
แทร็บ (Trap) คือการขัดจังหวะโดยซอฟต์แวร์ที่อาจเกิดโดยข้อผิดพลาด หรือผู้ใช้ร้องขอ
ในฐานะนี้ OS จึงเป็น interrupt driven.
I/O Structure
หลังจาก i/o เริ่มต้น, การควบคุมจะถูกส่งกลับไปยังโปรแกรมผู้ใช้เมื่อปฏิบัติการของ i/o สิ้นเสร็จลง (I/O completion) เท่านั้น
รอคำสั่งว่างของซีพียู (CPU idle) จนกว่าจะถึงการขัดจังหวะถัดไป
รอลูป (Wait loop) เพื่อใช้หน่วยความจำ
อย่างน้อยการร้องขอ i/o หนึ่งครั้งเสร็จสิ้นลงและไม่ต้องทำงานต่อไป
Synchronous Asynchronous
Device-Status Table
โครงสร้าง DMA(DMA Structure)
DMA (Direct Memory Access) จะใช้ในอุปกรณ์ไอ/โอ ที่มีความเร็วสูง เช่น เทป ดิสก์ เครือข่ายสื่อสาร เป็นต้น
ถ้าโปรแกรมผู้ใช้หรือ OS ต้องการรับ-ส่งข้อมูล,
OS จะหา บัฟเฟอร์ที่ต้องการ (บัฟเฟอร์ว่าง สำหรับนำเข้า, บัฟเฟอร์เต็มสำหรับส่งออก) จากอาณาบริเวณของบัฟเฟอร์
จากนั้น ตัวขับอุปกรณ์จะเซ็ตค่าเรจิสเตอร์ของตัวควบคุม DMA เพื่อระบุต้นทาง ปลายทาง และขนาดที่จะส่ง
หลังจากนั้น DMA จะควบคุมและดำเนินการส่งข้อมูลระหว่าง i/o กับหน่วยความจำ
ในระหว่างนั้น ซีพียูก็เป็นอิสระที่ทำงานอย่างอื่นได้ จนกระทั่งการส่งข้อมูลเสร็จสิ้น DMA จะส่งสัญญาณขัดจังหวะซีพียู อีกครั้งหนึ่ง
DMA Structure
MAR (memory address register)
MDR (memory data register)
CU (Control Unit)
PC (Program Counter)
IR (Instruction Register)
โครงสร้างของหน่วยเก็บ (Storage Structure)
โดยหลักการแล้ว เราต้องการฝังโปรแกรมและข้อมูลไว้ภายในหน่วยความจำหลักอย่างถาวรตลอดเวลา แต่เป็นไปไม่ได้ด้วยสาเหตุสำคัญ 2 ประการ
หน่วยความจำหลักมีขนาดน้อยเกินกว่าที่จะสามารถเก็บโปรแกรมและข้อมูลที่ต้องการไว้ทั้งหมดได้
หน่วยความจำหลักเป็นอุปกรณ์ประเภทหน่วยเก็บลบเลือนได้ (volatile storage)
จึงจำเป็นต้องมีหน่วยเก็บรอง (secondary storage) ที่สามารถเก็บโปรแกรมและข้อมูลปริมาณมากไว้ได้อย่างถาวร
ปัจจัยสำคัญที่ควรพิจารณาได้แก่
ความเร็ว
ต้นทุน
ขนาด
การลบเลือนได้
Moving-Head Disk Mechanism
การป้องกันหน่วยความจำ(Memory Protection)
ต้องปกป้อง interrupt vector (ตารางที่เก็บตัวชี้ไปยัง interrupt service) ไม่ให้ถูกแก้ไขค่าได้โดยโปรแกรมผู้ใช้
และปกป้องรูทีนบริการขัดจังหวะ (interrupt service routine) ในระบบปฏิบัติการไม่ให้ถูกแก้ไขได้
จุดมุ่งหมายก็เพื่อป้องกันการรุกล้ำระบบปฏิบัติการจากโปรแกรมผู้ใช้ และป้องกันโปรแกรมผู้ใช้จากการรุกล้ำของผู้ใช้คนอื่นทั้งโดยเจตนาและไม่เจตนา
การป้องกันซีพียู (CPU Protection)
โดยที่เราจะต้องปกป้องโปรแกรมผู้ใช้ไม่ให้ติดบ่วงอยู่ในวังวนไม่รู้จบ (infinite loop) และไม่ยอมส่งคืนการควบคุมให้แก่ระบบปฏิบัติการ วิธีการนี้เราจะใช้ timer ซึ่งเป็นฮาร์ดแวร์ เข้ามาช่วย
timer สามารถตั้งค่าการขัดจังหวะคอมพิวเตอร์ตามเวลาที่กำหนด ซึ่งอาจเป็นเวลาคงที่หรือแปรเปลี่ยนก็ได้
โดยจะถูกใช้อัตราที่คงที่ของนาฬิกาและตัวนับ (counter) ซึ่งระบบปฏิบัติการจะเป็นผู้ตั้งค่าตัวนับ
โครงสร้างระบบ(system structure)
โครงสร้างอย่างง่าย (simple structure)
โครงสร้างแบบลำดับชั้น (layered approach)
โครงสร้างอย่างง่าย(simple structure)
โปรแกรมผู้ใช้จึงสามารถเข้าถึง เรียกใช้ และครอบครองทรัพยากรระบบได้อย่างอิสระ และโดยสมบูรณ์ โดยไม่จำเป็นต้องร้องขอผ่าน monitor mode
โครงสร้างแบบลำดับชั้นของ MS-DOS
โครงสร้างระบบยูนิกซ์
โครงสร้างแบบลำดับชั้น (layered approach)
การออกแบบในลักษณะลำดับชั้นเป็นส่วนๆหรือ modularity
ระดับล่างเป็นระดับที่ใกล้ชิดกับระดับของฮาร์ดแวร์ (layer 0) ขึ้นไปจนถึงระดับบนสุด (lever N) เป็นระดับของส่วนติดต่อผู้ใช้ (user interface)
คุณลักษณะที่ดีของระบบแบบลำดับชั้น (layered approach)
ความเป็นหน่วย (modularity) ที่อิสระต่อกัน
แต่ละหน่วยมีหน้าที่เฉพาะตามลำดับชั้น
ชั้นล่างจะจัดหาบริการที่เหมาะสมให้ชั้นบน
การสร้าง แก้ไข ตรวจหาความผิดพลาดเป็นเรื่องไม่ยาก
สามารถควบคุมและจำกัดความผิดพลาดในแต่ละระดับ
ยุ่งยากมากในการออกแบบหน้าที่ให้สมบูรณ์ได้ในแต่ละระดับ
ไม่มีความคิดเห็น:
แสดงความคิดเห็น