【读书笔记】Windows CE嵌入式系统_【3】_进程、线程与调度


进程

1、进程是程序的一次动态执行实例。有创建、执行、结束完整的生命周期。

2、进程消耗的系统资源只有它所占用的内存。

3、winCE最多只支持32个进程同时运行。每个进程占用32MB的虚拟地址空间。也被称为一个s1ot 。

4、WinCE不支持环境变量,也不支持当前目录。--------------WinCE先查找” \Windows“目录,然后查找根目录。如果找不到就报错。

  ----解决方案1:通过GetModuleFileName()获取当前执行文件所在的目录。

        

 eg:

  5、进程的创建

应用程序可以使用CreateProcess()函数创建一个新的进程。


第一个参数 是可执行文件的路径和名称。如果路径未明确指定,则按照如下搜索:
  • Windows目录 (”\ Windows“)
  •        对象存储的根目录 (”\ “)
  •        OEM所制定的搜索目录 (  注册表的中
        ) 第二个参数 指定要传递给新进程的命令行参数,须以Unicode字符串形式传递。参数 fdwCreate 指定进程夹在后的初始状态。


参数pProcInfo指向一个PROCESS_INFORMATION结构体,PROCESS_INFORMATION结构体返回进程和主线程的句柄以及ID。不需要得到时,可以设置为空。


6、进程终止方法:

      最佳方法-------从WinMain()函数返回。

    ExitThread()让进程的主线程退出从而终止进程。

        ExitProcess()和TerminateProcess()函数用来使进程终止。


线程

1、线程是Windows CE中最小的可执行单元。一个进程可以拥有的线程数理论上是没有限制的。

 进程中所有的线程共享进程所占有的资源,包括地址空间、打开的文件等内核对象。

2、线程可以运行核心态或用户态。

操作系统线程和中断服务例程(ISR,Interrupt Service Routine)运行在核心态,

应用程序和设备驱动程序的中断服务线程(IST,Interrupt Service Thread)运行在用户态。

WinCE允许让所有的线程都运行在核心态下,从而增加系统的效率。

3、线程的创建



创建成功,返回新创建线程的句柄。否则,返回NULL。

可以把参数fdwCreate设置成CREATE_SUSPENDED状态来创建一个起始状态为挂起的线程。否则线程创建结束后会立即执行。

4、恢复线程。ResumeThread


5、结束线程。

ExitThread()和TerminateThread()函数使线程结束执行。


调度

1、WinCE是抢占式多任务操作系统。调度程序基于优先级的时间片算法对线程进行调度。



线程优先级通过GetThreadPriority()函数获取,SetThreadPriority()函数设置。

BOOL SetThreadPriority( 
  HANDLE hThread, 
  int nPriority
); 
其中, nPriority值为


默认时间片100毫秒。通过CeGetThreadQuantum()函数获得。

DWORD CeGetThreadQuantum(
  HANDLE hThread
); 
失败时,返回MAXDWORD 。


2、线程状态切换



  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值