计算机操作系统实时系统调度算法,死锁,存储器基础知识
Posted xinxinmonster
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了计算机操作系统实时系统调度算法,死锁,存储器基础知识相关的知识,希望对你有一定的参考价值。
实时调度可以分为抢占式和非抢占式的。非抢占式调度用于非周期实时任务通过截止时间来调度,抢占式调度方式用于周期实时任务
最早截止时间(EDF)算法:
1.实时系统中非抢占式调度方式用于非周期实时任务通过截止时间来调度。
例:任务执行
最低松弛度优先(LLF)
2.抢占式调度方式用于周期实时任务
例:一个程序需要150ms,CPU周期是300ms,则该程序松弛度为(300-150)ms
计算松弛度:截止时间-需要运行时间-当前时间
死锁概述
死锁定义:
在一组进程发生在死锁的情况下,这组死锁进程中的每一个进程,都在等待另一个死锁进程所占有的资源,若一组进程中的每一个进程都在等待仅由该组进程中的其他进程才能引发的事件,那么该组进程是死锁的。
产生死锁的条件:
1.互斥条件
2.处于请求和保持的条件
3.不可抢占条件
4.循环等待条件
产生原因:
系统程序访问同一个资源时出现问题(资源有分类方法一种是根据资源内部特性分为:可重用性资源和可消耗性资源,一种是根据资源外部特性分为:可抢占性资源和不可抢占性资源)
具体导致计算机中死锁的情况:
1.竞争不可抢占性资源引发死锁
2.竞争可消耗资源引起死锁
3.进程推进顺序不当引起死锁
处理死锁的方法:(即破坏产生死锁的条件即可,但不能破坏互斥条件)
1.预防死锁
2.避免死锁
3.检测死锁
4.解除死锁
利用银行家算法避免死锁
可利用资源向量(available)
最大需求矩阵=max
分配矩阵 allocation
需求矩阵 need
算法过程:
1.若request [j]<=need[j],则转2,否则退出
2.若request[j]<=available[j] 则转3,否则表示资源不足以分配
3.试探分配
4.系统执行安全性算法(当所有进程的 finish[j] = true则系统处于安全状态,只有系统处于安全状态,才会真正去“分配资源”)
第四章存储器
计算机存储器结构:
CUP寄存器:
寄存器
主存:
高速缓存
主存储器
磁盘缓存
辅存:
固定磁盘
可移动存储介质
从下到上速度越来越快,但容量越来越小,价格越来越贵
内存分配分区算法:
1.首次适应算法(即每次都从低地址开始查)
2.循环首次适应算法(和1差不多,但每次查询的开始位置是在上一次查找的下一个地址开始顺序查找)
3.最佳适应算法(将内存大小从小到大排序,再进行放置)
4.最坏适应算法(内存大小从大到小排序再放置)
基于索引的分区分配算法
1.快速适应算法(即将空闲分区根据其容量大小进行分类,之后通过链接进行之后的存储访问)
2.伙伴算法
3.哈希算法(现在计算机常用)
对换
所谓“对换”, 是指把内存中暂时不能运行的进程或者暂时不用的程序和数据,调出到外存上,以便腾出足够的内存空间,再把已具备运行条件的进程或进程所需要的程序和数据,调入内存。对换是提高内存利用率的有效措施,它可以直接提高处理机的利用率和系统的吞吐量。
分页存储管理方式(两级分页,多级分页)
2.计算访问内存的有效时间:
引入快表之后:
a为一次查找快表的时间,λ为命中率,t为一次访问内存的时间。
以上是关于计算机操作系统实时系统调度算法,死锁,存储器基础知识的主要内容,如果未能解决你的问题,请参考以下文章