news 2026/3/20 6:39:45

11、进程、程序与进程间通信详解

作者头像

张小明

前端开发工程师

1.2k 24
文章封面图
11、进程、程序与进程间通信详解

进程、程序与进程间通信详解

1. 共享文本段

在大多数系统中,链接编辑器负责构建共享文本段。它会对用户程序的代码和数据部分进行不同程度的重定位,以便为它们应用不同的访问权限。通常,文本段从虚拟地址 0 开始,而数据段则从以下位置开始:

(textsize + SEGSIZE - 1) / SEGSIZE

这里的 SEGSIZE 是可应用单独访问权限的最小内存块大小。例如,在 PDP11 上是 BK,在 VAX 上是 512 字节。由于这种额外的重定位,文本段顶部和数据段底部之间通常会有一小段不存在的内存。

共享文本段虽无功能上的好处,但能在多方面提高效率:
- 只读段无需多次交换出去,因为交换区的原始副本始终是最新的,这对交互式程序尤其有利,这类程序在等待终端输入时往往会被交换出去。
- 在执行fork操作时,无需复制纯文本段,硬件只需将其映射到父进程和子进程的地址空间即可。
- 多个进程(可能属于不同用户)同时从同一段执行,可节省主内存,对于常见程序(如 shell、编辑器和编译器)的多个副本,能有效减少开销。

2. 链接共享文本程序

在 C 编译器或链接器命令行中指定-n选项,可将程序链接为共享文本。例如:

CC -0 fred main.o a.o b.o

此命令会链接一个非共享文本版本的程序fred。而

版权声明: 本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若内容造成侵权/违法违规/事实不符,请联系邮箱:809451989@qq.com进行投诉反馈,一经查实,立即删除!
网站建设 2026/3/14 12:49:33

涛思数据库:DB error: some vnode/qnode/mnode(s) out of service (10.703928s)

涛思库异常:DB error: some vnode/qnode/mnode(s) out of service (10.703928s)妈的,劳资要崩溃了,就这个逼错误,目前我唯一找到的解决办法是重装数据库,什么删库改配置,改各种东西都没什么屌用&#xff0c…

作者头像 李华
网站建设 2026/3/16 10:21:18

基于 NetFlow / sFlow 的根因定位模型:从流量异常到可解释因果结论

基于 NetFlow / sFlow 的根因定位模型:从流量异常到可解释因果结论引言:告别“盲人摸象”的网络运维困境想象一个典型的周一上午10点,核心业务系统突然卡顿,用户投诉电话被打爆。应用运维团队赶紧检查:“数据库响应时间…

作者头像 李华
网站建设 2026/3/15 2:04:06

软件测试面试题总结(超全的)

前面看到了一些面试题,总感觉会用得到,但是看一遍又记不住,所以我把面试题都整合在一起,都是来自各路大佬的分享,为了方便以后自己需要的时候刷一刷,不用再到处找题,今天把自己整理的这些面试题…

作者头像 李华
网站建设 2026/3/12 23:07:26

7步重构:打造高可维护深度学习框架的模块化实践

7步重构:打造高可维护深度学习框架的模块化实践 【免费下载链接】segmentation_models.pytorch Segmentation models with pretrained backbones. PyTorch. 项目地址: https://gitcode.com/gh_mirrors/se/segmentation_models.pytorch 你是否经历过这样的困境…

作者头像 李华
网站建设 2026/3/17 7:22:20

GitNext:OpenHarmony系统上的终极Git客户端完全指南

GitNext:OpenHarmony系统上的终极Git客户端完全指南 【免费下载链接】GitNext 基于可以运行在OpenHarmony的git,提供git客户端操作能力 项目地址: https://gitcode.com/OpenHarmonyPCDeveloper/GitNext 在当今开源开发浪潮中,版本控制…

作者头像 李华
网站建设 2026/3/15 17:07:53

RRT*路径规划算法核心REWIRE函数实现

C RRT* 核心 rewire 函数实现(面向路径规划,可直接集成) 以下实现基于 2D空间路径规划场景,包含节点类、邻近节点搜索、成本计算和父节点重连逻辑,兼容 C11 及以上标准,支持自定义障碍物检测: …

作者头像 李华