一个简单的时间片轮转多道程序分析

本文通过一个简单的mykernel程序,介绍了如何启动Linux内核3.9.4版本,并展示了程序内部实现的时间中断处理和时间片轮转机制。通过源代码mymain.c和myinterrupt.c,揭示了内核启动过程及多任务处理的基本原理。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

张磊+原创作品转载请注明出处 + 《Linux内核分析》MOOC课程http://mooc.study.163.com/course/USTC-1000029000 ”

使用实验楼的虚拟机打开shell,输入下面的两条命令,即可以启动mykernel

l cd LinuxKernel/linux-3.9.4

l qemu -kernel arch/x86/boot/bzImage


下图为运行截图:


这个程序很简单,程序在两个函数之间按时间进行切换。函数中没有其它功能,只是打印输出,能看到函数已经运行。

然后关闭qemu窗口,cd mykernel ,我们可以找到输出这些字符串的源代码mymain.cmyinterrupt.c

mymain.c 文件:


myinterrupt.c 文件:


实验结论:

1.mykernel 程序启动之后,会调用 my_start_kernel 函数。

2.CPU 会周期性的产生时间中断来运行 my_time_handler 函数。

3.这是一个最简单的程序内核,内此可以看出计算机所谓的多任务处理也只是周期性的产生中断来轮流招待不同的程序,CPU 会保存中断产生的现场,以便继续下一次时间片轮转。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值