问题标签 [round-robin]
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.
algorithm - 如何计算多核 CPU 的循环等待时间
我有一个关于多核和多 Cpu RR 模拟的问题;我试图了解 WTime 是如何为多核和多 CPU 循环模拟算法派生的。我想弄清楚这个假设是否正确?
计算进程的平均等待时间 => (0 + 17 + 12 + 16 + 21 + 21) / 6
scheduling - 循环调度 - 如果突发时间长/量子短,优先级是否重要?
不确定我是否正确理解了 RR 的概念。
假设我已经准备好三个进程进行 CPU 处理:
A - 第一优先级 - 需要 2 分钟的 CPU 时间;
B - 第三优先级 - 5 分钟;
C - 第二优先级 - 10 分钟;
因此,为了计算“纸上”的平均周转时间,我可以假设quantum=1 分钟并根据它们的优先级(ACB 等)处理所有内容。
但是一分钟对于“真正的”量子来说太大了,对吧?如果quantum=10-100毫秒,一切都会切换得如此之快以至于任务顺序变得无关紧要吗?我是否应该假设每个作业只会消耗等量(1/3)的 CPU 时间并从那里开始?例如,A 将在 2*3=6 分钟后结束,B 将在 (5-2)*2+6=12 分钟后结束,C 将在 10-2-3+12=17 分钟后结束。因此平均 tat 是 (6+12+17)/3=11.66?或者这只是荒谬的?
operating-system - 循环调度中的任务行为不正确
我在 STM32F4DISCOVERY 板上运行 FreeRTOS,并且我有以下代码:
其中 vTask1 是这个函数:
vTask2 具有几乎相同的代码:
当我运行程序时,我看到 LED0 和 LED3 一直亮着(它们的切换对我的眼睛来说太快了,这很好),并且“共享资源”的 LED2 闪烁得非常快。问题是这样的:当我颠倒xTaskCreate
调用顺序时,我会遇到相同的情况,但 LED2 的闪烁行为不同,速度要慢得多。为什么会发生这种情况,因为任务应该具有相同的优先级并因此遵循循环调度?他们不应该得到相同的时间吗?为什么仅在以不同的顺序创建它们之后它们的行为会发生变化?
提前致谢。
linux - 如何在负载均衡中处理返回会话
我有以下网络 scnerio,我有 LB-> 代理 -> LB -> Web 服务器 -> LB -> 应用服务器。
负载均衡器以循环方式工作。现在我如何才能授予处理返回会话的应用程序。负载均衡器会自动处理返回会话,或者我们需要在设置中的任何位置进行配置。
php - PHP不尊重DNS中的RoundRobin
我在让 PHP 尊重启用 RoundRobin 的 DNS 条目时遇到问题。该条目(例如 domain.example.com)分配了三个可能的 IP 地址。RoundRobin 工作(用 ping、telnet、wget 等测试)。不幸的是,当使用 PHP SOAP 扩展,甚至是普通的 file_get_contents 时,它总是连接到 DNS 中指定的第一个 IP 地址。令人惊讶的是,gethostbyname 函数认为 RoundRobin 非常好。我在每台服务器中放置了一个输出 1 或 2 或 3 的文件,并在另一台服务器上执行了几次脚本:
第一行总是打印“1”(从第一个 IP 地址开始)。第二行随机输出三个可能的 IP 地址之一。
问题:有没有人有类似的问题?至少在发出 SOAP 请求时,如何强制 PHP 在 DNS 中尊重 RoundRobin?
编辑 没有 DNS 缓存,也没有代理。如前所述,ping、telnet、wget 等在放置测试脚本的同一台服务器上工作正常。
c - pthread调度FIFO、RR混合结果
我们正在尝试分析不同调度算法对 Pthreads 的 Ubuntu 系统的影响。我们创建了几个 (1,2, 4) 线程并让它们在 1、2 或 4 个 CPU 上运行。每个线程都是一个带有 1 个数学运算的 for 循环。1 个线程需要几秒钟才能完成。
当在 1 个带有 FIFO 的 CPU 上启动 2 个线程时,它们会间隔很长时间(逻辑上,FIFO 首先完成第一个创建的线程)。对于 RR,它们靠得更近(在某些情况下相差半秒)。这和预期的一样。现在我们将每个测试运行 10 次,大约 1/3 的测量时间是其他测试的一半。我们测量所有线程完成的时间。所以在 1 个 CPU 上,我们等待 2 个线程完成。RR 或 FIFO 差别不大。但是多次运行测试可以给你大约 6s 2 或 3 次和大约 12s 5 或 6 次。不同寻常的是,没有任何情况下程序在 9 或 10 秒左右完成。它介于 5 和 6 之间或 11 和 13 之间。我们对 4、2、1 个 CPU 上的 4、2、1 个线程进行了这些测量。先进先出和RR。优先级已设置为 0 和 99(实时)。没有繁重的应用程序正在使用 CPU。在使用的核心上,超过 97% 的 CPU 时间用于我们程序生成的线程。
使用 SCHED_OTHER 时我们没有这种现象。
有人对这种行为有解释吗?
很难看出发生了多少上下文切换。对于 FIFO,上下文切换的数量应该接近于 0,对于 RR,这应该大得多,但仍然几乎不会影响总执行时间。对于 SCHED_OTHER,我猜测最多的上下文切换,但我不完全确定。
另一个有趣的事实是 OTHER 的总执行时间或多或少与具有相同线程和 CPU 数量的 FIFO 的短时间相同。所以 FIFO 有时和 OTHER 一样快,但有时需要两倍的时间。
问候,
罗尔风暴
php - 在 Twilio 中创建循环
我在这里和许多论坛中搜索过。这就是我想要做的。
我正在尝试在 php/mysql 上创建一个系统,因此页面上的 twilio 电话号码将循环通过电话号码列表。
与特定 twilio 数字相关的数字是:
555-1212
555-3434
555-5656
555-7878
所以它会是这样的:
twilio number called XX time : 拨打哪个号码
1 : 555-1212
2 : 555-3434
3 : 555-5656
4 : 555-7878
5 : 555-1212
6 : 555-3434
等等
任何建议或指出我正确的方向,我都会非常感激。我不知道如何或在哪里帮助完成这项工作。
java - 以循环方式返回数字,但带有附加子句
有一个名为 LinkedList 的名称busyList
跟踪所有忙碌的机器。一台机器可能忙碌或可用id
。当机器空闲时,它会从列表中删除。
以下是机器空闲/忙碌时触发的方法
一个名为allMap
(用于分配映射)的映射以机器的 id 作为其键和一个对象class VmAllocation
作为其值。的属性VmAllocation
是:
我必须以循环方式返回机器,同时保持视野,我不会返回此刻正忙的机器。busyList.contains(id)
如果返回 true,则表示机器很忙,下一个可用的机器(在 allMap 中)返回还考虑到它不会得到比maxAlloc
为它设置的更多。例如,如果1
来忙,则如果不忙且未超过,2
则将返回2
currAlloc
maxAlloc
以下是必须返回机器并从封闭类外部多次调用的方法。
这是算法的一般工作方式:
但这只有在没有一台机器忙碌时才会发生。但是如果机器很忙,订单可能是这样的:
请注意,机器返回的次数不能超过maxAlloc
,如果发现机器繁忙,下一台将被返回的机器可能就在当前繁忙的机器旁边,并且它本身不忙(也 currAlloc 应该不超过 maxAlloc)
如果 maxAlloc = 5,则 currAlloc 限制为 4。因为它的计数从 0 开始
我无法实现这个逻辑。帮我做这件事。
c - 如何更改 MINIX 操作系统以支持 IO 绑定进程而不是 CPU 绑定进程?
调度器当前使用轮询来调度。我可以访问每个进程的用户时间和系统时间。
头部用户时间
rdy_head[USER_Q]->user_time
头部系统时间
rdy_head[USER_Q]->user_time
我需要支持 IO 绑定进程,但 cpu 绑定进程不能完全饿死。
有任何想法吗?
algorithm - 系统编程 | 调度时间
我试图理解这些调度算法:
- 先到先得 (FCFS)
- 最短作业优先 (SJF)
- 最短剩余时间 (SRT)
- 循环赛 (RR)
所以,给定一些输入:
FCFS 将调度为AAABBBBBCCDDDDDEEEEE
.
我似乎无法弄清楚其余的。有人可以帮我解释一下区别吗?
我试过谷歌搜索,但我从 SJF 得到的结果有点令人困惑。