scheduling相关内容

基于时间的线程安全优先级队列

我需要一些类似队列的数据结构来执行以下任务: 有些线程添加了附加延迟值的数据项(例如秒),例如queue.add(data, delay)。 既可以有不同的延迟,也可以有相同的延迟,队列应充当优先队列:延迟越小的项越接近末尾(出队速度更快) 排队项每秒钟delay应减1,直到达到0(然后保持不变为0) 在delay为0的项目中,出列顺序就是它们的插入顺序(虽然到达0的顺序更好) 一些 ..
发布时间:2022-08-22 12:40:37 Java开发

从Java启动的数据库查询是否总是阻塞I/O?

假设一些阻塞I/O是在Java中完成的,例如长时间运行的数据库查询。在Java中,通常有没有一种方法可以让一些Java数据库驱动程序告诉JVM调度器,调用已经离开JVM,现在正在由某个外部系统处理?然后,JVM可以将服务数据库查询的线程分配给某个其他操作,直到来自数据库的回复到达为止。这样,阻塞数据库查询将有效地变为非阻塞。 我只是想知道是否可以在一般的JVM上这样做。我使用Java已经有很 ..
发布时间:2022-08-22 12:31:27 Java开发

CONFIG_RT_GROUP_SCHED和PREMPT_RT之间的区别?

我刚刚开始使用实时Linux系统,似乎有两种不同的方法可用: 在正常的Linux内核中配置CONFIG_RT_GROUP_SCHED参数 将PREMPT_RT修补程序应用到正常的Linux内核 我似乎无法理解这两者之间的区别。他们是否为同样的问题提供了替代解决方案?它们是否处于相同的逻辑级别? 提前谢谢您。 推荐答案 CONFIG_RT_GROUP_SCHED为每个 ..
发布时间:2022-08-11 11:50:11 其他开发

是否可以在自己的应用程序中使用 Windows 7 任务调度程序

我正在开发基于附加组件的应用程序.每个附加组件都使用调度程序.加载的附加计划任务.我的应用程序只运行一个实例.有时应用程序关闭,有时正在运行.因此我需要使用 Windows 7 任务调度程序 如何在自己的应用程序上使用任务调度器? 我需要从应用程序创建新任务 我需要在任务完成后向我的应用程序发送消息或调用我的应用程序的任何功能 有可能吗? 怎么办? 解决方案 在 Code ..
发布时间:2022-01-18 11:32:13 C#/.NET

特殊情况调度

所以问题来了.在研究进程调度时,我遇到了两个看似矛盾的例子,我无法理解. 例如在优先级非抢占式调度算法中,总是选择优先级最高的进程下一个运行,一旦运行,进程只能自愿放弃其CPU时间,即没有其他进程可以运行直到当前运行的进程完成.看来这本书提出的解决方案是,如果一个进程的结束和新的高优先级进程的到来同时发生,那么新的高优先级进程将被添加到就绪队列中,然后由接下来要运行的调度程序. 但是在 ..

是否有任何 JVM 使用自旋等待实现阻塞?

在 Java 并发实践中,作者写道: 当锁被争用时,失败的线程必须阻塞.JVM 可以通过 spin-waiting(反复尝试获取锁直到成功)或通过 挂起被阻塞的线程来实现阻塞要么操作系统.哪个更高效取决于上下文切换开销和直到锁可用的时间之间的关系;spin-waiting 是短等待的首选,而暂停是长等待的首选.一些 JVM 会根据过去等待时间的分析数据自适应地在两者之间进行选择,但大多数 J ..

谁在 OS 中调度调度程序 - 这不是先有鸡还是先有蛋的场景吗?

谁调度调度器? 第一个任务是创建的,第一个任务是如何创建的?它不需要任何资源或内存吗?不像是先有鸡还是先有蛋的场景? 调度器不是任务吗?它是否在每个时间片结束时获取 CPU 以检查需要为哪个任务分配 CPU? 有没有什么好的环节可以让人深入思考和理解所有这些概念,而不是散布一些需要心血来潮的理论? 解决方案 调度器被调度 一个(外部)事件,例如中断、(磁盘完成、鼠标 ..
发布时间:2022-01-11 23:22:50 其他开发

Linux 系统上的 niceness 和优先进程

我正在寻找一种通过命令行修改进程优先级的方法.我发现内置 (bash) nice 和命令 renice 允许修改进程的好坏,但不是内核计算的实际优先级. 是否有允许设置优先级的命令?(或者我在友善和优先之间感到困惑?) 解决方案 linux中进程的优先级是动态的:运行时间越长,优先级越低.进程在实际使用 CPU 时运行 - 典型 Linux 机器上的大多数进程只是等待 I/O,因此不 ..
发布时间:2022-01-11 23:22:06 其他开发

Linux 内核使用哪些调度算法?

Linux 内核使用什么调度算法? 我在哪里可以获得有关 linux 内核的更多信息?(操作系统第一门课程...学生级别) 解决方案 注意: 正如 Abdullah Shahin 所说,这个答案是关于 IO 队列调度程序,而不是进程. 如果您只想检查您的 linux 系统正在使用什么调度程序以及哪些可用,您可以运行以下命令: cat/sys/block/sda/queue/s ..
发布时间:2022-01-11 23:08:41 服务器开发

操作系统调度程序如何重新获得对 CPU 的控制权?

我最近开始学习 CPU 和操作系统是如何工作的,对于一个提供多任务处理的操作系统的单 CPU 机器的操作,我有点困惑. 假设我的机器只有一个 CPU,这意味着在任何给定时间,只能运行一个进程. 现在,我只能假设操作系统用来控制对宝贵CPU时间的访问的调度器也是一个进程. 因此,在这台机器中,用户进程或调度系统进程在任何给定时间点都在运行,但不能同时运行. 所以这里有一个问题 ..

应用程序进入后台时如何保持NSTimer?

我来这里是因为我的问题没有找到任何解决方案:( 我正在做一个简单的应用程序,我必须(通过套接字)向服务器发送一些信息(如 GPS l/L、精度、电池电量等). 当前代码在应用程序处于前台时工作正常. myTimer = [NSTimer scheduleTimerWithTimeInterval: 2.0 target:self选择器:@selector(sendPosToServe ..
发布时间:2022-01-08 13:13:29 移动开发

在服务器重启时启用 mysql 事件调度程序

我正在运行 phpmyadmin 并在我的个人计算机上安装了 apache 服务器.我的问题是我试图将 MySQL event_scheduler 设置为即使服务器重新启动也始终启用.我通过在服务器配置文件(my.cnf 或 my.ini)中设置以下命令行来阅读它应该可以工作:event_scheduler=DISABLED.但是,我在哪里可以找到这个 my.cnf 或 my.ini 文件,并且命 ..
发布时间:2022-01-05 17:38:13 数据库

Linux系统上的niceness和priority进程

我正在寻找一种通过命令行修改进程优先级的方法.我发现内置 (bash) nice 和命令 renice 允许修改进程的 niceness,但不是内核计算的实际优先级.> 是否有允许设置优先级的命令?(还是我混淆了友好和优先级?) 解决方案 Linux 中进程的优先级是动态的:运行时间越长,优先级越低.进程在实际使用 CPU 时运行 - 典型 Linux 机器上的大多数进程只是等待 I/O ..
发布时间:2022-01-04 22:43:51 其他开发

多处理器机器中posix线程的并发

我对多处理器机器中 posix 线程的并发性有一些疑问.我在 SO 中发现了类似的问题,但没有找到结论性的答案. 以下是我的理解.我想知道我是否正确. Posix 线程是用户级线程,内核不知道这一点. 内核调度程序会将进程(及其所有线程)视为一个实体进行调度.线程库反过来选择运行哪个线程.它可以在可运行线程之间分割内核给出的 CPU 时间. 用户线程可以在不同的 CPU 内 ..
发布时间:2022-01-04 22:32:55 服务器开发

Linux SCHED_OTHER、SCHED_FIFO 和 SCHED_RR - 差异

谁能解释一下 SCHED_OTHER、SCHED_FIFO 和 SCHED_RR 之间的区别? 谢谢 解决方案 SCHED_FIFO 和 SCHED_RR 是所谓的“实时"策略.它们实现了 POSIX 标准规定的固定优先级实时调度.具有这些策略的任务会抢占其他所有任务,因此很容易陷入饥饿状态(如果它们不释放 CPU). SCHED_FIFO 和 SCHED_RR 的区别在于,在 ..
发布时间:2022-01-04 22:21:40 服务器开发

选择 Linux I/O 调度器

我了解到可以通过写入/sys/block/[disk]/queue/scheduler 来更改正在运行的内核上特定设备的 I/O 调度程序.例如,我可以在我的系统上看到: anon@anon:~$ cat/sys/block/sda/queue/schedulernoop 预期截止日期 [cfq] 默认是完全公平的排队调度器.我想知道在我的自定义内核中包含所有四个调度程序是否有任何用处.似乎编 ..
发布时间:2022-01-04 22:20:27 服务器开发

如何查看线程在哪个 CPU 内核中运行?

在Linux中,假设一个线程的pid是[pid],从目录/proc/[pid]我们可以得到很多有用的信息.例如,这些 proc 文件,/proc/[pid]/status、/proc/[pid]/stat 和/proc/[pid]/schedstat 都是有用的.但是我怎样才能得到一个线程正在运行的 CPU 核心数呢?如果线程处于睡眠状态,如何知道它再次调度后将运行哪个核心? 顺便说一句,有 ..