发明名称 |
Method and system for providing stack memory management in real-time operating systems |
摘要 |
A method and system for providing memory management in a Real-Time Operating System (RTOS) based system are provided. The method includes creating a plurality of tasks with a two level stack scheme comprising a first level stack and a second level stack, scheduling a first task for execution by moving a stack pointer from the first level stack to the second level stack, determining whether the first task is pre-empted, allocating the second level stack to the first task in a second state if the first task is not pre-empted, changing an active task for execution, determining whether the first task relinquishes control from the second state and is waiting for a resource, moving the stack pointer back from the second level stack to the first level stack if the first task relinquishes itself and providing the second level stack for use by a second task. |
申请公布号 |
US9529625(B2) |
申请公布日期 |
2016.12.27 |
申请号 |
US201514676366 |
申请日期 |
2015.04.01 |
申请人 |
Samsung Electronics Co., Ltd |
发明人 |
Vrind Tushar;Somu Kandaswamy Balaji;Udava Raju Siddappa;Indukuri Venkata Raju |
分类号 |
G06F9/46;G06F9/48;G06F9/50 |
主分类号 |
G06F9/46 |
代理机构 |
The Farrell Law Firm, P.C. |
代理人 |
The Farrell Law Firm, P.C. |
主权项 |
1. A method of providing memory management in a Real-Time Operating System (RTOS) based system, the method comprising:
creating, by a task generator, a plurality of tasks with a two level stack scheme including a first-level stack and a second-level stack; scheduling, by a task scheduler, a first task for execution by moving a stack pointer from the first-level stack to the second-level stack; determining whether the first task is pre-empted; allocating the second-level stack to the first task in a second state if the first task is not pre-empted; changing, by the task scheduler, an active task for execution; determining whether the first task relinquishes control from the second state and is waiting for a resource; moving the stack pointer back from the second-level stack to the first-level stack if the first task relinquishes itself; and providing the second-level stack for use by a second task. |
地址 |
KR |