• 深入理解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的集合

     进程地址空间:

    1、每个进程使用独立的虚拟地址空间
    2、虚拟地址空间都是一样都大小,不考虑可用物理内存的大小
    3、使用页表为物理地址分配虚拟地址
    4、两个进程的虚拟地址页可以映射到同一个物理地址页帧,即共享内存

    页:虚拟地址空间中的页
    页帧:物理内存页

    页表:将虚拟地址空间映射到物理地址空间的数据结构。


  • 相关阅读:
    HAproxy 1.5 dev14 发布
    IBM/DW 使用 Java 测试网络连通性的几种方法
    Skype 4.1 Linux 发布,支持微软帐号登录
    Dorado 7.1.20 发布,Ajax的Web开发平台
    Aspose.Slides for Java 3.0 发布
    开发版本 Wine 1.5.18 发布
    BitNami Rubystack 开始支持 Ruby 2.0
    XWiki 4.3 正式版发布
    Silverlight实例教程 Out of Browser的Debug和Notifications窗口
    Silverlight实例教程 Out of Browser与Office的互操作
  • 原文地址:https://www.cnblogs.com/lipeil/p/4684992.html
Copyright © 2020-2023  润新知