In Yasa, you can define workspaces. Workspaces are devided into projects. The example shown here is a part of a workspace. The labeled project ELLF uses a brand new scheduling algorithm called Enhanced Least Laxity First (ELLF) developed at the University of Rostock.
In the screenshot area you can see some meaningful screenshots of the project configuration, the execution, and the evaluation of projects to demonstrate the features of YASA. First, the process parameters must be given:
|Process ||Period ||Offset ||Deadline ||Computation
|1 ||2000 ||500 ||2000 ||500 |
|2 ||1800 ||500 ||1800 ||300 |
|3 ||2200 ||500 ||2200 ||200 |
|4 ||2300 ||500 ||2300 ||500 |
|5 ||2400 ||500 ||2500 ||900 |
The first two screenshots show you two of the most important configuration dialogs in YASA - the task properties and the environment properties.
In YASA there exists a full range of evaluation possibilities. The following screenshots show the timing diagrams of the given process set using the Least Laxity First (ELLF) and the Enhanced Least Laxity First (LLF) scheduling algorithms in task order. Task order means that every row in a single diagram is showing one task timing behavior.
Besides the task order, you can study the timing results in environment order to compare the behavior in different environments, e.g., schedulers, ticks or executives. The diagram contains information of the environments in each row to compare tasks, mutexes, and prozessors behavior.
This is a collection of projects I teach in my lectures scheduling analysis. The given process set should be scheduled with Rate Monotonic Scheduling (RMS) and Deadline Monotonic Scheduling (DMS).
The task for the students is to determine whether or not all processes are meeting there deadlines. First, they have to assign a priority regarding to the scheduling policy to all processes, as shown in the last two columns. I know, the criterium of RMS that the deadline is equal to the period is not satisfied, but this is just a lesson!
|Process ||Period ||Deadline ||Computation |
|A ||100000 ||2000 ||300 ||1 (low) ||4 |
|B ||10000 ||10000 ||1000 ||2 ||1 (low) |
|C ||5000 ||5000 ||2000 ||4 ||2 |
|D ||5700 ||1000 ||500 ||3 ||5 |
|E ||3300 ||3300 ||100 ||5 ||3 |
|F ||700 ||700 ||100 ||6 (high) ||6 (high) |
In the next screenshot, you see four child windows, to configure to project. The left upper windows is designed to enter task properties. Beside the task window, you can see the environment configuration of the environment using the rate monotonic scheduler. The left bottom window shows the properties of the whole project, e.g., work directory to store temporally files, scheduling time, and the time of system scheduler (tick). On the right side, you can see the workspace settings used in all projects.
After configuration of the project you can execute the compiled program on your environment. During runtime, there will be a logfile generated. In YASA, you can evaluate the logfile later and compare the results in the different forms explained above. Please note, that besides the timing diagrams there exists a table view to compare statistically results of the simulation.
In the timing diagrams you can see that the Rate Monotonic Scheduler (RMS) is missing some deadline because of violating the described scheduling criterium. Normally, the process set must not scheduled with RMS.
Other plentiful Features
Yasa contains further features, such as calculating of ceiling priorities in subject to the priority type of
the selected scheduler. It is able to run the process sets with most of the
well known synchronization protocols:
In the next screenshot, you can see a mutex configuration dialog. You can see that the mutex Disc_Access is used by two processes, Floppy and Temperaturesensor. For each of them, YASA has determined the ceiling priorities. For example, the ceiling priority of the Floppy is 5 if a priority based scheduler is used. But, if a deadline based scheduler is used such as Earliest Deadline First (EDF), the ceiling priority is equal to 100000 s.
- Priority Inheritance Protocol (PIP)
- Ceiling Semaphore Protocol (CSP)
- Priority Ceiling Protocol (PCP)
- Dynamic Priority Ceiling Protocol (DPCP)
- Kernelized Monitor (KP)
- Stack Resource Policy (SRP)
This is totally new, that priority ceilings are depending on the scheduler priority type. We call this feature Dynamically Priority. Normally, synchronization protocols are implemented using one type of priority. In YASA, the type of priority can be set during configuration implicit by chosing the scheduler.