. . . . . .
. . . . . . .
操作系统原理与设计
第 13 章 IO Systems(IO 管理) 陈香兰
中国科学技术大学计算机学院
May 28, 2014
陈香兰 (中国科学技术大学计算机学院) 操作系统原理与设计 May 28, 2014 1 / 41
13 IO Systems IO - - PowerPoint PPT Presentation
. . May 28, 2014 May 28, 2014 . . . . . . . . . . . 1 / 41 13 IO Systems IO ( )
. . . . . .
陈香兰 (中国科学技术大学计算机学院) 操作系统原理与设计 May 28, 2014 1 / 41
. . . . . .
1
2
3
4
5
6
陈香兰 (中国科学技术大学计算机学院) 操作系统原理与设计 May 28, 2014 2 / 41
. . . . . .
陈香兰 (中国科学技术大学计算机学院) 操作系统原理与设计 May 28, 2014 3 / 41
. . . . . .
陈香兰 (中国科学技术大学计算机学院) 操作系统原理与设计 May 28, 2014 4 / 41
. . . . . .
陈香兰 (中国科学技术大学计算机学院) 操作系统原理与设计 May 28, 2014 5 / 41
. . . . . .
陈香兰 (中国科学技术大学计算机学院) 操作系统原理与设计 May 28, 2014 6 / 41
. . . . . .
陈香兰 (中国科学技术大学计算机学院) 操作系统原理与设计 May 28, 2014 6 / 41
. . . . . .
1
2
陈香兰 (中国科学技术大学计算机学院) 操作系统原理与设计 May 28, 2014 6 / 41
. . . . . .
Device I/O Port Locations on PCs (partial)
陈香兰 (中国科学技术大学计算机学院) 操作系统原理与设计 May 28, 2014 6 / 41
. . . . . .
1 Polling (轮询方式)
2 Interrupts (中断方式)
3 DMA (DMA 方式)
4 (在汤书上:还有通道的概念) 陈香兰 (中国科学技术大学计算机学院) 操作系统原理与设计 May 28, 2014 7 / 41
. . . . . .
1
2
3
陈香兰 (中国科学技术大学计算机学院) 操作系统原理与设计 May 28, 2014 8 / 41
. . . . . .
1
2
3
4
5
6
陈香兰 (中国科学技术大学计算机学院) 操作系统原理与设计 May 28, 2014 8 / 41
. . . . . .
陈香兰 (中国科学技术大学计算机学院) 操作系统原理与设计 May 28, 2014 9 / 41
. . . . . .
CPU resumes processing of interrupted task 7 interrupt handler processes data, returns from interrupt 6 CPU receiveing interrupt, transfers control to interrupt handler 5 CPU executing checks for interrupts between instructions device driver initiates I/O 2 initiates I/O 3 input ready, output complete, or error generates interrupt signal 4 1 CPU I/O controller
陈香兰 (中国科学技术大学计算机学院) 操作系统原理与设计 May 28, 2014 9 / 41
. . . . . .
陈香兰 (中国科学技术大学计算机学院) 操作系统原理与设计 May 28, 2014 9 / 41
. . . . . .
vector number description vector number description divide error 11 segment no present 1 debug exception 12 stack fault 2 null interrupt 13 general protection 3 breakpoint 14 page fault 4 INTO-detected overflow 15 (Intel reserved, do not use) 5 bound range exception 16 floating-point error 6 invalid opcode 17 alignment check 7 device not available 18 machine check 8 double fault 19-31 (Intel reserved, do not use) 9 coprocessor segment overrun (reserved) 32-255 maskable interrupts 10 invalid task state segment 陈香兰 (中国科学技术大学计算机学院) 操作系统原理与设计 May 28, 2014 9 / 41
. . . . . .
陈香兰 (中国科学技术大学计算机学院) 操作系统原理与设计 May 28, 2014 10 / 41
. . . . . .
1
2
3
4
陈香兰 (中国科学技术大学计算机学院) 操作系统原理与设计 May 28, 2014 10 / 41
. . . . . .
陈香兰 (中国科学技术大学计算机学院) 操作系统原理与设计 May 28, 2014 10 / 41
. . . . . .
陈香兰 (中国科学技术大学计算机学院) 操作系统原理与设计 May 28, 2014 11 / 41
. . . . . .
陈香兰 (中国科学技术大学计算机学院) 操作系统原理与设计 May 28, 2014 12 / 41
. . . . . .
陈香兰 (中国科学技术大学计算机学院) 操作系统原理与设计 May 28, 2014 13 / 41
. . . . . .
software hardware SCSI devices keyboard mouse
PCI bus floppy- disk drives ATAPI devides (disks, tapes, drives) SCSI device controller keyboard device controller mouse device controller · · · PCI bus device controller floppy device controller ATAPI device controller SCSI device driver keyboard device driver mouse device driver
PCI bus device driver floppy device driver ATAPI device driver kernel I/O subsystem kernel
A Kernel I/O Structure 陈香兰 (中国科学技术大学计算机学院) 操作系统原理与设计 May 28, 2014 13 / 41
. . . . . .
陈香兰 (中国科学技术大学计算机学院) 操作系统原理与设计 May 28, 2014 14 / 41
. . . . . .
陈香兰 (中国科学技术大学计算机学院) 操作系统原理与设计 May 28, 2014 15 / 41
. . . . . .
陈香兰 (中国科学技术大学计算机学院) 操作系统原理与设计 May 28, 2014 16 / 41
. . . . . .
1 Block devices include disk drives
2 Character devices include keyboards, mice, serial ports
陈香兰 (中国科学技术大学计算机学院) 操作系统原理与设计 May 28, 2014 17 / 41
. . . . . .
陈香兰 (中国科学技术大学计算机学院) 操作系统原理与设计 May 28, 2014 18 / 41
. . . . . .
1
2
3
陈香兰 (中国科学技术大学计算机学院) 操作系统原理与设计 May 28, 2014 19 / 41
. . . . . .
1 Real Time Clock (RTC, 实时时钟)
陈香兰 (中国科学技术大学计算机学院) 操作系统原理与设计 May 28, 2014 19 / 41
. . . . . .
2 Time Stamp Counter (TSC, 时间戳计数器)
陈香兰 (中国科学技术大学计算机学院) 操作系统原理与设计 May 28, 2014 19 / 41
. . . . . .
3 Programmable Interval Timer (PIT, 可编程间隔定时器)
陈香兰 (中国科学技术大学计算机学院) 操作系统原理与设计 May 28, 2014 19 / 41
. . . . . .
陈香兰 (中国科学技术大学计算机学院) 操作系统原理与设计 May 28, 2014 20 / 41
. . . . . .
陈香兰 (中国科学技术大学计算机学院) 操作系统原理与设计 May 28, 2014 21 / 41
. . . . . .
1
2
3
4
5
6
陈香兰 (中国科学技术大学计算机学院) 操作系统原理与设计 May 28, 2014 22 / 41
. . . . . .
1
2
3
4
5
6
陈香兰 (中国科学技术大学计算机学院) 操作系统原理与设计 May 28, 2014 23 / 41
. . . . . .
陈香兰 (中国科学技术大学计算机学院) 操作系统原理与设计 May 28, 2014 24 / 41
. . . . . .
device: card reader 1 status: idle device: line printer 3 status: busy device: disk unit 1 status: idle device: disk unit 2 status: idle device: disk unit 3 status: busy
request for disk unit 3 file: xxx
address: 43046 length: 20000 request for disk unit 3 file: yyy
address: 03458 length: 500 request for line printer address: 38546 length: 1372 – –
陈香兰 (中国科学技术大学计算机学院) 操作系统原理与设计 May 28, 2014 24 / 41
. . . . . .
陈香兰 (中国科学技术大学计算机学院) 操作系统原理与设计 May 28, 2014 24 / 41
. . . . . .
1
2
3
陈香兰 (中国科学技术大学计算机学院) 操作系统原理与设计 May 28, 2014 25 / 41
. . . . . .
陈香兰 (中国科学技术大学计算机学院) 操作系统原理与设计 May 28, 2014 25 / 41
. . . . . .
1 Single buffer (单缓冲)
Compute (TC) workspace user APP buffer OS OS transfer TM I/O device device input TT t APP OS Device
b b b b
TT1 TM1 TC1
b b b b
TT2 TM1 TC1
b b b b
TT3 TM1 TC1 TT4 陈香兰 (中国科学技术大学计算机学院) 操作系统原理与设计 May 28, 2014 25 / 41
. . . . . .
2 Double buffer (双缓冲)
Compute (TC) workspace user APP
b b
buffer 2 buffer 1 OS
b b b b b b b b b b
I/O device
b b b b
t APP OS Device TT1 (buffer 1) TT2 (buffer 2) TT3 (buffer 1)
b b b b
TM1 TC1
b b b b
TM1 TC1
b b b b
TM1 TC1 陈香兰 (中国科学技术大学计算机学院) 操作系统原理与设计 May 28, 2014 25 / 41
. . . . . .
2 Double buffer (双缓冲)
陈香兰 (中国科学技术大学计算机学院) 操作系统原理与设计 May 28, 2014 25 / 41
. . . . . .
3 Circular buffer (循环缓冲)
4 Buffer pool (缓冲池)
陈香兰 (中国科学技术大学计算机学院) 操作系统原理与设计 May 28, 2014 25 / 41
. . . . . .
1 Caching - fast memory holding copy of data
2 Spooling - hold output for a device
3 Device reservation - provides exclusive access to a device
陈香兰 (中国科学技术大学计算机学院) 操作系统原理与设计 May 28, 2014 26 / 41
. . . . . .
陈香兰 (中国科学技术大学计算机学院) 操作系统原理与设计 May 28, 2014 27 / 41
. . . . . .
陈香兰 (中国科学技术大学计算机学院) 操作系统原理与设计 May 28, 2014 27 / 41
. . . . . .
陈香兰 (中国科学技术大学计算机学院) 操作系统原理与设计 May 28, 2014 28 / 41
. . . . . .
kernel user program
system call n
case n
read
1 trap to monitor 3 return to user 2 perform I/O
Use of a System Call to Perform I/O 陈香兰 (中国科学技术大学计算机学院) 操作系统原理与设计 May 28, 2014 29 / 41
. . . . . .
陈香兰 (中国科学技术大学计算机学院) 操作系统原理与设计 May 28, 2014 30 / 41
. . . . . .
kernel memory system-wide open-file table · · · · · · · · · · · · · · · · · · · · file-system record inode pointer pointer to read and write functions pointer to select function pointer to ioctl function pointer to close function networking (socket) record pointer to network info pointer to read and write functions pointer to select function pointer to ioctl function pointer to close function user-process memory file descriptor per-process
active-inode table network- information table
陈香兰 (中国科学技术大学计算机学院) 操作系统原理与设计 May 28, 2014 30 / 41
. . . . . .
陈香兰 (中国科学技术大学计算机学院) 操作系统原理与设计 May 28, 2014 31 / 41
. . . . . .
1
2
3
4
5
陈香兰 (中国科学技术大学计算机学院) 操作系统原理与设计 May 28, 2014 32 / 41
. . . . . .
time monitor device interrupt when I/O completed device controller I/O completed, generate interrupt interrupt interrupt handler receive interrupt, store data in device-driver buffer if input, sign to unblock device driver process request, issue commands to controller, configure controller to block until interrupted device-controller commands device driver determine which I/O completed, indicate state change to I/O subsystem send request to device driver, block process if appropriate kernel I/O subsystem can already satisfy request? no yes kernel I/O subsystem transfer data (if appropriate) to process, return conmpletion
return from system call request I/O system call user process I/O completed, input data available, or
陈香兰 (中国科学技术大学计算机学院) 操作系统原理与设计 May 28, 2014 33 / 41
. . . . . .
陈香兰 (中国科学技术大学计算机学院) 操作系统原理与设计 May 28, 2014 34 / 41
. . . . . .
陈香兰 (中国科学技术大学计算机学院) 操作系统原理与设计 May 28, 2014 35 / 41
. . . . . .
陈香兰 (中国科学技术大学计算机学院) 操作系统原理与设计 May 28, 2014 36 / 41
. . . . . .
陈香兰 (中国科学技术大学计算机学院) 操作系统原理与设计 May 28, 2014 37 / 41
. . . . . .
陈香兰 (中国科学技术大学计算机学院) 操作系统原理与设计 May 28, 2014 38 / 41
. . . . . .
陈香兰 (中国科学技术大学计算机学院) 操作系统原理与设计 May 28, 2014 39 / 41
. . . . . .
1
2
3
4
5
6
陈香兰 (中国科学技术大学计算机学院) 操作系统原理与设计 May 28, 2014 40 / 41
. . . . . .
陈香兰 (中国科学技术大学计算机学院) 操作系统原理与设计 May 28, 2014 41 / 41