版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、华中科技大学计算机学院华中科技大学计算机学院国家精品课程国家精品课程1 第八章第八章 设备管理设备管理华中科技大学计算机学院华中科技大学计算机学院国家精品课程国家精品课程28.1 8.1 概念概念8.1.1 8.1.1 引言引言计算机外部设备计算机外部设备 在计算机系统中除在计算机系统中除CPUCPU和内存储器外所有的和内存储器外所有的设备和装置称为计算机外部设备(外围设设备和装置称为计算机外部设备(外围设备)。备)。设备管理设备管理 设备管理是操作系统的一个重要的组成部设备管理是操作系统的一个重要的组成部分,负责管理系统中所有的外部设备。分,负责管理系统中所有的外部设备。华中科技大学计算机学
2、院华中科技大学计算机学院国家精品课程国家精品课程38.1.1 8.1.1 引言引言存储设备存储设备:用来存放信息的设备(如软盘、硬:用来存放信息的设备(如软盘、硬盘、光盘和磁带等);盘、光盘和磁带等);I/OI/O设备设备:信息输入和输出的设备(如键盘、鼠信息输入和输出的设备(如键盘、鼠标、显示器、打印机等)。标、显示器、打印机等)。华中科技大学计算机学院华中科技大学计算机学院国家精品课程国家精品课程48.1.1 引言种类繁多,特性各异。种类繁多,特性各异。华中科技大学计算机学院华中科技大学计算机学院国家精品课程国家精品课程58.1.1 引言1.1.速度速度 外部设备的传输速度的差别相当大,如
3、键盘的外部设备的传输速度的差别相当大,如键盘的传输速度不过几十,上百个字符,而磁盘的传传输速度不过几十,上百个字符,而磁盘的传输速度则是输速度则是6060万字节万字节/ /每秒。每秒。华中科技大学计算机学院华中科技大学计算机学院国家精品课程国家精品课程68.1.1 引言2.2.传输单位传输单位传输单位是指信息传输的基本单位。传输单位是指信息传输的基本单位。 字节(字节(bytebyte),如键盘、打印机、显示器;),如键盘、打印机、显示器; 字符块,如软盘、硬盘、磁带等;字符块,如软盘、硬盘、磁带等; 位(位(bitbit),如),如COM1COM1、COM2COM2、调制解调器等。、调制解调
4、器等。华中科技大学计算机学院华中科技大学计算机学院国家精品课程国家精品课程78.1.1 引言3.3.容许的操作容许的操作(操作特性)(操作特性) 设备完成的操作各不相同,如打印机只允许写设备完成的操作各不相同,如打印机只允许写操作,键盘只能做读操作,而磁盘可读写。操作,键盘只能做读操作,而磁盘可读写。4.4.出错条件出错条件 不同的设备,其出错条件也不相同,即数据传不同的设备,其出错条件也不相同,即数据传输失败的原因各种各样,如打印机有缺纸错,输失败的原因各种各样,如打印机有缺纸错,磁盘磁盘I/OI/O有奇偶校验错等有奇偶校验错等。华中科技大学计算机学院华中科技大学计算机学院国家精品课程国家精
5、品课程88.1.2 设计目标1.1.字符代码的独立性字符代码的独立性 现在使用的现在使用的ASCIIASCII码(美国信息交换标准码)码(美国信息交换标准码)2.2.设备独立性设备独立性3.3.效率效率4.4.设备处理的一致性设备处理的一致性华中科技大学计算机学院华中科技大学计算机学院国家精品课程国家精品课程98.1.3 功能1.1.状态跟踪状态跟踪 记录和存储设备的管理和控制信息,这些信息记录和存储设备的管理和控制信息,这些信息存放在设备控制块中。存放在设备控制块中。2.2.设备存取设备存取 实现对设备的存取操作实现对设备的存取操作。华中科技大学计算机学院华中科技大学计算机学院国家精品课程国
6、家精品课程108.1.3 功能3.3.设备分配设备分配在多用户的环境下,负责设备的分配和回收。在多用户的环境下,负责设备的分配和回收。4.4.设备控制设备控制设备控制包括设备驱动、完成和故障中断处理。设备控制包括设备驱动、完成和故障中断处理。华中科技大学计算机学院华中科技大学计算机学院国家精品课程国家精品课程118.1.4 设备独立性一、设备独立性一、设备独立性 设备独立性是指用户在编程序时所使用的设设备独立性是指用户在编程序时所使用的设备与实际设备无关。备与实际设备无关。华中科技大学计算机学院华中科技大学计算机学院国家精品课程国家精品课程128.1.4 设备独立性1.1.独立于设备类型。即在
7、用户程序中只指明独立于设备类型。即在用户程序中只指明I/OI/O使用的设备类型即可。使用的设备类型即可。2.2.程序中使用的设备与实际使用设备无关。即在程序中使用的设备与实际使用设备无关。即在用户程序中只要指出信息用户程序中只要指出信息I/OI/O。3.3.设备与文件的统一处理。设备的使用与文件的设备与文件的统一处理。设备的使用与文件的使用具有相同的语法和语义(使用具有相同的语法和语义(unixunix)。)。华中科技大学计算机学院华中科技大学计算机学院国家精品课程国家精品课程138.1.5 设备控制块一、设备控制块一、设备控制块设备控制块是设备管理的设备控制块是设备管理的数据结构,用来存放设
8、备数据结构,用来存放设备的管理和控制信息,每类的管理和控制信息,每类设备有一个设备控制块。设备有一个设备控制块。华中科技大学计算机学院华中科技大学计算机学院国家精品课程国家精品课程148.1.5 设备控制块二、设备开关表二、设备开关表设备开关表存放设备驱设备开关表存放设备驱动程序和控制程序入口动程序和控制程序入口地址。地址。华中科技大学计算机学院华中科技大学计算机学院国家精品课程国家精品课程158.2 缓冲技术 8.2.1 问题的提出CPUCPU与设备、设备与设备之间与设备、设备与设备之间的速度的差异也很大。的速度的差异也很大。I/OI/O负荷的不均匀负荷的不均匀华中科技大学计算机学院华中科技
9、大学计算机学院国家精品课程国家精品课程16 缓冲是用来在两种不同速度的设备之间传输信缓冲是用来在两种不同速度的设备之间传输信息时平滑传输过程的常用手段。息时平滑传输过程的常用手段。( (教材教材) ) 缓冲技术是用来匹配缓冲技术是用来匹配CPUCPU与设备之间速度差异与设备之间速度差异和负荷的不均匀。和负荷的不均匀。 常用的缓冲技术有三种:常用的缓冲技术有三种: 双缓冲、环形缓冲、缓冲池双缓冲、环形缓冲、缓冲池8.2 缓冲技术 8.2.1 问题的提出华中科技大学计算机学院华中科技大学计算机学院国家精品课程国家精品课程178.2.2 双缓冲系统设置两个缓冲区,系统设置两个缓冲区,buf1、buf
10、2,用于低频度,用于低频度I/O。buf1buf2输入12输出34输入和输输入和输出两个进出两个进程间?程间?同步同步华中科技大学计算机学院华中科技大学计算机学院国家精品课程国家精品课程188.2.3 环形缓冲系统设置若干缓冲区,并把这些缓冲区链接起来形系统设置若干缓冲区,并把这些缓冲区链接起来形成了一个环,故称环形缓冲区。成了一个环,故称环形缓冲区。华中科技大学计算机学院华中科技大学计算机学院国家精品课程国家精品课程198.2.3 环形缓冲输入指针输入指针in 头指针头指针 strat输出指针输出指针out 系统初始时系统初始时 strat = in = out输入时:if(in = = o
11、n) 等待;else 向in指的缓冲区送信息; 当填满后in = next; 输出时:if(out = = in) 等待;else 从out指的缓冲区取信息; 取空后out =next; 华中科技大学计算机学院华中科技大学计算机学院国家精品课程国家精品课程208.2.4 缓冲池 系统设置多个缓冲区,形成一个缓冲池。池中系统设置多个缓冲区,形成一个缓冲池。池中的缓冲区为系统中所有进程共享使用;的缓冲区为系统中所有进程共享使用; UNIX系统中,设置了一个系统中,设置了一个15个缓冲区组成的个缓冲区组成的缓冲池;缓冲池; 为了管理这些缓冲区,建立相应的数据结构:为了管理这些缓冲区,建立相应的数据结
12、构: 缓冲区管理信息数据结构缓冲区管理信息数据结构 空闲缓冲区队列空闲缓冲区队列 满缓冲区队列等满缓冲区队列等。华中科技大学计算机学院华中科技大学计算机学院国家精品课程国家精品课程218.3 设备分配8.3.1 分配原则一、静态分配和动态分配一、静态分配和动态分配1 1、静态分配、静态分配 当进程运行时,系统如果能满足,则将其要求当进程运行时,系统如果能满足,则将其要求的设备全部分配给它,然后开始运行,运行完的设备全部分配给它,然后开始运行,运行完成释放占用的所有设备。成释放占用的所有设备。 优点:优点: 系统绝不会出现死锁。系统绝不会出现死锁。 缺点:缺点: 设备利用率太低。设备利用率太低。
13、华中科技大学计算机学院华中科技大学计算机学院国家精品课程国家精品课程228.3 设备分配8.3.1 分配原则2、动态分配、动态分配方法:在作业(或进程)运行的过程中,需要方法:在作业(或进程)运行的过程中,需要 使用设备时,就向系统申请,系统根据使用设备时,就向系统申请,系统根据 某种分某种分配原则进行分配。配原则进行分配。优点:设备的利用率高。优点:设备的利用率高。缺点:系统可能出现死锁。缺点:系统可能出现死锁。华中科技大学计算机学院华中科技大学计算机学院国家精品课程国家精品课程238.3 设备分配8.3.1 分配原则二、设备分配算法二、设备分配算法1 1、先来先服务算法、先来先服务算法2
14、2、优先级高者优先、优先级高者优先华中科技大学计算机学院华中科技大学计算机学院国家精品课程国家精品课程248.3 设备分配8.3.1 分配原则三、设备分配的安全性三、设备分配的安全性 共享设备:不论采用静态分配还是采用动态分共享设备:不论采用静态分配还是采用动态分配都不会出现死锁。配都不会出现死锁。独占设备:独占设备:采用动态分配有可能造成死锁。采用动态分配有可能造成死锁。 独享分配、共享分配、虚拟分配。独享分配、共享分配、虚拟分配。华中科技大学计算机学院华中科技大学计算机学院国家精品课程国家精品课程258.4 I/O控制8.4.1 I/O控制方式一、循环测试一、循环测试I/OI/O方式方式早
15、期的设备控制方式采用。早期的设备控制方式采用。华中科技大学计算机学院华中科技大学计算机学院国家精品课程国家精品课程268.4 I/O控制8.4.1 I/O控制方式二、二、I/OI/O中断方式中断方式为了提高为了提高CPUCPU和设备的利用率,采用中断方式。和设备的利用率,采用中断方式。这种方式要求控制寄存器中有一个中断位。这种方式要求控制寄存器中有一个中断位。华中科技大学计算机学院华中科技大学计算机学院国家精品课程国家精品课程27用户态进程核态进程核态进程设备用户请求输入设备驱动设备驱动:设置设备的寄存器和中断位;设备读设备读等待等待就绪运行返回继续执行; 唤醒唤醒中断及中断处理中断机构8.4
16、 I/O控制8.4.1 I/O控制方式华中科技大学计算机学院华中科技大学计算机学院国家精品课程国家精品课程288.4 I/O控制8.4.1 I/O控制方式数据的输入(或输出)步骤如下:数据的输入(或输出)步骤如下:用户请求(输入)用户请求(输入)设备驱动程序工作:设备驱动程序工作:1. 要求输入数据的进程把一个启动命令和允许中断要求输入数据的进程把一个启动命令和允许中断位位“1”写入相应设备的控制状态寄存器中,从而写入相应设备的控制状态寄存器中,从而启动了该设备;启动了该设备;2. 该进程因等待输入的完成进入睡眠状态;该进程因等待输入的完成进入睡眠状态;5. 返回用户程序。返回用户程序。华中科
17、技大学计算机学院华中科技大学计算机学院国家精品课程国家精品课程298.4 I/O控制8.4.1 I/O控制方式3. 设备开始工作设备开始工作; 完成中断完成中断(中断机构中断机构)设备中断处理程序工作:设备中断处理程序工作:4. 处理中断,唤醒等待输入完成的进程;处理中断,唤醒等待输入完成的进程;华中科技大学计算机学院华中科技大学计算机学院国家精品课程国家精品课程308.4 I/O控制8.4.1 I/O控制方式优点优点: 提高提高CPUCPU与设备间的并行工作程度,从而与设备间的并行工作程度,从而提高了系统的效率提高了系统的效率; ;缺点缺点:I/O要要CPU的干预,加重了的干预,加重了CPU
18、的负担。的负担。华中科技大学计算机学院华中科技大学计算机学院国家精品课程国家精品课程318.4 I/O控制8.4.1 I/O控制方式通道:通道:计算机系统中专门用于计算机系统中专门用于I/O的处理机称为的处理机称为通道(通道(PC机叫微通道,机叫微通道,DMA)。)。华中科技大学计算机学院华中科技大学计算机学院国家精品课程国家精品课程328.4 I/O控制8.4.1 I/O控制方式华中科技大学计算机学院华中科技大学计算机学院国家精品课程国家精品课程338.4.2 I/O控制功能8.4.2 I/O控制功能控制功能1. 解释接收用户解释接收用户I/O请求(命令)请求(命令) 接受用户的接受用户的I
19、/O请求命令,并把请求转换成请求命令,并把请求转换成I/O请请求块,挂到相应设备的求块,挂到相应设备的I/O请求队列。请求队列。 每类设备有一个每类设备有一个I/O请求队列,系统初始化时,将请求队列,系统初始化时,将系统中所有设备的系统中所有设备的I/O请求队列置为空。请求队列置为空。华中科技大学计算机学院华中科技大学计算机学院国家精品课程国家精品课程348.4.2 I/O控制功能2. 设备驱动设备驱动 每类设备都有设备驱动程序;每类设备都有设备驱动程序; 系统初始时系统为每类设备驱动创建一进系统初始时系统为每类设备驱动创建一进程,并在空闲程,并在空闲I/O请求队列上睡眠;请求队列上睡眠; 驱
20、动设备运行。驱动设备运行。华中科技大学计算机学院华中科技大学计算机学院国家精品课程国家精品课程358.4.2 I/O控制功能3. 中断处理中断处理完成中断处理完成中断处理出错中断处理出错中断处理华中科技大学计算机学院华中科技大学计算机学院国家精品课程国家精品课程368.5 unix系统设备管理两种设备类型两种设备类型1. 块设备块设备 以字符块(以字符块(512字节)为基本字节)为基本I/o单位的设备称单位的设备称为块设备,如磁盘、磁带、光盘等;为块设备,如磁盘、磁带、光盘等;2. 字符设备字符设备 以字符为基本以字符为基本I/O单位的设备称为字符设备。单位的设备称为字符设备。华中科技大学计算
21、机学院华中科技大学计算机学院国家精品课程国家精品课程378.5 UNIX系统的设备管理8.5.1 UNIX8.5.1 UNIX系统设备管理的特点系统设备管理的特点1.1.外部设备看作文件,由文件系统统一处理;外部设备看作文件,由文件系统统一处理;2.2.系统设备配置改变灵活、方便;系统设备配置改变灵活、方便;3.3.有效地使用了块设备缓冲技术,大大地提高了块有效地使用了块设备缓冲技术,大大地提高了块设备存取操作的速度。设备存取操作的速度。华中科技大学计算机学院华中科技大学计算机学院国家精品课程国家精品课程388.5.2 UNIX设备驱动程序接口华中科技大学计算机学院华中科技大学计算机学院国家精
22、品课程国家精品课程398.5.3 设备管理数据结构1.主设备号和次设备号主设备号和次设备号 在系统内部使用的设备名称为设备号。它由主在系统内部使用的设备名称为设备号。它由主设备号和次设备号两个部分组成。设备号和次设备号两个部分组成。 主设备号:设备的类型编号;主设备号:设备的类型编号; 次设备号:同类设备的设备台号。次设备号:同类设备的设备台号。华中科技大学计算机学院华中科技大学计算机学院国家精品课程国家精品课程408.5.3 设备管理数据结构2.设备开关表(块设备)设备开关表(块设备) Struct bdevswStruct bdevsw int int ( (* *d_open)();d_
23、open)(); int int ( (* *d_close)();d_close)(); int int ( (* *d_strategy)();d_strategy)(); int int * *d_tab;d_tab; bdevsw bdevsw ; ;字符设备开关表字符设备开关表 struct cdevswstruct cdevsw int int ( (* *d_open)();d_open)(); int int ( (* *d_close)();d_close)(); int int ( (* *d_read)();d_read)(); int int ( (* *d_write
24、)();d_write)(); int ( int (* *d_sgttyd_sgtty)();)(); cdevsw cdevsw;华中科技大学计算机学院华中科技大学计算机学院国家精品课程国家精品课程418.5.3 设备管理数据结构3.块设备表块设备表Struct devtalStruct devtal char d_active; / char d_active; /* * 执行一个执行一个I/OI/O请求的标志请求的标志 * */ / char d_errcnt char d_errcnt; /; /* * 出错计数器出错计数器 * */ / struct buf struct buf
25、* *b_forwb_forw; /; /* * 设备缓冲队列前指针设备缓冲队列前指针 * */ / struct buf struct buf * *b_back; /b_back; /* * 设备缓冲队列后指针设备缓冲队列后指针 * */ / struct buf struct buf * *b_actfb_actf; /; /* * I/O I/O请求队列头指针请求队列头指针 * */ / struct buf struct buf * *b_actlb_actl; /; /* * I/O I/O请求队列尾指针请求队列尾指针 * */ / 华中科技大学计算机学院华中科技大学计算机学院国家
26、精品课程国家精品课程42b_forwb_backb_forwb_backb_forwb_backb_forwb_backav_forwav_forwav_forwav_forwd_actived_errcnt*buf b_fore*buf b_back*buf d_actf*buf d_actldevtabd_opend_closed_startegyd_readd_write*d_tabbdevsw8.5.3 设备管理数据结构4.设备管理数据结构的关系华中科技大学计算机学院华中科技大学计算机学院国家精品课程国家精品课程438.5.4 缓冲区管理一、缓冲区结构 UNIX系统中采用缓冲池的缓冲技
27、术系统中采用缓冲池的缓冲技术 系统设置一个由系统设置一个由15个缓冲区组成的缓冲池个缓冲区组成的缓冲池 缓冲区占缓冲区占514个字节(个字节(512B存放数据,存放数据,2B存放存放校验矿)。校验矿)。 缓冲首部缓冲首部buf,存缓冲区管理信息的数据结构,存缓冲区管理信息的数据结构。华中科技大学计算机学院华中科技大学计算机学院国家精品课程国家精品课程448.5.4 缓冲区管理一、缓冲区结构05110511512513校验码校验码512513校验码校验码0511512513校验码校验码bufbuf 1 1bufbuf 2 2bufbuf n n华中科技大学计算机学院华中科技大学计算机学院国家精品
28、课程国家精品课程458.5.4 缓冲区管理一、缓冲区结构Struct bufStruct buf int int b_flags; / b_flags; /* * 标志标志 * */ / struct buf struct buf * *b_forwb_forw; /; /* * 设备缓冲队列前指针设备缓冲队列前指针 * */ / struct buf struct buf * *b_back; /b_back; /* * 设备缓冲队列后指针设备缓冲队列后指针 * */ / struct buf struct buf * *av_forwav_forw; /; /* * 空闲缓冲队列前指针空闲
29、缓冲队列前指针 * */ / struct buf struct buf * *ac_back; /ac_back; /* * 空闲缓冲队列后指针空闲缓冲队列后指针 * */ / int int b_dev; / b_dev; /* * 设备号设备号 * */ / int b_wcount int b_wcount; /; /* * 请求传送的字节数请求传送的字节数 * */ / char char * *b_addrb_addr; /; /* * 缓冲区的首地址缓冲区的首地址 * */ / char char * *b_blknob_blkno; /; /* * 设备的物理块号设备的物理块号
30、 * */ / char b_error; / char b_error; /* * 出错信息出错信息 * */ / char char * *b_residb_resid; /; /* * 出错时尚末传送的剩余字数出错时尚末传送的剩余字数 * */ / bufNBUF bufNBUF;华中科技大学计算机学院华中科技大学计算机学院国家精品课程国家精品课程468.5.4 缓冲区管理一、缓冲区结构b_flagsb_flags包括:包括:B_WRITE B_WRITE 写(将信息写到磁盘上去)写(将信息写到磁盘上去)B_READ B_READ 读(从磁盘上读取信息到缓冲区中)读(从磁盘上读取信息到缓
31、冲区中)B_DONE I/OB_DONE I/O操作结束操作结束B_ERROR B_ERROR 因因I/OI/O出错而中止出错而中止B_BUSY B_BUSY 相应的缓冲区正在使用中相应的缓冲区正在使用中B_WANTED B_WANTED 有进程等待该有进程等待该bufbuf,清,清B_BUSY B_BUSY 时要唤醒这种进程时要唤醒这种进程B_ASYNC B_ASYNC 异步异步I/OI/O标志标志B_DELWRI B_DELWRI 延迟写,在相应缓存移作它用时,要将缓存中延迟写,在相应缓存移作它用时,要将缓存中 的内容写到相应的磁盘块中。的内容写到相应的磁盘块中。华中科技大学计算机学院华中
32、科技大学计算机学院国家精品课程国家精品课程478.5.4 缓冲区管理二、自由缓冲队列和设备缓冲队列1.空闲缓冲区队列空闲缓冲区队列 当系统中某个进程释放缓冲区时,将释放缓冲区的当系统中某个进程释放缓冲区时,将释放缓冲区的buf挂到该队列的队尾。分配缓冲区是从该队列队首取出挂到该队列的队尾。分配缓冲区是从该队列队首取出一个一个buf,分配给申请者。,分配给申请者。华中科技大学计算机学院华中科技大学计算机学院国家精品课程国家精品课程488.5.4 缓冲区管理二、自由缓冲队列和设备缓冲队列2.设备缓冲区队列设备缓冲区队列 当某个设备使用缓冲区时,将该缓冲区当某个设备使用缓冲区时,将该缓冲区的的buf
33、挂入到相应的设备缓冲队列,并且挂入到相应的设备缓冲队列,并且一直保留在该队列中。一直保留在该队列中。华中科技大学计算机学院华中科技大学计算机学院国家精品课程国家精品课程498.5.4 缓冲区管理二、自由缓冲队列和设备缓冲队列3. 设备缓冲散列设备缓冲散列 当代当代UNIX(linux)系统中,采用散列结构,把各系统中,采用散列结构,把各类设备的设备类设备的设备buf队列集中在这个散列队列集中在这个散列hbuf中。中。华中科技大学计算机学院华中科技大学计算机学院国家精品课程国家精品课程508.5.4 缓冲区管理二、自由缓冲队列和设备缓冲队列struct hbuf int b_flags; /*
34、标志标志 */ struct buf *b_forw; /* 向前指针向前指针 */ struct buf b_back; /* 向后指针向后指针 */ ;struct hbuf hbuf; /* hbuf数组的定义数组的定义 */华中科技大学计算机学院华中科技大学计算机学院国家精品课程国家精品课程518.5.4 缓冲区管理二、自由缓冲队列和设备缓冲队列这样处理的目这样处理的目的是什么?的是什么?华中科技大学计算机学院华中科技大学计算机学院国家精品课程国家精品课程528.5.4 缓冲区管理二、自由缓冲队列和设备缓冲队列 设备设备buf散列中有散列中有64个设备缓冲队。文件个设备缓冲队。文件I/
35、O时,将申请到的时,将申请到的缓冲区缓冲区buf加入到散列的某个队列中。加入到散列的某个队列中。 决定加入哪个队列的方法是:决定加入哪个队列的方法是: (设备号块号)(设备号块号)mod (设备缓冲散列数设备缓冲散列数64) 假定某个数据块块号为假定某个数据块块号为100,其所在系统设备号为,其所在系统设备号为1。则。则 (1 + 100)% 64 = 37 加入到加入到hbuf37hbuf37队列中队列中。华中科技大学计算机学院华中科技大学计算机学院国家精品课程国家精品课程53三、缓冲区管理算法磁盘 b_dev内存 buffer内存 用户指定区读操作:读操作:有什么?有什么?华中科技大学计算
36、机学院华中科技大学计算机学院国家精品课程国家精品课程54三、缓冲区管理算法磁盘 b_dev内存 buffer内存 用户指定区读操作:读操作:华中科技大学计算机学院华中科技大学计算机学院国家精品课程国家精品课程55三、缓冲区管理算法1.读操作的过程读操作的过程以读的磁盘块号和设备号查相应的设备散列;以读的磁盘块号和设备号查相应的设备散列;查到(相应磁盘块的内容已在缓冲区),则把缓冲区的内容复制到指查到(相应磁盘块的内容已在缓冲区),则把缓冲区的内容复制到指定的内存中;(假读)定的内存中;(假读)没有查到,则申请一个空闲缓冲区,将相应磁盘块读入缓冲区。然后没有查到,则申请一个空闲缓冲区,将相应磁盘
37、块读入缓冲区。然后,把缓冲区的内容复制到指定的内存区中;(真读),把缓冲区的内容复制到指定的内存区中;(真读)读操作完成后,把缓冲区的读操作完成后,把缓冲区的buf挂到空闲缓冲区队列的尾部,仍然保留在挂到空闲缓冲区队列的尾部,仍然保留在相应的设备散列队列中相应的设备散列队列中。华中科技大学计算机学院华中科技大学计算机学院国家精品课程国家精品课程56三、缓冲区管理算法磁盘 b_dev内存 buffer内存 用户指定区存在?存在?华中科技大学计算机学院华中科技大学计算机学院国家精品课程国家精品课程57三、缓冲区管理算法磁盘 b_dev内存 buffer内存 用户指定区华中科技大学计算机学院华中科技
38、大学计算机学院国家精品课程国家精品课程58三、缓冲区管理算法2.写操作写操作以申请写的磁盘块号和设备号查相应设备散列;以申请写的磁盘块号和设备号查相应设备散列;查到:则将其查到:则将其buf从空闲缓冲队列中摘出,将指定内存的从空闲缓冲队列中摘出,将指定内存的 内容写到缓冲区中:内容写到缓冲区中: 若写满缓冲区,则将该缓冲区的内容写到磁盘中去,若写满缓冲区,则将该缓冲区的内容写到磁盘中去,然后,释放缓冲区;然后,释放缓冲区; 若没有写满缓冲区,则将若没有写满缓冲区,则将buf的标志置为的标志置为“延迟写延迟写”,释放该缓冲区。释放该缓冲区。没有查到,则申请一个空闲的缓冲区,操作同前。没有查到,则
39、申请一个空闲的缓冲区,操作同前。华中科技大学计算机学院华中科技大学计算机学院国家精品课程国家精品课程59四、缓冲队列的初始状态缓冲区管理的初始化:缓冲区管理的初始化:1.1.空闲缓冲区队列空闲缓冲区队列2.2.设备缓冲散列队列。设备缓冲散列队列。 UNIXUNIX系统的规定,每个空闲缓冲区同时要存在于两个系统的规定,每个空闲缓冲区同时要存在于两个队列中,空闲缓冲队列和某个设备散列的队列。队列中,空闲缓冲队列和某个设备散列的队列。为了保证上述规定,在系统初启时,系统设置了一个特为了保证上述规定,在系统初启时,系统设置了一个特别设备,别设备,NODEVNODEV(设备号为全(设备号为全0 0)。)
40、。华中科技大学计算机学院华中科技大学计算机学院国家精品课程国家精品课程60av_forwav_backav_forwav_backav_forwav_backav_forwav_backav_foreav_backbfreelist空空闲闲缓缓冲冲区区队队列列设备缓冲散列华中科技大学计算机学院华中科技大学计算机学院国家精品课程国家精品课程61五、缓冲区分配与释放 缓冲区分配先查相应的设备散列队列,若存在于设备缓冲区分配先查相应的设备散列队列,若存在于设备散列的某个缓冲队列中,可重复使用,减少读、写磁散列的某个缓冲队列中,可重复使用,减少读、写磁盘的物理操作,加快盘的物理操作,加快I/O的速度。
41、的速度。 释放缓冲区时,把释放的缓冲区首部插入空闲缓冲队释放缓冲区时,把释放的缓冲区首部插入空闲缓冲队列的尾部,仍然留在相应的设备缓冲队列中。列的尾部,仍然留在相应的设备缓冲队列中。 缓冲区的分配和释放有五种情况。缓冲区的分配和释放有五种情况。华中科技大学计算机学院华中科技大学计算机学院国家精品课程国家精品课程62五、缓冲区分配与释放1.用户申请读(或写)的块在设备散列的队列中,且空闲。用户申请读(或写)的块在设备散列的队列中,且空闲。将将bufbuf中的中的b_flagsb_flags置为置为“忙忙”,并将该缓冲首部从空闲缓冲,并将该缓冲首部从空闲缓冲队列中摘出。使用缓冲区中的信息:队列中摘
42、出。使用缓冲区中的信息: 读:则把缓冲区中的内容复制到用户指定的内存中;释放该读:则把缓冲区中的内容复制到用户指定的内存中;释放该缓冲区,即将其缓冲区,即将其bufbuf 挂到空闲缓冲队列尾;挂到空闲缓冲队列尾; 写:则把用户指定的内容写到缓冲区中,缓冲区满,则把其写:则把用户指定的内容写到缓冲区中,缓冲区满,则把其内容写到磁盘上,然后释放;没有写满,则把内容写到磁盘上,然后释放;没有写满,则把b_flagsb_flags置延置延迟写,释放该磁盘块。迟写,释放该磁盘块。华中科技大学计算机学院华中科技大学计算机学院国家精品课程国家精品课程63五、缓冲区分配与释放2.2.设备散列中没有找到,申请一
43、个空闲的缓冲设备散列中没有找到,申请一个空闲的缓冲区,且区,且b_flagsb_flags中没有中没有“延迟写延迟写” ” 的标志。的标志。使用该缓冲区:使用该缓冲区: 读:将磁盘块读入缓冲区,并复制到指定内读:将磁盘块读入缓冲区,并复制到指定内存。释放该缓冲区;存。释放该缓冲区; 写:把指定的内存中数据写入缓冲区中,写写:把指定的内存中数据写入缓冲区中,写满则写到相应设备中去,否则,满则写到相应设备中去,否则,b_flagsb_flags置置上上“延迟写延迟写”的标志,然后,释放该缓冲区的标志,然后,释放该缓冲区。 华中科技大学计算机学院华中科技大学计算机学院国家精品课程国家精品课程64五、缓冲区分配与释放3. .设备散列中没有找到,申请一个空闲的缓冲设备散列
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 2025年度班组安全生产与应急管理合同3篇
- 2025年度公司管理人员知识产权保护聘用合同3篇
- 二零二五年度农村房屋买卖合同协议书(含农业科技示范)
- 2025年度公司车辆维修配件供应及质量保证协议3篇
- 2025年度关于智能制造领域方协议解约的合规性指导与合同3篇
- 二零二五年度农村养牛基地建设项目合同2篇
- 2025年度公厕保洁服务与社区绿化合作合同3篇
- 二零二五年度商业地产经营权承包管理合同2篇
- 二零二五年度婚姻财产权益保障及变更协议3篇
- 2025年度智能设备试用体验服务全新试用协议3篇
- 少数民族普通话培训
- 诗朗诵搞笑版台词
- 养老服务中心装饰装修工程施工方案
- 落地式脚手架监理实施细则
- 上海市金山区2022-2023学年中考一模英语试题含答案
- 节水灌溉供水工程初步设计报告
- 【期末试题】河西区2018-2019学年度第一学期六年级数学期末试题
- 2022年总经理年会发言稿致辞二
- 警综平台运行管理制度
- 立法学完整版教学课件全套ppt教程
- 简约中国风水墨山水工作总结通用PPT模板
评论
0/150
提交评论