摘要: 15 - 进程间通信 Github 地址 1. 进程间通信 进程间通信 (IPC) 是进程之间相互通信的技术: 前十种 IPC 形式通常限于同一台主机的两个进程之间的 IPC ,最后两行( 套接字和 STREAMS )是仅有的支持不同主机上两个进程之间的 IPC 的两种形式 。 2. 管道 2.1 阅读全文
posted @ 2020-07-02 16:02 BrianLeeLXT 阅读(411) 评论(0) 推荐(0) 编辑
摘要: 14 - 高级I/O GitHub 地址 1. 非阻塞 IO 非阻塞 I/O 使我们可以发出 open 、read 和 write 这样的 I/O 操作,并使这些操作不会永远阻塞。如果这种操作不能完成,则调用立即出错返回,表示该操作如继续执行将阻塞 。 对于一个给定的描述符,有两种为其指定 非阻塞 阅读全文
posted @ 2020-07-02 12:13 BrianLeeLXT 阅读(391) 评论(0) 推荐(0) 编辑
摘要: 13 - 守护进程 GitHub 地址 1. 守护进程 守护进程 (daemoon) 是生存期长的一种进程。常常在系统引导装入时启动,仅在系统关闭时才终止。它们是在后台运行的,没有控制终端。UNIX 有很多守护进程,它们执行 日常事务活动 。 2. 守护进程的特征 内核进程:父进程 ID 为 $0$ 阅读全文
posted @ 2020-07-01 22:43 BrianLeeLXT 阅读(243) 评论(0) 推荐(0) 编辑
摘要: 12 - 线程控制 GitHub 地址 1. 线程限制 下图为与 线程操作 有关的一些 限制: 可以通过 sysconf 函数进行查询 。 2. 线程属性 可使用 pthread_attr_t 结构修改线程默认属性,并把这些属性与创建的线程联系起来。 初始化 和 反初始化: #include <pt 阅读全文
posted @ 2020-07-01 11:59 BrianLeeLXT 阅读(282) 评论(0) 推荐(0) 编辑
摘要: Ubuntu操作系统运行apt update命令时会卡在Connecting to security.ubuntu.com,搭了梯子也无法解决 尝试了网络上的方法,如: https://blog.csdn.net/v6543210/article/details/81562266 https://u 阅读全文
posted @ 2020-06-30 22:19 BrianLeeLXT 阅读(3749) 评论(0) 推荐(1) 编辑
摘要: 11 - 线程 Github 地址 1. 线程概念 典型的 UNIX进程 可以看成只有一个 控制线程 :一个进程在某一时刻只能做一件事情。有了 多个控制线程 ,就可以把进程设计成在某一时刻能够做不止一件事,每个线程处理各自独立的任务。 每个线程都包含有表示执行环境所必需的信息: 进程中表示线程的 线 阅读全文
posted @ 2020-06-30 20:43 BrianLeeLXT 阅读(289) 评论(0) 推荐(0) 编辑
摘要: 10 - 信号 GitHub 地址 1. 信号 信号是 软中断 ,信号提供了一种处理异步事件的方法。 当造成信号的事件发生时,为进程 产生 一个信号(或向进程 发送 一个信号)。事件 可以是硬件异常(如除以 $0$)、软件条件(如alarm定时器超时)、终端产生的信号或调用 kill 函数。 每个信 阅读全文
posted @ 2020-06-30 16:59 BrianLeeLXT 阅读(295) 评论(0) 推荐(0) 编辑
摘要: 9 - 进程关系 GitHub 地址 1. 进程组 每个进程除了有一个 进程 ID 外,还属于一个 进程组 。进程组是一个或多个进程的 集合 ,通常,它们是在同一作业中结合起来的,同一进程组中的各进程接受来自同一终端的各种信号。每一个进程组有一个唯一的 进程组 ID 。 函数 getpgrp 返回调 阅读全文
posted @ 2020-06-30 11:41 BrianLeeLXT 阅读(292) 评论(0) 推荐(0) 编辑
摘要: 8 - 进程控制 Github 地址 1. 进程标识 每个进程都有一个非负整型表示的 唯一进程 ID 。进程 ID 是可复用的(延迟复用算法)。 ID 为 $0$ 的进程通常是调度进程,常常被称为 交换进程 (swapper) 。该进程是内核的一部分,它并不执行任何磁盘上的程序,因此也被称为 系统进 阅读全文
posted @ 2020-06-29 17:55 BrianLeeLXT 阅读(330) 评论(0) 推荐(0) 编辑
摘要: 7 - 进程环境 Github 地址 1. main 函数 C 程序总是从 main 函数 开始执行: int main(int argc, char *argv[]); \(argc\) 为命令行参数的数目,\(argv\) 是指向参数各个指针所构成的数组。 内核使用一个 exec 函数 执行 C 阅读全文
posted @ 2020-06-29 12:50 BrianLeeLXT 阅读(199) 评论(0) 推荐(0) 编辑