操作系统复习计算机学院Word文档格式.docx
《操作系统复习计算机学院Word文档格式.docx》由会员分享,可在线阅读,更多相关《操作系统复习计算机学院Word文档格式.docx(38页珍藏版)》请在冰点文库上搜索。
执行操作系统程序,允许执行处理机的全部指令集,访问所有的寄存器和存储区。
完成系统调用时切换到用户态,由操作系统实现
11什么是系统调用?
什么是特权指令?
特权指令执行时,CPU处于哪种工作状态?
系统调用:
提供用户程序和操作系统内核的接口
特权指令:
关系操作系统全局的指令
特权指令执行时处于核心态
12操作系统通常向用户提供哪几种类型的接口?
其主要作用是什么?
操作接口:
命令语言或者界面窗口,组织或控制作业执行
编程接口:
用户程序和操作系统内核的接口,向操作系统提出资源请求或者获得系统服务
第2-3章进程管理
1程序顺序执行的特点
封闭性:
程序运行时独占系统资源
可再现性:
初始条件相同,结果不变
2何谓进程,进程由哪些部分组成?
试述进程的四大特性(动态性、独立性、并发性、结构性)及进程和程序的区别。
进程:
描述操作系统中各个并发活动。
进程由程序、数据、进程控制块组成
动态性:
进程是程序一次执行的过程,是临时的,有生命期的
独立性:
是系统进行资源分配和调度的独立单位
并发性:
多个进程可在处理机上并发执行
结构性:
系统为每个进程建立一个进程控制块
区别:
进程动态,程序静态。
程序是有序代码的集合,进程是程序的执行,没有程序就没有进程。
通常,进程不可以在计算机之间迁移,而程序可以复制。
进程是暂时的,程序时永久的。
进程包括程序、数据、进程控制块
进程可以创建其他进程,程序不能创建其他程序
3进程控制块的作用是什么?
它主要包括哪几部分内容?
管理和调度系统中进程。
包含:
进程标识数||进程状态、调度、存储器管理信息||进程使用的资源情况||CPU现场保护||记账信息||进程间家族关系||进程链接指针
4进程的基本状态,试举出使进程状态发生变化的事件并描绘它的状态转换图。
5什么是原语?
什么是进程控制?
原语:
若干多机器指令构成的完成某种特定功能的一段程序,具有不可分割性,即原语的执行必须是连续的在执行过程中不允许被中断。
进程控制:
系统使用一些具有特定功能的程序段来创建、撤消进程,以及完成进程各状态之间的转换。
6进程调度的功能、方式、时机、算法。
作业调度,交换调度。
作业的周转时间和作业的带权周转时间?
进程调度的功能:
记录系统中各进程的执行情况
选择进程真正占有CPU
进行进程上下文切换
进程调度的方式:
非剥夺方式
剥夺方式
进程调度的时机:
P34
进程调度算法:
作业调度:
高级调度,用于多道批处理系统
进程调度:
低级调度
交换调度:
中级调度。
将主存就绪或者阻塞等暂不具备运行条件的进程换到外存交换区
7线程的定义,线程与进程的比较。
系统对线程的支持(用户级线程、核心级线程、两级组合)。
线程:
进程中的一个可执行实体,被操作系统调度的独立单位
进程与线程的比较:
(1)拥有的资源:
进程拥有一个独立的地址空间,用来存放若干代码段和数据段。
若干打开文件,以及至少一个线程。
一个进程内的多线程共享该进程的所有资源,线程自己拥有很少资源。
(2)调度:
进程调度需要切换进程上下文。
线程仅把拥有的一小部分资源变换了即可,效率高。
同一进程内的线程切换比进程切换快得多。
(3)并发性:
进程之间、进程内的多线程可以并发执行
(4)安全性:
多进程不会改变其他进程数据,而线程可能会改变同一进程的其他线程的数据。
用户级线程:
核心级线程:
两级组合:
8并发执行的进程在系统中通常表现为几种关系?
各是在什么情况下发生的?
(1)对资源共享引起的互斥关系。
相互竞争系统资源。
(2)协同完成同一任务而引起的同步关系。
相互协作共同完成任务。
(3)进程之间的前序关系。
进程之间存在着直接和间接的关系。
9什么叫临界资源?
什么叫临界区?
对临界区的使用应符合的四个准则(互斥使用、让权等待、有空让进、有限等待)。
临界资源:
系统中一次仅允许一个进程使用的共享资源。
临界区:
并发进程访问临界资源的那段必须互斥执行的程序段。
互斥使用:
不能同时有两个进程在临界区内执行。
让权等待:
等待进入临界区的进程,应释放处理机后阻塞等待
有空让行:
在临界区外运行的进程不可阻止其他进程进入临界区
有限等待:
不应使要进入临界区的进程无限期等待在临界区之外
10解决进程之间互斥的办法:
开、关中断,加锁、开锁(又叫测试与设置,通常由一条机器指令完成),软件方法,信号量与P、V操作。
硬件实现:
1.关中断,限制了处理机交叉执行的能力,多处理机系统中失效
2.加锁和开锁,忙等待(parbegin和parend)
11若信号量S表示某一类资源,则对S执行P、V操作的直观含意是什么?
当进程对信号
量S执行P、V操作时,S的值发生变化,当S>
0、S=0、和S<
0时,其物理意义是什么?
直观含义:
P(s):
s.value--V(s):
s.value++
S>
0:
在封锁进程之前对信号量s可施行的P操作数,亦即等于s所代表的实际使用的物理资源个数。
S<
0:
绝对值等于登记排列在该信号量s队列之中等待进程的个数,亦即恰好等于对信号量s实施P操作而被封锁起来并进入信号量s队列的进程数。
S=0:
不能进行P操作
12在用P/V操作实现进程通信时,应根据什么原则对信号量赋初值?
进程互斥时应该为1,代表一个时刻只能有一个进程访问
进程同步时,同步信号量要根据具体的资源个数来决定
13经典的IPC问题。
生产者和消费者问题:
读者写者问题:
理发师问题:
哲学家进餐问题:
14进程高级通信有哪些实现机制?
消息缓存、信箱、管道、共享主存区
15死锁产生的必要条件及解决死锁的方法
(1)互斥条件
(2)保持和等待条件
(3)不剥夺条件
(4)循环等待条件
解决死锁的办法:
(1)鸵鸟算法
(2)死锁的预防,破坏四个必要条件
(3)死锁的避免,银行家算法,进程-资源轨迹图
(4)死锁的恢复和检查
16理解银行家算法的实质。
能够利用银行家算法避免死锁。
根据系统剩余的资源情况进行检查,看满足请求者的要求后,是否仍使系统中的所有进程都能正常完成(即能找到一个进程完成序列)。
若能,系统是安全的。
否则,系统是不安全的。
第4章存储器管理
1存储器管理的功能。
名字空间、地址空间、存储空间、逻辑地址、物理地址。
存储器功能:
存储器分配
地址转换和重定位
存储器保护
存储器扩充
存储器共享
名字空间:
源程序中的各种符号名的集合所限定的空间。
源程序中的数据和子
程序通常是用符号名进行访问的。
地址空间:
经编译连接后的目标代码所限定的空间。
用地址码替换符号地址。
编译时,程序中各个地址总是以“0”作为起始地址顺序编码。
存储空间:
物理存储器中全部物理存储单元所限定的集合
逻辑地址:
地址空间中的地址叫逻辑地址。
物理地址:
物理地址中的地址叫物理空间。
2什么是地址重定位?
分为哪两种?
各是依据什么和什么时候实现的?
试比较它们的优缺点。
地址重定位(地址映射或地址变换):
将逻辑地址转化为物理地址。
静态重定位:
在进程执行前,由装入程序把用户程序中的指令和数据的逻辑地址全部转换成存储空间的物理地址。
1)无硬件变换机构
2)为每个程序分配一个连续的存储区
3)在程序执行期间不能移动,主存利用率低
4)难以做到程序和数据的共享
5)用于单道批处理系统
动态重定位:
装入程序把程序和数据原样装入到已分配的存储区中,然后把该存储区的起始地
址送入重定位寄存器。
需硬件地址转换机构。
优点:
1)主存利用充分。
可移动用户程序,移动后只需修改重定位寄存器。
2)程序不必占有连续的存储空间。
设置多个重定位寄存器。
3)便于多用户共享存储器中的同一程序和数据。
3内存划分为两大部分:
用户空间和操作系统空间。
存储器管理是针对用户空间进行管理的。
4存储保护的目的是什么?
对各种存储管理方案实现存储保护时,硬件和软件各需做什么工作?
防止地址越界:
进程运行时产生的所有存储器访问地址都要进行检查,确保只访问为该进
程分配的存储区域。
正确地进行存取:
对所访问的存储空间的操作方式:
读、写、执行,进行检查,以防止由
于误操作,使其数据的完整性受到破坏。
5试述可变式分区管理空闲区的方法及存储区的保护方式。
覆盖与交换有什么特点?
可变式分区:
当进程要求运行时,系统从空闲的存储空间划分出大小正好等于进程大小的一个存储区分配给进程。
存储空间的划分推迟到装入进程时进行。
管理分区的数据结构:
分区说明表(已分配区表,未分配区表)、空闲区链表。
分区分配的算法:
首次适应法(firstfit)
最佳适应法(bestfit)
最坏适应法(worstfit)
可变式分区采用动态重定位,系统设置基址寄存器和限长寄存器进行存储器保护,由MMU负责完成
覆盖与交换技术是解决大进程和小主存矛盾的两种存储器管理技术
覆盖:
让那些不会同时执行的程序段共用同一个主存区。
打破了必须将一个进程的全部信息装入主存后才能运行的限制,在同一进程内进行。
交换(Swapping):
系统根据需要把主存中暂时不运行的进程中的部分或全部信息移到外存,而把外存中的进程移到主存,并使其投入运行。
打破了一个程序一旦进入主存就一直运行到结束的限制,在进程之间进行。
6页表的作用是什么?
简述页式管理的地址变换过程。
能利用页表实现逻辑地址转换成物理地址。
管理内存的数据结构有哪些?
页表:
页式管理中,系统为每个进程建立一张页面映像表,记录逻辑页与主存块的映射关系。
页表存放在主存,页表的始址和页表长度记录在进程控制块中。
用于动态地址转换。
管理内存的数据结构:
(1)存储分块表
(2)位示图
页式地址转换:
7什么是页式存储器的内零头?
它与页的大小有什么关系?
可变式分区管理产生什么样的零头(碎片)?
内零头:
分配给进程而没有被进程使用的页。
若干页的大小
可变式分区管理产生外零头,存在于个分区之间没有被利用的空闲区。
8段式存储器管理与页式管理的主要区别是什么?
(1)段是信息的逻辑单位,由用户划分,对用户是可见的。
页式是信息的物理单位,由硬件划分,对用户是透明的。
(2)段式大小不固定,页式大小固定。
(3)段用二维空间,页用一维空间。
(4)段允许动态扩充,便于存储保护和信息共享。
页是大小是不变的,保护和共享受到限制。
(5)段可能产生碎片,而页有效地消除了碎片。
(6)段式管理便于实现动态链接,页式管理只能使用静态链接。
9什么是虚拟存储器。
虚拟存储器的容量能大于主存容量加辅存容量之和吗?
虚拟存储器:
为了满足存储量巨大的需求而为用户构造的一个非常大的地址空间。
允许进程的执行实体不必完全在内存中。
程序可以比物理内存大。
不能。
10实现请求页式管理,需要对页表进行修改,一般要增加状态位、修改位、访问位。
试说明它们的作用。
状态位(有效位):
页是否在主存
修改位:
页是否被修改过“1”表示修改过,“0”表示未修改过。
访问位(引用位):
指示该页最近是否被访问过。
11产生缺页中断时,系统应做哪些工作?
12会利用FIFO、LRU、OPT以及时钟页面置换算法描述页面置换过程,计算产生的缺页率。
Belady异常。
1)最佳置换算法(OPT算法)
2)先进先出置换算法(FIFO)
3)最近最少使用的页面置换算法(LRU)
4)时钟页面置换算法
Belady异常:
为进程分配更多的主存块时,有时产生更多的缺页中断。
13什么是程序的局部性原理?
什么叫系统抖动?
工作集模型如何防止系统抖动?
局部性原理:
指在一定的时间内,进程集中在一组子程序或者循环中执行,导致所有的存
储器访问局限于进程地址空间的一个固定子集。
系统抖动:
从主存中刚刚换出某一页面后,根据请求马上又换入该页,这种反复换出换入的现象,称为系统颠簸,也叫系统抖动。
工作集模型:
经常被使用的页面需要在工作集中,而长期不被使用的页面要从工作集中被丢弃。
为了防止系统出现抖动现象,需要选择合适的工作集大小。
14多级页表的概念,多级页表中页表建立的时机。
写时复制技术的概念。
多级页表:
页表不必再占用连续的主存空间,页表在使用时才被装入。
页表的建立不再是在进程装入主存时,而是推迟到要访问页时,才为包含该页的页表分配空间和建立页表页。
写时复制技术:
若没有进程向共享主存页写时,两个进程就共享之。
若有进程要写某页,系统就把此页复制到主存的另一个页框中,并更新该进程的页表,使之指向此复制的页框,且设置该页为可读/写。
第5章文件系统
1什么是文件和文件系统?
文件系统的主要功能。
UNIX系统如何对文件进行分类?
文件:
存储在外部存储器上的具有符号名的相关信息集合。
文件由文件控制块(放在文件目录的结构中)
文件系统:
OS中管理文件的软件机构。
包括管理文件所需的数据结构、相应的管理软件和被管理的文件。
文件系统的功能:
UNIX系统中的文件分类:
2文件目录的作用是什么?
文件目录项通常包含哪些内容?
文件控制块。
文件目录的作用:
实现用户按文件名存取文件存储器上的信息,实现这个功能的结构是文
件目录
文件目录项通常包括:
文件名、文件存放的物理地址、文件控制块。
文件控制块:
包含了文件的说明信息和管理控制信息,操作系统通过文件控制块管理文件。
文件控制块保存在文件目录中
3文件的逻辑结构有几种形式?
文件的存取方法?
文件的逻辑结构:
(1)有结构的字节流式文件
(2)无结构的记录式文件
文件从存取方式:
顺序存取
直接存取(随机存取)
4文件的物理结构有哪几种?
对于不同的结构,文件系统是如何进行管理的?
(1)连续文件:
文件内容连续存放
(2)链接(串联文件):
把文件所占用的物理块用链接指针链接起来,不必占用连续的空间
(3)索引文件:
为每个文件建立一个索引表
(4)索引顺序文件:
将顺序文件中的所以记录分成若干组,只为每个组的第一个记录建立一个索引项(windows的NTFS系统)
5DOS文件卷的结构,DOS系统的文件物理结构是什么?
MS-DOS就是使用文件分配-FAT来分配和管理磁盘空间的。
DOS系统的文件采用链接结构(索引顺序文件)
6了解记录的组块和分解。
7文件存储空间的管理方法有几种?
它们各是如何实现文件存储空间的分配和回收的?
(1)空白文件目录:
系统为所有这些空白文件建立一张表,每个空白文件占用一个表目。
(2)空闲区块链表:
把所有空闲块连接成一个链表。
(3)位示图:
每一个二进制位对应一个物理盘块。
为1时表示块已分配,为0时空闲。
8建立多级目录有哪些好处?
文件的重名和共享问题是如何得到解决的?
多级目录结构的优点是便于文件分类,可为每类文件建立一个子目录;
查找速度快,因为每个目录下的文件数目较少;
可以实现文件共享。
9文件系统中,常用的文件操作命令有哪些?
它们的具体功能是什么?
打开和关闭文件命令的目的是什么?
P118
打开文件目的:
为了避免多次重复地检索文件目录,OFT(活动文件表)存放所有打开文件的文件目录项
关闭文件的目的:
释放文件使用时的所有主存资源,若是基于缓冲的文件读写,将未写入磁盘的缓冲区写入磁盘。
10存取控制表ACL的概念。
为存取控制矩阵中的每一列建立一张存取控制表(ACL),用一有序对(域,权集)表示。
11理解内存映射文件(memorymappedfile)的过程。
将文件映射到进程地址空间的一个区域,返回包含文件复制的字节数组的虚拟地址,仅当需要对文件存取时,才传输实际的数据。
第6章设备管理
1I/O设备通常大致可分为哪两大类?
各自传输的信息单位有什么特点?
(1)字符设备:
以字符为单位发送和接受数据的。
(2)块设备:
以块为单位进行数据传输。
还有网络通信设备等
2常用的四种数据传输方式。
(1)程序查询方式
(2)中断方式
(3)DMA方式传输
(4)通道控制方式
3根据设备的使用方式,设备被分为几种类型?
何为虚拟设备?
它是通过什么技术实现的?
独占设备:
临界资源,如打印机。
共享设备:
多个进程可交叉访问。
如磁盘。
虚拟设备:
是指设备本身是独占设备,而经过虚拟技术处理,可以把它改造成共享设备。
Spooling技术是实现虚拟设备的一种技术。
它利用可共享磁盘的一部分空间,来模拟独占的I/O设备。
以空间换时间
4按照设备管理的层次结构,I/O软件划分为几层?
各层主要实现哪些功能?
(1)硬件
(2)中断处理程序
(3)设备驱动程序:
设备初始化,启动设备例程,中断处理例程
(4)独立于设备的软件:
实现所有设备都需要的功能、设备命名、设备保护、提供与设备无关的块尺寸、缓冲技术、负责设备的分配和调度、出错处理
(5)用户空间的I/O接口
5何为设备的独立性?
设备独立性是指用户及用户程序不受系统配置的设备类型和具体设备的台号的影响。
用户只是使用逻辑设备,具体的映射由操作系统完成。
6什么是SPOOLING技术?
以输出为例,说明它的实现原理。
(SPOOLING技术是以空间换时间)
Spooling实际是一种缓冲技术。
比如进程要打印时,系统并不为它分配打印机,而是把待打印的数据缓冲到一个独立的磁盘文件上,形成待打印文件队列。
之后,Spooling系统一次一个地将打印队列上的文件送打印机打印。
这种技术又叫缓输出技术。
7一个特定磁盘上的信息如何进行编址?
盘面号、磁道号和扇区号(或柱面号、磁头号和扇区号)。
8要将磁盘上一个块的信息传输到主存需要系统花费哪些时间?
寻道时间、旋转延迟时间和读/写传输时间
9常用的磁盘调度算法:
先来先服务、最短寻道时间优先、扫描法(SCAN,C_SCAN,LOOK,C_LOOK)。
第7章Linux进程管理
1进程控制块,其中与进程管理、存储器管理和文件管理有关的一些字段,线程组标识符。
(1)pid_tpid进程标识符(PID):
每个进程有唯一的pid号,内核通过pidmap_array位图来管理已分配和空闲的pid。
(2)pid_ttgid线程组标识符:
同一线程组中的所有轻量级进程的tgid的值相同。
(3)当前进程的基本信息(thread_info):
其中thread_info中有task指向其属于的进程描述符,和核心栈占用两个连续的页框(8k)
由于esp寄存器存放的是核心栈的栈顶指针,内核很容易从esp寄存器的值获得正在CPU上运行的进程的thread_info结构的地址。
进而获得进程描述符的地址。
进程刚从用户态切换到核心态时,其核心栈为空,只要将栈顶指针减去8k,就能得到thread_info结构的地址。
(4)structpidpids[]:
用于在pid哈希表中构造进程链表。
作用:
根据进程标识符PID在进程链表中检索进程是可行的,但效率相当低。
为了加速对进程的检索,内核定义4类哈希表。
(5)mm_struct*mm:
指向进程所拥有的虚拟内存描述符
(6)mm_struct*active_mm:
指向进程运行时所使用的虚拟内存描述符
(7)fs_struct*fs:
指向文件系统信息
(8)files_struct*files:
指向该进程的文件打开信息
(9)dentry*proc_dentry指向目录项结构的指针
2与进程创建有关的函数:
fork()、vfork()、clone()。
创建子进程函数fork():
创建成功之后,子进程采用写时复制技术读共享父进程的全部地址空间,仅当父或子要写一个页时,才为其复制一个私有的页的副本。
vfork()系统调用:
创建的子进程能共享父进程的地址空间,为了防止父进程重写子进程需要的数据,先阻塞父进程的执行,直到子进程退出或执行了一个新的程序为止。
创建轻量级进程函数clone():
实现对多线程应用程序的支持。
共享进程在内核的很多数据结构,如页表、打开文件表等等。
3理解进程切换的过程。
涉及到页目录表、核心栈、硬件上下文。
进程切换:
内核有能力暂停正在CPU上运行的进程,回复已就绪的某个进程的运行。
进程切换只发生在核心态。
在发生进程切换之前,用户态进程使用的所有寄存器值都已被保存在进程的核心栈中。
进程切换的两步:
第一步,切换页目录表以安装一个新的地址空间;
第二步,切换核心栈和硬件上下文。
由schedule()函数完成进程切换。
硬件上下文:
存放在进程描述符的thread_structthread中。
该结构包含的字段涉及到大部分CPU寄存器,但象eax、ebx等通用寄存器的值仍被保留在核心栈中。
4进程调度方式。
进程调度时机。
进程调度方式:
可抢先式的动态优先级调度方式。
调度算法:
基于进程过去行为的启发式算法。
(1)普通进程的调度:
新进程总是继承父进程的静态优先级。
静态优先数决定了进程的基本时间片值。
静态优先级越低,基本时间片越长。
调度程序会动态调整进程优先级,适当提升在较长时间间隔内没有获得CPU的进程优先级,适当降低已在CPU上运行了较长时间的进程的优先级,以防止出现进程饥饿现象。
(2)实时进程的调度:
先进先出的实时进程调度:
时间片轮转的实时进程调度