首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >操作系统进程调度-内核系统调用对进程调度程序有什么影响?

操作系统进程调度-内核系统调用对进程调度程序有什么影响?
EN

Stack Overflow用户
提问于 2021-12-23 20:35:53
回答 1查看 124关注 0票数 1

此问题涉及由正在运行的进程执行的系统调用,以及如何影响调度程序。

  1. ,假设我有一个进程目前处于运行状态。
  2. 决定它需要对内核API执行系统调用(比如访问磁盘)。
  3. 进程进入阻塞状态。调度程序选择一个挂起的进程并让它运行.

我的问题是-如果另一个进程现在正在CPU上运行,系统调用何时/在哪里被执行?还是调度程序在选择要运行的挂起进程之前一直等到系统调用完成?

还有一个额外的问题--无论你给出什么答案,都是通用操作系统和RTOS的情况,或者后者不同(因为任何RTOS调度程序都对时间更敏感,并实现确定性性能)。

EN

回答 1

Stack Overflow用户

发布于 2021-12-25 05:12:18

在现代x86-64上,如果用户模式进程发出系统调用请求磁盘上的数据,则操作系统将磁盘操作放在AHCI或NVME PCI主机控制器的操作队列中。这两种设备都是设备,都是DMA设备.操作系统还保存各种数据结构本身,以确定哪个操作属于哪个进程和其他东西。

操作系统通过内存映射IO请求PCI设备执行操作,然后将该进程置于阻塞队列中,等待MSI/MSI中断,该中断与处理器间中断类似,它绕过IOAPIC直接触发在特定CPU核的IDT中找到的处理程序,该处理器可以通过在PCI设备(AHCI/NVME)的PCI寄存器中使用MMIO更改某些设置来指定。

有关更多信息,请参见我的回答:https://cs.stackexchange.com/questions/142525/data-transfer-between-cpu-ram-and-secondary-storage/142553#142553

票数 3
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/70467145

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档