第八章ⅣO操作的实现 用户空间/0软件 I/O硬件与软件的接口 内核空间I/O软件
第八章 I/O操作的实现 用户空间I/O软件 I/O硬件与软件的接口 内核空间I/O软件
O和文件操作 °主要教学目标 通过揭示高级语言程序中的/o及文件操作请求的底层实 现机制,使学生深刻理解OS在输入「输出系统中的重要 作用;深刻理解计算机中硬件和软件如何协调工作以完 成计算机功能 °主要教学内容 IO子系统的组成和层次结构 用户空间Io软件 I/O硬件与软件的接口 内核空间I/o软件
I/O和文件操作 ° 主要教学目标 – 通过揭示高级语言程序中的I/O及文件操作请求的底层实 现机制,使学生深刻理解OS在输入/输出系统中的重要 作用;深刻理解计算机中硬件和软件如何协调工作以完 成计算机功能。 ° 主要教学内容 – I/O子系统的组成和层次结构 – 用户空间I/O软件 – I/O硬件与软件的接口 – 内核空间I/O软件
O操作的实现 °分以下三个部分介绍 第一讲:用户空间Io软件 I/O子系统概述 文件的基本概念 用户空间的O函数 第二讲:IO硬件和软件的接口 -I/O设备和设备控制器 I/o端口及其编址方式 I/O控制方式 第三讲:内核空间I/O软件 与设备无关的/O软件 设备驱动程序 中断服务程序
I/O操作的实现 ° 分以下三个部分介绍 • 第一讲:用户空间I/O软件 - I/O子系统概述 - 文件的基本概念 - 用户空间的I/O函数 • 第二讲:I/O硬件和软件的接口 - I/O设备和设备控制器 - I/O端口及其编址方式 - I/O控制方式 • 第三讲:内核空间I/O软件 - 与设备无关的I/O软件 - 设备驱动程序 - 中断服务程序
复习:一个典型程序的转换处理过程 经典的“ helllo. c”源程序 helllo.c的ASC文本表示 #include <stdio.h> #i n cu d e s t di o int maino 3510511099108117100101326011511610010511146 h >\n \n i n t <sp> m a i n()\n 1046210101051101163210997105110404110123 printf("hello, world\n")E in <sp> <sp> <sp> <sp> pr in tf("he 10323232321121141051101161024034104101108 r d v );\n} 10811144321191111141081009211034415910125 intf hello. c pre hello,i compiler hello. s assembler hello. o linkerhello processor cc1 as (cpp) (1d) source modified assen nby relocatable execu program source program object obiect progra (text) programs program (text (binary)
复习:一个典型程序的转换处理过程 #include <stdio.h> int main() { printf("hello, world\n"); } 经典的“ hello.c ”源程序 # i n c l u d e < s p > < s t d i o . 35 105 110 99 108 117 100 101 32 60 115 116 100 105 111 46 h > \ n \ n i n t < s p > m a i n ( ) \ n { 104 62 10 10 105 110 116 32 109 97 105 110 40 41 10 123 \n <s p> <s p> < sp> <s p> p r i n t f ( " h e l 10 32 32 32 32 112 114 105 110 116 102 40 34 104 101 108 l o , < s p > w o r l d \ n " ) ; \ n } 108 111 44 32 119 111 114 108 100 92 110 34 41 59 10 125 hello.c的ASCII文本表示
复习:Heo程序的数据流动过程ne/eo hello, world Red:she命令行处理 CPU unIx register file Blue:可执行文件加载 yan: hello程序执行过程 LE PC ALU system bus memory bus Chello In mal Memory Interac bridge memory“ hello world/n lo bus Expansion slots for other devices such US graphics disk as network adapters controll adapter controller mouse keyboard displa chelo Chello, worldn disk Hello可执行文件 问题:hell程序何时被装?谁来装入?被谁启动?每次是否被装到相同的地 方?Hel程序是否能直接访问硬件资源?
复习:Hello程序的数据流动过程 “hello” Hello可执行文件 Red:shell命令行处理 Blue:可执行文件加载 Cyan:hello程序执行过程 “hello” “hello,world/n ” “hello,world/n” 问题:hello程序何时被装?谁来装入?被谁启动?每次是否被装到相同的地 方?Hello程序是否能直接访问硬件资源? Unix>./hello hello, world unix>