"0529-linux系统应用编程-课堂纪要1;进程专题讲座和相关理解"
需积分: 0 16 浏览量
更新于2024-01-17
收藏 677KB DOCX 举报
本课堂纪要主要讨论了Linux系统应用编程中的进程相关概念和操作。首先介绍了操作系统的三个基本抽象概念:进程、虚拟存储器和文件。进程是对处理器、主存和I/O设备的抽象表示,文件是对I/O设备的抽象表示,虚拟存储器是对主存和磁盘I/O设备的抽象表示。这三个基本抽象概念通过实现进程的创建、调度和执行,以及对虚拟存储器和文件的管理,帮助操作系统完成了多任务和资源管理的功能。
接着课堂讨论了Linux内核中进程的状态,包括运行状态、可中断睡眠状态、不可中断睡眠状态、暂停状态和僵死状态。进程的状态会根据不同的运行情况发生变化,理解这些状态对于进程管理和调度非常重要。
针对进程相关的一些理解问题,课堂中提供了解答。首先是关于fork系统调用的理解,该系统调用会创建一个新的进程,并使父进程和子进程交替执行。其次是解释为什么一次调用可以返回两次,这是因为fork系统调用会返回两个值,分别是父进程和子进程的进程ID。对于fork返回值大于零表示父进程的设计,是因为父进程的进程ID是正数,而子进程的进程ID是零或负数。此外,还解释了为什么分支在fork之后,而不是在父进程的main函数开始处。
课堂还讨论了孤儿进程和僵尸进程的产生原因和避免方法。孤儿进程是指父进程结束后仍然存在的进程,而僵尸进程是指子进程结束后父进程没有及时处理的进程。为了避免孤儿进程和僵尸进程的产生,可以使用wait系统调用让父进程等待子进程的结束,并及时处理子进程的退出状态。
最后,课堂还介绍了fork父子进程共享文件的情况。当子进程执行fork系统调用时,会拷贝父进程的数据段。这就意味着父子进程都拥有相同的文件描述符,可以同时对文件进行操作,并且文件指针会共享。
总而言之,本课堂纪要通过对Linux系统应用编程中进程相关概念和操作的讨论,帮助学习者更好地理解了进程的创建、调度和执行过程,以及对虚拟存储器和文件进行管理的方法。对于进程的状态、fork系统调用的理解问题、孤儿进程和僵尸进程的处理方法等也进行了解答,为进一步学习和应用Linux系统应用编程打下了基础。
优游的鱼
- 粉丝: 856
- 资源: 316
最新资源
- 基于Python+Flask的问题反馈系统-毕业设计源码+使用文档(高分优秀项目).zip
- extended-json:在规范上,MongoDB Extended JSON解析和字符串化
- PHP实例开发源码—拥有Ajax界面的eFront在线学习系统多国语言版.zip
- SQLQueryEvaluator:使用JSQLParser在Java中实现一个简单的数据库SQL查询评估器,该评估器支持Select,Project,Join,Limit,Order by,Bag Union和Aggregate操作
- 网站网页源码模板 (209).zip
- Advanced_Descriptors-2.2.3-cp35-cp35m-manylinux1_i686.whl.zip
- VolleyWithLruDiskCache
- Python库 | google_images_download-2.1.0.tar.gz
- 基于Python+Flask的音乐网站-毕业设计源码+使用文档(高分优秀项目).zip
- callable-reflection
- create-github-secret-action:可以在 GitHub Actions API 中创建或更新机密的 Github Action
- Corp:适用于Larvel 45的AdLDAP Helper程序包
- 网站网页源码模板 (275).zip
- 基于java-167_基于SpringBoot的人事管理系统设计与实现-源码.zip
- PHP实例开发源码—云豹直播系统源码.zip
- Python库 | googletrans-temp-2.3.0.tar.gz