2023-2024 20233809《Linux内核原理与分析》第七周作业

20233809黄雅琦 2023-11-04 22:27:17

1、通过chatgpt进行学习Linux进程的执行和进程的切换
https://chat.openai.com/c/43b5955a-1b76-42d0-8300-64a84a4fe6ae%EF%BC%8C%E4%BA%86%E8%A7%A3%E5%88%B0%E4%BA%86%E8%BF%9B%E7%A8%8B%E5%9C%A8Linux%E4%B8%AD%E6%98%AF%E7%8B%AC%E7%AB%8B%E7%9A%84%E3%80%82
我初步的想法是因此如果进程是独立的,那么在进程结束后就可以进行空间释放从而节省资源。在进行chatgpt学习后了解到Linux中的进程独立性确保了系统的稳定性、资源的释放以及多任务处理的实现。这使得Linux系统能够同时运行多个应用程序,提供了高度的灵活性和资源利用率。
2、使用实验楼完成实验六
1)首先cd LinuxKernel ,之后再 rm -rf menu,在通过git clone https://github.com/mengning/menu.git%E3%80%82%E8%BF%9B%E8%A1%8C%E5%A4%8D%E5%88%B6menu%E3%80%82%E4%B9%8B%E5%90%8E%E6%89%93%E5%BC%80test_fork.c%E6%96%87%E4%BB%B6

img


2)之后make rootfs之后进行编译test_fork.c。

img


3)再cd LinuxKernel 之后qemu -kernel linux-3.18.6/arch/x86/boot/bzImage -initrd rootfs.img -s -S

img


4)之后使用gdb进行打断点,分别在sys_clone 、do_fork 、dup_task_struct、copy_process、copy_thread

img


img


img


img


3、实验总结
本次实验使用 gdb 跟踪分析一个 fork 系统调用内核处理函数 sys_clone 。分析 fork 函数对应的内核处理过程 sys_clone。进程的执行始于进程的创建。通常,进程创建通过调用fork()系统调用来完成。fork()系统调用会创建一个新的进程,该进程是调用进程的副本,包括代码、数据、文件描述符等。新进程拥有不同的进程ID(PID),但在开始时执行相同的代码。

...全文
82 回复 打赏 收藏 转发到动态 举报
AI 作业
写回复
用AI写文章
回复
切换为时间正序
请发表友善的回复…
发表回复

39

社区成员

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

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