2. WINDOWS CE - INTRODUCTION
• Windows Embedded Compact is an operating system subfamily developed
by Microsoft as part of its Windows Embedded family.
• Windows CE supports devices such as Handheld PC, Pocket PC, Auto PC, Windows
Mobile, Windows Phone 7 and more.
• Windows CE is designed to run on multiple hardware platforms and instruction set
architectures.
• A large part of Windows CE is given as source code to vendors so that it can modified
depending on their hardware.
• We are focusing on Win CE 6.0.
4. WINDOWS CE – ARCHITECTURE
• Applications layer run under the shell and its user interface.
• Win32 APIs manage access to the operating system.
• TCP/IP is a suite of communication protocols used to interconnect network devices on the
internet.
• Device Manager allows users to view and control the hardware attached to the computer.
GWES is the interface between the user, your application, and the operating system (OS).
• Functions of File manager are save, search, open, delete, rename, and copy a file.
• OEM Adaption Layer (OAL) provides an interface to the hardware.
6. WINDOWS CE – ARCHITECTURE
• OAL itself provides services such as a real-time clock, power management,
interrupts, and a debugging interface.
• A Board Support Package (BSP) for a particular hardware platform includes the
OAL and drivers.
7. WINDOWS CE - MEMORY SPACE
• Windows CE provides support for virtual memory with a flat 32-bit virtual
address space.
• A virtual address can be statically mapped into main memory for key kernel-
mode code; an address can also be dynamically mapped, which is used for all
user-mode and some kernel-mode code.
• Flash as well as magnetic disk can be used as a backing store.
8. WINDOWS CE - MEMORY SPACE
• The figure below shows the division of the address space into kernel and user with 2
GB for the operating system and 2 GB for the user.
• The top 1 GB is reserved for
system elements such as
Dynamic Link Library (DLLs),
memory mapped files, and
shared system heap. The bottom
1 GB holds user elements
such as code, data, stack, and
heap.
9. WINDOWS CE - THREADS AND DRIVERS
• WinCE supports two kernel-level units of execution: the thread and the driver.
• Threads are defined by executable files while drivers are defined by dynamically-
linked libraries (DLLs).
• Threads in same process run the same execution environment.: threads in
different processes run in different execution environments.
• Threads may be launched by a process or a device driver.
• A driver may be loaded into the operating system or a process.
10. WINDOWS CE - SCHEDULING
• Each thread is assigned an integer priority.
• Lower-valued priorities signify higher priority: 0 is the highest priority and 255 is the lowest
possible priority.
• Priorities 0 through 247 are used for various categories of real-time threads while 248 to 255
are used for non-real-time execution.
• Execution is divided into time quanta.
• If the running process does not go into the waiting state by the end of its time quantum, it is
suspended and put back into the queue.
• Execution of a thread can also be blocked by a higher-priority thread.
• Within each priority level, round-robin scheduling is used.
11. WINDOWS CE - SCHEDULING
• WinCE supports priority inheritance.
• If priorities become inverted, the kernel temporarily boosts the priority of the
lower-priority thread to ensure that it can complete and release its resources.
• However, the kernel will apply priority inheritance to only one level.
• If a thread that suffers from priority inversion in turn causes priority inversion for
another thread, the kernel will not apply priority inheritance to solve the nested
priority inversion.
12. WINDOWS CE - INTERRUPTS
• Interrupts have priorities set in hardware.
• These priorities supersede process priorities of the processes.
• We want to spend as little time as possible in the hardware priority space to avoid
interfering with the scheduler.
13. WINDOWS CE - INTERRUPTS
Interrupt handling is divided among three entities:
• The Interrupt Service Handler (ISH) is a kernel service that provides the
first response to the interrupt.
• Interrupt Service Routine (ISR) is dispatched by hardware.
• Interrupt Service Thread (IST) is a process.
• Spend as little time in the ISR (hardware priorities), do most of the work in
the IST (scheduler priorities).
15. REFERENCE
• IComputers as Components Principles of Embedded Computing System Design
3rd Edition – PAGE : 357-361.
• II. Windows Embedded Compact-
https://en.wikipedia.org/wiki/Windows_Embedded_Compact.
• III. Bruce Eitman - Windows Embedded Musings (CE/Compact/Standard).
• IV. J.Sudarhan Reddy - Chapter 4, part 2: Processes and Operating Systems High
Performance Embedded Computing Wayne Wolf 1/25/2015