进程同步考研问题
- 格式:wps
- 大小:550.12 KB
- 文档页数:90
操作系统作业【注意】对于作业中的选择题,都要求抄写题目(题中若有插图可不画),并在题目上填写答案。
作业1——进程同步(1)1.设有n个进程使用同一个共享变量,如果最多允许m(m < n)个进程同时进入相关临界区,则信号量的变化范围是。
A. n,n-1,...,n-mB. m,m-1,...1,0,-1,...m-nC. m,m-1,...1,0,-1,...m-n-1D. m,m-1,...1,0,-1,...m-n+12.对于有两个并发进程的系统,设互斥信号量为mutex,若mutex=0,则。
A. 表示没有进程进入与mutex相关的临界区B. 表示有一个进程进入与mutex相关的临界区C. 表示有一个进程进入与mutex相关的临界区,另一个进程等待进入D.表示有两个进程进入与mutex相关的临界区3.S.queue,S.value是信号灯S的两个组成部分,当S.queue为空时,S.value的值是( ) A.S.value≤0 B.S.value=0 C.S.value=1 D.Svalue≥04.如果信号量的当前值为-3,则表示系统中在该信号量上有个等待进程。
5.下列选项中,操作系统提供给应用程序的接口是。
(2010全国试题)A.系统调用B.中断C.库函数D.原语6.下列选项中,导致创建新进程的操作是。
(2010全国试题)I.用户登录成功II.设备分配III.启动程序执行A.仅I和II B.仅II和III C.仅I和III D.I、II和III7.设与某资源关联的信号量初值为3,当前值为1。
若M表示该资源的可用个数,N表示等待该资源的进程数,则M、N分别是。
(2010全国试题)A.0、1 B.1、0 C.1、2 D.2、0作业2——进程同步(2)1.如何利用信号量机制来实现多个进程对临界资源的互斥访问?2.四个进程A、B、C、D都要读一个共享文件F,系统允许多个进程同时读文件F,但限制是进程A 和进程C不能同时读文件F,进程B和进程D也不能同时读文件F,为了使这四个进程并发执行时能按系统要求使用文件,现用PV操作进行管理,请回答下面的问题:(1)应定义的信号量及初值:。
考研操作系统-进程的同步与通信(总分:82.00,做题时间:90分钟)一、单项选择题(总题数:12,分数:24.00)1.相关临界区是指( )。
A.一个共享资源B.并发进程中涉及相同变量的那些程序段√C.并发进程中与共享变量有关的程序段D.一个独占资源2.下列关于P、V操作的说法中正确的是( )。
A.P、V操作是两个操作,而且都是原语操作√B.P、V操作中P操作可以不用原语方式,而V操作必须使用原语操作C.P、V操作是一个过程,同一般函数,过程一样,只是执行管理临界区的操作D.P、V操作中P操作必须使用原语方式,而V操作可以不使用原语操作3.由于并发进程之间( )不能由进程本身控制,当它们在共享某些资源的时候可能会产生与时间有关的错误。
A.分配外部设备B.分配内存空间C.执行的相对速度√D.占用存储器的位置4.下面对线程的描述中,错误的是( )。
A.同一进程中的线程可共享该进程的主存空间B.线程是调度和执行单位C.不同的线程可执行相同的程序D.线程是资源分配单位√5.如果有4个进程共享同一程序段,每次允许3个进程进入该程序段,若用P、V操作作为同步机制,则信号量的取值范围是( )。
A.4,3,2,1,-1B.2,1,0,-1,-2C.3,2,1,0,-1 √D.2,1,0,-2,-36.在进程通信中,( )常用信件交换信息。
A.低级通信B.高级通信√C.信息缓冲D.消息通信7.下列关于进程和线程的说法中正确的是( )。
A.线程是进程中可独立执行的子任务,一个进程可以包含一个或多个线程,一个线程可以属于一个或多个进程B.多线程技术具有明显的优越性,如速度快、通信简便、设备并行性高等√C.由于线程不作为资源分配单位,线程之间可以无约束地并行执行D.线程又称为轻型进程,因为线型都比进程小8.并发进程之间相互通信时两个基本的等待事件是( )。
A.等信件和等信箱√B.等消息和等信件C.等发送原语和接收原语D.等消息和等信箱9.对若干个并发进程共享某—变量的相关临界区的管理,下列说法中不正确的是( )。
2024年研究生考试考研计算机学科专业基础(408)复习试题(答案在后面)一、单项选择题(本大题有40小题,每小题2分,共80分)1、下列关于冯·诺依曼体系结构的叙述中,正确的是:A. 计算机由运算器、控制器、存储器、输入设备和输出设备五大部件组成。
B. 指令和数据存放在不同的存储器中。
C. 冯·诺依曼体系结构的计算机硬件系统分为运算器、显示器和键盘三大部分。
D. 程序指令存储在内存中,但数据不能存储在内存中。
2、在计算机内部,数据通常采用哪种形式表示?A. 十进制B. 八进制C. 十六进制D. 二进制3、CPU可以直接访问的存储器是哪一个?A. 软盘B. 硬盘C. 内存D. 光盘4、在计算机网络中,以下哪项不是TCP/IP模型的层次结构之一?A. 网络接口层B. 网络层C. 应用层D. 物理层5、以下哪个算法是用于查找非平衡二叉搜索树中某个特定节点的最坏情况时间复杂度?A. 二分查找B. 中序遍历C. 平衡二叉搜索树查找D. 二叉树遍历6、以下哪个语言是用于实现编译原理的?A. JavaB. C++C. PythonD. Haskell7、在计算机系统中,地址总线的宽度决定了CPU可以直接寻址的内存空间大小。
如果某计算机系统的地址总线宽度为32位,则该CPU的最大直接寻址空间为:A. 4GBB. 8GBC. 16GBD. 32GB8、在数据结构中,队列是一种特殊的线性表,其特点是先进先出(FIFO)。
若在一个初始为空的队列中按照顺序插入元素A、B、C、D,然后执行两次删除操作,再插入元素E、F,接着再次执行两次删除操作,此时队列的队首元素是:A. AB. BC. CD. F9、在关系数据库中,两个表之间的连接是一种生成新表的操作,它将第一个表中的行与第二个表中的行匹配。
如果连接操作没有找到匹配项,则返回NULL。
假设我们有两个表:Table1(A, B),Table2(C, D),其中A与C是连接字段。
2015考研计算机学科专业基础综合真题及答案一、单项选择题:140小题,每小题2分,共80分。
下列每题给出的四个选项中,只有一个选项符合题目要求。
请在答题卡上将所选项的字母涂黑。
1.已知程序如下:int s(int n){ return (n<=0) ? 0 : s(n-1) +n; }void main(){ cout<< s(1); }程序运行时使用栈来保存调用过程的信息,自栈底到栈顶保存的信息一次对应的是A.main()->S(1)->S(0) B.S(0)->S(1)->main()C.main()->S(0)->S(1) D.S(1)->S(0)->main()【参考答案】D【考查知识点】栈的基本概念和函数调用的原理。
2.先序序列为a,b,c,d的不同二叉树的个数是A.13 B.14 C.15 D.16【参考答案】C【考查知识点】二叉树的基本概念。
3.下列选项给出的是从根分别到达两个叶节点路径上的权值序列,能属于同一棵哈夫曼树的是A.24,10,5和 24,10,7 B.24,10,5和24,12,7C.24,10,10和 24,14,11 D.24,10,5和 24,14,6【参考答案】C【考查知识点】哈夫曼树的原理。
4.现在有一颗无重复关键字的平衡二叉树(AVL树),对其进行中序遍历可得到一个降序序列。
下列关于该平衡二叉树的叙述中,正确的是A.根节点的度一定为2 B.树中最小元素一定是叶节点C.最后插入的元素一定是叶节点 D.树中最大元素一定是无左子树【参考答案】B【考查知识点】树的中序遍历和AVL树的基本概念。
5.设有向图G=(V,E),顶点集V={V0,V1,V2,V3},边集E={<v0,v1>,<v0,v2>,<v0,v3>,<v1,v3>},若从顶点V0 开始对图进行深度优先遍历,则可能得到的不同遍历序列个数是A.2 B.3 C.4 D.5【参考答案】D【考查知识点】图的深度优先遍历。
2015年全国硕士研究生入学统一考试计算机学科专业基础综合试题一、单项选择题:140小题,每小题2分,共80分。
下列每题给出的四个选项中,只有一个选项符合题目要求。
请在答题卡上将所选项的字母涂黑。
1.已知程序如下:int s(int n){ return (n<=0) ? 0 : s(n-1) +n; }void main(){ cout<< s(1); }程序运行时使用栈来保存调用过程的信息,自栈底到栈顶保存的信息一次对应的是A.main()->S(1)->S(0) B.S(0)->S(1)->main()C.m ain()->S(0)->S(1) D.S(1)->S(0)->main()【参考答案】D【考查知识点】栈的基本概念和函数调用的原理。
2.先序序列为a,b,c,d的不同二叉树的个数是A.13 B.14 C.15 D.16【参考答案】C【考查知识点】二叉树的基本概念。
3.下列选项给出的是从根分别到达两个叶节点路径上的权值序列,能属于同一棵哈夫曼树的是A.24,10,5和24,10,7 B.24,10,5和24,12,7C.24,10,10和24,14,11 D.24,10,5和24,14,6【参考答案】C【考查知识点】哈夫曼树的原理。
4.现在有一颗无重复关键字的平衡二叉树(A VL树),对其进行中序遍历可得到一个降序序列。
下列关于该平衡二叉树的叙述中,正确的是A.根节点的度一定为2 B.树中最小元素一定是叶节点C.最后插入的元素一定是叶节点D.树中最大元素一定是无左子树【考查知识点】树的中序遍历和A VL树的基本概念。
5.设有向图G=(V,E),顶点集V={V0,V1,V2,V3},边集E={<v0,v1>,<v0,v2>,<v0,v3>,<v1,v3>},若从顶点V0 开始对图进行深度优先遍历,则可能得到的不同遍历序列个数是A.2 B.3 C.4 D.5【参考答案】D【考查知识点】图的深度优先遍历。
2000年硕士生入学考试操作系统试题
(本部分共50分)
一.回答问题(以下4题,每题5分,共20分)
1.何谓进程?请图示具有基本进程状态的状态转移图,并指出转移原因。
2.何谓临界资源?使用临界资源的诸进程间如何实现进程同步。
3.何谓管程,管程是由哪几部分组成?说明引入管程的必要性。
4.说明发生死锁的原因及避免死锁的方法。
二.(以下2题,每题5分,共10分)
1.某进程完成一次i/o操作,从操作系统管理角度观察,应使用哪些软、硬件资源参与操作,请示图说明。
2.某请求页式存储管理,允许用户编程空间为32个页面(每页1KB),主存为16 KB,如有一用户程序有10页
长,且某时刻该用户页面映射表如图所示:
页面影射表
如果分别遇有以下三个虚地址:0AC5H、1AC5H、3AC5H处的操作,试计算并说明存储管理系统将如何处理。
三.(以下2题,每题5分,共10分)
1.请说明UNIX系统中,shell所处的地位及其功能如何。
2.UNIX文件系统中,已建立的文件将在系统中占用一定的资源。
请说明一个“未打开”的文件将占用哪些系统
资源。
四.(本题10分)
一组合作进程,执行顺序如图所示。
请用P、V、操作实现各进程之间的同步操作。
P1 P2 P4。
操作系统考研题题型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、⼀台输⼊设备、⼀台打印机。
第4章进程同步与进程通信第4章进程同步与进程通信⼀、填空1.信号量的物理意义是当信号量值⼤于零时表⽰可⽤资源个数;当信号量值⼩于零时,其绝对值为等待进程个数。
2.所谓临界区是指进程程序中。
3.⽤P、V操作管理临界区时,⼀个进程在进⼊临界区前应对信号量执⾏p 操作,退出临界区时应对信号量执⾏v 操作。
4.有m个进程共享⼀个临界资源。
若使⽤信号量机制实现对临界资源的互斥访问,则该信号量取值最⼤为 1 ,最⼩为1-m 。
5.对信号量S的P操作原语中,使进程进⼊相应信号量队列等待的条件是s<0 。
6.信箱在逻辑上被分为信箱头和信箱体两部分。
7.在操作系统中进程间的通信可以分为⾼级通信与低级通信两种。
⼆、选择1.P、V操作是。
A.两条低级进程通信原语B.两条⾼级进程通信原语C.两条系统调⽤命令D.两条特权指令2.进程的并发执⾏是指若⼲个进程。
A.共享系统资源B.在执⾏的时间上是重叠的C.顺序执⾏D.相互制约3.若信号量S初值为2,当前值为?1,则表⽰有个进程在与S相关的队列上等待。
A.0 B.1 C.2 D.34.⽤P、V操作管理相关进程的临界区时,信号量的初值应定义为。
A.?1 B.0 C.1D.随意5.⽤V操作唤醒⼀个等待进程时,被唤醒进程的状态变为。
A.等待B.就绪C.运⾏D.完成6.若两个并发进程相关临界区的互斥信号量MUTEX现在取值为0,则正确的描述应该是。
A.没有进程进⼊临界区(MUTEX=1)B.有⼀个进程进⼊临界区(MUTEX=0)C.有⼀个进程进⼊临界区,另⼀个在等待进⼊临界区(MUTEX=-1)D.不定7.信箱通信是进程间的⼀种通信⽅式。
A.直接B.间接C.低级D.信号量三、问答1.进程A 和B 共享⼀个变量,因此在各⾃的程序⾥都有⾃⼰的临界区。
现在进程A 在临界区⾥。
试问进程A 的执⾏能够被别的进程打断吗(可以)?能够被进程B 打断吗(这⾥,“打断”的含义是调度新进程运⾏,使进程A 暂停执⾏)(不可以)?2.信号量上的P 、V 操作只是对信号量的值进⾏加1或减1操作吗(否)?在信号量上还能够执⾏除P 、V 操作外的其他操作吗?(不能)3. 进程在运⾏时存在哪两种形式的制约?并举例说明之。
操作系统原理-考研真题详解1下列关于线程的描述中,错误的是()。
[2019年408统考]A.内核级线程的调度由操作系统完成B.操作系统为每个用户级线程建立一个线程控制块C.用户级线程间的切换比内核级线程间的切换效率高D.用户级线程可以在不支持内核级线程的操作系统上实现【答案】B查看答案【解析】用户级线程仅存在于用户空间中,与内核无关,其线程库对用户线程的调度算法与OS的调度算法无关,不需要操作系统为每个用户级线程建立一个线程控制块。
2下列选项中,可能将进程唤醒的事件是()。
[2019年408统考] Ⅰ.I/O结束Ⅱ.某进程退出临界区Ⅲ.当前进程的时间片用完A.仅ⅠB.仅ⅢC.仅Ⅰ、ⅡD.Ⅰ、Ⅱ、Ⅲ【答案】C查看答案【解析】可能唤醒进程的事件包括I/O结束、某进程退出临界区等。
当前进程的时间片用完会引起另一个进程的调度并运行,不是唤醒进程。
3下列关于系统调用的叙述中,正确的是()。
[2019年408统考] Ⅰ.在执行系统调用服务程序的过程中,CPU处于内核态Ⅱ.操作系统通过提供系统调用避免用户程序直接访问外设Ⅲ.不同的操作系统为应用程序提供了统一的系统调用接口Ⅳ.系统调用是操作系统内核为应用程序提供服务的接口A.仅Ⅰ、ⅣB.仅Ⅱ、ⅢC.仅Ⅰ、Ⅱ、ⅣD.仅Ⅰ、Ⅲ、Ⅳ【答案】C查看答案【解析】系统调用接口是连接操作系统和应用程序的桥梁,而接口是以具体程序中的函数实现的,称之为系统调用,在不同的操作系统中,具有不同的系统调用,但是它们实现的功能是基本相同的。
4下列选项中,可用于文件系统管理空闲磁盘块的数据结构是()。
[2019年408统考]Ⅰ.位图Ⅱ.索引节点Ⅲ.空闲磁盘块链Ⅳ.文件分配表(FAT)A.仅Ⅰ、ⅡB.仅Ⅰ、Ⅲ、ⅣC.仅Ⅰ、ⅢD.仅Ⅱ、Ⅲ、Ⅳ【答案】B查看答案【解析】文件系统管理空闲磁盘块的数据结构包括位图、链表、文件分配表。
索引结点是指在许多类Unix文件系统中的一种数据结构。
每个索引节点保存了文件系统中的一个文件系统对象的元信息数据,但不包括数据内容或者文件名。
数据结构部分
一、选择题(每题2分,共20分)
1、将线性表La和Lb头尾连接,要求时间复杂度为O(1),且占用辅助空间尽量小,
应该使用哪种结构?()
A.单链表
B.单循环链表
C.带尾指针的单循环链表
D.带头结点的双循环链表
2、在一个链队列中,front和rear分别为头指针和尾指针,则插入一个结点s的操作
为()。
A.front=front->next
B.s->next=rear;rear=s
C.rear->next=s;rear=s;
D.s->next=front;front=s;
3、设一个堆栈的入栈顺序是1、2、3、
4、5。
若第一个出栈的元素是4,则最后一个
出栈的元素必定是:()
A.1
B.3
C.5
D.1或者5
4、由分别带权为9、2、
5、7的四个叶子结点构成一棵哈夫曼树,该树的带权路径长
度为:()
A.23
B.37
C.44
D.46
5、如果AVL树的深度为5(空树的深度定义为0),则此树最少有多少个结点?()
A.12
B.20
C.33
D.64。
考研_湖南师范大学计算机应用专业考研真题湖南师范大学(Hunan Normal University)是湖南省级重点支持建设的一所综合性大学,其计算机应用专业一直备受考生青睐。
下面是湖南师范大学计算机应用专业考研真题的详细内容。
一、操作系统1.请简要描述什么是操作系统?操作系统是计算机系统中的一层软件,它是连接用户和计算机硬件的桥梁。
操作系统负责管理计算机的资源,为用户程序提供一个运行的环境,并提供各种对硬件的访问方式,包括文件系统、进程调度、内存管理等功能。
2.解释什么是进程和线程?进程是正在执行的程序的实例。
每个进程都有自己的地址空间和系统资源,并在操作系统的管理下独立运行。
线程是进程中的执行单元。
一个进程可以有多个线程,它们共享进程的资源,但每个线程有自己的堆栈和程序计数器。
3.简述进程同步的方式有哪些?进程同步是指多个进程之间为了完成某个任务,需要相互合作、协调的过程。
常见的进程同步方式有:- 互斥锁(Mutex):用于保护临界区,只允许一个线程访问。
- 信号量(Semaphore):用于控制多个线程的并发访问数。
- 条件变量(Condition Variable):用于在线程间进行通信和唤醒操作。
- 事件(Event):一种通过标志位来进行线程间同步的机制。
二、数据结构与算法1.请解释什么是时间复杂度和空间复杂度?时间复杂度是衡量算法运行时间开销的度量,表示算法所需时间与问题规模之间的关系。
空间复杂度是衡量算法在运行过程中所需的存储空间开销的度量,表示算法所需空间与问题规模之间的关系。
2.对比并解释什么是数组和链表。
数组和链表是两种常见的数据结构。
数组是一组连续的内存空间,可以用于存储相同类型的数据。
数组具有随机访问的特点,可以通过索引快速访问和修改元素。
但是,数组的大小固定,插入和删除操作的时间开销较大。
链表是一组节点,每个节点中保存着数据和指向下一个节点的指针。
链表拥有动态分配内存的能力,可以方便地进行插入和删除操作。
操作系统历年考研真题操作系统是计算机系统的核心组成部分,对于计算机专业的考研学生来说,掌握操作系统的相关知识至关重要。
以下是对操作系统历年考研真题的一些分析和探讨。
操作系统的基本概念是考研中的重点之一。
例如,进程与线程的区别和联系,往往是常见的考题。
进程是资源分配的基本单位,而线程是 CPU 调度的基本单位。
进程拥有独立的地址空间,线程共享所属进程的地址空间。
在实际应用中,多线程能够提高程序的并发性和响应性。
内存管理也是常考的知识点。
常见的内存分配方式有连续分配和离散分配。
连续分配包括单一连续分配、固定分区分配和动态分区分配。
离散分配则有分页存储管理、分段存储管理和段页式存储管理。
分页存储管理将内存空间划分为固定大小的页,分段存储管理则按照程序的逻辑进行划分。
段页式存储管理结合了两者的优点,先分段,再分页。
文件管理也是操作系统中的重要部分。
文件的逻辑结构和物理结构是常考的内容。
逻辑结构有顺序文件、索引文件和索引顺序文件等。
物理结构则包括连续文件、链接文件和索引文件。
文件系统的实现,如目录结构、文件存储空间的管理等,也是考研的重点。
设备管理方面,I/O 控制方式的发展历程是需要了解的。
从程序查询方式到中断驱动方式,再到 DMA 方式和通道方式,每一种方式都有其特点和适用场景。
设备分配中的数据结构和分配算法也是常见的考点。
在操作系统的安全性和可靠性方面,死锁的产生条件、预防、避免和检测解除是必考的内容。
产生死锁的四个必要条件是互斥条件、请求和保持条件、不剥夺条件和环路等待条件。
预防死锁可以通过破坏这四个条件中的一个或几个来实现。
避免死锁则是在资源分配过程中进行判断,确保不会进入死锁状态。
下面通过具体的考研真题来进一步分析。
列举具体年份的真题例如,在具体年份的考研真题中,有一道关于进程同步与互斥的问题。
题目给出了多个进程的操作流程,要求考生判断是否会产生死锁,并说明原因。
这就需要考生对死锁的概念和判断方法有深入的理解,能够清晰地分析进程之间的资源竞争关系。
2019年全国硕士研究生入学统一考试计算机学科专业基础综合模拟试题2(总分:150.00,做题时间:150分钟)一、单项选择题(总题数:40,分数:80.00)1.循环链表的主要优点是()。
A.不再需要头指针了B.已知某个结点的位置后,能很容易找到它的直接前驱结点C.在进行删除操作后,能保证链表不断开D.从表中任一结点出发都能遍历整个链表√头指针不能省略,因为没有头指针就没有办法引用该链表了。
循环链表还是单链表,要找到直接前驱结点,必须至少循环遍历整个链表一次才行。
无论链表是不是循环的,都能保证在删除时链表的不断开。
选项D 是正确选项,因为循环链表首尾相接,形成一个环,从任何一个结点开始都能遍历整个链表。
2.在一个单链表中,已知指针 p 指向其中的某个结点,若在该结点前插入一个由指针 s 指向的结点,则需执行()。
A.s->next=p->next; p->next= s;B.p->next=s; s->next=p;C.r=p->next; p->next=s; s->next=r;D.仅靠已知条件无法实现√由于单链表的单向性,在某个结点前插入结点时,必须有一个指针指向该结点的前驱结点。
所以仅靠此题己知条件无法实现所要求的插入。
3.在一个具有 n 个单元的顺序栈中,假定以高端(即第 n-1 单元)作为栈底,以 top 为栈顶指针,则当作出栈运算时, top 变化为()。
A.top 不变B.top=0C.top--D.top++ √注意此题中顺序栈的栈底是在高端,出栈时 top 指针应当加 1。
4.假定在一棵二叉树中,双分支结点数为 15 个,单分支结点数为 30 个,则叶子结点数为()个。
A.15B.16 √C.17D.47根据二叉树的性质,叶子结点的个数取决于双分支结点数,与单分支结点数无关。
对任何一棵二叉树T,如果其叶子结点数为 n0,双分支结点数为 n2,则 n0 = n2 + 1。
2024考研计算机科学真题及答案一、选择题(每题2分,共20分)1. 数据结构中的栈是一种()类型的数据结构。
A. 线性结构B. 树状结构C. 图形结构D. 非线性结构答案:A2. 在计算机科学中,()是一种基本的数据结构。
A. 数组B. 链表C. 树D. 图答案:A3. 深度优先搜索(DFS)和广度优先搜索(BFS)是两种常用的()算法。
A. 排序算法B. 查找算法C. 图算法D. 树算法答案:C4. 在计算机网络中,IP地址用于()。
A. 数据压缩B. 数据加密C. 数据传输D. 标识网络中的设备答案:D5. 计算机操作系统的主要功能包括()。
A. 资源管理B. 提供用户接口C. 文件管理D. 以上都是答案:D二、填空题(每题2分,共20分)1. 在数据结构中,一个存储结构如果能够随机地访问任一元素,则称之为________。
答案:随机存取存储结构2. 哈希表是通过一个________函数将关键字映射到表的一个位置来访问记录。
答案:哈希3. 在深度优先搜索中,从根节点开始,沿着树的________方向进行搜索。
答案:深度4. OSI模型中的________层负责在网络中转发数据包。
答案:网络5. ________是一种常用的进程同步机制,用于解决多个进程访问共享资源的问题。
答案:互斥锁三、简答题(每题10分,共30分)1. 简述深度优先搜索和广度优先搜索的区别。
答案:深度优先搜索(DFS)和广度优先搜索(BFS)都是图搜索算法。
DFS从起始节点开始,一直搜索到不能再深入为止,然后回溯至上一个分叉节点继续搜索。
而BFS则是从起始节点开始,逐层搜索所有邻接节点,直到找到目标节点或遍历完所有节点。
DFS通常使用递归实现,而BFS通常使用队列实现。
2. 简述操作系统的进程管理的主要功能。
答案:操作系统的进程管理主要功能包括进程的创建、进程的调度、进程同步与互斥、进程通信以及进程的终止。
进程创建涉及创建进程、初始化进程数据结构等;进程调度则是根据某种策略决定哪个进程获得CPU时间;进程同步与互斥用于解决多个进程访问共享资源的问题;进程通信提供进程间数据交换的机制;进程终止则涉及清理进程资源、释放内存等。
计算机考研复试经典题目1 OS与机组1.同步与互斥与异步2.线程与进程3.临界区与临界资源4.为什么引入线程5.PCB6.进程状态7.OS定义8.OS功能9.互斥与死锁与饿死10.内存管理11.死锁策略12.死锁条件13.冯诺依曼硬件组成与常规机组14.Cache15.缓存与主存与辅存16.什么时候使用线程效率高17.中断与陷入18.机组计数器19.32位于64位20.硬中断与软中断2 数构1.最小生成树2.最短路径3.二次排序树与AVL树与红黑树4.快排与堆排与归并5.队列与栈应用6.排序总结7.折半查找8.建堆找最大最小值9.KMP和BP区别10.满二叉树11.快排最慢与改进12.数构在计网的应用13.链表与数组(顺序表)14.哈夫曼树与编码15.图的存储结构16.堆17.散列表18.拓扑排序19.循环队列20.单链表找中间节点21.连通图22.B与B+树23.希尔排序24.压缩存储25.贪心动态分治26.两栈两队27.逻辑结构28.邻接矩阵有多少个03 数据库1.索引2.游标3.范式4.Drop与delete与truncate5.存储过程6.文件系统与数据库系统7.数据冗余8.数据独特性9.DBA职责10.数据库系统特点11.数据模型与作用于三要素12.数据库系统的三级模式13.关系模型的完整规则14.等值与自然连接15.SQL特点16.视图17.SQL注入18.笛卡尔积19.主页与副业的删除4 C/C++1.C与C++的区别2.类的三大特性3.静态static4.指针与引用5.结构体与类的区别6.智能指针7.New与malloc8.内存管理9.内存泄露10.野指针11.Const(C/C++)区别12.数组与指针13.STL14.编译四过程15.虚函数与纯虚函数16.结构体与联合体17.Const与#define18.Strlen与sizeof19.内联函数20.重载21.头文件22.友元23.不能重载的运算符24.重载与重定义与重写25.三种传参方式26.Include<>””区别27.类成员权限28.多态29.C文件读写30.覆盖与重载31.常量成员函数32.指针数组与数组指针的区别33.函数指针与指针函数的区别34.面向对象与面向过程35.C中的变量定义与python的定义有什么区别5 计网1.互联网组成2.计网功能3.计网分类4.计网性能5.OSI七层与TCP/IP四层与经典5层6.编码与调制7.三层交换机与路由器的区别8.Web服务器9.数据传输的方式10.物理设备与链路设备与网络设备11.信道复用12.数据链路三基本问题13.流量控制与拥塞控制14.CSMA/CD15.路由算法16.PPP与MAC头17.IPv4与IPv618.子网划分与子网掩码19.CIDR20.ARP与RARP21.IP数据包头22.DHCP与ICMP23.套接字24.UDP与TCP头25.三次握手与四次挥手26.网络应用模型C/S与P2P27.DNS过程28.HTTP与HTTPS区别6 软工1.软件危机定义表现原因2.软工定义3.生命周期4.常用模型5.需求分析的方法6.DFD、ER、类图、用例图、状态图7.设计的过程与原则8.测试与调试9.测试步骤10.黑白盒测试11.调试方法12.维护定义与过程13.软件再工程14.甘特图15.内聚与耦合16.功能性需求与非功能性需求7 算法1.1-100找丢失的数2.N人找明星3.有N中算法描述的方法4.迷宫算法5.TOP K问题8 人工智能1.监督学习与非监督学习2.P与NP问题3.机器学习与深度学习区别4.有哪些卡脖子的技术9 线代与高数1.特征值2.相似对角与合同3.对角矩阵、下上三角、4.极大极小值5.柯西罗尓拉格朗日几何意义6.向量线性相关/无关几何意义7.可导、可微、连续的关系8.线性相关与线性无关证明9.导数定义、微分定义10.定积分与不定积分区别11.转置行列式为什么值不变12.二次型13.基础解析10 离散数学1.个体词2.谓词3.量词4.关系与映射与运算11 其他1.社会核心价值观2.护网行动3.树人育德4.德与才5.编程低龄化。
操作系统历年考研真题操作系统作为计算机科学与技术领域的核心课程,在考研中占据着重要的地位。
历年的考研真题不仅反映了该学科的重点和难点,也为考生提供了宝贵的复习资料和备考方向。
操作系统的考研真题涵盖了多个方面的知识点,包括进程管理、内存管理、文件系统、设备管理等。
下面我们将对这些主要的知识点及其在历年真题中的体现进行详细的分析。
进程管理是操作系统中的关键部分。
真题中常常涉及进程的状态转换、进程同步与互斥、进程调度算法等内容。
例如,有这样一道真题:“请阐述进程的三种基本状态及其转换条件,并举例说明在什么情况下进程会发生状态转换。
” 对于这道题,考生需要清晰地理解进程的就绪、执行和阻塞状态,以及它们之间转换的触发条件。
如进程等待 I/O 操作完成时会从执行状态转换为阻塞状态,当 I/O 操作完成且系统资源满足时,进程会从阻塞状态转换为就绪状态。
内存管理也是考研的重点之一。
常见的真题类型包括内存分配算法、虚拟内存、页面置换算法等。
比如,“比较几种常见的内存分配算法(如首次适应、最佳适应、最坏适应)的优缺点,并说明在什么场景下应该选择哪种算法。
” 回答此类问题,需要对每种算法的原理和特点有深入的理解,同时能够结合实际应用场景进行分析。
文件系统方面,真题可能会考查文件的物理结构、目录结构、文件的访问控制等。
像“阐述文件的连续分配、链接分配和索引分配这三种物理结构的特点,并分析它们各自的优缺点。
” 这就要求考生对文件系统的存储组织方式有清晰的认识,能够从存储空间利用、文件访问效率等方面进行比较和分析。
设备管理的真题可能会涉及 I/O 控制方式、设备分配策略、缓冲区管理等内容。
比如,“简述中断驱动 I/O 控制方式和 DMA 控制方式的工作原理,并比较它们的性能差异。
” 考生需要准确理解这两种 I/O 控制方式的工作流程和特点,从而能够对它们的性能进行有效的评估和对比。
除了上述具体的知识点,操作系统的考研真题还注重考查考生对整体概念和原理的理解,以及解决实际问题的能力。
进程同步问题A. 生产者-消费者问题类1.(西北工大2000年试题)由三个进程get,copy和put以及两个缓冲区buffer1和buffer2完成一项输入/输出操作。
进程get的功能是把一张卡片上的信息从读卡机上读进buffer1;进程copy的功能是把buffer1中的信息复制到buffer2;进程put的功能是取出buffer2中的信息并从打印机上打印输出。
试用P、V操作完成这三个进程间的尽可能并发正确执行的关系(用程序或框图表示),并指明信号量的作用和初值。
解:可设置6个信号量mutex1,mutex2,empty1,empty2,full1,full2。
其中:mutex1和mutex2是互斥信号量,初值为1,分别用于对buffer1和buffer2的互斥访问;empty1和empty2为同步信号量,初值为1,分别表示buffer1和buffer2是否空闲,1表示空闲,0表示不空闲;full1和full2为同步信号量,初值为0,分别表示buffer1和buffer2中是否有可取用的信息,1表示有可取用的信息,0表示无可取用的信息。
semaphore mutex1, mutex2, empty1, empty2, full1, full2 ;mutex1=mutex2=1; //互斥信号量empty1=empty2=1; //生产者进程的同步信号量full1=full2=0; //消费者进程的同步信号量parbeginprocess get( ) //读进程(生产者进程){while (1) {从读卡机读入一张卡片的信息;P(empty1) //看看buffer1是否空闲P(mutex1); //互斥访问buffer1将信息放入buffer1;V(mutex1);V(full1); //通知进程copy,buffer1中已有信息科取(若copy正在等待,则唤醒之)}}process copy( ) //复制进程(既是消费者又是生产者进程){while (1) {P(full1) //看看buffer1是否有信息可取P(mutex1); //互斥访问buffer1从buffer1中复制出信息;V(mutex1);V(emtpy1); //通知get,buffer1中的信息已取走(可能唤醒get)P(empty2); //看看buffer2是否空闲P(mutex2); //互斥访问buffer2将复制的信息放入buffer2;V(mutex2);V(full2); //通知put,buffer2中已有信息}}process put( ) //输出进程(消费者进程){while (1) {P(full2); //测试buffer2中是否有信息P(mutex2); //互斥访问buffer2从buffer2中取出信息;V(mutex2);V(empty2); //通知copy,buffer2中的信息已取走}}parend【讨论】由于本题中对于两个缓冲区buffer1和buffer2来说,都只有一个生产者和一个消费者,因此互斥信号量mutex1和mutex2实际上是可以省去的。
以下第2、3、4题实际上与本题是同一道题。
2.(北京大学1990年试题)有三个进程PA、PB和PC协作解决文件打印问题:PA将文件记录从磁盘读入主存的缓冲区1,每执行一次读一个记录;PB将缓冲区1的记录复制到缓冲区2,每执行一次复制一个记录;PC将缓冲区2的内容打印出来,每执行一次打印一个记录。
缓冲区的大小和一个记录大小一样。
试用P、V操作来保证文件的正确打印。
解:BEGINsemaphore mutex1,mutex2,avail1,avail2,full1,full2;mutex1 := 1;mutex2 := 1;{实际上mutex1,mutex2可以省去}avail1 := 1;avail2 := 1;full1 := 0;full2 := 0;PARBEGINPA:BEGINL1:read from disk;P(avail1);P(mutex1);put to buffer 1;V(full1);V(mutex1);goto L1;ENDPB:BEGINL2:P(full1);P(mutex1);get from buffer 1;V(avail1);V(mutex1);P(avail2);P(mutex2);put to buffer 2;V(full2);V(mutex2);goto L2 ;ENDPC:BEGINL3:P(full2);P(mutex2);get from buffer 2;V(avail2);V(mutex2);print RECORDgoto L3 ;ENDPARENDEND3.有三个进程,Reader进程读入数据number1,将其放入缓冲器B1,Executor进程将B1中数据取出,处理成数据number2,将其放入缓冲器B2,Printer进程将number2数据取出打印,假设B1和B2只能存放一个数据,用P、V操作管理这三个进程的执行。
解:解:采用P、V操作的同步算法如下:BEGINsemaphore empty1, full1, empty2, full2 ;empty1.vale = empty2.value = 1 ;ful2.value = full2.value = 0 ;PARBEGINReader:BEGINL1:read number1 ;P(empty1) ;B1=number1 ;V(full1) ;goto L1;ENDExecutor:BEGINL2:P(full1) ;take number1 from B1 ;V(empty1) ;Process number1-->number2 ;P(empty2) ;B2=number2 ;V(full2) ;goto L2;ENDPrinter:BEGINL3:P(full2);take number2 from B2 ;V(empty2) ;Print(number2) ;goto L3;ENDCOENDEND4.假定系统有三个并发进程read, move和print共享缓冲器B1和B2。
进程read负责从输入设备上读信息,每读出一个记录后把它存放到缓冲器B1中。
进程move从缓冲器B1中取出一记录,加工后存入缓冲器B2。
进程print将B2中的记录取出打印输出。
缓冲器B1和B2每次只能存放一个记录。
要求三个进程协调完成任务,使打印出来的与读入的记录的个数,次序完全一样。
请用PV操作,写出它们的并发程序。
(注:本题与第3题是同一个题,与第5题类似)解:参考程序如下:beginSR, SM1, SM2, SP: semaphore;B1, B2 : record;SR:=1; SM1:=0; SM2=1; SP:=0;cobeginprocess readX : recoed;beginR: X:=从输入设备上读入的一个记录;P(SR);B1:=X;V(SM1);goto R;end;process moveY : record;beginM: P(SM1);Y :=B1;V(SR);加工Y中的记录;P(SM2);B2 := Y;V(SP);goto M;end;process printZ : record;beginP: P(SP);Z := B2;V(SM2);打印Z中的记录;goto P;end;coend;end;5.今有3个并发进程R、M、P,它们共享一个缓冲器B。
进程R负责从输入设备读入信息,每读一个记录后把它存放在缓冲器B中。
进程M在缓冲器B中加工进程R存入的记录。
进程P把加工后的记录打印出来。
缓冲器B中每次只能存放一个记录,当记录被加工输出后,缓冲器B中又可以存放一个新的记录。
为协调它们的工作,采用PV操作进行管理。
解:semaphore SR,SM,SP;SR=1; SM=0; SP=0;parbeginProcess R{while (1) {从输入设备读入信息X;P(SR); //看看缓冲区B是否是空的B=X; //信息存入缓冲区BV(SM); //通知M,缓冲区B中已有记录}}Process M{while (1) {P(SM); //测试R是否已在B中存放信息在缓冲器B中加工进程R存入的记录;V(SP); //通知P缓冲区B中的信息已可打印}}Process P{while (1) {P(SP); //测试M是否已将信息加工好从B中取M加工后的信息Y;V(SR); //通知R,缓冲区B已可房信息Print(Y); //打印信息Y}}parend6.若一只盘子一次只能放一个水果,A只往盘中放苹果,B只往盘中放梨子,C只从盘中取苹果,D只从盘中取梨子。
试用:(1) 信号量和P、V操作;(2) 管程,写出同步算法。
解:(1) 采用P、V操作的同步算法如下:semaphore SAB=1; //A、B的资源信号量,同时又是它们的互斥信号量semaphore SC=0; //C的资源信号量(用于与A同步)semaphore SD=0; //D的资源信号量(用于与B同步)beginparbeginprocess A: //进程A的算法描述{while(true) {取一个苹果;wait(SAB); //测试盘子是否为空将一苹果放入盘中;signal(SC) //通知C盘中已有苹果(可能唤醒C)}}process C:{while(true) {wait(SC); //测试盘子是否有苹果从盘中取出苹果;signal(SAB); //通知A(或B)盘子一空(可能唤醒A或B)消费该苹果;}}process B: //进程B的算法描述{while(true) {取一个梨子;wait(SAB); //测试盘子是否为空将一梨子放入盘中;signal(SD) //通知D盘中已有梨子(可能唤醒D)}}process D:{while(true) {wait(SD); //测试盘子是否有梨子从盘中取出梨子;signal(SAB); //通知A(或B)盘子一空(可能唤醒A或B)消费该梨子;}}parendend(2) 采用管程的同步算法如下:首先定义管程MPC,该管程可描述如下:type MPC=monitorvar flag: integer; //flag=0:盘中无水果;=1盘中有苹果;=2盘中有梨子empty: condition; //用于A或B等待空盘子W: array[1..2] of condition //W[1]用于等待苹果,W[2]用于等待梨子procedure entry put(integer k)beginif flag>0 then empty.wait; //生产者A或B进程阻塞flag=k;放一k号水果入盘中; //设1号水果为苹果,2号水果为梨子if W[k].queue then full.signal; //若有等待k号水果者,则唤醒之endprocedure entry get(integer k)beginif flag<>k then W[k].wait; //消费者C或D进程阻塞从盘中取k号水果;flag := 0;if empty.queue then empty.signal; //若等待队列非空,则唤醒队首的一个生产者进程endbeginflag :=0; //初始化内部数据endA、B、C、D四个进程的同步算法可描述如下:parbeginProcess Abegin任取一个苹果;MPC.put(1);endProcess Bbegin任取一个梨子;MPC.put(2);endProcess CbeginMPC.get(1);吃苹果;endProcess DbeginMPC.get(2);吃梨子;endparend7.设自行车生产车间有两个货架,货架A可以存放8个车架,货架B可以存放20个车轮;又设有4个工人,他们的活动是重复劳动,分别为:工人1 加工一个车架放入货架A中;工人2、3分别加工车轮放入货架B中(每人每次放入1个车轮);工人4从货架A中取一个车架,再从货架B中取两个车轮,组装成一辆自行车。