

Study with the several resources on Docsity
Earn points by helping other students or get them with a premium plan
Prepare for your exams
Study with the several resources on Docsity
Earn points to download
Earn points by helping other students or get them with a premium plan
Exam questions for a bachelor of engineering (honours) in electronic engineering course focusing on real time systems software development. The exam consists of three parts, covering topics such as scheduling algorithms, process synchronization, and exception handling. Students are required to answer questions related to priority scheduling vs round robin scheduling, drawing a time diagram for an earliest deadline first system, the fundamental assumptions of rate monotonic scheduling, and more.
Typology: Exams
1 / 3
This page cannot be seen from the preview
Don't miss anything!


(NFQ Level 8)
Answer THREE questions. Examiners: Prof. G. Hurley Dr. S. Foley Mr. F. O’Reilly
Q1. (a) Using examples, compare and contrast the Priority and Round Robin scheduling algorithms. (6 Marks)
(b) The following tasks arrive at a scheduler for an Earliest Deadline First system. Draw a time diagram, showing the scheduling until all tasks have completed execution.
Task Arrival Time Execution Time Absolute Deadline 1 1 10 20 2 5 6 15 3 12 10 40 4 15 6 30 5 30 10 50 (10 marks)
(c) What are the fundamental assumptions of the Rate Monotonic scheduling system? Determine the schedulability of the following tasks using a Rate Monotonic algorithm.
Task Execution Time Period a 25 90 b 65 220 c 30 140 d 110 600 e 60 520 f 90 720 (18 marks) [Total: 34 marks]
Q2 (a) Describe the term used and the overhead which occurs when switching from one
process to another in a multitasking system? Explain a technique which allows for parallel execution in programs but minimises this overhead. How does it achieve this and what information is tracked? (7 marks)
(b) Provide code to implement both a spin-locking and blocking semaphore operation primitives. Explain the difference in operation between the two types of primitive and what are their respective benefits for synchronisation. (10 marks)
(c) Why are exceptions used in programming? Using sample code, show the similarities and differences in exception processing between C++ and Java. (11 marks)
(d) Explain what factors should you be aware of when using while and if-then-else structures in time critical applications? How would you structure the code, providing examples? (6 marks) [Total: 34 marks]
Q3. (a) What are the risks/danger when using multiple threads/processes to access common data? Using diagrams explain how a semaphore can be used to restrict access to critical data so as to serialise the access in a multi-threaded process. How is this normally used? (10 marks)
(b) Timing of function calls and returns is of key importance in Client Server Messaging systems. Name and explain the two terms used to describe timing/co- ordination in request/response systems. Give the Acronyms and names of three systems allow for remote client/server function calls. (8 marks)
(c) In Java what is needed to implement multi-threading and what are the standard operation calls associated with it? Write a program in Java which creates 5 threads. Each thread outputs once a second its own thread number and a count variable starting at 10 which it decrements until 0. On reaching 0 the thread terminates. (16 marks) [Total: 34 marks]