《Linux内核原理与分析》第九周作业

娄老师 2021-11-15 08:41:33

完成 《Linux内核原理与分析》教学进程中第九周的任务。

...全文
825 回复 打赏 收藏 转发到动态 举报
写回复
用AI写文章
0人已提交
完成率0%
暂无数据
回复
切换为时间正序
请发表友善的回复…
发表回复
内容概要:本文深入解析Linux内核中进程调度的机制,重点围绕`schedule()`函数展开,详细阐述了进程调度的触发时机、调度过程及核心函数的工作原理。通过GDB调试工具对`schedule`、`context_switch`、`pick_next_task`和`switch_to`等关键函数设置断点,动态跟踪并分析了进程调度与上下文切换的执行流程。文章还介绍了CFS(完全公平调度器)等调度算法的选择策略,展示了从任务选择到上下文切换的完整链条,并结合实验步骤演示了如何在Linux 3.18.6内核中进行实际调试操作,帮助读者理解进程调度的底层实现。; 适合人群:具备一定操作系统基础知识,熟悉C语言和Linux系统调用,有一定内核学习经验的计算机专业学生或研发人员(工作1-3年为佳)。; 使用场景及目标:①理解Linux内核中进程调度的触发条件与核心函数调用关系;②掌握`schedule()`、`pick_next_task()`和`context_switch()`等函数的作用与协作机制;③通过GDB调试实践,深入剖析进程切换的全过程,提升对操作系统运行机制的理解。; 阅读建议:建议结合Linux内核源码(特别是kernel/sched目录下的代码)同步阅读,动手复现实验环境与GDB调试步骤,边操作边理解调度流程,重点关注断点触发顺序与函数调用栈的变化,以加深对进程调度内在逻辑的掌握。
目 录 第一部分 Linux 操作环境 第1章 Linux基础 1.1 登录Linux系统 1.2 Linx的shell 1.3 shell的一些基本命令 第2章 文本编辑 2.1 vi文本编辑器 2.2 emacs文本编辑器 第3章 Linux文件系统操作 3.1 文件类型 3.2 文件系统目录结构 3.3 目录操作的基本命令 3.4 文件操作的基本命令 3.5 显示字符串echo 3.6 命令行中使用扩展符 第4章 文件权限与文件共享 4.1 存取权限 4.2 改变文件的存取权限 4.3 特殊权限位SUID、SGID、Sticky 4.4 硬链接 4.5 符号链接 第5章 文件管理工具 5.1 正则表达式 5.2 排序文件 5.3 查找文件 5.4 搜索文件内容 5.5 命令记录 5.6 压缩文件、解压缩文件与打包文件 5.7 RPM包管理 第6章 Linux进程、管道和重定向 6.1 进程的属性 6.2 进程的终止 6.3 进程和作业控制 6.4 命令行中使用操作符 6.5 Linux系统启动和进程层次结构 6.6 系统启动和关机 6.7 输入、输出重定向 6.8 使用文件描述符 6.9 输入和输出重定向的组合使用 6.10 管道(pipe) 第7章 C语言开发工具 7.1 编写程序的工具 7.2 编C语言程序 7.3 make工具 7.4 gdb调试工具 第8章 Bourn Again Shell编程 8.1 bash脚本的建立和运行 8.2 shell的变量 8.3 shell脚本位置参数的传递 8.4 控制结构语句 8.5 其他几个有用的语句 8.6 数值处理 8.7 数组 8.8 函数 8.9 here文档 8.10 exec命令 8.11 trap命令 8.12 调试脚本程序 第二部分 Linux 内核分析与实践 第9章 编译Linux内核 9.1 Linux内核 9.2 查找并且下载一份内核源代码 9.3 部署内核源代码 9.4 配置内核 9.5 编译内核和模块 9.6 了解Linux内核的启动 9.7 应用grub配置启动文件 9.8 编写制作Linux启动盘的shell脚本程序 9.9 Linux源程序的目录分布 9.10 学习Linux的常用工具 9.11 查看Linux内核状况 9.12 编程序检查系统状况 9.13 Linux编程环境 第10章 系统调用 10.1 一个简单的例子 10.2 系统调用基础知识 第11章 进程创建 11.1 进程是什么 11.2 进程的产生 11.3 进程的消亡 / 退出 11.4 实验1 11.5 实验2 11.6 实验3 第12章 /proc文件系统 12.1 /proc文件系统 12.2 现有proc文件系统中各个文件的含义 12.3 怎样使用/proc文件系统 12.4 seq file 12.5 proc文件系统的内部实现机制 12.6 实验一:使用proc文件系统的一个简单例子 12.7 实验二:利用/proc文件系统显示缺页状态 12.8 实验三:seq file使用例子 第13章 内核模块 13.1 什么是内核模块 13.2 模块实现机制 13.3 使用内核模块 13.4 实例 第14章 内存管理 14.1 虚拟内存管理 14.2 Linux虚拟内存管理 14.3 实例 14.4 综合实验的原理 14.5 综合实验的实施 第15章 内核时钟与定时器 15.1 关于时钟和定时器 15.2 Linux系统时钟 15.3 Linux系统定时器 15.4 时钟命令 15.5 实验一:一个应用定时器的简单例子 15.6 实验二:统计关于进程的时间 15.7 实验三:更进一步的进程时间统计 第16章 共享内存 16.1 进程间通信和共享内存 16.2 共享内存的API 16.3 共享内存在Linux中的实现 第17章 同步机制 17.1 同步机制 17.2 Linux中几种同步机制的实现 17.3 设计我们自己的同步机制 第18章 文件系统 18.1 文件系统基本概念 18.2 文件系统的抽象 18.3 VFS文件系统 18.4 ext2文件系统 18.5 对文件的操作 18.6 块读写与页缓存 18.7 本章总结 18.8 实验:添加一个文件系统 18.9 附录:优秀的日志文件系统——ext3

31

社区成员

发帖
与我相关
我的任务
社区描述
北京电子科技学院 《Linux内核原理与分析》课程
linux 高校
社区管理员
  • rocflytosky
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧