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

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

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

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

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

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

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

短程调度准则   

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

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

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

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

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

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

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

                                     强制优先级       

                                     平衡策略  调度策略


选择调度策略  

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

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

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

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

各种调度策略特点



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

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

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

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

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


实时操作系统的特点

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

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

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

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

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



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



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

相关文章

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 中,封装多线程的原理主要围绕着将多线程相关的操

kotlin中的模块化结构组件及工作原理

《kotlin中的模块化结构组件及工作原理》本文介绍了Kotlin中模块化结构组件,包括ViewModel、LiveData、Room和Navigation的工作原理和基础使用,本文通过实例代码给大家... 目录ViewModel 工作原理LiveData 工作原理Room 工作原理Navigation 工

Java的volatile和sychronized底层实现原理解析

《Java的volatile和sychronized底层实现原理解析》文章详细介绍了Java中的synchronized和volatile关键字的底层实现原理,包括字节码层面、JVM层面的实现细节,以... 目录1. 概览2. Synchronized2.1 字节码层面2.2 JVM层面2.2.1 ente

MySQL的隐式锁(Implicit Lock)原理实现

《MySQL的隐式锁(ImplicitLock)原理实现》MySQL的InnoDB存储引擎中隐式锁是一种自动管理的锁,用于保证事务在行级别操作时的数据一致性和安全性,本文主要介绍了MySQL的隐式锁... 目录1. 背景:什么是隐式锁?2. 隐式锁的工作原理3. 隐式锁的类型4. 隐式锁的实现与源代码分析4

MySQL中Next-Key Lock底层原理实现

《MySQL中Next-KeyLock底层原理实现》Next-KeyLock是MySQLInnoDB存储引擎中的一种锁机制,结合记录锁和间隙锁,用于高效并发控制并避免幻读,本文主要介绍了MySQL中... 目录一、Next-Key Lock 的定义与作用二、底层原理三、源代码解析四、总结Next-Key L

Spring Cloud Hystrix原理与注意事项小结

《SpringCloudHystrix原理与注意事项小结》本文介绍了Hystrix的基本概念、工作原理以及其在实际开发中的应用方式,通过对Hystrix的深入学习,开发者可以在分布式系统中实现精细... 目录一、Spring Cloud Hystrix概述和设计目标(一)Spring Cloud Hystr