形象理解进程

进程是个什么东西?

宏观角度:进程是对运行程序的描述,并将它组织到了一个结构体中,这个结构体就是进程控制块(pcb),在 linux 操作系统下叫 task_struct ,里面包含了程序的各种详细信息.

微观(内核)角度:担当分配系统资源(CPU,内存)的实体,是系统进行资源调度和分配的基本单位,实现了操作系统的并发.

时间角度:程序一般是以文件的形式储存在硬盘中,当这个程序被加载到内存中,就是进程.换句话说,程序是静态的,而进程是动态的.一个程序如果被多次执行,会产生不同的进程.

进程控制块是怎么描述进程的(pcb里面包含的主要信息)

(1) 进程标示符 用来标识一个进程,就像我们每个人的名字一样,进程总得也要有名字啊,目的是用来区分其他进程

(2) 进程状态 表示进程现在的状态,比如睡眠,运行,停止,死亡…在执行的过程中,又分为运行态,就绪态,阻塞态…

(3) 进程优先级,在系统中,不可能所有的进程一起加载到内存中去运行,一定要有顺序。就像地震一样,靠近门的学生先跑,然后依次到最后一个学生

(4) 上下文数据 保存进程中断前的信息,这个最好理解了,就比如你正在看我的博客,然后你女朋友打电话了,你肯定会接电话,这个时候,大脑就会记录你正在看第四条上下文数据,当和你女朋友说完话,就会接着看第五条内存指针.如果进程中没有这个功能,你就会忘记刚刚看哪了

(5) 内存指针 包括程序代码和进程相关数据的指针,比如,当前进程在内存的什么位置,我们把指向这块内存的指针包含在 pcb 中的内存指针里面.

(6)程序计数器 程序中即将被执行的下一条指令的地址,例如,我现在每敲一个字,下一个字就要在大脑中有记录,然后才能敲出来. 进程要执行起来,需要内存来保存代码和数据,也需要CPU执行相关指令.

(7) I/O状态信息 包括显示的I/O请求,进程被分配得到的I/O设备,打开的文件列表…等,比如一段代码是用来播放音乐的,那么就会使用在播放器设备上.

(8) 记账信息 ,这个进程使用CPU的时间和,时间片剩余量,进程已执行时间… 都包含在这里.例如,你看博客已经半个小时了,这个信息就保存你在大脑的记账信息中

进程描述完,又是如何被组织的呢?

通过队列或链表的数据结构,操作系统将同一个状态的进程调度到同一个链表中,不同状态的进程对应不同的链表,如下图
在这里插入图片描述
这样系统在调度的时候,就会很方便了.

进程的特点

(1) 动态性:进程一旦创建,会经历多种状态的转换.

(2) 并发性:多个进程实体在内存中可以同时运行

(3) 独立性:不同的进程工作起来不会互相影响

(4) 异步性:当访问共享数据资源时,进程间会产生同步制约

(5) 结构性:每个进程都有一个进程控制块描述,进程实体是由程序段,数据段和进程控制块三部分组成

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

程序猿的温柔香

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值