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

 一、进程的概念

如何区分这三个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.mzph.cn/news/58536.shtml

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

相关文章

提升代码可读性与可维护性:利用责任链模式优化你的Spring Boot代码

1. 基本介绍 责任链是一种非常常见的设计模式, 具体我就不介绍了, 本文是讲解如何在SpringBoot中优雅的使用责任链模式 1.1. 代码执行流程 基本步骤如下 : SpringBoot启动时, 需要获取 handler 对应Bean, 不同业务对应着不同的多个处理器, 比如 购票业务, 可能需要检查参数是…

docker高级(mysql主从复制)

数据库密码需要设置成自己的!!! 1、创建容器master13307 #docker pulldocker run -p 13307:3306 --name mysql-master \ --privilegedtrue \ -v /mysql/mysql-master/log:/var/log/mysql \ -v /mysql/mysql-master/data:/var/lib/mysql \ -…

【Unity】【Amplify Shader Editor】ASE入门系列教程第二课 硬边溶解

黑色为0,白色为1 新建材质(不受光照影响) 拖入图片 设置 添加节点: 快捷键:K 组合通道:快捷键 V 完成图

【Sublime Text 】Sublime Text 设置中文 超详细 持续更新中

Sublime Text 设置中文 超详细 持续更新中 概述开发环境一、Sublime Text 设置中文 概述 一个好的安装教程能够帮助开发者完成更便捷、更快速的开发。书山有路勤为径,学海无涯苦作舟。我是秋知叶i、期望每一个阅读了我的文章的开发者都能够有所成长。 开发环境 开…

问道管理:逾4600股飘红!汽车板块爆了,多股冲击涨停!

A股商场今天上午全体低开,但其后逐级上行,创业板指数上午收盘大涨超越3%,北向资金也完成净买入38亿元。 别的,A股商场半年报成绩发表如火如荼进行中,多家公司发表半年报后股价应声大涨,部分公司股价冲击涨停…

【爬虫GUI】YouTube评论采集软件,突破反爬,可无限爬取!

文章目录 一、背景介绍1.1 软件说明1.2 效果演示 二、科普知识2.1 关于视频id2.2 关于评论时间 三、爬虫代码3.1 界面模块3.2 爬虫模块3.3 日志模块 四、获取源码及软件 一、背景介绍 你好,我是马哥python说 ,一名10年程序猿。 最近我用python开发了一…

nginx-concat

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

Android 绘制之文字测量

drawText() 绘制文字 绘制进度条:paint.strokeCap Paint.CAP.RONUD 线条两边样式 设置文字字体:paint.typeFace Resources.Compat.getFont(context,font) 设置加粗 paint.isFakeBoldText 设置居中: paint.setTextAlign Paint.Align.CENTER //居中, 并不是真正的居中 往…

Transformer (Attention Is All You Need) 论文精读笔记

Transformer(Attention Is All You Need) Attention Is All You Need 参考:跟李沐学AI-Transformer论文逐段精读【论文精读】 摘要(Abstract) 首先摘要说明:目前,主流的序列转录(序列转录:给…

腾讯云学生服务器申请、学生认证入口及学生机价格表

腾讯云学生服务器申请、学生认证入口及学生机价格表,学生机申请流程,腾讯云学生服务器优惠活动:轻量应用服务器2核2G学生价30元3个月、58元6个月、112元一年,轻量应用服务器4核8G配置191.1元3个月、352.8元6个月、646.8元一年&…

【超简单】远程服务器使用 plt.show() 和 cv2.imshow() 可视化图像

远程服务器可视化图像 我的配置MobaXterm 远程显示VSCode 远程显示 我的配置 服务器 Ubuntu 20.04.3 LTSAnaconda 本地电脑 Win11MobaXtermVSCode MobaXterm 远程显示 配置好服务器连接(此处略); 连接服务器,并激活使用的 A…

zookeeper启动失败(Error contacting service. It is probably not running.)

问题描述 启动zk时报如下错误: 解决办法 先查日志找找报错原因: 找到zk安装目录下的logs文件夹下的日志文件,查看连接失败原因: 如果是端口问题,修改conf文件,指定端口重新启动即可: 注&a…

JUC并发编程--------基础篇

一、多线程的相关知识 栈与栈帧 我们都知道 JVM 中由堆、栈、方法区所组成,其中栈内存是给谁用的呢?其实就是线程,每个线程启动后,虚拟 机就会为其分配一块栈内存。 每个栈由多个栈帧(Frame)组成&#xf…

算法通过村第四关-栈白银笔记|括号问题

文章目录 前言1. 括号匹配问题2. 最小栈问题3. 最大栈 总结 前言 提示:如果让我送给年轻人四个字,就是:量力而行。 量力而行不会失眠,不会啃老,不会为各种考试焦虑。顺其自然活得轻松。其实,量力而行最易大…

小米面试题——不用加减乘除计算两数之和

前言 (1)刷B站看到一个面试题,不用加减乘除计算两数之和。 (2)当时我看到这个题目,第一反应就是感觉这是一个数电题目。不过需要采用C语言的方式编写出来。 (3)不过看到大佬的代码之…

算法与数据结构(九)--并查集

并查集是一种树型的数据结构,并查集可以高校地进行如下操作: *查询元素p和元素q是否在同一组 *合并元素p和元素q所在的组 一.并查集结构 并查集也是一种树型结构,这种树的要求比较简单:1.每个元素都唯一的对应一个结点&#xff…

优美而高效:解决服务器通信问题

题目背景 在这个问题中,我们面临着一幅服务器分布图。图中的每个单元格可能有服务器(标记为1)或者没有(标记为0)。我们的任务是找出能够与至少一台其他服务器进行通信的服务器数量。 算法思路 为了解决这个问题&…

无涯教程-Python机器学习 - Stochastic Gradient Boosting函数

它也称为梯度提升机。在下面的Python食谱中,我们将通过使用pima Indians糖尿病数据集上的 sklearn 的 GradientBoostingClassifier 类来创建随机梯度Boostingensemble模型进行分类。 首先,导入所需的软件包,如下所示: from pandas import read_csv from sklearn.model_select…

国民八路参考文献:[8]许少辉.乡村振兴战略下传统村落文化旅游设计[M]北京:中国建筑工业出版社,2022.

国民八路参考文献:[8]许少辉.乡村振兴战略下传统村落文化旅游设计[M]北京:中国建筑工业出版社,2022&#xff0…

SpringCloud教程 | 第二篇: 服务消费者(rest+ribbon)

在上一篇文章,讲了服务的注册和发现。在微服务架构中,业务都会被拆分成一个独立的服务,服务与服务的通讯是基于http restful的。Spring cloud有两种服务调用方式,一种是ribbonrestTemplate,另一种是feign。在这一篇文章…