当前位置: 首页 > 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数据。

http://www.dtcms.com/a/72901.html

相关文章:

  • 单机 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的宏与变量魔法
  • 日志存储与分析
  • CSS3-流星雨
  • 大型语言模型与强化学习的融合:迈向通用人工智能的新范式——基于基础复现的实验平台构建
  • 办公自动化:使用 Python 生成 Word 文件:自动生成数据库文档 Word 文件
  • 从PDF文件中提取数据
  • 基于 Verilog 的时序设计:从理论到实践的深度探索
  • SpringMVC(七)数据校验+VO++脱敏
  • 五模型对比!Transformer-GRU、Transformer、CNN-GRU、GRU、CNN五模型多变量时间序列预测
  • 【sql靶场】第13、14、17关-post提交报错注入保姆级教程
  • C# WPF 基础知识学习(三)