厦门大学实用操作系统重点.doc
《厦门大学实用操作系统重点.doc》由会员分享,可在线阅读,更多相关《厦门大学实用操作系统重点.doc(13页珍藏版)》请在冰豆网上搜索。
第一章:
1.寄存器类型及其作用
处理器寄存器
用户可见寄存器(数据寄存器(被程序员分配给各种函数)、地址寄存器(存放数据和指令的地址)、索引寄存器(基于一个基数+索引值寻找地址)、段指针(内存分段的地址)、栈指针(不用直接访问内部数据)):
优先使用,减少对主存的访问。
控制和状态寄存器
(程序计数器(包含取指令的地址)、指令寄存器(包含取指令的内容)、程序状态字(包含状态信息,如条形码)、中断寄存器(指向中断指令,包含程序、时钟、I/O、硬件失效中断)):
控制处理器的操作。
2.处理器金字塔结构模型
3.命中率,平均存储时间计算
4.缓冲的作用,及其解决的问题
占据主存的一部分空间,主存将处理器所需的信息搬运到缓冲中,缓冲对操作系统可见,并由操作系统首先访问。
加快内存的访问速度,解决处理器的速度远大于内存访问速度的问题。
缓冲在与处理器之间进行字传输,与内存进行块传输。
5.DMA执行过程
处理器要读或写一块数据时,会给DMA模块发送一条命令,然后处理器继续它的工作,接来下由DMA模块替代处理器完成数据的传输任务,任务完成后发给处理器一个中断指令,然后由处理器接管。
第二章:
1.操作系统的构成及其特点
并发性:
指两个或两个以上的事件或活动在同一时间间隔内发生。
发挥并发性能够消除系统中部件和部件之间的相互等待,有效地改善系统资源
的利用率,改进系统的吞吐率,提高系统效率。
并行性:
指两个或两个以上的事件或活动在同一时刻发生,是并发的特例。
共享性:
指操作系统中的资源可被多个并发执行的进程所使用。
分成两种资源共享方式:
互斥访问和同时访问。
异步性:
给系统带来潜在危险,有可能导致与时间有关的错误。
操作系统的一个重要任务是必须确保捕捉任何一种随机事件,正确处理可能发
生的随机事件,正确处理任何一种产生的事件序列,否则将会导致严重后果。
虚拟性:
指操作系统中的一种管理技术,它是把物理上的一个实体变成逻辑上的多个对
应物,或把物理上的多个实体变成逻辑上的一个对应物的技术。
在操作系统中,并发性、共享性和异步性的主体是进程(或者说程序)。
部件之间的并行性是围绕进程并发性展开的,是进程并发性的一部分。
2.操作系统的发展历史,开始->现在,出现了几种操作系统,及其相应的特点与其能够解决的问题,衔接的关键点
三种基本类型:
批处理、分时操作、实时操作系统。
其他类型:
微机、并行、网络、分布式、嵌入式操作系统。
批处理操作系统:
批量化处理作业方式的操作系统。
优缺点:
用户提交作业后直至获得结果之前不再和计算机及他的作业交互,不
利于调试和修改程序。
分时操作系统:
允许多个联机用户同时使用一台计算机系统进行计算的操作系统。
实时操作系统:
指当外界事件或数据产生时,能接收并以足够快的速度予以处理,处理
的结果又能在规定时间内来控制监控的生产过程或对处理系统作出快速响应,并控制所有实时任务协调一致运行的操作系统。
根据批处理操作系统、分时操作系统、实时操作系统、微机操作系统、网络操作系统、
分布式操作系统、嵌入式操作系统的主要差异分析操作系统的发展创新方向或途径
上述操作系统具有管理系统资源的核心功能和相似的资源管理技术,批处理操作系统和
分时操作系统的主要差异在于使用方式或作业控制方式不同,这种不同属于调度策略范畴,
不属于内核范畴,两种操作系统完全可以具有相同的内核。
实时操作系统的实时性属于系统性能范畴,系统性能的约束对操作系统内核的结构及算
法的影响是深刻的。
实时操作系统内核与其它操作系统的内核往往不具有可替换性。
微机操作系统、网络操作系统、分布式操作系统与嵌入式操作系统的差异则与硬件体系
结构的差异密切相关。
这类操作系统往往可以通过改造、扩充或裁剪某一通用操作系统生成。
由上分析,操作系统的发展创新围绕内核和外围特性等方面展开,具体途径有使用方式
的改变、性能要求、硬件体系结构的适应性要求等。
第三章:
1.进程的概念,它出现的目的是什么
概念:
进程是一个可并发执行的具有独立功能的程序关于某个数据集合的一次执行过
程,也是操作系统进行资源分配和保护的基本单位。
出现目的:
2.单道程序的顺序执行发展到多道程序的并发执行之后出现了哪些问题,操作系统是如何解决这些问题的
3.进程的状态模型,各个状态的定义,及它们进行相互转化的过程和条件
三态:
运行态(running):
进程占有处理器正在运行。
就绪态(ready):
进程具备运行条件,等待系统
分配处理器以便运行。
阻塞态(wait):
又称为阻塞态或睡眠态,不具
备运行条件,正在等待某个事完成。
挂起态:
进程在操作系统中可以定义为暂时被淘汰出内存的进程,机器的资源是有限的,在资源不足的情况下,操作系统对在内存中的程序进行合理的安排,其中有的进程被暂时调离出内存,当条件允许的时候,会被操作系统再次调回内存,重新进入等待被执行的状态即就绪态,系统在超过一定的时间没有任何动作.
转换:
运行态→等待态:
等待使用资源或某事件发生;
等待态→就绪态:
资源得到满足或事件发生;
运行态→就绪态:
运行时间片到;出现有更高优先权进程;
就绪态→运行态:
CPU空闲时选择一个就绪进程。
4.进程管理的数据结构(主要为“队列”)
进程的结构包括:
进程控制块;进程程序块;进程核心栈;进程数据块。
其中内容随着进程的执行不断发生变化,某时刻进程的内容及状态集合称为进程映像。
5.进程的描述与控制,PCB的组成
第四章:
1.线程的概念,及其与进程概念的区别
线程是操作系统进程中能够独立执行的实体(控制流),是处理器调度和分派的基本单
位。
线程是进程的组成部分,每个进程内允许包含多个并发执行的实体(控制流),这就是
多线程。
同一进程中的所有线程共享进程获得的主存空间和资源,但不拥有资源。
2.对称多处理、微内核的概念
对称多处理:
(SymmetricalMulti-Processing)又叫SMP,是指在一个计算机上汇集了一组处理器(多CPU),各CPU之间共享内存子系统以及总线结构。
它是相对非对称多处理技术而言的、应用十分广泛的并行技术。
微内核:
(Microkernel)是提供操作系统核心功能的内核的精简版本,它设计成在很小的内存空间内增加移植性,提供模块化设计,以使用户安装不同的接口,如UNIX、DOS、Windows、WorkplaceOS、WorkplaceUNIX等。
微核的目标是将系统服务的实现和系统的基本操作规则分离开来。
例如,进程的输入/输出锁定服务可以由运行在微核之外的一个服务组件来提供。
这些非常模块化的用户态服务器用于完成操作系统中比较高级的操作,这样的设计使内核中最内核的部分的设计更简单。
一个服务组件的失效并不会导致整个系统的崩溃,内核需要做的,仅仅是重新启动这个组件,而不必影响其它的部分
第五章:
1.并发、并行、互斥、同步、临界区、信号量(二元、普通)、管程、消息传递等的概念
并发:
在操作系统中,是指一个时间段中有几个程序都处于已启动运行到运行完毕之间,且这几个程序都是在同一个处理机上运行,但任一个时刻点上只有一个程序在处理机上运行。
并行:
进程互斥:
是指若干进程要使用同一共享资源时,任何时刻最多允许一个进程使用,其
他要使用该资源的进程必须等待,直到占有资源的进程释放该资源。
它是解
决进程间竞争关系(间接制约关系)的手段。
临界区管理可以解决进程互斥问题。
进程同步:
是指两个以上进程基于某个条件来协调它们的活动。
一个进程的执行依赖于
协作进程的消息或信号,当一个进程没有得到来自于协作进程的消息或信号
时需等待,直到消息或信号到达才被唤醒。
进程的同步是解决进程间协作关
系(直接制约关系)的手段。
临界区:
并发进程中与共享变量有关的程序段叫“临界区”;共享变量代表的资源叫“临界资源”。
信号量:
操作系统中,信号量是用来表示物理资源的实体,信号量是一种软资源。
它是一个
与队列有关的整型变量。
实现时,信号量是一种记录型数据结构,有两个分量:
一
个是信号量的值,另一个是信号量队列的队列指针。
P、V操作:
除赋初值外,信号量仅能由同步原语P、V操作对其进行操作,没有任何其他
方法可以检查和操作信号量。
P操作表示申请某种资源,V操作表示释放某种资源。
管程:
是由局部于自己的若干公共变量及其说明和所有访问这些公共变量的过程所
组成的软件模块。
管程的三个组成部分:
1)局部于管程的共享变量;
2)对数据结构进行操作的一组过程;
3)对局部于管程的数据进行初始化的语句。
2.解决同步和互斥的方法(1.硬件的支持2.信号量方法,通过信号量的值的变化来处理这个问题,比如卡车过隧道(10分以上的比例))
主要指掌握PPT上面的习题~
3.管程已经解决了互斥的问题,只需要考虑同步的问题
4.信号量的用法,设立信号量,然后通过P、V操作.
typedefstructsemaphore{
intvalue;//信号量值
structpcb*list;//信号量队列指针
};
voidP(semaphore&s){
s.value--;
if(s.value<0)
W(s.list);//将P操作调用者进程置为阻塞状态并移入s信号量队列,转进程调度
}
voidV(semaphore&s){
s.value++;
if(s.value<=0)
R(s.list);//从信号量s队列中释放一个等待信号量s的进程并转换成就绪态,自己则继
续执行
}
5.读者,写者;消费者,生产者问题
读者、写者问题:
消费者、生产者问题:
也称有限缓冲问题(英语:
Bounded-bufferproblem),是一个多线程同步问题的经典案例。
该问题描述了两个共享固定大小缓冲区的线程——即所谓的“生产者”和“消费者”——在实际运行时会发生的问题。
生产者的主要作用是生成一定量的数据放到缓冲区中,然后重复此过程。
与此同时,消费者也在缓冲区消耗这些数据。
该问题的关键就是要保证生产者不会在缓冲区满时加入数据,消费者也不会在缓冲区中空时消耗数据。
要解决该问题,就必须让生产者在缓冲区满时休眠(要么干脆就放弃数据),等到下次消费者消耗缓冲区中的数据的时候,生产者才能被唤醒,开始往缓冲区添加数据。
同样,也可以让消费者在缓冲区空时进入休眠,等到生产者往缓冲区添加数据之后,再唤醒消费者。
通常采用进程间通信的方法解决该问题,常用的方法有信号灯法等。
如果解决方法不够完善,则容易出现死锁的情况。
出现死锁时,两个线程都会陷入休眠,等待对方唤醒自己。
该问题也能被推广到多个生产者和消费者的情形。
第六章:
1.死锁,饥饿的概念,及其产生的条件和解决方法
死锁:
如果在一个进程集合中的每个进程都在等待只能由该集合中的其他进程才能引发
的事件,而无限期陷入僵持的局面称为死锁。
产生死锁的四个必要条件:
1、互斥条件
2、占有和等待条件(部分分配条件)
3、不剥夺条件
4、循环等待条件(环路条件)
预防死锁:
是通过对资源分配策略加以限制,使得按这样一种策略分配资源,某个必要
条件不成立,以达到死锁的预防目的。
缺点:
资源使用效率不高
避免死锁:
是对资源分配策略不限制,在执行中万一有可能导致死锁时,就小心地避免
这种情况的最终发生。
饥饿:
与死锁和活锁非常相似。
是指一个可运行的进程尽管能继续执行,但被调度器无限期地忽视,而不能被调度执行的情况。
[1]饥饿可以通过先来先服务资源分配策略来避免。
2.如何判断死锁(资源分配有向图,看有没有环