财务管理实训讲义CreateTim.ppt
Commercial Real-Time Operating SystemsLecture 24,Outline,StandardsMetricsRTOSsVxWorksEmbedded Windows platformsLinux extensions,(Traditional)Real-Time Applications,Transportation systemsAutomotives,avionics,railway system,submarines,Space-based systemsSatellite systems,planetary rovers,Industrial AutomationManufacturing automation(e.g.Bottling factories)Process control(e.g.petroleum refinement,temperature control systems,)Motion controlRobotics applications,mechanical pets,Data Acquisition systemsSupervisory control and data acquisition systems(SCADA),Security monitoring systemsDefense/military systemsRadar systems,Smart weapons,+,Emerging Applications,Cell-phones,VoIP phone,PDAsMP3 playersSet-top boxes,Game ConsolesAutomotive SystemsNetwork ElementsWeb Servers,Popular Standards,Real-Time Operating System standardsIEEE 1003.1b POSIX Real-Time Extensions(www.ieee.org)OSEK(automotive real-time OS standard)(www.osek.org)Real-Time(and Concurrent)Programming LanguagesReal-Time Specification for Java(,)Ada 83 and Ada 95Real-Time MiddlewareReal-Time CORBA(middleware and abstraction of the underlying RTOS)Networks/busesCANbus(Controller Area Network bus)TTA:Time-Triggered Architecture()FlexRay(www.flexray.org)ATM or Switched EthernetPriority-based or weighted fair-sharing schemes,Metrics in Real-Time Systems(1/2),End-to-end latency:E.g.worst-case,average-case,variance,distributionCan involve multiple hops(across nodes,links,switches and routers)Behavior in the presence or absence of failuresJitterThroughput:How many X can be processed?How many messages can be transmitted?Survivability:How many faults can be tolerated before system failures?What functionality gets compromised?,Metrics in Real-Time Systems(2/2),Security:Can the systems integrity be compromised?Can violations be detected?Safety:Is the system“safe”?Can the system get into an unsafe state?Has it been certified?Maintainability:How does one fix problems?How does the system get upgraded?Dynamism and Adaptability:What happens when the system mission changes?What happens when individual elements fail?Can the system reconfigure itself dynamically?How does the system behave after re-configuration?,RTOS Considerations,What processor(s)does it run on?8-bit,16-bit,32-bit,Intel Pentium Processor,PowerPC,Arm/StrongArm Intel Xscale,MIPS,SuperH,IBM and Intel Network ProcessorsWhat board(s)does it run on?Complete software package for a particular hardware board is called a BSP(Board Support Package)What is the software environment?Compilers and debuggersIDECross-compilation+symbolic debugging on target?Profilers(CPU,memory)Test coverage toolsNative simulation/emulation support?,Real-Time Operating Systems,Windows platformsEmbedded XP,Windows CE,Pocket WindowsVxWorks from Wind River Systems()Linux variantsBlue Cat Linux()(Embedded)Red Hat Linux()FSM RT-Linux()Monta Vista Linux()TimeSys Linux()LynxOS()QNX()Solaris real-time extensionsTRONEmbedded OS specification in JapanHas multiple profiles for different classes of devices,Common RTOS Features,UtilitiesBootstrapping support“Headless”operationDisplay not necessaryAPIs(Application Programming Interfaces)Multiple threads and/or processesFixed priority scheduling is most popularMutex/semaphore support likely with priority inheritance supportInter-process communicationsMessage queuesTimers/clockGraphics supportDevice driversNetwork protocol stack,Emerging RTOS Requirements,Full-featured operating systemSupport for new processors and devicesSupport for Internet protocols and standardsSupport for Multimedia protocols and standardsSupport for File SystemsMemory protectionResource protection,securityDevelopment tools and librariesGUI Environment,Do this with low and predictable overheads.,Case Study:Linux in embedded systems,Why Linux?,Reliable,Full-featured Operating SystemRich multi-tasking supportSecurity,ProtectionNetworking SupportTCP/IP,RSVP,SIP,MPLS,H.323Multimedia SupportJPEG,MPEG,GSMDevice DriversStandard,Known Environment and APIsUnix LineageFamiliar environment for many users/developersPOSIX Compliance,Why Linux?,The Cost FactorFree run-time royaltiesThe Open Source Factor A global team of programmers enhancing the environment literally all the timeAvailability of libraries,tools,and device driversSource Code Access allowing“peeking inside the hood”(and customizing as necessary)The Popularity FactorExcellent textbooks and documentation,Why Linux?,Small Embedded SystemsModular Kernel,possible to configure the kernel to suitable sizeCustomizable Root File SystemLots of UtilitiesHigh-End Embedded SystemsHigh-AvailabilityClusteringSMP Support,Linux API:Tasking,ProcessEncapsulates a thread of control and an address spaceAddress space may be shared giving threads in effectSchedulable EntityThreadsAre processes to the Linux kernelScheduled by the Linux kernelCan be created such that they share the address space with the parent process,effectively giving threads,Linux API:POSIX,SVR4,BSD,POSIX 1003.1.b(Real-Time Extensions)Priority SchedulingMemory LockingClocks and TimersReal-Time SignalsPOSIX 1003.1.c(Thread Extensions)Using pthreads libraryThread creation,destruction,etc.Mutexes,Condition VariablesSVR4 IPCShared MemorySemaphoresNetworking:BSD Sockets,Linux Internals Architecture,DeviceDrivers,Modules,Core Mechanisms,Process Scheduler,vfs,mm,ipc,net,The Real-Time Linux Challenge,How to leverage the advantages of Linux,while making it suitable for real-time systems?,Approaches to Real-Time Linux,Approaches limiting Real-time and Non Real-time Task InteractionsCompliant Kernel ApproachLynxOS/Blue Cat LinuxThin Kernel ApproachRTLinux/RTAIApproaches that integrate Real-time and Non Real-time tasksCore Kernel ApproachTimeSys Linux,Monta Vista LinuxResource Kernel ApproachTimeSys Linux,Linux Internals:Scheduling,Schedulable EntitiesProcessesReal-Time Class:SCHED_FIFO or SCHED_RRTime-Sharing Class:SCHED_OTHERReal-Time processes haveApplication defined priorityHigher priority than time-sharing processesNon Schedulable EntitiesInterrupt HandlersHave priorities,and can be nestedBottom Halves&Task QueuesRun on schedule,ret from system call,ret from interrupt,Linux and Real-Time:Problems,Timer GranularityMany real-time tasks are driven by timer interruptsIn Standard Linux,the timer is set to expire at 10 ms intervalsScheduler PredictabilityLinux scheduler keeps tasks in an unsorted listRequires a scan of all tasks to make a scheduling decisionScales poorly as number of tasks increases,and is especially poor for real-time performance Various subsystems NOT designed for real-time useNetwork protocol stackFilesystemWindows manager,Approaches to Real-Time Linux,Compliant Kernel Approach,Dual Kernel Approach,Core Kernel Approach,Resource Kernel Approach,Compliant Kernel Approach,Linux Kernel(Embedded Applications),Real-Time Kernel(Real-Time Applications),Linux System Call API,Linux System Call API,Linux Development ToolsAnd Environment,Linux Development ToolsAnd Environment,Compliant Kernel Approach,Basic ClaimLinux is defined by its API and not by its internal implementationThe real-time kernel is a non Linux kernelImplicationsNo benefits from the Linux kernelNot possible to benefit from the Linux kernel evolutionNot possible to use Linux hardware supportNot possible to use Linux device drivers,Compliance,100%Linux APISupport all of Linux kernel APIImplicationsAny Linux application can run on real-time kernelDevelopment can be done on Linux Host,with rich set of host tools for developmentAll Linux libraries are trivially available to run on real-time kernelThird party software Achieving 100%Linux API is non-trivialConsider the amount of effort put on Linux kernel development,Approaches to Real-Time Linux,Dual Kernel Approach,Compliant Kernel Approach,Core Kernel Approach,Resource Kernel Approach,The Thin Kernel Approach,Hardware,Real-Time Kernel(RT-Linux or RTAI),Real-TimeTask,Real-TimeTask,Real-TimeTask,Linux Kernel,LinuxProcess,LinuxProcess,User-Level,Kernel-Level,Real-time tasks do NOT use the Linux API or Linux facilitiesFailure in any real-time task crashes the entire system,Approaches to Real-Time Linux,Compliant Kernel Approach,Dual Kernel Approach,Core Kernel Approach,Resource Kernel Approach,Core Kernel Approach,Basic IdeasMake the kernel more suitable for real-timeEnsure that the impact of changes is localized so that Kernel upgrades can be easily incorporatedKernel reliability and scalability is not compromisedMechanismsStatic ConfigurationCan be configured at compile timeDynamic ConfigurationUsing loadable kernel modules,Core Kernel Approach,Allows the use of most if not all existing Linux primitives,applications,and tools.Need to avoid primitives that can take extended time in the kernelAllows the use of most existing device drivers written to support Linux.Need to avoid poorly written drivers that unfairly hog system resourcesRobustness and ReliabilityCore kernel modifications can effect robustness,but source is available,Approaches to Real-Time Linux,Compliant Kernel Approach,Dual Kernel Approach,Core Kernel Approach,Resource Kernel Approach,Resource Kernel,A Kernel that provides to Applications Timely,Guaranteed,and Enforced access to System ResourcesAllows Applications to specify only their Resource Demands,leaving the Kernel to satisfy those Demands using hidden management schemes,Protection in Resource Kernels,Each application(or a group of collaborating applications)operates in a virtual machine:a machine which consists of a well-defined and guaranteed portion of system resources CPU capacity,the disk bandwidth,the network bandwidth and the memory resourceMultiple virtual machines can run simultaneously on the same physical machineguarantees available to each reserve set is valid despite the presence of other(potentially mis-behaving)applications using other reserve sets,“Resource Kernel”Architecture,Physicalresources,RT Filesystem,Publisher/SubscriberServices,RT-ORB,QoS Mgr,Real-TimeJava,Linux Resource Kernel Architecture,Hardware,ResourceKernel,LinuxKernel,LinuxProcess,LinuxProcess,LinuxProcess,Kernel,User-Level,LKM,Reserves and Resource Sets,ReserveA Share of a Single ResourceTemporal ReservesParameters declare Portion and Timeframe of Resource UsageE.g.,CPU time,link bandwidth,disk bandwidthSpatial ReservesAmount of spaceE.g.,memory pages,network buffersResource SetA set of resource reserves,Summary,The world of embedded real-time is changing,and converging with theDesktop world,The Enterprise world,The Server world,The Internet World,etc.There are 3 dominant platformsVxWorks(proprietary)Windows variantsLinux variants,