进程与线程

HX711重量传感器原理图设计,已量产(压力传感器) 最近调通了一款针对家用、物联网场景的重量传感套件,核心用了 HX711 这颗经典的称重 AD 芯片,还加了用户最需要的 “一键校准” 功能 —— 之前帮朋友做家用米桶余量报警时,用户总吐槽校准步骤太繁琐,这次的方案把操作简化到只按一个键,试下来体验好了不少。正好拆解下这套硬件的设计逻辑,供做同类产品的朋友参考。 阅读详情

进程

概念:进程是能和其他程序并行执行的程序段在某数据集合上的一次运行过程,他是系统资源分配和调度的一个基本独立单位。

进程控制块(PCB):当系统要创建一个进程时,必须要申请一定的内存空间,为该进程建立PCB,以后系统就依据该PCB的各项内容对进程实行控制和管理。

PCB一般包括以下内容。

    1.进程名:也称进程标示符,用于唯一标识一个进程;一般分为内部名和外部名

    2.当前状态:进程当前的所处的状态。

    3.进程优先级

    4.现场信息保护区:当进程因为某件事情暂停时,CPU现场信息必须保存在PCB中,以便重新获得CPU是,能很快恢复现场

    5.程序和数据的地址:进程所对应的程序和数据所在的内存或外存地址,方便调度

    6.资源清单:一张列出的CPU以外的进程所需要的全部资源,以及已经分配到该进程的资源清单,如I/O设备,打开的文件等

    7.队列指针:同一状态的PCB通常链接成一个队列。

    8.进程的”家族“关系:父进程,子进程

PCB的组织方式一般有

    1.线性方式

    2.链接方式

    3.索引方式

进程的三种基本状态:

    1.就绪状态

    2.执行状态

    3.阻塞状态

进程控制:

    为了对进程进行控制,操作系统中必须设置一个机构,他具有创建进程,撤销进程以及其他管理功能。这是操作系统中最常见、最核心的内容,常称为内核。它是操作系统的管理和控制中心,往往通过执行各种原语操作来实现的。原语->机器指令

    1.创建原语:创建进程

    2.撤销原语:撤销进程,撤销PCB

    3.阻塞原语:调用阻塞原语来把进程阻塞起来

    4.唤醒原语:唤醒阻塞进程

进程调度:

    1.高级调度(宏调度或作业调度):将外存中的后备作业调度内存中

    2.中级调度:负责内外存之间的进程对换

    3.低级调度:决定就绪队列中的那个进程将获得处理器

调度功能包括

    (1)保护现场

    (2)从PCB表中选择符合条件的进程,并分配CPU

    (3)回复原来的现场

   调度的方式分为剥夺式和非剥夺式

    剥夺式:抢占式,包括优先级方式、短进程原则、时间片原则

    非剥夺式:独占CPU之道主动让出CPU

进程调度算法:

    1.时间片轮换法

    2.优先级调度

        (1)静态优先级:进程创建时确定优先级

        (2)动态优先级:进程执行期间,按某种原则不断修改进程优先级;例如进程占用CPU长短,进程等待CPU时间长短等等

    3.多重队列轮换法:将时间片轮换法中的单就绪队列改为双就绪队列或者多就绪队列,并给每个队列赋予不同的优先权。

线程

         概念:线程是比进程更小的独立运行的基本单位,是CPU调度的基本单位。线程默认共享当前进程的内存和资源。这种共享的优点是允许同一进程,同一地址空间存在多个线程。

多线程的优点

    (1) 响应度高;比如说一个交互式的程序,比如说QQ视频聊天时,视频传输很明显是耗时的,而且很多时候都会出现视频卡的现象,这个时候假如说我们采用多线编程,当一个视频阻塞的时候,当前这个程序仍能运行,我们仍然通过另外一些线程可以 打字,语音等。

    (2) 资源共享,线程默认共享当前进程内的内存和资源。这种共享的优点是 允许同一进程,同一地址空间 存在多个线程

    (3)经济,系统开销小;创建进程是要系统分配资源的,回收进程是要回收资源的,这个过程比较耗时,而创建线程则相对来说快速的多。

    (4)充分利用处理器资源;现在的处理器一般为多核的,当有多个线程的时候,同一时刻,每个核都能在工作,并行的工作;但是假如说的单线程的话,只能运行在一个核上,相对来说,另外一个核就浪费了,所以使用多线程能充分利用CPU的资源,加快程序执行的速率。






Feature ‘alsa‘ was enabled, but the pre-condition ‘config.unix && !config.qnx && libs.alsa‘ failed解决 这个问题主要是Qt多媒体插件中缺少了ALSA音频库,所以我们需要自行先编译ALSA 在执行./configure的时候,配置项中ALSA为no Qt Multimedia: ALSA ................................... no GStreamer 1.0 .......................... no GStreamer 0.10 ......................... no Video for Linux ............. 阅读详情

相关推荐

如何用zemax导入solidworks装配体

在zemax使用中,常常需要导入各种零件。如果光机结构较为复杂,那么手工一个一个加载零件,还需要在zmx文件中调整object的位置,非常麻烦。如果能将solidworks的装配体模型直接导入,则可以大幅减小工作量。具体过程为(非序列模式下): 1、新建或打开一个zemax空文件 2、在元件编辑器中,找到一个空文件,双击或直接展开三角符,在类型中找到zemax里的solidworks装配体,如图。...

wojiaoyyy的博客 1万+

【操作系统】几种常用调度算法

先来先服务调度算法(FCFS)、短作业优先调度算法(SJF)、最短作业优先调度算法(SJF)、最短剩余时间优先调度算法(SRTF)、响应比最高者优先调度算法(HRRF)、时间片轮转调度算法(RR)、优先级调度算法(PSA)、多级反馈队列调度算法 (MLFQ)

FishC的博客 3万+

黑客渗透测试后门隐藏技术揭秘

本文介绍了在授权渗透测试中隐藏后门文件(muma.exe)的多种技术手段。主要包括:通过WinRAR自解压脚本将后门与正常程序捆绑实现双开;利用系统自动运行目录和注册表实现开机自启;修改文件图标伪装成常用软件;将文件存放在冷门系统目录;设置系统+隐藏双重属性增强隐蔽性。此外还涉及对抗安全软件的加壳(UPX)、免杀(msfvenom编码)技术,以及进程注入、日志清除等运行隐藏方法。所有技术仅限合法授权测试使用,未经授权使用将面临法律责任。

m0_60781580的博客 1040

进程线程及堆栈之间内存分配和关系总结

进程线程及堆栈关系的总结 突然想到进程的栈和线程的栈,就顺便说一下,线程的栈被自动分配到进程的内存空间中 进程和线程都是由操作系统所体会的程序运行的基本单元,系统利用该基本单元实现系统对应用的并发性。进程和线程的区别在于: 简而言之,一个程序至少有一个进程,一个进程至少有一个线程. 线程的划分尺度小于进程,使得多线程程序的并发性高。 另外,进程在执行过程中拥有独立的内存单元

磊啊磊 1万+

ESP-CSI:使用ESP32进行CSI(信道状态信息)采集

使用esp32进行csi(信道状态信息)采集和处理

capsize的博客 8284

基于Simulink与MATLAB的七轴OpenArm机械臂逆运动学仿真与轨迹规划完整指南

本文详细介绍了七自由度OpenArm机械臂在MATLAB/Simulink环境下的运动学仿真与轨迹规划实现方法。首先建立了机械臂的DH参数模型,验证了正运动学计算;随后提出了两种逆运动学求解算法(数值迭代法和臂型角参数化解析法)的MATLAB实现方案;最后在Simulink中搭建了完整的轨迹规划与控制系统。研究解决了七自由度冗余机械臂特有的多解性、奇异性和关节限位约束等核心问题,为OpenArm机械臂的运动控制提供了完整的技术方案和可运行代码实现。

AI的内部世界的博客 684

非抢占式优先算法例题_非抢占式高优先级调度算法

v1.0可编辑可修改1/*非抢占式高优先级调度算法(优先数越大级别越高)算法思想:在按进程达到时间由小到大的顺序输入进程信息后,先对其优先数进行排列,将最先到达的进程的到达时间设为开始时间,计算结束时间,然后对后面到达的时间与该进程的结束时间进行比较,如若小于该进程的结束时间,记录进程的个数,再对其优先数逐个进行比较,将优先数最大的提到前面,每次进程结束都要进行比较,得到执行序列,在依次输出结果*...

weixin_33240360的博客 7049

这款值68亿的游戏,你不实战一下吗?安排!

本文介绍了如何使用Cocos开发传送带像素消除类游戏。游戏包含像素画、传送带、炮台等核心元素,需要先解析图片生成像素数据,再通过关卡编辑器设计关卡机制。炮台会在传送带上环绕运动,发射子弹消除匹配颜色的像素点。文章详细讲解了游戏对象实现方法,包括像素生成、传送带运动轨迹、炮台瞄准算法等,并展示了实战效果。完整源码已集成到亿元Cocos小游戏实战合集中,适合对像素消除游戏开发感兴趣的开发者参考。

lsw_Cs的博客 438

线程的面试题

1:什么是线程?线程是操作系统能够进行运算调度的最小单位,它被包含在进程之中,是进程中的实际运作单位。程序员可以通过它进行多处理器编程,你可以使用多线程对运算密集型任务提速。比如,如果一个线程完成一个任务要100毫秒,那么用十个线程完成改任务只需10毫秒。Java在语言层面对多线程提供了卓越的支持,它也是一个很好的卖点。欲了解更多详细信息请点击这里。2:线程和进程有什么区别?线程是进程的...

aikong3218的博客 211

Open3D 计算点云的倒角距离(Chamfer Distance)【2025最新版】

;Chamfer Distance距离可以计算生成点云数据与标签点云数据之间的平均最短点距离。Open3D可以直接用来计算点云的Chamfer Distance距离。博客长期更新,本文最近一次更新时间为:2025年2月18日。

点云侠的博客 3254

AI上推荐 之 逻辑回归模型与GBDT+LR(特征工程模型化的开端)

1. 前言 随着信息技术和互联网的发展, 我们已经步入了一个信息过载的时代,这个时代,无论是信息消费者还是信息生产者都遇到了很大的挑战: 信息消费者:如何从大量的信息中找到自己感兴趣的信息? 信息生产者:如何让自己生产的信息脱颖而出, 受到广大用户的关注? 为了解决这个矛盾, 推荐系统应时而生, 并飞速前进,在用户和信息之间架起了一道桥梁,一方面帮助用户发现对自己有价值的信息, 一方面让信息能够展现在对它感兴趣的用户前面。 推荐系统近几年有了深度学习的助推发展之势迅猛, 从前深度学习的传统推荐模型(协

Miracle8070 8255

操作系统中典型的调度算法

操作系统 调度算法

爱学习的JackYang的博客 3068

华南理工大学-大学物理实验-绪论作业

3.用公式测量某圆柱体铝的密度,测得直径=2.0420.003(cm),高=4.1260.004(cm),质量=36.4880.006(g)。计算铝的密度和测量的标准差,并以测量结果表达式表示之。(要求判别和剔除异常数据)(30分)(了解图解法的注意事项,大学物理实验众多实验数据处理采用这种方法,如PN结温度特性研究,光电效应与普朗克常数的测定,霍尔效应测磁场等等,注意规范作图)实验测得温度与对应的金属丝的长度的数据如下表所示。(了解异常数据的判断方法及具体判断过程,30分的题目n(*≧▽≦*)n)

mohen_777的博客 581

什么是进程,进程与线程之间的关系!!!

什么是进程,进程与线程之间的关系!!! 首先我们先讲解进程,进程是什么呢!!! 进程:是指系统正在运行的一个应用程序(手机上可以理解为一个App,PC上可以理解为程序),是系统进行资源分配和调度的基本单位。一个程序或者应用至少有一个进程。 线程:线程呢则是CPU调度最小(比进程更小)的能独立运行的执行单元,也是有限的系统资源。 两者之间的关系:一个进程之间至少包含一个或多个线程,(包含的关系)进程有一个独立的运行空间,其中的线程共享此空间,也拥有此进程的全部资源,,,因此可以并发(并行)执行。 创建线程的

Adorablenewwhite的博客 1007

温度PID控制PLC程序

温度PID稳定控制程序,适用于欧姆龙PLC,对其他PLC也具有很大参考价值

TMS_WebGMaps_1.9.8.0_Full_Source

TMS_WebGMaps_1.9.8.0_Full_Source 全源码 delphi cbuilder

进程与线程浅谈

进程与线程的基础总结。

wahkim的博客 879

文档:亲测可用解决vnc灰屏,黑屏,鼠标大黑叉情况

主要解决vnc-viewer灰屏,黑屏,鼠标大黑叉等现象,详细见文档。

进程与线程相关

进程与线程的区别 进程是资源分配最小单位,线程是程序执行的最小单位; 进程有自己独立的地址空间,每启动一个进程,系统都会为其分配地址空间,建立数据表来维护代码段、堆栈段和数据段,线程没有独立的地址空间,它使用相同的地址空间共享数据; CPU切换一个线程比切换进程花费小; 创建一个线程比进程开销小; 线程占用的资源要⽐进程少很多。 线程之间通信更方便,同一个进程下,线程共享全局变量,静态变量等数据...

qq_32534441的博客 475

计算机控制技术及应用

《计算机控制技术及应用》通过总结作者的科研成果和吸收国内外的先进理论、方法和技术,以计算机控制系统的网络化、开放化、智能化和集成化发展趋势为主线索,主要介绍计算机控制系统的基本概念和计算机控制系统的典型形式,计算机控制系统的数学描述与基本分析方法,以及数字PID控制器、最少拍控制系统、达林算法、状态变量设计法等设计方法及其各种改进算法。重点突出计算机控制系统输入输出通道接口的设计方法和典型控制系统的设计案例与实现方法等。

Linux进程与线程

在本文章中,我们将要详细介绍一下Linux中有关进程相关的内容。以上就是我们Linux进程与线程相关的介绍,希望对大家的学习有所帮助,仅供参考 如有错误请大佬指点我会尽快去改正 欢迎大家来评论~~

lim6ere的博客 1415

进程与线程的关系

进程和线程并非互斥,现代系统常结合两者构建复杂架构。例如:通过多进程实现服务隔离,每个进程内用多线程提升任务处理效率,从而平衡性能、稳定性和开发复杂度。进程和线程是操作系统中实现多任务处理的核心概念,二者既有区别又密切关联。

sre救赎之路 1518

线程与进程

本文主要介绍了进程与线程的概念、区别及其在Python中的实现。进程是操作系统资源分配的基本单位,每个进程拥有独立的内存空间;线程是程序执行的最小单位,共享进程资源但拥有独立执行栈。文章通过代码示例展示了Python中multiprocessing模块创建子进程,以及threading模块实现多线程的方法,重点讲解了进程锁(Lock)解决并发安全问题、守护进程特性以及线程计时器的应用。最后对比了两者的核心差异:进程是资源容器,线程是执行单元,前者稳定性高但开销大,后者轻量但需注意共享资源安全。

m0_74350616的博客 1204

线程和进程的区别与联系以及单线程多进程与单进程多线程的区别

线程和进程 概念 进程(process):是指具有已一定功能的独立程序,是系统资源分配的基本单位,在内存中有其完备的数据空间和代码空间,拥有完整的虚拟空间地址。一个进程所拥有的数据和变量只属于它自己。 线程(thread):是进程内相对独立的可执行单元,所以也被称为轻量进程(lightweight processes);是操作系统进行任务调度的基本单元。它与父进程的其它线程共享该进程所拥有的全部代...

VicterTian的博客 3419

linux进程与线程

创建完成后,通过特定的标识或条件,可以清晰地区分父子进程的代码逻辑,从而实现不同的功能和任务分配。以一个图形处理软件为例,一个进程中可能有多个线程,分别负责图像的读取、处理和显示,即使某个处理线程结束,只要其他线程仍在运行,进程就会继续存在。但此时,主线程的结束并不意味着整个进程的结束,只有当进程内的其他线程也都结束后,进程才会终止。在一个多线程程序中,各个线程的地位是平等的,它们按照操作系统的调度策略并发执行。线程的结束并不一定会导致所属进程的结束,只有当进程内的所有线程都结束时,进程才会真正终止。

lijiaweixx的博客 1243

【Linux 线程与进程】线程与进程技术基础

线程是CPU调度的最小单位,属于同一进程的线程共享进程的全局内存、文件描述符等资源,但拥有独立的栈和程序计数器。进程是操作系统资源分配的基本单位,每个进程拥有独立的虚拟地址空间、文件描述符、信号处理等资源。系统调用创建子进程,子进程复制父进程的资源(写时复制优化)。‌是经典的同步问题,通过互斥锁保护共享资源,条件变量实现线程间协调。‌:进程间资源隔离,崩溃不会直接影响其他进程46。‌:高效数据共享,需配合信号量同步。‌:结构化数据传输,支持多进程通信。‌:单向通信,适用于父子进程。回收资源,避免僵尸进程。

以实战经验介绍行业知识 1462

深入解析进程与线程:从原理到实践

本文深入解析了操作系统中的进程与线程概念。进程是资源分配的基本单位,拥有独立地址空间,安全性高但开销大;线程是调度的基本单位,共享进程资源,轻量级但独立性低。文章详细对比了两者在资源开销、通信机制、安全性等方面的差异,并提供了应用场景建议。此外,还介绍了进程管理相关命令(top/df)、并发与并行的区别、fork/vfork机制、僵尸/孤儿进程处理等核心知识点,为开发高性能应用提供了系统级的理论基础。

2301_78884150的博客 1469
上一篇: 内存溢出,内存泄露,内存越界,栈溢出
下一篇: JS实现GridView式的数据加载(带滚动条)
Monkey_Coder
博客等级 码龄11年 3粉丝 19原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值