操作系统简介:进程管理

1. 操作系统概述

操作系统有效地组织和管理系统中的各种软、硬件资源,合理地组织计算机系统工作流程,控制程序的执行,并且向用户提供一个良好的工作环境和友好的接口。

  • 操作系统特征:并发性、共享性、虚拟性和不确定性
  • 操作系统功能:
    1. 进程管理。实质上是对处理机的执行“时间”进行管理,采用多道程序等技术将 CPU的时间合理地分配给每个任务。主要包括进程控制、进程同步、进程通信和进程调度
    2. 文件管理。主要包括文件存储空间管理、目录管理、文件的读写管理和存取控制。
    3. 存储管理。是对主存储器“空间”进行管理,主要包括存储分配与回收、存储保护、地址映射(变换)和主存扩充。
    4. 设备管理。实质是对硬件设备的管理,包括对输入输出设备的分配、启动、完成和回收。
    5. 作业管理。包括任务、界面管理、人机交互、图形界面、语音控制和虚拟现实等。

操作系统分类和特点

  1. 批处理操作系统,分为单道批处理和多道批处理操作系统。单道批处理操作系统是一种早期的操作系统,“单道”的含义是指一次只有一个作业装入内存执行。多道批处理操作系统允许多个作业装入内存执行,在任意一个时刻,作业都处于开始点和终止点之间(多道、宏观上并行运行、微观上串行运行)。
  2. 分时操作系统(交互性强)。在分时操作系统中,一个计算机系统与多个终端设备连接。分时操作系统是将CPU的工作时间划分为许多很短的时间片,轮流为各个终端的用户服务。(多路性、独立性、交互性和及时性)
  3. 实时操作系统(实时性高)。实时是指计算机对于外来信息能够以足够快的速度进行处理,并在被控对象允许的时间范围内做出快速反应。实时系统对交互能力要求不高,但要求可靠性有保障。为了提高系统的响应时间,对随机发生的外部事件应及时做出响应并对其进行处理。分为实时控制系统实时信息处理系统
  4. 网络操作系统。网络操作系统是使联网计算机能方便而有效地共享网络资源,为网络用户提供各种服务的软件和有关协议的集合。
  5. 分布式操作系统。分布式计算机系统是由多个分散的计算机经连接而成的计算机系统,系统中的计算机无主、次之分,任意两台计算机可以通过通信交换信息。通常,为分布式计算机系统配置的操作系统称为分布式操作系统。
  6. 微型计算机操作系统。微型计算机操作系统简称微机操作系统,常用的有 Windows、Mac OS 和 Limux。
  7. 嵌入式操作系统。嵌入式操作系统运行在嵌入式智能芯片环境中,对整个智能芯片以及它所操作、控制的名种部件装置等资源进行统一协调、处理、指挥和控制。(微型化、可定制、实时性、可靠性、易移植性)嵌入式实时操作系统有很多,常见的有 VxWorks、uClinux、PalmOS、WindowsCE、μC/OS-II和 eCos等。

促使操作系统发展的因素主要有3个方面:

  1. 硬件的不断地升级与新的硬件产品出现,需要操作系统提供更多更复杂的支持;
  2. 新的服务需求,操作系统为了满足系统管理者和用户需求,需要不断扩大服务范围:
  3. 修补操作系统自身的错误,操作系统在运行的过程中其自身的错误也会不断地被发现,因此需要不断地修补操作系统自身的错误(即所谓的“补丁”)。需要说明的是,在修补的过程中也可能会产生新的错误。

2. 进程管理

进程管理也称为处理机管理,其核心是如何合理地分配处理机的时间,提高系统的效率。在计算机系统中有多个并发执行的程序,采用“程序”这个静态的概念已经不能描述程序执行时动态变化的过程,所以引入了“进程”。

2.1 进程

  • 进程执行
    前驱图:一个有向无循环图,由结点和有向边组成,结点代表各程序段的操作,而结点间的有向边表示两个程序段操作之间存在的前趋关系。
    在这里插入图片描述
    程序顺序执行时的主要特征有顺序性、封闭性和可再现性。其中,顺序性是指程序的各程序段严格按照规定的顺序执行;封闭性是指程序运行时系统内的资源只受该程序控制而改变,执行结果不受外界因素的影响;可再现性是指只要程序执行环境和初始条件相同,程序多次执行的结果相同。
    若在计算机系统中采用名道程序设计技术,则主存中的多道程序可处于并发执行状态。
    在这里插入图片描述
    程序并发执行时的主要特征如下,

    1. 失去了程序的封闭性。
    2. 程序和机器执行程序的活动不再-一对应。
    3. 并发程序间具有相互制约性
  • 进程组成
    进程(Process)是程序的一次执行。进程通常由程序、数据和进程控制块(Process ControlBlock,PCB)组成。
    进程的程序部分描述了进程需要完成的功能。假设一个程序能被多个进程同时共享执行那么这部分就应该以可再入码的形式编制,它是程序执行时不可修改的部分。进程的数据部分包括程序执行时所需的数据及工作区,这部分只能为一个进程所专用,是进程的可修改部分。

  • 进程状态与切换
    在这里插入图片描述

    • 三态模型:运行、就绪(准备执行)和阻塞(等待资源)
    • 五态模型:新建、运行、就绪、阻塞和终止

2.2 进程控制

进程控制是指对系统中所有进程从创建到消亡的全过程实施有效的控制。在操作系统中通过设置一套控制机构对进程实施控制,其主要功能包括创建一个新进程,撤销一个已经运行完的进程,改变进程的状态,实现进程间的通信。进程控制是由操作系统内核(Kemnel)中的原语实现的。

**原语(Primitive)是指由若干条机器指令组成的、用于完成特定功能的程序段。**原语的特点是在执行时不能被分割,即原子操作要么都做,要么都不做。内核中所包含的原语主要有进程控制原语、进程通信原语、资源管理原语以及其他原语。

2.3 进程通信

在多道程序环境的系统中,存在多个可并发执行的进程,因此进程间必然存在资源共享和相互合作的问题。进程通信是指各个进程交换信息的过程。

同步和互斥

同步是合作进程间的直接制约问题,互斥是申请临界资源进程间的间接制约问题。
多个并发执行的进程都以各自独立的、不可预知的速度向前推进,但是有时需要在某些确定点上协调相互合作进程间的工作。例如,进程 A 向缓冲区送数据,进程 B 从缓冲区取数据加工,当进程 B 要取数据加工时,必须是进程 A 完成了向缓冲区送数据的操作,否则进程 B 必须停下来等待进程A的操作结束。可见,进程间的同步是指进程间完成一项任务时直接发生相互作用的关系。
在多道程序系统环境中,各进程可以共享各类资源,但有些资源一次只能供一个进程使用,称为临界资源(Critical Resource,CR),如打印机、共享变量等。进程间的互斥是指系统中各进程互斥使用临界资源
临界区管理的原则:临界区(Critical Section,Cs)是进程中对临界资源实施操作的那段程序。

  1. 有空即进
  2. 无空则等
  3. 有限等待
  4. 让权等待

信号量机制

信号量机制是一种有效的进程同步和互斥工具,主要有整型信号量、记录性信号量和信号量集机制。

  • 整型信号量和PV操作
    信号量是一个整型变量,根据控制对象的不同被赋予不同的值。信号量分为如下两类。
    公用信号量。实现进程间的互斥,初值为1或资源的数目。
    私用信号量。实现进程间的同步,初值为0或某个正整数。
    信号量S的物理意义:若S>=0,表示某资源的可用数,若S<0,则其绝对值表示阻塞队列中等待该资源的进程数。
    P操作表示申请一个资源,V操作表示释放一个资源。
    在这里插入图片描述
    在这里插入图片描述
  • 利用PV操作实现进程的互斥
    令信号量 mutex 的初值为 1,进入临界区时执行P操作,退出临界区时执行 V 操作。
P(mutex)
 临界区
V(mutex)
  • 利用PV操作实现进程间的同步
    进程的同步是由于进程间的合作而引起的相互制约问题。实现进程同步的一种方法是将个信号量与消息相联系,当信号量的值为0时表示希望的消息未产生,否则表示希望的消息已经来到。假定用信号量S表示某条消息,进程可以通过调用P操作测试消息是否到达,调用V操作通知消息已准备好。典型的应用是单缓冲区的生产者和消费者同步问题。
    在这里插入图片描述

高级通信

进程通信的方式分为低级方式和高级方式。PV操作属于低级通信方式,若用PV操作实现进程间通信,则存在以下问题:编程难度大,效率低。

高级通信方式主要分为共享存储模式、消息传递模式和管道通信。

  1. 共享存储模式。相互通信的进程共享某些数据结构(或存储区),实现进程之间的通信。
  2. 消息传递模式。进程间的数据交换以消息为单位,程序员直接利用系统提供的一组通信命令(原语)来实现通信。如 Send(A)、Receive(A)。
  3. 管道通信。管道是用于连接一个读进程和一个写进程,以实现它们之间通信的共享文件(pipe 文件也称管道文件)。向管道提供输入的发送进程(即写进程),以字符流的形式将大量的数据送入管道;而接收进程可从管道接收大量的数据,

直接和间接通信

直接通信是将消息直接发送给指定进程,因此,Send和 Receive 原语中应指出进程名字其调用格式如下:

Send(Who.Message)      发送消息给指定进程或一组进程
Receive(Who,Message)   从约定进程接收消息

间接通信是以信箱为媒体来实现通信的,接收信件的进程只需设立一个信箱,若干个进程都可以向同一个进程发送信件。因此,Send和 Receive 原语中应给出信箱名。其调用格式如下:

Send(N.M)      将信件 M 发送到信箱N 中
Receive(N.X)   从信箱N 中取一封信存入X

有些系统还提供带标记的发送,用Tag可以指定进程是否要等到接收进程取到信息再继续运行。一般接收进程总是要等待消息到达后才继续运行。其调用格式如下:

Send(Who.Message.tag)

2.4 进程调度

三级调度

一个作业从提交到完成需要经历高、中、低三级调度。

  1. 高级调度。又称为“长调度”“作业调度”“接纳调度”,它决定处于输入池中的哪个后备作业可以调入主系统做好运行的准备,成为一个或一组就绪进程。系统中一个作业只需经过一次高级调度。
  2. 中级调度。又称为“中程调度”“对换调度”,它决定处于交换区中的就绪进程哪个可以调入内存,以便直接参与对 CPU的竞争。在内存资源紧张时,为了将进程调入内存,必须将内存中处于阻塞状态的进程调出至交换区,以便为调入进程腾出空间。这相当于使处于内存的进程和处于盘交换区的进程交换了位置。
  3. 低级调度。又称“短程调度”或“进程调度”,它决定处于内存中的就绪进程哪个可以占用 CPU,是操作系统中最活跃、最重要的调度程序,对系统的影响很大。

进程调度方式

进程调度方式是指当有更高优先级的进程到来时如何分配 CPU。调度方式分为可剥夺和不可剥夺两种。可剥夺式是指当有更高优先级的进程到来时,强行将正在运行进程的 CPU 分配给高优先级的进程;不可剥夺式是指当有更高优先级的进程到来时,必须等待正在运行进程自动释放占用的 CPU,然后将 CPU 分配给高优先级的进程。

进程调度算法

常用的进程调度算法有先来先服务、时间片轮转、优先级调度(静态和动态)和多级反馈调度算法
多级反馈队列算法是时间片轮转算法和优先级算法的综合与发展。其优点是照顾短进程以提高系统吞吐量、缩短了平均周转时间;照顾 IO 型进程以获得较好的 IO 设备利用率和缩短响应时间;不必估计进程的执行时间,动态调节优先级。

死锁

在计算机系统中有各种互斥资源(如磁带机、打印机和绘图仪等)和软件资源(如进程表、临界区等),若两个进程互相要求对方已占用的资源,或同时进入临界区则会出现问题。所谓死锁,是指两个以上的进程互相都要求使用对方已经占有的资源而导致无法继续运行的现象。

产生死锁的原因有:进程推进顺序不当、同类资源分配不当、PV资源使用不当等情况。
可以看出,产生死锁的原因是竞争资源或非法的进程推进顺序。当系统中有多个进程共享的资源不足以同时满足它们的需求时,引起这些进程对资源的竞争导致死锁。由于非法的进程推进顺序,进程在运行的过程中,请求和释放资源的顺序不当,导致进程死锁。
产生死锁的4个必要条件为互斥条件、请求保持条件、不可剥夺条件和环路条件
在这里插入图片描述

2.5 线程

传统的进程有两个基本属性:可拥有资源的独立单位可独立调度和分配的基本单位。由于在进程的创建、撤销和切换中,系统必须为之付出较大的时空开销,因此在系统中设置的进程数目不宜过多,进程切换的频率不宜太高,这就限制了并发程度的提高。引入线程后,将传统进程的两个基本属性分开,线程作为调度和分配的基本单位进程作为独立分配资源的单位用户可以通过创建线程来完成任务,以减少程序并发执行时付出的时空开销。

线程是进程中的一个实体,是被系统独立分配和调度的基本单位。线程基本上不拥有资源,只拥有一点运行中必不可少的资源(如程序计数器、一组寄存器和栈)。它可与同属一个进程的其他线程共享进程所拥有的全部资源。

线程可创建另一个线程,同一个进程中的多个线程可并发执行。线程也具有就绪、运行和阻塞3种基本状态。由于线程具有许多传统进程所具有的特性,故称为“轻型进程”(Light-WeightProcess);传统进程称为“重型进程”(Heavy-Weight Process)。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值