Exercise 2 Requirements
Exercise 2 Requirements
Please thoroughly read Chapters 3 & 4 in RTECS with Linux and RTOS
This lab is written to be completed with embedded Linux running on the DE1-SoC, Jetson or
Beagle board(s), but you are welcome to complete it using FreeRTOS, VxWorks or Zephyr as an
option. Note that you will either have to adapt the example code or use equivalent examples
from the links above for RT-Clock, use of tasks in place of pthreads, and the appropriate board to
boot FreeRTOS, VxWorks, or Zephyr as described on the course main web page.
Exercise #2 Requirements:
1) [5 points] If youre using embedded Linux, make yourself an account on your Jetson TK1
system (or alternate of your choice). To do this, use the reset button if the system is locked,
use our well-known ubuntu password to login, and then use sudo adduser, enter the well-
known password, and enter user information as you see fit. Add your new user account as a
sudoer using visudo right below root with the same privileges (if you need help with
vi, heres a quick reference or reference card use arrows to position cursor, below root hit
Esc, i for insert, type username and privileges as above, and when done, Esc, :, wq).
The old unix vi editor was one of the first full-screen visual editors it still has the advantage
of being found on virtually any Unix system in existence, but is otherwise cryptic along
with Emacs it is still widely used in IT, by developers and systems engineers, so its good to
know the basics. If you really dont like vi or Emacs, your next best bet is nano for Unix
systems. Do a quick sudo whoami to demonstrate success. Logout of ubuntu and test your
login, then logout. Use Alt+Print-Screen to capture your desktop and save as proof you set
up your account. Note that you can always get a terminal with Ctrl+Alt+t key combination.
If you dont like the desktop, you can try GNOME Flashback and please play around with
customizing your account as you wish. Make sure you can access our class web page on
Firefox (or default browser) and set your home page to
http://mercury.pr.erau.edu/~siewerts/cs415/. Overall, make sure you are comfortable with
development, debug, compiler general native or cross-development tools and document and
demonstrate that you know them.
2) [15 points] Read the paper "Architecture of the Space Shuttle Primary Avionics Software
System" [available on Canvas], by Gene Carlow and provide an explanation and critique of
the frequency executive architecture. What advantages and disadvantages does the frequency
executive have compared to the real-time threading and tasking implementation methods for
real-time software systems? Please be specific about the advantages and disadvantages and
provide at least 3 advantages as well as 3 disadvantages.
3) [50 points] Download Feasibility example code and build it on a Jetson or alternate system of
your choice (or ECES Linux if you have not mastered the Jetson yet) and execute the code.
Compare the tests provided to analysis using Cheddar for the first 4 examples. Now,
implement the remaining examples [5 more] that we reviewed in class (found here).
Complete analysis for all three policies using Cheddar (RM, EDF, LLF). In cases where RM
fails, but EDF or LLF succeeds, explain why. Cheddar uses both service simulations over
the LCM of the periods as well as feasibility analysis based on the RM LUB and scheduling-
point/completion-test algorithms, referred to as Worst Case Analysis. Does your modified
Feasibility code agree with Cheddar analysis in all 5 additional cases? Why or why not?
4) [30 points] Provide 3 constraints that are made on the RM LUB derivation and 3 assumptions
as documented in the Liu and Layland paper and in Chapter 3 of RTECS2. Finally, list 3 key
derivation steps in the RM LUB derivation that you either do not understand or that you
would consider tricky math. Attempt to describe the rationale for those steps as best you
can do based upon reading in Chapter 3 of RTECS2.
Grading Rubric
Note: Linux manual pages can be found for all system calls (e.g. fork()) on the web at
http://linux.die.net/man/ - e.g. http://linux.die.net/man/2/fork
In this class, youll be expected to consult the Linux manual pages and to do some reading and
research on your own, so practice this in this first lab and try to answer as many of your own
questions as possible, but do come to office hours and ask for help if you get stuck.
Upload all code and your report completed using MS Word or as a PDF to Canvas and include
all source code (ideally example output should be integrated into the report directly, but if not,
clearly label in the report and by filename if test and example output is not pasted directly into
the report). Your code must include a Makefile so I can build your solution on Ubuntu VB-
Linux or a Jetson. Please zip or tar.gz your solution with your first and last name embedded
in the directory name.