--- tags: SEII --- # Klausur 2020 Textinput box where you type in your answers. You don't have to use tools, no coding (maybe pseudo code), no drawing. ### 01_IntroductionWCET - There could be an example system - state if it's a soft or hard real time system - meeting deadlines? - Define real time systems - differentiate - response times - Obstacle Avoidance - not relevant to know all about the forces and calculations - accelerometer not important - skip all until `page 47` (Terms and Definitions) - Terms and definitions - Code fragment given, Posix pthread main, question would be explain what is a job and what is a task in this implementation - Explain Job vs Task and Thread vs Process - example is on `page 48` - how would you estimate/determine the WCET in a practical example? - maybe with some code - also some information about the hardware - Qualify approaches and compare them, justify answer - What influences wcet | hardware, software - How could you determine WCET in example on `page 49` - variability important for calculation WCET -> execution time varies depending on the variables - timing by measurements | profiling - characterize a given system (soft | hard, fast | slow) ### 02_Scheduling - why do we need scheduling? -> parallism - from the scheduling respective it does not matter how i implement a task (Thread or processes) - memory protection for process, slower more overhead - threads faster but no protection - periodic time Ti, Capacity Ci - for Ci we usally use the WCET, it cant be longer than that - relation between Scheduling and WCET is depicted on slide 8 - wcet is primary input for schedulability analysis in cheddar - schedulability analysis is used to determine if all tasks meet the deadline - Processors - not always cpu, bus system can be a processor - messages on the bus are the units of calculation, they take a certain amount of time depending on the bitrate 1 Mbit/s = 1 ms - 135bits -> 135µs - the same theory of U can be used for system without tasks - U is the some of all Ci and Ti U < 0.69 - practical examples - Jitter - if the area between is not the same for every interval, there will be a measurement error for calculating the area under the curve (e.g. we have a threshold of 84, than we can deploy the airbag for example if the area is 85) - keep jitter low - Classification of scheduling policies - almost no one uses Fair scheduling policies - when to use what - round robin and time division round robin -> tasks of the same priority - priority base scheduling is important - RMS important - Cyclic executive : split your code in functions - endless for loop, tasks are just functions, wait inbetween - inside tasks no endless loop - sum up all times, needs to be less than hyperperiod - in exam there might be a taskset, like on `slide 27` - question is: find a schedule for cyclic executive - create sudo code - also pseudo code, do analysis if schedule is feasable - Priority based scheduling - static vs fixed vs dynamic - dynamic -> deadline when task has to be finished - RM - we look at periodic time (T1, T2, T3) - the fastest task gets highest priority - execution time not relevant for determining the priority - exam: Taskset, T1, C1 given, assign priorities, show that there is a feasable schedule or not, do all of the tasks meet the deadlines - with rm you calculate the overall utilization, `Page 34` - we have to calculate response time analysis in an iteration (output is also used as input) - exam: taskset (T1, T2), assign priorities, Liu/Layland/hyperbolic, then to be 100% sure run response time analysis -> example on `page 38` - Theoretical question: compare Liu / layland with response time analysis -> what would be best in which context? - or equation given, compare explain variables (Ci, Ti, n, Ri, Tk, hp(i)) - Handling Aperiodic Jobs - we dont process something aperiodic immediately, could lead to deadline miss - Practical questions from assignment 2 ### 03_Resources - posix - post, init(0|1 unlocked or locked), wait, destroy - Semaphores - Deadlock - 4 conditions, if you can get rid of one there is no deadlock anymore - exam: piece of code with tasks, information about runtime of tasks, ressources and where its taken and released -> is there a possible deadlock in this piece of code | or there is a deadlock -> how can you get rid of the deadlock - priority inversion - exam. code sample, can inversion occur? - how can you fix this code? - will be based on posix api - is there a deadlock in it - response time analysis with blocking times - determine the worst case response time for certain task - wcet != responsetime - exam: something like on `slide 46` - operating system overheads - exam: explain the meaning of all the symbols and indices in this equation `slide 50` ### 04_RTOS - Posix - How can you implement periodic processing with code `slide 45` - Time handling - exam: theoretical, task 1/2, periodic times, then implement that `slide 57` ### 05_UMLRealtime - Exam : again a taskset, Ti, Ci and Deadlines and priorities given, find out other columns `slide 58` - describe in text how those SPT tags would look like - Describe what it would like in a diagram `slide 52-54` and `slide 59` ### 06_Memory - exam: describe what could be a possible cause of fragmentation, solutions, consequences - dont have to know the specifics of c++ - case study given, event queue, events, pool: describe the situation, what kind of memory allocation would you propose in this situation - pool, fixed case, smart pointer -> you don't have to know how it's actually implemented - example with reference counting, little bit of code and the question could be: what type of memory pattern would you propose and what would be the consequences? - reference counting cant handle circles -> code: how you break up the cicles that reference counting works, weak pointers and ? pointers - assignment -> use a memory pool ### 07_FaultTolerance - not too many theoretical questions about that - 10 rules for developing Safety criticial code - Code fragments: how could you improve this samples? whats the problem, how could you do it better? - what rules are violated - an example system, availabilities of each component, apply Triple Modular Redundancy Pattern, calculate overall availability - bug detection - what rules are violated - how could you improve availability - what patterns would you use in this situation, why (safety reliability patterns) `slide 2` - `slide 55`: describes a certain situation, decide which pattern could be helpful and why?