📄 06.htm
字号:
<TD width=27 bgColor=#4786bc height=22><IMG height=24
src="06.files/left_yuan.gif" width=33></TD>
<TD bgColor=#cccc98 height=22>
<DIV align=center><A
onmouseover="MM_swapImage('Image171','','../images/developers/button1_bottom.gif',1)"
onmouseout=MM_swapImgRestore()
href="http://developer.ccidnet.com/pub/disp/Column?columnID=288"
target=_blank><IMG height=18 src="06.files/button1_top.gif" width=66
border=0 name=Image171></A></DIV></TD>
<TD bgColor=#cccc98 height=22><IMG height=13 src="06.files/line.gif"
width=1></TD>
<TD bgColor=#cccc98 height=22>
<DIV align=center><A
onmouseover="MM_swapImage('Image172','','../images/developers/button2_bottom.gif',1)"
onmouseout=MM_swapImgRestore()
href="http://developer.ccidnet.com/pub/disp/Column?columnID=290"
target=_blank><IMG height=18 src="06.files/button2_top.gif" width=66
border=0 name=Image172></A></DIV></TD>
<TD bgColor=#cccc98 height=22><IMG height=13 src="06.files/line.gif"
width=1></TD>
<TD bgColor=#cccc98 height=22>
<DIV align=center><A
onmouseover="MM_swapImage('Image173','','../images/developers/button3_bottom.gif',1)"
onmouseout=MM_swapImgRestore()
href="http://developer.ccidnet.com/pub/disp/Column?columnID=293"
target=_blank><IMG height=18 src="06.files/button3_top.gif" width=66
border=0 name=Image173></A></DIV></TD>
<TD bgColor=#cccc98 height=22><IMG height=13 src="06.files/line.gif"
width=1></TD>
<TD bgColor=#cccc98 height=22>
<DIV align=center><A
onmouseover="MM_swapImage('Image174','','../images/developers/button4_bottom.gif',1)"
onmouseout=MM_swapImgRestore()
href="http://developer.ccidnet.com/pub/disp/Column?columnID=296"
target=_blank><IMG height=18 src="06.files/button4_top.gif" width=66
border=0 name=Image174></A></DIV></TD>
<TD bgColor=#cccc98 height=22><IMG height=13 src="06.files/line.gif"
width=1></TD>
<TD bgColor=#cccc98 height=22>
<DIV align=center><IMG height=18 src="06.files/button5_bottom.gif"
width=50 border=0 name=Image165></DIV></TD>
<TD bgColor=#cccc98 height=22><IMG height=13 src="06.files/line.gif"
width=1></TD>
<TD bgColor=#cccc98 height=22>
<DIV align=center><A
onmouseover="MM_swapImage('Image176','','../images/developers/button6_bottom.gif',1)"
onmouseout=MM_swapImgRestore()
href="http://developer.ccidnet.com/pub/disp/Column?columnID=315"
target=_blank><IMG height=18 src="06.files/button6_top.gif" width=50
border=0 name=Image176></A></DIV></TD>
<TD bgColor=#cccc98 height=22><IMG height=13 src="06.files/line.gif"
width=1></TD>
<TD bgColor=#cccc98 height=22>
<DIV align=center><A
onmouseover="MM_swapImage('Image177','','../images/developers/button7_bottom.gif',1)"
onmouseout=MM_swapImgRestore()
href="http://bbs.ccidnet.com/forumdisplay.php?forumid=13"
target=_blank><IMG height=18 src="06.files/button7_top.gif" width=80
border=0 name=Image177></A></DIV></TD>
<TD width=17 bgColor=#ffffff height=22><IMG height=24
src="06.files/right_yuan.gif" width=18></TD></TR></TBODY></TABLE><!-- 包含菜单结束-->
<TABLE cellSpacing=0 cellPadding=0 width=580 align=center border=0>
<TBODY>
<TR>
<TD class=content vAlign=top colSpan=2 height=20><IMG height=5
src="" width=5><BR><!-- 包含导航开始--><!-- 模版文件头 结束 -->
<TABLE class=content01 cellSpacing=1 width=414 border=0>
<TBODY>
<TR>
<TD width="100%"><IMG height=10 src="06.files/triangle.gif"
width=11> 当前页面位置:<A class=link
href="http://www.ccidnet.com/">主页</A> :<A class=link
href="http://developer.ccidnet.com/pub/disp/Column?columnID=287&pageNO=1">开发者</A>:<A
class=link
href="http://developer.ccidnet.com/pub/disp/Column?columnID=301&pageNO=1">Linux</A>:<A
class=link
href="http://developer.ccidnet.com/pub/disp/Column?columnID=303&pageNO=1"><B>技术开发</B></A><B>:文章</B>
</TD></TR></TBODY></TABLE><!-- 包含导航结束--></TD>
<TR>
<TD colSpan=2 height=10></TD></TR>
<TR bgColor=#7e99a4>
<TD colSpan=2 height=2></TD></TR>
<TR>
<TD class=content vAlign=top colSpan=2 height=15>
<DIV align=right><!-- 包含发送email开始-->
<FORM name=sendmail
action=http://club.ccidnet.com/send_to_friend.php3 method=post
target=_blank><INPUT type=hidden value=编写实模式多任务操作系统模型之二 name=title>
<INPUT type=hidden value="高克强 王兴泰" name=author> <INPUT type=hidden
value="2002.12.31 11:20:57" name=publish_time> <INPUT type=hidden
value=Article?columnID=303&articleID=35453&pageNO=1
name=link> </FORM><IMG height=5 src="" width=5><BR><A
class=content01 href="javascript:self.print()"><IMG title=打印
height=18 src="06.files/printer.gif" width=24 border=0>打印</A> <A
class=content01 href="javascript:document.sendmail.submit()"><IMG
title=发给朋友 height=18 src="06.files/comment.gif" width=24
border=0>发给朋友</A> <A class=content01
href="http://club.ccidnet.com/remark.php3?channel=303&title=编写实模式多任务操作系统模型之二"><IMG
title=发表评论 height=18 src="06.files/send.gif" width=24
border=0>发表评论</A> <!-- 包含发送email结束--></DIV></TD></TR><!-- 包含文章开始--><!-- 文章显示 -->
<TR>
<TD class=content vAlign=top width=19></TD>
<TD class=content vAlign=top width=561><IMG height=5 src=""
width=5><BR><SPAN
class=p16><B>编写实模式多任务操作系统模型之二(3)</B></SPAN><BR>作者:高克强 王兴泰
本文选自:开放系统世界——赛迪网 2002年12月31日 </TD></TR>
<TR>
<TD class=content vAlign=top width=19></TD>
<TD class=content vAlign=top width=561 height=144><BR><SPAN
class=p11b><IFRAME align=right marginWidth=0 marginHeight=0
src="C:\Documents and Settings\Administrator\My Documents\freeos\temp\os\06.files\ad(3).htm"
frameBorder=0 noResize width=360 scrolling=no
height=300></IFRAME><B>自己动手增加一个新进程</B>
<BR><BR>如果用户想自己动手增加一个新的进程,如名为task4的进程,须在kernel.asm程序中做如下几处修改:
<BR><BR>1.将MAXTASKS的值定义为4。
<BR><BR>2.在程序中增加一个入口地址为task4的一段代码,功能上应为一段无限循环的、有动态信息输出的程序,如一个字符在屏幕的某行上反复滚动显示。程序不要用iret指令,否则会破坏调度程序为该进程在其堆栈内设定的调度信息。
<BR><BR>3.在task3初始化之后,调用taskinit过程,为增加的新进程初始化,此时应将task4的入口偏移量送入ax,
即mov ax, task4。 <BR><BR>4.将修改后的程序编译运行。 <BR><BR>
<CENTER><FONT
color=#000099><STRONG>编译及安装运行</STRONG></FONT></CENTER><BR><BR>这两个程序在Linux
下采用nasm进行编译,编译为纯二进制文件,即内存映像程序,编译方法如下: <BR><BR>1.编译boot.asm 为boot.o
<BR><BR><CCID_NOBR>
<TABLE cellSpacing=0 borderColorDark=#ffffff cellPadding=2 width=550
align=center borderColorLight=black border=1>
<TBODY>
<TR>
<TD class=code bgColor=#e6e6e6><PRE><CCID_CODE># nasm boot.asm -o boot.o -f bin</CCID_CODE></PRE></TD></TR></TBODY></TABLE></CCID_NOBR><BR><BR>2.编译kernel.asm
为kernel.o <BR><BR><CCID_NOBR>
<TABLE cellSpacing=0 borderColorDark=#ffffff cellPadding=2 width=550
align=center borderColorLight=black border=1>
<TBODY>
<TR>
<TD class=code bgColor=#e6e6e6><PRE><CCID_CODE># nasm kernel.asm -o kernel.o -f bin</CCID_CODE></PRE></TD></TR></TBODY></TABLE></CCID_NOBR><BR><BR>3.将boot.o写入软盘引导扇区
<BR><BR><CCID_NOBR>
<TABLE cellSpacing=0 borderColorDark=#ffffff cellPadding=2 width=550
align=center borderColorLight=black border=1>
<TBODY>
<TR>
<TD class=code bgColor=#e6e6e6><PRE><CCID_CODE># dd if=./boot.o of=/dev/fd0 bs=512 count=1</CCID_CODE></PRE></TD></TR></TBODY></TABLE></CCID_NOBR><BR><BR>4.将kernel.o写入软盘0头0道2扇区
<BR><BR><CCID_NOBR>
<TABLE cellSpacing=0 borderColorDark=#ffffff cellPadding=2 width=550
align=center borderColorLight=black border=1>
<TBODY>
<TR>
<TD class=code bgColor=#e6e6e6><PRE><CCID_CODE># dd if=./kernel.o of=/dev/fd0 bs=512 count=2 seek=1</CCID_CODE></PRE></TD></TR></TBODY></TABLE></CCID_NOBR><BR><BR>5.用该软盘引导机器
<BR><BR>屏幕上将依次显示如下信息: <BR><BR><CCID_NOBR>
<TABLE cellSpacing=0 borderColorDark=#ffffff cellPadding=2 width=550
align=center borderColorLight=black border=1>
<TBODY>
<TR>
<TD class=code bgColor=#e6e6e6><PRE><CCID_CODE>System bootup ...
Loading kernel ...</CCID_CODE></PRE></TD></TR></TBODY></TABLE></CCID_NOBR><BR><BR>清屏后,在屏幕左侧有3个动态的计数器在不断显示,它们分别由kernel所调度的3个进程产生。若敲击键盘则屏幕上将显示键盘键入的字符。
<BR><BR>此程序在以Intel Celeron 433
为CPU的PC机调试成功。在调试时需要在DOS环境下检查一下机器的定时器中断的入口地址是否为0xF000:0xFEA5,若不是,则需要修改kernel.asm中的scheduler内的call
0xF000:0xFEA5这条调用指令,使调用的入口地址为机器的实际定时器中断的入口地址。
<BR><BR>这个实验性的操作系统模型功能较为简单,但已经具备了操作系统进程切换的完整功能,具备了多进程并行运行的特点,感兴趣的读者可以在此基础上进一步开发,使其功能进一步完善。
<BR><BR>(责任编辑 <CCID_NOBR><A
href="mailto:huangxf@staff.ccidnet.com">Sunny</A></CCID_NOBR>)
</SPAN>
<P align=center> <BR><SPAN class=content01><A class=content01
href="http://developer.ccidnet.com/pub/disp/Article?columnID=303&articleID=35453&pageNO=2"><<上一页</A></SPAN>
<A class=content01
href="http://developer.ccidnet.com/pub/disp/Article?columnID=303&articleID=35453&pageNO=1">1</A>
<A class=content01
href="http://developer.ccidnet.com/pub/disp/Article?columnID=303&articleID=35453&pageNO=2">2</A>
<FONT color=#ff0000>3</FONT> </P></TD></TR><!-- 包含文章结束--></TBODY></TABLE>
<TABLE cellSpacing=0 cellPadding=0 width=580 align=center border=0>
<TBODY>
<TR>
<TD><A class=content
href="http://market.ccidnet.com/pub/disp/Column?columnID=380"><FONT
color=#0000ff>“中国IT市场情报中心”会员注册优惠月</FONT></A></TD></TR></TBODY></TABLE><!-- 包含相关文章开始-->
<TABLE
style="BORDER-RIGHT: #e2e3e4 1px solid; BORDER-TOP: #e2e3e4 1px solid; BORDER-LEFT: #e2e3e4 1px solid; BORDER-BOTTOM: #e2e3e4 1px solid"
cellSpacing=0 cellPadding=0 width=580 align=center border=0>
<TBODY>
<TR>
<TD class=content bgColor=#e2e3e4 height=21>相关文章</TD></TR>
<TR>
<TD bgColor=#ffffff>
<TABLE class=Name02 cellSpacing=2 cellPadding=2 width="100%"
border=0>
<TBODY>
<TR>
<TD height=23><IMG height=7 src="06.files/a_nav.gif"
width=7><A class=Name02
href="http://developer.ccidnet.com/pub/disp/Article?columnID=302&articleID=35451&pageNO=1">
编写实模式多任务操作系统模型之一</A> <SPAN
class=content01>(2002.12.31)</SPAN></TD></TR>
<TR>
<TD height=23><IMG height=7 src="06.files/a_nav.gif"
width=7><A class=Name02
href="http://developer.ccidnet.com/pub/disp/Article?columnID=743&articleID=35411&pageNO=1">
推进Linux发展 服务信息化</A> <SPAN
class=content01>(2002.12.31)</SPAN></TD></TR>
<TR>
<TD height=23><IMG height=7 src="06.files/a_nav.gif"
width=7><A class=Name02
href="http://developer.ccidnet.com/pub/disp/Article?columnID=308&articleID=35029&pageNO=1">
Linux时代来临,您的企业准备好了吗?</A> <SPAN
class=content01>(2002.12.26)</SPAN></TD></TR>
<TR>
<TD height=23><IMG height=7 src="06.files/a_nav.gif"
width=7><A class=Name02
href="http://developer.ccidnet.com/pub/disp/Article?columnID=302&articleID=35019&pageNO=1">
Linux、开放源码软件与公共政策</A> <SPAN
class=content01>(2002.12.26)</SPAN></TD></TR>
<TR>
<TD height=23><IMG height=7 src="06.files/a_nav.gif"
width=7><A class=Name02
href="http://developer.ccidnet.com/pub/disp/Article?columnID=382&articleID=34520&pageNO=1">
Linux重点行业应用市场份额统计</A> <SPAN
class=content01>(2002.12.23)</SPAN></TD></TR></TBODY></TABLE></TD></TR></TBODY></TABLE><!-- 包含相关文章结束--><BR><!-- 包含信息化大赛开始 --><!-- 包含信息化大赛结束 -->
<TABLE cellSpacing=0 cellPadding=0 width=580 align=center border=0>
<TBODY>
<TR>
<TD> </TD></TR></TBODY></TABLE><!-- 包含相关评论开始-->
<TABLE
style="BORDER-RIGHT: #e2e3e4 1px solid; BORDER-TOP: #e2e3e4 1px solid; BORDER-LEFT: #e2e3e4 1px solid; BORDER-BOTTOM: #e2e3e4 1px solid"
cellSpacing=0 cellPadding=0 width=580 align=center border=0>
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -