操作系统:进程

进程

简单来说,进程就是运行的程序,有生命周期。

进程的API
  • Create: 创建进程
  • Destroy:结束进程
  • Wait:等待进程结束
  • Miscellaneous Control:挂起进程或者重启进程
  • Status:查看进程状态,运行时间,运行状态

创建进程的时候,操作系统需要完成下面几件事:

  1. 从disk将code和static data载入到memory中
  2. 为进程分配stack空间和heap空间
  3. 初始化其他资源,I/O
  4. 从main函数开始执行程序
进程状态
  • running(运行): 在处理器上运行
  • ready(就绪):进程准备好了,但处理器没有选择进程运行
  • Blocked(阻塞):请求其他资源,比如文件访问、I/O等

进程间状态切换

对于上图,可以总结出以下几条规律:

1.进程可以从running状态到ready状态,下CPU(时间片用完,或者被抢占)
2. 进程可以从ready状态到running状态,上CPU
3. 进程可以从running到达blocked状态,请求资源,例如I/O
4. 进程可以从blocked到ready状态,请求资源已就位

进程与操作系统交互

前面介绍了进程的一些概念,并且提到了在创建进程时,操作系统会做的一系列工作,那么我们从下图看看进程运行的整个生命期,操作系统参与了哪些环节:
进程运行过程

上图显示很简单,如果程序需要进行I/O操作呢,程序和操作系统的交互又会是怎么样呢?

主程序需要I/O操作

值得注意的是当程序在执行的时候,需要进行系统调用如I/O操作或者被系统中断时,程序会trapped into OS,在保存好进程的上下文环境之后,程序的执行权就交给了操作系统。此外,程序的主导权由进程变更到操作系统的时候,需要上下文切换,进程之间的切换也需要上下文切换。 简单点来说,上下文切换需要保存进程的的相关信息。

参考文献:

http://pages.cs.wisc.edu/~remzi/OSTEP/cpu-intro.pdf
http://pages.cs.wisc.edu/~remzi/OSTEP/cpu-api.pdf

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值