1. 基本原理 在轮转(RR)法中,系统根据FCFS策略,将所有的就绪进程排成一个就绪队列,并可设置每隔一定时间间隔(即时间片)即产生一次中断,激活系统中的进程调度程序,完成一次调度,将CPU分配给队首进程,令其执行。 进程切换时机: 若一个时间片尚未用完,进程就已经结束,则立即激活调度程序,将其从 ...
分类:
编程语言 时间:
2020-05-28 13:48:54
阅读次数:
198
一、概述 决定何时、如何选择一个新进程运行的这组规则叫做:调度策略(scheduling policy)。 Linux的调度是基于分时技术(time sharing):多个进程以“时间多路复用”方式运行,因为CPU的时间呗分成“片”(slice),给每个可运行进程分配一片。如果当前运行进程的时间片或 ...
分类:
系统相关 时间:
2020-05-19 20:51:09
阅读次数:
74
1.在ubantu配置实验环境: wget https://raw.github.com/mengning/mykernel/master/mykernel-2.0_for_linux-5.4.34.patch(直接从GitHub拿,使用wget有可能失败) sudo apt install axe ...
分类:
其他好文 时间:
2020-05-12 20:17:40
阅读次数:
53
一、程序,进程,线程联系和区别 其实程序是一段静态的代码,它是应用程序执行的脚本。进程就是程序动态的执行过程,它具有动态性,并发性,独立性。线程是进程调度和执行的单位。 进程:每个进程都有独立的代码和数据空间(进程上下文),一个进程包含一个或者多个线程,同时线程是资源分配的最小单位。 线程:同一类线 ...
分类:
编程语言 时间:
2020-05-10 21:32:55
阅读次数:
64
为什么会发生进程调度? 因为处理机的数量小于进程的数量。进程争用处理机。而调度又是分层次的。 调度的时机、切换与过程 请求调度 -> 调度 ->切换。 但是,调度请求后,并不一定会进行调度与切换: 1)在处理中断的过程中,由于中断过程比较复杂的,中断属于系统工作的一部分,很难说清楚属于哪一个进程,所 ...
分类:
系统相关 时间:
2020-05-07 15:45:28
阅读次数:
71
SPOOLing和虚拟化 什么是虚拟化 虚拟化就是 无中生有 ,就是 暗度陈仓 (狗头保命)。仔细观察整个计算机系统的设计,到处都体现着虚拟化的技术。当然虚拟化就是操作系统设计的要求之一。我们很好理解 CPU 的虚拟化技术,也就是通过进程调度实现多道程序的功能。在“无知的我”看来计算机不止一块CPU ...
分类:
其他好文 时间:
2020-05-07 10:41:36
阅读次数:
167
在Intel i386 CPU中,提供了TSS与TR用于任务切换,但是Linux出于效率的考虑自己实现了任务切换。但Linux内核还是使用了TSS,用于完成系统堆栈空间的自动切换(从用户空间进入系统空间时的堆栈切换)。 进程调度与切换 三种不同应用的需求:交互式,批处理,实时 调度政策:内核为系统中 ...
分类:
系统相关 时间:
2020-04-30 17:25:02
阅读次数:
79
之前写过一个文章。 利用python画出SJF调度图 动态高度优先权优先调度 动态优先权调度算法,以就绪队列中各个进程的优先权作为进程调度的依据。各个进程的优先权在创建进程时所赋予,随着进程的推进或其等待时间的增加而改变。进程的优先权利用某一范围内的整数来表示。有的系统数值越小优先权越高,如Unix ...
分类:
编程语言 时间:
2020-04-26 18:58:57
阅读次数:
77
之前写过一个文章。 利用python画出SJF调度图 动态高度优先权优先调度 动态优先权调度算法,以就绪队列中各个进程的优先权作为进程调度的依据。各个进程的优先权在创建进程时所赋予,随着进程的推进或其等待时间的增加而改变。进程的优先权利用某一范围内的整数来表示。有的系统数值越小优先权越高,如Unix ...
分类:
编程语言 时间:
2020-04-21 09:50:50
阅读次数:
60
普通进程: 采用动态优先级来调度 调度程序周期性地修改优先级(避免饥饿) 实时进程: 采用静态优先级来调度 由用户预先指定,以后不会改变 静态优先级: 进程创建时指定或由用户修改。 动态优先级: 在进程运行期间可以按调度策略改变。 非实时进程采用动态优先级,由调度程序计算 只要进程占用CPU,优先级 ...
分类:
系统相关 时间:
2020-04-16 00:45:34
阅读次数:
98