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:校验码-交叉存储

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

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

相关文章

7. MySQL 视图、索引

文章目录 【 1. 视图 View 】1.1 视图原理1.2 创建视图 CREATE VIEW1.2.1 创建基于单表的视图1.2.2 创建基于多表的视图 1.3 查看视图1.3.1 查看视图的内容1.3.2 查看视图的详细信息 1.4 修改视图 ALTER VIEW1.4.1 修改视图内容1.4.2 修改视图名称 1.5 删除视图 DORP VIEW 【 2…

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

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

PCIe总线-事物层之TLP路由介绍(七)

1.概述 下图是一个PCIe总线系统示意图。此时RC发出一个TLP&#xff0c;经过Switch访问EP&#xff0c;TLP的路径为红色箭头所示。首先TLP从RC的下行OUT端口发出&#xff0c;Switch的上行IN端口接收到该TLP后&#xff0c;根据其路由信息&#xff0c;将其转发到Switch的下行OUT端…

Re73 读论文:ULMFiT Universal Language Model Fine-tuning for Text Classification

诸神缄默不语-个人CSDN博文目录 诸神缄默不语的论文阅读笔记和分类 论文全名&#xff1a;Universal Language Model Fine-tuning for Text Classification 模型简称&#xff1a;ULMFiT 模型全名&#xff1a;Universal Language Model Fine-tuning ArXiv网址&#xff1a;https…

513.找树左下角的值

给定一个二叉树&#xff0c;在树的最后一行找到最左边的值。 示例 1: 示例 2: 思路&#xff1a; 深度最大的叶子结点一定是最后一行。 优先左边搜索&#xff0c;记录深度最大的叶子节点&#xff0c;此时就是树的最后一行最左边的值 代码&#xff1a; class Solution:def fi…

语言模型的校准技术:增强概率评估

​ 使用 DALLE-3 模型生成的图像 目录 一、说明 二、为什么校准对 LLM 模型至关重要 三、校准 LLM 概率的挑战 四、LLM 的高级校准方法 4.1 语言置信度 4.2 增强语言自信的先进技术 4.3 基于自一致性的置信度 4.4 基于 Logit 的方法 五、代理模型或微调方法 5.1 使用代…

Python 网络爬虫:深入解析 Scrapy

大家好&#xff0c;在当今数字化时代&#xff0c;获取和分析网络数据是许多项目的关键步骤。从市场竞争情报到学术研究&#xff0c;网络数据的重要性越来越被人们所认识和重视。然而&#xff0c;手动获取和处理大量的网络数据是一项繁琐且耗时的任务。幸运的是&#xff0c;Pyth…

Stable Diffusion安装记录II

文章目录 前言0 更改python路径&#xff08;跳过&#xff09;1 Torch is not able to use GPU1.1 确认显卡1.2 安装nvdia驱动 1.3 检查CUDA1.4更改启动脚本 2 依赖安装2.1 pip install报错2.2 git报错2.3 卡在installing requirements 3 启动咯~3.1 clip报错 4 成功运行4.1 遗留…

go 针对 time类型字段,前端查询,后端返回数据格式为UTC时间

测试代码 package mainimport ("context""log""net/http""time""github.com/gin-gonic/gin""go.mongodb.org/mongo-driver/bson""go.mongodb.org/mongo-driver/bson/primitive""go.mongodb.org/m…

Ubuntu22.04之解决:Flameshot无法截图问题(二百三十五)

简介&#xff1a; CSDN博客专家&#xff0c;专注Android/Linux系统&#xff0c;分享多mic语音方案、音视频、编解码等技术&#xff0c;与大家一起成长&#xff01; 优质专栏&#xff1a;Audio工程师进阶系列【原创干货持续更新中……】&#x1f680; 优质专栏&#xff1a;多媒…

低代码是什么?开发系统更有什么优势?

低代码&#xff08;Low-Code&#xff09;是一种应用开发方法&#xff0c;它采用图形化界面和预构建的模块&#xff0c;使得开发者能够通过少量的手动编程来快速创建应用程序。这种方法显著减少了传统软件开发中的手动编码量&#xff0c;提高了开发效率&#xff0c;降低了技术门…

Django ORM深度游:探索多对一、一对一与多对多数据关系的奥秘与实践

系列文章目录 Django入门全攻略&#xff1a;从零搭建你的第一个Web项目Django ORM入门指南&#xff1a;从概念到实践&#xff0c;掌握模型创建、迁移与视图操作Django ORM实战&#xff1a;模型字段与元选项配置&#xff0c;以及链式过滤与QF查询详解Django ORM深度游&#xff…

堆排序-java

这次主要讲了堆排序和堆的基本构造&#xff0c;下一期会详细讲述堆的各种基本操作。 文章目录 前言 一、堆排序 1.题目描述 2.堆 二、算法思路 1.堆的存储 2. 结点下移down 3.结点上移up 4.堆的基本操作 5.堆的初始化 三、代码如下 1.代码如下&#xff1a; 2.读入数据&#xff…

重庆人文科技学院建立“软件安全产学研基地”,推动西南地区软件安全发展

5月29日&#xff0c;重庆人文科技学院与开源网安签订了《产学研校企合作协议》&#xff0c;并举行了“重庆人文科技学院产学研基地”授牌仪式&#xff0c;此次合作不仅深化了双方在软件安全领域的产学研紧密联结&#xff0c;更是对川渝乃至西南地区软件供应链安全发展起到重要的…

C++17之std::void_t

目录 1.std::void_t 的原理 2.std::void_t 的应用 2.1.判断成员存在性 2.1.1.判断嵌套类型定义 2.1.2 判断成员是否存在 2.2 判断表达式是否合法 2.2.1 判断是否支持前置运算符 2.2.3 判断两个类型是否可做加法运算 3.std::void_t 与 std::enable_if 1.std::void_t 的…

相机等效焦距

1. 背景 物理焦距我们很熟悉,但是在接触实际的相机参数时,相机厂家会提到一个参数等效焦距,甚至有时候不提供物理焦距,这时候如果我们得到真实的物理焦距需要进行一定的转换.在介绍两者之间的转换关系前,先介绍一下等效焦距的由来. 如上图,假设在某一个镜头,其成像面会出现图…

操作系统 - 文件管理

文件管理 考纲内容 文件 文件的基本概念&#xff1b;文件元数据和索引节点(inode) 文件的操作&#xff1a;建立&#xff0c;删除&#xff0c;打开&#xff0c;关闭&#xff0c;读&#xff0c;写 文件的保护&#xff1b;文件的逻辑结构&#xff1b;文件的物理结构目录 目录的基…

Multipass虚拟机磁盘扩容

Multipass 是一个用于轻松创建和管理 Ubuntu 虚拟机的工具&#xff0c;特别适合开发环境。要使用 Multipass 扩大虚拟机的磁盘容量&#xff0c;你需要经历几个步骤&#xff0c;因为 Multipass 自身并不直接提供图形界面来调整磁盘大小。不过&#xff0c;你可以通过结合 Multipa…

UE5 Http Server

前言 最近要用UE 作为一个服务器去接收来自外部的请求&#xff0c;从而在UE中处理一些内容&#xff0c;但是之前只做过请求&#xff0c;哪整过这玩意&#xff0c;短期内还得出结果&#xff0c;那怎么搞嘞&#xff0c;本着省事的原则就找找呗&#xff0c;有没有现成的&#xff0…

Golang | Leetcode Golang题解之第123题买卖股票的最佳时机III

题目&#xff1a; 题解&#xff1a; func maxProfit(prices []int) int {buy1, sell1 : -prices[0], 0buy2, sell2 : -prices[0], 0for i : 1; i < len(prices); i {buy1 max(buy1, -prices[i])sell1 max(sell1, buy1prices[i])buy2 max(buy2, sell1-prices[i])sell2 m…