ขบวนการอินพุต/เอาต์พุต


การจัดการอุปกรณ์อินพุตเอาต์พุตและสื่อจัดเก็บข้อมูล
การทำงานของคอมพิวเตอร์ไม่ใช่เป็นการทำงานเฉพาะส่วน แต่จะต้องมีการติดต่อกับโลกภายนอก ซึ่งก็คืออุปกรณ์รอบข้างต่างๆ เช่น หน่วยความจำ และอุปกรณ์ที่ต่อพ่วงกับคอมพิวเตอร์ที่เป็นได้ทั้งอินพุต และเอาต์พุต เพื่อให้การติดต่อกับอุปกรณ์เหล่านี้สามารถดำเนินการร่วมกันได้อย่างเหมาะสม
โดยทั่วไปประเภทของอุปกรณ์สามารถแบ่งออกเป็น 2 ประเภท คือ
  • อุปกรณ์อินพุต/เอาต์พุต
  • สื่อจัดเก็บข้อมูล
                     อุปกรณ์อินพุต/เอาต์พุต
อุปกรณ์อินพุต คือ อุปกรณ์ที่ทำให้คอมพิวเตอร์สามารถรับรู้ข้อมูลต่าง ๆ จากภายนอกได้ เช่น คีย์บอร์ด เมาส์ สแกนเนอร์ ไมโครโฟน
อุปกรณ์เอาต์พุต คือ อุปกรณ์ที่คอมพิวเตอร์ส่งผลและแสดงผลข้อมูลเหล่านั้นออกมา เช่น จอภาพ เครื่องพิมพ์ เสียงจากลำโพง

                               สื่อจัดเก็บข้อมูล
สื่อจัดเก็บข้อมูลเป็นอุปกรณ์ที่คอมพิวเตอร์ใช้ในการเก็บข้อมูลต่างๆซึ่งสามารถทำการเรียกข้อมูลขึ้นมาใช้งานได้ภายหลัง อุปกรณ์ดังกล่าวสามารถแบ่งได้ออกเป็น 2 ประเภท คือ อุปกรณ์เข้าถึงแบบลำดับ และอุปกรณ์ที่สามารถเข้าถึงได้โดยตรง

                          หน้าที่ของโอเอสในการจัดการอุปกรณ์
หน้าที่พื้นฐานของโอเอสในการจัดการดูแลอุปกรณ์ต่าง ๆ ในระบบคอมพิวเตอร์เพื่อจัดสรรความต้องการแก่ผู้ใช้ คือ

              ติดตามสถานะของอุปกรณ์ทุกชิ้นเพื่อเก็บข้อมูลที่สำคัญต่าง ๆ ของอุปกรณ์นั้น โดย UCB จะคล้ายกับ PCB ของการโปรเซส ซึ่งถือว่าเป็นโครงสร้างข้อมูลชนิดหนึ่ง

                     กำหนดอุปกรณ์ให้ใช้งานเป็นการกำหนดว่า อุปกรณ์ชิ้นใดใครเป็นผู้ใช้งาน และใช้งานเป็นจำนวนเวลาเท่าใดมีมาตรการในการกำหนดเพื่อให้การใช้งานอุปกรณ์ที่มีอยู่จำกัดสามารถใช้งานได้เกิดประโยชน์ สูงสุด มีเทคนิคในการจัดการ ดังนี้
  • การยกให้
    เป็นการกำหนดให้อุปกรณ์ถูกใช้ได้โดยโปรเซสเพียงโปรเซสเดียว โปรเซสอื่น ๆ จะเข้ามาขอใช้บริการใด ๆ ไม่ได้
  • การแบ่งปัน
    เป็นการกำหนดให้อุปกรณ์นั้น ๆ สามารถบริการให้กับโปรเซสหลาย ๆ โปรเซสได้
  • การจำลอง
    เป็นการจำลองอุปกรณ์อุปกรณ์ใด ๆ ให้ดูเหมือนเป็นอุปกรณ์นั้นจริง เช่น การจำลองพื้นที่บนดิสก์เป็นหน่วยความจำเพื่อหลอกให้ซีพียูว่ามีหน่วยความจำขนาดใหญ่พอที่จะประมวลผลได้
                  การจัดสรรอุปกรณ์คือการจัดเก็บอุปกรณ์ชิ้นนั้น ๆ ให้กับโปรเซสที่ร้องขอบริการ
                           การเรียกคืนหลังจากที่โปรเซสครองอุปกรณ์นั้น ๆ เมื่อหมดช่วงเวลาควอนตัมจนจบแล้ว โอเอสจะต้องจัดการ Deallocate เพื่อนำอุปกรณ์ที่ถูกครอบครองจากโปรเซสนั้นคืนให้แก่ระบบ
                                ดีไวซ์ไดร์ฟเวอร์
อุปกรณ์ภายนอกที่ติดต่อกับคอมพิวเตอร์ในปัจจุบันมีความหลากหลายและมีการทำงานที่แตกต่างกัน ดังนั้นโอเอสก็จะต้องมีความรู้ความสามารถในการควบคุม และจัดการกับอุปกรณ์เหล่านั้นได้

ดังนั้นโอเอสกับอุปกรณ์ฮาร์ดแวร์จะมีกระบวนการเชื่อมต่อกัน เช่น Applocation Program มีการเรียกใช้งานเครื่องพิมพ์ โดยการติดต่อนี้จะติดต่อด้วยการขอใช้บริการผ่านทาง System Call รูทีนต่างๆ ใน Kernel I/O Subsystem เพื่อติดต่อใช้งานกับอุปกรณ์เหล่านั้น

ดีไวซ์ไดร์เวอร์หรือตัวขับอุปกรณ์เป็นซอฟต์แวร์ชนิดหนึ่งที่ทำหน้าที่ จัดการกับอุปการณ์ฮาร์ดแวร์โดยผู้ออกแบบโอเอสนี้ได้ทำการคิดแยกเอาส่วนควบคุมอุปกรณ์ทั้งหลายออกจากตัวโอเอส โปรแกรมที่แยกออกมานี้มีหน้าที่ในการควบคุมติดต่ออุปกรณ์ของมันเองซึ่งอุปกรณ์แต่ละตัวนั้นก็ จะมีการควบคุมการติดต่อที่แตกต่างกัน
                                     I/O Hardware
โดยพื้นฐานแล้วโอเอสสามารถติดต่อสื่อสารกับฮาร์ดแวร์ตามช่องทางต่างๆ ดังนี้
  • 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 ได้