《一个操作系统的实现》总结2——中断处理

本文主要探讨了操作系统的中断处理,包括时钟中断、键盘中断和硬盘中断。时钟中断涉及调度函数schedule();键盘中断处理涉及读取按键并存入缓冲区;硬盘中断则通过发送中断消息给task_hd来告知数据准备就绪。
摘要由CSDN通过智能技术生成

  二、中断处理程序

 1、时钟中断

kernel/clock.c:

PUBLIC void clock_handler(int irq)
{
	if (++ticks >= MAX_TICKS)
		ticks = 0;

	if (p_proc_ready->ticks)
		p_proc_ready->ticks--;

	if (key_pressed)
		inform_int(TASK_TTY);

	if (k_reenter != 0) {
		return;
	}

	if (p_proc_ready->ticks > 0) {
		return;
	}

	schedule();

}

调度函数schedule()在kernel/proc.c:

PUBLIC void schedule()
{
	struct proc*	p;
	int		greatest_ticks = 0;
/***每个进程都有一个ticks数&#
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值