Du har ret, udsagnet om, at UNIX er uegnet til realtidsapplikationer, fordi en proces, der udføres i kerne-tilstand . Lad os nedbryde hvorfor:
forståelse af problemet
* realtidsapplikationer: Systemer i realtid kræver strenge timing-garantier. En opgave skal gennemføre inden for en bestemt frist, uanset andre processer, der kører på systemet.
* Kerneltilstand: Når en proces kører i kernetilstand, har den direkte adgang til systemets hardware og ressourcer. Dette er nødvendigt for opgaver som håndtering af afbrydelser eller styring af I/O -enheder.
* FREMPTION: FORFATTE er operativsystemets evne til at afbryde en kørselsproces og skifte til en anden. I et realtidssystem er præference afgørende for at sikre, at opgaver med høj prioritet ikke er forsinket med opgaver med lavere prioritet.
Hvorfor er udsagnet delvist sandt
Erklæringen fokuserer på et kritisk problem i traditionelle UNIX-lignende systemer. Kernen, mens den er ansvarlig for planlægning, er i sig selv ikke altid undtagelig. Dette betyder det:
1. Kernekodeforsinkelser: Hvis en kernefunktion, endda en lavprioritet, tager for lang tid at udføre, kan den blokere andre opgaver, herunder opgaver med høj prioritet.
2. Deadlines Savne: Hvis en realtidsopgave skal køre, men en kernefunktion blokerer den, kan fristen for denne opgave gå glip af.
Hvorfor er det forenklet
* Ikke alle Unix -systemer er de samme: Der er variationer i, hvordan forskellige UNIX-lignende systemer håndterer kerneforvisning. Nogle nyere kerner, som Linux, har introduceret teknikker til forbedring af præference, hvilket gør dem mere egnede til realtidsscenarier.
* Udvidelser i realtid: Mange UNIX-lignende systemer har realtidsudvidelser (som POSIX realtid), der adresserer denne begrænsning. Disse udvidelser giver:
* Prioritetsbaseret planlægning: Opgaver i realtid kan tildeles højere prioriteter end normale processer.
* timere og frister: Opgaver i realtid kan være forbundet med frister og timere, hvilket giver systemet mulighed for at håndhæve tidsbegrænsninger.
* Forebyggende kerner: Nogle udvidelser i realtid inkluderer forebyggende kerner for at sikre, at opgaver med høj prioritet ikke er forsinket.
Konklusion
Selv om det er sandt, at manglen på undtagelig kerne-kode i nogle traditionelle UNIX-implementeringer var en betydelig hindring for realtidsapplikationer, er det ikke en komplet erklæring om situationen. Moderne UNIX-lignende systemer, især med udvidelser i realtid, har foretaget betydelige forbedringer i at tackle dette problem. For applikationer med strenge realtidskrav er det imidlertid vigtigt at vælge et system med en forebyggende kerne og udvidelser i realtid.