Given the following description, answer the questions below.
- A hard real-time (RT) system is one where the failure to meet any deadline results in loss of life(s), injury, and/or costly equipment or property. Typically the time constraints to avoid loss are a fraction of a second. Example systems include cars, missiles, anti-missiles, airplane flight control, Mars Landers, and elevators. RT systems are event driven, cyclic (i.e. the same operations are repeated frequently), and highly concurrent (i.e. need to deal with multiple different events simultaneously).
Reliability, Accuracy, and Availability are typically the most important system goals. Often the RT Systems must be Safe, Secure, and/or Scalable. Predictability (i.e. confidence that the RT System do its work at the acceptable levels of the most important qualities is critical. Goals like User Friendliness, Reuse, Portability, Maintainability are important, but less so than the previous goals.
A RT a system is usual run in a hardware environment that is constrained by weight and/or power consumption (e.g. a missile, spaceship), which in turn constrains the system to use of lower-power CPU's, and constrains the amount and types of memory and permanent storage. Systems that operate high-radiation (e.g. space, a nuclear reactor) are constrained to use hardware that is certified for that environment. Weight, Power, or Certificate requirements can also prevent a system from adopting newer hardware, if later in the project it is discovered that the desired software capabilities, exceed the initial hardware's abilities.
To achieve predictability, a RT System must run in an operation system (RTOS) or run-time environment where (a) the scheduling policies the highest priority (based on deadlines) component(s) that can be run on the currently available resources (e.g. memory), (b) supports rules for share resources (i.e. memory, device, databases) that minimize contention (i.e. 2 or more components trying to read or write to the shared resources at the same times) and minimize delays for the components that have the highest priority.
The architect has to design an architecture where each component:
1. get its work done by its deadline;
2. are distribute over the available CPU resources;
3. obeys rules for shared resources ("plays nice");
4. can be prioritized by one of the deadline-based schemes;
5. avoids expensive operations (e.g. dynamic allocation, dynamic binding of operations) and unpredictable actions (e.g. queuing, garbage collection).
The architected is aided by the use of tools that can (1) analyze an architecture to determine whether the schedule is likely to be met, (2) analyze error propagation (affects reliability, availability, safety, and security), (3) analyze whether certain safety or security rules are enforce.
- A soft real-time (sRT) system (also known also human real-time system) is one were a delayed response or outcome is an inconveniences, possibly minor loss of money, property or other resources. sRT systems are generally driven by human-generated events (e.g. typing on a keyboard). Typically time constraints are on the order of seconds (Human interface design theory shows that after about 4 seconds, humans start to get impatient). Examples include Bank ATM systems, call center software, vending machine control software, word processors, and web browsers.
For sRT systems, Reliability, Availability, Usability, are typically the most important. Security and/or Privacy are often at least as important. Maintainability, Reuse, Portability are often important. Since SRT systems are often multi-user, Fairness is an important quality.
While sRT systems could be built using a RTOS, it would be waist of development time and effort. srT are generally built on operating system that support scheduling algorithms (e.g., run-to-completion, round-robin, run-till-blocked) and resources use algorithms (e.g. locking, queuing, roll-backs) that promote equal treatment. Sometimes priority is assigned based on the importance or the roll of the user. For example, a request from the company president may be given higher priority than that of an ordinary employee, or a preferred customer may be given higher priority. In which case, it would be preferable to use an OS that supports (a) priority queuing of components that are ready to run on the available resources, and selects the highest priority component to run; (b) priority queuing for resources.
sRT are generally run on hardware that has few constraints on power, size, weight.
The architect is generally free to design components that implement the desired capabilities in the time constraints so that the system achieves the other desired qualities. Use of frameworks such as the web, .Net, Java Enterprise, of-the shelf components such as database management systems, is readily available and can save time and effort to develop the sRT system.
- A non-real-time (nRT) system is one where a delayed response or outcome is insignificant. In most of these kinds of systems are research oriented and the result is more important than the time it takes to get there. Examples include Artificial Intelligence Research (e.g. Natural Language Processing, Thinking Machines), GNOME mapping, Search for plants and life outside our planet. nRT project pose few constraints on the architect other than time, budget, and publication deadlines.
Question
|
Answer
|
1. The alarm monitoring parts of the Alarm Monitoring System is (1 point):
a. A hard real-time system,
b. A soft-real-time system
c. A hard real-time system, but has some looser constraints because of the need for human action at some points.
d. A non-real-time system.
|
|
|
|
2. The customer managements (e.g. adding a new customer, phone number change) parts of the Alarm Monitoring System we are design is (1 point):
a. A hard real-time system,
b. A soft-real-time system
c. A non-real-time system.
|
|
|
|
3. Any time a software component sends a message to another component, you are applying the Client-Server pattern? (1 point):
|
True
|
False
|
|
4. Model-View-Controller pattern can be used within the Client-Server implementation to create the operator view? (1 point)
|
True
|
False
|
|
5. For each of the following systems select whether it is a hard real-time (RT), soft real-time (sRT) or non-Real Time (nRT). (point 5)
|
|
|
|
a. An Assembly-Line Manufacturing Control System
|
RT
|
sRT
|
nRT
|
b. An Store's Inventory Control System
|
RT
|
sRT
|
nRT
|
c. A Population Census Analysis System
|
RT
|
sRT
|
nRT
|
d. A system that determines the possible routes from your current location to a destination you select.
|
RT
|
sRT
|
nRT
|
e. A missile tracking system
|
RT
|
sRT
|
nRT
|
6. In my solution to the Alarm Monitoring System, I didn't use the internet for communication between send the alarm messages from the home to the Alarm Company. Which of the following reasons contributed to that decision? (5 point):
|
|
|
a. Security: if I used the internet, I would have to implement defenses against someone prevent the message for reaching its destination or intercepting the message & pass on false data ("A Man in the Middle Attack"), which would make the system more complex and expensive.
|
Yes
|
No
|
b. Availability: Internet is more like to be unavailable then a phone line
|
Yes
|
No
|
c. Predictability: I cannot predict how long it will take a message to reach the Central Monitoring System.
|
Yes
|
No
|
d. Sending a message over the internet would be less scalable the using phone lines
|
Yes
|
No
|
e. If would be harder to add RT streaming video over the internet than a phone line
|
Yes
|
No
|
7. In my Solution to the Alarm Monitoring System that I gave you, I Said That The In-House Monitor Software Had 3 Subcomponents: A Control Loop For Monitoring Windows & Doors, A Control Loop For Controlling Doors, And A Component For Interacting With A User On A Control Panel. The User Monitor Has Subcomponents That Implement The Model-View-Controller Pattern). Even though the CPU it runs on is dual core. Assuming the schedule analysis tools says that each component/subcomponents will meet its deadline, this design works relatively easily because the deadline for turn on the alarm if a doors with a Control Pad nearby sensors is an exact multiple of the deadline for turning on the alarm for windows & doors without near-by Control-Pad. Are the following statements True or False (4 points)
(Note both the In-Home Monitor Component, and its User Monitor Component are examples of the Façade Pattern, where all the work they appear to do is actually delegated to subcomponents.)
|
Yes
|
No
|
a. It would be better to have 1 component that does all the work down by the subcomponents in one place, because it could be executed on a single core CPU.
|
True
|
False
|
b. It would be better to have 4 components, replacing the single sensor monitoring component with a component to monitor the doors with a near-by control pad, and a component to monitor windows and doors without near-by control pads, as long as deadlines could still be met, since that would allow greater flexibility because the deadline for each component would be more flexible (i.e. one deadline would not have to be a multiple of the other or a common denominator for the analysis too work.
|
True
|
False
|
c. By extending the logic in (b), it would be better to have 5 components, where to component to monitor windows and doors without near-by control pads, would be replaced by a component to monitor windows, and a component to monitor doors without near-by control pads.
|
True
|
False
|
d. It would be better to have exactly 2 components because that's the number of cores in the CPU
|
.True
|
False
|