系统调用的11个步骤
- 格式:pdf
- 大小:109.58 KB
- 文档页数:2
linux系统调用流程Linux系统调用流程主要包括以下几个步骤:1. 用户程序发起系统调用:用户程序通过调用C库函数(如read、write等)发起系统调用。
C库函数会将系统调用的参数打包到指定的寄存器中,并通过软中断(int 0x80或sysenter指令)触发一个中断。
2.内核保存现场:当用户程序触发中断后,CPU会从用户态切换到核心态,此时控制权转交给内核。
内核会保存用户程序执行的上下文(即寄存器状态、代码段选择器等),以便系统调用执行完后返回到用户程序继续执行。
3.系统调用处理:内核根据中断向量号找到系统调用处理函数的入口地址,并执行相应的处理代码。
系统调用处理函数根据调用的系统调用号(存储在EAX寄存器中)在系统调用表中查找对应的处理函数。
4.参数传递与验证:系统调用处理函数根据规定的参数个数和顺序,从寄存器或用户程序的堆栈中读取参数。
内核会对参数进行验证,确保用户程序没有越权访问操作系统资源。
5.执行系统调用:系统调用处理函数根据参数的具体内容执行相应的系统调用操作,如打开文件、读写文件、创建进程等。
内核代码会完成对应的系统调用功能,并更新相关的数据和状态。
6.返回结果:系统调用完成后,会将结果存储在指定的寄存器中,如EAX寄存器。
再将保存的用户程序上下文恢复,将控制权从内核返回到用户程序。
用户程序可以通过检查返回值来判断系统调用是否执行成功。
总结:Linux系统调用流程包括用户程序发起系统调用、内核保存现场、系统调用处理、参数传递与验证、执行系统调用和返回结果等步骤。
通过系统调用,用户程序能够获取操作系统提供的服务和资源,实现各种功能。
系统调用流程涉及用户态和核心态的切换,用户程序和内核通过寄存器和堆栈传递参数和返回结果,确保了用户程序与操作系统之间的安全和可靠交互。
最新国家开放大学电大本科《操作系统》期末试题标准题库及答案(试卷号1251)最新国家开放大学电大本科《操作系统》期末试题标准题库及答案(试卷号:1251)考试说明:本人汇总了历年来该科的试题及答案,形成了一个完整的标准考试题库,对考生的复习和考试起着非常重要的作用,会给您节省大量的时间。
内容包含:选择题、判断题、简答题、应用题。
做考题时,利用本文档中的查找工具(Ctrl+F),把考题中的关键字输到查找工具的查找内容框内,就可迅速查找到该题答案。
本文库还有其他网核、机考及教学考一体化试题答案,敬请查看。
《操作系统》题库一一、选择题(选择一个正确答案的代码填入括号中,每小题2分,共30分)1.在计算机系统中,控制和管理各种软、硬件资源,有效地组织多道程序运行的系统软件称作()。
A.网络系统B.文件系统C.操作系统D.数据库系统2.以下著名的操作系统中,属于多用户、分时系统的是()。
A.DOS系统B.WindowNT系统C.OS/2系统D.UNI某系统3.系统调用是由操作系统提供的内部调用,它()。
A.直接通过键盘交互方式使用B.只能通过用户程序间接使用C.是命令接口中的命令D.与系统的命令一样4.在单处理机系统中,处于运行状态的进程()。
A.只有一个B.可以有多个C.不能被挂起D.必须在执行完后才能被撇下5.在一段时间内,只允许一个进程访问的资源称为()。
A.共享资源B.临界资源C.临界区D.共享区6.作业调度的关键在于()。
A.用户作业准备充分B.有一个较好的操作环境C.选择恰当的作业调度算法D.选择恰当的进程管理程序7.现有3个作业同时到达,每个作业的计算时间都是1小时,它们在一台CPU上按单道方式运行,则平均周转时间为()小时。
A.1B.2C.3D.68.通常,用户编写的程序中所使用的地址称为()。
A.内存地址B.物理地址C.绝对地址D.逻辑地址9.在请求分页虚拟存储管理中,若所需页面不在内存中,则会引起()。
操作系统考研题题型1.1操作系统⽬标和作⽤1、下列选择中,哪些不是操作系统关⼼的主要问题。
(浙⼤2003)(1)管理计算机裸机;(2)设计提供⽤户与计算机硬件系统间的界⾯;(3)管理计算机系统资源;(4)⾼级程序设计语⾔的编译器。
2、说明操作系统与硬件、其他系统软件以及⽤户之间的关系。
3、选择:从⽤户⾓度看,操作系统是()。
(选项:计算机资源的管理者;计算机⼯作流程的组织者;⽤户与计算机之间的接⼝;由按层次结构组成的软件模块的集合。
)1.2操作系统发展过程1、引⼊多道程序技术的前提条件之⼀是系统具有()(西电00)(1)多个cpu;(2)多个终端;(3)中断功能;(4)分时功能2、判断:所谓多道程序设计,即指每⼀时刻有若⼲个进程在执⾏。
(南京⼤学00)3、判断:采⽤多道程序设计的系统中,系统的程序道数越多,系统效率越⾼。
(西电01)4、判断:由于采⽤了分时技术,⽤户可以独占计算机的资源。
5、分布式操作系统与⽹络操作系统本质上的不同之处在于(实现各计算机之间的通信;共享⽹络中的资源;满⾜较⼤规模的应⽤;系统中若⼲台计算机相互协同完成同⼀任务)6、若程序A和B单独执⾏时分别⽤TA和TB,TA=1h,TB=1.5h,其中处理器⼯作时间分别为TA=18min,TB=27min。
如果采⽤多道程序设计⽅法,让A,B并⾏⼯作,假定处理器利⽤率达到50%,另加15min 系统开销,请问系统效率提⾼百分之⼏?7、在操作系统中引⼊并发可以提⾼系统效率,若有两个程序A和B,A程序执⾏时所做的⼯作按次序需要⽤cpu:10s,设备1:5s,cpu:5s,设备2:10s,cpu10s;程序B 执⾏时所做的⼯作按次序需要⽤设备1:10s,cpu:10s,设备2:5s,cpu:5s,设备2:10s。
如果在顺序环境下执⾏两个程序,则cpu的利⽤率为();如果在并发环境下执⾏两个程序,则cpu的利⽤率为()。
8、设某计算机系统有⼀个cpu、⼀台输⼊设备、⼀台打印机。
微端原理----简答笔记三、1、计算机的内存容量、主频、存取周期各是指什么?答:内存容量:指内存储器中能存储信息的总字节数。
主频:指计算机的时钟频率,它的倒数是计算机的时钟周期数;存取周期:存储器进行一次完整的读/写操作所需的时间,也就是存储器连续两次读(或写)所需的最短时间间隔。
2、简述8088/8086CPU中寄存器的类型和功能。
答:寄存器按照功能的不同可分为通用寄存器(AX,BX,CX,DX,SP,BP,SI, DI。
其中的前四个寄存器可分别分成 AH,AL ;BH,BL;CH,CL;DH,DL 的八位寄存器)、指令指针寄存器(IP)、标志寄存器(FLAGS)、段寄存器(CS,DS,ES,SS)。
功能如下:AX 存放数据,可作为累加器使用;BX 存放数据,可用来存放数据的指针(偏移地址),常常和 DS 寄存器连用;CX 存放数据,可用来做计数器,常常存放循环次数;DX 存放数据,可用来存放乘法运算产生的部分积,或用来存放输入输出的端口地址(指针);SP 用于访问堆栈数据,指明堆栈的栈顶;BP 用来存放访问堆栈段的一个数据区,作为基地址;SI 存放一般数据,还可用于串操作中,存放源地址,对一串数据访问;DI 存放一般数据,还可用于串操作中,存放目的地址,对一串数据访问;IP 用于存放将要执行的指令地址,程序员不能对它直接操作;FLAGS 用于指示微处理器的状态并控制它的操作,包含 6 个状态位(CF、ZF、SF、PF、OF、AF)和 3 个控制位(IF、DF、TF);CS 代码段寄存器,代码段是一个存储区域,存放的是 CPU 要使用的指令代码,CS 存放代码段的段基地址;DS 数据段寄存器,数据段是包含程序使用的大部分数据的存储区,DS 中存放数据段的段基地址;ES 附加段寄存器,附加段是为某些串操作指令存放目的操作数而附近的一个数据段,ES 中存放该数据段的段基地址;SS 堆栈段寄存器,堆栈段是内存中一个特殊的存储区,用于暂时存放程序运行时所需的数据或地址信息,SS 中存放该存储区的段基地址。
第六章1.何谓数据项、记录和文件?答:①数据项分为基本数据项和组合数据项。
基本数据项描述一个对象某种属性的字符集,具有数据名、数据类型及数据值三个特性。
组合数据项由若干数据项构成。
②记录是一组相关数据项的集合,用于描述一个对象某方面的属性。
③文件是具有文件名的一组相关信息的集合。
2.文件系统的模型可分为三层,试说明其每一层所包含的基本内容。
答:第一层:对象及其属性说明(文件、目录、硬盘或磁带存储空间);第二层:对对象操纵和管理的软件集合(I/O控制层即设备驱动程序、基本文件系统即物理I/O层、基本I/O管理程序或文件组织模块层、逻辑文件系统层)第三层:文件系统接口(命令接口/图形化用户接口与程序接口)。
3.试说明用户可以对文件施加的主要操作有哪些?答:用户通过文件系统提供的系统调用对文件实施操作。
(1)基本文件操作:创建、删除、读、写、截断、设置读/写位置等;(2)文件打开和关闭操作:第一步通过检索文件目录找到指定文件属性及其在外存上位置;第二步对文件实施读写等相应操作。
(3)其他文件操作:一是文件属性操作;二是目录操作;三是文件共享与文件系统操作的系统调用实现等。
4.何谓逻辑文件?何谓物理文件?答:逻辑文件是物理文件中存储的数据的一种视图方式,不包含具体数据,仅包含物理文件中数据的索引。
物理文件又称文件存储结构,是指文件在外存上的存储组织形式。
5.如何提高对变长记录顺序文件的检索速度?答:基本方法是为变长记录顺序文件建立一张索引表,以主文件中每条记录的长度及指向对应记录的指针(即该记录在逻辑地址空间的首址)作为相应表项的内容。
由于索引表本身是一个定长记录的顺序文件,若将其按记录键排序,则实现了对主文件方便快捷的直接存取。
如果文件较大,应通过建立分组多级索引以进一步提高检索效率。
6.试说明对索引文件和索引顺序文件的检索方法。
答:①索引文件的检索,首先根据用户(程序)提供的关键字,利用折半查找法检索索引表,找到相应表项;再利用给出的指向记录指针值,访问对应记录。
练习题一、选择题(选择一个正确答案的代码填入括号中)1. 一个完整的计算机系统是由()组成的。
A.硬件B.软件C.硬件和软件D.用户程序2. 在计算机系统中,控制和管理各种资源、有效地组织多道程序运行的系统软件称作()。
A.文件系统B.操作系统C.网络管理系统D.数据库管理系统3. 按照所起的作用和需要的运行环境,操作系统属于()。
A.用户软件B.应用软件C.支撑软件D.系统软件4. 操作系统的基本职能是()。
A.提供功能强大的网络管理工具B.提供用户界面,方便用户使用C.提供方便的可视化编辑程序D.控制和管理系统内各种资源,有效地组织多道程序的运行5. 为用户分配主存空间,保护主存中的程序和数据不被破坏,提高主存空间的利用率。
这属于()。
A.处理器管理B.存储管理C.文件管理D.作业管理6. 操作系统对缓冲区的管理属于()的功能。
A.处理机管理B.设备管理C.文件管理D.存储器管理7. 操作系统内核与用户程序、应用程序之间的接口是()。
A.shell命令B.图形界面C.系统调用D.C语言函数8. 为了使系统中所有的用户都能得到及时的响应,该操作系统应该是()。
A.多道批处理系统B.分时系统C.实时系统D.网络系统9. 在实时系统中,一旦有处理请求和要求处理的数据时,CPU就应该立即处理该数据并将结果及时送回。
下面属于实时系统的是()。
A.计算机激光照排系统B.办公自动化系统C.计算机辅助设计系统D.航空订票系统10.下面不属于分时系统特征的是()。
A.为多用户设计B.需要中断机构及时钟系统的支持C.方便用户与计算机的交互D.可靠性比实时系统要求高11. 以下著名的操作系统中,属于多用户、分时系统的是()。
A.DOS系统B.Windows NT系统C.UNIX系统D.OS/2系统二、判断题(正确的划√,错误的划×。
)1. 操作系统是用户与计算机之间的接口。
(√)2. 操作系统是系统软件中的一种,在进行系统安装时可以先安装其它软件,然后再装操作系统。
第一章操作系统引论1、设计现代 OS 的主要目标是什么?2、OS 的作用可表现在哪几个方面?3、试说明推动多道批处理系统形成和发展的主要动力是什么。
4、何谓脱机 I/O 和联机 I/O ?5、实现分时系统的关键问题是什么?应如何解决?6、为什么要引入实时操作系统?7、试在交互性、及时性以及可靠性方面,将分时系统与实时系统进行比较。
8、OS 有哪几大特征?其最基本的特征是什么?9、处理机管理有哪些主要功能?它们的主要任务是什么?10、内存管理有哪些主要功能?它们的主要任务是什么?11、设备管理有哪些主要功能?其主要任务是什么?12、文件管理有哪些主要功能?其主要任务是什么?13、是什么原因使操作系统具有异步性特征?14、何谓微内核技术?在微内核中通常提供了哪些功能?第二章进程管理1 程序并发执行,为什么会失去封闭性和可再现性?2 试画出下面四条语句的前趋图:S 1 : a : =x+y ;S 2 : b : =z+1 ;S 3 : c : =a-b ;S 4 : w : =c+1 ;3 为什么程序并发执行会产生间断性特征?4 在操作系统中为什么要引入进程概念?它会产生什么样的影响?5 试从动态性、并发性和独立性上比较进程和程序。
6 试说明 PCB 的作用,为什么说 PCB 是进程存在的惟一标志?7 试说明进程在三个基本状态之间转换的典型原因。
8 在进行进程切换时,所要保存的处理机状态信息有哪些?9 试说明引起进程创建 / 撤消的主要事件。
10 在创建 / 撤消一个进程时所要完成的主要工作是什么?11 试说明引起进程阻塞或被唤醒的主要事件是什么?12 进程在运行时,存在哪两种形式的制约?并举例说明之。
13 同步机构应遵循哪些基本准则?为什么?14 如何利用信号量机制来实现多个进程对临界资源的互斥访问?并举例说明之。
15 在生产者 - 消费者问题中,如果缺少了 signal(full) 或 signal(empty) ,对执行结果将会有何影响?16 试利用记录型信号量写出一个不会出现死锁的哲学家进餐问题的算法。
操作系统——判断1. UNIX/Linux的i节点内码表是文件系统的主要数据结构表格部分..×2. 系统调用是操作系统和用户进程的接口;库函数也是操作系统和用户的接口..×3. 交换技术“扩充”了内存;因此;交换也实现了虚拟存储器.. √4. 允许多个用户以交互方式使用计算机的操作系统是实时系统..×5. 用户程序应与实际使用的物理设备无关;这种特性就称作与设备无关性..√6. 只有一个终端的计算机无法安装多用户操作系统.. ×7. 主存和辅存都在CPU直接控制下相互传送信息和存储数据.. ×8. 采用SPOOLing技术的目的是提高独占设备的利用率..√9. 现代操作系统大量采用的层次设计方法;从已知目标N层用户要求;逐级向下进行设计;称为自底向上方法..×10. 临界资源是指每次仅允许一个进程使用的共享资源..√1. 在文件系统的支持下;用户需要知道文件存放的物理地址..×2. 文件的存储空间管理实质上是组织和管理辅存空闲块..√3. 通过硬件和软件的功能扩充;把原来独占的设备改造成为能为若干用户共享的设备;这种设备称为虚拟设备..√4. 信号量机制是一种有效地实现进程同步与互斥的工具..信号量的值只能由PV操作来改变..√5. 作业调度选择一个作业装入主存后;该作业能否占用处理器必须由作业控制来决定.. ×6. 在进行作业调度时;要想兼顾作业等待时间和计算时间;应选取响应比高者优先算法.. √7. 动态存储分配时;要靠硬件地址变换机构实现重定位..√8. 虚拟存储器实际上是一种设计技巧;使主存物理容量得到扩大..×9. 固定分区存储管理的各分区的大小不可变化;这种管理方式不适合多道程序设计系统..×10. SPOOLing系统实现设备管理的虚拟技术;即:将独占设备改造为共享设备..它由专门负责I/O的常驻内存的进程以及输入、输出井组成..√1. Windows是一个多任务操作系统;允许同一时间运行多个程序;能方便快速地在各程序间切换..√2. 确定作业调度算法时应主要考虑系统资源的均衡使用;使I/O繁忙作业和CPU繁忙作业搭配运行.. √3. 在操作系统中;通常把终端作业称为后台作业;批处理作业称为前台作业..×4. 作业调度与进程调度相互配合才能实现多道作业的并发执行..√5. 如果某一进程获得除CPU外的所有所需运行资源;经调度;分配给它CPU;该进程将进入等待状态.. ×6. 通过硬件和软件的功能扩充;把原来独占的设备改造成为能为若干用户共享的设备;这种设备称为虚拟设备.. √7. 在文件系统的支持下;用户需要知道文件存放的物理地址.. ×8. 在UNIX系统中;常采用空闲块成组链接法来实施存储空间的分配与回收.. √9. 常用的缓冲技术是用来解决慢速设备与快速CPU处理之间协调工作的..√10. 计算机操作系统是一种层次化、模块化结构的程序集合.. √三、填空题每空2分;共20分1. Windows操作系统在用户界面设计方面成功地使用图标进行方便用户的管理;UNIX操作系统的移植性好;从微型机到巨型机都可以使用..2. 传统操作系统提供编程人员的接口称为系统调用..3. 可变分区存储管理中;分区的长度不是预先固定的;而是按作业的实际需求量来划分的;分区个数也不是预先确定的;而是由装入的作业数决定的..4. 进程通信根据交换信息量的多少分为高级通信和低级通信;PV操作属于低级通信..5. Shell程序语言最早是由UNIX操作系统提供给用户使用的命令解释程序集合..6. 检测到死锁后可以采用预防、避免或检测并恢复办法来解除死锁..1.操作系统属于最重要的、最不可缺少的应用软件..错2.操作系统完成的主要功能是与硬件相关的..对3.操作系统的所有程序都在系统态执行..错4.多道程序系统在单处理机的环境下;程序的执行是并发不是并行的;程序的执行与I/O操作也只能并发不能并行..错5.当计算机系统没有用户程序执行时;处理机完全处于空闲状态..错6.超级用户管理员、特权用户可以使用特权指令..错7.系统的资源的利用率越高用户越满意..错8.多道程序的执行一定不具备再现性..错9.分时系统不需要多道程序技术的支持..错10.分时系统的用户具有独占性;因此一个用户可以独占计算机系统的资源..错11.设计实时操作系统时;首先应考虑系统的优良性和分配性..错12.批处理系统不允许用户随时干涉自己程序的运行..对13.虚拟机不需要硬件的支持..错14.操作系统的所有程序是长驻内存的..错1.有了线程之后;程序只能以线程的身份运行..对2.线程的切换会引起进程的切换..错3.多个线程可以对应同一段程序..对4.系统内可以存在无父进程的进程..对5.线程所对应的程序肯定比进程所对应的程序短..错6.进程从CPU退下时;将“现场”保存在系统栈内..错7.在多道程序系统;进程需要等待某种事件的发生时;进程一定进入阻塞状态..错8.进程上下文是进程执行活动全过程的静态描述..错9.并发是并行的不同表述;其原理相同..错10.进程是基于多道程序技术而提出的;其基本的特征是动态性;进程的执行是在多个状态间多次转换的过程;但只有处于就绪和执行状态的进程位于内存..错11.操作系统对进程的管理和控制主要是通过控制原语实现的..对12.原语的执行是屏蔽中断的..对13.一般情况下;分时系统中处于就绪状态的进程最多..对14.系统中进程的数目越多;CPU的利用率越高.错1.一个临界资源可以对应多个临界区..对2.互斥地使用临界资源是通过互斥地进入临界区实现的..错3.同步信号量的初值一般为1..错4.引入管程是为了让系统自动处理临界资源的互斥使用问题..对5.生产者-消费者问题是一个既有同步又有互斥的问题..对6.用管程实现进程同步时;管程中的过程是不可中断的..对7.进程A、B共享变量x;需要互斥执行;进程B、C共享变量y;B、C也需要互斥执行;因此;进程A、C必须互斥执行..错8.单道程序系统中程序的执行也需要同步和互斥..错;单道程序没有并发性1.作业调度能够使作业获得CPU..错2.在多道程序系统中;系统的现有空闲可用资源能否满足一个后备作业J的资源要求;是选择作业J进入内存的必要条件..错3.短作业进程优先调度算法具有最短的平均周转时间;因此这种算法是最好的算法..错4.在优先权调度算法中确定静态优先权时;一般说;计算进程的优先权要高于磁盘I/O进程的优先权..错5.摒弃不可剥夺条件的方法可用于预防多个打印进程死锁的发生..错6.操作系统处理死锁;只要采用预防、解除、检测、避免之中的一种就足够了..错7.如果系统在所有进程运行前;一次性地将其在整个运行过程所需的全部资源分配给进程;即所谓“静态分配”法;是可以预防死锁发生的..对8.多个进程竞争比进程数目少的资源时就可能产生死锁;而当资源数目大于进程数目时就一定不会发生死锁..错9.在银行家算法中;对某时刻的资源分配情况进行安全分析;如果该时刻状态是安全的;则存在一个安全序列;且这个安全序列是唯一的..错10.进程调度算法各种各样;但是如果选择不当;就会造成死锁..错1.请求分页存储管理系统;若把页面的大小增加一倍;则缺页中断次数会减少一倍..错2.虚地址即程序执行时所要访问的内存地址..错3.交换可以解决内存不足的问题;因此;交换也实现了虚拟存储器..错4.为了使程序在内存中浮动;编程时都使用逻辑地址..因此;必须在地址转换后才能得到主存的正确地址..对5.在请求分页式存储管理中;页面的调入.调出只能在内存和对换区之间进行..错6.请求分页存储管理中;页面置换算法很多;但只有最佳置换算法能完全避免进程的抖动;因而目前应用最广..其他如改进型CLOCK算法虽然也能避免进程的抖动;但其效率一般很低..错7.虚拟存储器的实现是基于程序局部性原理;其实质是借助外存将内存较小的物理地址空间转化为较大的逻辑地址空间..对8.虚存容量仅受外存容量的限制..错9.UNIX操作系统没有提供虚拟存储器;为了使容量有限的内存能支持较大规模的程序;系统除采用正文段共享和自我覆盖技术外;主要采用了程序对换技术来扩充存储容量;使其具有类似于虚拟存储器的作用..10.静态页式管理可以实现虚存..错11.用可变分区法可以比较有效地消除外部碎片;但不能消除内部碎片..错12.页表的作用是实现逻辑地址到物理地址的映射..对13.系统中内存不足;程序就无法执行..错14.用绝对地址编写的程序不适合多道程序系统..对1.操作系统采用缓冲技术的缓冲池主要是通过硬件来实现的..错2.低速设备一般被设置成共享设备..错3.通道指令和一般机器的指令没有什么不同..错4.数组选择通道和数组多路通道可以支持多个通道程序并发执行;而字节多路通道不支持多个通道程度并发执行..错5.共享设备允许多个作业同时使用设备;即每一时刻可有多个作业在使用该共享设备;因而提高了系统设备资源的利用率..错6.由于设备分配中设置了若干数据结构;所以在设备分配中不会发生死锁..错7.I/O通道控制方式中不需要任何CPU干预..错8.先来先服务算法、优先级高者优先算法、时间片轮转算法等是经常在设备分配中采用算法..错9.由于独占设备在一段时间内只允许一个进程使用;因此;多个并发进程无法访问这类设备..错10.操作系统中应用的缓冲技术;多数通过使用外存来实现..错1.信号量机制是一种有效地实现进程同步与互斥的工具..信号量的值只能由P、V操作来改变..1.√2.确定作业调度算法时;应主要考虑系统资源的均衡使用;使I/O繁忙作业和CPU繁忙作业搭配运行..2.√3.在虚拟存储系统中;操作系统为用户提供了巨大的存储空间..因此;用户地址空间的大小可以不受任何限制..3.×4.可顺序存取的文件不一定能随机存取;但可随机存取的文件都可以顺序存取..4.√5.利用共享分配技术可以提高设备的利用率;使得打印机之类的独占设备成为可共享的、快速I/O设备..5.×6.UNIX操作系统是采用微内核方法实现结构设计的..6.×7.中断处理一般分为中断响应和中断处理两个步骤;前者由软件实施;后者由硬件实施×8.在现代操作系统中;不允许用户干预内存的分配..8.√9.采用了二级目录结构后;可以允许不同用户在为各自的文件命名时;不必考虑重召问题;即使取了相同的名字也不会出错..9.√10.只有引入通道后;CPU计算与I/0操作才能并行执行..10.×11.简单地说;进程是程序的执行过程..因而进程和程序是一一对应的..11.×12.周转时间与选用的调度算法有关.. 12.√13.文件系统要负责文件存储空间的管理;但不能完成文件名到物理地址的转换.. 13.×14.SPOOLing系统实现设备管理的虚拟分配;即将独占设备改造为共享设备..14.×15.只要产生死锁的4个必要条件中有一个不具备;系统就不会出现死锁..15.√16.处理机调度可分为三级:高级、中级和低级..在所有的系统中;都必须具备这三级调度..16.×17.采用动态重定位技术的系统;目标程序可以不经任何改动;直接装入物理内存..17.√18.文件的存储空间管理实质上是对文件目录的组织和管理的问题..18.×19.计算机系统为每一台设备确定的一个用以标识它的编号;被称为设备的绝对号19.√..下面的A是对;B是错1.操作系统是用户与计算机之间的接口.. A2.操作系统是系统软件中的一种;在进行系统安装时可以先安装其它软件;然后再安装操作系统.. B3.操作系统是整个计算机系统的控制管理中心;它对其它软件具有支配权利..因而;操作系统建立在其它软件之上.. B4.虽然分时系统也要求系统可靠;但实时系统对可靠性的要求更高..A5.在UNIX/Linux系统上;系统调用以C函数的形式出现.. A6.系统调用是操作系统与外界程序之间的接口;它属于核心程序..在层次结构设计中;它最靠近硬件.. B7.操作系统核心提供了大量的服务;其最高层是系统调用;它允许正在运行的程序直接得到操作系统的服务.. A8.系统调用的调用过程是通过用户程序;运行在用户态;而被调用的过程是运行在核心态下.. A9.简单地说;进程是程序的执行过程..因而;进程和程序是一一对应的.. B10.进程和程序是两个截然不同的概念.. A11.程序在运行时需要很多系统资源;如内存、文件、设备等;因此操作系统以程序为单位分配系统资源.. B12.进程执行的相对速度不能由进程自己来控制.. A13.并发是并行的不同表述;其原理相同..B14.在进程状态的转换中;从就绪态转换到阻塞态是不可能实现的.. A15.进程从运行状态变为阻塞状态的原因是输入或输出事件发生.. A16.进程从运行状态变为阻塞状态的原因是时间片到时.. B17.一个进程被唤醒意味着该进程重新占有了CPU.. B18.进程之间的互斥;主要源于进程之间的资源竞争;从而实现多个相关进程在执行次序上的协调.. B19.进程A和进程B都要使用系统中同一台打印机;为了保证打印结果的正确性;两个进程要先后分别使用打印机;这属于进程的同步关系.. B20.临界资源是指在一段时间内;一次仅允许一个进程使用的共享资源.. A21.信号量机制是一种有效的实现进程同步与互斥的工具..信号量只能由P、V操作来改变..A22.V操作是对信号量执行加1操作;意味着释放一个单位资源;如果加1后信号量的值小于等于零;则从等待队列中唤醒一个进程;现进程变为阻塞状态;否则现进程继续进行.. B23.利用信号量的P;V操作;进程之间可以交换大量信息.. B24.处于后备状态的作业已经调入内存中.. B25.在单CPU系统中;任何时刻真正在运行的作业至多只能有一个.. A26.作业调度选中一个作业后;与该作业相关的进程即占有CPU运行..B27.作业调度往往选择对资源需求不同的作业进行合理搭配;使得系统中个部分资源都得到均衡利用.. A28.选择一个作业装入主存后;该作业能否占用处理器必须由作业调度来决定.. B29.在操作系统中;作业处于执行状态时;已处于进程的管理之下.. A30.吞吐量是指单位时间内CPU完成作业的数量.. A31.确定作业调度算法时应主要考虑系统资源的均衡使用;使I/O繁忙型作业和CPU繁忙型作业搭配运行.. A32.作业的周转时间和平均周转时间与选用的调度算法有关.. A33.通常;为了提高效率;赋予需要大量计算的作业较高优先级;赋予需要大量输入/输出的作业较低的优先级.. B34.时间片轮转法主要用于分时系统中的进程调度.. A35.通常;为了提高效率;赋予需要大量计算的作业较高优先级;赋予需要大量输入/输出的作业较低的优先级.. B36.动态优先级算法允许进程的优先级在运行期间不断改变.. A37.计算机对中断的处理是在用户态下进行的.. B38.中断处理一般分为中断响应和中断处理两个步骤;前者由软件实施;后者由硬件实施.. B39.一个进程在执行过程中可以被中断事件打断;当相应的中断处理完成后;就一定恢复该进程被中断时的现场;使它继续执行.. B 40.采用动态重定位技术的系统;目标程序可以不经任何改动;而装入物理内存.. A41.动态存储分配时;不需要靠硬件地址变换机构实现重定位..B42.把内存物理地址转变为逻辑地址的过程称作重定位.. B43.固定分区存储管理的各分区的大小不可变化;这种管理方式不适合多道程序设计系统.. B44.可重定位分区存储管理可以对作业分配不连续的内存单元.. B45.为了提高内存的利用率;在可重定位分区分配方式中采用紧缩技术来减少内存碎片.. A46.在页式存储管理方案中;为了提高内存的利用率;允许同时使用不同大小的页面.. B47.页式存储管理系统不利于页面的共享和保护.. A48.虚拟存储器是利用操作系统产生的一个假想的特大存储器;是逻辑上扩充了内存容量;而物理内存的容量并未增加.. A49.虚拟存储方式下;程序员编制程序时不必考虑主存的容量;但系统的吞吐量在很大程度上依赖于主存储器的容量.. A50.虚拟存储空间实际上就是辅存空间.. B51.在虚拟存储系统中;操作系统为用户提供了巨大的存储空间..因此;用户地址空间的大小可以不受任何限制.. B52.虚拟存储器实际上是一种设计技巧;使主存物理容量得到扩大.. B53.Linux文件分为用户文件、目录文件和特殊文件.. B54.UNIX/Linux系统中的文件名不区分大小写..B55.文件系统要负责文件存储空间的管理;但不能完成从文件名到物理地址的转换.. B56.在文件系统的支持下;用户需要知道文件存放的物理地址.. B57.顺序结构是一种逻辑记录顺序和物理块的顺序相一致的文件结构..A58.可顺序存取的文件不一定能随机存取;但可随机存取的文件都可以顺序存取.. A59.一般的文件系统都是基于磁盘设备的;而磁带设备可以作为转储设备使用;以提高系统的可靠性.. A60.在文件系统的支持下;用户需要知道文件存放的物理地址.. B61.随机访问文件也能顺序访问;但一般效率较差.. A62.在索引文件中;建立索引表会占用额外的存储空间和访问时间.. A63.文件系统中文件的内容只能是源代码.. B64.操作系统在组织物理文件时根据存储介质的特性和用户选择的存取方法来决定存储结构.. A65.在采用树形目录结构的文件系统中;检索文件必须从根目录开始..B66.采用了二级目录结构后;可以允许不同用户在为各自的文件命名时;不必考虑重名问题;即使取了相同的名字也不会出错..A67.文件系统中;允许当某个用户打开一个共享文件后;其他用户也可以访问之.. B68.一般的文件系统都是基于磁盘设备的;而磁带设备可以作为转储设备使用;以提高系统的可靠性.. A69.共享设备是指允许多个作业在同一时刻使用的设备.. B70.计算机系统为每一台设备确定的一个用以标识它的编号;被称为设备的绝对号.. A71.通道是处理输入和输出的软件.. B72.当进程请求在主存和外设之间传送信息时;设备分配程序分配设备的过程通常是先分配通道;再分配控制器;最后分配设备.. B73.现代计算机系统中;外围设备的启动工作都是由系统和用户共同来做的.. B74.用户程序应与实际使用的物理设备无关;这种特性称作设备独立性.. A75.SPOOLing系统能实现设备管理的虚拟技术;即:将共享设备改造为独占设备..它由专门负责I/O的常驻内存的进程以及输入、输出井组成.. B76.采用SPOOLing技术情况下;可用1台计算机代替脱机技术需要的3台计算机.. A77.SPOOLing系统的主要功能是:将独占设备改造为共享设备;实现了虚拟设备功能.. A78.一个设备驱动程序可以控制同一类型的多个物理设备.. A79.一个设备驱动程序只能控制一个物理设备.. B80.在设备I/O中引入缓冲技术的目的是为了节省内存.. B81.缓冲区仅限于在CPU和I/O设备之间使用;提高了它们的并行程度..B82.凡是数据到达速率和离去速率不同的地方都可以设置缓冲区..A83.操作系统是用户与计算机之间的接口.. 对84.操作系统是系统软件中的一种;在进行系统安装时可以先安装其它软件;然后再安装操作系统..85.操作系统是整个计算机系统的控制管理中心;它对其它软件具有支配权利..因而;操作系统建立在其它软件之上86.虽然分时系统也要求系统可靠;但实时系统对可靠性的要求更高..对87.在UNIX/Linux系统上;系统调用以C函数的形式出现.. 对88.系统调用是操作系统与外界程序之间的接口;它属于核心程序..在层次结构设计中;它最靠近硬件..89.操作系统核心提供了大量的服务;其最高层是系统调用;它允许正在运行的程序直接得到操作系统的服务..对90.系统调用的调用过程是通过用户程序;运行在用户态;而被调用的过程是运行在核心态下..对91.简单地说;进程是程序的执行过程..因而;进程和程序是一一对应的..92.进程和程序是两个截然不同的概念.. 对93.程序在运行时需要很多系统资源;如内存、文件、设备等;因此操作系统以程序为单位分配系统资源..94.进程执行的相对速度不能由进程自己来控制..对95.并发是并行的不同表述;其原理相同..96.在进程状态的转换中;从就绪态转换到阻塞态是不可能实现的..对97.进程从运行状态变为阻塞状态的原因是输入或输出事件发生..对98.进程从运行状态变为阻塞状态的原因是时间片到时..99.一个进程被唤醒意味着该进程重新占有了CPU..100.进程之间的互斥;主要源于进程之间的资源竞争;从而实现多个相关进程在执行次序上的协调..101.进程A和进程B都要使用系统中同一台打印机;为了保证打印结果的正确性;两个进程要先后分别使用打印机;这属于进程的同步关系..102.临界资源是指在一段时间内;一次仅允许一个进程使用的共享资源..对103.信号量机制是一种有效的实现进程同步与互斥的工具..信号量只能由P、V操作来改变..对104.V操作是对信号量执行加1操作;意味着释放一个单位资源;如果加1后信号量的值小于等于零;则从等待队列中唤醒一个进程;现进程变为阻塞状态;否则现进程继续进行..105.利用信号量的P;V操作;进程之间可以交换大量信息..106.处于后备状态的作业已经调入内存中..107.信号量机制是一种有效地实现进程同步与互斥的工具..信号量的值只能由P、V操作来改变对108.在单CPU系统中;任何时刻真正在运行的作业至多只能有一个..对109.作业调度选中一个作业后;与该作业相关的进程即占有CPU运行.. 110.作业调度往往选择对资源需求不同的作业进行合理搭配;使得系统中个部分资源都得到均衡利用..对111.选择一个作业装入主存后;该作业能否占用处理器必须由作业调度来决定..112.在操作系统中;作业处于执行状态时;已处于进程的管理之下..对113.吞吐量是指单位时间内CPU完成作业的数量..对114.确定作业调度算法时应主要考虑系统资源的均衡使用;使I/O繁忙型作业和CPU繁忙型作业搭配运行.. 对115.作业的周转时间和平均周转时间与选用的调度算法有关.. 对116.通常;为了提高效率;赋予需要大量计算的作业较高优先级;赋予需要大量输入/输出的作业较低的优先级..117.时间片轮转法主要用于分时系统中的进程调度..对118.动态优先级算法允许进程的优先级在运行期间不断改变..对119.计算机对中断的处理是在用户态下进行的..120.中断处理一般分为中断响应和中断处理两个步骤;前者由软件实施;后者由硬件实施..121.一个进程在执行过程中可以被中断事件打断;当相应的中断处理完成后;就一定恢复该进程被中断时的现场;使它继续执行.. 122.确定作业调度算法时;应主要考虑系统资源的均衡使用;使I/O繁忙作业和CPU繁忙作业搭配运行对123.采用动态重定位技术的系统;目标程序可以不经任何改动;而装入物理内存..对124.动态存储分配时;不需要靠硬件地址变换机构实现重定位..。
为了使系统调用机制更清晰,让我们简要地考察read系统调用。
如上所述,它有三个参数:第一个参数指定文件,第二个指向缓冲区,第三个说明要读出的字节数。
几乎与所有的系统调用一样,它的调用由C程序完成,方法是调用一个与该系统调用名称相同的库过程:read。
由C程序进行的调用可有如下形式:
1.count = read(fd, buffer, nbytes);
系统调用(以及库过程)在count中返回实际读出的字节数。
这个值通常和nbytes相同,但也可能更小,例如,如果在读过程中遇到了文件尾的情形就是如此。
如果系统调用不能执行,不论是因为无效的参数还是磁盘错误,count都会被置为-1,而在全局变量errno中放入错误号。
程序应该经常检查系统调用的结果,以了解是否出错。
系统调用是通过一系列的步骤实现的。
为了更清楚地说明这个概念,考察上面的read调用。
在准备调用这个实际用来进行read系统调用的read库过程时,调用程序首先把参数压进堆栈,如图1-17中步骤1~步骤3所示。
由于历史的原因,C以及C++编译器使用逆序(必须把第一个参数赋给printf(格式字串),放在堆栈的顶部)。
第一个和第三个参数是值调用,但是第二个参数通过引用传递,即传递的是缓冲区的地址(由&指示),而不是缓冲区的内容。
接着是对库过程的实际调用(第4步)。
这个指令是用来调用所有过程的正常过程调用指令。
在可能是由汇编语言写成的库过程中,一般把系统调用的编号放在操作系统所期望的地方,如寄存器中(第5步)。
然后执行一个TRAP指令,将用户态切换到内核态,并在内核中的一个固定地址开始执行(第6步)。
TRAP指令实际上与过程调用指令相当类似,它们后面都跟随一个来自远地位置的指令,以及供以后使用的一个保存在栈中的返回地址。
然而,TRAP指令与过程指令存在两个方面的差别。
首先,它的副作用是,切换到内核态。
而过程调用指令并不改变模式。
其次,不像给定过程所在的相对或绝对地址那样,TRAP指令不能跳转到任意地址上。
根据机器的体系结构,或者跳转到一个单固定地址上,或者指令中有一8位长的字段,它给定了内存中一张表格的索引,这张表格中含有跳转地址。
跟随在TRAP指令后的内核代码开始检查系统调用编号,然后发出正确的系统调用处理命令,这通常是通过一张由系统调用编号所引用的、指向系统调用处理器的指针表来完成(第7步)。
此时,系统调用句柄运行(第8步)。
一旦系统调用句柄完成其工作,控制可能会在跟随TRAP指令后面的指令中返回给用户空间库过程(第9步)。
这个过程接着以通常的过程调用返回的方式,返回到用户程序(第10步)。
为了完成整个工作,用户程序还必须清除堆栈,如同它在进行任何过程调用之后一样(第11步)。
假设堆栈向下增长,如经常所做的那样,编译后的代码准确地增加堆栈指针值,以便清除调用read 之前压入的参数。
在这之后,原来的程序就可以随意执行了。
在前面第9步中,我们提到”控制可能会在跟随TRAP指令后面的指令中返回给用户空间库过程”,这是有原因的。
系统调用可能堵塞调用者,避免它继续执行。
例如,如果试图读键盘,但是并没有任何键入,那么调用者就必须被阻塞。
在这种情形下,操作系统会查看是否有其他可以运行的进程。
稍后,当需要的输入出现时,进程会提醒系统注意,然后步骤9~步骤11会接着进行。