最新操作系统概论重点整理张琼声版.docx
- 文档编号:30577889
- 上传时间:2023-08-16
- 格式:DOCX
- 页数:27
- 大小:43.99KB
最新操作系统概论重点整理张琼声版.docx
《最新操作系统概论重点整理张琼声版.docx》由会员分享,可在线阅读,更多相关《最新操作系统概论重点整理张琼声版.docx(27页珍藏版)》请在冰豆网上搜索。
最新操作系统概论重点整理张琼声版
操作系统概论-02323(2017年张琼声版本)
第一章:
操作系统简介
操作系统概念:
操作系统是一种复杂的系统软件,是不同程序代码、数据结构、初始化文件的集合,可执行。
操作系统是提供计算机用户与计算机硬件之间的接口,并管理计算机软件和硬件资源,并且通过这个接口使应用程序的开发变得简单、高效。
接口是两个不同部分的交接面。
接口分为硬件接口和软件接口,计算机的所有功能最终都是由硬件的操作来实现的,计算机屏蔽了对硬件操作的细节。
操作系统完成的两个目标:
与硬件相互作用,为包含在所有硬件平台上的所有底层可编程部件提供服务。
为运行在计算机系统上的应用程序(即用户程序)提供执行环境
现代计算机特点是支持多任务,,一方面保证用户程序的顺利执行,另一方面使计算机系统资源得到高效的利用,保证计算机系统的高性能
操作系统的功能:
处理机管理、内存管理、设备管理、文件管理。
●操作系统的发展:
无操作系统--单道批处理系统--多道批处理系统--微机操作系--实时操作系统
无操作系统阶段:
电子管,无存储设备,第一台:
1946年宾夕法尼亚大学的「埃尼阿克」
单道批处理系统:
晶体管,磁性存储设备,内存中有一道批处理作业,计算机资源被用户作业独占。
吞吐量是指单位时间内计算机系统处理的作业量
多道程序系统:
集成电路芯片,出现了分时操作系统(多个终端)。
微机操作系统:
第一台Intel公司顾问GaryKildall编写的CP/M系统,是一台磁盘操作系统,用于Intel8080.
实时操作系统:
广泛应用于各种工业现场的自动控制、海底探测、智能机器人和航空航天等。
●批处理、实时、分时系统的优缺点比较:
单道批处理系统:
自动性、顺序性、单道性。
优点:
减少了等待人工操作的时间
缺点:
CPU资源不能得到有效的利用。
多道批处理系统:
多道性、无序性、调度性、复杂性。
优点:
能够使CPU和内存IO资源得到充分利用,,提高系统的吞吐量。
缺点:
系统平均周转时间长,缺乏交互能力。
分时系统:
多路性、及时性、交互性、独立性。
优点:
提供了人机交互,可以使用户通过不同终端分享主机。
缺点:
不能及时接收及时处理用户命令。
实时操作系统(用户实时控制和实时信息处理):
多路性、独立性、及时性、交互性、可靠性。
在实时系统中,往往采取多级容错措施来保证系统安全和数据安全。
操作系统产品:
主机操作系统(批处理、事务处理(银行支票处理或航班预订)、分时处理),微机操作系统,服务器操作系统、嵌入式操作系统(物联网操作系统)
操作系统特征:
并发(多个事件在同一时间间隔内同时发生)、共享、虚拟、异步
操作系统功能:
内存管理:
任务是为多道程序的运行提供良好的运行环境,方便用户使用内存,提高内存利用率,以及从逻辑上扩充内存实现虚拟存储。
它具有内存分配、内存保护、地址映射和内存扩充(借助与虚拟存储技术)等功能。
进程管理
文件管理:
存储空间的管理-目录管理-文件的读写管理和权限控制
设备管理
提供用户接口:
命令接口,图形用户接口,程序接口
操作系统体系结构:
简单的监控程序模型—单体结构模型—层次结构模型—客户服务器模型与微内核结构—动态可扩展结构模型
单体内核是操作系统中最早、最常见的体系结构(UNIX/MS-DOS/Linux/MACOSX/BSD)
层次结构最经典的例子Dijjkstra的THE系统
指令的执行:
程序是指令的集合,程序的执行就是按照某种控制流执行指令的过程。
一个单一指令需要的处理称为指令周期,包括取指周期和执行周期
第二章:
进程管理
程序的顺序执行特点:
顺序性,封闭性、可再现性
程序的并发执行特点:
间断性、失去封闭性、不可再现性
进程的概念:
进程是允许并发的程序在某个数据集合上的运行过程
进程是正文段、用户数据段和进程控制块共同组成的执行环境。
正文段存放被执行的机器指令,用户数据段存放进程在执行时要操作的用户数据,进程控制块存放程序的执行环境,操作系统通过这些描述和管理进程。
进程代表了程序的执行过程,是一个动态的实体,它随着指令的执行而不断变化,在某个特定时刻的进程内容被称为进程映像。
进程的特征:
并发性、独立性、异步性、动态性、结构特征。
●进程和程序的区别:
程序是静态的,进程是动态的
程序是永久的,进程是暂时存在的
程序和进程存在的实体不同。
程序是指令的集合,进程是由正文段、用户数据段、进程控制块组成
进程和程序的联系:
进程是程序的一次执行,进程总是对应至少一个特定的程序,执行程序的代码,一个程序可以对应多个进程。
进程控制块:
进程实体存在的标志是操作系统管理进程所使用的数据结构—进程控制块
进程控制块是进程实体的一部分,是操作系统中最重要的数据结构,进程控制块中记录了操作系统所需要的,用户描述进程情况以及控制进程运行所需要的全部信息,进程控制块是操作系统感知进程存在的唯一标志。
进程控制块中的信息:
进程标识符信息、处理机状态信息、进程调度信息、进程控制信息
进程的状态:
就绪态、执行态,阻塞态
转换:
进程的组织:
链接方式、索引方式、进程队列
进程的控制:
进程的创建----阻塞----唤醒----终止
创建的条件:
1)用户登录2)作业调度3)提供服务4)应用请求
阻塞的条件:
1)请求系统服务2)数据尚未到达3)无工作可做4)启动某种操作
●操作系统内核
操作系统内核是计算机硬件的第一次扩充,内核执行操作系统与硬件密切相关,执行频率高的模块,常驻内存。
操作系统内核的功能:
1)支撑功能2)资源管理功能
支撑功能包括:
中断处理、时钟管理和原语操作,原语操作是一组在执行过程中不能中断的操作
资源管理功能包括:
进程管理、存储器管理和设备管理
中断:
中断是改变计算机执行指令顺序的一种事件,这种事件与CPU芯片内外部硬件电路产生的电信号相对应。
中断的目的:
能有效提高CPU的利用率,改善系统性能,支持系统的异步性。
引用中断机制前,采用的是反复轮询的方式,来检测本次I/O是否结束。
中断类型1)同步中断(内部中断或异常)2)异步中断(外部中断)
同步中断是当指令执行时由CPU控制单元产生的,如除法出错,调试、溢出、浮点出错等
异步中断是由其他硬件设备随机产生的,可分为外部可屏蔽中断(I/O设备产生)和外部不可屏蔽中断(紧急事件产生,硬件故障等)
引起中断的原因:
1)人为设置中断2)程序性事故3)I/O设备4)硬件故障5)外部事件
单重中断的处理过程:
CPU在反复执行指令的过程中,每执行完一条执行,都会检查是否有外部中断的到来,如果有中断信号,则转中断处理。
●时钟管理:
计算机的很多活动都是由定时测量来控制的,两种定时测量:
1)保存当前的系统时间和日期2)维持定时器,操作系统依靠时钟硬件和时钟驱动程序来完成上述两种测量
时钟硬件(可编程间隔定时器)的功能:
按照指定的时间间隔产生时钟中断,测量逝去的时间,并触发与时间有关的操作
时钟软件(时钟驱动程序)功能:
1)维护日期和时间2)递减当前进程在一个时间片内的剩余执行时间,并检查是否为0,防止进程运行超时3)对CPU的使用情况记账4)递减报警计数器
操作系统内核可以利用时钟机制防止一个进程垄断CPU或者其他资源
两个时钟源:
实时时钟(RTC/CMOS)和OS时钟.
●系统调用:
系统调用是一群事先定义好的模块,他们提供一条管道让应用程序或用户能由此得到核心程序的服务。
系统调用是系统程序与用户程序之间的接口
系统调用与一般函数调用的区别:
1)系统调用运行在系统态,一般函数运行在用户态
2)系统调用与一般函数的执行过程不同,系统调用中断时,由系统找相应的系统调用子程序
3)系统调用要进行『中断处理』,比一般函数多了一些系统开销
●进程同步:
操作系统同步机制的主要任务就是保证在多任务共享系统资源的情况下,程序执行能得到正确的结果。
同时,同步机制需要解决进程执行的协调问题。
进程同步的概念:
在多任务系统中,进程一般存在资源共享关系和相互合作的关系。
进程同步有两个任务:
1)对具有共享资源关系的进程,保证以互斥的方式访问临界资源。
临界资源是必须以互斥方式访问的共享资源。
2)对具有相互合作关系的进程,要保证相互合作的诸进程协调执行。
同步机制应遵循的准则:
1)空闲让进2)忙则等待3)有限等待4)让权等待
●信号量机制(waitsignal)对不同的共享资源设置称为信号量的变量,用信号量的取值标识资源的使用状况,或某种事件的发生。
一、整型信号量机制:
用整型变量值来标记资源的使用情况。
若整型量>0,说明有可用资源;若整型量<=0,说明资源忙,进程必须等待。
对于一次只允许一个进程访问的临界资源,可定义一个用户互斥的整型信号量,并将其初始化为1,整型信号量的值只能通过两个特定的原子操作wait和signal来改变。
Varsinteger;
Wait(s){//申请资源
Whiles<=0dono-op;
S=s-1;//占用资源
}
signal(s){//释放资源
s=s+1;
}
整型信号量的互斥:
初始变量为1
整型信号量的协调:
初始变量为0
总结:
1)整型信号量的值只能由wait和signal操作改变
2)wait和signal的操作都是原子操作,即在这两个操作中对信号量的访问是不能被中断的
3)原子操作可以通过关中断来实现
4)整型信号量机制的实例:
linux中的自旋锁SpinLock
5)不同的资源对应不同的信号量,并不是系统中所有资源都用同一个信号量标识
二、记录型信号量机制:
代码:
Typesemaphore=record
Value:
integer;//资源数量
L:
listofprocess;//阻塞队列
Procedurewait(s)
Vars:
semaphore;
Begin
s.value=s.value-1;//申请资源
ifs.value<0thenblock(s.L)//此时资源无,自我阻塞进入阻塞队列
end
proceduresignal(s)
vars:
semaphore;
begin
s.value=s.value+1;//释放一个资源
ifs.value<=0thenwakeup(s.L);//释放后发现还有阻塞,则唤醒阻塞中的进程
end
记录型信号量的优点是不存在「忙等」,采取了「让权等待」的策略
三、AND型信号量的机制
基本思想是将进程在整个运行过程中所需要的所有资源一次性的全部分配给进程,待进程使用完之后再一起释放。
只要还有一个资源不能分配给该进程,其他所有可能为之分配的资源也不分配给它。
管程:
管程是描述共享资源的数据结构和在数据结构上的共享资源的管理程序的集合
进程通信:
进程之间的高级通信机制分为:
共享存储器系统、消息传递系统、管道通信系统。
线程:
在操作系统中,进程是进行资源分配和独立执行的基本单位,为了进一步提高程序的并发性,减少系统开销,在操作系统中引入了线程的概念。
线程是进程中的一个实体,是被系统独立调度和分派的基本单位。
线程在运行中存在间断性,也有就绪、执行、阻塞三种形态。
第三章:
进程调度与死锁
进程调度的功能是按照某种策略或算法从就绪态进程中为当前空闲的cpu选择在其上运行的新进程。
选择调度方式和算法的若干准则:
1)周转时间短周转时间是指从作业被提交给系统开始,到作业完成为止
系统的平均周转时间T等于N各作业的周转时间之和除以n
T=(t1+t2+t3+…+tn)/n
作业的周转时间T与系统为它提供的服务时间TS之比为W,W=T/TS,被称为带权周转时间,那么n个作业的平均带权周转时间为:
T=(t1/ts1+t2/ts2+…+tn/tsn)/n
服务时间Ts是一个作业在CPU上执行的总时间
2)响应时间快响应时间是指从用户提交一个请求开始直至系统首次产生响应的时间为止的一段时间
3)截止时间的保证截止时间是指某个任务必须开始执行的最迟时间,或必须完成的最迟时间
4)系统吞吐量高
5)处理机利用率好
●调度算法:
1)先来先服务(FCFS)从就绪列的队首选择最先到达就绪队列的进程,FCFS适合长进程,不利于短进程,适合CPU繁忙性进程,不适合IO繁忙性进程。
2)短进程优先调度算法(SPF)短进程优先算法能有效降低进程的平均等待时间,提高系统的吞吐量
3)优先调度算法(PSL)类型:
非抢占式优先权调度算法、抢占式优先权调度算法;优先权的类型:
静态优先权和动态优先权
4)时间片轮转调度算法(RR)
时间片大小的确定考虑的因素:
系统对响应时间的要求,响应时间越短,时间片取值应该越小。
就绪队列中进程的数目
系统的处理能力
5)多级队列调度不同的队列优先权不同,调度算法也可能不同。
6)多级反馈队列调度队列优先权越高,时间片越短,时间片通常成倍增长
实时系统中的调度:
基本条件:
1)提供必要的调度信息2)系统处理能力强3)采用抢占式调度机制4)具有快速切换机制
常用的调度算法:
1)最早截至时间优先(EDF)2)最低松弛度优先(LLF)
多处理器调度:
多处理器系统的类型:
紧密耦合、松弛耦合、对称处理器系统、非对称处理器系统
进程调度方式:
1)自调度2)成组调度3)专用处理器分配
自调度:
采用自调度的系统中有一个公共的就绪队列,任何一个空闲的处理器都可以从该就绪队列中选择一个进程或者一个线程运行。
在多处理器环境下,FCFS是较好的自调度算法
自调度优点:
1)易移植2)有利于提高CPU的利用率
缺点:
1)瓶颈问题2)低效性3)程序切换频繁
●死锁:
死锁是由多个进程竞争共享资源而引起的进程不能向前推进的僵死状态
产生死锁的原因:
竞争死锁资源且分配资源的顺序不当
产生死锁的必要条件:
1)互斥2)请求保持3)不剥夺4)环路等待
S为死锁的充分条件是:
当且仅当S状态的资源分配图是不可完全简化的
处理死锁的方法:
预防死锁、避免死锁、检测并解除死锁和忽略死锁
死锁的避免:
资源分配的状态分为安全状态和不安全状态,不安全状态不一定产生死锁,但是系统进入安全状态以后,就可以避免死锁的产生,所以避免死锁的实质在于使系统处于安全状态。
银行家算法:
基本思想:
一个进程提出资源请求后,系统进行资源的试分配。
然后检测此次分配是否处于安全状态,若安全则按分配方案分配资源,否则不分配资源。
试分配过程:
available[]可用数量
max[]最大数量
allocation[]已分配的资源数
need[]还需要某资源的数量
1,先进行试分配
1)requesti<=needi
2)requesti<=availablei
满足上述条件进行试分配
3)available=available–requesti
allocation=allocation+requesti
needi=needi–requesti
然后安全检测
wrok[]=available
finish[]=false
当needI<=work时,work=work+allocationIfinish[]=true
若对于所有的finish[]=true都成里,则说明处于安全状态
第四章:
内存管理
内存管理的目标:
1)实现内存分配、内存回收等操作2)提高内存利用率和内存的访问速度(即充分利用现有的内存资源,为应用程序提供方便的内存使用方式和一个快速、安全且充分大的存储器)
程序的链接和装入:
链接要解决的问题是将编译后的目标模块装配成一个可执行程序,分为静态链接和动态链接。
1)静态链接:
在程序运行前,用链接程序将目标模块链接成一个完整的装入模块,任务:
一时对逻辑地址进行修改,二是变换外部调用符号
优点:
运行速度较快缺点:
可执行文件较大,占用空间大,系统开销大,程序开发不够灵活,修改一个模块会导致整个程序重新链接
2)动态链接:
可将某些目标模块的链接推迟到这些模块中的函数要被调用时再进行。
优点:
节省内存和外存空间,方便程序开发。
缺点:
增加了运行的时间开销,使程序运行时的速度变慢。
程序装入:
装入方式:
绝对装入方式、可重定位装入(静态装入方式)和动态运行时装入方式
绝对装入方式:
编译程序已知程序在内存中的位置,编译时产生物理地址的目标代码,装入程序按照装入模块的物理地址将程序和数据装入内存
可重定位装入方式:
编译时不知道程序在内存中的位置,那么编译时就必须生成可重定位的代码,其中的地址都是逻辑地址,在程序装入内存时,再把逻辑地址映射为物理地址。
程序装入时对目标程序中的指令和数据地址修改的过程称为重定位。
静态装入方式的特点:
1)编译程序使目标模块的地址从0开始2)程序装入时,装入程序根据内存的使用情况将装入模块装入到内存的某个位置,并对模块进行重定位。
物理地址=有效逻辑地址+程序在内存中的起始地址
动态运行时装入:
当一个进程在被换出之前的内存地址与后来被从外存调入时所在的内存位置不同,这时,地址映射延迟到进程执行时再进行
●连续分配的存储管理方式:
类型:
1)单一连续区分配方式2)固定分区分配方式3)动态分区分配方式
单一连续区分配方式:
适用于单用户单任务系统,内存分为系统区和用户区
固定分区分配方式:
将用户内存空间分配成若干固定大小的区域,每一个区域运行一道用户程序;分区的数量是固定的,大小也是固定的
每个分区大小相等的分配方式缺点是内存利用率比较低,主要用于一个计算机去控制多个相同对象的场合,如冶炼炉
分区大小不等:
可以更好的利用内存
分区结构:
分区编号,分区大小,分区起始地址,分区状态
在一些实时系统中,固定分区的分配方式还是简单而有效的。
动态分区分配方式:
用户分区的数量和大小都是动态变化的
分配原理:
系统初始只有一个大的空闲分区,当进程请求内存资源时,系统根据请求资源的大小分配一片空闲区域给进程,当运行一段时间后,空闲分区可能会散布在不连续的区域,这时系统会维护一个记录当前空闲分区情况的数据结构,当进程请求内存时,系统从所有空闲分区中找一个合适大小的空间给进程。
数据结构:
空闲分区表和空闲分区链
空闲分区链可以动态的为每个分区建立一个节点,每个节点包括分区大小、分区起始地址、指向前一个空闲分区节点的指针、指向后一个空闲分区节点的指针。
每个节点占用的内存可以动态分配、动态回收。
动态分区分配算法:
1)首次适应算法FF
要求空闲分区链以地址递增的顺序进行链接,每次从链首开始查找,低地址空间可能会被反复划分缺点:
造成空间浪费,内存碎片
2)循环首次适应算法NF
不再每次从链首开始查找,而是从上一次查找的空闲分区的下一个空闲分区开始查找,每次应设置一个起始查找指针,指示下一次查找的分区
优点:
空闲区分布均匀,查找开销小,缺点:
缺少空闲大的分区
3)最佳适应算法BF
为了方便查找,把所有空闲区按照空闲分区的大小递增的顺序进行排列,总是把大小和进程所请求的内存空间大小最接近的空闲分区分配给进程。
优点:
避免了大材小用,提高了内存的利用率缺点:
容易留下难以利用的小空闲区
●基本分页存储管理方式:
把进程离散的存储在内存中物理地址不连续的区域,这种内存管理方式称为离散内存管理方式。
离散内存管理分配内存空间的管理方式:
分页存储管理,分段存储管理、段页式存储管理
基本概念:
页:
将一个进程的逻辑地址空间分成若干个大小相等的片,称为页。
页框:
将物理内存地址分成与页大小相同的若干个存储块,称为页框或页帧
分页存储:
为进程分配内存时,以页框为单位将进程中的若干页分别装入多个可以不相邻的页框中。
页内碎片:
进程的最后一页一般装不满一个页框,而形成了不可利用的碎片,称为「页内碎片」,是一种内部碎片
页表:
实现页号到页框号的映射,在基本的分页机制中,每个进程有一个页表,进程的每一页在页表中有一个对应的页表项,页表在内存中连续存放。
分页存储管理方式的地址结构:
页号P
页内偏移量W
若用m位表示逻辑地址,页大小为2的n次方字节,则用低n位表示页内偏移量w,用高m-n位表示页号P。
公式:
P=INT(A/L)W=MOD(A/L)A为逻辑地址L是页大小
分页地址变换:
实现逻辑地址到物理地址的转换
公式:
物理地址=页框号x页框大小+页内偏移量
为了减少CPU在有效访问内存时间上的开销,提高访问内存的速度,引入了快表机制。
快表:
也称转换后援缓冲(TLB)是为了提高访存速度而采用的专用缓存,存放最近被访问过的页表项。
●两级页表和多级页表:
页表再分页,就形成了两级或多级页表。
两级页表:
将页表再分页,使得每个页表分页的大小与内存页框的大小相同,并为它们编号。
逻辑地址结构:
页目录号p1
页号p2
页内偏移地址d
页目录号实际是一个索引值,,根据p1从页目录表项中找到页表所在的页框号,页号P2是页表中的偏移量,根据p2可以知道应该从页表中的第p2项找到进程页所在的页框号。
公式:
进程A的物理地址=进程页所在的页框号x页框大小+页内偏移地址d
●基于分页的虚拟存储系统:
虚拟存储技术实现的基本思想是:
只把进程的一部分装入内存,在进程执行的过程中,CPU访问内存时如果发现所访问的内容不在内存中,则通过异常处理将所需要的内容从外存调入内存。
虚拟存储技术的好处:
1)提高内存利用率2)提高多道程序度3)把逻辑地址空间和物理地址空间分开,程序员不用关心物理内存的容量对编程的限制。
虚拟存储技术的特征:
1)离散性2)多次性3)对换性4)虚拟性
页表:
页表是请求分页系统最重要的数据结构,其作用是描述记录页的各种数据结构,包括在实现逻辑地址到物理地址映射时需要的页号和页框号的对应关系。
同时增加了请求换入和页置换时需要的数据。
页框号
状态位P
访问字段A
修改位M
保护位
状态位:
表示页是否在内存中访问字段:
记录页最近是否被访问过
修改位:
表示页最近是否被修改过保护位:
访问权限,1可读可写,0只读
缺页异常机构:
主要作用是在访问内存过程中发现缺页产生缺页异常信号,使CPU中断当前控制流的执行,转去执行缺页异常处理程序,完成请求调页。
●页分配策略:
问题,最少页框数?
如何淘汰页?
分配算法?
最少页框数:
是指能保证进程正常运行所需要的最少页框数。
操作系统为进程分配的页应该大于或者等于最少页框数。
页分配和置换策略:
页分配策略:
固定分配策略和可变分配策略
页置换策略:
局部置换和全局置换。
1)局部置换是指发生置换时,只从请求置换的进程本身的内存页中选择一个淘汰页,腾出内存空间,调入请求页。
2)全局置换是指发生置换时,从所有进程的内存页中选择被淘汰的页。
两种组合:
1)固定分配局部置换2)可变分配局部置换3)可变分配全局置换
分配算法:
1)平均分配算法n进程m页框,则分配INT[m/n]个页框,余数放入缓冲
2)按比例分配算法为进程分配的页框数=进程页数/所有进程页数的总和x页框数
3)考虑优先权的分配算法
●页调入策略:
1)系统可以在进程需要是将页调入内存有利于提高内存的利用率,但是对系统的时间性能不利
2)采用预先调入页的策略将预计不久之后会被访问的也预先调入内存
●页置换算法:
1)最佳置换算法ORA:
该算法选择以后永远不会被访
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 最新 操作系统 概论 重点 整理 张琼声版