2021-2022-1 20212808 《Linux内核原理与分析》第七周作业
2021/11/6 7:14:11
本文主要是介绍2021-2022-1 20212808 《Linux内核原理与分析》第七周作业,对大家解决编程问题具有一定的参考价值,需要的程序猿们随着小编来一起学习吧!
遇到的问题
进程的描述和进程的创建
进程的描述
-
操作系统内核实现操作系统的三大管理功能:进程管理、内存管理、文件系统。
-
在操作系统原理中,通过进程控制块PCB描述进程。在Linux内核中通过一个数据结构struct task_struct来描述进程,称其为进程描述符。
-
在操作系统原理中,进程有就绪态、运行态和阻塞态3种基本状态。
-
Linux内核状态转换图:
-
在Linux内核中,当时用fork()系统调用来创建一个进程时,新进程的状态是TASK_RUNNING(就绪态但没有运行)。就绪态和运行态在Linux内核中都是TASK_RUNNING状态,此状态下进程是可运行的,也就是就绪态,是否在运行取决于它有没有获得CPU的控制权,即这个进程有没有在CPU中实际执行。如果在CPU中实际执行了,进程状态就是运行态;如果被内核调度出去了,在等待队列里就是就绪态。
-
对于一个正在运行的进程,调用用户态库函数exit()会陷入内核执行该内核函数do_exit(),进程会进入TASK_ZOMBIE状态,即进程的终止状态。TASK_ZOMBIE状态的进程一般叫做僵尸进程,Linux内核会在适当的时候把僵尸进程处理掉,然后释放进程描述符。
-
一个正在运行的进程在等待特定事件或资源时会进入阻塞态,阻塞态分为两种:
TASK_INTERRUPTIBLE
TASK_UNINTERRUPTIBLE。
前者可以被信号和wake_up()唤醒,后者只能被wake_up()唤醒。 -
pid ,tgid用来标识进程。
-
用数据结构struct task_struct 来描述进程
SMP条件编译,on_rq运行队列。
所有进程通过双向循环链表链起来。 -
进程描述符的结构示意图
-
程序创建的进程具有父子关系。
这篇关于2021-2022-1 20212808 《Linux内核原理与分析》第七周作业的文章就介绍到这儿,希望我们推荐的文章对大家有所帮助,也希望大家多多支持为之网!
- 2024-11-12如何创建可引导的 ESXi USB 安装介质 (macOS, Linux, Windows)
- 2024-11-08linux的 vi编辑器中搜索关键字有哪些常用的命令和技巧?-icode9专业技术文章分享
- 2024-11-08在 Linux 的 vi 或 vim 编辑器中什么命令可以直接跳到文件的结尾?-icode9专业技术文章分享
- 2024-10-22原生鸿蒙操作系统HarmonyOS NEXT(HarmonyOS 5)正式发布
- 2024-10-18操作系统入门教程:新手必看的基本操作指南
- 2024-10-18初学者必看:操作系统入门全攻略
- 2024-10-17操作系统入门教程:轻松掌握操作系统基础知识
- 2024-09-11Linux部署Scrapy学习:入门级指南
- 2024-09-11Linux部署Scrapy:入门级指南
- 2024-08-21【Linux】分区向左扩容的方法