《网络-操作系统面试(共10页).docx》由会员分享,可在线阅读,更多相关《网络-操作系统面试(共10页).docx(10页珍藏版)》请在taowenge.com淘文阁网|工程机械CAD图纸|机械工程制图|CAD装配图下载|SolidWorks_CaTia_CAD_UG_PROE_设计图分享下载上搜索。
1、精选优质文档-倾情为你奉上计算机网络常见面试题OSI(Open System Interconnect):开放系统互联,是一个七层的计算机网络模型,分别为:物理层、数据链路层、网络层、传输层、会话层、表示层和应用层。TCP/IP(Transmission Control Protocol/Internet Protocol):传输控制协议/因特网互联协议,是一个四层的计算机网络模型,分别为:网络接口层、网络层、传输层和应用层。结合OSI和TCP/IP产生了一个五层结构,分别为:物理层、数据链路层、网络层、传输层和应用层。Internet就是采用的TCP/IP协议。 集线器工作在OSI模型的物理
2、层,网卡工作在OSI模型的物理层,交换机工作在数据链路层,路由器工作在网络层。机器A的IP地址为202.96.128.130,子网掩码为255.255.255.128,则该IP地址的网络号为202.96.128(利用IP地址和子网掩码求与运算),主机号为130。 DNS(Domain Name System)域名系统,简单描述其工作原理。答:当DNS客户机需要在程序中使用名称时,它会查询DNS服务器来解析该名称。客户机发送的每条查询信息包括三条信息:包括:指定的DNS域名,指定的查询类型,DNS域名的指定类别。基于UDP服务,端口53. 该应用一般不直接为用户使用,而是为其他应用服务,如HTT
3、P,SMTP等在其中需要完成主机名到IP地址的转换。 运行net share返回的结果是什么?答:列出共享资源相关信息。net use和net user分别指什么?答:net user是对用户进行管理,如添加删除网络使用用户等。 net use是对网络设备进行管理。如何查看当前系统开放的服务?答:在命令提示符下执行net services命令。Windows下是用net start除以上的命令,列出一些其他的命令?答:taskkill:用于结束至少一个进程 tasklist:用于显示在本地或远程计算机上运行的所有进程 net view:显示计算机列表 netstat:显示网络连接、路由表和网络
4、接口信息 ftp: telnet:关掉以下服务会出现什么情况?答:关掉Automatic Updates:则不能自动更新 关掉Plug and Play:则会导致USB不能使用 关掉Remote Registry Service:远程用户不能修改计算机上的注册表设置 关掉Computer Browser:则会无法维护网络上计算机的最新列表以及提供这个列表给请求的程序。 端口及对应的服务?答:服务端口号服务端口号FTP21SSH22telnet23SMTP25Domain(域名服务器)53HTTP80POP3110NTP(网络时间协议)123MySQL数据库服务3306Shell或 cmd514
5、POP-2109SQL Server1433SNMP 详细解释一下IP协议的定义,在哪个层上面,主要有什么作用?TCP和UDP呢?答:IP协议是网络层的协议,它是为了实现相互连接的计算机进行通信设计的协议,它实现了自动路由功能,即自动寻径功能。TCP是传输层的协议,它向下屏蔽IP协议的不可靠传输的特性,向上提供一种面向连接的、可靠的点到点数据传输。TCP在可靠性和安全性上等更有保证。UDP也是传输层协议,它提供的是一种非面向连接的,不可靠的数据传输,这主要是有些应用需要更快速的数据传输,比如局域网内的大多数文件传输都是基于UDP的。UDP在传输速率上更快,开销更小。 请问交换机和路由器分别的实
6、现原理是什么?分别在哪个层次上面实现的?答:交换机用于局域网,利用主机的MAC地址进行数据传输,而不需要关心IP数据包中的IP地址,它工作于数据链路层。路由器识别网络是通过IP数据包中IP地址的网络号进行的,所以为了保证数据包路由的正确性,每个网络都必须有一个唯一的网络号。路由器通过IP数据包的IP地址进行路由的(将数据包递交给哪个下一跳路由器)。路由器工作于网络层。由于设备现在的发展,现在很多设备既具有交换又具有路由功能,两者的界限越来越模糊。 Internet上保留了哪些IP地址用于内部?答:10.0.0.0 172.16.到172.31 192.168.0.到192.168.255。ip
7、config/all用于查看申请的本机IP地址 ipconfig/release用于释放IP ipconfig/renew用于重新向DHCP服务器申请IP。ADSL使用的是频分多路复用技术。网桥的作用 答:网桥是一个局域网与另一个局域网之间建立连接的桥梁。防火墙的端口防护是指?答:指通过对防火墙的端口开关的设置,关闭一些非必需端口,达到一定安全防护目的的行为。面向连接和非面向连接的服务的特点是什么?答:面向连接的服务,通信双方在进行通信之前,要先在双方建立起一个完整的可以彼此沟通的通道,在通信过程中,整个连接的情况一直可以被实时地监控和管理。 非面向连接的服务,不需要预先建立一个联络两个通信节
8、点的连接,需要通信的时候,发送节点就可以往网络上发送信息,让信息自主地在网络上去传,一般在传输的过程中不再加以监控。 TCP的三次握手过程?为什么会采用三次握手,若采用二次握手可以吗?答:建立连接的过程是利用客户服务器模式,假设主机A为客户端,主机B为服务器端。(1)TCP的三次握手过程:主机A向B发送连接请求;主机B对收到的主机A的报文段进行确认;主机A再次对主机B的确认进行确认。(2)采用三次握手是为了防止失效的连接请求报文段突然又传送到主机B,因而产生错误。失效的连接请求报文段是指:主机A发出的连接请求没有收到主机B的确认,于是经过一段时间后,主机A又重新向主机B发送连接请求,且建立成功
9、,顺序完成数据传输。考虑这样一种特殊情况,主机A第一次发送的连接请求并没有丢失,而是因为网络节点导致延迟达到主机B,主机B以为是主机A又发起的新连接,于是主机B同意连接,并向主机A发回确认,但是此时主机A根本不会理会,主机B就一直在等待主机A发送数据,导致主机B的资源浪费。(3)采用两次握手不行,原因就是上面说的实效的连接请求的特殊情况。31、电信网络分类电信网络电路交换网络分组交换网络FDMTDM虚电路网络数据报网络 计算机网络体系结构?答:实际是分层加每层对应的协议集合。协议包括三个组成部分: 语法:数据与控制信息结构或格式; 语义:需要发出何种控制信息,完成何种动作以及做出何种响应; 时
10、序(同步):事件实现顺序的详细说明。双绞线的线对? 答:1-2、7-8、3-6、4-5 白蓝-蓝、白橙-橙、白绿-绿、白棕-棕数据链路层协议可能提供的服务?答:成帧、链路访问、透明传输、可靠交付、流量控制、差错检测、差错纠正、半双工和全双工。最重要的是帧定界(成帧)、透明传输以及差错检测。 数据链路层互联设备答:(1)网桥:互连两个采用不同数据链路层协议,不同传输介质与不同传输速率的网络,网桥互连的网络在数据链路层以上采用相同的协议。(2)交换机在数据链路层上实现互连的存储转发设备。交换机按每个包中的MAC地址相对简单地决策信息转发,交换机对应硬件设备,网桥对应软件。 局域网的关键技术?答:拓
11、扑结构(星形,总线型,环形,树型),介质访问方式(CSMA/CD,Token-passing),信号传输形式(基带、宽带)。网络接口卡(网卡)的功能?答:(1)进行串行/并行转换。(2)对数据进行缓存。(3)在计算机的操作系统安装设备驱动程序。(4)实现以太网协议。 私有(保留)地址?答:A类:10.0.0.010.255.255.255 B类:172.16.0.0172.31.255.255 C类:192.168.0.0192.168.255.255 交换和路由的区别是什么?VLAN有什么特点?答:交换是指转发和过滤帧,是交换机的工作,它在OSI参考模型的第二层,而路由是指网络线路当中非直连
12、的链路,它是路由器的工作,在OSI参考模型的第三层。交换和路由的区别很多,首先,交换是不需要IP地址的,而路由需要,因为IP就是第三层的协议,第二层需要的是MAC地址,再有,第二层的技术和第三层的不一样,第二层可以做VLAN,端口捆绑等,第三层可以做NAT,ACL,QoS等。VLAN是虚拟局域网的英文缩写,它是一个纯二层的技术,它的特点有三:控制广播,安全,灵活性和可扩张性。TTL是什么?作用是什么?哪些工具会用到它(ping traceroute ifconfig netstat)?答:TTL是指生存时间,简单来说,它表示了数据包在网络中的时间,经过一个路由器后TTL就减一,这样TTL最终会
13、减为0,当TTL为0时,则将数据包丢弃,这样也就是因为两个路由器之间可能形成环,如果没有TTL的限制,则数据包将会在这个环上一直死转,由于有了TTL,最终TTL为0后,则将数据包丢弃。ping发送数据包里面有TTL,但是并非是必须的,即是没有TTL也是能正常工作的,traceroute正是因为有了TTL才能正常工作,ifconfig是用来配置网卡信息的,不需要TTL,netstat是用来显示路由表的,也是不需要TTL的。 55、路由表是做什么用的?在Linux环境中怎么配置一条默认路由?答:路由表是用来决定如何将一个数据包从一个子网传送到另一个子网的,换句话说就是用来决定从一个网卡接收到的包应
14、该送到哪一个网卡上去。路由表的每一行至少有目标网络号、子网掩码、到这个子网应该使用的网卡这三条信息。当路由器从一个网卡接收到一个包时,它扫描路由表的每一行,用里面的子网掩码与数据包中的目标IP地址做逻辑与运算(&)找出目标网络号。如果得出的结果网络号与这一行的网络号相同,就将这条路由表六下来作为备用路由。如果已经有备用路由了,就载这两条路由里将网络号最长的留下来,另一条丢掉(这是用无分类编址CIDR的情况才是匹配网络号最长的,其他的情况是找到第一条匹配的行时就可以进行转发了)。如此接着扫描下一行直到结束。如果扫描结束仍没有找到任何路由,就用默认路由。确定路由后,直接将数据包送到对应的网卡上去。
15、在具体的实现中,路由表可能包含更多的信息为选路由算法的细节所用。在Linux上可以用“route add default gw”命令配置一条默认路由。 56、每个路由器在寻找路由时需要知道哪5部分信息?答:目的地址:报文发送的目的地址 邻站的确定:指明谁直接连接到路由器的接口上 路由的发现:发现邻站知道哪些网络 选择路由:通过从邻站学习到的信息,提供最优的到达目的地的路径 保持路由信息:路由器保存一张路由表,它存储所知道的所有路由信息。 58、自适应网卡只有红灯闪烁,绿灯不亮,这种情况正常吗?答:正常。自适应网卡红灯代表连通/工作,即连通时红灯长亮,传输数据时闪烁,绿灯代表全双工,即全双工状态
16、是亮,半双工状态灭。如果一个半双工的网络设备(如HUB)和自适应网络相连,由于这张网卡是自适应网卡,它就会工作在半双工状态,所以绿灯不亮也属于正常情况。补充:网卡红绿灯是网卡工作的指示灯,红灯亮表示正在发送或接收数据,绿灯亮则表示网络连接正常。因此正常情况下应该是绿灯长亮,因为绿灯长亮才代表网络是通的。而有数据传输时,红灯就会闪烁。 59、两台笔记本电脑连起来后ping不同,你觉得可能存在哪些问题?答:(1)首先考虑是否是网络的问题 (2)局域网设置问题,电脑互联是要设置的。看是否安装了必要的网络协议,最重要的是IP地址是否设置正确。 (3)网卡驱动未安装正确 (4)防火墙设置有问题 (5)是
17、否有什么软件阻止了ping包操作系统常见面试题1 什么是进程(Process)和线程(Thread)?有何区别? 进程是具有一定独立功能的程序关于某个数据集合上的一次运行活动,进程是系统进行资源分配和调度的一个独立单位。线程是进程的一个实体,是CPU调度和分派的基本单位,它是比进程更小的能独立运行的基本单位。线程自己基本上不拥有系统资源,只拥有一点在运行中必不可少的资源(如程序计数器,一组寄存器和栈),但是它可与同属一个进程的其他的线程共享进程所拥有的全部资源。一个线程可以创建和撤销另一个线程;同一个进程中的多个线程之间可以并发执行。 进程与应用程序的区别在于应用程序作为一个静态文件存储在计算
18、机系统的硬盘等存储空间中,而进程则是处于动态条件下由操作系统维护的系统资源管理实体。 2 Windows下的内存是如何管理的? Windows 提供了3种方法来进行内存管理:虚拟内存,最适合用来管理大型对象或者结构数组;内存映射文件,最适合用来管理大型数据流(通常来自文件)以及在单个计算机上运行多个进程之间共享数据;内存堆栈,最适合用来管理大量的小对象。 Window操纵内存可以分两个层面:物理内存和虚拟内存。 其中物理内存由系统管理,不允许应用程序直接访问,应用程序可见的只有一个2G地址空间,而内存分配是通过堆进行的,对于每个进程都有自己的默认堆,当一个堆创建后,就通过虚拟内存操作保留了相应
19、大小的地址块(不占有实际的内存,系统消耗很小),当在堆上分配一块内存时,系统在堆的地址表里找到一个空闲块(如果找不到,且堆创建属性是可扩充的,则扩充堆大小)为这个空闲块所包含的所有内存页提交物理对象(物理内存上或硬盘上的交换文件上)。这时可以就访问这部分地址了。提交时,系统将对所有进程的内存统一调配,如果物理内存不够,系统试图把一部分进程暂时不访问的页放入交换文件,以腾出部分物理内存。释放内存时,只在堆中将所在的页解除提交(相应的物理对象被解除),继续保留地址空间。 如果要知道某个地址是否被占用/可不可以访问,只要查询此地址的虚拟内存状VirtualQuery),如果是提交,则可以访问。如果仅
20、仅保留,或没保留,则产生一个软件异常。此外有些内存页可以设置各种属性。如果是只读,向内写也会产生软件异常。 3 Windows消息调度机制是? A. 指令队列;B.指令堆栈;C.消息队列;D.消息堆栈 答案:C 处理消息队列的顺序。首先windows绝对不是按队列先进先出的次序来处理的,而是有一定优先级的。优先级通过消息队列的状态标志来实现的。首先最高优先级的是别的线程发过来的消息(通过sendmessage),其次是处理登记消息队列消息,再次处理QS_QUIT标志,再处理虚拟输入队列,再处理wm_paint最后是wm_timer 4 描述实时系统的基本特性 在特定时间内完成特定的任务,实时性
21、与可靠性。 所谓“实时操作系统”,实际上是指操作系统工作时,其各种资源可以根据需要随时进行动态分配。由于各种资源可以进行动态分配,因此其处理事务的能力较强、速度较快。 5 中断和轮询的特点。 对I/O 设备的程序轮询的方式,是早期的计算机系统对I/O 设备的一种管理方式。它定时对各种设备轮流询问一遍有无处理要求。轮流询问之后,有要求的,则加以处理。在处理I/O 设备的要求之后,处理机返回继续工作。尽管轮询需要时间,但轮询要比I/O 设备的速度要快得多,所以一般不会发生不能及时处理的问题。当然,再快的处理机,能处理的输入输出设备的数量也是有一定限度的。而且,程序轮询毕竟占据了CPU相当一部分处理
22、时间,因此程序轮询是一种效率较低的方式,在现代计算机系统中已很少应用。 程序中断通常简称中断,是指CPU在正常运行程序的过程中,由于预选安排或发生了各种随机的内部或外部事件,使CPU中断正在运行的程序,而转到为响应的服务程序去处理。 轮询效率低,等待时间很长,CPU利用率不高 中断容易遗漏一些问题,CPU利用率高 6 什么是临界区?如何解决冲突? 每个进程中访问临界资源的那段程序称为临界区,每次只准许一个进程进入临界区,进入后不允许其他进程进入。 如果有若干进程要求进入空闲的临界区,一次仅允许一个进程进入。 任何时候,处于临界区内的进程不可多于一个。如已有进程进入自己的临界区,则其它所有试图进
23、入临界区的进程必须等待。 进入临界区的进程要在有限时间内退出,以便其它进程能及时进入自己的临界区。 如果进程不能进入自己的临界区,则应让出CPU,避免进程出现“忙等”现象。 7 说说分段和分页 页是信息的物理单位,分页是为实现离散分配方式,以消减内存的外零头,提高内存的利用率;或者说,分页仅仅是由于系统管理的需要,而不是用户的需要。 段是信息的逻辑单位,它含有一组其意义相对完整的信息。分段的目的是为了能更好的满足用户的需要。页的大小固定且由系统确定,把逻辑地址划分为页号和页内地址两部分,是由机器硬件实现的,因而一个系统只能有一种大小的页面。 段的长度却不固定,决定于用户所编写的程序,通常由编辑
24、程序在对源程序进行编辑时,根据信息的性质来划分。 分页的作业地址空间是维一的,即单一的线性空间,程序员只须利用一个记忆符,即可表示一地址。分段的作业地址空间是二维的,程序员在标识一个地址时,既需给出段名,又需给出段内地址 8 进程通信有哪些方式? 管道通信、消息通信、内存共享 9 说出你所知道的保持进程同步的方法? 进程间同步的主要方法有内存屏障,互斥锁,信号量和锁,管程,消息,管道。 10 Linux中常用到的命令 显示文件目录命令ls 改变当前目录命令cd 如cd / /home 建立子目录mkdir mkdir xiong 删除子目录命令rmdir 如 rmdir mntcdrom 删除
25、文件命令RM 如 rm ucdos.bat 文件复制命令cp 如 cp ucdos fox 获取帮助信息命令man 如 man ls 显示文件的内容less 如 less mwm.lx 重定向与管道type 如type readmedirect,将文件readme的内容追加到文direct中 11 Linux文件属性有哪些?(共十位) -rw-r-r-l 那个是权限符号,总共是- - - -这几个位 第一个短横处是文件类型识别符:-表示普通文件;c 表示字符设备(character);b表示块设备(block);d表示目录(directory);l 表示链接文件(link) 后面第一个三个连续
26、的短横是用户权限位(User),第二个三个连续短横是组权限位(Group),第三个三个连续短横是其他权限位(Other)。每个权限位有三个权限,r(读权限),w(写权限),x(执行权限)。如果每个权限位都有权限存在,那么满权限的情况就是:-rwxrwxrwx;权限为空的情况就是- - - -。 权限的设定可以用chmod命令,其格式位:chomod ugo+/-/=rwx filename/directory。例如: 一个文件aaa具有完全空的权限- - - -。以下命令: chmod u+rw aaa (给用户权限位设置读写权限,其权限表示为:- rw- - -) chmod g+r aaa
27、 (给组设置权限为可读,其权限表示为:- - r- -) chmod ugo+rw aaa (给用户,组,其它用户或组设置权限为读写,权限表示为:- rw- rw- rw-) 如果 aaa 具有满权限 - rwx rwx rwx,以下命令为: chmod u-x aaa (去掉用户可执行权限,权限表示为:- rw- rwx rwx) 如果要给aaa赋予制定权限- rwx r-x r-x,命令为: chmod u=rwx,go=rx aaa 12 UNIX显示文件夹中文件名的命令是什么?能使文件内容显示在屏幕的命令是什么? ls cat type tail 13 makefile文件的作用是什么
28、? 一个工程中的源文件不计数,其按类型、功能、模块分别放在若干个目录中,makefile定义了一系列的规则来指定,哪些文件需要先编译,哪些文件需要后编译,哪些文件需要重新编译,甚至于进行更复杂的功能操作,因为 makefile就像一个Shell脚本一样,其中也可以执行操作系统的命令。makefile带来的好处就是“自动化编译”,一旦写好,只需要一个make命令,整个工程完全自动编译,极大的提高了软件开发的效率。make是一个命令工具,是一个解释makefile中指令的命令工具,一般来说,大多数的IDE 都有这个命令,比如:Delphi的make,Visual C+的nmake,Linux下GN
29、U的make。可见,makefile都成为了一种在工程方面的编译方法。 14 简术ISO OSI 的物理层Layer1,链路层Layer2,网络层Layer3的任务 网络层:资料传送的目的地寻址,再选择出传送资料的最佳路线; 链路层:负责网络上资料封包如何传送的方式; 物理层:在设备与传输媒介之间建立及终止连接。参与通讯过程使得资源可以在共享的多用户中有效分配,对信号进行调制或转换使得用户设备中的数字信号定义能与信道上实际传送的数字信号相匹配。 15 CPU在上电后,进入操作系统的main()之前必须做什么? 加电后,会触发CPU的reset信号,导致CPU复位,然后CPU会跳到(arm下0x
30、,x86下0xfffffff0)执行指令。主要是做CPU初始化,确定CPU的工作模式,mmu初始化。建立页表段表,初始化中孤单控制器和中断向量表,初始化输入和输出,初始化nandflash,把OS的TEXT区加载到sdram,然后跳转到sdram的main() 16 什么是中断?中断时CPU做什么工作? 中断是指在计算机执行期间,系统内发生任何非寻常的或非预期的急需处理事件,使得CPU暂时中断当前正在执行的程序而转去执行相应的事件处理程序。待处理完毕后又返回原来被中断处继续执行或调度新的进程执行的过程。 17 存储过程是什么?有什么用?有什么优点? 存储过程(Stored Procedure)
31、是一组为了完成特定功能的SQL 语句集,经编译后存储在数据库中。用户通过指定存储过程的名字并给出参数(如果该存储过程带有参数)来执行它。存储过程是SQL 语句和可选控制流语句的预编译集合,以一个名称存储并作为一个单元处理。存储过程存储在数据库内,可由应用程序通过一个调用执行,而且允许用户声明变量、有条件执行以及其它强大的编程功能。存储过程在创建时即在服务器上进行编译,所以执行起来比单个SQL语句快。 存储过程的优点:(1)存储过程只在创造时进行编译,以后每次执行存储过程都不需再重新编译,而一般SQL语句每执行一次就编译一次,所以使用存储过程可提高数据库执行速度;(2)当对数据库进行复杂操作时(
32、如对多个表进行Update, Insert, Query, Delete时),可将此复杂操作用存储过程封装起来与数据库提供的事务处理结合一起使用;(3)存储过程可以重复使用,可减少数据库开发人员的工作量;(4)安全性高,可设定只有某此用户才具有对指定存储过程的使用权。 存储过程的缺点:(1)如果更改范围大到需要对输入存储过程的参数进行更改,或者要更改由其返回的数据,则您仍需要更新程序集中的代码以添加参数、更新 GetValue() 调用,等等,这时候估计比较繁琐了。(2)可移植性差。由于存储过程将应用程序绑定到 SQL Server,因此使用存储过程封装业务逻辑将限制应用程序的可移植性。 18
33、 你知道操作系统的内容分为几块吗?什么叫做虚拟内存?他和主存的关系如何?内存管理属于操作系统的内容吗? 操作系统的主要组成部分:进程和线程的管理,存储管理,设备管理,文件管理。 虚拟内存是一些系统页文件,存放在磁盘上,每个系统页文件大小也为4K,物理内存也被分页,每个页大小也为4K,这样虚拟页文件和物理内存页就可以对应,实际上虚拟内存就是用于物理内存的临时存放的磁盘空间。页文件就是内存页,物理内存中每页叫物理页,磁盘上的页文件叫虚拟页,物理页+虚拟页就是系统所以使用的页文件的总和。属于。 19 进程是一个比较重要的概念,那么进程有哪几种状态吗? 基本状态有3种,即ready(就绪),runni
34、ng(运行),wait(等待). 20 OS中如何实现物理地址到逻辑地址的转换? CPU要利用其段式内存管理单元,先将逻辑地址转换成一个线程地址,再利用其页式内存管理单元,转换为最终物理地址。 21 堆和栈的区别? 栈区,由编译器自动分配释放,存放函数的参数值,局部变量的值等。其操作方式类似于数据结构中的栈。堆:一般由程序员分配释放, 若程序员不释放,程序结束时可能由OS回收 。注意它与数据结构中的堆是两回事,分配方式是类似于链表。可能用到的关键字如下:new、malloc、delete、free等等。 22 线程是否具有相同的堆栈?dll是否有独立的堆栈? 每个线程有自己的堆栈。 DLL中有
35、没有独立的堆栈,这个问题不好回答,或者说这个问题本身是否有问题。因为DLL中的代码是被某些线程所执行,只有线程拥有堆栈,如果DLL中的代码是EXE中的线程所调用,那么这个时候是不是说这个DLL没有自己独立的堆栈?如果DLL中的代码是由DLL自己创建的线程所执行,那么是不是说DLL有独立的堆栈? 以上讲的是堆栈,如果对于堆来说,每个DLL有自己的堆,所以如果是从DLL中动态分配的内存,最好是从DLL中删除,如果你从DLL中分配内存,然后在EXE中,或者另外一个DLL中删除,很有可能导致程序崩溃。 23 网络编程中设计并发服务器,使用“多进程”与“多线程”,请问有什么区别? 进程:子进程是父进程的
36、复制品。子进程获得父进程数据空间、堆和栈的复制品。 线程:相对与进程而言,线程是一个更加接近与执行体的概念,它可以与同进程的其他线程共享数据,但拥有自己的栈空间,拥有独立的执行序列。 两者都可以提高程序的并发度,提高程序运行效率和响应时间。 线程和进程在使用上各有优缺点:线程执行开销小,但不利于资源管理和保护;而进程正相反。同时,线程适合于在SMP机器上运行,而进程则可以跨机器迁移。 24 解释一下分页式管理. 用户程序的地址空间被划分成若干固定大小的区域,称为“页”,相应地,内存空间分成若干个物理块,页和块的大小相等。可将用户程序的任一页放在内存的任一块中,实现了离散分配。 25 解释一下P
37、操作与V操作 P就是请求资源,V就是释放资源 26 什么是缓冲区溢出?有什么危害?其原因是什么? 缓冲区溢出是指当计算机向缓冲区内填充数据位数时超过了缓冲区本身的容量溢的数据覆盖在合法数据上, 危害:在当前网络与分布式系统安全中,被广泛利用的50%以上都是缓冲区溢出,其中最著名的例子是1988年利用fingerd漏洞的蠕虫。而缓冲区溢出中,最为危险的是堆栈溢出,因为入侵者可以利用堆栈溢出,在函数返回时改变返回程序的地址,让其跳转到任意地址,带来的危害一种是程序崩溃导致拒绝服务,另外一种就是跳转并且执行一段恶意代码,比如得到shell,然后为所欲为。通过往程序的缓冲区写超出其长度的内容,造成缓冲
38、区的溢出,从而破坏程序的堆栈,使程序转而执行其它指令,以达到攻击的目的。 造成缓冲区溢出的原因是程序中没有仔细检查用户输入的参数 27 什么是死锁?其条件是什么?怎样避免死锁? 死锁的概念:在两个或多个并发进程中,如果每个进程持有某种资源而又都等待别的进程释放它们现在保持着的资源,否则就不能向前推进。此时,每个进程都占用了一定的资源但是又不能向前推进,称这一组进程产生了死锁。 通俗的讲,就是两个或多个进程无止境的等候着永远不会成立的条件的一种系统状态。 死锁产生的原因主要是:(1)系统资源不足;(2)进程运行推进的顺序不合适;(3)资源分配不当。 产生死锁的必要条件:(1)互斥(mutual
39、exclusion),一个资源每次只能被一个进程使用;(2)占有且等待(hold and wait),一个进程因请求资源而阻塞时,对已获得的资源保持不放;(3)不可抢占(no preemption),进程已获得的资源,在未使用完之前,不能强行剥夺;(4)环形等待(circular wait),若干进程之间形成一种首尾相接的循环等待资源关系。这四个条件是死锁的必要条件,只要系统发生死锁,这些条件必然成立,而只要上述条件之一不满足,就不会发生死锁。 死锁的解除与预防:理解了死锁的原因,尤其是产生死锁的四个必要条件,就可以最大可能地避免、预防和 解除死锁。所以,在系统设计、进程调度等方面注意如何不让这四个必要条件成立,如何确定资源的合理分配算法,避免进程永久占据系统资源。此外, 也要防止进程在处于等待状态的情况下占用资源。因此,对资源的分配要给予合理的规划。 死锁的处理策略:鸵鸟策略、预防策略、避免策略、检测与解除死锁专心-专注-专业