zoukankan      html  css  js  c++  java
  • 操作系统-I/O(2)设备的分配

    作业执行前对设备提出申请时,指定某台具体的物理设备会让设备分配变得简单,但如果所指定设备出现故障,即便计算机系统中有同类设备也不能运行
    设备独立性:用户通常不指定物理设备,而是指定逻辑设备,使得用户作业和物理设备分离开来,再通过其它途径建立逻辑设备和物理设备之间的映射
    设备管理的功能之一就是将逻辑设备名转换为物理设备名,为此系统需要提供逻辑设备名和物理设备名的对照表以供转换使用
    而微型计算机的操作系统则一般不支持设备独立性,多采用直接指定某台具体物理设备以进行设备分配的方式(比较简单)
    设备独立性的优点:
    1. 应用程序与具体物理设备无关,系统增减或变更设备时不需要修改源程序
    2. 易于应对I/O设备故障,提高系统可靠性
    3. 增加设备分配的灵活性,更有效地利用设备资源,实现多道程序设计
     
    从设备的物理特性来看,设备可分为独占型设备、共享设备、虚拟设备,相应管理和分配设备的技术就分为静态分配、动态分配、虚拟分配。
    • 独占型设备
    大多数设备都是独占型设备,只能由一个作业独占式使用,先申请再使用再归还,如键盘、显示器、打印机,这是由设备的物理特性决定的。
    往往采用静态分配:作业执行前将所要使用的设备全部分配给它,作业执行过程中不再需要使用这类设备或作业执行结束将要撤离时再收回设备。实现简单,能够防止系统发生死锁,但会降低设备利用率。
    对某些以独占方式使用的设备,也可以采用动态分配,以提高设备利用率。
    • 共享设备
    可以让多个作业同时使用,如磁盘。
    设备管理的主要工作是驱动调度和实施驱动,一般不必进行分配。
    常用的设备分配算法有先来先服务、优先级高者先服务等。
     
    设备分配时的数据结构:
    • 设备类表:支持设备独立性时才会使用
    每类设备对应于设备类表的中一栏,包括:设备类、总台数、空闲台数、设备表起始地址等。
    • 设备表:每类设备都有各自的设备表
    用来登记这类设备中的每台物理设备,包括:物理设备名(号)、逻辑设备名(号)、占有设备的进程号、是否分配、好/坏标志等
     
    在采用通道结构的系统中,则复杂得多:
    • 系统设置表
    一张,记录系统配置的所有物理设备的情况,每台物理设备占用一栏,包括:设备类型、台数、设备号、设备控制表指针等
    • 通道控制表
    • 控制器控制表
    • 设备控制表
    每个通道、控制器、设备各一张,分别记录各自的地址(标识符)、状态(忙/闲、已分配/未分配)、等待获得此部件的进程队列指针及一次分配后相互链接的指针,以备分配和执行I/O操作时使用
  • 相关阅读:
    反素数(暴力)
    More Divisors(反素数)
    CodeForces
    Binary Tree(二叉树+思维)
    Friendship of Frog(水题)
    内网jenkins如何配置gitlab自动拉取代码打包
    配置git使用ssh方式克隆gitlab的代码
    centOS7创建python虚拟环境
    CentOS7下安装JDK
    centOS安装python3 以及解决 导入ssl包出错的问题
  • 原文地址:https://www.cnblogs.com/yangyuliufeng/p/9327504.html
Copyright © 2011-2022 走看看