Advanced Operating Systems: Lecture 36 - Mr. Farhan Zaidi

17 4 0
Advanced Operating Systems: Lecture 36 - Mr. Farhan Zaidi

Đang tải... (xem toàn văn)

Tài liệu hạn chế xem trước, để xem đầy đủ mời bạn chọn Tải xuống

Thông tin tài liệu

Advanced Operating Systems - Lecture 36: Device-independent I/O software. This lecture will cover the following: device independent I/O software layer; buffered and un-buffered I/O; block and character devices; network devices; kernel I/O subsystem and data structures; life cycle of a typical I/O request;...

CS703 ­ Advanced  Operating Systems By Mr Farhan Zaidi Lecture No.  36 Overview of today’s lecture        Device independent I/O software layer Buffered and un-buffered I/O Block and character devices Network devices Kernel I/O subsystem and data structures Life cycle of a typical I/O request Life cycle of a typical network I/O request Device­Independent I/O Software Uniform interfacing for device drivers Buffering Error reporting Allocating and releasing dedicated devices Providing a device-independent block size Functions of the device-independent I/O software Device­Independent I/O Software Usually interfaces to device drivers through a standard interface Buffering options (1) Unbuffered input (2) Buffering in user space (3) Buffering in the kernel followed by copying to user space (4) Double buffering in the kernel Block and Character Devices Block devices include disk drives – Commands include read, write, seek  – Raw I/O or file­system access – Memory­mapped file access possible Character devices include keyboards, mice, serial ports – Commands include get, put – Libraries layered on top allow line editing Network Devices Varying enough from block and character to have own  interface Unix and Windows NT/9i/2000/XP include socket  interface – Separates network protocol from network operation – Includes select functionality Approaches vary widely (pipes, FIFOs, streams, queues,  mailboxes) Clocks and Timers Provide current time, elapsed time, timer Programmable interval timer used for timings, periodic  interrupts ioctl (on UNIX) covers odd aspects of I/O such as  clocks and timers Blocking and Nonblocking I/O Blocking ­ process suspended until I/O completed – Easy to use and understand – Insufficient for some needs Nonblocking ­ I/O call returns as much as available – User interface, data copy (buffered I/O) – Implemented via multi­threading inside the kernel – Returns quickly with count of bytes read or written Asynchronous ­ process runs while I/O executes – Difficult to use – I/O subsystem signals process when I/O completed Kernel I/O Subsystem Scheduling – Some I/O request ordering via per­device queue – Some OSs try fairness Buffering ­ store data in memory while transferring  between devices – To cope with device speed mismatch – To cope with device transfer size mismatch – To maintain “copy semantics” Kernel I/O Subsystem Caching ­ fast memory holding copy of data – Always just a copy – Key to performance Spooling ­ hold output for a device from multiple sources – If device can serve only one request at a time  – i.e., Printing Device reservation ­ provides exclusive access to a device – System calls for allocation and deallocation – Watch out for deadlock Error Handling OS can recover from disk read, device unavailable,  transient write failures Most return an error number or code when I/O request  fails  System error logs hold problem reports Kernel Data Structures Kernel keeps state info for I/O components, including open  file tables, network connections, character device state Many, many complex data structures to track buffers,  memory allocation, “dirty” blocks Some use object­oriented methods and message passing to  implement I/O Unix I/O Kernel Structure Improving Performance Reduce number of context switches Reduce data copying  Reduce interrupts by using large transfers, smart  controllers, polling  Use DMA Balance CPU, memory, bus, and I/O performance for  highest throughput Life Cycle of An I/O Request Inter­computer Communications .. .Lecture? ?No.  36 Overview of today’s? ?lecture        Device independent I/O software layer Buffered and un-buffered I/O Block and character devices... Error reporting Allocating and releasing dedicated devices Providing a device-independent block size Functions of the device-independent I/O software Device­Independent I/O Software Usually interfaces

Ngày đăng: 05/07/2022, 12:35

Mục lục

    CS703 - Advanced Operating Systems

    Overview of today’s lecture

    Device-Independent I/O Software

    Block and Character Devices

    Blocking and Nonblocking I/O

    Kernel I/O Subsystem

    Life Cycle of An I/O Request

Tài liệu cùng người dùng

  • Đang cập nhật ...

Tài liệu liên quan