------------------------------------------------------------------------------ ------------------------------------------------------------------------------ -- Cheddar is a GNU GPL real time scheduling analysis tool. -- This program provides services to automatically check performances -- of real time architectures. -- -- Copyright (C) 2002-2010, by Frank Singhoff, Alain Plantec, Jerome Legrand -- -- The Cheddar project was started in 2002 by -- the LISyC Team, University of Western Britanny. -- -- Since 2008, Ellidiss technologies also contributes to the development of -- Cheddar and provides industrial support. -- -- This program is free software; you can redistribute it and/or modify -- it under the terms of the GNU General Public License as published by -- the Free Software Foundation; either version 2 of the License, or -- (at your option) any later version. -- -- This program is distributed in the hope that it will be useful, -- but WITHOUT ANY WARRANTY; without even the implied warranty of -- MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the -- GNU General Public License for more details. -- -- You should have received a copy of the GNU General Public License -- along with this program; if not, write to the Free Software -- Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA -- -- -- Contact : cheddar@listes.univ-brest.fr -- ------------------------------------------------------------------------------ -- Last update : -- $Rev: 97 $ -- $Date: 2007-07-20 15:17:15 +0200 (Fri, 20 Jul 2007) $ -- $Author: singhoff $ ------------------------------------------------------------------------------ ------------------------------------------------------------------------------ with Systems; use Systems; package architecture_models is -- Monocore model, preemptive scheduler, solution of exercise 1 -- procedure model0(sys : out system); -- Monocore model, non preemptive scheduler, solution of exercise 1 -- procedure model3(sys : out system); -- Multicore models -- procedure model1(sys : out system); procedure model2(sys : out system); -- DM global/multiprocessor scheduling -- to test job level task migration and time unit task migration -- example from the real time scheduling course of F. Singhoff -- procedure global_DM_with_job_level_migration_scheduling(sys : out system); procedure global_DM_with_time_unit_level_migration_scheduling(sys : out system); -- Polling server -- procedure polling1(sys : out system); procedure polling2(sys : out system); -- Deferrable server -- procedure Deferrable1(sys : out system); procedure Deferrable2(sys : out system); -- Pfair scheduling -- example from the real time scheduling course of F. Singhoff procedure PF1(sys : out system); ---------------------------------------------------- -- Set of architecture to test XML printer/parser ---------------------------------------------------- -- empty XML file procedure test1_xml(sys : out system); -- 2 cores only procedure test2_xml(sys : out system); -- 1 core/1 address space/several tasks procedure test3_xml(sys : out system); -- 2 core/1 address space/several tasks procedure test4_xml(sys : out system); -- 1 core/1 address space/several tasks with offsets procedure test5_xml(sys : out system); -- 2 cores with tasks and shared resources procedure test6_xml(sys : out system); -- 2 cores with tasks and buffers procedure test7_xml(sys : out system); -- 2 cores with tasks various task dependency procedure test8_xml(sys : out system); -- 1 core with tasks and users defined schedulers/user defined tasks -- and user defined parameters procedure test9_xml(sys : out system); -- 2 cores with tasks and messages procedure test10_xml(sys : out system); -- 2 cores with tasks and static deployments procedure test11_xml(sys : out system); -- 2 cores with tasks and dynamic deployments procedure test12_xml(sys : out system); -- 2 mono core processors with tasks procedure test13_xml(sys : out system); -- csg example procedure csg_xml(sys : out system); -- csp example procedure csp_xml(sys : out system); -- 1 core with tasks and network -- in order to generate an example of network procedure test_network_xml(sys : out system); ---------------------------------------------------- -- Set of architecture to test scheduling with offset ---------------------------------------------------- -- Audsley set procedure offset_test1(sys : out System); -- Audsley set with 3 transactions procedure offset_test2(sys : out System); -- Audsley, same set as test2 but with 1 transaction after task transformation procedure offset_test3(sys : out System); ---------------------------------------------------- -- Architectures to test cache behavior ---------------------------------------------------- -- 2 cores with tasks and shared resources to test data cache access procedure cache1(sys : out system); ---------------------------------------------------- -- Architectures to handle ARINC 653 systems ---------------------------------------------------- -- Cyclic hierarchical scheduler : each partition is activated one during a given -- quantum -- procedure arinc653_cyclic(sys : out system); -- off-line partition scheduling hierarchical scheduler : partitions are activated -- according to a event table (off line scheduling) -- procedure arinc653_offline(sys : out system); end architecture_models;