了解服务器如何在同一台cpu或远程机器上处理请求?apa



我是编程和学习客户端-服务器模型的新手。我们知道,在单核机器上,进程在一个时间内运行。在客户端-服务器模型中,当我们使用apache创建web服务器时,运行nodejs和php应用程序。它如何处理我们的请求如果apache服务器也是一个进程,这意味着根据我的理解,它需要cpu,所以其他进程也会在队列中。如果apache使用线程将请求引导到其他节点js进程或php进程,这就意味着其中任何一个都需要cpu来处理请求,而apache将处于队列中。我真正关心的是CPU在所有这些进程之间的使用和行为。apache、node和php进程如何在它们之间共享CPU同样的问题是localhost服务器和我的web应用程序(都是进程(如何使用我的单个cpu?在我对服务器进程的理解中缺少什么节点

操作系统使用实时调度程序将CPU时间的一小部分依次分配给系统中的每个进程。通常,每个进程执行的时间片在10毫秒的数量级。

实时调度允许CPU同时运行多个任务(节点、PHP、Apache等(。

当一个新的进程时间片开始(也称为上下文切换(发生时,的简化视图-:

  • 正在运行的进程被挂起,其状态保留在内存中
  • 从存储器中检索下一个进程的状态,并将其加载到CPU的寄存器中
  • 新进程是针对它的时间片执行的

并非所有进程都具有相同的优先级,因此关键进程可能比其他进程获得更多的执行时间片。

时间片可能会提前终止,比如当运行的进程需要I/O时(比如键盘上的按键,或者从磁盘读取数据时(。这被称为硬件中断。硬件设备(例如键盘或硬盘(中断进程,并触发调度器启动下一个进程。进程被暂停(它正在等待按键或数据被放入内存,这样CPU就可以继续执行另一项任务(。然后继续执行进程队列中的下一个进程。

~

相关内容

  • 没有找到相关文章

最新更新