进程管理和处理器调度详稿(10学时)
- 格式:doc
- 大小:436.50 KB
- 文档页数:43
计算机操作系统的进程管理与调度计算机操作系统是一种控制计算机硬件和软件资源,并协调计算机各个部分工作的软件系统。
作为操作系统的核心功能之一,进程管理与调度起着至关重要的作用。
本文将就计算机操作系统的进程管理与调度进行探讨。
一、进程管理进程是指计算机中正在执行的程序,它具有程序计数器、寄存器集合、内存空间和相关资源的集合。
进程管理是指操作系统对进程进行创建、撤销、调度、通信和同步的管理工作。
1. 进程创建进程创建是指操作系统根据用户的请求或系统的需求创建新的进程。
在创建新进程时,操作系统会分配一块内存空间,为进程分配所需的资源,如打开文件、使用设备等。
2. 进程撤销进程撤销是指操作系统根据某些条件或用户的请求终止正在运行的进程。
撤销进程时,操作系统会释放该进程占用的资源,如内存空间、打开的文件等。
3. 进程通信进程通信是指操作系统提供的用于进程间相互交换数据和信息的机制。
常见的进程通信方式有共享内存、消息传递、管道等,通过这些方式,进程可以实现数据共享和协作工作。
4. 进程同步进程同步是指操作系统通过提供同步机制,确保多个进程按照既定的顺序执行。
常见的进程同步机制有信号量、互斥锁、条件变量等,通过这些机制,进程可以实现数据的安全访问和资源的互斥使用。
二、进程调度进程调度是指操作系统根据一定的策略和算法,从可运行的进程中选择一个或多个进程分配处理器资源,使其能够顺利执行。
进程调度旨在提高系统的吞吐量和资源利用率。
1. 调度策略调度策略是指操作系统根据系统的特点和需求,制定的调度算法。
常见的调度策略有先来先服务(FCFS)、短作业优先(SJF)、优先级调度、时间片轮转等。
2. 调度算法调度算法是指操作系统根据调度策略所采用的具体算法。
不同的调度算法有不同的运行效果和实现复杂度。
常见的调度算法有最高优先级优先(HPF)、最短剩余时间优先(SRTF)、最短作业优先(SJF)等。
3. 多级反馈队列调度多级反馈队列调度是一种常用的进程调度算法,它将可运行的进程队列划分为多个等级,并为每个等级分配不同的时间片。
计算机操作系统中的进程管理和调度算法计算机操作系统是一种协调管理计算机硬件和软件资源的系统软件。
作为操作系统的核心功能之一,进程管理和调度算法对于计算机的性能和效率起着至关重要的作用。
本文将探讨计算机操作系统中的进程管理和调度算法,以及它们在操作系统中的应用。
一、进程管理在计算机操作系统中,进程是指正在运行的程序的实例。
进程管理是指操作系统对进程的创建、执行、调度和终止进行管理和控制的过程。
进程管理的目标是保证系统资源的高效利用、提高系统的吞吐量和响应速度。
1.1 进程创建在操作系统中,进程通过创建而产生。
进程创建的过程包括分配内存空间、初始化进程控制块(PCB)和其他必要的数据结构等步骤。
操作系统为每个新创建的进程分配唯一的进程标识符(PID)来进行标识和管理。
1.2 进程执行进程执行是指操作系统将进程从就绪状态转变为运行状态,使其在处理器上执行指令和进行计算。
操作系统通过进程调度算法来决定哪个进程可以获取处理器的使用权。
1.3 进程调度进程调度是指操作系统根据一定的策略和算法决定哪些进程可以执行,并安排它们使用处理器的时间。
进程调度算法的选择对于系统的性能和响应时间有重要影响。
1.4 进程终止进程终止是指进程完成了任务或遇到了错误,需要退出执行的过程。
操作系统负责回收进程所占用的资源,包括内存空间、打开文件等。
二、调度算法调度算法是指操作系统用来决定进程调度顺序的方法和策略。
不同的调度算法会导致不同的进程响应时间、吞吐量和公平性。
2.1 先来先服务(FCFS)先来先服务是最简单的调度算法之一。
按照进程到达的顺序,操作系统依次将进程分配给处理器。
这种调度算法可能会导致长作业等待时间过长,造成资源浪费。
2.2 短作业优先(SJF)短作业优先调度算法通过预测进程的执行时间,将最短的作业先分配给处理器。
这种算法能够最大程度地减少平均等待时间和响应时间,但对于长作业来说可能会导致饥饿。
2.3 优先级调度优先级调度算法根据进程的优先级来决定调度顺序。
如何进行操作系统调度和进程管理操作系统调度和进程管理是操作系统中非常重要的功能,它负责管理系统中的进程、资源分配和进程间的调度。
本文将详细介绍操作系统调度和进程管理的相关概念、原理和实践方法。
一、进程和线程的概念1.1进程:进程是程序的一次执行过程,是程序在计算机中的一次执行活动,它是程序在执行过程中分配和管理资源的基本单位。
每个进程都有自己的地址空间、堆栈、数据区等资源,进程之间彼此独立,互不干扰。
1.2线程:线程是进程中的一条执行路径,是进程的实体,每个进程可以包含多个线程。
线程共享相同的地址空间和其他资源,可以很方便地进行通信和数据交换。
二、进程管理2.1进程的状态:在操作系统中,进程可以处于运行状态、就绪状态和阻塞状态。
运行状态表示进程正在执行,就绪状态表示进程已经准备好执行,阻塞状态表示进程由于某种原因暂时无法执行。
2.2进程的创建和终止:进程的创建可以通过程序的加载、复制已有进程等方式实现,而进程的终止可以通过调用exit()系统调用、异常终止等方式实现。
2.3进程控制块(PCB):PCB是操作系统中用于保存和管理进程信息的数据结构,包括进程的状态、优先级、资源需求等信息。
PCB可以帮助操作系统对进程进行管理和调度。
2.4进程同步和通信:在多进程环境下,进程之间需要进行同步和通信以确保数据的一致性和正确性。
操作系统提供了多种机制来实现进程之间的同步和通信,比如信号量、互斥锁、消息队列等。
三、进程调度3.1进程调度的目的:进程调度的主要目的是提高系统的资源利用率和响应速度,保证系统的稳定性和性能。
通过合理的调度算法,可以实现进程之间的公平调度,并且避免进程死锁、饥饿等问题。
3.2调度算法:常见的调度算法包括先来先服务(FCFS)、短作业优先(SJF)、时间片轮转(RR)等。
不同的调度算法适用于不同的场景,可以根据系统的特点和需求选择合适的算法。
3.3进程优先级调度:进程可以设置不同的优先级,高优先级的进程会得到更多的CPU 时间片,保证系统的响应速度和性能。
操作系统的进程管理与调度策略进程是操作系统中最基本的执行单元,它代表了正在运行的程序。
操作系统通过进程管理和调度策略来有效地分配和利用计算机资源,以提高系统的性能和响应时间。
本文将探讨操作系统的进程管理和调度策略。
一、进程管理进程管理是操作系统的核心功能之一,它包括进程的创建、撤销、挂起、恢复等操作。
下面我们将分别介绍这些操作。
1. 进程的创建进程的创建是指操作系统通过某些手段来启动一个新的进程。
常见的创建进程的方式有两种:一是通过执行应用程序,二是通过现有进程创建子进程。
无论哪种方式,都需要为新的进程分配资源和初始化进程控制块。
2. 进程的撤销进程的撤销是指将进程从系统中完全移除,释放其占用的资源。
进程的撤销可以是主动的,即用户主动终止进程的执行;也可以是被动的,即由操作系统通过一定的策略来终止进程。
3. 进程的挂起和恢复进程的挂起是指将进程从运行状态转变为暂停状态,暂停期间进程无法继续执行,但仍保留在内存中等待被恢复。
进程的恢复则是将挂起的进程重新转变为可执行状态,继续执行。
二、调度策略调度策略是操作系统用于决定哪个进程可以获得资源,以及在何时获得资源的一种规则或算法。
调度策略的选择对系统的性能和响应时间有着重要的影响,常见的调度策略有以下几种。
1. 先来先服务(FCFS)先来先服务是最简单的调度策略,按照进程到达的顺序分配处理器资源。
在这种策略下,无论进程的执行时间长短,都会按照先后顺序依次执行。
然而,这种策略容易导致短作业等待时间过长,影响系统的响应时间。
2. 短作业优先(SJF)短作业优先策略是根据进程的执行时间长度来进行调度,执行时间短的进程优先获得处理器资源。
这种策略可以减少短作业的等待时间,提高系统的响应速度。
但是,当一个长作业插入到短作业之前时,长作业的等待时间会大幅增加。
3. 优先级调度优先级调度策略通过为每个进程分配一个优先级来确定进程的执行顺序。
优先级可以是静态的,由用户指定;也可以是动态的,根据进程的历史行为和资源使用情况进行调整。
操作系统进程管理与调度随着计算机技术的不断发展,操作系统作为计算机系统的核心组成部分,起着重要的作用。
其中,进程管理与调度是操作系统的重要功能之一。
本文将探讨操作系统中的进程管理与调度相关的概念、原理、算法等内容。
一、进程管理概述进程是指计算机中正在运行的程序实例,是操作系统资源分配的基本单位。
进程管理包括进程的创建、撤销、状态转换、同步与通信等,是操作系统中的重要任务。
1. 进程的创建与撤销进程的创建是指在系统中产生一个新的进程,包括向系统申请资源、分配资源等步骤。
进程的撤销是指终止一个正在运行的进程,释放其所占用的系统资源。
2. 进程的状态转换进程在运行过程中会经历不同的状态,包括就绪态、运行态和阻塞态。
进程状态的转换是指进程在不同状态之间的切换过程,由操作系统根据不同的事件来进行调度和管理。
3. 进程的同步与通信多个进程之间需要进行数据的交换和相互合作,进程的同步与通信机制在这一过程中起到关键作用。
常见的进程同步与通信机制包括信号量、管程、消息传递等。
二、进程调度算法进程调度是操作系统中的一个重要功能,主要负责决定哪些进程可以占用处理器执行,以及在何时执行。
根据不同的调度策略和算法,可以实现不同的调度效果。
1. 先来先服务(FCFS)先来先服务是最简单的调度算法,按照进程到达的顺序进行调度。
当一个进程执行完毕或发生阻塞时,下一个进程按照就绪队列的顺序进行调度。
但是,FCFS算法容易产生“饥饿”现象,导致长作业等待时间过长。
2. 短作业优先(SJF)短作业优先调度算法是根据进程的执行时间进行调度,执行时间短的进程优先执行。
短作业优先算法可以减少平均等待时间,但是对于长作业可能会产生不公平现象。
3. 时间片轮转(RR)时间片轮转调度算法是按照时间片的大小进行调度,每个进程按照顺序执行一个时间片后,切换到下一个进程。
时间片轮转算法可以保证每个进程都能得到一定的执行机会,但是对于长时间运行的进程可能效果较差。
计算机操作系统中的进程管理与调度计算机操作系统是指控制和管理计算机硬件与软件资源,提供给用户和其他软件的一种系统软件。
其中,进程管理与调度是操作系统的重要功能之一。
本文将从进程管理的基本概念、进程状态转换、调度算法以及实现进程管理的方法等方面展开介绍。
一、进程管理的基本概念进程是指程序在计算机上的一次执行过程,它包含了程序的代码、数据和执行的上下文。
在操作系统中,进程是资源分配的最小单位,每个进程都有其独立的地址空间和执行状态。
进程管理是指对进程的创建、撤销、切换、挂起和恢复等操作的管理。
在操作系统中,进程管理主要涉及进程的创建和撤销、进程间的通信和同步以及对进程资源的调度和管理等内容。
二、进程状态转换进程在运行过程中会经历不同的状态,操作系统将其划分为以下几种状态:1.新建状态:当一个进程被创建时,它处于新建状态。
此时,操作系统为进程分配资源,并为其分配唯一的进程标识符(PID)。
2.就绪状态:当进程获得了除了CPU之外的所有资源后,它进入就绪状态。
此时,进程已经准备好运行,只等待CPU的分配。
3.运行状态:进程从就绪状态切换到运行状态时,操作系统将CPU分配给该进程,使其开始执行。
4.阻塞状态:当进程执行过程中遇到等待事件的情况,如等待I/O操作完成时,进程会进入阻塞状态。
在此状态下,操作系统会将CPU重新分配给其他进程。
5.终止状态:当进程执行完成或由于某种原因被终止时,进程进入终止状态。
此时,操作系统会回收该进程所占用的资源。
进程状态间的转换由操作系统根据不同的事件和条件来控制,保证系统资源的合理利用和进程间的正常运行。
三、调度算法为了高效地利用CPU资源,操作系统采用不同的调度算法对进程进行调度。
常见的调度算法有以下几种:1.先来先服务(FCFS)调度算法:按照进程提交请求的先后顺序进行调度,即先提交的进程先执行。
2.最短作业优先(SJF)调度算法:根据进程的执行时间进行调度,先执行执行时间最短的进程。
第2章进程管理大纲要求(一)进程与线程1.进程概念2.进程的状态与转换3.进程控制4.进程组织5.进程通信共享存储系统;消息传递系统;管道通信。
6.线程概念与多线程模型(二)处理机调度1.调度的基本概念2.调度时机、切换与过程3.调度的基本准则4.调度方式5.典型调度算法先来先服务调度算法;短作业(短任务、短进程、短线程)优先调度算法;时间片轮转调度算法;优先级调度算法;高响应比优先调度算法;多级反馈队列调度算法。
(三)进程同步1.进程同步的基本概念2.实现临界区互斥的基本方法软件实现方法;硬件实现方法。
3.信号量4.管程5.经典同步问题◆生产者-消费者问题;◆读者-写者问题;◆哲学家进餐问题。
(四)死锁1.死锁的概念2.死锁处理策略3.死锁预防4.死锁避免系统安全状态:银行家算法。
5.死锁检测和解除考点与要点分析核心考点1.进程的概念,进程与程序的异同,进程的组织结构(PCB的构造与功能);线程的概念及其与进程的异同2.进程的3个状态及其转换,引起转换的典型事件3.处理器3级调度及之间的比较,典型的调度算法以及进程在不同调度算法下的执行顺序的确定、周转时间、等待时间等的计算4.临界区域临界资源、抢占式与非抢占式调度、进程同步和互斥的区别5.实现进程互斥的软件方法,用信号量保证进程之间的同步与互斥,几种常见的进程同步问题6.死锁的概念和发生死锁的4个必要条件,处理死锁的方法(预防死锁与死锁避免等),银行家算法。
基础要点1. 进程是一个程序对某个数据集的一次运行活动。
进程是动态的概念,而程序是静态的概念。
2. 进程的基本特征是:动态性、并发性、独立性、异步性和结构特征3. 程序段和数据段称为进程的实体,用PCB来描述实体的存在和变化。
进程从结构上讲包括程序段、数据段和进程控制块(PCB)4. 在操作系统中引入线程的概念的主要目的是减少程序并发执行时所需付出的时空开销,提高程序执行的病发程度。
5. 进程的基本运行状态有运行、就绪和阻塞。
操作系统中的进程管理与调度在计算机科学领域中,操作系统是一种非常重要的软件程序,因为它负责管理计算机的资源和协调应用程序之间的交互。
其中进程管理和调度是操作系统的核心任务之一,它使计算机更高效地使用资源和提供更好的用户体验。
进程是指在操作系统中正在运行的程序。
在操作系统中,每个进程使用一定的资源,例如内存,CPU时间和输入输出设备。
因此,以最优的方式分配和管理这些资源非常重要。
进程调度是操作系统管理进程的一种方法。
它决定哪个进程应该获得CPU时间并在计算机上运行。
操作系统可以使用各种调度算法来执行此任务,具体取决于计算机结构,软件需求和用户需求。
主要有以下几种常见算法。
1. 先来先服务(FCFS)在此算法中,进程按照它们被提交到操作系统的顺序进行调度。
队列中最前面的进程首先获得CPU时间。
缺点是长的进程可能会等待很长时间才能获得资源,从而导致其他进程几乎不执行。
2. 最短作业优先(SJF)这是一种非常常见的调度算法,它根据每个进程预计的CPU时间来进行排序。
如果一个短小的进程比一个更长的进程先到达,那么操作系统会优先分配CPU时间给短小的进程。
这种算法可以减少平均等待时间和平均周转时间。
3. 轮询调度这种算法在多处理器环境中非常常见,因为它可以使多个进程平等地分配CPU时间。
在此算法中,操作系统按照指定的时间量(时间片)分配CPU时间给每个进程,如果进程在时间片内没有运行完毕,则将其加入就绪队列的末尾。
它可以确保每个进程都得到处理器时间,并减少长时间等待进程的情况。
进程管理是另一个重要的操作系统任务,它控制进程在计算机上分配和使用资源。
主要有以下几个方面。
1. 进程调度上文已具体解释进程调度。
2. 进程创建与终止进程可以由其他进程,操作系统或用户创建。
当进程完成其任务时,它必须被终止,以使计算机上的资源可供下一个进程使用。
3. 进程同步与通信当多个进程需要一起运作时,它们必须进行同步和通信,以使它们之间的交互正确。
操作系统调度与进程管理详解操作系统调度与进程管理是计算机科学中的重要概念,它们涉及到计算机系统中多个任务的协调与管理。
在本文中,我们将详细介绍操作系统调度与进程管理的工作原理及其重要性。
一、引言在计算机系统中,存在着多个进程需要同时执行。
然而,由于计算资源的有限性,操作系统需要负责合理地分配资源并协调各个进程的执行顺序。
这其中,调度与进程管理是操作系统的关键组成部分。
二、进程与线程的概念1. 进程的概念进程是计算机中正在执行的程序的实例。
每个进程具有独立的地址空间和执行状态。
它们可以同时执行,彼此之间互不干扰。
2. 线程的概念线程是进程中的一个执行单元。
一个进程可以拥有多个线程,每个线程可以独立执行不同的任务。
线程共享同一个进程的资源,包括地址空间、文件描述符等。
三、进程调度的类型1. 非抢占式调度非抢占式调度是指一个进程被调度后,它将一直执行,直到它主动放弃CPU的使用权,或者因为某些事件的发生而被迫中断。
2. 抢占式调度抢占式调度是指一个进程被调度后,它可能在任何时刻被操作系统剥夺CPU的使用权,然后将CPU分配给其他进程执行。
四、常见的调度算法1. 先来先服务(FCFS)调度算法先来先服务调度算法按照任务到达的顺序进行调度,即先到达的任务先获得CPU的使用权。
该算法简单且公平,但可能会导致长任务等待时间过长,从而影响系统的响应性。
2. 最短作业优先(SJF)调度算法最短作业优先调度算法会按照任务的执行时间进行排序,优先选择时间最短的任务执行。
该算法可以最小化任务的等待时间,但需要准确地预估任务的执行时间。
3. 优先级调度算法优先级调度算法将每个任务分配一个优先级,然后按照优先级来进行调度。
优先级较高的任务会先获得CPU的使用权。
该算法可以根据任务的紧急程度和重要性来进行调度,但可能会导致低优先级的任务长时间等待。
4. 时间片轮转调度算法时间片轮转调度算法将CPU的使用权按照时间片来进行划分,每个任务在一个时间片内独占CPU的使用权。
引言:本章首先详细介绍操作系统最重要的概念——进程,接着并讨论进程状态的变迁,然后分析进程的管理,包括进程的创建和撤销、阻塞和唤醒、挂起和激活,最后详细介绍操作系统的处理器管理,处理器管理是操作系统中最核心的组成部分,直接影响系统性能。
3.1 进程一、为什么要引入进程1. 程序的顺序执行在没有引入多道程序设计之前,程序都是顺序执行的。
同一时刻,内存中只有一道程序在运行。
前一个程序执行完毕,下一个程序才开始运行,不存在一个程序在运行过程中又交替执行另一个程序的情况。
不仅程序之间是顺序执行的,而且程序内部也是顺序执行。
程序中的所有操作必须按照某种先后次序执行,仅当前一操作执行完后,下一操作才开始执行。
程序的顺序执行具有如下特点:(1) 顺序性处理机顺序地执行程序所规定的操作,只有前一操作结束才能执行下一个操作。
(2) 封闭性程序在执行过程中独占系统分配给它的所有资源(处理机、内存、外设和信息资源等),其执行过程不受外界因素的干扰。
一般又把程序顺序执行的封闭性称为资源的独占性。
(3) 结果的可再现性程序的执行与初始条件和执行环境有关有关,而与执行时间无关。
只要程序的初始条件和执行环境相同,重复执行一个程序获得的结果总是相同的。
2. 程序的并发执行引入多道程序设计之后,程序可并发执行,即两个或两个以上的程序在执行时间上有重叠,即一个程序的第一个操作是在另一个程序的最后一个操作完成之前开始的。
并发执行的程序不再处在一个封闭的环境中,出现了许多新的特征:(1) 共享性在多道程序设计环境下,内存中有多个程序存在,它们共享一切系统资源,包括处理机、内存、各种外部设备、以及程序和数据。
(2) 间断性在多道程序设计环境下,每个程序的执行不再是连续的而是走走停停的。
例如,一个程序因等待某个事件的发生或所申请的资源得不到满足而暂停执行。
或者,为完成同一任务而相互合作的并发程序之间存在一定的制约关系,一个程序的执行将有赖于另一个合作程序的消息或信号,在没有收到来自于另一个程序的消息或信号之前,它只能等待。
(3) 结果的不可再现性。
程序并发执行时既然失去了封闭性,随之也就失去了结果可再现这一特特点。
例如,两个程序P1和P2共享三个变量x、y和z,初始情况下有x=y=z=1,P1和P2的语句序列如下:程序P1 程序P2y=x+2;① x=x+1;③z=y+1;② x=x+z;④按照①→③→②→④的执行轨迹:x=6,y=3,z=4;按照③→①→④→②的执行轨迹:x=3,y=4,z=5。
由于多道程序设计环境下程序的并发执行具有新的特征,操作系统需要引入新的概念来刻画系统内部出现的动态情况,描述系统内部各道程序的活动规律,这一概念就是进程。
二、进程的定义和属性1. 进程的定义进程(process)这个名词最早是由MIT在设计MULTICS和IBM公司开发TSS360系统时提出的,直到现在为止对于进程的名称和定义都不统一。
不同的系统中采用不同的术语名称:MIT称进程(process),IBM称任务(task)和Univac 公司称活动(active);现存多种关于进程的定义:(1) 一个正在执行的程序。
(2) 一个正在计算机上执行的程序实例。
(3) 能分配给处理器并由处理器执行的实体。
(4) 一个具有以下特征的活动单元:一组指令序列的执行、一个当前状态和相关的系统资源集合。
国内学术界较为一致的看法是:进程是一个可并发执行的具有独立功能的程序关于某个数据集合的一次执行过程,也是操作系统进行资源分配和保护的基本单位(1978年全国操作系统学术会议)。
2. 进程的属性(1) 结构性每个进程至少有三要素组成:程序块、数据块和进程控制块。
(2) 共享性同一个程序可以运行在不同的数据集上,从而构成不同的进程。
或者,多个不同的进程可以共享相同的程序。
【思考】进程和程序的关系?(3) 动态性进程是程序在数据集上的一次执行过程,是一个动态的概念。
它有生命周期,因创建而产生,由调度而执行,因撤消而消亡。
程序是静态,是一种信息资源。
(4) 独立性进程既是系统中资源分配和保护的基本单位,也是系统调度和独立单位,凡是未建立进程的程序都不能直接运行。
(5) 制约性并发进程之间存在着制约关系(同步或互斥),进程在某些关键点上需要相互等待互通消息,以保证程序执行的可再现性和计算结果的惟一性。
(6) 并发性进程可以并发执行,从而改进资源利用率和提高系统效率。
通过进程需要执行的指令序列来描述单个进程的行为,把这样的序列称为进程的轨迹。
通过给出各个进程的轨迹是如何被交替的来描述处理器的行为。
考虑下面这个简单的例子:现在有3个进程A、B和C,图3.1给出了三个进程在执行过程早期的轨迹,进程A的程序起始地址为5000,进程B的程序起始地址为8000,进程C的程序起始地址为12000。
进程B的第4条指令执行一个I/O操作。
另外在操作系统中有一个调度器,用于实现进程切换。
为了简化讨论,假设设调度器中只有6条指令。
最后假设操作系统仅允许一个进程最多连续执行6个指令周期,在此之后将被中断,这可避免任何一个进程独占处理器时间。
图3.2给出了最初52个周期中交替轨迹。
三、进程的创建和终止无论采用哪种进程行为模型,进程的生命周期始终围绕着进程的创建和终止。
在这里有必要先讨论一下进程的创建和终止。
1. 进程的创建通常有四个事件会导致一个进程的创建:(1) 新的批处理作业在批处理环境中,响应作业提交时会创建进程。
(2) 交互登录在交互环境下,当一个新用户试图登录时会创建进程。
(3) 操作系统因为提供一项服务而创建操作系统可能会代表用户程序创建进程。
例如,如果用户请求打印一个文件,则操作系统可以创建一个管理打印的进程,从而使发出请求的进程可以继续执行而无需等待。
(4) 由现有的进程派生允许一个进程引发另一个进程的创建是很有用的。
例如,一个应用程序进程可以产生另一个进程,以接受应用产生的数据,并将数据组织成适于以后分析的格式。
新进程与应用程序并行地运行,并当得到新的数据时被激活,这个方案对构造应用程序是非常有用的。
当操作系统为另一个进程的显式请求创建一个进程时,这个动作称为进程派生。
当一个进程派生另一个进程时,前一个称为父进程,被派生的进程称为子进程。
2. 进程的终止(1) 正常完成任何一个计算机系统都必须为进程提供表示其完成的方法。
批处理作业中包含一个Halt指令或一个操作系统服务调用用于终止;交互式应用程序,由用户的行为指出何时进程完成。
这些行为将导致给操作系统发出一个服务请求,以终止发出请求的进程。
例如,分时系统中,当用户退出系统或关闭终端时,该用户的进程被终止。
个人计算机或工作站中,用户可以结束一个应用程序(如字处理或电子表格)。
(2) 错误和故障●超过时限:进程运行时间超过规定的时限。
●无可用内存:系统无法满足进程需要的内存空间。
●越界:进程试图访问不允许访问的内存单元。
●保护错误:进程试图使用不允许访问的资源或文件,或者试图以一种不正确的方式使用,如往只读文件中写。
●算术错误:进程试图进行被禁止的计算,如除以零。
●时间超出:进程等待某一事件发生的时间超过了规定的最大值。
●I/O失败:在输入或输出期间发生错误,如找不到文件、在超过规定的最多努力次数后仍然读/写失败(例如当遇到了磁带上的一个坏区时)或者无效操作(如从行式打印机中读)。
●无效指令:进程试图执行一个不存在的指令(通常是由于转移到了数据区并企图执行数据)。
●特权指令:进程试图使用为操作系统保留的指令。
●数据误用:错误类型或未初始化的一块数据。
●操作员或操作系统干涉:由于某些原因,操作员或操作系统终止进程(例如,如果存在死锁)。
(3) 父进程在有些操作系统中,进程可以被创建它的进程终止(父进程通常具有终止其任何后代进程的权利);或当父进程终止时,操作系统可自动终止该进程的所有后代进程。
四、五状态模型一个进程从创建产生到撤销消亡的整个生命周期间,有时占有处理器执行,有时虽可运行但分不到处理器,有时虽然处理器空闲但因等待某个事件的发生而无法执行。
这些都充分说明了进程和程序的不同,进程是活动的且有状态变化的,可以用一组状态加以刻画。
1. 进程状态为了便于管理进程,一般来说,按进程在执行过程中的不同情况至少要定义三种不同的进程状态。
另外,还应该增加两个已经证明很有用的状态。
(1) 运行态进程正在执行。
如果计算机只有一个处理器,那么一次最多只有一个进程处于该状态。
(2) 就绪态进程做好了准备,只要有机会就开始执行。
(3) 阻塞态进程在某些事件发生前不能执行,如I/O操作完成。
(4) 新建态刚刚创建的进程,操作系统还没有把它加入可执行进程组中。
通常是进程控制块已经创建但还没有加载到主存中的新进程。
当进程处于新建态时,操作系统所需要的关于该进程的信息保存在主存的进程表中,但进程自身还未进入主存,也就是进程中的程序代码和数据都还未被分配内存空间。
(5) 退出态操作系统从可执行进程组中释放出的进程,或者是因为它自身停止了,或者是因为某种原因被取消。
2. 状态变迁(1) 新建→就绪操作系统系统准备好再接纳一个进程时,就把一个进程从新建态转换到就绪态。
(2) 就绪→运行当需要选择一个进程运行时,操作系统选择一个处于就绪的进程。
调度算法后面讨论。
(3) 运行→退出如果当前正在运行的进程表示自己已经完成或被取消,则它将被操作系统终止。
(4) 运行→就绪这类转换的最常见的原因是,正在运行的进程到达了“允许不中断执行”的最长时间段;实际上所有多道程序操作系统都实现了这类时间限定。
这类转换还有很多其他原因,但它们不是在所有的操作系统中都实现了。
如果操作系统给不同的进程分配不同的优先级,进程就有可能被抢占。
假设进程A在一个给定的优先级下运行,具有更高优先级的进程B处于阻塞态。
如果操作系统知道进程B等待的事件已经发生了,就把B转换到就绪态,然后由于优先级的原因中断了进程A的执行,将处理器分配给进程B,我们称操作系统抢占了进程A。
(5) 运行→阻塞如果进程请求它必须等待的某些事件,则进入阻塞态。
例如,进程可能请求操作系统的一个服务,但操作系统无法立即给予服务,它也可能请求了一个无法立即得到的资源,如文件或虚存中的共享区域;或者也可能需要进行某种初始化的工作,如I/O操作所遇到的情况,并且只有在该初始化动作完成后才能继续执行。
当进程互相通信,一个进程等待另一个进程提供输入时,或者等待来自另一个进程的信息时,都可能被阻塞。
(6) 阻塞→就绪当所等待的事件发生时,阻塞态进程转换到就绪态。
(7) 就绪→退出状态图中没有表示这种转换。
在某些系统中,父进程可以在任何时刻终止一个子进程。
如果父进程终止,与该父进程相关的所有子进程都将被终止。