考研复试-计算机网络-面试题

Posted 慕慕和小绵羊

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了考研复试-计算机网络-面试题相关的知识,希望对你有一定的参考价值。

1.OSI,TCP/IP,五层协议的体系结构是怎样的?它们之间又有哪些区别呢?
答:好的,谢谢老师的提问。
osi协议分为7层,从上至下分别为,应用层-表示层-会话层-网络层-数据链路层-物理层。
tcp/ip协议分为4层,从上至下分别为,应用层-传输层-网络层-网络接口层。
五层协议自上而下分别为,应用层-传输层-网络层-数据链路层-物理层。
osi协议比五层协议多2层,分别是表示层和会话层。tcp/ip协议比五层协议少一层,五层协议中的数据链路层和物理层结合在一起合并成了网络接口层。
tcp/ip体系结构不严格遵循osi分层概念,应用层可能会直接使用ip层或网络接口层。

2.那么,请详细说一下五层协议的体系结构。
答:五层协议从上至下分别为应用层-传输层-网络层-数据链路层-物理层。
应用层是为特定应用程序提供数据传输服务,例如HTTP,DNS等协议,数据单位为报文。
传输层是为主机种的进程提供通用数据传输服务。运输层包括两种协议,分别是传输控制协议TCP用户数据报协议UDP
网络层是为主机提供数据传输服务。网络层把传输层传递下来的报文段封装成分组。ip层的协议分别是,地址解析协议ARP,网际控制报文协议ICMP,网际组管理协议IGMP
数据链路层是为同一链路的主机提供数据传输服务。数据链路层把网络层传下来的分组封装成帧。
物理层考虑的是怎样在传输媒体上传输数据比特流,而不是指具体的传输媒体。物理层的作用是尽可能屏蔽传输媒体和通信手段的差异,使数据链路层感觉不到这些差异。

3.请说一下TCP协议的特点。

  • 面向连接,在通信前需要先三次握手建立连接,在通信结束后四次挥手释放连接
  • 点对点连接,只支持点对点通信
  • 可靠传输,保证传输的数据无差错,丢失与重复
  • 全双工通信
  • 面向字节流的,TCP传输时会用一个序号来表明自己传输/接收的是哪些字节。

4.请说一下UDP协议的特点。

  • udp无需建立连接,因此udp不会引入建立连接的时延。
  • 无连接状态。
  • 分组首部开销小,tcp有20B的首部开销,而udp只有8B的开销。
  • udp没有拥塞控制,因此网络中的拥塞不会影响主机的发送效率。

5.接下来请说一下tcp与udp的区别。

  • tcp提供面向连接的,可靠的数据流传输,传输单位为报文段。
  • udp提供非面向连接的,不可靠的数据流传输,传输单位为用户数据报。
  • tcp只支持点对点通信,而udp支持一对一,一对多,多对一,多对多。
  • tcp的首部有20字节,udp的首部开销为8字节。
  • tcp有拥塞控制机制,udp没有拥塞控制。
  • tcp注重数据安全性,udp数据传输快。

6.TCP和UDP分别对应了哪些协议?
tcp:ftp,telent,smtp,pop3,http
udp:dns,tftp,snmp,dhcp

7.访问www.baidu.com的过程

  • 浏览器获取输入的域名www.baidu.com.
  • 浏览器向域名系统dns请求解析www.baidu.com的ip地址。
  • dns服务器解析出百度服务器的ip地址。
  • 浏览器与服务器建立tcp连接(默认端口为80)
  • 浏览器发出http请求,请求百度页面
  • 服务器通过http请求把首页文件发给浏览器
  • tcp连接释放
  • 浏览器解析首页文件,展示web页面

8.请解释一下ARP工作原理
根据ip找mac
广播发送arp请求
工作原理如下:

  • 每个主机都会在自己的arp缓冲区中建立一个arp列表,以表示IP地址和mac地址之间的对应关系。
  • 当源主机要发送数据时,首先根据目的ip地址检查arp列表中是否有目的主机的mac地址,如果有,则直接发送数据。如果没有,就向本网段广播arp数据包,该数据包包括的内容有:源主机ip地址,源主机mac地址,目的主机的ip地址。
  • 当本网络的所有主机收到该arp数据包时,首先检查数据包中的IP地址是否是自己的ip地址,如果不是,则忽略该数据包,如果是,则首先从数据包中取出源主机的ip地址和mac地址写到自己的arp列表中,如果已存在,则覆盖,然后将自己的mac地址写入arp响应包中,单播发给源主机。
  • 源主机收到arp响应包后,将目的主机和mac地址写入arp列表,并利用此信息发送数据。

9.hub,switch,router属于osi的哪一层?
hub是集线器,属于物理层
switch是交换机,属于数据链路层
router是路由器,属于网络层

10.说出套接字Socket的有关含义
每一条tcp连接有2个端点,tcp连接的端点叫套接字(Socket)或接口。端口号拼接到ip地址即构成了套接字。
套接字Socket=(IP地址:端口号)


1.说一下TCP三次握手建立连接的过程
好的,谢谢老师的提问。
首先,由客户机的tcp向服务器的tcp发送一个连接请求报文段,这个报文段不含应用层数据,它的首部中的SYN标志位会被置为1,同时客户机会随机选择一个起始序号为seq=x
然后,服务器收到来自客户机的请求报文段后,如果同意连接,就会向客户机发回确认,并为该tcp连接分配tcp缓存和变量,在确认报文段中,SYN和ACK都置为1,确认号为x+1,并且服务器会随机产生起始序号为seq=y,确认报文段同样不包含应用层数据。
最后,客户端会收到服务器的确认报文段后,还要向服务器端发送一个确认报文,并且也要给该连接分配缓存和变量。这个报文段的ACK标志位被置1,序号字段为x+1,确认号字段为y+1。该报文段可以携带数据,若不携带数据则不消耗序号。

2.请说一下主机间的通信方式有哪些?
主机间有2种通信方式,分别是客户/服务器方式和对等连接方式。在客户-服务器方式中,客户是服务的请求方,服务器是服务的提供方。而在p2p方式中是不区分客户和服务器的。

3.请说一下电路交换,报文交换和分组交换的区别。
电路交换是整个报文的比特流从源点连续地直达终点,像在一个管道中传输,包括建立连接,传输数据和断开连接三个阶段,最典型的电路交换网络是传统电话网络。
电路交换的优点是通信时延小,有序传输,不会出现失序状态。缺点就是建立连接时间长,线路独占,对故障敏感,通路中任何一点出现问题都无法继续传输。
报文交换是将整个报文转发到相邻节点,全部存储下来,查找转发表,转发到下一个节点。是存储转发类型的网络。
报文交换的优点是无需建立连接,某条传输路径发生故障时可以选择另外一条路径传输,提高了线路的可靠性。那么它的缺点也很明显,会有转发时延,并且需要网络节点有较大的缓存空间。
分组交换和报文交换类似,不过它不再是传输整个报文,它是将报文分组转发到相邻节点,查找转发表,转发到下一个节点,也是存储-转发类型的网络。
分组交换的优点有很多。第一,因为分组的长度固定,所以便于缓冲区存储管理。第二,由于分组是逐个传输的,因此可以使后一个分组的存储操作和前一个分组的转发操作并行,加快了传输时间。第三,减少了重发的数据量,需要重传时仅仅需要重传分组,而不是重传整个报文。它的缺点是分组可能会出现失序,需要对分组按照编号进行重新排序。

4.请说一下计算机网络的主要性能指标
答:主要是以下几点,分别是,速率,带宽,吞吐量,时延,时延带宽积,往返时间RTT,以及利用率。

5.那么,请说一下网络时延是由哪几部分组成?各产生于何处?
答:一般来讲,网络时延主要由发送时延和传播时延组成,发送时延是将数据分组从第一个比特到最后一个比特全部推到链路上传输所花费的时间。传播时延是数据分组在链路上传输所需要的时间,若链路拥塞的时候,分组还要经受排队时延,这是分组在链路上等待传输所花费的时间。
时延=发送时延+传播时延+处理时延+排队时延。

6.为什么要进行网络分层?以及网络分层的原则是什么?
答:网络分层的目的是为了降低协议设计和调试过程的复杂性,便于网络的研究和实现。
网络分层的原则有以下几点:
第一,每一层实现一种相对独立的功能。
第二,层与层之间的交流尽可能少。
第三,保持下层对上层的独立性,上层单向使用下层提供的服务。

7.网络协议的三个核心要素是什么,各起什么作用?
答:网络协议是指控制对等实体之间的通信规则。
网络协议的三要素是指,语法,语义和同步
语法,定义了数据与控制信息的格式
语义,定义了需要发出何种控制信息,完成何种响应动作以及作出何种响应
同步,定义了事件实现顺序的详细说明

8.协议和服务的联系和区别?
答:协议是”水平的“,服务是”垂直的“。
协议是控制两个对等实体(或多个实体)进行通信的规则的集合。而服务是由下层向上层通过层间接口提供的。
在协议的控制下,两个对等实体间的通信使得本层能够向上一层提供服务,要实现本层协议,还需要使用下面一层所提供的服务。

9.请说一下OSI参考模型各层的主要功能
物理层:比特,任务是实现比特流的透明传输。
数据链路层:帧,任务是将网络层传来的IP数据报组装成帧,该层的三大基本问题是封装成帧,透明传输和差错控制。
网络层:数据报,任务是将分组从源端传送到目的端,实现网络中不同主机之间的数据通信。
传输层:报文段,任务是为主机中两个进程提供端到端的可靠的数据通信。
会话层:允许不同主机上的各个进程之间进行会话,包括建立,管理和终止进程间的会话。
表示层:实现数据压缩,加解密等数据表示变换功能。
应用层:通过应用进程间的交互来完成特定网络应用。

10.请比较一下OSI参考模型与TCP/IP参考模型的比较
相似之处:
都采用分层结构
都基于独立的协议栈
都可以实现异构网络的互连
不同处:
osi定义了三个主要的概念:服务,协议与接口,tcp/ip模型在这三个概念上没有明确区分
osi参考模型出现在协议之前,没有偏向于特定协议,通用性好,而tcp/ip协议出现在协议之后
osi参考模型在网络层支持面向连接和无连接的通信,在传输层支持面向连接的通信,而tcp/ip模型在网络层支持无连接的通信,在传输层支持面向连接和无连接的通信。


1.请说一下波特和比特的区别
波特是码元传输的单位,说明每秒传送多少个码元。
(码元是指一个固定时长的信号波形)
比特是信息量的单位,与码元的传输速率”波特“是两个完全不同的概念。
但是,信息的传输速率”比特/秒“与码元的传输速率”波特“在数量上却有一定的关系。

2.什么是奈氏准则和香农定理?
奈氏准则:带宽受限,无噪声条件下,为避免码间串扰,码元传输速率有上限,但信息传输速率并未给出限制。
香农定理:带宽受限,有噪声条件下,对于一定信噪比和一定带宽,信息传输速率的上限是确定的。

3.结合Internet,说说有连接服务和无连接地服务
答:面向连接服务具有连接建立,数据传输和连接释放这三个阶段。
面向连接服务是在数据交换之前,必须先建立连接,当数据交换结束后,则必须终止这个连接。在传送数据时是按序传送的,是可靠交付。
无连接服务,两个实体之间的通信不需要先建立好一个连接,资源将在数据传输时动态地进行分配。
无连接服务的优点是灵活方便和比较迅速,但无连接服务不能防止报文的丢失,重复或失序。是一种不可靠的服务。

4.为什么要使用信道复用技术?常用的信道复用技术有哪些?
答:为了通过共享信道,最大限度地提高信道利用率。
频分,时分,码分,波分

5.码分多址CDMA为什么可以使所有用户在相同的时间使用同样的频带进行通信而不会互相干扰?这种复用方法有何优缺点?
各用户使用经过特殊挑选的相互正交的不同码型,因此彼此不会造成干扰。
这种系统发送的信号有很强的抗干扰能力,其频谱类似于白噪音,不易被敌人发现。占用较大的带宽。

6.物理层要解决哪些问题?
答:物理层考虑的是怎样才能在连接各种计算机的传输媒体上传输数据比特流,而不是指具体的传输媒体。
物理层要尽可能地屏蔽掉物理设备和传输媒体,通信手段的不同,使数据链路层感觉不到这些差异,只考虑完成本层的协议与服务。

7.数据链路层为网络层提供的服务有哪些?
涉及发送数据帧时需不需要建立链路连接,目的机器收到的数据帧时需不需要发回确认。
无确认的无连接的服务,适用于实时通信或者误码率较低的通信信道,如以太网。
有确认的无连接服务,适用于误码率较高的通信信道,如无线通信。
有确认的面向连接服务,适用于可靠性要求较高的场合。

8.为什么数据链路层要进行组帧?
为了在出错的时候仅仅重发出错的帧,而不必重发全部比特流,从而提高效率。

9.为什么链路层需要加头加尾,而其他层不需要?
因为网络中信息是以帧为最小单位进行传输的,所以接受端要正确的接收帧,必须要清楚该帧在一串比特流中从哪里开始到哪里结束。因为接收端收到的是一串比特流,没有首部和尾部是不能正确区分帧的。而IP数据报仅是包含在帧中的数据部分,所以不需要加尾部来定界。

10.数据链路层组帧的方法
字符计数法:在帧的头部使用一个计数字段来表明帧内字符数,缺点是如果计数字段出现错误,那么就失去了帧边界划分的依据,接收双方将失去同步,从而造成灾难性后果。
字符填充法:使用一些特定的字符来定界一帧的开始与结束。
比特填充法:为比特流设定特殊的首尾标志,为了不使信息位中的数据被误判为首尾标志,每遇到5个连续的1时,将在其后边自动插入一个0.
违规编码法:高-低电平和低-高电平用于表示数据,而高-高电平和低-低电平在数据比特中是违规的,可以利用这些违规编码序列来定界帧的开始和结束。
目前常用的是比特填充法和违规填充法。


1.说一说信道复用技术
答:信道复用技术有以下几种,频分复用,时分复用,波分复用和码分复用。
频分复用:将多路基带信号调制到不同频率载波上,再叠加形成一个复合信号的多路复用技术。
时分复用:将一条物理信道按时间分为若干时间片,轮流的分配给多个信号使用。
波分复用:就是光的频分复用,它在一根光纤中传输多种不同波长的光信号,由于波长不同,各路光信号互不干扰,最后再用波长分解复用器将各路波长分解出来。
码分复用:码分复用是采用不同的编码来区分各路原始信号的一种复用方法,它既共享信道的频率,又共享时间。

2.数据链路层的三个基本问题是什么?为什么都必须加以解决?
答:数据链路层的三个基本问题是封装成帧,透明传输和差错检测。
封装成帧是分组交换的必然要求
透明传输避免消息符号与帧定界符号相混淆
差错检测防止差错的无效数据帧浪费后续路由上的传输和处理资源。

3.帧定界符的作用是什么?
答:假定发送端在尚未发送完一个帧时突然发生故障,中断了发送,但随后很快又恢复正常,于是重新重头开始发送刚才未发送完的帧,由于使用了帧定界,接收端就知道前面收到的数据是个不完整的帧。

4.透明传输中的透明是什么意思?
答:它表示某一个实际存在的事物看起来好像不存在一样。
“在数据链路层透明传送数据”表示无论什么样的比特组合的数据,都能够按照原样没有差错地通过这个数据链路层。

5.PPP协议的工作状态有哪些?当用户要使用PPP协议和ISP建立连接进行通信时,需要建立哪几种连接?每一种连接解决什么问题?

计算机考研复试面试常问问题 操作系统篇

计算机考研复试面试常问问题 操作系统篇

在复习过程中,我用心查阅并整理了在考研复试面试中可能问到的大部分问题,并分点整理了答案,可以直接理解背诵并加上自己的语言润色!极力推荐打印下来看,效率更高!

此系列一共有8篇:编程语言篇|数据结构篇|操作系统篇|组成原理篇|计算机网络篇|数据库篇|软件工程篇|计算机专业英语篇(还未全部完成,敬请期待,你们的支持和关注是我最大的动力!)

个人整理,不可用于商业用途,转载请注明出处。

作者各个平台请搜索:程序员宝藏。快来探索属于你的宝藏吧!

需要pdf直接打印版,可在公众号"程序员宝藏"回复复试上岸获取(会持续更新)

需要408电子书2021版,可在公众号"程序员宝藏"回复408电子书获取

需要408初试视频2021版,可在公众号"程序员宝藏"回复408视频获取

需要复试机试视频,可在公众号"程序员宝藏"回复机试必过获取

加油,大家都可以上岸!!!让我们一起努力!!!

第一章、计算机系统概述

快速唤起记忆的知识框架

技术图片

<u>1.操作系统的目标和功能?(什么是操作系统?)</u>

1.操作系统是计算机资源的管理者

处理机管理(进程控制、进程同步、进程通信、死锁处理、处理机调度)

存储器管理(提高内存利用率,内存的分配与回收、地址映射、内存保护与共享、内存扩充)

文件管理(计算机中的信息都是以文件的形式存在的)

设备管理(完成用户的I/O请求,方便用户使用设备、并提高设备的利用率

2.操作系统为用户提供使用计算机硬件系统的接口

命令接口(用户通过控制台或终端输入操作命令,向系统提供各种服务要求)

程序接口(由系统调用组成,用户在程序中使用这些系统调用来请求操作系统为其提供服务)

图形接口 最常见的图形用户界面GUI(最终还是通过调用程序接口实现的)

3.操作系统用作扩充机器

没有任何软件支持的计算机称为裸机,实际呈现在用户面前的计算机系统是经过若干层软件改造的计算机。操作系统将裸机改造成功能更强、使用更方便的机器。我们将覆盖了软件的机器称为扩充机器或虚拟机。


<u>2.操作系统的运行机制?</u>

1.内核程序和应用程序(内核态和用户态)

在计算机系统中,通常CPU执行两种不同性质的程序:一种是操作系统内核程序;另一种是用户自编程序或系统外层的应用程序。内核程序是应用程序的”管理者”。“管理程序“可以执行一些特权指令,而”被管理程序“出于安全考虑不能执行这些指令。所谓特权指令,是指计算机中不允许用户直接使用的指令,如:I/O指令、置中断指令,存取用于内存保护的寄存器,送程序状态字到程序状态字寄存器等指令。

操作系统在具体实现上划分了用户态(目态)和核心态(管态),以严格区分两类程序。

2.层次式结构

操作系统的各项功能分别被设置在不同的层次上。一些与硬件关联较紧密的模块,诸如时钟管理、中断管理、设备驱动等处于最底层。其次是运行频率较高的程序,诸如进程管理、存储管理和设备管理等。 上面的这两部分内容构成了操作系统的内核,这部分内容的指令操作工作在核心态。

3.内核

内核是计算机上配置的底层软件,是计算机功能的延伸,包括以下4个方面的内容:

1)时钟管理 时钟的第一功能是计时,操作系统需要通过时钟管理,向用户提供标准的系统时间。其次,通过时钟中断的管理,可以实现进程的切换。在分时操作系统中,采用时间片轮转调度的实现;在实时系统中,按截至时间控制运行的实现;在批处理系统中,通过时钟管理来衡量一个作业的运行程度等。

2)中断机制 引入中断技术的初衷是提高多道程序运行环境中CPU的利用率,主要针对外部设备。后来逐步得到发展,形成了多种类型,成为操作系统各项操作的基础。如,键盘或鼠标信息的输入、进程的管理和调度、系统功能的调用、设备驱动、文件访问等。都依赖于中断机制。可以说,现代操作系统是靠中断驱动的软件。中断机制中,只有一小部分功能属于内核,负责保护和恢复中断现场的信息,转移控制权到相关的处理程序。这样可以减少中断的处理时间,提高系统的并行处理能力。

3)原语 操作系统底层是一些可被调用的公用小程序,它们各自完成一个规定的操作,其特点是:

------ 它们处于操作系统的最底层,是最接近硬件的部分。

------ 这些程序的运行具有原子性,其操作只能一气呵成

------ 这些程序的运行时间都较短,而且调用频繁。

定义原语的直接方法是关闭中断,让它的所有动作不可分割地进行完再打开中断。

4)系统控制的数据结构及处理 系统中用来登记状态信息的数据结构很多,比如:作业控制块、进程控制块、设备控制块、各类链表等。为了实现有效的管理,系统需要一些基本的操作,常见的操作有以下三种:

------ 进程管理:进程状态管理、进程调度和分配、创建和撤销进程控制块等。

------ 存储器管理:存储器的空间分配和回收、内存信息保护程序、代码对换程序等。

------ 设备管理:缓冲区管理、设备分配和回收等。


<u>3.中断和异常?</u>

1.中断的引入——为了支持CPU和设备之间的并行操作

中断也称外中断,指来自CPU执行指令以外的事件的发生,如设备发出的I/O结束中断、时钟中断等。这一类中断通常是与当前执行的指令无关的事件。

2.异常的引入——表示CPU执行指令本身时出现的问题

异常也称内中断、例外或陷入,指源自CPU执行指令内部的事件,如程序的非法操作码、地址越界、算术溢出、缺页异常等。对异常的处理一般要依赖与当前程序的运行现场,不能被屏蔽。

3.中断和异常的联系与区别

技术图片

4.中断执行的流程

技术图片
以上是多重中断的流程,其中,1~3步是由硬件(中断隐指令)完成的;4-9步是由中断服务程序完成的。

<u>4.系统调用?</u>

计算机系统的各种硬件资源是有限,为了更好的管理这些资源,进程是不允许直接操作的,所有对这些资源的访问都必须有操作系统控制。也就是说操作系统是使用这些资源的唯一入口,而这个入口就是操作系统提供的系统调用。一般地,系统调用都是通过中断实现的,比如,linux下中断号0x80就是进行系统调用的。

操作系统为用户态进程与硬件设备进行交互提供了一组接口——系统调用:1.把用户从底层的硬件编程中解放了出来;2.极大地提高了系统的安全性使用户程序具有可移植性;用户程序与具体硬件已经被抽象接口所替代。

系统调用流程图如下:

技术图片


5.<u>大内核和微内核</u>

1.大内核

大内核是将操作系统功能作为一个紧密结合的整体放到内核。由于各模块共享信息,因此有很高的性能。

2.微内核

由于操作系统不断复杂,因此将一部分操作系统功能移出内核,从而降低内核的复杂性。移出的部分根据分层的原则划分成若干服务,相互独立。
在微内核结构下,操作系统被划分成小的、定义良好的模块,只有微内核这一个模块运行在内核态,其余模块运行在用户态。
因为需要频繁地在用户态和核心态之间进行切换,所以会有一定的性能损失。

技术图片

第二章、进程管理

快速唤起记忆的知识框架

技术图片


6.<u>进程与线程</u>?

1.进程的概念与定义

在多道程序环境下,允许多个进程并发执行,此时他们将失去封闭性,并具有间断性及不可再现性的特征。为此引入了进程的概念,以便更好地描述和控制程序的并发执行,实现操作系统的并发性和共享性。

进程是程序的运行过程,是系统进行资源分配和调度的一个独立单位。

2.线程的概念和定义

早期,在OS中能拥有资源和独立运行的基本单位是进程,然而随着计算机技术的发展,进程出现了很多弊端,一是由于进程是资源拥有者,创建、撤消与切换存在较大的时空开销,因此需要引入轻型进程;二是由于对称多处理机(SMP)出现,可以满足多个运行单位,而多个进程并行开销过大。

线程是操作系统能够进行运算调度的最小单位。它被包含在进程之中,是进程中的实际运作单位。一条线程指的是进程中一个单一顺序的控制流,每条线程执行不同的任务。

3.进程和线程的区别

1.进程(Process)是系统进行资源分配和调度的基本单位,线程(Thread)是CPU调度和分派的基本单位;

2.线程依赖于进程而存在,一个进程至少有一个线程;

3.进程有自己的独立地址空间,线程共享所属进程的地址空间;

4.进程是拥有系统资源的一个独立单位,而线程自己基本上不拥有系统资源,只拥有一点在运行中必不可少的资源(如程序计数器,一组寄存器和栈),和其他线程共享本进程的相关资源如内存、I/O、cpu等;

5.在进程切换时,涉及到整个当前进程CPU环境的保存环境的设置以及新被调度运行的CPU环境的设置,而线程切换只需保存和设置少量的寄存器的内容,并不涉及存储器管理方面的操作,可见,进程切换的开销远大于线程切换的开销;

6.线程之间的通信更方便,同一进程下的线程共享全局变量等数据,而进程之间的通信需要以进程间通信(IPC)的方式进行;

7.多线程程序只要有一个线程崩溃,整个程序就崩溃了,但多进程程序中一个进程崩溃并不会对其它进程造成影响,因为进程有自己的独立地址空间,因此多进程更加健壮

4.进程和程序的区别

(1) 程序是永存的;进程是暂时的,是程序在数据集上的一次执行,有创建有撤销,存在是暂时的;
(2)程序是静态的观念,进程是动态的观念;
(3)进程具有并发性,而程序没有;
(4)进程是竞争计算机资源的基本单位,程序不是。
(5)进程和程序不是一一对应的: 一个程序可对应多个进程即多个进程可执行同一程序; 一个进程可以执行一个或几个程序


7.<u>进程的通信方式</u>?

1.共享内存

顾名思义,共享内存就是两个进程同时共享一块内存,然后在这块内存上的数据可以共同修改和读取,达到通信的目的。

2.无名管道

无名管道是半双工的通信方式;并且只能在具有亲缘关系的进程之间使用(亲缘关系是指进程间的父子关系,兄弟关系等),具有亲缘关系的进程在创建时同时拥有一个无名管道的句柄,可以进行读写;无名管道不存在磁盘节点,只存在与内存中用完即销毁。

3.命名管道

命名管道也是半双工的通信方式;可以在不具有亲缘关系的进程间通信;有名管道存在磁盘节点,有对应的FIFO文件,凡是可以访问该路径的文件的进程均可以进行通信。

4.消息队列

消息队列是由消息的链表,存放在内核中并由消息队列标识符标识。消息队列克服了信号传递信息少、管道只能承载无格式字节流以及缓冲区大小受限等缺点。

5.套接字

套接字是网络编程的api,通过套接字可以不同的机器间的进程进行通信,常用于客户端进程和服务器进程的通信。

6.信号

信号是Unix系统中使用的最古老的进程间通信的方法之一。操作系统通过信号来通知进程系统中发生了某种预先规定好的事件(一组事件中的一个),它也是用户进程之间通信和同步的一种原始机制。一个键盘中断或者一个错误条件(比如进程试图访问它的虚拟内存中不存在的位置等)都有可能产生一个信号。Shell也使用信号向它的子进程发送作业控制信号。


<u>8.进程的5种状态及转换过程?</u>

技术图片


<u>9.进程的调度算法有哪些?</u>

1.先来先服务 first-come first-serverd(FCFS)

按照请求的顺序进行调度。非抢占式,开销小,无饥饿问题,响应时间不确定(可能很慢);

对短进程不利,对IO密集型进程不利。

2.最短作业优先 shortest job first(SJF)

按估计运行时间最短的顺序进行调度。非抢占式,吞吐量高,开销可能较大,可能导致饥饿问题;

对短进程提供好的响应时间,对长进程不利

3.优先级调度算法

为每个进程分配一个优先级,按优先级进行调度。为了防止低优先级的进程永远等不到调度,可以随着时间的推移增加等待进程的优先级。

4.时间片轮转

将所有就绪进程按 FCFS 的原则排成一个队列,用完时间片的进程排到队列最后。抢占式(时间片用完时),开销小,无饥饿问题,为短进程提供好的响应时间;

若时间片小,进程切换频繁,吞吐量低;若时间片太长,实时性得不到保证。

5.最高响应比优先

响应比 = 1+ 等待时间/处理时间。同时考虑了等待时间的长短和估计需要的执行时间长短,很好的平衡了长短进程。非抢占,吞吐量高,开销可能较大,提供好的响应时间,无饥饿问题。

6.多级反馈队列调度算法

设置多个就绪队列1、2、3...,优先级递减,时间片递增。只有等到优先级更高的队列为空时才会调度当前队列中的进程。如果进程用完了当前队列的时间片还未执行完,则会被移到下一队列。

抢占式(时间片用完时),开销可能较大,对IO型进程有利,可能会出现饥饿问题。


10.<u>同步和互斥</u>?

1.同步

多个进程因为合作而使得进程的执行有一定的先后顺序。比如某个进程需要另一个进程提供的消息,获得消息之前进入阻塞态;

2.互斥

多个进程在同一时刻只有一个进程能进入临界区

3.同步机制的4个准则

1.空闲让进
当无进程处于临界区,可允许一个请求进入临界区的进程立即进入自己的临界区

2.忙则等待
当已有进程进入自己的临界区,所有企图进入临界区的进程必须等待

3.有限等待
对要求访问临界资源的进程,应保证该进程能在有限时间内进入自己的临界区

4.让权等待
当进程不能进入自己的临界区,应释放处理机


<u>11.进程同步相关概念</u>

为什么需要进程同步:进程有时候会和其他进程共享一些资源,比如内存、数据库等。当多个进程同时读写同一份共享资源的时候,可能会发生冲突。因此需要进程的同步,多个进程按顺序访问资源。

互斥量 Mutex:互斥量是内核对象,只有拥有互斥对象的线程才有访问互斥资源的权限。因为互斥对象只有一个,所以可以保证互斥资源不会被多个线程同时访问;当前拥有互斥对象的线程处理完任务后必须将互斥对象交出,以便其他线程访问该资源;

信号量 Semaphore:信号量是内核对象,它允许同一时刻多个线程访问同一资源,但是需要控制同一时刻访问此资源的最大线程数量。信号量对象保存了最大资源计数当前可用资源计数,每增加一个线程对共享资源的访问,当前可用资源计数就减1,只要当前可用资源计数大于0,就可以发出信号量信号,如果为0,则将线程放入一个队列中等待。线程处理完共享资源后,应在离开的同时通过ReleaseSemaphore函数将当前可用资源数加1。如果信号量的取值只能为0或1,那么信号量就成为了互斥量;

事件 Event:允许一个线程在处理完一个任务后,主动唤醒另外一个线程执行任务。事件分为手动重置事件和自动重置事件。手动重置事件被设置为激发状态后,会唤醒所有等待的线程,而且一直保持为激发状态,直到程序重新把它设置为未激发状态。自动重置事件被设置为激发状态后,会唤醒一个等待中的线程,然后自动恢复为未激发状态。

临界区 Critical Section:指的是访问资源的那段代码,任意时刻只允许一个线程对临界资源进行访问。拥有临界区对象的线程可以访问该临界资源,其它试图访问该资源的线程将被挂起,直到临界区对象被释放。


<u>12.死锁</u>

1.死锁的定义

是指两个或两个以上的进程在执行过程中,因争夺资源而造成的一种互相等待的现象,若无外力作用,它们都将无法推进下去。此时称系统处于死锁状态或系统产生了死锁,这些永远在互相等待的进程称为死锁进程。

2.死锁原因

① 系统资源不足(对不可剥夺资源的竞争)

② 进程推进顺序不当(P1拥有A申请B,P2拥有B申请A)

3.产生死锁的必要条件

① 互斥条件:指进程对所分配到的资源进行排它性使用,即在一段时间内某资源只由一个进程占用。

② 请求和保持条件:指进程已经保持至少一个资源,但又提出了新的资源请求,而该资源已被其它进程占有,此时请求进程阻塞,但又对自己已获得的其它资源保持不放。

③ 不剥夺条件:指进程已获得的资源,在未使用完之前,不能被剥夺,只能在使用完时由自己释放

④ 环路等待条件:指在发生死锁时,必然存在一个进程资源的环形链。

4.处理死锁的基本方法:

① 预防死锁:这是一种较简单和直观的事先预防的方法。方法是通过设置某些限制条件,去破坏产生死锁的四个必要条件中的一个或者几个,来预防发生死锁。预防死锁是一种较易实现的方法,已被广泛使用。但是由于所施加的限制条件往往太严格,可能会导致系统资源利用率和系统吞吐量降低。

② 避免死锁:该方法同样是属于事先预防的策略,但它并不须事先采取各种限制措施去破坏产生死锁的的四个必要条件,而是在资源的动态分配过程中,用 某种方法去防止系统进入不安全状态,从而避免发生死锁。

③ 检测死锁:这种方法并不须事先采取任何限制性措施,也不必检查系统是否已经进入不安全区,此方法允许系统在运行过程中发生死锁。但可通过系统所设置的检测机构,及时地检测出死锁的发生,并精确地确定与死锁有关的进程和资源,然后采取适当措施,从系统中将已发生的死锁清除掉。

④ 解除死锁:这是与检测死锁相配套的一种措施。当检测到系统中已发生死锁时,须将进程从死锁状态中解脱出来。常用的实施方法是撤销或挂起一些进程,以便回收一些资源,再将这些资源分配给已处于阻塞状态的进程,使之转为就绪状态,以继续运行。


<u>13.什么是饥饿?与死锁有什么差别?</u>

等待时间给进程推进和响应带来明显影响时成为进程饥饿。

饥饿并不代表系统已经死锁,但至少有一个程序的执行被无限期地推迟。
差别:
① 进入饥饿的进程可以只有一个,但是死锁必须大于等于两个;
② 出于饥饿状态的进程可以是一个就绪进程,但是死锁状态的进程必定是阻塞进程。


<u>14.银行家算法</u>

主要思想是避免系统进入不安全状态,在每次进行资源分配时,它首先检查系统是否有足够的资源满足要
求,如果有,则先试行分配,并对分配后的新状态进行安全性检查。如果新状态安全,则正式分配上述资
源,否则拒绝分配上述资源。这样就保证系统始终处于安全状态,从而避免死锁现象的发生。


<u>15.死锁定理</u>

如果资源分配图是可以完全简化的(能消去所有的边),则没有死锁。


第三章、内存管理

快速唤起记忆的知识框架

技术图片


16.<u>存储器管理应具有的功能</u>?

存储管理的主要任务是为多道程序的运行提供良好的环境,方便用户使用存储器,提高存储器的利用率以
及从逻辑上扩充存储器,故应具有以下功能:

① 内存的分配和回收:实施内存的分配,回收系统或用户释放的内存空间。

② 地址变换:提供地址变换功能,将逻辑地址转换成物理地址。

③ 扩充内存:借助于虚拟存储技术活其他自动覆盖技术,为用户提供比内存空间大的地址空间,从逻辑
上扩充内存。

④ 存储保护:保证进入内存的各道作业都在自己的存储空间内运行,互不干扰。

17.<u>将用户程序变为可在内存中执行的程序的步骤</u>?

1.编译:由编译程序将用户源代码编译成若干目标模块

2.链接:由链接程序将编译后形成的一组目标模块及所需的库函数链接在一起,形成一个完整的装入模块。

3.装入:由装入程序将装入模块装入内存中运行。

技术图片


18.<u>程序的链接方式有哪些</u>?

① 静态链接:在程序运行之前,先把各个目标模块及所需库链接为一个完整的可执行程序,以后不再拆
开。

② 装入时动态链接:将应用程序编译后所得到的一组目标模块在装入内存时采用边装入边链接的链接方
式。

③ 运行时动态链接:知道程序运行过程中需要一些模块时,才对这些模块进行链接。


19.<u>程序的装入方式有哪些</u>?

① 绝对装入:在编译时就知道程序将要驻留在内存的物理地址,编译程序产生含有物理地址的目标代码,
不适合多道程序设计。

② 可重定位装入:根据内存当前情况,将装入模块装入到内存的适当位置,地址变换通常在装入时一次
完成,之后不再改变,也称静态重定位。当操作系统为程序分配一个以某地址为起始地址的连续主存
区域后,重定位时将程序中指令或操作数的逻辑地址加上这个起始地址就得到了物理地址。

③ 动态运行装入:允许程序运行时在内存中移动位置,把装入模块装入到内存后的所有地址都是相对地
址,在程序执行过程中每当访问到相应指令或数据时,才将要 访问的程序或数据的相对地址转换为物
理地址。动态重定位的实现要依靠硬件地址变换机构。


20.<u>覆盖技术和交换技术</u>?

1.覆盖技术:

把一个大的程序划分为一系列覆盖,每个覆盖是一个相对独立的程序单位,把程序执行时并不要求同时 装入内存的覆盖组成一组,成为覆盖段,这个覆盖段分配到同一个存储区域,这个存储区域成为覆盖区,它与覆盖段一一对应。覆盖段的大小由覆盖段中最大的覆盖来确定。(为了解决内存容量太小的问题,打破了必须将一个程序全部信息装入内存后才能运行的限制)

2.交换技术:

把暂时不用的某个程序及数据部分从内存移到外存中去,以便腾出必要的内存空间;或者把指定的程序或数据从外存读到相应的内存中,并将控制权交给他,让其在系统上运行的一种内存扩充技术。处理器的中级调度就是采用交换技术。

3.区别:
① 与覆盖技术相比,交换技术不要求程序员给出的 程序段之间的覆盖结构;

② 交换技术主要在进程和作业之间进行,覆盖技术主要在同一个进程或作业中进行;交换技术主要在进程和作业之间进行,覆盖技术主要在同一个进程或作业中进行;

③ 覆盖技术只能覆盖于覆盖程序段无关的程序段,交换进程由换出和换入两个过程组成。覆盖技术只能覆盖于覆盖程序段无关的程序段,交换进程由换出和换入两个过程组成。


<u>21.内存连续分配管理方式有哪些?</u>

1.单一连续分配

内存在此方式下分为系统区和用户区,系统区仅提供给操作系统使用,通常在低地址部分;用户区是为用户提供的、除系统区之外的内存空间。这种方式无需进行内存保护。

这种方式的优点是简单、无外部碎片,可以釆用覆盖技术,不需要额外的技术支持。缺点是只能用于单用户、单任务的操作系统中,有内部碎片,存储器的利用率极低。

2.固定分区分配

固定分区分配是最简单的一种多道程序存储管理方式,它将用户内存空间划分为若干个固定大小的区域,每个分区只装入一道作业。当有空闲分区时,便可以再从外存的后备作业队列中,选择适当大小的作业装入该分区,如此循环。

固定分区分配在划分分区时,有两种不同的方法。

(1) 分区大小相等:用于利用一台计算机去控制多个相同对象的场合,缺乏灵活性。

(2) 分区大小不等:划分为含有多个较小的分区、适量的中等分区及少量的大分区。

3.动态分区分配

动态分区分配又称为可变分区分配,是一种动态划分内存的分区方法。这种分区方法不预先将内存划分,而是在进程装入内存时,根据进程的大小动态地建立分区,并使分区的大小正好适合进程的需要。因此系统中分区的大小和数目是可变的。

4.动态分区分配算法

在进程装入或换入主存时,如果内存中有多个足够大的空闲块,操作系统必须确定分配哪个内存块给进程使用,这就是动态分区的分配策略,考虑以下几种算法:

(1) 首次适应(First Fit)算法:空闲分区以地址递增的次序链接。分配内存时顺序查找,找到大小能满足要求的第一个空闲分区。

(2) 最佳适应(Best Fit)算法:空闲分区按容量递增形成分区链,找到第一个能满足要求的空闲分区。

(3) 最坏适应(Worst Fit)算法:又称最大适应(Largest Fit)算法,空闲分区以容量递减的次序链接。找到第一个能满足要求的空闲分区,也就是挑选出最大的分区。

(4) 邻近适应(Next Fit)算法:又称循环首次适应算法,由首次适应算法演变而成。不同之处是分配内存时从上次查找结束的位置开始继续查找。


22.<u>基本分页和请求分页内存管理方式</u>?

本问内容比较多,适合系统复习,都整理过来不过全面,请自行查阅相关资料(狗头保命)。


23.<u>页面置换算法有哪些</u>?

1.最佳(OPT)置换算法

从主存中移出永远不再需要的页面;如无这样的页面存在,则选择最长时间不需要访问的页面。于所选择的被淘汰页面将是以后永不使用的,或者是在最长时间内不再被访问的页面,这样可以保证获得最低的缺页率。 即被淘汰页面是以后永不使用或最长时间内不再访问的页面。(往后看)

2.先进先出(FIFO)置换算法

是最简单的页面置换算法。这种算法的基本思想是:当需要淘汰一个页面时,总是选择驻留主存时间最长的页面进行淘汰,即先进入主存的页面先淘汰。其理由是:最早调入主存的页面不再被使用的可能性最大。 即优先淘汰最早进入内存的页面。(往前看)

3.最近最久未使用(LRU)算法

这种算法的基本思想是:利用局部性原理,根据一个作业在执行过程中过去的页面访问历史来推测未来的行为。它认为过去一段时间里不曾被访问过的页面,在最近的将来可能也不会再被访问。所以,这种算法的实质是:当需要淘汰一个页面时,总是选择在最近一段时间内最久不用的页面予以淘汰。 即淘汰最近最长时间未访问过的页面。(往前看)

4.时钟(CLOCK)置换算法

LRU算法的性能接近于OPT,但是实现起来比较困难,且开销大;FIFO算法实现简单,但性能差。所以操作系统的设计者尝试了很多算法,试图用比较小的开销接近LRU的性能,这类算法都是CLOCK算法的变体。
简单的CLOCK算法是给每一帧关联一个附加位,称为使用位。当某一页首次装入主存时,该帧的使用位设置为1;当该页随后再被访问到时,它的使用位也被置为1。对于页替换算法,用于替换的候选帧集合看做一个循环缓冲区,并且有一个指针与之相关联。当某一页被替换时,该指针被设置成指向缓冲区中的下一帧。当需要替换一页时,操作系统扫描缓冲区,以查找使用位被置为0的一帧。每当遇到一个使用位为1的帧时,操作系统就将该位重新置为0;如果在这个过程开始时,缓冲区中所有帧的使用位均为0,则选择遇到的第一个帧替换;如果所有帧的使用位均为1,则指针在缓冲区中完整地循环一周,把所有使用位都置为0,并且停留在最初的位置上,替换该帧中的页。由于该算法循环地检查各页面的情况,故称为CLOCK算法,又称为最近未用(Not Recently Used, NRU)算法。


<u>24.什么是页表和快表,有什么作用?</u>

页表指出逻辑地址中的页号与所占主存块号的对应关系。作用:页式存储管理在用动态重定位方式装入作业时,要利用页表做地址转换工作。快表就是存放在高速缓冲存储器的部分页表。它起页表相同的作用。由于采用页表做地址转换,读写内存数据时CPU要访问两次主存。有了快表,有时只要访问一次高速缓冲存储器,一次主存,这样可加速查找并提高指令执行速度。


25.<u>地址翻译的过程</u>?

TLB->页表(TLB不命中)->Cache->主存(Cache不命中)->外存


第四章、文件管理

本章重要程度比较低

快速唤起记忆知识框架

技术图片


26.<u>文件的基本操作</u>?

文件属于抽象数据类型。为了恰当地定义文件,就需要考虑有关文件的操作。操作系统提供系统调用,它对文件进行创建、写、读、定位和截断。

①创建文件:创建文件有两个必要步骤,一是在文件系统中为文件找到空间;二是在目录中为新文件创建条目,该条目记录文件名称、在文件系统中的位置及其他可能信息。

②写文件:为了写文件,执行一个系统调用,指明文件名称和要写入文件的内容。对于给定文件名称,系统搜索目录以查找文件位置。系统必须为该文件维护一个写位置的指针。每当发生写操作,便更新写指针。

③读文件:为了读文件,执行一个系统调用,指明文件名称和要读入文件块的内存位置。同样,需要搜索目录以找到相关目录项,系统维护一个读位置的指针。每当发生读操作时,更新读指针。一个进程通常只对一个文件读或写,所以当前操作位置可作为每个进程当前文件位置指针。由于读和写操作都使用同一指针,节省了空间也降低了系统复杂度。

④文件重定位(文件寻址):按某条件搜索目录,将当前文件位置设为给定值,并且不会读、写文件。

⑤删除文件:先从目录中找到要删除文件的目录项,使之成为空项,然后回收该文件所占用的存储空间。

⑥截断文件:允许文件所有属性不变,并删除文件内容,即将其长度设为0并释放其空间。

这6个基本操作可以组合执行其他文件操作。例如,一个文件的复制,可以创建新文件、 从旧文件读出并写入到新文件。


27.<u>磁盘调度算法有哪些</u>?

1、先来先服务算法(FCFS)First Come First Service

这是一种比较简单的磁盘调度算法。它根据进程请求访问磁盘的先后次序进行调度。此算法的优点是公平、简单,且每个进程的请求都能依次得到处理,不会出现某一进程的请求长期得不到满足的情况。此算法由于未对寻道进行优化,在对磁盘的访问请求比较多的情况下,此算法将降低设备服务的吞吐量,致使平均寻道时间可能较长,但各进程得到服务的响应时间的变化幅度较小。

2、最短寻道时间优先算法(SSTF) Shortest Seek Time First

该算法选择这样的进程,其要求访问的磁道与当前磁头所在的磁道距离最近,以使每次的寻道时间最短,该算法可以得到比较好的吞吐量,但却不能保证平均寻道时间最短。其缺点是对用户的服务请求的响应机会不是均等的,因而导致响应时间的变化幅度很大。在服务请求很多的情况下,对内外边缘磁道的请求将会无限期的被延迟,有些请求的响应时间将不可预期。

3、扫描算法(SCAN)电梯调度

扫描算法不仅考虑到欲访问的磁道与当前磁道的距离,更优先考虑的是磁头的当前移动方向。例如,当磁头正在自里向外移动时,扫描算法所选择的下一个访问对象应是其欲访问的磁道既在当前磁道之外,又是距离最近的。这样自里向外地访问,直到再无更外的磁道需要访问才将磁臂换向,自外向里移动。这时,同样也是每次选择这样的进程来调度,即其要访问的磁道,在当前磁道之内,从而避免了饥饿现象的出现。由于这种算法中磁头移动的规律颇似电梯的运行,故又称为电梯调度算法。此算法基本上克服了最短寻道时间优先算法的服务集中于中间磁道和响应时间变化比较大的缺点,而具有最短寻道时间优先算法的优点即吞吐量较大,平均响应时间较小,但由于是摆动式的扫描方法,两侧磁道被访问的频率仍低于中间磁道。

4、循环扫描算法(CSCAN)

循环扫描算法是对扫描算法的改进。如果对磁道的访问请求是均匀分布的,当磁头到达磁盘的一端,并反向运动时落在磁头之后的访问请求相对较少。这是由于这些磁道刚被处理,而磁盘另一端的请求密度相当高,且这些访问请求等待的时间较长,为了解决这种情况,循环扫描算法规定磁头单向移动。例如,只自里向外移动,当磁头移到最外的被访问磁道时,磁头立即返回到最里的欲访磁道,即将最小磁道号紧接着最大磁道号构成循环,进行扫描。


第五章、输入输出管理

快速唤起记忆知识框架

技术图片

28.I/O<u>控制方式有哪些</u>?

1.程序 I/O 方式

早期的计算机系统中, 没有中断系统,所以CPU和I/O设备进行通信,传输数据时CPU速度远快于I/O设备,于是CPU需要不断测试I/O设备,看其是否完成了传输。

技术图片

2.中断驱动方式

当某进程要启动某个 I/O 设备工作时,便由 CPU 向相应的设备控制器发出一条 I/O 命令,然后立即返回继续执行原来的任务。仅当输完一个数据时,才需 CPU 花费极短的时间去做些中断处理。

技术图片

3.DMA方式(直接存储器访问)

通过在I/O设备和内存之间开启一个可以直接传输数据的通路,采用DMA控制器来控制一个数据块的传输,CPU只需在一个数据块传输开始阶段设置好传输所需的控制信息,并在传输结束阶段做进一步处理。

技术图片

4.I/O通道控制方式

虽然DMA方式比起中断方式来已经显著地减少了CPU的干预,即已由以字(节)为单位的干预减少到以数据块为单位的干预。但CPU每发出一条I/O指令,也只能去读/写一个连续的数据块。而当我们需要一次去读多个数据块且将它们分别传送到不同的内存区域,或者相反时,则需由CPU分别发出多条I/O指令及进行多次中断处理才能完成。
---- 通道控制方式与DMA控制方式类似,也是一种以内存为中心,实现设备与内存直接交换数据的控制方式。
---- 与DMA控制方式相比,通道方式所需要的CPU干预更少,而且可以做到一个通道控制多台设备,从而进一步减轻了CPU负担。
---- 通道本质上是一个简单的处理器,专门负责输入、输出控制,具有执行I/O指令的能力,并通过执行通道I/O程序来控制I/O操作。
---- 通道的指令系统比较简单,一般只有数据传送指令、设备控制指令等。


29.<u>Spooling技术</u>?

虚拟性是OS的四大特性之一。如果说可以通过多道程序技术将一台物理CPU虚拟为多台逻辑CPU,从而允许多个用户共享一台主机,那么,通过SPOOling技术便可将一台物理I/O设备虚拟为多台逻辑I/O设备,同样允许多个用户共享一台物理I/O设备。

SPOOLing技术是对脱机输入、输出系统的模拟。相应地,SPOOLing系统必须建立在具有多道程序功能的操作系统上,而且还应有高速随机外存的支持,这通常是采用磁盘存储技术。

SPOOLing系统主要有以下三部分:

(1)输入井和输出井。这是在磁盘上开辟的两个大存储空间。输入井是模拟脱机输入时的磁盘设备,用于暂存I/Q设备输入的数据;输出井是模拟脱机输出时的磁盘,用于暂存用户程序的输出数据。

(2)输入缓冲区和输出缓冲区。为了缓和和CPU和磁盘之间速度不匹配的矛盾,在内存中要开辟两个缓冲区;输入缓冲区和输出缓冲区。输入缓冲区用于暂存由输入设备送来的数据,以后再传送到输入井。输出缓冲区用与暂存从输出井送来的数据,以后在传送给输出设备。

(3)输入进程SPi 和输入进程SP0。这里利用两个进程来模拟脱机I/O时的外围控制机。其中,进程SPi模拟脱机输入时的外围控制机,将用户要求的数据从输入机通过输入缓冲区再送到输入井,当CPU需要输入数据时,直接从输入井读入内存;进程SP0模拟脱机输出时的外围控制机,把用户要求输出的数据从先内存送到输出井,待输出设备空闲时,在将输出井中的数据经过输出缓冲区送到输出设备上。

SPOOLing技术的特点:

(1)提高了I/O速度。从对低速I/O设备进行的I/O操作变为对输入井或输出井的操作,如同脱机操作一样,提高了I/O速度,缓和了CPU与低速I/O设备速度不匹配的矛盾。

(2)将独占设备改造为共享设备。因为在SPOOLing系统的系统中,实际上并没为任何进程分配设备,而知识在输入井或输出井中为进程分配一个存储区和建立一张I/O请求表。这样,便把独占设备改造为共享设备。

(3)实现了虚拟设备功能。多个进程同时使用一独享设备,而对每一进程而言,都认为自己独占这一设备,从而实现了设备的虚拟分配。不过,该设备是逻辑上的设备。


以上是关于考研复试-计算机网络-面试题的主要内容,如果未能解决你的问题,请参考以下文章

计算机考研复试面试常问问题 操作系统篇

计算机考研复试面试常问问题 组成原理篇(下)

计算机考研复试面试系列 计算机专业英语篇

考研复试问题汇总

中科大-计算机类考研真题(初试笔试真题详解+复试笔试机试真题详解+面试问题汇总分析)

中科大-计算机类考研真题(初试笔试真题详解+复试笔试机试真题详解+面试问题汇总分析)