程序怎样转成进程

      进程是一个正在执行的程序实例,每个进程都有自己的地址空间和执行状态。那么在什么情况下,程序会转化成进程呢?操作系统讲程序读入内存,为程序映射分配内存空间还不足以使之转化为进程。进程必须要有一个进程ID号,这样才能区分各个进程。进程状态指的是单个进程的执行状态。操作系统记录进程的ID号和相应的进程状态,并用这些信息来分配和管理系统资源。操作系统还要对进程占用的内存和可分配内存进行管理。

      当操作系统向内核数据结构中添加了适当的信息,并为运行程序代码分配了必要的资源之后,程序就变成了进程。进程拥有地址空间和至少一个被成为线程的控制流,进程的变量可以在进程的生命周期中始终存在(静态存储),也可以在执行进入一个程序时自动分配,离开这个程序块时将其释放。

所以综上所述怎样才算一个进程呢?

一个进程要包含三个要素:

1. 一个可执行的程序

2. 和该进程相关的所有数据(包括变量,内存空间,缓冲区等等)

3. 程序的执行上下文

 

那么又一个问题出来了,程序的执行上下文又是什么呢?

简单的来说,就是从一个进程切换到另一个进程的点就叫进程的上下文切换。具体的说,首先要明白操作系统对进程的管理是通过进程表完成的,进程表中每一个表项都表示该操作系统中的一个进程的信息。当某一进程的CPU时间已经用完,操作系统将该进程相关的寄存器的值,保存到该进程表中对应的表项里面。把要替换这进程的下一个进程的上下文,从进程表读出,并更新寄存器,这过程就叫做进程的上下文切换。换句话说就是,换出进程要保存寄存器的值,换入进程要根据本进程在进程表中的上下文信息来更新寄存器。

 

 

 

 

 

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值