操作系统面试知识点总结5

#来自ウルトラマンメビウス(梦比优斯)

1 IO管理概述

1.1 I/O 设备

I/O 设备的类型分类。

1.1.1 按使用特性

  • 人机交互类外部设备,例如打印机、显示器等。
  • 存储设备,例如磁盘、光盘等。
  • 网络通信设备,例如网络接口等。
1.1.2 按传输速率

  • 低速设备:键盘、鼠标。
  • 中速设备:打印机、激光机等。
  • 高速设备:磁带机、磁盘机等。
1.1.3 按信息交换的单位分类

  • 块设备:信息存取以数据块为单位。
  • 字符设备:传输单位以字符为单位,如打印机、交互式终端机。

1.2 I/O控制方式

2.2.1 程序直接控制方式

CPU 和 I/O 设备串行工作,由用户进程直接控制主存或 CPU 和外围设备之间的信息传送。

2.2.2 中断驱动方式

允许 I/O 设备主动打断 CPU 的运行并请求服务。为了减少程序直接控制方式下 CPU 的等待时间以及提高系统的并行程度,外围设备仅当操作正常结束或异常结束时才向 CPU 发出中断请求。在 I/O 设备输入每个数据的过程中,由于无需 CPU 的干预,一定程度上实现了 CPU 与 I/O设备的并行工作。仅当输入或输出完一个数据时,才需 CPU 花费极短的时间做中断处理。

2.2.3 DMA 方式(直接存储器存储)

用窃取或挪用总线控制权,在设备和主存之间开辟直接数据交换通道,成批地交换数据,而不必让 CPU 干预。

2.2.4 通道控制方式

通道,独立于 CPU 的专门负责输入输出控制的处理机,它控制设备与内存直接进行数据交换。有自己的通道指令,这些指令由 CPU 启动,并在操作结束时向 CPU 发出中断信号。

通道控制方式,实现了CPU、通道和I/O设备三者的并行操作,从而更加有效地提高整个系统的资源利用率。

1.3 I/O子系统的层次结构

  • 用户层I/O软件:实现与用户交互的接口
  • 设备独立性软件:实现用户程序与设备驱动器的统一结构、设备命令、设备保以及设备分配与释放
  • 设备驱动程序:与硬件直接相关,负责具体实现系统对设备发出的操作指令
  • 中断处理程序:用于处理中断相关事项
  • 硬件设备:包括一个机械部件(设备本身)和一个电子部件(控制器)

2 IO 核心子系统

2.1 I/O子系统概述

主要提供IO调度、缓冲与高速缓存、设备分配与回收、假脱机、设备保护和差错处理

2.2 IO调度概念

通过IO调度改善系统整体性能,使得进程之间公平共享设备访问,减少IO完成所需要的平均等待时间。

2.3 高速缓存与缓冲区

高速缓存在内存中分为两种形式:

  • 在内存中开辟一个单独的存储空间作为磁速缓存,大小固定
  • 把未利用的内存空间作为一个缓沖池,供请求分页系统和磁盘I/O时共享。

缓存区:

  • 釆用硬件缓冲器,但由于成本太高,除一些关键部位外,一般不釆用硬件缓冲器
  • 釆用缓冲区(位于内存区域)。

缓存区分类:

  • 单缓存
  • 双缓存
  • 循环缓存
  • 缓冲池

2.4 设备分配与回收

充分发挥设备的使用效率,避免进程死锁。

设备分类:

  • 独占设备
  • 共享设备
  • 虚拟设备

2.5 IO调度

  • 安全分配方式:为进程分配一个设备后就将该进程阻塞,本次I/O完成后才将进程唤醒。

  • 不安全分配方式:进程发出I/O请求后,系统为其分配I/O设备,进程可继续执行,之后还可以发出新的I/O请求,只有某个I/O请求得不到满足时才将进程阻塞。不安全分配方式一个进程可以同时使用多个设备。

2.6 SPOOLING技术(假脱机技术)

如果设备被占用,先把数据暂存,等到设备空闲了就把这些数据输送到设备中。

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

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

相关文章

PHP While循环

PHP 中的 while 循环是一种基本的循环控制结构,它允许你重复执行一段代码块,直到指定的条件不再满足为止。while 循环在需要执行未知次数的代码块时非常有用,特别是当你需要在满足特定条件时继续执行循环时。 基本语法 while (条件表达式) …

21 B端产品经理之技术常识(1)

产品经理需要掌握一些基本的技术知识。 了解公司前端与后端 前端 前端开发:创建WEB页面或APP等前端界面呈现给用户的过程,即前端负责用户界面交互。 前端技能: HTML:一种标记语言,能够实现Web页面并在浏览器中显示。…

【计算机网络】IP地址和子网掩码(IP地址篇)

个人主页:【😊个人主页】 系列专栏:【❤️计算机网络】 文章目录 前言IP地址网络地址网络地址的定义与组成作用分类网络地址的分配与管理 广播地址(Broadcast Address)定义构成类型作用注意事项 广播地址功能 组播地址…

HiveSQL题——炸裂+开窗

一、每个学科的成绩第一名是谁? 0 问题描述 基于学生成绩表输出每个科目的第一名是谁呢? 1 数据准备 with t1 as(selectzs as name,[{"Chinese":80},{"Math":70}],{"English"…

Windows NVM(Node Version Manager)使用指南

Windows NVM(Node Version Manager)使用指南 引言 Node Version Manager (NVM) 是一个用于管理多个 Node.js 版本的工具,它允许开发者在同一台机器上安装和使用不同版本的 Node.js。虽然 NVM 最初是为 Unix-like 系统设计的,但 …

单链表的基本操作

定义一个结点 typedef struct ElemType{char name[20];int sex;int age;char number[11]; };//定义一个结点 typedef struct Lnode{ ElemType data;struct Lnode* next; }LNode,*LinkList;链表的初始化 一般包含两步:给结点分配空间,头指针指针域…

CompletableFuture使用详解

简单的任务,用Future获取结果还好,但我们并行提交的多个异步任务,往往并不是独立的,很多 时候业务逻辑处理存在串行[依赖]、并行、聚合的关系。如果要我们手动用 Future 实现,是非常麻烦的。 CompletableFutur…

JMeter基本使用

一、JMeter线程组相关 进程:正在运行的程序。线程:是进程中的执行线索。线程组:进程中有许多线程,为了方便管理,可以对线程按照性质分组,分组的结果就是线程组。PS:三者关系,一个进…

Pytest设置日志

在 pytest 中,您可以使用内置的日志功能来记录测试过程中的信息。pytest 默认使用了 logging 模块来处理日志记录。此外,您还可以使用 pytest 的插件来增强日志功能,比如 pytest-loguru 插件,它结合了 loguru 库来提供更强大的日志管理能力。 1. 使用内置的日志功能 设置…

【设计模式】(万字总结)深入理解Java中的创建型设计模式

1. 前言 在软件开发的世界里,设计模式是一种被广泛接受并应用的解决方案。它们不仅仅是代码的设计,更是对问题的思考和解决的方法论。在Java开发中,特别是在面向对象的编程中,设计模式尤为重要。创建型设计模式,作为设…

【初阶数据结构篇】实现顺序结构二叉树(堆的实现方法)

文章目录 实现顺序结构二叉树(堆)前言代码位置堆的概念与结构概念 堆的实现堆初始化和销毁堆的插入堆的判空堆的删除数据取堆顶数据 实现顺序结构二叉树(堆) 前言 ​ ⼀般堆使⽤顺序结构的数组来存储数据,堆是⼀种特…

一键生成惊艳图像:使用Stable Diffusion打造惊人视觉效果

一、简介 Stable Diffusion是一种由Stability AI开发的生成式AI模型,能够将文本提示转换为高质量的图像。作为生成式扩散模型的一部分,Stable Diffusion通过解析和理解输入的文本提示,逐步生成与描述相匹配的图像。这一技术不仅在图像生成和…

AUTOSAR从入门到精通-T-Box

目录 前言 算法原理 TBOX主要模块 主控模块 CAN通讯模块 高通4G模块 蓝牙模块 & WIFI & Bluetooth模块 WIFI模块 天线 T-BOX功能 网络接入 车辆信息实时上传 远程诊断 车辆异常告警上传 E/B-call服务 OTA功能 V2X 位置查询/车辆追踪 平台监控/国家监…

树莓派4b的Mysql数据库操作

卸载树莓派中的 MySQL。 停止 MySQL 服务: sudo systemctl stop mysql卸载 MySQL 服务器和客户端: sudo apt-get remove --purge mysql-server mysql-client mysql-common删除 MySQL 数据库和配置文件: sudo rm -rf /etc/mysql /var/lib/mysq…

鸿蒙next ArkUI 单例模式和手游sdk接口设计

前言: 各位同学大家,有段时间没有跟大家见面了,因为最近一直在更新鸿蒙的那个实战课程所以就没有去更新文章实在是不好意思, 所以今天就给大家更新一起鸿蒙里面的案例模式来给大家做一个分享。 作者:徐庆 团队:坚果派 公众号:“大前端之旅” 润开鸿生态技术专家,华为…

Vue3-导出导入excel

功能 主要实现excel导入导出功能,同时具有合并单元格,美化单元格等功能,引用依赖包exceljs、file-saver,好像也没有什么要介绍的,可以看看官网文档然后直接使用了 导入依赖包 pnpm install exceljs file-saver type…

MybatisPlus核心用法

MybatisPlus核心用法 目录 MybatisPlus核心用法1.使用MybatisPlus的基本步骤:2.MybatisPlus是如何获取实现CRUD的数据库表信息的?3.MybatisPlus的常用注解有哪些?如果表名称和实体类名称不符合约定该怎么做?IdType的常见类型有哪些…

漏洞复现-F6-11泛微-E-Cology-SQL

本文来自无问社区,更多漏洞信息可前往查看http://www.wwlib.cn/index.php/artread/artid/15575.html 0x01 产品简介 泛微协同管理应用平台e-cology是一套企业级大型协同管理平台 0x02 漏洞概述 该漏洞是由于泛微e-cology未对用户的输入进行有效的过滤&#xff0…

Python爬虫技术 第17节 使用BeautifulSoup

使用Python进行网页爬取是一个常见的任务,特别是当需要从网站上批量获取数据时。BeautifulSoup是一个非常流行的Python库,用于解析HTML和XML文档,非常适合用来提取网页中的信息。 下面我将通过一个简单的案例来介绍如何使用Python和Beautifu…

Skyeye云智能制造企业版源代码全部开放

智能制造一体化管理系统 [SpringBoot2 - 快速开发平台],适用于制造业、建筑业、汽车行业、互联网、教育、政府机关等机构的管理。包含文件在线操作、工作日志、多班次考勤、CRM、ERP 进销存、项目管理、EHR、拖拽式生成问卷、日程、笔记、工作计划、行政办公、薪资模…