操作系统高级教程-思考题-最新版

合集下载

操作系统思考题(附答案)

操作系统思考题(附答案)

操作系统思考题(附答案)操作系统思考题〈本练习仅供熟悉期末考试题型⽤〉⼀、单项选择题(本⼤题共20 ⼩题,每⼩题1 分,共20 分) 。

在每⼩题列出的四个选项中只有⼀个选项是符合题⽬要求的,请将正确选项的字母填在题⼲中的括号内。

1. ()不是基本的操作系统。

A 、批处理操作系统C 、实时操作系统B 、分时操作系统D 、⽹络操作系统2. ()不是分时系统的基本特征:A 、同时性C 、实时性B 、独⽴性D 、交互性3. 处理器执⾏的指令被分成两类,其中有⼀类称为特权指令,它只允许( )使⽤。

A 、操作员B 、联机⽤户C 、操作系统D 、⽬标程序4 . 当⽤户程序执⾏访管指令时,中断装置将使中央处理器( ) ⼯作。

A 、维持在⽬态B 、从⽬态转换到管态C 、维持在管态D 、从管态转换到⽬态5. 进程所请求的⼀次打印输出结束后,将使进程状态从( )A 、运⾏态变为就绪态B 、运⾏态变为等待态C 、就绪态变为运⾏态D 、等待态变为就绪态6. 采⽤动态重定位⽅式装⼊的作业,在执⾏中允许( )将其移动。

A 、⽤户有条件地B 、⽤户⽆条件地7 . 分页式存储管理中,地址转换⼯作是由( )完成的。

A 、硬件B 、地址转换程序C、⽤户程序 D 、装⼊程序8 . 如果允许不同⽤户的⽂件可以具有相同的⽂件名,通常采⽤( )来保证按名存取的安全。

A 、重名翻译机构B 、建⽴索引表C、建⽴指针 D 、多级⾃录结构9 . 对记录式⽂件,操作系统为⽤户存取⽂件信息的最⼩单位是( )。

A 、字符B 、数据项C 、记录D 、⽂件10. 为了提⾼设备分配的灵活性,⽤户申请设备时应指定( )号。

A 、设备类相对B 、设备类绝对C、相对 D 、绝对11.通常把通道程序的执⾏情况记录在( )中。

A 、PSWB 、PCBC 、CAWD 、CSW12. 作业调度是从输⼊井中处于( )状态的作业中选取作业调⼊主存运⾏。

A 、运⾏B 、收容C、输⼊ D 、就绪13. ⼀作业进⼊内存后,则所属该作业的进程初始时处于( )状态。

02326操作系统第4章课后思考题

02326操作系统第4章课后思考题

1、何谓之与时间有关的错误?举例说明之。

并发进程执行时一定会产生与时间有关的错误吗?为什么。

与时间有关的错误是指两个程序都以各自的速度交叉着运行,同时访问共享信息导致的错误。

比如程序A对共享变量p执行+1操作后,休眠一秒输出变量p,程序B对共享变量p执行减1操作后,休眠一秒输出变量p。

导致的结果就会和想象中的不相同。

并发程序不一定都导致时间相关的错误,我们可以对共享变量加锁来解决这个问题2、什么是临界区,什么是相关临界区,对相关临界区的使用规则?系统中某些资源一次只允许一个进程使用,则这类资源被称为临界资源,而在进程中访问临界资源的程序被称为临界区。

多个进程涉及到同一个临界资源的临界区被称为相关临界区。

使用规则:(1)只能选择一个进程进入临界区,其他进程必须等待。

(2)不能强迫一个进程无限的等待进入他的临界区(3)任何一个进程在进入临界区后都要在有限的时间内退出临界区。

3、若使用P、V操作管理某一组相关临界区,其信号量S的值在【-1,1】之间变化,当S=-1,s=0,S=1时,他们各自的物理含义是什么?当S=-1,临界区已满,且有一个进程正在等待当S=0,临界区已满当S=1, 临界区为空4、两个并发执行的进程A和B的程序如下:进程A:While(true){N = N+5;};进程B:While(true){打印N的值;N = 0;};其中,N为整数,初值为4,若进程A先执行3次循环后,进程A 和进程B又并发执行了一个循环,请写出可能出现的打印值。

答:可能出现的打印值:19,0,24。

因为N初值为4,若进程A先执行了三个循环,此时N的值为19。

当进程A和进程B并发执行时可能会有如下两种执行次序,即进程A先执行一次循环,然后再进程B执行一次循环,此时打印的是正确值24,执行后N中的值为0。

但若进程B先执行一次循环,然后再进程A执行一次循环,则打印的值是19,执行后N中的值是0。

这是错误的,即发生了与时间有关的错误。

操作系统课后习题精选答案

操作系统课后习题精选答案

操作系统课后习题精选答案操作系统作为计算机科学的基础知识之一,是每个计算机专业学生必须掌握的内容。

课后习题的作用是提供课程内容的深度和拓展,以便帮助学生更好地理解和应用所学知识。

以下是我根据自己的学习经验,总结出的操作系统课后习题精选答案。

这些答案涵盖了操作系统中的主要概念和核心原理,对于加深对操作系统的理解有很大的帮助。

1. 什么是操作系统?答案:操作系统是一组程序,它们管理和控制计算机的各种硬件和软件资源,以便于应用程序进行交互式和高效的执行。

操作系统的主要功能包括进程管理、内存管理、磁盘管理、文件管理和网络管理等。

2. 什么是进程?答案:进程是指计算机系统中正在执行的程序的实例。

一个进程可以包含一个或多个线程,并且每个进程都有自己的地址空间、各种资源和状态信息等。

操作系统通过进程管理来协调和控制多个进程的执行,以提供对计算机资源的合理和优化的利用。

3. 什么是线程?答案:线程是进程中的一个独立执行单元,它可以在进程的上下文中运行,并与其他线程共享进程的资源和状态信息等。

线程和进程之间的区别在于,进程是资源分配的基本单位,而线程是操作系统中的调度基本单位。

操作系统利用线程进行并行计算和流程处理,以便快速实现多任务处理和高效运行。

4. 什么是虚拟内存?答案:虚拟内存是操作系统提供的一种机制,用于将计算机的物理内存和应用程序的逻辑地址空间进行映射和管理。

虚拟内存的基本思想是将进程的地址空间分为若干个物理和逻辑区域,并在需要时将这些区域进行映射和替换。

这样,操作系统可以允许应用程序访问超过物理内存容量的数据,从而提高系统的内存利用率和应用程序的执行效率。

5. 什么是文件系统?答案:文件系统是一种操作系统提供的数据存储和管理机制,用于将数据组织为文件、目录和子目录等形式,并提供对文件系统中的不同组成部分进行访问、传输和维护等操作。

文件系统的主要目的是让应用程序可以访问和共享系统中的数据资源,从而有效管理和利用计算机的存储资源。

计算机操作系统课后习题答案第四版

计算机操作系统课后习题答案第四版

计算机操作系统课后习题答案第四版计算机操作系统课后习题答案(第四版)计算机操作系统是计算机系统中至关重要的组成部分,它负责管理和控制计算机的硬件和软件资源,为用户提供一个方便、高效、可靠的工作环境。

下面是对计算机操作系统第四版课后习题的答案解析。

一、操作系统的概念1、什么是操作系统?它的主要功能有哪些?操作系统是管理计算机硬件与软件资源的程序,是计算机系统的内核与基石。

它的主要功能包括处理机管理、存储器管理、设备管理、文件管理和用户接口管理等。

处理机管理负责合理分配和调度 CPU 资源,提高 CPU 利用率;存储器管理负责管理内存空间的分配、回收和保护;设备管理负责对外部设备进行有效管理和控制;文件管理负责对文件的存储、检索、共享和保护;用户接口管理则为用户提供了方便的操作界面。

2、操作系统有哪些分类?操作系统可以按照不同的标准进行分类。

按照用户数量,可分为单用户操作系统和多用户操作系统;按照任务数,可分为单任务操作系统和多任务操作系统;按照系统功能,可分为批处理操作系统、分时操作系统、实时操作系统、网络操作系统和分布式操作系统等。

1、什么是进程?进程和程序有什么区别?进程是程序在一个数据集合上的一次执行过程,是系统进行资源分配和调度的基本单位。

进程与程序的区别在于:程序是静态的指令集合,而进程是动态的执行过程;程序可以长期保存,进程具有生命周期;进程具有并发性,而程序没有;进程由程序、数据和进程控制块(PCB)组成。

2、进程的三种基本状态是什么?它们之间是如何转换的?进程的三种基本状态是就绪状态、执行状态和阻塞状态。

当进程已获得除CPU 以外的所有必要资源,只要再获得CPU 便可立即执行时,处于就绪状态;当进程正在 CPU 上运行时,处于执行状态;当进程因等待某一事件而暂时无法继续执行时,处于阻塞状态。

就绪状态到执行状态是通过进程调度实现的;执行状态到就绪状态是时间片用完或出现更高优先级的进程;执行状态到阻塞状态是进程因等待某事件而主动放弃 CPU;阻塞状态到就绪状态是等待的事件发生。

操作系统思考题答案

操作系统思考题答案

操作系统思考题答案【思考题】1.如果系统中有N个进程,运行的进程最多几个,最少几个;就绪进程最多几个最少几个;等待进程最多几个,最少几个?解:我们考虑在微机的操作系统中:系统的调度管理进程至少是在运行状态。

当有N个用户进程启动后,那么我们可以说用户的进程最多有一个在运行状态,最少有0个?有了这个条件,我们不难推出就绪进程和等待进程可能的数量。

如果我们讨论的多CPU平台的使用的操作系统,就是另外一种情况了。

所以我想题目应该给出一个系统的运行环境。

2.有没有这样的状态转换,为什么?等待—运行;就绪—等待解:进程状态转换:在进程运行过程中,由于进程自身进展情况及外界环境的变化,这三种基本状态可以依据一定的条件相互转换就绪—运行调度程序选择一个新的进程运行运行—就绪运行进程用完了时间片,运行进程被中断,因一高优先级进程处于就绪状态运行—等待当一进程必须等待时OS尚未完成服务对一资源的访问尚不能进行初始化I/O且必须等待结果等待某一进程提供输入(IPC)等待—就绪当所等待的事件发生时观察下面答案就明确了――>运行就绪等待进程的状态及其转换操作系统部分思考题及简答题3.一个状态转换的发生,是否一定导致另一个转换发生,列出所有的可能解:一般情况下,当一个状态发生转换,系统调度会将当前进程置入相应状态队列,再从相应的队列中唤醒相关进程…4.举3个日常生活中类似进程的例子医院看病的过程:等待医院开门――挂号――看病――划价――付钱――医院关门5.要不要对缓冲区(临界资源)进行互斥操作?解:对于是“只读”的临界资源,我们可以认为不需要互斥操作。

但,一定有一个对“只读”临界资源进行维护的“写”操作,那么必须要考虑缓冲区的互斥操作。

2操作系统部分思考题及简答题6.用P.V操作解决下图之同步问题:getcopyputftgget复制一个记录:Cobeginget;copy;put;Coendftg初始状态3,4,...,m22(1,2)g,c,p4,5,...,m33(1,2,3)设信息长度为m3操作系统部分思考题及简答题f[1..m]ofarraySmute某,Sempty,Sfull:=1,1,0;//(f,,t,g均为单缓冲区,不需要互斥量Smute某,Tmute某)Tmute某,Tempty,Tfull:=1,1,0Int某,y=1,1;//设有m个记录长度,一次get一个记录Proceget{。

操作系统课后习题练习精选

操作系统课后习题练习精选

操作系统课后习题练习精选在计算机科学领域中,操作系统是一个非常重要的学科。

学习操作系统的过程中,习题练习是非常重要的一环。

下面,就让我们来看一些操作系统课后习题的精选。

1. 进程与线程:进程和线程是操作系统中非常重要的两个概念。

进程是程序执行的基本单位,而线程是进程中的一个执行单元。

关于进程和线程,以下是一些常见的问题:- 进程和线程的区别是什么?- 进程的状态有哪些?- 线程同步的方法有哪些?- 线程的优先级如何设置?2. 内存管理:内存管理是操作系统的一个重要部分,它分配和释放内存,以确保系统的正常运行。

关于内存管理,以下是一些常见的问题:- 什么是内存管理?- 什么是虚拟内存?- 什么是物理内存?- 内存碎片是什么?如何处理?3. 文件系统:文件系统是对文件进行管理的一种方法。

它使得计算机可以像管理文件夹一样管理文件。

关于文件系统,以下是一些常见的问题:- 文件系统的作用是什么?- 什么是目录和子目录?- 什么是文件权限?如何设置?- 什么是索引节点?它的作用是什么?4. 输入输出系统:输入输出系统是计算机中非常重要的一部分,它允许用户与计算机进行交互。

关于输入输出系统,以下是一些常见的问题:- 输入输出系统的作用是什么?- 什么是设备驱动程序?- 什么是缓冲区?它的作用是什么?- 什么是中断?它是如何实现的?5. 多处理器和分布式操作系统:随着计算机技术的发展,多处理器和分布式操作系统越来越受到人们的关注。

关于多处理器和分布式操作系统,以下是一些常见的问题:- 多处理器的优点是什么?- 分布式操作系统的特点是什么?- 什么是集群?- 什么是死锁?如何处理?通过这些习题练习,学生可以更好地理解和掌握操作系统的基本知识,提高其解决问题的能力,从而在日后的工作和学术研究中受益匪浅。

高级操作系统题目及答案

高级操作系统题目及答案

1.在实现RPC时,调用者如何得知被调用者实际运行在哪个站点上,是一个必须要解决的问题。

⑴当系统生成与调用者对应的stub时,可把该远程站点的地址也一同并入其中,不过这种做法不太灵活。

⑵在进行调用之前,与调用者对应的stub向系统中的其它场点进行广播,请求有关的场点通报其地址,这必然引起一系列的消息转移。

特别,当这种广播是在若干网络之间进行时,其转移速度是很慢的。

⑶由系统管理一个表,其表项的内容为① 站点地址;②该场点上将运行的远程过程的名字。

“愿意”产生一个可供其它场点引用的过程的那些场点就造一个表项到这个表中,该表项给出了这些场点的地址和此远程过程的名字。

希望引用远程过程的用户可通过查询此表获取有关信息。

开发过程大致是这样的:1)调用者调用本地stub中的一个过程(开始远程过程调用请求).2) 这个stub过程把有关的参数组装成一个消息包或一组消息包, 形成一条消息. 运行此执行过程的远程场点的IP地址和执行该过程的进程ID号也包含在这条消息中.3) 将这条消息发送给对应的RPC runtime(RPC运行库)子程序, 由这个子程序将消息发送到远程场点.4) 在接收到这条消息时, server端的RPC runtime子程序引用与被调用者对应的stub中的一个子程序, 并让它来处理消息.5) 与被调用者对应的stub中的这个子程序撤卸消息, 解析出相关参数, 并用本地调用方式执行所指定的过程.6) 返回调用结果, 调用者对应的stub子程序执行return语句返回到用户, 整个RPC过程结束.2. 此3问针对集中分布式死锁检测方法a.何时或在什么情况下构造局部PWG才能反映系统资源的实际分配情况?(修改)1. 每当从局部等待图中去掉一条边或向局部等待图插入一条新边时2. 周期性的,当等待图中已经发生了若干改变时3. 每当协调者需要引用环路检测算法时以下为死锁检测的基本假设(1)进程在整个系统内统一命名(2)每个结点有一个局部等待图:Gk=(Vk, Ek),(p, q)∈Ek等价于p申请q占有结点k的资源;显然,如果局部等待图中有环,则有死锁;所有的局部等待图的并有环是系统死锁的充要条件。

操作系统教程课后习题答案

操作系统教程课后习题答案

操作系统1.什么是计算机系统?计算机系统是怎么构成的?了解PC的组成情况,说明:1)硬件组织的基本结构,画出硬件配置图;2)主要系统软件和应用软件(若有的话)他们的作用。

答:计算机系统就是按照人的要求接收和存储信息,自动进行数据处理和计算,并输出结果信息的系统。

计算机系统由硬件子系统和软件子系统组成。

计算机系统的构成包括:如图1.2计算机硬件系统的构成:如图1.42.从功能以及程序涉设计的角度说明计算机系统中软件系统是如何构成的?答:分为系统软件,支撑软件和应用软件三层。

3.什么是操作系统?请举例说明操作系统在计算机系统中的重要地位。

答:操作系统是计算机系统中的一个系统软件,是一些程序模块的集合。

它们能以尽量有效、合理的方式组织和管理计算机的软硬件资源,合理的组织计算机的工作流程,控制程序的执行并向用户提供各种服务功能,使得用户能够灵活、方便、有效的使用计算机,使整个计算机系统能安全高效地运行4.请举一个实际的例子来说明操作系统的功能。

答:你能用用操作系统管理很多资源5.为什么说“操作系统是控制硬件的软件”的说法不确切?答:操作系统不仅能够控制硬件,也可以控制各种软件资源。

6.操作系统的基本特征是什么?说明他们之间的关系。

答:1.并发性2.共享性3.随机性7.试从独立性,并发性和交互性和实时性四个方面来比较批处理系统,分时系统以及实时系统。

答:分时系统:并发性是指同时有多个用户共同使用一个计算机,宏观上看是多个人同时使用一个CPU,微观上是多个人在不同时刻轮流使用CPU.独占性,是指用户感觉不到计算机为他们服务,就好像整个系统为他所独占。

交互性:是指用户根据系统响应结果进一步提出新要求,用户直接干预每一步。

实时性:是指系统对用户提出的请求及时响应。

8.引入多道程序设计技术的起因和目的是什么?多道程序系统的特征是什么?答:多道程序设计的基本思想在内存中保持多个作业,主机可以交替的方式同时处理多个作业,一般来说任何一道作业的运行总是要交替的使用处理器和外设子案9.多道程序设计的度是指在任一给定时刻,单个CPU所能支持的进程数目最大值。

计算机操作系统高级教程

计算机操作系统高级教程

计算机操作系统高级教程第一章:操作系统概述计算机操作系统是一种管理计算机硬件和软件资源的系统软件。

本章将介绍操作系统的定义、功能、发展历程以及操作系统的分类和特点。

同时,还将探讨操作系统在计算机系统中的位置和作用。

第二章:进程管理进程是计算机中正在运行的程序的一种状态,进程管理是操作系统中最基本的任务之一。

本章将讨论进程的定义、属性和状态转换,以及进程调度和进程同步的相关算法和机制。

第三章:内存管理内存管理是操作系统中重要的功能模块,它负责管理计算机内存的分配与释放。

本章将介绍内存管理的基本概念、地址映射技术、内存分配算法和虚拟内存技术等内容。

第四章:文件系统文件系统是操作系统中用于组织和管理文件的一种数据结构。

本章将探讨文件系统的基本概念、文件的组织和存储方式,以及文件系统的实现和性能优化等方面的知识。

第五章:设备管理设备管理是操作系统中负责管理计算机硬件设备的模块。

本章将介绍设备管理的基本概念、设备分配和调度算法,以及设备驱动程序的编写和设备中断处理等内容。

第六章:网络管理随着计算机网络的普及,网络管理已成为操作系统中又一个重要的模块。

本章将探讨网络管理的基本知识、网络协议的实现以及网络安全和性能优化等方面的内容。

第七章:多处理器系统多处理器系统是指由多个处理器组成的计算机系统,它可以提高计算机的运算能力和并行处理能力。

本章将讨论多处理器系统的基本概念、体系结构以及多处理器调度和同步机制等内容。

第八章:实时系统实时系统是指能够对输入的事件或任务在规定的时间范围内作出及时响应的系统。

本章将介绍实时系统的基本概念和特点,以及实时调度算法和实时性能分析等方面的知识。

第九章:操作系统性能优化操作系统性能优化是一项重要的任务,可以提高计算机系统的整体性能和响应速度。

本章将讨论操作系统性能优化的基本原理和方法,以及性能测试和调优工具的使用。

第十章:操作系统安全操作系统安全是计算机系统中的重要问题,它涉及到计算机的信息安全和系统的保护。

新版操作系统教程课后习题解答

新版操作系统教程课后习题解答

操作系统教程课后习题参考答案习题一1.设计操作系统的主要目的是什么?设计操作系统的目的是:(1)从系统管理人员的观点来看,设计操作系统是为了合理地去组织计算机工作流程,管理和分配计算机系统硬件及软件资源,使之能为多个用户所共享。

因此,操作系统是计算机资源的管理者。

(2)从用户的观点来看,设计操作系统是为了给用户使用计算机提供一个良好的界面,以使用户无需了解许多有关硬件和系统软件的细节,就能方便灵活地使用计算机。

2.操作系统的作用可表现在哪几个方面?(1)方便用户使用:操作系统通过提供用户与计算机之间的友好界面来方便用户使用。

(2)扩展机器功能:操作系统通过扩充硬件功能和提供新的服务来扩展机器功能。

(3)管理系统资源:操作系统有效地管理系统中的所有硬件和软件资源,使之得到充分利用。

(4)提高系统效率:操作系统合理组织计算机的工作流程,以改进系统性能和提高系统效率。

(5)构筑开放环境:操作系统遵循国际标准来设计和构造一个开放环境。

其含义主要是指:遵循有关国际工业标准和开放系统标准,支持体系结构的可伸缩性和可扩展性;支持应用程序在不同平台上的可移植性和互操作性。

3.试叙述脱机批处理和联机批处理工作过程(1)联机批处理工作过程用户上机前,需向机房的操作员提交程序、数据和一个作业说明书,后者提供了用户标识、用户想使用的编译程序以及所需的系统资源等基本信息。

这些资料必须变成穿孔信息,(例如穿成卡片的形式),操作员把各用户提交的一批作业装到输入设备上(若输入设备是读卡机,则该批作业是一叠卡片),然后由监督程序控制送到磁带上。

之后,监督程序自动输入第一个作业的说明记录,若系统资源能满足其要求,则将该作业的程序、数据调入主存,并从磁带上调入所需要的编译程序。

编译程序将用户源程序翻译成目标代码,然后由连接装配程序把编译后的目标代码及所需的子程序装配成一个可执行的程序,接着启动执行。

计算完成后输出该作业的计算结果。

一个作业处理完毕后,监督程序又可以自动地调下一个作业处理。

《操作系统》习题解答

《操作系统》习题解答

《操作系统》习题解答1. 进程管理1.1 概念题1.请简述进程和线程的区别。

进程是计算机中程序执行的基本单位,每个进程都有独立的内存空间和系统资源。

线程是进程内部的一个执行流程,线程共享进程的内存空间和系统资源。

进程和线程的主要区别在于资源占用和调度级别。

2.请解释什么是上下文切换,并说明上下文切换的原因。

上下文切换是指操作系统在多道程序设计环境中,为了在多个进程之间进行切换,需要保存和恢复进程的执行状态。

上下文切换的原因主要有以下几点:–进程调度:操作系统根据调度算法,为各个进程分配CPU时间。

–中断处理:硬件或软件中断发生时,操作系统需要保存当前进程的状态,并切换到中断处理程序。

–系统调用:进程执行系统调用时,需要切换到操作系统提供的服务程序。

3.请简述进程同步和互斥的区别。

进程同步是指进程之间按照一定的顺序执行,以完成某个任务。

互斥是指在同一时刻,只有一个进程能够访问共享资源。

进程同步和互斥的主要区别在于它们解决的问题不同。

进程同步解决的是进程之间的执行顺序问题,而互斥解决的是进程对共享资源的访问问题。

1.2 计算题1.有一个单核处理器,使用轮转调度算法进行进程调度。

现有A、B、C、D四个进程,它们的执行时间分别为2ms、3ms、5ms和8ms。

假设每个进程的到达时间都为0ms,请绘制这四个进程的调度顺序和平均等待时间。

调度顺序:A -> B -> C -> D平均等待时间:(2+3+5+8)/ 4 = 4.5ms2.有一个具有两个处理器的计算机系统,使用抢占式优先级调度算法进行进程调度。

现有A、B、C、D四个进程,它们的执行时间分别为2ms、3ms、5ms和8ms,优先级分别为1、2、3、4。

假设每个进程的到达时间都为0ms,请绘制这四个进程的调度顺序和平均等待时间。

调度顺序:A -> B -> C -> D平均等待时间:(2+3+5+8)/ 4 = 4.5ms2. 内存管理2.1 概念题1.请简述虚拟内存和物理内存的区别。

中国科学院大学操作系统高级教程思考题

中国科学院大学操作系统高级教程思考题

中国科学院⼤学操作系统⾼级教程思考题1.为什么计算机启动最开始的时候执⾏的是BIOS代码⽽不是操作系统⾃⾝的代码?计算机启动的时候,内存未初始化,CPU不能直接从外设运⾏操作系统,所以必须将操作系统加载⾄内存中。

⽽这个⼯作最开始的部分,BIOS需要完成⼀些检测⼯作,和设置实模式下的中断向量表和服务程序,并将操作系统的引导扇区加载值 0x7C00处,然后将跳转⾄0x7C00。

这些就是由bios程序来实现的。

所以计算机启动最开始执⾏的是bios代码。

2.为什么BIOS只加载了⼀个扇区,后续扇区却是由bootsect代码加载?为什么BIOS没有把所有需要加载的扇区都加载?对BIOS⽽⾔,“约定”在接到启动操作系统的命令后,“定位识别”只从启动扇区把代码加载到0x7c00这个位置。

后续扇区则由bootsect代码加载,这些代码由编写系统的⽤户负责,与BIOS⽆关。

这样构建的好处是站在整个体系的⾼度,统⼀设计和统⼀安排,简单⽽有效。

BIOS 和操作系统的开发都可以遵循这⼀约定,灵活地进⾏各⾃的设计。

操作系统的开发也可以按照⾃⼰的意愿,内存的规划,等等都更为灵活。

3.为什么BIOS把bootsect加载到0x07c00,⽽不是0x00000?加载后⼜马上挪到0x90000处,是何道理?为什么不⼀次加载到位?(1)BIOS把bootsect加载到0x07c00⽽不是0x00000,是因为0x00000处存放着BIOS构建的1k⼤⼩的中断向量表和256B的BIOS数据区。

(2)加载后⼜挪到0x90000是因为,操作系统对内存的规划是在0x90000存放bootsect,然后bootsect执⾏结束之后,⽴即将系统机器数据存放在此处,这样就可以及时回收寿命结束的程序占据的内存空间。

⽽且后续会把120K的系统模块存放到0x00000处,这会覆盖0x07c00处的代码和数据。

3)不⼀次加载到位的原因是由于“两头约定”和“定位识别”,所以在开始时bootsect“被迫”加载到0X07c00位置。

02326操作系统第2章课后思考题

02326操作系统第2章课后思考题

第二章习题1. 请简述处理器的组成和工作原理。

你认为哪些部分和操作系统密切相关,为什么?处理器一般由运算器、控制器、一系列的寄存器以及高速缓存构成。

其中,运算器实现指令中的算术和逻辑运算,是计算机的核心。

控制器负责控制长征运行的流程,寄存器是一种暂时存储器件,用于CPU 执行指令的过程中暂存数据、地址以及指令信息,为CPU本身提供了一定的存储能力,但容量很小。

处理器中的运算器、控制器、寄存器都与操作系统密切相关。

操作系统就是通过对处理器中的这些部件来实现程序的运算和程序流程的控制的。

2. 为了支持操作系统,现代处理器一般都提供哪两种工作状态,以隔离操作系统和普通程序?两种状态各有什么特点?现代处理器一般都提供管态和目态等两种工作状态。

用户程序在目态下运行,只能使用非特权指令,具有较低的特权级别;操作系统在管态下运行,可以使用特权指令和非特权指令,具有较高的特权级别。

3. 计算机系统中既有操作系统程序,又有用户程序,在什么情况下操作系统才能占用中央处理器?当用户程序占用CPU时,CPU在目态下运行,只能使用非特权指令;当需要使用特权指令时,将引起一次处理器状态的切换,此时处理器通过中断机制,将目态转换为管态,然后将处理权移交给操作系统中的一段代码,操作系统才能占用CPU。

从目态变为管态其转换的惟一途径是通过中断。

5. 怎样限制用户程序中使用特权指令?当用户程序占用CPU时,CPU在目态下运行,只能使用非特权指令;若此刻CPU取到了一条特权指令,形成“非法操作”事件,CPU就拒绝执行该指令。

中断机制识别到该事件,运行状态就从目态变为管态,将控制权转给操作系统,通过操作系统通知用户修改。

6. 什么是分级的存储体系结构?它主要解决了什么问题?计算机存储系统的设计主要考虑容量、速度和成本三个问题。

容量是存储系统的基础,都希望配置尽可能大的存储系统;同时要求存储系统的读写速度能与处理器的速度相匹配;此外成本也应该在一个合适的范围之内。

(完整版)操作系统部分课后习题答案

(完整版)操作系统部分课后习题答案

第一章1.设计现代OS的主要目标是什么?方便性,有效性,可扩充性和开放性。

2.OS的作用可表现在哪几个方面?(1)OS作为用户与计算机硬件系统之间的接口。

(2)OS作为计算机系统资源的管理者。

(3)OS实现了对计算机资源的抽象。

4.试说明推动多道批处理系统形成和发展的主要动力是什么主要动力来源于四个方面的社会需求与技术发展(1)不断提高计算机资源的利用率(2)方便用户(3)器件的不断更新换代(4)计算机体系结构的不断发展。

7.实现分时系统的关键问题是什么?应如何解决关键问题是当用户在自己的终端上键入命令时,系统应能及时接收并及时处理该命令。

在用户能接受的时延内将结果返回给用户。

解决方法:针对及时接收问题,可以在系统中设置多路卡,使主机能同时接收用户从各个终端上输入的数据,为每个终端配置缓冲区,暂存用户键入的命令或数据。

针对及时处理问题,应使所有的用户作业都直接进入内存,并且为每个作业分配一个时间片,允许作业只在自己的时间片内运行。

这样在不长的时间内,能使每个作业都运行一次。

12.试从交互性、及时性以及可靠性方面,将分时系统与实时系统进行比较。

(1)及时性。

实时信息处理系统对实时性的要求与分时系统类似,都是以人所能接受的等待时间来确定,而实时控制系统的及时性,是以控制对象所要求的开始截止时间或完成截止时间来确定的,一般为秒级到毫秒级,甚至有的要低于100微妙。

(2)交互性。

实时信息处理系统具有交互性,但人与系统的交互仅限于访问系统中某些特定的专用服务程序,不像分时系统那样能向终端用户提供数据和资源共享等服务。

(3)可靠性。

分时系统也要求系统可靠,但相比之下,实时系统则要求系统具有高度的可靠性。

因为任何差错都可能带来巨大的经济损失,甚至是灾难性后果,所以在实时系统中,往往都采取了多级容错措施保障系统的安全性及数据的安全性。

13.OS有哪几大特征?其最基本的特征是什么?并发性、共享性、虚拟性和异步性四个基本特征。

操作系统高级教程

操作系统高级教程

操作系统高级教程在当今数字化的时代,操作系统如同计算机的灵魂,掌控着计算机硬件与软件资源的分配和管理。

对于那些渴望深入了解计算机内部工作机制的人来说,掌握操作系统的高级知识是至关重要的。

操作系统的核心任务之一是进程管理。

进程可以被理解为正在运行的程序实例。

在多任务操作系统中,多个进程可以同时运行,这就需要高效的调度算法来决定哪个进程何时获得 CPU 时间。

常见的调度算法包括先来先服务、短作业优先、时间片轮转等。

先来先服务简单直观,但可能导致短作业等待时间过长;短作业优先能提高系统的吞吐率,但可能对长作业不公平;时间片轮转则保证了每个进程都能获得一定的 CPU 时间,适用于交互性较强的系统。

内存管理是操作系统的另一个关键领域。

内存是计算机存储程序和数据的地方,如何合理地分配和回收内存,以提高内存的利用率和系统性能,是内存管理要解决的问题。

常见的内存管理方式有分页存储管理和分段存储管理。

分页存储管理将内存划分为固定大小的页,便于内存的分配和回收,但可能会产生内部碎片;分段存储管理则根据程序的逻辑结构将内存划分为不同的段,减少了内部碎片,但段的大小不固定,管理相对复杂。

文件系统是操作系统用于组织和存储数据的重要机制。

文件系统不仅要考虑如何高效地存储文件,还要提供方便的文件操作接口,如创建、删除、读取和写入。

不同的文件系统具有不同的特点,如FAT32、NTFS、EXT4 等。

FAT32 兼容性好,但不支持大文件和大分区;NTFS 则具有更好的安全性和性能,支持大文件和大分区;EXT4 是 Linux 系统常用的文件系统,具有良好的性能和扩展性。

设备管理也是操作系统不可忽视的一部分。

计算机系统中的设备种类繁多,包括输入设备(如键盘、鼠标)、输出设备(如显示器、打印机)和存储设备(如硬盘、U盘)等。

操作系统需要为这些设备提供驱动程序,以实现设备与系统的通信和控制。

同时,还需要采用合适的 I/O 控制方式,如程序直接控制、中断驱动、DMA 等,来提高I/O 操作的效率。

高级操作系统答案

高级操作系统答案

一、解释1、分布式系统:分布式系统是一些独立的计算机的集合,对该系统的用户来说,系统就像一台计算机一样,即:由大量CPU组成的计算机系统。

这个定义有两方面的含义:第一,从硬件角度看,每台计算机都是自主的;第二,从软件角度看,用户将整个系统视为一台计算机。

2、微内核的主要任务微内核具有更好的灵活性。

主要提供四种服务:(1) 进程间的通信机制。

(2) 某些内存管理功能。

(3) 少量的低层进程管理和调度。

(4) 低层输入和输出服务。

3、ATM对分布式系统的影响A、延时:需要新的协议和系统结构处理B、流量控制:信元淹没C、阻塞控制:防止数据丢失4、原子事务的基本特性事务具有四个重要特性:(1)原子性(Atomic):对外界来说,事务的发生是不可分割的(2)一致性(Consistent):事务不会破坏系统的恒定(3)独立性(Isolated):并发的事务不会互相干扰(4)持久性(Durable):一旦事务提交,所做的改变永远有效5、并行透明性并行透明性就是系统的活动可以在用户没有感觉的情况下并行发生(同时发生),即整个分布式并行服务器在用户看起来就像一个传统的单处理机分时系统。

6、请说出微内核优于单内核的两个优点答:(1)微内核系统具有高度的模块化,对于每一个服务都有一个定义好的借口,每一个服务程序对所有客户来说都是可以访问的,且和位置无关。

(2)微内核系统具有很高的灵活性,易于实现、安装和调试新的服务程序,因为增加或者改变一个服务程序不需要像有一个单内核那样停止系统和启动一个新的内核。

二、计算题1、一个ATM系统以OC-3的速率传递信元,每个包48字节长,刚好放进一个信元,一个中断耗时1μs,CPU用于中断处理的时间是多少?如果包长是1024字节呢?答:OC-3的数据传输速率为155.520Mbps,由题意可知,一个信元是48字节。

可得每秒传递包(信元)的数目为:((155.520*1024*1024)bps/8)/53=384609.76每进入一个包产生一次中断,一个中断耗时1μs,一秒内共产生384609.76个中断。

  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

1.进程0创建进程1时,为进程1建立了自己的task_struct、内核栈,第一个页表,分别位于物理内存16MB的顶端倒数第一页、第二页。

请问,这个了页究竟占用的是谁的线性地址空间,内核、进程0、进程1、还是没有占用任何线性地址空间?说明理由并给出代码证据。

答:两次都是通过调用get_free_page()在物理内存里申请一个物理页,由于在head.s中决定内核的物理地址和线性地址是一一对应的。

因此这两个页都在内核的线性地址空间内。

setup_paging:movl $1024*5,%ecx/* 5 pages - pg_dir+4 page tables */xorl %eax,%eaxxorl %edi,%edi/* pg_dir is at 0x000 */cld;rep;stoslmovl $pg0+7,_pg_dir/* set present bit/user r/w */movl $pg1+7,_pg_dir+4/* --------- " " --------- */movl $pg2+7,_pg_dir+8/* --------- " " --------- */movl $pg3+7,_pg_dir+12/* --------- " " --------- */movl $pg3+4092,%edimovl $0xfff007,%eax/* 16Mb - 4096 + 7 (r/w user,p) */std1:stosl/* fill pages backwards - more efficient :-) */subl $0x1000,%eaxjge 1b2.假设:经过一段时间的运行,操作系统中已经有5个进程在运行,且内核分别为进程4、进程5分别创建了第一个页表,这两个页表在谁的线性地址空间?用图表示这两个页表在线性地址空间和物理地址空间的映射关系。

答:大师兄!!3.进程0开始创建进程1,调用了fork(),跟踪代码时我们发现,fork代码执行了两次,第一次,跳过init()直接执行了for(;;) pause(),第二次执行fork代码后,执行了init()。

奇怪的是,我们在代码中并没有看见向后的goto语句,也没有看到循环语句,是什么原因导致反复执行?请说明理由,并给出代码证据。

答:大师兄!!4.copy_process函数的参数最后五项是:long eip,long cs,long eflags,long esp,long ss。

查看栈结构确实有这五个参数,奇怪的是其他参数的压栈代码都能找得到,确找不到这五个参数的压栈代码,反汇编代码中也查不到,请解释原因。

答:在执行int n这条中断指令时(在此即为int 0x80),系统会自动把ss esp rflags cs eip这五个寄存器的值压入栈中。

5.用图表示下面的几种情况,并从代码中找到证据:a、当进程获得第一个缓冲块的时候,hash表的状态。

b、经过一段时间的运行,已经2000多个buffer_head挂到hash_table上时,hash表(包括所有的buffer_head)的整体状态。

c、经过一段时间的运行,有的缓冲块已经没有进程使用了(空闲),这样的空闲缓冲块是否会从hash_table上脱钩?d、经过一段时间的运行,所有的buffer_head都挂到hash_table上了,这时,又有进程申请空闲缓冲块,将会发生什么?解释原因并找到代码证据。

答:见书上P100-P01.6.rd_load()执行完之后,虚拟盘已经成为可用的块设备,并成为根设备。

在向虚拟盘中copy任何数据之前,虚拟盘中是否有引导块、超级块、i节点位图、逻辑块位图、i节点、逻辑块?请解释其中的道理,并给出代码证据。

答:在rd_load()执行之前,虚拟盘经初始化后中存放的全是0。

rd_init()中的代码段:---P46cp = rd_start;for (i=0; i < length; i++)*cp++ = '\0';且拷贝数据也是从虚拟盘开始处进行存放的。

rd_load()中的代码:---P121cp = rd_start;while (nblocks) {if (nblocks > 2)bh = breada(ROOT_DEV, block, block+1, block+2, -1);elsebh = bread(ROOT_DEV, block);…}(void) memcpy(cp, bh->b_data, BLOCK_SIZE);…}7.在虚拟盘被设置为根设备之前,操作系统的根设备是软盘(包括软驱),请说明设置软盘为根设备的技术路线,并给出代码证据。

(提示:注意bootsect.s的249行,508这个数值。

.org 508root_dev:.word ROOT_DEV)答:在bootsect.s程序的开始处有一条语句对ROOT_DEV进行赋值。

之后执行如下代码,确定所使用的根设备:seg csmov ax,root_devcmp ax,#0jne root_definedseg csmov bx,sectorsmov ax,#0x0208! /dev/ps0 - 1.2Mbcmp bx,#15je root_definedmov ax,#0x021c! /dev/PS0 - 1.44Mbcmp bx,#18je root_definedundef_root:jmp undef_rootroot_defined:seg csmov root_dev,ax#1、首先会判断根设备是否已经设置,如果设置(如ROOT_DEV=0x306)则直接跳过。

否则执行判定。

#2、通过每磁道的扇区数判别是1.2Mb还是1.44Mb的软盘,判定完成后跳到末尾处。

通过代码调试,发现该段代码执行完之后,存在地址0x901fc处的ROOT_DEV的值为0x021c,即为 1.44Mb的软盘。

#3、在main函数开始时,执行====ROOT_DEV = ORIG_ROOT_DEV;======把存放于0x901fc处的值赋给ROOT_DEV。

++++#define ORIG_ROOT_DEV (*(unsigned short *)0x901FC)8.Linux0.11是怎么将根设备从软盘更换为虚拟盘,并加载了根文件系统?用文字、图示表示,并给出代码证据。

答:大师兄!!9.内核的线性地址空间是如何分页的?画出从0x000000开始的7个页(包括页目录表、页表所在页)的挂接关系图,就是页目录表的前四个页目录项、第一个个页表的前7个页表项指向什么位置?给出代码证据。

答:Head.s中:setup_paging:movl $1024*5,%ecx/* 5 pages - pg_dir+4 page tables */xorl %eax,%eaxxorl %edi,%edi/* pg_dir is at 0x000 */cld;rep;stoslmovl $pg0+7,pg_dir/* set present bit/user r/w */movl $pg1+7,pg_dir+4/* --------- " " --------- */movl $pg2+7,pg_dir+8/* --------- " " --------- */movl $pg3+7,pg_dir+12/* --------- " " --------- */_pg_dir用于表示内核分页机制完成后的内核起始位置,也就是物理内存的起始位置0x000000,以上四句完成页目录表的前四项与页表1,2,3,4的挂接movl $pg3+4092,%edimovl $0xfff007,%eax/* 16Mb - 4096 + 7 (r/w user,p) */std1:stosl/* fill pages backwards - more efficient :-) */subl $0x1000,%eaxjge 1b完成页表项与页面的挂接,是从高地址向低地址方向完成挂接的,16M内存全部完成挂接10.用文字和图说明中断描述符表是如何初始化的,可以举例说明(比如:set_trap_gate(0,&divide_error)),并给出代码证据。

答:对中断描述符表的初始化,就是将异常处理一类的中断服务程序与中断描述符表进行挂接。

以set_trap_gate(0,&divide_error)为例,0表示该中断函数的地址挂接在中断描述符表的第0项位置处,而&devide_error就是该异常处理函数的地址。

对set_trap_gate(0,&divide_error)进行宏展开后得到#define set_trap_gate(0,&devide_error)\_set_gate(&idt[0],15,0,&devide_error)之后执行如下代码:#define _set_gate(&idt[0],15,0,&devide_error)(gate_addr,type,dpl,addr) \__asm__ ("movw %%dx,%%ax\n\t" \"movw %0,%%dx\n\t" \"movl %%eax,%1\n\t" \"movl %%edx,%2" \: \: "i" ((short) (0x8000+(0<<13)+(15<<8))), \"o" (*((char *) (&idt[0]))), \"o" (*(4+(char *) (&idt[0]))), \"d" ((char *) (&devide_error)),"a" (0x00080000))%0=0x8f00,%1指向idt[0]的起始地址,%2指向四个字节之后的地址处。

#1、将地址&devide_error放在EAX的低两个字节,EAX的高两字节不变。

#2、把0x8f00放入EDX的低两字节,高两字节保持不变。

#3、把EAX放在%1所指的地址处,占四字节。

#4、将EDX放在%2所指的地址处,占四字节。

大师兄!!11.为什么计算机启动最开始的时候执行的是BIOS代码而不是操作系统自身的代码?答:因为在计算机上电启动的时候,内存里没有任何代码,需要借助于BIOS代码进行加载引导扇区以及系统代码,在进行一系列的配置(如加载中断向量表和中断服务程序等)后才能够执行操作系统自身的代码。

相关文档
最新文档