暂无图片
暂无图片
暂无图片
暂无图片
暂无图片
百度招聘笔试部分试题.doc
246
3页
0次
2021-02-22
40墨值下载
百度
2014
校园招聘
-
研发工程师笔试题(济南站)
一,简答题
(30
)
1
,当前计算机系统一般会采用层次结构存储数据,请介绍下典型计算机存储系统一般分
为哪几个层次,为什么采用分层存储数据能有效提高程序的执行效率?(
10
分)
所谓存储系统的层次结构,就是把各种不同存储容量、存取速度和价格的存储器按层次结
构组成多层存储器,并通过管理软件和辅助硬件有机组合成统一的整体,使所存放的程序
和数据按层次分布在各种存储器中。目前,在计算机系统中通常采用三级层次结构来构成
存储系统,主要由高速缓冲存储器
Cache
、主存储器和辅助存储器组成。
存储系统多级层次结构中,由上向下分三级,其容量逐渐增大,速度逐级降低,成本则逐
次减少。整个结构又可以看成两个层次:它们分别是主存一辅存层次和
cache
一主存层次。
这个层次系统中的每一种存储器都不再是孤立的存储器,而是一个有机的整体。它们在辅
助硬件和计算机操作系统的管理下,可把主存一辅存层次作为一个存储整体,形成的可寻
址存储空间比主存储器空间大得多。由于辅存容量大,价格低,使得存储系统的整体平均
价格降低。由于
Cache
的存取速度可以和
CPU
的工作速度相媲美,故
cache
一主存层次
可以缩小主存和
cPu
之间的速度差距,从整体上提高存储器系统的存取速度。尽管
Cache
成本高,但由于容量较小,故不会使存储系统的整体价格增加很多。
综上所述,一个较大的存储系统是由各种不同类型的存储设备构成,是一个具有多级层次
结构的存储系统。该系统既有与
CPU
相近的速度,又有极大的容量,而成本又是较低的。
其中高速缓存解决了存储系统的速度问题,辅助存储器则解决了存储系统的容量问题。采
用多级层次结构的存储器系统可以有效的解决存储器的速度、容量和价格之间的矛盾。
2
Unix/Linux
系统中僵尸进程是如何产生的?有什么危害?如何避免?
(10
)
一个进程在调用
exit
命令结束自己的生命的时候,其实它并没有真正的被销毁,而是留下
一个称为僵尸进程(
Zombie
)的数据结构(系统调用
exit
,它的作用是使进程退出,但
也仅仅限于将一个正常的进程变成一个僵尸进程,并不能将其完全销毁)。
Linux
进程的状态中,僵尸进程是非常特殊的一种,它已经放弃了几乎所有内存空间,
没有任何可执行代码,也不能被调度,仅仅在进程列表中保留一个位置,记载该进程的退
出状态等信息供其他进程收集,除,僵尸进程不再有任何内存空间。它要它的
进程来为它收尸,如他的进程没安装
SIGCHLD
号处数调用
wait
waitpid()
待子进程结束,又没有显式忽略该信么它就一僵尸状态,如
进程结束了,
init
进程自接手这个进程,为它收尸,它是能被除的。
但是如果父进程是一个循环,不会结束,进程就会一僵尸状态,这就是
为什么系统中有时会有很多的僵尸进程。
避免
zombie
方法
1)
SVR4
中,如调用
signal
sigset
SIGCHLD
置设置为忽略
,
则不会产生僵
死子进程。另外
,
使用
SVR4
sigaction,
则可设置
SA_NOCLDWAIT
标志以避免
Linux
中也可使用这个,在一个程序的开始调用这个
signal(SIGCHLD,SIG_IGN);
2)
调用
fork
两次。
3)
waitpid
待子进程返回
.
3
,简述
Unix/Linux
系统中使用
socket
库编写服务程序的程,请分别用对应
socket
通信数表
(10
)
TCP socket
通信
服务端流程如下:
1.
创建
serverSocket
2.
初始化
serverAddr
服务址)
3.
socket
serverAddr
绑定
bind
4.
开始监听
listen
5.
while
循环,不
accept
接入客户端
socket
,进行读写操作
write
read
6.
关闭
serverSocket
客户端流程:
1.
创建
clientSocket
2.
初始化
serverAddr
3.
链接到服务
connect
4.
write
read
进行读写操作
5.
关闭
clientSocket
这个列表是一个
Berkeley
套接字
API
提供的或者方法要:
socket()
创建一个确定类型的套接字,类型用一个整型数值标识,并为它分系统
bind()
一般用于服务,将一个套接字与一个套接字地址结构相关联,比如,一个指定
的本地端口
IP
址。
listen()
用于服务,使一个绑定
TCP
套接字入监听状态。
connect()
用于客户端,为一个套接字一个自由的本地端口号
TCP
套接字
,它会试图获得一个
TCP
连接
accept()
用于服务 接受一个从远端客户端发出的创建一个
TCP
连接接入
创建一个套接字,与该连接套接字地址相关联
send()
recv(),
或者
write()
read(),
或者
recvfrom()
sendto(),
用于
/
套接
接受数据。
close()
用于系统放分配给一个套接字资源
TCP
连接会被中
gethostbyname()
gethostbyaddr()
用于解主机址。
select()
用于整有如下情况套接字列表:写或者是有错误
poll()
用于检查套接字的状态。 套接字可以被试,看是可以写入是有错误
getsockopt()
用于查询指定套接字一个特套接字选项的当前
setsockopt()
用于为指定套接字一个特套接字选项
,算与程序设计题
of 3
40墨值下载
【版权声明】本文为墨天轮用户原创内容,转载时必须标注文档的来源(墨天轮),文档链接,文档作者等基本信息,否则作者和墨天轮有权追究责任。如果您发现墨天轮中有涉嫌抄袭或者侵权的内容,欢迎发送邮件至:contact@modb.pro进行举报,并提供相关证据,一经查实,墨天轮将立刻删除相关内容。

评论

关注
最新上传
暂无内容,敬请期待...
下载排行榜
Top250 周榜 月榜