Symbian操作系统有一个轻量级的、32位的、抢占式多线程的实时内核。
Symbian操作系统微内核被个性化地构建在一个实时的超微内核上,这个超微内核主要负责诸如快速同步、定时器、初始中断调度以及线程调度等基本任务。 这个超微内核是现代Symbian操作系统内核架构的核心(EKA2),同时也是一个很小的实时操作系统,它是Symbian操作系统的基础,为系统提供 了低延时的中断和线程调度。
在EKA2中,超微内核不进行动态内存管理,内存管理由Symbian操作系统微内核完成。
CPU将执行一些仅针对内核的优先级指令。内核运行其他程序(即所谓的用户态程序)时是没有特权的,因此这些程序只能通过内核API来访问系统资源。
内核线程:
- 空线程:第一个被调度的线程,它具有最低优先级。当没有其他线程在执行的时候,它负责将CPU置于低功率模式下,还负责不时地整理物理RAM碎片。
- 管理者线程:主要负责在进程和线程终结后异步地清除资源。这个线程也负责完成属性的注册。
- DFC 0 线程:大部分驱动的延迟函数调用(Defered Function Calls)执行的地方。
- DFC 1 线程:默认具有最高优先级,负责运行超微内核定时器的延迟函数调用。
- 定时器线程:默认用来管理Symbian操作系统微内核的定时器队列。
用户内存及内存管理:
- 当内核在线程创建时通过内存模型分配栈,它不会为用户端线程创建堆。
- 默认情况下,一个进程的主线程创建时会生成堆;但是,进程具有一些接口,可以改写通常的本地堆的创建机制和堆分配的函数。
- 对于不在ROM运行的每一个进程、堆、栈、静态数据,和任一程序指令,都要放置在RAM中。
- 为了实现对实时系统编程必要的明确的行为,能够映射到每一个进程的虚拟内存区域都存在一个最大的数目(默认为16)。