操作系统引论
1.1什么是操作系统
1.1.1: 计算机系统由软件和硬件及固件组成; 软件由应用软件和系统软件组成;系统软件由编辑软件和操作系统组成。
操作系统的地位:紧贴系统硬件之上,所有其他软件之下
引入操作系统的目标
1.有效性:管理和分配硬件,软件资源,合理地组织计算机的工作流程
2.方便性:提供良好的,一致的用户接口,弥补硬件系统的类型和数量差别
3.可扩充性:硬件的类型和规模,操作系统本身的功能的发展,要求OS可增加新功能模块
4.开放性:要求OS可兼容按国际标准开放的硬件和软件,通过网络加以集成,并能正确,有效地协同工作
1.1.2操作系统的作用
OS是用户使用系统硬件,软件的接口
命令方式:(命令行,命令脚本式)
系统调用:(新式上类似于过程调用,在应用编程中使用)
图形,窗口方式:(菜单式,图形用户接口GUI).
OS是计算机硬件,软件资源的管理者
管理对象包括:CPU,存储器,外部设备,信息(数据和软件);
管理的内容:资源的当前状态(数量和使用情况),资源的分配,回收和访问操作,相应管理策略(包括用户权限)。
OS实现了对计算机资源的抽象(即是扩展机,虚拟机)。
在裸机上添加:设备管理,文件管理,存储管理(针对内存和外存),处理机管理(针对CPU);
另外,为合理组织工作流程:作业管理,进程管理。
操作系统的非形式化定义(关键点):系统软件,程序模块的集合,资源管理和用户接口功能
目前常见操作系统
微软:Windows系统(以前MS-DOS)
UNIX:Solaris,AIX,HP,UX,SVR4,BSD,ULTRIX
自由软件:Linux,freeBSD,Minix
IBM:AIX,zOS(OS/390),OS/2,OS/4000,PC DOS
其他:Mac OS ,NetWare,…
你用过的操作系统能做什么?
各种命令:dir copy del format
启动,结束用户程序
系统调用:例如INT指令
WINDOWS,UNIX 等提供多任务或多用户环境
你知道操作系统不能做什么?
不做天气预报
不做房屋设计
不是编辑程序
总之,操作系统不直接解决最终具体应用问题,也不负责编译源程序
1.1.1 推动操作系统·发展的主要动力
不断提高计算机资源的利用率(由此引出了多道批处理系统,SPOOLing技术,虚拟技术等)
方便用户(由此引出了分时系统,图形用户界面等)
器件的不断更新换代(导致OS的功能和性能不断增强提高)
计算机体系结构的不断发展(导致多处理机OS,分布式OS,网络OS的产生发展)
1.2操作系统的发展过程
操作系统的产生
1.2.1 手工操作阶段(40年代)
1.2.2 单道批处理阶段(20年代)
操作系统的形成
1.2.3 多道批处理(60年代初)
1.2.4分时系统(60年代中)
1.2.5实时操作系统(60年代中)
*1.2.1手工操作阶段
电子管计算机,无操作系统,由手工控制作业的输入输出,通过控制台开关启动运行。
用户使用计算机的过程
大致如下:先把程序纸带上装上输入机,启动输入机把程序纸袋装上输入机,启动输入机把程序和数据送入计算机,然后通过控制台开关启动程序运行,计算完毕后,用户拿走打印结果,并卸下纸袋。
最早的计算机
**手工交互方式的特点
(1)程序设计直接编制二进制目标程序
(2)输入输出设备主要是纸袋和卡片
(3)程序员上机必须预约机时
(4)程序员自己上机操作
(5)程序的启动与结束处理都以手工方式进行
(6)程序员的操作以交互方式进行(控制台)
(7)单用户方式(用户独占全机)
(8)程序执行过程得不到任何帮助,程序都是独立程序
(9)CPU等待人工操作(导致人机矛盾)
**
脱机输入、输出方式
为解决人机矛盾及CPU和I/O设备之间速度不匹配的矛盾,采用在外围机上进行输入/输出,此所谓脱机输入/输出
优点
减少CPU的空闲时间
提高I/O速度
1.2.2单道批处理阶段
晶体管计算机,操作系统的雏形,称为监控程序
单道批处理系统的工作过程:用户将作业交到机房,操作员将一批作业输入到辅存(如磁带)上,形成一个作业队列。当需要调入作业时。监控程序从这一批中选一道作业调入内存运行。当这一作业完成时,监控程序调入另一道程序,直到这一批作业全部完成。
单道批处理分为:联机批处理,脱机批处理
联机批处理:由CPU直接控制作业输入输出
脱机批处理:由卫星机控制作业输入输出
**联机批处理和脱机批处理**
单道批处理阶段的特点
(1)自动性,作业间不需要人的干预
(2)监控程序常驻内存,开机偶第一个进入内存,直到关机一直驻留在内存中
(3) 专职操作员,程序员不在现场
(4)单道性,每次只有一道作业进入内存运行
(5)顺序性,作业的执行顺序与存储顺序相同
(6)监控程序只为一个计算机系统设计
(7)开发过程可以使用FORTRAN等高级语言,程序的最后一条指令需是返回控制到监控程序
对单道批处理阶段的评价
(1)作业转换时间大大减少,系统运行效果提高
(2)依然存在I/O慢速造成的CPU空闲等待时间(单道)
(3)程序员(和非编程用户)无法同计算机交互
(4)一个操作系统被设计成只能在一台机器上运行。这自然会给厂家实现与用户程序独立兼容带来负担
1.2.3多道批处理
操作系统发展史上革命性变革
多道程序设计技术:在内存中放多道程序,使他们在管理程序的控制下相互穿插地运行
**多道和多道程序工作过程比较**
OS引入多道程序设计技术的优点
提高CPU的利用率
提高内存的I/O设备的利用率
增加系统的吞吐量
多道运行的特点
多道性
宏观上并行:同时又多道程序由内存运行,某一时间段上,各道程序不同程序地向前推进
微观上串行:任意时刻最多只有一道作业占用CPU,多道程序交替使用CPU。
无序性:多个作业完成的先后顺序与他们进入内存的顺序无严格的对应关系
调度性:作业从提交到完成需经过作业调度和进程调度
多道批处理系统的工作过程
用户将作业交到机房,操作员将一批作业输入到辅存(如磁盘)上,形成一个作业队列。当需要调入作业时,管理程序从这一批中选几道作业调入内存,让他们进入内存运行。当一些作业完成时,管理程序调入另一些作业完成时,管理程序调入另一些程序,直到这一批作业全部完成。
多道批处理系统的优点
资源利用率高 。资源指的是CPU及其设备
系统吞吐量大。资源吞吐量指的是系统在单位时间完成的总工作量
多道批处理系统的缺点
平均周转时间长:周转时间指作业提交给系统到运行结束所经历的时间
无交互能力:用户自将作业提交给系统,直到运行结束,不能与自己的作业进行交互
多道批处理系统需要解决的问题
处理机关里问题
内存管理问题
I/O设备管理问题
文件管理问题
作业管理问题
操作系统定义
操作系统是一组控制和管理计算机硬件和软件资源,合理地对各类作业进行调度,以及方便用户的程序的集合。
1.2.4分时系统
推进多道批处理系统形成和发展的动力是提高资源利用率和系统吞吐量
推动分时系统形成和发展的主要动力是用户的需要:交互,共享主机,方便上机
多个用户分时私用主机,每一用户分得以个时间片,用完这个时间片后操作系统将处理机分给另一用户,如此循环,每一用户可以周期性地获得CPU使用权,这样每一用户都有一种独占CPU的感觉
分时系统实现的关键问题
及时接受:及时接受用户输入的命令或者数据
及时处理:用户能及时控制自己作业的运行或修改自己的作业
分时系统实现的方法
单道分时系统
具有“前台”和“后台”的分时系统
多道分时系统
分时系统的特征
多路性:同一主机联接多台终端。
独立性:每一用户独占一个终端
及时性:用户请求能及时响应
交互性:可人机对话
1.2.5 实时操作系统
实时控制:如工业控制
实时信息处理:如联网订票系统
实时系统的特征:1.高响应性高可靠性 2.高安全性
批处理,分时,实时系统是三种基本的操作系统类型。一个世纪的操作系统可同时拥有三者或者两者的功能
实时任务的分类
(1)按任务执行时是否呈现周期性分:
周期性实时任务
非周期性实时任务(又分为:具有开始截至时间的实时任务:具有完成截至时间的实时任务)。
(2)根据对截至时间的要求分
硬实时任务
软实时任务
实时系统与分时系统特征的比较
1.2.6微机操作系统
单用户单任务操作系统:CP/M(75年),MS-DOS(81年)
单用户多任务操作系统:OS/2(87年),MS WINDOWS(90年windows 3.0)
多用户多任务操作系统 :UNIX(70年)
分类方法
应用领域:可分为桌面操作系统,服务器操作系统 ,嵌入式操作系统
所支持的用户数目:可分为单用户操作系统(MSDOS,OS/2,WINDOWS),多用户操作系统系统(如UNIX ,Linux,MVS)
源码开放程度:分为开源操作系统(如Linux,FreeBSD) 和闭码操作系统(Mac OS x windows)
硬件结构:分为网络操作系统(NetWARE,WINDOWS NT,OS/2WARP),多媒体操作系统(Amiga)和分布式操作系统
操作系统环境:可分为批处理操作系统(MVX,DOS/VSE) ,分时操作系统(LINUX ,UNIX,XENIX, MAC OS X ) 实时操作系统(IEMX,VRTX,RTOS,RT WINDOWS);
存储器寻址宽度:可以将操作系统分为8位,16位,32位,64位,128位的操作系统。早期的操作系统一般只能支持8为和16位存储寻址宽度,现代的操作系统如LInux 和 WINDOWSV7 都支持32位和64位、
操作系统的分类
除了以上按应用领域划分的三种基本类型外,操作系统的种类相当多,各种设备安装的操作系统可从简单到复杂,可分为智能卡操作系统传感器节点操作系统,嵌入式操作系统,个人计算机操作系统,多处理操作系统,网络操作系统和大型机操作系统
按应用操作系统和嵌入式操作系统。
桌面操作系统
左面操作系统主要用于个人计算机上。个人计算机市场从硬件架构上来说主要分为两大阵营,PC机遇MAC机,从软件上可主要分为两大类,分别为类UNIX 操作系统和Windows操作系统
服务器操作系统
服务器操作系统一般指的是安装在大型计算机上的操作系统,比如WEB服务器,应用服务器和数据库服务器等。服务器操作系统主要集中在三大类
:
UNIX
LINUX
WINDOWS
嵌入式操作系统
嵌入式操作系统是应用在嵌入式系统的操作系统,嵌入式系统广泛应用在生活的各个方面,涵盖范围从便携设备到大型固定设施,数码相机,手机,平板电脑,家用电器,医疗设备,交通设备,交通灯,航空电子设备和工厂控制设备等,越来越多嵌入式系统安装有实时操作系统。
在嵌入式领域常用的操作系统有嵌入式LINUX WINDIWS EMBEDDED ,VXWORKS等,以及广泛使用在智能手机或者平板电脑等消费电子产品的操作系统,如ANDROID ,IOS ,SYMBIAN,WINDOWS PHONE和BLACKBERRY OS
组成部分
操作系统理论研究有时把操作系统分为四大部分:
驱动程序:最底层,直接控制和监控各类硬件的部分,他们的职责是隐藏硬件的具体细节,并向其他部分提供一个抽象的,通用的接口
内核: 操作系统内核部分,通常运行在最高特权级,负责提供基础性,结构性的功能
接口库:是一系列特殊的程序库,他们指责在于把系统所提供的基本服务包装成应用程序所能够使用的编程接口API,是最接近应用程序的部分。例如,GNU C运行期库就属于此类,他把各种操作系统的内部编程接口包装成ANSI C 和POSIX编程接口的形式
外围:是指操作系统中除以上三大类以外的所有其他部分,通常是用于提供特定高级服务的部件。例如,在微内核结构中,大部分系统服务,以及UNIX/LINUX 中各种守护进程都通常被规划此列
并不是所有的操作系统都严格包括这四大部分。例如,在早期的微软视窗口操作系统中,各部分耦合程度很深,难以区分彼此,而在使用外合结构的操作系统中,则根本没有驱动程序的概念。
操作系统中四大部分的不同布局,也就形成了集中整体结构的分野。常见的结构包括:简单结构,层结构,微内核结构的分野。常见的结构包括:简单结构,层结构,微内核结构,垂直结构,和虚拟机结构
嵌入式操作系统
什么是嵌入式操作系统呢?
在各种设备,装置或系统中,完成特定功能的软硬件系统
他们是一个大设备,装备或者系统可以不是“计算机”
通常工作在反应快活对处理时间有较严格要求中
由于他们被嵌入式在各种设备,装置或系统中,因此称为嵌入式系统
1.3.1操作系统的特征
并发
共享
虚拟
异步性
并发性
并发与并行:多个事务在同一时间段内发生。操作系统是一个并发系统,各进程间的并发,系统与应用间的并发。操作系统要完成这些并发过程的管理。
并行是指在同一时刻发生,在多道程序处理时,宏观上并行并发,微观上交替执行
共享性
多个进程共享有限的计算机系统系统资源。操作系统要对系统资源进行合理分配和使用。资源在一个时间段内交替被多个进程所用
互斥共享(如音频设备):资源分配后到释放前,不嫩能够被其他进程所用
同时访问(如可重入代码,磁盘文件)
并发和共享是操作系统的两个最基本的特征,他们又是互为存在的条件。
虚拟技术
一个物理试题映射为若干个对应的逻辑试题–分时或分开或分空间。虚拟是操作系统管理系统资源的重要手段,可提高资源利用率
时分复用技术
虚拟处理机技术
虚拟设备技术
空分复用技术
虚拟磁盘技术
虚拟存储器技术
异步性:也叫不确定性,指进程的执行顺序和执行时间的不确定性
进程的运行速度不可预知:分时系统中多个进程并发执行,“时走时停” ,不可预知每个进程的运行推进快慢
结果:无论快慢,应该结果相同–通过进程互斥和同步手段来保证
难以重现系统在某个时刻的状态(包括重现运行中的错误)
性能保证:实时系统与分时系统相似,但通过资源预留以保证性能
1.3.2操作系统的服务
服务类型
程序的执行和终止(包括分配和回收资源)
-I/O操作
文件系统操作
通行:本机内,计算机之间(通常通信服务的使用者为进程,而不是笼统说“主机”)
配置管理:硬件,OS本身,其他软件
差错检测
服务提供方式:系统命令和系统调用
1.4操作系统的功能
1.4.1处理机管理
完成处理机资源的分配调度等功能。处理机调度的单位可为进程或线程
进程控制:创建,撤销,挂起,改变运行优先级 --主动改变进程的状态
进程同步:协调并发进程间的推进步骤,以协调资源共享:交换信息能力弱
进程通信:进程之间床送数据,以协调进程间的协作:交换信息能力弱,也可以用来协调进程之间的推进
进程调度:作业和进程的运行切换,以充分利用处理机资源和提高系统性能:--未必是进程控制操作所引起
1.4.2存储器管理
管理目标:提高利用率,方便用户使用,提供足够的存储空间,方便进程并发运行
内存分配与回收
内存保护:保证进程间互不干扰,相互保密;如:访问合法性检查,甚至防止从“垃圾”中窃取其他进程的信息
地址映射(变换):进程逻辑地址到内存物理地址的映射
内存扩充(覆盖,交换和虚拟存储):提高内存利用率,扩大进程的内存空间
设备管理
设备管理目标是:方便的设备使用,提高两者的利用绿(单缓冲区,双缓冲区,循环缓冲和缓冲池)。
设备分配与回收:在多用户间共享I/O设备资源。
虚拟设备:设备有多个进程共享,每个进程如同独占
设备处理:利用设备驱动程序(通常在内核中)完成对设备的操作。还需处理外设的 IRQ(中断处理)。
设备独立性:提供统一的I/O设备接口,使应用程序独立于物理设备,提高可适应性;在同样的借口和操作下完成不同的内容
1.1.4文件管理
文件存储空间管理:解决如何存放信息,以提高空间利用率和读写性能。
目录管理:解决信息检索问题。文件的属性(如文件名),单一副本赋予赋予多文件名
文件的读写管理和保护:解决信息安全问题。系统设口令“哪个用户”,用户分类“那个用户组”文件权限“针对用户或者用户组的读写权
软件管理:软件的版本,相互依赖关系,安装和拆除等
1.4.5OS与用户之间的接口
目标:提供一个友好的用户访问操作系统的接口。操作系统向上提供两种接口:
用户接口
1.联机用户接口:命令行1
2.脱机用户接口:作业控制语言组织和控制自己的作业运行
3.图形用户接口;菜单式或GUI”联机“
程序接口
供用户程序和系统程序调用操作系统功能,系统调用和高级语言库函数
**1.5OS的结构设计**
随着操作系统的发展,功能越强,OS自身代码量越大---采用良好的结构: 有利于保证正确性以及自身修改和扩充