操作系统引论
操作系统引论
目录
计算机软硬件和应用之间是 层次结构 的关系。
没有任何软件支持的计算机称为 裸机 。
一、操作系统(OS)是什么?
1.系统软件:操作系统是计算机系统中的一个系统软件
2.程序集合:它是一些程序模块的集合
3.资源管理:它们管理和控制计算机系统中的硬件及软件资源,合理地组织计算机工作流程,以便有效地利用这些资源为用户提供一个具有足够的功能、使用方便、可扩展、安全和可管理的工作环境
4.接口作用:从而在计算机与其用户之间起到接口的作用。
二、操作系统的目标
操作系统的目标与应用环境有关
1.在 查询系统 中所用的OS,希望能提供良好的人—机交互性;
2.对于应用于 工业控制、武器控制 以及多媒体环境下的OS,要求其具有实时性;
3.而对于微机上配置的OS,则更看重的是其使用的方便性。
在计算机系统上配置操作系统,其主要目标是:
方便性
通过OS命令操纵计算机,方便了用户,使计算机变得易学易用
有效性
第一层含义是 提高系统资源的利用率
另一层含义是 提高系统吞吐量
可扩充性
OS必须具有很好的可扩充性
与OS的结构有紧密的联系
开放性(兼容性)
遵循世界标准规范
特别是开放系统互连OSI国际标准
三、操作系统的作用
1. OS作为用户与计算机硬件系统之间的接口
OS作为用户与计算机硬件系统之间接口的含义是:
OS处于用户与计算机硬件系统之间,用户通过OS来使用计算机系统。或者说,用户在OS帮助下能够 方便、快捷、可靠地 操纵计算机硬件和运行自己的程序。
2. OS作为计算机系统资源的管理者
在一个计算机系统中,通常都含有多种硬件和软件资源。归纳起来可将这些资源分为 四类:处理机、存储器、I/O设备以及文件(数据和程序) 。相应地,OS的主要功能也正是对这四类资源进行有效的管理。处理机管理是用于分配和控制处理机;存储器管理主要负责内存的分配与回收;I/O设备管理是负责I/O设备的分配(回收)与操纵;文件管理是用于实现对文件的存取、共享和保护。
可见,OS的确是计算机系统资源的管理者。
3. OS实现了对计算机资源的抽象
对于一台完全无软件的计算机系统(即裸机),由于它向用户提供的仅是硬件接口(物理接口),因此,用户必须对物理接口的实现细节有充分的了解,这就致使该物理机器难于广泛使用。
为了方便用户使用I/O设备 ,人们在裸机上覆盖上一层 I/O设备管理软件 ,如图1-2所示,由它来实现对I/O设备操作的细节,并向上将I/O设备抽象为一组数据结构以及一组I/O操作命令,如read和write命令,这样用户即 可利用这些数据结构及操作命令来进行数据输入或输出,而无需关心I/O是如何具体实现的 。
通常把覆盖了上述I/O设备管理软件的机器称为扩充机器或虚机器。它向用户提供了一个对硬件操作的抽象模型。用户可利用该模型提供的接口使用计算机, 无需了解物理接口实现的细节,从而使用户更容易地使用计算机硬件资源 。
操作系统的作用:承上启下
1.用户与计算机硬件系统之间的接口
命令方式(UNIX、DOS命令);
系统调用方式(API);
GUI方式(Windows、LINUX)
2.计算机系统资源的管理者
处理机管理、存储器管理、I/O设备管理、文件管理。
3.实现对计算机资源的抽象
裸机:无软件的计算机系统。
虚拟机:覆盖了软件的机器,向用户提供一个对硬件操作的抽象模型。
四、推动OS发展的主要动力
1.不断提高计算机资源利用率
2.方便用户
3.器件的不断更新换代
4.计算机体系结构的不断发展
5.不断提出的新的应用需求
五、操作系统的发展过程
(1)单道批处理系统
处理过程
1.作业一个接一个地连续处理;
2.为实现对作业的连续处理,需要先把一批作业以脱机方式输入到磁带上,并在系统中配上监督程序(Monitor),在它的控制下,使这批作业能一个接一个地连续处理。
3.旨在 提高系统资源利用率和系统吞吐量
缺点
系统资源得不到充分的利用
这是因为在内存中仅有一道程序,每逢该程序在运行中发出I/O请求后,CPU便处于等待状态,必须在其I/O完成后才继续运行。又因I/O设备的低速性,更使CPU的利用率显著降低。从下图可以看出:在t2~t3、t6~t7时间间隔内CPU空闲。
(2)多道批处理系统
多道程序设计的概念
1.提高资源利用率和吞吐量
2.多道程序的运行情况
多道批处理系统的优缺点
1.资源利用率高
2.系统吞吐量大
3.平均周转时间长
4.无交互能力
多道批处理系统需要解决的问题
1.处理机争用问题
2.内存分配和保护问题
3.I/O设备分配问题
4.文件的组织和管理问题
5.作业管理问题
6.用户与系统的接口问题
(3)分时系统
1.分时系统的引入
1.推动分时系统形成和发展的主要动力,则是为了 满足用户对人机交互的需求 。
2.用户需要表现在以下几个方面
人机交互(批处理系统做不到)
共享主机(感觉独占)
3.定义
分时系统:在 一台主机 上连接了多个带有显示器和键盘的终端,同时允许多个用户共享主机中的资源,每个用户都可通过自己的终端以交互方式使用计算机
2.分时系统实现中的关键问题
最关键的问题是 如何使用户能与自己的作业进行交互
及时接收(多路卡、命令缓冲区)
及时处理
作业直接进入内存
采用轮转运行方式
3.分时系统的特征
1.多路性
允许将多台终端同时连接到一台主机,并分时使用。
2.独立性
感觉用户独占主机。
3.及时性
用户的请求能在很短时间内获得响应(1~3秒)。
4.交互性
用户可通过终端与系统进行广泛的人机对话。
(4)实时系统
实时处理突出了系统处理的即时性或响应性
实时系统:系统能及时响应外部事件的请求,在规定的时间内完成对该事件的处理,并控制所有实时任务协调一致地运行。
最主要的特征: 实时性
所谓"实时",是表示"及时",而"实时计算",则可以定义为这样一类计算∶系统的正确性,不仅由计算的逻辑结果来确定,而且还取决于产生结果的时间。
实时系统类型
工业(武器)控制系统
信息查询系统
多媒体系统
嵌入式系统
实时任务的类型
1.根据任务执行时是否呈现周期性来划分:
周期性实时任务
非周期性实时任务
2.根据对截止时间的要求来划分:
硬实时任务
软实时任务
硬式实时系统,对时间严格约束
软式实时系统,对时间限制稍弱一些
实时系统与分时系统的比较
多路性 独立性 及时性 交互性
可靠性
(5)微机操作系统的发展
(6)嵌入式操作系统
嵌入式系统
为了完成某个特定功能而设计的系统,或是有附加机制的系统,或是其他部分的计算机硬件与软件的结合体
有实时限制,如响应速度、测量精度、持续时间等
嵌入式OS:用于嵌入式系统的OS
µC/OS-II、嵌入式Linux、Windows Embedded、VxWorks、Android、iOS等
特点: 系统内核小、系统精简、高实时性、具有可配置性
物联网DDOS攻击
美国当地时间2016年10月21日11:10(北京时间19:10左右),美国域名服务器管理服务供应商Dyn遭受到了大规模DDoS攻击,导致美国东海岸地区大量网站宕机。
Dyn称,攻击是由感染恶意代码的设备发起,来自全球上千万IP地址,几百万恶意攻击的源头是物联网联系的所谓“智能”家居产品。
物联网信息安全
商家接售卖破解软件,如IP扫描。购买者只要输入任意地区的IP段,就能对某品牌摄像头进行特征搜索,随后找到IP段里所有该品牌摄像头,如果摄像头存在弱口令的情况,可以做到直接登录系统,查看摄像头画面。
国家网络安全宣传周
2022年国家网络安全宣传周9月5日在安徽合肥启动。本届网络安全宣传周以“网络安全为人民,网络安全靠人民”为主题。
车联网安全风险:
破解行车记录仪 车内声音窃听 钓鱼二维码
安全防范措施
1.客户: 定期杀毒扫描、启用双重认证、经常更新帐户密码,最好是将摄像头安装在客厅等2.公共空间、不使用的情况下尽量拔掉电源以阻止访问。
3.厂商: 漏洞防护、恶意代码防护、云加密、弱口令校验、访问控制
4.安全产品:流量检测和清洗产品 实时监测并清洗异常流量 进行攻击防护和疑似流量抑制
(7)网络操作系统
网络OS的概念
在计算机网络环境下对网络资源进行管理和控制,实现数据通信及对网络资源的共享,为用户提供与网络资源接口的一组软件和规程的集合
UNIX、Linux、Window NT/2000/Server
网络OS的特征
硬件独立性、接口一致性、资源透明性、系统可靠性、执行并行性
网络OS的功能
数据通信、应用互操作、网络管理
分布式系统
1.定义:基于软件实现的一种多处理机系统,是多个处理机通过通信线路互连而构成的松耦合系统。
2.特征:分布性、透明性、同一性、全局性。
分布式OS
定义:配置在分布式系统上的公用OS。
例子:万维网、鸿蒙OS。
分布式OS的功能
1.单处理机OS的主要功能;
2.网络OS所拥有的全部功能;
3.还包括:通信管理功能、资源管理功能、进程管理功能。
六、操作系统的基本特征
并发(Concurrence)
在一个时间段内,多个程序处于宏观的运行状态,并发推进
正是系统中的程序能并发执行这一特征,才使得OS能有效地提高系统中的资源利用率,增加系统的吞吐量。
1. 并行与并发
并行性和并发性是既相似又有区别的两个概念。 并行性 是指两个或多个事件在 同一时刻发生 。而 并发性 是指两个或多个事件在 同一时间间隔内发生 。
①单处理机系统
②多处理机系统
并发性带来的优点:
在一个时间段内,多个程序(进程)并发推进,共享系统资源,发挥并发性能够消除系统中部件和部件之间的相互等待,有效地改善系统资源的利用率
并发的实质:
是一个物理CPU(也可以多个物理CPU)在若干道程序之间多路复用,并发性是让有限物理资源实现多用户共享,以提高效率
2. 引入进程
在一个未引入进程的系统中,在属于同一个应用程序的计算程序和I/O程序之间只能是顺序执行,即只有在计算程序执行告一段落后,才允许I/O程序执行;反之,在程序执行I/O操作时,计算程序也不能执行。
但在为计算程序和I/O程序分别建立一个进程(Process)后,这两个进程便可并发执行。若对内存中的多个程序都分别建立一个进程,它们就可以并发执行,这样便能极大地提高系统资源的利用率,增加系统的吞吐量。
所谓进程,是指在系统中能独立运行并作为资源分配的基本单位 ,它是由一组机器指令、数据和堆栈等组成的,是一个能独立运行的活动实体。多个进程之间可以并发执行和交换信息。事实上,进程和并发是现代操作系统中最重要的基本概念,也是操作系统运行的基础。
共享(Sharing)
扩充知识
资源复用:
时分复用共享–并不把资源进一步分割成更小的单位,进程可在一个时间段内独占使用整个物理资源,如CPU
空分复用共享–该资源可进一步分割成更多和更小的单位供进程使用,如内存空间
一般情况下的共享与操作系统环境下的共享其含义并不完全相同。
1. 互斥共享方式
系统中的某些资源,如打印机、磁带机等,虽然可以提供给多个进程(线程)使用,但应 规定在一段时间内,只允许一个进程访问该资源 。为此,在系统中应建立一种机制,以保证多个进程对这类资源的互斥访问。
把这种在一段时间内只允许一个进程访问的资源,称为临界资源
2. 同时访问方式
系统中还有另一类资源,允许在一段时间内由多个进程“同时”对它们进行访问。这里所谓的“同时”,在单处理机环境下是宏观意义上的,而在微观上,这些进程对该资源的访问是交替进行的。典型的可供多个进程“同时”访问的资源是磁盘设备。一些用重入码编写的文件也可以被“同时”共享,即允许若干个用户同时访问该文件。
虚拟(Virtual)
扩充知识
资源虚拟:
是对资源讲行转化、模拟或整合,把物理上的一个资源变成逻辑上的多个对应物(或物理上多个变成逻辑上一个)的一类技术.
空分复用分割实际存在的物理资源,虚拟实现虚构假想的虚拟同类资源
资源虚拟的例子——虚拟设备、虚拟主存、虚拟文件、虚拟屏幕(终端)、虚拟信道
虚拟性是指利用某种技术将少的物理资源演变为多的、逻辑上的对应资源,还包括将慢的虚拟成快的、容量小的虚拟成容量大的、不能共享的虚拟成能共享的等
1. 时分复用技术
时分复用技术能提高资源利用率的根本原因在于,它利用设备为一用户的空闲时间,又转去为其他用户服务,能使设备得到最充分的利用。
(1) 虚拟处理机技术。
利用多道程序设计技术,为每道程序建立至少一个进程,让多道程序并发执行。此时虽然系统中只有一台处理机,但通过分时复用的方法,能实现同时(宏观上)为多个用户服务,使每个终端用户都认为是有一个处理机在专门为他服务。
(2) 虚拟设备技术。
我们还可以利用虚拟设备技术,也通过分时复用的方法,将一台物理I/O设备虚拟为多台逻辑上的I/O设备,并允许每个用户占用一台逻辑上的IO设备。
2. 空分复用技术
20世纪初,电信业中就已使用频分复用技术来提高信道的利用率。它是指将一个频率范围比较宽的信道划分成多个频率范围较窄的信道(称为频带),其中的任何一个频带都仅供一对用户通话。早期的频分复用技术只能将一条物理信道划分为几条到几十条话路,后来又很快发展到成千上万条话路,每条话路供一对用户通话。再后来在计算机中也把空分复用技术用于对存储空间的管理,用以提高存储空间的利用率。
异步(Asynchronism)
在多道程序环境下,系统允许多个进程并发执行。在单处理机环境下,由于系统中只有一台处理机,因而每次只允许一个进程执行,其余进程只能等待。
当正在执行的进程提出某种资源要求时,如打印请求,而此时打印机正在为其它进程打印,由于打印机属于临界资源,因此正在执行的进程必须等待,并释放出处理机,直到打印机空闲,并再次获得处理机时,该进程方能继续执行。 可见,由于资源等因素的限制,使进程的执行通常都不可能“一气呵成”,而是以“停停走走”的方式运行。
进程是以人们不可预知的速度向前推进的,此即进程的异步性 。
异步性也被称为不确定性指的是并发进程的推进速度不可预知
每个进程在某一时刻所处的状态以及资源拥有情况不是提前安排好的,而是系统动态运行过程中通过管理调度形成的
异步性特征是并发和共享带来的结果
七、操作系统的运行环境 ——硬件支持
操作系统内核
1.所谓操作系统内核,是指一直运行在计算机上的程序。
2.常驻内存,通常与硬件紧密相关
支撑功能:
中断处理
时钟管理
原语操作 :由若干条指令组成,用于完成一定功能。 原子操作:要么不做,要么全做,不可分割。
资源管理功能:
进程管理、存储器管理、设备管理
处理机的双重工作模式
1.为了 确保操作系统正确运行 ,必须区分操作系统代码和用户代码的执行。
2.一般地,处理机至少需要两种单独运行模式:
用户态(目态)
内核态(管态/系统态)
3.计算机硬件可以通过一个模式位(mode bit)来表示当前状态。
内核态(0)和用户态(1);
用于区分操作系统所执行的任务和为用户所执行的任务。
4.当存在系统引导时,硬件从内核态开始工作,操作系统接着加载,然后在用户态下执行用户程序。
用户态到内核态的切换
1.状态位(Mode bit) 指示正确的状态: 内核态(0) ,用户态(1)
2.当中断或错误出现,硬件切换至内核态
3.双重模式执行提供了保护手段,以防止操作系统和用户程序受到错误用户程序的影响。
4.这种保护的实现方法:
将可能引起损害的及其指令当做特权指令,硬件只有在内核态下才允许执行特权指令。
其他指令为非特权指令。
特权指令和非特权指令
特权指令:在内核态下运行的指令
不仅能访问用户空间,还能访问系统空间。 如启动外部设备、设置系统时钟、管中断、切换执行状态、I/O指令。
非特权指令:在用户态下运行的指令
应用程序所使用的都是非特权指令。 防止应用程序的运行异常对系统造成破坏。 仅能访问用户空间。
中断与异常
1.操作系统是中断驱动的,OS总在等待某个事件的发生,事件总是由中断或异常引起的。
中断 (interrupt):由硬件引起。
异常 /陷阱(trap):由软件引起。
出错(如除数为零或无效存储访问)。
用户程序的特定请求(如执行OS的某个服务)。
八、操作系统的主要功能
处理机管理功能
围绕CPU的调度,负责管理、控制用户程序的动态执行过程
1.进程控制
创建进程、撤消(终止)进程、状态转换
2.进程同步
信号量机制
①进程互斥方式
②进程同步方式
3.进程通信
直接通信、间接通信
4.调度
作业调度、进程调度
存储器管理功能
负责外存和1/O设备的分配、驱动和调度控制,以及实现外设读写的相关机制
1.内存分配和回收
内存分配、内存回收
2.内存保护
确保每个用户程序仅在自己的内存空间运行,绝不允许用户程序访问操作系统的程序和数据
3.地址映射
逻辑地址转换为物理地址
4.内存扩充 (虚拟存储技术)
请求调入功能、置换功能
设备管理功能
主要任务:(1)完成I/O请求;(2)提高CPU和I/O设备的利用率。
1.缓冲管理
缓冲区机制
2.设备分配
3.设备处理
设备驱动程序
文件管理功能
负责文件的建立、存取、目录管理、共享保护以及文件存储空间的管理
1.文件存储空间的管理
2.目录管理
按名存取
3.文件的读/写管理和保护
文件的读/写管理、文件保护
操作系统与用户之间的接口
1.用户接口
联机用户接口:命令行方式CLI。
脱机用户接口:批处理系统:作业说明书(作业控制语言JCL)。
图形用户接口:GUI
2.程序接口
系统调用:能完成特定功能的子程序。
九、现代操作系统的新功能
系统安全
认证技术、密码技术、访问控制技术、反病毒技术。
网络功能和服务
网络通信、资源管理、应用互操作。
支持多媒体
接纳控制技术、实时调度、多媒体文件的存储。
十、操作系统的结构设计
简单结构(无结构操作系统)
OS是无结构的,是为数众多的一组过程的集合,内部复杂、混乱
也称 整体系统结构
例子:MS-DOS,早期的UNIX
模块化结构
将OS按功能划分成若干个模块,并规定好各模块间的接口,称为“模块-接口法”
优点:
提高OS设计的正确性、可理解性和易维护性,增强OS的可适应性,加速OS的开发过程
大部分现代OS采用可加载的内核模块来设计:
内核有一组核心组件,提供核心服务
其他服务可在内核运行时动态实现(动态链接)
每个组件在需要时被加载到内核
例子:Linux、Mac OS X、Solaris以及Windows
分层式结构
操作系统划分为若干层,在低层上构建高层。
高层仅依赖于紧邻它的底层。
底层(0层)为硬件;最高层( N层)为用户层。
优点:
易保证系统的准确性。 可保证系统的易维护性和可扩充性。
缺点:
系统效率低。
例子:THE、Multics
微内核OS结构
基本概念:
足够小的内核、基于客户/服务器模式、应用“机制与策略分离”原理、采用面向对象技术
基本功能:
进程管理、低级存储器管理、中断和陷入处理
实例:Mach OS, Windows 2000/XP
微内核系统优点:
提高了系统的可扩展性、增强了系统的可靠性、可移植性强、提供了对分布式系统的支持、融入了面向对象技术
微内核系统存在的问题:
运行效率有所降低
主要原因:在完成一次客户对操作系统提出的服务请求时,需要利用消息实现多次交互和进行用户/内核模型与上下文的多次切换
外核结构
基本思想:
内核不提供传统OS中的进程、虚拟存储器等抽象,而是专注于物理资源的隔离(保护)与复用。 内核非常小,负责保护系统资源; 应用程序管理硬件资源。
实例:Aegis系统。
十一、系统调用的基本概念
操作系统服务的编程接口-面向程序
使应用程序可以通过它间接调用操作系统内核中的相关过程,取得相应的服务
用户与内核的接口 高级语言编写(C或者C++)
程序通过应用程序接口(API)访问
常用APIs:
Windows的 Win32 API、POSIX系统(包括几乎所有版本的Unix、Linux和Mac OS X)的POSIX API、Java虚拟机(JVM)的JAVA API
系统调用目的:
使应用程序可以通过它间接调用OS内核中的相关过程,取得相应的服务。
与一般过程调用的区别:
运行在不同的系统状态、状态的转换、返回问题、嵌套调用
十二、PC机DOS操作系统启动过程
加电,CPU执行只读存储器ROM中的一个称为BIOS的程序模块,该模块中的“硬件诊断程序”投入运行,检查硬件配置和设备状态。并在屏幕上显示内存容量和各个设备的连接情况。
外存储器上的“操作系统引导程序”被自动写入内存。立即投入运行,把操作系统的内核部分一一装入内存中,并将CPU控制权交给内核
内核运行做一些必要的初始化工作,比如,内存分区建立链表,创建必须的系统进程等
系统安排停当后显示系统提示符,并执行“CPU闲途”程序,等待用户到来