大家好,欢迎来到IT知识分享网。
进程
在学习操作系统时,对于进程我们经常能看到如下几个定义:
- 一个正在执行的程序。
- 一个正在计算机上执行的程序实例。
- 能分配给处理器并由处理器执行的实体
- 由一组执行的指令,一个当前状态和一组相关的系统资源表征的活动单元。
以上定义都是很抽象的,将进程的概念总结如下。
进程是指一个具有一定独立功能的程序在一个数据集合上的一次动态执行过程。
所以我们可以把进程看作由一组元素组成的实体,其中两个基本元素时程序代码和与代码相关联的数据集。
假设处理器开始执行这个程序代码,我们就把这个实体叫做进程。
特点
动态性:可动态的创建进程,结束进程。
并发行:进程可以被独立调度并占有处理机运行。
独立性:不同进程的工作互相不影响
制约性:因访问共享数据/资源或进程间同步而产生制约。
进程与程序
联系
- 进程是操作系统处于执行状态程序的抽象
-程序=文件(静态的可执行文件)
-进程=执行中的程序=程序+执行状态 - 同一个程序的多次执行过程对应为不同进程
-例如:多次使用命令ls的执行对应多个进程。 - 进程执行需要的资源
-内存:保存代码和数据
-cpu:执行指令
区别:
- 进程是动态的,程序是静态的。
-程序是有序代码的集合
-进行时程序的执行,进程由和心态/用户态 - 进程是暂时的,程序是永久的。
-进程时一个状态变化的过程
-程序可长久保存 - 进程与程序的组成不同。
-进程的组成包括程序,数据,和进程控制块。
简单来说:我们写好的一个代码,要想让它运行起来,首先需要将这个程序加载到内存中,程序一旦运行那么就是一个进程,就需要给进程分配资源建立PCB等动作。说白了,程序只是一个躺在我们硬盘上的文本而已掉电不会没有,但是进程是在动态运行的一个实体,进程执行结束相关信息就会被释放了。
进程控制块
我们的系统当前运行了若干进程,那么操作系统是如何管理这些进程呢?
操作系统对这些进程只做两件事情:“描述”+“组织”。
描述:将进程描述出来,就需要描述出来当前进程的各种信息,我们的操作系统将这些各种信息放在一个结构体中,这个结构体就称为进程控制块。
组织:用我们所学过的数据结构的各种各样的数据结构知识将这些结构体组织起来,例如:双链表结构,索引表结构。
索引表:同一状态的进程归入一个索引表,多个状态对应多个不同的索引表。
链表:
同一状态的进程其PCB成一链表,多个状态对应多个不同的链表。
那么 进程控制块中具体有什么呢?
- 标识符:与进程相关的唯一标识符,用来区分其他进程。
- 状态:进程有不同的状态,例如运行,就绪,阻塞等。
- 优先级:为了给处理机调度提供支持,优先级用来区分各种进程的先后执行顺序
- 程序计数器:程序中即将执行的下一条指令的地址
- 内存指针:包括程序代码的进程相关数据的指针,以及与其他进程贡献那个内存块的指针。
- 上下文:进程是需要切换的,切换进程时需要保留进程的上下文信息,以防进程在切换时丢失现场数据。
- i/o状态信息:包括显示i/o请求,分配给进程的i/o设备和被进程使用的文件列表等。
- 记账信息:包括处理器时间总和,使用的时钟数总和,时间限制,记账号等。
进程控制块是操作系统为支持多进程并提供多重处理技术的关键。
进程有很多,但cpu只有一个,所有有时进程是需要切换的,PCB的作用可以使进程在恢复后,像从未中断过一样。
所以在许多操作系统书中经常会看到:PCB是进程存在的唯一标志
免责声明:本站所有文章内容,图片,视频等均是来源于用户投稿和互联网及文摘转载整编而成,不代表本站观点,不承担相关法律责任。其著作权各归其原作者或其出版社所有。如发现本站有涉嫌抄袭侵权/违法违规的内容,侵犯到您的权益,请在线联系站长,一经查实,本站将立刻删除。 本文来自网络,若有侵权,请联系删除,如若转载,请注明出处:https://yundeesoft.com/15768.html