Articles of 调度

计划优先级,Windows

基于msdn,windows os根据基础调度线程来调度线程,并用作提升dynamic优先级 系统将所有相同优先级的线程视为相等。 系统以循环方式为所有优先级最高的线程分配时间片。 如果这些线程都没有准备好运行,则系统以循环方式为所有具有次高优先级的线程分配时间片。 如果更高优先级的线程可以运行,则系统停止执行较低优先级的线程(不允许使用其时间片完成),并将全时间片分配给较高优先级的线程。 从上面的引用 系统将所有相同优先级的线程视为相等 这是否意味着系统会根据dynamic优先级来处理线程?基本优先级是否被用作dynamic优先级更改的下限? 谢谢

应用程序可以在手动运行时保存文件,但在任务计划程序运行时不会保存文件

我有一个简单的命令行应用程序,它每晚创build一个数据库的CSV转储并发送一封电子邮件。 它创build的文件保存在映射的networking驱动器,我在我的app.config引用像这样: <add key="Path" value="X:\Path\To\Folder" /> 一切工作正常,如果我从命令行运行它,但当它由任务计划程序运行时,它会引发以下exception: System.IO.DirectoryNotFoundException:找不到path'X:\ Path \ To \ Folder \ File.csv'的一部分。 该任务运行的帐户具有pipe理员权限,我另外尝试运行它作为域pipe理员,但无济于事。 该系统在Windows Server 2008 R2上运行,但我不确定这是否有所作为。

了解Windows系统调用调度程序?

我正在尝试做一些反转来找出幕后的一个函数调用。 在使用windbg进行debugging时,我遇到了一个电话, mov edx,offset SharedUserData!SystemCallStub call dword ptr [edx] 调用导致下面的代码, NTDLL KiFastSystemCall! 8bd4 mov edx,esp 0f34 sysenter 根据这个文档, eax包含系统调用序号。 eax中的值是11CC。 我正在弄清楚,这个函数实际上是什么被调用的。 有没有人有任何想法,我怎么能进一步?

为什么我得到这个错误:解除指向不完整types的指针

我正在为一个类的项目工作,可能是WORST指令,我们必须实现一个简单的调度程序..虽然C编程不是课程的先决条件,这是调度程序的语言,我不一定是C程序员.. 无论如何,我试图通过打印出任务来debugging,以便我可以通过程序跟踪它,但我不断收到以下编译时错误: schedule.c:61:48:错误:取消引用指向不完整types的指针 这是task_struct定义: struct task_struct { struct thread_info *thread_info; int prio, static_prio, normal_prio; unsigned long sleep_avg; unsigned long long last_ran; unsigned long long timestamp; unsigned long long sched_time; unsigned int time_slice, first_time_slice; struct list_head run_list; struct sched_array *array; enum sleep_type sleep_type; int need_reschedule; }; 我试图在里面debugging的function: void initschedule(struct runqueue *newrq, struct task_struct *seedTask) { printf("Inside […]

从处理器的angular度来看进程调度

我知道调度是由内核完成的。 让我们假设Linux中的进程(P1)正在处理器上执行。 由于当前进程并不知道时间片的内容,内核当前没有在处理器上执行,内核如何安排下一个进程执行? 是否有某种中断告诉处理器切换到执行内核或任何其他机制的目的?

进程nice(优先级)设置对Linux没有影响

我写了一个testing程序,其中只包含一个无限循环,里面有一些计算,不执行I / O操作。 我试着开始两个程序实例,一个具有很高的漂亮度值,另一个具有较低的漂亮度值: sudo nice -n 19 taskset 1 ./test sudo nice -n -20 taskset 1 ./test taskset命令确保两个程序在同一个内核上执行。 与我的预期相反,最重要的报告是这两个程序都能获得大约50%的计算时间。 这是为什么? nice命令是否有效?

在Linux中进行计划:计算机闲置时运行任务(=无用户input)

我想在我的Ubuntu 8.10盒子上运行Folding @ home客户端,只是因为程序的内存消耗太大而导致它闲置。 “空闲”是指没有用户活动的状态(键盘,鼠标或任何其他)。 由于F @ H具有最低的CPU优先级,因此其他(可能很重)的进程可以运行。 重点在于改善用户体验,并在他不在的时候进行繁重的工作。 如何做到这一点?

Linux调度器是否喜欢在fork()之后运行subprocess?

Linux调度器是否喜欢在fork()之后的父进程中运行subprocess? 通常,分叉进程会执行某种types的exec ,所以最好在父进程之前让subprocess运行(防止写入时复制)。 我假设孩子将在创build后执行exec作为第一个操作。 是我的假设(即调度程序将喜欢孩子的过程)是正确的。 如果没有,为什么? 如果是的话,是否有更多理由让孩子先行?

如何将我的调度程序添加到Linux内核

我正在研究Linux内核。 我应该给Linux内核添加一个调度algorithm,比如SJF,SRT和其他algorithm。 经过一番search,我发现linux内核有两个调度器:CFS和实时调度器。 但是这两个调度程序有什么区别呢? 如何编写我的调度程序代码? 我应该在哪里添加我的调度程序代码,CFS或实时? 我应该在编译linux内核之前做这个工作吗? 和其他任何我需要做的工作…我正在使用Linux内核3.15.6。

在中断的时候得到current-> pid

我在linux调度器上写了一些东西,我需要知道哪个进程在我的中断进入之前正在运行..是当前可用的结构? 如果我在中断处理程序中执行current-> pid,是否得到我中断的进程的pid?