操作系统(2.3)--进程的描述与控制

简介: 进程控制一般是由OS的内核中的原语来实现的。原语是由若干条指令组成的,用于完成一定功能的一一个过程。.它与一般过程的区别在于:它们是“原子操作”,原子操作,是指一个操作中的所有动作要么全做,要么全不做。换言之,它是一个不可分割的基本单位,因此,在执行过程中不允许被中断。

目录


三、进程控制


1.操作系统内核


2.进程的创建


2.1进程的层次结构


2.2进程图


2.3引起创建进程的事件


2.4 进程的创建


3.进程的控制


3.1引起进程终止的事件


3.2进程的终止过程


4.进程的阻塞与唤醒


4.1引起进程阻塞和唤醒的事件


4.2 进程阻塞过程(阻塞原语block)


4.3 进程唤醒过程(唤醒原语wakeup)


5.进程的挂起与激活


5.1进程的挂起


5.2进程的激活过程


6.附


三、进程控制

进程控制是进程管理中最基本的功能,主要包括创建新进程、终止已完成的进程、将因发生异常情况而无法继续运行的进程置于阻塞状态、负责进程运行中的状态转换等功能。


进程控制一般是由OS的内核中的原语来实现的。

原语是由若干条指令组成的,用于完成一定功能的一一个过程。.它与一般过程的区别在于:它们是“原子操作”,原子操作,是指一个操作中的所有动作要么全做,要么全不做。换言之,它是一个不可分割的基本单位,因此,在执行过程中不允许被中断。


1.操作系统内核

处理机执行状态:


①系统态(管态) ;


②用户态(目态)

0S内核包含的功能:

1.支撑功能

(1)中断处理;


(2)时钟管理;


(3)原语操作

原语是由若干条指令组成的,用于完成一定功能的一个过程。它与一般过程的区别在于:它们是“原子操作”。原子操作,是指一个操作中的所有动作要么全做,要么全不做。

2.资源管理功能

(1)进程管理;


(2)存储器管理;


(3)设备管理


2.进程的创建

2.1进程的层次结构

父进程、子进程、孙进程的概念


在0S中,允许一个进程创建另一个进程,通常把创建进程的进程称为父进程,被创建的进程称为子进程。子进程可继续创建更多的孙进程。

子进程可以继承父进程所拥有的资源。


2.2进程图

进程图是用于描述一个进程的家族关系的有向树,如图所示。图中的结点(圆圈)代表进程。在进程D创建了进程I之后,称D是I的父进程,I是D的子进程。创建父进程的进程称为祖先进程,树的根节点是祖先。


f75c4be330f8cb0dabb491ad582241ff_d97785c7f1624ff69f884c5a438ee627.png

2.3引起创建进程的事件

导致一个进程去创建另一个进程的典型事件,有以下四类:

(1)用户登录。在分时系统中,用户在终端键入登录命令后,如果是合法用户,系统将为该终端建立一个进程,并把它插入就绪队列中。

(2)作业调度。在批处理系统中,当作业调度程序按一定.的算法调度到某作业时,便将该作业装入内存,为它分配必要的资源,并立即为它创建进程,再插入就绪队列中。

(3)提供服务。当运行中的用户程序提出某种请求后,系.统将专门创建-一个进程来提供用户所需要的服务。

(4) 应用请求。基于应用进程的需求,由它自己创建一个新进程,以便使新进程以并发运行方式完成特定任务。


2.4 进程的创建

一旦操作系统发现了要求创建新进程的事件后,便调用进程创建原语Creat()按下述步骤创建-一个新进程。

(1)申请空白PCB。为新进程申请获得惟--的数字标识符,并从PCB集合中索取一个空白PCB。

(2)为新进程分配资源。如内存、文件、I/0设备和CPU时间等。

(3)初始化进程控制块。PCB的初始化包括:①初始化标识信息;②初始化处理机状态信息;③初始化处理机控制信息。

(4)将新进程插入就绪队列,如果进程就绪队列能够接纳新进程,便将新进程插入就绪队列。


3.进程的控制

3.1引起进程终止的事件

1)正常结束

在任何计算机系统中,都应有一个用于表示进程已经运行完成的指示。

2)异常结束

在进程运行期间,由于出现某些错误和故障而迫使进程终止。这类异常事件很多,常见的有下述几种:

(1)越界错误; (2)保护错; (3)非法指令; (4)特权指令错;


(5) 运行超时; (6) 等待超时; (7) 算术运算错; (8) I/0故障


3)外界干预

这些干预有:

①操作员或操作系统干预;

②父进程请求;

③父进程终止。


3.2进程的终止过程

(1)根据被终止进程的标识符,从PCB集合中检索出该进程的PCB,从中读出该进程的状态。

(2)若被终止进程正处于执行状态,应立即终止该进程的执行,并置调度标志为真,用于指示该进程被终止后应重新进行调度。

(3)若该进程还有子孙进程,还应将其所有子孙进程予以终止,以防它们成为不可控的进程。

(4)将被终止进程所拥有的全部资源,或者归还给其父进程,或者归还给系统。

(5)将被终止进程(PCB)从所在队列(或链表)中移出,等待其他程序来搜集信息

4.进程的阻塞与唤醒

4.1引起进程阻塞和唤醒的事件

有下述几类事件会引起进程阻塞或被唤醒:


向系统请求共享资源失败

等待某种操作完成

新数据尚未到达.

等待新任务的到达

4.2 进程阻塞过程(阻塞原语block)

调用阻塞原语block将自己阻塞:


(1)若运行,停止;

(2)修改进程控制块中的状态:从执行到阻塞;

(3)插入阻塞队列;

(4)调度程序进行进程切换,保留被阻塞进程的处理机.状态;

4.3 进程唤醒过程(唤醒原语wakeup)

调用唤醒原语wakeup,将等待该事件的进程唤醒:

(1)从阻塞队列中移出;

(2)修改进程控制块中的状态:从阻塞到就绪;

(3)插入到就绪队列;


5.进程的挂起与激活

5.1进程的挂起

当系统中出现了引起进程挂起的事件时,OS将利用挂起原语suspend将指定进程或处于阻塞状态的进程挂起。


suspend 的执行过程是:


首先检查被挂起进程的状态,若处于活动就绪状态,便将其改为静止就绪:对于活动阻塞状态的进程,则将之改为静止阻塞:为了方便用户或父进程考查该进程的运行情况,而把该进程的PCB复制到某指定的内存区域;


最后,若被挂起的进程正在执行,则转向调度程序重新调度。


5.2进程的激活过程

当系统中发生激活进程的事件时,OS 将利用激活原语active,将指定进程激活。


激活原语先将进程从外存调入内存,检查该进程的现行状态,若是静止就绪,便将之改为活动就绪;若为静止阻塞,便将之改为活动阻塞。


假如采用的是抢占调度策略,则每当有静止就绪进程被激活而插入就绪队列时,便应检查是否要进行重新调度,即由调度程序将被激活的进程与当前进程两者的优先级进行比较,如果被激活进程的优先级低,就不必重新调度;否则,立即剥夺当前进程的运行,把处理机分配给刚刚被激活的进程。


6.附

54ba6c37ed5cdb03ef8f3e01d2d26ff8_ad2090f5ac5f409db9587521eecc85fc.png

创建原语的流程图

279cc746db57a5a216a9c96620d39730_3301210192874aa3b7ba6539aaad6e54.png

撤销原语流程图

目录
相关文章
|
2天前
|
算法 Linux 调度
深入理解操作系统:进程管理与调度策略
【5月更文挑战第10天】 本文将深入探讨操作系统的核心机制之一:进程管理。我们将从进程的概念入手,解析其生命周期,进而展开对操作系统中进程调度策略的详细讨论。文中不仅涉及理论分析,还结合了现代操作系统如Linux的实际案例,以期提供一个全面而深刻的视角。通过阅读本文,读者将对操作系统如何高效地管理计算资源有更深层次的理解。
|
5天前
|
算法 调度 UED
深入理解操作系统的进程调度策略
【5月更文挑战第7天】 在现代计算机系统中,操作系统的核心职责之一是确保CPU资源的有效分配与利用。本文旨在探讨操作系统中的进程调度策略,并分析其对系统性能的影响。我们将从调度的基本概念出发,介绍几种常见的调度算法,如先来先服务、短作业优先和轮转调度等,并对它们的优缺点进行比较。此外,文章还将讨论多级反馈队列调度策略,它结合了多种调度方法的优点,以适应不同类型的工作负载。通过深入分析,本文旨在为读者提供一个清晰的框架,以理解操作系统如何管理并发执行的多个进程,以及这些管理策略如何影响系统的整体效率和响应性。
|
6天前
|
算法 调度
深入理解操作系统:进程管理与调度策略
【5月更文挑战第5天】 在现代计算机系统中,操作系统的核心职能之一是高效地管理计算机资源,尤其是处理多个并发运行的程序(进程)。本文将探讨操作系统中的进程管理机制,重点分析不同的进程调度策略及其对系统性能的影响。我们将从理论和实践的角度出发,比较各种调度算法的优劣,并提出在特定场景下如何选择最合适的调度策略。通过深入剖析进程调度的原理和实现细节,旨在为读者提供全面而深刻的认知框架,以便于更好地理解和优化操作系统的性能。
|
8天前
|
算法 调度 云计算
深入理解操作系统:进程管理与调度策略
【5月更文挑战第4天】本文将深入探讨操作系统中的关键组成部分——进程管理,以及如何通过有效的进程调度策略提升系统性能。我们将剖析进程的概念、状态转换和控制,并详细分析不同的进程调度算法,如先来先服务(FCFS)、短作业优先(SJF)和多级反馈队列(MLFQ)。文章旨在为读者提供一个清晰的框架,以理解操作系统如何处理并发任务,保证系统资源的有效利用和响应性。
|
10天前
|
负载均衡 算法 调度
深入理解操作系统:进程管理与调度策略
【5月更文挑战第2天】 在现代计算环境中,操作系统的核心职能之一是确保系统资源的高效利用和任务的顺畅执行。本文将探讨操作系统中的关键组件——进程管理及其调度策略。通过对进程的概念、生命周期以及调度算法的详细分析,我们旨在揭示操作系统如何协调多个运行中的程序,以实现快速响应和资源优化。文章还将讨论不同类型操作系统(如实时操作系统和通用操作系统)中进程调度策略的差异性及其对系统性能的影响。通过理论与实践相结合的方式,本文为读者提供了一个全面了解操作系统进程管理的平台。
|
10天前
|
负载均衡 算法 大数据
深入理解操作系统:进程管理和调度策略
【5月更文挑战第1天】 在现代操作系统的核心功能中,进程管理与调度策略是确保系统高效、稳定运行的关键。本文旨在深入剖析操作系统中的进程概念、进程状态转换以及进程调度机制。通过对先进先出、最短作业优先和时间片轮转等调度算法的比较分析,我们不仅揭示了它们在资源分配和任务执行中的应用,还讨论了它们在不同场景下的表现和局限性。此外,文章还将探讨多核处理器环境下的调度策略演变,以及未来操作系统在进程管理方面可能面临的挑战。
|
11天前
|
算法 调度
深入理解操作系统中的进程调度策略
【5月更文挑战第1天】在多任务操作系统中,进程调度策略是决定系统性能和响应能力的关键因素。本文将详细探讨现代操作系统中常见的进程调度算法——从简单的先来先服务(FCFS)到复杂的多级反馈队列(MLFQ),以及实时系统中的立即模式和时间片轮转(RR)。我们将分析每种调度策略的工作原理、优势、局限性以及它们如何影响操作系统的整体表现。通过比较不同策略在各种负载场景下的表现,读者将能更好地理解如何为特定应用选择最合适的调度策略。
|
11天前
|
Java 调度 开发者
构建高效微服务架构:后端开发的新趋势深入理解操作系统之进程调度策略
【4月更文挑战第30天】 随着企业数字化转型的不断深入,传统的单体应用逐渐不能满足快速迭代和灵活部署的需求。微服务架构以其高度模块化、独立部署和易于扩展的特性,成为现代后端开发的重要趋势。本文将探讨如何构建一个高效的微服务架构,包括关键的设计原则、技术选型以及可能面临的挑战。
|
11天前
|
安全 算法 网络安全
构筑网络长城:网络安全漏洞解析与防御策略深入理解操作系统:进程管理与调度策略
【4月更文挑战第30天】 在数字化时代,网络安全已成为维护信息完整性、确保数据流通安全和保障用户隐私的关键。本文将深入探讨网络安全的核心问题——安全漏洞,并分享关于加密技术的最新进展以及提升个人和企业安全意识的有效方法。通过对常见网络威胁的剖析,我们旨在提供一套综合性的网络防御策略,以助力读者构建更为坚固的信息安全防线。 【4月更文挑战第30天】 在现代操作系统的核心,进程管理是维持多任务环境稳定的关键。本文将深入探讨操作系统中的进程概念、进程状态转换及进程调度策略。通过分析不同的调度算法,我们将了解操作系统如何平衡各进程的执行,确保系统资源的高效利用和响应时间的最优化。文中不仅剖析了先来先
|
1月前
|
监控 Unix Linux
Linux操作系统调优相关工具(四)查看Network运行状态 和系统整体运行状态
Linux操作系统调优相关工具(四)查看Network运行状态 和系统整体运行状态
34 0