https://studentcompetitions.com/posts/10-mooc-websites-to-start-your-free-online-education
64课时(上课56、上机8学时)
-
教学理论和综合应用相结合
- 基础课程
- 考研的课程
- 应用价值
-
成绩构成:
-
期末考试占60%
-
平时20%,实验10%,10%期中
-
-
Andrew S. Tanenbaum
- 现代操作系统
- 操作系统:设计与实现
-
William Stallings
- 操作系统精髓与设计原理
-
汤小丹, 梁红兵
- 计算机操作系统
-
Orange'S:一个操作系统的实现
-
Linux内核源代码情景分析
-
Linux内核完全注释
-
UNIX环境高级编程(第3版)(圣经)
-
内容多
- 涉及计算机各个方面
-
内容抽象
- 不易找到直观形象的例子
-
概念性强
- 太多的定义
-
枯燥、授课难度较大
操作系统与学科联系图
- 随机抽样回答问题
- 按时完成理论作业以及实际作业
- 不定期翻转课堂,做好预习
本课程是基于 单核单线程 无硬件多线程的情况下展开的
-
什么是操作系统
-
操作系统的发展与变革
-
操作系统万花筒
-
相关硬件知识
-
初识操作系统
- 相关概念、层次结构、系统调用…
A modern couputer consists of:
- One or more processors
- Main memory
- Disks
- Printers
- Verious input/output devices
Managing all these components requires a layer of software - the operating system
通过软件、命令行、程序使用操作系统 Kernel mode: 内核模式,可执行特权指令
-
操作系统
-
控制应用程序执行的程序
-
应用程序和计算机硬件间的接口
-
-
目标
- 方便:使计算机更易于使用
- 有效:允许以更有效的方式使用计算机系统资源
- 扩展能力:在不妨碍服务的前提下,有效地开发、测试和引入新的系统功能
-
允许多道程序同时执行
-
管理和保护存储器、I/O设备以及其他资源
-
多路复用
- 时间(时间片)
- 空间(硬盘分区)
没有操作系统
1401将卡纸转磁带,7094将磁带数据读出运算输出到另一个磁带,1401将输出磁带结果打印出来
- 缺点:不交互,不及时,在简单批处理系统,处理器必须等待I / O指令完成才能继续处理
对多个应用程序控制
- 多道程序设计示例
- 系统可用内存250MB
- 示例程序执行属性
Heavy compute: 计算密集型 Heavy IO: IO密集型
- 单道程序设计的系统设备利用率较低, 多道程序设计技术可以显著提高系统设备利用率
吞吐量:单位时间内完成的任务的数量
-
多道批处理系统——简单批处理系统的改进
-
内存中同时存放多个作业
-
多个作业可并发执行
-
作业调度程序负责作业的调度
-
-
多道批处理系统的硬件支持
-
中断(中断控制器)
-
DMA(Direct Memory Access,直接内存存取)(通道)
-
(排队仲裁器)等
-
-
多道批处理系统的特征
多道性:内存中同时驻留多道程序并发执行,从而有效地提高了资源利用率和系统吞吐量
调度性:作业调度、进程调度
无序性:作业的完成顺序与它进入内存的顺序之间无严格的对应关系
无交互能力
-
需要解决的基本问题(现代操作系统的功能)
- 内存管理
- 处理机管理
- 作业管理
- I/O设备管理
- 防止IO死锁
- 文件管理
-
特征
- 多道性、无序性、调度性
-
优点
- 提高了资源利用率和吞吐能力。
-
缺点
- 平均周转时间长,没有交互能力
-
利用率 $$ 利用率=\frac{工作的时间}{总时间} $$
-
系统吞吐量 $$ 系统吞吐量=\frac{总共完成了多少到作业}{总时间} $$
-
周转时间
-
等待时间
- 进程/作业等待被服务的时间之和
$$ 等待时间=周转时间-运行时间 $$
$$ 平均等待时间=\frac{等待时间}{总数} $$
-
响应时间
- 从用户提交请求到首次产生响应所用的时间
操作系统是一组控制和管理计算机硬件和软件资源,合理地对各类作业进行调度,以及方便用户使用的程序的集合。
An operating system (OS) is system software that manages computer hardware and software resources and provides common services for computer programs.
-
产生原因
人机交互、共享主机、方便上机
-
分时系统
-
采用多道程序设计技术处理多个交互作业
-
多个用户共享处理器
-
多个用户通过不同终端同时访问系统
-
-
分时系统的特点
- 多路性:多个用户分时使用一台计算机。
- 独立性:独立运行,不混淆,不破坏。
- 及时性:系统能在很短的时间得到回答。
- 交互性:能实现人机对话
批处理系统多道系统程序设计与分时的比较
批处理系统多道系统设计 | 分时 | |
---|---|---|
主要目标 | 充分利用处理器 | 减小响应时间 响应时间:用户提交作业开始,到系统第一次响应用户请求为止 |
操作系统指令源 | 作业控制语言命令 作业提供的命令 |
终端键入的命令 |
-
概念
系统能及时(即时)响应外部事件请求,在规定的时间内完成对该事件的处理,并控制所有实时任务协调一致地运行。
及时:允许时间内响应
即时:立刻马上响应
-
应用领域
-
航空航天
-
军事
-
工业控制
-
-
实时系统的分类
- 软实时系统:要求一定的实时性,产生后果较小
- 硬实时系统:高要求的实时性
-
实时系统与分时系统比较
- 应用领域
- 响应速度
- 调度准则
- 实时系统:优先级
关于计算机组成原理和体系结构
-
David A.Patterson
-
John L.Hennessy
(a) A three-stage pipeline.
graph LR
A[Fetch unit] --> B[Decode unit]
B --> C[Execute]
(b) A superscalar CPU.
graph LR
A[Fetch unit] --> B[Decode unit]
C[Fetch unit] --> D[Decode unit]
B --> E((Holding buffer))
D --> E
E --> F[Execute unit]
E --> G[Execute unit]
E --> H[Execute unit]
(a) A quad-core chip with a shared L2 cache. Core左上角黑色为一级缓存,所有core共享一个缓存 (b) A quad-core chip with separate L2 caches.
![typical memory hierarchy](操作系统.assets/typical memory hierarchy.png)
不同存储介质之间,读写速度不同,但又有频繁的交流,所以需要缓存
缓存要考虑的问题:导入导出的时间和位置
![The steps in starting an I/O device and getting an interrupt](操作系统.assets/The steps in starting an IO device and getting an interrupt.png)
![The structure of a large Pentium system](操作系统.assets/The structure of a large Pentium system.png)
-
Mainframe operating systems (大型机)
-
Server operating systems(服务器)
-
Multiprocessor operating systems(多处理器)
-
Personal computer operating systems(个人计算机)
-
Handheld operating systems(掌上电脑)
-
Embedded operating systems(嵌入式)
-
Sensor node operating systems(传感器)
-
Real-time operating systems(实时操作系统)
-
Smart card operating systems(智能卡系统)
-
本质上是一个正在执行的程序
- 有自己的活动状态
- 未响应(可能情况):运行错误,等待输入,资源不足
- 有自己的活动状态
-
OS通过进程表来维护进程
-
如何维护?进程列表:进程状态,进程资源...
-
要考虑哪些问题?
-
![A process tree](操作系统.assets/A process tree.png)
-
一个程序可以使用的地址的集合
-
思考:
-
一个进程的地址空间是否可以大于主存自身的空间?可以
-
64位最大地址空间有 $$ 2^{64}bit = 128GB $$
-
进程的地址空间大小,不是进程的实际大小(没有被装载进主存的程序会)
-
地址范围不是真实的,是虚拟地址的范围,有时甚至会超过实际物理内存的大小
-
-
若干个进程地址空间之和是否可以大于主存自身的空间?
-
-
文件系统
-
目录
-
路径
- 绝对路径
- 相对路径
-
文件的访问
- 权限
一个文件系统
- 数据应该受到保护
- 存储
- 访问保护、反病毒保护、实体安全保护
- 处理
- 传输
- 完整、机密、认证、非否认(接收方/发送方 检测是否接收/发送)
- 存储
操作系统的壳
用户与OS之间的接口
- Unix:sh、bash
- Windows:command.exe
-
可以深入到内核的一个特殊过程调用
-
系统调用的过程
-
假设用户在用户态下执行程序,需要系统服务
-
执行一个系统调用指令
-
操作系统进行参数检查,找到所需进程,转移控制权
-
执行系统调用
-
返回到用户态
-
Process Management
操作系统应具有五方面的功能:
- 处理机(CPU)管理
- 存储器(内存)管理
- 设备管理(嵌入系统中可能没有)
- 文件管理(嵌入系统中可能没有)
- 方便用户使用的用户接口,人机接口
处理机管理的主要功能 :按照一定的算法把处理机分配给进程(线程),并对其进行有效的管理和控制。
-
进程控制
进程控制的主要功能是为作业创建进程、撤消已结束的进程,以及控制进程在运行过程中的状态转换。
-
进程同步
-
进程同步的主要任务是为多个进程的运行进行协调。
-
两种协调方式:
- 进程互斥方式,这是指诸进程(线程)在对临界资源进行访问时,应采用互斥方式;
- 进程同步方式,指进程相互合作去完成共同的任务时,诸进程之间的协调。
-
实现进程同步采用信号量机制。
-
-
进程通信
进程通信——是进程之间的信息交换。
当相互合作的进程(线程)处于同一计算机系统时,通常在它们之间是采用直接通信方式,即由源进程利用发送命令直接将消息(message)挂到目标进程的消息队列上,以后由目标进程利用接收命令从其消息队列中取出消息。
-
调度
-
在后备队列上等待的每个作业,通常都要经过调度才能执行。
-
在操作系统中作业运行需经作业调度和进程调度才能执行完成。
- 作业调度是从后备队列中按照一定的算法,选择出若干个作业,为它们分配其必需的资源,将它们调入内存后,为它们建立进程,插入就绪队列。
- 进程调度是从进程的就绪队列中选出一新进程,把处理机分配给它,使进程投入执行。
-
长程(作业队列需要选择作业创建进程),中程(对换(存储器,disk),短程(针对进程可能属于同一个作业,选择若干个进程中选择运行)
-
-
存储器管理的主要任务:
为多道程序的运行提供良好的环境,方便用户使用存储器,提高存储器的利用率以及能从逻辑上扩充内存。
-
内存分配
- 内存分配有两种方式:
- 静态分配方式,每个作业运行之前分配好内存空间,在作业的整个运行期间不再改变。
- 动态分配方式中,每个作业在运行前或运行中,均可申请新的附加内存空间,以适应程序和数据的动态增涨。
- 内存分配的机制中应具有这样的结构和功能:
- 内存分配的数据结构,该结构用于记录内存空间的使用情况。
- 内存分配功能——为用户程序分配内存空间;
- 内存回收功能——当用户不再需要的内存时,系统能回收内存的功能。
- 内存分配有两种方式:
-
内存保护
-
内存保护的主要任务:
是确保每道用户程序都只在自己的内存空间内运行,彼此互不干扰。
-
内存保护机制:
是设置两个界限寄存器,越界检查都由硬件实现
-
-
地址映射
地址空间 ——目标程序或装入程序限定的空间,称为“地址空间”。单元的编号称为逻辑地址,又称为相对地址。
内存空间——由内存中的一系列单元所限定的地址范围称为“内存空间”,其中的地址称为“物理地址”。
地址映射——运行时,将地址空间中的逻辑地址转换为内存空间中与之对应的物理地址,称为地址映射 。
-
内存扩充
$dir /a agefile.sys #内存的换进换出作为虚拟内存的一部分
-
借助于虚拟存储技术
从逻辑上去扩充内存容量,使用户所感觉到的内存容量比实际内存容量大得多;
-
扩充内存必须具有内存扩充机制:
(1)请求调入功能。在程序运行过程中,若所需的程序和数据尚未装入内存,可由OS从磁盘中将所需部分调入内存,继续运行。
(2)置换功能。将内存中的一部分暂时不用的程序和数据调出到磁盘上,然后再将所需调入的部分装入内存。
-
-
设备管理的主要任务:
是完成用户进程提出的I/O请求
为用户进程分配其所需的I/O设备
提高CPU和I/O设备的利用率
提高I/O速度
方便用户使用I/O设备
-
设备管理具有的功能:
-
缓冲管理:有效地缓和CPU和1/O设备速度不匹配的矛盾 ,提高CPU的利用率。
对于不同的系统,可以采用不同的缓冲区机制
-
设备分配
1.设备分配的基本任务,是根据用户进程的I/O请求,按照某种设备分配策略,为之分配其所需的设备。
2.为了实现设备分配,系统中应设置设备控制表、控制器控制表等数据结构,用于记录设备及控制器的标识符和状态,以供进行设备分配时参考。
3.不同的设备类型(独占、共享)而采用不同的设备分配方式。
-
设备处理
- 设备处理程序又称为设备驱动程序。
- 设备处理其基本任务:是用于实现CPU和设备控制器之间的通信,即由CPU向设备控制器发出I/O命令,要求它完成指定的I/O操作;反之由CPU接收从控制器发来的中断请求,并给予迅速的响应和相应的处理。
- 处理过程 :检查请求的合法性→设备空闲否?→向控制器发I/O命令→启动I/O执行。
-
文件管理的主要任务:是对用户文件和系统文件进行管理,以方便用户使用,并保证文件的安全性。
-
文件管理的主要功能:
-
文件存储空间的管理 ——是对诸多文件及文件的存储空间,实施统一的管理。基于数据结构(MCB)对存储空间进行分配和回收的功能。
-
目录管理
为每个文件建立目录项,并对众多的目录项加以有效的组织与管理(例如,按名存取,文件共享 )。
-
文件的读/写管理和保护
- 文件的读/写管理:是根据用户的请求,从外存中读取数据或将数据写入外存。
- 文件保护:即存取控制功能:
- 防止未经核准的用户存取文件
- 防止冒名顶替存取文件
- 防止以不正确的方式使用文件。
-
命令接口——用户可通过该接口向作业发出命令以控制作业的运行。
-
联机用户接口:这是为联机用户提供的,它由一组键盘操作命令及命令解释程序所组成。
-
脱机用户接口:用户用JCL把需要对作业进行的控制和干预,事先写在作业说明书上,然后将作业连同作业说明书一起提供给系统。当系统调度到该作业运行时,再调用命令解释程序,对作业说明书上的命令,逐条地解释执行。该接口即为批处理接口。
-
-
程序接口
-
该接口是为用户程序在执行中访问系统资源而设置的,是用户程序取得操作系统服务的惟一途径。
-
它是由一组系统调用组成,每一个系统调用都是一个能完成特定功能的子程序,每当应用程序要求OS提供某种服务(功能)时,便调用具有相应功能的系统调用。
-
不同的系统其调用形式不同。
-
-
图形接口
- 图形用户接口采用了图形化的操作界面,用非常容易识别的各种图标(icon)来将系统的各项功能、各种应用程序和文件,直观、逼真地表示出来。用户可用鼠标或通过菜单和对话框,来完成对应用程序和文件的操作。
没有一种结构是标准的,没有一种结构是完美的
结构:单体系统、层次结构、微内核、客户机-服务器、虚拟机、Exokernel(外核)