管道 管道的是进程间通信(IPC, InterProcess Communication)的一种方式,管道其实就是内核中的一块内存(内核缓冲区),这块缓冲区中的数据存储在一个环形队列中,因为管道在内核里边,因此不能直接对其进行操作。 因为管道数据是通过队列来维护的,分析一个管道中数据的特点:(1)管道对应的内核缓冲区大小是固定的,默认为 4k(队列最大能存储 4k 数据)。(2)管道分为两部分:读端和 2021-08-05 #进程
服务器并发 单进程/线程TCP 通信过程中,服务器端启动之后可以同时和多个客户端建立连接,并进行网络通信。先看一下之前的服务器代码的处理思路,再来分析代码中的不足: 12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758// server.c 2021-08-03 #网络编程
进程控制 进程的概念程序和进程是两个不同的概念,它们的状态、占用的系统资源都是不同的。程序:就是磁盘上的可执行文件文件,并且只占用磁盘上的空间,是一个静态的概念。进程:被执行之后的程序叫做进程,不占用磁盘空间,需要消耗系统的内存、CPU资源。每个运行的进程的都对应一个属于自己的虚拟地址空间,这是一个动态的概念。 并行与并发(1)CPU 时间片CPU 在某个时间点只能处理一个任务,但是操作系统都支持多任务的。 2021-08-02 #进程
套接字通信 socket编程字节序在各种计算机体系结构中,对于字节、字等的存储机制有所不同,因而引发了计算机通信领域中一个很重要的问题,即通信双方交流的信息单元(比特、字节、字、双字等等)应该以什么样的顺序进行传送。如果不达成一致的规则,通信双方将无法进行正确的编/译码从而导致通信失败。 字节序,就是大于一个字节类型的数据在内存中的存放顺序。对于单字符来说是没有字节序问题的,字符串是单字符的集合,因 2021-08-01 #网络编程
线程池 线程池线程池的思想 线程池的流程图 简单版本的线程池 主线程添加任务;子线程执行任务和销毁线程池 threadpoolsimple.h12345678910111213141516171819202122232425262728293031323334353637383940#ifndef _THREADPOOL_H#define _THREADPOOL_H#include <stdio 2021-07-24 #线程
Linux网络编程-本地socket通信 本地socket通信服务端 unix_server.c12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576777879808182838485868788899091 2021-05-05 #网络编程
Linux网络编程-UDP UDP通信服务端 udp_server.c1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071/*服务端的开发流程: 1.创建socket udp_socket = 2021-05-01 #网络编程
Linux网络编程 字节序大端小端 byteorder.c123456789101112131415161718192021222324252627282930/* 字节序:字节在内存中存储的顺序。 小端字节序:数据的高位字节存储在内存的高位地址,低位字节存储在内存的低位地址 大端字节序:数据的低位字节存储在内存的高位地址,高位字节存储在内存的低位地址*/// 通过代码检测当前主机的字节序#in 2021-04-10 #网络编程
Linux系统编程-线程 概念介绍与进程(process)类似,线程(thread)是允许应用程序并发执行多个任务的一种机制。一个进程可以包含多个线程。同一个程序中的所有线程均会独立执行相同程序,共享同一份全局内存区域,其中包括初始化数据段、未初始化数据段,以及堆内存段。(传统意义上的 UNIX 进程只是多线程程序的一个特例,该进程只包含一个线程) 进程线程区别 进程是 CPU 分配资源的最小单位,线程是操作系统调度执行的 2021-04-09 #线程
Linux系统编程-进程 概念程序 程序是包含一系列信息的文件,这些信息描述了如何在运行时创建一个进程: 二进制格式标识:每个程序文件都包含用于描述可执行文件格式的元信息。内核利用此信息来解释文件中的其他信息。(ELF可执行连接格式) 机器语言指令:对程序算法进行编码。 程序入口地址:标识程序开始执行时的起始指令位置。 数据:程序文件包含的变量初始值和程序使用的字面量值(比如字符串)。 符号表及重定位表:描述程序中函数 2021-04-08 #进程