当前位置: 首页 > news >正文

操作系统知识-操作系统作用+进程管理-嵌入式系统设计师备考笔记

0、前言

  本专栏为个人备考软考嵌入式系统设计师的复习笔记,未经本人许可,请勿转载,如发现本笔记内容的错误还望各位不吝赐教(笔记内容可能有误怕产生错误引导)。

本章的主要内容见下图:

1、操作系统的作用

        作 用:通过资源管理,包括软硬件资源管理,提高计算机系统的效率。同时操作系统改善了人机界面,向用户提供良好的工作环境。

操作系统体系结构图

2、进程(任务)管理(软考难点)

2.1进程的概念

       进程是程序在一个数据集合上运行的过程,它是系统进行资源分配和调度的一个独立单位。它由程序块、进程控制块和数据块三部分组成。

进程的概念

2.2进程与程序的区别

  • 进程是程序的一次执行过程
  • 程序是完成某个特定功能的一系列程序语句的集合,只要不被破坏,程序永远存在
  • 程序是一个静态概念,进程是一个动态的概念,它有创建而生,完成任务后因撤销而消亡;进程是系统进行资源分配和调度的独立单位,而程序不是。

2.3进程状态

2.3.1三态模型 
  • 运行态:占有处理器正在运行
  • 就绪态:具备运行条件,等待系统分配处理器以便运行
  • 等待态:又称为阻塞态或睡眠态,指不具备运行条件,正在等待某个事件的完成。

三态模型
状态切换切换条件
运行态到等待态等待使用资源,如等待外设传输,等待人工干预
等待态到就绪态资源得到满足,如外设传输结束,人工干预成功
运行态到就绪态运行时间片到,出现有更高优先权进程
就绪态到运行态CPU空闲时选择一个就绪进程
2.3.2五态模型

         在三态模型基础上增加了静止就绪和静止阻塞两个状态,这两个状态相当于听歌曲时的暂停选择。

对五态模型中挂起和激活的解释:

  • 挂起:将进程调出内存,保存到外存队列,并释放资源
  • 激活:恢复挂起进程,重新调入内存

从三态模型扩展到五态模型的目的与原因:

目的:释放进程占用的资源以缓解资源不足

原因: 终端用户的请求,父进程的请求,OS的需要,如负荷调节、对换等

五态模型

2.4前趋图

概念:前趋图是为了描述一个程序的各部分间的依赖关系,或者是一个大的计算的各个子任务间的因果关系的图示。

出度与入度:指向与被指向的箭头个数,入度为零的无前置执行条件。

特点:前趋图中必须不存在循环

前趋图示意

 2.5PV操作

2.5.1进程的同步与互斥

 互斥:间接制约,类似于独木桥同一时间只允许一人通过,你过桥时间接制约了其他人过桥的动作。

同步:直接制约,去医院开化验单时化验员处于等待状态,只有看到化验单时才会开始化验工作。开化验单就是直接制约了化验员的化验工作。

2.5.2进程的同步与互斥:生产者与消费者问题

     生产者消费者问题,也称有限缓冲问题(英语:Bounded-buffer problem),是一个多线程同步问题的经典案例。该问题描述了两个共享固定大小缓冲区的线程——即所谓的“生产者”和“消费者”——在实际运行时会发生的问题。其中生产者的主要作用是生成一定量的数据放到缓冲区中,然后重复此过程。与此同时,消费者也在缓冲区消耗这些数据。该问题的关键就是要保证生产者不会在缓冲区满时加入数据,消费者也不会在缓冲区中空时消耗数据。

生产者消费者问题模型
2.5.3PV操作

PV操作就是为了解决生产者消费者问题出现的

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

        PV操作是一种实现进程互斥与同步的有效方法,它涉及两种原语操作:P操作(请求资源,阻塞进程)和V操作(唤醒进程,释放资源)。在进程同步中,P操作负责测试消息是否到达,而V操作负责发送消息。在进程互斥中,P操作用于判断是否能进入临界区并申请资源,V操作用于退出临界区并释放资源。信号量(semaphore)是实现PV操作的关键概念,其值可以大于、等于或小于零。当信号量值大于或等于零时,表示有可用资源;当信号量值小于零时,表示有进程正在等待资源,此时需要唤醒等待队列中的一个进程;当信号量值等于零时,表示资源被完全占用。见PV操作示意图。

      PV操作必须成对出现,即一个进程的P操作必须与另一个进程的V操作相对应。在单进程内部,P操作后通常紧接着一个V操作;而在多进程之间,一个进程的V操作后可能紧接着另一个进程的P操作。这种操作模式确保了资源的安全使用和进程间的正确通信。

PV操作示意图
2.5.4PV原语

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

#生产者进程
S1初值为1,S2初值为0;
生产者:
生产一个产品;
P(s1);
送产品到缓冲区;
V(s2);
#消费者进程
S1初值为1,S2初值为0;
消费者:
P(s2);
从缓冲区取产品;
V(s1);
消费产品;

2.6进程管理死锁

死锁概念:进程管理是操作系统的核心内容,但存在设计不当,出现死锁的可能,如果一个进程在等待一个不可能发生的事情,那么进程就死锁了,感觉就是陷入了死循环(死循环和死锁不是一个概念) 。而如果一个或多个进程产生死锁就会造成系统死锁。

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

进程A进程B进程C
4+144

死锁解决: 

死锁解决示意图

有序资源分配法:这种算法资源按某种规则系统中的所有资源统一编号(例如打印机为1、磁带机为2、磁盘为3、等等),申请时必须以上升的次序。系统要求申请进程:
  ①对它所必须使用的而且属于同一类的所有资源,必须一次申请完;
  ②在申请不同类资源时,必须按各类设备的编号依次申请。例如:进程PA,使用资源的顺序是R1,R2; 进程PB,使用资源的顺序是R2,R1;若采用动态分配有可能形成环路条件,造成死锁。
  采用有序资源分配法:R1的编号为1,R2的编号为2;
  PA:申请次序应是:R1,R2
  PB:申请次序应是:R1,R2
这样就破坏了环路条件,避免了死锁的发生。同时我们可以还可以采用操作系统经典问题银行家算法来避免死锁。

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

  • 当一个进程对资源的最大需求量不超过系统中的资源数时可以接纳该进程
  • 进程可以分期请求资源,但请求的总数不超过最大需求量
  • 当系统现有的资源不能满足进程尚需资源数时,对进程的请求可以推迟分配,但总能使得进程在有限的时间内得到资源。

 2.7进程管理中任务的调度

任务调度大纲

第一个要解决的问题:任务调度的时机,一般有五种情形,可能会发生任务的调度。

五种会发生任务调度的时机

 第二个要解决的问题:

任务调度的方式:

任务调度方式

第三个要解决的问题:如何来评价一个调度算法的好坏。

调度算法的性能指标: 

性能指标之间是存在一定的冲突性的:

  • 可以通过让更多的任务处于就绪状态来提高CPU的使用率,但这显然会降低系统的响应时间
  • 调度程序的设计需要优先考虑最重要的需求,然后在各种因素之间进行折中处理。

任务调度算法 

 2.8任务间通信

尾言

        本专栏我总结了大量的思维导图,但是因为思维导图太大与CSDN的排版不匹配,故我会把每篇博文绘制的思维导图上传到我的资源里,有需要的自取,我会设置为0积分下载的,创作不易还望各位大佬点赞支持一下谢谢

相关文章:

操作系统知识-操作系统作用+进程管理-嵌入式系统设计师备考笔记

0、前言 本专栏为个人备考软考嵌入式系统设计师的复习笔记,未经本人许可,请勿转载,如发现本笔记内容的错误还望各位不吝赐教(笔记内容可能有误怕产生错误引导)。 本章的主要内容见下图: 1、操作系统的作用…...

Go语言中的锁与管道的运用

目录 1.前言 2.锁解决方案 3.管道解决方案 4.总结 1.前言 在写H5小游戏的时候,由于需要对多个WebSocket连接进行增、删、查的管理和对已经建立连接的WebSocket通过服务端进行游戏数据交换的需求。于是定义了一个全局的map集合进行连接的管理,让所有…...

前端 - 基础 表单标签 -- 表单元素( input - type属性) 文本框和密码框

表单元素 : 在表单域中可以定义各种表单元素,这些表单元素就是允许用户在表单中输入或选择 的内容控件。 表单元素的外观也各不一样,有小圆圈,有正方形,也有方框,乱七八糟的,各种各样&#xf…...

关于MySQL模糊搜索不区分大小写

在我们日常使用ORM框架进行模糊查询时,会发现,搜索的结果是不区分关键字的英文大小写的,那这是为什么呢? 原因是MySQL的like本就不区分大小写;如果在建表的时候,没有设置好字段区分大小 //包含j和J的都会被…...

论文阅读——MoCo

Momentum Contrast for Unsupervised Visual Representation Learning 动量在数学上理解为加权移动平均: yt-1是上一时刻输出,xt是当前时刻输入,m是动量,不想让当前时刻输出只依赖于当前时刻的输入,m很大时&#xff0…...

ARM 寄存器学习:(一)arm多种模式下得寄存器

一.ARM7种状态以及每种状态的寄存器: ARM 处理器共有 7 种不同的处理器模式,在每一种处理器模式中可见的寄存器包括 15 个通用寄存器( R0~R14)、一个或两个(User和Sys不是异常模式,没有spsr寄存器)状态寄存器(cpsr和spsr&…...

【nfs报错】rpc mount export: RPC: Unable to receive; errno = No route to host

NFS错误 问题现象解决方法 写在前面 这两天搭建几台服务器,需要使用nfs服务,于是六台选其一做服务端,其余做客户端,搭建过程写在centos7离线搭建NFS共享文件,但是访问共享时出现报错:rpc mount export: RPC…...

备战蓝桥杯---牛客寒假训练营2VP

题挺好的,收获了许多 1.暴力枚举(许多巧妙地处理细节方法) n是1--9,于是我们可以直接暴力,对于1注意特判开头0但N!1,对于情报4,我们可以把a,b,c,d的所有取值枚举一遍,那么如何判断有…...

QCustomPlot-绘制X轴为日期的折线图

主要代码如下&#xff1a; void Widget::InitQLineXDateAddData() {customPlot new QCustomPlot(this);// 创建日期时间类型的刻度生成器QSharedPointer<QCPAxisTickerDateTime> dateTimeTicker(new QCPAxisTickerDateTime);dateTimeTicker->setDateTimeFormat(&quo…...

腾讯春招后端一面(算法篇)

前言&#xff1a; 哈喽大家好&#xff0c;前段时间在小红书和牛客上发了面试的经验贴&#xff0c;很多同学留言问算法的具体解法&#xff0c;今天就详细写个帖子回复大家。 因为csdn是写的比较详细&#xff0c;所以更新比较慢&#xff0c;大家见谅~~ 就题目而言&#xff0c;…...

Filebeat rpm方式安装及配置

一、使用服务器root用户、filebeat8.11.1版本,rpm安装方式进行安装 curl -L -O https://artifacts.elastic.co/downloads/beats/filebeat/filebeat-8.11.1-x86_64.rpm sudo rpm -vi filebeat-8.11.1-x86_64.rpm 二、配置核心的采集文件、使用inputs热更方式、配置filebeat本身…...

深入挖掘C语言之——枚举

目录 1. 枚举的定义 2. 枚举常量的赋值 3. 枚举的使用示例 4. 注意事项 在C语言中&#xff0c;枚举&#xff08;Enum&#xff09;是一种用户定义的数据类型&#xff0c;用于定义一组具名的整型常量。枚举常常用于提高代码的可读性和可维护性&#xff0c;使程序更易于理解。…...

【源码阅读】EVMⅢ

参考[link](https://blog.csdn.net/weixin_43563956/article/details/127725385 大致流程如下&#xff1a; 编写合约 > 生成abi > 解析abi得出指令集 > 指令通过opcode来映射成操作码集 > 生成一个operation 以太坊虚拟机的工作流程&#xff1a; 由solidity语言编…...

.Net Core 中间件验签

文章目录 为什么是用中间件而不是筛选器&#xff1f;代码实现技术要点context.Request.EnableBuffering()指针问题 小结 为什么是用中间件而不是筛选器&#xff1f; 为什么要用中间件验签&#xff0c;而不是筛选器去验签? 1、根据上图我们可以看到&#xff0c;中间件在筛选器之…...

Elasticsearch:从 Java High Level Rest Client 切换到新的 Java API Client

作者&#xff1a;David Pilato 我经常在讨论中看到与 Java API 客户端使用相关的问题。 为此&#xff0c;我在 2019 年启动了一个 GitHub 存储库&#xff0c;以提供一些实际有效的代码示例并回答社区提出的问题。 从那时起&#xff0c;高级 Rest 客户端 (High Level Rest Clie…...

七:分布式

一、Nginx nginx安装 【1】安装pcre依赖 1.下载压缩包&#xff1a;wget http://downloads.sourceforge.net/project/pcre/pcre/8.37/pcre-8.37.tar.gz 2.解压压缩包&#xff1a;tar -xvf pcre-8.37.tar.gz 3.安装gcc&#xff1a;yum install gcc 4.安装gcc&#xff1a;yum ins…...

1-postgresql数据库高可用脚本详解

问题&#xff1a; pgrep -f postgres > /dev/null && echo 0 || pkill keepalived 这是什么意思 建议换成 pgrep -f postmaster > /dev/null && echo 0 || pkill keepalived 回答 这条命令是一个复合命令&#xff0c;包含条件执行和重定向的元素。让我们…...

【亲测】Onlyfans年龄认证怎么办?Onlyfans需要年龄验证?

1. 引言 什么是OnlyFans&#xff1a;OnlyFans是一种内容订阅服务&#xff0c;成立于2016年&#xff0c;允许内容创作者从用户那里获得资金&#xff0c;用户需要支付订阅费用才能查看他们的内容。它在多个领域受到欢迎&#xff0c;包括音乐、健身、摄影&#xff0c;以及成人内容…...

ASP.NET Core新特性

1. ASP.NET Core2.1 ASP.NET Core 2.1于2018年5月30日发布。是ASP.NET Core框架的一个重要版本&#xff0c;带来了许多新功能和改进。以下是ASP.NET Core 2.1中一些主要的特性&#xff1a; SignalR&#xff1a;引入了 SignalR&#xff0c;这是一个实时通信库&#xff0c;使得构…...

26-Java访问者模式 ( Visitor Pattern )

Java访问者模式 摘要实现范例 访问者模式&#xff08;Visitor Pattern&#xff09;使用了一个访问者类&#xff0c;它改变了元素类的执行算法&#xff0c;通过这种方式&#xff0c;元素的执行算法可以随着访问者改变而改变访问者模式中&#xff0c;元素对象已接受访问者对象&a…...

电子科技大学链时代工作室招新题C语言部分---题号G

1. 题目 问题的第一段也是非常逆天&#xff0c;说实话&#xff0c;你编不出问题背景可以不编。 这道题的大概意思就是&#xff0c; Pia要去坐飞机&#xff0c;那么行李就有限重。这时Pia想到自己带了个硬盘&#xff0c;众所周知&#xff0c;硬盘上存储的数据就是0和1的二进制序…...

体育运动直播中的智能运动跟踪和动作识别系统 - 视频分析如何协助流媒体做出实时决策

AI-Powered Streaming Vision: Transforming Real-Time Decisions with Video Analytics 原著&#xff1a;弗朗西斯科冈萨雷斯&#xff5c;斯特朗&#xff08;STRONG&#xff09;公司首席ML科学家 翻译&#xff1a;数字化营销工兵 实时视频分析通过即时处理实时视频数据&…...

Avalon总线学习

Avalon总线学习 avalon总线可以分为&#xff1a; Avalon clock interface Avalon reset interface Avalon Memory mapped interface Avalon iterrupt interface Avalon streaming interface Avalon tri-state conduit interface Avalon conduit interface 1、Avalon c…...

Sentinel(熔断规则)

慢调用比例 慢调用比例( SLOM_REQUEST_RATTo ):选择以慢调用比例作为阈值&#xff0c;需要设置允许的慢调用RT(即最大的响应时间)&#xff0c;请求的响应时间大于该值则统计为慢调用。当单位统计时长(statIntervalMs&#xff09;内请求数目大于设置的最小请求数目&#xff0c;…...

Hive借助java反射解决User-agent编码乱码问题

一、需求背景 在截取到浏览器user-agent&#xff0c;并想保存入数据库中&#xff0c;经查询发现展示的为编码后的结果。 现需要经过url解码过程&#xff0c;将解码后的结果保存进数据库&#xff0c;那么有几种实现方式。 二、问题解决 1、百度&#xff1a;url在线解码工具 …...

Linux下安装Android Studio及创建桌面快捷方式

下载 官网地址&#xff1a;https://developer.android.com/studio?hlzh-cn点击下载最新版本即可 安装 将下载完成后文件&#xff0c;进行解压&#xff0c;然后进入android-studio-2023.2.1.23-linux/android-studio/bin目录下&#xff0c;启动studio.sh即可为了更加方便的使…...

【析】一类动态车辆路径问题模型和两阶段算法

一类动态车辆路径问题模型和两阶段算法 摘要 针对一类动态车辆路径问题&#xff0c;分析4种主要类型动态信息对传统车辆路径问题的本质影响&#xff0c;将动态车辆路径问题(Dynamic Vehicle Routing Problem, DVRP)转化为多个静态的多车型开放式车辆路径问题(The Fleet Size a…...

从基础入门到学穿C++

前言知识 C简介 C是一门什么样的语言&#xff0c;它与C语言有着什么样的关系&#xff1f; C语言是结构化和模块化的语言&#xff0c;适合处理较小规模的程序。对于复杂的问题&#xff0c;规模较大的程序&#xff0c;需要高度的抽象和建模时&#xff0c;C语言则不合适。为了解…...

代码随想录算法训练营第二十四天|leetcode78、90、93题

一、leetcode第93题 class Solution { public:vector<string> restoreIpAddresses(string s) {int n s.size();vector<string> res;function<void(string, int, int)> dfs [&](string ss, int idx, int t) -> void {// 终止条件&#xff0c;枚举完&…...

Java学习笔记NO.20

Java流程控制 1. 用户交互 Scanner Java中的Scanner类用于获取用户输入&#xff0c;可以从标准输入&#xff08;键盘&#xff09;读取各种类型的数据。 import java.util.Scanner; public class UserInputExample { public static void main(String[] args) { Scanner sc…...

wordpress 重复标题/夸克搜索引擎

一. PDM 介绍 物理数据模型&#xff08;Physical Data Model&#xff09;PDM&#xff0c;提供了系统初始设计所需要的基础元素&#xff0c;以及相关元素之间的关系&#xff1b;数据库的物理设计阶段必须在此基础上进行详细的后台设计&#xff0c;包括数据库的存储过程、操作…...

桂林网站建设公司/孔宇seo

这篇文章记录文件描述符&#xff0c;下一篇文章记录文件描述表。 1 文件描述符 先说说什么是文件IO。文件的IO就是文件的输入输出&#xff0c;也就是文件的读写。读和写是以CPU为参考的&#xff0c;从CPU向文件中写入数据&#xff0c;就是写操作&#xff1b;从文件中读取数据…...

海淀网站建设本溪/seo的优点有哪些

一、命令基本格式&#xff1a; ls -1 详细列表 (ll) -h 人性化显示文件大小 -a 显示所有文件&#xff0c;包括隐藏文件 -d 查看目录属性 -i 显示iNode 二、文件处理命令 mkdir -p [目录名] &#xff08;递归&#xff09; cd、pwd touch建立空文件 rmdir 删除空目录 rm -rf 递归…...

拿网站的文章做外链/西安网站建设哪家好

dir()函数 中文说明&#xff1a; 你可以使用内建的dir函数来列出模块定义的标识符。标识符有函数、类和变量。 当你为dir()提供一个模块名的时候&#xff0c;它返回模块定义的名称列表。如果不提供参数&#xff0c;它返回当前模块中定义的名称列表。 首先&#xff0c;我们来看一…...

wordpress的后台文章图文发布/成都网站制作设计公司

2019独角兽企业重金招聘Python工程师标准>>> 在移动互联网成为我们生活中不可缺少的一部分的时代&#xff0c;一方面它能给我们带来极大的便利&#xff0c;包括在线购物和移动支付&#xff1b;而另一方面&#xff0c;这也给犯罪分子提供了新的作案方式以及手段、手机…...

动态网站开发的前景/百度霸屏推广靠谱吗

报告类型&#xff1a;产业研究报告格式&#xff1a;电子版、纸介版、电子纸介出品单位&#xff1a;智研咨询官网链接&#xff1a;中国产业信息网 - 产业前景投资趋势门户-智研旗下产业信息咨询平台​www.chyxx.com报告链接&#xff1a;2021-2027年中国载货电梯行业市场调查研究…...