1. 2015
Chapter-10 L5: "Embedded Systems - Architecture,
Programming and Design" , Raj Kamal, Publs.: McGraw-Hill,
Inc.
1
REAL TIME OPERATING SYSTEMS
Lesson-5:
Memory Management Functions
2. 2015
Chapter-10 L5: "Embedded Systems - Architecture,
Programming and Design" , Raj Kamal, Publs.: McGraw-Hill,
Inc.
2
1. Memory allocation
3. 2015
Chapter-10 L5: "Embedded Systems - Architecture,
Programming and Design" , Raj Kamal, Publs.: McGraw-Hill,
Inc.
3
Memory allocation
When a process is created, the memory
manager allocates the memory addresses
(blocks) to it by mapping the process-
address space.
Threads of a process share the memory
space of the process
4. 2015
Chapter-10 L5: "Embedded Systems - Architecture,
Programming and Design" , Raj Kamal, Publs.: McGraw-Hill,
Inc.
4
Memory manager of the OS─ secure, robust
and well protected.
No memory leaks and stack overflows
Memory leaks means attempts to write in
the memory block not allocated to a process
or data structure.
Stack overflow means that the stack
exceeding the allocated memory block(s)
Memory Management after Initial
Allocation
5. 2015
Chapter-10 L5: "Embedded Systems - Architecture,
Programming and Design" , Raj Kamal, Publs.: McGraw-Hill,
Inc.
5
Memory Managing Strategy for a system
Fixed-blocks allocation
Dynamic -blocks Allocation
Dynamic Page-Allocation
Dynamic Data memory Allocation
6. 2015
Chapter-10 L5: "Embedded Systems - Architecture,
Programming and Design" , Raj Kamal, Publs.: McGraw-Hill,
Inc.
6
Memory Managing Strategy for a system
Dynamic address-relocation
Multiprocessor Memory Allocation
Memory Protection to OS functions
7. 2015
Chapter-10 L5: "Embedded Systems - Architecture,
Programming and Design" , Raj Kamal, Publs.: McGraw-Hill,
Inc.
7
2. Memory allocation in RTOSes
8. 2015
Chapter-10 L5: "Embedded Systems - Architecture,
Programming and Design" , Raj Kamal, Publs.: McGraw-Hill,
Inc.
8
Memory allocation in RTOSes
RTOS may disable the support to the
dynamic block allocation, MMU support to
dynamic page allocation and dynamic
binding as this increases the latency of
servicing the tasks and ISRs.
9. 2015
Chapter-10 L5: "Embedded Systems - Architecture,
Programming and Design" , Raj Kamal, Publs.: McGraw-Hill,
Inc.
9
Memory allocation in RTOSes
RTOS may not support to memory
protection of the OS functions, as this
increases the latency of servicing the tasks
and ISRs.
User functions are then can run in kernel
space like kernel functions
10. 2015
Chapter-10 L5: "Embedded Systems - Architecture,
Programming and Design" , Raj Kamal, Publs.: McGraw-Hill,
Inc.
10
Memory allocation in RTOSes
RTOS may provide for disabling of the
support to memory protection among the
tasks as this increases the memory
requirement for each task
11. 2015
Chapter-10 L5: "Embedded Systems - Architecture,
Programming and Design" , Raj Kamal, Publs.: McGraw-Hill,
Inc.
11
3. Memory manager functions
12. 2015
Chapter-10 L5: "Embedded Systems - Architecture,
Programming and Design" , Raj Kamal, Publs.: McGraw-Hill,
Inc.
12
Memory Manager functions
(i) use of memory address space by a
process,
(ii) specific mechanisms to share the
memory space and
(iii) specific mechanisms to restrict sharing
of a given memory space
13. 2015
Chapter-10 L5: "Embedded Systems - Architecture,
Programming and Design" , Raj Kamal, Publs.: McGraw-Hill,
Inc.
13
Memory Manager functions
(iv) optimization of the access periods of a
memory by using an hierarchy of memory
(caches, primary and external secondary
magnetic and optical memories).
Remember that the access periods are in the
following increasing order: caches, primary
and external secondary magnetic and then
or optical.
14. 2015
Chapter-10 L5: "Embedded Systems - Architecture,
Programming and Design" , Raj Kamal, Publs.: McGraw-Hill,
Inc.
14
4. Fragmentation Memory Allocation
Problems
15. 2015
Chapter-10 L5: "Embedded Systems - Architecture,
Programming and Design" , Raj Kamal, Publs.: McGraw-Hill,
Inc.
15
Fragmented not continuous memory
addresses in two blocks of a process
Time is spent in first locating next free
memory address before allocating that to
the process.
A standard memory allocation scheme is to
scan a linked list of indeterminate length to
find a suitable free memory block.
When one allotted block of memory is de-
allocated, the time is spent in first locating
next allocated memory block before de-
allocating that to the process.
16. 2015
Chapter-10 L5: "Embedded Systems - Architecture,
Programming and Design" , Raj Kamal, Publs.: McGraw-Hill,
Inc.
16
Fragmented not continuous memory
addresses in two blocks of a process
The time for allocation and de-allocation of
the memory and blocks are variable (not
deterministic) when the block sizes are
variable and when the memory is
fragmented.
In RTOS, this leads to unpredicatble task
performance
17. 2015
Chapter-10 L5: "Embedded Systems - Architecture,
Programming and Design" , Raj Kamal, Publs.: McGraw-Hill,
Inc.
17
5. Memory management Example
18. 2015
Chapter-10 L5: "Embedded Systems - Architecture,
Programming and Design" , Raj Kamal, Publs.: McGraw-Hill,
Inc.
18
RTOS COS-II
Memory partitioning
A task must create a memory partition or
several memory partitions by using function
OSMemCreate ( )
Then the task is permitted to use the
partition or partitions.
A partition has several memory blocks.
19. 2015
Chapter-10 L5: "Embedded Systems - Architecture,
Programming and Design" , Raj Kamal, Publs.: McGraw-Hill,
Inc.
19
RTOS COS-II
Task consists of several fixed size memory
blocks.
The fixed size memory blocks allocation
and de-allocation time takes fixed time
(deterministic).
OSMemGet ( )─ to provide a task a
memory block or blocks from the partition
OSMemPut ( ) ─ to release a memory block
or blocks to the partition
20. 2015
Chapter-10 L5: "Embedded Systems - Architecture,
Programming and Design" , Raj Kamal, Publs.: McGraw-Hill,
Inc.
20
Summary
21. 2015
Chapter-10 L5: "Embedded Systems - Architecture,
Programming and Design" , Raj Kamal, Publs.: McGraw-Hill,
Inc.
21
We learnt
• Memory manager allocates memory to the
processes and manages it with appropriate
protection.
• Static and dynamic allocations of memory.
• Manager optimizes the memory needs and
memory utilization
22. 2015
Chapter-10 L5: "Embedded Systems - Architecture,
Programming and Design" , Raj Kamal, Publs.: McGraw-Hill,
Inc.
22
We learnt
• An RTOS may disable the support to the
dynamic block allocation, MMU support to
dynamic page allocation and dynamic
binding as this increases the latency of
servicing the tasks and ISRs.
• An RTOS may or may not support memory
protection in order to reduce the latency and
memory needs of the processes.
• An RTOS may provide of running user
functions in kernel space
23. 2015
Chapter-10 L5: "Embedded Systems - Architecture,
Programming and Design" , Raj Kamal, Publs.: McGraw-Hill,
Inc.
23
End of Lesson 5 of Chapter 10
on
Memory Management