深入理解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.其他硬件设备)电路产生的电信号. 同步中断:指令执行时 ...
随机推荐
- ibatis 批量更新(二)
1.情景展示 oracle数据库中,需要根据指定字段内容调用加密程序后,根据主键id进行更新其对应的字段mindex_id的值: 加密通过Java实现,然后通过Java对其进行更新: Java使用 ...
- 删除sql server用户时报15138错误
问题 在删除sql server中某数据库下的用户时报15138错误,见下图 解决 可用下述sql代码检查该用户的架构信息,然后逐一修正 SELECT s.name FROM sys.schemas ...
- 目前主流的MQ
RabbitMQ.ActiveMQ.Jafka/Kafka.ZeroMQ.Redis等 这些mq框架的优缺点以及适用场景可自行百度. 后面我将对部分MQ框架进行比较深的学习
- Win10易升-在线升级工具
Win7盗版激活,直接用win10官方推荐的工具在线升级W10直接升级为正版用户... 00.升级协议 11.兼容检测 22.工具下载 Window10官方在线升级工具:https://pan.bai ...
- Java成神之路[转]
阿里大牛珍藏架构资料,点击链接免费获取 针对本文,博主最近在写<成神之路系列文章> ,分章分节介绍所有知识点.欢迎关注. 主要版本 更新时间 备注 v1.0 2015-08-01 首次发布 ...
- 推荐系统 SVD和SVD++算法
推荐系统 SVD和SVD++算法 SVD: SVD++: [Reference] 1.SVD在推荐系统中的应用详解以及算法推导 2.推荐系统——SVD/SVD++ 3.SVD++ 4.SVD++协 ...
- 自动化安装smokeping-2.6.11脚本
自动化安装Smokeping-2.6.11脚本 一.目的 1.1 监控目的 为方便监测各数据中心网络状况,自定义全国各节点,从而发现网络异常,判断网络故障. 1.2 本文目的 快速部署Smokepin ...
- Nginx对某个目录或整个网站进行登录认证的方法
比如要对 网站目录下的 test 文件夹 进行加密认证 首先需要在opt 的主目录中 /opt/ 创建一个新文件 htpasswd此文件的书写格式是用户名:密码每行一个账户并且 密码必须使用函数 cr ...
- mysql数据库优化 pt-query-digest使用
mysql数据库优化 pt-query-digest使用 一.pt-query-digest工具简介 pt-query-digest是用于分析 mysql慢查询的一个工具,它可以分析binlog.Ge ...
- 【struts2】预定义拦截器
1)预定义拦截器 Struts2有默认的拦截器配置,也就是说,虽然我们没有主动去配置任何关于拦截器的东西,但是Struts2会使用默认引用的拦截器.由于Struts2的默认拦截器声明和引用都在这个St ...