我是c语言中的调度和多线程的新手,我正在尝试使用C语言在MLFQ调度程序中处理我的进程来实现20threads 我希望我的第21个线程是时钟线程,并且所有到达,执行和完成时间都是时间。
如何将最后一个线程作为时钟一?并且它们是将最后一个线程连接到所有进程线程的简单方法吗?
编辑1。
对于时钟线程: -
第21号线
可以通过剩余的20个线程访问,以便他们可以计时到达,执行,终止等
时钟应该定期为线程的其余部分留出时间,以便它们相应地起作用
答案 0 :(得分:0)
在Linux上,先阅读time(7)& pthreads(7)& sched(7)& signal(7)。然后使用pthread_getcpuclockid(3)和clock_gettime(3)。请记住,内核的调度程序可以随时将任何线程从CPU迁移到另一个线程! 另请参阅其他syscalls(2),特别是sched_setaffinity(2), pthread_setaffinity_np(3),cpuset(7),proc(5)
您的时钟线程可能使用poll(2)
进行一些事件循环