软考高级系统架构设计师(三) 基础知识之操作系统1进程

news2024/11/26 12:00:26

目录

概要

 操作系统 概述

​编辑

进程管理

进程的状态

 进程管理-PV操作

利用PV操作实现进程的同步

 进程管理-前趋图

 进程管理-死锁


概要

 操作系统 概述

操作系统的功能: 进程管理、存储管理、文件管理、作业管理、设备管理

操作系统的特征

  • 并发性
  • 共享性
  • 虚拟性
  • 不确定性

 

进程管理

  1. 进程是程序在一个数据集合上运行的过程,它是系统进行资源分配和调度的一个独立单位
  2. 进程的组成
  • 进程控制块PCB(唯一标志)
  • 程序:描述进程要做什么
  • 数据:存放进程执行时所需数据

  

     3. 进程与程序的区别:

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

进程与线程:

进程的2个基本属性:

1)可拥有资源的独立单位;

2)可独立调度和分配资源的基本单位;

ps: 线程 只能独立调度, 不分配资源

 

线程不共享: 程序计数器、栈、寄存器 

PCB

 

PCB组织方式:线性方式、链接方式、索引方式

进程的状态

三态图:

                   运行       就绪      阻塞

CPU           YES       NO       NO

非CPU        YES       YES     NO

阻塞: 不能直接到「运行」

 五态图:

 挂起: 程序调度、异常等

「活跃就绪」: 只有此状态,可以到「运行」

「活跃阻塞」: 要经过「静止阻塞」「静止就绪」「活跃就绪」,才能到「运行」

 进程管理-PV操作

信号量机制

1965年,荷兰学者Dijkstra提出的信号量机制是一种卓有成效的进程同步与互斥的工具

信号量是一个整型变量,根据控制对象的不同赋不同的值。

PV操作是实现进程同步与互斥的常用方法。进程的同步与互斥是学习 PV 操作的前提。

同步和互斥往往在实际问题中共存,而不是反义词。

同步的反义词是异步

互斥的反义词是共享

互斥:某资源(即临界资源,如打印机、缓冲区。进程间接制约关系)在同一时间内只能由一个任务单独使用,使用时需要加锁,使用完后解锁才能被其他任务使用;

同步:多个任务可以并发执行,只不过有速度上的差异,在一定情况下停下等待,不存在资源是否单独或共享的问题;如自行车和汽车。 进程直接制约关系

P操作:【申请资源,S=S-1】,若S>=0,则执行P操作的进程继续执行;若S<0,表示资源不足,去排队,则置该进程为阻塞状态(因为无可用资源),并将其插入阻塞队列。

V操作:【释放资源,S=S+1】,若S>0,则执行V操作的进程继续执行;若S<=0,表示有进程在排队,则从阻塞状态唤醒一个进程,并将其插入就绪队列(此时因为缺少资源被P操作阻塞的进程可以继续执行),然后执行v操作的进程继续。

 注意: 临界区,是一段代码;

S表示资源情况、负值等待的进程数。 S=S-1表示申请资源;S=S+1表示释放资源

互斥信号量:对临界资源采用互斥访问,使用互斥信号量后其他进程无法访问,初值为1.

同步信号量:对共享资源的访问控制,初值一般是共享资源的数量

利用PV操作实现进程的同步

进程的同步是由于进程间合作引起的相互制约的问题,要实现进程的同步可用一个信号量与消息联系起来。

同步问题的经典例子是生产者-消费者问题。

 

 练习题:

 进程管理-前趋图

 ps: 依赖关系。只有A,B,C都完成了,才能开始D。 D完成了,才能开始E.

PS: 前置动作用V, 后置检查用P

练习题:

 

 练习题:

 ps: 直接制约关系,是先后顺序的影响

练习题:

 进程管理-死锁

死锁: 一个进程等待一件不可能发生的事,进程就死锁了。

死锁的4个必要条件:

互斥条件:进程对分配到的资源进行排他使用,即在一段时间内某资源只能被一个进程占用,其他请求该资源的进程进行等待,直到该资源释放。

请求和保持条件:一个进程因为请求资源而阻塞等待时,对自己已经获得的资源保持不放。

不可抢占(剥夺)条件:进程已经获得的资源,在未使用完之前不能被强行剥夺。

循环等待条件:若干进程之间形成一种环形的等待资源关系。
 

 

练习题:

 S < 5: 一定死锁

如果A,B,C每个都有4个资源,再多给1个资源,则不会死锁。 所以:

S= [5,12]可能死锁,可能不死锁

s>13,一定不会死锁。

如果有m个进程,都需要n个资源,

则 不可能发生死锁: S > m *(n-1) + 1

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

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

相关文章

竞逐对话式AI,百度、字节各有千秋

随着OpenAI陆续发布的ChatGPT引发了AI界热议&#xff0c;新一代的AI热度便开始持续走高。与此同时&#xff0c;以ChatGPT模型为代表的大型预训练模型的出现&#xff0c;也使得对话式AI的生成能力和智能水平得到了飞跃式的提升&#xff0c;得益于此&#xff0c;对话式AI的发展又…

FPGA_学习_10_IP核_PLL

1 PLL IP核配置步骤 (Vivado 赛灵思) 我看的教程里面&#xff0c;那个兄弟是选的下面这个。 看来还是比较注重开发效率。 下面按照截图路径打开这个veo文件&#xff0c;学习如何在FPGA程序中例化IP核&#xff08;有点像C你创建了一个类&#xff0c;然后你实例化一个&#xff…

MES生产管理系统简介与实践经验分享,一篇就够了

MES系统是制造业企业数字化转型的重要组成部分&#xff0c;也是实现智能制造的基础。本文将从MES系统的定义、功能和应用实践等方面进行介绍和分享。 一、MES系统简介 MES系统&#xff08;Manufacturing Execution System&#xff09;又称生产执行系统&#xff0c;是在企业信…

JS自定义打印网页内容(详细全面)

浏览器自身打印 (不在赘述,重点是讲述打印自定义的几种方法与常见的问题) 使用 window.print() 调起浏览器自带的打印预览弹框打印默认会打印 body 里面所有内容const handlePrintPdf = () => {window.print(); }方式一:通过 iframe 打印部分区域 动态创建一个不可见的 i…

【Android -- JNI 和 NDK】认识 NDK

简介 定义&#xff1a;Native Development Kit &#xff0c;是 Android 的一个工具开发包。 NDK 是属于 Android 的&#xff0c;与 Java 并无直接关系 作用&#xff1a;快速开发 C、 C 的动态库&#xff0c;并自动将 so 和应用一起打包成 APK 即可通过 NDK 在 Android 中 使用…

拼多多买家订单API

目录 订单查询支持两种方式 请求数据格式&#xff08;指定账号&#xff09; 请求头示例 数据格式说明 返回数据格式&#xff08;指定账号&#xff09; 返回头示例 数据格式说明 不同页面层级各自有什么订单数据 请求数据格式&#xff08;指定订单编号&#xff09; 请…

电脑桌面图标打不开?尝试这3个解决方法!

Dam在使用电脑时&#xff0c;无论怎么点击桌面图标都无法打开&#xff0c;他感到很苦恼。遇到电脑桌面图标打不开的情况应该怎么办呢&#xff1f; 电脑桌面上的图标是我们经常使用的快捷方式&#xff0c;但有时候它们可能会出现无法打开的问题。这可能是由于各种原因引起的&…

数字孪生世界建设核心能力:地理信息数据应用能力

地理信息数据是数字孪生的核心基础之一&#xff0c;它能够把真实世界的空间结构和关系映射到数字世界&#xff0c;包含了静态的地理元素和动态的时空变量&#xff0c;如道路、建筑、水系、交通流量、人口密度、环境质量等&#xff0c;它能够反映真实世界的时空特点和动态变化&a…

建设现代化智慧档案八防设备系统解决方案

档案馆库房八防温湿度空气质量一体化解决方案 档案库房是档案事业发展的基石&#xff0c;其主要任务是集中保管国家机构及个人等在各种形式下形成的具有一定价值和保存价值的各种载体档案&#xff0c;主要包括文书档案、科技档案、会计档案、人事档案、实物档案等。随着我国经济…

sqlmap拿shell

sqlmap5种思路拿shell总结 ①利用dump 管理员类的账户后进入进行站点后拿shell 或者拿到账户后远程连接进行连接进行udf类提取类拿shell #连接方法 sqlmap -d “mysql://admin:password192.168.1.1:3306/security” admin是账号,psw是密码&#xff0c;后面是地址和端口&#x…

springboot基于微信小程序的安全教育平台面向大学生-计算机毕设 附源码85871

springboot基于微信小程序的安全教育平台面向大学生 目 录 摘要 1 绪论 1.1 研究背景 1.2 研究现状 1.3论文结构与章节安排 2 基于微信小程序的安全教育平台面向大学生系统分析 2.1 可行性分析 2.2 系统流程分析 2.2.1 数据增加流程 2.2.2 数据修改流程 2.2.3 数据删…

Eureka 平滑迁移 Nacos 方案

博主介绍&#xff1a;✌全网粉丝4W&#xff0c;全栈开发工程师&#xff0c;从事多年软件开发&#xff0c;在大厂呆过。持有软件中级、六级等证书。可提供微服务项目搭建与毕业项目实战、定制、远程&#xff0c;博主也曾写过优秀论文&#xff0c;查重率极低&#xff0c;在这方面…

Python基础语法1(语法和规则)

Python是一门脚本语言&#xff0c;相比与C/C&#xff0c;Java的优势就是不用事先进行编译&#xff0c;可以直接读取脚本文件&#xff0c;一边解释一边执行 大家好&#xff0c;我是纪宁 本文将介绍pytho的基础语法第一部分&#xff0c;关于一些python写代码的基本规则 博主也正…

14-2利用遗传算法求解BP神经网络初始化权值和阈值的最优问题(附matlab程序)

1.简述 核心问题&#xff1a; BP网络是前向网络的核心部分&#xff0c;是神经网络中的最精华、最完美的部分&#xff0c;由于其简单的结构&#xff0c;可调整的参数多&#xff0c;训练算法也多&#xff0c;而且可操作性好&#xff0c;BP神经网络获得了非常广泛的应用&#xff0…

易基因:ChIP-seq等揭示METTL14调控哺乳动物二价结构域的表观遗传机制|科研进展

大家好&#xff0c;这里是专注表观组学十余年&#xff0c;领跑多组学科研服务的易基因。 组蛋白及其翻译后修饰在调控基因表达和其他染色质模板化过程中起着重要作用。组蛋白H3赖氨酸4三甲基化&#xff08;H3K4me3&#xff09;和组蛋白H3K27me3分别在小鼠植入前胚胎的基因激活…

C盘中哪些文件可以删除?这些文件放心删!

我的c盘动不动就显示爆满&#xff0c;想删一些c盘的文件吧&#xff0c;又害怕误操作删了电脑的系统文件。有没有电脑高手能总结一下c盘里哪些文件可以删除呀&#xff01; C盘作为我们默认的存储盘&#xff0c;会自动保存很多文件&#xff0c;久而久之我们可能会发现&#xff0c…

【保姆级教程】Vue项目调试技巧

前言 在Vue项目开发过程中&#xff0c;当遇到应用逻辑出现错误&#xff0c;但又无法准确定位的时候&#xff0c;知晓Vue项目调试技巧至关重要&#xff0c;debug是必备技能。 同后台项目开发一样&#xff0c;可以在JS实现的应用逻辑中设置断点&#xff0c;并进行单步、进入方法…

sqoop导入实战

Sqoop导入实战 Sqoop-import 案例1 表没有主键&#xff0c;需要指定map task的个数为1个才能执行 Sqoop导入原理: ​ Sqoop默认是并行的从数据库源导入数据。您可以使用-m或--num-mappers参数指定用于执行导入的map任务(并行进程)的数量。每个参数都取一个整数值&#xff0…

【软件工程题库】第六章 编码和测试

&#x1f57a;作者&#xff1a; 迷茫的启明星 学习路线C语言从0到1C初阶数据结构从0到1 &#x1f618;欢迎关注&#xff1a;&#x1f44d;点赞&#x1f64c;收藏✍️留言 &#x1f3c7;码字不易&#xff0c;你的&#x1f44d;点赞&#x1f64c;收藏❤️关注对我真的很重要&…

Python基础(15)——Python字典(dict)详解

Python基础&#xff08;15&#xff09;——Python字典&#xff08;dict&#xff09;详解 文章目录 Python基础&#xff08;15&#xff09;——Python字典&#xff08;dict&#xff09;详解课程&#xff1a;字典目标一. 字典的应用场景二. 创建字典的语法三. 字典常见操作3.1 增…