操作系统复习 第一章
第一章 引论
操作系统:
-
目标:
-
方便性
-
有效性
-
提高系统资源利用率
-
提高系统吞吐量
-
-
可拓展性
-
开放性
-
-
作用:
-
作为用户与计算机硬件系统之间的接口
-
程序接口
-
命令接口
-
GUI
-
-
作为计算机系统资源的管理者
-
处理机管理
-
存储器管理
-
I/O设备管理
-
文件管理
-
-
实现了对计算机资源的抽象
-
将具体的计算机硬件资源抽象为软件资源,方便用户使用和拓展
-
开放了简单的访问方式,隐藏了实现细节
-
-
-
发展动力
-
不断提高计算机资源利用率
-
方便用户
-
器件的不断更新迭代
-
计算机体系结构的不断发展
-
不断提出新的应用需求
-
计算机的发展历程
人工操作方式
-
优点
-
用户独占全机
-
CPU等待人工操作
-
-
缺点
-
计算机资源浪费
-
效率低
-
CPU与I/O设备之间速度不匹配
-
脱机输入输出方式
-
优点
-
解决了人际矛盾
-
减少了CPU的空闲时间
-
提高了I/O速度
-
-
缺点
- 一次只能执行一个程序
单道批处理系统
批处理是指计算机系统对一批作业自动进行处理的一种技术。 为实现对作业的连续处理,需要先把一批作业以脱机方式输入到磁带上,并在系统中配上监督程序(Monitor) ,在它的控制下,使这批作业能一个接一地连续处理
-
优点
-
自动性
-
顺序性
-
单道性
-
-
缺点
-
内存中只有一道程序
-
CPU需要等待I/O完成
-
多道批处理系统
在多道批处理系统中,用户所提交的作业都先存放在外存上并排成一个队列,称为“后备队列”; 然后,由作业调度程序按一定的算法从后备队列中选择若干个作业调入内存,使它们共享CPU和系统中的各种资源。
-
优点
-
提高CPU的利用率
-
可提高内存I/O设备利用率
-
增加系统吞吐量
-
-
缺点
-
平均周转周期长
-
无人机交互
-
分时系统
采用时间片轮转的方法,同时为许多终端用户服务,对每个用户能保证足够快的响应时间,并提供交互会话的功能。 时间片:将CPU的时间划分成若干个片段,称为时间片,操作系统以时间片为单位,轮流为每个终端用户服务关键问题
-
特征
-
多路性:时间片轮转机制
-
独立性:用户彼此独立
-
及时性:用户能在短时间内获得响应
-
交互性:用户可以请求多种服务
-
实时任务
-
按照是否呈现周期性划分
-
周期性实时任务
-
非周期性实时任务
-
开始截止时间
-
完成截止时间
-
-
-
对截止时间的要求的划分
-
硬实时任务
-
软实时任务
-
微机操作系统
微型计算机操作系统 微型计算机操作系统简称微机操作系统,常用的有Windows、Mac OS、Linux。
基本特征
并发性
并行性是指两个或多个事件在同一时间发生
并发性是指两个或多个事件在同一事件间隔发生
-
宏观上,处理机同时处理多道程序
-
微观上,处理机在多道程序间高速切换
进程( process )是指在系统中能独立运行并作为资源分配的基本单位,它是由一组机器指令、数据和堆栈等组成的,是一个能独立运行的活动实体。 线程( threads )通常在一个进程中可以包含若干个线程, 一般把进程作为分配资源的基本单位,而把线程作为独立运行和独立调度的基本单位。
共享性
资源共享,即系统中的资源多个“并发执行”的应用程序共同使用
-
互斥共享方式:多个程序在同一个共享资源上独立而互不干扰的工作
- 又叫临界资源/独占资源
-
同时访问方式:同一时段允许多个程序同时访问共享资源
并发和共享互为存在条件
-
共享性要求OS中同时运行着多道程序若只有单道程序正在运行,则不存在共享的可能
-
并发性难以避免的导致多道程序同时访问同一个资源,若多道程序无法共享部分资源(比如磁盘) ,则无法并发
虚拟性
使用某种技术把一个物理尸体变成多个逻辑上的对应物
-
时分复用技术( TDM , Time Division Multiplexing )
-
虚拟处理机技术:利用多道程序设计技术,为每道程序建立一个进程,让多道程序并发执行,以此来分时使用一台处理机。
-
虚拟设备技术:将一台物理I/O设备虚拟为多台逻辑上的I/O设备,并允许每个用户占用一台逻辑上的I/O设备。
-
-
空分复用技术( SDM , Space Division Multiplexing )
- 虚拟存储器技术
异步性
-
多道程序环境下,允许多个程序并发执行;单处理机环境下,多个程序分时交替执行;
-
程序执行的不可预知性
-
获得运行的时机
-
因何暂停
-
每道程序需要多少时间
-
不同程序的性能,比如计算多少, I/O多少
-
-
宏观上“一气呵成”,微观上“走走停停”
-
每个程序在何时执行,多个程序间的执行顺序以及完成每道程序所需的时间都是不确 定和不可预知的。进程是以人们不可预知的速度向前推进,此即进程的异步性。
主要功能
处理机管理
-
进程控制:当用户作业要运行时,应为之建立一个或多个进程,并为它分配除处理机以外的所有资源,将它放入进程就绪队列。当进程运行完成时,立即撤消该进程,以便及时释放其所占有的资源。进程控制的基本功能就是创建和撤消进程以及控制进程的状态转换。
-
进程同步:所谓进程同步是指系统对并发执行的进程进行协调。
-
进程互斥方式,是使诸进程以互斥方式访问临界资源。
-
进程同步方式,对于彼此相互合作去完成共同任务的诸进程,则应由系统对它们的运行次序加以协调。
-
-
进程通信:对于相互合作的进程,在它们运行时,相互之间往往要交换一定的信息,这种进程间所进行的信息交换称为进程通信。
-
调度:当一个正在执行的进程已经完成,或因某事件而无法继续执行时,系统应进行进程调度,重新分配处理机。
-
作业调度是从后备队列中按照一定的算法,选择出若干个作业,为它们 分配运行所需的资源。
-
进程调度是指按一定算法,从进程就绪队列中选出一进程,把处理机分 配给它,为该进程设置运行现场。并使之投入运行。
-
存储器管理
-
内存分配:主要任务是:
-
为每道程序分配内存空间,使它们”各得其所”。
-
提高存储器的利用率,尽量减少不可用的内存空间(碎片)。
-
允许正在运行的程序申请附加的内存空间,以适应程序和数据动态增长的需要。
-
-
内存分配方式
-
静态分配
-
动态分配
-
-
内存保护:为保证各道程序都能在自己的内存空间运行而互不干扰,要求每道程序在执行时能随时检查对内存的所有访问是否合法。必须防止因一道程序的错误而扰乱了其它程序,尤其应防止用户程序侵犯操作系统的内存区。
-
内存保护机制:设置两个寄存器,存放正在执行程序的上下界。
-
地址映射: -个应用程序(源程序)经编译后,通常会形成若干个目标程序;这些目标程序再经过链接便形成了可装入程序。这些程序的地址都是从”0”开始的,程序中的其它地址都是相对于起始地址计算的;
-
在多道程序环境下,每道程序不可能都从”0”地址开始装入(内存),这就致使地址空间内的逻辑地址和内存空间中的物理地址不相一-致。
-
使程序能正确运行,存储器管理必须提供地址映射功能,以将地址空间中的逻辑地址转换为内存空间中与之对应的物理地址。
-
内存扩充:并非是去扩大物理内存的容量,而是借助于虚拟存储技术,从逻辑上去扩充内存容量,使用户所感觉到的内存容量比实际内存容量大得多;或者是让更多的用户程序能并发运行。
-
请求调入功能。
-
置换功能。
-
-
缓冲管理:几乎所有的外围设备于处理机交换信息时,都要利用缓冲来缓和CPU和I/O设备间速度不匹配的矛盾,和提高CPU与设备、设备与设备间操作的并行程度,以提高CPU和I/O设备的利用率。
-
最常见的缓冲区机制有单缓冲机制、能实现双向同时传送数据的双缓冲机制,以及能供多个设备同时使用的公用缓冲池机制。
-
设备分配:系统根据用户所请求的设备类型和所采用的分配算法对设备进行分配,并将未获得所需设备的进程放进相应设备的等待队列。
-
设备处理程序又称为设备驱动程序。其基本任务是用于实现CPU和设备控制器之间的通信,即由CPU向设备控制器发出I/O命令,要求它完成指定的I/0操作;反之由CPU接收从控制器发来的中断请求,并给予迅速的响应和相应的处理。
设备管理
-
设备管理的主要任务:
-
为用户程序分配I/0设备;完成用户程序请求的I/O操作;
-
提高CPU和I/O设备的利用率;方便用户使用。
-
文件管理
-
文件存储空间的管理
-
目录管理
-
文件读写管理和保护
操作系统与用户之间的接口
-
用户接口
-
联机用户接口
- 为联机用户提供的,它由一组键盘操作命令及命令解释程序所组成。用户可通过先后键入不同的命令方式来实现对作业的控制。
-
脱机用户接口
- 该接口是为批处理作业的用户提供的,故也称为批处理用户接口。由一组作业控制语言组成。用户用JCL把需要对作业进行的控制和干预事先写在作业说明书上,然后将作业连同作业说明书一起提供给系统。
-
图形用户接口
- 采用图形化的操作界面,用各种图表将系统的各项功能、文件等,直观的表现出来。用户直接用鼠标对应用程序和文件进行操作。
-
-
程序接口
- 由一组系统调用组成,每一个系统调用都是一个能完成特定功能的子程序,每当应用程序要求OS提供某种服务时,便调用具有相应功能的系统调用。
运行环境
内核态(管态)和用户态(目态)将内核程序和用户程序隔离
-
内核态
-
操作系统的程序执行
-
使用全部指令
-
使用全部系统资源
-
-
用户态
-
用户程序执行
-
禁止使用特权指令
-
只允许用户程序访问自己的存储区域
-
特权指令和非特权指令
-
特权指令
-
设计外部设备的输入/输出指令
-
存取用于内存保护的寄存器
-
内存清零
-
置时钟
-
允许/禁用中断
-
中断指令是用户程序发起的调用内核代码的唯一方式
-
中断机制
-
提高多道程序环境下CPU利用率
-
外中断:中断信号来源于外部设备
-
内中断:中断信号来源于当前指令内
-
-
内中断的三种情况
-
陷阱/陷入:由应用程序主动引发
-
故障:由错误条件引发
-
终止:由致命错误引发
-
-
系统调用的核心
-
用户程序中包含一段含有int指令的代码
-
操作系统写中断处理,获取想调用程序的编号
-
int指令将使CPL改成0 ,“进入内核”
-
操作系统根据编号执行相应代码
-