完整word版操作系统总结.docx

上传人:b****5 文档编号:6780210 上传时间:2023-01-10 格式:DOCX 页数:45 大小:1.17MB
下载 相关 举报
完整word版操作系统总结.docx_第1页
第1页 / 共45页
完整word版操作系统总结.docx_第2页
第2页 / 共45页
完整word版操作系统总结.docx_第3页
第3页 / 共45页
完整word版操作系统总结.docx_第4页
第4页 / 共45页
完整word版操作系统总结.docx_第5页
第5页 / 共45页
点击查看更多>>
下载资源
资源描述

完整word版操作系统总结.docx

《完整word版操作系统总结.docx》由会员分享,可在线阅读,更多相关《完整word版操作系统总结.docx(45页珍藏版)》请在冰豆网上搜索。

完整word版操作系统总结.docx

完整word版操作系统总结

第1章:

操作系统概述

1.1操作系统基本概念

1.1.1操作系统概念

计算机系统自下而上可分为:

硬件、操作系统、应用程序和用户;操作系统控制和协调各用户的应用程序对硬件的分配与使用;它是系统软件

1.1.2操作系统的特征

1.并发:

两个或多个事件在同一时间间隔内发生;因此它具有处理和调度多个程序同时执行的能力;引入进程的目的使程序并发执行;微观上分时交替执行,通过分时实现

2.共享:

系统中的资源可供内存中多个并发的进程共同使用。

可分为两种:

(1)互斥共享:

如打印机、磁带机等。

此资源被占用,其他进程访问该资源必须等待,这类资源被称为临界资源或独占资源

(2)同时访问:

“同时”往往宏观上,而微观上这些进程可能是交替对该资源进行访问,例如磁盘

并发与共享是操作系统两个最基本的特征

3.虚拟:

把物理上实体变化为若干个逻辑上的事物,虚拟技术。

虚拟处理器、虚拟内存、虚拟外部设备等。

可分为时分复用技术(如处理器分时共享)、空分复用(如虚拟存储器)

4.异步:

由于资源有限,多个程序并发执行,进程执行不是一贯到底而是走走停停,以不可预知的速度前行。

需要采用同步机制,使每次运行结果一致

1.1.3操作系统的目标与功能

操作系统(工人)应有:

处理机、存储器、设备和文件管理(工人有熟练的技能);还必须向用户(雇主)提供接口;可用来扩充机器(机器有工人后功能更好的发挥)

1.操作系统作为计算机系统资源的管理者

(1)处理机分配和运行都是以进程为基本单位,因而对处理机的管理可归结为对进程的管理

(2)存储器管理是为了给多道程序运行提供良好的环境,方便用户使用以及提高内存利用率

(3)文件管理是操作系统负责管理文件系统

(4)设备管理主要任务是完成用户I/O请求,方便用户使用各种设备,并提高设备利用率

(工人负责,雇主不需要关注)

2.操作系统作为用户与计算机硬件系统之间的接口

(1)命令接口:

分为联机命令接口(交互式命令接口)适用于分时或实时系统接口,由一组键盘操作命令组成;脱机命令接口(批处理命令接口)适用于批处理系统,它由一组作业控制命令(作业控制语句)组成,应写一份作业说明书连同作业一起提交给系统

联机命令:

雇主说一句话,工人做一件事并反馈,强调交互性;脱机命令:

雇主把要做的事写在清单上,工人按清单逐条完成

(2)程序接口:

由一组系统调用命令(广义指令)组成。

是操作系统提供给应用程序使用内核功能的接口

(3)图形接口GUI

3.操作系统用作扩充机(虚拟机)

工人操作了机器,机器便有了很大的作用,工人便成了扩充机器

1.2操作系统的发展与分类

1.2.1手工操作阶段(无操作系统)

缺点:

(1)用户独占全机

(2)CPU利用率低

1.2.2批处理阶段(操作系统出现)

为了解决人机矛盾及CPU与I/O速度不匹配矛盾

1.单道批处理:

系统对作业处理是成批的,但内存中始终保持一道作业。

特征:

(1)自动性:

一批作业逐个依次运行

(2)顺序性:

顺序装入内存,顺序的被执行

(3)单道性:

内存中仅一道程序在执行,只有执行完或者发生异常才调用下一程序

问题:

每当运行期间发出I/O请求,高速的CPU便处于等待低速的I/O完成状态

2.多道批处理:

装入多个程序在内存中,当某一个程序因I/O请求而暂停运行时,CPU便立即转去运行另一道程序,特点:

多道、宏观上并行、微观上串行,需要解决的问题:

(1)如何分配处理器

(2)多道程序内存分配问题

(3)I/O设备如何分配

(4)如何组织和存放大量数据,以便于用户和保证其安全性和一致性

优点:

资源利用率高,系统吞吐量大,CPU保持忙碌;缺点:

用户响应时间长,不提供人机交互

1.2.3分时操作系统

实现的关键:

如何使用户能与自己的作业进行交互,即当用户在自己终端上键入命令时,系统应能及时接收并处理该命令,再将结果返回给用户。

特征:

(1)同时性:

多个终端使用一台计算机

(2)交互性:

进行人-机对话

(3)独立性:

互不干扰,感觉自己在独占全机

(4)及时性:

在很短时间内得到响应

1.2.4实时操作系统

(1)硬实时系统:

某个动作必须绝对地在规定时间内完成,如飞行器的飞行自动控制系统

(2)软实时系统:

偶尔运行违反时间规定,不会引起永久性损害,如飞机票务系统

特点:

及时性和可靠性

1.2.5网络操作系统和分布式操作系统

网络操作系统特点:

网络中各种资源的共享以及各台计算机之间的通信

分布式操作系统特点:

分布性和并行性。

若干台计算机协同完成同一任务

1.2.6个人计算机操作系统

1.3操作系统运行环境

1.3.1操作系统的运行机制

操作系统中通常CPU执行内核程序和用户自编的系统外层程序,前者管理后者,管理程序要执行一些特权指令,例如I/O指令、置中断指令、存取用于内存保护的寄存器等。

划分了用户态(目态)和核心态(管态)

一些与硬件关联紧密的模块,如时钟管理、中断处理等处于最底层,其次是运行较高的程序,如进程管理、存储器管理等,这两部分构成了操作系统内核,工作在核心态,内核包括:

1.时钟管理:

时钟是最关键的设备,一个功能是计时,二是通过时钟中断管理,实现进程的切换,例如,在分时操作系统中,采用时间片轮转调度实现

2.中断机制:

为了提高多道程序运行环境中CPU的利用率,主要针对外部设备,例如键盘信息输入、进程管理和调度、系统调用等,现代操作系统是靠中断驱动的软件

中断机制中只有一小部分属于内核,负责保护和恢复中断现场信息,转移控制权到相关处理程序,这样可以减少中断处理时间,提高系统并行处理能力。

3.原语:

操作系统底层必然是一些可被调用的公用小程序,各自完成规定的操作。

特点:

(1)处理操作系统底层

(2)具有原子性,操作一气呵成

(3)运行时间短,调用频繁

定义原语的直接方法是关闭中断,让其所有动作不可分割的执行

4.系统控制的数据结构及处理:

为实现有效管理,需要基本操作:

(1)进程管理

(2)存储器管理(3)设备管理

核心态指令实际上包括系统调用指令和一些针对时钟、中断和原语的操作指令

1.3.2中断和异常概念

系统不允许用户程序实现核心态功能,而它们又必须使用这些功能,在核心态建立一些“门”,通过中断或异常,运行用户态的CPU会立即进入核心态,通过硬件实现的;提高资源利用率就需要在程序并未使用某种资源的时候,把它对那种资源的占有权释放,此行为需要中断实现

中断(也称外中断),指来自CPU执行以外的时间的发生,如设备发出的I/O结束中断、时钟中断,这类中断与当前处理机运行程序无关。

异常(也称内中断或陷入Trap),源自CPU执行指令内部的事件,有非法操作码、地址越界、算术溢出、虚存缺页

1.3.3系统调用(运行在核心态)

用户在程序中调用操作系统所提供的一些子功能。

可分为设备管理、文件管理、进程控制、进程通信和内存管理,显然系统调用运行在核心态

用户态转入核心态例子:

(1)系统调用

(2)中断(3)用户执行了错误状态(4)用户程序企图执行特权指令

用户态转为核心态会用到访管指令,访管指令是在用户态使用的,不可能是特权指令

1.4操作系统体系结构

1.4.1大内核与微内核

大内核将操作系统主要功能模块都作为一个紧密联系的整体运行在核心态

微内核将程序中最基本的功能(如进程管理)保留在内核,而将那些不需要在核心态执行的执行的功能移到用户态执行,从而降低内核设计复杂性;微内核有效的分离了内核与服务,服务与服务,使得他们之间接口更加清晰。

微内核最大问题是性能的问题,因为需要频繁的在核心态和用户态之间进行切换,操作系统执行开销大。

因此有的操作系统将那些频繁使用的系统服务又移回到内核

第2章进程管理

2.1进程与线程

2.1.1进程概念与特征

1.进程的概念:

更好的描述和控制程序的并发执行,实现操作系统并发和共享;进程控制块(PCB),系统利用PCB描述进程基本情况和运行状态,创建进程就是创建PCB;进程是系统进行资源分配和调度的一个独立单位

2.进程的特征:

动态性、并发性、独立性(凡未建立PCB的程序都不能作为独立单位运行)、异步性(操作系统必须配置相应进程同步机制)、结构性

2.1.2进程的状态与转换

(1)运行状态:

进程在单处理机上运行,每个时刻最多一个进程运行

(2)就绪状态:

获得除处理机外的所有所需资源,一旦得到处理机便开始运行

(3)阻塞状态(等待状态):

进程等待某一事件而暂停运行(如等待某资源可用或I/O完成)

(4)创建状态:

申请一个空白PCB,向其中填写控制和管理进程信息,系统为该进程分配运行所需资源,最后把该进程转入就绪状态

(5)结束状态:

系统先置改进程为结束状态,然后回收释放资源

基本状态转换:

(1)就绪->运行:

获得处理机(分配处理机时间片)

(2)运行->就绪:

时间片用完,让出处理机,此外在可剥夺系统中,有更高级进程就绪时,进程让出处理机转化为就绪状态

(3)运行->阻塞:

进程请求某一资源(如外设)的使用或等待某一事件的发生(I/O完成)

(4)阻塞->就绪:

进程等待事件到来,如I/O结束或中断结束,中断处理程序将进程由阻塞变为就绪

注:

运行->阻塞是主动行为,阻塞->就绪是被动行为

2.1.3进程控制

一般把进程控制用的程序段称为原语

1.进程的创建:

允许一个进程创建另一个进程(父子进程),操作系统中终端用户登录系统、作业调度、系统提供服务、用户程序的应用请求都会引起进程的创建,创建如下:

(1)为新进程分配一个唯一的标识号,并申请一块空白的PCB

(2)为进程分配资源,为新进程的数据和程序以及用户栈分配必要的内存空间,如资源不足,不是分配失败,而是“等待状态”

(3)初始化PCB,包括初始化标志信息,初始化处理机状态信息和初始化处理机控制信息,以及设置进程优先级

2.进程的终止:

①正常结束②异常结束(如存储区越界、保护错、非法指令、特权指令错、I/O故障)③外界干预;进程终止步骤:

(1)根据终止进程的标识符,检索PCB

(2)若被终止进程处于运行状态,立即终止进程执行,把处理机资源分配给其他进程

(3)若该进程有子进程,应将其终止

(4)将该进程所拥有资源全部归还给操作系统(或父进程)

(5)将该PCB从队列(链表)中删除

3.进程的阻塞与唤醒:

如请求资源失败、等待某种操作完成、新数据尚未到达,系统自动执行阻塞原语(Block),是一个主动行为,也只有运行状态的进程才能阻塞,阻塞原语:

(1)找到此PCB

(2)若该进程为运行状态,保护其现场,将其转化为阻塞状态

(3)将该PCB插入相应事件等待队列中

若期待的事件出现,调用唤醒原语(Wakeup),被动行为,唤醒原语:

(1)在该事件的等待队列中找到相应PCB

(2)将其从等待队列中移出,并置就绪状态

(3)把该PCB插入就绪队列中,等待调度程序调度

4.进程的切换:

任何进程都是在操作系统内核的支持下运行的,进程切换:

(1)保存处理机上下文,包括程序计数器和其他寄存器

(2)更新PCB

(3)把进程的PCB移入相应的队列中

(4)选择另一个进程,更新其PCB

(5)更新内存管理的数据结构

(6)恢复处理机上下文

2.1.4进程的组织(组成)

1.进程控制块(PCB):

常驻内存,包括进程描述信息、进程控制和管理信息、资源分配清单和处理机相关信息

2.程序段:

多个进程可以运行同一程序

3.数据段

2.1.5进程的通信(高级通信方式)

1.共享存储:

通信进程之间存在一个共享空间,通过对这片空间进行读写操作实现进程信息交换。

需要使用同步互斥工具(如PV操作),操作系统只提供通信进程可共享的存储空间和同步互斥工具。

进程运行期间不能访问其他进程空间,而进程中的线程是共享进程的

注:

简单理解:

甲和乙中间有个大布袋,甲和乙交换物品通过大布袋进行,而不能直接交换

2.消息传递:

进程间的消息是以格式化的信息为单位的,进程之间通过操作系统提供的发送消息和接收消息两个原语进行数据交换

(1)直接通信方式:

发送进程直接把消息发送给接收进程,并将它挂在接收进程的消息缓冲区队列上,接收进程从消息缓冲队列中取得消息。

(2)间接通信方式:

发送进程将消息发送到中间实体(信箱)接收进程从信箱中取得消息,广泛应用于计算机网络

简单理解:

甲要告诉乙一些事情,就要写信,然后通过邮差交给乙,直接通信就是邮差把信直接送到乙手里,间接通信就是乙家门口有个邮箱,邮差把信放到邮箱里。

3.管道通信:

消息传递的一种特殊方式,“管道”是指用于连接一个读进程和一个写进程以实现通信的一个共享文件(pipe),为协调双方通讯,必须有互斥、同步和确定对方存在;从管道读数据是一次性操作,数据一旦被读取,它就从管道中被抛弃,释放空间以便写更多数据,某一时刻只能单向传输

2.1.6线程概念和多线程模型

1.线程的基本概念:

引入线程是为了减小程序在并发执行时所付出的时空开销,提高操作系统的并发性能。

线程是一个基本的CPU执行单元,也是程序执行流的最小单元。

是被系统独立调度和分派的基本单位,不拥有系统资源。

同一进程中多个线程可并发执行。

引入线程后进程只作为除CPU以外系统资源的分配单元,而线程作为处理机分配单元。

线程的切换发生在同一进程内部,只需很少的时空开销

2.线程与进程的比较

(1)调度:

线程是独立调度的基本单位,进程是拥有资源的基本单位,同一进程中线程切换不会引起进程切换

(2)拥有资源:

但线程可以访问其隶属的进程的资源,线程基本不拥有资源

(3)并发性:

多个线程也可以并发执行

(4)系统开销:

创建和撤销进程的开销远大于创建和撤销线程的开销

(5)地址空间和其他资源:

某进程内的线程对于其他进程不可见

3.线程的属性

(1)不拥有系统资源,每个线程都有一个唯一标识符和一个线程控制块,记录了线程执行的寄存器和栈等

(2)不同线程可以执行相同程序

(3)同一进程中各个线程共享该进程所拥有的资源

(4)线程是处理机独立调度单位,多个线程可并发执行

4.线程的实现方式:

用户级线程和内核级线程

5.多线程模型

(1)多对一:

多个用户级线程映射到一个内核级线程,一个线程被阻塞后整个进程都被阻塞;优点:

效率高;缺点:

多个线程不能并行的运行在多处理机上

(2)一对一:

每个用户级线程映射到一个内核级线程;优点:

一个线程被阻塞后允许另一个线程继续执行,并发性较强;缺点:

创建线程开销比较大

(3)多对多:

集两者之长

2.2处理机调度

2.2.1调度的概念

1.调度的基本概念:

处理机调度是操作系统设计的核心问题。

2.调度的层次

(1)作业调度(高级调度):

按一定原则从外存上处于后备状态的作业中挑选一个(或多个)作业,给它们分配内存、输入/输出设备等必要资源,并建立相应的进程,以使它们获得竞争处理机的权利(就是内存与外存之间的调度,每个作业只调入和调出一次,执行效率低)

(2)内存调度(中级调度):

为了提高内存利用率和系统吞吐量。

应使那些暂时不运行的进程调至外存等待,此时进程称为挂起状态,当内存有空闲时将进程从外存调入内存,修改状态为就绪,挂在就绪队列上等待。

(3)进程调度(低级调度):

按照某个策略调度,频率大概几十毫秒一次

2.2.2调度的时机、切换和过程

1.进程调度和切换程序是系统内核程序。

进程调度会引起进程切换(有时不能)

2.不能进行进程调度和切换的情况:

(1)在处理中断过程中:

是系统工作的一部分,逻辑上不属于进程,不应被剥夺处理机

(2)进程在操作系统内核的临界区:

进入临界区需要加锁,以防止其他进程进入,解锁前不应切换到其他进程

(3)其他需要完全屏蔽中断的原子操作过程中:

如加锁、解锁、中断现场保护、恢复等

如果上述事情发生,不能立即进程调度与切换,应置系统请求调度标志,等待上述事件完成

3.应该进行进程调度与切换情况:

(1)当发生引起调度的条件,且当前进程无法继续运行下去,可以马上进程调度切换(非剥夺调度)

(2)当中断处理结束或trap处理结束时,返回被中断进程的用户态程序执行现场前,若置上请求调度标志,即可马上进行进程调度和切换(剥夺式调度)

进程切换往往在调度完成后立即发生,它要求保存原进程当前切换点的现场信息,恢复被调度进程的现场信息,现场切换时,操作系统内核将原进程现场信息推入到当前进程内核堆栈来保存他们,并更新堆栈指针

2.2.3进程调度方式(有更高级的进程要进入怎么处理)

(1)非剥夺调度方式(非抢占式):

当前进程直到完成或发生进入阻塞,一旦CPU被分配,该进程保持CPU直至终止或到阻塞状态;特点实现简单、开销小,适用于大多数批处理系统,不能用于分时系统和实时系统

(2)剥夺调度方式(抢占式):

有更为紧迫的进程需要执行时应立即让出处理机;特点对提高系统吞吐率和响应效率都有明显好处

2.2.4调度的基本准则

1.CPU利用率:

尽量保持CPU忙碌

2.系统吞吐量:

表示单位时间内CPU完成作业数量

3.周转时间:

指从作业提交到作业完成所经历的时间,带权周转时间=作业周转时间/作业实际运行时间

4.等待时间:

指进程等待处理机时间之和;处理机调度算法并不影响作业执行或输入/输出操作时间,而只影响作业在就绪队列中等待所花的时间(调度算法的优劣,只需简单判断等待时间)

5.响应时间:

指从用户提交请求到系统首次产生响应所用的时间(交换式系统中评价准则)

2.2.5典型调度算法(重点)

1.先来先服务(FCFS):

属于不可剥夺算法,不能作为分时和实时系统;特点:

算法简单、效率低;对长作业有利,对短作业不利,有利于CPU繁忙型作业,不利于I/O繁忙型作业

例:

假设系统中有4个作业,它们的提交时间分别是8、8.4、8.8、9,运行时间依次是2、1、0.5、0.2,系统釆用FCFS调度算法,这组作业的平均等待时间、平均周转时间和平均带权周转时间见表

平均等待时间t=(0+1.6+2.2+2.5)/4=1.575

平均周转时间T=(2+2.6+2.7+2.7)/4=2.5

平均带权周转时间W=(1+2.6+5.牡13.5)/4=5.625

2.短作业优先(SJF):

对长作业不利(会导致饥饿现象),不能保证紧迫作业会被及时处理,但平均等待时间和平均周转时间最少

考虑上表中给出的一组作业,若系统釆用短作业优先调度算法,其平均等待时间、平均周转时间和平均带权周转时间见表

平均等待时间t=(0+2.3+1.4+1)/4=1.175

平均周转时间T=(2+3.3+1.9+1.2)/4=2.1

平均带权周转时间W=(1+3.3+3.8+6)/4=3.525

3.优先级调度算法:

既可以作业调度也可进程调度

(1)非剥夺式优先级调度算法

(2)剥夺式优先级调度算法

根据创建后优先级是否可以改变:

静态优先级(不可改变)、动态优先级(可改变)

4.高响应比优先:

主要用于作业调度;响应比

;等待时间相同,要求服务时间越短响应比越高(有利于短作业);要求服务时间相同,等待时间越长响应比越高(实现FCFS),兼顾了长作业,避免饥饿

5.时间片轮转:

适用于分时系统:

若时间过大,就化为先来先服务,若时间片很小,那处理机切换频繁,处理机开销增大,合理选择时间片大小

6.多级反馈队列(集合前几种优点):

优势:

终端型作业用户,短作业优先;短批处理作业用户,周转时间短;长批处理作业用户,经过前面几个队列得到部分执行,不会长期得不到处理

2.3进程同步

2.3.1进程同步的基本概念

1.临界资源:

一次仅允许一个进程使用的资源,如打印机等,进程中访问临界资源的那段代码称为临界区,可以把临界资源的访问过程分为四个部分:

(1)进入区:

在进入区检查是否可以进入临界区,若可以进入,则应设置正在访问临界区的标志,以阻止其他进程同时进入临界区

(2)临界区:

进程中访问临界资源的那段代码

(3)退出区:

将正在访问临界区标志清除

(4)剩余区:

代码中其余部分

2.同步(直接制约关系):

例如,进程A通过缓冲区向进程B提供数据,缓冲区空时,进程B不能获得数据而阻塞,一旦进程A将数据输入缓冲区,进程B被唤醒,反之,缓冲区满时,进程A被阻塞,仅当进程B取走缓冲区数据时,才唤醒进程A

3.互斥(间接制约关系):

当一个进程进入临界区使用临界资源时,另一个进程必须等待;为禁止两个进程同时进入临界区,同步机制应遵循准则:

(1)空闲让进

(2)忙则等待

(3)有限等待:

对请求访问的进程,应保证能在有限的时间进入临界区

(4)让权等待:

当进程不能进入临界区时,应立即释放处理器,防止进程忙等待

2.3.2实现临界区互斥的基本方法

1.软件实现方法:

在进入区设置和检查一些标志来表明是否有进程在临界区,如果已有进程在临界区,则在进入区循环检查进行等待,进程离开临界区后则在退出区修改标志。

(1)单标志法:

设置一个公用整型变量turn,用于指示被允许进入临界区的进程编号,确保每次只允许一个进程进入临界区;但两个进程必须交替进入临界区,如果某个进程不再进入临界区,那么另一个进程也将无法进入临界区(违背“空闲让进”)

P0P1

while(turn!

=0);while(turn!

=1);

criticalsection;criticalsection;

turn=1;turn=0;

remaindersection;remaindersection;

(2)双标志法先检查:

在每个进程访问临界资源之前,先查看临界资源是否被访问,若被访问,该进程等待,为此设置一个flag[i],如第i个元素值为FALSE,Pi未进入临界区;优点:

不用交替进入,可以连续使用

(2)Pi和Pj可能同时进入临界区,违背“忙则等待”

PiPj

while(flag[j]);while(flag[i]);

flag[i]=true;flag[j]=true;

criticalsection;criticalsection;

flag[i]=false;flag[j]=false;

remaindersection;remaindersection;

(3)双标志后检查法:

先设置自己的标志位true后,再检测对方标志状态,若对方标志为true,则进程等待,否则进入临界区;同时执行while循环,发现双方都想进入临界区,于是互相谦让,导致“饥饿”现象

PiPj

flag[i]=true;flag[j]=true;

while(flag[j]);while(flag[i]);

criticalsection;criticalsection;

flag[i]=false;flag[j]=false;

remaindersection;remaindersection;

(4)Peterson’sAlgorithm:

为了防止两个进程为进入临界区而无限等待,又设置变量turn,每个进程在设置自己标志后再设置turn标志,这时,再同时检测另一个进程状态标志和不允许进入标志,这样可以保证两个进程同时要求进入临界区只允许一个进入;利用flag解决临界资源互斥访问,而利用turn解决“饥饿”现象

PiPj

flag[i]=true;turn=j;flag[j]=true;turn=i;

while(flag[j]&&turn==j);while(flag[i]&&turn==i

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 高等教育 > 其它

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1