系统架构设计师 - 操作系统(1)

操作系统

  • 操作系统(5-6分)
    • 操作系统概述
    • 进程管理
      • 进程和线程的基本概念
      • 进程的状态 ★
      • 前趋图 ★★★★
      • 信号量与 PV 操作 ★★★★
      • 死锁及银行家算法 ★


大家好呀!我是小笙,本章我主要分享系统架构设计师 - 操作系统(1)知识,希望内容对你有所帮助!!

操作系统(5-6分)

操作系统概述

  • 管理系统的硬件、软件、数据资源
  • 控制程序运行
  • 人机之间的接口
  • 应用软件与硬件之间的接口
image-20240528195706620

例题

计算机系统中硬件层之上的软件通常按照三层来划分,如下图所示,图中①②③分别表示 操作系统、其他系统软件和应用软件

image-20240528195837829
  • 操作系统、应用软件和其他系统软件
  • 操作系统、其他系统软件和应用软件
  • 其他系统软件、操作系统和应用软件
  • 应用软件、其他系统软件和操作系统

进程管理

进程和线程的基本概念

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

进程控制块(PCB):PCB是进程存在的唯一标志。内容包含进程标识符、状态、位置信息、控制信息、队列指针(链接同一状态的进程)、优先级、现场保护区等

进程的2个基本属性:可拥有资源的独立单位;可独立调度和分配资源的基本单位

程序:是一个静态的概念,而进程是一个动态的概念,它由创建而产生,完成任务后因撤销而消亡;进程是系统进行资源分配和调度的独立单位,而程序不是

例题

在支持多线程的操作系统中,假设进程P创建了若干个线程,那么 该进程中某线程的栈指针进程 是不能被这些线程共享的

image-20240530225236993

  • 该进程中打开的文件
  • 该进程的代码段
  • 该进程中某线程的栈指针进程
  • 该进程的全局变量线程1

进程的状态 ★

三态模型

image-20240530230302897

五态模型

image-20240530230429746

例题

某计算机系统中的进程管理采用三态模型,那么下图所示的PCB(进程控制块)的组织方式采用 索引方式 ,图中 有2个运行进程,3个就绪进程,4个阻塞进程

image-20240530230613190

  • A 顺序方式 B 链接方式 C 索引方式 D Hash
  • A 有1个运行进程,2个就绪进程,4个阻塞进程
  • B 有2个运行进程,3个就绪进程,3个阻塞进程
  • C 有2个运行进程,3个就绪进程,4个阻塞进程
  • D 有3个运行进程,2个就绪进程,4个阻塞进程

前趋图 ★★★★

A,B,C 是 D 的前趋,E 是 D 的后继,五个进程只需要4个信号量

  • 间接制约:相同设备之间的制约
  • 直接制约:不同设备之间的制约

例题

进程P1、P2、P3和P4的前趋图如下所示:
image-20240601143028125 image-20240601143112988

若用PV操作控制进程P1~P4并发执行的过程,则需要设置5个信号量S1、S2、S3、S4和S5,且信号量S1-S5的初值都等于0。下图中a、b和c处应分别填写 V(S1)V(S2)、P(S1)P(S3)和V(S4) ;d、e和f处应分别填写 P(S2)、V(S3)V(S5)和P(S4)P(S5)

  • A V(S1)V(S2)、P(S1)V(S3)和V(S4)
  • B P(S1)V(S2、P(S1)P(S2)和V(S1)
  • C V(S1)V(S2)、P(S1)P(S3)和V(S4)
  • D P(S1)P(S2)、V(S1)P(S3)和V(S2)
  • A P(S2)、V(S3)V(S5)和P(S4)P(S5)
  • B V(S2)、P(S3)V(S5)和V(S4)P(S5)
  • C P(S2)、V(S3)P(S5)和P(S4)V(S5)
  • D VS2)、V(S3)P(S5)和P(S4)V(S5)

image-20240601143425273

信号量与 PV 操作 ★★★★

进程的同步和互斥

  • 互斥:如千军万马过独木桥(间接制约)
  • 同步:速度有差异,在一定情况下停下等待(直接制约)

临界资源:诸进程间需要互斥方式对其进行共享的资源,如打印机、磁带机等

临界区:每个进程中访问临界资源的那段代码称为临界区

信号量:是一种特殊的变量

image-20240531124145829

案例:生产者 &消费者

  • 未使用 PV 操作
    • 生产者:生产一个产品 -> 送产品到缓冲区
    • 消费者:从缓冲区取产品 -> 消费产品
  • 使用 PV 操作(S1初值为1,S2初值为0)
    • 生产者:生产一个产品 -> P(S1) -> 送产品到缓冲区 -> V(S2)
    • 消费者:P(S2) -> 从缓冲区取产品 -> V(S1) -> 消费产品

例题

某航空公司机票销售系统有个售票点,该系统为每个售票点创建一个进程Pi(i=1,2,…,n)管理机票销售。假设(Tj = 1,2,…,m)单元存放某日某航班的机票剩余票数,Temp为P进程的临时工作单元,x为某用户的订票张数。初始化时系统应将信号量S赋值为 1 。P进程的工作流程如下图所示,若用P操作和V操作实现进程间的同步与互斥,则图中空(a),空(b)和空©处应分别填入 **P(S),V(S)和V(S) **

image-20240531125054866
  • A 0 B 1 C 2 D 3
  • A P(S),V(S)和V(S)
  • B P(S),P(S)和V(S)
  • C V(S),P(S)和P(S)
  • D V(S),V(S)和P(S)

死锁及银行家算法 ★

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

死锁的四大条件

  • 互斥
  • 保持和等待
  • 环路等待
  • 不剥夺

打破死锁的方式

  • 有序资源分配法
  • 银行家算法

例题

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

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

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

相关文章

2024.6.1 学习记录

1、面经复习 2、项目使用guthub action 完成CI/CD,使用rollup打包为es格式 3、代码随想录刷题复习

Go语言-切片底层探索 —— 补充篇:切片和底层数组到底是什么关系?

之前的切片探索中,上篇通过一道算法题目,了解到切片的两大特性:一是:切片是引用类型,指向底层数组,修改其底层数组的时候,会影响切片中的值。二是:向切片中添加元素的时候&#xff0…

半导体光子电学期末笔记1: 电磁光学基本理论

Chapter 2: 电磁光学基本理论 电磁光学理论概述 真空中麦克斯韦方程组[p9] 在自由空间中,麦克斯韦方程组可以写成如下形式: { ∇ H ϵ 0 ∂ E ∂ t (1) ∇ E − μ 0 ∂ H ∂ t (2) ∇ ⋅ E 0 (3) ∇ ⋅ H 0 (4) \begin{cases} \nabla \times \…

Java——异常详解

异常五个主要关键字:throw、try、catch、finally、throws 1. 异常的概念与体系结构 1.1 异常的概念 在Java中,程序执行过程中发生的不正常行为被称为异常,如: 1. 算数异常 public static void main(String[] args) {System.ou…

基于MingGW64 GCC编译Windows平台上的 libuvc

安装cmake 打开cmake官网 https://cmake.org/download/,下载安装包: 安装时选择将cmake加到系统环境变量里。安装完成后在新的CMD命令窗口执行cmake --version可看到输出: D:\>cmake --version cmake version 3.29.3 CMake suite mainta…

牛客网刷题 | BC108 反斜线形图案

目前主要分为三个专栏,后续还会添加: 专栏如下: C语言刷题解析 C语言系列文章 我的成长经历 感谢阅读! 初来乍到,如有错误请指出,感谢! 描述 KiKi学习了循环&am…

社交媒体数据恢复:Voxer

一、Voxer数据恢复教程 了解Voxer应用 Voxer是一款专门为iPhone和Android智能手机设计的免费对讲机应用,为用户提供即时的语音、文本、照片等信息发送和接收服务。该应用有点类似短信服务,但用声音代替文本。当你下载之后,如果不邀请朋友&a…

重复文件怎么查找并清理?电脑重复文件清理工具分享:4个

在日常使用电脑的过程中,我们不可避免地会遇到各种重复文件的问题。这些重复文件不仅占据了宝贵的存储空间,还可能导致系统性能下降,甚至引发一些不必要的问题。因此,如何有效地查找并清理这些重复文件成为了许多用户关注的焦点。…

计算 x 的二进制表示中 1 的个数

计算 x 的二进制表示中 1 的个数 代码如下: int func(int x){int countx 0;while (x>0){countx;x x & (x - 1);}return countx;} 完整代码: using System; using System.Collections.Generic; using System.ComponentModel; using System.Dat…

STM32基于HAL库的HC-SR04模块超声波测距

文章目录 一、HC-SR04模块介绍二、创建工程1.选择芯片2.配置RCC、SY![在这里插入图片描述](https://img-blog.csdnimg.cn/direct/9d2a5b883f0e409eabb804e6da861277.png)3.配置串口14.配置定时器5.配置GPIO 三、Keil代码1.勾选Use MicroLIB2.创建SR04.c和SR04.h文件3.其他代码 …

html three.js 引入.stl模型示例

1.新建一个模块用于放置模型 <div id"chart_map" style"width:800px;height:500px"></div> 2. 引入代码根据需求更改 <!-- 在head或body标签内加入以下链接 --> <script src"https://cdn.jsdelivr.net/npm/three0.137/build/t…

2.7HDR与LDR

一、基本概念 1.基本概念 动态范围&#xff08;Dynamic Range&#xff09; 最高亮度 / 最低亮度 HDR High Dynamic RangeLDR Low Dynamic Range HDR与LDR和Tonemapping的对应关系&#xff1a; 我们常用的各种显示器屏幕&#xff0c;由于不同的厂家不同的工艺导致它们的…

HALCON-从入门到入门-软件界面介绍

1.废话 从halcon12到halcon23&#xff0c;开发的IDE界面大差不差&#xff0c;简单说下界面上不同功能按键的分布&#xff0c;以及一些快捷键啥的&#xff0c;要是还有我没有总结到的&#xff0c;又比较好用的&#xff0c;欢迎大家补充一下。 1.菜单栏 从上看到下&#xff0c;…

python深度学习入门-从零构建CNN和RNN

文章目录 第1章 基本概念1.1. 导数1.2. 链式法则1.3. 多输入函数的导数1.4. 多输入向量函数的导数1.5. 向量函数及其导数&#xff1a; 再进一步1.6. 包含两个二维矩阵数据的计算图 第2章 基本原理2.1. 监督学习概述2.2. 监督学习模型2.3. 线性回归2.3.1. 线性回归&#xff1a; …

[激光原理与应用-94]:电控 - 低噪声运放的原理

目录 一、什么是低噪声运放 1.1 什么是低噪声水平 1.2 什么是高增益 在电子工程中的应用 在通信领域的应用 在音频和视频处理中的应用 注意事项 1.3 什么是宽带宽 1.4 什么是低偏置电流 重要性 特点 解决方法 应用 二、低噪声运放的原理图 1. 基本构成 2. 设计…

第五维度【百度之星】/二分

第五维度 二分 思路&#xff1a;看到题目是尽可能晚的情况下最早就应该想到贪心。 #include<bits/stdc.h> using namespace std; typedef long long ll; ll a[100005],b[100005]; ll n,m; bool check(ll t) {ll res0,big0;for(ll i0;i<n;i) {if(a[i]>t) continue…

JMeter工具介绍

Jmeter功能概要 JDK常用文件目录介绍 Bin目录&#xff1a;存放可执行文件和配置文件 Docs目录&#xff1a;是Jmeter的API文档&#xff0c;用于开发扩展组件 printable_docs目录&#xff1a;用户帮助手册 lib目录&#xff1a;存放JMeter依赖的jar包和用户扩展所依赖的Jar包 修…

HALCON-从入门到入门-读取图片保存图片

1.废话 视觉算法库的第一步。 读取图片&#xff1a; 看你是从哪里读取&#xff0c;从相机读取还是从本地硬盘中读取。 保存图片&#xff1a;就只有保存到本地了。 上面的截图显示我读取了一张图片 从相机中读取另开一篇来说&#xff0c;先说从本地磁盘读取哈。 怎么读取的…

数据结构复习指导之交换排序(冒泡排序,快速排序)

目录 交换排序 复习提示 1.冒泡排序 1.1基本思想 1.2算法代码 1.3性能分析 2.快速排序 2.1基本思想 2.2算法代码 2.3性能分析 交换排序 复习提示 所谓交换&#xff0c;是指根据序列中两个元素关键字的比较结果来对换这两个记录在序列中的位置。 基于交换的排序算法很…

python解决flask启动的同时启动定时任务

业务场景描述&#xff1a;在常规的开发中&#xff0c;我们开发接口服务&#xff0c;一般会将数据放在数据库、文件等第三方文件&#xff0c;启动服务后&#xff0c;服务到后台数据库中加载数据&#xff0c;这样做的好处当然是开发会更加便利以及数据的可复用性较高&#xff0c;…