cs 501: software engineering fall 2000 lecture 15 system architecture ii distributed and real time...
Post on 22-Dec-2015
214 views
TRANSCRIPT
![Page 1: CS 501: Software Engineering Fall 2000 Lecture 15 System Architecture II Distributed and Real Time Systems](https://reader035.vdocument.in/reader035/viewer/2022062715/56649d7f5503460f94a63394/html5/thumbnails/1.jpg)
CS 501: Software EngineeringFall 2000
Lecture 15
System Architecture II
Distributed and Real Time Systems
![Page 2: CS 501: Software Engineering Fall 2000 Lecture 15 System Architecture II Distributed and Real Time Systems](https://reader035.vdocument.in/reader035/viewer/2022062715/56649d7f5503460f94a63394/html5/thumbnails/2.jpg)
Administration
Assignment 2: Requirements
• Grades -- presentation, report, individual• Comments at presentation• Comments from teaching assistant
Assignment 3: Design
![Page 3: CS 501: Software Engineering Fall 2000 Lecture 15 System Architecture II Distributed and Real Time Systems](https://reader035.vdocument.in/reader035/viewer/2022062715/56649d7f5503460f94a63394/html5/thumbnails/3.jpg)
Comments on Requirements Report
Audience
• Client and design team• Will be updated over time
Content
• Level of detail -- will be used to validate the implementation• Requirements, not design• Precise, but not legalistic
![Page 4: CS 501: Software Engineering Fall 2000 Lecture 15 System Architecture II Distributed and Real Time Systems](https://reader035.vdocument.in/reader035/viewer/2022062715/56649d7f5503460f94a63394/html5/thumbnails/4.jpg)
Sequence Diagram: Notation
BookBorrower
libMem: LibraryMember
theCopy:Copy
theBook:Book
borrow(theCopy)okToBorrow
borrowborrow
dotted line shows object
lifetime
rectangle shows focus
of control
![Page 5: CS 501: Software Engineering Fall 2000 Lecture 15 System Architecture II Distributed and Real Time Systems](https://reader035.vdocument.in/reader035/viewer/2022062715/56649d7f5503460f94a63394/html5/thumbnails/5.jpg)
Sequence Diagram: Branching
BookBorrower
libMem: LibraryMember
theCopy:Copy
theBook:Book
1:borrow(theCopy)2:okToBorrow
[ok]3:borrow4:borrow
branch
[not ok]3:noborrow
![Page 6: CS 501: Software Engineering Fall 2000 Lecture 15 System Architecture II Distributed and Real Time Systems](https://reader035.vdocument.in/reader035/viewer/2022062715/56649d7f5503460f94a63394/html5/thumbnails/6.jpg)
Example: Distributed Database
two copies of the same data
![Page 7: CS 501: Software Engineering Fall 2000 Lecture 15 System Architecture II Distributed and Real Time Systems](https://reader035.vdocument.in/reader035/viewer/2022062715/56649d7f5503460f94a63394/html5/thumbnails/7.jpg)
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 problem is consistency.
![Page 8: CS 501: Software Engineering Fall 2000 Lecture 15 System Architecture II Distributed and Real Time Systems](https://reader035.vdocument.in/reader035/viewer/2022062715/56649d7f5503460f94a63394/html5/thumbnails/8.jpg)
Example: Broadcast Search
User interfaceserverUser
Databases
![Page 9: CS 501: Software Engineering Fall 2000 Lecture 15 System Architecture II Distributed and Real Time Systems](https://reader035.vdocument.in/reader035/viewer/2022062715/56649d7f5503460f94a63394/html5/thumbnails/9.jpg)
Example: UseNet
![Page 10: CS 501: Software Engineering Fall 2000 Lecture 15 System Architecture II Distributed and Real Time Systems](https://reader035.vdocument.in/reader035/viewer/2022062715/56649d7f5503460f94a63394/html5/thumbnails/10.jpg)
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 or in a cookie)
![Page 11: CS 501: Software Engineering Fall 2000 Lecture 15 System Architecture II Distributed and Real Time Systems](https://reader035.vdocument.in/reader035/viewer/2022062715/56649d7f5503460f94a63394/html5/thumbnails/11.jpg)
Stateless Protocol v. Stateful
Stateful (session) protocol
Example: Z39.50Open connectionBegin sessionInteractive sessionEnd sessionClose connection
Server remembers the results of previous transactions (e.g., authentication, partial results) until session is closed.
![Page 12: CS 501: Software Engineering Fall 2000 Lecture 15 System Architecture II Distributed and Real Time Systems](https://reader035.vdocument.in/reader035/viewer/2022062715/56649d7f5503460f94a63394/html5/thumbnails/12.jpg)
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
![Page 13: CS 501: Software Engineering Fall 2000 Lecture 15 System Architecture II Distributed and Real Time Systems](https://reader035.vdocument.in/reader035/viewer/2022062715/56649d7f5503460f94a63394/html5/thumbnails/13.jpg)
The Domain Name System
.edu server
cornell.edu server
cs.cornell.edu server
First attempt to resolve www.cs.cornell.edu
1
2
3
![Page 14: CS 501: Software Engineering Fall 2000 Lecture 15 System Architecture II Distributed and Real Time Systems](https://reader035.vdocument.in/reader035/viewer/2022062715/56649d7f5503460f94a63394/html5/thumbnails/14.jpg)
Discussion of the First Attempt
Problems?
![Page 15: CS 501: Software Engineering Fall 2000 Lecture 15 System Architecture II Distributed and Real Time Systems](https://reader035.vdocument.in/reader035/viewer/2022062715/56649d7f5503460f94a63394/html5/thumbnails/15.jpg)
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
![Page 16: CS 501: Software Engineering Fall 2000 Lecture 15 System Architecture II Distributed and Real Time Systems](https://reader035.vdocument.in/reader035/viewer/2022062715/56649d7f5503460f94a63394/html5/thumbnails/16.jpg)
Real Time System
A real time 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
![Page 17: CS 501: Software Engineering Fall 2000 Lecture 15 System Architecture II Distributed and Real Time Systems](https://reader035.vdocument.in/reader035/viewer/2022062715/56649d7f5503460f94a63394/html5/thumbnails/17.jpg)
Example: 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
![Page 18: CS 501: Software Engineering Fall 2000 Lecture 15 System Architecture II Distributed and Real Time Systems](https://reader035.vdocument.in/reader035/viewer/2022062715/56649d7f5503460f94a63394/html5/thumbnails/18.jpg)
Embedded 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
The software may be embedded in the device in a manner that can not be altered after manufacture.
![Page 19: CS 501: Software Engineering Fall 2000 Lecture 15 System Architecture II Distributed and Real Time Systems](https://reader035.vdocument.in/reader035/viewer/2022062715/56649d7f5503460f94a63394/html5/thumbnails/19.jpg)
Example: Autonomous Land Vehicle
Sensors
GPS
Sonar
Laser
Signal processing
Model Control signals
Steer
Throttle
Controls
![Page 20: CS 501: Software Engineering Fall 2000 Lecture 15 System Architecture II Distributed and Real Time Systems](https://reader035.vdocument.in/reader035/viewer/2022062715/56649d7f5503460f94a63394/html5/thumbnails/20.jpg)
Other Applications
Response critical
• Network router
• Telephone switch
• Seat bag controller
Shared systems
• Multi-user data processing
• Time sharing
![Page 21: CS 501: Software Engineering Fall 2000 Lecture 15 System Architecture II Distributed and Real Time Systems](https://reader035.vdocument.in/reader035/viewer/2022062715/56649d7f5503460f94a63394/html5/thumbnails/21.jpg)
Techniques
• Special purpose hardware
• Multi-threading and multi-tasking
• Parallel processing
=> digital signal processing
• Interrupts
=> levels and priorities
![Page 22: CS 501: Software Engineering Fall 2000 Lecture 15 System Architecture II Distributed and Real Time Systems](https://reader035.vdocument.in/reader035/viewer/2022062715/56649d7f5503460f94a63394/html5/thumbnails/22.jpg)
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
![Page 23: CS 501: Software Engineering Fall 2000 Lecture 15 System Architecture II Distributed and Real Time Systems](https://reader035.vdocument.in/reader035/viewer/2022062715/56649d7f5503460f94a63394/html5/thumbnails/23.jpg)
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
![Page 24: CS 501: Software Engineering Fall 2000 Lecture 15 System Architecture II Distributed and Real Time Systems](https://reader035.vdocument.in/reader035/viewer/2022062715/56649d7f5503460f94a63394/html5/thumbnails/24.jpg)
Timing
Timing mechanisms
• Synchronous (clocked) -- periodic stimuli
• Asynchronous -- wait for next signal
Example: Communications protocols may be synchronous or asynchronous
![Page 25: CS 501: Software Engineering Fall 2000 Lecture 15 System Architecture II Distributed and Real Time Systems](https://reader035.vdocument.in/reader035/viewer/2022062715/56649d7f5503460f94a63394/html5/thumbnails/25.jpg)
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.
![Page 26: CS 501: Software Engineering Fall 2000 Lecture 15 System Architecture II Distributed and Real Time Systems](https://reader035.vdocument.in/reader035/viewer/2022062715/56649d7f5503460f94a63394/html5/thumbnails/26.jpg)
Example: Dartmouth Time Shared System
Communications processor
Communications processor
Centralprocessor
Centralprocessor
Centralprocessor
I/OMulitplexor
master processor
![Page 27: CS 501: Software Engineering Fall 2000 Lecture 15 System Architecture II Distributed and Real Time Systems](https://reader035.vdocument.in/reader035/viewer/2022062715/56649d7f5503460f94a63394/html5/thumbnails/27.jpg)
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
![Page 28: CS 501: Software Engineering Fall 2000 Lecture 15 System Architecture II Distributed and Real Time Systems](https://reader035.vdocument.in/reader035/viewer/2022062715/56649d7f5503460f94a63394/html5/thumbnails/28.jpg)
Example: CD Controller
Input block Output
block
12
345
67
Circular buffer
![Page 29: CS 501: Software Engineering Fall 2000 Lecture 15 System Architecture II Distributed and Real Time Systems](https://reader035.vdocument.in/reader035/viewer/2022062715/56649d7f5503460f94a63394/html5/thumbnails/29.jpg)
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.
![Page 30: CS 501: Software Engineering Fall 2000 Lecture 15 System Architecture II Distributed and Real Time Systems](https://reader035.vdocument.in/reader035/viewer/2022062715/56649d7f5503460f94a63394/html5/thumbnails/30.jpg)
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