Mittels Zeitpartitionen kann sichergestellt werden, dass kritische Systemkomponenten immer genug CPU-Zeit zur Verfügung haben. Dies soll verhindern, dass bestimmte Prozesse zu viel CPU-Zeit an sich reißen. Dabei gibt es zwei Varianten: feste (statische) Partitionierung und adaptive Partitionierung. Stellt das Betriebssystem Zeitpartitionen zur Verfügung, kann der Entwickler die Systemfunktionen in Gruppen (Partitionen) aufteilen und jeder Partition ein CPU-Zeitbudget (in Prozent) zuweisen. Dann kann kein Prozess mehr CPU-Zeit verbrauchen, als seiner Partition zugewiesen wurde.
Wurden etwa 30% zugewiesen, müssen sich die Prozesse innerhalb dieser Partition genau diese 30% CPU-Zeit teilen. Damit ist sichergestellt, das Prozesse in anderen Partitionen entsprechend verfügbar sind. Problematisch kann es werden, wenn die Partitionsgrößen fest (statisch) sind (Bild 8).
Mit statischen Zeitpartitionen sichert man den darin liegenden Prozessen nämlich nicht nur bestimmte Mengen CPU-Zeit zu, sondern beschränkt sie auch auf genau diese Menge - bremst sie also selbst dann aus, wenn die CPU eigentlich gar nicht voll ausgelastet ist.
Die adaptive Partitionierung (Bild 9), ein relativ neues Zeitpartitionierungsverfahren, ist eine mögliche Lösung. Auch hiermit lassen sich Zeitpartitionen erstellen, mit denen der Entwickler jedem Systemteil eine bestimmte Menge CPU-Zeit zuordnen kann. Anders als bei der festen Partitionierung geht es hier allerdings darum, eine Mindestmenge an CPU-Zeit zu garantieren. Das heißt: Die Partition kann über die zugewiesene CPU-Zeit verfügen - und auch über mehr, wenn andere Partitionen nicht das gesamte zugewiesene Zeitbudget nutzen.
Damit kann die CPU voll ausgenutzt werden, das System läuft insgesamt schneller, und trotzdem erhalten alle Softwarekomponenten garantiert die zugewiesene Mindestmenge an CPU-Zeit. In ihre Schranken werden Prozesse erst dann gewiesen, wenn sie stark mit anderen Prozessen in anderen Partitionen um CPU-Zeit konkurrieren. Der Partitionierer greift dann ein und stellt sicher, dass die Zeitbudgets eingehalten werden.
Ein Microkernel-OS bietet sehr guten Schutz vor Softwareproblemen und damit verbundenen Ketten-reaktionen. In Geräten, bei denen eine enorm hohe Verfügbarkeit gewährleistet werden muss, kann man sich dies zunutze machen, indem man (neben eventuellen hardware-basierten Verfügbarkeitslösungen) einen softwarebasierten Hochverfügbarkeitsmanager einsetzt. Dieser kann kritische Systemkomponenten überwachen und mehrstufige Recovery-Aktionen durchführen, wenn er feststellt, dass ein Prozess abgestürzt ist oder nicht mehr reagiert. Ein guter Hochverfügbarkeitsmanager kann:
Konformität
Ein Medizintechniksystem muss den Vorgaben und Richtlinien der Gesetzgeber oder Behörden der Länder entsprechen, in denen es verkauft werden soll. Die entsprechenden Nachweise sind zu erbringen - vorher kann das in die Entwicklung investierte Geld für den Hersteller nicht zu gewinnbringendem Umsatz werden. Doch wie jedes Unternehmen hat auch eine Medizintechnikfirma Konkurrenten.
Zwar gibt es nicht die klassischen kalenderabhängigen Zeitrahmen (beispielsweise Weihnachtsgeschäft), trotzdem spielt der Zeitfaktor oft eine wichtige Rolle. Denn je länger es dauert, ein Gerät zu entwickeln, desto mehr kostet die Entwicklung schließlich und desto mehr Zeit hat ein Wettbewerber eventuell, um sich Marktanteile zu sichern.
Vor allem bei Neueinführung bestimmter Technologien etabliert sich derjenige, der als erstes am Markt war, oft zum Standard. Deshalb ist es wichtig, auch und gerade beim Aspekt der Zertifizierung zu überlegen, wie sich Zeit und damit Geld sparen lassen. Beim Betriebssystem gibt es hierbei die Möglichkeit, einen OS-Kernel einzusetzen, der besipielsweise bereits IEC 61508 SIL 3 erhalten hat.
Die gesamte Applikationssoftware steht ja quasi auf dem Betriebssystem als Fundament - und wenn dafür der Nachweis für extrem geringe Ausfallwahrscheinlichkeit schon erbracht wurde, ist der Weg zu einer Zertifizierung nach IEC 62304 deutlich leichter. Es ist also auf jeden Fall hilfreich, einen OS-Anbieter zu suchen, der bereits erfolgreich verschiedene Zertifizierungen durchlaufen hat.
Über die Autoren:
Justin Moon ist Product Manager Medical, Malte Mundt ist Field Application Engineer, beide bei QNX Software Systems.