Linux系统编程
Noone0^
欲渡黄河冰塞川,将登太行雪满山。
展开
-
Linux进程间通信--消息队列
Linux进程间通信--消息队列消息队列(message queue)1.特点2.消息队列的使用消息队列的格式ftok()函数获取键值msgget()函数msgsnd()函数msgrcv()函数msgctl()函数3.模拟实现消息队列 消息队列(message queue) 消息队列提供了一种从一个进程向另一个进程发送一个数据块的方法。消息队列是消息的链接表,存放在内核中并由消息队列标识符标识。 每个数据块都被认为含有一个类型,接收进程可以独立地接收含有不同类型的数据结构。 我们可以通过发送消息来避免命名管原创 2020-12-12 11:18:36 · 171 阅读 · 0 评论 -
Linux进程间通信--共享内存
Linux进程间通信--共享内存共享内存(Shared Memory)1.通信原理2.为什么共享内存通信最快?3.特征&优缺点4.共享内存的使用5.共享内存操作流程6.操作共享内存的函数创建共享内存:shmget()函数将共享内存映射到地址空间:shmat()函数解除内存映射:shmdt()函数控制共享内存:shmctl()函数ftok()函数指定key值7.共享内存实现 共享内存(Shared Memory) 共享内存就是允许多个不相关的进程访问同一个逻辑内存。 共享内存是在两个正在运行的进程之间原创 2020-12-12 09:40:37 · 255 阅读 · 0 评论 -
Linux进程状态
Linux进程状态1.进程状态2.运行状态R3.睡眠状态S(可中断睡眠)4.磁盘休眠状态D(不可中断睡眠)5.停止状态(T) & 跟踪状态(t)6.死亡状态X(退出状态)7.僵死状态Z8.僵尸进程孤儿进程 1.进程状态 状态在Kernel源码中的定义: static const char * const task_state_array[] = { "R (running)", "S (sleeping)", "D (disk sleep)", "T (stop原创 2020-10-09 21:45:31 · 239 阅读 · 0 评论 -
Linux进程概念
Linux 进程 1.冯诺依曼计算机体系结构 把程序本身当作数据来对待,程序和该程序处理的数据用同样的方式储存。计算机的数制采用二进制;计算机应该按照程序顺序执行。 2.现代计算机的硬件体系结构五大部 输入设备:输入设备是用来完成输入功能的部件,即向计算机送入程序、数据以及各种信息的设备。常用的输入设备有键盘、鼠标、扫描仪、磁盘驱动器和触摸屏等。 输出设备:输出设备是用来将计算机工作的中间结果...原创 2020-10-07 17:08:07 · 118 阅读 · 0 评论 -
Linux进程创建--fork()
Linux进程创建--fork函数1.创建进程1.1 fork()函数1.2 fork()的返回值2.fork的写时拷贝策略3.fork失败原因fork用法 1.创建进程 我们说过一个进程就是一个PCB,即一个task_struck结构体,那么创建进程也就是创建一个task_struck结构体。在Linux中我们常用fork()函数来创建进程。 1.1 fork()函数 从已存在进程中创建一个新进程。新进程为子进程,而原进程为父进程。fork()在函数内部会调用clone这个系统调用接口。 #include原创 2020-10-07 16:58:44 · 623 阅读 · 0 评论