计算机操作系统第6章..ppt

  2) ?FSCAN算法   FSCAN算法实质上是N步SCAN算法的简化,即FSCAN只将磁盘请求队列分成两个子队列。一个是由当前所有请求磁盘I/O的进程形成的队列,由磁盘调度按SCAN算法进行处理。另一个是在扫描期间,将新出现的所有请求磁盘I/O的进程放入等待处理的请求队列。这样,所有的新请求都将被推迟到下一次扫描时处理。 练 习 使用与表6.30-6.33类似的方式,分析下列磁道请求序列:27,129,110,186,147,41,10,64,120。假设磁头最初定位在磁道100处,并且沿着磁道号减小的方向移动。如果是沿磁道号增大的方向移动呢? * 答案: (1-1) * 答案: (1-2) * 答案: (2) 对于第二问,如果沿着磁道号增大的方向移动,则只有SCAN算法和C-SCAN算法的运行结果需要改变。 * 答案: (2) * * * * * * *   3. 独占设备的分配程序   1) 基本的设备分配程序   对于具有I/O通道的系统,在进程提出I/O请求后,系统的设备分配程序可按下述步骤进行设备分配:   (1) 分配设备。   (2) 分配控制器。   (3) 分配通道。   2) 设备分配程序的改进   上述程序中进程是以物理设备名来提出I/O请求的,另外采用的是单通路的I/O系统结构,易产生“瓶颈”现象。为此需加以改进,可从两方面入手: 1、增加设备的独立性; 2、考虑多通路情况。 6.5.4 逻辑设备名到物理设备名映射的实现   为了实现设备的无关性,应用程序请求使用I/O设备时,采用的是逻辑设备名,但是,系统只能识别物理设备名。因此,需要配置一张逻辑设备表,用于将逻辑设备名映射为物理设备名。 1、逻辑设备表LUT:其格式是 2、LUT的设置问题:可采取两种方式,一种是整个系统设置一张LUT,一种是为每个用户设置一张LUT。 逻辑设备名 物理设备名 驱动程序入口地址 /dev/tty 3 1024 /dev/print 5 2046 … … … 整个系统设置一张LUT,可采用这种格式。由于 系统中所有进程的设备分配情况都记录在同一张 LUT中,因此不允许表中有相同的逻辑设备名, 即要求所有用户不使用相同的逻辑设备名。在多 用户环境下难以做到,主要用于单用户系统。 逻辑设备名 系统设备表指针 /dev/tty 3 /dev/print 5 … … 为每个用户设置一张LUT,可采用这种格式。当 用户登录时,便为用户建立一个进程,同时为之 建立一张LUT,并将其放入进程PCB中。由于在 多用户系统中都配置了系统设备表,故LUT可采 用以上格式。 ?     6.6 用户层的I/O软件 6.6.1 系统调用与库函数 1. 系统调用 应用程序通过系统调用,间接调用OS中的I/O过程,对I/O设备进行操作。 2. 库函数 用户程序通过调用对应的库函数来使用系统调用,这些库函数与系统调用连接在一起,被嵌入在运行时装入内存的二进制程序中。 系统调用执行过程 系统调用命令 用户态 系统态 系统调用 调用 返回 6.6.2 假脱机(Spooling)系统   1. 假脱机技术 在多道程序系统中,利用一道程序来模拟脱机输入时的外围控制机的功能,把低速I/O设备上的数据传送到高速磁盘上;再利用另一道程序模拟脱机输出时外围控制机的功能,把数据从磁盘传送到低速输出设备上。这样,在主机的直接控制下,实现脱机输入输出功能。此时的外围操作与CPU对数据的处理同时进行,把这种在联机情况下实现的同时外围操作称为SPOOLing,或称为假脱机操作。   2.? SPOOLing的组成   SPOOLing系统主要由以下四部分构成:   (1) 输入井和输出井。输入井用于收容I/O设备输入的数据。输出井用于收容用户程序的输出数据。   (2) 输入缓冲区和输出缓冲区。输入缓冲区用于暂存由输入设备送来的数据,以后再传送到输入井。输出缓冲区用于暂存从输出井送来的数据,以后再传送给输出设备。   (3) 输入进程和输出进程。分别用于模拟脱机输入和脱机输出时的外围控制机。   (4) 井管理程序。用于控制作业与磁盘井之间信息的交换。   3. ?SPOOLing系统的特点   (1) 提高了I/O的速度。   (2) 将独占设备改造为共享设备。   (3) 实现了虚

文档评论(0)

1亿VIP精品文档

相关文档