1 / 21

CS 501: Software Engineering

This lecture covers examples of epidemic protocols, the Domain Name System (DNS), web servers, and time-critical systems. Topics include distributed data distribution, DNS resolution, web server processes, and real-time system design.

howarddavid
Download Presentation

CS 501: Software Engineering

An Image/Link below is provided (as is) to download presentation Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author. Content is provided to you AS IS for your information and personal use only. Download presentation by click this link. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server. During download, if you can't get a presentation, the file might be deleted by the publisher.

E N D

Presentation Transcript


  1. CS 501: Software Engineering Lecture 16 System Architecture and Design II

  2. Administration • Schedule your second presentations with Anat Nidar-Levi

  3. 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. Distributed ComputingExample 5: The Domain Name System First attempt to resolve www.cs.cornell.edu .edu server 1 cornell.edu server 2 3 cs.cornell.edu server

  5. Distributed ComputingThe Domain Name System Better method local DNS server .edu server 1 2 cornell.edu server almaden.ibm.com cornell.edu ece.cmu.edu ibm.com acm.org .edu 3 Local cache cs.cornell.edu server

  6. 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. Distributed ComputingExample 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

  8. 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. Time-Critical System Example 1: Autonomous Land Vehicle GPS Steer Sonar Model Control signals Throttle Laser Controls Sensors Signal processing

  10. 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. 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. Time-Critical System Example 3:CD Controller 3 4 1 2 Input block 5 Output block 6 7 Circular buffer

  13. 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. 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.

  15. 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. Techniques • Special purpose hardware • Multi-threading and multi-tasking • Parallel processing => digital signal processing • Interrupts => levels and priorities

  17. 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. 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. Techniques: Timing Timing mechanisms • Synchronous (clocked) -- periodic stimuli • Asynchronous -- wait for next signal Example: Communications protocols may be synchronous or asynchronous

  20. 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. 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.

More Related