Linux&&网络通信

一、进程

(1)什么是进程?

进程是程序执行的过程,是linux的基本调度单位。

(2)进程和程序的区别。

程序是静态的,它是一些保存在磁盘上的指令的有序集合;

而进程是一个动态的概念,它是一个运行着的程序,包含了进程的动态创建、调度和消亡的过程。

(3)进程间的通信方式。

无名管道、有名管道、信号量、消息队列、信号、套接字、共享内存。

1)无名管道和有名管道的区别。

无名管道和有名管道都是半双工(固定的读端和写端)。

无名管道只能在亲缘关系的进程间通信,有名管道突破了这个限制。

(4)进程的状态转换。

(5)守护进程。

1)创建子进程,父进程退出。

​ 子进程称为孤儿进程,

2)在子进程中创建新会话。

3)改变当前目录为根目录。

4)重设文件权限掩码。

5)关闭不必要的文件描述符。

二、线程

(1)什么是线程?

线程通常叫做轻量级进程。

(2)线程间的通信方式

1)锁机制

2)信号量机制

3)信号机制

三、线程和进程的区别。

1)进程有自己的独立地址空间,线程没有;

2)进程是资源分配的最小单位,线程是CPU调度的最小单位;

3)进程和线程间的通信方式不同;

4)进程切换上下开销大,线程开销小;线程之间的切换快,但不利于资源的保护和利用。

5)一个进程挂了不会影响其他进程,而线程挂了会影响其他线程。

四、I/O模型

1、同步和异步、阻塞与非阻塞的区别

2、select、poll和epoll的区别

五、死锁及其必要条件

1)产生死锁的原因

2)预防死锁

3)银行家算法流程,怎么检测不安全状态

六、Linux命令

1)du和df

du:显示每个文件和目录的磁盘使用空间。

​ du -s -h 目录路径

​ du -h 目录路径

df:显示指定磁盘文件的可用空间。

​ df -h

七、socket编程

1、使用TCP协议的流程图

1)TCP通信的基本步骤

服务器端:socket->bind->listen->while(1){->accept->recv->send->close-}->close

客户端: socket------------------------------------>connect->send->recv----------->close

2)服务器端函数:

socket函数:生成一个套接字描述符。

bind函数:用来绑定一个端口号和IP地址,使套接字与指定的端口号和IP地址相关联。

listen函数:使服务器的这个端口和IP地址处于监听状态,等待网络中某一客户机的连接请求。如果客户端有连接请求,端口就会接受这个连接。

accept函数:接受远端计算机的连接请求,建立起与客户机的远程连接。

recv函数:用新的套接字来接收远端主机传来的数据,并把数据存到由参数buf指向的内存空间。

send函数:用新的套接字发送数据给指定的远端主机。

close函数:发送完数据后可使用close()函数,close()会让数据写回磁盘,并释放占用的资源。

3)客户端函数:

connect函数:用来请求连接远程服务器。

posted @   调蓝师  阅读(17)  评论(0编辑  收藏  举报
相关博文:
阅读排行:
· 被坑几百块钱后,我竟然真的恢复了删除的微信聊天记录!
· 没有Manus邀请码?试试免邀请码的MGX或者开源的OpenManus吧
· 【自荐】一款简洁、开源的在线白板工具 Drawnix
· 园子的第一款AI主题卫衣上架——"HELLO! HOW CAN I ASSIST YOU TODAY
· Docker 太简单,K8s 太复杂?w7panel 让容器管理更轻松!
点击右上角即可分享
微信分享提示