进程,线程
进程是操作系统分配资源的基本单位,线程是CPU调度的基本单位。
PCB:进程控制块,操作系统描述程序的运行状态,通过结构体task,struct{…},统称为PCB(process control block)。是进程管理和控制的最重要的数据结构。每一个进程均有一个PCB,在创建进程时,建立PCB,伴随进程的全过程,知道进程撤销而撤销。
进程(Process)主要由三个部分组成:
1.进程控制块,PCB,包含:进程的描述信息,进程控制和管理信息,资源分配清单,CPU相关信息。
2.数据段,进程运行过程中各种数据(比如程序中定义的变量)
3.程序段,程序的代码(指令序列)
对于操作系统来说,进程就是PCB程序控制块,PCB是给操作系统使用的,数据段,程序段是给进程自己用的。
进程的三态图
运行态,就绪态,阻塞态
状态迁移
就绪态----发生进程调度---->运行态
运行态----时间片用完------->就绪态
运行态----出现阻塞事件---->阻塞态
阻塞态----阻塞事件结束---->就绪态
进程的五态图
新建态,就绪态,运行态,阻塞态,结束态
状态迁移
新建态----进入就绪队列---->就绪态
就绪态----发生进程调度---->运行态
运行态----时间片用完------->就绪态
运行态----结束---------------->结束态
运行态----出现阻塞事件---->阻塞态
阻塞态----阻塞事件结束---->就绪态
进程特征
动态性:进程是程序的一次执行过程,是临时的,有生命周期的,是动态产生,冬天消亡的
并发性:任何进程都可以同其他进程一起并发执行
独立性:进程是系统进行资源分配和调度的独立单元
结构性:进程由程序,数据和进程控制块三部分组成
0号进程是主动创建的,用于初始化操作系统进程,之后创建1号进程,1号进程是所有进程的父进程
前台进程:是指用户可以在终端和进程相互交互的进程
后台进程:是指没有占用终端的进程,后台进程不需要和用户交互
守护进程:是指在系统启动时启动,并且在系统关闭时结束的进程
父、子进程:子进程是指由另一进程(对应称之为父进程)所创建的进程。
孤儿进程:一个父进程退出,而他的一个或多个子进程还在运行,那么这些子进程将成为孤儿进程。
僵尸进程:进程退出时没有释放资源。是指没有占用终端,后台进程不需要和用户交互的进程。
进程间通信(IPC)
不同进程之间总会需要传播、交互数据。这里进程之间通信必须同通过内核,因为进程的用户空间是独立的,内核空间是每个进程都共享的"公共区域",所以研究如何"对话"。
1.管道,匿名管道(pipe),命名管道(FIFO)
2.消息队列
3.共享内存
4.信号量
4.信号
5.套接字(socket)
线程
一个进程可以有多个线程,它们共享这个进程的资源(内存空间,包括代码段,数据集,堆等,及一些进程级的资源,如打开文件和信号等)。
为了减少进程切换的开销,把进程作为资源分配的基本单位(很少调度或切换),线程作为独立调度的基本单位,线程上下文切换比进程上下文切换要快得多。
线程的优点
1.多个线程共享当前进程的资源
2.进程下的线程间通信,无需操作系统干预(进程通信需要请求操作系统服务,CPU切换到内核态)开销更小。
3线程间的并发比进程开销更小,系统并发性提升。
需要注意的是:从属于不同进程的线程间通信,也必须请求操作系统。同样从属于不同进程的线程间切换,它是会导致进程切换的,所以开销也大。
线程的缺点:当进程中的一个线程崩溃时,会导致其他从属于进程的所有线程崩溃。
线程间通信
1.互斥锁
2.读写锁
3.自旋锁
4.条件变量
5.信号量
6.信号
进程、线程同步
进程间同步方法:
1.消息队列
2.共享存储 映射同一块物理内存
3.信号量
线程间同步方法:
1.互斥量
2.读写锁
3.自选锁
4.条件变量
相关文章:
进程,线程
进程是操作系统分配资源的基本单位,线程是CPU调度的基本单位。 PCB:进程控制块,操作系统描述程序的运行状态,通过结构体task,struct{…},统称为PCB(process control block)。是进程管理和控制的…...
第03章_基本的SELECT语句
第03章_基本的SELECT语句 讲师:尚硅谷-宋红康(江湖人称:康师傅) 官网:http://www.atguigu.com 1. SQL概述 1.1 SQL背景知识 1946 年,世界上第一台电脑诞生,如今,借由这台电脑发展…...
干货 | 简单了解运算放大器...
运算放大器发明至今已有数十年的历史,从最早的真空管演变为如今的集成电路,它在不同的电子产品中一直发挥着举足轻重的作用。而现如今信息家电、手机、PDA、网络等新兴应用的兴起更是将运算放大器推向了一个新的高度。01 运算放大器简述运算放大器&#…...
C++定位new用法及注意事项
使用定位new创建对象,显式调用析构函数是必须的,这是析构函数必须被显式调用的少数情形之一!, 另有一点!!!析构函数的调用必须与对象的构造顺序相反!切记!!&a…...
【Android笔记75】Android之翻页标签栏PagerTabStrip组件介绍及其使用
这篇文章,主要介绍Android之翻页标签栏PagerTabStrip组件及其使用。 目录 一、PagerTabStrip翻页标签栏 1.1、PagerTabStrip介绍 1.2、PagerTabStrip的使用 (1)创建布局文件...
【Kafka】【二】消息队列的流派
消息队列的流派 ⽬前消息队列的中间件选型有很多种: rabbitMQ:内部的可玩性(功能性)是⾮常强的rocketMQ: 阿⾥内部⼀个⼤神,根据kafka的内部执⾏原理,⼿写的⼀个消息队列中间 件。性能是与Kaf…...
现代 cmake (cmake 3.x) 操作大全
cmake 是一个跨平台编译工具,它面向各种平台提供适配的编译系统配置文件,进而调用这些编译系统完成编译工作。cmake 进入3.x 版本,指令大量更新,一些老的指令开始被新的指令集替代,并加入了一些更加高效的指令/参数。本…...
how https works?https工作原理
简单一句话: https http TLShttps 工作原理:HTTPS (Hypertext Transfer Protocol Secure)是一种带有安全性的通信协议,用于在互联网上传输信息。它通过使用加密来保护数据的隐私和完整性。下面是 HTTPS 的工作原理:初始化安全会…...
Docker的资源控制管理
目录 一、CPU控制 1、设置CPU使用率上限 2、设置CPU资源占用比(设置多个容器时才有效) 3、设置容器绑定指定的CPU 二、对内存使用进行限制 1、创建指定物理内存的容器 2、创建指定物理内存和swap的容器 3、 对磁盘IO配额控制(blkio&a…...
MMSeg无法使用单类自定义数据集训练
文章首发及后续更新:https://mwhls.top/4423.html,无图/无目录/格式错误/更多相关请至首发页查看。 新的更新内容请到mwhls.top查看。 欢迎提出任何疑问及批评,非常感谢! 摘要:将三通道图像转为一通道图像,…...
Redis使用方式
一、Redis基础部分: 1、redis介绍与安装比mysql快10倍以上 *****************redis适用场合**************** 1.取最新N个数据的操作 2.排行榜应用,取TOP N 操作 3.需要精确设定过期时间的应用 4.计数器应用 5.Uniq操作,获取某段时间所有数据排重值 6.实时系统,反垃圾系统7.P…...
无主之地3重型武器节奏评分榜(9.25) 枪械名 红字效果 元素属性 清图评分 Boss战评分 泛用性评分 特殊性评分 最终评级 掉落点 掉率 图片 瘟疫传播
无主之地3重型武器节奏评分榜(9.25) 枪械名 红字效果 元素属性 清图评分 Boss战评分 泛用性评分 特殊性评分 最终评级 掉落点 掉率 图片 瘟疫传播者 发射巨大能量球,能量球会额外生成追踪附近敌人的伴生弹 全属性 SSS SSS SSS - T0 伊甸6号-…...
什么是编程什么是算法
1.绪论 编程应在一个开发环境中完成源程序的编译和运行。首先,发现高级语言开发环境,TC,Windows系统的C++,R语言更适合数学专业的学生。然后学习掌握编程的方法,在学校学习,有时间的人可以在网上学习,或者购买教材自学。最后,编写源程序,并且在开发环境中实践。 例如…...
【c++】函数
文章目录函数的定义函数的调用值传递常见样式函数的声明函数的分文件编写函数的作用: 将一段经常使用的代码封装起来,减少重复代码。 一个较大的程序,一般分为若干个程序块,每个模板实现特定的功能。 函数的定义 返回值类型 函数…...
[golang gin框架] 1.Gin环境搭建,程序的热加载,路由GET,POST,PUT,DELETE
一.Gin 介绍Gin 是一个 Go (Golang) 编写的轻量级 http web 框架,运行速度非常快,如果你是性能和高效的追求者,推荐你使用 Gin 框架.Gin 最擅长的就是 Api 接口的高并发,如果项目的规模不大,业务相对简单,这…...
【开源】祁启云网络验证系统V1.11
简介 祁启云免费验证系统 一个使用golang语言、Web框架beego、前端Naive-Ui-Admin开发的免费网络验证系统 版本 当前版本1.11 更新方法 请直接将本目录中的verification.exe/verification直接覆盖到你服务器部署的目录,更新前,请先关闭正在运行的验…...
震源机制(Focal Mechanisms)之沙滩球(Bench Ball)
沙滩球包含如下信息: a - 判断断层类型,可根据球的颜色快速判断 b - 判断断层的走向(strike),倾角(dip) c - 确定滑移角/滑动角(rake) 走向 ,倾角,滑移角 如不了解断层的定义,可以先阅读:震…...
C++入门:多态
多态按字面的意思就是多种形态。当类之间存在层次结构,并且类之间是通过继承关联时,就会用到多态。C 多态意味着调用成员函数时,会根据调用函数的对象的类型来执行不同的函数。1、纯虚函数声明如下: virtual void funtion1()0; 纯…...
华为OD真题_工位序列统计友好度最大值(100分)(C++实现)
题目描述 工位由序列F1,F2…Fn组成,Fi值为0、1或2。其中0代表空置,1代表有人,2代表障碍物。 1、某一空位的友好度为左右连续老员工数之和 2、为方便新员工学习求助,优先安排友好度高的空位 给出工位序列,求所有空位中友好度的最大值。 输入描述 第一行为工位序列:F1,F…...
[ruby on rails]MD5、SHA1、SHA256、Base64、aes-128-cbc、aes-256-ecb
md5 puts Digest::MD5.hexdigest(admin) sha1 require digest/sha1 puts Digest::SHA1.hexdigest(admin)base64 require base64 code Base64.encode64(admin) source Base64.decode64(code)aes-128-cbc # base64 解密数据 session_key Base64.decode64(session_ke…...
《NFL星计划》:拉斯维加斯突袭者·橄榄1号位
拉斯维加斯袭击者(英语: Las Vegas Raiders)又译拉斯维加斯侵略者或拉斯维加斯突击者,是一支主场位于美国内华达州拉斯维加斯的职业美式橄榄球球队,属全国橄榄球联盟 (NFL) 的美国橄榄球联合会 (AFC) 西区。实际上&…...
韩顺平Linux基础学习(1)
内容概括...
Rust学习入门--【6】Rust 基础语法
Rust 基础语法 变量,数据类型,注释,函数和控制流,这些是大部分编程语言都具有的编程概念。 本节将学习理解这些概念。 变量 Rust 是强类型语言,但具有自动判断变量类型的能力。这很容易让人与弱类型语言产生混淆。…...
LINUX提权入门手册
前言 发点存货 LINUX权限简介 在学习提权之前我们先了解一下linux里面的权限我们使用命令: ls -al即可查看列出文件所属的权限: 文件头前面都有一段类似的字符,下面我们仔细分析一下里面符号分别代表什么。 -rw-r--r-- 1 root root 第一个符号-的…...
MSI_MSI-X中断之源码分析
MSI_MSI-X中断之源码分析 文章目录MSI_MSI-X中断之源码分析一、 怎么发出MSI/MSI-X中断1.1 在RK3399上体验1.1.1 安装工具1.1.2 查看设备MSI-X信息1.1.3 验证MSI-X信息二、 怎么使用MSI/MSI-X三、 MSI/MSI-X中断源码分析3.1 IRQ Domain创建流程3.1.1 GIC3.1.2 ITS3.1.3 PCI MSI…...
Docker--consul
目录 前言 一、Consul 简介 1.1、 consul 概述 1.2 、consul 的两种模式 1.3、consul 提供的一些关键特性 二、Consul 容器服务更新与发现 三、consul 部署 3.2、查看集群信息 四、registrator服务器 consul-template 五、consul 多节点 前言 服务注册与发现是微服…...
ESP-01S使用AT指令连接阿里云
ESP-01S使用AT指令连接阿里云 烧录MQTT AT固件 出厂的ESP-01S是基本的AT指令固件,没有MQTT的,所以无法通过MQTT指令与云平台通信,需要烧录固件(如果测试到有MQTT相关的指令,则不用重新烧录固件) 固件烧录…...
【Kafka】【三】安装Kafka服务器
Kafka基本知识 Kafka介绍 Kafka是最初由Linkedin公司开发,是⼀个分布式、⽀持分区的(partition)、多副本的 (replica),基于zookeeper协调的分布式消息系统,它的最⼤的特性就是可以实时的处理 …...
关于适配器模式,我遗漏了什么
近期有些tasks需要 重构or适配 老的代码。 与其向上面堆💩,不如优雅的去解决。 首先我的问题在于,错误的把 堆屎的操作 ,当作了适配器模式的操作。 比如原函数入参,需要更改某个属性,把这种操作外包一层…...
SQL Serve 日志体系结构
SQL Server 事务日志记录着 undo 及 redo 日志,为了保证数据库在崩溃后恢复,或者在正常数据库操作期间进行回滚,保证数据库事务完整性和持久化。如果没有事务日志记录,数据库在事务上将不一致,并且在数据库崩溃后可能导…...
网站模板在线演示怎么做/网站seo哪里做的好
前两天家里的网断断续续,发现有人在用arp欺骗,其实真正碰到有人在攻击的几率不大,大部分原因都是有人在用win下的诸如“P2P终结者”这样的软件导致的。再怎么bs那人也是没有用的,问题还是要解决,win下倒是好办…...
wordpress小米商城主题/今日疫情最新情况
关于WordPress 说到Wordpress一款开源的全球CMS博客系统,作为一款成熟的系统,只需要完美的对接前端自己写对应的API接口就可以完美的呈现出一个自己想要的客户端例如PC版,移动版以及现在的小程序。 目录 关于WordPress WordPress小程序 …...
太原网站建设世纪优创/最好的网络营销软件
来都来了,怎么说也你也踩下我的说说是吧,求回复...
视频弹幕网站建设/模板式自助建站
给大家炒个冷饭,是我在2003年写的一点心得。不过现在来看还是有启发意义的,虽然笔法有些稚嫩 实施分为这几个阶段:1字典准备,系统参数配置2客户化3使用培训4做报表做运行监控5升级更新版本这几部分都挺费时间。为什么?…...
合肥网站建设制作价格/图床外链生成工具
中国质量新闻网2006年的一篇报道,1把失准钢卷尺,导致损失数10万元钱。计量器具是保障建筑工程质量的一个重要因素,只有加强计量工作,才是对人民生命财产的最大负责。 在工业产品的生产中,一件不合格的量具能使成批产品…...
wordpress离线编辑/潍坊今日头条新闻
这是网络上推荐的几个Html5混合开发好用的编辑器。 传送门 https://blog.csdn.net/simple_tifa/article/details/80492180 个人感觉比较好用的是Hbuilder这款软件。 传送门 https://sm.myapp.com/original/Development/HBuilder.9.0.2.windows.zip HBuilder是DCloud&…...