操作系统(第四版)第6章课件ppt.ppt
文本预览下载声明
* (6)负责设备分配和调度 静态分配:进程运行前,将其所需的设备一次全部分配给它。简单,不死锁,但利用率低。 动态分配:在进程运行过程中,分配设备。设备利用率高,但易引起死锁。 * 独占设备:临界资源,如打印机。 共享设备:多个进程可交叉访问。如磁盘。 虚拟设备:是指设备本身是独占设备,而经过虚拟技术处理,可以把它改造成共享设备。 用可共享的高速设备来模拟独占的慢速设备,提高独占设备的利用率。 Spooling技术是实现虚拟设备的一种技术。它利用可共享磁盘的一部分空间,来模拟独占的I/O设备。以空间换时间 * 假脱机输出:以打印机为例 Spooling实际是一种缓冲技术。进程要打印时,系统并不为它分配打印机,而是把待打印的数据缓冲到一个独立的磁盘文件上,形成待打印文件队列。之后,Spooling系统一次一个地将打印队列上的文件送打印机打印。这种技术又叫缓输出技术。 * (7)出错处理 绝大多数错误是与设备密切相关的,一般由设备驱动程序来处理。 处理设备驱动程序处理不了的错误(重试几次操作后,仍有错误)。将错误信息报告调用者。 * 大部分I/O软件都包含在操作系统中,有一小部分是由与用户程序连接在一起的库函数构成的。 [例] 用户程序中的库函数: count=read(fd, buffer, nbytes); 程序运行期间,库函数read将与该程序连接在一起形成一个可执行文件装入主存。 这些函数通常只是将系统调用时所需要的参数放在合适的位置,由系统调用实现真正的操作。如“Printf”将调用“write”系统调用。 4. 用户空间的I/O软件 * 读文件的I/O操作步骤 用户进程发出一个读文件的系统调用。 设备独立I/O软件检查参数的正确性。若正确,再检查高速缓存中有无要读的信息块。若有,则从缓冲区直接读到用户区。若无,转3) 执行物理I/O。独立于设备的I/O软件将设备的逻辑名转换成物理名,检查设备操作权限。将I/O请求排队,阻塞用户进程且等待I/O完成。 核心执行设备驱动程序,分配缓冲区,准备接收数据,且向设备控制寄存器发启动读命令。 * 设备控制器控制设备,执行数据传输。 当采用DMA控制器控制传输时,一个块传输完成,硬件产生一个中断。 CPU响应中断,转磁盘的中断处理程序。检查中断原因和设备的执行状态,若出错,则向设备驱动程序发信号,若可重试,则再启动设备重传一次;否则,向上报告错误。若传输正确,将数据传输给指定的用户进程空间,将等待进程唤醒并且放入就绪队列,等待调度。 当用户进程被调度执行时,从I/O系统调用的断点恢复执行。 * 6.2.3 同步I/O和异步I/O 同步I/O:进程发出I/O请求后阻塞等待,直到数据传输完成后被唤醒,之后才能访问被传输的数据。 异步I/O:允许进程发出I/O请求后继续运行。将来I/O完成后的通知方式:设置进程地址空间内的某个变量;通过触发信号或软件中断;进程执行流之外的某个回调函数。 对于不必进行缓冲读写的快速I/O,使用同步I/O更有效;对于需要很长时间的I/O操作,可使用异步I/O。 * 6.3 磁盘管理 1. 提高磁盘I/O速度的主要途径 选择性能好的磁盘。如 IDE、SCSI 采用好的调度算法 设置磁盘高速缓冲区 * 2. 磁盘的类型 硬盘和软盘;固定头磁盘和活动头磁盘。 固定头磁盘:每条道上都有一个读/写磁头,用于大容量磁盘,并行读/写。 移动头磁盘:每个盘面仅配有一个磁头。 3. 访问磁盘块的时间:寻道时间、旋转延迟时间、读/写传输时间。 4. 磁盘分配方法 连续分配;链接分配;索引分配 * 5. 调度算法 先来先服务:最简单,易实现,又公平合理。 最短寻道时间优先:在将磁头移向下一请求磁道时,总是选择移动距离最小的磁道。 扫描法:读/写磁头在由磁盘的一端向另一端移动时,随时处理所到达磁道上的服务请求。 SCAN:扫描(电梯法) C-SCAN:循环扫描 LOOK:查询 C-LOOK:循环查询 * 45.(7分)假设计算机系统采用C-SCAN(循环扫描)磁盘调度策略,使用2KB的内存空间记录16384个磁盘块的空闲状态。 (1)请说明在上述条件如何进行磁盘块空闲状态的管理。 (2)设某单面磁盘的旋转速度为每分钟6 000转,每个磁道有100个扇区,相邻磁道间的平均移动时间为1ms。若在某时刻,磁头位于100号磁道处,并沿着磁道号增大的方向移动,磁道号的请求队列为50、90、30、120,对请求队列中的每个磁道需读取1个随机分布的扇区,则读完这4个扇区总共需要多少时间?需要给出计算过程。 * (3)如果将磁盘替换为随机访问的Flash半导体存储器(如U盘、SSD盘等),是否有比CSCAN更高效的磁盘调
显示全部