目录
一、操作系统的概念
1、计算机系统的概念
2、操作系统的概念
3、为什么计算机系统需要操作系统?
二、操作系统的形成与发展
三、操作系统的类型
1、批处理操作系统(Batch OS)
2、 分时操作系统
3、实时系统
4、嵌入式操作系统
5、个人计算机操作系统
6、网络操作系统
7、分布式操作系统
四、操作系统的基本特征
1、并发性
2、共享性
3、虚拟性
4、异步性/不确定性
五、操作系统的作用
1、作为用户和计算机硬件的接口
2、作为计算机系统的资源管理者
3、作为虚拟计算机(扩充机器)
六、操作系统的功能
1、处理机管理
2、存储器管理
3、设备管理
4、文件管理
七、操作系统提供的服务和接口
1、操作系统提供的公共和基本服务
2、操作系统提供的接口
(1)命令接口
(2)图形用户接口GUI
(3)程序接口
八、操作系统的运行环境和内核结构
1、运行环境
2、内核
一、操作系统的概念
1、计算机系统的概念
计算机系统由软件和硬件两部分组成。
硬件:CPU、GPU、存储器等。
软件:完成一定任务的程序及其数据,包括系统软件和应用软件。系统软件包括操作系统、编译程序、编辑程序、数据库管理系统等;应用软件是为各种应用目的而编制的程序。
2、操作系统的概念
操作系统是配置在计算机硬件上的第一层软件,是计算机系统资源的管理者,位于硬件和其他软件之间,是所有其他软件的运行基础。
3、为什么计算机系统需要操作系统?
用户角度:操作系统是用户与计算机硬件之间的接口,为用户使用计算机提供服务。
系统角度:操作系统是计算机系统资源的管理者。操作系统会管理计算机的软件和硬件资源,实现资源复用、资源虚化和资源抽象。操作系统可以对计算机的能力进行拓展,在不影响原有服务的前提下,有效引入新的功能。
资源复用 | 让2系统对宝贵的资源能够共享地来使用,分为时间复用(多个用户或程序轮流使用某个资源,如CPU的使用)和空间复用(多个用户或程序同时使用资源的一部分,不需排队,如内存的使用) | 解决资源数量不足的问题 |
资源虚化 | 让一个物理设备变成多个相对独立的对应物,也称为虚拟性 | 为资源复用提供技术支持,解决资源数量不足的问题 |
资源抽象 | 化繁为简,把具体的资源管理变为较为统一简单的管理方式,通过创建新的管理对象来屏蔽底层资源的复杂特性和接口细节,对内封装细节,对外提供管理对象和访问接口(如:进程抽象、虚存抽象、文件抽象) | 解决资源复杂的问题 |
二、操作系统的形成与发展
40~50年代 | 计算机系统上没有配置操作系统,人们使用计算机采用手工操作方式 | 速度慢、资源利用率低、容易出错、人机矛盾 |
50年代 | 简单批处理系统(单道批处理系统) | 批处理包括联机输入/输出和脱机批处理,单道批处理系统中内存仅一道程序,系统资源无法得到充分的应用 |
60年代 | 多道批处理系统 | 将多个作业存放在主存中,这些程序在管理程序的控制下交替运行,共享处理机和系统中的其他资源。 |
后来 | 分时系统 | 一台计算机同时为多个用户服务的操作系统。将系统处理机时间和内存空间按一定的时间间隔,轮流切换给各个终端用户的程序使用,时间间隔很短,故每个用户感觉像是在单独使用计算机。 |
后来 | 实时系统 | 及时响应和高可靠性。外界事件或数据产生时,能够接收并以足够快的速度处理,其处理结果又能在规定时间内来控制生产过程或对处理系统做出快速响应。 |
近几十年 | 个人计算机操作系统、网络操作系统、分布式操作系统、嵌入式操作系统 | 推动计算机系统不断发展的因素主要有硬件技术的不断更新以及应用需求的不断扩大。 |
三、操作系统的类型
操作系统有3种基本类型——批处理操作系统、分时操作系统、实时操作系统。此外,还有其他一些类型——嵌入式操作系统、个人计算机操作系统、网络操作系统、分布式操作系统。
1、批处理操作系统(Batch OS)
作业:指用户在一次解题或一个事务处理过程中要求计算机系统所做工作的集合,包括用户程序、所需的数据及命令等。
单道批处理系统:内存中始终只保持一道作业的批处理系统
单道批处理系统的特征:(1)自动性:自动依次运行,无人工干预(2)顺序性:完成顺序与进入顺序相同(3)单道性:内存只有一道作业
多道批处理系统:引入多道程序设计技术后形成多道批处理系统
多道批处理系统的特征:(1)多道性:计算机内存中同时存放几道相互独立的程序(2)无序性:进入顺序和完成顺序无严格对应关系(3)调度性:作业从提交到完成经历两级调度——作业调度和进程调度
2、 分时操作系统
分时操作系统:允许多个联机用户同时使用一台计算机系统进行计算的操作系统,分时操作系统中采用分时技术。
推动分时操作系统发展的动力:用户的需求——人机交互(控制程序运行、提高用户参与度)、共享主机(机器昂贵,多人共同使用较为经济)、方便用户上机(可以通过终端提交作业)
分时技术:把处理机的运行时间分为很短的时间片,按时间片轮流把处理机分配给各联机作业使用。若某个作业在分配给它的时间片内不能完成其计算,则该作业暂停运行,把处理机让给另一个作业使用,等待下一轮时再继续其运行。
分时操作系统的关键问题:(1)及时接收终端命令——设置多路卡(2)及时处理终端命令——时间片轮转
分时操作系统的特征:(1)多路性:也称同时性,一台计算机与若干台终端相连接,终端上的这些用户可以同时使用计算机。(2)交互性:用户通过终端采用人机会话的方式直接控制程序运行,同程序进行交互。(3)独立性:用户彼此之间都感觉不到别人也在使用这台计算机,好像只有自己独自使用计算机一样。(4)及时性:用户请求能够再很短时间内得到响应
3、实时系统
实时系统:指系统能够及时响应外部事件的请求,在规定的时间范围完成对该事件的处理,并控制实时任务协调一致地运行。
实时系统的分类:(1)实时控制系统:指以计算机为中心的生产过程控制系统,如生产过程控制、飞机导弹控制。(2)实时信息处理系统:要求对信息进行实时处理的系统,如银行交易系统、网络查询系统。
实时系统的特征:(1)及时性:响应时间由控制对象决定(2)可靠性:具有较高的可靠性
如果一个操作系统兼有批处理、分时和实时操作系统三者或者其中两者的功能,则称该操作系统为通用操作系统。
4、嵌入式操作系统
嵌入式操作系统:对整个智能芯片以及它所控制的各种部件模块等资源进行统一调度、指挥和控制的系统软件。
应用:嵌入式操作系统几乎包括了生活中的所有的电器设备,如平板、手机(Android、iOS等)、微波炉、数字相机、自动售货机等
延伸:嵌入式系统进一步延伸,目前有移动操作系统、手机操作系统、物联网系统、工业控制系统等。
5、个人计算机操作系统
作用:主要供个人使用,功能强,价格便宜,能满足工作、学习、游戏等方面的需求,如微软的Windows家族、Linux、苹果的Mac操作系统。
特点:计算机在某一段时间内为单个用户服务,采用图形界面人机交互的工作方式,界面友好,使用方便。
6、网络操作系统
网络操作系统:基于计算机网络,是在各种计算机操作系统上按网络体系结构协议标准开发的软件。包括网络管理、通信、资源共享、系统安全和各种网络应用服务,其目标是相互通信及资源共享。
7、分布式操作系统
分布式系统:多个分散的处理单元经互联网连接而形成的系统,其中每个处理单元既具有高度自治性又相互协同,能在系统范围内实现资源管理、任务动态分配,并能并行地运行分布式程序。分布式系统继续发展,目前还有网络系统、云计算系统。
分布式操作系统:配置在分布式系统上的操作系统称为分布式操作系统
四、操作系统的基本特征
1、并发性
概念辨析:
并发:两个或多个事件在同一时间间隔内发生。在操作系统中,指一个时间段中有几个程序都处于已启动运行到运行完毕之间,且这几个程序都是在同一个处理机上处理的。
并行:两个或多个事件在同一时刻发生,多个处理器或者多核的处理器同时处理多个不同的任务。
并发与并行的关系:
(1)并发指的是一段时间内宏观上多个程序同时运行,微观上不是同时执行的,只是把时间分成若干段,使多个进程快速交替的执行。并行指的是同一个时刻多个任务同时运行,无论宏观还是微观,都是同时进行的。
(2)并发是逻辑上的同时发生,而并行是物理上的同时发生。
静态实体:通常的程序是静态实体,不能并发执行,为了使得程序能够并发执行,系统必须为每个程序建立运行实体,即进程。
进程:一段程序的执行过程,是在系统中能独立运行并作为资源分配基本单位的活动实体
实现并发技术的关键:如何对系统内的多个活动(进程)进行切换
2、共享性
共享:指系统中的资源可供多个并发执行的进程共同使用。
资源共享方式:(1)互斥共享:一段时间只允许一个进程访问(2)同时访问:一段时间允许多个进程访问
并发和共享的关系:并发和共享是操作系统的两个最基本特征,二者之间互为存在的条件。一方面,资源的共享是以程序的并发执行为条件的,若系统不允许程序的并发执行,自然不存在资源共享问题;另一方面,若系统不能对资源共享实施有效的管理,也必将影像到程序的并发,甚至根本无法执行并发。
3、虚拟性
虚拟:指把一个物理上的实体变为若干个逻辑上的对应物;或者把物理上多个实体变成逻辑上的一个对应物,物理实体是实际存在的,逻辑对应物是虚构假想的。
实例:通过窗口技术,把物理上的一个屏幕变成逻辑上的多个虚拟屏幕;通过多道程序和分时使用CPU技术,将物理上的一个CPU变成了逻辑上的多个CPU;VM技术将物理上的一台计算机变成逻辑上的多台计算机;虚拟存储器将物理上的多个存储器(主存和辅存)变成逻辑上的一个虚存。
主存/内存:直接给CPU提供存储、高速、低容量、价格贵、不能永久保存数据、断电消失,需要从辅存中重新调入数据。常见的主存有CPU的高速缓存、电脑的内存条。内存是CPU能直接去寻址访问的存储空间,在计算机工作时,所有的数据都要先经过内存,然后才能交由处理器去处理,故内存也被称为CPU与外存通信的桥梁。
辅存/外存:给主存提供数据、低速、大容量、价格低、能永久保存数据。常见的辅存有硬盘、软盘、光盘、U盘、移动硬盘等。
4、异步性/不确定性
异步性/不确定性:表现为多个作业的执行过程是走走停停的,其执行的顺序和每个作业的执行时间是不确定的。
操作系统异步性的体现:(1)进程何时执行、何时暂停、怎样的速度向前推进都是随机的。(2)作业到达操作系统的类型和时间是随机的(3)操作员发出命令或者按按钮的时间是随机的(4)程序运行发生错误或异常时刻是随机的(5)各种各样硬件和软件中断事件发生的时刻是随机的。
异步性带来的问题:(1)给系统带来潜在的危险,可能导致与时间有关的错误(2)操作系统的一个重要任务是必须确保捕捉任何一种随机事件,正确处理可能发生的随机事件,正确处理任何一种产生的事件序列,否则将会导致严重后果。
五、操作系统的作用
1、作为用户和计算机硬件的接口
操作系统改造和扩充过的计算机不但功能更强,使用也更加方便,用户可以直接调用系统提供的各种功能,而无需了解软硬件本身的细节,为用户提供了一个与运行底层细节无关可管理的运行环境,对于用户来讲,操作系统便成为了他与计算机硬件之间的一个接口。
2、作为计算机系统的资源管理者
操作系统管理的计算机系统软硬件资源包括:处理机、存储器、设备、文件(程序和数据)
处理机:计算机系统中存储程序和数据,并按照程序规定的步骤执行指令的部件。包括:中央处理器(CPU)、主存储器、输入-输出接口(I/O接口)。处理器加上外围设备如鼠标、键盘等,就构成完整的计算机系统
中央处理器:CPU,一块超大规模的集成电路,是一台计算机的运算核心和控制核心。其功能主要为解释计算机指令和处理计算机软件中的数据。
内核:操作系统的构件(操作系统的基本单元)。
3、作为虚拟计算机(扩充机器)
虚拟计算机:操作系统是紧靠硬件的第一层软件,计算机上覆盖操作系统后,可以拓展基本功能,为用户提供一台功能显著增强,使用更加方便,安全可靠性好,效率明显提高的机器,称为虚拟计算机或者操作系统虚机器(Virtual Machine)。
六、操作系统的功能
1、处理机管理
处理机管理的主要任务是对处理机的分配和运行实施有效的管理,包括进程控制、进程同步、进程通信和调度。
进程控制:负责进程的创建、撤销及状态转换
进程同步:对并发执行的进程进行协调,有同步与互斥
进程通信:负责完成进程之间的信息交换
调度:分为作业调度(从后备作业队列中按照一定的原则,选择若干作业进入内存)和进程调度(决定哪个进程获得处理机)
2、存储器管理
存储器管理的主要任务是方便用户使用存储器,提高存储器的利用率,从逻辑上扩充内存。存储器管理包括内存分配、内存保护、内存扩充和地址映射。
3、设备管理
设备管理功能包括设备分配、缓冲管理、设备驱动和设备独立性。
设备分配:根据用户的I/O请求,为之分配所需的设备,设备使用完成后还应该回收。
缓冲管理:对各类设备的缓冲区进行有效的管理
设备驱动:主要完成设备启动、I/O操作及中断处理
设备独立性:如何确保应用程序独立于物理设备,如何虚拟化设备
4、文件管理
文件管理的主要任务是对文件进行管理,方便用户使用并保证文件的安全性。文件管理功能包括文件存储空间的管理、目录管理、文件操作管理和文件保护。
文件存储空间的管理:包括存储空间的分配与回收等功能
目录管理:管理文件的数据结构,提供按名存取的功能
文件操作管理:从外存读入数据或将数据写入外存
文件保护:防止未授权用户存取文件,防止授权用户以不正确方式存取文件
七、操作系统提供的服务和接口
1、操作系统提供的公共和基本服务
程序执行:系统能把程序装入内存并运行
输入/输出操作:系统统一管理设备,为用户程序的运行提供输入/输出服务
信息保存(文件系统管理):系统为用户提供文件读写等服务功能
通信服务:提供进程间的通信服务
错误检测及报告:能对用户程序运行过程中出现的错误进行检测并及时报告给操作员或用户
资源分配:为进程的运行分配资源,如CPU等
统计:统计用户使用资源的类型和数量
保护:对计算机中存储的信息进行保护,确保对资源的访问是受控的。
2、操作系统提供的接口
操作系统接口:操作系统向用户提供了各种使用其服务功能的手段,即提供了操作系统接口。操作系统用户向用户提供了三类接口:命令接口/操作接口、程序接口、图形接口/图形式命令接口。
(1)命令接口
方式:用命令接口进行作业控制的主要方式有脱机控制方式和联机控制方式。脱机控制方式:用户将对作业的控制要求以作业控制说明书的方式提供给系统,由系统按照作业说明书的规定控制作业的执行。联机控制方式:指用户利用系统提供的一组键盘命令或者其他操作命令和系统绘画,交互式地控制程序的执行。
脱机命令接口:由一组作业控制语言(JCL,Job Control Language)组成。脱机用户不能直接干预作业的运行,他们应该事先用作业控制命令写一份作业操作说明书,连同作业一起提交给该系统。当系统调度到该作业时,由系统中的命令解释程序对作业说明书上的命令或作业控制语句逐条解释分析。
联机命令接口:提供一组命令供用户请求计算机系统服务。联机命令也需要命令解释程序来进行处理,此处起作用为获取并执行用户指定的下一条命令。键盘命令分为内部命令和外部命令。内部命令:命令功能简单、程序短小、使用频繁。他们在系统初始启动时被引导至内存并常驻内存。外部命令:命令功能较复杂、程序较长、独立作为一个文件驻留在磁盘文件上,当需要时再从磁盘调入内存运行。
(2)图形用户接口GUI
GUI是以基于鼠标的窗口和菜单系统为接口。引入了桌面的概念,使用图像/图标代表程序、文件、目录和系统功能。通过移动鼠标把指针定位到桌面的图标上,实现对象命令与被操作对象的关联。通过点击鼠标按钮,实现对屏幕对象的控制和操纵。目前图形用户接口是最常见的人机接口形式,可以认为图形接口是命令接口的图形化。
(3)程序接口
程序接口:程序接口由一组系统调用命令组成。用户通过在程序中使用这些系统调用命令来请求操作系统提供的服务。
系统调用:由若干条指令构成的过程,用以实现特定的操作系统服务功能。
系统调用命令:有时称为广义指令,它是由操作系统提供的一个或多个子程序模块实现的。
系统调用按功能分类:设备管理(完成设备的请求或者释放、以及设备启动等功能)、文件管理(完成文件的读、写、创建和删除等功能)、进程管理(完成进程的创建、撤销、阻塞以及唤醒等功能)、进程通信(完成进程之间的消息传递或信号传递等功能)、内存管理(完成内存的分配、回收以及获取作业占用内存区大小及起始地址等功能)
系统调用的实现要点:(1)编写系统调用处理程序(2)设计一张系统调用入口地址表,每个入口地址都指向一个系统调用的处理程序,有的系统还包含系统调用自带参数的个数(3)陷入处理机制需要开辟现场保护区,以保护发生系统调用时的处理器现场。(4)为执行系统调用命令做准备,主要工作是保留现场,并把系统调用命令参数放入指定的存储单元。(5)执行系统调用,根据系统调用命令编号找到相应子程序的入口地址,然后转而去执行。(6)系统调用命令执行完成后的处理,主要工作是恢复现场,并把系统调用的返回参数送入指定存储单元。
系统调用的处理过程:用户程序->陷入指令->系统调用陷入机构(保护CPU现场、取系统功能号找入口地址表相应的入口地址、结束处理恢复现场)->系统调用处理子程序->结束处理、恢复现场
系统调用和过程调用的区别:(1)运行状态不同:系统调用在核心态下运行,子程序在用户态下运行(2)进入方式不同:系统调用通过中断机构进入以实现运行状态的改变,子程序调用不涉及运行状态的改变。
八、操作系统的运行环境和内核结构
1、运行环境
计算机硬件所提供的支持,构成了现代操作系统的运行环境,包括处理机、存储器、设备、时钟、中断等。
操作系统根据运行环境可以分为:系统初启程序(由时钟中断、外设中断所驱动)、服务程序(面型目态/用户态程序)和系统内部模块(管态/核心态运行)
2、内核
内核:是操作系统的构件,或称基本单位
作用:为进程提供管理(进程难于自己管理自己,同时也难于用硬件实现,需要一个软件对硬件处理器及相关资源进行首次改造,为进程执行提供良好的运行环境)
基本功能:(1)中断处理:截获中断,转向中断处理章程(2)短程调度,CPU调度,保存与恢复现场(3)原语管理:原语是不可中断过程
基本属性:(1)内核是由中断驱动的(2)内核的执行是连续的(3)内核在屏蔽中断状态下执行(4)内核可以使用特权命令
操作系统内核按照运行情况分类:(1)单内核:也称为宏内核,在运行过程中,它是一个独立的进程。模块结构、层次结构的系统内核基本都是宏内核。Linux系统属于单内核类型(2)微内核:微内核中,大部分内核模块都作为独立的进程,他们之间通过消息通信,模块之间相互提供服务。微内核本身类似一个消息管理器,通过合理组织内核模块来保证,只调入最需要的模块运行。Windows NT/2000系统舒徐改良的微内核类型。
操作系统的内核结构:操作系统是一个大型系统软件,其内核结构主要有模块结构、层次结构、微内核结构和虚拟机结构。
(1)模块结构:又称为整体式结构,将操作系统内核按照功能划分为一个个独立的模块,模块之间相对独立,只能通过事先规定好的接口方式来调用。每个模块实现一个完整独立的功能,所有模块之间相互调用,共同构成一个完整的系统内核。
特点:效率高;但全局函数使用多造成访问控制困难;结构不清晰,可理解性,可维护性以及和移植性差。
(2)层次结构:将操作系统内核按照一定的规则划分为一系列相互依赖的层次,每个层次也可以分解为一系列更小的模块,每个模块完成一个特定的功能,只能与相邻层次发生直接联系,所有这些层次的集合就实现了整个系统。是一种特殊的模块结构.
特点:给模块赋予了层次顺序,使调用关系变得有序;在上下两册不变的基础上可以换掉某层,便于移植和扩充;但是以牺牲一定的灵活性和通信开销为代价。
分类:全序层次结构(层间单向依赖,层内模块独立)和半序/偏序层次结构(层间单向依赖,层内部分依赖)。
(3)微内核结构:核心思想为将操作系统分为两个部分:运行在核心态的内核以及运行在用户态并以C/S方式活动的进程。内核实现极少的任务,主要起信息验证、交换的作用,因而被称为微内核,这种OS结构也被称为客户/服务器与微内核结构。
服务器进程:每个进程实现一类服务,称为服务器进程,如文件服务、进程管理服务、存储管理服务、网络通信服务等……
过程:微内核检查是否有客户提出服务申请,如有则在满足客户的要求后返回结果,于是,用户进程和服务器之间形成了C/S关系。整个过程是:运行在核心态的内核把消息传给服务器;服务器执行相应的操作,通过内核用消息把结果返回给用户。
优点:微内核结构将操作系统中的内存管理、设备管理、文件管理等高级服务功能尽可能从内核分离出来,变成几个独立的非内核模块。而在内核只保留少数最基本的功能,如最小的进程管理、最小的内存管理、进程间通信等,使内核变得简洁可靠。降低了开发难度,具有较好的拓展性及移植性,特别适合大规模开放式的分布系统。
缺点:效率较低
(4)虚拟机结构
虚拟机:物理计算机资源通过多重化和共享技术可以改造成多个虚拟机。
Virtual Machine Monitor/Hypervisor:为虚拟机结构提供的专门控制程序,隐藏特定计算平台的实际物理特性,为用户提供抽象的、统一的、模拟的计算环境。
Guest OS:虚拟机中运行的操作系统称为客户机操作系统,承载客户机操作系统的实体称为虚拟机VM。
Host OS:运行虚拟机监控器的操作系统称为主机操作系统。某些虚拟机监控器可以脱离操作系统直接运行在硬件上(如VMWARE的ESX)
本地虚拟化(native virtualization):虚拟机监控器直接运行在硬件上,在虚拟机监控器之上的是虚拟机。
主机虚拟化(hosted virtualization):虚拟机监控器运行在操作系统上,在同一平台上允许两个或更多的操作系统共存。
全虚拟化(full-virtualization):不需要修改guest OS本身,在硬件缺乏虚拟化硬件指令辅助、或者VMM不具备加速能力下,性能较低。
半虚拟化(para-virtualizaiton):需要修改guest OS,添加专门虚拟化辅助指令,VMM不需要专门捕获和处理特权指令,性能接近物理机。
硬件虚拟化:为了提高虚拟化性能,硬件厂商内置了相应的指令集。这样通过引入硬件技术,将使虚拟化技术更接近物理机的速度,但现有的硬件实现优化仍然不足,还有待进一步提高。
以上内容参考了学校老师的PPT