当操作系统只是进程之一时,抢占式多任务处理如何工作?

2024-03-25

我现在正在阅读有关先发制人的多任务处理的材料,但我忘记了一件事。

所有材料都暗示,操作系统以某种方式从“外部”中断了CPU上正在运行的进程,从而导致了上下文切换等。

然而,我无法想象当操作系统的内核只是 CPU 上的另一个进程时,这将如何工作。当另一个进程已经占用CPU时,操作系统如何从“外部”引起切换?


操作系统不仅仅是另一个进程。当中断发生时,操作系统控制系统的行为。

在调度程序启动进程之前,它会安排在时间片结束时发送计时器中断。假设在此之前没有发生任何其他事情,计时器将触发,内核将接管控制权。如果它选择调度不同的进程,它将切换事物以允许另一个进程运行,然后从中断中返回。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

当操作系统只是进程之一时,抢占式多任务处理如何工作? 的相关文章

  • 如何在 iOS 9 中将 AVCaptureSession 与 Slide Over 和 Split View 结合使用?

    我的团队正在开发一套 SDK条码扫描 https github com pdf417 pdf417 ios 身份证扫描 https github com BlinkID blinkid ios and OCR https github co
  • 文件支持的内存映射的 CPU 缓存行为/策略?

    有谁知道哪种类型的CPU缓存行为或策略 例如不可缓存的写组合 被分配给内存映射文件支持现代 x86 系统上的区域 有什么方法可以检测是哪种情况 并可能覆盖默认行为吗 Windows 和 Linux 是人们感兴趣的主要操作系统 编者注 这个问
  • 程序在 execvp( command.argv[0], command.argv) 之后停止

    我正在编写一个小型 shell 程序 它接受命令并执行它 如果用户输入无效命令 if 语句将返回 1 如果命令正确 则执行该命令 但是一旦执行该命令 程序就会结束 我做错了什么 不执行后面的代码行 我已经使用 ls 和 cat 命令测试了
  • 为什么使用单个“轮次”变量简化彼得森算法不能提供进程同步?

    我正在阅读 操作系统概念 http iips icci edu iq images exam Abraham Silberschatz Operating System Concepts 9th2012 12 pdf 并尝试理解 Peter
  • 双击文件运行 python 脚本。如何获取该文件作为输入?

    我希望能够创建一个程序 可以在最后保存带有我自己的扩展名的文本文件 稍后用户应该能够双击该文件来运行该程序并打开该文件 我需要知道如何使 python 程序成为用户双击文件时打开的默认程序 以及如何在程序开始运行时获取该文件 蟒蛇2 7 M
  • GUI 被 uibackgroundmodes= voip, audio 困住

    我有基于选项卡栏的应用程序 当我放入 plist UIBackgroundModes 时 我的应用程序应该支持 voip GUI 不会加载 它在启动屏幕上很糟糕 并且不会加载第一个选项卡视图 当我从 info plist 中删除 UIBac
  • 当JVM执行Java应用程序时,操作系统的作用是什么?为什么我们需要操作系统?

    我在网上读过一些资料 有人说Java应用程序是由java虚拟机 JVM 执行的 执行 这个词让我有点困惑 据我所知 非Java应用程序 即 用C C 编写 可以由操作系统执行 在较低级别 这意味着操作系统将二进制程序加载到内存中 然后指示C
  • x86汇编代码的语法

    我试图了解操作系统的基础知识 并在 OCW 中找到了相关课程 名为 6 828 我在课程的实验室中找到了引导加载程序的代码 我尝试了但不明白以下部分代码 Enable A20 For backwards compatibility with
  • 如何开发才能利用64位系统?

    软件工程师 计算机科学的某些特定领域在针对 64 位系统进行开发时是否存在显着差异 我已经编码了大约 10 年 自从 64 位系统崩溃以来 我的代码没有改变过一丁点 哪些应用程序可以由单个编码员作为业余项目进行编码 并且需要您使用 64 位
  • 如何在状态栏中获得永久的应用程序通知程序?

    我在互联网上搜索了很多 但找不到正确的答案 我在 Android 手机上使用过 3G Watchdog 和 Advanced Task Killer 等应用程序 我注意到 当状态栏最小化时 它们总是有一个图标 并且还有一个无法从状态栏清除的
  • 如何通过WMI确定操作系统平台?

    我试图弄清楚 WMI 中是否有一个位置可以返回可在 所有 版本的 Windows 上工作的操作系统架构 即 32 位或 64 位 当我发现以下内容时 我以为我已经弄清楚了我的Win2k8系统 Win32 OperatingSystem OS
  • 启用 SplitView 和 MultiTask iPad 混合应用程序。删除交互

    我们有 ionic iPad 应用程序 使用 cordova 电容器平台 我们使用以下链接启用了 iPad 13 的分割视图https en gg enable ipad split screen feature in an ionic o
  • 将 Objective-C 代码转换为 C++ 以检测 OS X 上的用户空闲时间

    我正在开发 Qt C 应用程序 我需要简单的函数来在 Mac OS X 上以秒为单位检索用户空闲时间 我发现这个代码用于检测用户空闲时间 include
  • 防止 iOS 在进入后台之前截取应用程序的屏幕截图

    大家可能都知道 iOS 在将应用程序放入后台之前会对其进行屏幕截图 这通常是为了更好的用户体验 例如快速动画以恢复应用程序等 我不希望我的应用程序屏幕截图存储在设备上 但我希望多任务处理仍然存在 我想出了一个解决方案 但我不确定我是否朝着正
  • Python 上的 io.open() 和 os.open() 有什么区别?

    我意识到open 我一直在使用的函数是一个别名io open 以及导入 from os会掩盖这一点 通过以下方式打开文件有什么区别io模块和os module io open 是文件 I O 的首选高级接口 它将操作系统级文件描述符包装在一
  • 如果物理内存的大小是2^32-1,那么虚拟内存的大小是多少?

    我知道物理地址是 32 位长 但是如何通过这些信息找出虚拟内存的大小 虚拟内存地址空间的总大小为2 32x86架构和更大 目前约为 2 48 x64建筑学 然而 操作系统通常会保留一部分空间 因此 32 位应用程序不一定能一次寻址 4GB
  • 从 Java 访问文件名中带有空格的文件

    我想从java程序访问文件名中有空格的目录中的文件 但它不访问文件 场景是我在文件中有文件名 iread 从该文件中读取文件名 但无法在 java 中打开带有空格的文件 我们使用 File exist 函数来检查文件是否存在 但它返回 fa
  • 如何在 ruby​​ 中后台运行多个外部命令

    给定这个 Unix shell 脚本 test sh bin sh sleep 2 sleep 5 sleep 1 wait 时间 test sh real 0m5 008s user 0m0 040s sys 0m0 000s 如何在 U
  • 为什么x86分页没有特权环的概念?

    早在 1982 年 当 Intel 发布 80286 时 他们在分段方案中添加了 4 个特权级别 环 0 3 由全局描述符表 GDT 和局部描述符表 LDT 中的 2 位指定 在 80386 处理器中 Intel 添加了分页功能 但令人惊讶
  • python:获取上两层目录

    好吧 我不知道模块在哪里x是 但我知道我需要向上两层目录的路径 那么 有没有更优雅的方法 import os two up os path dirname os path dirname file 欢迎提供适用于 Python 2 和 3

随机推荐