CS 501 Spring 2002 - Cornell Computer Science

Download Report

Transcript CS 501 Spring 2002 - Cornell Computer Science

CS 501: Software Engineering
Lecture 14
System Architecture II
1
CS 501 Spring 2002
Administration
2
CS 501 Spring 2002
Quiz 2, Question 2
A microwave oven has the following buttons:
clear
high-power
low-power
run
pause
open door
Clear all settings
Set high-power cooking (default)
Set low-power cooking
Run until time expires
Pause without changing settings
Pause and open door
and a rotary dial:
set-clock
3
Set the clock (default is zero)
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.
4
CS 501 Spring 2002
Quiz 2, Question 2
States
Hint. It is possible to model this system with only 4
states, but there are correct answers with more states.
Initial
Ready
Run
Door open
5
CS 501 Spring 2002
Quiz 2, Question 2
Major transitions
Initial
[ok_to_run]
Ready
run
Run
[time_up]
open_door
close_door
6
Door open
Note use of automatic
transitions. ok_to_run
is triggered when all
settings complete.
CS 501 Spring 2002
Quiz 2, Question 2
Pause and clear
transitions
Initial
clear
[ok_to_run]
Ready
run
Run
[time_up]
pause
open_door
close_door
7
Door open
clear
Note. The question does
not fully specify these
transitions.
CS 501 Spring 2002
Quiz 2, Question 2
high/low set_clock
Settings
clear
high/low
[ok_to_run]
Initial
Ready
run
Run
[time_up]
set_clock
pause
open_door
close_door
Door open
high/low
8
clear
set_clock
Note. These settings do
not change state, but may
trigger ok_to_run
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 connection
private, public, or virtual private network
location of firewalls
• Protocols
point-to-point, multicast, broadcast
message passing, RPC, distributed objects
stateful or stateless
• Performance
quality of service
9
CS 501 Spring 2002
Network Choices
Public Internet:
Ubiquitous -- worldwide
Low cost
Private network:
Security / reliability
Predictable performance
Choice of protocols (not constrained to TCP/IP)
10
CS 501 Spring 2002
Quality of Network Services
Criteria
Performance
Maximum throughput
Variations in throughput
Real-time media (e.g., audio)
Business
Suppliers
Trouble shooting and maintenance
11
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 connection
an unknown packet type
12
Firewalls provide security at a loss of flexibility and a cost of
system administration.
CS 501 Spring 2002
Distributed Computing
Example 1: Distributed Database
two copies of the
same data
13
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.
14
CS 501 Spring 2002
Distributed Computing
Example 2: Broadcast Search
User
User interface
server
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).
15
CS 501 Spring 2002
Distributed Computing
Example 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.
16
CS 501 Spring 2002
Stateless Protocol v. Stateful
Stateless protocol
Example: http
Open connection
Send message
Return reply
Close connection
State in http must be sent with every message
(e.g., as parameter string)
Cookies are a primitive way of retaining
some state
17
CS 501 Spring 2002
Stateless Protocol v. Stateful
Stateful (session) protocol
Example: Z39.50
Open connection
Begin session
Interactive session
End session
Close connection
Server remembers the results of previous transactions
(e.g., authentication, partial results) until session is
closed.
18
CS 501 Spring 2002
Distributed Computing
Example 4: The Domain Name System
First attempt to resolve
www.cs.cornell.edu
.edu
server
1
2
3
19
cornell.edu
server
cs.cornell.edu
server
CS 501 Spring 2002
Distributed Computing
Example 4: The Domain Name System
Better method
local DNS
server
1
almaden.ibm.com
cornell.edu
Local ece.cmu.edu
cache ibm.com
acm.org
.edu
20
.edu
server
2
cornell.edu
server
3
cs.cornell.edu
server
CS 501 Spring 2002
Distributed Computing
Example 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
21
CS 501 Spring 2002
Distributed Computing
Example 5: Web Server
http message
daemon
TCP port 80
spawned processes
The daemon listens at port 80
When a message arrives it:
spawns a processes to handle the message
returns to listening at port 80
22
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
23
CS 501 Spring 2002
Time-Critical System Example 1:
Autonomous Land Vehicle
GPS
Steer
Sonar
Model
Laser
Control
signals
Throttle
Controls
Sensors
24
Signal
processing
CS 501 Spring 2002
Time-Critical System Example 2:
Routers and Other Network Computing
25
•
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
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.
26
CS 501 Spring 2002
Time-Critical System Example 3:
CD Controller
4
Input
block
7
3
2
5
6
Circular buffer
27
1
Output
block
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.
28
CS 501 Spring 2002
Time-Critical System Example 4:
Embedded Real-time Systems
Hardware v. Software
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.
29
CS 501 Spring 2002
Time-Critical System Example 5:
Shared Systems
Many users are using the same equipment at the
same time
30
•
Multi-user data processing (common task)
•
Time sharing (independent tasks)
CS 501 Spring 2002
Time-Critical System Example 4:
Dartmouth Time Shared System
master
processor
Communications
processor
I/O
Mulitplexor
Central
processor
Central
processor
Communications
processor
Central
processor
31
CS 501 Spring 2002
Techniques
•
Special purpose hardware
•
Multi-threading and multi-tasking
•
Parallel processing
=> digital signal processing
•
Interrupts
=> levels and priorities
32
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 nontime critical
33
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
34
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
35
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).
•
36
May implement special buffering, etc., to control timings
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.
37
CS 501 Spring 2002