操作系统
操作系统是一个控制程序
- 是一个系统软件。
- 可以控制程序的执行过程,防止错误和计算机的不当使用。
- 执行用户程序,给用户程序提供各种服务。
- 方便用户使用计算机系统。
操作系统是一个资源管理器
- 应用程序和硬件之间的中间层。
- 管理计算机各种软硬件资源。
- 提供访问计算机软硬件资源的高效手段。
- 解决资源访问冲突、确保资源公平使用。
ucore教学操作系统内核
操作系统内核的特征
- 并发:计算机系统中同时存在多个运行的程序,需要OS管理和调度
- 共享:宏观上“同时”访问,微观上互斥访问。比如两个应用同时访问内存。
- 虚拟:利用多道程序设计技术,让每个用户都觉得有一个计算机专门为他服务
- 异步:程序的执行不是一贯到底,而是走走停停,向前推进的速度不可预知。只要运行环境相同,OS需要保证程序运行的结果也要相同。
掌握操作系统具有挑战性
- 操作系统很大,windows Xp有4500万行代码
- 操作系统管理并发,并发导致有趣的编程挑战
- 操作系统管理原始硬件(时间依赖行为、非法行为、硬件故障)
- 操作系统的代码必须是高效的,低耗CPU、内存、磁盘的
- 操作系统出错,就意味着机器出错,因此,操作系统必须比用户程序拥有更高的稳定性
- 操作系统是系统安全的基础
操作系统为什么会变化
操作系统的主要功能是硬件抽象和协调管理。
硬件(如磁盘,内存,CPU)不断更新迭代。
操作系统的演变:
单用户系统 -> 批处理系统 -> 多道程序系统 -> 分时系统 -> 个人计算机:每个用户一个系统 -> 分布式计算:每个用户多个系统
- 单用户系统
单用户系统是由装载器和通用子程序库组测,主要问题是组件的低利用率。纸带装载完成后,才能执行程序。 - 批处理系统
用户将一批作业提交给操作系统后就不再干预,由操作系统控制它们运行。提高程序的运行效率。 - 多道程序处理系统
多道程序设计是多个用户同时使用一个CPU使用计算机的能力。其思想是有效地利用处理器创建多个随时可以运行的进程,每个进程属于不同的用户。如果当前进程由于某种原因而暂停,因为它必须等待某个特定事件(如IO事件),那么操作系统会将CPU分配给队列中的另一个进程。多道程序操作系统简化了整个操作,最大限度地提高了CPU利用率,从而减少了CPU的空闲时间。这样做的目的是让CPU尽可能长时间处于繁忙状态。 - 分时系统
在多道批处理系统基础之上,增加了时钟中断。保证每个程序都有时间执行。 - 个人电脑操作系统
此阶段的系统,系统利用率不再是关注重点。重点是系统易用性。如图像用户界面和多媒体功能。 - 分布式操作系统
此阶段关注的重点是网络支持,互通互联。一台计算多个CPU的利用。
操作系统的结构
简单结构(特定硬件平台)
没有拆分模块,此时的操作系统主要用汇编编写。
分层结构(可移植性为主要目标)
将操作系统分为多层,每层建立在低层之上。最底层是硬件,最高层是用户节目。每一层仅使用低一层的功能(操作)和服务。
微内核结构
尽可能把内核功能移植到用户空间。内核中只保留进程间通信和对硬件的支持。用户模块间的通信,需要先进入到内核态,再回到用户态。
虚拟机管理器 VMM 结构
多个操作系统,共享硬件资源。而虚拟机管理器处于硬件和操作系统之间。