1 / 3
文档名称:

百度校园招聘笔试试题-研发工程师笔试题.pdf

格式:pdf   大小:176KB   页数:3页
下载后只包含 1 个 PDF 格式的文档,没有任何的图纸或源代码,查看文件列表

如果您已付费下载过本站文档,您可以点这里二次下载

分享

预览

百度校园招聘笔试试题-研发工程师笔试题.pdf

上传人:王善保 2022/4/16 文件大小:176 KB

下载得到文件列表

百度校园招聘笔试试题-研发工程师笔试题.pdf

相关文档

文档介绍

文档介绍:校园招聘-研发工程师笔试题
一、简答题(30分)
1,当前计算机系统一般会采用层次结构存储数据,请介绍下典型计算机存储系统一般分为哪几
个层次,为什么采用分层存储数据能有效提高程序的执行效率?(10分)
所,其实它并没有真正的被销毁,而是留下
一个称为僵尸进程(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 通信
服务器端流程如下:
serverSocket
serverAddr(服务器地址)
socket 和 serverAddr 绑定 bind
listen
while 循环,不断的 accept 接入的客户端 socket,进行读写操作 write 和 read
serverSocket
客户端流程:
clientSocket
serverAddr
connect
write 和 read 进行读写操作
clientSocket


这个列表是一个 Berkeley 套接字 API 库提供的函数或者方法的