我的创作纪念日:进程的概念、组成、特征;进程的基本状态;进程切换、原子操作、原语;进程间通信的方式;共享缓冲区、消息队列的本质、管道通信

news2024/11/19 15:30:37

 一、进程的概念

如何区分这三个QQ进程?》除了名称之外,OS使用pid来唯一标识进程

 

二、进程的组成 

 

 

PCB当中存储的都是OS在对进程进行管理时候的有用信息

 PCB是给OS使用的一个数据结构,而程序段和数据段是给进程自己使用的,PCB是进程存在的唯一标识

PCB存储在OS内核当中 

三、进程的特征(理解)

 四、进程的状态 

 

 阻塞态是进程主动让出CPU

 

 阻塞态不能直接转化为运行态,因为他还缺少其他的运行资源

就绪态也不能直接转化为阻塞态,因为这需要进程主动让出CPU,而就绪态都没有CPU,怎么主动让出?

 进程的组织方式:把进程按照不同的状态挂在不同的链表下

 

 

就绪态》运行态:进程被调度

运行态》阻塞态:进程等待IO等资源主动让出CPU

阻塞态》就绪态:IO处理完毕,等待的事件完成,由OS将其置为就绪态(被动)

运行态》就绪态:进程时间片结束,或者被其他高优先级的进程抢占

五、进程的切换

 如何确保进程调度过程不被打断

原语是一种特殊的内核程序,本质就是关中断,从而不受外界的影响

 

进程控制(状态转换)过程需要一气呵成 

关中断特权指令 

执行完开中断之后,CPU会发现有之前的中断信号没有处理,就会再次去处理

以下内容理解为主:

 

作业指的是此时还在磁盘当中、没有放入内存的程序

开机之后其他所有进程都是装入进程launch来启动的,系统中的0号1号进程是最祖先的进程,其他的进程都是他的子进程 

OS通过进程的PCB来保存和恢复它之前的运行环境

进程运行环境/进程上下文(context)就是进程运行过程中CPU寄存器当中保留的中间结果

 

六、进程间通信的方式: 

 

 

 

 通过加一个段表/页表项就可以实现了

 

 

  

进程Q的消息队列位于进程Q的PCB当中,它表达的是其他进程发给Q进程,需要被Q进程接受的消息

执行发送原语send之后,OS的内核接收到这条消息,并把这条消息挂到进程Q的消息队列当中去,再强调一遍:消息队列位于内核当中

接收的时候就遍历Q在内核当中PCB中的消息,判断是P发送的,就使用receive接收

这种直接通信的方式:发送和接收都是指名道姓地进行的

 

进程A通过系统调用向OS申请信箱A1和A2

间接通信方式并没有指名道姓要发给哪个进程,而是直接丢到A所申请的信箱里面去,到时候Q就指明从A信箱当中取消息就好了

管道通信就是循环队列,固定大小空间,先来先服务,数据流是单向的,只能从P流向Q,是一种半双工的通信方式,而共享存储支持随机存取

 

 

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

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

相关文章

LoRA学习笔记

Background 全参微调 全量微调指的是,在下游任务的训练中,对预训练模型的每一个参数都做更新。例如图中,给出了Transformer的Q/K/V矩阵的全量微调示例,对每个矩阵来说,在微调时,其d*d个参数,都…

Java 8 新特性——Lambda 表达式(1)

Lambda 表达式(Lambda expression)是一个匿名函数,基于数学中的λ演算得名,也可称为闭包(Closure)。现在很多语言都支持 Lambda 表达式,如 C、C#、Java、 Python 和 JavaScript 等。Lambda 表达…

Linux服务器中创建SVN项目详细步骤

一、Linux服务器中的SVN安装和搭建项目环境可以参考一下文章: 1、《阿里云服务器搭建》------搭建SVN服务 2、在一个服务器的svn上,设置一个端口号对应一个项目 3、如何解决Linuxsvn无法显示日志的问题 二、Linux服务器中的SVN项目如何添加项目的忽略文件&#xff1…

asp、jsp环境安装

文章目录 phpasp安装环境打开asp大马 aspx修改配置打开aspx大马 jsp安装环境打开jsp大马 jspx php 在github下载138shell文件夹,解压后放入win10虚拟机,然后安装phpstudy(在这里不再演示),并将php大马文件放在C:\phpS…

Python3的特殊容器库

诸神缄默不语-个人CSDN博文目录 文章目录 1. ordered-set库:有序集合2. collections库:特殊容器 1. ordered-set库:有序集合 ordered-set PyPI 安装方式:pip install ordered-set 使用: 输出:OrderedS…

C#_进程单例模式.秒懂Mutex

什么是Mutex? 可以定义调用线程是否具有互斥性,程序创建者拥有控制权,相反只能引用程序。 参数1:如果是程序创建者,就获得控制权。 参数2:名称,可使用GUID生成。 参数3:out 返回值&#xf…

c++(8.29)auto关键字,lambda表达式,数据类型转换,标准模板库,list,文件操作+Xmind

作业: 封装一个学生的类,定义一个学生这样类的vector容器, 里面存放学生对象(至少3个) 再把该容器中的对象,保存到文件中。 再把这些学生从文件中读取出来,放入另一个容器中并且遍历输出该容器里的学生。…

每天刷题五道RHCSA/1-5道(RedHat8.2)

1.第一题配置网络 nmcli con show #查看⽹卡信息 ​ nmcli con mod Wired connection 1 ipv4.method manual ipv4.addresses 172.25.250.100/24 ipv4.gateway 172.25.250.254 ipv4.dns 172.25.250.254 #配置ip信息,中间⽤空格隔开 ​ nmcli con up Wired connection…

大型综合集团数字化转型解决方案PPT

导读:原文《大型综合集团数字化转型解决方案PPT》(获取来源见文尾),本文精选其中精华及架构部分,逻辑清晰、内容完整,为快速形成售前方案提供参考。 部分内容: 喜欢文章,您可以关注…

SAP_ABAP_OO_ALV案例

SAP ABAP顾问能力模型梳理_企业数字化建设者的博客-CSDN博客SAP Abap顾问能力模型https://blog.csdn.net/java_zhong1990/article/details/132469977 一、OO_ ALV ,面向对象开发ALV报表 基于对收款清账平台的开发,解释 OO_ALV开发的程序结构与代码模板参考 1.1 代…

FrameBuffer 应用编程

目录 什么是FrameBufferLCD 的基础知识使用ioctl()获取屏幕参数信息使用mmap()将显示缓冲区映射到用户空间 LCD 应用编程练习之LCD 基本操作LCD 应用编程练习之显示BMP 图片BMP 图像介绍在LCD 上显示BMP 图像在开发板上测试 在LCD 上显示jpeg 图像在LCD 上显示png 图片LCD 横屏…

Ansible项目实战管理/了解项目环境/项目管理

一,项目环境 1.项目基础 项目过程 调研阶段 设计阶段 开发阶段 测试阶段 运营阶段 2.项目环境 个人开发环境 公司开发环境 项目测试环境 项目预发布环境 灰度环境:本身是生产环境,安装项目规划,最终所有的生产环境都发…

nginx-concat

为了减少tcp请求数量,nginx从上有服务器获取多个静态资源(css,js)的时候,将多个静态资源合并成一个返回给客户端。 这种前面有两个问号的请求都是用了cancat合并功能。 先到官网下载安装包,拷贝到服务器编译…

华为MateBook14 2020款 锐龙版R5集显触屏(KLVL-WFH9)原装Win10系统工厂模式安装包

系统自带F10智能还原功能、带指纹、显卡、声卡、网卡等所有驱动、出厂主题壁纸、系统属性华为专属LOGO标志、Office办公软件、华为电脑管家等预装程序 所需要工具:16G或以上的U盘 文件格式:rar压缩包 文件大小:11GB 链接:htt…

Web服务器-Tomcat详细原理与实现

Tomcat 安装与使用 :MAC 安装配置使用Tomcat - 掘金 安装后本计算机就相当于一台服务器了!!! 方式一:使用本地安装的Tomcat 1、将项目文件移动到Tomcat的webapps目录下。 2、启动Tomcat 3、在浏览器输入想要加载的…

软考:中级软件设计师:邮件加密系统,网络安全保障,网络威胁与攻击,防火墙技术

软考:中级软件设计师:邮件加密系统 提示:系列被面试官问的问题,我自己当时不会,所以下来自己复盘一下,认真学习和总结,以应对未来更多的可能性 关于互联网大厂的笔试面试,都是需要细心准备的 &…

Web开发模式、API接口、restful规范、序列化和反序列化、drf安装和快速使用、路由转换器(复习)

一 Web开发模式 1. 前后端混合开发模式 前后端混合开发模式是一种开发方式,将前端和后端的开发工作结合在一起,以加快项目的开发速度和 提高协作效率。这种模式通常用于快速原型开发、小型项目或敏捷开发中。在前后端混合开发模式中,前端和…

得物推荐引擎 - DGraph

1 前言 随着得物业务规模的不断增加,推荐业务也越来越复杂,对推荐系统也提出了更高的要求。我们于2022年下半年启动了DGraph的研发,DGraph是一个C项目,目标是打造一个高效易用的推荐引擎。推荐场景的特点是表多、数据更新频繁、单…

CSS 滚动容器与固定 Tabbar 自适应的几种方式

问题 容器高度使用 px 定高时,随着页面高度发生变化,组件展示的数量不能最大化的铺满,导致出现底部留白。容器高度使用 vw 定高时,随着页面宽度发生变化,组件展示的数量不能最大化的铺满,导致出现底部留白…

基于PID优化和矢量控制装置的四旋翼无人机(MatlabSimulink实现)

💥💥💞💞欢迎来到本博客❤️❤️💥💥 🏆博主优势:🌞🌞🌞博客内容尽量做到思维缜密,逻辑清晰,为了方便读者。 ⛳️座右铭&a…