บทที่7
การจัดการอุปกรณ์
การจัดการอุปกรณ์
Device Management
จัดทำโดย นาย สราวุฒิ เช้ือกสิกรรม รหัสนักศึกษา 6031280064
การจัดการอุปกรณ์อินพุต/เอาท์พุต
I/O Devices manager
I/O Devices manager
การจัดการอุปกรณ์ต่าง
ๆ ที่ติดต่อและเกี่ยวข้องกับคอมพิวเตอร์เป็นหน้าที่ของ OS
อุปกรณ์อินพุต/เอาท์พุต
(I/O Devices) แบ่งออกเป็น
3 ประเภท
บล็อกดีไวซ์ (Block devices)
คาร์เรกเตอร์ดีไวซ์
(Character device)
อุปกรณ์พิเศษ
1.บล็อกดีไวซ์
(Block
devices)
หมายถึงอุปกรณ์ที่สามารถจัดเก็บข้อมูลได้โดยทำการเก็บเป็นบล็อก
เช่น Floopy disk, Harddisk, Tape
ขนาดของบล็อกมีตั้งแต่
512-32,768
ไบต์
สามารถอ่าน/เขียนข้อมูลลงในแต่ละบล็อกได้โดยอิสระ
แบ่งเป็น
2 แบบ
อุปกรณ์ที่มีการเข้าถึงข้อมูลโดยตรง (Direct access storage device) ได้แก่
ดิสก์ประเภทต่าง ๆ
อุปกรณ์ที่มีการเข้าถึงข้อมูลแบบเรียงลำดับ
(Serial access storage device)
ได้แก่ เทป
2.คาร์เรกเตอร์ดีไวซ์
(Character
devices)
หมายถึงอุปกรณ์ที่รับและส่งข้อมูลเป็นสาย
โดยมีบัฟเฟอร์ (Buffer)
ทำหน้าที่จัดเก็บข้อมูล
ข้อมูลที่ส่งเข้ามาหรือส่งออกจะเรียงมาเป็นลำดับก่อนหลัง
อุปกรณ์ประเภทนี้ได้แก่
คีย์บอร์ด
เครื่องพิมพ์
เม้าท์
โมเด็ม
3.อุปกรณ์พิิเศษ
มีอุปกรณ์บางประเภทอื่นที่ไม่เข้าข่ายทั้ง
2 ประเภทดังที่กล่าวมา
การจัดการอุปกรณ์ประเภทนี้
OS ต้องใช้วิธีจัดการโดยเฉพาะ
ขึ้นอยู่กับลักษณะการรับส่งข้อมูลของอุปกรณ์นั้น ๆ
เช่น
จอภาพ (Monitor)
ในการส่งข้อมูลหรือตัวอักษรไปแสดงบนจอภาพนั้น
จะต้องส่งไปยังตำแหน่งที่ถูกต้อง โดยที่จอภาพจะมีแอดเดรสบอกตำแหน่งต่าง ๆ บนจอ
ดังนั้นถ้าต้องการส่งข้อมูลขึ้นไปบนจอต้องส่งตำแหน่งบนจอภาพไปด้วย แล้ว OS จะนำข้อมูลไปปรากฏอยู่บนจอภาพในตำแหน่งที่ระบุ
ดังนั้นจะเห็นว่าการส่งข้อมูลไปให้จอภาพไม่จำเป็นต้องมีลำดับการส่งข้อมูลที่ถูกต้อง
ตัวควบคุมอุปกรณ์
(Device
Controller)
อุปกรณ์แต่ละประเภทจะประกอบด้วยกลไกต่าง
ๆ และส่วนที่เป็นวงจรอิเล็กทรอนิกส์
สำหรับส่วนที่เป็นวงจรอิเล็กทรอนิกส์เราเรียกว่าชิพ
ที่ประกอบรวมกันอยู่บนเซอร์กิตบอร์ด (Circuit
board) ซึ่งส่วนนี้เองที่ถูกเรียกว่า
ตัวควบคุมอุปกรณ์
ตัวควบคุมอุปกรณ์ทำหน้าที่ควบคุมการทำงานของอุปกรณ์
ตรวจสอบและแก้ไขข้อผิดพลาดเมื่อเกิดขึ้น
ในแต่ละอุปกรณ์ก็จะมีตัวควบคุมอุปกรณ์นั้น
ๆ เช่น
ตัวควบคุมจอภาพ
หรือรู้จักกันในนามของการ์ดจอภาพ
ตัวควบคุมดิสก์
หรือรู้จักกันในนามของดิสก์คอนโทรเลอร์ (Disk
Controller)
ตัวขับอุปกรณ์
(Device
drivers)
อุปกรณ์แต่ละชนิดย่อมมีลักษณะที่แตกต่างกันออกไปในหลาย
ๆ อย่าง ทั้งการติดต่อรับส่งข้อมูล การควบคุมการทำงานภายในอุปกรณ์
ถ้าเราให้
OS เป็นผู้ควบคุมทุกอุปกรณ์
ตัว OS จะต้องรู้การทำงานของอุปกรณ์แต่ละชนิดอย่างละเอียด
รวมทั้งกรณีที่มีการพัฒนาอุปกรณ์ใหม่ ๆ ขึ้นมาก็จะต้องมีการแก้ไขให้ OS รู้จักอุปกรณ์ตัวใหม่อยู่ตลอดเวลา
ด้วยความไม่สะดวกดังกล่าวผู้ออกแบบ
OS จึงได้ทำการแยกเอาส่วนควบคุมอุปกรณ์ทั้งหมดออกจากระบบ
โปรแกรมที่แยกตัวออกมานั้นมีหน้าที่ควบคุมการติดต่อกับอุปกรณ์เหล่านั้นเราเรียกว่า
ตัวขับอุปกรณ์ (Device
drivers)
หน้าที่ของ
OS ในการจัดการอุปกรณ์
ติดตามสถานะของอุปกรณ์ทุกชิ้น
โดยจะมี UCB
(Unit control block)
สำหรับอุปกรณ์แต่ละชิ้นเพื่อเก็บข้อมูลที่สำคัญต่าง ๆ ของอุปกรณ์นั้น ๆ
กำหนดการให้ใช้งานเมื่อมีการร้องขออุปกรณ์โดยมีเทคนิคอยู่
3 ประการ
การยกให้
(Dedicated device) เป็นการกำหนดให้อุปกรณ์ถูกใช้ได้โดยโปรเซสเพียงโปรเซสเดียว
โปรเซสอื่น ๆ จะเข้ามาใช้อุปกรณ์ตัวนี้ไม่ได้
การแบ่งปัน
(Shared device) เป็นการกำหนดให้อุปกรณ์ถูกใช้ได้โดยหลายโปรเซสร่วมกัน
ไม่เป็นของโปรเซสใดโปรเซสหนึ่ง
การปลอม
(Virtual device)
เป็นการจำลองอุปกรณ์ชิ้นหนึ่งให้เป็นอุปกรณ์อีกชิ้นหนึ่ง
จัดสรร
(Allocate) อุปกรณ์
เพื่อมอบหมายอุปกรณ์ชิ้นนั้นให้โปรเซสที่ร้องขอ
เรียกคืน
(Deallocate) อุปกรณ์เมื่อโปรเซสที่ครอบครองอุปกรณ์ทำงานจบลง
หรือต้องการคืนอุปกรณ์ให้กับระบบ
ควบคุมและจัดจังหวะการรับส่งข้อมูลระหว่างอุปกรณ์กับซีพียู
หรือหน่วยความจำ
การรับส่งข้อมูลระหว่าง
CPU กับอุปกรณ์
เมื่อโปรเซสต้องการส่งข้อมูลให้กับอุปกรณ์ต่าง
ๆ ข้อมูลที่จะส่งจะถูกเก็บไว้ในหน่วยความจำ
การส่งจะกระทำโดย
CPU เป็นผู้ดึงข้อมูลมาจากหน่วยความจำและส่งไปให้อุปกรณ์ต่าง
ๆ
ในทางกลับกันเมื่ออุปกรณ์ต่าง
ๆ ต้องการส่งข้อมูลให้โปรเซส ข้อมูลจะถูกส่งผ่าน CPU ไปไว้ในหน่วยความจำ
จากนั้นโปรเซสจึงนำข้อมูลไปใช้ได้
การรับส่งข้อมูลแบบนี้เป็นไปได้ช้าและเปลืองเวลาของ
CPU
ดังนั้นถ้าสามารถส่งข้อมูลได้โดยไม่ต้องผ่าน
CPU ก็จะทำให้การรับส่งข้อมูลเร็วขึ้น
และยังสามารถใช้ CPU สำหรับรันโปรเซสอื่นได้ต่อไป
วิธีการนี้เรียกว่า
การทำ DMA
(Direct Memory Access)
การรับส่งข้อมูลแบบ
DMA จำเป็นต้องใช้
ตัวควบคุม DMA
(DMA Controller)
DMA
Controller จะทำหน้าที่แทน CPU เมื่อต้องการรับส่งข้อมูลแบบ
DMA
เมื่อต้องการส่งข้อมูล
DMA Controller จะส่งสัญญาณไปบอกให้ CPU รับรู้
เมื่อ CPU ได้รับคำขอ
CPU จะสั่งให้
DMA Controller ทำงานควบคุมการรับส่งข้อมูลต่อไป
ส่วน CPU จะไปทำงานอื่น
เมื่อทำงานเสร็จ
DMA Controller จะส่งสัญญาณไปบอกให้
CPU รับรู้ว่าการรับส่งข้อมูลเสร็จสิ้นแล้ว
อ้างอิง
http://www.ict.up.ac.th/worrakits/OS.files/PDF/%E0%B8%9A%E0%B8%97%E0%B8%97%E0%B8%B5%E0%B9%88%204%20Input%20and%20Output%202_2551.pdf