Linux《操作系统》.docx
- 文档编号:7320222
- 上传时间:2023-05-11
- 格式:DOCX
- 页数:19
- 大小:449.84KB
Linux《操作系统》.docx
《Linux《操作系统》.docx》由会员分享,可在线阅读,更多相关《Linux《操作系统》.docx(19页珍藏版)》请在冰点文库上搜索。
Linux《操作系统》
一、填空题:
(每空0.3分共50分)
1、任何一个计算机系统都是由两部分组成:
计算机硬件、计算机软件。
计算机硬件通常是由中央处理机(运算器和控制器)、存储器、输入设备和输出设备等部件组成,它构成了系统本身和用户作业赖以活动的物质基础和工作系统。
计算机软件包括系统软件和应用软件。
系统软件如操作系统、连接装配程序、系统实用程序、多种工具软件等;应用软件为多种应用目的而编制的程序。
2、操作系统非形式定义:
操作系统是控制和管理计算机系统内各种软、硬件资源,有效地组织多道程序运行的系统软件,是用户与计算机之间的接口。
3、在OS中引入多道程序设计技术可带来以下好处:
(1)提高CPU的利用率。
(2)可提高内存和I/O设备利用率。
(3)增加系统吞吐量。
4、多道批处理系统的特征:
多道性、无序性、调度性
5、多道批处理系统的优点:
资源利用率高、作业吞吐量大
6、多道批处理系统的缺点:
用户交互性差、作业平均周转时间长
7、分时系统的特征:
多路性、独立性、及时性、交互性
8、操作系统的基本特征:
并发、共享、虚拟、异步性
9、操作系统的主要功能:
处理机管理、存储管理、设备管理、文件管理、用户接口
10、存储管理应具有以下功能:
内存分配、内存保护、地址映射、内存扩充
11、操作系统为用户提供了两种接口:
命令接口、程序接口
12、作业的定义:
它由程序、数据和作业说明书三部分组成。
程序和数据完成用户所要求的业务处理工作,作业说明书则体现用户的控制意图。
13、作业的组织:
作业由三部分组成,即程序、数据和作业说明书
14、一个作业从进入系统到运行结束,一般需要经历:
收容、执行、完成
15、一个作业的建立过程包括两个子过程:
作业的输入、作业控制块的建立
16、处理机的状态有两种:
管态、目态
17、所谓进程是由正文段、用户数据段、系统数据段共同组成的一个执行环境
18、进程具有5个基本特征:
动态性、并发性、独立性、异步性、结构性
19、基本的进程状态有三种:
执行状态、等待状态和就绪状态
20、程序的文件结构。
可执行目标程序存放在外存中。
由三部分组成:
代码、静态初始化数据、头
21、进程空间结构。
指进程在内存的所有代码、数据栈、以及有关信息的组合总称
22、对于一个进程的内存空间而言,可以在逻辑上分成3个部份:
代码区,静态数据区和动态数据区
23、当进程从用户态进入内核态后都要使用栈,这个栈叫做进程的内核栈。
24、进程之间的两种形式的制约关系:
直接相互制约关系(同步)、间接相互制约关系(互斥)
25、操作系统中负责管理CPU使用的那部分功能子集称为处理机管理功能或CPU管理功能。
26、现代操作系统中通常处理机管理功能划分为三个层次:
作业级,进程级,线程级
27、一般来说,处理机调度可以分为4级:
作业调度、交换调度、进程调度、线程调度
28、作业由调度程序从磁盘等外部存储器调到内存中去,运行后再存回磁盘的整个过程中,作业所处的各种状态—作业状态:
·提交状态、·后备状态、执行状态、完成状态
29、进程调度的功能:
保存现场、挑选进程、恢复现场
30、进程调度的时机:
完成任务、等待资源、运行到时、发现标志
31、产生死锁的4个必要条件是:
互斥条件、保持和等待条件、不剥夺条件、环路等待条件
32、针对产生死锁的必要条件,有下列处理死锁的方法:
预防死锁、避免死锁
33、判断资源分配是否安全:
检测死锁、解除死锁
34、将主板上的物理内存条所提供的内存空间定义为:
物理内存空间,其中每个内存单元的实际地址就是:
物理地址;将应用程序员看到的内存空间2定义为:
虚拟地址空间(或地址空间),其中的地址就叫:
虚拟地址(或逻辑地址)
35、虚拟存储器:
把辅助存储器作为对主存储器的扩充,向用户提供一个比实际主存大得多的的地址空间。
36、地址变换:
内存空间与虚拟空间、静态地址重定位、动态地址重定位
37、覆盖与交换技术是在多道环境下用来扩充内存的两种方法
38、对换技术的目的:
利用外存空间解决内存不足的问题
39、静态页式管理的地址变换:
物理地址=内存块号*块长+页内地址
40、页表是把线性地址映射到物理地址的一种数据结构。
41、与文件相关的概念有:
数据项、记录、文件和数据库
42、操作系统的文件系统包括两个方面:
负责管理文件的一组系统软件、管理的对象文件
43、根据不同方面,可以对文件进行多种分类,按文件的用途分:
系统文件、库文件和用户文件。
按文件的信息流分:
输入文件、输出文件和输入输出文件。
按文件的安全属性分:
只读文件、读写文件、可执行文件和不保护文件。
44、文件的逻辑结构可以分为两种:
无结构的字符流文件和有结构的记录文件
45、以记录为单位组织和使用信息,其有几种不同的类型:
堆文件、顺序文件、索引顺序文件、直接文件
46、数据项:
基本数据项、组合数据项
47、文件有属性:
文件类型、文件长度、物理位置、文件的存取控制、建立日期
48、访问磁盘的时间因子由3部分构成,查找(查找磁道)时间、等待(旋转等待扇区)时间和数据传输时间,其中查找时间是决定因素。
49、执行一次输入输出所花的时间有:
寻找时间、延迟时间、传送时间
50、3种不同的空闲块管理方法是:
空闲文件目录、空闲块链、位示图
51、空闲空间表法:
空闲空间表、空闲块分配、空闲块的收回
52、Linux文件可以是下列类型:
常规文件、目录文件、设备文件、管道文件、链接文件
二、简答题:
(每题2分共32分)
1、并行和并发的区别
答:
多道程序设计是指允许多个程序同时进入内存并运行,是OS所采用的最基本、最重要的技术,引入目的是为了提高系统效率。
①程序的并发(Concurrency)执行:
一组在逻辑上互相独立的程序或程序段在执行过程中,其执行时间在客观上互相重叠。
(强调时间段)
②程序的并行(parallel)执行:
一组在逻辑上互相独立的程序或程序段在同一时刻同时执行。
(强调同一时刻),只能在多机系统中出现。
2、遍历链表
list.h中定义了如下遍历链表本的宏:
#definelist_for_each(pos,head)\
for(pos=(head)->next;pos!
=(head);\
pos=pos->next)
这种遍历仅仅是找到一个个节点在链表中的偏移位置pos,如图2所示。
图2遍历链表图3list_entry()宏的示意图
list.h中定义了list_entry()宏:
#definelist_entry(ptr,type,member)\
((type*)((char*)(ptr)-(unsignedlong)(&((type*)0)->member)))
如何通过pos获得节点的起始地址,从而可以引用节点中的域?
答:
于是list.h中定义了晦涩难懂的list_entry()宏:
#definelist_entry(ptr,type,member)\
((type*)((char*)(ptr)-(unsignedlong)(&((type*)0)->member)))
指针ptr指向结构体type中的成员member;通过指针ptr,返回结构体type的起始地址,也就是list_entry返回指向type类型的指针,如图1.8所示。
图1.8list_entry()宏的示意图
进一步仔细分析list_entry()宏:
((unsignedlong)&(type*)0)->member)把0地址转化为type结构的指针,然后获取该结构中member域的指针,也就是获得了member在type结构中的偏移量。
其中(char*)(ptr)求出的是ptr的绝对地址,二者相减,于是得到type类型结构体的起始地址,如图1.9所示。
图1.9list_entry()宏解析
3、SPOOLing系统主要包括三部分(输入井和输出井、输入缓冲区和输出缓冲区、输入进程和输出进程),它们的作用是?
答:
SPOOLing系统主要包括以下三部分:
(1)输入井和输出井:
这是在磁盘上开辟出来的两个存储区域。
输入井模拟脱机输入时的磁盘,用于收容I/O设备输入的数据。
输出井模拟脱机输入时的磁盘,用于收容用户程序的输出数据。
(2)输入缓冲区和输出缓冲区:
这是在内存中开辟的两个缓冲区。
输入缓冲区用于暂存由输入设备送来的数据,以后再传送到输入井。
输出缓冲区用于暂存从输出井送来的数据,以后再传送到输出设备。
(3)输入进程和输出进程:
输入管理模块,将用户要求的数据从输入机,通过输入缓冲区再送到输入井,当CPU需要输入数据时,直接从输入井读入内存;输出管理模块把用户要求输出的数据,先从内存送到输出井,待输出设备空闲时再将输出井中的数据,经过输出缓冲区送到输出设备上。
4、实模式下的中断机制与保护模式下的中断机制的区别?
答:
在实地址模式中,CPU把内存中从0开始的1K字节作为一个中断向量表。
表中的每个表项占四个字节,由两个字节的段地址和两个字节的偏移量组成,这样构成的地址便是相应中断处理程序的入口地址。
但是,在保护模式下,由四字节的表项构成的中断向量表显然满足不了要求。
这是因为,除了两个字节的段描述符,偏移量必用四字节来表示;要有反映模式切换的信息。
因此,在保护模式下,中断向量表中的表项由8个字节组成,中断向量表也改叫做中断描述符表IDT(InterruptDescriptorTable)。
其中的每个表项叫做一个门描述符(gatedescriptor),“门”的含义是当中断发生时必须先通过这些门,然后才能进入相应的处理程序。
5、中断响应过程
解:
以鼠标中断为例,当鼠标产生一次中断,通过IRQ1到主中断控制器,再由INT通过总线向CPU发出中断请求信号,第一个时间周期CPU通过INTA给中断控制器回复一个中断响应信号。
第二个时间周期控制器向CPU发送中断类型号,CPU通过中断向量号(33)查中断向量表(实模式)或中断描述符表(保护模式),找到响应的中断处理程序,并加入到中断请求队列中,然后在时间片到时被执行。
6、系统调用过程
答:
系统调用实质就是函数调用,只是调用的函数是系统函数,处于内核态而已。
用户在调用系统调用时会向内核传递一个系统调用号,然后系统调用处理程序通过此号从系统调用表中找到相应的内核函数执行(系统调用服务例程),最后返回。
(1)在内核栈保存大多数寄存器的内容。
(2)调用所谓系统调用服务例程的相应的C函数来处理系统调用。
(3)通过syscall_exit_work()函数从系统调用返回。
xyz()系统调用对应的服务例程的名字通常是sys_xyz()。
如图显示了调用系统调用的应用程序、相应的封装例程、系统调用处理程序及系统调用服务例程之间的关系。
箭头表示函数之间的执行流。
图6.1调用一个系统调用
7、进程和程序、作业和进程的区别和关系
答:
1、进程和程序
进程是程序在数据集合上的一次执行过程,是动态概念。
同时,它还有生命周期,由创建而产生,由调度而执行,由撤销而消亡。
程序是一组有序指令序列,是静态概念,所以,程序作为一种系统资源是永久存在的。
(1)进程是一个动态概念,而程序则是一个静态概念。
(2)进程具有并行特征,而程序没有。
(3)进程是竞争计算机系统资源的基本单位,从而其并行性受到系统自己的制约。
(4)不同的进程可以包含同一程序,只要该程序所对应的数据集不同。
2、作业和进程
作业是用户需要计算机完成某项任务时要求计算机所作工作的集合。
进程是已提交完毕程序的执行过程的描述,是资源分配的基本单位。
作业是用户向计算机提交任务的任务实体。
而进程则是完成用户任务的执行实体,是向系统申请分配资源的基本单位。
任一进程,只要它被创建,总有相应的部分存在于内存中。
一个作业可由多个进程组成。
且必须至少由一个进程组成,但反过来不成立。
作业的概念主要用在批处理系统中。
而进程的概念则用在几乎所有的多道系统中。
8、Linux进程的创建过程
答:
首先,fork()通过拷贝当前进程创建一个子进程。
然后,exec()函数负责读取可执行文件并将其载入进程的地址空间开始运行。
新进程是通过克隆父进程(当前进程)而建立的。
fork()和clone()(用于线程)系统调用可用来建立新的进程。
当这两个系统调用结束时,内核在内存中为新的进程分配新的PCB,同时为新进程要使用的堆栈分配物理页。
Linux还会为新进程分配新的进程标识符。
然后,新的PCB地址保存在链表中,而父进程的PCB内容被复制到新进程的PCB中。
9、并发进程互斥进入临界区应遵循的原则
答:
1)空闲让进:
如果有若干进程要求进入空闲的临界区,任何有权使用临界区的进程可进入,但是一次仅允许一个进程进入。
2)忙则等待:
任何时候,处于临界区内的进程不可多于一个。
如已有进程进入自己的临界区,则其它所有试图进入临界区的进程必须等待。
3)有限等待:
进入临界区的进程要在有限时间内退出,以便其它进程能及时进入自己的临界区。
4)让权等待:
如果进程不能进入自己的临界区,则应让出CPU,避免进程出现“忙等”现象。
10、三级调度的调度队列模型,描述调度过程
11、进程调度的功能
答:
1、保存现场;
2、挑选进程;
3、恢复现场。
12、动态重定位的实现过程:
答:
1)用户作业原封不动地装入内存;
2)当CPU调度作业进程时,操作系统自动将该作业在内存的起始地址装入基址寄存器,将作业大小装入限长寄存器;
3)当执行到某条指令时,操作对象的相对地址与限长寄存器的值进行比较。
如果在其范围内,表示地址合法。
否则越界。
4)将相对地址与基址寄存器中的地址相加,得到所访问的内存实际地址。
作业装入内存的所有地址是相对地址,地址转换工作在程序执行时进行,需要系统提供一个重定位寄存器,用于存放程序(或数据)在内存中的起始地址。
程序执行时,真正访问的内存地址是相对地址与重定位寄存器中的地址相加而形成。
如图所示。
13、具有快表的地址变换机构,描述变换过程
1、先查看是否越界,如果越界结束,否则进入下一步;
2、将页号和页表寄存器里的页表始址相加,得到在页表中的块号;
3、然后再由块号中的起始地址和页内地址相加得到物理地址。
14、分页和分段的主要区别
答:
(1)页是信息的物理单位,分页是为实现离散分配方式,以消减内存的外零头,提高内存的利用率。
或者说,分页仅仅是由于系统管理的需要而不是用户的需要。
段则是信息的逻辑单位,它含有一组其意义相对完整的信息。
分段的目的是为了能更好地满足用户的需要。
(2)页的大小固定且由系统决定,由系统把逻辑地址划分为页号和页内地址两部分,是由机器硬件实现的,因而在系统中只能有一种大小的页面;而段的长度却不固定,决定于用户所编写的程序,通常由编译程序在对源程序进行编译时,根据信息的性质来划分。
(3)分页的作业地址空间是一维的,即单一的线性地址空间,程序员只需利用一个记忆符,即可表示一个地址;而分段的作业地址空间则是二维的,程序员在标识一个地址时,既需给出段名,又需给出段内地址。
15、请求页式管理中的页面置换算法
为了说明页面算法,采用以下页面走向加以分析
7
0
1
2
0
3
0
4
2
3
0
3
2
1
2
0
1
7
0
1
假定每个作业只有三个内存块可供使用。
画出下面置换算法的页面置换过程,计算缺页率。
1最佳(Optimal)置换算法(理想型淘汰算法)(向后看)
2先进先出(FIFO)置换算法
3最近最久未使用(LRU)置换算法(向前看)
答:
1:
假定系统为某进程分配了三个物理块,并考虑有以下的页面号引用串:
7,0,1,2,0,3,0,4,2,3,0,3,2,1,2,0,1,7,0,1
进程运行时,先将7,0,1三个页面装入内存。
以后,当进程要访问页面2时,将会产生缺页中断。
此时OS根据最佳置换算法,将选择页面7予以淘汰。
图4-25利用最佳页面置换算法时的置换图
缺页率为:
9/12=75%
该算法淘汰在访问串中将来再也不出现的或是在离当前最远的位置上出现的页。
这样,淘汰掉该页将不会造成因需要访问该页又立即把它调入的现象。
遗憾的是,这种算法无法实现,因为它要求必须预先知道每一个进程的访问串。
2:
进程在一个执行过程中,实际上发生了12次缺页。
如果设缺页率为缺页次数与访问串的访问次数之比,则该例中的缺页率为12/17=70.5%
先进先出算法产生Belady现象的原因在于它根本没有考虑程序执行的动态特征。
3、该算法的基本思想是:
当需要淘汰某一页时,选择离当前时间最近的一段时间内最久没有使用过的页先淘汰。
该算法的主要出发点是,如果某页被访问了,则它可能马上还要被访问。
或者反过来说,如果某页很长时间未被访问,则它在最近一段时间也不会被访问。
图4-27LRU页面置换算法
16、线性地址到物理地址的转换
当访问线性地址空间的一个操作单元时,如何把32位的线性地址通过分页机制转化成32位物理地址呢?
答:
第一步,用32位线性地址的最高10位第31~22位作为页目录项的索引,将它乘以4,与CR3中的页目录的起始地址相加,获得相应目录项在内存的地址。
第二步,从这个地址开始读取32位页目录项,取出其高20位,再给低12位补0,形成的32位就是页表在内存的起始地址。
第三步,用32位线性地址中的第21~12位作为页表中页表项的索引,将它乘以4,与页表的起始地址相加,获得相应页表项在内存的地址。
第四步,从这个地址开始读取32位页表项,取出其高20位,再将线性地址的第11~0位放在低12位,形成最终32位页面物理地址。
17、操作系统的基本类型有
答:
(1)批处理操作系统(batchprocessingoperatingsystem)
(2)分时操作系统(timesharingoperatingsystem)
(3)实时操作系统(realtimeoperatingsystem)
(4)个人计算机操作系统(personalcomputeroperatingsystem)
(5)网络操作系统(networkoperatingsystem)
(6)分布式操作系统(distributedoperatingsystem)
(7)嵌入式操作系统(operatingsystem)
18、作业、作业步、进程之间的关系
答:
作业是用户要求计算机给以计算或处理的一个相对独立的任务;
一个作业一般可以分成几个必须顺序处理的步骤(作业步);
每一个作业步又可细分为若干个作业步任务(进程),而一个进程又可能要执行若干个线程。
19、系统调用与过程调用的主要区别
答:
(1)调用形式不同:
过程使用一般调用指令,其转向地址是固定不变的,包含在跳转语句中,但系统调用中不包含处理程序入口,而仅仅提供功能号,按功能号调用。
(2)被调用代码的位置不同:
过程调用是一种静态调用,调用程序和被调用代码在同一程序内,经过连接编辑后作为目标代码的一部分。
当过程升级或修改时,必须重新编译连接。
而系统调用是一种动态调用,系统调用的处理代码在调用程序之外,当系统调用处理代码升级或修改时,与调用程序无关。
而且,调用程序的长度也大大缩短,减少了调用程序占用的存储空间。
(3)提供方式不同:
过程往往有编译系统提供,不同编译系统提供的过程可以不同;系统调用由操作系统提供,一旦操作系统设计好,系统调用的功能、种类与数量边固定不变了。
(4)调用的实现不同:
程序使用一般机器指令来调用过程,是在用户态运行的,程序执行系统调用,是通过中断机构来实现,需要从用户态转变到核心态,在管态执行,因此,程序执行系统调用的安全性好。
20、进程和程序的区别
答:
进程是程序在数据集合上的一次执行过程,是动态概念。
同时,它还有生命周期,由创建而产生,由调度而执行,由撤销而消亡。
程序是一组有序指令序列,是静态概念,所以,程序作为一种系统资源是永久存在的。
进程与程序的区别:
1)程序是静态的,进程是动态的;
2)进程是CPU调度的基本单位,是资源的拥有者;程序不是运行单位;
3)程序和进程无一一对应关系,一个程序可以拥有多个进程,一个进程可包含多个程序。
21、进程状态转换
答:
进程从一种状态转变为另一种状态。
在进程的状态转换中有四种变化:
就绪态→运行态:
在满足所有资源后,又分配到CPU,从而得以运行;
运行态→阻塞态:
在运行过程中缺少某个条件(如I/O)而不能继续运行;
阻塞态→就绪态:
在阻塞等待过程中,得到了所需条件;
运行态→就绪态:
在执行处理中,任务未完成,而CPU的处理时间片用时到了。
图2-5进程的三种基本状态及其转换
22、进程调度的时机
答:
1)完成任务;
2)等待资源;
3)运行到时;
4)发现标志。
在这四种情况中发生其中之一的时候,都可以进行进程的调度。
23、在发生进程调度时,系统要做进程上下文切换。
进程上下文切换包括4个步骤
答:
(1)决定是否做上下文切换以及是否允许做上下文切换。
包括对进程调度原因的检查分析,以及当前执行进程的资格和CPU执行方式的检查等。
(2)保存当前执行进程的上下文。
这里所说的当前执行进程,实际上是指调用上下文切换程序之前的执行进程。
如果上下文切换程序不是被那个当前执行进程所调用,且不属于该进程,则所保存的上下文应是先前执行进程的上下文,或称为“老”进程上下文。
显然,上下文切换程序不能破坏“老”进程的上下文结构。
(3)使用进程调度算法,选择一个处于就绪状态进程。
(4)恢复或装配所选进程的上下文,将CPU控制权交给所选进程。
24、基本的地址变换机构
答:
1、先判断逻辑地址里面的页号,若页号越界,则产生越界中断,否则进入下一步;
2、将页号和页表寄存器里的页表始址相加,得到在页表中的块号;
3、将块号和页内地址相加,得到最终的物理地址。
25、地址变换机构
答:
1、判断段号是否越界,若越界产生越界中断,反之,进入下一步;
2、判断要写入的程序长度是否超过控制寄存器的段表长度,若超过,则产生越界中断,反之进入下一步;
3、将段表起始地址和段号相加,得到段基址;
4、将上一步的段基址和位移量相加得到程序在内存的物理地址。
26、请求页式管理的基本思想
答:
分页的基本思想(虚拟分页):
平时不完全将程序装入内存,仅当要执行一个程序时,才将用到它的那一页换入内存。
其它的页仍放在外存上。
27、页式管理的优缺点
答:
优点:
由于它不要求作业或进程的程序段和数据在内存中连续存放,从而有效地解决了碎片问题。
缺点:
虽然消除了碎片,但每个作业或进程的最后一页内总有一部分空间得不到利用。
如果页面较大,则这一部分的损失仍然较大。
28、文件系统的基本任务:
答:
(1)为了合理的存放文件,必需对磁盘等辅助存储器空间(或称文件空间)进行统一管理。
在用户创建新文件时为其分配空闲区,而在用户删除或修改某个文件时,回收和调整存储区。
(2)为了实现按名存取,需要有一个用户可见的文件逻辑结构,用户按照文件逻辑结构所给定的方式进行信息的存取和加工。
这种逻辑结构是独立于物理存储设备的。
(3)为了便于
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 操作系统 Linux