บทที่ 7 การจัดการอุปกรณ์

บทที่ 7 การจัดการอุปกรณ์
Device Management
โดย นาย นาย อาทิตย์ ยลระบิล รหัสนักศึกษา 6031280069

การจัดการอุปกรณ์อินพุต/เอาท์พุต
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

ความคิดเห็น

โพสต์ยอดนิยมจากบล็อกนี้

บทที่ 2 การจัดการ Process

บทที่ 3 การจัดเวลาซีพียู (CPU Scheduling)

บทที่ 4 การจัดการหน่วยความจำ