
进程
文章平均质量分 91
详细介绍关于进程
千里镜宵烛
这个作者很懒,什么都没留下…
展开
专栏收录文章
- 默认排序
- 最新发布
- 最早发布
- 最多阅读
- 最少阅读
-
Linux--虚拟地址空间(一个故事理解)
本文深入解析了C语言程序中的虚拟地址空间布局及其管理机制。通过代码示例验证了程序运行时内存的五大分区:代码区(存储指令和常量)、数据区(全局/静态变量)、堆(动态分配内存)、栈(局部变量)以及命令行参数区。重点揭示了虚拟地址的本质——进程视角的地址与实际物理地址通过页表映射分离,解释了父子进程相同虚拟地址对应不同物理地址的现象。文章还通过"富豪与子女"的比喻生动说明了虚拟地址空间的工作原理,并详细介绍了Linux内核中mm_struct和vm_area_struct结构体的组织方式。最后原创 2025-06-13 00:37:00 · 591 阅读 · 0 评论 -
Linux--命令行参数和环境变量
摘要: 本文介绍了Linux命令行参数和环境变量的核心概念。命令行参数分为位置参数(无符号)和选项参数(-短选项/--长选项),并通过C语言示例展示了如何通过argc和argv获取参数。环境变量(如PATH、HOME)是系统级全局变量,用于配置运行环境,可通过echo、export等命令管理。重点解释了环境变量的继承机制:父进程(如bash)的环境变量表会传递给子进程,需用export设置全局变量。此外,程序可通过main的env参数、getenv()函数或全局变量environ获取环境变量。文中还探讨了P原创 2025-06-08 01:50:22 · 1079 阅读 · 0 评论 -
Linux--进程的调度
1.进程切换1.进程切换CPU上下⽂切换:其实际含义是任务切换, 或者CPU寄存器切换。当多任务内核决定运⾏另外的任务时, 它保存正在运⾏任务的当前状态, 也就是CPU寄存器中的全部内容。这些内容被保存在任务⾃⼰的堆栈中, ⼊栈⼯作完成后就把下⼀个将要运⾏的任务的当前状况从该任务的栈中重新装⼊CPU寄存器,并开始下⼀个任务的运⾏, 这⼀过程就是context switch。时间⽚:当代计算机都是分时操作系统,没有进程都有它合适的时间⽚(其实就是⼀个计数器)。原创 2025-06-07 01:26:47 · 648 阅读 · 0 评论 -
Linux--进程优先级
Linux进程优先级管理摘要:Linux系统中通过优先级(PRI)和nice值(NI)管理进程执行顺序。PRI越小优先级越高,NI作为修正值影响PRI(PRI(new)=80+NI),取值范围-20至19。用户可通过ps -l查看进程信息,使用renice或top命令调整NI值。系统支持多进程的竞争性(资源竞争)、独立性(互不干扰)、并行(多CPU同时运行)和并发(单CPU分时切换)特性。合理设置进程优先级和CPU绑定能显著提升系统性能。原创 2025-06-06 00:58:01 · 417 阅读 · 0 评论 -
Linux--进程概念
本文摘要:进程是程序的执行实例,由内核分配系统资源。Linux系统通过PCB(task_struct结构体)管理进程,包含标识符、状态、优先级、程序计数器等信息。用户可通过/proc系统文件夹或工具(top、ps)查看进程信息。系统调用getpid()和getppid()可获取进程ID及其父进程ID。fork()系统调用用于创建子进程,具有两个返回值:父进程获取子进程PID,子进程获取0,便于区分执行逻辑。fork采用写时拷贝技术,父子进程共享代码但数据独立。原创 2025-06-02 21:32:26 · 1302 阅读 · 1 评论 -
Linux--进程的程序替换
问题导入:前面我们知道了,fork之后,子进程会继承父进程的代码和“数据”(写实拷贝)。那么如果我们需要子进程完全去完成一个自己的程序怎么办呢?进程的程序替换来完成这个功能!原创 2025-06-04 02:12:43 · 898 阅读 · 0 评论 -
Linux--进程的状态
本文摘要:进程状态模型包含创建、就绪、运行、阻塞、结束等核心状态,其转换受时间片耗尽、I/O等待等条件触发。Linux通过进程控制块(task_struct)管理进程信息,使用运行队列组织就绪进程。当内存不足时,系统会挂起进程或使用swap机制。进程状态包括运行(R)、睡眠(S)、磁盘休眠(D)、停止(T)等,可通过ps命令查看。僵尸进程(Z)是子进程退出后未被父进程回收的状态,会造成内存泄漏;孤儿进程则由init进程自动回收。文章详细阐述了进程状态转换、管理机制及其在Linux中的具体实现。原创 2025-06-06 00:43:11 · 946 阅读 · 0 评论