Esempio n. 1
0
        public bool WriteFile(CTaskExecutionTrace executionTrace,
                              string FolderPath, string TaskSetID, CConfiguration config)
        {
            int    ii;
            string sMain = "";
            CTask  task;
            string sFullFileName = FolderPath + "\\" + TaskSetID + ".txt";

            _message = "";

            try
            {
                for (ii = 0; ii < executionTrace.Count; ii++)
                {
                    task = executionTrace.Get(ii);
                    if (task != null)
                    {
                        sMain = sMain + ii.ToString() + "\t" + task.ID;
                    }
                    else //Write blank if no task ID
                    {
                        sMain = sMain + ii.ToString() + "\t" + " ";
                    }

                    sMain = sMain + "\r\n";
                }
                writeToFile(sFullFileName, sMain);
                return(true);
            }
            catch (Exception e)
            {
                _message = e.Message;
                return(false);
            }
        }
Esempio n. 2
0
        //Return Task Set after loading from
        //File is formatted like
        //0     T1
        //1     T1
        //2     T2
        //...
        public CTaskExecutionTrace ParseTaskExecutionTrace(string
                                                           FileContents)
        {
            string[] sArray, sArray_1;

            long  time;
            CTask task;
            CTaskExecutionTrace et = new CTaskExecutionTrace();

            try
            {
                sArray = FileContents.Split('\n');

                foreach (string s in sArray)
                {
                    sArray_1 = s.Split('\t');
                    time     = Convert.ToInt32(sArray_1[0]);
                    task     = new CTask(sArray_1[1], 0, 0, 0, 0, 0);
                    et.Add(time, task);
                }
                return(et);
            }
            catch (Exception e)
            {
                _message = e.Message;
                return(null);
            }
        }
Esempio n. 3
0
        /// <summary>
        ///
        /// </summary>
        /// <param name="taskSet"></param>
        /// <param name="maxTime"></param>
        /// <returns></returns>
        public bool SimulateExecution(CTaskSet taskSet, long maxTime)
        {
            _ExecutionTrace = new CTaskExecutionTrace();
            _message        = "";
            SortedList allTasks = new SortedList();


            //Reverse Priority Order in Task Set
            taskSet.ReversePriorityOrder();

            //Convert Task Set to SortedList
            CTask [] array = taskSet.GetAllTasksInPriorityOrder();

            if (maxTime <= 0)
            {
                _message = "Time ro run simulation is not correct";
                return(false);
            }


            foreach (CTask t in array)
            {
                allTasks.Add(t.iPriority, t);
            }

            //Get Reverse Priority Tasks
            //allTasksReverseOrder = ReversePriorities(allTasks);

            try
            {
                if (findResponseTime(allTasks, 0, maxTime) < 0)
                {
                    return(false);
                }
                else
                {
                    return(true);
                }
            }
            catch (Exception e)
            {
                _message = e.Message;
                return(false);
            }
        }