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

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




วิเ ชษฐ์ พลายมาศ | ระบบปฏิบ ต ิก าร (OS: Operating Systems) | ระบบรับเข้า/ส่งออก (I/O Systems) | 2
                            ั
Learning Objectives

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




วิเ ชษฐ์ พลายมาศ | ระบบปฏิบ ต ิก าร (OS: Operating Systems) | ระบบรับเข้า/ส่งออก (I/O Systems) | 3
                            ั
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




วิเ ชษฐ์ พลายมาศ | ระบบปฏิบ ต ิก าร (OS: Operating Systems) | ระบบรับเข้า/ส่งออก (I/O Systems) | 4
                            ั
A Typical PC Bus Structure




วิเ ชษฐ์ พลายมาศ | ระบบปฏิบ ต ิก าร (OS: Operating Systems) | ระบบรับเข้า/ส่งออก (I/O Systems) | 5
                            ั
Device I/O Port Locations on PCs
                                         (partial)




วิเ ชษฐ์ พลายมาศ | ระบบปฏิบ ต ิก าร (OS: Operating Systems) | ระบบรับเข้า/ส่งออก (I/O Systems) | 6
                            ั
คุณ สมบัต ิข องพอร์ต

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




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




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




วิเ ชษฐ์ พลายมาศ | ระบบปฏิบ ต ิก าร (OS: Operating Systems) | ระบบรับเข้า/ส่งออก (I/O Systems) | 9
                            ั
การสำา รวจความต้อ งการ
                                                   (polling)
                      ทุกๆ ช่วงเวลาหนึง (Quantum time) ซีพียูจะหยุดงานที่ทำาอยู่
                                       ่
                      ชั่วคราว และเวียนไปตรวจเช็คที่แต่ละแชนแนลเพื่อดูวา มีอปกรณ์ตัว
                                                                       ่    ุ
                      ใดบ้างต้องการส่งข้อมูลมาให้ซีพียูจากอุปกรณ์แรกไปถึงอุปกรณ์
                      สุดท้าย
                      เช่น พวกคำาสั่ง JNB TF1 , $
                      แบบนีโปรแกรมจะทำาอะไรอย่างอืนไม่ได้เลย จะต้องรอจนกว่า
                            ้                          ่
                      เงือนไขจะเป็นจริง จึงทำาให้เสียเวลาไปโดยใช่เหตุ
                         ่

                      Determines state of device
                           command-ready
                           busy
                           Error

                      Busy-wait cycle to wait for I/O from device




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




วิเ ชษฐ์ พลายมาศ | ระบบปฏิบ ต ิก าร (OS: Operating Systems) | ระบบรับเข้า/ส่งออก (I/O Systems) | 11
                            ั
อัตราการส่งผ่านอุปกรณ์ของ Sun Enterprise 6000
                             ที่มา (IEEE Computer Society, 1996, p.65).


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




วิเ ชษฐ์ พลายมาศ | ระบบปฏิบ ต ิก าร (OS: Operating Systems) | ระบบรับเข้า/ส่งออก (I/O Systems) | 13
                            ั
การควบคุม การรับ เข้า ส่ง ออก

                      มีอยู่ 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 ไม่ต้องเกียวข้อง
                                                                    ่




วิเ ชษฐ์ พลายมาศ | ระบบปฏิบ ต ิก าร (OS: Operating Systems) | ระบบรับเข้า/ส่งออก (I/O Systems) | 14
                            ั
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




วิเ ชษฐ์ พลายมาศ | ระบบปฏิบ ต ิก าร (OS: Operating Systems) | ระบบรับเข้า/ส่งออก (I/O Systems) | 15
                            ั
Interrupt-Driven I/O Cycle




วิเ ชษฐ์ พลายมาศ | ระบบปฏิบ ต ิก าร (OS: Operating Systems) | ระบบรับเข้า/ส่งออก (I/O Systems) | 16
                            ั
Intel Pentium Processor Event-Vector
                                     Table




วิเ ชษฐ์ พลายมาศ | ระบบปฏิบ ต ิก าร (OS: Operating Systems) | ระบบรับเข้า/ส่งออก (I/O Systems) | 17
                            ั
Direct Memory Access

                      การเคลื่อนย้ายข้อมูลจำานวนมากไม่นิยมใช้ programmed I/O
                      แต่ใช้ DMA แทน

                      จำาเป็นต้องมี DMA controller

                      การรับ-ส่งข้อมูลระหว่าง I/O กับหน่วยความจำาสามารถทำาได้
                      โดยตรงโดยไม่ต้องผ่าน CPU




วิเ ชษฐ์ พลายมาศ | ระบบปฏิบ ต ิก าร (OS: Operating Systems) | ระบบรับเข้า/ส่งออก (I/O Systems) | 18
                            ั
Six Step Process to Perform DMA
                                       Transfer




วิเ ชษฐ์ พลายมาศ | ระบบปฏิบ ต ิก าร (OS: Operating Systems) | ระบบรับเข้า/ส่งออก (I/O Systems) | 19
                            ั
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




วิเ ชษฐ์ พลายมาศ | ระบบปฏิบ ต ิก าร (OS: Operating Systems) | ระบบรับเข้า/ส่งออก (I/O Systems) | 20
                            ั
A Kernel I/O Structure




วิเ ชษฐ์ พลายมาศ | ระบบปฏิบ ต ิก าร (OS: Operating Systems) | ระบบรับเข้า/ส่งออก (I/O Systems) | 21
                            ั
Characteristics of I/O Devices




วิเ ชษฐ์ พลายมาศ | ระบบปฏิบ ต ิก าร (OS: Operating Systems) | ระบบรับเข้า/ส่งออก (I/O Systems) | 22
                            ั
อุป กรณ์แ บบบล็อ กและแบบอัก ขระ
                            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




วิเ ชษฐ์ พลายมาศ | ระบบปฏิบ ต ิก าร (OS: Operating Systems) | ระบบรับเข้า/ส่งออก (I/O Systems) | 23
                            ั
Network Devices

                      จะมีส่วนต่อประสานเป็นของตัวเองที่เพียงพอสำาหรับบล็อกและ
                      อักขระ

                      Unix และ Windows NT/9i/2000 ใช้ socket interface
                        แยก network protocol ออกจาก network operation
                        Includes select functionality


                      เป็นวิธีการที่ใช้อย่างแพร่หลาย (pipes, FIFOs, streams,
                      queues, mailboxes)




วิเ ชษฐ์ พลายมาศ | ระบบปฏิบ ต ิก าร (OS: Operating Systems) | ระบบรับเข้า/ส่งออก (I/O Systems) | 24
                            ั
นาฬิก าและเวลา
                                                Clocks and Timers
                      บอก เวลาปัจจุบัน, เวลาที่ผานไปแล้ว, การตั้งเวลา
                                                ่

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




วิเ ชษฐ์ พลายมาศ | ระบบปฏิบ ต ิก าร (OS: Operating Systems) | ระบบรับเข้า/ส่งออก (I/O Systems) | 25
                            ั
Blocking and Nonblocking I/O

                      Blocking – กระบวนการจะถูกหยุดพักชั่วคราวจนกว่า I/O
                      completed
                        ง่ายต่อการใช้และเข้าใจ
                        เพียงพอต่อความต้องการบางประการ


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




วิเ ชษฐ์ พลายมาศ | ระบบปฏิบ ต ิก าร (OS: Operating Systems) | ระบบรับเข้า/ส่งออก (I/O Systems) | 26
                            ั
Kernel I/O Subsystem

                      การจัดตาราง I/O (Scheduling)
                        บาง I/O request มีการจัดลำาดับผ่านคิวของแต่ละอุปกรณ์
                        บาง OS มีการจัดการเรื่องความเป็นธรรม


                      Buffering - เก็บข้อมูลในหน่วยความจำาในระหว่างการถ่ายโอน
                      ข้อมูลระหว่างอุปกรณ์
                        เพื่อรับมือกับอุปกรณ์ทมีความเร็วต่างกันมาก
                                               ี่
                        เพื่อรับมือกับอุปกรณ์ทมีขนาดการถ่ายโอนข้อมูลต่างกัน
                                                  ี่
                        เพื่อสนับสนุนการทำางานแบบการสำารองข้อมูลทีเหมือนกัน (copy
                                                                   ่
                            semantics)




วิเ ชษฐ์ พลายมาศ | ระบบปฏิบ ต ิก าร (OS: Operating Systems) | ระบบรับเข้า/ส่งออก (I/O Systems) | 27
                            ั
Sun Enterprise 6000 Device-Transfer
                                        Rates




วิเ ชษฐ์ พลายมาศ | ระบบปฏิบ ต ิก าร (OS: Operating Systems) | ระบบรับเข้า/ส่งออก (I/O Systems) | 28
                            ั
Kernel I/O Subsystem

                      Caching - หน่วยความจำาความเร็วสูงใช้เก็บสำาเนาข้อมูล
                        มักใช้ในการสำาเนา
                        ใช้เพิมประสิทธิภาพเป็นหลัก
                               ่

                      Spooling - เก็บผลลัพธ์ของอุปกรณ์
                        ใช้ในกรณีทอุปกรณ์นั้นสามารถรองรับการทำางานได้เพียงครั้งละ
                                   ี่
                         หนึ่งงานในเวลาเดียวกัน
                        เช่น การพิมพ์


                      การสงวนอุปกรณ์ (Device reservation) – ทำาให้การเข้าถึง
                      อุปกรณ์แบบ exclusive
                        System calls สำาหรับจัดสรรและคืนการจัดสรร
                        ระวังการเกิด deadlock สำาหรับการร้องขออุปกรณ์




วิเ ชษฐ์ พลายมาศ | ระบบปฏิบ ต ิก าร (OS: Operating Systems) | ระบบรับเข้า/ส่งออก (I/O Systems) | 29
                            ั
การจัด การข้อ ผิด พลาด
                                               Error Handling
                      OS สามารถปกป้องข้อผิดพลาดที่จะเกิดจากการอ่านดิสก์,
                      อุปกรณ์ยงไม่พร้อมใช้งาน, การขัดข้องของการเขียน
                              ั

                      OS จะส่งคืน error number หรือ code เมื่อ I/O request เกิดล้ม
                      เหลว

                      System error logs จะบันทึกรายงานปัญหาที่เกิดขึ้น




วิเ ชษฐ์ พลายมาศ | ระบบปฏิบ ต ิก าร (OS: Operating Systems) | ระบบรับเข้า/ส่งออก (I/O Systems) | 30
                            ั
Kernel Data Structures

                      Kernel เก็บข้อมูลสถานะสำาหรับ I/O components, ประกอบ
                      ด้วย open file tables, network connections, character
                      device state

                      โครงสร้างข้อมูลมีความซับซ้อนสูงเพื่อใช้แกะรอยบัฟเฟอร์ ,
                      ตำาแหน่งหน่วยความจำา และ “dirty” blocks

                      การใช้ object-oriented methods บางชนิด และ message
                      passing ในการใช้งาน I/O




วิเ ชษฐ์ พลายมาศ | ระบบปฏิบ ต ิก าร (OS: Operating Systems) | ระบบรับเข้า/ส่งออก (I/O Systems) | 31
                            ั
UNIX I/O Kernel Structure




วิเ ชษฐ์ พลายมาศ | ระบบปฏิบ ต ิก าร (OS: Operating Systems) | ระบบรับเข้า/ส่งออก (I/O Systems) | 32
                            ั
I/O Requests to Hardware
                                         Operations
                      การอ่านแฟ้มจากดิสก์สำาหรับกระบวนการ:

                        พิจารณาอุปกรณ์เก็บแฟ้ม
                        แปลงชื่อในการแทนอุปกรณ์
                        อ่านข้อมูลเชิงกายภาพจากดิสก์ไปยังบัฟเฟอร์
                        สร้างข้อมูลให้พร้อมใช้งานไปยังกระบวนการที่ร้องขอ
                        ส่งคืนการควบคุมไปยังกระบวนการ




วิเ ชษฐ์ พลายมาศ | ระบบปฏิบ ต ิก าร (OS: Operating Systems) | ระบบรับเข้า/ส่งออก (I/O Systems) | 33
                            ั
Life Cycle of An I/O Request




วิเ ชษฐ์ พลายมาศ | ระบบปฏิบ ต ิก าร (OS: Operating Systems) | ระบบรับเข้า/ส่งออก (I/O Systems) | 34
                            ั
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 ในการสื่อสารระหว่างคิว




วิเ ชษฐ์ พลายมาศ | ระบบปฏิบ ต ิก าร (OS: Operating Systems) | ระบบรับเข้า/ส่งออก (I/O Systems) | 35
                            ั
The STREAMS Structure




วิเ ชษฐ์ พลายมาศ | ระบบปฏิบ ต ิก าร (OS: Operating Systems) | ระบบรับเข้า/ส่งออก (I/O Systems) | 36
                            ั
Performance

                      I/O เป็นปัจจัยหลักในเรื่องประสิทธิภาพของระบบ

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




วิเ ชษฐ์ พลายมาศ | ระบบปฏิบ ต ิก าร (OS: Operating Systems) | ระบบรับเข้า/ส่งออก (I/O Systems) | 37
                            ั
Intercomputer Communications




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




วิเ ชษฐ์ พลายมาศ | ระบบปฏิบ ต ิก าร (OS: Operating Systems) | ระบบรับเข้า/ส่งออก (I/O Systems) | 39
                            ั
Device-Functionality Progression




วิเ ชษฐ์ พลายมาศ | ระบบปฏิบ ต ิก าร (OS: Operating Systems) | ระบบรับเข้า/ส่งออก (I/O Systems) | 40
                            ั

9 ca-io systems structure (wichet p.'s conflicted copy 2012-12-17)

  • 1.
    โครงสร้า งระบบรับ เข้า และส่ง ออก I/O Systems Structure
  • 2.
    I/O Systems I/O Hardware Application I/O Interface Kernel I/O Subsystem Transforming I/O Requests to Hardware Operations Streams Performance วิเ ชษฐ์ พลายมาศ | ระบบปฏิบ ต ิก าร (OS: Operating Systems) | ระบบรับเข้า/ส่งออก (I/O Systems) | 2 ั
  • 3.
    Learning Objectives เพื่อศึกษาถึงแนวคิดด้านการจัดการอุปกรณ์รับเข้าและส่งออก เพื่อเข้าใจถึงหน้าที่ของระบบปฏิบัติการในการจัดการเกี่ยวกับ ระบบรับเข้าและส่งออก วิเ ชษฐ์ พลายมาศ | ระบบปฏิบ ต ิก าร (OS: Operating Systems) | ระบบรับเข้า/ส่งออก (I/O Systems) | 3 ั
  • 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 วิเ ชษฐ์ พลายมาศ | ระบบปฏิบ ต ิก าร (OS: Operating Systems) | ระบบรับเข้า/ส่งออก (I/O Systems) | 4 ั
  • 5.
    A Typical PCBus Structure วิเ ชษฐ์ พลายมาศ | ระบบปฏิบ ต ิก าร (OS: Operating Systems) | ระบบรับเข้า/ส่งออก (I/O Systems) | 5 ั
  • 6.
    Device I/O PortLocations on PCs (partial) วิเ ชษฐ์ พลายมาศ | ระบบปฏิบ ต ิก าร (OS: Operating Systems) | ระบบรับเข้า/ส่งออก (I/O Systems) | 6 ั
  • 7.
    คุณ สมบัต ิของพอร์ต พอร์ตเอาท์พุต (output port) คือต้องสามารถดึงกระแสเข้า และ จ่ายกระแส ออกได้ และต้องมีเอ้าท์อินพีแดนซ์ (out impedance) ตำ่า พอร์ตอินพุต (input port) คือ ต้องมีอิมพีแดนซ์ (impedance) สูง จะตรวจจับแรงดัน สัญญาณที่เข้ามาว่าเป็น 1 หรือ 0 มีเรจิสเตอร์ 4 ตัว  เรจิสเตอร์สถานะ (status register)  เรจิสเตอร์ควบคุม (control register)  เรจิสเตอร์ข้อมูลเข้า (data-in register)  เรจิสเตอร์ข้อมูลออก (data-out register) เรจิสเตอร์สถานะบรรจุบิตแสดงการอ่านโดยโฮสต์ (host) วิเ ชษฐ์ พลายมาศ | ระบบปฏิบ ต ิก าร (OS: Operating Systems) | ระบบรับเข้า/ส่งออก (I/O Systems) | 7 ั
  • 8.
    ตัว ขับ อุปกรณ์ Device Driver หากบรรจุโปรแกรมควบคุมอุปกรณ์ I/O ทั้งหมดเข้าไว้ใน OS จะ ทำาให้ OS มีขนาดเทอะทะ ไม่ยดหยุน และมีค่าใช้จ่ายสูงในการ ื ่ upgrade OS แต่ละครั้ง จึงต้องแยกโปรแกรมควบคุมอุปกรณ์ออกมาเป็นส่วนหนึ่งต่าง หาก เรียกว่า ตัวขับอุปกรณ์ (device driver) ลักษณะเช่นนี้ OS ไม่จำาเป็นต้องรู้จักลักษณะการทำางานของ อุปกรณ์ต่าง ๆ ปล่อยให้เป็นหน้าที่ของตัวขับอุปกรณ์ชนิดนั้นๆ OS รู้เพียงแต่การติดต่อและควบคุมอุปกรณ์ผ่านทางตัวขับ อุปกรณ์เท่านั้น วิเ ชษฐ์ พลายมาศ | ระบบปฏิบ ต ิก าร (OS: Operating Systems) | ระบบรับเข้า/ส่งออก (I/O Systems) | 8 ั
  • 9.
    อุป กรณ์เ สมือน Virtual Device คือการนำาเอาอุปกรณ์ชนิดหนึ่งมาจำาลองการทำางานเป็นอุปกรณ์ อีกชนิดหนึ่ง เพื่อก่อให้เกิดความคล่องตัวในการทำางานของระบบ ตัวอย่างของการทำาอุปกรณ์เสมือนก็คือ การทำาแรมดิสก์ (Ram disk) การติดต่อควบคุมแรมดิสก์นี้ ทำาได้โดยผ่านโปรแกรมที่ทำาหน้าที่ จำาลองหน่วยความจำาเป็นดิสก์ เรียกว่า ตัวขับอุปกรณ์เสมือน (virtual device driver) การทำา SPOOL (Simultaneous peripheral operation on- line) ซึ่งเป็นการใช้ใช้ดิสก์แทนเครื่องพิมพ์ โดยมีโปรเซสหนึ่งของ OS ชื่อ SPOOLER ทำาหน้าที่จัดการ เรื่องการทำา SPOOL ของระบบ วิเ ชษฐ์ พลายมาศ | ระบบปฏิบ ต ิก าร (OS: Operating Systems) | ระบบรับเข้า/ส่งออก (I/O Systems) | 9 ั
  • 10.
    การสำา รวจความต้อ งการ (polling) ทุกๆ ช่วงเวลาหนึง (Quantum time) ซีพียูจะหยุดงานที่ทำาอยู่ ่ ชั่วคราว และเวียนไปตรวจเช็คที่แต่ละแชนแนลเพื่อดูวา มีอปกรณ์ตัว ่ ุ ใดบ้างต้องการส่งข้อมูลมาให้ซีพียูจากอุปกรณ์แรกไปถึงอุปกรณ์ สุดท้าย เช่น พวกคำาสั่ง JNB TF1 , $ แบบนีโปรแกรมจะทำาอะไรอย่างอืนไม่ได้เลย จะต้องรอจนกว่า ้ ่ เงือนไขจะเป็นจริง จึงทำาให้เสียเวลาไปโดยใช่เหตุ ่ Determines state of device  command-ready  busy  Error Busy-wait cycle to wait for I/O from device วิเ ชษฐ์ พลายมาศ | ระบบปฏิบ ต ิก าร (OS: Operating Systems) | ระบบรับเข้า/ส่งออก (I/O Systems) | 10 ั
  • 11.
    มอดูล ของการรับ ส่งข้อ มูล Data Transfer Module I/O module Functionality  การควบคุมและการจับเวลา  การสื่อสารระหว่างโปรเซส  การสื่อสารระหว่างอุปกรณ์  การจัดการบัฟเฟอร์  การตรวจสอบข้อผิดพลาด มอดูลการรับเข้าและส่งออกจะต้องสื่อสารกับโปรเซสเซอร์และ สื่อสารกับภายนอก เกี่ยวข้องกับ  การถอดรหัสคำาสั่ง (command decoding),  ข้อมูล (data),  การรายงานสถานะ (status reporting)  การรับรู้ทอยู่ (address recognition) ี่ วิเ ชษฐ์ พลายมาศ | ระบบปฏิบ ต ิก าร (OS: Operating Systems) | ระบบรับเข้า/ส่งออก (I/O Systems) | 11 ั
  • 12.
    อัตราการส่งผ่านอุปกรณ์ของ Sun Enterprise6000 ที่มา (IEEE Computer Society, 1996, p.65). วิเ ชษฐ์ พลายมาศ | ระบบปฏิบ ต ิก าร (OS: Operating Systems) | ระบบรับเข้า/ส่งออก (I/O Systems) | 12 ั
  • 13.
    โครงสร้า งของมอดูล การรับเข้า และส่ง ออก I/O Module Structure ทำาหน้าที่อำานวยความสะดวก ให้โปรเซสเซอร์สามารถควบคุม การทำางานของอุปกรณ์รับเข้าส่งออกต่างๆได้ง่าย I/O Module ทำางานหนักด้วยตัวเอง โดยจะเชื่อมต่อกับ โปรเซสเซอร์เรียกว่า ช่องสื่อสารการรับเข้าส่งออก (I/O channels) หรือ ไอโอโปรเซสเซอร์ (I/O processor) I/O Module ที่ทำางานน้อย และต้องอาศัยการควบคุมจาก โปรเซสเซอร์โดยตรงเรียกว่า หน่วยควบคุมการรับเข้าส่งออก (I/O controller) หรือหน่วยควบคุมอุปกรณ์ (device controller) วิเ ชษฐ์ พลายมาศ | ระบบปฏิบ ต ิก าร (OS: Operating Systems) | ระบบรับเข้า/ส่งออก (I/O Systems) | 13 ั
  • 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 ไม่ต้องเกียวข้อง ่ วิเ ชษฐ์ พลายมาศ | ระบบปฏิบ ต ิก าร (OS: Operating Systems) | ระบบรับเข้า/ส่งออก (I/O Systems) | 14 ั
  • 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 วิเ ชษฐ์ พลายมาศ | ระบบปฏิบ ต ิก าร (OS: Operating Systems) | ระบบรับเข้า/ส่งออก (I/O Systems) | 15 ั
  • 16.
    Interrupt-Driven I/O Cycle วิเชษฐ์ พลายมาศ | ระบบปฏิบ ต ิก าร (OS: Operating Systems) | ระบบรับเข้า/ส่งออก (I/O Systems) | 16 ั
  • 17.
    Intel Pentium ProcessorEvent-Vector Table วิเ ชษฐ์ พลายมาศ | ระบบปฏิบ ต ิก าร (OS: Operating Systems) | ระบบรับเข้า/ส่งออก (I/O Systems) | 17 ั
  • 18.
    Direct Memory Access การเคลื่อนย้ายข้อมูลจำานวนมากไม่นิยมใช้ programmed I/O แต่ใช้ DMA แทน จำาเป็นต้องมี DMA controller การรับ-ส่งข้อมูลระหว่าง I/O กับหน่วยความจำาสามารถทำาได้ โดยตรงโดยไม่ต้องผ่าน CPU วิเ ชษฐ์ พลายมาศ | ระบบปฏิบ ต ิก าร (OS: Operating Systems) | ระบบรับเข้า/ส่งออก (I/O Systems) | 18 ั
  • 19.
    Six Step Processto Perform DMA Transfer วิเ ชษฐ์ พลายมาศ | ระบบปฏิบ ต ิก าร (OS: Operating Systems) | ระบบรับเข้า/ส่งออก (I/O Systems) | 19 ั
  • 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 วิเ ชษฐ์ พลายมาศ | ระบบปฏิบ ต ิก าร (OS: Operating Systems) | ระบบรับเข้า/ส่งออก (I/O Systems) | 20 ั
  • 21.
    A Kernel I/OStructure วิเ ชษฐ์ พลายมาศ | ระบบปฏิบ ต ิก าร (OS: Operating Systems) | ระบบรับเข้า/ส่งออก (I/O Systems) | 21 ั
  • 22.
    Characteristics of I/ODevices วิเ ชษฐ์ พลายมาศ | ระบบปฏิบ ต ิก าร (OS: Operating Systems) | ระบบรับเข้า/ส่งออก (I/O Systems) | 22 ั
  • 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 วิเ ชษฐ์ พลายมาศ | ระบบปฏิบ ต ิก าร (OS: Operating Systems) | ระบบรับเข้า/ส่งออก (I/O Systems) | 23 ั
  • 24.
    Network Devices จะมีส่วนต่อประสานเป็นของตัวเองที่เพียงพอสำาหรับบล็อกและ อักขระ Unix และ Windows NT/9i/2000 ใช้ socket interface  แยก network protocol ออกจาก network operation  Includes select functionality เป็นวิธีการที่ใช้อย่างแพร่หลาย (pipes, FIFOs, streams, queues, mailboxes) วิเ ชษฐ์ พลายมาศ | ระบบปฏิบ ต ิก าร (OS: Operating Systems) | ระบบรับเข้า/ส่งออก (I/O Systems) | 24 ั
  • 25.
    นาฬิก าและเวลา Clocks and Timers บอก เวลาปัจจุบัน, เวลาที่ผานไปแล้ว, การตั้งเวลา ่ อุปกรณ์บอกเวลาที่ใช้ผ่านไปแล้วและการตั้งเวลาเพื่อคำานวณ การส่งสัญญาณ เรียกว่า programmable interval timer ใช้เพื่อ ตั้งเวลา, กำาหนดช่วงเวลาของ interrupts วิเ ชษฐ์ พลายมาศ | ระบบปฏิบ ต ิก าร (OS: Operating Systems) | ระบบรับเข้า/ส่งออก (I/O Systems) | 25 ั
  • 26.
    Blocking and NonblockingI/O Blocking – กระบวนการจะถูกหยุดพักชั่วคราวจนกว่า I/O completed  ง่ายต่อการใช้และเข้าใจ  เพียงพอต่อความต้องการบางประการ Nonblocking - I/O จะถูกเรียกกลับมาเมื่อว่าง  งานทีมีการประมวลผลยังทำางานได้จนเสร็จสิ้น แล้วจึงเรียก ่ สัญญาณขัดจังหวะ เพื่อนำากระบวนการทังหมดที่มการเรียกระบบมา ้ ี ติดต่อเข้าด้วยกัน Asynchronous – กระบวนการก็รันไปในขณะที่ I/O ก็ executes ไป  ใช้งานยาก  I/O subsystem ส่งสัญญาณไปยังกระบวนการ เมือ I/O completed ่ วิเ ชษฐ์ พลายมาศ | ระบบปฏิบ ต ิก าร (OS: Operating Systems) | ระบบรับเข้า/ส่งออก (I/O Systems) | 26 ั
  • 27.
    Kernel I/O Subsystem การจัดตาราง I/O (Scheduling)  บาง I/O request มีการจัดลำาดับผ่านคิวของแต่ละอุปกรณ์  บาง OS มีการจัดการเรื่องความเป็นธรรม Buffering - เก็บข้อมูลในหน่วยความจำาในระหว่างการถ่ายโอน ข้อมูลระหว่างอุปกรณ์  เพื่อรับมือกับอุปกรณ์ทมีความเร็วต่างกันมาก ี่  เพื่อรับมือกับอุปกรณ์ทมีขนาดการถ่ายโอนข้อมูลต่างกัน ี่  เพื่อสนับสนุนการทำางานแบบการสำารองข้อมูลทีเหมือนกัน (copy ่ semantics) วิเ ชษฐ์ พลายมาศ | ระบบปฏิบ ต ิก าร (OS: Operating Systems) | ระบบรับเข้า/ส่งออก (I/O Systems) | 27 ั
  • 28.
    Sun Enterprise 6000Device-Transfer Rates วิเ ชษฐ์ พลายมาศ | ระบบปฏิบ ต ิก าร (OS: Operating Systems) | ระบบรับเข้า/ส่งออก (I/O Systems) | 28 ั
  • 29.
    Kernel I/O Subsystem Caching - หน่วยความจำาความเร็วสูงใช้เก็บสำาเนาข้อมูล  มักใช้ในการสำาเนา  ใช้เพิมประสิทธิภาพเป็นหลัก ่ Spooling - เก็บผลลัพธ์ของอุปกรณ์  ใช้ในกรณีทอุปกรณ์นั้นสามารถรองรับการทำางานได้เพียงครั้งละ ี่ หนึ่งงานในเวลาเดียวกัน  เช่น การพิมพ์ การสงวนอุปกรณ์ (Device reservation) – ทำาให้การเข้าถึง อุปกรณ์แบบ exclusive  System calls สำาหรับจัดสรรและคืนการจัดสรร  ระวังการเกิด deadlock สำาหรับการร้องขออุปกรณ์ วิเ ชษฐ์ พลายมาศ | ระบบปฏิบ ต ิก าร (OS: Operating Systems) | ระบบรับเข้า/ส่งออก (I/O Systems) | 29 ั
  • 30.
    การจัด การข้อ ผิดพลาด Error Handling OS สามารถปกป้องข้อผิดพลาดที่จะเกิดจากการอ่านดิสก์, อุปกรณ์ยงไม่พร้อมใช้งาน, การขัดข้องของการเขียน ั OS จะส่งคืน error number หรือ code เมื่อ I/O request เกิดล้ม เหลว System error logs จะบันทึกรายงานปัญหาที่เกิดขึ้น วิเ ชษฐ์ พลายมาศ | ระบบปฏิบ ต ิก าร (OS: Operating Systems) | ระบบรับเข้า/ส่งออก (I/O Systems) | 30 ั
  • 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 วิเ ชษฐ์ พลายมาศ | ระบบปฏิบ ต ิก าร (OS: Operating Systems) | ระบบรับเข้า/ส่งออก (I/O Systems) | 31 ั
  • 32.
    UNIX I/O KernelStructure วิเ ชษฐ์ พลายมาศ | ระบบปฏิบ ต ิก าร (OS: Operating Systems) | ระบบรับเข้า/ส่งออก (I/O Systems) | 32 ั
  • 33.
    I/O Requests toHardware Operations การอ่านแฟ้มจากดิสก์สำาหรับกระบวนการ:  พิจารณาอุปกรณ์เก็บแฟ้ม  แปลงชื่อในการแทนอุปกรณ์  อ่านข้อมูลเชิงกายภาพจากดิสก์ไปยังบัฟเฟอร์  สร้างข้อมูลให้พร้อมใช้งานไปยังกระบวนการที่ร้องขอ  ส่งคืนการควบคุมไปยังกระบวนการ วิเ ชษฐ์ พลายมาศ | ระบบปฏิบ ต ิก าร (OS: Operating Systems) | ระบบรับเข้า/ส่งออก (I/O Systems) | 33 ั
  • 34.
    Life Cycle ofAn I/O Request วิเ ชษฐ์ พลายมาศ | ระบบปฏิบ ต ิก าร (OS: Operating Systems) | ระบบรับเข้า/ส่งออก (I/O Systems) | 34 ั
  • 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 ในการสื่อสารระหว่างคิว วิเ ชษฐ์ พลายมาศ | ระบบปฏิบ ต ิก าร (OS: Operating Systems) | ระบบรับเข้า/ส่งออก (I/O Systems) | 35 ั
  • 36.
    The STREAMS Structure วิเชษฐ์ พลายมาศ | ระบบปฏิบ ต ิก าร (OS: Operating Systems) | ระบบรับเข้า/ส่งออก (I/O Systems) | 36 ั
  • 37.
    Performance I/O เป็นปัจจัยหลักในเรื่องประสิทธิภาพของระบบ  ความต้องการ CPU ในการ execute device driver, kernel I/O code  การสลับบริบท (Context switches) เมื่อมีการ interrupts  การทำาสำาเนาข้อมูล (Data copying)  ความคับคั่งของการจราจรเครือข่าย (Network traffic especially stressful) วิเ ชษฐ์ พลายมาศ | ระบบปฏิบ ต ิก าร (OS: Operating Systems) | ระบบรับเข้า/ส่งออก (I/O Systems) | 37 ั
  • 38.
    Intercomputer Communications วิเ ชษฐ์พลายมาศ | ระบบปฏิบ ต ิก าร (OS: Operating Systems) | ระบบรับเข้า/ส่งออก (I/O Systems) | 38 ั
  • 39.
    การปรับ ปรุง ประสิทธิภ าพ Improving Performance ลดจำานวนการสลับบริบท (Reduce number of context switches) ลดการทำาสำาเนาข้อมูล (Reduce data copying) ลด interrupts โดยใช้การถ่ายโอนครั้งละจำานวนมาก, ตัวควบคุม ที่ฉลาด (smart controllers), และ polling ใช้ DMA สร้างสมดุลประสิทธิภาพของ CPU, memory, bus, และ I/O เพื่อ ให้ได้ปริมาณงานสูงสุด (highest throughput) วิเ ชษฐ์ พลายมาศ | ระบบปฏิบ ต ิก าร (OS: Operating Systems) | ระบบรับเข้า/ส่งออก (I/O Systems) | 39 ั
  • 40.
    Device-Functionality Progression วิเ ชษฐ์พลายมาศ | ระบบปฏิบ ต ิก าร (OS: Operating Systems) | ระบบรับเข้า/ส่งออก (I/O Systems) | 40 ั