![]() |
Telelogic Rhapsody (steve huntington) | ![]() |
Topic Title: Real-time Software Engineering Topic Summary: Created On: 22-Sep-2005 13:38 Status: Read Only |
Linear : Threading : Single : Branch |
![]() |
![]()
|
![]() |
|
REAL-TIME SOFTWARE ENGINEERING
Instructor: Dr. Yusuf Ozturk Associate Professor of Electrical and Computer Engineering San Diego State University San Diego, California USA Course Description: Principles of Real time programming and software engineering for microprocessors systems. Concurrent programming and multitasking. Structured programming, Software validation, Team programming projects. Class/Laboratory Schedule: The class meets for two 75-minute lectures a week. Prerequisites by Topic: Microprocessor essentials, C or C++ programming language, operating systems basics. Prerequisites by Course: Consent of the instructor. Course Objectives: Introduction to embedded software engineering, real-time operating systems, real-time communication protocols, and scheduling theory, real-time programming and code generation, scheduling techniques. Introduction of real-time programming and code generation for embedded systems. Textbooks and References: · Jim Cooling, Software Engineering for Real Time Systems, Pearson · Gomaa, Designing Concurrent Distributed & Real Time Applications w/UML, Addison Wesley, ISN: 0-201-65793-7 · Bruce Powel Douglass, ?Real Time UML?, Addison Wesley, ISBN 0-201-65784-8 · Michael Moore, Andre Pruitt, ?Principles of Real Time Software Engineering?, Wall and Emerson Inc, ISBN 0-921332-47-5 · Papers distributed by instructor. Topics Covered: A general discussion of an embedded computer- Processor, Instruction set architecture, Interrupts, Direct memory access, Role of operating system, Bus architectures, Data transfer and processing performances etc, Network and communication interface Preemptive Systems- Concepts of priority, preemption, and context switching. Discussion of criticality, latency and context switching. Elements of Preemptive Process Control- A review of basic software building blocks: Programs, Processes, Threads and Segments Preemption and Priority Blocking Client/Server Relationships Data Flow Relationships Real Time Systems and Schedulable Sets- Define real time Schedulability and Deadlines: Introduce deadlines, illustrating affect on software correctness Hard versus Soft real time systems: Types of Deadlines Critical Hard Real-Time (CHRT). Non-Critical Hard Real-Time (NCHRT) Soft Real-Time (SRT) Constraints of Deadline Type on Design: The type of deadline affects the system complexity. Reference mode for real time systems Periodic task models A periodic task model Real Time Scheduling Clock driven approach Weighted Round Robin Priority Driven Dynamic versus static systems Resources and resource access control Real time communications Prioritizing Hard Real-Time Processes Statically imposed Cyclic & Preemptive Scheduling. A review of cyclic scheduling, comparing it to the preemptive scheduling methodology. Schedulability Test for Static Priorities: An introduction to analytical methods of verifying ability to meet deadlines. Period Deadlines and Rate Monotonic Scheduling: A method of selecting priorities for optimal hard deadline scheduling. Pre-Period Deadlines and Deadline Monotonic Scheduling. A useful variant of rate monotonic scheduling. Sources & Effects of Blocking. Accounting for simultaneous access to shared resources. Context Switch Overhead: Accounting for scheduling overhead for cyclic and preemptive systems. Prioritizing Soft Real-Time (SRT) Processes Scheduling By Priority: average and worst case situations, sizing of queues, starvation. Scheduling By Time Slice Sporadic Serving: dealing with not so periodic peak demands Designing With Resource Constraints Mapping the Problem to HRT & SRT: converting requirements and preliminary design into deadlined design. HRT Usage Floors and Ceilings: designing algorithms to exhibit temporal behavior good for hard real-time SRT Usage Floors and Ceilings: designing algorithms to exhibit temporal behavior good for soft real-time. Reuse & Custom Software: what they are, how to deal with them Requirement Analysis? Basics of good software Software life cycle Practical approaches to analysis and specification Prototyping Software design fundamentals Modular design Program control structures Functional structuring of software design Object oriented design Data flow design Real Time Operating Systems Attributes of a real time operating system Time services and scheduling mechanism Capabilities of real time operating systems Performance metrics and evaluation of operating systems Assignments and Reading List Each student is expected to read papers and submit a short summary of each paper. The term project will be divided into several small programming assignments. The term project will be implemented by groups of 2-3 students. Grading: Two midterm exams, a term project report and a final exam constitute the evaluation process. The projects include written and oral presentation. Midterm exams (40%), TermProject (30%), Final Exam (30%). |
|
![]() |
FuseTalk Standard Edition v3.2 - © 1999-2009 FuseTalk Inc. All rights reserved.