问题标签 [preemptive]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
c - 如何在C中首先应用抢占式最短作业算法
我正在尝试在 C 中实现不同的 OS 调度算法。我已经实现了 FCFS 和非抢占式最短作业优先调度,但是,对于抢占式 SJF 将发生的循环,我遇到了困难。这是我的文本文件的示例。
通过求解,我得到的平均等待时间是 4,但是,我似乎无法正确获得算法。
这是我的代码示例
algorithm - 最短剩余时间作业优先调度算法说明
我正在经历各种调度算法,遇到了最短剩余时间作业拳头算法。
我的理解:最短剩余时间作业优先算法是最短时间作业算法的抢先版。这里当一个突发时间较短的新进程到达时,它会抢占当前进程并执行新进程。
我在学习时偶然发现了一个网站。该网站的链接:
https://www.studytonight.com/operating-system/shortest-job-first
我不明白的是,文章的作者说当P4
一个CPU突发时间为2ms的进程到达并P2
执行剩余突发时间为1ms的进程时,P2
被抢占了。为什么呢?不P4
应该放入就绪队列,因为它的突发时间比剩余的突发时间长P2
吗?
我理解比较突发时间的事实,这样P2的cpu突发时间比p4的CPU突发时间(2ms)多(3ms)。但是由于已经执行了2个突发时间,剩余的突发时间为p2小于p4。为什么会被抢占?
c++ - 如何在 C++ 中使用线程实现优先级抢占式调度(类似于中断)
我想在 Windows 上编写一个 C++ 程序(但最好支持跨平台),其中我有两个基于优先级抢占式调度的线程- 这就像一个中断行为(当中断发生时,主线程在任何地方暂停只有当中断线程重新进入睡眠状态时,主线程才会从暂停的地方恢复)。
这些是线程:
- 线程 T_main
- 线程 T_interrupt。
T_main 一直在 while 循环中运行。T_interrupt 应该每秒执行一次,并且它的执行速度非常快。
T_main 中的代码相当大(数千行代码)。
它必须非常准确。
我希望当 T_interrupt 线程运行的时候,它会被优先考虑,这样它就可以不间断地运行,直到它完成,然后线程 T_main 才会从它暂停的地方恢复。
如果您想知道我要做什么,那么这里有一个基本解释:基本上,我正在运行我的嵌入式项目的模拟。我模拟了我的整个硬件,我想在 PC 上的模拟器上运行我的应用程序。目的是测试我的应用程序的逻辑实现。编译器差异和其他缺陷被考虑在内。对我来说至关重要的是能够模拟我的 MCU 上存在的基于 1 秒滴答定时器的中断。我发现很难模拟这种行为,因为线程调度似乎是合作的而不是抢先的。
我尝试使用优先级和设置调度方法,例如循环SCHED_RR
或 FIFO SCHED_FIFO
,但在所有情况下,调度实现仍然是协作的,而不是抢占式的。
这是我的代码:
c - 用什么样的程序来计算线程
以下任务中有一个线程。如何查看是否使用了 Round Robin、FIFO 或 Preemptive Scheduling?
在这种情况下,这不是循环程序,因为优先级是相同的吗?
node.js - 如何避免 jbpm 中的抢先式身份验证错误?
我在 jbpm 中有一个休息服务任务,其中包含我的 nodejs 休息 api 的 url ....在我的休息 api 中,我正在调用 kie 服务器 api 以中止 jbpm 中的流程实例。但是在运行整个过程时,我在 jbpm 中遇到了“无法请求抢先式身份验证”的错误。我想知道我哪里出错了,有什么方法可以让我在我的休息 api 中使用 kie 服务器 api并在 jbpm 的休息服务任务中使用我的休息 api?
任何帮助将不胜感激!!
file - 抢占式调度会影响移动文件的速度吗?
假设我将文件从驱动器C移动到D。
如果我将环境设置为操作系统将进程调度为抢占式调度,是否会影响移动文件的速度?
我听说移动文件保存在内核中,虽然内核(= OS)仍然是一个进程,但我的回答是yes
可能发生上下文切换。
我对吗?如果我错了,我想知道我错过了什么。
algorithm - 如何计算抢占式优先级调度中的开始时间?
我面临的问题是我找不到计算开始时间的方法(在代码中称为startedAt),所以我能够计算周转时间和等待时间。我使用的逻辑如下:
- 我们首先复制突发时间“BurstTime”来存储剩余的突发时间remBurstTime。
- 根据优先级对进程进行排序(优先级越低表示优先级越高)
- 先到达的元素会一直运行,直到到达优先级较高的进程的到达时间,即我们从前一个进程的突发时间中减去后一个进程的到达时间。
- 运行 FCFS。
进程类
抢占式优先方法
FCFS 类。
我用这个算法得到的结果非常接近,我只需要找到正确的方法来计算StartedAt以便其他时间(等待时间、周转时间)变得正确。
我希望你能帮我解决这个问题,在此先感谢。
google-cloud-platform - gcp vm worker 默认网关
我正在为我的员工使用 GCP 抢占式虚拟机。但是,GCP 将使用中的地址限制为 8 个。我要求增加,但他们拒绝了。我尝试使用他们的 NAT,但它似乎是 1:1 的 NAT。我的印象是 NAT 允许多对一的外部连接。
具有讽刺意味的是,我需要“外部”访问来访问托管在云运行上的 API,这只是公共 IP 地址。
我应该回到 AWS 吗?我喜欢抢占式虚拟机,因为我不必像 AWS 那样对现货价格“出价”。我只想为我的工作负载使用虚拟机的降价,工作时间在 5 分钟到 1 小时之间。我不想一遍又一遍地重新提交现场请求并让它可能失败。此外,GCP 虚拟机在 30-40 秒内出现,而 AWS ec2 实例需要 1 分钟或更长时间。
如果您有任何建议或我做错了什么,请告诉我。
提前致谢!