张冬泉老师的《wince 实用开发技术》读书笔记。
1、系统架构
CE被设计为一种分层结构,从底层向上分别为硬件层、OEM层、操作系统层和应用层。
OEM层由如下模块组成:OAL(OEM适配层)、启动加载程序(Bootloader)、配置文件和驱动程序。
OEM层的代码构成中主要由CSP和BSP代码组成。CSP支持不同的微处理器体系结构,而BSP支持不同的微处理器扩展和外设,它由Bootloader、OAL和驱动程序组成。
2、文件系统
CE的文件系统和数据存储都指的是对象存储,对象存储是CE的默认文件系统,它相当于CE设备上的硬盘。
对象存储是由共享一个内存堆的文件系统、数据库和注册表组成的。
CE下没有盘符的概念,每个存储设备或存储设备分区都是根(/)下的一个目录。
对象存储大小限制为256M的RAM,对象存储具有压缩属性,所以实际能够包含的数据量可以达到512M。
对象存储大小是可调整的。
CE提供三种类型的文件系统:
基于ROM的文件系统
基于RAM的文件系统
FAT文件系统
另外开发者也可以创建和注册属性文件系统。
CE的注册表是一个系统数据库,用来存储关于应用程序、驱动程序、用户配置及其它配置的数据。
CE文件系统和所有与文件相关的操作都是通过Filesys.exe进程进行管理的,通常将它称为文件管理器。
文件管理器实现了对象存储和存储管理,并将所有文件系统统一到一个根“/”下面的单个系统中。
3、内存管理
CE是一个保护模式的32位操作系统,它的程序访问只能使用虚拟内存。
CE中有两种类型的地址:物理地址和映射的虚拟地址。
用户地址空间被分为64个32M的slot,所能进程分享这个地址空间。
在CE内核中,slot是虚拟地址维护的基本单元。在从slot0到slot63的64个slot中,前面的33个用于进程,剩下的slot用于对象存储、内存映射和资源映射。Slot0是一个特殊的slot,它对应当前正在运行的进程。Slot1至slot33每一个都代表一个当前正在运行的进程。
4、系统调度
CE支持两种类型的模块:应用程序(以.exe为扩展名)和动态链接库(以.dll为扩展名)。
当CE加载一个应用程序时,它就产生了一个进程,一个进程就是一个应用程序的实例。
每个进程都有自己受保护的32M地址空间。
每个进程至少有一个线程,但也可能有多个线程,线程是执行在一个进程之内的代码。
多个进程使用户可以同时工作于多个应用程序,而多个线程可以使一个应用程序同时完成多个任务。
CE是一个抢占式实时多任务的操作系统。
CE下的模块由EXE文件和DLL文件组成。EXE是可以独立加载的模块;DLL不能独立加载,它必须由一个正在运行的EXE模块或另一个DLL模块加载。
DLL有两种加载方式:隐式加载方式和显式加载方式。
CE是一个多进程操作系统,并支持最多32个进程。
CE启动时会加载4个进程:NK.exe、Filesys.exe、GWES和Device.exe。在实际使用时还会加载几个别的进程,如shell进程等,所以用户可加载的实际进程数约为24个左右。若不够用可以考虑使用多线程代替使用多进程。
一个进程可以创建若干进程,这是没有上限的,但它也受设备实际可用RAM及线程栈可用进程地址空间的约束。
启动一个进程的方式:
第一种:系统启动时由系统自动加载。
第二种:系统启动后通过操作键盘或鼠标可视地去进行加载。
第三种:是隐式加载方式,即通过一个正在运行的进程加载启动另一个进程。
一个进程就是一个可执行单元,当操作系统创建一个进程时,同时也会创建一个线程,使用线程是为了尽可能有效地利用CPU时间。
线程有5种状态,分别为:运行、挂起、休眠、阻塞和终止。
CE支持0~255共256个优先级,其中0优先级最高,255优先级最低。
每个线程都有自己的优先级。
CE系统是根据线程的优先级和线程量来调度每一个线程的。
线程量是分配给线程运行一次占用的CPU时间片。
为了设置和获得一个线程的优先级,可以使用CeSetThreadPriority函数和CeGetThreadPriority函数。
当创建一个线程而没有设置优先级时,其优先级默认为251。
CE支持线程优先级倒置。
线程量是线程在一个CPU时间片的持续时间。
每个CE系统都有一个默认的线程量,通常是100ms,但是OEM可以改这个默认值。通过在OAL的OemInit函数中设置dwDefaultThreadQuantum全局变量的值来达到。默认线程量必须大于0。
每个线程都可以通过调用CeSetThreadQuantum函数设置自己的线程量。
纤程是另一个可以在应用程序中使用的多线程对象。
为了协调各个线程的活动CE中引入了同步对象,它包括:关键区、信号量、互斥体、事件、互锁函数及点对点消息队列。
原文链接:http://blog.youkuaiyun.com/a443453087/article/details/4832723