没有合适的资源?快使用搜索试试~ 我知道了~
操作系统基础概述; 操纵系统笔试基础题详解; 各大公司操作系统笔试详解;
资源推荐
资源详情
资源评论
操作系统概述
1 学习指导
主要介绍操作系统的基本概念、特性和分类,从操作系统的地位和作用两个方面给出了操作系统
的描述性定义。应当注意操作系统程序的特殊性以及操作系统与硬件和其他软件之间的关系,理解操
作系统和计算机系统的运作机理。
介绍了操作系统运行的硬件环境,这个介绍是基本的但不是完全的,读者还应参考已经学习过的
计算机组成原理和计算机系统结构。操作系统的上层界面,即用户和应用程序与操作系统进行交互的
途径。
2 习题解答
1.硬件将处理机状态划分为两种,即管态和目态,这样做给操作系统设计带来什么好处?
答:便于设计安全可靠的操作系统。管态和目态是计算机硬件为保护操作系统免受用户程序的干
扰和破坏而设置的两种状态。通常操作系统在管态下运行,可以执行所有机器指令;而用户程序在目
态下运行,只能执行非特权指令。如果用户程序企图在目态下执行特权指令,将会引起保护性中断,
由操作系统终止该程序的执行,从而保护了操作系统。
2.何谓特权指令?举例说明之。如果允许用户进程执行特权指令,会带来什么后果?
答:在现代计算机中,一般都提供一些专门供操作系统使用的特殊指令,这些指令只能在管态执
行,称为特权指令。这些指令包括:停机指令、置 PSW 指令、中断操作指令(开中断、关中断、屏蔽
中断)、输入输出指令等。
用户程序不能执行这些特权指令。如果允许用户程序执行特权指令,就有可能干扰操作系统的正
常运行,甚至有可能使整个系统崩溃。
3.中断向量在机器中的存储位置是由硬件确定的还是由软件确定的?
答:中断向量在机器中的存储位置是由硬件确定的。例如,在 Intel 80x86 CPU 中,内存空间
0x00000H~ox003FFH 为中断向量空间。
4.中断向量的内容是由操作系统程序确定的还是由用户程序确定的?
答:由操作系统程序确定的。中断向量的内容包括中断处理程序的入口地址和程序状态字(中断
处理程序运行环境),中断处理程序是由操作系统装入内存的,操作系统将根据装入的实际地址和该
中断处理程序的运行环境来填写中断向量。
5 中断向量内的处理机状态位应当标明是管态还是目态?为什么?
答:应当标明是管态。该状态由系统初始化程序设置,这样才能保证中断发生后进入操作系统规
定的中断处理程序。
6.中断与程序并发之间的关系是什么?
答:中断是程序井发的前提条件。如果没有中断,操作系统不能获得系统控制权,无法按调度算
法对处理机进行重新分配,一个程序将一直运行到结束而不会被打断。
7.说明“栈”和“堆”的差别。
答:栈是一块按照后进先出(last in rst out,LIFO)规则访问的存储区域,用来实现中断嵌套
和子程序嵌套(保存调用参数和返回断点)。堆虽然是一块存储区域,但是对堆的访问是任意的,没
有后进先出的要求,堆主要用来为动态变量分配存储空间。
8.何谓系统钱?何谓用户栈?系统栈有何用途?用户栈有何用途?
答:系统栈是内存中属于操作系统空间的一块固定区域,其主要用途为:( 1)保存中断现场,对
于嵌套中断,被中断程序的现场信息依次压人系统栈,中断返回时逆序弹出;( 2)保存操作系统子程
序间相互调用的参数、返回值、返回点以及子程序(函数)的局部变量。
用户栈是用户进程空间中的一块区域,用于保存用户进程的子程序间相互调用的参数、返回值、
返回点以及子程序(函数)的局部变量。
9.用户堆栈段的长度为何无法确定?
答:用户堆栈段的长度主要取决于如下因素:(1)用户进程(线程)中子程序(函数)之间的锻
套调用深度;(2)子程序参数和局部变量的数量及类型;(3)动态变量的使用。这些在进程(线
程)运行前无法确定,由此导致用户堆栈段的长度无法预先准确确定。
10.堆栈段的动态扩充为何可能导致进程空间的搬迁?
答:堆栈段的扩充需要在原来进程空间大小的基础上增添新的存储区域,而且通常要求与原来存
储区域连续。由于原存放位置处可扩展的区域可能已经被其他进程占用,故可能需要将整个进程空间
搬迁到另外一个区域,以实现地址空间扩展要求。
11.何谓并行?何谓并发?在单处理机系统中下述并行和并发现象哪些可能发生?哪些不会发生?
(1)进程与进程之间的并行;
(2)进程与进程之间的并发;
(3)处理机与设备之间的并行;
(4)处理机与通道之间的并行;
(5)通道与通道之间的并行;
(6)设备与设备之间的并行。
答:所谓并行是指同一时刻同时进行,进程并行需要多处理器的支持;所谓并发,是指在一段时
间内,多个进程都在向前推进,而在同一时刻,可能只有一个进程在执行,多个过程轮流使用处理器。
在单处理机系统中,可能发生的并行和并发现象如下:
(1)进程与进程之间的并发。例如,在 Windows 操作系统中,MP3 播放进程和 Word 字处理进
程可以并发执行,这样用户就可以边听音乐边写文章了。
(2)处理机与设备之间的并行。例如,当处理机进行科学运算时,打印机可以打印文档。
(3)处理机与通道之间的并行 i 通道程序的执行可与处理机的操作并行。
(4)通道与通道之间的并行。通常一个系统中有多个通道,这些通道可以并行地执行相应的通道
程序。
(5)设备与设备之间的并行。例如,打印机打印文档时,磁带机在输入数据。
12.何谓作业?它包括哪几个部分?各部分的用途是什么?
答:所谓作业是指用户要求计算机系统为其完成的计算任务的集合,一个作业通常包括程序、程
序所处理的数据以及作业说明书。程序用来完成特定的功能,数据是程序处理的对象,作业说明书用
来说明作业处理的步骤和控制意图。
13.从透明性和资源共享两方面说明网络操作系统与分布式操作系统之间的差别。
答:从透明性上看,分布式操作系统优于网络操作系统。网络用户能够感觉到所访问的资源是在
本地还是在异地;而在分布式系统中,用户感觉不到所访问的资源是否在本地。分布式操作系统掩盖
了资源在地理位置上的差异。
从资源共事上看,分布式操作系统比网络操作系统能共享更多的资源。在网络操作系统中,一个
计算任务不能由一台主机任意迁移到另外一台主机上运行;而在分布式操作系统中,所有作业可以由
一台主机任意迁移到另外一台主机上处理,即可实现处理机和存储资源的共享,从而达到整个系统负
载平衡。
14.为什么构成分布式系统的主机一般都是相同的或兼容的?
答:这样更有利于进程的动态迁移。如果主机之间不兼容,则在一台主机上能运行的进程,因所
用指令系统不同,在另一台主机上可能无法运行,导致进程难于在不同主机间迁移,使得分布式系统
难于实现负载平衡。
15.为什么嵌入式操作系统通常采用微内核结构?
答:嵌入式操作系统与上般操作系统相比具有比较明显的差别:(1)嵌入式操作系统规模一般较
小。因为硬件配置一般较低,而且对操作系统提供的功能要求也不高。( 2)应用领域差别大。对于不
同应用,其硬件环境和设备配置情况有明显差别。
所以,嵌入式操作系统一般采用微内核(microkernel)结构。微内核包括如下基本功能:(1)
处理机调度;(2)基本内存管理;(3)通讯机制;(4)电源管理。在这些基本功能之上可进行扩
展,以适应不同应用目标。
进程、线程
1 学习指导
操作系统管理的对象包括被动体(资源)和活动体,这里在组织上将操作系统中的三种活动体
(作业、进程与线程)集中介绍,目的是 更清楚地分析认识三者之间的关系。考虑到批处理系统越来
越少,作业这个概念将被适当淡化。
进程是操作系统最重要的概念之一,应从“动态”与“并发”两个方面去理解进程。进程状态转换图刻
画了进程的动态性与并发性,所有进程的状态转换图是同构的,每个进程在生存期内其状态要经过许
多次转换,每次转换都伴随现场的保存与恢复,PCB(Process Control Block,进程控制块)是使多
进程能够并发执得的重要数据结构。
线程是近年来操作系统中的一个重要概念,从本质上来说,线程就是具有公共存储区的进程。由
于公共存储区的存在,同一进程中多个线程之间的通讯变得容易,线程切换速度得到提高。用户级线
程与系统级线程各有其优点和不足,也正因为这个原因,在操作系统支持多线程后,用户级线程仍被
保持。
2 习题解答
1.为何引入多道程序设计?在多道程序系统中,内存中作业的道数是否越多越好?清说明原因。
答:引入多道程序设计技术是为了提高计算机系统资源的利用率。在多道程序系统中,内存中作
业的道数并非越多越好。一个计算机系统中的内存户 D 设等资源是有限的,只能容纳适当数量的作业,
当作业道数增加时,将使得资源的竞争激烈,进程切换频繁,系统开销增大,从而导致作业的执行缓
慢,系统效率下降。
2.什么是进程?进程具有哪些主要特性?比较进程与程序之间的相同点与不同点。
答:进程是具有一定独立功能的程序关于一个数据集合的一次运行活动。
进程具有以下主要特性:(1)并发性:可以与其他进程一起在宏观上同时向前推进。(2)动态
性:进程是执行中的程序。此外,进程的动态性还体现在如下两个方面。首先,进程是动态产生、动
态消亡的;其次,在进程的生存期内,其状态处于经常性的动态变化之中。( 3)独立性:进程是调度
的基本单位,它可以获得处理机并参与并发执行。(4)交往性:进程在运行过程中可能会与其他进程
发生直接或间接的相互作用。(5)异步性:每个进程都以其
相对独立、不可预知的速度向前推进。(6)结构性:每个进程有一个控制块 PCB。
进程和程序的相伺点:程序是构成进程的组成部分之一,一个进程存在的目的就是执行其所对应
的程序,如果没有程序,进程就失去了其存在的意义。
进程与程序的不同点:(1)程序是静态的,而进程是动态的。(2)程序可以写在纸上或在某一
存储介质上长期保存,而进程具有生存期,创建后存在,撤销后消亡。( 3)一个程序可以对应多个进
程,但一个进程只能对应一个程序。例如,一组学生在一个分时系统中做 C 语言实习,他们都需要使
用 C 语言的编译程序对其源程序进行编译,为此每个学生都需要有一个进程,这些进程都运行 C 语言
的编译程序。另外,一个程序的多次执行也分别对应不同的进程。
3.有人说用户进程所执行的程序一定是用户自己编写的。这种说法对吗?如不对,请举例说明之。
答:这种说法不对。例如,C 编译程序以用户进程身份运行,但 C 编译程序通常并不是用户自己
编写的。此外还有调试程序。字处理程序等工具软件也不是用户自己编写的。
4.什么是进程上下文?进程上下文包括哪些成分?哪些成分对目态程序是可见的?
答:进程是在操作系统支持下运行的,进程运行时操作系统需要为其设置相应的运行环境,如系
统堆栈、地址映射寄存器、打开文件表、PSW 与 PC、通用寄存器等。在 UNIX System V 中,将进
程的物理实体与支持进程运行的物理环境合称为进程上下文(process context)。进程上下文包括
三个组成部分:
(1)用户级上下文。是由用户进程的程序块、用户数据块(含共享数据块)和用户堆残组成的进
程地址空间。
(2)系统级上下文。包括进程控制块、内存管理信息、进程环境块以及系统堆栈等组成的进程地
址空间。
(3)寄存器上下文。由程序状态字寄存器。各类控制寄存器、地址寄存器、通用寄存器、用户堆
栈指针等组成。
其中,用户缴上下文和部分寄存器上下文对目态程序是可见的。
5.进程一般具有哪三个主要状态?举例说明状态转换的原因。
答:进程在其生存期内可能处于如下三种基本状态之一:
(1)运行态(Run):进程占有处理机资源,正在运行。显然,在单处理机系统中任一时刻只能
有一个进程处于此种状态。
(2)就绪态(Ready):进程本身具备运行条件,但由于处理机的个数少于可运行进程的个数,
暂末投入运行,即相当于等待处理机资源。
( 3 ) 等 待 态 ( Wait ) : 也 称 挂 起 态 ( Suspended ) 、 封 锁 态 ( Blocked ) 。 睡 眠 态
(Sleep)。进程本身不具备运行条件,即使分给它处理机也不能运行。进程正等待某一个事件的发生
如等待某一资源被释放,等待与该进程相关的 I/O 传输的完成信号等。
进程的三个基本状态之间是可以相互转换的。具体地说,当一个就绪进程获得处理机时,其状态
由就绪变为运行;当一个运行进程被剥夺处理机时,如用完系统分给它的时间片、出现更高优先级别
的其他进程时,其状态由运行变为就绪;当一个运行进程因某事件受阻时,如所申请资源被占用、启
动 I/O 传输未完成时,其状态由运行变为等待;当所等待事件发生时,如得到申请资源、I/O 传输完
成时,其状态由等待变为就绪。
6.有几种类型进程队列?每类各应设置几个队列?
答:通常,系统中的进程队列分为如下三类:
(1)就绪队列:整个系统一个。所有处于就绪状态的进程按照某种组织方式排在这一队列中,进
程入队列和出队列的次序与处理机调度算法有关。在某些系统中,就绪队列可能有多个,用以对就绪
进程分类,以方便某种调度策略的实施。
(2)等待队列:每个等待事件一个。当进程等待某一事件时,进入与该事件相关的等待队列中;
当某事件发生时,与该事件相关的一个或多个进程离开相应的等待队列,进入就结队列。
(3)运行队列:在单 CPU 系统中只有一个,在多 CPU 系统中每个 CPU 各有一个。每个队列中
只有一个进程,指向运行队列头部的指针被称作运行指示字。
7.线程控制块 TCB 中一般应包含哪些内容?
答:一般 TCB(Thread Control Block,线程控制块)中的内容较少,因为有关资源分配等多数
信息已经记录于所属进程的 PCB 中。TCB 中的主要信息包括线程标识、线程状态、调度参数、现场、
链接指针,其中现场信息主要包括通用寄存器、指令计数器 PC 以及用户栈指针。对于操作系统支持的
线程,TCB 中还应包含系统栈指针。
8.同一进程中的多个线程有哪些成分是共用的,哪些成分是私用的?
答:同一进程中的多个线程共享进程所获得的主存空间和资源,包括代码区、数据区、动态堆空
间。线程的私有成分包括:(l)线程控制块;(2)一个执行栈;(3)运行时动态分配给线程的寄存
器。
9.比较用户级线程与系统级线程间在以下几方面的差别和各自的优缺点。
(1)创建速度;(2)切换速度;(3)并行性;(4)TCB 的存储位置。
答:用户级线程由系统库支持。线程的创建和撤销以及线程状态的变化都由库函数控制并在目态
完成,与线程相关的控制结构 TCB 保存在目态空间并由运行系统维护。由于线程对操作系统不可见,
系统调度仍以进程为单位,核心栈的个数与进程个数相对应。
用户级线程的优点在于:(1)线程不依赖于操作系统,可以采用与问题相关的调度策略,灵活性
好;(2)同一进程中的线程切换不需进入操作系统,因而实现效率较高。缺点在于:(1)即使在多
处理机环境中,同一进程中的多个线程也不能真正并行;(2)由于线程对操作系统不可见,调度在进
程级别,某进程中的一个线程通过系统调用进人操作系统若受阻,该进程的其他线程也不能运行。
核心绞线程通过系统调用由操作系统创建,线程的控制结构 TCB 保存于操作系统空间,线程状态
转换由操作系统完成,线程是 CPU 调度的基本单位。另外,由于系统调度以线程为单位,操作系统还
需要为每个线程保持一个核心栈。
核心级线程的优点是并发性好,在多 CPU 环境中同一进程的多个线程可以真正并行执行。缺点是
线程控制和状态转换需要进入操作系统完成,系统开销比较大。
10.何谓作业?何谓作业步?作业何时转为进程?
答:作业是早期批处理系统所引入的一个概念。用户要求计算机系统为其完成的计算任务的集合
称为作业,分时用户在一次登录后所进行的交互过程也常被看作一个作业。
一般来说,作业是比进程大的一个概念,一个作业通常包含多个计算步骤,作业中一个相对独立
的处理步骤称为一个作业步。当作业被作业调度程序选中并调入内存时,将按作业步创建相应进程。
作业步骤之间具有顺序或并发关系。一个作业步通常可以由一个进程来完成,这样一个作业在内存处
理时通常与多个进程相对应,即作业与进程具有一对多的关系。
11.分析作业、进程、线程三者之间的关系。
答:一个作业被调入内存执行时可能要为其创建多个进程,进程是资源分配的基本单位,一个进
程可能对应若干个线程,线程是处理器调度的基本单位。
12.何谓系统开销?试举三个例子说明之。
答:运行操作系统程序,实现系统管理所花费的时间和空间称为系统开销。例如,操作系统的内
核要占用内存空间,页面调度时要占用设备资源并消耗处理器时间,进程切换时.也要占用处理器时
间。
互斥、同步与通讯
1 学习指导
互斥与同步是操作系统与并发程序设计的核心问题,为此操作系统必须提供用于实现同步的机制。
从本质上讲,同步工具就是能用于进程(线程)等待或唤醒的机制,目前实现的同步机制各有特点。
学习这一部分不仅需要准确理解并牢记各种同步机制的定义,更重要的是要学会使用各种同步机制去
解决实际同步问题。
如何使用同步机制解决各种同步问题,需要分析和学习典型例子,并通过一定数量的练习提高解
题技巧。
2 习题解答
1.何谓与时间有关的错误?举例说明之。
答:并发进程的执行实际上是进程活动的某种交叉,某些交叉次序可能得到错误的结果。由于具
体交叉的形式与进程的推进速度有关,而速度是时间的函数,因而将这种错误称为与时间有关的错误。
例如,两个并发进程的程序如下:
main( )
{int n=0;
创建进程 A;
创建进程 B;
};
A( ) B( )
{while(1); {while(1);
n++; 睡眠一段时间;
} printf(“%d”,n);
}; n=0;
剩余25页未读,继续阅读
资源评论
lutao148
- 粉丝: 2
- 资源: 12
上传资源 快速赚钱
- 我的内容管理 展开
- 我的资源 快来上传第一个资源
- 我的收益 登录查看自己的收益
- 我的积分 登录查看自己的积分
- 我的C币 登录后查看C币余额
- 我的收藏
- 我的下载
- 下载帮助
安全验证
文档复制为VIP权益,开通VIP直接复制
信息提交成功