Linux相关问题————part1

1.请描述一下用多线程怎么实现生产者消费者模型?
答:创建两类线程,一类充当生产者,向缓冲区中生产数据;另一类充当消费者,从缓冲区中读取数据并消费,邮箱共实现模式。
通过互斥量和条件变量实现同步,通过信号量实现同步

2.fork()都会做哪些复制?
答:fork成功之后,子进程会拷贝父进程所有的内容,包括数据段,堆,栈,共享区等等,还会为空间分配虚拟地址空间。但是fork之后父子进程代码共享,数据各自私有。

3.什么是写时拷贝?Fork以后,父进程打开的文件指针位置在子进程里面是否一样?
答:写时拷贝:通常来说,父子进程共享代码,虽然虚拟地址空间不同,但是指向的物理地址是相同的,但是如果有一方要重新写入数据,就要对子进程重新分配物理地址空间。fork之后,由于父子进程共享文件描述符。所以父进程打开的文件指针位置在子进程里面相同。

参考:https://blog.youkuaiyun.com/ws1296931325/article/details/88278728

4.Linux下进程都有哪些通信方式?
无名管道:常用于父子进程通信
命名管道:可用于不相关进程
共享内存:是进程间最快的通信方式
消息队列:一个进程向另一个进程发送一个数据块
信号量:是一个计数器,可以控制不同进程对共享资源的获取
socket套接字:可实现不同主机间通信

5.进程和线程的区别
进程是操作系统分配资源的基本单位,线程是CPU调度的基本单位
进程的资源是相互独立的,而在同一个进程下的线程大部分资源都是共享的
进程之间的相互独立的,一个进程出错不会影响另一个进程,而在同一个进程下的一个线程线程出错,则所有的线程都会出错。
进程间通信是比较困难的,而同一个进程下的线程通信是很容易的
创建或销毁一个进程要比创建和销毁一个线程困难的多

6.什么是进程同步/异步?
进程同步:当发送一个功能调用时,在没有结果的时候,该调用是不会返回的。即必须一件事一件事的做。按照某种顺序执行任务。简单来说,A调用B,当B有结果的时候才会返回。
进程异步:当一个异步进程调用时,调用者不能立刻得到结果,实际处理这个调用的部件在完成后通过状态,通知,回调来通知调用者。简单来说,A调用B,B立即返回,无需等待,当B处理完了之后通过状态等通知A
参考:进程同步/异步

7.Linux上查看系统内存使用情况的命令?
top:能够实时显示各个进程的资源使用情况,相当于Windows下的任务管理器。
free:查看系统物理内存的使用情况,包括物理内存,交换内存,内核缓冲区内存,一般加上 -h选项。
cat /proc/meminfo: 和free命令差不多,不过得到出来的信息更详细。

8.Linux上查看内核版本的命令?
cat /proc/version
uname -a

9.Linux上查看系统版本的命令?
lsb_release -a

10.Linux上查看进程状态的命令?
ps 一般有 -ef 选项和 -aux选项

11.Linux上查看CPU的命令?

top:查看CPU使用情况的命令

12.listen函数的第二个参数代表什么?可不可以没有?可不可以过大?
listen的第二个参数代表的是底层连接队列中,最多允许全连接的个数为该参数加1,如果参数为2,那么最多允许全连接的个数为3. 如果连接的个数超过最大全连接数,那么后面的连接都是半连接,全连接代表客户端和服务器双向连接,半连接代表客户端单向连接服务器,而服务器并没有连接客户端。accept函数从连接队列中获取一个全连接,当一个全连接被accept,在之后的一个半连接就会转变为全连接
listen第二个参数不能没有,如果没有的话,当服务器已经被客户端连接后,再有新的客户端就无法连接这个服务器,不能处于半连接状态,而如果这个服务器解决完客户端的操作时,没有新的客户端连接这个服务器,就会造成服务器的一段时间内的空闲,这样服务器的利用率不高。
listen第二个参数不能过大,如果过大,会有很多个全连接状态,如果accept函数获取全连接特别慢(比如说sleep(5)才获取一次),那么在全连接后面的半连接状态的客户端就会等待很长时间,在宏观上的表现即为用户请求等待中。

13.为什么需要三次握手?
① 三次握手验证了在客户端和服务器通信时的全双工特性
②三次握手是奇数次握手,避免了如果链接异常,那么异常是在客户端的,比在服务器端风险和消耗小

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值