吉大操作系统习题集.docx
- 文档编号:29533341
- 上传时间:2023-07-24
- 格式:DOCX
- 页数:81
- 大小:74.75KB
吉大操作系统习题集.docx
《吉大操作系统习题集.docx》由会员分享,可在线阅读,更多相关《吉大操作系统习题集.docx(81页珍藏版)》请在冰豆网上搜索。
吉大操作系统习题集
吉大操作系统习题集
第一章操作系统概述
学习指导:
本章主要介绍操作系统的基本概念、特性和分类,从操作系统的地位和作用两个方面给出了操作系统的描述性定义。
读者应当注意操作系统程序的特殊性,以及操作系统与硬件和其它软件之间的关系,理解操作系统和计算机系统的运作机理。
习题解答:
1.硬件将处理机划分为两种状态,即管态和目态,这样做给操作系统设计带来什么好处?
答:
便于设计安全可靠的操作系统。
管态和目态是计算机硬件为保护操作系统免受用户程序的干扰和破坏而引入的两种状态。
通常操作系统在管态下运行,可以执行所有机器指令;而用户程序在目态下运行,只能执行非特权指令。
如果用户程序企图在目态下执行特权指令,将会引起保护性中断,由操作系统终止该程序的执行,从而保护了操作系统。
2.何谓特权指令?
举例说明之。
如果允许用户进程执行特权指令会带来什么后果?
答:
在现代计算机中,一般都提供一些专门供操作系统使用的特殊指令,这些指令只能在管态执行,称为特权指令。
这些指令包括:
停机指令、置PSW指令、中断操作指令(开中断、关中断、屏蔽中断)、输入输出指令等。
用户程序不能执行这些特权指令。
如果允许用户程序执行特权指令,有可能干扰操作系统的正常运行,甚至有可能使整个系统崩溃。
3.中断向量在机器中的存储位置是由硬件确定的,还是由软件确定的?
答:
中断向量在机器中的存放位置是由硬件确定的。
例如,在INTEL80x86CPU中,内存空间0x00000—0x003ff为中断向量空间。
4.中断向量的内容是由操作系统程序确定的,还是由用户程序确定的?
答:
由操作系统程序确定的。
向量的内容包括中断处理程序的入口地址和程序状态字(中断处理程序运行环境),中断处理程序是由操作系统装入内存的,操作系统将根据装入的实际地址和该中断处理程序的运行环境来填写中断向量。
5.中断向量内的处理机状态位应当标明是管态还是目态?
为什么?
答:
应当标明是管态。
这样才能保证中断发生后进入操作系统规定的中断处理程序。
6.中断与程序并发之间的关系是什么?
答:
中断是程序并发的前提条件。
如果没有中断,操作系统不能获得系统控制权,无法按调度算法对处机进行重新分配,一个程序将一直运行到结束而不会被打断。
7.说明“栈”和“堆”的差别.
答:
栈是一块按后进先出规则访问的存储区域,用来实现中断嵌套和子程序调用的参数和返回断点。
堆虽然是一块存储区域,但是对堆的访问是任意的,没有后进先出的要求,堆主要用来为动态变量分配存储空间。
8.何谓系统栈?
何谓用户栈?
系统栈有何用途?
用户栈有何用途?
答:
系统栈是内存中属于操作系统空间的一块固定区域,其主要用途为:
(1)保存中断现场,对于嵌套中断,被中断程序的现场信息依次压入系统栈,中断返回时逆序弹出;
(2)保存操作系统子程序间相互调用的参数、返回值、返回点、以及子程序的局部变量。
用户栈是用户进程空间中的一块区域,用于保存用户进程的子程序间相互调用的参数、返回值、返回点、以及子程序的局部变量。
9.用户堆栈段的长度为何无法确定?
答:
用户堆栈段的长度主要取决于两个因素:
(1)用户进程(线程)中子程序(函数)之间的嵌套调用深度;
(2)子程序参数和局部变量的数量及类型。
这些在进程(线程)运行前无法确定,由此导致用户堆栈段的长度无法确定。
10.堆栈段的动态扩充为何可能导致进程空间的搬迁?
答:
堆栈段的扩充需要在原来进程空间大小的基础上增添新的存储区域,而且通常要求与原来存储区域连续。
由于原存放位置处可扩展的区域可能已经被其它进程占用,故可能需要将整个进程空间搬迁到另外一个区域,以实现地址空间扩展要求。
11.何谓并行?
何谓并发?
在单处理机系统中,下述并行和并发现象哪些可能发生,哪些不会发生?
(1)进程与进程之间的并行;
(2)进程与进程之间的并发;
(3)处理机与设备之间的并行;
(4)处理机与通道之间的并行;
(5)通道与通道之间的并行;
(6)设备与设备之间的并行。
答:
所谓并行是指同一时刻同时进行,进程并行需要多处理器的支持;所谓并发,是指在一段时间内,多个进程都在向前推进,而在同一时刻,可能只有一个进程在执行,多个进程轮流使用处理器。
在单处理器系统中,可能发生的并行和并发现象如下:
(2)进程与进程之间的并发。
例如,在Windows操作系统中,mp3播放进程和Word字处理进程可以并发执行,这样用户就可以边听音乐边写文章了。
(3)处理机与设备之间的并行。
例如,当处理机进行科学运算时,打印机可以打印文档。
(4)处理机与通道之间的并行。
通道程序的执行可与处理机的操作并行。
(5)通道与通道之间的并行。
通常一个系统中有多个通道,这些通道可以并行地执行相应的通道程序。
(6)设备与设备之间的并行。
例如打印机打印文档时,磁带机在输入数据。
12.何谓作业?
它包括哪几个部分?
各部分用途是什么?
答:
所谓作业是指用户要求计算机系统为其完成的计算任务的集合,一个作业通常包括程序、程序所处理的数据以及作业说明书。
程序用来完成特定的功能,数据是程序处理的对象,作业说明书用来说明作业处理的步骤。
13.从透明性和资源共享两方面,说明网络操作系统与分布式操作系统之间的差别。
答:
从透明性上看,分布式操作系统优于网络操作系统。
网络用户能够感觉到所访问的资源是在本地还是在远地;而在分布式系统中,用户感觉不到所访问的资源是否在本地。
分布式操作系统掩盖了资源在地理位置上的差异。
从资源共享上看,分布式操作系统比网络操作系统能共享更多的资源。
在网络操作系统中,一个计算任务不能由一台主机任意迁移到另外一台主机上运行;而在分布式操作系统中,所有作业可以由一台主机任意迁移到另外一台主机上处理,即可实现处理机和存储资源的共享,从而达到整个系统的负载平衡。
14.为什么构成分布式系统的主机一般都是相同的或兼容的?
答:
这样更有利于进程的动态迁移。
如果主机不兼容,则在一台主机上能运行的进程,因所用指令系统不同,在另一台主机上可能无法运行,导致进程难于在不同主机间迁移,使得分布式系统难于实现负载平衡。
15.为什么嵌入式操作系统通常采用微内核结构?
答:
嵌入式操作系统与一般操作系统相比具有比较明显的差别:
(1)嵌入式操作系统规模一般较小,因为一般硬件配置较低,而且对操作系统提供的功能要求也不高。
(2)应用领域差别大,对于不同的应用领域其硬件环境和设备配置情况有明显差别。
所以,嵌入式操作系统一般采用微内核(microkernel)结构。
微内核包括如下基本成分:
(1)处理机调度;
(2)基本内存管理;(3)通讯机制;(4)电源管理。
第二章进程、线程与作业
学习指导:
操作系统管理的对象包括被动体(资源)和活动体,本章在组织上将操作系统中的三种活动体(作业、进程与线程)集中介绍,目的是使读者更清楚地认识三者之间的关系。
当然由于批处理系统越来越少,作业这个概念目前已经被淡化。
进程是操作系统最重要的概念之一,读者应从“动态”与“并发”两个方面去理解进程。
进程状态转换图刻画了进程的动态性与并发性,所有进程的状态转换图是同构的,每个进程在其生存期内状态要经过许多次转换,每次转换都伴随现场的保存与恢复,PCB是使多进程能够并发执行的重要数据结构。
线程是近年来操作系统中的一个重要概念,本质上来说,线程就是具有公共存储区的进程。
由于公共存储区的存在,同一进程中多个线程之间的通讯变得容易,线程切换速度得到提高。
用户级线程与系统级线程各有其优点和不足,也正因为这个原因,在操作系统支持多线程后,用户级线程仍被保持。
习题解答:
1.为何引入多道程序设计?
在多道程序系统中,内存中作业的道数是否越多越好?
请说明原因。
答:
引入多道程序设计技术是为了提高计算机系统资源的利用率。
在多道程序系统中,内存中作业的道数并非越多越好。
一个计算机系统中的内存、外设等资源是有限的,只能容纳适当数量的作业,当作业道数增加时,将导致对资源的竞争激烈,系统开销增大,从而导致作业的执行缓慢,系统效率下降。
2.什么是进程?
进程具有哪些主要特性?
比较进程与程序之间相同点与不同点.
答:
进程是具有一定独立功能的程序关于一个数据集合的一次运行活动。
进程具有以下主要特性:
(1)并发性:
可以与其它进程一道在宏观上同时向前推进。
(2)动态性:
进程是执行中的程序。
此外进程的动态性还体现在如下两个方面:
首先,进程是动态产生、动态消亡的;其次,在进程的生存期内,其状态处于经常性的动态变化之中。
(3)独立性:
进程是调度的基本单位,它可以获得处理机并参与并发执行。
(4)交往性:
进程在运行过程中可能会与其它进程发生直接或间接的相互作用。
(5)异步性:
每个进程都以其相对独立、不可预知的速度向前推进。
(6)结构性:
每个进程有一个控制块PCB。
进程和程序的相同点:
程序是构成进程的组成部分之一,一个进程存在的目的就是执行其所对应的程序,如果没有程序,进程就失去了其存在的意义。
进程与程序的差别:
(1)程序是静态的,而进程是动态的;
(2)程序可以写在纸上或在某一存储介质上长期保存,而进程具有生存期,创建后存在,撤销后消亡;(3)一个程序可以对应多个进程,但一个进程只能对应一个程序;例如,一组学生在一个分时系统中做C语言实习,他们都需要使用C语言的编译程序对其源程序进行编译,为此每个学生都需要有一个进程,这些进程都运行C语言的编译程序。
另外,一个程序的多次执行也分别对应不同的进程。
3.有人说,用户进程所执行的程序一定是用户自己编写的。
这种说法对吗?
如不对举例说明之。
答:
这种说法不对。
例如,C编译程序以用户进程身份运行,但C编译程序一般并不是用户自己编写的。
此外还有调试程序、字处理程序等工具软件。
4.什么是进程上下文?
进程上下文包括哪些成分?
哪些成分对目态程序是可见的?
答:
进程是在操作系统支持下运行的,进程运行时操作系统需要为其设置相应的运行环境,如系统堆栈、地址映射寄存器、打开文件表、PSW与PC、通用寄存器等。
在UNIXSystemV中,将进程的物理实体与支持进程运行的物理环境合称为进程上下文(processcontext),进程上下文包括三个组成部分:
·用户级上下文。
是由用户进程的程序块、用户数据块(含共享数据块)和用户堆栈组成的进程地址空间。
·系统级上下文。
包括进程控制块、内存管理信息、进程环境块,以及系统堆栈等组成的进程地址空间
·寄存器上下文。
由程序状态字寄存器、各类控制寄存器、地址寄存器、通用寄存器、用户堆栈指针等组成。
其中用户级上下文和部分寄存器上下文对目态程序是可见的。
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中的内容较少,因为有关资源分配等多数信息已经记录于所属进程的PCB中.TCB中的主要信息包括线程标识、线程状态、调度参数、现场、链接指针,其中现场信息主要包括通用寄存器、指令计数器PC以及用户栈指针.对于操作系统支持的线程,TCB中还应包含系统栈指针。
8.同一进程中的多个线程有哪些成分是共用的,哪些成分是私用的?
答:
同一进程中的多个线程共享进程获得的主存空间和资源,包括代码区、数据区、动态堆空间。
线程的私有成分包括:
·线程控制块;
·一个执行栈;
·运行时间一动态分给线程的寄存器。
(这句话我读不懂)
9.比较用户级线程与系统级线程间在以下方面的差别和各自的优缺点。
(1)创建速度;
(2)切换速度;(3)并行性;(4)TCB的存储位置
答:
用户级线程由系统库支持。
线程的创建和撤销,以及线程状态的变化都由库函数控制并在目态完成,与线程相关的控制结构TCB保存在目态空间并由运行系统维护。
由于线程对操作系统不可见,系统调度仍以进程为单位,核心栈的个数与进程个数相对应。
用户级别线程的优点在于:
(1)线程不依赖于操作系统,可以采用与问题相关的调度策略,灵活性好;
(2)同一进程中的线程切换不需进入操作系统,因而实现效率较高。
缺点在于:
(1)同一进程中的多个线程不能真正并行,即使在多处理机环境中;
(2)由于线程对操作系统不可见,调度在进程级别,某进程中的一个线程通过系统调用进入操作系统受阻,该进程的其它线程也不能运行。
核心级别线程通过系统调用由操作系统创建,线程的控制结构TCB保存于操作系统空间,线程状态转换由操作系统完成,线程是CPU调度的基本单位。
另外由于系统调度以线程为单位,操作系统还需要为每个线程保持一个核心栈。
核心级线程的优点是并发性好,在多CPU环境中同一进程中的多个线程可以真正并行执行。
核心级别线程的缺点是线程控制和状态转换需要进入操作系统完成,系统开销比较大。
10.何谓作业?
何谓作业步?
作业何时转为进程?
答:
作业是早期批处理系统引入的一个概念。
用户要求计算机系统为其完成的计算任务的集合称为作业,分时用户在一次登录后所进行的交互过程也常被看作一个作业。
一般来说,作业是比进程大的一个概念,一个作业通常包含多个计算步骤,作业中一个相对独立的处理步骤称为一个作业步。
当作业被作业调度程序选中并调入内存时,将按作业步创建相应进程。
作业步骤之间具有顺序或并发关系。
一个作业步通常可以由一个进程来完成,这样一个作业在内存处理时通常与多个进程相对应,即作业与进程具有一对多的关系。
11.分析作业、进程、线程三者之间的关系。
答:
一个作业被调入内存执行时可能要为其创建多个进程,进程是资源分配的基本单位,一个进程可能对应若干个线程,线程是处理器调度的基本单位。
12. 何谓系统开销?
试举三个例子说明之。
答:
运行操作系统程序,实现系统管理所花费的时间和空间称为系统开销。
例如,操作系统的内核要占用内存空间,页面调度时需占用设备资源并消耗处理机时间,进程切换时也要占用处理器时间。
处理机调度
学习指导:
本章所述的“中断”包括trap、SVC、fault等所有非常规程序转移,中断使操作系统获得控制权,并为实施处理机切换和多道程序设计提供了必要条件。
也正因为中断与处理机调度之间密不可分的关系,我们将中断与处理机调度作为一个独立的完整章来讲授。
读者应当注意,中断响应后系统首先处理中断事件,然后才考虑处理机的重新分派;当有中断嵌套发生时,只有在返回至最上层中断处理程序时,系统才有可能考虑切换进程。
处理机调度算法的设计需要考虑系统的设计目标,而且通常算法设计不能复杂,否则会带来过大的系统开销,因为处理机切换发生非常频繁。
也正因为此,通常将调度与上下文切换过程以汇编语言书写。
习题解答:
1.试说明下述概念之间的联系与差别:
(1)系统调用命令
(2)访管指令(3)广义指令
答:
访管指令由指令码和访管中断号两部分组成。
即:
SVCn───①
其中SVC(SuperVisorCall)为指令码,表明为访管指令;n为访管中断号,其值是一整数,具体表示何种访问要求。
中断发生时,硬件中断装置将访管中断号n送入旧的程序状态字内的中断码字段,访管中断总控程序由系统堆栈中将其取出,并据此转入对应的服务程序。
在实际使用时,用户程序与操作系统之间还需要相互传递参数和返回值。
如此,用户使用访管指令的一般形式为:
准备参数
SVCn
取返回值───②
根据具体访管要求约定,参数及返回值可以通过寄存器传递,也可以通过内存传递。
对于后者,操作系统必须能够访问进程空间。
通常将②称为系统调用命令,它除访管指令外,还有准备参数和取返回值。
为了使用方便,在高级语言中一般将其写为与过程调用相类似的形式,即:
返回值=系统调用名称(参数1,参数2,…,参数m);───③
当然,编译程序会将③翻译成形如②的形式。
其中系统调用名称对应①,不同的系统调用名称对应不同的整数n。
在有的书中,也将③称为代表②的宏指令或广义指令。
2.为什么说中断是进程切换的必要条件,但不是充分条件?
答:
假如在时刻T1与时刻T2之间发生了进程切换,则在时刻T1与时刻T2之间一定执行了处理机调度程序,而处理机调度程序是操作系统低层中的一个模块,运行于管态,说明在T1与T2时刻之间处理机状态曾由目态转换到管态。
由于中断是系统由目态转换为管态的必要条件,所以在时刻T1与时刻T2之间一定发生过中断,也就是说,中断是进程切换的必要条件,然而中断不是进程切换的充分条件。
例如:
一个进程执行一个系统调用命令将一个消息发给另外一个进程,该命令的执行将通过中断进入操作系统,操作系统处理完消息的发送工作后可能返回原调用进程,此时中断未导致进程切换;也可能选择一个新的进程,此时中断导致了进程切换。
3.试分析中断与进程状态转换之间的关系。
答:
进程状态转换是由内核控制的,如果一个进程的状态发生了改变,则在新旧状态之间一定发生了处理机状态由目态到管态的转换,而中断是处理机状态由目态转换到管态的必要条件,所以中断也是进程状态转换的必要条件。
4.中断发生时,旧的PSW和PC为何需要压入系统栈?
答:
因为通常中断处理程序的最后一条指令是中断返回指令,该指令从系统栈顶弹出断点信息,如果未将PSW和PC压入系统栈,则中断返回指令弹出的不是中断前的断点信息,而是不确定的信息,这将导致系统处于不确定的状态,严重的情况会使系统崩溃。
采用栈结构的原因是中断可能发生嵌套,此时能保证以与中断相反的次序返回上层中断处理程序或返回目态。
在某些硬件系统中,没有采用栈结构,中断发生时现场信息被送到系统空间指定单元,对每种中断硬件规定一个现场保存单元,这样处理的缺点是中断类型不能增加,相同类型中断不能嵌套发生。
5.何谓中断向量?
用户能否修改中断向量的值?
答:
当中断事件发生时,中断装置根据中断类别自动地将中断处理程序所对应的PSW和PC送入程序状态字和指令计数器中,如此便转移到对应的中断处理程序。
这个转移类似于向量转移,因而PSW和PC被称为中断向量。
用户不能修改中断向量的值,因为修改中断向量是特权指令,普通用户程序不能执行特权指令。
另外,如果允许用户修改中断向量的值,那么用户就可以破坏中断向量与处理程序之间的联系,并可能攻击系统。
例如将中断向量与一段病毒程序联系起来,使中断发生时便执行病毒程序,从而破坏计算机系统。
6.中断向量的存储位置是否可由程序改变?
为什么?
中断向量的值是如何确定的?
答:
中断向量的存储位置是由硬件确定的,不能由程序改变。
中断发生后,中断装置按照中断类型到内存指定位置取出中断向量。
例如,在IBMPC系统中,地址000~03FF是中断向量空间。
操作系统的设计者根据各中断事件处理程序的存储位置及运行环境确定对应中断向量的值,系统启动时由初始化程序将该值填入指定位置。
7.有人说,中断发生后硬件中断装置保证处理机进入管态,这种说法准确吗?
说明理由。
答:
这种说法不准确。
中断发生后,硬件中断装置负责引出中断处理程序,中断处理程序是否运行于管态取决于PSW中的处理机状态位,该位的值是操作系统初始化时设置的,只有在初试化程序正确设置该状态位的前提下,才能保证中断后系统进入管态。
8.为什么在中断处理过程中通常允许高优先级别的中断事件中途插入,而不响应低优先级别的中断事件?
答:
根据引起中断事件的重要性和其紧迫程度,硬件将中断源分为若干个级别,称作中断优先级。
如果有多个中断同时发生,硬件将首先响应优先级别最高的中断请求。
对于相同优先级别的中断,硬件将按照事先规定好的次序依次响应。
在中断事件的处理过程中可能会发生新的中断,这就是中断嵌套。
中断嵌套是必要的。
但是,如果不加以控制,低优先级别的中断源可能打扰高优先级别中断事件的处理过程,甚至可能会使中断嵌套层数无限增长,直至系统栈溢出。
为此,硬件提供了中断屏蔽指令,利用中断屏蔽指令可以暂时禁止任意一个或多个中断源向处理机发中断请求。
当然,在需要的时候还可以利用硬件指令解除对中断源的屏蔽。
通常,在一个中断事件的处理过程中,程序屏蔽包括该级在内的所有低优先级别的中断,但允许更高优先级别的中断中途插入。
这样,发生中断嵌套时,嵌套中断事件的优先级别是按照响应的顺序依次递增的。
这样做处理主要有两个原因:
(1)从逻辑上来说,高优先级别中断源所对应的事件比低优先级别中断源所对应的中断事件急迫;
(2)由于硬件中断类型是有限的,这样做实际上也就限制了中断嵌套的深度。
9.为什么说“关中断”会影响系统的并发性?
答:
考虑单处理机系统。
在单处理机系统中,并发是通过将处理机轮流分配给多个进程而实现的,这个分配是由操作系统中处理机调度程序完成的。
中断是进程切换的必要条件,如果关了中断,则操作系统无法获得处理机的控制权,也就无法使多个进程分时共享处理机。
在关中断期间,一个进程独占处理机。
所以说“关中断”会影响系统的并发性
10.假如关中断后操作系统进入了死循环,会产生什么后果?
答:
系统不响应任何外部干预事件,系统表现为“死机”。
11.为什么不允许目态程序执行关中断指令及中断屏蔽指令?
答:
开关中断指令和中断屏蔽指令属于特权指令,一般用户无权访问。
如果允许用户使用,用户关中断后可能影响系统对内部或外部事件的响应,也会使操作系统无法获得系统控制权。
12.如果没有中断,是否能够实现多道程序设计?
为什么?
答:
不能。
因为一个程序一旦被调度执行,将一直执行下去,中间不可能被打断,不可能达到多个进程交替执行的并发目的。
13.下列中断源哪些通常是可以屏蔽的,哪些通常是不可屏蔽的?
(1)I/O中断;
(2)访管中断;(3)时钟中断;(4)掉电中断。
答:
(1)
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 操作系统 习题集
![提示](https://static.bdocx.com/images/bang_tan.gif)