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

27、Solaris 多线程进程架构与内核调度器详解

Solaris 多线程进程架构与内核调度器详解

1. 用户级线程执行与 LWP 关系

用户级线程的执行依赖于轻量级进程(LWP)或内核线程(kthread),由线程库中的调度线程负责将用户线程调度到 LWP 上。用户线程有自己的优先级方案和线程库调度器,线程库调度器和内核调度器在架构上有诸多相似之处。线程创建时无需绑定到 LWP,多线程程序中常将多个未绑定线程调度到较少的 LWP 池上。确定 LWP 与用户线程的最佳比例并非易事,LWP 过多会增加内核管理负担,过少则会使可运行的用户线程等待 LWP,降低整体执行效率。

可通过thr_setconcurrency(3T)接口向操作系统提供应分配给进程的 LWP 数量提示。也可在thr_create(3T)调用中使用THR_NEW_LWP标志创建 LWP,并使用THR_BOUND标志将用户线程绑定到 LWP。

2. 会话与进程组
2.1 进程组
  • 进程组的归属:每个进程都属于一个进程组,由进程结构中的p_pgidp指针标识,在进程创建时由内核的fork代码建立。默认情况下,同一父子/兄弟链中的进程属于同一进程组。进程组 ID(PGID)是进程组领导者的进程 PID,即每个进程组都有一个进程组领导者,其 PID 和 PGID 相同,兄弟进程会被分配父进程的 PGID。
  • 进程组的创建
http://www.jsqmd.com/news/108199/

相关文章:

  • 29、深入解析Solaris内核调度与睡眠唤醒机制
  • 如何快速配置Photoshop AVIF插件:设计师必备的完整指南
  • 19、监控、日志与资源管理:Kubernetes 实战指南
  • 30、Solaris 内核调度激活与处理器控制详解
  • 基于Stacking集成学习算法的数据回归预测(4种基学习器PLS、SVM、BP、RF,元学习器LSBoost)MATLAB代码
  • 快速了解千问家族
  • 10、Kubernetes入门与有状态工作负载管理
  • Kotaemon手机商城参数查询机器人
  • OFD.js终极指南:3步实现浏览器OFD文档完美渲染
  • MATLAB基于Voting-NSGAII的激光熔覆工艺参数优化MATLAB代码
  • 网易云音乐NCM加密文件一键解锁指南
  • 11、Kubernetes 有状态工作负载管理指南
  • 12、Kubernetes 工作负载管理与集群管理全解析
  • 视频硬字幕提取终极指南:免费本地OCR工具完整使用教程
  • 如何快速对比PDF文档差异?diff-pdf工具完整使用指南
  • TweakPNG终极使用指南:快速掌握PNG元数据编辑的完整教程
  • 如何轻松管理Electron应用的asar文件?WinAsar工具使用全攻略
  • 别再迷信“你给我一次,我还你一次”:聊聊数据流水线里的 Exactly-Once 神话
  • 如何快速掌握FFXIV TexTools:终极游戏模组定制完整教程
  • 电脑卡顿元凶揭秘:3步彻底移除Windows Defender让系统飞起来
  • “栈子”叛逆记:凭啥后进先出的你要去干排队?”——用栈实现队列的底层哲学
  • Kotaemon支持GDPR数据删除请求处理
  • 3分钟掌握完整网页截图:零基础终极效率指南
  • 碧蓝航线Alas自动化脚本:三步实现智能委托与科研管理
  • 25、开启 Linux 无限可能之旅
  • RePKG终极指南:3分钟快速解锁Wallpaper Engine壁纸资源
  • 3分钟掌握PatreonDownloader:创作者独家内容一键保存方案
  • 小熊猫Dev-C++完整使用手册:从零基础到项目实战
  • HugeJsonViewer终极指南:如何轻松处理GB级JSON大文件
  • Windows包管理器Winget快速部署全攻略