SlideShare a Scribd company logo
1 of 25
Windows CE
by:
K.Balamurugan
M.Tech-CSE-1st year
Introduction
Entertainment devices and CAR
What can CE do
– Industrial Automation
– Set-Top Boxes
– Medical Devices and Systems
– ATMs
– Projectors and Large Screen Displays
– VoIP Devices
– First edition released in 1996
– Windows CE .NET 4.x is widely used
Introduction to BSP
• Windows CE can run on different hardware
platforms.
• How can we do that?
• The answer is BSP !
• Board Support Package is the software that
implements and supports the OEM adaptation layer
(OAL) and device drivers for a standard
development board (SDB).
Compare with Desktop Version
– Windows XP : 1.5GB
No inherent real time
support
256 levels of thread priority
Minimal : 200KB Windows XP : 1.5GB
 Lager and lager…
 Can NOT be
customized
Quick and easy to customize OS for a
particular system
More than 200 optional component
 Compact Version of Win32 API, MFC..
 UNICODE only
 ASCII / UNICODE
 Commercial software, source code is
MS 1st level secret.
 70% of Windows CE 5.0 source code is
shared.
Memory Management
– Windows CE uses ROM (read only memory), RAM
(random access memory)
• The ROM in a Windows CE system is like a small read-
only hard disk
• The RAM in a Windows CE system is divided into two
areas: program memory and object store
– Windows CE is a 32-bit operating system, so it
supports 4GB virtual address space
Memory Management…..
– Upper 2GB is kernel space, used by the system for
its own data
– Lower 2GB is user space
• 0x42000000-0x7FFFFFFF memory is used for large
memory allocations, such as memory- mapped files
• 0x0-0x41FFFFFF memory is divided into 33 slots, each
of which is 32MB
Memory Management…..
Memory Management…..
Memory Management…..
Processes and Threads Management
– Windows CE limits 32 processes being run at any one time
– Every process at least has a primary thread associated with
it upon starting (even if it never explicitly created one)
– A process can created any number of additional threads
(only limited by available memory)
– Each thread belongs to a particular process (and shares the
same memory space)
– SetProcPermissions API will give the current thread access
to any process
– Each thread has an ID, a private stack and a set of registers
Processes and Threads
Management…..
– When a process is loaded
• Assigned to next available slot
• DLLs loaded into the slot
• Followed by the stack and default process heap
• After this, then executed
– When a process’ thread is scheduled
• Copied from its slot into slot 0
– This is mapped back to the original slot allocated
to the process if the process becomes inactive
Processes and Threads
Management…..
– Thread
– A unit of execution
– A piece of code that can be scheduled to run by the kernel
– May be launch by a process or a driver
– Process
– A collection of threads with a common execution environment
– A process has at least on thread
– Launch from an executable file
– Can create threads to handle interrupts
– Driver
– A DLL, (dynamically loaded library) loaded into the device
manager process
– Supports the Device I/O Control Interface
– Can create threads to handle interrupts
Processes and Threads
Management…..
– Processes allocate stack for each thread, the
default size is 64KB, depending on the link
parameter when the program is compiled
• Top 2KB used to guard against stack overflow
• Remained available for use
– Variables declared inside functions are allocated in
the stack
– Thread’s stack memory is reclaimed when it
terminates
Processes and Threads
Management…..
API Address Search
Scheduler
– Is responsible for determining which thread will run
– Has a queue for threads for each priority level
– Will always schedule the first thread at the highest priority level
– A thread gets to run for set length of time, called a
quantum
– Typically 100 milliseconds
– A quantum of 0 means the quantum never runs out
• The thread can run until blocked or interrupted
– A Thread runs until—
– Its quantum runs out
– It is interrupted by a higher priority thread
– Its blocked by a resource contention
• Such as access to a critical section or a mutex
ISRs And ISTs
– Interrupt Service Routine (ISR)
– A piece of code loaded into the kernel
– Assigned to a particular IRQ
– Called immediately to handle the hardware interrupt
– Should be written to run quickly with few outside dependencies
– Can be chained together if multiple device might use the same
IRQ
– Notifies the kernel which IST should run
– Interrupt Service Thread (IST)
– A thread registered to handle an interrupt
– Can be created by either a process or a driver
– Scheduled like any other thread on the system
– Should be written to do the bulk of the interrupt handling work
Priority Levels
– Windows CE 5.0 has 256 levels of priority
– Level 0 is the highest and 255 is the lowest
• The old CE model of 8 levels now map to the lowest 8
of the new model
– The default level for a thread is 252
– Levels 0 through 248 can be reserved by OEM
Interrupt Architecture
OAL Design
Scheduling algorithms in Windows CE
Scheduling algorithms in Windows CE
Conclusion
– Windows CE is real-time
– Windows CE provides all the functionality needed
to qualify as a real-time operating system
– Windows CE provides tools to optimize your real-
time platform

More Related Content

What's hot

12 processor structure and function
12 processor structure and function12 processor structure and function
12 processor structure and function
Sher Shah Merkhel
 

What's hot (20)

Linux Kernel and Driver Development Training
Linux Kernel and Driver Development TrainingLinux Kernel and Driver Development Training
Linux Kernel and Driver Development Training
 
Installing driver
Installing driverInstalling driver
Installing driver
 
Device Drivers in Linux
Device Drivers in LinuxDevice Drivers in Linux
Device Drivers in Linux
 
Course 101: Lecture 2: Introduction to Operating Systems
Course 101: Lecture 2: Introduction to Operating Systems Course 101: Lecture 2: Introduction to Operating Systems
Course 101: Lecture 2: Introduction to Operating Systems
 
Windows Architecture Explained by Stacksol
Windows Architecture Explained by StacksolWindows Architecture Explained by Stacksol
Windows Architecture Explained by Stacksol
 
Intro to Embedded OS, RTOS and Communication Protocols
Intro to Embedded OS, RTOS and Communication ProtocolsIntro to Embedded OS, RTOS and Communication Protocols
Intro to Embedded OS, RTOS and Communication Protocols
 
Embedded Systems: Lecture 5: A Tour in RTOS Land
Embedded Systems: Lecture 5: A Tour in RTOS LandEmbedded Systems: Lecture 5: A Tour in RTOS Land
Embedded Systems: Lecture 5: A Tour in RTOS Land
 
Course 101: Lecture 4: A Tour in RTOS Land
Course 101: Lecture 4: A Tour in RTOS Land Course 101: Lecture 4: A Tour in RTOS Land
Course 101: Lecture 4: A Tour in RTOS Land
 
Linux Internals - Interview essentials 3.0
Linux Internals - Interview essentials 3.0Linux Internals - Interview essentials 3.0
Linux Internals - Interview essentials 3.0
 
Windows Kernel-
Windows Kernel-Windows Kernel-
Windows Kernel-
 
LINUX Device Drivers
LINUX Device DriversLINUX Device Drivers
LINUX Device Drivers
 
Windows ce
Windows ceWindows ce
Windows ce
 
13 risc
13 risc13 risc
13 risc
 
Embedded Systems: Lecture 2: Introduction to Embedded Systems
Embedded Systems: Lecture 2: Introduction to Embedded SystemsEmbedded Systems: Lecture 2: Introduction to Embedded Systems
Embedded Systems: Lecture 2: Introduction to Embedded Systems
 
12 processor structure and function
12 processor structure and function12 processor structure and function
12 processor structure and function
 
Embedded linux
Embedded linuxEmbedded linux
Embedded linux
 
Driver development – memory management
Driver development – memory managementDriver development – memory management
Driver development – memory management
 
Kernel module programming
Kernel module programmingKernel module programming
Kernel module programming
 
linux device driver
linux device driverlinux device driver
linux device driver
 
Introduction to Embedded Linux
Introduction to Embedded LinuxIntroduction to Embedded Linux
Introduction to Embedded Linux
 

Viewers also liked

Viewers also liked (7)

Paullan paola citasapa
Paullan paola citasapaPaullan paola citasapa
Paullan paola citasapa
 
primeloop
primeloopprimeloop
primeloop
 
Importance of libraries to family historians
Importance of libraries to family historiansImportance of libraries to family historians
Importance of libraries to family historians
 
14.jun.2012
14.jun.201214.jun.2012
14.jun.2012
 
Cajamarca tania exel
Cajamarca tania exelCajamarca tania exel
Cajamarca tania exel
 
1st semester review part 1
1st semester review part 11st semester review part 1
1st semester review part 1
 
Alejandro Debenedet Itil Review Seminario Aepdp Pc Format Spa June 2011
Alejandro Debenedet   Itil Review   Seminario Aepdp   Pc Format Spa   June 2011Alejandro Debenedet   Itil Review   Seminario Aepdp   Pc Format Spa   June 2011
Alejandro Debenedet Itil Review Seminario Aepdp Pc Format Spa June 2011
 

Similar to Window ce

Chap1_Part2.pptx
Chap1_Part2.pptxChap1_Part2.pptx
Chap1_Part2.pptx
NMohd3
 
Linux操作系统01 简介
Linux操作系统01 简介Linux操作系统01 简介
Linux操作系统01 简介
lclsg123
 
Brief Introduction.ppt
Brief Introduction.pptBrief Introduction.ppt
Brief Introduction.ppt
MollyZolly
 

Similar to Window ce (20)

Chap1_Part2.pptx
Chap1_Part2.pptxChap1_Part2.pptx
Chap1_Part2.pptx
 
Linux操作系统01 简介
Linux操作系统01 简介Linux操作系统01 简介
Linux操作系统01 简介
 
Ch04 threads
Ch04 threadsCh04 threads
Ch04 threads
 
Intro reverse engineering
Intro reverse engineeringIntro reverse engineering
Intro reverse engineering
 
Linux Device Driver,LDD,
Linux Device Driver,LDD,Linux Device Driver,LDD,
Linux Device Driver,LDD,
 
Unit 4
Unit  4Unit  4
Unit 4
 
11. operating-systems-part-1
11. operating-systems-part-111. operating-systems-part-1
11. operating-systems-part-1
 
Embedded system - embedded system programming
Embedded system - embedded system programmingEmbedded system - embedded system programming
Embedded system - embedded system programming
 
Embedded Systems Overview
Embedded Systems OverviewEmbedded Systems Overview
Embedded Systems Overview
 
Device Drivers
Device DriversDevice Drivers
Device Drivers
 
Os concepts
Os conceptsOs concepts
Os concepts
 
Parallel Processors (SIMD)
Parallel Processors (SIMD) Parallel Processors (SIMD)
Parallel Processors (SIMD)
 
Parallel Processors (SIMD)
Parallel Processors (SIMD) Parallel Processors (SIMD)
Parallel Processors (SIMD)
 
CSC204PPTNOTES
CSC204PPTNOTESCSC204PPTNOTES
CSC204PPTNOTES
 
Windows xp
Windows xpWindows xp
Windows xp
 
NXP IMX6 Processor - Embedded Linux
NXP IMX6 Processor - Embedded LinuxNXP IMX6 Processor - Embedded Linux
NXP IMX6 Processor - Embedded Linux
 
Brief Introduction.ppt
Brief Introduction.pptBrief Introduction.ppt
Brief Introduction.ppt
 
Linux-Internals-and-Networking
Linux-Internals-and-NetworkingLinux-Internals-and-Networking
Linux-Internals-and-Networking
 
A Reimplementation of NetBSD Based on a Microkernel by Andrew S. Tanenbaum
A Reimplementation of NetBSD Based on a Microkernel by Andrew S. TanenbaumA Reimplementation of NetBSD Based on a Microkernel by Andrew S. Tanenbaum
A Reimplementation of NetBSD Based on a Microkernel by Andrew S. Tanenbaum
 
Mac Memory Analysis with Volatility
Mac Memory Analysis with VolatilityMac Memory Analysis with Volatility
Mac Memory Analysis with Volatility
 

More from balamurugan.k Kalibalamurugan

More from balamurugan.k Kalibalamurugan (10)

Problem definition
Problem definitionProblem definition
Problem definition
 
Description logic
Description logicDescription logic
Description logic
 
Software testing
Software testingSoftware testing
Software testing
 
Radius1
Radius1Radius1
Radius1
 
A multi criteria evaluation of environmental databases using hasse
A multi criteria evaluation of environmental databases using hasseA multi criteria evaluation of environmental databases using hasse
A multi criteria evaluation of environmental databases using hasse
 
Simple object access protocol(soap )
Simple object access protocol(soap )Simple object access protocol(soap )
Simple object access protocol(soap )
 
Tamil OCR using Tesseract OCR Engine
Tamil OCR using Tesseract OCR EngineTamil OCR using Tesseract OCR Engine
Tamil OCR using Tesseract OCR Engine
 
Security monitoring and auditing
Security monitoring and auditingSecurity monitoring and auditing
Security monitoring and auditing
 
Object oriented framework
Object oriented frameworkObject oriented framework
Object oriented framework
 
Distributed datababase Transaction and concurrency control
Distributed datababase Transaction and concurrency controlDistributed datababase Transaction and concurrency control
Distributed datababase Transaction and concurrency control
 

Recently uploaded

Finding Java's Hidden Performance Traps @ DevoxxUK 2024
Finding Java's Hidden Performance Traps @ DevoxxUK 2024Finding Java's Hidden Performance Traps @ DevoxxUK 2024
Finding Java's Hidden Performance Traps @ DevoxxUK 2024
Victor Rentea
 
Architecting Cloud Native Applications
Architecting Cloud Native ApplicationsArchitecting Cloud Native Applications
Architecting Cloud Native Applications
WSO2
 

Recently uploaded (20)

Strategies for Landing an Oracle DBA Job as a Fresher
Strategies for Landing an Oracle DBA Job as a FresherStrategies for Landing an Oracle DBA Job as a Fresher
Strategies for Landing an Oracle DBA Job as a Fresher
 
AXA XL - Insurer Innovation Award Americas 2024
AXA XL - Insurer Innovation Award Americas 2024AXA XL - Insurer Innovation Award Americas 2024
AXA XL - Insurer Innovation Award Americas 2024
 
Polkadot JAM Slides - Token2049 - By Dr. Gavin Wood
Polkadot JAM Slides - Token2049 - By Dr. Gavin WoodPolkadot JAM Slides - Token2049 - By Dr. Gavin Wood
Polkadot JAM Slides - Token2049 - By Dr. Gavin Wood
 
DBX First Quarter 2024 Investor Presentation
DBX First Quarter 2024 Investor PresentationDBX First Quarter 2024 Investor Presentation
DBX First Quarter 2024 Investor Presentation
 
AWS Community Day CPH - Three problems of Terraform
AWS Community Day CPH - Three problems of TerraformAWS Community Day CPH - Three problems of Terraform
AWS Community Day CPH - Three problems of Terraform
 
Finding Java's Hidden Performance Traps @ DevoxxUK 2024
Finding Java's Hidden Performance Traps @ DevoxxUK 2024Finding Java's Hidden Performance Traps @ DevoxxUK 2024
Finding Java's Hidden Performance Traps @ DevoxxUK 2024
 
ICT role in 21st century education and its challenges
ICT role in 21st century education and its challengesICT role in 21st century education and its challenges
ICT role in 21st century education and its challenges
 
2024: Domino Containers - The Next Step. News from the Domino Container commu...
2024: Domino Containers - The Next Step. News from the Domino Container commu...2024: Domino Containers - The Next Step. News from the Domino Container commu...
2024: Domino Containers - The Next Step. News from the Domino Container commu...
 
Architecting Cloud Native Applications
Architecting Cloud Native ApplicationsArchitecting Cloud Native Applications
Architecting Cloud Native Applications
 
Apidays New York 2024 - Passkeys: Developing APIs to enable passwordless auth...
Apidays New York 2024 - Passkeys: Developing APIs to enable passwordless auth...Apidays New York 2024 - Passkeys: Developing APIs to enable passwordless auth...
Apidays New York 2024 - Passkeys: Developing APIs to enable passwordless auth...
 
Ransomware_Q4_2023. The report. [EN].pdf
Ransomware_Q4_2023. The report. [EN].pdfRansomware_Q4_2023. The report. [EN].pdf
Ransomware_Q4_2023. The report. [EN].pdf
 
Apidays New York 2024 - The value of a flexible API Management solution for O...
Apidays New York 2024 - The value of a flexible API Management solution for O...Apidays New York 2024 - The value of a flexible API Management solution for O...
Apidays New York 2024 - The value of a flexible API Management solution for O...
 
Emergent Methods: Multi-lingual narrative tracking in the news - real-time ex...
Emergent Methods: Multi-lingual narrative tracking in the news - real-time ex...Emergent Methods: Multi-lingual narrative tracking in the news - real-time ex...
Emergent Methods: Multi-lingual narrative tracking in the news - real-time ex...
 
Rising Above_ Dubai Floods and the Fortitude of Dubai International Airport.pdf
Rising Above_ Dubai Floods and the Fortitude of Dubai International Airport.pdfRising Above_ Dubai Floods and the Fortitude of Dubai International Airport.pdf
Rising Above_ Dubai Floods and the Fortitude of Dubai International Airport.pdf
 
EMPOWERMENT TECHNOLOGY GRADE 11 QUARTER 2 REVIEWER
EMPOWERMENT TECHNOLOGY GRADE 11 QUARTER 2 REVIEWEREMPOWERMENT TECHNOLOGY GRADE 11 QUARTER 2 REVIEWER
EMPOWERMENT TECHNOLOGY GRADE 11 QUARTER 2 REVIEWER
 
MINDCTI Revenue Release Quarter One 2024
MINDCTI Revenue Release Quarter One 2024MINDCTI Revenue Release Quarter One 2024
MINDCTI Revenue Release Quarter One 2024
 
Exploring Multimodal Embeddings with Milvus
Exploring Multimodal Embeddings with MilvusExploring Multimodal Embeddings with Milvus
Exploring Multimodal Embeddings with Milvus
 
"I see eyes in my soup": How Delivery Hero implemented the safety system for ...
"I see eyes in my soup": How Delivery Hero implemented the safety system for ..."I see eyes in my soup": How Delivery Hero implemented the safety system for ...
"I see eyes in my soup": How Delivery Hero implemented the safety system for ...
 
Navigating the Deluge_ Dubai Floods and the Resilience of Dubai International...
Navigating the Deluge_ Dubai Floods and the Resilience of Dubai International...Navigating the Deluge_ Dubai Floods and the Resilience of Dubai International...
Navigating the Deluge_ Dubai Floods and the Resilience of Dubai International...
 
Apidays New York 2024 - APIs in 2030: The Risk of Technological Sleepwalk by ...
Apidays New York 2024 - APIs in 2030: The Risk of Technological Sleepwalk by ...Apidays New York 2024 - APIs in 2030: The Risk of Technological Sleepwalk by ...
Apidays New York 2024 - APIs in 2030: The Risk of Technological Sleepwalk by ...
 

Window ce

  • 4. What can CE do – Industrial Automation – Set-Top Boxes – Medical Devices and Systems – ATMs – Projectors and Large Screen Displays – VoIP Devices – First edition released in 1996 – Windows CE .NET 4.x is widely used
  • 5. Introduction to BSP • Windows CE can run on different hardware platforms. • How can we do that? • The answer is BSP ! • Board Support Package is the software that implements and supports the OEM adaptation layer (OAL) and device drivers for a standard development board (SDB).
  • 6. Compare with Desktop Version – Windows XP : 1.5GB No inherent real time support 256 levels of thread priority Minimal : 200KB Windows XP : 1.5GB  Lager and lager…  Can NOT be customized Quick and easy to customize OS for a particular system More than 200 optional component  Compact Version of Win32 API, MFC..  UNICODE only  ASCII / UNICODE  Commercial software, source code is MS 1st level secret.  70% of Windows CE 5.0 source code is shared.
  • 7. Memory Management – Windows CE uses ROM (read only memory), RAM (random access memory) • The ROM in a Windows CE system is like a small read- only hard disk • The RAM in a Windows CE system is divided into two areas: program memory and object store – Windows CE is a 32-bit operating system, so it supports 4GB virtual address space
  • 8. Memory Management….. – Upper 2GB is kernel space, used by the system for its own data – Lower 2GB is user space • 0x42000000-0x7FFFFFFF memory is used for large memory allocations, such as memory- mapped files • 0x0-0x41FFFFFF memory is divided into 33 slots, each of which is 32MB
  • 12. Processes and Threads Management – Windows CE limits 32 processes being run at any one time – Every process at least has a primary thread associated with it upon starting (even if it never explicitly created one) – A process can created any number of additional threads (only limited by available memory) – Each thread belongs to a particular process (and shares the same memory space) – SetProcPermissions API will give the current thread access to any process – Each thread has an ID, a private stack and a set of registers
  • 13. Processes and Threads Management….. – When a process is loaded • Assigned to next available slot • DLLs loaded into the slot • Followed by the stack and default process heap • After this, then executed – When a process’ thread is scheduled • Copied from its slot into slot 0 – This is mapped back to the original slot allocated to the process if the process becomes inactive
  • 14. Processes and Threads Management….. – Thread – A unit of execution – A piece of code that can be scheduled to run by the kernel – May be launch by a process or a driver – Process – A collection of threads with a common execution environment – A process has at least on thread – Launch from an executable file – Can create threads to handle interrupts – Driver – A DLL, (dynamically loaded library) loaded into the device manager process – Supports the Device I/O Control Interface – Can create threads to handle interrupts
  • 15. Processes and Threads Management….. – Processes allocate stack for each thread, the default size is 64KB, depending on the link parameter when the program is compiled • Top 2KB used to guard against stack overflow • Remained available for use – Variables declared inside functions are allocated in the stack – Thread’s stack memory is reclaimed when it terminates
  • 18. Scheduler – Is responsible for determining which thread will run – Has a queue for threads for each priority level – Will always schedule the first thread at the highest priority level – A thread gets to run for set length of time, called a quantum – Typically 100 milliseconds – A quantum of 0 means the quantum never runs out • The thread can run until blocked or interrupted – A Thread runs until— – Its quantum runs out – It is interrupted by a higher priority thread – Its blocked by a resource contention • Such as access to a critical section or a mutex
  • 19. ISRs And ISTs – Interrupt Service Routine (ISR) – A piece of code loaded into the kernel – Assigned to a particular IRQ – Called immediately to handle the hardware interrupt – Should be written to run quickly with few outside dependencies – Can be chained together if multiple device might use the same IRQ – Notifies the kernel which IST should run – Interrupt Service Thread (IST) – A thread registered to handle an interrupt – Can be created by either a process or a driver – Scheduled like any other thread on the system – Should be written to do the bulk of the interrupt handling work
  • 20. Priority Levels – Windows CE 5.0 has 256 levels of priority – Level 0 is the highest and 255 is the lowest • The old CE model of 8 levels now map to the lowest 8 of the new model – The default level for a thread is 252 – Levels 0 through 248 can be reserved by OEM
  • 25. Conclusion – Windows CE is real-time – Windows CE provides all the functionality needed to qualify as a real-time operating system – Windows CE provides tools to optimize your real- time platform