SlideShare a Scribd company logo
CpE   Battle of the Brains
Embedded operating systems
Definition Embedded System is a combination of computer hardware and software, and perhaps additional mechanical or other parts, designed to perform a dedicated function. In many cases, embedded systems are part of a larger system or product, as in the case of an antilock braking system in a car.
Requirements and Constraints Small to large systems, implying very different cost constraints, thus different needs for optimization and reuse Relaxed to very strict requirements and combinations of different quality requirements. Short to long life times Different environmental conditions. Different application characteristics resulting in static dynamic loads, slow to fast speed, compute versus interface intensive tasks and/or combinations Different models of computations ranging from discrete-event systems to those involving continuous time dynamics
MECHANICS Each correct answer is worth 3 points Only the first contestant who raises his/her hands has the right to answer the question Questions can be answered after the game master says “GO” A tie breaker question worth 1 point is required if more than one contestant has the highest point total The highest point total wins the game
Emmanuel John A. Pascual Maria Monereeza M. Floria – Our Lady of Fatima University Ma-an Andria R. Lacierda - WCC Francis Argel D. Gonzales - TIPQC Heherson Q. Suaiso - ACCESS GAME MASTER COntestants
What are the Applications of Embedded OS?
Applications Market Embedded Device Automotive Ignition systems Engine control Brake system Consumer electronics Cameras Toys/Games Telephones/Cell Phones/Pagers Industrial control Robotics Sensors
Applications Medical Infusion pumps Cardiac monitors Dialysis machines Office automation Fax machine  Printer Scanners
SCORE TABLE EZA MAAN ARGEL SUAISO 3 0 0 0
What are the CHARACTERISTICS of Embedded OS?
Characteristics of E.Os  Direct use of interrupts There are three (3) reasons why it is possible to let interrupts directly start or stop tasks. Embedded systems can be considered to be thoroughly tested. Protection is not necessary Efficient control over a variety of devices is required
Characteristics of E.Os  I/O  device flexibility There is virtually no device that needs to be supported by all versions of the OS, and the range of I/O device in large. Streamlined protection mechanisms Embedded systems are typically designed for a limited, well-defined functionality. After the software has been configured and tested. It can be assumed to be reliable. Thus, apart from security measures, embedded systems have limited protection mechanisms.
SCORE TABLE EZA MAAN ARGEL SUAISO 6 0 0 0
What are the APPROACHES IN THE DEVELOPMENT OF Embedded OS?
Development Approaches Advantage Disadvantage Adapting an existing commercial OS The Embedded OS derived from a commercial general-purpose OS is based on a set of familiar interfaces. The OS is not optimized for real-time and embedded applications. Purpose-Built Embedded OS (Ecos and Tiny Os) Purposely designed for tasks requiring predictable operation over fast operations, necessitating different design decisions, particularly in the area of task scheduling. Must be designed from the ground up for embedded applications
SCORE TABLE EZA MAAN ARGEL SUAISO 9 0 0 0
What iS ECOs?
ECOs Embedded Configurable Operating System is an open source, royalty-free, real-time OS. Intended for embedded applications. A system targeting at high performance small embedded systems. For such systems, an embedded form of  Linux and other commercial Os would not provide the streamlined software required.
SCORE TABLE EZA MAAN ARGEL SUAISO 9 3 0 0
HOW DOES CONFIGURABILITY MEAN IN TERMS OF EOS?
Configurability An embedded system OS that is flexible enough to be used in a wide variety of embedded application and on a wide variety of embedded platforms must provide more functionality than will be needed for any particular application and platform. Configuration tool Is used to configure the ECos package to run on the target embedded system. (running on windows or Linux).
Configurability Loading an ECos Configuration GNU make utility Application Source Code GNU Cross Compiler GNU Linker Executable file ECOs kernel libraries Target architecture libraries
SCORE TABLE EZA MAAN ARGEL SUAISO 9 6 0 0
WHAT ARE THE ECOS COMPONENTS?
ECOS Components A key design requirement for the ECOS is portability to different architectures and platforms with minimal effort. Main components are as follows: User application code Standard C library I/O system (device drivers) Kernels Hardware abstraction layer
ECOS Components User Application Code Standard C library I/O System (device drivers) Kernels Hardware abstraction layer
SCORE TABLE EZA MAAN ARGEL SUAISO 9 9 0 0
WHAT IS HAL?
Hardware Abstraction Layer The HAL is software that presents a consisted API to the upper layers and maps upper-layer operations onto specific hardware platform.  The HAL is implemented as three (3) separate modules. Architecture: defines the processor type. Variant: supports the features of the specific processor in the family. Platform: extends the HAL support to tightly coupled peripherals like interrupt controllers and time devices.
SCORE TABLE EZA MAAN ARGEL SUAISO 9 9 0 3
WHAT IS ECOS KERNEL?
ECOS kernel Kernels were designed to satisfy four (4) main objectives Low interrupt latency: the time it takes to respond to an  interrupt and begin execute an ISR Low task switching latency: the time it takes from when a thread becomes available to when actual execution begins. Small memory footprint memory resources for both program and data are kept to a minimum by allowing components to configure memory needed. Deterministic behavior: throughout all the aspect of execution. The kernel performance must be predictable and bounded to meet real-time application requirements.
ECOS kernel ECOS kernels also provide the core functionality needed for developing multi-threaded applications The ability to add/create new threads in the system Control over various threads in the system A choice of scheduler, determining which thread should currently be running A range of synchronization primitives, allowing thread interaction Integration with the system’s support for interrupts and exceptions
SCORE TABLE EZA MAAN ARGEL SUAISO 9 9 0 6
WHAT IS I/O SYSTEM?
I/O System The ECOS I/O system is a framework for supporting device drivers. A variety of drivers for a variety of platform are provided in the ECOS configuration package. These include drivers for serial devices, Ethernet, flash memory interfaces, and various I/O interconnects such as PCI (peripheral component interface) and USB (universal serial bus).
I/O System Device drivers and other higher-layer software may be implemented directly on the HAL if this is appropriate. If specialized kernel type functions are needed, then the device driver is implemented using kernel APIs. The kernel provides a three-level interrupt model. Interrupt service routines (ISR): invoked response to a hardware interrupt. Hardware interrupts are delivered with minimal intervention to an ISR. Deferred service routines (DSR): invoked in response to a request by an ISR. DSR will run when it is safe to do so without interfering with the scheduler. Threads: the client to the driver. Threads are able to make all API (Application Programming Interface) calls and in particular are allowed to wait on mutexes and conditional variables.
SCORE TABLE EZA MAAN ARGEL SUAISO 9 9 0 9
WHAT ARE STANDARD C LIBRARIES?
Standard C Libraries A complete standard C run-time is provided. Also included is a complete math run time library for high-level mathematic functions, including a complete IEEE-754 floating-point library for those platforms without hardware floating points.
SCORE TABLE EZA MAAN ARGEL SUAISO 9 9 3 9
WHAT IS AN ECOS SCHEDULER?
ECOS Scheduler Bitmap Scheduler a bitmap scheduler supports multiple priority levels but only  1 thread can exist  at each priority level at a  given time . Description: because there is only 1 thread, at most, at each priority level, the scheduler does not have to make a decision as to which thread at a given priority level should be dispatched next.
ECOS Scheduler Multi-queue scheduler The multi-queue scheduler is appropriate if the number of threads is dynamic or if the desirable to have multiple threads at the same priority level. The multilevel scheduler is also needed if time slicing is needed.
SCORE TABLE EZA MAAN ARGEL SUAISO 9 9 6 9
WHAT IS ECOS THREAD Synchronization?
ECOs Thread Synchronization Mutexes the mutex (mutual exclusion lock) is used to enforce mutually exclusive access to a resource. Allowing  only  1 thread at a time to gain access.  Has 2 states: locked and unlocked. When a mutex is locked by 1 thread, any other thread attempting to lock the mutex is blocked; when the mutex is unlocked. Then one of the threads blocked on this mutex is unblocked and allowed to lock the mutex and gain access on the resource.
ECOs Thread Synchronization Semaphores counting semaphores are suited to enabling threads to wait until an event has occurred. The event may be generated by a producer thread. Or by a DSR in response to  a hardware interrupt. Description If counter is ZERO, an attempt by a consumer thread to wait on the semaphore will block until some other thread or a DSR post a new event to the semaphore If counter is greater than ZERO then an attempt to wait on the semaphore will consume one event.
ECOs Thread Synchronization Conditional Codes a conditional variable is used to block a thread until a particular condition is TRUE. Condition variables are used with mutexes to allow multiple thread to access shared data. They can be used to implement monitors of the type in ECOs.  Event Flags is a 32-bit word used as a synchronization mechanism. Application code may associate a different event with each bit on the flag. A thread can wait for either a single event or a combination of events by checking 1 or multiple bits in a corresponding flag.
ECOs Thread Synchronization Mailboxes also called message boxes are an ECOs synchronization mechanism that provides a means for 2 threads to exchange information. Can be configured for blocking/non-blocking on both  the send and receive side. Spinlocks A spinlock is a flag that a thread can check before executing a particular piece of code. Basically, only 1 thread at a time can acquire a spinlock. Any other thread attempting to acquire the same lock will keep trying (spinning) until it can acquire a lock.
SCORE TABLE EZA MAAN ARGEL SUAISO 9 9 9 9
Tiebreaker Question: 1 point  WHAT IS ECOS TINY OS?
TinyOS   The ECOS system provides a more streamlined approach for an embedded OS than one based on a commercial general-purpose OS. Such as an embedded version of the LINUX, thus ECOS and similar system are better suited for small embedded system with tight requirement on memory, processing -time, real-time response, power consumption, and so on. TINYOS takes the process of streamlining in much a further point, resulting in a very minimal OS for embedded systems.
SCORE TABLE CONGRATULATIONS TIPQC! EZA MAAN ARGEL SUAISO 9 9 10 9
Wireless Sensor Networks TINYOS was developed primarily for use with networks of small wireless sensor. A number of treads have enabled the development of extremely compact, low-power sensors. The well-known Moore’s law continuous to drive down the size of memory and processing logic elements. Smaller size in turn reduces power consumption. Low power and small size treads are also evident in wireless communication hardware, micro-electrical sensors (MEMS) and transducers.
Tiny OS Goals Allow high concurrency in a typical wireless sensor network application, the devices are concurrency intensive. Several different flow of data must be kept moving simultaneously. Operate with limited resources the target platform for Tiny OS will have limited memory and computational resources and run on batteries or solar power.
Tiny OS Goals Adapt to hardware evolution should be possible  to upgrade the hardware with little or no software change, if the functionality is the same. Support a wide range of applications applications exhibit a wide range of requirements in terms of lifetimes, communication, sensing and so on.
Tiny OS Goals Support a diverse set of platforms as with preceding point, a general-purpose embedded OS is desirable. Be robust once deployed, a sensor network must run unattended for months or years. Ideally, there should be redundancy both within a single system and across the network of sensors.
TINYOS Components An embedded software system built using TINYOS consists of a set of small modules called components, each of which performs a simple task or set of tasks and which interface with each other and with hardware is limited and well-defined ways. The other software module is the scheduler. And because the TINYOS doesn’t utilize kernels, there is no actual OS. But we can take the following view. The application area of interest is the wireless sensor network (WSN).
TINYOS Components The meet the demanding software requirement of this application, rigid, simplified software architecture is dedicated, consisting of components. The TINYOS development community has implemented a number of open-source components that provide the basic functions needed for the WSN application.
TINYOS Scheduler The TINYOS scheduler operates across all components. Virtually all embedded systems using TINYOS will be uni-processor systems, so that only one task among all the tasks in all the components may execute at a time. The scheduler is a separate component. It is the only portion of TINYOS that must be present in any system.
TINYOS resource Interface Provides a simple but powerful set of conventions for dealing with resources. Three (3) abstractions for resources are used in TINYOS. Dedicated: a resource that a subsystem needs exclusive access at all times Virtualized: the virtualized abstraction may be used when the underlying resource need not be protected by mutual exclusion. Shared: the shared resource abstraction provides access to a dedicated resource through an arbiter component. The arbiter enforces mutual conclusion allowing only the user at a time to have access to a resource and enabling the client to lock the resource.
TINYOS resource Interface The shared resource configuration provides the following interfaces to a client: Resource: the client issues a request at this interface requesting access to the resource. Resource Requested: this is similar to the resource interface. In this case, the client is able to hold onto a resource until the client is notified that someone else needs the resource.
TINYOS resource Interface Resources Configure: this interface allows a resource to be automatically configured just before a client is granted access to it. Resource-Specific interfaces: once a client has access to resource, it uses resource-specific interfaces to exchange data and control information with the resource.
THE END THANK YOU VERY MUCH!

More Related Content

PPTX
Embedded os
PDF
Introduction to Embedded Architecture
PDF
EE6602 Embedded System
PPTX
Arduino and its hw architecture
PPTX
SRAM DRAM
PPTX
Types Of Buses
PPTX
Thread scheduling in Operating Systems
Embedded os
Introduction to Embedded Architecture
EE6602 Embedded System
Arduino and its hw architecture
SRAM DRAM
Types Of Buses
Thread scheduling in Operating Systems

What's hot (20)

PPT
Embedded system
PPTX
Basic Computer Architecture
PPTX
What is-32-bit-and-64-bit
PPT
Real Time Operating system (RTOS) - Embedded systems
PPT
Real Time Operating System
PPTX
Embedded systems
PPT
Embedded system design process
PPTX
Ch 1 introduction to Embedded Systems (AY:2018-2019--> First Semester)
PDF
Unit 1 intro-embedded
PDF
Embedded system in Smart Cards
PPT
Chapter 13 - I/O Systems
PPTX
Real time Operating System
PPTX
Automatic chocolate vending machine using mucos rtos ppt
PPTX
Introduction to Arduino Hardware and Programming
PPTX
Real Time Kernels
PPTX
Introduction to Embedded Systems
PPTX
What are the different types of arduino boards
PPT
Intro to Arduino
PPT
Ipc ppt
PPTX
Interrupts and types of interrupts
Embedded system
Basic Computer Architecture
What is-32-bit-and-64-bit
Real Time Operating system (RTOS) - Embedded systems
Real Time Operating System
Embedded systems
Embedded system design process
Ch 1 introduction to Embedded Systems (AY:2018-2019--> First Semester)
Unit 1 intro-embedded
Embedded system in Smart Cards
Chapter 13 - I/O Systems
Real time Operating System
Automatic chocolate vending machine using mucos rtos ppt
Introduction to Arduino Hardware and Programming
Real Time Kernels
Introduction to Embedded Systems
What are the different types of arduino boards
Intro to Arduino
Ipc ppt
Interrupts and types of interrupts
Ad

Similar to Embedded os (20)

PPT
Ecoz presentation
PDF
Trainingreport on embedded system
PDF
A Survey Embedded Systems Supporting By Different Operating Systems.pdf
PPTX
Lec 9-os-review
PPT
Embedded systems
PPT
Embedded System
PPT
Rtos Concepts
PDF
PDF
Modern Operating Systems 4th Edition by Andrew Tanebaum, Herbert Bos ISBN 013...
PPTX
Real Time OS For Embedded Systems
PPT
UNIT V PPT.ppt
PPTX
MODULE IV embedded (1).pptx
PDF
Realtime Embedded Multithreading Using Threadx And Mips Edward L Lamie Auth
DOCX
Embedded system notes
PPTX
Real Time Operating System
PPT
Os Concepts
PDF
Embedded Os [Linux & Co.]
PPT
Embedded Linux Talk Uni Forum
Ecoz presentation
Trainingreport on embedded system
A Survey Embedded Systems Supporting By Different Operating Systems.pdf
Lec 9-os-review
Embedded systems
Embedded System
Rtos Concepts
Modern Operating Systems 4th Edition by Andrew Tanebaum, Herbert Bos ISBN 013...
Real Time OS For Embedded Systems
UNIT V PPT.ppt
MODULE IV embedded (1).pptx
Realtime Embedded Multithreading Using Threadx And Mips Edward L Lamie Auth
Embedded system notes
Real Time Operating System
Os Concepts
Embedded Os [Linux & Co.]
Embedded Linux Talk Uni Forum
Ad

Recently uploaded (20)

PDF
Complications of Minimal Access Surgery at WLH
PPTX
Introduction_to_Human_Anatomy_and_Physiology_for_B.Pharm.pptx
PDF
RMMM.pdf make it easy to upload and study
PPTX
1st Inaugural Professorial Lecture held on 19th February 2020 (Governance and...
PDF
Anesthesia in Laparoscopic Surgery in India
PDF
O5-L3 Freight Transport Ops (International) V1.pdf
PDF
Saundersa Comprehensive Review for the NCLEX-RN Examination.pdf
PDF
Supply Chain Operations Speaking Notes -ICLT Program
PDF
STATICS OF THE RIGID BODIES Hibbelers.pdf
PPTX
Final Presentation General Medicine 03-08-2024.pptx
PPTX
school management -TNTEU- B.Ed., Semester II Unit 1.pptx
PDF
Basic Mud Logging Guide for educational purpose
PPTX
GDM (1) (1).pptx small presentation for students
PDF
Insiders guide to clinical Medicine.pdf
PDF
2.FourierTransform-ShortQuestionswithAnswers.pdf
PPTX
IMMUNITY IMMUNITY refers to protection against infection, and the immune syst...
PPTX
Cell Types and Its function , kingdom of life
PPTX
master seminar digital applications in india
PPTX
Pharma ospi slides which help in ospi learning
PDF
01-Introduction-to-Information-Management.pdf
Complications of Minimal Access Surgery at WLH
Introduction_to_Human_Anatomy_and_Physiology_for_B.Pharm.pptx
RMMM.pdf make it easy to upload and study
1st Inaugural Professorial Lecture held on 19th February 2020 (Governance and...
Anesthesia in Laparoscopic Surgery in India
O5-L3 Freight Transport Ops (International) V1.pdf
Saundersa Comprehensive Review for the NCLEX-RN Examination.pdf
Supply Chain Operations Speaking Notes -ICLT Program
STATICS OF THE RIGID BODIES Hibbelers.pdf
Final Presentation General Medicine 03-08-2024.pptx
school management -TNTEU- B.Ed., Semester II Unit 1.pptx
Basic Mud Logging Guide for educational purpose
GDM (1) (1).pptx small presentation for students
Insiders guide to clinical Medicine.pdf
2.FourierTransform-ShortQuestionswithAnswers.pdf
IMMUNITY IMMUNITY refers to protection against infection, and the immune syst...
Cell Types and Its function , kingdom of life
master seminar digital applications in india
Pharma ospi slides which help in ospi learning
01-Introduction-to-Information-Management.pdf

Embedded os

  • 1. CpE Battle of the Brains
  • 3. Definition Embedded System is a combination of computer hardware and software, and perhaps additional mechanical or other parts, designed to perform a dedicated function. In many cases, embedded systems are part of a larger system or product, as in the case of an antilock braking system in a car.
  • 4. Requirements and Constraints Small to large systems, implying very different cost constraints, thus different needs for optimization and reuse Relaxed to very strict requirements and combinations of different quality requirements. Short to long life times Different environmental conditions. Different application characteristics resulting in static dynamic loads, slow to fast speed, compute versus interface intensive tasks and/or combinations Different models of computations ranging from discrete-event systems to those involving continuous time dynamics
  • 5. MECHANICS Each correct answer is worth 3 points Only the first contestant who raises his/her hands has the right to answer the question Questions can be answered after the game master says “GO” A tie breaker question worth 1 point is required if more than one contestant has the highest point total The highest point total wins the game
  • 6. Emmanuel John A. Pascual Maria Monereeza M. Floria – Our Lady of Fatima University Ma-an Andria R. Lacierda - WCC Francis Argel D. Gonzales - TIPQC Heherson Q. Suaiso - ACCESS GAME MASTER COntestants
  • 7. What are the Applications of Embedded OS?
  • 8. Applications Market Embedded Device Automotive Ignition systems Engine control Brake system Consumer electronics Cameras Toys/Games Telephones/Cell Phones/Pagers Industrial control Robotics Sensors
  • 9. Applications Medical Infusion pumps Cardiac monitors Dialysis machines Office automation Fax machine Printer Scanners
  • 10. SCORE TABLE EZA MAAN ARGEL SUAISO 3 0 0 0
  • 11. What are the CHARACTERISTICS of Embedded OS?
  • 12. Characteristics of E.Os Direct use of interrupts There are three (3) reasons why it is possible to let interrupts directly start or stop tasks. Embedded systems can be considered to be thoroughly tested. Protection is not necessary Efficient control over a variety of devices is required
  • 13. Characteristics of E.Os I/O device flexibility There is virtually no device that needs to be supported by all versions of the OS, and the range of I/O device in large. Streamlined protection mechanisms Embedded systems are typically designed for a limited, well-defined functionality. After the software has been configured and tested. It can be assumed to be reliable. Thus, apart from security measures, embedded systems have limited protection mechanisms.
  • 14. SCORE TABLE EZA MAAN ARGEL SUAISO 6 0 0 0
  • 15. What are the APPROACHES IN THE DEVELOPMENT OF Embedded OS?
  • 16. Development Approaches Advantage Disadvantage Adapting an existing commercial OS The Embedded OS derived from a commercial general-purpose OS is based on a set of familiar interfaces. The OS is not optimized for real-time and embedded applications. Purpose-Built Embedded OS (Ecos and Tiny Os) Purposely designed for tasks requiring predictable operation over fast operations, necessitating different design decisions, particularly in the area of task scheduling. Must be designed from the ground up for embedded applications
  • 17. SCORE TABLE EZA MAAN ARGEL SUAISO 9 0 0 0
  • 19. ECOs Embedded Configurable Operating System is an open source, royalty-free, real-time OS. Intended for embedded applications. A system targeting at high performance small embedded systems. For such systems, an embedded form of Linux and other commercial Os would not provide the streamlined software required.
  • 20. SCORE TABLE EZA MAAN ARGEL SUAISO 9 3 0 0
  • 21. HOW DOES CONFIGURABILITY MEAN IN TERMS OF EOS?
  • 22. Configurability An embedded system OS that is flexible enough to be used in a wide variety of embedded application and on a wide variety of embedded platforms must provide more functionality than will be needed for any particular application and platform. Configuration tool Is used to configure the ECos package to run on the target embedded system. (running on windows or Linux).
  • 23. Configurability Loading an ECos Configuration GNU make utility Application Source Code GNU Cross Compiler GNU Linker Executable file ECOs kernel libraries Target architecture libraries
  • 24. SCORE TABLE EZA MAAN ARGEL SUAISO 9 6 0 0
  • 25. WHAT ARE THE ECOS COMPONENTS?
  • 26. ECOS Components A key design requirement for the ECOS is portability to different architectures and platforms with minimal effort. Main components are as follows: User application code Standard C library I/O system (device drivers) Kernels Hardware abstraction layer
  • 27. ECOS Components User Application Code Standard C library I/O System (device drivers) Kernels Hardware abstraction layer
  • 28. SCORE TABLE EZA MAAN ARGEL SUAISO 9 9 0 0
  • 30. Hardware Abstraction Layer The HAL is software that presents a consisted API to the upper layers and maps upper-layer operations onto specific hardware platform. The HAL is implemented as three (3) separate modules. Architecture: defines the processor type. Variant: supports the features of the specific processor in the family. Platform: extends the HAL support to tightly coupled peripherals like interrupt controllers and time devices.
  • 31. SCORE TABLE EZA MAAN ARGEL SUAISO 9 9 0 3
  • 32. WHAT IS ECOS KERNEL?
  • 33. ECOS kernel Kernels were designed to satisfy four (4) main objectives Low interrupt latency: the time it takes to respond to an interrupt and begin execute an ISR Low task switching latency: the time it takes from when a thread becomes available to when actual execution begins. Small memory footprint memory resources for both program and data are kept to a minimum by allowing components to configure memory needed. Deterministic behavior: throughout all the aspect of execution. The kernel performance must be predictable and bounded to meet real-time application requirements.
  • 34. ECOS kernel ECOS kernels also provide the core functionality needed for developing multi-threaded applications The ability to add/create new threads in the system Control over various threads in the system A choice of scheduler, determining which thread should currently be running A range of synchronization primitives, allowing thread interaction Integration with the system’s support for interrupts and exceptions
  • 35. SCORE TABLE EZA MAAN ARGEL SUAISO 9 9 0 6
  • 36. WHAT IS I/O SYSTEM?
  • 37. I/O System The ECOS I/O system is a framework for supporting device drivers. A variety of drivers for a variety of platform are provided in the ECOS configuration package. These include drivers for serial devices, Ethernet, flash memory interfaces, and various I/O interconnects such as PCI (peripheral component interface) and USB (universal serial bus).
  • 38. I/O System Device drivers and other higher-layer software may be implemented directly on the HAL if this is appropriate. If specialized kernel type functions are needed, then the device driver is implemented using kernel APIs. The kernel provides a three-level interrupt model. Interrupt service routines (ISR): invoked response to a hardware interrupt. Hardware interrupts are delivered with minimal intervention to an ISR. Deferred service routines (DSR): invoked in response to a request by an ISR. DSR will run when it is safe to do so without interfering with the scheduler. Threads: the client to the driver. Threads are able to make all API (Application Programming Interface) calls and in particular are allowed to wait on mutexes and conditional variables.
  • 39. SCORE TABLE EZA MAAN ARGEL SUAISO 9 9 0 9
  • 40. WHAT ARE STANDARD C LIBRARIES?
  • 41. Standard C Libraries A complete standard C run-time is provided. Also included is a complete math run time library for high-level mathematic functions, including a complete IEEE-754 floating-point library for those platforms without hardware floating points.
  • 42. SCORE TABLE EZA MAAN ARGEL SUAISO 9 9 3 9
  • 43. WHAT IS AN ECOS SCHEDULER?
  • 44. ECOS Scheduler Bitmap Scheduler a bitmap scheduler supports multiple priority levels but only 1 thread can exist at each priority level at a given time . Description: because there is only 1 thread, at most, at each priority level, the scheduler does not have to make a decision as to which thread at a given priority level should be dispatched next.
  • 45. ECOS Scheduler Multi-queue scheduler The multi-queue scheduler is appropriate if the number of threads is dynamic or if the desirable to have multiple threads at the same priority level. The multilevel scheduler is also needed if time slicing is needed.
  • 46. SCORE TABLE EZA MAAN ARGEL SUAISO 9 9 6 9
  • 47. WHAT IS ECOS THREAD Synchronization?
  • 48. ECOs Thread Synchronization Mutexes the mutex (mutual exclusion lock) is used to enforce mutually exclusive access to a resource. Allowing only 1 thread at a time to gain access. Has 2 states: locked and unlocked. When a mutex is locked by 1 thread, any other thread attempting to lock the mutex is blocked; when the mutex is unlocked. Then one of the threads blocked on this mutex is unblocked and allowed to lock the mutex and gain access on the resource.
  • 49. ECOs Thread Synchronization Semaphores counting semaphores are suited to enabling threads to wait until an event has occurred. The event may be generated by a producer thread. Or by a DSR in response to a hardware interrupt. Description If counter is ZERO, an attempt by a consumer thread to wait on the semaphore will block until some other thread or a DSR post a new event to the semaphore If counter is greater than ZERO then an attempt to wait on the semaphore will consume one event.
  • 50. ECOs Thread Synchronization Conditional Codes a conditional variable is used to block a thread until a particular condition is TRUE. Condition variables are used with mutexes to allow multiple thread to access shared data. They can be used to implement monitors of the type in ECOs. Event Flags is a 32-bit word used as a synchronization mechanism. Application code may associate a different event with each bit on the flag. A thread can wait for either a single event or a combination of events by checking 1 or multiple bits in a corresponding flag.
  • 51. ECOs Thread Synchronization Mailboxes also called message boxes are an ECOs synchronization mechanism that provides a means for 2 threads to exchange information. Can be configured for blocking/non-blocking on both the send and receive side. Spinlocks A spinlock is a flag that a thread can check before executing a particular piece of code. Basically, only 1 thread at a time can acquire a spinlock. Any other thread attempting to acquire the same lock will keep trying (spinning) until it can acquire a lock.
  • 52. SCORE TABLE EZA MAAN ARGEL SUAISO 9 9 9 9
  • 53. Tiebreaker Question: 1 point WHAT IS ECOS TINY OS?
  • 54. TinyOS   The ECOS system provides a more streamlined approach for an embedded OS than one based on a commercial general-purpose OS. Such as an embedded version of the LINUX, thus ECOS and similar system are better suited for small embedded system with tight requirement on memory, processing -time, real-time response, power consumption, and so on. TINYOS takes the process of streamlining in much a further point, resulting in a very minimal OS for embedded systems.
  • 55. SCORE TABLE CONGRATULATIONS TIPQC! EZA MAAN ARGEL SUAISO 9 9 10 9
  • 56. Wireless Sensor Networks TINYOS was developed primarily for use with networks of small wireless sensor. A number of treads have enabled the development of extremely compact, low-power sensors. The well-known Moore’s law continuous to drive down the size of memory and processing logic elements. Smaller size in turn reduces power consumption. Low power and small size treads are also evident in wireless communication hardware, micro-electrical sensors (MEMS) and transducers.
  • 57. Tiny OS Goals Allow high concurrency in a typical wireless sensor network application, the devices are concurrency intensive. Several different flow of data must be kept moving simultaneously. Operate with limited resources the target platform for Tiny OS will have limited memory and computational resources and run on batteries or solar power.
  • 58. Tiny OS Goals Adapt to hardware evolution should be possible to upgrade the hardware with little or no software change, if the functionality is the same. Support a wide range of applications applications exhibit a wide range of requirements in terms of lifetimes, communication, sensing and so on.
  • 59. Tiny OS Goals Support a diverse set of platforms as with preceding point, a general-purpose embedded OS is desirable. Be robust once deployed, a sensor network must run unattended for months or years. Ideally, there should be redundancy both within a single system and across the network of sensors.
  • 60. TINYOS Components An embedded software system built using TINYOS consists of a set of small modules called components, each of which performs a simple task or set of tasks and which interface with each other and with hardware is limited and well-defined ways. The other software module is the scheduler. And because the TINYOS doesn’t utilize kernels, there is no actual OS. But we can take the following view. The application area of interest is the wireless sensor network (WSN).
  • 61. TINYOS Components The meet the demanding software requirement of this application, rigid, simplified software architecture is dedicated, consisting of components. The TINYOS development community has implemented a number of open-source components that provide the basic functions needed for the WSN application.
  • 62. TINYOS Scheduler The TINYOS scheduler operates across all components. Virtually all embedded systems using TINYOS will be uni-processor systems, so that only one task among all the tasks in all the components may execute at a time. The scheduler is a separate component. It is the only portion of TINYOS that must be present in any system.
  • 63. TINYOS resource Interface Provides a simple but powerful set of conventions for dealing with resources. Three (3) abstractions for resources are used in TINYOS. Dedicated: a resource that a subsystem needs exclusive access at all times Virtualized: the virtualized abstraction may be used when the underlying resource need not be protected by mutual exclusion. Shared: the shared resource abstraction provides access to a dedicated resource through an arbiter component. The arbiter enforces mutual conclusion allowing only the user at a time to have access to a resource and enabling the client to lock the resource.
  • 64. TINYOS resource Interface The shared resource configuration provides the following interfaces to a client: Resource: the client issues a request at this interface requesting access to the resource. Resource Requested: this is similar to the resource interface. In this case, the client is able to hold onto a resource until the client is notified that someone else needs the resource.
  • 65. TINYOS resource Interface Resources Configure: this interface allows a resource to be automatically configured just before a client is granted access to it. Resource-Specific interfaces: once a client has access to resource, it uses resource-specific interfaces to exchange data and control information with the resource.
  • 66. THE END THANK YOU VERY MUCH!