Linux 进程
文章平均质量分 80
逐步理解进程的概念
sblbsgqxx
这个作者很懒,什么都没留下…
展开
-
进程地址空间
根据前面的知识我们知道,父子进程是共享代码和数据,前面打印的结果也验证了这个道理,但当子进程对数据进行修改,那么会发生写时拷贝,这也是容易接受的,但是难以理解的是修改数据,发生拷贝之后,地址竟然是一样的?数据存在内存上,一个地址竟然有两个数据,所以可以判断打印出来的地址肯定不是物理内存上的地址,其实地址空间没那么神秘,一个进程有一个地址空间,如何管理呢?其实这不是真正的物理内存而是语言层面的叫做进程地址空间,下面来看一段代码验证这个说法。,子进程会继承父进程的进程地址空间和页表。原创 2024-02-08 11:59:19 · 338 阅读 · 0 评论 -
进程优先级、切换、调度
当多个进程等待访问资源,需要排队,所以。有优先级的原因就是资源狼多肉少。在linux中优先级的本质也就是task_struct中一个整型字段(PRI),默认值是80,并且范围是[60,99],规则是数字越小优先级越高。linux优先级允许被用户手动调整,但改变的不是PRI这个字段的值,这个是不允许改变的,改变的是task_struct中另一个整型字段(nice)。最后该进程的优先级通过这两个字段相加确定。原创 2024-02-06 17:55:59 · 857 阅读 · 0 评论 -
进程状态、排队
这里可能会有疑惑,为什么该段代码一直在死循环的运行,但状态还是Sleep呢?关键在于printf这个函数大部分时间还是处于一个等待硬件资源的过程中,所以很难查到运行状态,你以为printf执行的很快,但不要以自己的想法衡量CPU的速度。之前的文章我们有个结论,进程 = PCB + 可执行程序,那么进程排队是谁在排队呢?但和一般的双向链表的实现不一样,指向下一个task_struct的指针指的不是起始地址。,就像我们找工作,是简历排队。果然变成的运行状态,后面的加号是什么意思呢?,解决办法后面会介绍。原创 2024-02-05 22:46:05 · 1092 阅读 · 0 评论 -
进程的基本概念、查看、创建
我们在玩电脑的时候是可以启动多个程序的,比如边听歌边写博客,根据上篇文章我们知道肯定要将多个.exe文件加载到内存中,作为操作系统肯定是要管理这多个加载到内存的程序。如何管理呢?六个大字,先描述再组织。原创 2024-02-05 12:05:22 · 431 阅读 · 0 评论 -
理解进程的一些知识准备
计算机有很多的体系结构,但到如今,冯诺依曼体系结构变成了主流。输入设备:话筒、键盘、摄像头、鼠标、输出设备:声卡、显示器、打印机、。存储器就是内存。这里每个硬件都是的,所以一个电脑会对应着很多硬件的厂商。但是每个硬件需要通过主板总线起来,达到信息/数据在各个硬件设备之间流动()的目的。数据拷贝的整体速度决定着计算机的速率的重要指标。这里有个问题,存储器(内存)存在的意义是什么?我们直接将输入设备的数据交给CPU处理,然后再给输出设备不是更好吗?恰恰相反,内存的存在很有意义,。原创 2024-02-04 16:55:45 · 416 阅读 · 0 评论