MultiTasks函数功能介绍.doc

  1. 1、本文档共8页,可阅读全部内容。
  2. 2、有哪些信誉好的足球投注网站(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
MultiTasks函数功能介绍

MultiTasks函数功能介绍 /*1、void main( void ) */ /*函数功能描述:多线程系统的main()函数。主要完成以下工作:(1)执行InitDos()获得INDOS标志和 */ /* 严重错误标志地址;(2)执行InitTCB()对TCB数组进行初始化;(3)手工创建0号线程以 */ /* 执行main()的余下代码;(4)调用create()创建两个或以上的线程;*/ /* (5)调用setvect()为时钟中断设置新的中断处理程序new_int8();*/ /* (6)调用my_swtch()调度一个线程运行;*/ /* (7)当除0#线程外所有线程都已运行完成,则结束多线程系统的运行。*/ /* */ /* */ /*2、void block(unsigned *chan,struct TCB **qp) /* 参数说明:chan:将指向一个信号量,用来存放阻塞原因;*/ /* qp:该信号量所对应的阻塞队列的二级队首指针。 */ /*函数功能描述:在信号量的P操作中调用,阻塞当前线程,将其挂到信号量qp等待队列末尾;*/ 并选择一个新的就绪线程参加运行,完成线程切换 */ /* */ /*3、void cp(void) */ /*函数功能描述:函数cp由main函数创建的线程cp执行。对n进行n++操作,如果单缓冲区buf1为空, /* 则将n赋值给buf1,然后执行 buf1的资源信号量sb的V操作。该工作循环执行10次。 */ /*4、void iop(void) */ /*函数功能描述:函数iop由main函数创建的iop线程执行。如果单缓冲区buf1中有数据,则取出该数据并输出, */ /* 并执行信号量sa的V操作,以通知线程cp单缓冲区buf1已经为空。该工作循环执行10次。*/ /* */ /*补充说明:线程cp和线程iop是两个需要同步执行的线程,他们共享一个单缓冲区buf1, */ /* 其中cp负责向buf1中存放数据,iop负责从buf1中取出数据输出。 */ /* */ /*5、Int create(char *name,codeptr code,int stck) */ /* 参数说明:name:新创建的线程的外部标识符;code:新建线程要执行的代码的入口地址,此处用函 */ /* 数名作为传入地址;stck:新建线程的私有堆栈的长度。 */ /* 函数功能描述:在main()函数中调用,创建一个新线程,让其执行code开始的代码。具体要完成的工作 */ /* 如下:为新线程分配空白的TCB;为新线程分配私有堆栈空间;初始化私有堆栈空间 */ /* (必修严格按照调度线程运行时CPU的现场环境布置堆栈);初始化线程的TCB;插入就绪队列。 */ /* */ /*6、void destroy(int id) */ /*参数说明:id:将要被撤销的线程内部标识符。 */ /*函数功能描述:在Over()中被调用,撤销编号为id的线程,释放其私有栈, */ /* 并置其状态为FINISHED不再参与调度 */ /* */ /*7、Int DosBusy(void) */ /*函数功能描述:在new_int8()中被调用,根据Indos标志的地址和严重错误标志的地址,获得Indos标志的值, */ /* 判断

文档评论(0)

zw4044 + 关注
实名认证
内容提供者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档