Windows CE - Introduction- Architecture - Scheduling - Memory Space - Threads and Drivers- Interrupt Functions
Size: 333.06 KB
Language: en
Added: Nov 04, 2020
Slides: 16 pages
Slide Content
Windows CE Presented By Syed Ahamed GSM 4 th year – Electronics and communication engineering
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.
Windows CE – Architecture
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 F ile manager are save, search, open, delete, rename, and copy a file . OEM Adaption Layer (OAL) provides an interface to the hardware.
Windows CE – Architecture
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.
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.
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.
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.
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.
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.
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.
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).
Windows CE - interrupts
REFERENCE I Computers 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