本节书摘来自华章计算机《计算机系统:系统架构与操作系统的高度集成》一书中的第1章,第1.3节,作者:(美)拉姆阿堪德兰(Ramachandran, U.)(美)莱希(Leahy, W. D.)著, 更多章节内容可以访问云栖社区“华章计算机”公众号查看。
1.3 操作系统的作用
操作系统在网络视频游戏开发和实际使用中的角色是什么?操作系统是资源管理器,负责协调从游戏设计到实际运行游戏的过程中全部行为的硬件资源使用。
我们用联网视频游戏作为例子来理解程序的开发和部署生命周期。我们已经使用高级语言编写了客户端–服务器程序。我们可以用简单的文本编辑器,也可以使用复杂的程序开发工具如Visual Studio来开发视频游戏。一旦游戏开发完毕,我们就将程序编译成处理器的指令集。文本编辑器、编译器以及在程序开发中需要用到的其他程序工具都需要在处理器上运行。例如,编译器必须在处理器上运行,将高级语言程序作为输入,输出机器语言代码。操作系统要为每个程序的开发过程分配处理器资源。现在让我们来看看在玩游戏的时候会发生什么事情。
在视频游戏中,单击鼠标按键使得击球手三振出局,并显示在你的屏幕和其他每个玩家的屏幕上(见图1-6)。这其中发生了什么事情?首先,你的计算机里的硬件设备控制器记录了你的鼠标单击行为。控制器随后产生了一个处理器中断。请记住处理器正在执行你的游戏客户端程序。中断是一种硬件机制,通知处理器在正执行的程序之外发生了需要关注的事情。这种机制有点类似于房间的门铃。必须有人去看谁在按门铃,他要做什么。操作系统(也是一组程序)将自己调度到处理器上运行,以回应按铃。操作系统回应按铃,发现其来自鼠标,其目标是游戏客户端程序,并将这个中断传递给客户端程序。客户端程序将这个中断打包成一个消息,通过网络发送给服务器端程序。服务器端程序处理这个消息,使用新的消息更新游戏状态。客户端程序通过其各自的操作系统,更新各自的屏幕以反映新的世界的状态。我们可以看到,在从鼠标单击到显示屏幕更新的这段时间里,系统分配和释放了多种硬件资源(处理器、程序和数据所需的内存、鼠标、显示器、网络连接等)。操作系统负责协调所有这些动作。
图1-5 从电子和洞穴到多用户视频游戏。视频游戏应用通过硬件抽象的各个层次驱动电子和洞穴完成它所希望的操作
图1-6 分布式视频游戏中的应用–硬件–操作系统交互。交互发生在客户端和服务器端的应用程序、操作系统以及于其上执行的硬件之间