您的位置:首页 > 其它

(作业2)mykernel实验指导(操作系统是如何工作的)

2015-03-15 22:41 316 查看
作业题目:

详细分析该精简内核的源代码并给出实验截图,撰写一篇署名博客,并在博客文章中注明“真实姓名(与最后申请证书的姓名务必一致) + 原创作品转载请注明出处 + 《Linux内核分析》MOOC课程http://mooc.study.163.com/course/USTC-1000029000 ”,博客内容的具体要求如下:

题目自拟,内容围绕操作系统是如何工作的进行;

博客中需要使用实验截图

博客内容中需要仔细分析进程的启动和进程的切换机制

总结部分需要阐明自己对“操作系统是如何工作的”理解。

作答区:

1. 代码下载地址(由孟老师提供):https://github.com/mengning/mykernel。这里不粘出代码。如果想在Windows下查看,可以点击上面的链接,具体的文件参照下图:



注:mypcb.h是一些结构体、常量的定义和函数的声明,简单看看即可。

2. 按照要求,输入如下命令:

cd LinuxKernel/linux-3.9.4
qemu -kernel arch/x86/boot/bzImage
cd mykernel




输入vi mymain.c,可以看到有如下两个函数:

void __init my_start_kernel(void); // 初始化进程0,并用for循环创建更多的进程(1~n),汇编代码启动进程0
void my_process(void); // 每10000000次进行一次判断:如果需要调度,则调用my_schedule()。并输出相应提示语句


输入vi mymain.c,可以看到有如下两个函数:

void my_timer_handler(void); // 周期性执行该时钟中断处理程序,设置时间片大小,时间片用完时设置一下调度标志
void my_schedule(void); // if两个正在运行的进程之间做进程上下文切换,else切换到一个新进程的方法


3. 执行程序截图



4. 老实说这篇博文比较水,有点应付作业的意思,没有自己的见解因为没太听懂。博主需要时间消化、理解一下。因为作业上交的期限要到了,就先写到这里。好歹证明咱学习过、思考过。如果有好的文章不妨推荐给我一下。谢谢大家。

作者:李春霖

原创作品转载请注明出处

《Linux内核分析》MOOC课程地址:http://mooc.study.163.com/course/USTC-1000029000
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: