操作系统第五章——输入输出管理(中)

news/2024/12/22 2:25:06/

提示:若我会见到你,事隔经年,我如何向你招呼,以眼泪,以沉默

文章目录

  • 5.2.1 IO核心子系统
    • 知识总览
    • 功能要在那个层次实现
  • 5.2.2 假脱机技术(SPOOLing)
    • 知识总览
    • 什么是脱机技术
    • 假脱机技术——输入井和输出井
    • SPOOLing——输入进程和输出进程
    • 假脱机技术——输入/输出缓冲区
    • 共享打印机原理分析
    • 知识总览
  • 5.2.3 设备的分配与回收
    • 知识总览
    • 设备分配时应考虑的因素
    • 静态分配和动态分配
    • 设备分配管理中的数据结构
    • 设备分配的步骤
    • 设备分配步骤的改进
    • 知识总览
  • 5.2.4 缓冲区管理
    • 知识总览
    • 什么是缓冲区?有什么作用?
    • 缓存区有什么作用?
    • 单缓冲区
    • 双缓冲策略
    • 单/双缓冲在通信时的区别
    • 循环缓冲区
    • 缓冲池
    • 知识回顾


5.2.1 IO核心子系统

知识总览

请添加图片描述

功能要在那个层次实现

请添加图片描述
I/o调度:用某种算法确定一个好的顺序来处理各个/o请求。
如:磁盘调度(先来先服务算法、最短寻道优先算法、SCAN算法、C-SCAN算法、LOOK算法 ,C-LOOK算法)。当多个磁盘I/o请求到来时,用某种调度算法确定满足I/o请求的顺序。
同理,打印机等设备也可以用先来先服务算法、优先级算法、短作业优先等算法来确定I/o调度顺序。
设备保护:操作系统需要实现文件保护功能,不同的用户对各个文件有不同的访问权限(如:只读、读和写等)。
在UNIK系统中,设备被看做是一种特殊的文件,每个设备也会有对应的FCB。当用户请求访问某个设备时,系统根据FCB中记录的信息来判断该用户是否有相应的访问权限,以此实现“设备保护”的功能。(参考“文件保护”小节)

5.2.2 假脱机技术(SPOOLing)

知识总览

请添加图片描述

什么是脱机技术

请添加图片描述
请添加图片描述

假脱机技术——输入井和输出井

请添加图片描述
请添加图片描述

SPOOLing——输入进程和输出进程

请添加图片描述
请添加图片描述

假脱机技术——输入/输出缓冲区

请添加图片描述

共享打印机原理分析

请添加图片描述
请添加图片描述虽然系统中只有一个台打印机,但每个进程提出打印请求时,系统都会为在输出井中为其分配一个存储区(相当于分配了一个逻辑设备),使每个用户进程都觉得自己在独占一台打印机,从而实现对打印机的共享。SPOOLing技术可以把一台物理设备虚拟成逻辑上的多台设备,可将独占式设备改造成共享设备

知识总览

请添加图片描述

5.2.3 设备的分配与回收

知识总览

请添加图片描述

设备分配时应考虑的因素

请添加图片描述
请添加图片描述
请添加图片描述

静态分配和动态分配

请添加图片描述

设备分配管理中的数据结构

请添加图片描述
请添加图片描述
请添加图片描述

请添加图片描述
请添加图片描述

设备分配的步骤

请添加图片描述
请添加图片描述
请添加图片描述
请添加图片描述

设备分配步骤的改进

请添加图片描述
请添加图片描述
请添加图片描述

知识总览

请添加图片描述

5.2.4 缓冲区管理

知识总览

请添加图片描述

什么是缓冲区?有什么作用?

请添加图片描述

缓存区有什么作用?

请添加图片描述

单缓冲区

请添加图片描述
请添加图片描述
请添加图片描述

双缓冲策略

请添加图片描述
请添加图片描述

单/双缓冲在通信时的区别

请添加图片描述
请添加图片描述

循环缓冲区

请添加图片描述

缓冲池

请添加图片描述
请添加图片描述
请添加图片描述
请添加图片描述

知识回顾

请添加图片描述


http://www.ppmy.cn/news/91071.html

相关文章

还是畅通工程(Kruscal)_02

#include<bits/stdc.h> using namespace std; const int MAXN1000; int father[MAXN];//父亲结点 int height[MAXN];//高度结点 struct Edge{int from;int to;int length; }; Edge edge[MAXN*MAXN]; //初始化 void init(int n){for(int i0;i<n;i){father[i]i;height[…

PMP例题 学习记录

1、 项目经理同时担任项目A和项目B的管理工作&#xff0c;其中项目A是符合公司总体战略计划的项目&#xff0c;项目B是项目经理直接领导负责的项目&#xff0c;两个项目在资源使用需求上有冲突&#xff0c;项目经理应该怎么办&#xff1f; A、请求PMO对两个项目的优先级进行排…

震惊!吊打面试官,必备的 SpringCloud 微服务面试题(VIP典藏版)

目录 福利&#xff1a;文末有分享SpringBoot教程及源码哦《【imooc-java2021】体系课-Java工程师 》 Spring Cloud微服务面试题 1、Spring Cloud Netflix和Spring Cloud Alibaba包括哪些组件 2、Nacos是CP还是AP? 3、Nacos作为注册中心应该选择是CP还是AP&#xff1f; 4、…

油猴脚本尝试

现在是这样的&#xff0c;我这边有个运维系统&#xff0c;里面有个日志&#xff0c;我们经常要复制&#xff0c;然后我们复制的时候需要打开内容&#xff0c;然后去选中复制。 类似于这种&#xff0c;我觉得这个时候&#xff0c;去选中复制就很麻烦&#xff0c;右边这里不是有…

Android之 MVC到MVVM架构发展和封装

一 简介 1.1 软件架构发展趋势是解耦&#xff0c;即分离数据层和视图层&#xff0c;使得数据层专注于业务的数据和逻辑处理。从而提高代码的可读可编辑效率&#xff0c;提高团队协作能力&#xff0c;项目的生产能力&#xff0c;降低后期维护成本。 1.2 Android架构发展MVC -…

【Java递归】一篇文章带你了解,什么是递归 ,递归的特点,递归应用场景,递归练习题

博主&#xff1a;東方幻想郷 专栏分类&#xff1a;Java | 从入门到入坟 Java递归 ⭐ 递归的定义⭐ 递归的特点⭐ 递归应用场景⭐ 简单例子⭐ 递归练习题&#x1f30c; 练习题模板&#x1f3f4;‍☠️ 练习题答案&#xff1a; ⭐ 递归的定义 &#x1f31f;递归是一种在方法通过调…

02-Python列表入门【100个Python知识点】

Python是一种通用的高级编程语言&#xff0c;它特别适合于数据分析、机器学习、网络编程以及自动化脚本等方面的使用。在Python中&#xff0c;有一种非常强大的数据结构叫做列表&#xff08;List&#xff09;。今天&#xff0c;我们将介绍Python列表的基本概念&#xff0c;以及…

二、软件工程——Modeling

1.Undestanding Requirements System Engineering&#xff08;系统工程&#xff09; &#xff01;&#xff01;&#xff01;Requirements Engieering(需求建模&#xff09; 1.Inception&#xff08;开始&#xff09;&#xff1a;&#xff08;确认利益相关者&#xff09; 2.…