zoukankan      html  css  js  c++  java
  • 深入理解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、两个进程的虚拟地址页可以映射到同一个物理地址页帧,即共享内存

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

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


  • 相关阅读:
    hdu 5087(次长上升子序列)
    hdu 5086(递推)
    hdu 5084(矩阵操作)
    hdu 5083(模拟)
    hdu 5082(水题)
    高数准备:
    ★ phpStudy安装SSL证书实现https链接
    phpStudy环境安装SSL证书教程
    Qt中切换窗口功能的实现
    LeetCode OJ:Reverse Linked List II(反转链表II)
  • 原文地址:https://www.cnblogs.com/lipeil/p/4684992.html
Copyright © 2011-2022 走看看