{"config":{"indexing":"full","lang":["en"],"min_search_length":3,"prebuild_index":false,"separator":"[\\s\\-]+"},"docs":[{"location":"","text":"Cheddar 3.3 Developer Guide Lab-STICC technical report Frank Singhoff, Hai Nam Tran Introduction This guide provides some basic information to help developers understand the process of developing new features in Cheddar.","title":"Introduction"},{"location":"#introduction","text":"This guide provides some basic information to help developers understand the process of developing new features in Cheddar.","title":"Introduction"},{"location":"pages/cheddaradl/","text":"Cheddar ADL In this page, we provide practical instructions to modify models in Cheddar ADL and generate Ada and Java code. A description of the Cheddar ADL is available in the Cheddar Architecture Description Language reference guide Cheddar ADL models are written in the EXPRESS language. Ada and Java code generation is done by Platypus . The models and the code generator are both located in the trunk/src/platypus folder. Source files The source files are located at trunk/src/platypus/src/cheddar-dev . They are files with .exp extension. ARINC653.exp : configuration model of ARINC 653 cheddar_adl.exp : description of Cheddar ADL cheddar_adl_java.exp : description of Cheddar ADL but limited for Java code generation cheddar_api.exp : description of the API to call the kernel cheddar_config.exp : constants in Cheddar framework (kernel and GUI) cheddar_graphical_editor.exp : entities for Cheddar GUI cheddar_language.exp : model of Cheddar scheduler language cheddar_mapping.exp : cheddar_optimization.exp : to be removed cheddar_result.exp : descriptions of Cheddar framework result Cheddar_SymbolicLanguage.exp : cheddar_types.exp : primitive types of Cheddar ADL DFG_Nodes.exp : express2cheddar.exp : platypus-toolbox.exp : cheddar_design_patterns.exp , cheddar_applicability_constraints.exp , FT_Taxonomy.exp , Applicability_Constraints_Main_Structure.exp , DP_Graph.exp : model of design patterns Code generation scripts Four scripts are used to generate Ada and Java code from Cheddar ADL models. $ ./compile.sh $ ./generate.sh $ ./split.sh $ ./move.sh compile.sh Compile Cheddar ADL models in the Pharo virtual machine Note : due to some cyclic dependencies between cheddar_adl.exp and cheddar_mapping.exp and the way they are handled by Platypus, the compilation process can be in a blocked state and cannot be fixed by just simply undoing changes. If that happens, the solution is to delete and download again the shared folder. A good practice is to make sure that changes cheddar_adl.exp are stable before updating cheddar_mapping.exp generate.sh Generate Ada and Java code. The results are in generated_code folder. Attention, Ada code is generated into only two .adb and .ads files. split.sh Split the generated Ada code into smaller files move.sh Move files to their corresponding folders in the framework","title":"Cheddar ADL"},{"location":"pages/cheddaradl/#cheddar-adl","text":"In this page, we provide practical instructions to modify models in Cheddar ADL and generate Ada and Java code. A description of the Cheddar ADL is available in the Cheddar Architecture Description Language reference guide Cheddar ADL models are written in the EXPRESS language. Ada and Java code generation is done by Platypus . The models and the code generator are both located in the trunk/src/platypus folder.","title":"Cheddar ADL"},{"location":"pages/cheddaradl/#source-files","text":"The source files are located at trunk/src/platypus/src/cheddar-dev . They are files with .exp extension. ARINC653.exp : configuration model of ARINC 653 cheddar_adl.exp : description of Cheddar ADL cheddar_adl_java.exp : description of Cheddar ADL but limited for Java code generation cheddar_api.exp : description of the API to call the kernel cheddar_config.exp : constants in Cheddar framework (kernel and GUI) cheddar_graphical_editor.exp : entities for Cheddar GUI cheddar_language.exp : model of Cheddar scheduler language cheddar_mapping.exp : cheddar_optimization.exp : to be removed cheddar_result.exp : descriptions of Cheddar framework result Cheddar_SymbolicLanguage.exp : cheddar_types.exp : primitive types of Cheddar ADL DFG_Nodes.exp : express2cheddar.exp : platypus-toolbox.exp : cheddar_design_patterns.exp , cheddar_applicability_constraints.exp , FT_Taxonomy.exp , Applicability_Constraints_Main_Structure.exp , DP_Graph.exp : model of design patterns","title":"Source files"},{"location":"pages/cheddaradl/#code-generation-scripts","text":"Four scripts are used to generate Ada and Java code from Cheddar ADL models. $ ./compile.sh $ ./generate.sh $ ./split.sh $ ./move.sh","title":"Code generation scripts"},{"location":"pages/cheddaradl/#compilesh","text":"Compile Cheddar ADL models in the Pharo virtual machine Note : due to some cyclic dependencies between cheddar_adl.exp and cheddar_mapping.exp and the way they are handled by Platypus, the compilation process can be in a blocked state and cannot be fixed by just simply undoing changes. If that happens, the solution is to delete and download again the shared folder. A good practice is to make sure that changes cheddar_adl.exp are stable before updating cheddar_mapping.exp","title":"compile.sh"},{"location":"pages/cheddaradl/#generatesh","text":"Generate Ada and Java code. The results are in generated_code folder. Attention, Ada code is generated into only two .adb and .ads files.","title":"generate.sh"},{"location":"pages/cheddaradl/#splitsh","text":"Split the generated Ada code into smaller files","title":"split.sh"},{"location":"pages/cheddaradl/#movesh","text":"Move files to their corresponding folders in the framework","title":"move.sh"},{"location":"pages/compile/","text":"Download and Compile Cheddar In this page, you can find instructions to download and compile Cheddar from the source code on Linux and Windows. Linux Required software To checkout the source code and compile Cheddar, the following software are required: GNAT compiler GPL, we recommend using GNAT 2021 available on the AdaCore website https://www.adacore.com/download/more GtkAda 2021, also available on the AdaCore website above A svn client is necessary. The default subversion works fine on Linux The instructions have been applied to compile Cheddar on Ubuntu 18.04 and 20.04 64 bits. Please contact us if you encounter problems on other Linux distributions. Steps to follow Checkout Cheddar source code - the trunk folder on the svn repository http://beru.univ-brest.fr/svn/CHEDDAR/trunk/ Install GNAT 2021 Install GtkAda 2021 Move to [CHEDDAR]/trunk/src with [CHEDDAR] is the folder used to checkout the Cheddar source code Edit \"script/compilelinux.bash\" in the script folder according to: Cheddar source code location \u2013 CHEDDAR_DIR Your GNAT installation \u2013 variable GNAT_DIR Your GtkAda installation \u2013 variable GTKADA_DIR Run \u201csource script/compilelinux.bash\u201d Run \u201cmake cheddar\u201d to produce cheddar binary. One compiled, you should have a binary either called \u201ccheddar\u201d and you can then run it from the directory where the binary is stored Example This is just an example, you need to adapt CHEDDAR_DIR, GNAT_DIR, and GTKADA according to your installation The trunk repository is checked out at /home/user/cheddar/trunk GNAT is installed at /opt/gnat2021 GtkAda is installed at /opt/gtkada2021 File: compilelinux.bash export CHEDDAR_DIR=/home/user/cheddar/trunk export GNAT_DIR=/opt/gnat2021 export GTKADA_DIR=/opt/gtkada2021 Commands to compile and run Cheddar in the terminal $: cd /home/user/cheddar/trunk/src $: source script/compilelinux.bash $: make cheddar (...compilation, can take a while) $ : ./cheddar Known issues Some texts, fonts and pixmaps do not appear in the Cheddar editor: Please check that your linux installation contains GTK 2.0 libraries Please also check Cheddar FAQ for font selection with GTK 2.0 GNAT 2014 and gcc ABI compatibility problem on Ubuntu 18.04, 20.04, Fedora 24 and Mint 18.1 (64 bits) $: cd [GNAT_DIR]/libexec/gcc/x86_64-pc-linux-gnu/4.7.4/d $: mv ld ld-orig Missing gcc-multilib $: sudo apt-get install gcc-multilib Ocarina is not compiled together with Cheddar on Mint 18.1 Cheddar is running slowly on Ubuntu 20.04LTS $: sudo apt-get install appmenu-gtk2-module libffi.so.6 is missing Fix: the detailed explanation of the problem can be found at https://stackoverflow.com/questions/61875869/ubuntu-20-04-upgrade-python-missing-libffi-so-6 Locate libffi.so.7 in your system $ find /usr/lib -name \"libffi.so*\" Create a simlink named libffi.so.6 that points to libffi.so.7 sudo ln -s /usr/path/to/libffi.so.7 /usr/lib/path/to/libffi.so.6 Windows To compile Cheddar with Windows: Checkout Cheddar source code from its SVN repository. Official source code is in the \u201ctrunk\u201d folder of the SVN repository. Install GNAT 2021 on your Windows machine. Install GtkAda for GNAT 2021 on your Windows machine. Launch windows \u201ccmd\u201d command Move to CHEDDAR/trunk/src/scripts Edit \u201ccompilewindows.bat\u201d according to your GNAT, GtkAda and Cheddar source code installation location Run \u201ccompilewindows.bat\u201d Go back to CHEDDAR/trunk/src Run \u201cgnatmake \u2013Pgpr/gprfilename\u201d where gprfilename is the gpr file you want to compile. To produce cheddar, the gpr file for windows is \"gpr/cheddar.gpr\" Virtual Box (outdated) To compile Cheddar in a prepared Virtual Box image: Install Virtual Box on Your Computer Download the Cheddar Image from here: http://beru.univ-brest.fr/~singhoff/VBOX/cheddar_developers.vdi Create a new Ubuntu 32 bits machine, and load the Cheddar image You can now start your virtual machine. Select you keyboard layout (english by default) and connect you: password and login are both \"cheddar\" Open a Terminal and go to the directory contained the Cheddar Sources (~/CHEDDAR/trunk/src) Do \"source compilelinux32.bash\" to fix the environment Do \"make\" to compile (or \"make cheddar\" if you just want the Cheddar GUI binary) Enjoy and don't forget to give us feedbacks","title":"Download and Compile Cheddar"},{"location":"pages/compile/#download-and-compile-cheddar","text":"In this page, you can find instructions to download and compile Cheddar from the source code on Linux and Windows.","title":"Download and Compile Cheddar"},{"location":"pages/compile/#linux","text":"","title":"Linux"},{"location":"pages/compile/#required-software","text":"To checkout the source code and compile Cheddar, the following software are required: GNAT compiler GPL, we recommend using GNAT 2021 available on the AdaCore website https://www.adacore.com/download/more GtkAda 2021, also available on the AdaCore website above A svn client is necessary. The default subversion works fine on Linux The instructions have been applied to compile Cheddar on Ubuntu 18.04 and 20.04 64 bits. Please contact us if you encounter problems on other Linux distributions.","title":"Required software"},{"location":"pages/compile/#steps-to-follow","text":"Checkout Cheddar source code - the trunk folder on the svn repository http://beru.univ-brest.fr/svn/CHEDDAR/trunk/ Install GNAT 2021 Install GtkAda 2021 Move to [CHEDDAR]/trunk/src with [CHEDDAR] is the folder used to checkout the Cheddar source code Edit \"script/compilelinux.bash\" in the script folder according to: Cheddar source code location \u2013 CHEDDAR_DIR Your GNAT installation \u2013 variable GNAT_DIR Your GtkAda installation \u2013 variable GTKADA_DIR Run \u201csource script/compilelinux.bash\u201d Run \u201cmake cheddar\u201d to produce cheddar binary. One compiled, you should have a binary either called \u201ccheddar\u201d and you can then run it from the directory where the binary is stored","title":"Steps to follow"},{"location":"pages/compile/#example","text":"This is just an example, you need to adapt CHEDDAR_DIR, GNAT_DIR, and GTKADA according to your installation The trunk repository is checked out at /home/user/cheddar/trunk GNAT is installed at /opt/gnat2021 GtkAda is installed at /opt/gtkada2021 File: compilelinux.bash export CHEDDAR_DIR=/home/user/cheddar/trunk export GNAT_DIR=/opt/gnat2021 export GTKADA_DIR=/opt/gtkada2021 Commands to compile and run Cheddar in the terminal $: cd /home/user/cheddar/trunk/src $: source script/compilelinux.bash $: make cheddar (...compilation, can take a while) $ : ./cheddar","title":"Example"},{"location":"pages/compile/#known-issues","text":"Some texts, fonts and pixmaps do not appear in the Cheddar editor: Please check that your linux installation contains GTK 2.0 libraries Please also check Cheddar FAQ for font selection with GTK 2.0 GNAT 2014 and gcc ABI compatibility problem on Ubuntu 18.04, 20.04, Fedora 24 and Mint 18.1 (64 bits) $: cd [GNAT_DIR]/libexec/gcc/x86_64-pc-linux-gnu/4.7.4/d $: mv ld ld-orig Missing gcc-multilib $: sudo apt-get install gcc-multilib Ocarina is not compiled together with Cheddar on Mint 18.1 Cheddar is running slowly on Ubuntu 20.04LTS $: sudo apt-get install appmenu-gtk2-module libffi.so.6 is missing Fix: the detailed explanation of the problem can be found at https://stackoverflow.com/questions/61875869/ubuntu-20-04-upgrade-python-missing-libffi-so-6 Locate libffi.so.7 in your system $ find /usr/lib -name \"libffi.so*\" Create a simlink named libffi.so.6 that points to libffi.so.7 sudo ln -s /usr/path/to/libffi.so.7 /usr/lib/path/to/libffi.so.6","title":"Known issues"},{"location":"pages/compile/#windows","text":"To compile Cheddar with Windows: Checkout Cheddar source code from its SVN repository. Official source code is in the \u201ctrunk\u201d folder of the SVN repository. Install GNAT 2021 on your Windows machine. Install GtkAda for GNAT 2021 on your Windows machine. Launch windows \u201ccmd\u201d command Move to CHEDDAR/trunk/src/scripts Edit \u201ccompilewindows.bat\u201d according to your GNAT, GtkAda and Cheddar source code installation location Run \u201ccompilewindows.bat\u201d Go back to CHEDDAR/trunk/src Run \u201cgnatmake \u2013Pgpr/gprfilename\u201d where gprfilename is the gpr file you want to compile. To produce cheddar, the gpr file for windows is \"gpr/cheddar.gpr\"","title":"Windows"},{"location":"pages/compile/#virtual-box-outdated","text":"To compile Cheddar in a prepared Virtual Box image: Install Virtual Box on Your Computer Download the Cheddar Image from here: http://beru.univ-brest.fr/~singhoff/VBOX/cheddar_developers.vdi Create a new Ubuntu 32 bits machine, and load the Cheddar image You can now start your virtual machine. Select you keyboard layout (english by default) and connect you: password and login are both \"cheddar\" Open a Terminal and go to the directory contained the Cheddar Sources (~/CHEDDAR/trunk/src) Do \"source compilelinux32.bash\" to fix the environment Do \"make\" to compile (or \"make cheddar\" if you just want the Cheddar GUI binary) Enjoy and don't forget to give us feedbacks","title":"Virtual Box (outdated)"},{"location":"pages/devcheddar/","text":"Develop Cheddar It is useful to understand the Cheddar framework in order to develop and implement new analysis features in Cheddar. Cheddar framework Cheddar framework consists of three parts (1) Cheddar architecture description language (ADL), (2) meta-workbench Platypus and (3) Cheddar scheduling analyzer. Cheddar ADL is a simple architecture description language devoted to realtime scheduling theory. An ADL provides the abstraction of components, connections and deployments. A component is an entity modeling a part of the system. ADLs allow the specification of both hardware parts and software parts of the system with dedicated kinds of components. Connections usually model relationships between components and finally, deployments specify how software components are deployed on hardware components. The meta-workbench Platypus is used to implement the code generators. A part of Cheddar is automatically generated from its meta-models through a model driven engineering (MDE) process. Cheddar scheduling analyzer includes three parts: kernel, graphical user interface (GUI) and data parsers. The kernel consists in RTES component models and analysis features. RTES component models provide an abstraction of a system including its hardware and software components. It includes Ada class files that are automatically generated by the meta-workbench Platypus. Several analysis features are implemented in the kernel. However, regarding the scope of this thesis, we only focus on schedulability test and scheduling simulation analysis features. Cheddar kernel can be called alone and embedded in a toolset. The framework is embedded in specific tool sets such as AADLInspector and TASTE (ESA) (http://taste.tuxfamily.org). Cheddar was used to automate the computation of task WCRT in an architecture model refinement approach implemented in RAMSES. The GUI can be used by the users to design a system model, apply analysis methods and receive results. The data parser supports importing and exporting a RTES architecture model in Cheddar ADL or AADL The process of developing an analysis feature for a new system model in Cheddar framework consists of three steps. Extending Cheddar ADL. For more information, see section Cheddar ADL Implementing analysis feature. For more information, see section Cheddar Kernel Updating Cheddar GUI and Data Parser Cheddar GUI Which IDE should I use ? Any text editors can be used to develop Cheddar. Developers are free to choose which they want for this purpose. However, in case you do not have any preference, we provide here some simple instructions to develop Cheddar using GNAT Studio - an IDE shipped with GNAT2021. Cheddar is a GNAT project. The project file is located in trunk/src/gpr/cheddar.gpr . GNAT Studio installation If you download and install GNAT2021 from the AdaCore website, GNAT Studio is already installed on your PC. To start GNAT studio, simply follow the steps below. $ cd [CHEDDAR]/trunk/src $ source script/compilelinux.bash $ gnatstudio GNAT project: cheddar.gpr GNAT studio can open GNAT project. The IDE provides standard features such as code suggestion, code refactoring, code formatting and interactive debugging.","title":"Develop Cheddar"},{"location":"pages/devcheddar/#develop-cheddar","text":"It is useful to understand the Cheddar framework in order to develop and implement new analysis features in Cheddar.","title":"Develop Cheddar"},{"location":"pages/devcheddar/#cheddar-framework","text":"Cheddar framework consists of three parts (1) Cheddar architecture description language (ADL), (2) meta-workbench Platypus and (3) Cheddar scheduling analyzer. Cheddar ADL is a simple architecture description language devoted to realtime scheduling theory. An ADL provides the abstraction of components, connections and deployments. A component is an entity modeling a part of the system. ADLs allow the specification of both hardware parts and software parts of the system with dedicated kinds of components. Connections usually model relationships between components and finally, deployments specify how software components are deployed on hardware components. The meta-workbench Platypus is used to implement the code generators. A part of Cheddar is automatically generated from its meta-models through a model driven engineering (MDE) process. Cheddar scheduling analyzer includes three parts: kernel, graphical user interface (GUI) and data parsers. The kernel consists in RTES component models and analysis features. RTES component models provide an abstraction of a system including its hardware and software components. It includes Ada class files that are automatically generated by the meta-workbench Platypus. Several analysis features are implemented in the kernel. However, regarding the scope of this thesis, we only focus on schedulability test and scheduling simulation analysis features. Cheddar kernel can be called alone and embedded in a toolset. The framework is embedded in specific tool sets such as AADLInspector and TASTE (ESA) (http://taste.tuxfamily.org). Cheddar was used to automate the computation of task WCRT in an architecture model refinement approach implemented in RAMSES. The GUI can be used by the users to design a system model, apply analysis methods and receive results. The data parser supports importing and exporting a RTES architecture model in Cheddar ADL or AADL The process of developing an analysis feature for a new system model in Cheddar framework consists of three steps. Extending Cheddar ADL. For more information, see section Cheddar ADL Implementing analysis feature. For more information, see section Cheddar Kernel Updating Cheddar GUI and Data Parser Cheddar GUI","title":"Cheddar framework"},{"location":"pages/devcheddar/#which-ide-should-i-use","text":"Any text editors can be used to develop Cheddar. Developers are free to choose which they want for this purpose. However, in case you do not have any preference, we provide here some simple instructions to develop Cheddar using GNAT Studio - an IDE shipped with GNAT2021. Cheddar is a GNAT project. The project file is located in trunk/src/gpr/cheddar.gpr .","title":"Which IDE should I use ?"},{"location":"pages/devcheddar/#gnat-studio-installation","text":"If you download and install GNAT2021 from the AdaCore website, GNAT Studio is already installed on your PC. To start GNAT studio, simply follow the steps below. $ cd [CHEDDAR]/trunk/src $ source script/compilelinux.bash $ gnatstudio","title":"GNAT Studio installation"},{"location":"pages/devcheddar/#gnat-project-cheddargpr","text":"GNAT studio can open GNAT project. The IDE provides standard features such as code suggestion, code refactoring, code formatting and interactive debugging.","title":"GNAT project: cheddar.gpr"},{"location":"pages/devexample/","text":"Example","title":"Framework Examples"},{"location":"pages/devexample/#example","text":"","title":"Example"},{"location":"pages/gui/","text":"GUI We provide on this page information to help developers understand the process of implementing GUI features in Cheddar. Draw scheduling simulation In this section, we explain the events from the click of the run simulation button to the draw of the simulation timeline. GUI : run simulation button in cheddar.glade Callback : on_toolbutton11_clicked() in cheddar.adb . This function shows the scheduling_simulation_draw.glade widget which then asks for the simulation period. This widget has two buttons OK and Cancel . The OK button is registered to the callback named read_scheduling_duration_and_draw_scheduling() . Simulation : the main entry point of the simulation process is read_scheduling_duration_and_draw_scheduling() in graphical_editor.scheduling_simulations_callbacks.adb . This function does the tasks below: Compute the period to draw Compute the period to run the simulation Call the simulation (either call_customized_simulation() or call_uncustomized_simulation() ) In call_customized_simulation , we call cheddar framework with parameters specified by the user (configurable in scheduling options widget), retrieve the responses and the computed event table. Then we proceed to draw the simulation timeline by calling draw_scheduling_events() . Drawing : the main entry point of the drawing process is draw_scheduling_events() in graphical_editor.draw_scheduling.adb Drawing information is stored in a draw_scheduling_record . In a record, we have a system model, scheduling simulation parameters, an event table which is the result of the simulation, a Cairo Context , and sizes (width and height) of the canvas. type draw_scheduling_record is new gtk_widget_record with record tasks : tasks_set; resources : resources_set; messages : messages_set; buffers : buffers_set; processors : processors_set; period : Natural; zoomed_period : Natural; start_draw : Natural; sched : scheduling_table_ptr; Cr : Cairo_Context; current_width : gint; current_height : gint; end record; The drawing is done on the widget drawing_area_cheddar in cheddar.glade . The binding between the widget and the Cairo_Context is done in the initialize() function. drawing_area_cheddar := gtk_drawing_area(Get_Object (builder, \"drawing_area_cheddar\")); graphical_editor.draw_scheduling.Initialize (graphical_editor.draw_scheduling.draw_scheduling);","title":"Cheddar GUI"},{"location":"pages/gui/#gui","text":"We provide on this page information to help developers understand the process of implementing GUI features in Cheddar.","title":"GUI"},{"location":"pages/gui/#draw-scheduling-simulation","text":"In this section, we explain the events from the click of the run simulation button to the draw of the simulation timeline. GUI : run simulation button in cheddar.glade Callback : on_toolbutton11_clicked() in cheddar.adb . This function shows the scheduling_simulation_draw.glade widget which then asks for the simulation period. This widget has two buttons OK and Cancel . The OK button is registered to the callback named read_scheduling_duration_and_draw_scheduling() . Simulation : the main entry point of the simulation process is read_scheduling_duration_and_draw_scheduling() in graphical_editor.scheduling_simulations_callbacks.adb . This function does the tasks below: Compute the period to draw Compute the period to run the simulation Call the simulation (either call_customized_simulation() or call_uncustomized_simulation() ) In call_customized_simulation , we call cheddar framework with parameters specified by the user (configurable in scheduling options widget), retrieve the responses and the computed event table. Then we proceed to draw the simulation timeline by calling draw_scheduling_events() . Drawing : the main entry point of the drawing process is draw_scheduling_events() in graphical_editor.draw_scheduling.adb Drawing information is stored in a draw_scheduling_record . In a record, we have a system model, scheduling simulation parameters, an event table which is the result of the simulation, a Cairo Context , and sizes (width and height) of the canvas. type draw_scheduling_record is new gtk_widget_record with record tasks : tasks_set; resources : resources_set; messages : messages_set; buffers : buffers_set; processors : processors_set; period : Natural; zoomed_period : Natural; start_draw : Natural; sched : scheduling_table_ptr; Cr : Cairo_Context; current_width : gint; current_height : gint; end record; The drawing is done on the widget drawing_area_cheddar in cheddar.glade . The binding between the widget and the Cairo_Context is done in the initialize() function. drawing_area_cheddar := gtk_drawing_area(Get_Object (builder, \"drawing_area_cheddar\")); graphical_editor.draw_scheduling.Initialize (graphical_editor.draw_scheduling.draw_scheduling);","title":"Draw scheduling simulation"},{"location":"pages/kernel/","text":"Kernel In this page, we provide technical information of analysis features implemented in Cheddar Kernel Feasibility tests Location: trunk/src/framework/feasibility_tests Cheddar implements various feasibility tests. Processor utilization feasibility tests can be applied on other scheduling policies. Furthermore, WCRT can be computed on periodic tasks. Those WCRTs can integrate delays related to shared resources (i.e. shared resource blocking time). Finally, few feasibility tests for hierarchical architectures have also been implemented. Scheduling simulator Location: trunk/src/framework/scheduling_simulator Several classical scheduling algorithms are implemented in Cheddar scheduling analyzer. Users may experiment classical schedulers such as RM, DM, EDF, LLF or POSIX 1003 policies, both preemptive and non preemptive. Those algorithms have been implemented in the context of uniprocessor scheduling and also in the context of global multiprocessor scheduling Scheduling simulations can be run for usual task models such as periodic, aperiodic and sporadic. Tasks can be constrained by dependencies related to shared resources, precedence or communication task relationships. From an architecture model, various performance criteria can be extracted from scheduling simulation: worst/best/average response time, probability distribution of response time, worst/best/average shared resource blocking time, number of context switch or preemption, deadlock, priority inversion or specific properties defined with a domain specific language. Furthermore, specific schedulers or task models can also be specified with the help of the Cheddar ADL. Those specific schedulers allow users to extend the scheduling analysis capability without a deep understanding of Cheddar design and implementation. This feature allows users to quickly adapt the scheduling verification tool to their needs (i.e. implementing a scheduling method which does not exist yet in Cheddar). Architecture generator Location: trunk/src/framework/architecture_generator Priority assignment algorithms Location: trunk/src/framework/priority_assignment Cache analysis Location: trunk/src/framework/cache_system_analysis MILS security analysis Location: trunk/src/framework/MILS Design pattern analysis Location: trunk/src/framework/design_pattern_analysis Network analysis Location: trunk/src/framework/network_analysis","title":"Cheddar Kernel"},{"location":"pages/kernel/#kernel","text":"In this page, we provide technical information of analysis features implemented in Cheddar Kernel","title":"Kernel"},{"location":"pages/kernel/#feasibility-tests","text":"Location: trunk/src/framework/feasibility_tests Cheddar implements various feasibility tests. Processor utilization feasibility tests can be applied on other scheduling policies. Furthermore, WCRT can be computed on periodic tasks. Those WCRTs can integrate delays related to shared resources (i.e. shared resource blocking time). Finally, few feasibility tests for hierarchical architectures have also been implemented.","title":"Feasibility tests"},{"location":"pages/kernel/#scheduling-simulator","text":"Location: trunk/src/framework/scheduling_simulator Several classical scheduling algorithms are implemented in Cheddar scheduling analyzer. Users may experiment classical schedulers such as RM, DM, EDF, LLF or POSIX 1003 policies, both preemptive and non preemptive. Those algorithms have been implemented in the context of uniprocessor scheduling and also in the context of global multiprocessor scheduling Scheduling simulations can be run for usual task models such as periodic, aperiodic and sporadic. Tasks can be constrained by dependencies related to shared resources, precedence or communication task relationships. From an architecture model, various performance criteria can be extracted from scheduling simulation: worst/best/average response time, probability distribution of response time, worst/best/average shared resource blocking time, number of context switch or preemption, deadlock, priority inversion or specific properties defined with a domain specific language. Furthermore, specific schedulers or task models can also be specified with the help of the Cheddar ADL. Those specific schedulers allow users to extend the scheduling analysis capability without a deep understanding of Cheddar design and implementation. This feature allows users to quickly adapt the scheduling verification tool to their needs (i.e. implementing a scheduling method which does not exist yet in Cheddar).","title":"Scheduling simulator"},{"location":"pages/kernel/#architecture-generator","text":"Location: trunk/src/framework/architecture_generator","title":"Architecture generator"},{"location":"pages/kernel/#priority-assignment-algorithms","text":"Location: trunk/src/framework/priority_assignment","title":"Priority assignment algorithms"},{"location":"pages/kernel/#cache-analysis","text":"Location: trunk/src/framework/cache_system_analysis","title":"Cache analysis"},{"location":"pages/kernel/#mils-security-analysis","text":"Location: trunk/src/framework/MILS","title":"MILS security analysis"},{"location":"pages/kernel/#design-pattern-analysis","text":"Location: trunk/src/framework/design_pattern_analysis","title":"Design pattern analysis"},{"location":"pages/kernel/#network-analysis","text":"Location: trunk/src/framework/network_analysis","title":"Network analysis"}]}