JeeStudy 发表于 2020-4-10 23:15:55

操作系统概念 - 操作系统的实现

    传统上, 操作系统是用汇编语言来编写的。 不过, 现在操作系统都是用高级语言(如C或C++)来编写的。
    使用非汇编语言编写的第一个系统可能是用于Burroughs计算机的主控程序(MCP)。MCP 采用一种 ALGOL 语言编写,在 MIT 开发的MULTICS主要是用PL/I 来编写的。Linux和Windows XP 操作系统主要是用C编写的,尽管有少数主要用于设备驱动程序与保存和恢复寄存器状态的代码是用汇编语言来编写的。
    使用高级语言或至少是系统实现语言来实现操作系统,可以得到与用高级语言来编写应用程序同样的优点: 代码编写更快,更为紧凑,更容易理解和调试。另外,编译技术的改进使得只要通过重新编译就可改善整个操作系统的生成代码。最后,如果用高级语言来编写,操作系统更容易在不同平台上移植。例如,MS-DOS 是用Intel 8088汇编语言编写的。因而,它只能用于 Intel 类型的CPU。另一方面,Linux操作系统,主要是用 C 来编写的,可用于许多不同的CPU,如Intel 80x86、Motorola 680x0、SPARC 和 MIPS RX000 等。
    用高级语言来实现操作系统的缺点仅仅在于降低了速度和增加了存储要求, 但这对当今的系统不再是主要问题。 虽然汇编语言高手能编写更快更小的子程序, 但是现代编译器能对大程序进行复杂的分析,并采用高级优化技术以生成优良代码。现代处理器都有很深的流水线和多个功能单元块,它们能处理复杂相关性,比人类更容易做到。
    与其他系统一样,操作系统的重要性能改善很可能是由于更好的数据结构和算法,而不是由于优秀的汇编语言代码。另外,虽然操作系统很大,但是只有一小部分代码对于高性能来说是很关键的:内存管理器和CPU调度程序可能是最为关键的子程序。在系统编写完并能正确工作之后,就可以找出瓶颈子程序,并用相应的汇编语言子程序来替代。
    为了识别瓶颈,必须能监视系统性能,并增加代码以计算井显示系统行为的测量。对于有的系统,操作系统通过生成系统行为的跟踪列表来执行这一任务。所有相关事件的时间和重要参数都记录下来,并写到文件中。之后,分析程序能处理日志文件以决定系统性能,并识别瓶颈和低效率之所在。这些同样的跟踪能作为所建议改进系统模拟的输入。跟踪也有助于帮助人们找出操作系统的错误行为。





页: [1]
查看完整版本: 操作系统概念 - 操作系统的实现