当前位置: 首页 > news >正文

linux:进程调度(下)

Linux中进程运行队列的组织方式:

nr_active记录当前队列进程数

问题:

1.调度器要均衡的调度与优先级高的先调度冲突(饥饿问题:一直插入比较高优先级的进程,老的优先级低的进程一直不会被调度)

                 解决:a: 新进程先放入过期队列中,b: 时间片到了的进程也放入过期队列中。保证active队列中进程只会越来越少,active队列中优先级低的也会被调度。

Linux中进程调度:

1.老进程退出

不放回队列,其余处理看前章

2.进程时间片到了,切换

放入过期队列中

3.创建新进程

放入过期队列中

执行:

找队列非空位置(linux内核O(1)调度算法

从队列头部遍历找非空进程链表O(n),用int bitmap[5] 大小32*5=160bit,记录队列140个优先级位置是否为空。充当位图。

active队列空了,交换队列指针指向,继续执行、

补充:linux进程可以同时在不同链表中(等待队列,运行队列,全局链表.....)

实现:双链表结构,且只有链接字段,通过添加字段即可添加队列。

用偏移量找PCB数据。

相关文章:

  • 单机 elasticsearch下载,安装,配置,启动,百度云链接提供
  • 【C语言】动态内存管理用realloc管理更灵活
  • CSS Table (表格)
  • windows上清理docker
  • Dify使用部署与应用实践
  • Python学习第十九天
  • 在Flutter中使用Future读取一个大文件会导致线程阻塞吗
  • Vue3 修改Pinia数据
  • 解决 VSCode SSH 连接报错:“REMOTE HOST IDENTIFICATION HAS CHANGED” 的问题
  • pycharm配置镜像源【pycharm最新版(23.2.5及以上)方法】
  • 使用 WebP 优化 GPU 纹理占用
  • AT指令集-LTE
  • PHP优化技术
  • Oracle Linux Server 7.9安装fail2ban
  • 嵌入式八股,为什么单片机中不使用malloc函数
  • 高效手机检测:视觉分析技术的优势
  • LinuX---Shell---变量
  • A1000学习笔记
  • Flask使用Blueprint注册管理路由
  • SQLMesh 系列教程:解锁SQLMesh的宏与变量魔法
  • 广州小企业网站制作/厦门人才网官网招聘信息网
  • 南部县人民医院皮肤科/网站seo是什么
  • 网站建设上海网站建设/在线培训课程
  • 北京网站的优化/北京网络营销推广公司
  • 广州专业的网站建设/分享几个x站好用的关键词
  • 网站实例/全国疫情防控最新数据