pret-os for biomedical devices a part iv project
TRANSCRIPT
PRET-OSfor Biomedical Devices
A Part IV Project
The Next Generation of Real-Time Embedded Systems...
... from the biomedical domain:
Bionic eyes Mind-controlled limbs Robotic surgery Healthcare robots
The Next Generation of Real-Time Embedded Systems...
... from the biomedical domain:
More sensitive More accurate and precise
More responsive More emotional
Bionic eyes Mind-controlled limbs Robotic surgery Healthcare robots
In th
e fu
ture
To Fulfil this Cyborg Dream...
... biomedical devices will be designed with:
More complex algorithms.
Greater processing power.
That demand To meet
Real-time requirements.
To Fulfil this Cyborg Dream...
... biomedical devices will be designed with:
More complex algorithms.
Greater processing power.
That demand To meet
Real-time requirements.
ForeCLanguage
Multicore MicroBlaze
Static timing analysis
Managing the use of multicores in time- and safety-critical applications is an open research problem!
Our
tool
s
Project Aims
• Design a time-predictable operating system for executing parallel programs.
• PRET-OS: Precision Timed Operating System.– Light-weight OS.– Allows realtime and non-realtime programs to
execute on the same multicore system.– Preserve the timing properties of realtime
programs.– Provide good worst-case and average-case
execution performance for all programs.
End
Extra Details
The ForeC Language
• ForeC is a language for writing deterministic parallel programs for safety-critical embedded systems with multicore processors.– The worst-case performance must be guaranteed.
“My program should always finish in 1 sec.”– We have focused on compiling ForeC to execute
directly on embedded multicores (i.e., without an OS).
– We have a naïve approach for executing ForeC on an OS.
Reasons for using an OS
• Write platform-independent programs that use a common API (code reuse).
• Automatically manage the system resources.• Allow different programs to run in harmony on
the same system.
Current Implementation for Embedded Multicores
ForeC Program(multithreaded)
Static thread distribution
Target Multicore
Threads on the same core are statically scheduled.
Current Implementation for OS Execution (naïve)
ForeC Program(multithreaded)
Static thread distribution
Target Multicore
Each program is wrapped by a Pthread and scheduled by the OS.
Operating System
ForeC threads are still statically scheduled!
Threads on the same core are statically scheduled.
Related Project Aims
• Investigate the use of ForeC to write general purpose parallel programs.– Only average-case performance is important.
“My program should run as fast as possible.”– Desktop systems use an OS on top of a complex,
speculative multicore processor to achieve good average-case performance.
Related Project Aims
1. Improve on the naïve approach by mapping ForeC threads to Pthreads.– The OS will dynamically schedule the threads.– Outcome: Simple dynamic execution of ForeC.
2. Change the OS thread scheduling policy.– Only allow preemptive scheduling at local tick
boundaries.– Outcome: Custom scheduler for running
synchronous programs.
Related Project Aims
3. Reduce the overheads. – Map ForeC threads to kernel threads to minimise
the runtime layers between the ForeC threads and the cores.
– Outcome: More efficient implementation.
4. Group small ForeC threads into the same kernel thread.– Minimise the overhead in creating/destroying
kernel threads.– Outcome: Clustering algorithm.
Test Programs
• Mandelbrot
• Life
End