第一次作业内容 挑选一个开源的操作系统,深入源码分析其进程模型,具体包含如下内容: 操作系统是怎么组织进程的 进程状态如何转换(给出进程状态转换图) 进程是如何调度的 谈谈自己对该操作系统进程模型的看法 1. 前言 本文基于Linux Kernel 2.6.28 的源代码,分析本版本linux的进程 ...
分类:
系统相关 时间:
2018-05-01 01:03:42
阅读次数:
292
①HashMap的工作原理 HashMap基于hashing原理,我们通过put()和get()方法储存和获取对象。当我们将键值对传递给put()方法时,它调用键对象的hashCode()方法来计算hashcode,让后找到bucket位置来储存值对象。当获取对象时,通过键对象的equals()方法 ...
分类:
其他好文 时间:
2018-04-21 17:42:16
阅读次数:
225
磁盘调度算法 磁盘调度在多道程序设计的计算机系统中,各个进程可能会不断提出不同的对磁盘进行读/写操作的请求。由于有时候这些进程的发送请求的速度比磁盘响应的还要快,因此我们有必要为每个磁盘设备建立一个等待队列,常用的磁盘调度算法有以下四种: [1] 先来先服务算法(FCFS), 最短寻道时间优先算法( ...
分类:
编程语言 时间:
2018-04-05 11:37:47
阅读次数:
391
一 基本概念 1 队列中的记录通常是进程的进程控制块。 2 CPU调度决策可在如下四种环境下发生 a 当一个进程从运行状态切换到等待状态 例如,I/O请求或调用wait以等待一个子进程的终止 b 党一个进程从运行状态切换到就需状态 例如,当出现中断 c 当一个进程从等待状态切换到就需状态 例如,I/ ...
分类:
编程语言 时间:
2017-11-18 14:56:49
阅读次数:
204
Linux目前的进程调度算法是CFS算法,替换了之前的时间片轮转调度算法,CFS算法平滑了动态优先级的计算过程,使整个系统在任何时间都可以被任何
执行实体抢占,事实上这是分时系统的基本原则,试想,如何每一个进程/线程都像中断那样,依靠自己的优先级随时执行,那整个系统才真..
分类:
其他好文 时间:
2014-10-12 18:58:29
阅读次数:
224
Linux目前的进程调度算法是CFS算法,替换了之前的时间片轮转调度算法,CFS算法平滑了动态优先级的计算过程,使整个系统在任何时间都可以被任何执行实体抢占,事实上这是分时系统的基本原则,试想,如何每一个进程/线程都像中断那样,依靠自己的优先级随时执行,那整个系统才真的成了“公平的”利他系统。要想理解这种利他行为的本质,如果我们去研究CFS调度算法的各种统计数据,或者去研究其代码,那么其效果肯定是...
分类:
其他好文 时间:
2014-10-12 15:41:48
阅读次数:
255
从Linux2.5开始Linux实现了0(1)调度算法, 算法的思想要点在于设定动态的nice值确定优先级, 在优先级数组调度(数组最大长度是固定常数) 简而言之,不管系统中有多少进程需要调度都可以在o(1)的时间复杂度内完成调度,是不是很吊啊?但是实践证明(我没证明,文献说的) o(1)对i/o交互型的调度体验上表现很差 轮转周期很不灵活,主要原因在于调度出发点采用粒度很大时间片进行轮换,诚然整体负载会比较好,但是对于i/o交互型的,我们理想的调度策略是采用处理器使用比而不是时间片来分配, ...
分类:
系统相关 时间:
2014-05-02 21:18:41
阅读次数:
460