《操作系统导论》笔记(4、插叙:进程API)
2021/12/7 7:20:49
本文主要是介绍《操作系统导论》笔记(4、插叙:进程API),对大家解决编程问题具有一定的参考价值,需要的程序猿们随着小编来一起学习吧!
4 插叙:进程API
4.1 fork()系统调用
fork()创建一个新进程。新创建的进程叫子进程,原来的进程称为父进程。子进程不会从main()函数开始执行,而是直接从fork()系统调用返回
父进程获得的返回值是新创建的子进程的PID,而子进程获得的返回值是0
4.2 wait()系统调用
有时候父进程需要等待子进程执行完毕
4.3 exec()系统调用
让子进程执行与父进程不同的程序
子进程通过调用execvp()来运行字符计数程序wc,它针对源代码文p3.c运行wc。
exec()给定可执行程序的名称(wc)及需要的参数(p3.c),exec()会从可执行程序中加载代码和静态数据,并用它覆写自己的代码段(及静态数据),堆、栈及其他内存空间也会被重新初始化。
然后操作系统执行该程序,将参数通过argv传递给该进程。因此,它并没有创建新进程,而是直接将当前运行的程序(p3)替换为不同的运行程序(wc)
4.4 为什么这样设计API
给了shell在fork之后exec之前运行代码的机会,这些代码可以在运行新程序前改变环境
这篇关于《操作系统导论》笔记(4、插叙:进程API)的文章就介绍到这儿,希望我们推荐的文章对大家有所帮助,也希望大家多多支持为之网!
- 2024-12-18git仓库有更新,jenkins 自动触发拉代码怎么配置的?-icode9专业技术文章分享
- 2024-12-18Jenkins webhook 方式怎么配置指定的分支?-icode9专业技术文章分享
- 2024-12-13Linux C++项目实战入门教程
- 2024-12-13Linux C++编程项目实战入门教程
- 2024-12-11Linux部署Scrapy教程:新手入门指南
- 2024-12-11怎么将在本地创建的 Maven 仓库迁移到 Linux 服务器上?-icode9专业技术文章分享
- 2024-12-10Linux常用命令
- 2024-12-06谁看谁服! Linux 创始人对于进程和线程的理解是…
- 2024-12-04操作系统教程:新手入门及初级技巧详解
- 2024-12-04操作系统入门:新手必学指南