Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/ms-access/4.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Performance 操作系统会降低程序执行速度吗?_Performance_Operating System - Fatal编程技术网

Performance 操作系统会降低程序执行速度吗?

Performance 操作系统会降低程序执行速度吗?,performance,operating-system,Performance,Operating System,这个问题是关于操作系统的。在操作系统的实现中是否有任何必要的机制影响我的程序发送到CPU的指令流 例如,如果我的程序在操作系统中设置为最高优先级,那么在没有操作系统的情况下运行时,它的性能会完全相同吗 在操作系统的实现中是否有任何必要的机制影响我的程序发送到CPU的指令流 非严格必要的机制(取决于您如何定义“操作系统”);但通常有IRQ、异常和任务切换 IRQ被设备用来请求操作系统(他们的设备驱动程序)注意;并中断程序发送到CPU的指令流。另一种选择是轮询,这会浪费大量的CPU时间来检查设备是否

这个问题是关于操作系统的。在操作系统的实现中是否有任何必要的机制影响我的程序发送到CPU的指令流

例如,如果我的程序在操作系统中设置为最高优先级,那么在没有操作系统的情况下运行时,它的性能会完全相同吗

在操作系统的实现中是否有任何必要的机制影响我的程序发送到CPU的指令流

非严格必要的机制(取决于您如何定义“操作系统”);但通常有IRQ、异常和任务切换

IRQ被设备用来请求操作系统(他们的设备驱动程序)注意;并中断程序发送到CPU的指令流。另一种选择是轮询,这会浪费大量的CPU时间来检查设备是否需要注意,而它可能不需要。因为应用程序需要使用设备(文件IO、键盘、视频等),浪费CPU时间是不好的;IRQ显著提高了应用程序的性能

异常(如IRQ)也会中断正常的指令流。它们发生在正常指令流无法继续时,要么是因为程序崩溃,要么是因为程序需要某些东西。异常最常见的原因是虚拟内存(例如,使用交换空间让应用程序拥有比实际存在的内存更多的内存,以便应用程序能够正常工作;异常告诉操作系统您的程序试图访问必须首先从磁盘获取的内存)。一般来说由于多种原因,这也提高了性能(因为“因为没有足够的RAM而无法执行”可以被视为“零性能”;并且因为各种技巧降低了RAM消耗,增加了可用于缓存文件的RAM量,从而提高了文件IO速度)

任务切换是多任务处理的基础(例如,一次能够运行多个应用程序)。如果需要CPU时间的任务多于CPU,则OS(调度程序)可能(取决于任务优先级和调度程序设计)在它们之间切换,以便所有任务都获得一些CPU时间。然而;大多数应用程序将大部分时间花在等待某件事情上(例如,等待用户按键),并且在等待时不需要CPU时间;如果操作系统只运行一个任务,那么调度程序什么也不做(没有任务切换,因为没有其他任务可切换)。换句话说,如果操作系统支持多任务,但您只运行一个任务,那么这没有什么区别

请注意,在某些情况下,IRQ和/或任务还用于“机会主义地”在后台工作(当硬件没有更好的事情可做时),以提高性能(例如,在需要数据之前预取、预处理和/或预计算数据,以便在需要时立即获得结果数据)

例如,如果我的程序在操作系统中设置为最高优先级,那么在没有操作系统的情况下运行时,它的性能会完全相同吗

最好将其视为多个层次—硬件和设备(CPU等),上面有内核和设备驱动程序,上面有应用程序。如果删除任何层,则任何操作都不起作用(例如,在没有文件系统和磁盘设备驱动程序的情况下,应用程序如何读取和写入文件?)

如果将操作系统提供的所有功能转移到应用程序中(例如,可以使应用程序在裸机上启动的静态链接库);如果功能相同,那么性能也会相同


您只能通过减少功能来提高性能。例如,如果您消除了安全性,您将提高性能(暂时性地,直到您的应用程序成为攻击者僵尸网络的一部分,并且由于它所进行的所有比特币挖掘,性能变得明显更差)。以类似的方式,您可以摆脱灵活性(当您插入不同的U盘时重新启动计算机)或容错性(当存储设备由于软件假定硬件永久完美而开始出现故障时,在没有任何警告的情况下丢弃所有数据)。

是和否。如果我们忽略加载/启动/终止延迟,如果您的一个线程足够小,不产生页面错误,不执行I/O,也不执行系统调用,(!),那么您的操作系统可能永远不会被输入,因此可能根本没有效果。显然,这是非常罕见的:)如果没有加载其他内容,我看不出优先级有多重要。