操作系统03-IO设备管理

news2024/11/17 9:50:38
  1. 中断源指的就是中断请求,所谓中断字是指中断请求的编号。

  2. 内存不足时候,OS可以采取“内存紧缩”进行改善。
  3. 进程控制块PCB组织管理一般采用线性方式

  4. 7个状态模型增加就绪挂起和阻塞挂起的状态:1提高效率 2 提供足够的内存 3有利于调试

  5. 生产者和消费者模型包含:生-消费必须同步,生-消费必须互斥,生-生必须互斥,消费-消费必须互斥。

  6. 周转时间计算,是各个进程的周转时间/进程数量。

  7. Fork 是复制函数,调用一次但是返回两次

  8. 作业响应比=(等待+执行时间)/执行时间

  9. 进程的TS指令是公共布尔变量TR UR表示在占用,false 是闲置。

    SAVE是临资源访问过程中的临界区,

    lock=FALSE语向是临界资源访间过程中的退出区

    Leave语句是临界资源访问过程中的剩余区。

  10. 按信息交换单位来进行分类:设备(例如磁盘)+字符设备(例如键盘)

  11. 磁盘读写是以块未单位,通常磁盘的I/O控制主要采用DMA方式。DMA成为成组数据传送方式。键盘的读写是字符为范围,通常键盘的IO采用中断方式

  12. 操作系统设置设备管理功能的主要目的是方便用户管理设备

  13. 设备管理的主要任务
    缓冲区管理

    通过缓冲技术匹配高、低速设备交换数据

    匹配不同速度的外部设备

    设备分配协调技术避免设备冲突
    设备处理
    虚拟设备通过虚拟技术将一台独占设备虚拟成多台逻辑设备,提高设备并发度
    独立性
    保证用户安全正确的使用设备
  14. 【与设备无关的系统软件】的工作是:提供一致的系统调用。(为用户进程提供一个管理IO功能的接口,这个接口对所有的设备都是相同)

  15. 采用中断技术进行设备控制管理,可以让CPU和外设大部分时间并行工作,提高了系统的效率

  16. 设备独立层实现用户程序和设备驱动器统一的接口、设备命令、设备保护、设备分配等。

  17. IO设备管理中,引入缓冲技术的主要是因为 匹配不同外部设备的传输速度

  18. 设备分配的主要数据接口及分配顺序是:系统设备表→设备控制表→控制器控制表。

  19. 程序直接控制方式:利用输入或输出指令询问一台设备的忙或闲标志位。

  20. CPU和外设在带部分时间内并行工作,当CPU启动外设后,不需要去查询工作状态,可以继续执行程序,是程序中断方式

  21. 一个独立CPU的专门IO控制处理机,控制设备和内存直接进行数据交换。他有自己的指令和程序是指通道控制方式。

  22. 信息交换方式设置为三种通道:选择通道、字节多路通道、数组多路通道。

  23. 设备保护

    软件层

    提供与设备无关的逻辑块

    独占设备的分配和释放
    统一命名硬件层
    缓冲
    存储设备的块分配
    出错处理
  24. 设立设备独立层的主要目的是:屏蔽IO设备驱动的多样性,便于用户使用。

  25. 用户使用外部设备,控制设备的命令传递途径未:用户应用层→设备独立层→设备驱动层→设备硬件。

  26. I/O软件系统分为如下4个层次:①中断处理程序;②设备驱动程序;③与设备无关的操作系统I/O软件;④用户级I/O软件。

  27. 程序直接控制方式的构成

    状态寄存器

    数据寄存器

    控制寄存器

    中断控制方式的构成

    数据寄存器、地址寄存器、中断请求寄存器

    控制寄存器

    触发寄存器

    DMA控制方式

    源地址寄存器

    目标地址寄存器

    传输计算器

    通道方式通道、数据、地址译码器

    通道控制方式的传送结构的构件:字节多路+数据多路+设备选择通道

  28. 设备触发器是中断控制方式的构件。

  29. 内存是可重用资源;时钟是不可重用。

  30. 饥饿是:相关进程没有阻塞,但是调度被无限退后。

  31. 设备分配需要考虑:设备固有属性、设备分配算法、设备分配的安全性、设备的独立性。

  32. 通道类型:字节多路通道,数据选择通道,数组多路通道。

  33. OS在进行设备分配时需要根据算法进行查找相应的数据结构,包含:系统上设备表,设备控制表,控制器控制表,通道控制表。

  34. 设备分配通常采用先来先服务和高优先级优先

  35. 独占设备为独享设备,一段时间只允许一个进程使用的设备:打印机、扫描仪、时钟发生器。

  36. 中断控制方式的关键部件

    中断控制器

    地址总线和数据总线

    设备控制器

    当I/O设备就绪时,向CPU发出中断请求信号,使CPU暂停当前任务并处理中断请求。在此期间,设备能够自主进行数据传输,并且可以与CPU并行运行,提高了系统效率。
    程序直接控制方式的的关键部件

    设备状态寄存器

    地址总线和数据总线

    设备控制寄存器

    设备数据缓冲区

    地址译码器

    关键词是轮询,cpu向控制器发出指令后,会一直轮询检查数据是否准备好(通过状态寄存器)

    通道通道是一个特殊功能的处理器,它有自己的指令和程序,可以实现对外围设备的统一管理和外围设备与内存之间的数据传送。减少数据输入输出对整个系统运行效率的影响。
  37. SPOOLing系统含义为同时的外部设备联机操作,也称假脱机技术。三大组成部分:输入和输出井;输入缓冲和输出缓冲,输入进程和输出进程。
  38. 计算机IO系统系统硬件结构包含:适配器和接口部件、设备控制器、设备硬件。

  39.  通道控制表(CHCT)中包含通道标识、通道忙闲标记、控制器控制表COCT指针、通道等待队列指针和通道等待队列指针。

  40.  系统设备表 (SDT)包括设备类型、设备标识、获得设备的进程号和设备控制表(DCT)指针。故选择ABCD选项。设备等待队列指针属于设备控制表的内容。

  41.  设备控制表(DCT)中包含设备类型、设备标识、设备忙/闲标记、COCT(控制器控制表)指针备等待队列手指针和设备等待队列尾指针。获得设备的进程号属于系统设备表的内容。
  42. 提高文件系统的性能的有:块高速缓存、磁盘驱动调度和目录项分解法
  43. 实现DMA控制方式需要DMA控制器、地址总线和数据总线
  44. 实现通道控制方式需要关键的软硬件部件有通道控制器、设备控制器、通道程序代码与地址总线和数据总线。
  45. 外存设备控制器:光盘、磁带、磁盘;
  46.  通道是一个特殊功能的处理器,它有自己的指令和程序,可以实现对外围设备的统一管理和外围设备与内存之间的数据传送。通道具有以下功能:(1)接受CPU的指令,按指令要求与指定的外围设备进行通信;(2)从内存读取属于该通道的指令,并执行通道程序,向设备控制器和设备发送各种命令。(3)组织外围设备和内存之间进行数据传送、并根据需要提供数据缓存的空间,以及提供数据存入内存的地址和传送的数据邮(4)从外围设备得到设备的状态信息,形成并保存通道本身的状态信息,根据要求将这些状态信息送到内存的指定单元,供CPU使用。(5)将外围设备的中断请求和通道本身的中断请求,按序及时报告CPU
  47.  在程序控制IO方式中,输出设备的主要作用是通过输出设备输出数据,若输出设备向处理机返回“准备就绪”信亏,则表示输出缓冲区已空或者可以问输出缓冲以写数据,CPU以向输出设备再次提供输出的数据。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/1018653.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

【电子学会】2023年05月图形化三级 -- 数星星

数星星 1. 准备工作 (1)删除默认角色小猫,添加角色Pico和Star; (2)添加背景:Stars。 2. 功能实现 (1)Pico位置在舞台左下角; (2)…

springboot和vue:三、web入门(spring-boot-starter- web+控制器+路由映射+参数传递)

spring-boot-starter- web Spring Boot将传统Web开发的mvc、json、tomcat等框架整合,提供了spring-boot-starter-web组件,简化了Web应用配置。创建SpringBoot项目勾选Spring Web选项后,会自动将spring-boot-starter- web组件加入到项目中。w…

Ubuntu 虚拟化中Android Studio 不支持HAXM(CPU不支持问题)

Ubuntu虚拟机中Android Studio virtual device 安装弹出如图1所示的内容时,解决办法就是VMware 中对处理器开启虚拟化引擎(图2)(此方式是在物理设备CPU是Intel环境测试的,AMD的可以参考是否可行) 查看我的文…

Python封装一个接收UDP组播的模块

Python封装一个可以接收UDP组播的类MulticastDataReceiver,在子线程中接收组播数据 # udp_multicast.py import socket import threading import timeclass MulticastDataReceiver:def __init__(self, multicast_group, multicast_port, dest_addr, dest_port):sel…

es小记(copy_to)

简单创建索引复制字段 1: 3个主分片,各自有一个副本,总分片数为 3*26; refresh_interval为刷新频率; 其他参数描述,转载自 PUT test1 { “settings”:{ “number_of_shards”: 1, “number_of_replicas”: 1, “refresh_interval”: “30s” }, “mappings”:{ “properties”…

C语言天花板——指针(初阶)

🌠🌠🌠 大家在刚刚接触C语言的时候就肯定听说过,指针的重要性以及难度等级,以至于经常“谈虎色变”,但是今天我来带大家走进指针的奇妙世界。🎇🎇🎇 一、什么是指针&…

11.外观模式

外观模式&#xff08;Facade&#xff09;&#xff0c;为子系统中的一组接口提供一个一致的界面&#xff0c;此模式定义了一个高层接口&#xff0c;这个接口使得这一子系统更加容易使用。 UML 测试代码 #include <iostream> using namespace std;class SubSystemOne { pu…

Mac专用投屏工具AirServer 7 .27 for Mac中文免费激活版

AirServer 7 .27 for Mac中文免费激活版是一款Mac专用投屏工具&#xff0c;能够通过本地网络将音频、照片、视频以及支持AirPlay功能的第三方App&#xff0c;从 iOS 设备无线传送到 Mac 电脑的屏幕上&#xff0c;把Mac变成一个AirPlay终端的实用工具。 目前最新的AirServer 7.2…

Linux关于memory cgroup的几个要点

概述 本文讲述memory cgroup比较容易误解的一些逻辑&#xff0c;如果不太经常使用和解决问题的话&#xff0c;对于memory cgroup的认知会比较浅显&#xff1a;cgroup memory用来限制进程的内存使用&#xff0c;但是我们进一步想如下的问题&#xff1a; 进程的内存可以分很多类…

「UG/NX」Block UI 指定坐标SpecifyCSYS

✨博客主页何曾参静谧的博客📌文章专栏「UG/NX」BlockUI集合📚全部专栏「UG/NX」NX二次开发「UG/NX」BlockUI集合「VS」Visual Studio「QT」QT5程序设计「C/C+&#

JavaScript学习记录 | DOM事件流 事件冒泡-事件捕获-事件委托

目录 DOM事件流常见面试题事件冒泡与事件捕获事件冒泡使用场景事件捕获使用场景事件冒泡和事件捕获区别 事件委托 - 利用事件冒泡机制事件委托应用场景支持事件委托的事件事件委托的优缺点 DOM事件流 DOM事件流的三个阶段&#xff1a;捕获阶段 -> 目标阶段 -> 冒泡阶段 …

9月13-14日上课内容 第三章 ELK日志分析系统及部署实例

本章结构 ELK日志分析系统简介 ELK日志分析系统分为 Elasticsearch Logstash Kibana 日志处理步骤 1.将日志进行集中化管理 2.将日志格式化(Logstash) 并输出到Elasticsearch 3.对格式化后的数据进行索引和存储 (Elasticsearch) 4.前端数据的展示(Kibana) Elasticsearch介…

Maven 工具学习笔记(基础)

Maven 是专门用于管理和构建Java项目的工具&#xff0c;其主要功能提供有&#xff1a; 标准化的项目结构&#xff08;在不同IDE之间其项目结构不一样&#xff0c;代表不能通用&#xff09;标准化的构建流程&#xff08;编译 ——> 测试 ——> 打包 ——> 发布...&…

epoll实现TCP的服务器与客户端通信

服务器&#xff1a; #include<myhead.h> #define IP "192.168.250.100" #define PORT 8888 /* typedef union epoll_data {void *ptr;int fd;uint32_t u32;uint64_t u64; } epoll_data_t;struct epoll_event {uint32_t events; …

xss渗透(跨站脚本攻击)

一、什么是XSS? XSS全称是Cross Site Scripting即跨站脚本&#xff0c;当目标网站目标用户浏览器渲染HTML文档的过程中&#xff0c;出现了不被预期的脚本指令并执行时&#xff0c;XSS就发生了。 这里我们主要注意四点&#xff1a; 1、目标网站目标用户&#xff1b; 2、浏览…

Ubuntu 20.04中docker-compose部署Nightingale

lsb_release -r可以看到操作系统版本是20.04&#xff0c;uname -r可以看到内核版本是5.5.19。 sudo apt install -y docker-compose安装docker-compose。 完成之后如下图&#xff1a; cd /opt/n9e/docker/进入到/opt/n9e/docker/里边。 docker-compose up -d进行部署。 …

2. CMake 语法的基本指令

2. CMake 语法的基本指令 主要介绍 CMake 脚本语言的一些基础语法怎么使用, 这个行为就像学习 C/C编程语言一样, 从变量, 字符串, 列表这些基础的数据类型, 然后一步步延伸到 if/else, for 等这类的基本逻辑函数,了解 CMake 脚本的基本语法. CMake 官网对指令的划分 我希望带大…

网络安全:保护你的系统

&#x1f337;&#x1f341; 博主猫头虎&#xff08;&#x1f405;&#x1f43e;&#xff09;带您 Go to New World✨&#x1f341; &#x1f984; 博客首页——&#x1f405;&#x1f43e;猫头虎的博客&#x1f390; &#x1f433; 《面试题大全专栏》 &#x1f995; 文章图文…

利用cms主题构造木马(CVE-2022-26965)

简介 CVE-2022-26965是Pluck CMS 4.7.16版本存在一个远程shell上传执行漏洞。 攻击者可利用此漏洞通过构造恶意的主题包进行上传并执行&#xff0c;未经授权访问服务器&#xff0c;造成潜在的安全隐患。 过程 1.打开环境&#xff0c;查看源码&#xff0c;发现login.php 2.进…

JUnit测试进阶(Private测试)

Private测试 前言一、间接调用二、Java反射机制调用 前言 在单元测试中&#xff0c;由于私有方法&#xff08;Private Method&#xff09;无法直接被调用&#xff0c;因此对私有方法进行测试成为一项难题。一个可行的方法是&#xff1a;在测试时将私有方法改变为公有方法&…