知识备忘录——操作系统
Kelmory 7/25/2021 操作系统系统原理
Computers are like Old Testament gods; lots of rules and no mercy. -- Joseph Campbell
# 操作系统综述 —— 从体系结构说起
操作系统提供了面向硬件的抽象管理,使得用户和软件在无需关心具体的硬件实现的同时使用硬件资源。要理解操作系统的原理和作用,首先需要了解计算机系统中的资源,这就需要理解计算机的体系结构。必须要指明的是,体系结构同样是一门复杂、严谨的学科,故在此只能做粗略的表述。
当代计算机的体系结构主要依照冯·诺依曼结构设计。对于一个程序,其运行依靠CPU执行机器码,程序将数据从随机存储器(Random Access Memory,RAM)加载到CPU的寄存器(Register)中执行后存储回RAM,在这个过程中,还有不同等级的Cache进行临时的缓存,以加速读取数据的过程。对于需要持久化存储或是跨设备传输的数据,则需要使用外部存储器,例如磁盘、网络设备等。
由此,操作系统的重要功能就自然而然地根据冯诺依曼结构的计算机划分出来了:
- 为了管理CPU的使用,需要对程序的运行过程进行建模,以确定其运算的行为和调度方式。最基础的单位是进程,由此产生了进程管理。更进一步的,有了线程和协程的概念,以提供更加精细的调度;
- 有了进程,还要管理进程使用的内存。这就需要考虑如何使进程使用的内存互不影响又能尽量快速地交付数据。由此,产生了内存管理;
- 虽然进程只需要CPU和内部存储器就能够运行,但是运行的结果需要输出,也可能需要一些数据作为参数输入,否则运行就失去了意义。由此,就有了IO管理的概念。为了管理IO,首先需要考虑设备如何保存数据并与内存交换数据。为了实现兼容,系统需要一些统一的接口,由此产生了驱动管理,例如磁盘管理;其次也需要考虑如何组织和存储数据,由此就引出了文件系统;
另外还需要明确,操作系统实现了对硬件接口的抽象,并通过统一的软件接口提供以上说明的各项功能。然而,这些调用的接口功能不应当随意暴露,故而操作系统有了对这些接口的限制,某些敏感调用只能通过操作系统的内核完成,于是就有了系统调用的概念。
# 进程管理
# 进程
进程是程序运行的基本单位,即一个进程包含了运行程序所需的各种资源与信息。