当前位置: 首页 > article >正文

多处理机调度(李昂学长视频总结)25新增考点

多处理机定义:多处理机指的是某个计算机系统中有多个cpu,在多处理机调度中,多处理机一般指的是共享存储器处理机,其两个或更多的cpu全部共享一个公用的RAM。

 

根据系统中的处理机相同与否,可将多处理机系统分为如下两类:

1、对称多处理机系统:在系统中所包含的各处理机单元在结构和功能上都是相同的。

2、非对称多处理机系统:在系统中有多类型的处理单元,他们的功能和结构各不相同,系统中只有一个主处理器,但有多个从处理机。

(二、进程分配方式

1、非对称MPS,其OS大多数采用主-从式OS,即OS的核心部分驻留在一个主机上,而从机只是用户程序,进程调度只在主机执行。

276a07fd6b7e4942aba68a45555e1890.png

调度过程如下:

1、每当从机空闲的时候,使向主机发送一索求进程的信号,然后,使等待主机为它分配进程。

2、在主机中保持一个就绪队列,只要就绪队列不空,主机便从其队首3摘下一个进程分配给请求的队列。

3、从机接收到分配的进程后使运行该进程,该进程结束后从机又向主机发出请求。

 

优点:系统处理比较简单,因为所有的进程分配都由一台主机独自处理。

缺点:1、一旦主机出现故障。将会导致整个系统瘫痪。

2、很容易因为主机太忙,来不及处理因而形成系统瘫痪。

2、对称MPS中的进程分配方式

在SMP中,所有处理机都是相同的,可以将任何一盒进程分配任何一个处理机。

对于这种进程可以采用以下三种方式:

1、静态分配方式

该方式下,一个进程从开始执行至其完成,,都被固定到一个处理机上执行。此时,需要为每一个处理机设置一专用的就绪队列,该队列中的就绪进程先后都是被分配到该处理机上执行。

在该进程阻塞后再次就绪,也仍然挂在该就绪队列上,因而它仍在处理机上执行。感觉每个进程相当于绑定了一个CPU

优点:进程调度开销小

缺点:使各处理机忙而不均。有的进程频繁调度,有的则很闲。

2、动态分配方式

为了防止系统的多个处理机忙而不均,可以在系统中设置一个公共就绪队列,系统中所有就绪进程都被放在该队列中,分配进程时,可讲进程分配到任何处理器。

优点:消除了忙而不均

缺点:不容易实现处理机亲和度

 

处理器亲和度就是指绑定某一进程到CPU(这不就是静态分配方式嘛)

CPU亲和度利用了:进程上一次运行后的残余信息保留在CPU的状态中。如果下一次仍然将该进程调度到同一CPU上,就能避免缓存中未命中等对处理机不利的情况,使进程运行更高效。

 

CPU亲和度分为:软亲和度和硬亲和度

软亲和度主要是由操作系统来实现,操作系统的调度器会倾向于保持一个进程不会频繁在多个CPU 之间迁移。

调度器会根据各CPU的负载均衡开合理调度运行中的进程,减轻繁忙CPU 的压力

硬亲和度指用户可以通过调用系统API实现自定义进程运行在哪个CPU上,进而满足特殊性能的请求。

3、混合方式

这种就是上两种方式的综合。

 

这种方式下,同时使用本地队列和全局队列,本地队列是每个CPU共享的,全局队列就是所有CPU共享的

全局队列就是保证负载均衡

本地队列就是减少进程调度开销影响,保证了亲和度

除了全局队列,还有两种负载均衡的技术

1、基于推的迁移

一个特定的任务周期性检查每个处理机的负载均衡,如何发现不平衡,那么通过进程从超载处理机推到空闲或不太忙的处理机上实现负载均衡

2、基于拉的迁移

空闲处理机从一个忙的处理机上拉一些就绪进程到自己的就绪队列中。

三、进程(线程)调度方式

进程(线程)调度方式有:自调度方式、成组调度方式等

1、自调度方式

自调度方式是最简单的一种调度方式。

在系统中设置一个公共的进程或线程就绪队列,所有的处理器在空闲的时候,都可自己到改队列中取得一进程(或线程)来运行。在自调度方式中,可采取在单处理机环境下所用的调度算法,如先来先服务(FCFS)调度算法等。

 

自调度方式的主要优点表现为:只要公共就绪队列不空,就不会出现处理机空闲的情况,也不会出现处理机忙而不均的现象,因而有利于提高处理机的利用率。

缺点:1-只有一个就绪队列,处理机必须互斥访问改队列,这容易形成系统瓶颈。

2-通常一个应用中的多个进程属于相互合作型,采取自调度处理方式处理时,这些线程很难同时获得处理机而同时运行,使某些线程因合作线程来获得处理机运行而被阻塞,导致线程切换频繁。

2、成组调度方式

为解决线程频繁切换产生成组调度方式。该方式将一个进程中的一组线程分配到一组处理机上运行

37378c09d51b4c6aae23001de3dae6e8.png

5906f4a08a2241278b3bdca7033231d0.png 

 45cf6721301f4a5cbcb62bbf860b6e16.png

 

 

 


http://www.kler.cn/a/375124.html

相关文章:

  • 工业摄像机基于电荷耦合器件的相机
  • ubuntu22.04安装PaddleX3
  • Pytorch | 从零构建ParNet/Non-Deep Networks对CIFAR10进行分类
  • vue前端实现同步发送请求【已封装】
  • UML图【重要】
  • MFC/C++学习系列之简单记录9——简单加法
  • 探索Python终端美化的终极利器:Rich库
  • SCRM系统的价格揭秘及投资回报分析
  • 边缘计算网关在机床数据采集中的应用-天拓四方
  • pandas——DataFrame
  • 多模态大模型的应用探索:多样场景下的创新实践
  • sql练习专场(一) 1-5
  • Linux·进程间通讯(管道)
  • python/Django创建应用(app)
  • 逗号运算符应用举例
  • SpringBoot国际化:创建多语言支持的Web应用
  • 【K倍区间】
  • 笔记-配置PyTorch(CUDA 12.2)
  • 常用linux 命令备份
  • 【网络安全 | 漏洞挖掘】逻辑漏洞+无限制爆破实现业务瘫痪
  • 【Linux网络】传输层协议UDP与TCP
  • Python画图3个小案例之“一起看流星雨”、“爱心跳动”、“烟花绚丽”
  • ubuntu上申请Let‘s Encrypt HTTPS 证书
  • 代理模式简单举例
  • Spring Boot框架下校园社团信息管理的优化策略
  • 独立北斗定位智能安全帽、定位安全帽、单北斗执法记录仪