1.操作系统的发展历程
阶段:
-
手工操作系统——无操作系统
-
批处理系统——早期批处理、执行系统
-
操作系统形成——批处理操作系统、分时操作系统、实时操作系统
-
现代操作系统——个人计算机操作系统、网络操作系统、分布式操作系统
(1)手工操作阶段
-
需要人工干预,速度极慢 :人工装纸带、人工控制程序运行、人工卸纸带
-
进入晶体管时代后,手工操作的慢速度和计算机的高速度形成了一对矛盾
-
为了解决这个矛盾,只有去掉人工干预,实现作业的自动过渡,因此形成的了批处理
(2)批处理
注意:
-
引入批量监督程序是为了实现作业建立和作业过渡的自动化
-
监督程序是一个常驻主存很小的核心代码
联机批处理:
-
监督程序的工作负荷是以作业流形式提供的
-
作业
每个用户需要计算机解决的计算机工作,包含一个程序、一些原始数据和作业的终止信息
-
作业说明书
提供用户标识、用户想使用的编译程序以及所需要的系统资源等基本信息
-
一个作业处理完后,监督程序可以自动调入下一个作业进行处理,直到该批作业全部处理完
-
作业的处理的全过程都是由中央处理机直接控制的
-
需要操作员装入和拆卸
脱机批处理:
-
脱机批处理由主机和卫星机组成
-
卫星机只与外围设备(输入机,打印机等)打交道,不与主机直接相连
-
卫星机与主机之间使用输入带,输出带相连
-
主机和卫星机可以并行操作
批处理系统是在解决人-机矛盾、中央处理机高速度和I/O设备的低速度这对矛盾的过程中发展起来的
(3)执行系统
以上系统仍存在问题:磁带需要人工拆卸,操作员需要监督机器的状态,系统没有任何自我保护的措施
改善:
-
通道
负责外部设备与主存之间的信息传输
-
中断技术
立即停止原来的工作,转去处理这一事件,该事件处理完,又回到原来的工作点继续工作
执行系统节省了卫星机,降低了成本,同样能支持并行操作,而且系统会检查输入命令的合法性
(4)多道程序设计技术和分时技术
多道程序设计技术:
-
中断和通道技术出现以后,还是不能完全消除中央处理机对外部传输的等待
-
多道程序运行
-
多道——计算机主存中同时存放几道相互独立的程序
-
宏观上并行
-
微观上串行——轮流或分时的使用处理机
-
分时技术:
-
把处理机时间划分成很短的时间片轮流地分配给各个联机作业使用
-
如果某个作业在分配的时间片用完之前还未完成计算,该作业就暂时中断,等待下一轮继续计算
-
交互性较高
注意:
-
在多道程序设计技术和分时技术的支持下,出现了批处理和分时系统
-
通道技术和中断技术的引入使操作系统进入执行系统阶段
-
批量操作系统和分时操作系统的出现标志着操作系统的初步形成
(5)实时处理
-
实时是指计算机对于外来信息能够在被控对象允许的截止期限内作出反应
-
实时处理要求快速响应
-
应用于炼钢、化工生产的过程控制,航天和军事防空系统中的实时控制
(6)现代操作系统
-
具有图形用户界面、功能强大的个人计算机操作系统
-
具有吞吐量大、处理能力强的现代批处理操作系统
-
具有交互能力强、响应快的分时操作系统
-
具有实时响应、可预测分析能力的实时操作系统
-
具有网络资源共享、远程通信能力的网络操作系统
-
具有单一系统映像、分布处理能力的分布式操作系统以及分布实时操作系统
2.操作系统的基本类型
(1)批量操作系统
-
吞度率高
-
对用户的响应时间较长,用户不能及时了解自己程序的运行情况并加以控制
-
用户不能直接干预
(2)分时操作系统
-
采用时间片轮转的方法
-
并行性
-
独占性
-
交互性
(3)实时操作系统
-
为了监视,响应或控制外部环境
-
截止期限
-
对外部信号及时响应
-
高可靠性和安全性,系统效率在第二位
-
没有像分时系统那样的高交互性
-
整体性强
(4)个人计算机操作系统
(5)网络操作系统
-
任何一台计算机都不能强制的启动、停止或控制另一台计算机
-
能进行信息传递和资源共享
-
增加网络通信模块
(6)分布式操作系统
-
构成单元为一个个独立的计算机系统,它们可以独立工作,也可合作
-
逻辑上是单一系统,为用户提供统一的接口,其实由多台计算机构成
-
分布式应用中有许多采用计算机网络作为硬件结构
-
分布式系统相比计算机网络具有多机合作和坚强性
-
一个或多个计算机或通路发生障碍,其余部分可自动重构成为一个新的系统
3.操作系统的基本概念
(1)操作系统
-
操作系统是一个大型的程序设计系统,它负责计算机系统软、硬件资源的分配和管理
-
控制和协调并发活动
-
提供用户接口,使用户获得良好的工作环境
注意:
-
软件:
-
系统软件:操作系统、编译程序、程序设计语言以及与计算机密切相关的程序
-
应用软件:应用程序、软件包
-
工具软件:诊断程序、检查程序、引导程序
-
(2)操作系统的资源管理功能
操作系统的核心任务是系统资源分配、控制和协调并发活动
-
处理机分配
将CPU先分给哪个用户程序,它占用多长时间,下一个又该轮到哪个程序等问题。
-
提出进程调度策略
-
提出进程调度算法
-
进行处理机的分派
-
-
存储管理
-
存储分配和存储无关性
数据和程序安置在主存什么位置,占多大区域
摆脱存储地址、存储空间大小等细节问题
-
存储保护
防止某道程序干扰、破坏其他用户程序
-
存储扩充
通过虚拟存储机制和软件去扩充主存空间
-
-
设备管理
-
设备无关性
用户向系统申请和使用的设备与实际操作的设备无关
使用设备的逻辑名
-
设备分配
外部设备的种类和台数是有限的
基本技术:独享、共享、虚拟分配
-
设备的传输控制
实现物理的I/O操作
-
-
软件资源管理
-
文件系统管理
-
为用户提供一种简便的、统一的存取和管理信息的方法,并要解决信息的共享、数据的存取控制和保密等问题
-
(3)操作系统的特性
-
并发
处理多个同时性活动的能力
并发:同一时间间隔
并行:同一时刻
-
共享
多个计算任务对资源的共同享用
多个用户共享一个程序的同一个副本
-
虚拟
各种虚拟技术
-
异步
由于资源的有限,进程的执行不是一贯到底的
-
不确定性
操作系统能处理随机发生的多个事件
(4)操作系统应解决的基本问题
-
解决资源分配的策略
实现对处理机、主存空间、外部设备、软件资源的共享
-
协调并发活动的关系
-
保证数据的一致性
对系统程序的保护
对同时进入主存的多道程序的保护
对共享数据的保护
-
实现数据的存取控制
规定权限(读、写、执行)
4.操作系统的组织结构
(1)操作系统虚拟机
-
操作系统虚拟机:在裸机上配置操作系统程序后就构成了操作系统虚拟机
-
操作系统的虚拟技术:
-
分时技术
-
虚拟存储技术
提供给用户的是逻辑地址和虚存空间
-
(2)操作系统的组织结构
-
结构
-
一体化结构
所有的功能模块和数据结构放在一个逻辑模块中,任何模块间没有显式的接口
效率较高
难以理解、难以维护
-
模块化结构
通过逻辑独立的模块来划分,相关模块间有良好定义接口
存在潜在的性能退化
-
可扩展内核结构(微内核)
两类:策略独立模块(共性,基础)、特定策略模块(分时,实时等功能)
提高了安全性和可靠性
便于系统扩充,移植
便于形成不同策略的操作系统
-
层次结构
洋葱头
每一层提供一组功能,这些功能只依赖该层以内的各层
各个层次可看成是一系列连续的虚拟机
-
-
接口
-
操作系统的最低层与硬件接口
包含CPU提供的机器指令,两种硬件机制
-
程序接口
系统功能调用,函数调用
-
操作接口
键盘命令,图形用户界面
-
-
运行时的组织结构
-
将操作系统服务作为子例程来提供,即采用系统功能调用
以内核功能调用或库函数方式实现
-
将操作系统服务作为系统服务进程来提供
服务请求或服务响应是通过消息传递方式来实现的,称之为客户服务器方式
-
5.处理机的状态
(1)状态
-
管态:又称用户态,是操作系统的管理程序执行时机器所处的状态
-
用户态:又称目态,是操作系统用户程序执行时机器所处的状态
注意:
-
系统应能建立一个保护环境,采用的办法是区分处理机的工作状态
-
有的系统将管理程序执行时机器的状态分为核态和管态
管态只允许执行用户态下所不能使用的资源,但不能使用修改机器的状态指令
核态具有原先管态所具有的所有权限
-
在计算机状态寄存器中需设置一个系统状态位用于区分处理机的工作状态
-
当用户程序执行时,若需要请求操作系统服务,则要通过一种受控方式进入操作系统
(2)特权指令
特权指令:
-
改变机器状态的指令(包括管态与用户态的转换)
-
修改特殊寄存器的指令
-
涉及外部设备的输入/输出指令
用户态自动转向管态:
-
系统功能调用
-
执行用户程序时,发生中断
-
用户进程中产生错误状态
-
用户态下企图执行特权指令(按错误处理)
6.中断机制
(1)中断
-
中断:某个事件发生时,系统中止现行程序的运行、引出处理该事件程序进行处理,处理完毕后返回断点,继续执行
注意:
-
为了实现并发活动,实现计算机的自动化工作,系统必须具备处理中断的能力
(2)中断类型
-
中断功能
-
输入/输出中断
I/O传输完成,I/O传输出错等
-
外中断
时钟中断(时间片)等
-
机器故障中断
电源故障等
-
程序性中断
定点溢出,用户态下核态指令,越界,非法操作等
-
访管中断
I/O传输,建立进程等
-
-
中断方式
-
强迫性中断
I/O,外中断,机器故障,程序性
-
自愿中断
访管中断
-
-
中断来源
-
中断
-
处理机外部事件引起的中断,也称外中断
-
I/O,外中断
-
-
俘获
-
处理机内部事件引起的中断
-
访管,程序性,机器故障
-
-
(3)中断进入
-
现场
在中断的那一刻能确保程序继续运行的有关信息
-
保护现场
当中断发生时,必须立即把现场信息保存在主存中
-
恢复现场
必须在该程序重新运行之前,把保留的该程序现场信息从主存中断至相应的寄存器中
-
程序状态字
-
程序状态字是反映程序执行时机器所处的现行状态的代码
-
主要内容:
-
程序现在应执行哪条指令
-
当前指令的执行情况
-
处理机处于何种工作状态
-
程序在执行时应屏蔽哪些中断
-
寻址方法、编址、保护键
-
响应中断的内容
-
-
-
中断响应
-
当中央处理机发现已有中断请求时,中止现行程序的执行,并自动引出中断处理程序的过程
-
中断响应的实质是交换指令执行地址和处理器状态
-
(4)向量中断
-
向量中断:当中断发生时,由中断源引导处理机进入中断服务程序的中断过程
注意:
-
为了提高中断的处理速度,在向量中断中,对于每个中断类型都设置一个中断向量
-
中断向量就是存储该类型中断的中断服务例行程序的入口地址和处理机的状态
-
有两种中断机制
-
向量中断和轮询中断
-
轮询中断将系统中的中断分为几个类型,当发生中断时,就会转入某一大类中断的处理程序入口
-
向量中断的速度会比论询中断的速度快些,但占用的主存会多一些
-
7.用户界面
(1)系统生成和系统启动
-
系统生成:为了满足物理设备的约束和需要的系统功能,通过组装一批模块来产生一个清晰的使用方便的操作系统的过程
-
系统初启:
-
系统引导
-
将操作系统的必要部分装入主存并使系统运行,最终处于命令接受状态
-
三个阶段:
-
初始引导
-
核心初始化
-
系统初始化
-
-
系统引导方式
-
独立引导方式(滚雪球方式)
-
初始引导也叫自举
-
适用于微机和大多数系统
-
操作系统的核心文件存储在系统本身的设备中
-
由系统自己将操作系统核心程序读入主存并运行
-
最后建立一个操作环境
-
-
辅助下装方式
-
适用于多计算机系统、由主控机和前端机构成的系统以及分布式系统
-
操作系统主要文件不放在系统本身的存储设备中,而是在系统启动后,执行下装操作
-
从另外的计算机系统中将操作系统常驻部分传送到该计算机中,使它形成一个操作环境
-
-
-
注意:
-
操作系统生成后,以文件的形式存储在某种存储介质中(比如磁盘)
(2)用户程序的处理过程
-
作业:计算机系统按指定步骤对初始数据进行处理并得到计算结果的加工过程
-
作业步:
-
编辑
-
编译
-
连接
-
运行
-
注意:
-
作业步之间的关系
-
每个作业步运行的结果产生下一个作业步所需要的文件
-
一个作业步能否正确地执行,依赖于前一个作业步是否能成功地完成
-
静态链接:
-
将所需的外部调用函数连接到目标文件中形成一个完整的主存映像文件
-
会造成主存的极大浪费,不能支持有效的共享
动态连接:
-
将连接工作延迟到程序运行的时候进行
-
需要动态链接库(DLL)
-
在应用程序需要调用外部函数的地方作记录,并说明要使用的外部函数名和引用入口号,形成调用链表
(3)用户界面:
-
操作界面
-
键盘命令
-
图形化用户界面
-
作业控制语言
-
-
程序界面
-
系统功能调用
-
(4)系统功能调用:
-
为了实现在程序级的服务支持
-
调用的例行子程序是操作系统的程序部分,它运行时机器处于管态
-
用户程序对这些例行子程序的调用应以一种特殊的调用方式——访管方式来实现
-
svc n
-
svc表示机器自愿进管指令的操作码记忆符,是访管指令,执行到此处会产生访管中断
-
n是地址码,是系统调用的功能号
-