
汇编&操作系统
Civet148
这个作者很懒,什么都没留下…
展开
-
编写实模式多任务操作系统模型之(4)
在《编写实模式多任务操作系统模型之一》中,我们了解了X86模式的功能特点,运行机制并对程序模块进行了分析。本文中,我们将继续分析程序模块的进程调度子程序和其他辅助程序,并完成这个程序的编译及安装运行。 进程调度子程序scheduler scheduler是系统的进程调度程序,是实现多任务关键的部分。它实质上是嵌入到系统时钟中断内来完成进程调度功能的。由于系统时钟以18.2次/秒的频率发生中断,这样原创 2005-12-10 02:43:00 · 1689 阅读 · 0 评论 -
编写实模式多任务操作系统模型之(1)
操作系统是计算机软件系统的重要组成部分,它起着管理计算机软硬件资源、控制计算机的正常运行及为各类用户提供使用接口等诸多功能,是其它各类应用软件赖以存在的基础。 由于操作系统软件多数以公司模式集体开发,并以成品软件的形式进行发售,使得用户只能局限于操作系统所提供的使用界面及系统功能调用上,对于系统底层的运行机制的理解只能局限于一些表面现象上,不能深入把握操作系统内部的运作机理,即使以源码形式提供的,原创 2005-12-10 02:40:00 · 2679 阅读 · 0 评论 -
编写实模式多任务操作系统模型之(3)
内核程序kernel.asm kernel.asm是系统的核心程序,主要由任务初始化子程序taskinit、进程调度子程序scheduler、键盘中断子程序keybd、16进制数显示子程序printhex及3个参与被调度程序task1~task3等几部分组成,其中进程调度子程序是多任务实现的关键。 内核的工作方式是在系统时钟中断的驱动下,依次使3个进程分别得到调度,使其分时占用CPU完成各自的工作原创 2005-12-10 02:42:00 · 2439 阅读 · 1 评论 -
编写实模式多任务操作系统模型之(2)
程序模块分析本操作系统模型由两个程序组成,一个为引导程序boot.asm,另一个为内核程序kernel.asm。其中引导程序位于软盘的引导扇区,主要功能为将Kernel从盘上读入内存,让其运行;Kernel则依次使3个进程占用CPU,完成各自的工作。 引导程序boot.asm 引导程序boot.asm位于引导软盘的0面0道1扇区,共计512个字节长度。该段程序在系统通电自检完成后,将由ROMBIO原创 2005-12-10 02:41:00 · 2062 阅读 · 1 评论 -
编写实模式多任务操作系统模型之(5)
5.切换到下一将被调度运行task2的进程堆栈空间。由于在进程堆栈保存有进程的断点信息,所以找到进程堆栈的顶位置便可转入到该进程运行。scheduler对于各进程的调度采用轮转式的方式,即按照task1 --> task2 --> task3的顺序,而后再从task1 开始依次循环,使各个进程得以运行。所以将current_task的值增1,再判断current_task是否超过最大进程数MAXT原创 2005-12-10 02:46:00 · 1979 阅读 · 0 评论 -
编写实模式多任务操作系统模型之(6)
自己动手增加一个新进程 如果用户想自己动手增加一个新的进程,如名为task4的进程,须在kernel.asm程序中做如下几处修改: 1.将MAXTASKS的值定义为4。 2.在程序中增加一个入口地址为task4的一段代码,功能上应为一段无限循环的、有动态信息输出的程序,如一个字符在屏幕的某行上反复滚动显示。程序不要用iret指令,否则会破坏调度程序为该进程在其堆栈内设定的调度信息。 3.在task原创 2005-12-10 02:47:00 · 2100 阅读 · 1 评论