当前位置: 首页 > news >正文

Linux系统编程(进程1)

1.进程

进程是一个程序执行的过程,会去分配内存资源,cpu的资源。
PCB是一个结构体,process control block。系统用于描述正在运行的进程的相关(所有)信息。

pcb 中的内容 ,列出了一部分
PID,进程标识符
当前工作路径 chdir
umask 0002
进程打开的文件列表 文件IO中有提到
信号相关设置 处理异步io,
用户id,组id

进程的资源限制 。打开文件的个数1024 ,栈的大小8M

2.进程和程序的区别?


程序:静态
存储在硬盘中代码,数据的集合


进程:动态
程序执行的过程,包括进程的创建、调度、消亡
.c ----> a.out-----> process(pid)
1)程序是永存,进程是暂时的
2)进程有程序状态的变化,程序没有
3)进程可以并发,程序无并发
4)进程与进程会存在竞争计算机的资源
5)一个程序可以运行多次,变成多个进程一个进程可以运行一个或多个程序


虚拟内存,MMU(内存管理单元)
1.基于隔离性。在多进程中,a进程不能访问b进程的内存空间。
2.安全性(权限管理),linux也是运行在内存上的。所以需要通过权限控制,访问内核(linux系统)。不是任意随意访问内核。

进程的内存空间

进程分类:

1、交互式进程 进程运行后需要用户的输入,在给出对应的输出
2、批处理进程 shell脚本 批量执行命令
3、 守护进程 进程会自动运行,默认不需要输入,处于休眠状态。等到特定条件满足。自己开始运
行。(更新进程,杀毒软件)

作用:
并发。 在操作系统中,在一个时间段内同时运行多个任务的能力。

操作系统的进程状态切换图:

linux 的进程状态切换图

进程的调度:

因为在linux系统中,需要运行的任务(进程)有多个,每个都想运行。但是CPU,只有一个。所以就需要linux 合理安排下一时刻,那个进程运行。
常见调度算法: 时间片轮转 ,短任务优先,进程优先级。 完全公平调度算法(CFS)。
宏观并行,在一个时间段中,每个进程都在运行。

微观串行,在时间的某一刻, 只有一个进程在运行。
进程上下文切换 ,当a.out 的cpu的时间片耗尽是,就需要运行b。out。 a.out需要把自己的状态信息(pcb,硬件上一些寄存器,PC. 内存相关数据)缓存到硬盘上。当a.out把内存释放出来后,b.out就可以把自己前进缓存在硬盘的数据,读入内存。然后开始运行。

命令:
ps aux 显式所有的进程相关信息
top linux 中的任务管理器


kill 发信号
kill -9 pid 关闭指定pid的进程
killall -9 a.out 关闭多个a.out

http://www.rkmt.cn/news/111148.html

相关文章:

  • 基于协同过滤算法的动漫推荐系统源码 Java+SpringBoot+Vue3
  • 【高阶检索技术揭秘】:Dify算法选择的7个关键考量因素
  • 为什么你的视频帧检索越来越慢?Dify索引必须掌握的4项优化策略
  • App从点击流到会话流,不重构的情况下如何实现?3个实战场景解析
  • 超越传统PLM理念,定义行业新标准:全星研发项目管理APQP软件系统
  • 女性网安职场生存指南:从入门小白到安全领域领导力养成记
  • 全星研发项目管理软件系统:超越传统 PLM,赋能汽车部件与芯片半导体高标准研发
  • 《Ascend C 高级优化:GELU、LayerNorm 实现与算子融合实战》
  • 揭秘气象预测准确率提升秘诀:3种R语言模型对比分析全公开
  • 【企业级Docker Offload部署必读】:揭秘高并发场景下的云端资源热切换技术
  • OSPF综合实验
  • 极端天气频发,我们该如何应对?,基于R语言的气象归因分析全流程解析
  • 揭秘Dify并行执行机制:如何实现任务处理速度提升300%
  • (混合检索性能革命):Dify响应时间从3秒到200ms的实践路径
  • 打通 C++ 与 Node.js 的跨语言交互通道
  • SpringBoot新手入门:从0到1快速搭建Web应用
  • 从入门到精通:Docker MCP 网关负载均衡的7个核心技术点
  • [特殊字符] 用 PyTorch 打造「CNN-LSTM-Attention」股票预测神器!——从 0 到 1 的保姆级教程(附完整源码)
  • 数据科学与大数据技术毕业设计创新的选题怎么选
  • 细胞兼容性好的微载体品牌 赋能干细胞 3D 悬浮高效扩增
  • 仅限内部分享:资深专家解读Dify重排序日志的7种模式
  • 为什么你的检索效果总不理想?Dify 混合检索权重配置被忽视的3个关键点
  • 探索三阶传递函数的阶跃响应与专家PID控制
  • 通俗易懂讲线程--适合小白的零基础教程(面试版)
  • Rust Rocket Web 应用项目结构详解(MVC 风格)
  • 哈啰电动车大面积断网:2G退网冲击共享出行,IoT时代的“体面退场”之路!
  • 【R语言生态建模权威教程】:从零构建专业级环境监测模型
  • HTTP2推的是静态资源,SSE推的是数据 - jerry
  • 从权限绕过到零信任架构:重构Dify检索结果安全体系的4个关键步骤
  • 使用MBDVidia进行三维MBD模型管理:PMI自动检查与修复+质量检测信息整合与分析