1.实验要求
完成一个简单的时间片轮转躲到程序内核代码
2.实验过程
进入实验楼,打开shell,输入一下代码:
实验结果:
3.mykernel时间片轮转代码分析
mypcb.h头文件,用来定义进程控制块,也就是进程结构体的定义。
对mymain.c进行修改,这里是mykernel内核代码的入口,负责初始化内核的各个组成部分。在linux北河源代码中,实际的内核入口是init/main.c中的start_kernel(void)函数。
对myinterrupt.c进行修改,主要是增加了进程切换的代码my_schedule(void)函数,在Linux内核源代码中对应的是schedule(void)函数。
时间中断:
进程调度:
总结:本次实验最终的是进程的切换,进程在执行过程中,当时间片用完需要进行进程切换时,需要先保存当前的进程执行的上下文环境,下次进程被调度时,需要恢复进程的上下文环境。这样实现多道程序的并行执行。