软件设计师4--OS处理机管理

处理机管理

处理机管理也称进程管理。在多道批处理操作系统和分时操作系统中有多个并发执行的进程。进程是资源分配和独立运行的基本单位。处理机管理研究的是进程之间的并发性,以及进程之间的相互合作与资源竞争产生的问题。

1. 进程的状态

  1. 进程的组成:程序、数据、进程控制块

    • 进程控制块是进程存在的唯一标志。其内容有进程标识符(PID),状态、位置信息(程序和数据在主存或外存的物理位置)、控制信息(参数、信号量等)、队列指针、优先级、现场保护区、其他。


      在这里插入图片描述
  2. 进程的状态

    • 三态模型:运行、就绪、阻塞。就绪状态获得了除处理机的所有资源,得到处理机后可立即执行。阻塞状态也称睡眠状态,进程在等待某事件而暂停运行,即使获得处理机也无法立即运行。
    • 五态模型:引入新建状态和终止状态,构成五态模型。


      在这里插入图片描述
  3. 具有挂起状态的进程转换。由于进程的不断创建,系统资源特别是主存资源不能满足要求,这时必须把某些进程挂起,放到磁盘对换区(辅存),暂时不参加调度,以平衡系统负载。
    在这里插入图片描述

2. 进程控制

  1. 进程控制:操作系统对进程的创建到消亡全过程做有效的控制。进程控制是由操作系统内核中的原语实现的。
  2. 原语:由若干条程序组成,用来完成特定功能的程序段,执行时不能被分割,即原子操作。

3. 进程间通信

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

  1. 进程的同步。进程间完成某一项任务时直接发生相互作用的关系
  2. 进程的互斥。各进程互斥使用临界资源(某些资源一次只能被一个进程使用,如打印机、共享变量和表格)
  3. 临界区的管理规则。临界区时系统对临界资源实施操作的那段程序。对互斥临界区的管理4条原则如下:
    • 有空则进。当无进程处于临界区时,允许进程进入临界区,并且只能在临界区允许有限的时间。
    • 无空则等。当有进程处于临界区时,其他进程必须等待,以保证进程互斥访问临界资源。
    • 有限等待。对于要求进入临界区的进程,保证进程能够在有限的时间内进入临界区,以免进入“饥饿”状态。
    • 让权等待。当进程不能进入自己的临界区时,应立即释放处理机,以免进程进入忙等状态。

3.1 信号量机制

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

  1. 整型号量与PV操作
    信号量是一种整型变量,根据控制对象的不同赋予不同的值。信号量分为如下两类:
    (1)公用信号量。实现进程间的互斥,初值为1或资源的数目
    (2)私用信号量。实现进程间的同步,初值为0或某个正整数

信号量S的物理意义:S >= 0 表示某资源的可用数,若S < 0 ,则绝对值表示阻塞队列中等待该资源的进程数。

PV操作是实现进程间同步和互斥的常用方法。P操作和V操作是低级通信原语,在执行期间不可分割。P操作表示申请一个资源,V操作表示释放一个资源。

  1. 使用PV操作实现进程间的互斥
    令信号量mutex的初值为1,当进入临界区时执行P操作,推出临界区时执行V操作


    在这里插入图片描述
在这里插入图片描述

3.2 高级通信原语

进程间通信指进程间的信息交换,少则一个状态,多则成千上万个信息。根据交换信息量的多少和效率的高级,进程间通信分为低级的方式和高级的方式。PV操作属于低级的通信方式。使用PV操作有两个问题:1.编程难度大,通信对用户不透明,而且容易产生死锁。2.效率低,生产者每次只能向缓冲区方一个消息,消费者每次只能从缓冲区读取一个消息。
高级通信方式有三种:

  1. 共享存储模式。相互通信的进程之间共享某些数据结构(或存储区)实现进程间的通信。
  2. 消息传递模式。进程间的数据交换以消息为单位,程序员直接利用系统提供的一组通信命令(原语)来实现通信,如send(A)和receive(A)。
  3. 管道通信。所谓管道,时连接一个读进程和一个写进程,以字符流的形式将大量的数据送入管道,而接收进程可从管道接收大量的数据。

4. 管程

todo 使用资源集中管理的方法,将系统的某种资源用数据结构抽象的表示出来。由于临界区是访问共享资源的代码段,建立一个管程管理进程提出的访问请求。

5. 进程调度

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

5.1 三级调度

在具有三级调度的操作系统中,一个作业从提交到完成需要经历高、中、低三级调度。
(一)高级调度。又称长调度、作业调度和接纳调度,它决定处于输入池中的哪个后被作业可以调入主系统做好运行的准备,成为一个或一组就绪进程。一个作业只需经过一次高级调度。
(二)中级调度。又称中程调度和对换调度。它决定处于交换区的哪个就绪进程可以调入内存,以便直接参与对CPU的竞争。在资源紧张时,会将内存中处于阻塞状态的进程对换到对换区。
(三)低级调度。又称短程调度或进程调度,它决定处于内存中的哪个就绪进程可以占有CPU。低级调度时系统中最活跃、最重要的调度程序,对系统的影响很大。
在具有三级调度的操作系统中,参考上面说的进程的5态模型,进程的就绪状态和阻塞状态都有两种存储形式,一种时处于内存,一种是处于对换区(外存)。

5.2 调度算法

常用的进程调度算法有:先来先服务(宏观调度)、时间片轮转(微观调度,提高资源利用率) 、优先级调度和多级反馈调度。

5.3 优先级调度

分为静态优先级和动态优先级。

  1. 静态优先级进程在整个生命周期优先级不会变,通常通过三个因素确定优先级:进程类型(如系统进程优先级高)、对资源的需求(如对CPU和内存需求少的进程优先级高)、用户要求(如紧迫程度)。
  2. 动态优先级进程在运行过程中可以实时改变优先级,以便可以获得更好的进程调度性能。例如,在就绪队列中,随着等待时间变长,进程的优先级会提高,进程每执行了一个时间片其优先级降低。

5.4 多级反馈调度

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


在这里插入图片描述

5.5 进程优先级的确定

优先级的确定要考虑如下情况:
(1)对于IO型进程,让其进入最高优先级队列。通常执行一个小的时间片,处理完成一次IO请求,然后转入阻塞队列。
(2)基于计算型进程,每次处理完后进入更低优先级的队列,最终使用最大时间片来执行,以减少调度次数。
(3)对于IO次数少,主要是CPU处理的进程,在IO完成后返回该进程的队列,以免每次都回到最高优先级的队列执行。
(4)为适应一个进程在不同时间段的运行特点,IO完成时,提高优先级;时间片用完时,降低优先级。

5.6 死锁

死锁是两个以上的进程互相要求对方已经占用的资源,导致大家都无法继续运行下去的现象。
【例1】有进程P1和进程P2,互斥资源A和B,两个进程并发执行,以下如果按照P1(a) P2(a) P1(b) P2(b)的次序执行系统会发生死锁。


在这里插入图片描述

【例2】PV操作不当产生死锁,如图,当信号量S1=S2=0是发生死锁。


在这里插入图片描述

6. 线程

传统的进程有两个基本属性:

  1. 可拥有资源的独立单位
  2. 可独立调度和分配的基本单位

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

©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 213,335评论 6 492
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 90,895评论 3 387
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 158,766评论 0 348
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 56,918评论 1 285
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 66,042评论 6 385
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 50,169评论 1 291
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 39,219评论 3 412
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 37,976评论 0 268
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 44,393评论 1 304
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 36,711评论 2 328
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 38,876评论 1 341
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 34,562评论 4 336
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 40,193评论 3 317
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 30,903评论 0 21
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 32,142评论 1 267
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 46,699评论 2 362
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 43,764评论 2 351

推荐阅读更多精彩内容

  • 操作系统概论 操作系统的概念 操作系统是指控制和管理计算机的软硬件资源,并合理的组织调度计算机的工作和资源的分配,...
    野狗子嗷嗷嗷阅读 11,908评论 3 34
  • 又来到了一个老生常谈的问题,应用层软件开发的程序员要不要了解和深入学习操作系统呢? 今天就这个问题开始,来谈谈操...
    tangsl阅读 4,105评论 0 23
  • 文/tangsl(简书作者) 原文链接:http://www.jianshu.com/p/2b993a4b913e...
    西葫芦炒胖子阅读 3,752评论 0 5
  • 明月此时有,冉冉树梢头。彩云追月情愫,轻渺好温柔。月下荷塘安静,藕叶微风不动,桥下水平流。岸上华灯户,欢乐过中秋。...
    鱼在海阅读 367评论 1 5
  • 显示Shona来了邮件,点开看:“你好小一,我收到了你老师写来的推荐信。说实话,这是我见过最棒的一封推荐信。下周二...
    刘小一夜画阅读 2,906评论 5 9