操作系统线程

news2024/9/22 1:45:09

进程那一章,我们留下了一个问题
在这里插入图片描述第一个cpu调用进程,进程调用i/o设备,主动进入ready 队列
第二个cpu将程序执行时间平均分时,进程执行时间到
第三个fork函数,我们上一章的lab有实践,可以看出是父进程主动条用fork函数产生子进程
第四个interrupt,上一章我们有演示wait等待,所以这个也是主动的。
在这里插入图片描述上一章我们做的实验可以看出,这里的执行流内存不一样,pid不一样,但子进程的内存数据是clone父进程的。
这里有个坏处
在这里插入图片描述如果能在一个进程当中出现两个一样的执行流,这两个执行流共享内存空间
我们管这样的方式叫做并发的线程

多进程通信和多线程通信的区别:
多进程通信如父进程正在进行copy文件,而子进程有一个取消按钮
在这里插入图片描述点击之后取消按钮产生一个子进程,父进程等待子进程执行,发现子进程是中断父进程

多线程通信 父线程1在copy文件,产生n个子线程(因为可能要copy多个文件夹),然后当点击取消时,产生要给wait abouting线程,去通知父线程取消copy文件。
在这里插入图片描述两者的区别在于,点击取消事件时,进程会产生一此clone,子进程要clone父进程,产生一个内存空间
在这里插入图片描述这里需要实验进行演示,不然不好理解。

进程切换开销
在这里插入图片描述我们推出线程这个概念的动机

在这里插入图片描述线程的定义
下面我们可以看到单线程的单进程只有一个PCB+code+date区域;而单进程多线程是共享code+data+files区域的。其实就是共享了存储数据、代码、全局变量,但每个线程都有自己的堆栈空间和寄存
在这里插入图片描述单cpu多线程
线程并发,需要来回切换
在这里插入图片描述多cpu多线程
多线程在多cpu环境下也可以设置为并行模式
在这里插入图片描述现在操作系统的线程概念
在这里插入图片描述多核编程
我们需要设计程序时将多核的性能应用起来,不然全是顺序执行的单进程单线程的应用,完全是浪费资源的行为。
在这里插入图片描述多核线程模型
在这里插入图片描述多线程模型
多对一模型,用户线程在用户模式下一个进程有多个线程,这个进程对应一个内核线程,这个进程有多个线程,也就达成了多个用户线程对应一个内核线程
在这里插入图片描述如果只有一个内核
虽然我们也有多个进程(执行流),在用户感觉上是多个进程并行,但是其实因为我们只有一个内核,所以一次只能运行一个线程,所以这里还是并发,但这里不止是进程的并发,也是线程的并发,上面那个一对多每个进程最少有一个线程可以和其他进程进行并发,这就是单核和多核的区别。
在这里插入图片描述

一对一
这里可以看出不管是进程还是线程都做到一对一,实现逻辑上基本可以说这些进程是并行的,但是这也取决于核心数量

在这里插入图片描述多对多
多路复用,取决于cpu的调度,每个进程的开销不一样,需要cpu进行调度去分配内核线程

在这里插入图片描述线程库
linux关注于posix pthread 这个p代表用户线程和内核线程都可以被创建

在这里插入图片描述

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

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

相关文章

数字化转型下的园区运营如何才能智慧起来?推荐快鲸智慧园区系统

在数字化转型深入推动的背景下,“大数据”、“互联网”等技术不断推动着传统产业,园区运营所产生的业务数据与日俱增。数据作为数字化转型的核心要素,如果不对其进行分析整理,从中提取有价值的信息,数据的价值便无法得…

CS144-Lab1

实验架构 TCP实施中模块和数据流的排列 : [外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-pmRfy6Va-1676857163260)(null)] 字节流是Lab0。TCP的工作是通过不可靠的数据报网络传输两个字节流(每个方向一个),以便写入连接一侧套接字的字…

在superset中快速制作报表或仪表盘

在中小型企业,当下需要快速迭代、快速了解运营效果的业务,急需一款开源、好用、能快速迭代生产的报表系统。 老板很关心,BI工程师很关心,同时系统开发人员也同样关心,一个好的技术选型往往能够帮助公司减少很多成本&a…

软件持续测试的未来题】

测试是软件开发生命周期(SDLC)的重要组成部分。SDLC 的每个阶段都应包含测试,以获得更快的反馈并提高产品质量。如果以有效的方式实施和使用测试自动化,那么它可以为您带来出色的结果,而持续测试是正确的方法.。预计在2018-2023 年的预测期内…

CCNP350-401学习笔记(251-300题)

251、 Which IPv6 OSPF network type is applied to interface Fa0/0 of R2 by default? A. multipointB. broadcast C. Ethernet D. point-to-point 252、Which EIGRP feature allows the use of leak maps? A. neighborB. Stub C. offset-list D. address-family 253、W…

IMS应用领域|IMS连接器系统使自动驾驶成为可能

IMS连接器系统使自动驾驶成为可能极高的创新力和绝对的产品质量:作为高频接插件接口的创新性开发合伙人,我们的产品满足汽车工业对信息娱乐、娱乐、远程信息处理技术、车载电脑和智能汽车天线等不同产品解决方案的多种要求。我们为确保系统的可靠性做出了…

【学习笔记】Docker(一)

Docker为什么会出现?问题:环境配置最初开发上线都需要配置,并且非常麻烦。每一个机器都需要部署环境——费时费力、我在我的电脑上可以运行、版本更新,导致服务不可用传统:开发打包jar包交给运维来做现在:开…

面试经常被问悲观锁和乐观锁?什么是cas?来我花3分钟时间告诉你

锁大家都知道吧,多线程访问资源会存在竞争,那么就需要加锁进而让多个线程一个一个访问。 比如有一个房间,一次只能进一个人,现在有十个人都想进去怎么办? 对,加锁。拿一把钥匙,谁抢到钥匙谁就…

5.4 BGP地址聚合

5.3.1配置BGP地址聚合 1. 实验目的 熟悉BGP地址聚合的应用场景掌握BGP地址聚合的配置方法2. 实验拓扑 实验拓扑如图5-4所示: 图5-4:配置BGP地址聚合 3. 实验步骤 (1)配置IP地址 R1的配置 <Huawe…

skywalking window版使用

文章目录 目录 文章目录 前言 一、skywalking 二、使用步骤 2.1 使用mysql持久化监控数据 2.2 接入到idea的单个微服务和多个微服务 2.3 自定义skywalking的链路追踪 总结 前言 skywalking是一个国产开源框架&#xff0c;是分布式系统的应用程序性能监视工具&#xff0c;专为…

python基于django电影院购票系统(含选座功能

可定制框架:ssm/Springboot/vue/python/PHP/小程序/安卓均可开发 目录 1 绪论 1 1.1课题背景 1 1.2课题研究现状 1 1.3初步设计方法与实施方案 2 1.4本文研究内容 2 2 系统开发环境 4 2.项目介绍影城管理系统的主要使用者分为管理员和用户&#xff0c;实现功能包括管理员&…

UVM实战--加法器

前言 这里以UVM实战&#xff08;张强&#xff09;第二章为基础修改原有的DUT&#xff0c;将DUT修改为加法器&#xff0c;从而修改代码以使得更加深入的了解各个组件的类型和使用。 一. 组件的基本框架 和第二章的平台的主要区别点 &#xff08;1&#xff09;有两个transactio…

全15万字丨PyTorch 深度学习实践、基础知识体系全集;忘记时,请时常回顾。

✨ ✨我们抬头便看到星光&#xff0c;星星却穿越了万年. ✨ ✨ &#x1f3af;作者主页&#xff1a;追光者♂ &#x1f338;个人简介&#xff1a;在读计算机专业硕士研究生、CSDN-人工智能领域新星创作者&#x1f3c6;、2022年度博客之星人工智能领域TOP4&#x1f31f;、阿里云…

国产哪种蓝牙耳机最好?口碑最好的国产蓝牙耳机推荐

随着近几年蓝牙耳机的飞速发展&#xff0c;国产蓝牙耳机也逐渐突破技术壁垒&#xff0c;被更多用户熟知、认可。但&#xff0c;国产蓝牙耳机品牌的多样化&#xff0c;也为人们的选择增添了不少困难。那么&#xff0c;国产哪种蓝牙耳机最好&#xff1f;下面&#xff0c;我来给大…

详解可变形注意力模块(Deformable Attention Module)

Deformable Attention&#xff08;可变形注意力&#xff09;首先在2020年10月初商汤研究院的《Deformable DETR: Deformable Transformers for End-to-End Object Detection》论文中提出&#xff0c;在2022CVPR中《Vision Transformer with Deformable Attention》提出应用了De…

JavaEE简单示例——再插入的同时获取插入的主键列

简单介绍&#xff1a; 在某些时候&#xff0c;我们在插入完成一条语句之后&#xff0c;我们会想要返回之前插入的这条语句的主键列的数据&#xff0c;进行下一步的展示或者修改&#xff0c;我们就可以使用MyBatis的主键回写功能&#xff0c;帮助我们获取插入成功的一条数据的主…

Microsoft Dynamics 365:导入License到服务层,通过Business Central Administration Shell

本文主要是Microsoft Dynamics 365的License导入的图解干货&#xff0c;不多赘述&#xff0c;直接上图&#xff1a;第一步&#xff1a;准备好的License文件放在你喜欢的目录下第二步&#xff1a;到开始程序里找到并打开 Business Central Administration Shell3.第三步&#xf…

klog bug:仅输出到日志文件,不打印到命令行/stderr

一、 问题描述 开发k8s插件&#xff0c;使用klog作为日志工具&#xff0c;开发完成发现在设置将日志打印到文件后&#xff0c;Error级别的日志信息仍然会输出到命令行&#xff0c;过多日志打印会使后期将服务部署于docker有卡死的风险&#xff08;docker的bug&#xff0c;日志…

美国原装二手keysight E4980A(安捷伦)2MHZ LCR表

Agilent E4980A、Keysight E4980A、LCR 表&#xff0c;20 Hz - 2 MHz E4980A 是 Agilent 的 2 MHz LCR 表。LCR表是一种电子测试设备&#xff0c;用于测量电子元件的电感&#xff08;L&#xff09;、电容&#xff08;C&#xff09;和电阻&#xff08;R&#xff09;。LCR 表可…

W800|iot|HLK-W800-KIT-PRO|AliOS|阿里云| |官方demo|学习(1):板载AliOS系统快速上手

板载系统简介 HLK-W800-KIT-PRO 是海凌科电子面向开发者&#xff0c;采用了联盛德 w800 方案&#xff0c;带有一个RGB三色灯&#xff0c;集成了 CHT8305C 温湿度传感器的多功能开发板&#xff0c;用户可以在上面学习、研究嵌入式系统和物联网产品的开发&#xff0c;本套设备运行…