在多任务系统中,进程如何将控制权返回给任务管理器?

发布于 2024-09-28 03:18:14 字数 230 浏览 2 评论 0原文

只是一个简单的问题:在单任务系统中,操作系统将 smt 复制到内存,然后“转到”那里的某个地方,程序稍后将控制权返回给任务管理器。但在多任务操作系统中,我们只需在进程中执行几个步骤,然后返回任务管理器等待轮到自己。我们如何在没有“goto”和“ret”的情况下“转到任务管理器”?

(我想到的唯一一件事是 CPU 中出现一些奇怪的中断,例如 'have made one instructions'

Just a simple question: in a single-task system OS copies smt to memory and then 'goes to' somewhere there and program returns control to task manager later. But in multitasking OS we just make a few steps inside the process and than return to task manager waiting for own turn. How do we 'go to task manager' without 'goto' and 'ret's?

(The only thing that comes to mind - some strange interruption in CPU like 'have made one instruction' )

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(1

热血少△年 2024-10-05 03:18:14

多任务系统有两种主要类型。合作型和先发制人型。

在协作系统中,每个任务都被赋予控制权,然后预计运行一段时间。然后它必须自愿将控制权返回给调度程序。这可以通过预定函数的运行到完成或通过调用yield()函数来实现。执行不产生的任务可能会导致系统无响应。

在抢占式系统中,调度程序通过执行时间切片和/或任务优先级来保持对运行什么任务以及运行多长时间的完全控制。强制执行本身通常由系统时钟触发,该系统时钟以某个固定速率生成中断。由于此属性,使系统无响应变得更加困难,但仍然可以通过优先级反转或资源死锁来实现。

There are two major types of multi-tasking systems. Cooperative and Pre-emptive.

In a cooperative system each task is given control then expected to run for some period. It must then voluntarily return control to the scheduler. This may be through run-to-completion of a scheduled function or by calling a yield() function. It is possible to make the system unresponsive by executing a task that doesn't yield.

In a preemptive system the scheduler maintains full control of what task runs and for how long through enforcement of time-slicing and/or task priority. The enforcement itself is typically triggered by a system clock that generates interrupts at some fixed rate. Because of this property it is more difficult to make the system unresponsive but still possible through priority inversion or resource deadlocks.

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文