前言:该系列文章为笔者学习清华大学《操作系统原理》相关课程笔记,参考书籍《操作系统概念》《现代操作系统等》。如果涉及相关书籍或课程版权,联系即删~
章节 | 博文 |
---|---|
1 | 《操作系统原理》学习笔记:第1章 概述 |
2 | 《操作系统原理》学习笔记:第2章 操作系统基础操作 |
3 | 《操作系统原理》学习笔记:第3章 操作系统内存管理 |
4 | 《操作系统原理》学习笔记:第4章 非连续内存分配 |
5 | 《操作系统原理》学习笔记:第5章 虚拟内存 |
6 | 待续…… |
《操作系统原理》学习笔记:第1章 概述
1.1 什么是操作系统
-
用户角度上,操作系统是一个控制软件
管理应用程序,为应用程序提供服务,杀死应用程序,同时为用户提供一些操作界面 -
计算机内部角度上,操作系统为资源管理
管理外设,分配资源
-
操作系统架构层次结构
硬件之上,应用程序之下 -
Linux,Windows,Android的界面属于外壳(Shell),Kernel是研究重点,位于Shell之下
1.2 Kernel操作系统内部组件
-
CPU调度器
-
物理内存管理
-
虚拟内存管理
-
文件系统管理
-
中断处理与设备驱动
1.3 OS Kernel的特征
-
并发
计算机系统中同时存在多个运行的程序,需要OS管理和调度并发:在一段时间内,有多个程序运行
并行:在一个时间点上,有多个程序可以运行。要求计算机系统有多个CPU
-
共享
“同时”访问,互斥共享(根据资源特征,区别是同时共享,还是互斥共享) -
虚拟
将磁盘虚拟为文件,将内存虚拟为地址空间……
利用多道程序设计技术,让每个用户都觉得有一个计算机专门为他服务 -
异步
程序的执行不是一贯到底,而是走走停停,向前推进的速度不可知
但只要运行环境相同,OS需要保证程序运行的结果也要相同
1.4 学习操作系统的挑战
-
操作系统很大
Windows XP有4500万行,实际操作系统代码量巨大,不可能完全掌握,目标是要理解其核心内容 -
操作系统管理并发
方法导致有趣的编程挑战 -
操作系统代码管理原始硬件
时间依赖行为,非法行为,硬件故障 -
操作系统代码必须是高效的
低耗CPU、内存、磁盘的 -
操作系统出错,就意味着机器出错
操作系统必须比用户程序拥有更高的稳定性 -
操作系统是系统安全的基础
-
操作系统需要权衡
空间和时间、性能和可预测性、公平和性能 -
硬件方面,操作系统需要:良好的硬件管理,合理的资源分配
例如:磁盘速度跟CPU、内存相差很多,操作系统需要协调处理1.5 操作系统实例
-
UNIX家族
UNIX BSD(伯克软件发行版)基于此,开发有惠普hp,苹果apple等 -
Linux家族
仿UNIX,基于此,开发有redhat,fedoro,Ubuntu等
移动终端,google眼镜google手表 -
Window家族
微软从DOS发展至今
1.6 操作系统的历史与发展
-
早期计算机使用纸带传输程序和数据,操作系统只起到加载作用
-
CPU 等硬件快速发展,计算机速度得到提升,性能未得到充分利用
-
内存容量越来越大,CPU执行多个程序(多道程序设计)
-
为了更好的利用计算机资源,并且更好的和用户交互,出现了分时系统(中断帮助操作系统完成分时调度)
-
80年代,个人电脑操作系统
最初:操作系统最初作为一个简单的服务提供者
现在:支持协调和沟通的多应用系统 -
发展趋势
多核多处理
网络的快速发展,出现了分布式操作系统1.7 操作系统结构
-
简单操作系统:MS-DOS(1981~1994)不分模块的单体内核
囿于内存,CPU的能力限制
容易被攻击破坏,很难扩展 -
Unix操作系统:1972贝尔实验室设计
可移植,可扩展 -
uCore实验用操作系统,仿照Unix操作系统
-
微内核
将操作系统主要的功能,如中断放入内核,其它的功能如文件管理通过服务调用
优点:安全(地址隔离),松耦合
缺点:文件系统和内存管理交互需多次拷贝,从函数调用变为系统调用,消息传递机制来进行通信,性能降低 -
外核(产生于90年代,主要在学术界,需进一步研究)
操作系统内核分为两块,其一完成硬件功能复制,另一个libOS与具体应用结合多个libOS可以并发访问硬件,且与具体应用结合,性能可调节优化
-
VMs虚拟机,运行在操作系统之下,硬件之上
在一台物理计算机上可以虚拟出多台计算机系统
硬件资源过剩,充分利用CPU性能
VMM(虚拟机监视器)