961操作系统知识总结

部分图片可能无法显示,参考这里:https://zhuanlan.zhihu.com/p/701247894

961操作系统知识总结

一 操作系统概述

1. 操作系统的基本概念


重要操作系统类型:批处理操作系统(批量处理作业,单道批处理/多道批处理系统,用户不能与之交互),分时操作系统(时间片轮转,可以进行用户交互),实时操作系统(相对分时操作系统,紧急任务无需排队等待)

并发并行:并发性,又称共行性,是指能处理多个活动的能力。并行与并发是不同的,并行是指进程在CPU上同时执行,而并发只要求一段时间内进程同时能够运行,有可能是在这段时间内两者是串行执行的。
程序:放在外存中的程序代码
作业:正准备从外存调入内存的程序
进程:正在从内存中运行的程序

2. 操作系统的重要概念

用户态+核心态/管态
操作系统内核相关内容:时钟管理,中断机制,原语,系统控制的数据结构及处理
原语:处于计算机最底层,用来实现一些规定操作的指令,且不能被中断,需一次性执行完(一般执行时间也很短)。
系统控制的数据结构及处理:如进程控制块,设备控制块等。

二 进程管理

1. 进程、线程的基本概念以及两者的区别

在操作系统中引入进程的目的,是为了使多个程序并发执行,以改善资源利用率及提高系统的吞吐量;那么,在操作系统中再引入线程则是为了减少程序并发执行时所付出的时空开销,使操作系统具有更好的并发性。

支持线程的操作系统中,进程是资源分配的基本单位,线程是处理器调度的基本单位。

2. 进程控制块、进程的状态与转换


当遇到特殊情况,需要暂停进程,然后将进程会从内存调到外存,该过程就称为进程的挂起。被挂起的程序在解决了特定问题之后,可以恢复到内存继续运行。
注意,进程的挂起不是进程的阻塞,处于阻塞状态的进程依然在内存中,但处于挂起状态的进程已经不在内存了。
进程 = 程序 + 数据 + 进程控制块PCB

3. 进程调度算法

优先级算法
时间片轮转算法
短作业优先算法
先来先服务算法
最重要评估原则:周转时间平均周转时间
其他比较次要的原则:

调度的层次:低级调度(作业调度,程序),中级调度(内存调度,挂起),高级调度(进程调度,进程)

4. 死锁的探讨与处理

死锁的预防

死锁发生的四个必要条件:循环等待条件,不可剥夺条件,请求保持条件,互斥使用条件

死锁的避免

银行家算法,安全性算法,资源分配矩阵,安全序列

死锁的检测

资源分配图的化简

死锁的解除

资源剥夺法,撤销进程法

死锁处理总览

从预防,避免,检测,解除四个角度出发,大题可能出银行家算法,安全性算法,资源分配图,其实本质都一样,思想都是试探性分配

5. 进程间通信

低级通信:交换少量信息,PV操作是低级通信方式,实现对临界资源的同步和互斥。
高级通信:以较高的效率交换大量数据的通信方式
高级通信方式:共享存储,消息传递系统,管道通信

6. 进程同步互斥的基本概念

临界资源:系统中一次只允许一个进程使用的资源
临界区:各个进程中对某个临界资源实施操作的程序片段
同步:一个进程执行到某一步时,必须等待另一个进程发来信息才能继续运行下去,这种关系叫同步。
互斥:由于各个进程需要使用共享资源,而这些资源需要排它性使用,各个进程之间竞争使用这些资源,这种关系叫互斥。
临界资源的访问代码分区:进入区临界区退出区,剩余区

7. 实现临界区互斥的基本方法

软件实现法
在进入区设置和检查一些标志来表明是否有进程进入临界区。若有,则循环检查一直等待,直到进入临界区。离开临界区后,在退出区修改标志。这种不断循环检查标志的值实质上,浪费了处理机资源。
硬件实现法
硬件实现主要两种方法:中断屏蔽法硬件指令法
中断屏蔽法:一个进程进入临界区后,关中断。可以防止其他进程进入临界区。此方法限制了CPU交替执行程序的能力,有可能会使系统崩溃(如异常得不到中断处理)
硬件指令法:每条硬件指令都是原子操作,因为它们是硬件直接实现,因此执行硬件指令时不会被中断
信号量机制
一种十分有效,重要的同步方法,可以同时实现同步和互斥关系,实现灵活方便快捷

8. 信号量机制及P、V操作

信号量机制可用来解决同步和互斥问题,信号量semaphore只能被两个操作(P操作和V操作)来访问。
信号量的数据结构描述如下:

typedef struct {
    int value;
    struct process *L;
} semaphore;

说明:该数据结构由两个变量组成,value是当前状态可用资源的数量,L是存放因资源限制被阻塞的进程队列指针。
P操作:请求访问临界资源
V操作:请求释放临界资源

信号量机制原理简述

当一个进程需要临界资源时:

  1. 进行P操作,value的值减1
  2. 若value>=0,说明存在可用临界资源,进程继续执行,否则转3
  3. 若value<0,说明不存在可用临界资源,将当前进程加入阻塞队列L
  4. 阻塞进程,等待适当时机被唤醒

当一个进程释放临界资源时:

  1. 进行V操作,value的值加1
  2. 若value>0,说明不存在阻塞的进程,否则转3
  3. 若value<=0,说明存在阻塞的进程等待临界资源,唤醒一个阻塞进程

只需要将临界区代码置于P,V操作之间,即可实现同步与互斥
分析:此时,P操作相当于进入区,临界区依然是临界区,V操作相当于退出区,剩余区依然不变;P,V操作为原语,执行过程中不能被中断。

9. 经典同步问题

主要三个问题:生产者消费者问题读者写者问题哲学家进餐问题,前两个问题相对更重要,是实际做题的思路来源
生产者消费者问题



读者写者问题



哲学家进餐问题

三 内存管理

1. 程序从外存调入内存细节

程序从外存到内存,实现了外存中作业到内存中进程的转变,大体经过编译链接装入三大过程。
编译
编译过程主要有编译汇编两个阶段。编译阶段主要将高级语言转换为汇编语言,汇编阶段主要将汇编语言翻译成机器语言。
链接
由链接程序将编译后形成的目标模块以及所需要的库函数链接在一起,形成一个完整的装入模块。链接主要在编译时,加载时,运行时进行。链接若发生在编译时,就是静态编译,程序运行前完全确定链接;而运行时链接,表示程序运行到需要的函数库才链接对应对象,为动态编译
装入
由装入程序将装入模块装入内存运行,此时会创建对应进程。装入分为静态重定位动态重定位。涉及的主要问题是程序中的逻辑地址与实际内存的物理地址之间如何映射。静态重定位在装入时一次性完成逻辑地址与物理地址的映射关系,而动态重定位需要运行时动态确定逻辑地址与物理地址的映射关系。

2. 内存保护的基本方法

内存保护的关键在于检查进程是否有内存地址越界行为。
上下限寄存器
在CPU中设置上下限寄存器,用于分别存放作业在主存中的上限和下限地址,当CPU要访问地址时,与这两个寄存器的值进行比较即可判断是否越界,适合逻辑地址即对应相应物理地址的情形(如物理地址与逻辑地址事先就确定只差一个固定的偏移量)
界地址寄存器
界地址寄存器存有进程的最大逻辑地址(通过分配内存后由起始物理地址与分配空间大小计算得出),可通过逻辑地址是否大于该界地址寄存器的值比较是否发生越界,若不越界,加上重定位寄存器(存有进程的起始物理地址)的值即为物理地址。

3. 分区管理存储

可细分两种:固定式分区存储管理动态式分区存储管理

固定式分区分配方法:单一队列分配方式,多队列分配方式
可变式分区分配方法:首次适应算法,下次适应算法,最佳适应算法,最坏适应算法
碎片方面:固定式分区产生内碎片,可变式分区产生外碎片

4. 交换覆盖技术

覆盖技术

交换技术

5. 分页存储管理(重点内容,展开比较详细)


作业在请求内存空间的分配时,一般按照页为单位来分配,每个进程记住自己分得哪些页(一般记录页号)形成页表,页表数据存储在进程控制块PCB中






地址变换过程


多级页表


6. 分段存储管理



7. 段页存储管理


8. 虚拟存储管理

虚拟存储技术的实现依赖于局部性原理,即进程往往会不均匀地高度局部性地访问内存。局部性原理表现在时间局部性空间局部性


9. 页面置换算法


如果进程在运行中发生缺页现象,需要进入缺页中断机构进行处理,请求操作系统将所缺页面调入内存。此时进程被阻塞,等待调页完成时的唤醒。

重要算法

OPT
LRU
FIFO
CLOCK

四 设备管理

1. 设备管理基本概念

设备按传输分类:块设备(数据块为单位),字符设备(字符为单位)
设备按用途分类:存储设备,传输设备,人机交互设备
设备按共享分类:共享设备独占设备(临界资源),虚设备(虚拟技术上的逻辑设备)

设备控制方式:程序控制中断驱动DMA方式通道方式

2. 直接控制方式


3. 中断驱动方式


4. DMA方式


5. 通道方式


6. 缓冲技术

当缓冲区的数据非空时,不能往缓冲区注入数据;当缓冲区数据为空时,才能注入数据。
当缓冲区的数据不满时,不能获取缓冲区数据;当缓冲区数据为满时,才能获取数据。
主要缓冲技术有:单缓冲技术双缓冲技术,循环缓冲技术,缓冲池技术

7. 假脱机技术



五 文件管理

1. 文件系统概念

文件由文件体文件控制块FCB构成

文件分两种:普通文件(正常意义下的文件),特殊文件(目录,本质上为文件),磁盘里面存储的都是文件,以文件为逻辑单位进行组织

对文件的不同组织方式,就构成了不同的文件系统,常见的文件系统有:FAT,NTFS

2. 普通文件基础



文件结构分为逻辑结构物理结构
逻辑结构:文件在操作系统角度的组织方式,主要为用户所看到
物理结构:文件在物理磁盘角度的组织方式,主要为系统所看到




3. 目录文件基础




4. 文件系统实现




5. 磁盘调度算法

6. 冗余磁盘阵列

RAID0:条带化存储
RAID1:镜像存储
RAID2:汉明码存储

RAID3:校验码-字节存储
RAID4:校验码-数据块存储
RAID5:校验码-交叉存储

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

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

相关文章

将 py 文件编译成 pyd 文件

文章目录 一、简介1.1、Python中的文件类型&#xff1a;.py .pyc .pyd1.2、基本原理1.2.1、函数详解&#xff1a;Extension() —— 用于定义扩展模块&#xff08;C/C 扩展&#xff09;的类1.2.2、函数详解&#xff1a;setup() —— 用于配置和构建包的函数 二、构建过程2.0、…

带交互的卡尔曼滤滤波|一维滤波|源代码

背景 一维卡尔曼滤波的MATLAB例程&#xff0c;​背景为温度估计。 代码介绍 运行程序后&#xff0c;可以自己输入温度真实值&#xff1a; 以20℃为例&#xff0c;得到如下的估计值​&#xff1a; 滤波前的值和滤波后的值分别于期望值&#xff08;真实值&#xff09;作差…

海光CPU:国产信创的“芯“动力解读

国产信创CPU-海光CPU CPU&#xff1a;信创根基&#xff0c;国之重器 国产CPU形成三大阵营&#xff1a;自主架构、x86及ARM。自主阵营中&#xff0c;龙芯和申威以LoongArch和SW-64为基石&#xff1b;ARM阵营由鲲鹏、飞腾主导&#xff0c;依托ARM授权研发处理器&#xff1b;x86阵…

Python知识点17---包

提前说一点&#xff1a;如果你是专注于Python开发&#xff0c;那么本系列知识点只是带你入个门再详细的开发点就要去看其他资料了&#xff0c;而如果你和作者一样只是操作其他技术的Python API那就足够了。 Python的包&#xff0c;你可以把它看成是一个大的模块&#xff0c;它…

【Java】javafx界面布局

目录 一、面板类 &#xff08;1&#xff09;Pane面板 &#xff08;2&#xff09;HBox面板 &#xff08;3&#xff09;VBox面板 &#xff08;4&#xff09;BorderPane面板 &#xff08;5&#xff09;FlowPane面板 (6)GridPane面板 &#xff08;7&#xff09;StackPane面…

生命在于学习——Python人工智能原理(3.1)

三、深度学习 &#xff08;一&#xff09;深度学习的概念 1、深度学习的来源 深度学习的概念来源于人工神经网络&#xff0c;所以又称深度神经网络。 人工神经网络主要使用计算机的计算单元和存储单元模拟人类大脑神经系统中大量的神经细胞&#xff08;神经元&#xff09;通关…

【精读文献】J. Environ. Manage.|青藏高原生态恢复项目下植被覆盖动态及其对生态系统服务的约束效应

目录 文章简介 01 文章摘要 02 研究背景、目标及创新点 2.1 研究背景 2.2 研究现状 03 研究区域与数据集 3.1 研究区域 3.2 研究数据 04 研究方法 4.1 趋势分析 4.2 残差趋势分析 4.3 偏相关 4.4 生态系统服务评价 4.5 约束线的定义和提取 05 研究结果 5.1 植被…

重学java 55. 集合 Set接口

我救自己万万次&#xff0c;铮铮劲草&#xff0c;绝不动摇 —— 24.6.2 一、Set集合介绍 Set和Map密切相关的 Map的遍历需要先变成单列集合&#xff0c;只能变成set集合 二、HashSet集合的介绍和使用 1.概述 HashSet是Set接口的实现类 2.特点 a、元素唯一 b、元素无序 c、无索引…

单元测试的心法分享

大家好&#xff0c;我是G探险者&#xff01; 今天我们简单聊聊单元测试的哪些事儿~ 两天时间我玩明白了单元测试的套路。 这里我分享一下思路。 在我眼里单元测试室什么&#xff1f; 请看这张草图&#xff1a; 单元测试主要关注单个代码单元&#xff08;通常是类或方法&am…

云原生架构案例分析_2.云原生技术助力某汽车公司数字化转型实践

名词解释&#xff1a; 互联网 在“互联网”模式下&#xff0c;我们仅仅把互联网看作是一种传播工具、传播手段、传播渠道和传播平台&#xff0c;对于互联网的应用大体上是在既有的运作逻辑的基础之上&#xff0c;把互联网作为延伸传媒影响力、价值和功能的一种延伸型工具&…

秒杀基本功能开发(不考虑高并发情况)

文章目录 1.显示秒杀状态1.controller修改GoodsController.java的toDetail方法&#xff0c;响应秒杀状态和秒杀剩余时间 2.前端1.goodsDetail.html 图片下面添加一行秒杀开始时间2.goodsDetail.html 添加计时器js代码 3.测试1.秒杀进行中2.修改db的秒杀开始时间为明天3.出现秒杀…

msvcr120.dll是干嘛的?出现找不到msvcr120.dll丢失怎样解决

msvcr120.dll是Microsoft Visual C 2012 Redistributable的核心文件&#xff0c;它是Microsoft Corporation开发的C/C运行时库文件之一。这个文件通常与应用程序一起安装&#xff0c;为应用程序提供许多基本的运行时功能&#xff0c;包括内存管理、异常处理、输入/输出操作等。…

Jenkins、GitLab部署项目

1、安装JDK 1.1、下载openJdk11 yum -y install fontconfig java-11-openjdk1.2、查看安装的版本号 java -version1.3、配置环境变量 vim /etc/profile在最底部添加即可 export JAVA_HOME/usr/lib/jvm/java-11-openjdk-11.0.23.0.9-2.el7_9.x86_64 export PATH$JAVA_HOME/…

SpringBoot注解--10--@Bean,对象注入的三种方法

提示&#xff1a;文章写完后&#xff0c;目录可以自动生成&#xff0c;如何生成可参考右边的帮助文档 文章目录 Bean一、如何使用方法注解注意Bean 的命名规则&#xff0c;当没有设置 name 属性时&#xff0c;那么 bean 默认的名称就是方法名&#xff0c;当设置了 name 属性之后…

【OJ】C++ | 二叉树进阶 · 合集(2)

摘要&#xff1a;根据二叉树创建字符串、二叉树的最近公共祖先、二叉树的层序遍历 前言&#xff1a;承接上文&#xff0c;本文继续提供二叉树进阶有关题目的解法。如有错误&#xff0c;烦请指正。 目录 1. 根据二叉树创建字符串 题解及代码 2. 二叉树的最近公共祖先 题解及…

PHAR反序列化

PHAR PHAR&#xff08;PHP Archive&#xff09;文件是一种归档文件格式&#xff0c;phar文件本质上是一种压缩文件&#xff0c;会以序列化的形式存储用户自定义的meta-data。当受影响的文件操作函数调用phar文件时&#xff0c;会自动反序列化meta-data内的内容,这里就是我们反序…

2024年06月编程语言流行度排名

点击查看最新编程语言流行度排名&#xff08;每月更新&#xff09; 2024年06月编程语言流行度排名 编程语言流行度排名是通过分析在谷歌上搜索语言教程的频率而创建的 一门语言教程被搜索的次数越多&#xff0c;大家就会认为该语言越受欢迎。这是一个领先指标。原始数据来自…

JAVA和爬虫,那个值得学习

如果你是初学者&#xff0c;建议先从基础的编程语言学起&#xff0c;比如Java&#xff0c;它能为你打下坚实的编程基础&#xff0c;并且在未来转学其他语言或技术时更加容易。随着编程基础的建立&#xff0c;你可以根据自己的兴趣或职业规划&#xff0c;学习爬虫技术作为补充技…

使用python下载股票数据至sqlite数据库

代码下载地址&#xff1a; https://download.csdn.net/download/weixin_44600457/89389489

961题库 北航计算机 计算机网络 附答案 选择题形式

有题目和答案&#xff0c;没有解析&#xff0c;不懂的题问大模型即可&#xff0c;无偿分享。 第1组 习题 OSI 参考模型的第 5 层( 自下而上 ) 完成的主要功能是 A. 差错控制 B. 路由选择 C. 会话管理 D. 数据表示转换 100BaseT 快速以太网使用的导向传输介质是 A. 双绞线 B. …