操作系统(持续更新)

news2024/11/24 4:54:16

操作系统的定义

  • 操作系统(operating system,OS)是配置在计算机硬件上的第一层软件,是对硬

    件系统的首次扩充,其主要作用是管理硬件设备,提高它们的利用率和系统吞吐量,并为

    用户和应用程序提供一个简单的接口,以便于用户和应用程序使用硬件设备。

基本特性

  • 共享、并发、异步、虚拟

操作系统的基本类型及特征

  • 批处理系统
  • 分时系统
  • 分布式系统
  • 嵌入式系统

操作系统的功能及特征

  • 处理机管理
  • 存储器管理
  • 设备管理
  • 文件管理
  • 接口管理

操作系统结构

  • 简单结构
  • 模块化结构
  • 分层式结构
  • 微内核结构
  • 外核结构

进程

进程的定义、特征

  • 进程是程序的执行过程,是系统进行资源分配和调度的一个独立单位
  • 特征
    • 动态性
    • 异步性
    • 并发性
    • 独立性

进程基本状态及其转换原因

image-20230519181503850.png

进程互斥、同步(三个同步问题)

生产者-消费者问题
读者-写者问题
哲学家问题

何谓死锁?产生死锁的原因和必要条件是什么?

  • 死锁:各进程互相等待对方手里的资源,导致各进程都阻塞,无法向前推进

产生死锁的必要条件

  • 互斥条件:必须互斥使用的资源的争抢
  • 不剥夺条件:进程保持的资源只能主动释放,不可强行剥夺
  • 请求和保持条件:保持某些资源不放,同时请求其他资源
  • 循环等待条件:存在一种进程资源的循环等待链

预防死锁方法、避免死锁

进程控制块的内容、作用

  • 作用

    • 作为独立运行基本单位的标志

    • 实现间断性运行方式

    • 提供进程管理所需要的信息

    • 提供进程调度所需要的信息

    • 实现与其他进程的同步与通信

8. 用信号量和PV操作机制实现进程的同步和互斥(119)

引入线程的目的

  • 是使多个程序能并发执行,以提高资源利用率和系统吞吐量,那么,在OS中再引入线程,则是为了减少程序在并发执行时所付出的时空(时间和空间)开销,以使OS具有更好的并发性

调度

  • 作业:一个具体任务

  • 高级调度(作业调度)

  • 中级调度(内存调度,置换)

  • 低级调度(进程调度/处理机调度)

调度算法评判指标

  • CPU利用率【忙碌时间 / 总时间】
  • 系统吞吐量【完成作业量 / 花费时间】
  • 周转时间【作业完成时间 - 作业提交时间】
  • 平均周转时间【周转时间和 / 作业数】
  • 带权周转时间【作业周转时间 / 作业实际运行时间】
  • 平均带权周转时间【带权周转时间之和 / 作业数】
  • 等待时间
  • 响应时间【用户提交请求到首次产生响应所用时间】

调度算法

  • 先来先服务【FCFS】

    image-20230519171022093.png

  • 短作业优先【SJF】

    image-20230519171521665.png

  • 高响应优先【HRRN】

    image-20230519172712889.png

  • 时间片轮转【RR】

    image-20230519173413147.png

  • 优先级调度算法

    image-20230519173643352.png

  • 多级反馈队列调度算法

    image-20230519174041713.png

连续分配原理和特点

  • 内存空间是连续的:在连续分配中,操作系统将可用的内存空间划分为若干块,每个块都是连续的一段内存空间。这种连续性可以方便程序的访问和管理。

  • 分配效率高:由于内存空间是连续的,因此在分配内存时,只需要记录空闲块的起始地址和长度即可,分配效率比较高。

  • 碎片化严重:连续分配容易出现碎片化问题,即已分配的内存块和未分配的内存块之间形成许多零散的空间,这些空间无法被利用。碎片化会降低内存利用率,使得系统无法分配足够的内存给新的进程,因此需要采取一些措施来减少碎片化问题。

连续分配算法

  • 首次适应算法
  • 最佳适应算法(容量递增排序,优先选取差值最小分区)(产生很多碎片)
  • 最坏适应算法(容量递减排序,优先选取最大分区)
  • 邻近适应算法(从上次首次适应算法结束位置开始检索,减少查找开销)(容易无大)

屏幕截图 2023-05-19 112341.png

虚拟存储器概念、理论基础

  • 特征:多次性

页面置换算法

  • 缺页率 = 缺页中断次数 / 访问页面次数

  • 最佳置换算法(淘汰之后长时间不使用的页面)

  • 先进先出置换算法【FIFO】(淘汰最早进入内存页面)(Belady异常:进程分配的物理块数增大时,缺页次数不减反增)

  • 最近最久未使用置换算法【LRU】

  • 时钟置换算法【CLOCK】【NRU】

    • 改进:优先淘汰未修改页面(访问位 & 修改位同0)

设备

设备分配时应考虑的因素

  • 固有属性:独占设备、共享设备、虚拟设备(SPOOLing技术)
  • 分配算法
  • 安全性

磁盘读写操作所需时间

image-20230519175008868.png

磁盘的调度算法

  • 先来先服务【FCFS】
  • 最短寻找时间优先【SSTF】
    • 缺点:可能产生饥饿
  • 扫描算法【SCAN】
    • 电梯算法
    • 只有磁头移动到最外侧磁道的时候才能向内移动,移动到最内侧磁道的时候才能向外移动
    • 缺点:对于各磁道的响应频率不平均
  • 循环扫描算法【C-SCAN】
    • 优点:各磁道的响应频率平均
    • 缺点:平均寻找时间大
  • 【LOOK】算法
    • 磁头方向无请求则转向
  • 【C-LOOK】算法
    • 磁头移动方向无请求则返回

22. 打开文件、关闭文件的操作

23. 文件的物理结构(顺序结构、链接结构(隐式、显式)、索引结构(单级、多级、增量式))

24. UNIX系统多级混合(增量式)索引结构

25. 文件存储空间的管理方法-空闲表法、位示图、空闲块链法

26. 系统调用的过程

27. 系统调用与一般过程调用的区别

《操作系统R》试卷题型

一、选择题(每题2分,共40分)

二、判断题(每题1分,共10分)

三、简答题(每题5分,共20分)

四、应用题(每题10分,共30分)

image-20230519135210236.png

可采用哪几种方式将程序装入,它们分别适用于何种场合?

  • 绝对装入
    • 计算机系统很小,且仅能运行单道程序(驻留在内存中的位置确定)
  • 可重定位装入
    • 多道程序环境(根据内存的具体情况,将装入模块装入内存的适当位置)
  • 动态运行时装入
    • 在运行过程中程序在内存中的位置可能经常要改变

有哪几种I/O控制方式

image-20230519165037127.png

引入缓冲的主要原因

  • 为了解决不同设备之间的速度不匹配和处理器与I/O设备之间的速度不匹配问题

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

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

相关文章

Spring Cloud 和3种架构分析 以及微服务的详细分析和示意图

目录 SpringCloud & SpringCloud Alibaba架构介绍 Spring Cloud 基本介绍 官方文档 提出问题, 引出微服务 单机架构 - 示意图 动静分离架构:静态缓存 文件存储 解析 分布式架构:业务拆分负载均衡 解析 微服务架构:使用Spring Clo…

UE C++ Windows平台调用讯飞语音合成接口

UE C Windows平台调用讯飞语音合成接口 环境设置调用讯飞语音接口回放语音数据输出EXE 环境设置 下载讯飞语音合成的Windows平台的C版本SDK,包含lib库文件和dll动态链接库在UE工程下新建一个ThirdParty/msc目录,将lib库文件和dll动态链接库放入其中[PRO…

mybatis是如何集成到spring的之托管mapper接口

前言 mybatis集成到spring可以参考spring mvc集成mybatis进行数据库访问 &#xff0c;其中mybatis集成到spring最重要的两个配置分别是SqlSessionFactoryBean和MapperScannerConfigurer&#xff0c;如下所示&#xff1a; <!--mybatis sqlSeesionFactory配置--><bean…

实验五 串行通讯建模以及教程

目录 教程&#xff1a; 第一步下载matlib 第二步找到Simulink 相关文件 链接&#xff1a;https://pan.baidu.com/s/1Im-TUVfV4d8dok2ebXbmjw?pwd2222 提取码&#xff1a;2222 【实验目的】 1、了解MATLAB软件环境和Simulink建模过程&#xff0c;掌握Simulink图形化编程方…

给 compose draw 绘制的非规则图形添加点击监听

前言 导言 在之前的两篇文章中&#xff0c;我们从实例出发&#xff0c;以实践的方式简单介绍了 compose 自定义绘制&#xff08;如何自己绘制想要的控件&#xff09;、为自定义绘制增加动画&#xff08;让控件动起来&#xff09;。 在这篇文章中&#xff0c;我们依然从实例出…

Linux 权限-+完整思维导图+实图例子+深入细节+通俗易懂建议收藏

绪论 当时间的主人&#xff0c;命运的主宰&#xff0c;灵魂的舵手。上一回已将基础权限全部学习完了&#xff0c;本章开始我们将进入到权限的学习。 话不多说安全带系好&#xff0c;发车啦&#xff08;建议电脑观看&#xff09;。 附&#xff1a;红色&#xff0c;部分为重点部分…

基于Gitee的webhook编写hugo的自动构建实现博客自动更新

前言 差不多半年前趁着某云优惠&#xff0c;我买了5年的轻量级应用服务器。 拿着这个服务器原本打算做我的某个APP的服务端的&#xff0c;后来又觉得迁移数据好麻烦&#xff0c;所以随便搞了个博客上去。 选来选去&#xff0c;使用了 hugo 作为构建引擎。 正好&#xff0c;…

跟我一起使用 compose 做一个跨平台的黑白棋游戏(1)整体实现思路

前言 为什么写这系列文章 虽然 compose 正式版已经出来很久了&#xff0c;也有很多大佬写了很多教程文章和实例 demo &#xff0c;但是对于 compose 其实我也还是一知半解的。 特别是对于 compose 的状态管理&#xff0c;由于 compose 声明式的特性&#xff0c;如果不对状态…

chatgpt赋能Python-pythonfor怎么用

PythonFor SEO&#xff1a;如何利用Python提高SEO效果 SEO&#xff08;搜索引擎优化&#xff09;是现代数字营销中至关重要的一环。随着搜索引擎算法不断发展&#xff0c;优化网站以提高排名已经成为了一门复杂的艺术。幸运的是&#xff0c;Python提供了一些强大的工具来简化这…

chatgpt赋能Python-pythonelem

PythonELEM - 简易的Python学习工具 作为一名有10年Python编程经验的工程师&#xff0c;我可以深刻地体会到新手们学习Python的难处。PythonELEM是一个以Python为主题的学习工具&#xff0c;它可以帮助初学者更容易地掌握Python编程。 PythonELEM的功能 PythonELEM是一个简易…

餐饮油烟排放监测管理系统的设计与应用

安科瑞虞佳豪 连日来&#xff0c;河东区生态环境保护综合行政执法支队组织开展餐饮行业油烟净化专项检查工作&#xff0c;有效应对即将到来的夏季餐饮油烟对环境的污染&#xff0c;着力解决群众身边的环境问题。 执法人员对辖区餐饮商户集中区域开展常态化巡查&#xff0c;重…

Metal入门学习:绘制渲染三角形

一、编程指南PDF下载链接(中英文档&#xff09; 1、Metal编程指南PDF链接 https://github.com/dennie-lee/ios_tech_record/raw/main/Metal学习PDF/Metal 编程指南.pdf 2、Metal着色语言(Metal Shader Language:简称MSL)编程指南PDF链接 https://github.com/dennie-lee/ios_te…

chatgpt赋能Python-pythoncumsum

Python中的cumsum-累积求和函数 在数据处理中&#xff0c;经常需要对一个序列的元素进行累加。Python中提供了累积求和函数cumsum()&#xff0c;用于对一个序列的元素进行累加求和操作。 什么是cumsum()函数 cumsum()函数是Python中numpy模块中的一个函数&#xff0c;用于对…

通过小米万兆路由器将小米SoundMove 无缝接入 ChatGPT

通过小米万兆路由器将小米SoundMove 无缝接入 ChatGPT 本教程内容参考 Github 地址(可选)部署查看小米 SoundMove 信息的环境(可选)查看小米 SoundMove 的信息以容器方式部署程序到小米万兆路由器实际效果有待改善点 本教程内容 1 是记录了将小米 SoundMove 接入 ChatGPT 的操…

面向《海贼王》领域数据的知识图谱项目

访问【WRITE-BUG数字空间】_[内附完整源码和文档] 本次任务试图为《海贼王》中出现的各个实体&#xff0c;包括人物、地点、组织等&#xff0c;构建一个知识图谱&#xff0c;帮助我们更好的理解这部作品。 项目内容包括数据采集、知识存储、知识抽取、知识计算、知识应用五大部…

【运动规划算法项目实战】如何使用Pure Pursuit算法进行路径跟踪(附ROS C++代码)

文章目录 前言一、简介二、Pure Pursuit算法优缺点三、 代码实现3.1 算法实现步骤3.2 pure_pursuit.h3.3 pure_pursuit.cpp3.4 cubic_spline_path.py3.5 节点连接关系3.6 RVIZ显示四、总结前言 在自动驾驶和机器人导航领域,路径跟踪是一项关键技术,它使车辆或机器人能够按照…

多线程排序法

多线程排序法 chatGPT给我改的多线程排序法 using System.Collections.Concurrent; using System.Threading; ConcurrentBag<int> sortedList new ConcurrentBag<int>(); void Sort() { int[] arr {2, 6, 12, 8}; List<Thread> threads new List<Threa…

chatgpt赋能Python-pythondone

PythonDone&#xff1a;将Python编程变得更加简单 介绍 Python是一种有着广泛应用的高级编程语言&#xff0c;由于其简洁易学、开发效率高、可移植性好等特点&#xff0c;成为业内最热门的技术之一。但是&#xff0c;对于一些初学者来说&#xff0c;Python的学习过程可能还是…

【论文分享|SIGMOD‘22】WeTune 自动发现和验证重写规则

作者&#xff1a;谢其骏 北京航空航天大学在读硕士&#xff0c; Databend 研发工程师实习生 https://github.com/jun0315 论文原文&#xff1a; Zhaoguo Wang, Zhou Zhou, Yicun Yang, Haoran Ding, Gansen Hu, Ding Ding, Chuzhe Tang, Haibo Chen, Jinyang Li. WeTune: Auto…

【AIGC】11、MDETR | LeCun 团队于 2021 年推出的端到端多模态理解模型

文章目录 一、背景二、方法2.1 DETR2.2 MDETR 三、效果3.1 预训练调整后的检测器3.2 下游任务 论文&#xff1a;MDETR - Modulated Detection for End-to-End Multi-Modal Understanding 代码&#xff1a;https://github.com/ashkamath/mdetr 出处&#xff1a;ICCV 2021 Oral…