预备知识 网络套接字socket 属于Linux特殊文件类型(管道、套接字、字符设备、块设备) 一个文件描述符指向一个套接字(该套接字内部由内核借助两个缓冲区实现) 在通信过程中, 套接字一定是成对出现的 类比前面进程通信中的管道:一个管道掌控着两个文件描述符和一个缓冲区,而一个套接字掌控着一个文件描述符和两个缓冲区 ps:图中画的不恰当,数据流通…
协议 协议:从应用角度讲,协议就是一组规则,用于数据的传输和解释 典型协议 应用层:HTTP、FTP、NFS、SSH、telnet 传输层:TCP、UDP 网络层:IP、ICMP、IGMP 链路层:以太网帧协议、ARP 网络应用程序设计模式 c/s模式: 客户端服务器端架构 client/server 优点: 可以缓存数据,提高传输效率 协议选择灵…
线程同步 同步即协同步调,多个线程对公共区域数据按序访问,防止数据混乱,产生与时间有关的错误。 线程同步,指一个线程发出某一功能调用时,在没有得到结果之前,该调用不返回。同时其他进程为保证数据一致性,不能调用该功能。 因此,当有多个控制流共同操作一个共享资源时,就需要同步 数据混乱原因 资源共享(独享资源则不会) 调度随机(意味着数据访问会出现竞争…
进程组和会话 进程组是多个进程的集合,而会话是多个进程组的集合 每个进程都属于一个进程组,当父进程创建子进程的时候,默认子进程与父进程属于同一进程组 进程组ID = 第一个进程ID(组长进程) 可以使用kill -SIGKILL-进程组ID(负的)来将整个进程组内的进程全部杀死 只要进程组中有一个进程存在,进程组就存在,与组长进程是否终止无关 创建…
相关概念 信号是软件层面上的“中断”。一旦信号产生,无论程序执行到什么位置,必须立即(用户感觉是立即,其实是要等待一个从用户区进入内核区的契机,站在CPU的时间量级上具有延迟性)停止运行,转而去处理信号,等信号处理结束,再继续执行后续指令。 每个进程收到的所有信号,都是由内核发送并处理的 与信号相关的事件和状态 产生信号: 按键产生,如:ctrl+…
IPC方法(Inter-Process Communication) Linux 环境下,进程地址空间相互独立,每个进程各自有不同的用户地址空间。任何一个进程的全局变量在另一个进程中都看不到,所以进程和进程之间不能相互访问,要交换数据必须通过内核。在内核中开辟一块缓冲区,进程1把数据从用户空间拷贝到内核缓冲区,进程2再从内核缓冲区把数据读走,内核提…
重定向 概念:在 Linux系统中,重定向是将命令的输入或输出从默认的终端设备(如屏幕)重定向到其他位置(如文件)或从其他位置读取数据。常见的重定向操作包括: 输出重定向:将命令的输出写入文件,而不是显示在终端上 追加重定向:将输出追加到文件末尾,而不是覆盖 输入重定向:从文件中读取输入,而不是从终端键盘输入 这些重定向符号分别是 >(输出重…