การจัดการอุปกรณ์
Device Management
นาย ปัณณรุจน์ อมรสิทธิ์สิริ รหัส 6031280004
•อุปกรณ์อินพุต-เอ้าต์พุต (Input/Output Device)
•อุปกรณ์เก็บข้อมูล (Storage Device)
อุปกรณ์อินพุต-เอ้าต์พุต (Input/Output Device)
•อุปกรณ์อินพุต
คืออุปกรณ์ที่ทำให้คอมพิวเตอร์สามารถสัมผัสและรับรู้สิ่งต่าง ๆ จากโลกภายนอกได้
เช่น เครื่องอ่านบัตร คีย์บอร์ด เมาส์
•อุปกรณ์เอ้าต์พุต คือ อุปกรณ์ที่ทำให้คอมพิวเตอร์ ควบคุมหรือส่งผลออกมาสู่โลกภายนอกได้ เช่น จอภาพ เครื่องพิมพ์
•แบ่งได้เป็น 2 ประเภทคือ
–อุปกรณ์ชนิดข้อมูลเป็นสาย (Stream)
–อุปกรณ์ชนิดข้อมูลไม่เป็นสาย (Non-Stream)
อุปกรณ์ชนิดข้อมูลเป็นสาย (Stream)
•ข้อมูลที่ส่งเข้าออกจะเรียงมาเป็นลำดับก่อนหลัง
•การแบ่งแยกข้อมูลทำได้โดยตรวจสอบลำดับของข้อมูล
•สามารถจัดการได้ง่าย
•อุปกรณ์เหล่านี้ได้แก่ คีย์บอร์ด
เครื่องพิมพ์
อุปกรณ์ชนิดข้อมูลไม่เป็นสาย (Non-Stream)
•ข้อมูลที่ส่งและรับไม่ขึ้นอยู่กับลำดับการส่ง
•ต้องอาศัยข้อมูลเพิ่มเติมเพื่อที่จะแยกแยะข้อมูลแต่ละตัวและมีวิธีจัดการโดยเฉพาะ
•อุปกรณ์ชนิดนี้ได้แก่ จอภาพ
อุปกรณ์เก็บข้อมูล (Storage Device)
•เป็นอุปกรณ์เก็บข้อมูลที่คอมพิวเตอร์ใช้เก็บข้อมูลต่าง
ๆ
•ข้อมูลสามารถถูกดึงหรือเรียกกลับมาใช้ได้ในภายหลัง
•แบ่งเป็น 2 ประเภทคือ
–อุปกรณ์ที่มีการเข้าถึงแบบลำดับ (Serial
Access Storage Device)
–อุปกรณ์ที่มีการเข้าถึงโดยตรง (Direct
Access Storage Device)
อุปกรณ์ที่มีการเข้าถึงแบบลำดับ (Serial Access Storage Device)
•การเข้าถึง (Access) ต้องเป็นไปตามลำดับ
เรียงไปจนถึงตำแหน่งที่ต้องการ
•การเก็บข้อมูลจะเก็บเป็นกลุ่ม ๆ
ไม่มีแอดเดรสของแต่ละกลุ่ม
การอ่านต้องอ่านเข้ามาทีละกลุ่มแล้วตรวจสอบว่าเป็นกลุ่มที่ต้องการหรือไม่จนพบข้อมูล
•อุปกรณ์พวกนี้ได้แก่ เทป
อุปกรณ์ที่มีการเข้าถึงโดยตรง
(Direct Access Storage Device)
(Direct Access Storage Device)
•ข้อมูลจะถูกจัดไว้เป็นกลุ่มในระดับบล็อกหรือ เซกเตอร์ แต่ละกลุ่มจะมีแอสเดรสของตัวเอง
•การเข้าถึงทำได้โดยกำหนดแอดเดรสของข้อมูลกลุ่มนั้นทำให้การเข้าถึงสามารถเข้าถึงได้โดยตรงไม่ต้องผ่านข้อมูลกลุ่มอื่น
•อุปกรณ์พวกนี้ได้แก่ ดิสก์
ตัวควบคุมอุปกรณ์ (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 ไปไว้ในหน่วยความจำ
จากนั้นโปรเซสจึงนำข้อมูลไปใช้ได้
•วิธีการรับส่งข้อมูล มีอยู่ 3 วิธี ได้แก่
–การพอลลิ่ง (Polling)
–การอินเตอร์รัพต์ (Interrupt)
–เมลบ็อกซ์ (Mailbox)
การพอลลิ่ง (Polling)
•ลักษณะการติดต่อแบบนี้คือ ทุก ๆ
ช่วงเวลาหนึ่งซีพียูจะหยุดงานที่ทำอยู่ชั่วคราวและไปตรวจเช็คที่แต่ละแชนเนลเพื่อดูว่ามีอุปกรณ์ใดต้องการส่งข้อมูลบ้างตั้งแต่ตัวแรก-ตัวสุดท้าย
จนกระทั้งหมดซีพีจะกลับไปทำงานตามเดิม
การอินเตอร์รัพต์ (Interrupt)
•เมื่ออุปกรณ์ตัวใดต้องการส่งข้อมูล
จะส่งสัญญาณผ่านทางแชนแนลไปบอกซีพียู
เมื่อซีพียูทราบก็จะหยุดงานชั่วคราวแล้วไปรับรับส่งข้อมูลจนเสร็จสิ้น
แล้วกลับไปทำงานต่อ
เมลบ็อกซ์ (Mailbox)
•ระบบจะเสียเนื้อที่ส่วนหนึ่งไปเพื่อเป็นที่พักของข้อมูลเมื่อมีอุปกรณ์บางตัวต้องการส่งข้อมูล
ก็จะส่งไปเก็บไว้ในเนื้อที่ส่วนนี้
เมื่อถึงระยะเวลาหนึ่งซีพียูจะหยุดงานที่ตัวเองทำไปรับส่งข้อมูลเสร็จแล้วก็จะไปทำงานที่ค้างไว้ต่อ
การจัดการสื่อจัดเก็บข้อมูล (Storage Management)
•สื่อจัดเก็บข้อมูลในที่นี้หมายถึงหน่วยความจำสำรอง
(Secondary
Storage) ที่ใช้ในการจัดเก็บข้อมูล
•ได้แก่ ดิสก์แม่เหล็ก (Magnetic disk) เช่น ฮาร์ดดิสก์ ฟล็อปปี้ดิสก์
ดิสก์ (Disk)
•การจัดเนื้อที่บนดิสก์แม่เหล็กจะมีการจัดแบ่งออกเป็น ไซลินเดอร์ (cylinder)
•ในแต่ละไซลินเดอร์จะแบ่งออกเป็นแทร็ก (track)
•ในแต่ละแทร็กจะแบ่งออกเป็นเซ็กเตอร์
(sector)
•การจัดเก็บข้อมูลลงในดิสก์นั้นจะเก็บในรูปแบบของบล็อก
(Block)
ขนาดของบล็อกปกติจะมีขนาด
512 Byte แต่ละบล็อกจะอยู่เรียงตามลำดับในแต่ละเซกเตอร์ โดยเซ็กเตอร์ 0 จะเป็นเซ็กเตอร์แรกของแทร็กแรกซึ่งอยู่ที่ไซลินเดอร์ด้านนอกสุดของดิสก์
•การเรียงลำดับหมายเลขแทร็กและหมายเลขไซลินเดอร์จะเรียงต่อกันไปเรื่อย
ๆ จากด้านนอกสุดไปด้านในสุดของดิสก์
การจัดเวลาการใช้ดิสก์ (Disk scheduling)
•การใช้งานดิสก์ให้มีประสิทธิภาพนั้นสามารถพิจารณาได้จากระยะเวลาที่ใช้ในการอ่านหรือบันทึกข้อมูล
ซึ่งเวลาที่ใช้นั้นขึ้นอยู่กับปัจจัย 3 อย่าง
ดังนี้
–ระยะเวลาการค้นหา
(seek time) หมายถึงระยะเวลาที่ใช้ในการเคลื่อนที่หัวอ่านไปยังไซลินเดอร์ที่มีเซ็กเตอร์ที่ต้องการ
–ระยะเวลาที่ใช้หมุนดิสก์
(rotational latency) หมายถึงที่ระยะเวลาที่รอคอยการหมุนดิสก์เพื่อหาเซ็กเตอร์ที่ต้องการให้ตรงกับหัวอ่าน
–ระยะเวลาการโอนย้ายข้อมูล
(transfer time)
•ระยะเวลาการค้นหาเป็นปัจจัยที่สำคัญมากที่สุด
ดังนั้นการลดระยะเวลาการค้นหาลงจะทำให้การใช้งานดิสก์มีประสิทธิภาพมากขึ้น
•เวลาในการเข้าถึงข้อมูล =
เวลาค้นหา+เวลาหมุนดิสก์+เวลาถ่ายเทข้อมูล
•การจัดเวลาในการใช้ดิสก์นั้นแบ่งออกเป็น 5
แบบดังนี้
–การจัดเวลาแบบมาก่อนได้ก่อน (First
come first served : FCFS)
–การจัดเวลาแบบเวลาสั้นสุดได้ก่อน (Shortest
seek time first : SSTF)
–การจัดเวลาแบบสแกน (SCAN
Scheduling)
–การจัดเวลาแบบซีสแกน (Circular-SCAN Scheduling)
–การจัดเวลาแบบ LOOK
(Look Scheduling)
การจัดเวลาแบบมาก่อนได้ก่อน First come first served : FCFS
•เป็นรูปแบบการจัดเวลาที่ง่ายที่สุด
แต่ไม่ใช่วิธีของการทำงานที่เร็วที่สุด
•เช่นถ้าลำดับการอ่านข้อมูลจากไซลินเดอร์เป็นดังนี้
97 , 180
, 36 , 124 , 12 , 128 , 62 , 66 ปัจจุบันไซลินเดอร์ 50
•ลักษณะการเคลื่อนที่ของหัวอ่านจะเคลื่อนที่ดังรูป
ข้อเสียแบบ SSTF
•การคอยใช้บริการที่อาจจะไม่ได้รับการบริการ
เช่น มีการเรียกใช้ไซเลนเดอร์ 12
และ 180 ในขณะที่หัวอ่านอยู่ที่ ไซเลนเดอร์
12 นั้นมีการเรียกใช้ ไซเลนเดอร์ที่อยู่ใกล้
12 เข้ามา ซึ่งการขอเรียกใช้ไซเลนเดอร์ที่ใกล้
12 ก่อน ซึ่ง ไซเลนเดอร์ 180
ต้องคอยก่อน
•การจัดแบบ
SSTF ยังไม่ใช่วิธีการดีที่สุด
สามารถปรับวิธีการลดการเคลื่อนที่หัวอ่านให้น้อยลงได้อีก ดังตัวอย่าง
การจัดเวลาแบบเวลา SCAN
•รูปแบบการทำงานจะเป็นลักษณะของการที่หัวอ่านจะเริ่มอ่านที่ด้านใดด้านหนึ่งของดิสก์
(ต้องทราบทิศทาง) และจะเคลื่อนที่ไปยังอีกด้านหนึ่ง
และจะให้บริการก็ต่อเมื่อหัวอ่านเคลื่อนที่ไปถึงที่ไซลินเดอร์นั้น
•เช่นถ้าลำดับการอ่านข้อมูลจากไซลินเดอร์เป็นดังนี้
97 , 180
, 36 , 124 , 12 , 128 , 62 , 66 จากลำดับที่ให้มาถ้าเริ่มต้นหัวอ่านอยู่ที่ไซลินเดอร์ที่
50 ถ้าหัวอ่านเคลื่อนที่ต่อไปยังไซลินเตอร์
0
•ตัวอย่าง : จงเรียงลำดับการเคลื่อนที่ของหัวอ่านพร้อมทั้งวาดรูปประกอบ
การจัดการเนื้อที่บนดิสก์ (Disk Management)
•OS
ยังมีหน้าที่ที่เกี่ยวข้องกับการจัดการเนื้อที่บนดิสก์ เช่น การฟอร์แมตดิสก์
การกู้คืนดิสก์ส่วนที่เสียหาย นอกเหนือจากการจัดเวลาการใช้ดิสก์
•การฟอร์แมตดิสก์ (Disk formatting)
–การฟอร์แมตดิสก์เป็นขบวนการจัดแบ่งเนื้อที่บนดิสก์โดยใช้ซอฟต์แวร์เป็นตัวจัด
กระบวนการนี้มีชื่อเรียกเป็นทางการว่า Low-Level formatting
–การฟอร์แมตดิสก์จะทำให้ดิสก์แบ่งออกเป็นแทร็กและเซ็กเตอร์
อุปกรณ์เสมือน
•คือการนำเอาอุปกรณ์ชนิดหนึ่งมาจำลองการทำงานเป็นอุปกรณ์อีกชนิดหนึ่ง
เพื่อให้เกิดความคล่องตัวในการทำงานของระบบ
•ตัวอย่างของการทำอุปกรณ์เสมือนคือการทำแรมดิสก์
(RAM
Disk)
•อีกวิธีที่นิยมคือการทำสพูล SPOOL (Simultaneous Peripheral
Operation On-Line)
การทำสพูล SPOOL
•เป็นการใช้อุปกรณ์ที่มีความเร็วสูงมาทำงานแทนอุปกรณ์ที่มีความเร็วต่ำ
•เช่นการใช้ดิสก์แทนเครื่องพิมพ์
เนื่องจากดิสก์มีการรับส่งข้อมูลได้รวดเร็วกว่าเครื่องพิมพ์มากหลายเท่า
•โดยมีโปรเซสหนึ่งของ OS
ชื่อ SPOOLER
ทำหน้าที่จัดการเรื่องการทำ SPOOL
ของระบบ
อ้างอิง
http://chantra.sru.ac.th/OS.html