More Related Content
More from محمدعبد الحى (16)
Rtos
- 4. Basic Definitions
• What are the Real-Time systems?
– “Those systems in which the correctness of system
depends not only on the logical result of the
computation, but also on the time at which the results
are produced”
Copyright © 2012 Embedded Systems
Committee
- 5. Basic Definitions
• Specifications of a Real-Time system include
both:
– Logical: Produces correct outputs.
– Temporal: Produces outputs at the right time.
Copyright © 2012 Embedded Systems
Committee
- 6. Basic Definitions
• Types of Real-Time requirements are:
– Hard: Failure to meet constraint is fatal.
– Soft: Late completion degrades software quality.
Copyright © 2012 Embedded Systems
Committee
- 7. Basic Definitions
• Misconceptions:
– “Real-Time computing is equivalent to fast
computing”
– Truth is:“Real-Time computing is equivalent to
predictable computing”
Copyright © 2012 Embedded Systems
Committee
- 8. Basic Definitions
• Misconceptions:
– “Real-Time programming assembly coding”
– Truth is: “It is better to automate (as much as
possible) Real-Time system design, instead of relying
on a clever hand-crafted code”
Copyright © 2012 Embedded Systems
Committee
- 9. Basic Definitions
• Misconceptions:
– “Real-Time means performance engineering”
– Truth is: “In Real-Time computing, timeliness is
always more important than performance.
Copyright © 2012 Embedded Systems
Committee
- 10. Basic Definitions
• Misconceptions:
– RTOS introduce considerable amount of overhead
on CPU
– Truth is: An RTOS typically only require between 1%
to 4% of a CPU time.
Copyright © 2012 Embedded Systems
Committee
- 14. Introduction to RTOS
• Basic Services provided by OS:
–
–
–
–
–
Task Management.
Intertask Communication & synchronization.
Timers.
Device I/O Supervision.
Dynamic Memory Allocation.
Copyright © 2012 Embedded Systems
Committee
- 15. Introduction to RTOS
• What are tasks?
- A task─ an independent process.
- No task can call another task. unlike the normal C function
which can call another function.
void task(void)
{
/*Some Initialization Code*/
for(;;)
{
/*Task Code*/
}
}
Copyright © 2012 Embedded Systems
Committee
- 17. Introduction to RTOS
• What is context?
PC
ROM
RAM
SP
Copyright © 2012 Embedded Systems
Committee
CPU
Registers
- 18. Introduction to RTOS
• What is context?
ROM
Task 1CPU
Registers
RAM
Task2
Stack
Task1 Control Block
Task1
Stack
Task2 Control Block
Copyright © 2012 Embedded Systems
Committee
Task 2CPU
Registers
- 21. Introduction to RTOS
• What is the difference between RTOS & GPOS?
Task
Switching
Time
GPOS
RTOS
Number of Tasks That Can Be Scheduled
Copyright © 2012 Embedded Systems
Committee
- 22. Introduction to RTOS
• Characteristics of an RTOS?
–
–
–
–
–
Reliability
Predictability
Performance
Compactness
Scalability
Copyright © 2012 Embedded Systems
Committee
- 24. Scheduling Algorithms
• What is a scheduler?
– It is part of the kernel which decides which task can
run when.
– There are many algorithms for scheduling & they can
be categorized into two main categories.
Copyright © 2012 Embedded Systems
Committee
- 51. Reentrancy
x=2
Task 1: R1=1
Task 2: R1=2
mov R1,x;
mov R1,x;
add R1,1;
mov x,R1;
Context Switching
Task2 is back to waiting
Copyright © 2012 Embedded Systems
Committee
- 54. Reentrancy
• When to doubt your function reentrancy?
– When your function accesses a global variable while
this variable is accessed in:
• ISR
• Another task
• Hardware module.
Copyright © 2012 Embedded Systems
Committee
- 55. Reentrancy
• How to make a non-reentrant function reentrant?
– Either using critical section or any task
synchronization services provided by the OS.
Copyright © 2012 Embedded Systems
Committee
- 56. Reentrancy
• Critical Section:
– Context Switching always happens after an interrupt.
– If I disabled interrupts during the time I don’t want
the schedule nor any ISR interrupts the running task
then this part of code is reentrant.
char x;
void foo1(void)
{
DI;
x++;
EI;
}
Copyright © 2012 Embedded Systems
Committee
- 58. Shared Resources
• Tasks always race each other for resources.
• Resources could be many thing like HW
modules, memory & even CPU time.
• We have to control the tasks resources access to
avoid data corruption or basically any
undesirable behavior.
• Semaphores are just one methods of controlling
resources access.
Copyright © 2012 Embedded Systems
Committee
- 64. RTOS APIs “uCOS-III”
•
•
•
•
•
•
•
•
•
OSTaskCreate (Task ptr, arg, prio, stack size)
OSSemCreate (Sem ptr, counter)
OSSemPost (Sem ptr)
OSSemPend (Sem ptr,Timeout)
OSTmrCreate (Tmr ptr, period, callback)
OSTmrStart, OSTmrStop (Tmr ptr)
OSMemCreate (mem ptr, block size, n blocks)
OSMemPut (mem ptr, blk ptr)
OSMemGet (mem ptr)
Copyright © 2012 Embedded Systems
Committee
- 65. References
• uC/OS-II, Jean Labrosse
• Operating Systems: Design & Implementation,
Andrew Tanenbaum
• Embedded.com
Copyright © 2012 Embedded Systems
Committee