假设我的Windows Server 2012 R2机器有8个逻辑核心。使用线程/进程亲和性、进程优先级类和线程优先级,我可以将7个应用程序线程设置为在核心1-7上运行,并将它们的优先级设置为实时/时间关键,以便它们抢占所有操作系统线程并在这些核心上不间断地运行。这样做的结果应该是操作系统只能在内核0上运行线程,并且这样做时没有任何应用程序线程的阻碍。
如果我对亲和力和优先级的理解是正确的,并且这种情况是可能的,这对操作系统会有问题吗?是否会有任何系统行为受到影响?一个内核对操作系统来说足够了吗?
这样做的原因是为了消除上下文切换,并确保环境中始终有相同的7个工作线程在没有中断和缓存冲突的情况下并行运行。
发布于 2015-09-04 04:31:21
OSes中调度器的全部要点--这是一个非常活跃的研究领域--是为每个线程/进程创建一种错觉,即它获得了的所有时间。正如@David Schwartz所指出的,你拒绝了调度器这样做的能力。
因此,是的,这可能会对操作系统和系统行为造成问题-系统可能无法及时响应中断,并且某些与内核相关的任务-例如写入磁盘-将被延迟。这反过来可能导致潜在的数据丢失(在应用程序/系统崩溃的情况下)。
https://stackoverflow.com/questions/32384796
复制相似问题