进程是个啥

二、进程的具体构造(进程的特征与状态)

这节讲的内容会比较偏理论,没有那么多例子帮你理解了,所以可能会比较枯燥,请做好心理准备。

首先,我们来聊聊进程有啥特征。

1)结构特征;世上绝大多数的事物都是有结构的,比如人有骨架、血脉、肌肉等结构,一栋房子有墙面、屋顶等结构,是的,我们的主角也不例外,而它结构相对比较简单,你只要记住3方面就好了,一个是程序段,一个是相关数据段,最后一个是PCB(进程控制块),前两个比较好理解,我就不多说了,重点是在PCB这玩意。

什么是PCB呢?不知道你注意到没有,如果仅仅有程序段和相关数据段这两者加起来,那不就是一个程序吗?所以明白了吧,PCB就是系统用来管理进程的,PCB中记录了操作系统所需的、用于描述进程的当前情况以及控制进程运行的全部信息(包括进程标识符、处理机状态、进程调度信息、进程控制信息),不严格来说,其实它就是进程,我们说创建进程、撤销进程,说白了就是创建PCB、撤销PCB,怎样,它够屌吧。

这里我还要说一说PCB的组织方式,一个是链接方式,假设你现在在就绪队列中,而你身上带有另外一个小伙伴的号码,那么拥有那个号码的小伙伴,也就意味着他是就绪队里的人了;另一种是索引方式,也是说就绪队列有哪些人已经全部列在一个表里了,要的话自已去索引,也就是说你再也不用拿着小伙伴的号码了。

2)动态性;创建则有,撤销则无,这就是进程的动态性,也就说,进程不是永久就存在,你需要它时它就出现(当然你自己得把它叫(创建)出来),不需要它时,它就选择死亡(真是女生选男友的好标准啊),而程序就不同了,你编好了程序,除非你自己手抖把它删除了,不然程序就在那里,不离不弃,所以程序具有的是静态性,如果程序和进程一样有动态性的话,额,程序员就苦逼了。

3)并发性;又是并发,前面说那么多了,我就少打几个字吧,不过注意,进程的并发是和内存有莫大关系的,也就是说进程能在内存并发执行,而程序不可以。

4)独立性;指进程是一个能独立运行、独立分配资源和独立接受调度的基本单位,当然后来人们又发明了线程,不过这是后话了,这里不多讲,对线程感兴趣的自己可以去看看。

5)异步性;指进程按各自独立的、不可预知的速度向前推进,还记得我们上一小节的听歌和下电影的例子吗?也就是说,实际当中,可能并不是听歌-下电影-听歌-下电影这样同步执行的,而可能是听歌-听歌-下电影-下电影,这样异步执行的,不过不用当心你听歌时会断断续续,因为它们中间的间隔真的很短,而且我们还有另外的机制来保障这样的问题不会出现,我们后面会慢慢了解的。

以上就是进程的特征了,好了,说那么久,好像我们还没有给进程下一个定义呢,别急,下面就是进程的定义:

1)进程是程序的一次执行;这个好理解吧;

2)进程是一个程序及其数据局在处理机上顺序执行时所发生的活动;

3)进程是程序在一个数据集合上运行的过程,它是系统进行资源分配和调度的一个独立单位。

接下来,我要讲的是进程的三个基本状态,

1)就绪状态;顾名思义就是指进程该分配的资源分配了,一切准备就绪,就差获得CPU了;

2)执行状态;这个比就绪状态更容易理解,我就不多说了;

3)阻塞状态;正在执行的进程由于发生某事件而暂时无法执行时,便放弃处理机而处于暂停状态,把这种暂停状态称为阻塞状态;比如I/O请求,就是进程执行到一半时,忽然需要你从键盘输入一个数,它才能继续执行,而在你输入这个数前,进程就进入阻塞状态了,当事件结束(发生)后,也就是你输入完成后,进程就不必暂停了,于是重新变成就绪状态。

当然,除了以上3个基本状态外,进程还有挂起状态、创建状态、终止状态,后面两个状态比较容易理解,有兴趣的自己可以去查查看看,我最后讲一讲挂起。在挂起中,我们原来的阻塞状态和就绪状态被分为了:活动阻塞和静止阻塞、活动就绪和静止就绪,而从活动状态变成静止状态就是挂起了,详细的我就不在这里多说了,还是那句话有兴趣的自己可以去查查看看。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值