1 cs 501 spring 2003 cs 501: software engineering lecture 16 system architecture and design ii

21
1 CS 501 Spring 2003 CS 501: Software Engineering Lecture 16 System Architecture and Design II

Upload: tamsyn-golden

Post on 29-Dec-2015

216 views

Category:

Documents


3 download

TRANSCRIPT

1 CS 501 Spring 2003

CS 501: Software Engineering

Lecture 16

System Architecture and Design II

2 CS 501 Spring 2003

Administration

• Schedule your second presentations with Anat Nidar-Levi

3 CS 501 Spring 2003

Distributed ComputingExample 4: 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.

4 CS 501 Spring 2003

Distributed ComputingExample 5: The Domain Name System

.edu server

cornell.edu server

cs.cornell.edu server

First attempt to resolve www.cs.cornell.edu

1

2

3

5 CS 501 Spring 2003

Distributed ComputingThe 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

6 CS 501 Spring 2003

Distributed ComputingDomain 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

7 CS 501 Spring 2003

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

8 CS 501 Spring 2003

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

9 CS 501 Spring 2003

Time-Critical System Example 1: Autonomous Land Vehicle

Sensors

GPS

Sonar

Laser

Signal processing

Model Control signals

Steer

Throttle

Controls

10 CS 501 Spring 2003

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

11 CS 501 Spring 2003

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.

12 CS 501 Spring 2003

Time-Critical System Example 3:CD Controller

Input block Output

block

12

345

67

Circular buffer

13 CS 501 Spring 2003

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.

14 CS 501 Spring 2003

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

15 CS 501 Spring 2003

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)

16 CS 501 Spring 2003

Techniques

• Special purpose hardware

• Multi-threading and multi-tasking

• Parallel processing

=> digital signal processing

• Interrupts

=> levels and priorities

17 CS 501 Spring 2003

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

18 CS 501 Spring 2003

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

19 CS 501 Spring 2003

Techniques: Timing

Timing mechanisms

• Synchronous (clocked) -- periodic stimuli

• Asynchronous -- wait for next signal

Example: Communications protocols may be synchronous or asynchronous

20 CS 501 Spring 2003

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

21 CS 501 Spring 2003

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.