linux5-多任务--进程fork()
一.多任务:让系统具备同时处理多个任务的能力
1.如何实现多任务
1.1进程:操作系统上正在运行的程序,需要消耗内存和CPU
1.1.1 进程的生存周期:创建、调度、消亡
1.1.1.1进程的创建:每个进程被创建时,操作系统会为该进程分配4G的虚拟内存空间。
1.1.1.2进程的调度:微观串行、宏观并行
cpu在调度时常用的调度算法:时间片轮转调度算法、高优先级优先算法、先来先服务后来后执行、短作业优先
进程的状态:三态图
1
linux进程七态图
1.运行态(用户运行态、内核运行态) R
正在执行,且被CPU任务调度所执行的进程
2.就绪态 R
正在执行,没有CPU任务调度执行的进程(只缺少cpu)
3.可唤醒等待态 S
也称为睡眠态,阻塞等待资源的进程
4.不可唤醒等待态 D
不想被CPU任务调度所打断的进程任务可以设置为不可唤醒等待态
5.暂停态 T
被暂停执行的进程
6.僵尸态Z进程执行结束,空间没有被回收
7.结束态 X
进程执行结束,空间被回收
1.1.1.3进程的消亡
提出进程
回收进程
1.1.2进程与程序的区别
进程 | 程序 | |
存储区域不同 | 内存 | 硬盘 |
状态不同 | 动态执行过程、短暂的 | 静态的数据集合、永恒的 |
关系 | 一个进程可以运行多个程序 | 程序运行可以产生多个进程 |
进程需要消耗CPU,进程间会资源竞争 |
1.1.3进程的常用命令
ps -aux:查看系统中所有进程的信息和状态
PID:进程的ID号 PPID:父进程的ID号
父进程:创建新进程的进程称父进程
子进程:创建出的新进程
操作系统运行时会打开一号进程,由一号打开2、3……进程
top:动态查看当前系统进程状态及CPU/内存占有率
ps -ef:查看进程状态信息和父子进程ID号
pstree:查看进程间的关系 pstree -p(关系族谱可带ID号) pstree -p id号(可查看某id的关系族谱图)
kill(给进程发送信号)
kill -l 查看kill相关命令的信号数
kill -信号编码 pid让某pid进程执行编码
ps -aux | grep a.out(组合命令)
|管道:将前面的输出作为后面的输入
grep(查找匹配)
jobs(查看后台进程编号)(当前终端)
fg(将后台编号将进程调到前台)
pid_t fork(void);
功能:通过拷贝父进程产生一个新的子进程
拷贝父进程0-3G的虚拟内存
内核中拷贝父进程的PCB块更新自己的PID号
父子进程用户空间互相独立,数据不独立
参数无
返回值:
成功:子进程的ID号返回给父进程、0返回给子进程
失败:-1返回父进程
当产生子进程后,根据FIFO调度算法,先执行父进程,由于内核的PCB保存了父进程的产生子进程的位置,继续向下执行。
fork()&&fork()||fork()为五个进程,要根据返回值查看,是否fork()
pid_t getpid() ;获取子进程ID
pid_t getppid(); 获取父进程ID
相关文章:
linux5-多任务--进程fork()
一.多任务:让系统具备同时处理多个任务的能力 1.如何实现多任务 1.1进程:操作系统上正在运行的程序,需要消耗内存和CPU 1.1.1 进程的生存周期:创建、调度、消亡 1.1.1.1进程的创建:每个进程被创建时,操作…...
【蓝桥】二分法
1、简介 1.1 定义: 通过将问题的搜索范围一分为二,迭代地缩小搜索范围,直到找到目标或确定目标不存在 1.2 适用: 有序数据集合,且每次迭代可以将搜索范围缩小一半 1.3 本质: 枚举:利用数据结构…...
linux查看程序占用的本地端口
ss是Socket Statistics的缩写,用来替代旧的netstat工具,功能更强大,执行更快。它用于查看系统的网络连接情况,包括TCP、UDP等协议的信息。 一. 命令解析: sudo ss -tulwnpss (Socket Statistics):替代 ne…...
统计函数运行时间的python脚本
这是一个统计函数运行时间的实用脚本,其中用到了函数的嵌套、链式传输参数,以及修饰器。 import time# 定义一个装饰器timer,用于计算被装饰函数的运行时间 def timer(func):print("执行了timer")def wrapper(*args, **kwargs):st…...
百度搜索和文心智能体接入DeepSeek满血版——AI搜索的新纪元
在当今数字化时代,搜索引擎作为互联网信息获取的核心工具,正经历着前所未有的变革。据悉,2025年2月16日,百度搜索和文心智能体平台宣布全面接入DeepSeek和文心大模型的最新深度搜索功能,搜索用户可免费使用DeepSeek和文…...
快速入门Springboot+vue——MybatisPlus快速上手
学习自哔哩哔哩上的“刘老师教编程”,具体学习的网站为:6.MybatisPlus快速上手_哔哩哔哩_bilibili,以下是看课后做的笔记,仅供参考。 第一节 ORM介绍 ORM对象关系映射,为了解决面向对象与关系数据库存在的互补匹配现象…...
在C#中动态访问对象属性时,用表达式树可以获得高效性能
在C#中如何用表达式树动态访问对象属性的问题。用户可能已经知道反射的基本用法,但想用表达式树来提高性能,因为表达式树编译后的委托执行速度比反射快。 首先,表达式树的基本概念。表达式树允许在运行时构建代码,并编译成可执行的…...
性能:React 实战优化技巧 之 函数闭包
子组件使用了 React.memo ,为什么 “prop 值未发生改变”,子组件依然被重新渲染了? 🚧 示例:点击子组件中按钮,获取 input 数据进行提交(常见于表单) index.tsx import Author f…...
蓝桥杯学习大纲
(致酷德与热爱算法、编程的小伙伴们) 在查阅了相当多的资料后,发现没有那篇博客、文章很符合我们备战蓝桥杯的学习路径。所以,干脆自己整理一篇,欢迎大家补充! 一、蓝桥必备高频考点 我们以此为重点学习…...
Windows11切换回Windows10风格右键菜单
参考文章:Win11新版右键菜单用不惯?一键切换回Win10经典版!-CSDN博客 以管理员权限运行命令行cmd 切换为经典旧版右键菜单,执行 reg.exe add “HKCU\Software\Classes\CLSID\{86ca1aa0-34aa-4e8b-a509-50c905bae2a2}\InprocServe…...
Python 爬虫selenium
1.selenium自动化 selenium可以操作浏览器,在浏览器页面上实现:点击、输入、滑动 等操作。 不同于selenium自动化,逆向本质是: 分析请求,例如:请求方法、请求参数、加密方式等。用代码模拟请求去实现同等…...
Linux常用操作
软件安装 CentOS系统使用: yum [install remove search] [-y] 软件名称 install 安装 remove 卸载 search 搜索 -y,自动确认 Ubuntu系统使用 apt [install remove search] [-y] 软件名称 install 安装 remove 卸载 search 搜索 -y,自动确认 yum 和 apt 均需要root权限 syste…...
Note25022001_Excel表格如何在文字的中间或者后边插入当前日期
Excel表格如何在文字的中间或者后边插入当前日期 关键字: EXCEL;当前日期;文字中间 如图所示: 其中一种实现方法如下: 打开表格,在某一个表格中输入: "项目计划管理表(厂内&…...
Django5 实用指南(四)URL路由与视图函数
4.1 Django5的URL路由系统 Django 的 URL 路由系统是其核心组件之一,它负责将用户的 HTTP 请求(即 URL)映射到相应的视图函数上。每当用户在浏览器中访问某个 URL 时,Django 会根据项目的 URL 配置文件(urls.py&#…...
Unity3D 基于 GPU 动画和 Compute Shader 的大批量动画渲染详解
引言 在现代游戏开发中,渲染大量动画角色是一个常见的需求,尤其是在大规模战斗场景、开放世界游戏或 VR/AR 应用中。传统的 CPU 动画计算和渲染方式在面对大批量角色时,往往会遇到性能瓶颈。为了优化性能,开发者可以利用 GPU 的强…...
遥感影像目标检测:从CNN(Faster-RCNN)到Transformer(DETR)
我国高分辨率对地观测系统重大专项已全面启动,高空间、高光谱、高时间分辨率和宽地面覆盖于一体的全球天空地一体化立体对地观测网逐步形成,将成为保障国家安全的基础性和战略性资源。未来10年全球每天获取的观测数据将超过10PB,遥感大数据时…...
什么是DeFi (去中心化金融)
DeFi (去中心化金融) 概述 💰 1. DeFi 基础概念 1.1 什么是 DeFi? DeFi 是建立在区块链上的金融服务生态系统,它: 无需中心化中介开放且透明无需许可即可参与代码即法律 1.2 DeFi 的优势 开放性:任何人都可以参与…...
深入解析 sudo -l 命令的输出内容
在 Linux 系统中,sudo 命令允许普通用户以超级用户(root)权限执行命令。sudo -l 命令用于查看当前用户在 sudoers 配置文件中的权限,以及与 sudo 相关的安全策略。本文将详细解析 sudo -l 输出的各个部分,包括 用户权限…...
DeepSeek 助力 Vue 开发:打造丝滑的瀑布流布局(Masonry Layout)
前言:哈喽,大家好,今天给大家分享一篇文章!并提供具体代码帮助大家深入理解,彻底掌握!创作不易,如果能帮助到大家或者给大家一些灵感和启发,欢迎收藏关注哦 💕 目录 Deep…...
linux学习【7】Sourc Insight 4.0设置+操作
目录 1.Source Insight是什么?2.需要哪些配置?3.怎么新建项目4.一些问题的解决1.中文乱码问题 按照这个设置就可以了,下面的设置会标明设置理由。 1.Source Insight是什么? 阅读源码,编辑源码,不能编译&am…...
OpenCV形态学操作
1.1. 形态学操作介绍 初识: 形态学操作是一种基于图像形状的处理方法,主要用于分析和处理图像中的几何结构。其核心是通过结构元素(卷积核)对图像进行扫描和操作,从而改变图像的形状和特征。例如: 腐蚀&…...
使用Python中的`gensim`库构建LDA(Latent Dirichlet Allocation)模型来分析收集到的评论
下面为你详细介绍如何使用Python中的gensim库构建LDA(Latent Dirichlet Allocation)模型来分析收集到的评论。LDA是一种主题模型,它可以将文档集合中的文本按照主题进行分类。 步骤概述 数据预处理:对收集到的评论进行清洗、分词…...
【STM32】外部时钟|红外反射光电开关
1.外部时钟 单片机如何对外部触发进行计数?先看一下内部时钟,内部时钟是接在APB1和APB2时钟线上的,APB1,APB2来自stm32单片机内部的脉冲信号,也叫内部时钟。我们用来定时。同样我们可以把外部的信号接入单片机,来对其…...
Visual Studio Code 集成 Baidu Comate
文章目录 安装Baidu Comate插件 安装Baidu Comate插件 从左主侧栏中 点击 【扩展】这个图标,然后在上方输入栏中输入 baidu comate —>选中列出的Bai Comate —>点击 【安装】按钮,等待安装完毕…...
数据结构者
数据(data):可被计算机接受处理的符号总称 数据元素(data element):数据的基本单位,常作为一个整体进行考虑和处理 一个数据元素可以由若干个数据项(data item)组成 数…...
论文阅读 DOES END-TO-END AUTONOMOUS DRIVING REALLY NEED PERCEPTION TASKS?
端到端的强势来袭,好久了~~~ 简单翻译:端到端真的需要感知任务嘛? code https://github.com/PeidongLi/SSR. https://arxiv.org/pdf/2409.18341 1. 摘要 端到端自动驾驶(E2EAD)方法通常依赖于监督式感知任务来提取显…...
总结UML类图几种关系画法
最近在公司需要画类图,有些遗忘,于是重新学习并并总结了一下: 继承:实线空心三角箭头。A继承B,A指向B。A是一种B。实现:虚线空心三角箭头。A实现B,A指向B。A实现B接口。关联:实线普…...
python-leetcode 40.二叉树的层序遍历
题目: 给定二叉树的根节点root,返回其节点值得层序遍历(即逐层从左到右访问所有节点) 方法:广度优先搜索 # Definition for a binary tree node. # class TreeNode(object): # def __init__(self, val0, leftNone, rightNon…...
安利:外文文献翻译插件
沉浸式翻译 好用吹爆!!!!!!!! 任务 2.谷歌学术 复制外文的标题搜索 3.进入文献所在,登录对应机构 4.可以看到都翻译好了 5.然后复制到文档,改改格式巴…...
Python——生成AIGC图像
文章目录 一、背景介绍 二、效果图展示 三、完整代码 四、分步解释 五、实用建议 1)提示词技巧 2)性能优化 3)常见问题处理 4)扩展功能建议 六、注意事项 1. 硬件要求 2. 法律合规 3. 模型安全 一、背景介绍 AIGC&a…...
OpenGL(2)基于Qt做OpenGL开发
文章目录 一、基于Qt做OpenGL开发1、环境准备2、创建OpenGL窗口3、绘制基本图形 一、基于Qt做OpenGL开发 1、环境准备 确保你已经安装了 Qt 开发环境(包含 Qt Creator),并且支持 OpenGL 开发。在创建 Qt 项目时,选择 “Qt Widget…...
【Windows软件 - HeidiSQL】导出数据库
HeidSQL导出数据库 软件信息 具体操作 示例文件 选项分析 选项(1) 结果(1) -- -------------------------------------------------------- -- 主机: 127.0.0.1 -- 服务器版本: …...
用deepseek学大模型04-模型可视化与数据可视化
deepseek.com: pytorch可视化工具 生成神经网络图 在 PyTorch 中,可视化神经网络结构的常用工具和方法有以下几种,以下将详细介绍它们的用法: 1. TensorBoard (PyTorch 官方集成) PyTorch 通过 torch.utils.tensorboard 支持 TensorBoard&a…...
rust笔记8-Deref与隐式解引用强制转换
Rust 的智能指针和 Deref Trait 是 Rust 中非常重要的概念,它们使得 Rust 的引用和指针操作更加灵活和安全。下面我们将深入介绍 Deref Trait、Deref 与 &、* 运算符的关系,以及 Rust 的隐式解引用强制转换(Deref Coercion)。 1. 智能指针与 Deref Trait 智能指针(如…...
Debian软件包重构
Explore projects GitLab 1. apt-get build-dep <pkg> ## 安装编译依赖包 2. apt source <pkg> ## 下载 <pkg> 包的源码 3. 创建 git ,打补丁 4. dpkg-buildpackage -b -uc -us -d ## 重新打包编译 # 解压出包中的文件到 extract 目…...
学习 `@PreDestroy`:Java EE/Jakarta EE 生命周期回调
学习 PreDestroy:Java EE/Jakarta EE 生命周期回调 前言1. 什么是 PreDestroy?2. PreDestroy 的用途3. 使用 PreDestroy 的条件4. 代码示例运行结果: 5. PreDestroy 的调用时机6. 注意事项7. 实际应用场景场景 1:数据库连接管理场…...
JDK最详细安装教程,零基础入门到精通,收藏这篇就够了
目录 一、下载与安装二、配置环境三、验证是否配置成功 一、下载与安装 1、下载地址 http://www.oracle.com/technetwork/java/javase/downloads/index.html 2、选择自己想要的版本下载,并且选择自己电脑对应的版本下载 3、下载完成之后,双击打开然后…...
解决DeepSeek服务器繁忙问题的实用指南
目录 简述 1. 关于服务器繁忙 1.1 服务器负载与资源限制 1.2 会话管理与连接机制 1.3 客户端配置与网络问题 2. 关于DeepSeek服务的备用选项 2.1 纳米AI搜索 2.2 硅基流动 2.3 秘塔AI搜索 2.4 字节跳动火山引擎 2.5 百度云千帆 2.6 英伟达NIM 2.7 Groq 2.8 Firew…...
【一个人的第一年】成都Java日志7
#海纳百川,有容乃大# 1.互联网 互联网是一个服务我的工具而不是绑架任何人的场所,网络不是现实,现实才是生活。 现在越来越多的声音出现在互联网,能轻易地挑起群体情绪。对其他的任何事可以有不同的立场和观点,而不是…...
回调处理器
文章目录 什么是回调处理器回调处理器的工作流程回调处理器的使用自定义链组件中的回调 内置回调处理器自定义回调处理器 在编程领域中,回调是一个非常重要的概念。简而言之,回调是一种特殊的函数或方法,它可以被传递给另一个函数作为参数&am…...
国产编辑器EverEdit -告别东找西找!一键打开当前文件所在目录!
1 文件操作 2 应用场景 在文件编辑过程中,有时需要对文件进行一些操作,比如:在命令窗口输入文件路径、文件名,进入到文件目录,对文件进行压缩等,如果没有直达命令,用户需要通过文件管理器找到目…...
23种设计模式 - 解释器模式
模式定义 解释器模式(Interpreter Pattern)是一种行为型设计模式,用于为特定语言(如数控系统的G代码)定义文法规则,并构建解释器来解析和执行该语言的语句。它通过将语法规则分解为多个类,实现…...
深度学习在语音识别中的应用
引言 语音识别技术是人工智能领域中的一个重要分支,它使得机器能够理解和转换人类的语音为文本。深度学习的出现极大地推动了语音识别技术的发展。本文将介绍如何使用深度学习构建一个基本的语音识别系统,并提供一个实践案例。 环境准备 在开始之前&a…...
【相聚青岛】人工智能与材料国际学术会议即将召开
一、大会简介 人工智能与材料国际会议(ICAIM 2025) 官方网站:www.ic-aim.net 官方邮箱:icaim2025163.com 会议时间:2025年3.21-24 会议地点:中国青岛 会议检索:EI检索 截稿时间:2月…...
PHP会务会议系统小程序源码
📅 会务会议系统 一款基于ThinkPHPUniapp框架,精心雕琢的会议管理微信小程序,专为各类高端会议场景量身打造。它犹如一把开启智慧殿堂的金钥匙,为会议流程优化、开支精细化管理、数量精准控制、标准严格设定以及供应商严格筛选等…...
能够私有化部署的集装箱箱号识别软件,技术实现方法
启智畅想集装箱箱号识别软件是一种基于计算机视觉和OCR(光学字符识别)技术的工具,主要用于自动识别集装箱上的唯一编号(如ISO6346标准的箱号,格式为4位字母7位数字1位校验码)。以下是关于此类软件的关键信息…...
idea连接gitee后.反向创建仓库和分支
文章目录 自动关联你登录的账号填写你的仓库和分支完成后会在gitee上创建一个仓库 (使用idea远程兼容gitee并反向创建仓库和分支) 自动关联你登录的账号 填写你的仓库和分支 完成后会在gitee上创建一个仓库...
Java——面向对象编程
面向对象编程(Object-Oriented Programming, OOP)是Java的核心特性之一。它通过将现实世界中的事物抽象为对象,使程序更易于理解、维护和扩展。以下是Java面向对象编程的详细介绍: 1. 面向对象编程的四大特性 Java的面向对象编程…...
MAC快速本地部署Deepseek (win也可以)
MAC快速本地部署Deepseek (win也可以) 下载安装ollama 地址: https://ollama.com/ Ollama 是一个开源的大型语言模型(LLM)本地运行框架,旨在简化大模型的部署和管理流程,使开发者、研究人员及爱好者能够高效地在本地环境中实验和…...
从猜想终结到算法革新,弹性哈希开启数据存储新篇章
目录 哈希表的前世今生基本原理从传统到现代:哈希表的演变历程 安德鲁 克拉皮文及其团队的创作历程弹性哈希详解基本原理优点技术细节 漏斗哈希解析基本原理优点技术细节 新算法的实际应用案例电子商务推荐系统金融交易监控系统社交媒体内容过滤物联网设备管理 结论…...