操作系统原理:程序、进程、线程的概念
文章目录
- 程序、进程、线程的概念
- 程序(Program)
- 进程(Process)
- 线程(Thread)
- 关系总结
在日常对操作系统的使用中,大家肯定对程序、进程和线程多少有所耳闻。作为操作系统的重要一部分,这三个的概念必须要清楚。今天我来简要总结一下,包括三者之间的关系。
程序、进程、线程的概念
程序(Program)
- 定义:程序是计算机指令的集合,用于指导计算机完成特定的任务或功能。程序以某种编程语言编写,并经过编译或解释后成为计算机可以直接执行的指令序列。
- 特点:程序是静态的,存储在计算机的存储介质(如硬盘)上,直到被加载到内存中并由操作系统执行。
进程(Process)
- 定义:进程是操作系统中资源分配的基本单位,是程序执行的实例。每个进程都有自己独立的内存空间、系统资源(如文件描述符)和一组系统调用。
- 简述:执行起来的代码,就是进程。
- 特点:
- 唯一性:每个进程都有一个唯一的标识符(PID),用于区分不同的进程。
- 动态性:进程是程序执行的动态过程,具有生命周期,包括创建、执行、等待和终止等状态。
- 独立性:进程之间相对独立,每个进程都有自己独立的地址空间和数据。
- 并发性:多个进程可以在操作系统中并发执行,提高系统的资源利用率和吞吐量。
线程(Thread)
- 定义:线程是进程中的一个实体,是CPU调度和分派的基本单位。线程是进程内的一个相对独立的执行流,可以共享进程的资源(如内存和文件描述符)。
- 简述:是进程的真正执行者
- 特点:
- 轻量级:线程比进程更轻量级,创建和切换的开销较小。
- 共享性:同一进程内的多个线程共享进程的地址空间和数据资源,便于数据共享和通信。
- 并发性:多线程可以在多核处理器上并行执行,提高程序的执行效率。
- 独立性:虽然线程共享进程的资源,但每个线程都有自己独立的执行栈和程序计数器。
关系总结
- 程序与进程:程序是静态的,进程是程序执行的动态过程。一个程序可以多次执行形成多个进程,每个进程都是程序的一个独立实例。
- 进程与线程:进程是资源分配的基本单位,线程是CPU调度的基本单位。一个进程可以包含多个线程,这些线程共享进程的资源并并发执行。

注:图片来源于网络,侵删。
相关文章:
操作系统原理:程序、进程、线程的概念
文章目录 程序、进程、线程的概念程序(Program)进程(Process)线程(Thread)关系总结 在日常对操作系统的使用中,大家肯定对程序、进程和线程多少有所耳闻。作为操作系统的重要一部分,…...
Golang是如何实现动态数组功能的?Slice切片原理解析
Hi 亲爱的朋友们,我是 k 哥。今天,咱们聊一聊Golang 切片。 当我们需要使用数组,但是又不能提前定义数组大小时,可以使用golang的动态数组结构,slice切片。在 Go 语言的众多特性里,slice 是我们经常用到的数…...
SQL注入 报错注入+附加拓展知识,一篇文章带你轻松入门
第5关--------------------------------------------> 前端直接不会显示账号密码的打印;但是在接收前端的数据的那部分后端那里,会看前端传递过来的值是否正确,如果不正确,后端接收值那里就会当MySQL语句执行错误,…...
springboot项目里的包spring-boot-dependencies依赖介绍
springboot项目里的包’spring-boot-dependencies‘依赖 我们一般是在项目的pom dependencyManagement标签里引入spring-boot-dependencies,或者根spring-boot-starter-parent里也是继承了它,也正是因为继承了这个依赖,所以我们在写依赖时才不需要写版本…...
C# 下的限定符运算详解(全部,任意,包含)与示例
文章目录 1.限定符概述2. 全部限定符运算(All)3. 任意限定符运算(Any)4. 包含限定符运算(Contains)总结 当我们在C#编程中需要进行条件判断或集合操作时,限定符(qualifiersÿ…...
消息队列RabbitMQ部分知识
1.简述RabbitMQ的架构设计 RabbitMQ 是一个开源的消息代理,采用了高级消息队列协议(AMQP),其架构设计主要包括以下几个关键组件和概念: 1.消息生产者( Producer): 负责发送消息到…...
看门狗应用编程-I.MX6U嵌入式Linux C应用编程学习笔记基于正点原子阿尔法开发板
看门狗应用编程 看门狗应用编程介绍 看门狗定时器的基本概念 看门狗是一个可以在一定时间内被复位/重置的计数器 如果在规定时间内没有复位,看门狗计时器溢出会对CPU产生复位信号使系统重启 有些看门狗可以只产生中断信号而不会使系统复位 I.MX6UL/I.MX6ULL So…...
Bug 解决 | 本地项目上线后出现错误
目录 一、前言 二、原因分析 1、本地代码误发线上 2、环境差异 3、配置差异 4、资源路径差异 5、API 接口差异 6、用量差异 一、前言 大家好,我是小洪爱分享。在开发上线项目的过程中,我们经常会遇到一种让人头疼的情况。那就是开发好的项目功能…...
为什么我工作 10 年后转行当程序员?逆袭翻盘!
今天文章的主人公暂且称他为 A 君。不过 A 君有点特别,非科班,工作 10 年后才转行 iOS 程序员。今年 36 岁,目前在某行业头部企业任职前端负责人,管理 40 人的前端团队。 废话不多说,我们开始 A 君(为了描…...
见证中国数据库的崛起:从追赶到引领的壮丽征程《四》
见证中国数据库的崛起:从追赶到引领的壮丽征程《四》 四、未来展望:中国数据库的机遇与挑战新技术带来的机遇全球化竞争的挑战数据安全与隐私保护的挑战人才培养的持续挑战 【纪录片】中国数据库前世今生 在数字化潮流席卷全球的今天,数据库作…...
OpenCV||超细节的基本操作
一、图像读取 retval cv2.imread(filename[, flags]) filename:需要读取的图片路径名,支持多种图片格式,如JPEG、PNG、TIFF等。flags:一个可选参数,指定加载图像的颜色类型。常用的值包括: cv2.IMGEAD_A…...
算法训练(leetcode)第三十八天 | 1143. 最长公共子序列、1035. 不相交的线、53. 最大子数组和、392. 判断子序列
刷题记录 *1143. 最长公共子序列1035. 不相交的线53. 最大子数组和392. 判断子序列 *1143. 最长公共子序列 leetcode题目地址 本题和718. 最长重复子数组相似,只是本题不要求连续,需要记录前面最长的子序列,在此基础上累计长度。 dp[i][j]…...
STM32——外部中断(EXTI)
目录 前言 一、外部中断基础知识 二、使用步骤 三、固件库实现 四、STM32CubeMX实现 总结 前言 外部中断(External Interrupt,简称EXTI)是微控制器用于响应外部事件的一种方式,当外部事件发生时(如按键按下、传感器信号…...
MySQL多实例部署
1、软件包下载 //环境:一台rocky Linux虚拟机,并且做好的基本配置及时钟同步,使用Xshell连接 [rootmysql ~]# yum -y install tar lrzsz libncurses* libaio perl//将包文件拖进去 [rootmysql ~]# rz -E rz waiting to receive. [rootmysql…...
云开发喝酒小程序3.6全新漂亮UI猜拳喝酒小程序 【已去除流量主】
云开发喝酒小程序3.6全新漂亮UI猜拳喝酒小程序 已去除流量主。UI特别漂亮,实属精品代码。 【已测】云开发喝酒小程序3.6漂亮UI猜拳喝酒小程序 已去除流量主。 云开发(serverless)小程序无需服务器,注册一个小程序就可以直接上线…...
图论进阶之路-最短路(Floyd)
时间复杂度:O(n^3) 使用场景:当需要得知任意两个点的最短距离以及其路径时使用 准备:需要两个矩阵 一个记录最短距离(D) 一个记录最短路径的最后一个结点(P) 其核心在于不断的判断越过中间…...
安装sqllab靶机之后,练习关卡报403 forbidden
解决办法: 在nginx的conf文件中添加上访问index.php vim /usr/local/nginx/conf/nginx.conf 保存退出 再重启一下nginx,就完成了。 ./nginx -s reload...
微信VX多开 免扫码 登录 互斥体 可视化 Exui v1.1 易语言源码附成品软件
UI设计: 1. EXUI界面库20240204 调用的模块: 1. wow64_hook_3.02.ec(压缩包内含) 2. 精易模块[v11.1.0].ec(自行下载) 更新日志: v1.1 2024年7月25日13:28:43 { 1. 有人反馈 设置了V…...
JavaEE 从入门到精通(一) ~ Maven
晚上好,愿这深深的夜色给你带来安宁,让温馨的夜晚抚平你一天的疲惫,美好的梦想在这个寂静的夜晚悄悄成长。 目录 前言 1.1 概念 什么是 Maven? Maven 的核心概念 1.2 maven依赖坐标 1.3 maven仓库 1.4 maven安装 1.5 mave…...
滚珠丝杆与丝杆支撑座:稳定性与精度的双重保障
丝杆支撑座是连接滚珠丝杆与电机的轴承,采用优质的轴承能确保支撑座与滚珠丝杆之间的刚性平衡。那么,滚珠丝杆搭连接杆支撑座有哪些优缺点呢? 正常情况下,丝杆支撑座能够提供稳定的支撑力,确保滚珠丝杆在复杂工况下保持…...
别再只用VSCode了!用ACEeditor在Vue/React项目中快速搭建一个在线代码编辑器
深度整合ACEeditor:现代前端框架中的高性能代码编辑器解决方案 在当今快速发展的前端开发生态中,代码编辑器的集成已成为许多应用的核心需求。无论是构建在线IDE、教学平台还是需要内嵌代码编辑功能的SaaS产品,开发者都面临着一个关键选择&am…...
GPU算力适配优化:Pixel Epic智识终端在A10/A100/V100上的部署差异
GPU算力适配优化:Pixel Epic智识终端在A10/A100/V100上的部署差异 1. 引言:当像素冒险遇上GPU算力 Pixel Epic智识终端作为一款融合游戏化体验与专业研究功能的创新工具,其核心的AgentCPM-Report大模型对GPU算力有着独特需求。不同型号的NV…...
VLA 在微调之后,能遗忘到什么程度?上交CVPR‘26的工作给出了答案
点击下方卡片,关注“自动驾驶之心”公众号 戳我-> 领取自动驾驶近30个方向学习路线 作者 | Runhao Mao等 编辑 | 自动驾驶之心 本文只做学术分享,如有侵权,联系删文 >>自动驾驶前沿信息获取→自动驾驶之心知识星球 当自动驾驶技术逐…...
MAA明日方舟智能助手:3步配置解放双手的自动化管理方案
MAA明日方舟智能助手:3步配置解放双手的自动化管理方案 【免费下载链接】MaaAssistantArknights 《明日方舟》小助手,全日常一键长草!| A one-click tool for the daily tasks of Arknights, supporting all clients. 项目地址: https://gi…...
Qwen3-VL-8B聊天系统实战场景:多模态AI助手在企业中的应用
Qwen3-VL-8B聊天系统实战场景:多模态AI助手在企业中的应用 1. 企业级多模态AI助手的核心价值 在数字化转型浪潮中,企业正面临信息处理效率与智能化服务的双重挑战。Qwen3-VL-8B聊天系统作为新一代多模态AI解决方案,通过融合视觉与语言理解能…...
从凯撒密码到AES:用Python手把手实现5种加密算法,理解它们的本质区别
从凯撒密码到AES:用Python手把手实现5种加密算法,理解它们的本质区别 加密技术就像数字世界的隐形护盾,从古罗马战场的密信到现代银行的在线交易,算法进化史就是一部人类与破解者斗智斗勇的编年史。今天我们将用Python这把"解…...
别再只盯着普通图了!用Python+NetworkX快速上手超图(Hypergraph)建模,搞定复杂关系分析
用PythonNetworkX解锁超图建模:从理论到复杂关系分析实战 第一次听说"超图"这个概念时,我正为一个电商推荐系统的项目头疼——传统的图结构无法准确表达用户同时浏览多个商品的行为模式。直到发现超图(Hypergraph)这种…...
从微调到部署:如何通过对话模板对齐确保vLLM与LLaMA-Factory的推理效果一致
1. 为什么你的微调模型在vLLM上效果变差了? 最近帮几个团队排查大模型部署问题,发现一个高频痛点:在LLaMA-Factory微调好的模型,用vLLM部署后生成质量明显下降。比如有个做客服机器人的团队,微调时回答准确率能达到92%…...
终极frpc-desktop版本发布checklist:确保质量的10个关键步骤
终极frpc-desktop版本发布checklist:确保质量的10个关键步骤 frpc-desktop是一款FRP跨平台桌面客户端,通过可视化配置帮助用户轻松实现内网穿透。本文将分享确保版本发布质量的10个关键步骤,帮助开发团队打造稳定可靠的桌面应用。 1. 版本号…...
保姆级教程:在Ubuntu 22.04上编译运行Vector XCPlite-5.3,并连接CANoe进行标定
从零构建汽车电子标定系统:Ubuntu 22.04下XCPlite-5.3与CANoe实战指南 当ECU开发进入功能验证阶段,标定工程师常面临这样的困境:如何在Linux环境中快速搭建符合ASAM XCP标准的标定系统?Vector开源的XCPlite-5.3解决方案恰好填补了…...
