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

Slides:



Advertisements
งานนำเสนอที่คล้ายกัน
การงานอาชีพและเทคโนโลยี เรื่อง อุปกรณ์คอมพิวเตอร์
Advertisements

กระบวนการ (Process).
ระบบปฏิบัติการ (Operating System : OS )
โครงสร้างของระบบปฏิบัติการ Operating System Structure
ระบบมัลติโปรแกรมมิ่ง (Multiprogramming System)
หน่วยการเรียนรู้ที่ 5 เรื่อง หลักการทำงานของคอมพิวเตอร์
Central Processing Unit
Software คือ ชุดคำสั่งหรือ ขั้นตอนการทำงานของคอมพิวเตอร์
ระบบคอมพิวเตอร์ (Computer System)
เรื่อง องค์ประกอบของคอมพิวเตอร์ จำทำโดย นาย เดชฤทธิ์ ร้อยพรหมมา
การเลือกซื้อสเปคคอม จัดทำโดย นาย ธนวัฒน์ แซ่ลิ้ม ม.4/2 เลขที่ 25
โครงสร้างของระบบคอมพิวเตอร์
การจัดการอุปกรณ์รับ และแสดงผล
หลักการทำงานคอมพิวเตอร์
หลักการทำงาน ของคอมพิวเตอร์
หลักการทำงานของคอมพิวเตอร์
ระบบเครือข่ายคอมพิวเตอร์
ARP (Address Resolution Protocol)
ระบบเครือข่ายคอมพิวเตอร์
Use Case Diagram.
ส่วนประกอบของคอมพิวเตอร์ (Personal Computer : PC)
Operating System ฉ NASA 4.
การออกแบบโปรแกรมอย่างมีโครงสร้าง Structured Design
การทำงานของคอมพิวเตอร์
โครงสร้างการทำงานของ OS
ปฏิบัติการประกอบเครื่องคอมพิวเตอร์
แนะนำรายวิชา ระบบปฏิบัติการ ภาคเรียนที่ 1/2557
องค์ประกอบของระบบคอมพิวเตอร์
Chapter 2 Database systems Architecture
CPU ไม่รวม I/O PROCESSOR , MATH CO-PROCESSOR
เมนบอร์ด (mainboard). เมนบอร์ด (mainboard) Mainboard             Mainboard หรือ mother board ถือได้ว่าเป็นอุปกรณ์ชิ้นสำคัญไม่แพ้กับ CPU เพราะหน้าทีหลัก.
โครงสร้างการจัดเก็บข้อมูลเชิงกายภาพ
ความรู้เบื้องต้นเกี่ยวกับระบบฐานข้อมูล
Memory Management ในยุคก่อน
หน่วยประมวลผลกลางและหน่วยความจำ Central Processing Unit and Memory
Charter 11 1 Chapter 11 ระบบปฏิบัติการ Operation System : OS.
เรื่ององค์ประกอบคอมพิวเตอร์
บทที่ 3 การวิเคราะห์ Analysis.
กิจกรรมที่ 1 ซอฟต์แวร์ระบบ จุดประสงค์ 1. บอกความหมายของซอฟต์แวร์
บทที่ 7 Deadlock Your company slogan.
วิชา เทคโนโลยีสารสนเทศ เรื่อง. หลักการทำงาน และ
ระบบคอมพิวเตอร์และการประมวลผล
Process.
การทำงานของคอมพิวเตอร์
เกียรติพงษ์ ยอดเยี่ยมแกร
กิจกรรมที่ 1 ซอฟต์แวร์ระบบ จุดประสงค์ 1. บอกความหมายของซอฟต์แวร์
บทที่ 3 การจ่ายงาน (Process Management).
หลักการทำงานของคอมพิวเตอร์
อธิบายหลักการทำงาน บทบาท และประโยชน์ของคอมพิวเตอร์
Interrupt.
โครงสร้างข้อมูล Queues
stack #2 ผู้สอน อาจารย์ ยืนยง กันทะเนตร
องค์ประกอบของคอมพิวเตอร์
หลักการเขียนโปรแกรม ( )
ระบบเครือข่ายคอมพิวเตอร์
Network Management and Design
Chapter 7 Input/Output I/O Module
Input / Output ธนวัฒน์ แซ่เอียบ.
องค์ประกอบของคอมพิวเตอร์
ระบบเครือข่ายคอมพิวเตอร์ เครือข่ายคอมพิวเตอร์ เครือข่ายคอมพิวเตอร์
โครงสร้างข้อมูลแบบ สแตก (stack)
หน่วยรับเข้า ทำหน้าที่รับข้อมูลจากผู้ใช้เข้าสู่หน่วยความจำหลัก ปัจจุบันมีสื่อต่าง ๆ ให้เลือกใช้ได้มากมาย แบ่งเป็นประเภทต่าง ๆ 1.แป้นพิมพ์ (Keyboard) 2.เมาส์
Integrated Network Card
ระบบคอมพิวเตอร์ และ การสื่อสาร กนกวรรธน์ เซี่ยงเจ็น สำนักวิชาเทคโนโลยีสารสนเทศ และการสื่อสาร มหาวิทยาลัยนเรศวร วิทยาเขต สารสนเทศพะเยา.
2 มิ. ย 2547 โดย วชิราวุธ ธรรมวิเศษ 1 บทที่ 1 แนะนำเทคโนโลยีจาวา Introduction to Java Technology.
วิชาเทคโนโลยีคอมพิวเตอร์และระบบปฏิบัติการ รหัสวิชา Computer Technology and Operating System บทที่ 1 เทคโนโลยีคอมพิวเตอร์ อ.รจนา วานนท์ Master.
ซอฟต์แวร์ (software) จัดทำโดย นาย ยุทธพงศ์ คำยอง
ส่วนประกอบของคอมพิวเตอร์
ระบบปฏิบัติการคอมพิวเตอร์ Operating System
ใบสำเนางานนำเสนอ:

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

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

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

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

A Typical PC Bus Structure

Device I/O Port Locations on PCs (partial)

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

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

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

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

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

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

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

การควบคุมการรับเข้าส่งออก มีอยู่ 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 ไม่ต้องเกี่ยวข้อง

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

Interrupt-Driven I/O Cycle

Intel Pentium Processor Event-Vector Table

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

Six Step Process to Perform DMA Transfer

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

A Kernel I/O Structure

Characteristics of I/O Devices

อุปกรณ์แบบบล็อกและแบบอักขระ 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

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

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

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

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

Sun Enterprise 6000 Device-Transfer Rates

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

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

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

UNIX I/O Kernel Structure

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

Life Cycle of An I/O Request

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 ในการสื่อสารระหว่างคิว

The STREAMS Structure

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

Intercomputer Communications

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

Device-Functionality Progression