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

news2024/11/26 16:49:06

目录

一、操作系统概述

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。

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

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

相关文章

双指针练习:有效三角形的个数

题目链接:611.有效三角形的个数 题目描述: 给定一个包含非负整数的数组 nums ,返回其中可以组成三角形三条边的三元组个数。 解法一(暴力求解)(会超时): 算法思路: 三层…

视频汇聚安防综合管理系统EasyCVR平台GB28181设备注册未上线的原因排查与解决

视频汇聚安防综合管理平台EasyCVR视频监控系统基于云边端架构,可支持海量视频汇聚集中管理,能提供视频监控直播、云端录像、云存储、录像检索与回看、告警(协议告警/智能告警/1400视图库告警)、平台级联、AI智能分析接入等视频能力…

【学习Docker】

学习Docker可以分为几个步骤和阶段,以下是一个建议的学习路径,适合初学者到进阶用户: ### 1. 理解基本概念 - **容器化与虚拟化**:了解容器化与传统虚拟化之间的区别,容器的轻量级和效率。 - **Docker组件**&#xff…

【耐水好】强耐水UV胶水主要重视什么?

【耐水好】强耐水UV胶水主要重视什么? 应用性方面: 强耐水UV胶水主要重视以下几个方面: 耐水性:强耐水UV胶水经过精心调配和改良,以提供出色的耐水性能。这种胶水能够形成防水层,有效防止水分渗入并保护被…

乐鑫ESP32-C6支持WiFi 6通信,设备联网交互方案,启明云端乐鑫代理商

随着物联网设备的不断增多,对可靠、高容量和低功耗无线连接的需求变得尤为迫切。这就是Wi-Fi 6(即802.11ax)应运而生的原因,这一技术在各个环境中的应用印证了此类需求的重要性。 设备智联在我们的日常生活中越来越常见。从智能家…

未授权访问漏洞总结

以下总结了常见的未授权访问漏洞,还在持续更新中,遇到就会补充。欢迎大家关注~ 目录 FTP未授权访问(21) 漏洞原理 漏洞检测 漏洞利用 漏洞修复 LDAP未授权访问(389) 漏洞原理 漏洞检测 漏洞利用 …

Ubuntu网络管理命令:ifconfig

安装Ubuntu桌面系统(虚拟机)_虚拟机安装ubuntu桌面版-CSDN博客 关于ifconfig命令,在11.1节已经介绍过了。通过该命令可以查看和配置网络接口。ifconfig是一个比较古老的命令,在Ubuntu 22以及其他的许多发行版中,已经不…

Playwright-html-report源码解析

执行命令生成html格式报告 Playwright在执行完成测试,支持生成html格式的测试报告,如下图所示,使用"npx playwright test"执行测试,执行完成后,会提示“npx playwright show-report”命令。执行该命令&#…

AI大模型探索之路-实战篇:智能化IT领域搜索引擎之HuggingFace网站在线搜索

系列篇章💥 No.文章1AI大模型探索之路-实战篇:智能化IT领域搜索引擎的构建与初步实践2AI大模型探索之路-实战篇:智能化IT领域搜索引擎之GLM-4大模型技术的实践探索3AI大模型探索之路-实战篇:智能化IT领域搜索引擎之知乎网站数据获…

【乐吾乐2D可视化组态编辑器】导航

支持点击图元,切换画面或跳转链接。 乐吾乐2D可视化组态编辑器地址:https://2d.le5le.com/ 切换画面 1. 添加事件 2. 设置事件行为 事件行为"发送消息",消息名选择"导航"。 3. 配置消息参数 消息参数,…

LeetCode 48.旋转图像

1.做题要求: 2.从此题我们可以看出规律为第几行要变为倒数第几列,所以我们最好先把二维数组存入一维数组中,然后先从最后一列遍历,把一维数组里的元素,依次等于遍历的元素即可: void rotate(int** matrix, int matrixSize, int*…

1984-2022年全球河流和湖泊表面积 (Surface Area of Rivers and Lakes,SARL)数据集

简介 Nyberg 等人(2024 年)开发的 "河流和湖泊表面积(SARL)"数据集对 38 年间(1984-2022 年)河流和湖泊的水面面积变化进行了全面分析。这个分辨率为 30 米的全球数据集为了解地表水的动态提供了…

一文读懂 Transformer 神经网络模型

今天我们来聊一下人工智能(AI)生态领域相关的技术 - Transformer 神经网络模型 。 自从最新的大型语言模型(LLaM)的发布,例如 OpenAI 的 GPT 系列、开源模型 Bloom 以及谷歌发布的 LaMDA 等,Transformer 模…

java线程安全 ,死锁以及线程状态的介绍与使用

线程安全 1.什么时候发生:当多个线程访问同一个资源时,导致了数据有问题1.线程安全问题–>线程不安全的代码 public class MyTicket implements Runnable{//定义100张票int ticket 100;Overridepublic void run() {while(true){if (ticket>0){System.out.println(Thre…

【PL理论】(31) 类型系统:静态分析 (Static Analysis) | 静态类型系统 | 什么是类型?

💭 写在前面:本章我们将进入类型系统的讲解,回顾一下之前我们整理的 F- 语言,然后介绍一下静态分析和静态类型系统。讨论程序员该如何处理一些 bug,有没有完美的静态分析器。 目录 0x00 回顾:F- 语言 0x…

Part 4.4 树形动态规划

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

Sectigo OV通配符SSL证书多少钱?

在网络安全领域,SSL数字证书起着至关重要的作用,尤其是在保护网站和用户信息方面。而Sectigo OV通配符证书是一种常用的数字证书之一,它能够为同一域名下的多个子域名提供保护,还能够通过企业验证来增强安全性。那么,对…

对input输入框的正则限制

一、0-100的整数 正则&#xff1a; const inputRules ref([{required: false,trigger: "blur",validator: (rule, value, callback) > {const reg /^[0-9]$/; // 只允许整数if ((0 < value && value < 100 && reg.test(value)) ||valu…

如何打开azw/azw3文件?两个步骤解决

要打开AZW或AZW3格式的电子书&#xff0c;遵循以下步骤&#xff0c;无论你是Windows、Mac用户&#xff0c;还是使用移动设备&#xff0c;都可以轻松阅读这些亚马逊Kindle专用格式的电子书&#xff1a; 第一步&#xff1a;安装NeatReader&#xff1a; 访问NeatReader的官方网站或…

MySQl基础入门⑯【操作视图】完结

上一边文章内容 表准备 CREATE TABLE Students (id INT AUTO_INCREMENT PRIMARY KEY,name VARCHAR(100),email VARCHAR(255),major VARCHAR(100),score int,phone_number VARCHAR(20),entry_year INT,salary DECIMAL(10, 2) );数据准备 INSERT INTO Students (id, name, ema…