概述
文章目录
- 进程的概念
- 进程的定义、描述和分类
- 进程引入的原因
- 进程的定义
- 进程的特征
- 进程和程序的区别与联系
- 进程的分类
- 以进程的功能与服务的对象来分
- 以应用程序的服务类型来分
- 进程的基本状态及转换
- 进程的三种基本状态
- 进程基本状态的转换
- 进程阻塞步骤如下:
- 进程唤醒步骤如下:
- 创建状态和终止状态
- 创建状态:
- 终止状态
进程的概念
进程的定义、描述和分类
进程引入的原因
为了可以使程序能够并发执行,并且可以对并发执行的程序加以描述和控制,人们引入了进程这个概念。
进程的定义
- 进程控制块(PCB):为了可以使并发参与执行的每个程序(含数据)都能够独立运行,在操作系统中必须为之匹配一个专门的数据结构,我们称之为进程控制块(Process Control Block,PCB),系统利用PCB来描述进程的基本情况好活动过程。
- 进程实体 :由程序段,相关数据段和PCB三部分就组成了进程实体(进程映像),一般情况下,我们把进程实体简称为进程,例如,所谓创建进程就是创建进程实体中的PCB,而撤销进程就是撤销进程中实体的PCB。
- 进程:进程就是进程实体的运行过程,是系统进行资源分配和调度的一个独立单位。
进程的特征
-
动态性: 进程的实质是进程实体的执行过程,因此,动态性就是进程最基本的特征。动态性还体现在“它由创建而生,因调度而执行,因撤销而消亡”。可见。进场实体有一定的生命周期。
-
并发性: 是指多个进程实体同时存在于内存中,并能在一段时间内同时运行。引入进程的目的也就是为了进程实体可以与其他进程一起并发执行。因此并发性是进程一项很重要的特性。
-
独立性: 独立性是指进程实体是一个能够独立运行,独立活动资源的和独立结束调度的基本单位,每个进程都有"自己"(逻辑上的)的寄存器和内部状态。凡未建立建立PCB的程序都不能作为一个独立的单位参与运算。
-
异步性: 是指进程按异步方式运行,即各自独立,不可预知的速度向前推进。
-
结构性:进程拥有代码段、数据段、PCB(进程控制块,进程存在的唯一标志)。也正是因为有结构性,进程才可以做到独立地运行。
进程和程序的区别与联系
- 进程是程序的一次执行,属于动态概念,而程序是一组有序的指令,是一种静态概念。但进程离开了程序也就失去了存在的意义。
- 一个进程可以执行一个或几个程序。反之,同一程序可能由几个进程同时执行。
- 程序可作为软件资源长期保留,而进程是程序的一次执行过程,是暂时的。进程具有生命期。
- 进程具有并发性,能与其它进程并发运行。而程序不具备这种特征。
- 进程是一个独立的运行单位,也是系统进行资源分配和调度的一个独立单位。因此,进程具有独立性,但有时进程间又具有相互制约性
进程的分类
以进程的功能与服务的对象来分
两个方面
- 用户进程:通过执行用户程序、应用程序或称之为内核之外的系统程序而产生的进程,此类进程可以在用户的控制下运行或关闭。
- 系统进程:通过执行系统内核程序而产生的进程,比如可以执行内存资源分配和进程切换等相对底层的工作;而且该进程的运行不受用户的干预,即使是 root 用户也不能干预系统进程的运行。
以应用程序的服务类型来分
三个方面
- 交互进程:由一个 shell 终端启动的进程,在执行过程中,需要与用户进行交互操作,可以运行于前台,也可以运行在后台。
- 批处理进程:该进程是一个进程集合,负责按顺序启动其他的进程。
- 守护进程:守护进程是一直运行的一种进程,在 Linux 系统启动时启动,在系统关闭时终止。它们独立于控制终端并且周期性的执行某种任务或等待处理某些发生的事件。例如 httpd 进程,一直处于运行状态,等待用户的访问。还有经常用的 cron(在 centOS 系列为 crond)进程,这个进程为 crontab 的守护进程,可以周期性的执行用户设定的某些任务。
进程的基本状态及转换
进程的三种基本状态
-
就绪状态: 这是指进程以及具备运行的条件,只要再获得CPU,即可立即执行。如果系统中有多个处于就绪状态的进程,通常按照一定的策略将他们排成一个队列,即就绪队列。
-
执行状态: 进程独占这CPU,并且在CPU上运行。显然处于这种状态的进程数量<=CPU的数目。若只有一个CPU那么任何时刻最多只能有一个进程处于运行状态。
-
阻塞状态: 这是指正在执行的进程因为某些事件(如I/O请求等)暂时无法继续执行的状态。此时处理机分配给另一个就绪进程,让受阻进程暂停。同就绪队列,也存在一个阻塞队列。
进程基本状态的转换
运行可转化为阻塞、就绪。
阻塞可转化为就绪。
就绪可转化为运行。
进程阻塞步骤如下:
正在执行的进程发现上述某件事情时,由于无法继续运行,于是进程便通过调用阻塞原语block把自己阻塞,之后进程会停止执行,并将进程控制块的状态由执行改为阻塞,并将PCB插入阻塞队列,如果系统中设置了因不同事件而阻塞的多个阻塞队列,则应将本进程插入到具有相同事件的阻塞队列中,最后,转调度程序进行重新调度,将处理机分配给另一就绪进程并进行切换。即保留被阻塞进程的处理机状态到PCB中,再按新进程的PCB中的处理机状态设置CPU环境。
进程唤醒步骤如下:
当被阻塞进程所期待的时间出现时,如I/O完成获其所期待的数据已经到达,则由有关进程(如用完并释放I/O设备的进程)调用唤醒原语wakeup,将等待该事件的进程唤醒,首先将被阻塞的进程从等待该事件的阻塞队列中移出,将其PCB中的现行状态由阻塞改为就绪,然后再将该PCB插入到就绪队列中。值得注意的是,block原语与wakeup原因应该在不同进程中执行。
创建状态和终止状态
创建状态:
**引入目的:**保证进程的调度必须在创建工作完成后进行,确保进程控制操作的完整性,同时增加管理的灵活性。
**创建进程的步骤:**首先由进程申请一个空白PCB,并向PCB中填入用于控制和管理进程的信息,然后为该进程分配运行所必要的资源。最后把该进程转入就绪状态并插入就绪队列中。
**创建状态:**如果此时所需要的资源尚不能得到满足,此时创建工作尚未完成,进程不能被调度运行,于是将此时进程的状态称为创建状态。
终止状态
终止进程的步骤:首先等待操作系统进行善后处理,最后将其PCB清零,并将PCB返回空间。
终止状态:进程结束,或出现错误,或被系统终止,进入终止状态。无法再执行
最后
以上就是清爽服饰为你收集整理的操作系统-进程的描述进程的概念的全部内容,希望文章能够帮你解决操作系统-进程的描述进程的概念所遇到的程序开发问题。
如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。
发表评论 取消回复