操作系统学习笔记 | 1. 操作系统概述
什么是操作系统
从用户角度来看:操作系统是一种控制软件
管理应用程序
为应用程序提供服务
结束(杀死)应用程序
从系统内部角度来看:操作系统是一个资源分配器
负责资源管理
管理外设,分配计算机资源
操作系统站在管理者的角度,为应用程序和底层硬件提供管理和控制功能。
操作系统层次
操作系统将硬件资源抽象化,向应用程序提供统一的服务:
将 CPU 资源抽象为进程
将 磁盘 资源抽象为文件
将 内存 资源抽象为地址空间
操作系统位于硬件之上、应用程序之下,为应用软件提供支持和服务。
操作系统作为软件,提供两类主要接口:
Shell(外壳):为外部应用程序提供交互界面,如 Linux 的命令行界面、Windows 的 GUI
Kernel(内核):负责计算机内部资源的管理(重点内容)
操作系统内部组件
CPU 调度器
物理内存管理
虚拟内存管理:为上层应用提供一个安全、连续且虚拟化的内存空间
文件系统管理:在磁盘上抽象出便于访问的文件存储结构
中断处理与设备驱动
重点关注:CPU 调度、内存管理、文件管理、I/O 管理
操作系统的特征
并发
允许多个程序同时运行,操作系统负责管理和调度 CPU。
并发:一个时间段内多个程序可以运行
并行:一个时间点上多个程序同时运行
共享
同时共享:多个用户同时访问资源
互斥共享:资源只能被一个用户独占使用
虚拟
通过程序设计技术,虚拟出一个每个用户独占计算机的环境。
异步
程序运行并非一贯到底,而是走走停停,向前推进的速度不可预测。但操作系统必须保证程序在相同环境下的运行结果一致。
学习操作系统面临的挑战
体系庞大
代码量大,需聚焦核心内容学习
并发性
并发带来复杂的编程挑战
硬件依赖性
涉及时间依赖行为、非法行为、硬件故障
高效性要求
必须尽可能低耗 CPU、内存和磁盘
可靠性需求
操作系统出错会导致整机崩溃,需要高度稳定
安全性
操作系统是系统安全的基础
知识更新
技术发展迅速,需从更高的视角理解核心原理
操作系统的重点
权衡
空间与时间
性能与可预测性
公平与性能
硬件管理与资源分配
高效管理硬件资源
合理分配资源
例如:硬盘速度远低于 CPU,需要操作系统合理协调处理。
总结
操作系统是介于硬件和应用程序之间的重要软件,其核心作用在于通过并发、共享、虚拟和异步等特性,实现对硬件资源的高效管理和抽象服务。学习操作系统需要掌握其关键组件和特征,并理解其在硬件管理、资源分配和系统安全中的重要作用。