作者
Lee
试题来自牛客网。
一
下列哪些因素不会限制Linux服务器的并发连接数
A、系统内存大小
B、系统网卡数量
C、硬盘大小
D、系统最大文件句柄数量
答案:BC
题解:
Linux服务器的并发数受文件句柄数量的限制,比如在网络中,一个客户端对应一个文件描述符,如果文件描述符达到了上限,将不能继续处理新来的客户端。并发数也会受内存的限制。并发通常采用多进程或者多线程,这两种方式都会占用内存(进程开销更大),且进程/线程数越多,内存占用越大。二
下面选项属于函数指针的是?
A、(int*)func(int,int);
B、int*func(int,int);
C、两者都不是;
D、两者都是。
答案:C
题解:
选项A和选项B表达的是一个意思,都是指针函数,即返回值是指针的函数。
一个正确的函数指针:
int(*func)(int,int);
三
下面有关内核线程和用户线程说法错误的是?
A、内核线程只运行在内核态,不受用户态上下文的拖累;
B、用户线程是完全建立在用户空间的线程库,用户线程的创建、调度、同步和销毁不需要经过内核态;
C、用户线程有利于发挥多处理器的并发优势,但却占用了更多的系统开支;
D、用户线程之间的调度由在线程空间实现的线程库实现。
答案:C
题解:
内核线程:
内核线程可以理解成内核的分身,每个线程都可以单独处理一件事情,比如异步IO。内核线程的使用是廉价的,唯一使用的资源就是内核栈和上下文切换时保存寄存器的空间。
用户线程:
用户线程是完全建立在用户空间的线程库,用户线程的创建、调度、同步和销毁全由库函数在用户空间完成,不需要内核的帮助。因此这种线程是极其低消耗和高效的。
单纯的用户线程只是建立在用户空间,其对内核是透明的,因此其所属进程单独参与处理器的竞争,而进程的所有线程参与竞争该进程的资源。
四
linux系统中唯一标识每一个用户的是_1_和_2_
答案:
1、用户ID
2、用户名
题解:
用户名方便记忆,实际使用的是用户ID。
五
在linux系统中使用手工的方法配置网络时,可通过修改_1_文件来配置该计算机的域名解析服务器。
答案:
/etc/resolv.conf
题解:
#Dynamicresolv.conf(5)fileforglibcresolver(3)generatedbyresolvconf(8)#DONOTEDITTHISFILEBYHAND--YOURCHANGESWILLBEOVERWRITTENnameserver..2.#定义DNS服务器的IP地址nameserver..2.#可以有多个nameserver..2.nameserver..2.optionstimeout:2attempts:3rotatesingle-request-reopen
六
题目描述:
请列出Linux常见进程间通信方式,并进行对比说明。
答案:
管道(有名管道、无名管道)、信号、消息队列、共享内存、信号量、套接字。
无名管道
无名管道只能用于有血缘关系的进程,比如父子进程通信,可以使用有名管道。管道只能传输无格式的字节流,一端写入,另一端读出。使用简单,传输的数据格式有限。
有名管道
有名管道可以用于任意的进程之间。使用简单,传输的数据格式有限。
信号
信号操作简单,但是能承载的信息量有限。Linux下有31种信号。通过信号传递自定义的数据比较困难。
消息队列
消息队列可以用于多个进程,传输的数据有格式区分,适用范围比管道更广。
共享内存
共享内存是效率最高的进程间通信方式,将虚拟内存映射到物理内存空间。映射后用户可以直接操作内存实现进程间通信。
信号量
信号量准确的讲是一种进程同步方式,分为二值信号量和计数信号量,可以确保进程有序的访问共享资源。
套接字
套接字属于网络通信,也可用于本地的进程通信,适用范围最广。
七
题目描述:
在浏览器中输入