操作系统基本原理

news2024/11/19 7:28:20

目录

    • 第二章、操作系统基本原理
      • 1、操作系统概述
      • 2、进程管理
        • 2.1、进程的状态
        • 2.2、前趋图
        • 2.3、进程的同步与互斥
        • 2.4、PV操作
        • 2.5、PV操作题目
        • 2.6、PV操作与前驱图
        • 2.7、死锁问题
        • 2.8、死锁的预防与避免(银行家算法)
      • 3、存储管理
        • 3.1、分区存储组织
        • 3.2、页式存储组织
        • 3.3、段式存储组织和段页式存储
        • 3.4、页面置换算法
        • 3.5、索引文件结构
      • 4、操作系统
        • 4.1、文件和树形目录结构
      • 5、文件管理
        • 5.1、空闲存储空间的管理
      • 6、设备管理
        • 6.1、数据传输控制方式
        • 6.2、虚设备与SPOOLING技术
      • 7、微内核操作系统

第二章、操作系统基本原理

1、操作系统概述

在这里插入图片描述
在这里插入图片描述

2、进程管理

2.1、进程的状态

在这里插入图片描述

运行状态:这个进程,它所需要的所有资源都已经配足了,并且给它了cpu资源,这个时候它处于运行态
就绪状态:其他所有资源都已经配足了,只缺cpu资源
等待状态:除了没有cpu资源,还缺其它资源(等待用户的一些指令)

时间片轮转算法分配cpu资源:一个进程从就绪到运行,只能够运行了一个时间片,等时间片用完了,即使你的任务还没完成,仍然退出运行态,进入到就绪态,等下一次调度,等下一个时间片轮到你的时候,你才能够进入运行态。

5态模型多了:

静止就绪态:当你是运行态并且挂起,会进入静止就绪态,这个时候是人为的想把这一个进程先搁置在这里不处理
静止阻塞态

2.2、前趋图

在这里插入图片描述
A:绞肉B:切葱末C:切姜末D:搅拌E:包饺子
前驱图:表达的是要完成一系列活动,它的先后约束关系

2.3、进程的同步与互斥

在这里插入图片描述

互斥:指在同一时刻,只允许某一进程去使用这一个资源(同一个资源,不能同时服务于多个进程)

在这里插入图片描述
同步:有速度匹配的要求,当差距比较大的时候,要求速度快的停下来等一等

在这里插入图片描述

2.4、PV操作

临界资源:诸进程间需要互斥方式对其进行共享的资源,如打印机、磁带机等
临界区:每个进程中访问临界资源的那段代码称为临界区
信号量:是一种特殊的变量

在这里插入图片描述
P(S)
P操作,将信号量S做自减一的操作
如果S<0,会阻塞当前进程的这个继续执行的状态,把这个进程放到一个进程的队列里,这个进程就属于一个等待状态
如果S>0,会继续执行当前程序

V操作,是一个反向的操作,将信号量S做自加一的操作
如果S<=0,会在系统的进程队列里面,拿出一个进程来唤醒它,让它继续执行

单缓冲区生产者、消费者问题PV原语描述:

在这里插入图片描述

没有PV操作:
1️⃣假设生产者先执行,生产一个产品,送到缓冲区,因为是单缓冲区,所以只能放一个产品,在生产一个产品,就不能放到缓冲区了,因为会溢出。
2️⃣假设消费者先执行,从缓冲区取产品,这时缓冲区内还没有产品,所以取不到产品,出现问题。

用PV操作:
1️⃣生产者生产一个产品,P操作P(s1) s1=s1-1=0,判断不满足s1<0继续执行,送产品到缓冲区,V操作V(s2) s2=s2+1=1,判断不满足s2<=0继续执行。生产者生产一个产品,P操作P(s1) s1=s1-1=-1,判断满足s1<0阻塞当前进程
2️⃣消费者,P操作P(s2) s2=s2-1=0,判断不满足s2<0继续执行,从缓冲区取出产品,V操作V(s1) s1=s1+1=0,判断满足s1<=0,在系统的进程队列里面,拿出一个进程来唤醒它(唤醒生产者进程
3️⃣消费者先执行,P操作P(s2) s2=s2-1=-1,判断满足s2<0,直接阻塞,可以避免取空问题

PV操作所解决的问题,其实是并发进程之间某些约束关系的一些问题的解决

2.5、PV操作题目

在这里插入图片描述
个人见解:

  1. 假设没有约束,a1,a2,b1,b2,收银员会不断重复收费的过程,然而购书者没有只有提出付款请求时,才会有收费操作,所以这样会出现问题。
  2. P(sn) V(sn)目的就是最多允许n个购书者进入,假设n=10,P(sn) sn=sn-1
    直到执行10次就会阻塞,书店只能同时有10个人(也就是缓冲区最多存储量),只有当有人离开书店时,才能继续有人进入(也就是激活)
  3. 只有当购书者提出付款申请时,收银员才能进行收费,所以购书者a1激活b1,所以a1=V(s1) b1=P(s1)
  4. 只有当收银员收费完成后,购书者才算付款完成,所以收银员b2激活a2,所以b2=V(s2) a2=P(s2)

2.6、PV操作与前驱图

在这里插入图片描述
前驱图:主要用来表达进行活动,它们间的一种依赖关系

把前驱图转成pv操作的形式,把前驱图的每一个活动,都转成相应的进程,然后为了让这些进程在并发执行的时候,依然按前驱图的约束关系的先后顺序去执行

请添加图片描述

2.7、死锁问题

进程管理是操作系统的核心,但如果设计不当,就会出现死锁的问题。如果一个进程在等待一件不可能发生的事,则进程就死锁了。而如果一个或多个进程产生死锁,就会造成系统死锁。

死锁:系统当中有一系列的资源,有一系列需要用到这些资源的进程,这些进程需要系统给他分配资源才能够运行,如果系统在某一时刻发现,所有可用的资源都已经分配出去了,所有进程都没有办法完成它本身职责的任务,从而释放以占有的资源,就会产生死锁。

例:系统有3个进程:A、B、C。这3个进程都需要5个系统资源。如果系统至少有多少个资源,则不可能发生死锁。

在这里插入图片描述
n个进程,k个资源
共需要n×(k-1)+1个资源就不会发生死锁

2.8、死锁的预防与避免(银行家算法)

在这里插入图片描述

银行家算法:分配资源的原则

  1. 当一个进程对资源的最大需求量不超过系统中的资源数时可以接纳该进程
  2. 进程可以分期请求资源,但请求的总数不能超过最大需求量
  3. 当系统现有的资源不能满足进程尚需资源数时,对进程的请求可以推迟分配,但总能使进程在有限的时间里得到资源
    在这里插入图片描述
    在这里插入图片描述
    在这里插入图片描述

3、存储管理

3.1、分区存储组织

某计算机系统的内存大小为128k,采用可变分区分配方式进行内存分配,当前系统的内存分块情况如下图所示,现有作业4申请内存9k,几种不同的存储分配算法在分配中,会产生什么样的结果呢?
在这里插入图片描述
25k空间可能是作业运行完释放后的

3.2、页式存储组织

在这里插入图片描述
高级程序语言使用逻辑地址;运行状态,内存中使用物理地址。

页式存储,把用户程序,分成等分大小的页
我们把用户程序等分为4k一个块的这种区域,每一个4k的块成为一个页,把内存当中的这个存储区也分成4k一个,然后调入程序到内存里面来运行的时候,不再是把整个的用户程序一次性的调入,采取的机制是要运行那些块,就把那些块调入,那些页调入。

页表:记录它们之间的映射关系用户程序多少页,对应内存当中多少号块,
在这里插入图片描述
在这里插入图片描述

优点:利用率高,碎片小,分配及管理简单
缺点:增加了系统开销;可能产生抖动现象

逻辑地址转换为物理地址,业内地址=物理地址,页号对应的块号
物理地址=块号+业内地址
在这里插入图片描述
(1)解题:

  1. 逻辑地址=页号+页内地址
  2. 页面大小4K=212(一个页的页内地址是12位,高于12位的就是页号)
  3. 每个十六进制对应四个二进制位,所以A29H为业内地址,5为页号
  4. 5对应的块号(也叫页帧号)为6
  5. 物理地址为6A29H

(2)解题

  1. 4对应的状态位为0,不在内存,考虑进行页面淘汰
  2. 淘汰只能在内存里的,从 0 1 2 5 中淘汰
  3. 刚刚被访问的访问位为1 不能被淘汰,只有1号页能被淘汰

3.3、段式存储组织和段页式存储

在这里插入图片描述
在这里插入图片描述
优点:多道程序共享内存,各段程序修改互不影响
缺点:内存利用率低,内存碎片浪费大

在这里插入图片描述
优点:空间浪费小、存储共享容易、存储保护容易、能动态连接
缺点:由于管理软件的增加,复杂性和开销也随之增加,需要的硬件以及占用的内容也有所增加,使得执行速度大大下降

快表是一块小容量的相联存储器(Associative Memory),由高速缓存器组成速度快,并且可以从硬件上保证按内容并行查找,一般用来存放当前访问最频繁的少数活动页面的页号。

3.4、页面置换算法

  • 最优(Optimal,OPT)算法
  • 随机(RAND)算法
  • 先进先出(FIFO)算法:有可能产生“抖动”。例如,432143543215序列,用3个页面,比4个缺页要少
  • 最近最少使用(LRU)算法:不会“抖动”
    在这里插入图片描述

在这里插入图片描述
算法过程
  FIFO先进先出,第一行4 3 2 ……我们需要访问页面的序列,第一列1 2 3 我们要访问内存的三个页面。访问调用到的第一个程序是编号为4的程序页,内存里没有这一个编号为4的程序,所以会调入编号为4的程序页,产生一次缺页。 3 2程序页也是如此,产生缺页,当1号页调入,因为4号页首先调入,所以先被淘汰,依次类推。产生9次缺页。然而多加了一个页面却产生10次缺页,产生了抖动。

   例题1:在一个虚存系统中,进程的内存空间为3页,开始内存为空,有以下访问页序列:5 0 1 2 0 3 0 4 2 3 0 3 2 1 2 0 1 5 0 1,分别计算缺页次数。
(1)使用先进先出的页面淘汰算法。
(2)使用最佳适应算法。
(3)使用最近最少使用算法。
在这里插入图片描述
算法过程
  LRU最近最少使用,到2号页访问时,内存被5 0 1三个页面占用了,考虑把其中一个页面淘汰,FIFO会把先进的5号页淘汰,LRU会把最久没有被访问到的,最近没有被访问到的5号淘汰。到0号页访问时,内存中有0号页命中,不存在缺页。到3号页访问时,FIFO会把先进的0号页淘汰而LRU会把最久没有被访问到的1号页淘汰。

请添加图片描述

3.5、索引文件结构

在这里插入图片描述
索引文件结构:一般索引文件结构有13个结点(编号0~12号),在索引节点的文件结构当中分成了直接索引,一级间接索引,二级间接索引,三级间接索引,主要考虑到文件本身容量的扩展问题。

假如:一个物理盘块是4k,13块都是直接索引,那么这个文件最大多大 4k×13=52k。进行扩展,我们规定0~99个地址对应的是直接索引。
一级间接索引前10个容量40k,第十个结点指向的物理盘块,不在存索引文件的直接内容,存地址,物理盘块的地址,每个地址假设占4个字节,10号索引结点对应的物理盘块可以存4k÷4=1024个物理盘块的地址
二级间接索引 4k×1024×1024

请添加图片描述

4、操作系统

4.1、文件和树形目录结构

文件属性

  1. R只读文件属性
  2. A存档属性
  3. S系统文件
  4. H隐藏文件

文件名的组成

  1. 驱动器号
  2. 路径
  3. 主文件名
  4. 扩展名

绝对路径∶是从盘符开始的路径。
相对路径∶是从当前路径开始的路径。
若当前目前为:D1,要求F2路径,则:绝对路径:/D1/W2/F2,相对路径∶W2/F2
在这里插入图片描述

5、文件管理

5.1、空闲存储空间的管理

在这里插入图片描述
空闲存储空间管理:指在磁盘上会有大量的空间,需要把这些空闲的空间管理起来,以便在某一个文件要申请相应的存储空间时,能够有依据的去分配给它相应的空间

请添加图片描述

在这里插入图片描述

6、设备管理

6.1、数据传输控制方式

在这里插入图片描述
程序控制方式(程序查询方式):最低级的,也是cpu介入最多的一种机制,外设处于一种非常被动的方式,不会主动的反馈信息。

程序中断方式:有中断机制,外设完成了相应程序数据的传输,会发一个中断出来
DMA直接存取控制方式:会有专门的DMA控制器,外设和内存之间的数据交换过程中,有这个控制器管控。

6.2、虚设备与SPOOLING技术

在这里插入图片描述
思考题:A,B,C,D共用一台打印机X,要进行资料打印时,很容易出现“打印机正在使用!”如何处理该问题?
在这里插入图片描述

7、微内核操作系统

在这里插入图片描述
在这里插入图片描述

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

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

相关文章

vue如何将图片转换为webp并前端展示

1. 首先把图片转换为webp格式 1.1 可以进入cmd后&#xff0c;pip安装pillow pip install Pillow --trusted-host mirrors.cloud.tencent.com1.2 save为webp格式&#xff0c;即可得到webp格式图片 ... from PIL import Image img Image.open(background1.jpeg).convert(RGB…

干货分享|一款让企业知识管理变得简单高效的工具软件

互联网发展到下半场&#xff0c;很多企业都开始进行数字化转型&#xff0c;在这个过程中&#xff0c;很多企业都忽视了极为重要的一点——企业的知识管理。如今信息化的时代&#xff0c;可以说企业的知识管理是引领企业数字化转型、进行创新的关键。 企业知识管理的实质就是对…

后端Springboot框架搭建APi接口开发(第三章末)

前两章节讲述了如何通过APi接口实现对数据库的查询操作 这章主要讲述&#xff0c;Stringboot对数据库数据的查询、新增、修改、删除操作 第一节&#xff1a;数据库查询 首先编写UserMapper.xml。定义SQl语句 文件结构&#xff1a;demo\src\main\java\com\example\demo\mapp…

蓝牙耳机什么牌子的好用?测评员分享目前最值得入手的蓝牙耳机

蓝牙耳机的出现让我们日常生活更加便利&#xff0c;与有线耳机相比少了束缚&#xff0c;而随着蓝牙耳机市场的成熟&#xff0c;涌现了超多品牌&#xff0c;让大家不知道蓝牙耳机什么牌子的好用&#xff0c;我这几年已经测评过50多款蓝牙耳机&#xff0c;今天将要分享目前最值得…

【类和对象】(上)

系列文章目录 文章目录 系列文章目录&#x1f451; 前言&#x1f451; 一、什么是类&#xff0c;什么是对象&#x1f451; 二、类的引入&#x1f451; 三、类的定义&#x1f451;三、1.类的两种定义方式&#xff1a; &#x1f451; 四、类的内存计算&#x1f451;五、this指针&…

Flutter学习之旅 - 页面布局Padding、Column、Flex、Expanded

文章目录 Padding线性布局组件(Column和Row)水平布局组件(Row)垂直布局组件(Column) 弹性布局(Flex&Expanded)ExpandedFlex 达到父元素的尺寸 Padding class MyHomePage extends StatelessWidget {const MyHomePage({Key? key}) : super(key: key);overrideWidget build(…

ATA-2000系列高压放大器介绍

ATA-2000系列是一款理想的可放大交、直流信号的高压放大器。最大差分输出1600Vp-p(800Vp)高压&#xff0c;可以驱动高压型负载。电压增益数控可调&#xff0c;一键保存常用设置&#xff0c;为您提供了方便简洁的操作选择&#xff0c;同时双通道高压放大器输出还可同步调节&…

FastJson序列化导致的 “$ref“

前言&#xff1a; 刚转后端没多久&#xff0c;在通过RPC调用其他组的服务的时候&#xff0c;其他组对接的同学说&#xff0c;你的入参是有问题的&#xff0c;然后他把入参发我&#xff0c;类似于下面的 json&#xff1a; {"addressMO": {"roomNumber": &…

795. 前缀和(C++和Python3)——2023.5.5打卡

文章目录 QuestionIdeasCode Question 输入一个长度为 n 的整数序列。 接下来再输入 m 个询问&#xff0c;每个询问输入一对 l,r 。 对于每个询问&#xff0c;输出原序列中从第 l 个数到第 r 个数的和。 输入格式 第一行包含两个整数 n 和 m 。 第二行包含 n 个整数&#…

哪种类型蓝牙耳机佩戴最舒服?公认佩戴舒适度高的蓝牙耳机

随着都市人生活水准的提高&#xff0c;人们开始享受起生活&#xff0c;观察身边的事物&#xff0c;佩戴蓝牙耳机能够满足自身基本通勤需求&#xff0c;现阶段不少蓝牙耳机质量越来越好&#xff0c;并且在功能、体验、技术上都具有相当的优势&#xff0c;性价比极高&#xff0c;…

Window下的反弹shell

什么是正向shell? 正向shell&#xff1a;控制端主动发起连接请求去连接被控制端&#xff0c;中间网络链路不存在阻碍。 反向shell&#xff1a;被控制端主动发起连接去请求连接控制&#xff0c;通常被控端由于防火墙受限制、权限不足、端口被占用等问题导致被控端不能正常接收…

短视频矩阵管理营销系统.源代码

一、短视频矩阵系统一般拥有以下几个主要功能&#xff1a; 1. 视频拍摄和剪辑功能&#xff0c;让用户轻松制作和发布短视频内容。 2. 视频分发和推广功能&#xff0c;矩阵管理发布、将制作好的短视频内容推送到各大短视频平台&#xff0c;实现效果最大化。 3. 数据监测和分析…

计算机三级嵌入式系统开发 知识点笔记

目录为搜索词&#xff0c;详情看每一节后图片 思维导图已上传&#xff0c;点击这里下载 嵌入式系统开发 全部章节图片第一章 嵌入式系统概论1.1SoCIP核 1.21.2.1ASCIIGB2312GB18030UTF8UTF16超文本字符形状两种描述方法 1.2.2数字图像 1.2.3音频 1.3传输介质分为 有线通信 和 无…

Windows下安装MySQL数据库+Navicat (从完全卸载到安装使用图文详细步骤,附安装包)

目录 第一章&#xff1a;如何完全卸载干净mysql教程&#xff08;三个步骤完全卸载&#xff09;1&#xff09;步骤一&#xff1a;卸载程序2&#xff09;步骤二&#xff1a;删除文件3&#xff09;步骤三&#xff1a;删除注册表信息 第二章&#xff1a;下载软件两种方式1&#xff…

架构师日记-深入理解软件设计模式 | 京东云技术团队

作者&#xff1a;京东零售 刘慧卿 一 设计模式与编程语言 1.1 什么是设计模式 设计模式&#xff08;Design pattern&#xff09; &#xff1a;由软件开发人员在软件开发中面临常见问题的解决方案&#xff0c;是经过长时间的试验积累总结出来的&#xff0c;它使设计更加灵活和…

MyBatis详细笔记

核心知识点 核心配置文件 映射文件概述 Dao层实现与代理开发实现 自动映射与自定义映射 参数传递与返回值 动态SQL 注解开发 缓存机制 总结 核心配置文件【mybatis-config.xml】 MyBatis 的配置文件包含了会深深影响 MyBatis 行为的设置和属性信息。 位置&#xff1a;resourc…

前端配置化表单组件设计方法 | 京东云技术团队

一、背景 前端开发中涉及表单的页面非常多&#xff0c;看似功能简单&#xff0c;开发快速&#xff0c;实则占去了很大一部分时间。当某个表单包含元素过多时还会导致html代码过多&#xff0c;vue文件过大。从而不容易查找、修改和维护。为了提高开发效率及降低维护成本&#x…

基于max30102的物联网病房监测系统(中断处理和主题逻辑)

目录 五、中断处理 六、主体框架 对采集数据的初始化 核心功能的实现 烟雾 通信帧格式 wifi接收数据的处理 OLED显示 五、中断处理 void SysTick_Handler(void) {TimingDelay_Decrement(); }void ESP8266_USART_INT_FUN(void) {uint8_t ucCh;if ( USART_GetITStatus (…

platform总线五级匹配解析

代码来源&#xff1a;开源linux内核linux-6.2.9 platform总线设备与驱动的匹配 对于device和driver无论哪个创建都会尝试主动寻找对方进行绑定&#xff0c;而platform bus总线的匹配原则如上面的代码所示&#xff0c;共有五级匹配&#xff0c;这里进行详细解析下&#xff1a; …

WRF模式

随着生态文明建设和“碳中和”战略的持续推进&#xff0c;我国及全球气候变化及应对是政府、科学界及商业界关注的焦点。气候是多个领域&#xff08;生态、水资源、风资源及碳中和等问题&#xff09;的主要驱动因素&#xff0c;合理认知气候变化有利于解释生态环境变化机理及过…