CPU调度的目的在于提高CPU利用率,不让CPU闲着.CPU是宝贵的资源,如果有一个进程,本来在CPU中运行,忽然因为要使用IO资源,于是转而请求IO,这边CPU挂起,造成就绪队列中的其他进程等待,这样就造成了浪费. 一.CPU调度算法 1.先到先服务(FCFS) 谁先请求CPU谁先得到服务,一直到服务完.这应该是最简单的调度了.但效率不高,有些只须很短CPU区间的进程也只能死等,会造成平均等待时间较长. 2.最短作业优先(SJF) 最佳调度算法,平均等待时间最小.问题在于,如何知道下一个CPU…
操作系统概念学习笔记 10 CPU调度 多道程序操作系统的基础.通过在进程之间切换CPU.操作系统能够提高计算机的吞吐率. 对于单处理器系统.每次仅仅同意一个进程执行:不论什么其它进程必须等待,直到CPU空暇能被调度为止. 多道程序的目标是在不论什么时候都有某些进程在执行,以使CPU的使用率最大化.多道程序的思想较为简单.当一个进程必须等待时,操作系统会从该进程拿走CPU的使用权,而将CPU交给其它进程. CPU-I/O 区间周期 CPU的成功调度依赖于进程的例如以下属性: 进程执行由CPU执行…
操作系统的核心功能就是管理计算机硬件,而CPU就是计算机中最核心的硬件.而通过学习笔记3的简史回顾,操作系统通过多进程图像实现对CPU的管理.所以多进程图像是操作系统的核心图像. 参考资料: 课程:哈工大操作系统(本部分对应 L8 && L9) 实验:操作系统原理与实践_Linux - 蓝桥云课 (lanqiao.cn) 笔记:操作系统学习导引 · 语雀 (yuque.com) 1. 从使用CPU开始直观理解CPU管理 要想管理CPU,就要知道如何使用CPU. CPU的工作原理已经很熟悉:…
在上一部分中,我们了解到操作系统实现多进程图像需要组织.切换.考虑进程之间的影响,组织就是用PCB的队列实现,用到了一些简单的数据结构知识.而本部分重点就是进程之间的切换. 参考资料: 课程:哈工大操作系统(本部分对应 L10 && L11 && L12) 实验:操作系统原理与实践_Linux - 蓝桥云课 (lanqiao.cn) 笔记:操作系统学习导引 · 语雀 (yuque.com) 这一部分比较难,一难在理解,二难在实现,其中L12是最难的,反复看了很多遍.之后需要…
操作系统学习笔记----进程/线程模型----Coursera课程笔记 进程/线程模型 0. 概述 0.1 进程模型 多道程序设计 进程的概念.进程控制块 进程状态及转换.进程队列 进程控制----进程创建.撤销.阻塞.唤醒.... 0.2 线程模型 为什么引入线程 线程的组成 线程机制的实现 用户级线程.核心级线程.混合方式 1. 进程的基本概念 1.1 多道程序设计 允许多个程序同时进入内存运行,目的是为了提高CPU系统效率 1.2 并发环境与并发程序 并发环境: 一段时间间隔内,单处理器上…
作者:Grey 原文地址: Java IO学习笔记五:BIO到NIO 准备环境 准备一个CentOS7的Linux实例: 实例的IP: 192.168.205.138 我们这次实验的目的就是直观感受一下Socket编程中BIO模型和NIO模型的性能差异 BIO 准备服务端代码: import java.io.*; import java.net.InetSocketAddress; import java.net.ServerSocket; import java.net.Socket; /**…
好久没有写博客了,今天抽空继续写MEF系列的文章.有园友提出这种系列的文章要做个目录,看起来方便,所以就抽空做了一个,放到每篇文章的最后. 前面四篇讲了MEF的基础知识,学完了前四篇,MEF中比较常用的基本已经讲完了,相信大家已经能看出MEF所带来的便利了.今天就介绍一些MEF中一些较为不常用的东西,也就是大家口中的所谓的比较高级的用法. 前面讲的导出都是在每个类上面添加Export注解,实现导出的,那么有没有一种比较简便的方法呢?答案是有的,就是在接口上面写注解,这样只要实现了这个接口的类都会…
<30天自制操作系统>笔记(06)——CPU的32位模式 进度回顾 上一篇中实现了启用鼠标.键盘的功能.屏幕上会显示出用户按键.点击鼠标的情况.这是通过设置硬件的中断函数实现的,可以说硬件本身的设计就具有事件驱动的性质,所以软件层面上才有基于事件的消息机制. 但上一篇没有说明中断的来龙去脉,本篇就从头到尾描述一下CPU与此相关的设置问题. Segment 32位的CPU使用32条地址线,能区分232=4G个内存地址.每个内存地址都有1Byte的内容. 分段,就是将4GB的内存分成很多块(blo…
Qt Model/View 学习笔记 (五) View 类 概念 在model/view架构中,view从model中获得数据项然后显示给用户.数据显示的方式不必与model提供的表示方式相同,可以与底层存储数据项的数据结构完全不同. 内容与显式的分离是通过由QAbstractItemModel提供的标准模型接口,由QAsbstractItemview提供的标准视图接口共同实现的.普遍使用model index来表示数据项.view负责管理从model中读取的数据的外观布局. 它们自己可以去渲染…
java之jvm学习笔记五(实践写自己的类装载器) 课程源码:http://download.csdn.net/detail/yfqnihao/4866501 前面第三和第四节我们一直在强调一句话,类装载器和安全管理器是可以被动态扩展的,或者说,他们是可以由用户自己定制的,今天我们就是动手试试,怎么做这部分的实践,当然,在阅读本篇之前,至少要阅读过笔记三. 下面我们先来动态扩展一个类装载器,当然这只是一个比较小的demo,旨在让大家有个比较形象的概念. 第一步,首先定义自己的类装载器,从Clas…