Introduction to Operating System
操作系统简介
操作系统是什么:操作硬件,并为其他所有软件提供运行环境的软件。操作系统运行在裸机上。
操作系统的作用:
- 向上提供对硬件资源的抽象
- 向下对硬件资源进行管理
操作系统的演变
- 多道程序设计 单个程序运行时,常常出现CPU因等待I/O操作完成而处于闲置状态的情况。为了提高硬件的利用率,在操作系统中同时运行多个程序使得CPU能够得到充分利用。
- 分时系统 由于批处理系统在集中完成所有作业后才反馈结果,整个过程花费较长时间,而用户希望在提交作业后得到即时的反馈,这种需求导致了分时系统的出现。分时系统将CPU轮流分配给各个作业使用,使得用户能够交互式地使用计算机进行工作。
操作系统中的重要概念
- 软件运行模式
- 内核态:具有对所有硬件的操作权限,可以执行机器提供的所有指令。操作系统运行在内核态。
- 用户态:权限受限,只能使用部分机器指令,可以对硬件执行的操作有限。
-
进程:进程是对运行中的程序的抽象,进程的存在使得操作系统能够同时运行多个程序并管理它们的运行。
-
地址空间:地址空间是对内存的抽象。通过引入地址空间,操作系统能够隔离不同的进程,并对进程以及操作系统本身进行保护。
-
文件:操作系统隐藏了硬盘和其他I/O设备的细节,向用户提供了一个独立于设备的抽象模型——文件,使得用户能够以简单且一致的方式对数据进行管理。
-
系统调用:通过系统调用,用户程序得以使用操作系统内核所提供的服务。系统调用通常需要一个TRAP指令触发,TRAP指令会把用户程序的运行模式从用户态切换为内核态。
- 引导(booting):引导是启动计算机的过程。当打开计算机的电源时,一个单独的、小型的程序自动运行。这个程序启动另一个更复杂的程序,然后逐步递进。最终,操作系统内核(一个高度复杂的程序)接过控制,完成初始化过程。引导的思想就是一步步地从简单到复杂。
操作系统的结构设计
-
单体系统:整个操作系统以过程集合的方式编写,链接成一个大型可执行二进制程序。单体系统的可靠性较差,因为任何一个过程的崩溃都会连累整个系统。
-
层次式系统:以层次式结构组织操作系统,上层软件都是在下一层软件的基础之上构建的。层次式结构逐层抽象了许多底层细节,因此改善了操作系统代码的可维护性。
-
微内核:在内核中只保留操作系统的核心功能,其余的功能被划分到其他模块。系统运行时,只有微内核运行在内核态,其余部分都作为用户态的进程运行。微内核结构减少了内核代码的复杂度,降低了因内核中的错误导致系统崩溃的可能性,因此提高了系统的可靠性。