ระบบปฏิบัติการ - ฮาร์ดแวร์ I / O
งานที่สำคัญอย่างหนึ่งของระบบปฏิบัติการคือการจัดการอุปกรณ์ I / O ต่างๆเช่นเมาส์แป้นพิมพ์ทัชแพดดิสก์ไดรฟ์อะแดปเตอร์จอแสดงผลอุปกรณ์ USB หน้าจอบิตแมป LED ตัวแปลงอนาล็อกเป็นดิจิตอลเปิด / ปิดสวิตช์การเชื่อมต่อเครือข่าย I / O เสียงเครื่องพิมพ์ ฯลฯ
ระบบ I / O จำเป็นต้องใช้คำขอ I / O ของแอปพลิเคชันและส่งไปยังอุปกรณ์ที่มีอยู่จริงจากนั้นรับการตอบสนองใด ๆ ที่กลับมาจากอุปกรณ์และส่งไปยังแอปพลิเคชัน อุปกรณ์ I / O สามารถแบ่งออกเป็นสองประเภท -
Block devices- อุปกรณ์บล็อกคืออุปกรณ์ที่ผู้ขับขี่สื่อสารโดยการส่งข้อมูลทั้งบล็อก ตัวอย่างเช่นฮาร์ดดิสก์กล้อง USB Disk-On-Key เป็นต้น
Character devices- อุปกรณ์อักขระเป็นอุปกรณ์ที่ไดรเวอร์สื่อสารโดยการส่งและรับอักขระเดี่ยว (ไบต์, อ็อกเต็ต) ตัวอย่างเช่นพอร์ตอนุกรมพอร์ตขนานการ์ดเสียง ฯลฯ
ตัวควบคุมอุปกรณ์
ไดรเวอร์อุปกรณ์คือโมดูลซอฟต์แวร์ที่สามารถเสียบเข้ากับระบบปฏิบัติการเพื่อจัดการกับอุปกรณ์เฉพาะได้ ระบบปฏิบัติการรับความช่วยเหลือจากไดรเวอร์อุปกรณ์เพื่อจัดการอุปกรณ์ I / O ทั้งหมด
Device Controller ทำงานเหมือนอินเทอร์เฟซระหว่างอุปกรณ์และไดรเวอร์อุปกรณ์ หน่วย I / O (แป้นพิมพ์เมาส์เครื่องพิมพ์ ฯลฯ ) โดยทั่วไปประกอบด้วยส่วนประกอบเชิงกลและชิ้นส่วนอิเล็กทรอนิกส์ที่ส่วนประกอบอิเล็กทรอนิกส์เรียกว่าตัวควบคุมอุปกรณ์
มีตัวควบคุมอุปกรณ์และไดรเวอร์อุปกรณ์สำหรับแต่ละอุปกรณ์เพื่อสื่อสารกับระบบปฏิบัติการเสมอ ตัวควบคุมอุปกรณ์อาจสามารถจัดการกับอุปกรณ์หลายเครื่องได้ เนื่องจากอินเทอร์เฟซมีหน้าที่หลักในการแปลงสตรีมบิตอนุกรมเป็นบล็อกไบต์ให้ทำการแก้ไขข้อผิดพลาดตามความจำเป็น
อุปกรณ์ใด ๆ ที่เชื่อมต่อกับคอมพิวเตอร์จะเชื่อมต่อด้วยปลั๊กและซ็อกเก็ตและซ็อกเก็ตเชื่อมต่อกับตัวควบคุมอุปกรณ์ ต่อไปนี้เป็นแบบจำลองสำหรับการเชื่อมต่อ CPU หน่วยความจำคอนโทรลเลอร์และอุปกรณ์ I / O ที่ตัวควบคุม CPU และอุปกรณ์ทั้งหมดใช้บัสทั่วไปในการสื่อสาร
I / O แบบซิงโครนัสเทียบกับอะซิงโครนัส
Synchronous I/O - ในรูปแบบนี้การดำเนินการของ CPU รอในขณะที่ดำเนินการ I / O
Asynchronous I/O - I / O ดำเนินการพร้อมกับการเรียกใช้ CPU
การสื่อสารกับอุปกรณ์ I / O
ซีพียูต้องมีวิธีในการส่งผ่านข้อมูลไปยังและจากอุปกรณ์ I / O มีสามวิธีในการสื่อสารกับ CPU และอุปกรณ์
- คำสั่งพิเศษ I / O
- I / O ที่แมปหน่วยความจำ
- การเข้าถึงหน่วยความจำโดยตรง (DMA)
คำสั่งพิเศษ I / O
ใช้คำสั่ง CPU ที่สร้างขึ้นโดยเฉพาะสำหรับการควบคุมอุปกรณ์ I / O โดยทั่วไปคำแนะนำเหล่านี้อนุญาตให้ส่งข้อมูลไปยังอุปกรณ์ I / O หรืออ่านจากอุปกรณ์ I / O
I / O ที่แมปหน่วยความจำ
เมื่อใช้ I / O ที่แมปหน่วยความจำพื้นที่แอดเดรสเดียวกันจะแบ่งใช้โดยหน่วยความจำและอุปกรณ์ I / O อุปกรณ์เชื่อมต่อโดยตรงกับตำแหน่งหน่วยความจำหลักบางตำแหน่งเพื่อให้อุปกรณ์ I / O สามารถถ่ายโอนบล็อกข้อมูลไปยัง / จากหน่วยความจำได้โดยไม่ต้องใช้ CPU
ในขณะที่ใช้หน่วยความจำที่แมป IO ระบบปฏิบัติการจะจัดสรรบัฟเฟอร์ในหน่วยความจำและแจ้งให้อุปกรณ์ I / O ใช้บัฟเฟอร์นั้นเพื่อส่งข้อมูลไปยัง CPU อุปกรณ์ I / O ทำงานแบบอะซิงโครนัสกับ CPU ขัดขวาง CPU เมื่อเสร็จสิ้น
ข้อดีของวิธีนี้คือทุกคำสั่งที่สามารถเข้าถึงหน่วยความจำสามารถใช้เพื่อจัดการกับอุปกรณ์ I / O ได้ หน่วยความจำที่แมป IO ใช้สำหรับอุปกรณ์ I / O ความเร็วสูงส่วนใหญ่เช่นดิสก์อินเทอร์เฟซการสื่อสาร
การเข้าถึงหน่วยความจำโดยตรง (DMA)
อุปกรณ์ที่ช้าเช่นแป้นพิมพ์จะสร้างการขัดจังหวะไปยัง CPU หลักหลังจากโอนย้ายแต่ละไบต์ หากอุปกรณ์ที่รวดเร็วเช่นดิสก์สร้างอินเทอร์รัปต์สำหรับแต่ละไบต์ระบบปฏิบัติการจะใช้เวลาส่วนใหญ่ในการจัดการกับอินเทอร์รัปต์เหล่านี้ ดังนั้นคอมพิวเตอร์ทั่วไปจึงใช้ฮาร์ดแวร์การเข้าถึงหน่วยความจำโดยตรง (DMA) เพื่อลดค่าใช้จ่ายนี้
Direct Memory Access (DMA) หมายถึง CPU ให้สิทธิ์โมดูล I / O ในการอ่านหรือเขียนไปยังหน่วยความจำโดยไม่มีส่วนเกี่ยวข้อง โมดูล DMA ควบคุมการแลกเปลี่ยนข้อมูลระหว่างหน่วยความจำหลักและอุปกรณ์ I / O CPU มีส่วนเกี่ยวข้องเฉพาะในตอนต้นและจุดสิ้นสุดของการถ่ายโอนและถูกขัดจังหวะหลังจากที่โอนบล็อกทั้งหมดแล้วเท่านั้น
การเข้าถึงหน่วยความจำโดยตรงต้องการฮาร์ดแวร์พิเศษที่เรียกว่าตัวควบคุม DMA (DMAC) ที่จัดการการถ่ายโอนข้อมูลและชี้ขาดการเข้าถึงบัสระบบ ตัวควบคุมได้รับการตั้งโปรแกรมด้วยตัวชี้ต้นทางและปลายทาง (ตำแหน่งที่จะอ่าน / เขียนข้อมูล) ตัวนับเพื่อติดตามจำนวนไบต์ที่ถ่ายโอนและการตั้งค่าซึ่งรวมถึง I / O และประเภทหน่วยความจำการขัดจังหวะและสถานะสำหรับรอบของ CPU
ระบบปฏิบัติการใช้ฮาร์ดแวร์ DMA ดังนี้ -
ขั้นตอน | คำอธิบาย |
---|---|
1 | โปรแกรมควบคุมอุปกรณ์ได้รับคำสั่งให้ถ่ายโอนข้อมูลดิสก์ไปยังที่อยู่บัฟเฟอร์ X |
2 | ไดรเวอร์อุปกรณ์สั่งให้ตัวควบคุมดิสก์ถ่ายโอนข้อมูลไปยังบัฟเฟอร์ |
3 | ตัวควบคุมดิสก์เริ่มการถ่ายโอน DMA |
4 | ตัวควบคุมดิสก์ส่งแต่ละไบต์ไปยังตัวควบคุม DMA |
5 | ตัวควบคุม DMA โอนไบต์ไปยังบัฟเฟอร์เพิ่มที่อยู่หน่วยความจำลดตัวนับ C จน C กลายเป็นศูนย์ |
6 | เมื่อ C กลายเป็นศูนย์ DMA จะขัดขวาง CPU เพื่อให้การถ่ายโอนสัญญาณเสร็จสมบูรณ์ |
Polling vs Interrupts I / O
คอมพิวเตอร์ต้องมีวิธีตรวจจับการมาถึงของอินพุตประเภทใดก็ได้ มีสองวิธีที่สามารถเกิดขึ้นได้หรือที่เรียกว่าpolling และ interrupts. เทคนิคทั้งสองนี้ช่วยให้โปรเซสเซอร์สามารถจัดการกับเหตุการณ์ที่อาจเกิดขึ้นได้ตลอดเวลาและไม่เกี่ยวข้องกับกระบวนการที่กำลังทำงานอยู่
การสำรวจ I / O
การโพลเป็นวิธีที่ง่ายที่สุดสำหรับอุปกรณ์ I / O ในการสื่อสารกับโปรเซสเซอร์ กระบวนการตรวจสอบสถานะของอุปกรณ์เป็นระยะเพื่อดูว่าถึงเวลาสำหรับการดำเนินการ I / O ครั้งต่อไปหรือไม่เรียกว่าการสำรวจ อุปกรณ์ I / O เพียงแค่ใส่ข้อมูลลงในทะเบียนสถานะและโปรเซสเซอร์จะต้องมาและรับข้อมูล
โดยส่วนใหญ่แล้วอุปกรณ์จะไม่ต้องการความสนใจและเมื่อใดที่จะต้องรอจนกว่าจะมีการสอบปากคำครั้งต่อไปโดยโปรแกรมการสำรวจ นี่เป็นวิธีการที่ไม่มีประสิทธิภาพและผู้ประมวลผลส่วนใหญ่เสียเวลาไปกับการสำรวจโดยไม่จำเป็น
เปรียบเทียบวิธีนี้กับครูถามนักเรียนทุกคนในชั้นเรียนอย่างต่อเนื่องหากต้องการความช่วยเหลือ เห็นได้ชัดว่าวิธีการที่มีประสิทธิภาพมากขึ้นคือให้นักเรียนแจ้งครูทุกครั้งที่ต้องการความช่วยเหลือ
ขัดจังหวะ I / O
รูปแบบทางเลือกสำหรับจัดการกับ I / O คือวิธีการขัดจังหวะ - ขับเคลื่อน การขัดจังหวะเป็นสัญญาณไปยังไมโครโปรเซสเซอร์จากอุปกรณ์ที่ต้องให้ความสนใจ
ตัวควบคุมอุปกรณ์วางสัญญาณขัดจังหวะบนบัสเมื่อต้องการความสนใจของ CPU เมื่อ CPU ได้รับการขัดจังหวะซึ่งจะบันทึกสถานะปัจจุบันและเรียกใช้ตัวจัดการขัดจังหวะที่เหมาะสมโดยใช้เวกเตอร์ขัดจังหวะ (ที่อยู่ของระบบปฏิบัติการประจำเพื่อจัดการเหตุการณ์ต่างๆ) เมื่อจัดการกับอุปกรณ์ขัดจังหวะแล้ว CPU จะทำงานเดิมต่อไปราวกับว่าไม่เคยถูกขัดจังหวะ