Multithreading 操作系统如何处理需要多个操作的应用程序

Multithreading 操作系统如何处理需要多个操作的应用程序,multithreading,process,operating-system,Multithreading,Process,Operating System,我正在研究操作系统,几乎整整一周的时间里我都在思考这个问题,我在书(操作系统概念-Silberschatz)中找不到答案。 问题是操作系统如何处理需要执行许多操作的流程?e、 g.要在计算机中播放视频,必须对视频进行处理,音频必须进行处理,视频必须发送到监视器(I/O操作),音频必须发送到音频盒(I/O操作)等等 在一台只有一个CPU的计算机中,这本书说处理器一次只能运行一个进程,因此要处理视频,操作系统将为前面列出的每个操作都有一个线程,问题是操作系统如何执行它们?(Linux或Windows

我正在研究操作系统,几乎整整一周的时间里我都在思考这个问题,我在书(操作系统概念-Silberschatz)中找不到答案。 问题是操作系统如何处理需要执行许多操作的流程?e、 g.要在计算机中播放视频,必须对视频进行处理,音频必须进行处理,视频必须发送到监视器(I/O操作),音频必须发送到音频盒(I/O操作)等等

在一台只有一个CPU的计算机中,这本书说处理器一次只能运行一个进程,因此要处理视频,操作系统将为前面列出的每个操作都有一个线程,问题是操作系统如何执行它们?(Linux或Windows)它是否一次执行每一个并交换它们(处理视频、将其发送到监视器、处理音频、将音频发送到音频盒等),但速度是否太快以至于无法察觉,还是同时执行它们(同时处理音频和视频)?我想我在这个问题上的主要疑问可以翻译为“两个线程能在一台CPU计算机上同时执行吗?”

欢迎对我对这些概念的理解进行任何更正和澄清

它是否一次执行每一个并交换它们(处理视频、将其发送到监视器、处理音频、将音频发送到音频盒等),但速度是否如此之快以至于无法察觉,还是同时执行它们(同时处理音频和视频)

它在它们之间切换的速度足够快,以至于无法察觉。在现代操作系统上,这主要通过三种方式完成:

  • ,其中任务只是由操作系统内核的调度程序挂起以运行不同的进程。这通常是在固定的时间量(称为时间片)用完时完成的
  • 当进程开始等待来自网络、磁盘或大多数其他来源的IO时,许多操作系统会立即挂起它。只有当IO的结果可用时,该进程才会恢复运行
  • ,当进程向操作系统指示它愿意等待时
每个操作系统的细节都不同,桌面操作系统、服务器操作系统以及嵌入式和实时操作系统的细节也非常不同

两个线程可以在一台CPU计算机中并发执行吗


查看此问题。

感谢您简洁的回答和非常有用的链接。还请注意,许多I/O操作比CPU执行它们的速度慢得多,因此从人的角度来看,设备接收到稳定、恒定的样本流(系统因无关原因处于重载状态时除外)。