深入理解Linux内核-进程调度
1、什么时候进行进程切换
调度策略目标:1、进程响应尽量快;2、后台作业吞吐量尽量高;3、尽可能避免进程饥饿;4、低优先级和高优先级进程需要尽量调和。 调度策略:决定什么时候选择什么进程运行的规则。基于分时技术。调度程序跟踪进程,动态调整优先级 进程分三类:1、交互进程;2、批处理进程;3、实时进程; 抢占无需等待当前进程的时间片片结束 时间片:应该大于进程切换花费的时间,越大,CPU利用率越高。但是太大又会导致进程看起来不是并发的。 进程动态优先级:进程的动态优先级,是在静态优先级的基础上,根据它的平均睡眠时间,调整它的优先级,睡眠时间长,提高它的优先级;反之,降低优先级
公式 动态优先级 = max(100, min(静态优先级 - bonus +5, 139)
其中bonus 与平均睡眠时间成正比,范围是0~10。 活动进程:没有用完时间片的进程,运行运行 过期进程:用完了时间片的进程,被禁止运行,直到所有的活动进程都过期 另外:活动的批处理进程总是会变为过期进程,活动的交互进程通常仍然是活动进程,它会被调度程序重新填充时间片。 实时进程:与实时优先级相关(1~99),实时进程总是活动进程 两种创建新进程的方式:1、fork:创建当前进程的副本;2、exec:将新进程加载到当前进程的内存中执行。 内核支持的程序执行形式:
1、Unix进程,也叫做重量级进程;本质上进程可以由N个线程组成,这些线程共享数据和资源。
2、线程,也叫做轻量级进程 命名空间:
1、包含N个PID的集合
进程地址空间:
、每个进程使用独立的虚拟地址空间
2、虚拟地址空间都是一样都大小,不考虑可用物理内存的大小
3、使用页表为物理地址分配虚拟地址
4、两个进程的虚拟地址页可以映射到同一个物理地址页帧,即共享内存 页:虚拟地址空间中的页
页帧:物理内存页 页表:将虚拟地址空间映射到物理地址空间的数据结构。
深入理解Linux内核-进程调度的更多相关文章
- 读书笔记之Linux系统编程与深入理解Linux内核
前言 本人再看深入理解Linux内核的时候发现比较难懂,看了Linux系统编程一说后,觉得Linux系统编程还是简单易懂些,并且两本书都是讲Linux比较底层的东西,只不过侧重点不同,本文就以Linu ...
- 【读书笔记::深入理解linux内核】内存寻址【转】
转自:http://www.cnblogs.com/likeyiyy/p/3837272.html 我对linux高端内存的错误理解都是从这篇文章得来的,这篇文章里讲的 物理地址 = 逻辑地址 – 0 ...
- 【读书笔记::深入理解linux内核】内存寻址
我对linux高端内存的错误理解都是从这篇文章得来的,这篇文章里讲的 物理地址 = 逻辑地址 – 0xC0000000:这是内核地址空间的地址转换关系. 这句话瞬间让我惊呆了,根据我的CPU的知识,开 ...
- 《深入理解Linux内核》 读书笔记
深入理解Linux内核 读书笔记 一.概论 操作系统基本概念 多用户系统 允许多个用户登录系统,不同用户之间的有私有的空间 用户和组 每个用于属于一个组,组的权限和其他人的权限,和拥有者的权限不一样. ...
- 理解Linux内核之中断控制
乍一看下边的Linux内核代码,貌似L3389有bug,于是我就绕有兴趣地阅读了一下local_irq_save/local_irq_restore的源代码. /* linux-4.14.12/mm/ ...
- Linux内存管理(深入理解Linux内核)
Linux的内存管理,实际上是借助80x86的硬件分段和分页电路,将逻辑地址转化为物理地址的. 物理内存中,有一部分是一直(Permanently)映射给内核使用的,这部分主要用于保存内核的代码,以及 ...
- 【深入理解Linux内核架构】第3章:内存管理
3.1 概述 内存管理涵盖了许多领域: 内存中物理内存页的管理: 分配大块内存的伙伴系统: 分配小块内存的slab.slub.slob分配器: 分配非连续内存块的vmalloc机制: 进程的地址空间. ...
- 深入理解Linux内核 学习笔记(1)
1.用户和用户组 每个用户是一个或多个用户组的一名成员,组由唯一的用户组标识符(user group ID)标识.每个文件的相关权限也恰好与一个组相对应. root为超级用户, 2.模块 为了达到微内 ...
- 深入理解Linux内核-信号
信号:1.最初被引入作为用户态进程间通信2.内核也使用信号通知进程系统所发生的事件3.信号很短,发送给进程的唯一信息通常是一个数.4.名称通常以SIG为前缀5.信号时可消费资源,每个信号只能被传递一次 ...
- 深入理解Linux内核-中断和异常
Linux内核代码查看 http://androidxref.com/ 中断:被定义位一个事件,它能改变处理器执行指令的顺序.它对应硬件(CPU.其他硬件设备)电路产生的电信号. 同步中断:指令执行时 ...
随机推荐
- 〖Linux〗秒开www.stackoverflow.com,非代理方式
stackoverflow.com就不介绍了,一种解决方法就是手动分析链接,使用nslookup得到hosts: #stack overflow 198.252.206.140 cdn.sstatic ...
- Axure 富文本框
百度网盘:http://pan.baidu.com/s/1c1ZjUPq
- excel 上标和下标
开始--字体--设置单元格格式--上标/下标
- Java循环中标签的作用(转)
转自:http://lihengzkj.iteye.com/blog/1090034 以前不知道在循环中可以使用标签.最近遇到后,举得还是有其独特的用处的.我这么说的意思是说标签在循环中可以改变循环执 ...
- 使用mapreduce来分析网站的log日志
近日,有人和我说分析log日志. 之前,就写过,但是忘了总结了,找了半天也没有找到,看了以后要将东西整理了. 无奈,在网上收拾,看到这个人写的,索性,就搬过来,待我找到我写的,在一块补充一下! 所有网 ...
- Easyui实用视频教程系列---Tree点击打开tab页面
Easyui实用视频教程系列---Tree点击打开tab页面 首先 我们 要搭建环境 easyui 环境 然后 把tree 给创建出来 在某个位置 粘贴 下面代码 <ul id="tt ...
- [转载]RHEL-6启动时提示:“/usr/libexec/gconf-sanit
原文地址:RHEL-6启动时提示:"/usr/libexec/gconf-sanity-check-2 exited with status 256"作者:huage 系统环境:R ...
- Scribes:小型文本编辑器,支持远程编辑
Scribes是一款简洁的文本编辑器.现在给大家介绍下. 功能列表, Python插件扩展 支持远程编辑(如ftp, sftp, ssh, samba, webdav, webdavs) ...
- js跨域问题解释 使用jsonp或jQuery的解决方案
js跨域及解决方案 1.什么是跨域 我们经常会在页面上使用ajax请求访问其他服务器的数据,此时,客户端会出现跨域问题. 跨域问题是由于javascript语言安全限制中的同源策略造成的. 简单来说, ...
- 【Spring】Spring之向 IOC 容器注入对象的三种方式
关于Spring的搭建可参见:浅析Spring框架的搭建.在测试之前还是应该先将环境配置好,将相关Jar包导进来.Spring创建的对象,默认情况下都是单例模式,除非通过scope指定. 向IOC容器 ...