Articles of 任务

task_struct存储在哪里?

Task_struct用于保存内核有关进程的必要信息。 由于这种结构,内核可以暂停一个进程,并在一段时间后继续执行。 但我的问题是:这个task_struct在内存中存储在哪里(我已经读过关于内核堆栈,是在虚拟地址空间的内核空间?)? 内核在什么地方保持一个指向那个结构和这个结构的暂停进程? 如果您在描述资源时提供一些参考资料,我将不胜感激。 PS。 我忘了说这个问题是关于Linux内核的。

Windows 8 – 从文件夹运行.bat文件 – 计划任务

我在这里吃了一点。 我创build了一个在Windows 7中很好用的.bat文件,这里是: @echo off cd ./Tasks set CurrentDir=%cd% schtasks /create /xml "%CurrentDir%/Scheduled Restart, Shutdown.xml" /tn "Callcenter Tasks\Scheduled restart" schtasks /create /xml "%CurrentDir%/Scheduled Restart, Shutdown (part 2).xml" /tn "Callcenter Tasks\Scheduled restart part 2" exit /b 0 .bat文件位于networking驱动器上。 正如你所看到的,它会将目录更改为执行它的文件夹内的./Tasks。 接下来会设置一个参数:%CurrentDir%是当前目录。 🙂 所以现在我可以运行这样的path: "%CurrentDir%/Scheduled Restart, Shutdown (part 2).xml" 代替 Z:/Tasks/Tasks/Scheduled Restart, Shutdown (part 2).xml (完整path)在某些情况下可以帮助很多。 就像我说的那样,这个脚本在Windows 7中效果很好,但是从Windows […]

内核存储进程哪里没有运行?

每个人,我有一些关于Linux任务的问题,我知道当前处于状态TASK_RUNNING所有任务都是名为runqueue数据结构,但是等待某个事件的任务又是什么状态(非TASK_RUNNING状态,例如一个正在等待来自键盘的input)。 我还有一些其他的数据结构用于这些list of tasks吗?还是只有一般list of tasks ? 预先感谢任何解释

Linux内核模块中的定期任务

目前我正在为friendlyarm Linux 2.6.32.2(mini2440)开发GPIO内核模块。 我从电子背景和新的Linux。 在启动时加载的内核模块和相关的设备文件位于/dev作为gpiofreq 。 在第一次写入器件文件时,GPIO引脚在50kHz连续切换。 在第二次写它停止切换。 第三次重新开始,依此类推。 我已经写了独立的内核模块来生成频率。 但是第一次写入设备文件后CPU会冻结。 terminal提示显示,但我不能运行任何命令后。 这里是代码片段: //calling function which generates continuous freq at gpio static int send_freq(void *arg) { set_current_state(TASK_INTERRUPTIBLE); for(;;) { gpio_set_value(192,1); udelay(10); gpio_set_value(192,0); udelay(10); } return 0; } 这里是设备写入代码,它以写入设备文件的任何数据开始或停止。 if(toggle==0) { printk("Starting Freq.\n"); task=kthread_run(&send_freq,(void *)freq,"START"); toggle=1; } else { printk("Operation Terminated.\n"); i = kthread_stop(task); toggle=0; }

如何在C ++中创build高效的multithreading任务调度程序?

我想用C ++创build一个非常高效的任务调度器系统。 基本的想法是这样的: class Task { public: virtual void run() = 0; }; class Scheduler { public: void add(Task &task, double delayToRun); }; 在Scheduler后面,应该有一个固定大小的线程池,它运行任务(我不想为每个任务创build一个线程)。 delayToRun意味着该task不会立即执行,而是delayToRun秒后(从添加到Scheduler的点开始测量)。 ( delayToRun是一个“至less”的值,如果系统被加载,或者如果我们向调度器请求不可能的话,它将无法处理我们的请求,但是它应该尽可能地做到这一点) 这是我的问题。 如何高效地实现delayToRunfunction? 我正在尝试使用互斥锁和条件variables来解决这个问题。 我看到两种方式: 与经理线程 调度程序包含两个队列: allTasksQueue和tasksReadyToRunQueue 。 在Scheduler::add allTasksQueue任务添加到allTasksQueue中。 有一个pipe理器线程,它等待最less的时间,这样就可以将任务从allTasksQueue放到tasksReadyToRunQueue 。 工作线程等待tasksReadyToRunQueue可用的任务。 如果Scheduler::add在allTasksQueue前面Scheduler::add了一个任务(一个任务,其值为delayToRun所以它应该在当前最快的任务之前),那么pipe理器任务需要被唤醒,所以它可以更新等待的时间。 这个方法可以被认为是低效的,因为它需要两个队列,并且需要两个condvar.signals来完成一个任务(一个用于allTasksQueue – > tasksReadyToRunQueue ,另一个用于发信号tasksReadyToRunQueue工作线程实际运行任务) 没有经理线程 调度器中有一个队列。 在Scheduler::add任务添加到此队列中。 工作线程检查队列。 如果是空的,则等待没有时间限制。 如果不是空的,则等待最快的任务。 如果只有一个工作线程正在等待的条件variables:这个方法可以被认为是低效的,因为如果一个任务添加在队列前(前面的意思是,如果有N个工作线程,那么任务索引<N)那么所有的工作线程都需要被唤醒来更新他们正在等待的时间。 如果每个线程都有一个单独的条件variables,那么我们可以控制哪个线程被唤醒,所以在这种情况下我们不需要唤醒所有的线程(我们只需要唤醒等待时间最长的线程,所以我们需要pipe理这个值)。 我正在考虑实施这个,但是确切的细节是很复杂的。 […]

Windows任务计划程序事件ID

我正在查看是否有一个事件ID,我可以侦听一个Windows计划任务结束时。 我创build了一个侦听Windows日志事件发生的任务。 我只需要一个可靠的侦听的Windows事件ID。 110开始时,但我需要的东西,当它结束。 如果成功的话有102个,但是如果失败的话,可能会出现一堆数字。 不知道发生了什么ID,我不知道是否有任务完成。 或者如果有人知道更好的解决scheme,如何实时监控计划的任务将是伟大的。

多个命令在Windows上的同一个bat文件?

cd c:\dspace\bin dspace generate-sitemaps, dspace oai import, dspace index-discovery, dspace index-authority, dspace stats-util -o, dspace filter-media, dspace curate -q admin_ui, dspace checker -l -p, dspace checker -d 1h -p, dspace checker-emailers, dspace cleanup, dspace stats-util -s 我如何在同一个文件中运行所有这些命令,我​​尝试了这种方式,所以脚本运行了第一个。 什么是正确的方式来运行它们? 谢谢!

C#winform延迟闪烁标签背景

我有一个winform应用程序,我需要使标签背景闪烁。 我正在尝试使用for循环和Thread.Sleep,但不起作用。 感谢您的帮助和build议: private void button1_Click(object sender, EventArgs e) { for (int i = 0; i < 10; i++) { System.Threading.Thread.Sleep(1000); // Set fast to slow. if (label1.BackColor == Color.Red) label1.BackColor = Color.Transparent; else label1.BackColor = Color.Red; } }

Win 2008 R2 64位VFP计划任务问题

我正在尝试将多个Visual Fox Pro 9.0应用程序从Win 2003迁移到Win 2008 R2 64位服务器。 login的用户与该任务计划运行的用户相同。 当应用程序手动运行(浏览到文件夹并双击),它运行成功。 当应用程序通过任务计划程序运行时,它似乎运行,但应用程序永远不会在任务计划程序中结束,也不会在任务pipe理器的进程选项卡中结束。 AHIA,LarryR …

触发器窗口任务计划程序在特定的几个小时之间每天处理几次

即时尝试实现的东西,但我真的不知道我是如何设置一个新的基本任务在Windows任务调度和高级设置即时尝试设置特定的东西。 我希望我的工作能够每隔3小时在7:00-23:59之间运行换句话说,我不希望工作在晚上运行..(我尝试使用expirecheckbox,但我没有做正确的事情) 编辑:我使用Windows Server 2008标准 任何帮助将是伟大的..