linux之进程理解

1.进程的机械状态

        我们通常说,进程就是运行的程序。进一步进程,我们要先了解进程的机械状态。

        程序运行时,要执行指令。而指令在内存中,读取和更新的数据也在内存中,内存是进程的一个机械状态。

        程序运行时,还需要读取更新一些寄存器,寄存器也是进程的一个机械状态。(包括一些特殊的寄存器,例如PC程序计数器)

2.进程的运行状况

        进程有运行,就绪和阻塞状态。

        运行:在运行状态下,进程正在CPU上运行,也就是正在执行指令。

        就绪:在就绪状态下,进程已经准备开是运行,但是因为系统某种原因,不会在此时运行。

        阻塞:在阻塞状态下,进程因为某种条件缺失暂停运行,进程要等待其条件满足后才可以变成就绪态,准备运行。

        当进程从就绪变成运行时,叫做调度。当从运行状态变成就绪态,叫做取消调度。运行的程序因为某种情况,例如等待IO口数据,这时候进程就变成了阻塞态。这时他就会交出CPU控制权,这时其他就绪的进程就会开始运行。当阻塞的进程完成IO或者其他数据,就会从阻塞态变成就绪态。当运行的进程运行结束后,他就可以开始运行了。

3.程序如何启动

       1. 程序启动第一件事情就是从把代码和静态数据加载到内存中,加载到进程的地址空间中。

        2.然后系统会初始化一些堆栈和IO口,堆是一些未初始化的变量申请空间的地方,比如使用malloc()函数进行申请。栈是函数,函数参数,变量,返回地址存放的地方。

        系统完成1,2步操作后,程序运行的舞台就搭建完成,找到程序入口,main()函数,就开始运行程序。

4.进程信息保存

        系统中相应的数据结构会保存进程的重要信息,例如进程停止时,这些数据结构会保存进程的寄存器等,当把这些信息重新放回物理内存时,进程就又开始运行了。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值