Linux
单纯防止自己忘记
老黑675
这个作者很懒,什么都没留下…
展开
-
Linux/Unix编程——进程控制
进程控制进程组成进程的组成:程序、数据和进程控制块程序:描述进程所要完成的功能;数据:提供运行所需的堆栈和私有数据;进程控制块:包含进程的描述和控制信息,反映进程动态特性,是系统识别和控制进程的依据。内核区(3GB - 4GB)常驻系统内存,内部有进程控制块用户区(0GB - 3GB)包含:(1)命令参数与环变量(2)进程栈空间(3)库空间(静态库与共享库)(4)进程堆空间(5)已初始化的全局资源(6)未初始化的全局资源(7)进程text带码段进程原语概述:进程使操原创 2020-12-20 21:59:39 · 165 阅读 · 0 评论 -
Linux/Unix编程——进程通信IPC_信号量
信号量信号量是为了控制临界资源而产生的一个或一组计数器,在本质上是一个整形变量信号量基本操作P操作:进程申请临界资源是发出P操作流程:检查信号量取值,如大于0,分配临界资源,信号量减1,否则代表当前无空余资源,进程阻塞直到指定资源到达为止。V操作:进程释放临界资源时发生V操作流程:释放临界资源,信号量的取值加1Z操作:又称为测试操作流程:等待当前信号量取值为0,如成立,进程返回,否则进程阻塞直到条件成立为止注:同步:体现进程间的协同关系,一个进程生产数据,其它进程使用这个数据。互斥原创 2020-12-19 23:45:37 · 130 阅读 · 1 评论 -
Linux/Unix编程——进程通信IPC_信号signal
信号signal信号是给进程的事件通知,可以完成进程间一异步通信,Unix信号利用进程间通信向进程1发送信号,可使接收进程受信号影响( 终止、挂起、继续)信号的产生命令发出信号 killkill -信号编号 进程id注: kill -l 可以查看系统下支持的信号1-31 Unix 经典信号,软件开发工程师使用34-64 实时信号,驱动开发者使用32 33 隐藏保留信号,给NTPL线程库使用函数产生信号(显示请求)(1)kill(pid_t pid , int signo) 像任意进程原创 2020-12-19 21:32:54 · 118 阅读 · 1 评论 -
Linux/Unix编程——进程通信IPC_消息队列
消息队列消息队列是在UNIX内核中的一个先进先出的链表结构,多个进程可同时向一个消息队列发送消息,也可以同时从一个消息队列中接收消息。发送进程把消息发送到队列尾部,接受进程从消息队列头部读取消息,消息一旦被读出就从队列中删除。消息队列提供了不完全随机读取的服务。消息队列提供了完全异步的读写服务。提供消息数据自动拆分功能,同时不能接受两次发送的消息消息消息队列中消息本身由消息类型和消息数据组成可以自定义封装——就像网络协议包struct msgbuf { long mtype; T原创 2020-12-19 18:02:45 · 89 阅读 · 1 评论 -
Linux/Unix编程——进程通信IPC_内存共享映射MMap
内存共享映射MMap共享内存的本质时一段内存,可以两个进程同时访问,映射时无需读写函数共享内存——shmap共享内存就是物理内存中一段可以由两个或两个以上的进程共享内存的区域。共享内存中最重要的属性是内存大小和内存地址,进程在访问共享内存前必须将共享内存映射到进程空间的一个虚拟地址中,然后任何对该虚拟地址的数据操作都将直接作用的物理内存上。多个进程对共享内存的同一区域访问时必须同步控制,即锁机制,但共享内存本身对此并不提供支持,用户进程必须自己完成相关操作,因此共享内存常与信号量共同使用,由信号量完原创 2020-12-19 16:30:24 · 108 阅读 · 1 评论 -
Linux/Unix编程——进程通信IPC_管道pipe
管道管道是队列型数据结构,常见的应用是连接两个进程的输入输出管道包括无名管道和有名管道,前者在父子进程中流行,后者由于可独立成磁盘文件形式存在,能够被无血缘关系的进程共享。无名管道——管道pipe占用文件描述符,不能被非亲缘的进程共享,一般用于父子进程,UNIX系统中一切皆为文件,管道也是文件的一种,称为管道文件。当系统创建一个管道时,他返回两个文件描述符:一个文件以只写打开,作为管道的输入端;另一个文件以只读打开,作为管道的输出端使用API创建——pipe(int arr[2]);关闭—原创 2020-12-19 14:36:59 · 127 阅读 · 1 评论 -
Linux/Unix编程——文件编程
文件编程原创 2020-12-19 10:12:03 · 221 阅读 · 1 评论