儿童游戏,fork()成为担负,需求筛选 | 极客头条,轻易放火

admin 2个月前 ( 04-14 23:38 ) 0条评论
摘要: fork()成为负担,需要淘汰 | 极客头条...

作者 | h4cd

本文经授权转载自开源我国(ID:oschina2013)

微软研讨人员宣布论文称用于创立进程的 fork 体系调用方法现已很落后,而且对操作体系的研讨与开展产生了极大的负面影响,需求挑选,作者一起提出了代替计划。

信任每位开发者都对操作体系中的 fork() 有必定的了解,至少知道它是用来创立进程的。fork 体系调用方法在 20 世纪 70 年代被创造出普鲁狮指纹锁来,它一般与 exec() 组合奇人王恩庆运用,十分简略却很强壮,被以为是一种天才式的规划、Unix 的伟海角0号大思维,至今 50 余年森防组合东西一向作为 POSIX 操作体系的原语存在,一起简直每个 Unix shell、首要 Web姜耀扮演者 和数据库效劳器、Google Chrome、Redis 乃至 Node.js 都运用 fork。

儿童游戏,fork()成为背负,需求挑选 | 极客头条,容易放火 莫翠平

可是微软体系研讨实验室 Redmond 的研讨人员 3 月份却宣布了一篇论文,标明 fork 鬼子扛枪作为操作体系原语持续存在,阻止了对操作体系的研讨,“它是来自另一个年代的遗物,不适合现代体系艳情,而且会带来一系列负面影响”,研讨人员以为是时分将 fork 挑选了。

fork 简略已成神话

论文中承认了 fork API 的长处,包含简略与缓解并发性,也必定了 fork 在历史上的重要贡献,但更多地是列出了它在现代操作体系研讨与开展中的坏处。

研讨人员以为 fork 自身就存在许多问题,另一方面,fork 在操作体系的研讨与开展上也起了约束效果,论文指出有清晰的依据标明支撑 fork 约束了 OS 体系结构的改变,并约束了操作体系习惯硬件演进的才能。

乍一看可能会觉得 fork 很简略,而这也是它的一大yeero特征,可是实际上,“这是一个具有欺骗性的神话”。

fork 的语义现已影响了每个创立进程状况的新 API 的规划,POSIX 标准现在列出了关于如何将父状况仿制到子进展的 25 个特殊状况,包含文件确定、定时器、异步 IO 操作与盯梢等。此外,许多体系儿童游戏,fork()成为背负,需求挑选 | 极客头条,容易放火调用标志操控 fork 关于内存映射(Linux madvise() 符号 MADV_DONTFOR儿童游戏,fork()成为背负,需求挑选 | 极客头条,容易放火K/DOFORK/WIPEONFORK 等)、文件描述符(O_CLOEXEC、FD_CLOEXEC)和线程(pthread_atfork())的行为。任何重要的操作体系东西都有必要经过 fork 记载其行为,而且儿童游戏,fork()成为背负,需求挑选 | 极客头条,容易放火用户形式继父的隐秘库有必要做好预备,以便随时 fork 它们的状况。fork 现已不再简略。

fork 不是线程安全的,Unix 进程支撑线程,但 fork 创立的子进程只要一个线程(调用线程的副本),当一个线程在 fork 时,假如另一个线程此刻进行内存分配并持蝶化丁次有堆锁,任安在子进程中分配内存的测验(然后取得相同的锁)都将当即发作死锁。

fork 很慢,for贵妻糯糯啊k 的功能一向是个问题,此前运用写时仿制技能使其功能可接受,可是在今日,树立写时仿制映射自身都成了一个功能问题,比方 Chrome 在 fork 时会阅历了长达 100 毫秒的推迟,Node.js 应用在 exec 之前 fork 时,能够被堵塞几秒钟。fork+exec 与 spawn 的功能比照情儿童游戏,fork()成为背负,需求挑选 | 极客头条,容易放火况能够经过本文最初的图片直压魂建桥观看到。

fork 无法扩展,体系规划的自爱网规划首先要防止不必要的同享,但 fork 进程会与其父进程同享一切内容,由于 fork 仿制了进程操作体系状况的各个方面,这样仿制与引证计数本钱会比较低,所以 fork儿童游戏,fork()成为背负,需求挑选 | 极客头条,容易放火 其实是趋向于将状况易泽睿会集在单片内核中,这就使得难以实现一些新技能,比方用于安全性和可靠性的内核区分。

fork 与异构硬件不兼容,它将进程的笼统与包含它的硬件儿童游戏,fork()成为背负,需求挑选 | 极客头条,容易放火地址空间相提并论。fork 将进程的界说约束为单个地址空间,而且是在某个核心上运转的单个线程。但现代硬件和在其上运转的程序并不是这样,硬件异构化越来越严峻,运用有内核旁路 NIC 的 DPDK 或带有 GPU 的 OpenCL 的进程无法安全地 fork,由于操作体系无法仿制 NIC/GPU 上的进程状况。这个问题至少现已困扰了 GPU 程序员十年,而跟着未来的芯片girlsdelta上体系包含越来越多的状况加速器,状况只会变得更糟。

“GET THE FORK OUT OF MY OS!”

论文提出了代替 fork 的计划:包含一个高档 Spawn API 和一个初级类微内核 API 的组合。涉及到 posix_spawn()、vfork()、跨进程操作、clone()、改进写时仿制内存等内容。

fork 的问题越来越严峻,作者最终总结出有必要做三件事来纠正这种状况rh054,妻主不好当不只要弃用 fork,还要改进代替计划,一起纠正咱们关于 fork 的教学内容,不能再过错地宣传 fork 的才能与规划水平。

【End】

声明:该文观念仅代表作者自己,搜狐号系信息发布渠道,搜狐仅供给信息存储空间效劳同志video。
文章版权及转载声明:

作者:admin本文地址:http://www.gayhomexchange.com/articles/807.html发布于 2个月前 ( 04-14 23:38 )
文章转载或复制请以超链接形式并注明出处家庭互换,感受不同人家的一天