三、RTX子系统详述.ppt

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

三、RTX子系统详述 进程与线程管理 一个RTX进程由地址空间、对象句柄、以及一个或多个可执行镜像路径组成。线程则执行诸如响应中断、处理同步事件之类的操作。 RTX进程的第一个可执行镜像实例称作本进程的主线程。 RTX下的进程和线程操作函数类似于Win32 API RTX与Win32各自的可执行镜像只能访问各自环境下的可执行镜像,子系统间进行通讯必须使用IPC通讯机制 进程创建 在VC编程环境中手工执行 通过命令行方式执行RTSS可执行文件 在Win32应用程序中开启RTSS进程 进程执行 将可执行文件以系统驱动方式进行加载 从不分页内存池中分配进程堆栈,并创建主线程 任何进程的初始线程拥有8KB大小的初始栈 进程终止 最后一个线程退出 某个线程实例调用ExitProcess()函数 进程被RTSS任务管理器关闭 使用CreateThread()函数创建线程 一个就绪的RTSS线程在调度时优先于所有的Windows线程!RTSS线程将持续运行直到其放弃CPU资源,当发生下列情况时,RTSS线程将放弃CPU资源: 等待同步事件体 降低本身的优先级或者提升其他线程的优先级 挂起线程本身 被高优先级事件中断 时间片用完 调用Sleep()函数时使用参数0,not 0,own CPU resourse Sleep()函数详解 VOID Sleep( DWORD dwMilliseconds // sleep time in milliseconds ); 参数dwMilliseconds:以毫秒为单位,确定挂起的时间。如果值为0,当前线程会放弃时间片的剩余时间,转给其他具有相同优先级的线程运行。如果没有相同优先级的线程就绪,或者没有设置时间片,Sleep()函数将返回,线程继续执行;如果值为INFINITE,线程将无限延迟,等同于Suspend()函数。 RTX系统优先级设置 Windows优先级 系统优先级由进程优先级和线程优先级组成 进程优先级与线程优先级共同确定系统任务的执行级别 RTX优先级 在RTX下,优先级的基本单位为线程 以0—127由低到高顺次排序的128个优先级决定系统任务的执行级别 Windows进程优先级(Priority Class ) IDLE_PRIORITY_CLASS NORMAL_PRIORITY_CLASS HIGH_PRIORITY_CLASS REALTIME_PRIORITY_CLASS Windows线程优先级(Priority Level ) THREAD_PRIORITY_IDLE THREAD_PRIORITY_LOWEST THREAD_PRIORITY_BELOW_NORMAL THREAD_PRIORITY_NORMAL THREAD_PRIORITY_ABOVE_NORMAL THREAD_PRIORITY_HIGHEST THREAD_PRIORITY_TIME_CRITICAL Windows基础优先级排布表(参见相关文件) RTX不存在优先级类的概念 所有RTX进程中的线程实例使用线程优先级作为竞争CPU资源的依据 任何线程实例都必须被分配0—127的相应优先级 同级线程之间按照“先入先出”的原则依照时间片调度算法运行 RTSS线程调度器维护RTSS线程的调度算法,并避免死锁以及优先级倒置的产生。 死锁现象及相应措施(一) 错误的PV操作 semaphore sCom, sMutex; T1 ( s ) { //PV操作 P ( sMutex ) ; P( sCom ); …… //critical section V ( sMutex ); V ( sCom ); } T2 ( s ) { //PV操作 P ( sMutex ) ; P(sCom ); …… //critical section V ( sMutex ); V ( sCom); } 死锁现象及相应措施(二) 正确的PV操作 semaphore sCom, sMutex; T1 ( s ) { //PV操作 P( sCom ); //先作同步操作 P ( sMutex ) ;//再作互斥操作 …… //critical section V ( sMutex ); V ( sCom ); } T2 ( s ) { //PV操作 P(sCom ); P ( sMutex ) ; …… //critical section V ( sMutex ); V ( sCom); }

文档评论(0)

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

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

1亿VIP精品文档

相关文档