1. Trang chủ
  2. » Công Nghệ Thông Tin

Advanced Operating Systems: Lecture 36 - Mr. Farhan Zaidi

17 5 0

Đ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

Thông tin cơ bản

Định dạng
Số trang 17
Dung lượng 517,93 KB

Các công cụ chuyển đổi và chỉnh sửa cho tài liệu này

Nội dung

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;...

Trang 1

CS703 ­ Advanced  Operating Systems

By Mr Farhan Zaidi

Trang 2

36

Trang 3

Overview of today’s lecture

Trang 4

Functions of the device-independent I/O software

Uniform interfacing for device drivers

Buffering

Error reporting

Allocating and releasing dedicated devices Providing a device-independent block size

Trang 5

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

Trang 6

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

Trang 7

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)

Trang 8

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

Trang 9

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

Trang 10

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”

Trang 11

Caching ­ fast memory holding copy of data

Spooling ­ hold output for a device from multiple sources

Device reservation ­ provides exclusive access to a device

– System calls for allocation and deallocation

– Watch out for deadlock

Trang 12

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

Trang 13

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

Kernel Data Structures

Trang 14

Unix I/O Kernel Structure

Trang 15

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

Improving Performance

Trang 16

Life Cycle of An I/O Request

Trang 17

Inter­computer Communications

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

TỪ KHÓA LIÊN QUAN