操作系统:精髓与设计原理 单处理器调度 多处理器调度 实时调度

本文主要是介绍操作系统:精髓与设计原理 单处理器调度 多处理器调度 实时调度,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

处理器调度目标  满足系统目标的方式(响应时间 吞吐率 处理器效率)  把进程分配到一个或多个处理器中执行

调度类型  长程调度   决定加入待执行的进程池中  哪一个程序可以进入系统中处理 即控制系统的并发度

                  中程调度   决定加入部分或全部在内存中的进程集合中

                  短程调度   决定哪一个可运行的进程将被处理器执行

                  IO调度       决定哪一个进程挂起的IO请求将被可用的IO设备处理

短程调度准则   

面向用户  性能相关   周转时间 指一个进程从提交到完成之间的时间间隔,包括实际执行时间加上等待资源(包括处理器资源)的时间

                                     响应时间 对一个交互进程,这是指从提交一个请求到开始接收响应之间的时间间隔    相对于响应时间 这是一种更好的度量

                                     最后期限  当指定进程完成的最后期限时 调度原则将降低其他目标 使得满足期限最后期限的作业的百分比达到最大

                  其他           可预测性  无论系统的负载如何 一个给定的工作运行的总时间量和总代价是相同的,用户不希望响应时间和周转时间变化太大

面向系统  性能相关   吞吐量    调度策略应该试图使每个单位时间内完成的进程数目达到最大 

                                     处理器利用率  处理器都处于忙的状态的百分比

                  其他           公平性     没有进程处于饥饿状态

                                     强制优先级       

                                     平衡策略  调度策略


选择调度策略  

选择函数  确定在就绪进程中选择哪一个进程在下一次执行

决策模式  说明选择函数在被执行的瞬间的处理方式    

                  非抢占式  进程处于运行状态  就会不断执行直到终止  或者因为等待IO 或者因为请求某些操作系统服务而阻塞自己

                  抢占式  当前正在运行的进程可能被操作系统中断 并转移到就绪态     关于抢占的决策可能是发生在一个新进程到达时  或者一个中断发生后  把一个被阻塞的进程置为就绪态 或周期性的时间中断

各种调度策略特点



多处理器调度中的 实时调度

硬实时任务  必须满足最后期限的限制  否则会给系统带来不可接受的破坏和致命的错误

软实时任务  希望能满足与之相关联的该期限的要求 但并不是强制的  即使超过了最后期限 调度和完成这个任务仍然是有意义的

非周期任务   有一个必须结束或开始的最后期限   或有一个关于开始时间

周期任务   每隔周期T一次  或者 每隔T个单位


实时操作系统的特点

可确定性    在某种程度上可以按照固定的 预先确定的时间或时间间隔执行操作(关注操作系统获知一个中断之前的延迟)

可响应性  知道中断之后操作系统为中断提供服务的时间

用户控制  允许用户细粒度的控制任务优先级

可靠性  在实时的响应和控制事件

故障弱化操作  系统在故障时尽可能多地保存其性能和数据的能力



这篇关于操作系统:精髓与设计原理 单处理器调度 多处理器调度 实时调度的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/962431

相关文章

Linux之计划任务和调度命令at/cron详解

《Linux之计划任务和调度命令at/cron详解》:本文主要介绍Linux之计划任务和调度命令at/cron的使用,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不吝赐教... 目录linux计划任务和调度命令at/cron一、计划任务二、命令{at}介绍三、命令语法及功能 :at

Spring Boot循环依赖原理、解决方案与最佳实践(全解析)

《SpringBoot循环依赖原理、解决方案与最佳实践(全解析)》循环依赖指两个或多个Bean相互直接或间接引用,形成闭环依赖关系,:本文主要介绍SpringBoot循环依赖原理、解决方案与最... 目录一、循环依赖的本质与危害1.1 什么是循环依赖?1.2 核心危害二、Spring的三级缓存机制2.1 三

C#中async await异步关键字用法和异步的底层原理全解析

《C#中asyncawait异步关键字用法和异步的底层原理全解析》:本文主要介绍C#中asyncawait异步关键字用法和异步的底层原理全解析,本文给大家介绍的非常详细,对大家的学习或工作具有一... 目录C#异步编程一、异步编程基础二、异步方法的工作原理三、代码示例四、编译后的底层实现五、总结C#异步编程

Go 语言中的select语句详解及工作原理

《Go语言中的select语句详解及工作原理》在Go语言中,select语句是用于处理多个通道(channel)操作的一种控制结构,它类似于switch语句,本文给大家介绍Go语言中的select语... 目录Go 语言中的 select 是做什么的基本功能语法工作原理示例示例 1:监听多个通道示例 2:带

鸿蒙中@State的原理使用详解(HarmonyOS 5)

《鸿蒙中@State的原理使用详解(HarmonyOS5)》@State是HarmonyOSArkTS框架中用于管理组件状态的核心装饰器,其核心作用是实现数据驱动UI的响应式编程模式,本文给大家介绍... 目录一、@State在鸿蒙中是做什么的?二、@Spythontate的基本原理1. 依赖关系的收集2.

Java编译生成多个.class文件的原理和作用

《Java编译生成多个.class文件的原理和作用》作为一名经验丰富的开发者,在Java项目中执行编译后,可能会发现一个.java源文件有时会产生多个.class文件,从技术实现层面详细剖析这一现象... 目录一、内部类机制与.class文件生成成员内部类(常规内部类)局部内部类(方法内部类)匿名内部类二、

Python中随机休眠技术原理与应用详解

《Python中随机休眠技术原理与应用详解》在编程中,让程序暂停执行特定时间是常见需求,当需要引入不确定性时,随机休眠就成为关键技巧,下面我们就来看看Python中随机休眠技术的具体实现与应用吧... 目录引言一、实现原理与基础方法1.1 核心函数解析1.2 基础实现模板1.3 整数版实现二、典型应用场景2

Java的IO模型、Netty原理解析

《Java的IO模型、Netty原理解析》Java的I/O是以流的方式进行数据输入输出的,Java的类库涉及很多领域的IO内容:标准的输入输出,文件的操作、网络上的数据传输流、字符串流、对象流等,这篇... 目录1.什么是IO2.同步与异步、阻塞与非阻塞3.三种IO模型BIO(blocking I/O)NI

Java时间轮调度算法的代码实现

《Java时间轮调度算法的代码实现》时间轮是一种高效的定时调度算法,主要用于管理延时任务或周期性任务,它通过一个环形数组(时间轮)和指针来实现,将大量定时任务分摊到固定的时间槽中,极大地降低了时间复杂... 目录1、简述2、时间轮的原理3. 时间轮的实现步骤3.1 定义时间槽3.2 定义时间轮3.3 使用时

JAVA封装多线程实现的方式及原理

《JAVA封装多线程实现的方式及原理》:本文主要介绍Java中封装多线程的原理和常见方式,通过封装可以简化多线程的使用,提高安全性,并增强代码的可维护性和可扩展性,需要的朋友可以参考下... 目录前言一、封装的目标二、常见的封装方式及原理总结前言在 Java 中,封装多线程的原理主要围绕着将多线程相关的操