首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >操作系统每秒的指令数

操作系统每秒的指令数
EN

Stack Overflow用户
提问于 2010-12-11 05:06:58
回答 2查看 111关注 0票数 0

我是计算机体系结构和设计的新手。我的问题是一个高级程序指令集在CPU中一个接一个地执行。在执行这些指令时,是否涉及到作为开销的操作系统指令?例如:如果在2个GHz处理器中,有2*10^9条指令可以在2*10^9个时钟周期内执行。那么操作系统每秒执行大约1*10^9条指令。这个开销是否总是存在,并且只有1*10^9条指令可供其他自定义调度程序执行?

这是否意味着操作系统应该总是执行尽可能少的指令,以便它可以容纳更多要执行的其他程序?

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2010-12-11 05:10:34

这两个问题都是肯定的,在一定范围内。

首先,是的,如果操作系统使用1e9指令/秒,那么只剩下1e9指令/秒。

其次,是的,您希望尽可能地减少开销;这就是所谓的“开销”。

“限制”是操作系统确实为你做了好事。举个例子,考虑一下miltitasking,操作系统允许你同时运行几个程序,并在它们之间共享处理器。一方面,这涉及到开销。另一方面,如果没有它,你要么在没有程序可以运行的情况下让机器空闲很长一段时间,要么你必须自己模拟多任务--这至少需要操作系统的指令数量。

票数 1
EN

Stack Overflow用户

发布于 2010-12-11 05:37:10

在Martin先生的回答上稍微扩展一下:(注意,这是高度简化的)操作系统的工作是处理那些程序不想自己做的事情-比如处理I/O中断和调度多个任务来共享机器。在运行一个应用程序的机器上的完美世界中,程序将控制CPU,直到它需要操作系统为它做一些事情,如从磁盘文件中读取下一条记录(它调用分层“服务”来确定哪个磁盘、哪个文件、哪个记录、哪个字节,并计算从磁盘控制器请求哪个磁道上的哪个磁盘块。一个典型的“真实”机器也有一堆后台任务在运行,保持屏幕更新,读取时钟,检查新邮件,下载补丁,等等。有些任务的优先级较低,因为我们不关心它们什么时候完成,比如在Windows中更新系统托盘图标以接收新邮件通知。其他任务的优先级很高,但非常短,比如跟随屏幕上的鼠标,将鼠标从指针改为手。请记住,一个典型的任务在需要一些操作系统服务之前只执行几百条指令,并在它发生时进入睡眠状态。大型应用程序可能有数十万条“指令”,但仍会花费一些时间等待其他操作,从按下按钮或键盘输入到另一台计算机上数据库查找的响应。CPU最密集的应用程序,比如计算Pi到小数点后一百万位,可能会长时间占用99.9%的处理器,但操作系统会周期性地中断它,看看是否需要做其他事情。回到DOS时代(20世纪80年代),程序实际上可以占用谁的CPU一段时间,但如果它需要读或写或在屏幕上键入一些东西,它将不得不作为BIOS来完成这些操作,除非程序是自己编写的来完成这些基本操作。其中一些是电脑游戏的反应,通过直接执行修改屏幕所需的特定操作,并直接从键盘或鼠标设备缓冲区读取,绕过操作系统。希望我没有把你弄糊涂。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/4413330

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档