学号272原创作品

转载请注明出处 https://github.com/mengning/linuxkernel/

基于mykernel的简单时间片轮转多道程序内核代码分析

一,实验过程

  • 1,实验准备
  • 2,终端操作
    • 根据mykernel指导,打开终端,进行如下命令的操作

cd LinuxKernel/linux-3.9.4

rm -rf mykernel

patch -p1 < ../mykernel_for_linux3.9.4sc.patch

结果如下:

01patch

make allnoconfig

make

qemu -kernel arch/x86/boot/bzImage

过程及结果:

qemu

3qemu实验结果

分析:上图表明操作系统启动完成,并一直运行输出my_timer_handler here,因此分析源代码。

gitClone复制孟老师提供的github文件夹

结果如下:

将Clone下来的文件进行替换,然后重新编译,运行

报错结果:

分析出错代码:编译器不识别#符号,应该改成(unsigned long)1024*2

修改代码后,编译,运行

结果

结果分析:显示了进程1,进程3和进程0之间的来回切换。

二,实验心得

  • 熟悉存储程序计算机
  • 加深函数调用堆栈,高级语言得以运行的基础
  • 了解中断多道程序操作系统的进程切换条件