问题标签 [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.

0 投票
2 回答
429 浏览

erlang - erlang如何实现一个OS线程的抢占式调度?

我想知道 erlang 的 VM 是如何抢占正在运行的代码和上下文堆栈的。如何用 c 之类的语言完成它?

0 投票
1 回答
1102 浏览

linux-kernel - Linux 内核:为什么在使用 per-CPU 变量时禁用抢占?

我从 linux 内核中查看这个宏,它与处理特定于 cpu 的变量有关

为什么我们禁用抢占?当您在内核中时,抢占不是不会发生的事情吗?(因为内核是做抢占的)

0 投票
1 回答
8072 浏览

operating-system - 抢占式和非抢占式内核 VS 抢占式和非抢占式调度

我正在努力理解抢占式和非抢占式内核以及抢占式和非抢占式调度之间的区别。

来自操作系统概念(第九版)、Silberschatz、Galvin 和 Gagne:

抢占式内核是内核允许进程在内核模式下运行时被删除和替换的地方。

抢占式内核不允许以内核模式运行的进程被抢占;内核模式进程将一直运行,直到它退出内核模式、阻塞或自愿放弃对 CPU 的控制。

非抢占式调度下,一旦 CPU 被分配给一个进程,该进程就会保留 CPU,直到它通过终止或切换到等待状态来释放 CPU。- 这对我来说似乎与非抢占内核的描述完全相同。

抢占式调度发生在这两种情况下(来自同一本书):

  1. *当进程从运行状态切换到就绪状态时(例如发生中断时)

  2. 当进程从等待状态切换到就绪状态时(例如,在 I/O 完成时)*

这本书只是说在这种情况下有一个选择,我不确定这个选择是否存在。是选择继续运行就绪队列中的同一个进程,还是选择运行就绪队列中的不同进程?

基本上,我正在寻找对这 4 个术语的明确说明。

谢谢!

0 投票
0 回答
529 浏览

gpu - Google 计算引擎无法选择 1 NVIDIA Tesla K80

我正在尝试在 Google 计算引擎上创建抢占式 VM。由于某种原因,我无法选择 1 GPU NVIDIA Tesla K80,它只是灰显。我可以选择 1 个 GPU NVIDIA Tesla P100。

我可以选择 2 GPU NVIDIA Tesla K80,但随后出现错误:“配额 'PREEMPTIBLE_NVIDIA_K80_GPUS' 已超出。限制:us-central1 区域中的 1.0。”

我不想将配额增加到 2 个 GPU,因为我将不得不存入更多的钱。

以前,我能够选择 2 GPU NVIDIA Tesla K80 并成功启动实例,但在过去 2 个月左右发生了一些变化,现在它无法正常工作

0 投票
1 回答
142 浏览

php - 如何使用 guzzlehttp 客户端将身份验证类型设置为抢占式

我的 php 代码,但我想设置身份验证类型,如何设置身份验证类型?

0 投票
0 回答
260 浏览

c - 我的 FreeRTOS 实施未完成其任务

我的项目有一个 Atmega328p 微控制器(与 Arduino Uno 相同)所以我实现了一个 Arduino Uno 移植的 FreeRTOS v10 项目。

一些规格: - F_CPU = 1 MHz - 在定时器 0 上运行 - 抢占模式 - 时间片 = 开启

我的两个简单任务表现得很奇怪。任务 1 是一个 LED 开关,任务 2 是一个三音梯

我最初的警报实现是一个alarm_on()函数,它产生三种音调,_delay_ms()中间有函数。但这并没有按预期工作,所以我尝试了这些vTaskDelayUntil()功能。

我制作了运行以下代码片段的行为视频 https://www.youtube.com/watch?v=XnYaELsW1d0

所以 LED 闪烁是有效的,但这是一项非常简单且简短的任务。声音任务只产生 2 种音调,有时只产生一种。

我的任务安排:

实际任务代码

我的闹钟功能

为什么它不通过产生 3 个音来完成这里的完整声音任务?

0 投票
2 回答
616 浏览

google-cloud-platform - 终止抢占式实例的 GCP 负载均衡器行为

背景

我们有一个调度程序实例组,每个活动虚拟机每秒接收大约 700 个请求。此调度程序位于自动扩展的负载均衡器后面。到目前为止,我们所有的 VM 都是常规 VM,但是我们一直在研究使它们成为抢占式的可能性。

抢占式实例的问题

根据文档,GCP 可以随时终止抢占式实例

让我们假设每个调度程序 VM 都没有状态。它接收请求,处理它并向其他机器发出 HTTP 请求。

在任何给定时间,每个 VM 将同时处理大约 700 个请求,同时从负载均衡器接收数据。

问题

如果我的抢占式 VM 处理 700 个请求,收到要终止的信号会怎样?

好吧,理论上应该有一个关闭脚本,以确保处理这些请求完成然后终止应用程序(干净退出)。这就引出了一个大问题:

  • 但是负载均衡器是否知道我的虚拟机正在关闭?它会继续向终止的虚拟机发送请求吗?

注意事项

如果是,则意味着某些请求将失败,因为一旦应用程序关闭,机器仍处于启动状态,负载均衡器继续向机器发送请求,而不知道应用程序已经关闭。

理想情况下,这些请求将作为失败的请求返回到负载均衡器,并将请求发送到另一台机器。然而,GCP 负载均衡器不够聪明,无法做到这一点,所以他们没有。

如果负载均衡器以某种方式知道该 VM 被选为抢先终止,则无需执行任何特殊操作。

哪一个?

0 投票
1 回答
203 浏览

c - 抢占式调度算法

这是来自https://forum.43oh.com/topic/9450-tiny-msp430-preemptive-multitasking-system/的 @tonyp12 的 MSP430G2553 Launchpad 的小型抢占式调度算法

尽管我知道内容切换的概念,但这个程序让我有点困惑。有人可以在下面的片段中具体解释他在做什么吗?

谢谢。这是完整的代码:

0 投票
1 回答
14 浏览

scheduling - 调度期间任务的工作时间是否增加?(抢占式调度)

这是我在研究一项已经给出结果的练习时发现的,但与目前所研究的有点不同:

在此处输入图像描述

在这张图片中,您可以看到在 2 个 CPU 上进行抢占式调度的调度表,其中有 6 个任务要做,当然每个任务都被赋予了完成任务所需的时间和优先级。

现在主要问题是:

当任务 #1 在 CPU #2 中在 t=7 继续工作时,它的剩余工作时间不应该是 4 吗?在图片中,虽然最初 10 个工作时间中有 6 个是在 t=0 时完成的,但它表示 6 个任务中有 6 个已完成,这意味着只剩下 4 个任务要做。练习做错了还是我错过了关于多进程调度的一些你应该知道的事情?

(起初我以为是因为切换处理器,但如果我查看任务#4,情况似乎并非如此)

非常感谢您的意见谢谢。

0 投票
1 回答
2763 浏览

operating-system - 非抢占式循环法?

在我的试卷中,老师要求使用循环调度算法计算抢占式和非抢占式方法的平均等待时间和周转时间

在这里,我做了先发制人的方法没关系。但是当我试图找出非抢占式时,它让我感到困惑,它变成了FCFS。它在具有非抢占方法的循环算法中有效吗?