进程概念1

1.什么是进程?
从书本上的哲学概念来解释进程就是正在运行的程序。从另一方面操作系统如何管理内存来解释,首先需要知道进程的描述。比如在学校,我们作为学生要被管理起来,首先需要被各种信息进行描述起来(学号、姓名、班级等等),描述学生的就相当于是结构体。同样进程需要被管理起来也需要先被描述起来,描述进程的结构叫做PCB,其中对于Linux中描述结构体的叫task_struct。对于task_struct,它描述进程包含三方面的东西:
(1)身份标识码(进程id):用来表示具体的哪个进程,同一台主机上的各个进程之间的进程id是不同的;
(2)内存指针:代码和代码依赖的数据,标明代码在内存的哪个地方;
(3)辅助操作系统进行进程调度的属性:
a.优先级,决定了进程被调度到CPU上执行的优先顺序;
b.上下文信息,保存了该进程上次在CPU内部执行的现场;
c.记账信息,决定进程什么时候需要占用CPU,什么时候需要放弃CPU,具体的量化指标就是记账信息。
对于上下文信息更加详细的解释:
CPU:一组寄存器(EAX,ESP,EBP,EIP)---->执行代码是在CPU中执行的,将内存中的代码取到CPU中进行执行,对于寄存器,它的访问速度最快但是空间小

              内存---->当CPU去执行其他的进程的时候,需要将当前进程的上下文信息(在CPU的一组寄存器中)拷贝到内存中,等到下次轮到该进程执行的时候就恢复原状态,可以接着上次执行的地方进行代码的执行。
2.对于shell、bash的理解
shell:媒婆---->操作系统与用户之间的桥梁
bash:王媒婆---->特定的指某个桥梁,即在Centos上用户与操作系统之间的桥梁。
3.进程的生命周期
首先我们需要从冯诺依曼体系结构来进行理解进程的生命周期。
比如我们执行一个./hello的代码
CPU(执行程序的)

内存(hello的代码和数据)----------------------------->当敲下./hello时就会将hello的东西对应的写(拷贝)到内存中

磁盘(hello(文件)可执行程序)--------------------->当把磁盘里的hello删除时,内存中的hello代码以及相关的数据仍然存在,所以进程不会消失(进程是在将东西写进内存时创建的)

猜你喜欢

转载自blog.csdn.net/ZhuiZhuDream5/article/details/83476339