【操作系统】- 概述 - 1
1. 操作系统的概念
2. 操作系统的发展历史
3. 操作系统的类型
4. 操作系统的硬件环境
1 操作系统的概念
计算机系统的目标是什么?
1)对终端用户而言:
高性能的计算 / 数据存储和管理 / 数据处理和呈现
计算机系统如何实现这些目标?
(上述目标是通过各种应用软件来实现的)
显然,应用软件必须做到
1)功能正确 / 性能稳定
2)易开发 / 易维护
3)可重用
若直接面对硬件,这些目标易实现吗?
程序开发者需要考虑:
1)应用软件本身的实现逻辑
2)其他需要考虑的问题
a) 如何把键盘缓冲区中的数据拷贝到内存
b) 如何在屏幕上的某一位置显示字符
c) 如何读取某一块磁盘第51个扇区
d) 如何存多个程序的同时需要使用cpu
处理方法:
在硬件与软件之间,引入一层软件,其功能为:
1)管理系统的各个部件,使之正常运转
2) 给上层的应用软件提供一个易于理解和编程的接口
这一层软件就是操作系统
操作系统的定义:
操作系统是计算机系统中的一个系统软件,是一些程序模块的集合;
它们能尽量有效,合理的方式管理和分配计算机的软硬件资源,合理的组织计算机的工作流程,
控制程序的执行并向用户提供各种服务功能,使得用户能够灵活、方便、有效的使用计算机,使整个计算机系统能高效地运行;
不同人眼中的OS:
1)OS设计者:
如何管理CPU、内存、io设备等系统软件,使之正常运转。
2)应用程序开发人员
api应用程序编程接口
3)终端用户:
操作环境、程序的编写及编译平台、程序的执行平台
2. 操作系统的发展历史
Phase1: 1946 ~ 50年代
硬件非常昂贵,没有操作系统。
* 编程语言: 机器语言。
* 输入输出: 纸带或卡片。
* 用户在控制台前调试程序,独占全机,用户既是程序又是操作员,手工操作。
* 一次完成一个功能(计算机、io、用户思考),之间没有重叠。
问题:手工操作低效率造成CPU资源的浪费。
Phase2: 硬件昂贵,人力便宜。
为提高计算机使用效率,减少手工操作。
50年代末 ~ 60年代中,批处理程序
程序只把作业(卡片或纸带)提交给负责调度的操作员。
* 操作员把作业”成批“的输入到计算机
*常驻内存的批处理管理程序自动识别装入一个作业,并运行之,然后取下一个作业,
串行执行作业,因而称为是“单道批处理”
问题:
1)程序调试困难
2)由于慢速输入输出处理仍然直接由主机来完成,使得cpu和io设备的使用忙闲不均,对计算为主的作业,外设空闲,对io为主作业,CPU空闲。
通道与中断技术
60年代初发展了通道技术和中断技术这些技术出现使得CPU与CPU计算可重叠进行。
1)通道:用于控制io设备与内存间的数据传输,有专用的io处理器,启动后可独立于CPU运行,实现CPU与io的并行工作。
2)中断:CPU在收到外部中断信号后,停止原来工作,转去处理中断事件,在完成后回到原来断点继续工作。
60年代末 ~ 70年代中
多道批处理系统
(现代意义上的OS)
特征:
多道:内存中同时存多个作业,由CPU以切换方式为之服务,在当前运行的作业,需io处理时,CPU转而执行另一个作业。
宏观上并行运行:都处于运行状态,但都未运行之。
微观上串行运行:当作业交替使用CPU和io设备
1)内存管理:给多个作业分配内存。
2)内存保护:避免一个程序中的bug造成整个系统的崩溃,或是破坏了其他程序的执行
3)cpu调度:系统必须在多个作业中不断进行切换,选择其中一个去使用cpu。
4)系统必须去管理各个并行运行的作业之间的交互关系。
缺点:只是解决CPU与io设备之间的并行问题,没有解决用户的响应时间要求。
Phase3:
硬件较以前便宜,人力昂贵。
70年代 ~ 至今 分时系统
各个用户通过各自的终端分享的使用同一台计算机。
交互式分时:
* 计算机比较贵,只有一台。
* 终端较便宜, 人手一台。
* 所有用户可与系统立即交互,调试比较方便。
Phase4:
硬件很便宜,人力依然昂贵。
商业应用推动了软件工业
市场划分为三层的硬件
1)操作系统
2)应用软件
3)硬件
Phase5:
今天的操作系统:
互联时代。
3 操作系统的类型
1)批处理操作系统
2)分时操作系统
3)实时操作系统
4)嵌入式操作系统
5)个人计算机操作系统
6)分布式操作系统
实时操作系统指计算机能及时响应外部事件的请求,在规定的严格时间内完成对该事件的处理并控制所有实时设备的实时任务协调一致的工作的操作系统。
主要特征:
实时性:对外部请求在严格时间范围内作出反应。
可靠性:要求高度可靠。
嵌入式操作系统
运行在嵌入式系统环境中的操作系统。
个人计算机操作系统
单用户多任务操作系统
主要特征:
1) 供个人使用,功能强。
2)用户界面友好,使用方便。
3)有丰富的应用软件
分布式操作系统
把大量的计算机通过网络连接在一起,以获得极高的运算能力和广泛的数据共享。
4 操作系统的硬件环境
操作系统直接依赖于硬件,与硬件关系尤为密切。
* 受保护的指令
* 系统调用
* 内存保护
* 中断控制
* io系统
* 时钟操作
* 特权指令
(有些指令只有操作系统才有权使用)
1)访问某些硬件资源的指令,这些硬件资源禁止用户程序直接访问。
2)对io设备的直接访问指令
3)对内存管理状态进行操作系统的指令
4)对特殊的状态的设置指令
5)停机指令
任何实现:
处理的状态
根据运行程序对资源和机器指令的使用权限
把处理器设置为不同状态
多数系统将处理器工作状态划分为管态和目态
管态:操作系统的管理程序运行时的状态,较高的特权级别又称为特权态、系统态、内核态。
处理器处于管态时:可以指向所有的指令(包括特权指令)
使用所有的资源,并具有改变处理器状态的能力
目态:用户程序运行时的状态,较低的特权级别,又称用户态,
在此状态下,禁止使用特权指令,不能直接使用系统资源与改变CPU状态,并且只能访问用户程序所在的存储空间。
有些系统将处理器状态划分核心状态、管理状态和用户程序状态三种
问题:
CPU怎么来判断当前运行的程序是系统程序还是用户程序?
程序状态字(Program Status Word)
一个专门的寄存器,用来指示处理器的状态, PSW(Prorame Status Word)
通常包括:
* cpu的工作状态码 - 指明管态还是目态,用来说明当前在CPU上执行的操作系统是系统还是一般用户,从而决定是否可以使用特权指令或拥有其他特殊权力
* 条件码: 反映指令执行后的结果特征
*中断屏蔽码: 指出是否允许中断
问题:
状态之间如何进行切换
管态 ----> 目态
通过设置psw实现
目态 ----> 管态
用户程序无法直接修改PSW
那处理的方法是采用系统调用
用户程序通过特殊的访管指令,来请求操作系统提供某种功能的服务。
系统调用指令实现过程:
1)当CPU执行访管指令时,即引起访管中断
2)处理器保存中断点的程序执行上下文环境,CPU切换到管态
3)中断处理程序开始工作,调用相应的系统服务
4)中断处理结束后,恢复被中断程序的上下文环境,CPU恢复为目态,回到中断点继续执行。
内存保护
* 防止一个用户程序去访问其他用户程序的数据
* 保护操作系统避免用户程序的破坏
方法:
采用基址寄存器和边界寄存器
在开始运行一个程序时,由操作系统负责的基址寄存器和边界寄存器相应的值
中断机制
* 由于某个事件的发生,改变了正在CPU上执行的指令的顺序
* 这种事件对于cpu芯片或外部的硬件电路所生成的电信号
中断处理过程:
当中断事件发生时,CPU暂停正在执行的程序,保留现场后自动转去执行相应事件的处理程序,待处理完成后返回断点,继续执行被打断的程序。
中断的类型:
同步中断和异步中断
同步中断:指当cpu正在执行指令的时候,由CPU的控制单元所发出的中断,也称为“异常”
CPU检测到的异常,包括:错误fault / 陷阱trap / 中止 abort
例如:算术溢出,被零除,用户态下使用了特权指令集。
程序的异常,即程序员通过int / int3发出的中断请求,也称为软中断,主要用来实现系统调用服务。
异步中断:
由其他的硬件设备在任意的时刻所发出的中断
1)可屏蔽中断:即io中断,它是当外部设备或通过操作系统正常结束或发生错误时发生的中断。例如:打印机打印结束。
2)屏蔽中断:由于存储器等硬件故障等引起的中断。
每一个中断或异常都用一个0 ~ 255之间的整数来标识,称为中断向量,系统根据中断向量来为每一个中断
或异常指定相应的处理程序。
io系统
完成计算机中信息输入输出的功能。
时钟
是操作系统运行时必不可少的硬件设备。
在操作系统中需要时钟支持的工作有:
在分时操作系统中,间隔时钟实现进程间按时间片轮转
在实时操作系统中,按要求的间隔输出正确时间信号
记录用户的系统所需要的绝对时间(年,月,日,时,分,秒)
习题:
1. 操作系统是一种系统软件,在操作系统采用多道程序设计方式能提高CPU和外部设备的利用效率,一般来说,为实现多道程序设计计算机需要有更大的内存。
2. 分时系统中,为使多个用户能同时与系统交互,最关键的问题是能在短时间内,使所有用户程序都能运行
3 在计算机系统中配置操作系统的主要目的是提高系统的利用率,操作系统的主要功能是管理计算机系统中的资源,其中包括软硬件,文件和设备。,处理机管理主要是对进程的管理。
4 在上述分时操作系统中,首先要考虑的是,交互性和响应时间。在实时操作系统中,主要考虑的是实时性和可靠性,在设计批处理操作系统是,主要考虑的是周转时间和系统的吞吐量。