我正在研究操作系统,我脑子里已经怀疑了将近一个星期,而且我在书中找不到答案(操作系统概念 - Silberschatz)。 问题是操作系统如何处理需要执行许多操作的进程?例如要在计算机中播放视频,必须处理视频,必须处理音频,必须将视频发送到监视器(I / O操作),音频必须发送到音频盒(I / O操作) ) 等等。
在具有单CPU的计算机中,本书说处理器一次只能运行一个进程,因此为了处理视频,操作系统将为前面列出的每个操作都有一个线程,问题是如何处理操作系统执行它们? (Linux或Windows)它是否一次执行每个并交换它们(处理视频,将其发送到监视器监视器,处理音频,发送到音频到音频盒等)但是做得太快以至于难以察觉还是同时执行它们(同时处理音频和视频)?我认为我在这个问题中的主要疑问可以翻译为“两个线程可以在一台CPU计算机中同时执行吗?”
欢迎对我对这些概念的理解进行任何更正和澄清。
答案 0 :(得分:1)
它是否一次执行每一个并交换它们(处理视频,将其发送到监视器监视器,处理音频,发送到音频到音频盒等)但是执行得太快以至于难以察觉或者是它同时执行它们(同时处理音频和视频)?
它们之间的切换速度足够快,难以察觉。在现代操作系统上,这主要通过三种方式完成:
每个操作系统的细节都不同,桌面操作系统,服务器操作系统,嵌入式操作系统和实时操作系统之间的差异也很大。
两个线程可以在一台CPU计算机上并发执行吗?
在concurrency vs. parallelism上查看此SO问题。