操作系统概论重点整理(2017年张琼声版)

更新时间:2024-06-10 10:52:01 阅读量: 综合文库 文档下载

说明:文章内容仅供预览,部分内容可能不全。下载后的文档,内容与下面显示的完全一致。下载之前请确认下面内容是否您想要的,是否完整无缺。

操作系统概论-02323(2017年张琼声版本)

第一章:操作系统简介

操作系统概念:操作系统是一种复杂的系统软件,是不同程序代码、数据结构、初始化文件的集合,可执行。

操作系统是提供计算机用户与计算机硬件之间的接口,并管理计算机软件和硬件资源,并且通过这个接口使应用程序的开发变得简单、高效。

接口是两个不同部分的交接面。接口分为硬件接口和软件接口,计算机的所有功能最终都是由硬件的操作来实现的,计算机屏蔽了对硬件操作的细节。 操作系统完成的两个目标:

1与硬件相互作用,为包含在所有硬件平台上的所有底层可编程部件提供服务。○ 2为运行在计算机系统上的应用程序(即用户程序)提供执行环境 ○

现代计算机特点是支持多任务,,一方面保证用户程序的顺利执行,另一方面使计算机系统资源得到高效的利用,保证计算机系统的高性能 操作系统的功能:处理机管理、内存管理、设备管理、文件管理。 ? 操作系统的发展:

无操作系统--单道批处理系统--多道批处理系统--微机操作系--实时操作系统 无操作系统阶段:电子管,无存储设备,第一台:1946年宾夕法尼亚大学的「埃尼阿克」

单道批处理系统:晶体管,磁性存储设备,内存中有一道批处理作业,计算机资源被用户作业独占。

吞吐量是指单位时间内计算机系统处理的作业量

多道程序系统:集成电路芯片,出现了分时操作系统(多个终端)。

微机操作系统:第一台Intel公司顾问GaryKildall 编写的CP/M系统,是一台磁盘操作系统,用于Intel8080.

实时操作系统:广泛应用于各种工业现场的自动控制、海底探测、智能机器人和航空航天等。

? 批处理、实时、分时系统的优缺点比较:

单道批处理系统:自动性、顺序性、单道性。优点:减少了等待人工操作的时间 缺点:CPU资源不能得到有效的利用。

多道批处理系统:多道性、无序性、调度性、复杂性。优点:能够使CPU和内存IO资源得到充分利用,,提高系统的吞吐量。缺点:系统平均周转时间长,缺

乏交互能力。

分时系统:多路性、及时性、交互性、独立性。优点:提供了人机交互,可以使用户通过不同终端分享主机。缺点:不能及时接收及时处理用户命令。 实时操作系统(用户实时控制和实时信息处理):多路性、独立性、及时性、交互性、可靠性。在实时系统中,往往采取多级容错措施来保证系统安全和数据安全。

操作系统产品:主机操作系统(批处理、事务处理(银行支票处理或航班预订)、分时处理),微机操作系统,服务器操作系统、嵌入式操作系统(物联网操作系统)

操作系统特征:并发(多个事件在同一时间间隔内同时发生)、共享、虚拟、异步

操作系统功能:

内存管理:任务是为多道程序的运行提供良好的运行环境,方便用户使用内存,提高内存利用率,以及从逻辑上扩充内存实现虚拟存储。它具有内存分配、内存保护、地址映射和内存扩充(借助与虚拟存储技术)等功能。 进程管理

文件管理:存储空间的管理-目录管理-文件的读写管理和权限控制 设备管理

提供用户接口:命令接口,图形用户接口,程序接口 操作系统体系结构:

简单的监控程序模型—单体结构模型—层次结构模型—客户服务器模型与微内核结构—动态可扩展结构模型

单体内核是操作系统中最早、最常见的体系结构(UNIX/MS-DOS/Linux/MAC OS X/BSD)

层次结构最经典的例子Dijjkstra的THE系统

指令的执行:程序是指令的集合,程序的执行就是按照某种控制流执行指令的过程。一个单一指令需要的处理称为指令周期,包括取指周期和执行周期

第二章:进程管理

程序的顺序执行特点:顺序性,封闭性、可再现性 程序的并发执行特点:间断性、失去封闭性、不可再现性

进程的概念:

1进程是允许并发的程序在某个数据集合上的运行过程 ○

2进程是正文段、用户数据段和进程控制块共同组成的执行环境。正文段存放被○

执行的机器指令,用户数据段存放进程在执行时要操作的用户数据,进程控制块存放程序的执行环境,操作系统通过这些描述和管理进程。

进程代表了程序的执行过程,是一个动态的实体,它随着指令的执行而不断变化,在某个特定时刻的进程内容被称为进程映像。

进程的特征:并发性、独立性、异步性、动态性、结构特征。 ? 进程和程序的区别:

1程序是静态的,进程是动态的 ○

2程序是永久的,进程是暂时存在的 ○

3程序和进程存在的实体不同。程序是指令的集合,进程是由正文段、用户数据○

段、进程控制块组成 进程和程序的联系:

进程是程序的一次执行,进程总是对应至少一个特定的程序,执行程序的代码,一个程序可以对应多个进程。 进程控制块:

进程实体存在的标志是操作系统管理进程所使用的数据结构—进程控制块 进程控制块是进程实体的一部分,是操作系统中最重要的数据结构,进程控制块中记录了操作系统所需要的,用户描述进程情况以及控制进程运行所需要的全部信息,进程控制块是操作系统感知进程存在的唯一标志。

进程控制块中的信息:进程标识符信息、处理机状态信息、进程调度信息、进程控制信息

进程的状态:就绪态、执行态,阻塞态 转换:

就绪态 执行态 阻塞态 进程的组织:链接方式、索引方式、进程队列 进程的控制:进程的创建----阻塞----唤醒----终止

创建的条件: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)让权等待 ? 信号量机制(wait signal)对不同的共享资源设置称为信号量的变量,用信

号量的取值标识资源的使用状况,或某种事件的发生。 一、 整型信号量机制:

用整型变量值来标记资源的使用情况。若整型量>0,说明有可用资源;若整型量<=0,说明资源忙,进程必须等待。对于一次只允许一个进程访问的临界资源,可定义一个用户互斥的整型信号量,并将其初始化为1,整型信号量的值只能通过两个特定的原子操作wait和signal来改变。 Var s integer; Wait(s){ //申请资源 While s<=0 do no-op; S=s-1; //占用资源

}

signal(s){ //释放资源 s=s+1; }

整型信号量的互斥:初始变量为1 整型信号量的协调:初始变量为0

总结:1)整型信号量的值只能由wait和signal操作改变

2) 3) 4) 5)

wait和signal的操作都是原子操作,即在这两个操作中对信号量的访问是不能被中断的

原子操作可以通过关中断来实现

整型信号量机制的实例:linux中的自旋锁SpinLock

不同的资源对应不同的信号量,并不是系统中所有资源都用同一个信号量标识

二、 记录型信号量机制: 代码:

Type semaphore = record Value : integer; //资源数量 L : list of process; Procedure wait(s)

Var s : semaphore; Begin

s.value = s.value-1; //申请资源

if s.value <0 then block(s.L) //此时资源无,自我阻塞进入阻塞队列 end

procedure signal(s)

var s:semaphore; begin

s.value=s.value +1;

//释放一个资源

if s.value <=0 then wakeup(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) 3) 4)

短进程优先调度算法(SPF)短进程优先算法能有效降低进程的平均等待时间,提高系统的吞吐量

优先调度算法(PSL) 类型:非抢占式优先权调度算法、抢占式优先权调度算法;优先权的类型:静态优先权和动态优先权 时间片轮转调度算法(RR)

时间片大小的确定考虑的因素:

1系统对响应时间的要求,响应时间越短,时间片取值应该越小。 ○

2就绪队列中进程的数目 ○

3系统的处理能力 ○

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) 2) 3)

先进行试分配 request i <= need i request i <= available i available = available –request i allocation = allocation + request i need i = need i – request i 然后安全检测 wrok[] = available finish[] = false

1当need I <= work时,work = work +allocation I finish [] =true ○

2若对于所有的finish[] =true都成里,则说明处于安全状态 ○

满足上述条件进行试分配

第四章:内存管理

内存管理的目标:1)实现内存分配、内存回收等操作 2)提高内存利用率和内存的访问速度(即充分利用现有的内存资源,为应用程序提供方便的内存使用方式和一个快速、安全且充分大的存储器) 程序的链接和装入:

链接要解决的问题是将编译后的目标模块装配成一个可执行程序,分为静态链接和动态链接。

1) 静态链接:在程序运行前,用链接程序将目标模块链接成一个完整的装入模块,任务:一时对逻辑地址进行修改,二是变换外部调用符号 优点:运行速度较快 缺点:可执行文件较大,占用空间大,系统开销大,程序开发不够灵活,修改一个模块会导致整个程序重新链接

2) 动态链接:可将某些目标模块的链接推迟到这些模块中的函数要被调用时再进行。优点:节省内存和外存空间,方便程序开发。缺点:增加了运行的时间开销,使程序运行时的速度变慢。

程序装入:

装入方式:绝对装入方式、可重定位装入(静态装入方式)和动态运行时装入方式

绝对装入方式:编译程序已知程序在内存中的位置,编译时产生物理地址的目标代码,装入程序按照装入模块的物理地址将程序和数据装入内存

可重定位装入方式:编译时不知道程序在内存中的位置,那么编译时就必须生成可重定位的代码,其中的地址都是逻辑地址,在程序装入内存时,再把逻辑地址映射为物理地址。程序装入时对目标程序中的指令和数据地址修改的过程称为重定位。

静态装入方式的特点:1)编译程序使目标模块的地址从0开始 2)程序装入时,装入程序根据内存的使用情况将装入模块装入到内存的某个位置,并对模块进行重定位。物理地址=有效逻辑地址+程序在内存中的起始地址

动态运行时装入:当一个进程在被换出之前的内存地址与后来被从外存调入时所在的内存位置不同,这时,地址映射延迟到进程执行时再进行 ? 连续分配的存储管理方式:

类型:1)单一连续区分配方式2)固定分区分配方式 3)动态分区分配方式 单一连续区分配方式:适用于单用户单任务系统,内存分为系统区和用户区 固定分区分配方式:将用户内存空间分配成若干固定大小的区域,每一个区域运行一道用户程序;分区的数量是固定的,大小也是固定的

每个分区大小相等的分配方式缺点是内存利用率比较低,主要用于一个计算机去控制多个相同对象的场合,如冶炼炉 分区大小不等:可以更好的利用内存

分区结构:分区编号,分区大小,分区起始地址,分区状态 在一些实时系统中,固定分区的分配方式还是简单而有效的。 动态分区分配方式:用户分区的数量和大小都是动态变化的

本文来源:https://www.bwwdw.com/article/qwb6.html

Top