本系列博客是源于2018级北航计算机学院的操作系统理论课程的课堂笔记、课堂练习及课后笔记整理而来。相关的参考资料绝大多数来自于北航计算机学院操作系统课程组,同时也参考了机械工业出版社出版的《现代操作系统(中文第四版)》。
由于本博客是本系列博客的开篇,故于此简单介绍一下北航计算机学院操作系统理论课程的目标,再进行第一章内容的总结。
操作系统课程目标
- 掌握操作系统的基本原理
- 进程管理
- 存储管理
- 设备管理
- 文件系统
- 对操作系统的基本概念、基本结构及运行环境有深入的认识;
- 具有分析操作系统的能力
- 系统级编程能力的提高
- 系统调用的使用
- 深入到操作系统内部,理解并掌握操作系统的基本原理、设计方法和实现技术
- 操作系统设计、并发程序的设计方法
- 思维方式的学习:权衡(Trade Off)、抽象
- 了解操作系统的演化过程、发展研究动向、新技术以及新思想
本章复习重点
- 操作系统的发展历史
- 批处理、分时
- 单道程序、多道程序
- 实时、网络、分布式
- 冯诺依曼体系结构:存储程序式
- 集中顺序过程控制
- 操作系统的主要功能
- 进程管理
- 存储管理
- 设备管理
- 文件系统
- 现代操作系统的基本特征
- 并发执行
- 资源共享
- 虚拟化管理
- 异步性
- 操作系统的工作模式
- 内核态/管态
- 用户态/目态
- 几个术语
- 特权指令/保护指令
- 异常:中断、陷入(包括系统调用)
- 分析操作系统的几种观点
- 用户观点:操作系统为用户提供了哪些功能可以使用
- 资源管理:回答了整个操作系统是由哪几部分组成的
- 进程观点:指明了这些资源管理程序在什么时候开始起作用,以及它们在执行过程中是如何相互联系的
- 模块分层设计:从操作系统构建的角度,考虑操作系统的结构
- 抽象与权衡
1.1 什么是操作系统
操作系统定义(非严格)
- 操作系统是一组管理计算机硬件资源的软件集合,它向计算机程序提供共性的服务。
- 提供一个计算机用户与计算机硬件系统之间的接口 ,使计算机系统更易于使用。(使用者)
- 有效地控制和管理计算机系统中的各种硬件和软件资源,使之得到更有效的利用。(资源管理者)
- 合理地组织计算机系统的工作流程,以改善系统性能(如响应时间、系统吞吐量)。
操作系统层次
- user
- system and application programs
- operating system
- computer hardware
计算机体系结构中的接口
- 自顶向下看操作系统,利用抽象来屏蔽复杂性。
- 创建抽象
- 实现和管理抽象
- 自底向上看操作系统,利用资源的复用来实现时间维度和空间维度的共享。
- 支持多个用户、多个程序
- 资源竞争
- 资源的复用(共享)
操作系统的设计目标
-
更多的人能方便地使用计算机(方便性)
- 通过操作系统提供的各种命令来操作计算机极大方便了用户,使得计算机系统易学易用。
-
计算机系统的使用效率尽可能地高(有效性)
- 提高系统资源的利用率。在未配置操作系统的计算机系统中,处理机和IO设备经常处于空闲状 态,系统资源利用率低下;
- 提高系统的吞吐量。操作系统通过合理组织计算 机的工作流程,加速程序的运行,缩短程序的运 行周期以实现系统吞吐量的提高;
操作系统的作用
-
用户与计算机硬件系统之间的接口(API/GUI)
-
即:OS处于用户与计算机硬件系统之间,用户通过OS来使用计算机系统。
-
系统资源的管理者(处理机、存储器、I/O设备等)
-
处理机管理是用于分配和控制处理机
-
存储器管理是负责内存的分配与回收
-
I/O设备管理是负责I/O设备的分配(回收)与操纵
-
文件管理是用于实现文件的存取、共享和保护
-
-
实现对计算机资源的抽象(OS是扩充机/虚拟机)