Beyond CRTS Miranda Technologies Chris Pringle. Agenda Introduction About Miranda My Role Real Time...

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

Transcript of Beyond CRTS Miranda Technologies Chris Pringle. Agenda Introduction About Miranda My Role Real Time...

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