一.选择题(每题5分)
1.在shell编程中关于$2的描述正确的是( E )
A. 程序后携带了两个位置参数
B. 宏替换
C. 程序后面携带的第二个位置参数
D. 携带位置参数的个数
E. 用$2引用第二个位置参数
2.unix将存储设备和输入/输出设备均看做文件来操作,(C)不是以文件的形式出现。
A. 目录 B. 软链接 C. i节点表 D. 网络适配器
3.在支持多线程的系统中,进程P创建的若干个线程不能共享的是(D)。
A.进程P的代码段 B.进程P中打开的文件
C.进程P的全局变量 D.进程P中某线程的栈指针
二.简答题(每题10分)
1.列举四种以上Unix系统常用的IPC通信机制
共享内存, 文件, 信号, 管道, 信号量, socket.
2.Epoll和select的区别
epoll使用红黑树保存描述符, select使用位域保存描述符.
epoll只适用于Linux平台, select可以跨平台
epoll适合大规模的服务器模型, select适合小规模模型
3.说出线程死锁的原因,死锁的四个必要条件。
原因:死锁是由于共同等待同一个共享的资源.
条件: 资源有限; 资源共享; 循环等待资源; 不主动释放自己资源.
4.MongoDB中如何执行事务/加锁?
略
三.编码题(每题15分)
1.编写个shell 脚本将/usr/local 目录下大于100K 的文件转移到/usr/local/test(自定义) 目录下。(这里用cp比较安全)
运行结果:
2.父子进程通过信号通信,实现交替数数。
运行结果:
3.编写程序,统计当前系统中进程ID介于4000到5000之间的进程总个数。
运行结果: