【系统架构设计师】二、操作系统知识(操作系统概述|进程管理)

目录

一、操作系统概述

1.1 操作系统定义

1.2 操作系统的功能

1.3 操作系统的分类

1.4 嵌入式操作系统主要特点

二、进程管理

2.1 进程的组成与状态

2.2 前趋图

2.3 进程资源图

2.4 进程调度

2.5进程调度算法

2.6 死锁

2.7 进程与线程

2.7.1 进程

2.7.2 线程

2.7.3 进程和线程的区别

三、考试真题练习


一、操作系统概述

1.1 操作系统定义

  • 操作系统定义:能有效地组织和管理系统中的各种软/硬件资源,合理地组织计算机系统工作流程,控制程序的执行,并且向用户提供一个良好的工作环境和友好的接口。

  • 操作系统有三个重要的作用:
    • 第一:管理计算机中运行的程序和分配各种软硬件资源;

    • 第二:为用户提供友善的人机界面;

    • 第三:为应用程序的开发和运行提供一个高效率的平台。

  • 操作系统的4个特征是并发性、共享性、虚拟性和不确定性

1.2 操作系统的功能

  • 1.进程管理。实质上是对处理机的执行“时间”进行管理,采用多道程序等技术将CPU的时间合理地分配给每个任务,主要包括进程控制、进程同步、进程通信和进程调度。

  • 2.文件管理。主要包括文件存储空间管理、目录管理、文件的读/写管理和存取控制。

  • 3.存储管理。存储管理是对主存储器“空间”进行管理,主要包括存储分配与回收、存储保护、地址映射(变换)和主存扩充。

  • 4.设备管理。实质是对硬件设备的管理,包括对输入/输出设备的分配、启(4)动、完成和回收

  • 5.作业管理。包括任务、界面管理、人机交互、图形界面、语音控制和虚拟现实等。

1.3 操作系统的分类

  • 批处理操作系统:单道批处理和多道批处理(主机与外设可并行)

  • 分时操作系统:一个计算机系统与多个终端设备连接。将CPU 的工作时间划分为许多很短的时间片,轮流为各个终端的用户服务。

  • 实时操作系统:实时是指计算机对于外来信息能够以足够快的速度进行处理并在被控对象允许的时间范围内做出快速反应。实时系统对交互能力要求不高但要求可靠性有保障。

  • 网络操作系统:是使联网计算机能方便而有效地共享网络资源,为网络用户提供各种服务的软件和有关协议的集合。三种模式:集中模式、客户端/服务器模式、对等模式。

  • 分布式操作系统:分布式计算机系统是由多个分散的计算机经连接而成的计算机系统,系统中的计算机无主、次之分,任意两台计算机可以通过通信交换信息。

  • 微型计算机操作系统:简称微机操作系统,常用的有Windows、MacOS、Linux。

1.4 嵌入式操作系统主要特点

  • 1.微型化。从性能和成本角度考虑,希望占用的资源和系统代码量少,如内存少、字长短、运行速度有限、能源少(用微小型电池)。

  • 2.可定制。从减少成本和缩短研发周期考虑,要求嵌入式操作系统能运行在不同的微处理器平台上,能针对硬件变化进行结构与功能上的配置,以满足不同应用需要。

  • 3.实时性。嵌入式操作系统主要应用于过程控制、数据采集、传输通信、多媒体信息及关键要害领域需要迅速响应的场合,所以对实时性要求较高。

  • 4.可靠性。系统构件、模块和体系结构必须达到应有的可靠性,对关键要害应用还要提供容错和防故障措施。

  • 5.易移植性。为了提高系统的易移植性,通常采用硬件抽象层和板级支撑包的底层设计技术。

嵌入式系统 初始化过程按照自底向上、从硬件到软件 的次序依次为: 片级初始化>板级初始化>系统初始化

二、进程管理

2.1 进程的组成与状态

  • 进程的组成:进程控制块PCB(唯一标志)、程序(描述进程要做什么)、数据(存放进程执行时所需数据)。

  • 进程基础的状态是三态图。需要熟练掌握左下图中的进程三态之间的转换。

2.2 前趋图

        用来表示哪些任务可以并行执行,哪些任务之间有顺序关系,具体如下图可知,ABC可以并行执行,但是必须ABC都执行完后,才能执行D,这就确定了两点:任务间的并行、任务间的先后顺序

        考试题型:

2.3 进程资源图

        用来表示进程和资源之间的分配和请求关系,如下图所示:

  • P代表进程,R代表资源,R方框中有几个圆球就表示有几个这种资源,在上图中,R1指向P1,表示R1有一个资源已经分配给了P1,P1指向R2,表示P1还需要请求一个R2资源才能执行。

  • 阻塞节点:某进程所请求的资源已经全部分配完毕,无法获取所需资源,该进程被阻塞了无法继续。如上图中P2。

  • 非阻塞节点:某进程所请求的资源还有剩余,可以分配给该进程继续运行。如上图中P1、P3。

  • 当一个进程资源图中所有进程都是阻塞节点时,即陷入死锁状态

进程资源图化简的方法是:先看系统还剩下多少资源没分配,再看有哪些进程是不阻塞的,接着 把不阻塞的进程的所有边都去掉,形成一个孤立的点,再把系统分配给这个进程的资源回收回来 。这样,系统剩余的空闲资源便多了起来,接着又去看看剩下的进程有哪些是不阻塞的,然后又把它们逐个变成孤立的点。 最后,所有的资源和进程都变成孤立的点
进程的同步与互斥,基本不考,理解起来有点复杂就不描述了。

2.4 进程调度

  • 进程调度方式是指当有更高优先级的进程到来时如何分配CPU分为可剥夺和不可剥夺两种,可剥夺指当有更高优先级进程到来时,强行将正在运行进程的CPU分配给高优先级进程;不可剥夺是指高优先级进程必须等待当前进程自动释放CPU。

  • 在某些操作系统中,一个作业从提交到完成需要经历高、中、低三级调度
    • 1.高级调度。高级调度又称“长调度”“作业调度”或“接纳调度”,它决定处于输入池中的哪个后备作业可以调入主系统做好运行的准备,成为一个或一组就绪进程。在系统中一个作业只需经过一次高级调度。

    • 2.中级调度。中级调度又称“中程调度”或“对换调度”,它决定处于交换区中的哪个就绪进程可以调入内存,以便直接参与对CPU 的竞争。

    • 3.低级调度。低级调度又称“短程调度”或“进程调度”,它决定处于内存中的哪个就绪进程可以占用CPU。低级调度是操作系统中最活跃、最重要的调度程序,对系统的影响很大。

2.5进程调度算法

  • 先来先服务FCFS:先到达的进程优先分配CPU。用于宏观调度。

  • 时间片轮转:分配给每个进程CPU时间片,轮流使用CPU,每个进程时间片大小相同,很公平,用于微观调度。

  • 优先级调度:每个进程都拥有一个优先级,优先级大的先分配CPU。

  • 多级反馈调度:时间片轮转和优先级调度结合而成,设置多个就绪队列1,2,3..n,每个队列分别赋子不同的优先级,分配不同的时间片长度;新进程先进入队列1的末尾,按FCFS原则,执行队列1的时间片;若未能执行完进程,则转入队列2的末尾,如此重复。

2.6 死锁

        当一个进程在等待永远不可能发生的事件时,就会产生死锁,若系统中有多个进程处于死锁状态,就会造成系统死锁

  • 死锁产生的四个必要条件:
    • 资源互斥

    • 每个进程占有资源并等待其他资源

    • 系统不能剥夺进程资源

    • 进程资源图是一个环路 死锁产生后,解决措施是打破死锁产生的四个必要条件,有下列方法:

  • 死锁预防:采用某种策略限制并发进程对于资源的请求,破坏死锁产生的四个条件之一,使系统任何时刻都不满足死锁的条件。

  • 死锁避免:一般采用银行家算法来避免,银行家算法,就是提前计算出一条不会死锁的资源分配方法,才分配资源,否则不分配资源,相当于借贷,考虑对方还得起才借钱,提前考虑好以后,就可以避免死锁。

  • 死锁检测:允许死锁产生,但系统定时运行一个检测死锁的程序,若检测到系统中发生死锁,则设法加以解除。

  • 死锁解除:即死锁发生后的解除方法,如强制剥夺资源,撤销进程等。乡死锁资源计算:系统内有n个进程,每个进程都需要R个资源,那么其发生死锁的最大资源数为n*(R-1)。其不发生死锁的最小资源数为n*(R-1)+1。

2.7 进程与线程

2.7.1 进程

  • 程序运行的基本单元

  • 系统资源分配和调度的基本单位

  • 有自己独立的地址空间。

  • 多个进程可并发执行。

2.7.2 线程

  • 程序执行的最小单位

  • CPU调度和分派的基本单位

  • 没有独立的地址空间,多个线程共享地址空间。

  • 多个线程可并发执行,某一个线程可以创建和撤销另外的线程。

2.7.3 进程和线程的区别

  • 地址空间:同一进程的线程共享本进程的地址空间,而进程之间则是独立的地址空间。

  • 资源拥有:同一进程内的线程共享本进程的资源如内存、I/O、CPU等,但是进程之间的资源是独立的。

  • 一个进程崩溃后,在保护模式下不会对其他进程产生影响,但是一个线程崩溃整个进程都死掉。所以使用多进程可以保证其他模块的正常运行。

  • 进程切换时,消耗的资源大,效率不高。所以涉及到频繁的切换时,使用线程要好于进程。同样如果要求同时进行并且又要共享某些变量的并发操作,只能用线程不能用进程。

  • 执行过程:每个独立的进程程有一个程序运行的入口、顺序执行序列和程序入口。但是线程不能独立执行,必须依存在应用程序中,由应用程序提供多个线程执行控制。

  • 都可以并发执行。

  • 一个程序至少有一个进程,一个进程至少有一个线程。

系统可以看成手机。

进程可以看成手机应用(CSDN、闹钟、微信、QQ、音乐等)。

线程可以看成进程中的多种操作(如音乐应用,听音乐的同时,做一些页面查看编辑个人信息等操作)。

线程是进程中的一个实体,是被系统独立分配和调度的基本单位。线程基本上 不拥有资源,只拥有一点运行中必不可少的资源(如程序计数器、一组寄存器和栈),它可与同属一个进程的其他线程共享进程所拥有的全部资源 ,例如进程的公共数据、全局变量、代码、文件等资源,但 不能共享线程独有的资源 如线程的栈指针等标识数据。

三、考试真题练习

  • 3.1 假设系统中有n个进程共享3台打印机,任一进程在任时刻最多只能使用1台打印机。若用PV操作控制n个进程使用打印机,则相应信号量s的取值范围为(a);若信号量S的值为-3,则系统中有(b)个进程等待使用打印机。

    • 第一题

      • A.0,-1,……,-(n-1)

      • B.3,2,1,0,-1,…,-(n-3)

      • C.1,0,-1,…,-(n-1)

      • D.2,1,0,-1,…,-(n-2)

    • 第二题:

      • A.0 ; B.1 ; C.2 ; D.3

  • 3.2 某系统中有3个并发进程竞争资源R,每个进程都需要5 个R,那么至少有()个R,才能保证系统不会发生死锁。

    • A.12

    • B.13

    • C.14

    • D.15

人工分割线

答案

  • 3.1 B D

  • 3.2 B
    • 解析:每个进程需要5个R才能执行,则当每个进程都只有4个R时是死锁最坏的情况,即3*4=12个资源是死锁发生的最大资源数,再加1就能保证不发生死锁,因此是13。

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

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

相关文章

RabbitMQ 相关概念

引言 什么是消息中间件 消息是指在应用间传送的数据,包含文本字符串、JSON等。消息队列中间件(MQ)指利用高效可靠的消息传递机制进行平台无关的数据交流,并基于数据通信来进行分布式系统的集成。通过提供消息传递和消息排队模型…

Part 4.4 树形动态规划

树形动态规划,即在树上进行的动态规划。 因为树的递归性质,树形动态规划一般都是递归求解的。 没有上司的舞会 题目描述 某大学有 n n n 个职员,编号为 1 … n 1\ldots n 1…n。 他们之间有从属关系,也就是说他们的关系就像…

swagger手动添加cookies信息、浏览器中手动添加cookies信息

在实际项目使用中,我们可能需要把登录token放到cookies中,请求时从cookies中获取token值,以此校验用户登录信息,以下整理一下怎么在cookies中手动添加数据。 操作步骤如下: (1):F12打开调试工具&#xff…

CP AUTOSAR标准之LargeDataCOM(AUTOSAR_CP_SWS_LargeDataCOM)

1 简介和功能概述 该规范描述了AUTOSAR基础软件模块LdCom的功能、API和配置。   在AUTOSAR分层架构中,AUTOSAR LdCom模块位于RTE/SwCluC_LdComProxy和PDU路由之间,参见[1,EXP LayeredSoftwareArchitecture]。   AUTOSAR LdCom模块提供了一种替代的交互层机制。通过专注于…

Python函数与模块知识点

函数 变量作用域 匿名函数 内置函数 递归函数 思维导图 global关键字 在 Python 中,如果你在函数内部想要修改一个全局变量的值,你需要使用 global 关键字来声明这个变量。 python x 10 # 全局变量def change_x(): global x # 声明 x 是全局变量 x 20 …

算法课程笔记——单调栈单调队列

算法课程笔记——单调栈&单调队列

解锁应用新技能:Xinstall助力快速获取H5信息,轻松提升用户体验

在移动互联网时代,数据是驱动应用发展的关键。对于许多开发者来说,如何高效、准确地获取H5信息成为了一个不小的挑战。今天,我们为大家介绍一款强大的工具——Xinstall,它将帮助你轻松解决这一难题,让你的应用数据获取…

Jacob调用Windows桌面软件(Adobe系列,CAD,ABBYY FineReader 等)

参考资料 jacob调用adobe动态库https://blog.csdn.net/love_5209/article/details/19162185 python查看查看 COM 组件的 ProgID 或 CLSID 对应的字符串参数https://blog.51cto.com/u_16175517/10484354加载动态库示例https://baijiahao.baidu.com/s?id=1777971964908285215&…

在Spring Boot中使用Sa-Token实现路径拦截和特定接口放行

在Spring Boot中使用Sa-Token实现路径拦截和特定接口放行 很喜欢的一段话:别想太多,好好生活,也许日子过着过着就会有答案,努力走着走着就会有温柔的着落。 春在路上,花在枝上,所有的美好都在路上&#xff…

【STM32】使用标准库创建一个工程

创建工程 本系列文章中使用的硬件和软件版本如下: CPU型号:STM32F407ZGT6 Keil版本:V5.38.0.0 ARM编译器版本:V5.06 标准库版本:V1.8.0 1.下载标准库 官网链接:STSW-STM32065 - STM32F4 DSP和标准外…

AI金融投资:批量下载巨潮资讯基金招募说明书

打开巨潮资讯的基金招募说明书页面: http://www.cninfo.com.cn/new/fulltextSearch/full?searchkey%E5%B0%81%E9%97%AD%E5%BC%8F%E5%9F%BA%E7%A1%80%E8%AE%BE%E6%96%BD%E8%AF%81%E5%88%B8%E6%8A%95%E8%B5%84%E5%9F%BA%E9%87%91%E6%8B%9B%E5%8B%9F%E8%AF%B4%E6%98%…

智慧校园综合解决方案:提供全方位的学校管理支持

在当今数字化时代,学校管理面临着越来越多的挑战,包括学生管理、教职员工管理、校园安全等。为了应对这些挑战,智慧校园综合解决方案应运而生。智慧校园综合解决方案融入了先进的信息技术,为学校带来了一场管理与教育模式的革新。…

主流电商平台API接口【京东商品详情按关键字搜索商品按图搜索京东商品(拍立淘)获得店铺的所有商品】

主流电商平台商品接口在电商企业中的应用可以帮助企业实现信息同步、库存管理、订单处理、数据分析和营销推广等多重功能,提升运营效率、优化用户体验,进而推动业务增长。 jd API 接入说明 API地址:申请调用KEY地址 调用示例: 参数说明 通用…

jenkins中配置参数化,并在python脚本接收参数实现参数化执行

在公司内进行Monkey测试脚本集成jenkins时,因为需要指定公司内不同的app进行测试。那么可以有两种方法解决该问题,要么创建多个脚本文件,多个jenkins jobs,进行构建。要么可以在配置job时通过传参数的方式,在python脚本…

什么牌子的灯好不伤眼?带你了解什么灯对眼睛伤害最小

眼睛是人类获取信息最重要的感官器官之一,而近视则会导致视力模糊,进而影响学习效果和生活品质。因此,什么灯对眼睛伤害最小成为许多人迫切寻找的目标。本文将为各位家长解答目前许多家长选择为孩子保护视力的产品——护眼台灯。护眼台灯以其…

MAC安装idea教程

https://blog.csdn.net/qq_41810415/article/details/131649541 JDK安装 https://blog.csdn.net/dddebug/article/details/121713633 2、编辑.bash_profile文件 vim .bash_profile 进入编辑模式后 按 i 开始添加内容 结束编辑模式按 ESC 结束后保存输入 :wq! 不保存输入 :q! 检…

数据库原理(关系数据库规范化理论)——(4)

一、关系模式规范化的必要性 1.关系可能出现的问题 数据冗余大;插入异常;删除异常;更新异常; 2.关系模式应满足的基本要求 元组的每个分量必须是不可分割的数据项;数据库中的数据冗余应尽可能少;不要出…

新手教学系列-​​​​​​基础知识(SSH使用)

基础知识(SSH使用) 什么是ssh Secure Shell(安全外壳协议,简称SSH)是一种加密的网络传输协议,可在不安全的网络中为网络服务提供安全的传输环境[1]。SSH通过在网络中创建安全隧道来实现SSH客户端与服务器之间的连接[2]。虽然任何网络服务都可以通过SSH实现安全传输,SS…

电商API接口是什么意思?有什么作用?

电商API接口是电子商务领域中一种技术解决方案,它允许不同的软件系统之间进行交互和数据交换。 在电商场景下,电商API接口可以实现的功能非常丰富,例如: 商品管理:获取商品列表、商品详情、搜索商品、上下架商品等&a…

欢迎莅临ARCHE-2024,共享智慧档案盛宴!

敬邀参观!2024第三届上海国际智慧档案展览会(ARCHE-2024)将于2024年6月19-21日在上海跨国采购会展中心盛大开幕。深圳市铨顺宏科技有限公司将展示最新的智慧档案技术与解决方案,展位号H010-H011。期待您的光临,共同探索…