【DAY13 软考中级备考笔记】操作系统

操作系统 3月17日 – 天气:晴

凑着周末,赶紧把操作系统完结一下。

1. 管程

image-20240317192108788

管程也属于操作系统中的一种同步机制,为了解决多线程环境中的并发控制问题。它提供了一系列的高级同步原语。

作用于信号量一样,但是管程便携程序更加简单

2. 进程调度

image-20240317192412523

进程的调度可以分为两大类:

  • 可剥夺:当有更高优先级的进程进入内存,CPU会停止当前执行的进程,转而去执行更高优先级的进程
  • 不可剥夺:当有更高优先级的进程进入内存,必须等到CPU释放后才可以分配给更高的进程

三级调度:

  • 高级调度:从外存的后备队列中根据一定的算法选择哪一个作业可以进入主存
  • 中级调度:决定叫唤去中哪一个就绪的进程可以进入内存
  • 低级调度:决定内存中的哪一个就绪进程可以占用CPU

低级调度是操作系统中最活跃最重要的调度方式

image-20240317192805267

调度算法主要有:

  • FCFS:按照先后次序分配CPU。有利于长作业,不利于短作业。有利于CPU繁忙型,不利于IO繁忙型。因为FCFS是非抢占式的,如果一个作业有太多的IO操作,那么CPU只能等待,导致利用率不高。https://blog.csdn.net/qq_42615475/article/details/132477821
  • 时间片轮转:给每一个进程分配时间片,进程轮流执行。通过这种方法可以提高进程的并发性,提高资源利用率
  • 优先级调度:根据优先级进行调度
  • 多级反馈队列:结合时间片轮转和优先级调度算法。

3. 死锁

image-20240317193321958

死锁:多个进程因为互相抢占被对方占用的互斥资源而导致的一种僵局的现象,如果没有外力作用,将一直僵持下去的现象。

死锁产生的四个条件:

  • 竞争的资源为互斥资源
  • 请求保持。进程占用着互斥资源,并且还要继续等待其他资源
  • 不可剥夺。操作系统不能剥夺进程已经占有的资源
  • 环路等待。

image-20240317193539618

image-20240317193549248

image-20240317193644049

如何处理死锁:

  • 死锁的预防:
    • 破坏请求保持条件。要求进程在执行前必须一次性申请执行所需的所有资源。
    • 破坏不剥夺条件。要求进程在申请其他资源的时候必须释放已经占有的所有资源。
    • 破坏环路等待。给所有资源编号,必须按照一定的顺序申请资源
  • 死锁的避免:提前规划出一条不会产生死锁的资源分配算法。如银行家算法
  • 死锁检测:允许产生死锁,系统会定时监测,一旦发现死锁,则立刻解除
  • 死锁解除:采用一定方法解除。如资源剥夺法,和撤销进程法。

image-20240317194054334

image-20240317194102597

image-20240317194110783

线程是调度的最小单位,而进程是拥有资源的最小单位

线程和进程可以共享的数据:

  • 公共数据
  • 全局变量
  • 进程级的资源

不可共享数据

  • 栈指针

image-20240317194259420

4. 存储管理

4.1 地址重定位

image-20240317194336189

逻辑地址为操作系统分配给程序的虚拟地址。是程序中使用的地址。如int a = 11 a就是虚拟地址

物理地址是世纪存储的地址

将虚拟地址转换到物理地址的过程称为地址重定位

image-20240317194536086

地址重定位可以分为两类

  • 静态重定位:当程序装入内存时,就直接完成逻辑地址与物理地址的映射
  • 动态重定位:在程序运行时运行到逻辑地址的时候再进行地址的转换
4.1 分区管理

分区管理主要处理的问题是如何将作业装入内存的问题。分配的方式主要可以分为以下两大类:

  • 连续方式:要求所有装入内存的作业都是占用连续的内存空间,主要有下面的几种方式:
    • 单一连续:适用于单道系统,同时只能有一道作业装入内存
    • 固定分区:在系统启动时,就将主存划分为若干个大小相等的分区。一个作业只能装入一个分区中。这种情况会产生内碎片。
    • 动态分区/可变分区:系统启动时不划分空间,当作业要装入的时候,划分和作业大小一样的空间,会外碎片。为了解决这些外碎片的问题,可以使用紧凑功能。
  • 离散方式:所有装入内存的作业可以离散地存储在内存的不同区域中
    • 分页式:将进程地址空间划分为若干个大小相等的页。主存划分为若干个大小相等的块。分配主存的时候,将这些页分别装入这些块中。
    • 段式:将程序按照一定的逻辑划分为段,装入内存。段的长度不固定。需要保存每一段的起始地址和段长
    • 段页:现将程序分段,然后段内分页装入内存中

虚拟存储器:当有一些作业过大,无法直接装入内存时,可以利用虚拟存储器的方式,将一部分的作业装入内存,如果需要时,再从磁盘中写入内存。利用的是程序的局部性原理。

image-20240317194758717

image-20240317194811438

image-20240317194822344

image-20240317194829469

image-20240317194835052

image-20240317194842902image-20240317194901431

image-20240317200054714

image-20240317200112734

4.2 页面置换算法

当内存中空间不够的时候,会利用一些算法将内存中的内容置换到外存中。这种现象叫做缺页。缺页次数越多,则系统的运行效率就越低。

image-20240317200436007

image-20240317200442416

5. 设备管理

image-20240317200506701

简单理解:IO软件就是IO设备的驱动程序

image-20240317200940837

image-20240317201001064

SPOOLING技术的思想就是利用缓存技术,目的是解决CPU与IO设备之间速度不匹配的问题。从而提高CPU与设备的并行程度。

image-20240317201118387

磁盘调度

image-20240317201308971

磁盘调度算法:

  • FCFS:根据请求队列的顺序依次访问
  • SSTF:根据磁头所在的位置,寻找与磁头相邻最近的请求,每一次寻道时间最短,但是平均寻道时间不一定最短
  • SCAN:电梯算法。每次选择当前移动方向上距离最近的磁道访问
  • CSCAN:每次都从头扫描到尾

image-20240317201621782

image-20240317201628807

image-20240317201655527

当前磁头位于18磁道。按照最短寻道时间进行查找:

  • 2号请求位于磁道20,首先访问2
  • 然后3同样位于磁道20,继续访问3
  • 此时距离磁道20最近的请求是位于磁道15的请求1,5,8 因此需要判断具体先访问哪一个。
  • 我们看到最后一次访问的3号请求中,磁头号为8,因此肯定优先访问请求1和请求5,因为他们的磁头都是8 再看扇区。当前所在扇区为6,根据最短寻道时间,应该优先访问请求5,因为距离扇区4更近。因此相应顺序为5,1,8

6. 文件管理

image-20240317201931838

image-20240317201941720

image-20240317202421137

文件是具有符号的逻辑上具有完整意义的一组相关信息项的集合。

文件的逻辑结构:

  • 流式文件:由二进制或者顺序字符串组成的文件,如二进制文件和文本文件
  • 记录式文件:由一个以上的记录组成,如数据库表。

文件的逻辑结构:

  • 连续结构:文件存储在连续的物理块上
  • 连接结构:类似链表,文件存储在不一定连续的物理块上
  • 索引结构:文件存放在不连续的物理块上,系统为每一个文件建立一个索引表,所以表记录了该文件存储的所有的物理块号
  • 多级结构:物理块中存储的依然是一个索引表

image-20240317202823599

image-20240317202834377

image-20240317202840123

image-20240317202919056

image-20240317202932241

image-20240317202940559

image-20240317202947808

文件存储的目录结构:

  • 一级目录:系统只有一个目录表,也就是系统只有一级目录。所有的文件都只能保存到这一个目录,不允许文件重名。
  • 二级目录:系统为每一个用户创建一个目录在主目录中,每一个用户都可以在自己的目录下面创建文件。允许不同用户的文件重名
  • 多级目录:树型结构

文件空闲存储空间管理

image-20240317204036672

image-20240317204020317

image-20240317204135700

image-20240317204151234

image-20240317204204986

image-20240317204228086

7. 作业管理

作业是为了完成一个任务需要的工作的总和。

作业由程序,数据和作业说明书组成。

image-20240317204458773

image-20240317204506582

JCB是作业唯一标识。PCB是进程存在的唯一标识

image-20240317204546139

image-20240317204554042

image-20240317204601250

image-20240317204609648

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

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

腾讯云优惠券介绍、领取入口及使用教程

腾讯云作为国内领先的云服务提供商,一直以其稳定、高效、安全的服务赢得了广大用户的信赖。为了回馈广大用户,腾讯云经常会推出各种优惠活动,其中优惠券就是最为常见和受欢迎的一种。 一、腾讯云优惠券介绍 腾讯云优惠券是腾讯云官方推出的一…

Json Web Token(JWT) 快速入门

推荐视频:【从零开始掌握JWT】 目录 第一章 会话跟踪 01 使用Cookie和Session,jsessionid 02 使用token 例子一:自定义token 例子二:使用redis存储token 第二章 会用JWT 01 TOKEN的特点 02 什么时候使用JWT 03 JWS-JWE…

Linux学习:git补充与调试工具gdb

目录 1. git版本控制器(续)1.1 git本地仓库结构1.2 git实现版本控制与多人协作的方式1.3 git相关指令,多分支模型与.gitignore文件 2. gdb调试工具2.1 企业项目开发流程简述与调试的必要性2.2 bug的调试思路方法与调式工具的使用 1. git版本控…

目标检测---IOU计算详细解读(IoU、GIoU、DIoU、CIoU、EIOU、Focal-EIOU、SIOU、WIOU)

常见IoU解读与代码实现 一、✒️IoU(Intersection over Union)1.1 🔥IoU原理☀️ 优点⚡️缺点 1.2 🔥IoU计算1.3 📌IoU代码实现 二、✒️GIoU(Generalized IoU)2.1 GIoU原理☀️优点⚡️缺点 2…

深入理解Java中的TCP连接:三次握手和四次挥手

欢迎来到我的博客!今天我们将一起探索网络通信的奥秘。在Java编程中,我们经常会涉及到网络通信,而TCP协议是实现可靠数据传输的重要协议之一。在建立TCP连接和断开连接的过程中,三次握手和四次挥手是至关重要的步骤。本文将深入探…

rt-thread(5.0版本)之sfud组件的使用问题记录(w25q128存储模块)

前言 记录一下5.0版本时使用官方推荐的函数与底层驱动存在的不兼容问题 相关宏定义 // -----------------------------SPI 组件 #define RT_USING_SPI #define RT_USING_SFUD #define RT_SFUD_USING_SFDP #define RT_SFUD_USING_FLASH_INFO_TABLE #define RT_SFUD_SPI_MAX_HZ…

生骨肉冻干喂养有哪些优点?对猫身体好的生骨肉冻干分享

随着科学养猫知识的普及,生骨肉冻干喂养越来越受到养猫人的青睐。生骨肉冻干不仅符合猫咪的饮食天性,还能提供均衡的营养,有助于维护猫咪的口腔和消化系统健康。很多铲屎官看到了生骨肉冻干喂养的好处,打算开始生骨肉冻干喂养&…

ES 常见面试题及答案

目录 es 写入数据流程 es 删除数据流程 es 读数据流程 es 部署的服务有哪些角色 es 的实现原理 es 和lucence 关系 如何提高写入效率 提高搜索效率 es doc value指的啥 分片指的啥,定义后可不可义再修改 深分页如何优化 对于聚合操作是如何优化的 元数据…

微服务高级篇(二):分布式事务+Seata架构

文章目录 一、分布式事务理论基础1.1 CAP定理1.2 BASE理论 二、初始Seata2.1 Seata的架构2.2 部署TC【事务协调者】服务2.3 微服务集成Seata 三、实践3.1 XA模式3.1.1 原理3.1.2 实现 3.2 AT模式3.2.1 原理3.2.2 脏写问题以及解决方案【全局锁超时处理】3.2.3 实现 3.3 TCC模式…

机器人路径规划:基于迪杰斯特拉算法(Dijkstra)的机器人路径规划(提供Python代码)

迪杰斯特拉算法(Dijkstra)是由荷兰计算机科学家狄克斯特拉于1959年提出的,因此又叫狄克斯特拉算法。是从一个顶点到其余各顶点的最短路径算法,解决的是有权图中最短路径问题。迪杰斯特拉算法主要特点是从起始点开始,采用贪心算法的策略&#…

【漏洞复现】Progress Kemp LoadMaster 命令注入漏洞(CVE-2024-1212)

0x01 产品简介 Progress Kemp LoadMaster是一款高性能的应用交付控制器,具有可扩展性,支持实体硬件和虚拟机的负载均衡。它提供了当今应用服务所需的各种功能,包括深度用户验证、资安防护(如WAF/IPS/DDoS防护)以及零信…

Cannot run program “C:\Program Files\Java\jdk-17\bin\java.exe“

错误提示:Cannot run program “C:\Program Files\Java\jdk-17\bin\java.exe” 解决办法: 检查环境变量是否配置是否正确检查项目环境是否正确,可能会出现多个JDK版本,将不需要的删除

Spring Cloud(Finchley版本)系列教程(四) 断路器(Hystrix)

Spring Cloud(Finchley版本)系列教程(四) 断路器(Hystrix) 为了更好的浏览体验,欢迎光顾勤奋的凯尔森同学个人博客http://www.huerpu.cc:7000 一、断路器Hystrix hystrix是Netlifx开源的一款容错框架,防雪崩利器,具备服务降级,…

如何实现在固定位置的鼠标连点

鼠大侠的鼠标连点功能是免费的 浏览器搜索下载鼠大侠,指定连点间隔和启动快捷键 点击设置,指定点击位置

2024年熔化焊接与热切割证模拟考试题库及熔化焊接与热切割理论考试试题

题库来源:安全生产模拟考试一点通公众号小程序 2024年熔化焊接与热切割证模拟考试题库及熔化焊接与热切割理论考试试题是由安全生产模拟考试一点通提供,熔化焊接与热切割证模拟考试题库是根据熔化焊接与热切割最新版教材,熔化焊接与热切割大…

部分字符函数与字符串函数的讲解

说到字符函数,我们见过很多,比如strlen,strcpy,strcat...... 这时候就会有人说还有sizeof,其实sizeof不是库函数,他其实是操作符 但是你听说过以下库函数么? 所以说字符串的函数有很多&#xff…

Photomator:专业级照片编辑的利器

Photomator软件是一款功能强大的照片编辑和管理工具,专注于提供高质量的图像处理体验和便捷的工作流程。以下是关于Photomator软件功能特色的详细介绍: 高级颜色调整功能:Photomator提供了大量前沿的颜色调整工具,包括AI驱动的自…

【数据结构】单链表详解

前言 为了解决顺序表存在的一些问题,我们引入了单链表~ 欢迎关注个人主页:逸狼 创造不易,可以点点赞吗~ 如有错误,欢迎指出~ 目录 前言 顺序表存在一定的问题 与顺序表的对比 认识链表 链表结构 打印节点 头文件SList.h 源…

opencv安装(C++)并配置vs

准备工作: 1.opencv安装包(此教程使用4.9) 2.visual studio(此教程使用vs2019) opencv安装: 1、下载opencv: 1.1 官网下载:Releases - OpenCV 1.2 百度网盘:链接:https://pan.baidu.com/s/1NpEoFjbbyQJtFD…

HANA VIEW 用 ABAP 创建CDS VIEW,在生成ODATA

这里我们做ADT来创建 场景介绍:把hana中的一个底表,创建成ABAP的 CDS VIEW ,在把CDS VIEW 生成 OData 服务。 一、创建CDS Table Function 红框内根据自身情况填写 选择 Define Table Function with Parameters 创建 Data Definition 完整代码,定义 结构 , 也可以定义参…