22
Beyond CRTS Beyond CRTS Miranda Technologies Miranda Technologies Chris Pringle Chris Pringle

Beyond CRTS Miranda Technologies Chris Pringle. Agenda Introduction About Miranda My Role Real Time Systems Crashing Nightmares Software Design in the

Embed Size (px)

Citation preview

Page 1: Beyond CRTS Miranda Technologies Chris Pringle. Agenda Introduction About Miranda My Role Real Time Systems Crashing Nightmares Software Design in the

Beyond CRTSBeyond CRTS

Miranda TechnologiesMiranda Technologies

Chris PringleChris Pringle

Page 2: Beyond CRTS Miranda Technologies Chris Pringle. Agenda Introduction About Miranda My Role Real Time Systems Crashing Nightmares Software Design in the

AgendaAgenda

IntroductionIntroductionAbout MirandaAbout MirandaMy RoleMy RoleReal Time SystemsReal Time SystemsCrashing NightmaresCrashing NightmaresSoftware Design in the Real WorldSoftware Design in the Real WorldSoftware ManagementSoftware ManagementPeople SkillsPeople SkillsFinding your job!Finding your job!

Page 3: Beyond CRTS Miranda Technologies Chris Pringle. Agenda Introduction About Miranda My Role Real Time Systems Crashing Nightmares Software Design in the

IntroductionIntroduction

About meAbout me

2+2 CRTS Degree2+2 CRTS Degree

Career HistoryCareer History RWE NPowerRWE NPower Hewlett PackardHewlett Packard Miranda TechnologiesMiranda Technologies

Page 4: Beyond CRTS Miranda Technologies Chris Pringle. Agenda Introduction About Miranda My Role Real Time Systems Crashing Nightmares Software Design in the

About MirandaAbout Miranda

Product RangesProduct Ranges Master Control & BrandingMaster Control & Branding Facility Monitoring & ControlFacility Monitoring & Control Signal Processing and DistributionSignal Processing and Distribution Multi Image Display ProcessorsMulti Image Display Processors Routing SwitchersRouting Switchers Playout ServersPlayout Servers Production and Post-Production InterfacesProduction and Post-Production Interfaces

Page 5: Beyond CRTS Miranda Technologies Chris Pringle. Agenda Introduction About Miranda My Role Real Time Systems Crashing Nightmares Software Design in the

My role at MirandaMy role at Miranda

Presmaster Control SystemPresmaster Control System Configuration toolsConfiguration tools Router driverRouter driver

Imagestore / IntuitionImagestore / Intuition Kernel & DriversKernel & Drivers AudioAudio Clip PlaybackClip Playback

R&D ResponsibilitiesR&D Responsibilities Configuration Management SystemConfiguration Management System R&D ServersR&D Servers R&D RacksR&D Racks

Page 6: Beyond CRTS Miranda Technologies Chris Pringle. Agenda Introduction About Miranda My Role Real Time Systems Crashing Nightmares Software Design in the

Real Time SystemsReal Time Systems

What are they?What are they? Hard real timeHard real time

Operation depends on correctness and time Operation depends on correctness and time constraintsconstraints

Soft real timeSoft real timeAs above, but some toleration of latenessAs above, but some toleration of lateness

Page 7: Beyond CRTS Miranda Technologies Chris Pringle. Agenda Introduction About Miranda My Role Real Time Systems Crashing Nightmares Software Design in the

Real Time Linux/Windows?Real Time Linux/Windows?

What constitutes a Real Time O/S?What constitutes a Real Time O/S? Deterministic response timesDeterministic response times Low interrupt latencyLow interrupt latency Preemptible kernelPreemptible kernel Scheduler (FIFO)Scheduler (FIFO) And more… (Priority inversion resolution, And more… (Priority inversion resolution,

deadlock detection etc.)deadlock detection etc.)

Page 8: Beyond CRTS Miranda Technologies Chris Pringle. Agenda Introduction About Miranda My Role Real Time Systems Crashing Nightmares Software Design in the

Real Time Linux/Windows?Real Time Linux/Windows?

Are Linux and Windows Real Time?Are Linux and Windows Real Time?Can they be made Real Time?Can they be made Real Time? MontaVista LinuxMontaVista Linux FSMLabs RTLinuxFSMLabs RTLinux Windows CEWindows CE VXWorksVXWorks

BUT – they none of them guarantee BUT – they none of them guarantee determinism!determinism!Remember – If you’re in R&D – the ‘R’ is Remember – If you’re in R&D – the ‘R’ is important!!!important!!!

Page 9: Beyond CRTS Miranda Technologies Chris Pringle. Agenda Introduction About Miranda My Role Real Time Systems Crashing Nightmares Software Design in the

IS300 / Presmaster DemoIS300 / Presmaster Demo

Page 10: Beyond CRTS Miranda Technologies Chris Pringle. Agenda Introduction About Miranda My Role Real Time Systems Crashing Nightmares Software Design in the

Crashing nightmares!Crashing nightmares!

What do you do when?What do you do when? System runs okay for 99.9% of the timeSystem runs okay for 99.9% of the time System hangs after 3 weeksSystem hangs after 3 weeks No log entriesNo log entries

Imagestore 300 NightmareImagestore 300 Nightmare Simple CPU changeSimple CPU change

Intuition NightmareIntuition Nightmare

Page 11: Beyond CRTS Miranda Technologies Chris Pringle. Agenda Introduction About Miranda My Role Real Time Systems Crashing Nightmares Software Design in the

Fault findingFault finding

Look for the sourceLook for the source Is it in kernel or user space? Is it hardware?Is it in kernel or user space? Is it hardware? List the possibilities – no matter how improbable!List the possibilities – no matter how improbable! Think about what may be aggravating the problemThink about what may be aggravating the problem Try and make the problem worseTry and make the problem worse

Get pointers/helpGet pointers/help Use your colleagues!Use your colleagues! InternetInternet

Page 12: Beyond CRTS Miranda Technologies Chris Pringle. Agenda Introduction About Miranda My Role Real Time Systems Crashing Nightmares Software Design in the

Fault FindingFault Finding

Reproduce itReproduce it Kernel/JTAG debuggerKernel/JTAG debugger Logic analyser / FPGA scope toolsLogic analyser / FPGA scope tools

Isolate the problem in softwareIsolate the problem in software

If necessary, isolate the problem in If necessary, isolate the problem in hardwarehardware

Learn when it’s time to change your Learn when it’s time to change your approachapproach

Page 13: Beyond CRTS Miranda Technologies Chris Pringle. Agenda Introduction About Miranda My Role Real Time Systems Crashing Nightmares Software Design in the

What was it?What was it?

Imagestore 300:Imagestore 300: outb(0x80, 0x80); outb(0x80, 0x80); outb(0x30, 0x30);outb(0x30, 0x30);

IntuitionIntuition We’ll never know!We’ll never know!

Page 14: Beyond CRTS Miranda Technologies Chris Pringle. Agenda Introduction About Miranda My Role Real Time Systems Crashing Nightmares Software Design in the

Programming Real Time SystemsProgramming Real Time Systems

Make effective use of drivers/interruptsMake effective use of drivers/interrupts Top and bottom halvesTop and bottom halves

FIFO SchedulerFIFO Scheduler Don’t poll or sleep! Use interrupts!Don’t poll or sleep! Use interrupts!

CPU vs I/O boundCPU vs I/O bound Get your priorities sorted!Get your priorities sorted!

Process affinityProcess affinity Plan and experimentPlan and experiment

Hardware SettingsHardware Settings Wrongly set BIOS settings can RUIN your Wrongly set BIOS settings can RUIN your

performance!performance!

Page 15: Beyond CRTS Miranda Technologies Chris Pringle. Agenda Introduction About Miranda My Role Real Time Systems Crashing Nightmares Software Design in the

Software Development in the Real Software Development in the Real WorldWorld

Build on your skills – Research!Build on your skills – Research!

Learn when to compromiseLearn when to compromise

The most elegant solution isn’t always the The most elegant solution isn’t always the right oneright one

Accept you’re sometimes wrong!Accept you’re sometimes wrong!

Page 16: Beyond CRTS Miranda Technologies Chris Pringle. Agenda Introduction About Miranda My Role Real Time Systems Crashing Nightmares Software Design in the

Software ManagementSoftware Management

Configuration ManagementConfiguration Management

Issue TrackingIssue Tracking

The dreaded “D” word!The dreaded “D” word!

Project Plan & ResourcesProject Plan & Resources

Code ReviewsCode Reviews

Page 17: Beyond CRTS Miranda Technologies Chris Pringle. Agenda Introduction About Miranda My Role Real Time Systems Crashing Nightmares Software Design in the

People SkillsPeople Skills

Dealing with?Dealing with? Product DevelopmentProduct Development Senior ManagersSenior Managers SupportSupport PeersPeers Your immediate manager/supervisorYour immediate manager/supervisor

Page 18: Beyond CRTS Miranda Technologies Chris Pringle. Agenda Introduction About Miranda My Role Real Time Systems Crashing Nightmares Software Design in the

Dealing with PeopleDealing with People

ManagementManagement Be respectful, but fight your cornerBe respectful, but fight your corner Cover your back side!Cover your back side!

A good programmer is a team player!A good programmer is a team player! Learning to deal with awkward peopleLearning to deal with awkward people Accept it when you’re wrong!Accept it when you’re wrong!

Don’t make recommendations to Don’t make recommendations to management if you’re not sure!management if you’re not sure!

Page 19: Beyond CRTS Miranda Technologies Chris Pringle. Agenda Introduction About Miranda My Role Real Time Systems Crashing Nightmares Software Design in the

CommunicationCommunication

Team MeetingsTeam Meetings

Code ReviewsCode Reviews

Email / DocumentationEmail / Documentation

Log book!Log book!

Page 20: Beyond CRTS Miranda Technologies Chris Pringle. Agenda Introduction About Miranda My Role Real Time Systems Crashing Nightmares Software Design in the

Finding your job!Finding your job!

Know what you wantKnow what you want

The InterviewThe Interview 2 way process2 way process Don’t lie/blag – it’s transparent!Don’t lie/blag – it’s transparent! Be honest and upfront with your skill setBe honest and upfront with your skill set Sell yourself – but don’t be arrogant!Sell yourself – but don’t be arrogant!

Look for ways to enhance your skillsLook for ways to enhance your skills

Look for a challenge!Look for a challenge!

Page 21: Beyond CRTS Miranda Technologies Chris Pringle. Agenda Introduction About Miranda My Role Real Time Systems Crashing Nightmares Software Design in the

Q&AQ&A

Page 22: Beyond CRTS Miranda Technologies Chris Pringle. Agenda Introduction About Miranda My Role Real Time Systems Crashing Nightmares Software Design in the

Chris PringleChris PringleSoftware EngineerSoftware Engineer

Miranda Technologies Ltd.Miranda Technologies [email protected]@miranda.com