การจัดการอุปกรณ์อินพุต/เอาท์พุต I/O Devices manager

Download Report

Transcript การจัดการอุปกรณ์อินพุต/เอาท์พุต 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) ได ้แก่ ดิสก์ประเภท2
ต่าง ๆ
คาร ์เรกเตอร ์ดีไวซ ์ (Character
devices)
• หมายถึงอุปกรณ์ทรี่ ับและสง่ ข ้อมูลเป็ นสาย
โดยมีบฟ
ั เฟอร์ (Buffer) ทาหน ้าทีจ
่ ัดเก็บ
ข ้อมูล
• ข ้อมูลทีส
่ ง่ เข ้ามาหรือสง่ ออกจะเรียงมาเป็ น
ลาดับก่อนหลัง
• อุปกรณ์ประเภทนีไ
้ ด ้แก่
– คียบ
์ อร์ด
– เครือ
่ งพิมพ์
– เม ้าท์
3
คาร ์เรกเตอร ์ดีไวซ ์ (Character
devices)
อุปกรณ์
ความเร็ว
คียบ
์ อร์ด
10 Byte/sec
เม ้าท์
100 Byte/sec
โมเด็ม
7 KByte/sec
ั ท์
โทรศพ
8 KByte/sec
เครือ
่ งพิมพ์เลเซอร์
100 KByte/sec
สแกนเนอร์
400 KByte/sec
USB
1.25 MByte/sec
4
อุปกรณ์พเิ ศษ
• มีอป
ุ กรณ์บางประเภทอืน
่ ทีไ่ ม่เข ้าข่ายทัง้ 2
ประเภทดังทีก
่ ล่าวมา
• การจัดการอุปกรณ์ประเภทนี้ OS ต ้องใชวิ้ ธ ี
จัดการโดยเฉพาะ ขึน
้ อยูก
่ บ
ั ลักษณะการรับสง่
ข ้อมูลของอุปกรณ์นัน
้ ๆ
่ จอภาพ (Monitor) ในการสง่ ข ้อมูลหรือ
• เชน
ตัวอักษรไปแสดงบนจอภาพนัน
้ จะต ้องสง่ ไปยัง
ตาแหน่งทีถ
่ ก
ู ต ้อง โดยทีจ
่ อภาพจะมีแอดเดรส
บอกตาแหน่งต่าง ๆ บนจอ ดังนัน
้ ถ ้าต ้องการสง่
ข ้อมูลขึน
้ ไปบนจอต ้องสง่ ตาแหน่งบนจอภาพไป
5
ด ้วย แล ้ว OS จะนาข ้อมูลไปปรากฏอยูบ
่ นจอภาพ
ตัวควบคุมอุปกรณ์ (Device
Controller)
• อุปกรณ์แต่ละประเภทจะประกอบด ้วยกลไกต่าง ๆ
และสว่ นทีเ่ ป็ นวงจรอิเล็กทรอนิกส ์
• สาหรับสว่ นทีเ่ ป็ นวงจรอิเล็กทรอนิกสเ์ ราเรียกว่า
ิ ทีป
ชพ
่ ระกอบรวมกันอยูบ
่ นเซอร์กต
ิ บอร์ด
(Circuit board) ซงึ่ สว่ นนีเ้ องทีถ
่ ก
ู เรียกว่า ตัว
ควบคุมอุปกรณ์
• ตัวควบคุมอุปกรณ์ทาหน ้าทีค
่ วบคุมการทางาน
ของอุปกรณ์ ตรวจสอบและแก ้ไขข ้อผิดพลาดเมือ
่
เกิดขึน
้
• ในแต่ละอุปกรณ์ก็จะมีตัวควบคุมอุปกรณ์นัน
้ ๆ
6
่
เชน
ตัวขับอุปกรณ์ (Device drivers)
• อุปกรณ์แต่ละชนิดย่อมมีลักษณะทีแ
่ ตกต่างกัน
ออกไปในหลาย ๆ อย่าง ทัง้ การติดต่อรับสง่
ข ้อมูล การควบคุมการทางานภายในอุปกรณ์
• ถ ้าเราให ้ OS เป็ นผู ้ควบคุมทุกอุปกรณ์ ตัว OS
จะต ้องรู ้การทางานของอุปกรณ์แต่ละชนิดอย่าง
ละเอียด รวมทัง้ กรณีทม
ี่ ก
ี ารพัฒนาอุปกรณ์ใหม่ ๆ
ขึน
้ มาก็จะต ้องมีการแก ้ไขให ้ OS รู ้จักอุปกรณ์ตัว
ใหม่อยูต
่ ลอดเวลา
• ด ้วยความไม่สะดวกดังกล่าวผู ้ออกแบบ OS จึงได ้
ทาการแยกเอาสว่ นควบคุมอุปกรณ์ทงั ้ หมดออก
7
จากระบบ โปรแกรมทีแ
่ ยกตัวออกมานัน
้ มีหน ้าที่
ตัวขับอุปกรณ์ (Device drivers)
โปรแกรมของผู ้ใช ้
สว่ นอืน
่ ๆ
ี รี อม
ไดร์เวอร์แสดงผล
ไดร์เวอร์เครือ
่ งพิไดร์
มพ์ เวอร์ซด
ี รี อม
ตัวควบคุมแสดงผล
ตัวควบคุมเครือ
่ งพิตัมวพ์
ควบคุมซด
จอภาพ
เครือ
่ งพิมพ์
ี รี อม
ซด
8
หน้าทีของ OS ในการจัดการ
อุปกรณ์
ิ้ โดยจะมี UCB
• ติดตามสถานะของอุปกรณ์ทก
ุ ชน
ิ้
(Unit control block) สาหรับอุปกรณ์แต่ละชน
เพือ
่ เก็บข ้อมูลทีส
่ าคัญต่าง ๆ ของอุปกรณ์นัน
้ ๆ
้
• กาหนดการให ้ใชงานเมื
อ
่ มีการร ้องขออุปกรณ์โดย
มีเทคนิคอยู่ 3 ประการ
– การยกให ้ (Dedicated device) เป็ นการกาหนดให ้
้ ้โดยโปรเซสเพียงโปรเซสเดียว
อุปกรณ์ถก
ู ใชได
โปรเซสอืน
่ ๆ จะเข ้ามาใชอุ้ ปกรณ์ตวั นีไ
้ ม่ได ้
– การแบ่งปั น (Shared device) เป็ นการกาหนดให ้
้ ้โดยหลายโปรเซสร่วมกัน ไม่เป็ นของ
อุปกรณ์ถก
ู ใชได
โปรเซสใดโปรเซสหนึง่
9
หน้าทีของ OS ในการจัดการ
อุปกรณ์
• จัดสรร (Allocate) อุปกรณ์ เพือ
่
ิ้ นัน
มอบหมายอุปกรณ์ชน
้ ให ้โปรเซสทีร่ ้อง
ขอ
• เรียกคืน (Deallocate) อุปกรณ์เมือ
่
โปรเซสทีค
่ รอบครองอุปกรณ์ทางานจบ
ลง หรือต ้องการคืนอุปกรณ์ให ้กับระบบ
• ควบคุมและจัดจังหวะการรับสง่ ข ้อมูล
ี ย
ระหว่างอุปกรณ์กบ
ั ซพ
ี ู หรือ
10
หน่วยความจา
การร ับส่งข้อมู ลระหว่าง CPU กับ
อุปกรณ์
• เมือ
่ โปรเซสต ้องการสง่ ข ้อมูลให ้กับอุปกรณ์ตา่ ง
ๆ ข ้อมูลทีจ
่ ะสง่ จะถูกเก็บไว ้ในหน่วยความจา
• การสง่ จะกระทาโดย CPU เป็ นผู ้ดึงข ้อมูลมา
จากหน่วยความจาและสง่ ไปให ้อุปกรณ์ตา่ ง ๆ
• ในทางกลับกันเมือ
่ อุปกรณ์ตา่ ง ๆ ต ้องการสง่
ข ้อมูลให ้โปรเซส ข ้อมูลจะถูกสง่ ผ่าน CPU ไป
ไว ้ในหน่วยความจา จากนัน
้ โปรเซสจึงนาข ้อมูล
้ ้
ไปใชได
11
การร ับส่งข้อมู ลระหว่าง CPU กับ
อุปกรณ์
CPU
I/O
หน่วยความจา
12
การร ับส่งข้อมู ลระหว่าง CPU กับ
อุปกรณ์
้
• การรับสง่ ข ้อมูลแบบนีเ้ ป็ นไปได ้ชาและเปลื
อง
เวลาของ CPU
• ดังนัน
้ ถ ้าสามารถสง่ ข ้อมูลได ้โดยไม่ต ้องผ่าน
CPU ก็จะทาให ้การรับสง่ ข ้อมูลเร็วขึน
้ และยัง
สามารถใช ้ CPU สาหรับรันโปรเซสอืน
่ ได ้ต่อไป
CPU
• วิธก
ี ารนีเ้ รียกว่า การทา DMAI/O
(Direct Memory
Access)
หน่วยความจา
13
การร ับส่งข้อมู ลระหว่าง CPU กับ
อุปกรณ์
• การรับสง่ ข ้อมูลแบบ DMA จาเป็ นต ้องใช ้ ตวั
ควบคุม DMA (DMA Controller)
• DMA Controller จะทาหน ้าทีแ
่ ทน CPU เมือ
่
ต ้องการรับสง่ ข ้อมูลแบบ DMA
• เมือ
่ ต ้องการสง่ ข ้อมูล DMA Controller จะสง่
ั ญาณไปบอกให ้ CPU รับรู ้ เมือ
สญ
่ CPU ได ้
รับคาขอ CPU จะสงั่ ให ้ DMA Controller
ทางานควบคุมการรับสง่ ข ้อมูลต่อไป สว่ น CPU
จะไปทางานอืน
่
14
• เมือ
่ ทางานเสร็จ DMA Controller จะสง่