1 cs 501 spring 2002 cs 501: software engineering lecture 14 system architecture ii
TRANSCRIPT
1 CS 501 Spring 2002
CS 501: Software Engineering
Lecture 14
System Architecture II
2 CS 501 Spring 2002
Administration
3 CS 501 Spring 2002
Quiz 2, Question 2
A microwave oven has the following buttons:
clear Clear all settingshigh-power Set high-power cooking (default)low-power Set low-power cookingrun Run until time expirespause Pause without changing settingsopen door Pause and open door
and a rotary dial:
set-clock Set the clock (default is zero)
4 CS 501 Spring 2002
Quiz 2, Question 2
• Initially and after clear the microwave is set for high-power cooking and the clock is set to zero.
• The microwave is ready to run when the clock is set to a value greater than zero and the door is closed.
• The user can then hit the run button to begin cooking until time expires.
• While cooking, opening the door or hitting the pause button suspends operation without changing any settings; the user can then hit clear, change settings, or hit run to continue.
• Settings can be changed while the door is open; it is not possible to run with the door open.
5 CS 501 Spring 2002
Initial Ready Run
Door open
Quiz 2, Question 2
Hint. It is possible to model this system with only 4 states, but there are correct answers with more states.
States
6 CS 501 Spring 2002
Initial Ready Run
Door open
[ok_to_run] run
[time_up]
open_door
close_door
Quiz 2, Question 2
Major transitions
Note use of automatic transitions. ok_to_run is triggered when all settings complete.
7 CS 501 Spring 2002
Initial Ready Run
Door open
clear
[ok_to_run] run
[time_up]
open_door
pause
close_door clear
Quiz 2, Question 2
Pause and clear transitions
Note. The question does not fully specify these transitions.
8 CS 501 Spring 2002
Initial Ready Run
Door open
clear
[ok_to_run] run
[time_up]
open_door
pause
close_door
set_clock
set_clock
set_clock
high/low
high/low
high/low
clear
Quiz 2, Question 2
Settings
Note. These settings do not change state, but may trigger ok_to_run
9 CS 501 Spring 2002
Distributed Computing: General Problem
An application that is running on one computer wishes to use data or services provided by another:
• Network connectionprivate, public, or virtual private networklocation of firewalls
• Protocolspoint-to-point, multicast, broadcastmessage passing, RPC, distributed objectsstateful or stateless
• Performance
quality of service
10 CS 501 Spring 2002
Network Choices
Public Internet:
Ubiquitous -- worldwideLow cost
Private network:
Security / reliabilityPredictable performanceChoice of protocols (not constrained to TCP/IP)
11 CS 501 Spring 2002
Quality of Network Services
Criteria
Performance
Maximum throughputVariations in throughputReal-time media (e.g., audio)
Business
SuppliersTrouble shooting and maintenance
12 CS 501 Spring 2002
Firewall
Public network
Private network
Firewall
A firewall is a computer at the junction of two network segments that:
• Inspects every packet that attempts to cross the boundary
• Rejects any packet that does not satisfy certain criteria, e.g.,
an incoming request to open a TCP connectionan unknown packet type
Firewalls provide security at a loss of flexibility and a cost of system administration.
13 CS 501 Spring 2002
Distributed ComputingExample 1: Distributed Database
two copies of the same data
14 CS 501 Spring 2002
Distributed Data and Replication
Distributed Data
Data is held on several computer systems. A transaction may need to assemble data from several sources.
Replication
Several copies of the data are held in different locations.
Mirror: Complete data set is replicated
Cache: Dynamic set of data is replicated (e.g., most recently used)
With replicated data, the biggest problems are concurrency and consistency.
15 CS 501 Spring 2002
Distributed ComputingExample 2: Broadcast Search
User interfaceserverUser
Databases
This is an example of a multicast protocol.
The primary difficulty is to avoid troubles at one site degrading the entire system (e.g., every transaction cannot wait for a system to time out).
16 CS 501 Spring 2002
Distributed ComputingExample 3: UseNet
This is an example of an epidemic protocol. Such protocols are especially useful in networks with intermittent connectivity, e.g., mobile computing.
The biggest problem is ensuring that the data is distributed effectively.
17 CS 501 Spring 2002
Stateless Protocol v. Stateful
Stateless protocol
Example: http
Open connectionSend message Return replyClose connection
State in http must be sent with every message (e.g., as parameter string)
Cookies are a primitive way of retaining some state
18 CS 501 Spring 2002
Stateless Protocol v. Stateful
Stateful (session) protocol
Example: Z39.50
Open connectionBegin sessionInteractive sessionEnd sessionClose connection
Server remembers the results of previous transactions (e.g., authentication, partial results) until session is closed.
19 CS 501 Spring 2002
Distributed ComputingExample 4: The Domain Name System
.edu server
cornell.edu server
cs.cornell.edu server
First attempt to resolve www.cs.cornell.edu
1
2
3
20 CS 501 Spring 2002
Distributed ComputingExample 4: The Domain Name System
.edu server
cornell.edu server
cs.cornell.edu server
Better method
3
1
almaden.ibm.comcornell.eduece.cmu.eduibm.comacm.org.edu
2
Localcache
local DNS server
21 CS 501 Spring 2002
Distributed ComputingExample 4: Domain Name System
For details of the actual protocol read:
Paul Mockapetris, "Domain Names - Implementation and Specification". IETF Network Working Group, Request for Comments: 1035, November 1987.
http://www.ietf.org/rfc/rfc1035.txt?number=1035
22 CS 501 Spring 2002
Distributed ComputingExample 5: Web Server
http messagedaemon
spawned processesTCP port 80
The daemon listens at port 80
When a message arrives it:spawns a processes to handle the messagereturns to listening at port 80
23 CS 501 Spring 2002
Time-Critical Systems
A real time (time-critical) system is a software system whose correct functioning depends upon the results produced and the time at which they are produced.
• A soft real time system is degraded if the results are not produced within required time constraints
• A hard real time system fails if the results are not produced within required time constraints
24 CS 501 Spring 2002
Time-Critical System Example 1: Autonomous Land Vehicle
Sensors
GPS
Sonar
Laser
Signal processing
Model Control signals
Steer
Throttle
Controls
25 CS 501 Spring 2002
Time-Critical System Example 2: Routers and Other Network Computing
• Interoperation with third party devices
• Support for several versions of protocols
• Restart after total failure
• Defensive programming -- must survive
=> erroneous or malicious messages
=> extreme loads
• Time outs, dropped packets, etc.
• Evolution of network systems
26 CS 501 Spring 2002
Techniques: Software Development
Developers of advanced time-critical software spend almost all their effort developing the software environment:
• Monitoring and testing -- debuggers
• Crash restart -- component and system-wide
• Downloading and updating
• Hardware troubleshooting and reconfiguration
etc., etc., etc.
27 CS 501 Spring 2002
Time-Critical System Example 3:CD Controller
Input block Output
block
12
345
67
Circular buffer
28 CS 501 Spring 2002
Time-Critical System Example 4:Embedded Real-time Systems
Software and hardware are combined to provide an integrated unit, usually dedicated to a specific task:
• Digital telephone
• Automobile engine control
• GPS
• Scientific instruments
• Seat bag controller
The software may be embedded in the device in a manner that cannot be altered after manufacture.
29 CS 501 Spring 2002
Time-Critical System Example 4:Embedded Real-time Systems
Design of embedded systems requires close understanding of hardware characteristics
• Special purpose hardware requires special tools and expertise.
• Some functions may be implemented in either hardware of software (e.g., floating point unit)
• Design requires separation of functions
Distinction between hardware and software may be blurred.
Hardware v. Software
30 CS 501 Spring 2002
Time-Critical System Example 5:Shared Systems
Many users are using the same equipment at the same time
• Multi-user data processing (common task)
• Time sharing (independent tasks)
31 CS 501 Spring 2002
Time-Critical System Example 4: Dartmouth Time Shared System
Communications processor
Communications processor
Centralprocessor
Centralprocessor
Centralprocessor
I/OMulitplexor
master processor
32 CS 501 Spring 2002
Techniques
• Special purpose hardware
• Multi-threading and multi-tasking
• Parallel processing
=> digital signal processing
• Interrupts
=> levels and priorities
33 CS 501 Spring 2002
Techniques: Multi-Threading
Several similar threads operating concurrently:
• Re-entrant code -- separation of pure code from data for each thread
• Testing -- single thread and multi thread
May be real-time (e.g., telephone switch) or non-time critical
34 CS 501 Spring 2002
Techniques: Real Time Executive
Schedules and dispatches tasks in a real time system
• Real time clock
• Interrupt handler
• Scheduler
• Resource manager
• Dispatcher
Must be extremely reliable
35 CS 501 Spring 2002
Techniques: Timing
Timing mechanisms
• Synchronous (clocked) -- periodic stimuli
• Asynchronous -- wait for next signal
Example: Communications protocols may be synchronous or asynchronous
36 CS 501 Spring 2002
Techniques: Software Considerations
Resource considerations may dictate software design and implementation:
• Low level language (e.g., C) where programmer has close link to machine
• Inter-process communication may be too slow (e.g., C fork).
• May implement special buffering, etc., to control timings
37 CS 501 Spring 2002
Continuous Operation
Many systems must operate continuously
• Software update while operating
• Hardware monitoring and repair
• Alternative power supplies, networks, etc.
• Remote operation
These functions must be designed into the fundamental architecture.