• <div id="0yoao"><tr id="0yoao"></tr></div>
    <dl id="0yoao"></dl>
  • <sup id="0yoao"></sup>
    <div id="0yoao"><tr id="0yoao"></tr></div>
  • <div id="0yoao"><tr id="0yoao"></tr></div>
  • CFS调度器(3)-组调度

    作者:smcdef 发布于:2018-11-10 20:43 分类:进程管理

    前言

    现在的计算机基本都支持多用户登陆。如果一台计算机被两个用户A和B使用。假设用户A运行9个进程,用户B只运行1个进程。按照之前文章对CFS调度器的讲解,我们认为用户A获得90% CPU时间,用户B只获得10% CPU时间。随着用户A不停的增加运行进程,用户B可使用的CPU时间越来越少。这显然是不公平的。因此,我们引入组调度(Group Scheduling )的概念。我们以用户组作为调度的单位,这样用户A和用户B各获得50% CPU时间。用户A中的每个进程分别获得5.5%(50%/9)CPU时间。而用户B的进程获取50% CPU时间。这也符合我们的预期。本篇文?#38470;?#35299;CFS组调度实现原理。

    注:代码分析基于Linux 4.18.0。使能组调度需要配置CONFIG_CGROUPS和CONFIG_FAIR_GROUP_SCHED。

    阅读全文>>

    评论(10) 浏览(3719)

    CFS调度器(2)-源码解析

    作者:smcdef 发布于:2018-10-21 20:55 分类:进程管理

    前言

    经通过上一篇文章《CFS调度器-基本原理》,我们可以了解到CFS调度器基本工作原理。本篇文章主要集中在Linux CFS调度器源码解析。

    注:文章代码分析基于Linux-4.18.0。

    阅读全文>>

    标签: CFS

    评论(16) 浏览(4380)

    CFS调度器(1)-基本原理

    作者:smcdef 发布于:2018-10-7 17:36 分类:进程管理

    前言

    首先需要思考的问题是:什么是调度器(scheduler)?调度器的作用是什么?调度器是一个操作系统的核心部分。可以比作是CPU时间的管理员。调度器主要负责选择某些就绪的进程来执行。不同的调度器根据不同的方法挑选出最适合运行的进程。目前Linux支持的调度器就有RT scheduler、Deadline scheduler、CFS scheduler及Idle scheduler?#21462;?#25105;想用一系列文章呈现Linux 调度器的设计原理。

    注:文章代码分析基于Linux-4.18.0。

    阅读全文>>

    标签: CFS

    评论(15) 浏览(6412)

    per-entity load tracking

    作者:linuxer 发布于:2018-8-18 10:27 分类:进程管理

    本文分三个部分描述了3.8内核引入的PELT(per-entity load tracking)机制。第一章主要描述了PELT比per-runqueue load tracking的?#20040;?#22312;哪里,这也是引入PELT的原因。第二章描述了具体PELT的算法,?#34892;?#36259;的同学可以自行根据代码进行分析。第三章主要给出几个PELT的应用场景,在这些场景中,其他的内核子系统可以通过PELT进行更精准?#30446;?#21046;。

    本文?#23884;詇ttps://lwn.net/Articles/531853/的翻译,?#34892;?#36259;的同学可以参考原文。

    阅读全文>>

    标签: PELT per-entity load tracking

    评论(1) 浏览(3775)

    Linux中常见同步机制设计原理

    作者:smcdef 发布于:2018-6-9 16:19 分类:内核同步机制

    引言

    今天谈谈linux中常见并发访问的保护机制设计原理。为什么要写这篇文章呢?#31185;?#23454;想帮助自己及读者更深入的了解背后的原理(据可靠消息,锁的实现经常出现在?#36866;曰方凇?#26082;可以考察面试者?#36816;?#30340;原理的理解,又可以考察面试者编程技能)。我们抛开linux中汇编代码。用C语言为大家呈现背后实现的原理。同时,文章中的代码都没有考虑并发情况(例如某些操作需要原?#26377;裕?#25110;者数据需要保护等)。

    阅读全文>>

    标签: spin lock mutex rw_lock

    评论(20) 浏览(8852)

    KASLR

    作者:smcdef 发布于:2018-5-6 10:00 分类:内存管理

    引言

    什么是KASLR?KASLR是kernel address space layout randomization的缩写,直译过来就是内核地址空间布局随机化。KASLR技术允许kernel image加载到VMALLOC区域的任何位置。当KASLR关闭的时候,kernel image都会映射到一个固定的链接地址。对于黑客来说是透明的,因此安全性得不到保证。KASLR技术可以让kernel image映射的地址相对于链接地址有个偏移。偏移地址可以通过dts设置。如果bootloader支持每次开机随机生成偏移数值,那么可以做到每次开机kernel image映射的虚拟地址都不一样。因此,对于开启KASLR的kernel来说,不同的产品的kernel image映射的地址?#36127;?#37117;不一样。因此在安全性上有一定的提升。

    阅读全文>>

    标签: kaslr

    评论(15) 浏览(7710)

    fixmap addresses原理

    作者:smcdef 发布于:2018-4-29 20:35 分类:内存管理

    引言

    fixmap是一段固定地址映射。kernel预留一段虚拟地址空间。因此虚拟地址是在编译的时候确定。fixmap可以用来做什么?kernel启动初期,由于此时的kernel已经运行在虚拟地址上。因此我们访问具体的物理地址是不行的,必须建立虚拟地址和物理地址的映射,然后通过虚拟地址访问才可以。例如:dtb中包含bootloader传递过来的内存信息,我们需要解析dtb,但是我们得到的是dtb的物理地址。因此访问之前必须创建映射,创建映射?#20013;?#35201;内存。但是由于所有的内存管理子系统还没有ready。因此我们不能使用ioremap接口创建映射。为此kernel提出fixmap的解决方案。

    阅读全文>>

    评论(9) 浏览(4478)

    文件系统和裸块设备的page cache问题

    作者:阿克曼 发布于:2018-4-28 10:16 分类:文件系统

    普通文件的数据可以保存在它的地址空间中,同时直接访问块设备中此文件?#30446;椋不?#23558;这个文件的数据保存在块设备的地址空间中。这两份缓存相互独立,kernel并不会为这?#22336;?#27491;常访问同步两份缓存,从而避免了同步?#30446;?#38144;。

    注:本文代码基于linux-3.18.31,此版本中块缓存已经合入页缓存。

    阅读全文>>

    评论(4) 浏览(4129)

    一次触摸屏中?#31995;?#35797;引发的深入探究

    作者:heaven 发布于:2018-4-23 16:01 分类:Linux内核分析

    大家好,我叫张昺华,中间那个字念“饼?#20445;?#39318;先非常?#34892;?#38472;莉君老师的指点,题目名字也是陈老师起的,也很荣幸此文章能在蜗窝上发表一次,?#34892;还?#22823;侠给的机会

    如下为本人原创,在解决问题的过?#35752;?#30340;一点心得,如果有描述不准确的地方还请各位指出,非常?#34892;?/span>


    Linux内核版本:linux-4.9.18 

    曾有一次调?#28304;?#25720;屏的时候遇到如下的问题

    阅读全文>>

    标签: 中断

    评论(12) 浏览(6023)

    ARM64 Kernel Image Mapping的变化

    作者:smcdef 发布于:2018-4-21 20:25 分类:内存管理

    随着linux的代码更新,阅读linux-4.15代码,从中发现很多与众不同的地方。之所以与众不同,就是因为和我之前从网上博客或者书籍中看到的内容有所差异。当然了,并不是为了表明书上或者博客的观点是错误的。而是因为linux代码更新的太快,网?#31995;?#21338;客和书籍跟不上linux的步伐而?#36873;?#31350;竟是哪些发生了差异了?例如:kernel image映射区域从原来的linear mapping region(线性映射区域)搬移到VMALLOC区域。因此,我希望通过本篇文?#38470;?#26195;这些差异。当然,我相信不久的将来这篇文章也将会成为一段历史。

    阅读全文>>

    评论(13) 浏览(10303)

    Copyright @ 2013-2015 蜗窝科技 All rights reserved. Powered by emlog
    连码三全中是什么
  • <div id="0yoao"><tr id="0yoao"></tr></div>
    <dl id="0yoao"></dl>
  • <sup id="0yoao"></sup>
    <div id="0yoao"><tr id="0yoao"></tr></div>
  • <div id="0yoao"><tr id="0yoao"></tr></div>
  • <div id="0yoao"><tr id="0yoao"></tr></div>
    <dl id="0yoao"></dl>
  • <sup id="0yoao"></sup>
    <div id="0yoao"><tr id="0yoao"></tr></div>
  • <div id="0yoao"><tr id="0yoao"></tr></div>
  • 历史六合图库 宁夏十一选五电子走势图 福彩双色球中彩网 彩票有人拉我合买 湖北30选5基本走势图 梭哈老夫 三肖中特三五八是什么生肖 15307期3D开奖号码 青海快三的 11选5前三组选中奖绝招 吉林时时彩开奖现场报码 江苏快3倍投计算器 单双中特六和彩图库 山东十一选五任二技巧 青海十一选五基本走势图