งานนำเสนอกำลังจะดาวน์โหลด โปรดรอ

งานนำเสนอกำลังจะดาวน์โหลด โปรดรอ

ระบบรับเข้าและส่งออก I/O Systems

งานนำเสนอที่คล้ายกัน


งานนำเสนอเรื่อง: "ระบบรับเข้าและส่งออก I/O Systems"— ใบสำเนางานนำเสนอ:

1 ระบบรับเข้าและส่งออก I/O Systems
นงลักษณ์ พรมทอง และวิเชษฐ์ พลายมาศ ระบบรับเข้าและส่งออก I/O Systems

2 I/O Systems I/O Hardware Application I/O Interface
Kernel I/O Subsystem Transforming I/O Requests to Hardware Operations Streams Performance

3 Learning Objectives เพื่อศึกษาถึงแนวคิดด้านการจัดการอุปกรณ์รับเข้าและส่งออก เพื่อเข้าใจถึงหน้าที่ของระบบปฏิบัติการในการจัดการเกี่ยวกับระบบรับเข้าและส่งออก

4 I/O Hardware อุปกรณ์นำเข้า (input device) คือ อุปกรณ์ที่ทำให้คอมพิวเตอร์สามารถสัมผัสและรับรู้สิ่งต่างๆ จากโลกภายนอกได้ ตัวอย่างเช่น เครื่องอ่านบัตร คีย์บอร์ด เมาส์ อุปกรณ์ส่งออก (output device) คือ อุปกรณ์ที่ทำให้คอมพิวเตอร์ควบคุมหรือส่งผลออกมาสู่โลกภายนอกได้ ตัวอย่างเช่น เครื่องเจาะบัตร จอภาพ เครื่องพิมพ์ Common concepts Port Bus (daisy chain or shared direct access) Controller (host adapter) มี I/O instructions สำหรับควบคุมอุปกรณ์ อุปกรณ์เหล่านั้นจะมีเลขที่อยู่ (addresses) ที่ถูกใช้โดย Direct I/O instructions Memory-mapped I/O

5 A Typical PC Bus Structure

6 Device I/O Port Locations on PCs (partial)

7 คุณสมบัติของพอร์ต พอร์ตเอาท์พุต (output port) คือต้องสามารถดึงกระแสเข้า และจ่ายกระแส ออกได้ และต้องมีเอ้าท์อินพีแดนซ์ (out impedance) ต่ำ พอร์ตอินพุต (input port) คือ ต้องมีอิมพีแดนซ์ (impedance) สูงจะตรวจจับแรงดัน สัญญาณที่เข้ามาว่าเป็น 1 หรือ 0 มีเรจิสเตอร์ 4 ตัว เรจิสเตอร์สถานะ (status register) เรจิสเตอร์ควบคุม (control register) เรจิสเตอร์ข้อมูลเข้า (data-in register) เรจิสเตอร์ข้อมูลออก (data-out register) เรจิสเตอร์สถานะบรรจุบิตแสดงการอ่านโดยโฮสต์ (host)

8 ตัวขับอุปกรณ์ Device Driver
หากบรรจุโปรแกรมควบคุมอุปกรณ์ I/O ทั้งหมดเข้าไว้ใน OS จะทำให้ OS มีขนาดเทอะทะ ไม่ยืดหยุ่น และมีค่าใช้จ่ายสูงในการ upgrade OS แต่ละครั้ง จึงต้องแยกโปรแกรมควบคุมอุปกรณ์ออกมาเป็นส่วนหนึ่งต่างหาก เรียกว่า ตัวขับอุปกรณ์ (device driver) ลักษณะเช่นนี้ OS ไม่จำเป็นต้องรู้จักลักษณะการทำงานของอุปกรณ์ต่าง ๆ ปล่อยให้เป็นหน้าที่ของตัวขับอุปกรณ์ชนิดนั้นๆ OS รู้เพียงแต่การติดต่อและควบคุมอุปกรณ์ผ่านทางตัวขับอุปกรณ์เท่านั้น

9 อุปกรณ์เสมือน Virtual Device
คือการนำเอาอุปกรณ์ชนิดหนึ่งมาจำลองการทำงานเป็นอุปกรณ์อีกชนิดหนึ่ง เพื่อก่อให้เกิดความคล่องตัวในการทำงานของระบบ ตัวอย่างของการทำอุปกรณ์เสมือนก็คือ การทำแรมดิสก์ (Ram disk) การติดต่อควบคุมแรมดิสก์นี้ ทำได้โดยผ่านโปรแกรมที่ทำหน้าที่จำลองหน่วยความจำเป็นดิสก์ เรียกว่า ตัวขับอุปกรณ์เสมือน (virtual device driver) การทำ SPOOL (Simultaneous peripheral operation on-line) ซึ่งเป็นการใช้ใช้ดิสก์แทนเครื่องพิมพ์ โดยมีโปรเซสหนึ่งของ OS ชื่อ SPOOLER ทำหน้าที่จัดการเรื่องการทำ SPOOL ของระบบ

10 การสำรวจความต้องการ (polling)
ทุกๆ ช่วงเวลาหนึ่ง (Quantum time) ซีพียูจะหยุดงานที่ทำอยู่ชั่วคราว และเวียนไปตรวจเช็คที่แต่ละแชนแนลเพื่อดูว่า มีอุปกรณ์ตัวใดบ้างต้องการส่งข้อมูลมาให้ซีพียูจากอุปกรณ์แรกไปถึงอุปกรณ์สุดท้าย เช่น พวกคำสั่ง JNB TF1 , $ แบบนี้โปรแกรมจะทำอะไรอย่างอื่นไม่ได้เลย จะต้องรอจนกว่า เงื่อนไขจะเป็นจริง จึงทำให้เสียเวลาไปโดยใช่เหตุ Determines state of device command-ready busy Error Busy-wait cycle to wait for I/O from device

11 มอดูลของการรับส่งข้อมูล Data Transfer Module
I/O module Functionality การควบคุมและการจับเวลา การสื่อสารระหว่างโปรเซส การสื่อสารระหว่างอุปกรณ์ การจัดการบัฟเฟอร์ การตรวจสอบข้อผิดพลาด มอดูลการรับเข้าและส่งออกจะต้องสื่อสารกับโปรเซสเซอร์และสื่อสารกับภายนอก เกี่ยวข้องกับ การถอดรหัสคำสั่ง (command decoding), ข้อมูล (data), การรายงานสถานะ (status reporting) การรับรู้ที่อยู่ (address recognition)

12 อัตราการส่งผ่านอุปกรณ์ของ Sun Enterprise 6000
ที่มา (IEEE Computer Society, 1996, p.65).

13 โครงสร้างของมอดูลการรับเข้าและส่งออก I/O Module Structure
ทำหน้าที่อำนวยความสะดวก ให้โปรเซสเซอร์สามารถควบคุมการทำงานของอุปกรณ์รับเข้าส่งออกต่างๆได้ง่าย I/O Module ทำงานหนักด้วยตัวเอง โดยจะเชื่อมต่อกับโปรเซสเซอร์เรียกว่า ช่องสื่อสารการรับเข้าส่งออก (I/O channels) หรือ ไอโอโปรเซสเซอร์ (I/O processor) I/O Module ที่ทำงานน้อย และต้องอาศัยการควบคุมจากโปรเซสเซอร์โดยตรงเรียกว่า หน่วยควบคุมการรับเข้าส่งออก (I/O controller) หรือหน่วยควบคุมอุปกรณ์ (device controller)

14 การควบคุมการรับเข้าส่งออก
มีอยู่ 3 วิธี การควบคุมการรับเข้าส่งออกด้วยโปรแกรม (Programmed I/O) กระบวนการอินเทอร์รัพท์ (Interrupt-driven I/O) การเข้าถึงหน่วยความจำหลักโดยตรง (Direct memory access : DMA) Programmed I/O และ Interrupt-driven I/O ต้องใช้ processor คอยควบคุมและจัดการแลกเปลี่ยนข้อมูลระหว่างหน่วยความจำหลักกับ I/O ส่วนแบบ DMA นั้น I/O module จะแลกเปลี่ยนข้อมูลกันโดยตรงกับหน่วยความจำหลักโดยที่ processor ไม่ต้องเกี่ยวข้อง

15 Interrupts CPU จะถูก Interrupt request line โดย I/O device
Interrupt handler (CPU) ได้รับ interrupts จะพิจารณาว่าต้องทำตามคำร้องขอนั้นทันที่หรือรอเวลาไว้ก่อน Interrupt vector to dispatch interrupt to correct handler Based on priority Some unmaskable Interrupt mechanism also used for exceptions

16 Interrupt-Driven I/O Cycle

17 Intel Pentium Processor Event-Vector Table

18 Direct Memory Access การเคลื่อนย้ายข้อมูลจำนวนมากไม่นิยมใช้ programmed I/O แต่ใช้ DMA แทน จำเป็นต้องมี DMA controller การรับ-ส่งข้อมูลระหว่าง I/O กับหน่วยความจำสามารถทำได้โดยตรงโดยไม่ต้องผ่าน CPU

19 Six Step Process to Perform DMA Transfer

20 Application I/O Interface
I/O system calls จะห่อหุ้มพฤติกรรมของอุปกรณ์ให้อยู่ในชั้นทั่วไป ในชั้นของตัวขับอุปกรณ์ (Device driver Layer) ถูกซ่อนไว้ระหว่างระบบย่อยนำเข้าส่งออกกับตัวขับอุปกรณ์ ประเภทของอุปกรณ์แบ่งตามคุณลักษณะการรับส่งข้อมูล Character-stream or block Sequential or random-access Sharable or dedicated Speed of operation read-write, read only, or write only

21 A Kernel I/O Structure

22 Characteristics of I/O Devices

23 อุปกรณ์แบบบล็อกและแบบอักขระ Block and Character Devices
Block devices ได้แก่ disk drives Command ประกอบด้วย read, write, seek Raw I/O หรือ file-system access อาจใช้การเข้าถึงแฟ้มแบบ Memory-mapped Character devices ประกอบด้วย keyboards, mice, serial ports Commands ประกอบด้วย get, put Libraries layered on top allow line editing

24 Network Devices จะมีส่วนต่อประสานเป็นของตัวเองที่เพียงพอสำหรับบล็อกและอักขระ Unix และ Windows NT/9i/2000 ใช้ socket interface แยก network protocol ออกจาก network operation Includes select functionality เป็นวิธีการที่ใช้อย่างแพร่หลาย (pipes, FIFOs, streams, queues, mailboxes)

25 นาฬิกาและเวลา Clocks and Timers
บอก เวลาปัจจุบัน, เวลาที่ผ่านไปแล้ว, การตั้งเวลา อุปกรณ์บอกเวลาที่ใช้ผ่านไปแล้วและการตั้งเวลาเพื่อคำนวณการส่งสัญญาณ เรียกว่า programmable interval timer ใช้เพื่อตั้งเวลา, กำหนดช่วงเวลาของ interrupts

26 Blocking and Nonblocking I/O
Blocking – กระบวนการจะถูกหยุดพักชั่วคราวจนกว่า I/O completed ง่ายต่อการใช้และเข้าใจ เพียงพอต่อความต้องการบางประการ Nonblocking - I/O จะถูกเรียกกลับมาเมื่อว่าง งานที่มีการประมวลผลยังทำงานได้จนเสร็จสิ้น แล้วจึงเรียกสัญญาณขัดจังหวะ เพื่อนำกระบวนการทั้งหมดที่มีการเรียกระบบมาติดต่อเข้าด้วยกัน Asynchronous – กระบวนการก็รันไปในขณะที่ I/O ก็ executes ไป ใช้งานยาก I/O subsystem ส่งสัญญาณไปยังกระบวนการ เมื่อ I/O completed

27 Kernel I/O Subsystem การจัดตาราง I/O (Scheduling)
บาง I/O request มีการจัดลำดับผ่านคิวของแต่ละอุปกรณ์ บาง OS มีการจัดการเรื่องความเป็นธรรม Buffering - เก็บข้อมูลในหน่วยความจำในระหว่างการถ่ายโอนข้อมูลระหว่างอุปกรณ์ เพื่อรับมือกับอุปกรณ์ที่มีความเร็วต่างกันมาก เพื่อรับมือกับอุปกรณ์ที่มีขนาดการถ่ายโอนข้อมูลต่างกัน เพื่อสนับสนุนการทำงานแบบการสำรองข้อมูลที่เหมือนกัน (copy semantics)

28 Sun Enterprise 6000 Device-Transfer Rates

29 Kernel I/O Subsystem Caching - หน่วยความจำความเร็วสูงใช้เก็บสำเนาข้อมูล มักใช้ในการสำเนา ใช้เพิ่มประสิทธิภาพเป็นหลัก Spooling - เก็บผลลัพธ์ของอุปกรณ์ ใช้ในกรณีที่อุปกรณ์นั้นสามารถรองรับการทำงานได้เพียงครั้งละหนึ่งงานในเวลาเดียวกัน เช่น การพิมพ์ การสงวนอุปกรณ์ (Device reservation) – ทำให้การเข้าถึงอุปกรณ์แบบ exclusive System calls สำหรับจัดสรรและคืนการจัดสรร ระวังการเกิด deadlock สำหรับการร้องขออุปกรณ์

30 การจัดการข้อผิดพลาด Error Handling
OS สามารถปกป้องข้อผิดพลาดที่จะเกิดจากการอ่านดิสก์, อุปกรณ์ยังไม่พร้อมใช้งาน, การขัดข้องของการเขียน OS จะส่งคืน error number หรือ code เมื่อ I/O request เกิดล้มเหลว System error logs จะบันทึกรายงานปัญหาที่เกิดขึ้น

31 Kernel Data Structures
Kernel เก็บข้อมูลสถานะสำหรับ I/O components, ประกอบด้วย open file tables, network connections, character device state โครงสร้างข้อมูลมีความซับซ้อนสูงเพื่อใช้แกะรอยบัฟเฟอร์, ตำแหน่งหน่วยความจำ และ “dirty” blocks การใช้ object-oriented methods บางชนิด และ message passing ในการใช้งาน I/O

32 UNIX I/O Kernel Structure

33 I/O Requests to Hardware Operations
การอ่านแฟ้มจากดิสก์สำหรับกระบวนการ: พิจารณาอุปกรณ์เก็บแฟ้ม แปลงชื่อในการแทนอุปกรณ์ อ่านข้อมูลเชิงกายภาพจากดิสก์ไปยังบัฟเฟอร์ สร้างข้อมูลให้พร้อมใช้งานไปยังกระบวนการที่ร้องขอ ส่งคืนการควบคุมไปยังกระบวนการ

34 Life Cycle of An I/O Request

35 STREAMS STREAM – คือช่องทางการสื่อสารแบบ full-duplex ระหว่าง a user-level process กับ a device A STREAM ประกอบด้วย: - STREAM head ส่วนต่อประสานกับกระบวนการผู้ใช้ - driver end ส่วนต่อประสานกับอุปกรณ์ - zero หรือ more STREAM modules ระหว่าง อุปกรณ์และกระบวนการเหล่านั้น แต่ละมอดูลบรรจุด้วย a read queue และ a write queue ใช้ Message passing ในการสื่อสารระหว่างคิว

36 The STREAMS Structure

37 Performance I/O เป็นปัจจัยหลักในเรื่องประสิทธิภาพของระบบ
ความต้องการ CPU ในการ execute device driver, kernel I/O code การสลับบริบท (Context switches) เมื่อมีการ interrupts การทำสำเนาข้อมูล (Data copying) ความคับคั่งของการจราจรเครือข่าย (Network traffic especially stressful)

38 Intercomputer Communications

39 การปรับปรุงประสิทธิภาพ Improving Performance
ลดจำนวนการสลับบริบท (Reduce number of context switches) ลดการทำสำเนาข้อมูล (Reduce data copying) ลด interrupts โดยใช้การถ่ายโอนครั้งละจำนวนมาก, ตัวควบคุมที่ฉลาด (smart controllers), และ polling ใช้ DMA สร้างสมดุลประสิทธิภาพของ CPU, memory, bus, และ I/O เพื่อให้ได้ปริมาณงานสูงสุด (highest throughput)

40 Device-Functionality Progression


ดาวน์โหลด ppt ระบบรับเข้าและส่งออก I/O Systems

งานนำเสนอที่คล้ายกัน


Ads by Google