

การจัดการอุปกรณ์อินพุตเอาต์พุตและสื่อจัดเก็บข้อมูล
โดยทั่วไปประเภทของอุปกรณ์สามารถแบ่งออกเป็น 2 ประเภท คือ
- อุปกรณ์อินพุต/เอาต์พุต
- สื่อจัดเก็บข้อมูล
อุปกรณ์อินพุต คือ อุปกรณ์ที่ทำให้คอมพิวเตอร์สามารถรับรู้ข้อมูลต่าง ๆ จากภายนอกได้ เช่น คีย์บอร์ด เมาส์ สแกนเนอร์ ไมโครโฟน
อุปกรณ์เอาต์พุต คือ อุปกรณ์ที่คอมพิวเตอร์ส่งผลและแสดงผลข้อมูลเหล่านั้นออกมา เช่น จอภาพ เครื่องพิมพ์ เสียงจากลำโพง
สื่อจัดเก็บข้อมูล
สื่อจัดเก็บข้อมูลเป็นอุปกรณ์ที่คอมพิวเตอร์ใช้ในการเก็บข้อมูลต่างๆซึ่งสามารถทำการเรียกข้อมูลขึ้นมาใช้งานได้ภายหลัง อุปกรณ์ดังกล่าวสามารถแบ่งได้ออกเป็น 2 ประเภท คือ อุปกรณ์เข้าถึงแบบลำดับ และอุปกรณ์ที่สามารถเข้าถึงได้โดยตรง
หน้าที่ของโอเอสในการจัดการอุปกรณ์
หน้าที่พื้นฐานของโอเอสในการจัดการดูแลอุปกรณ์ต่าง ๆ ในระบบคอมพิวเตอร์เพื่อจัดสรรความต้องการแก่ผู้ใช้ คือ
ติดตามสถานะของอุปกรณ์ทุกชิ้นเพื่อเก็บข้อมูลที่สำคัญต่าง ๆ ของอุปกรณ์นั้น โดย UCB จะคล้ายกับ PCB ของการโปรเซส ซึ่งถือว่าเป็นโครงสร้างข้อมูลชนิดหนึ่ง
กำหนดอุปกรณ์ให้ใช้งานเป็นการกำหนดว่า อุปกรณ์ชิ้นใดใครเป็นผู้ใช้งาน และใช้งานเป็นจำนวนเวลาเท่าใดมีมาตรการในการกำหนดเพื่อให้การใช้งานอุปกรณ์ที่มีอยู่จำกัดสามารถใช้งานได้เกิดประโยชน์ สูงสุด มีเทคนิคในการจัดการ ดังนี้การจัดสรรอุปกรณ์คือการจัดเก็บอุปกรณ์ชิ้นนั้น ๆ ให้กับโปรเซสที่ร้องขอบริการ
- การยกให้
เป็นการกำหนดให้อุปกรณ์ถูกใช้ได้โดยโปรเซสเพียงโปรเซสเดียว โปรเซสอื่น ๆ จะเข้ามาขอใช้บริการใด ๆ ไม่ได้- การแบ่งปัน
เป็นการกำหนดให้อุปกรณ์นั้น ๆ สามารถบริการให้กับโปรเซสหลาย ๆ โปรเซสได้- การจำลอง
เป็นการจำลองอุปกรณ์อุปกรณ์ใด ๆ ให้ดูเหมือนเป็นอุปกรณ์นั้นจริง เช่น การจำลองพื้นที่บนดิสก์เป็นหน่วยความจำเพื่อหลอกให้ซีพียูว่ามีหน่วยความจำขนาดใหญ่พอที่จะประมวลผลได้
การเรียกคืนหลังจากที่โปรเซสครองอุปกรณ์นั้น ๆ เมื่อหมดช่วงเวลาควอนตัมจนจบแล้ว โอเอสจะต้องจัดการ Deallocate เพื่อนำอุปกรณ์ที่ถูกครอบครองจากโปรเซสนั้นคืนให้แก่ระบบ
ดีไวซ์ไดร์ฟเวอร์
I/O Hardwareอุปกรณ์ภายนอกที่ติดต่อกับคอมพิวเตอร์ในปัจจุบันมีความหลากหลายและมีการทำงานที่แตกต่างกัน ดังนั้นโอเอสก็จะต้องมีความรู้ความสามารถในการควบคุม และจัดการกับอุปกรณ์เหล่านั้นได้
ดังนั้นโอเอสกับอุปกรณ์ฮาร์ดแวร์จะมีกระบวนการเชื่อมต่อกัน เช่น Applocation Program มีการเรียกใช้งานเครื่องพิมพ์ โดยการติดต่อนี้จะติดต่อด้วยการขอใช้บริการผ่านทาง System Call รูทีนต่างๆ ใน Kernel I/O Subsystem เพื่อติดต่อใช้งานกับอุปกรณ์เหล่านั้น
ดีไวซ์ไดร์เวอร์หรือตัวขับอุปกรณ์เป็นซอฟต์แวร์ชนิดหนึ่งที่ทำหน้าที่ จัดการกับอุปการณ์ฮาร์ดแวร์โดยผู้ออกแบบโอเอสนี้ได้ทำการคิดแยกเอาส่วนควบคุมอุปกรณ์ทั้งหลายออกจากตัวโอเอส โปรแกรมที่แยกออกมานี้มีหน้าที่ในการควบคุมติดต่ออุปกรณ์ของมันเองซึ่งอุปกรณ์แต่ละตัวนั้นก็ จะมีการควบคุมการติดต่อที่แตกต่างกัน
โดยพื้นฐานแล้วโอเอสสามารถติดต่อสื่อสารกับฮาร์ดแวร์ตามช่องทางต่างๆ ดังนี้
- Port เช่น Serial Port, Parallel Port
- Bus เป็น Share Medium ที่ให้บริการส่งผ่านข้อมูลชนิดต่างๆ ร่วมกัน
- Controller เป็นอุปกรณ์ที่มีโปรเซสเซอร์ในตัว ทำให้ลดภาวะการทำงานของซีพียู โดยซีพียูก็ไม่ต้องทำงาน
ในรายละเอียด เพียงแต่สั่งให้ Controller นั้นทำงานแทน
ในการอ้างอิง I/O Address เหล่านี้ ได้ 2 วิธีด้วยกัน คือ
Direct I/O Instructionคือการติดต่อด้วยการใช้คำสั่ง (Command) ที่แตกต่างกัน
Memory-mapped I/Oคือ หมายเลข Address จะแยกแบ่งส่วนการใช้งาน
การติดต่อระหว่างอุปกรณ์และซีพียู
การจัดตารางเวลามีงานต่าง ๆ มากมาย ที่ต้องการเข้าไปใช้งานหรือครอบครองซีพียู เพื่อทำการโปรเซสงานของตน แต่การทำงานของซีพียูนั้น จะสามารถทำงานได้เพียงโปรเซสเดียงเท่านั้น ในกรณีที่ซีพียูโปรเซสงานใดงานหนึ่งอยู่ หากโปรเซสนั้นมีการ Call I/O เพื่อใช้งาน จึงเกิดการติดต่อระหว่างซีพียูกับอุปกรณ์ การติดต่ออุปกรณ์และซีพียูนั้นมีหลายวิธี คือ การพอลลิ่ง การอินเตอร์รัพต์ และ Direct Memory Access (DMA)การพอลลิ่ง
คือทุกๆช่วงเวลาหนึ่งในซีพียูจะต้องหยุดการทำงานชั่วขณะหนึ่งเพื่อตรวจเช็คแต่ละแชนแนลของอุปกรณ์ดูว่ามีอุปกรณ์ใดต้อง การส่งข้อมูลมายังซีพียูบ้างการอินเตอร์รัพต์
เป็นการลดข้อเสียของการทำงานแบบพอลลิ่ง โดยในกระบวนการอินเตอร์รัพต์นั้น อุปกรณ์รอบข้างทุกชิ้นจะต้องปฎิบัติงานอยู่เสมอเพื่อส่งสัญญาณไปให้แก่ซีพียูDirect Memory Access (DMA)
เป็นคอนโทรลเลอร์ชนิดหนึ่งที่ถูกสร้างเพื่อทำหน้าที่ในการอ่าน/บันทึกข้อมูล เหล่านั้น โดยไม่ต้องมีการตีความหมายใด ๆ ทั้งสิ้น DMA ถูกสร้างขึ้นมาเพื่อใช้ในการส่งถ่ายข้อมูล ซึ่งหากในระบบการทำงานไม่มี DMAแล้ว ซีพียูจะต้องใช้คำสั่งในการ Read/Write อยู่เสมอ ๆ เมื่อมีการร้องขอการใช้งาน เป็นเหตุให้ต้องเสียเวลากับการ Transfer ข้อมูลเหล่านั้นมาก
คือตารางการจัดลำดับเรื่องของเวลา ซึ่งระบบปฎิบัติการมีการจัดตารางเวลาประเภทด้วยกัน
บัฟเฟอร์ริ่ง
จะนำข้อมูลจัดเก็บไว้ในบัฟเฟอร์และรวบรวมส่งต่อให้กับ I/O โดยมีการรวบรวมข้อมูลเป็นแฟ็กเก็ตแล้วจึงทำการส่ง
แคชชิ่ง
มีหลักการใช้หน่วยความจำ 2 ระดับ คือ หน่วยความจำขนาดใหญ่กับหน่วยความจำขนาดเล็ก โดยนำข้อมูลที่ต้องการใช้งานเก็บหน่วยความจำที่เร็ว ซึ่ง Caching Controller จะต้องมีการเรียนรู้ว่าเมื่อไรควรเตรียมข้อมูลที่คาดเดาไว้ว่าผู้ใช้ต้องใช้งานในลำดับต่อไปมาไว้ในหน่วยความจำส่วนนี้ ทำให้การอ่านข้อมูลมีความรวดเร็วยิ่งขึ้น
สพูลลิ่ง
ในขณะที่ I/O มีการส่งเอาต์พุตหลาย ๆ เอาต์พุตไปยัง I/O ตัวเดียวกัน ซึ่งในขณะเดียวกัน I/O สามารถทำงานได้เพียงงานเดียวเท่านั้น ถ้าไม่มีการจัดการ Spool ก็จะเกิดการบล็อกขึ้น ทำให้ต้องมีการรอจนกว่าจะจัดการกับ I/O จนเสร็จ เทคนิค Spool จะมีตัวจัดการที่เรียกวา Spool Manager ที่จัดการลำดับคิวข้อมูลที่เข้ามาเก็บไว้ใน Spool และทำการทยอยข้อมูลในคิวส่งไปยังเอาต์พุต
การจับจองอุปกรณ์
เป็นลักษณะของการจองที่มีการจองพื้นที่ในหน่วยความจำให้กับโปรเซสใดโปรเซสหนึ่ง โดยโปรเซสอื่นไม่สามารถเข้ามาเรียกใช้งานได้ แต่การทำงานในลักษณะนี้ก็มีข้อเสียคือหากมีโปรเซสอื่น ๆ ที่ต้องการทรัพยากรของโปรเซสที่ดำเนินอยู่ แต่ไม่สามารถให้ได้หากเกิดการทำงานเป็นทอด ๆ ขึ้นมา สามารถทำให้เกิด Deadlock ได้
