Real-Time Rendszerek

Vizsga

A vizsga írásbelivel kezdődik és szóbelivel folytatódik.

Írásbeli

Az írásbeli vizsgán tíz kérdést kap minden hallgató, amelyekre 60 perc alatt kell válaszolni.

Minden kérdésre adott helyes válasz 2 pontot ér. A részben helyes válaszokra 0.5 és 1.5 közötti részpontok is adhatók. Az írásbeli értékelés a következőképpen történik:
pont Jegy
0-10 elégtelen
11-13 elégséges
14-16 közepes
17-18
19-20 jeles

Eredményhirdetés

Az írásbeli dolgozatok javítása az írásbeli vizsga után azonnal elkezdődik. Tíz dolgozat javítása kb. egy órát vesz igénybe. Az írásbeli dolgozatok kijavítása után egy óra technikai szünet következik, majd a vizsga folytatódik az írásbeli vizsga eredményeinek kihirdetésével. Az írásbeli után minden hallgatónak megajánlunk egy érdemjegyet, amelyet vagy elfogad, vagy szóbelizik.

Szóbeli

Az írásbeli vizsga megajánlott jegye belépőként szolgál a szóbeli vizsgán. A szóbeli vizsgán az írásbeli vizsgán elért érdemjegyen egy jegyet lehet maximum javítani. Ezzel szemben a rontási lehetőségek korlátlanok.

Vizsgakérdések

Introduction to Real-Time System

  1. Hogyan működnek a soros (sequential) a pszeudo-konkurens (pseudo-concurrent) és a konkurens számítógépes rendszerek (concurrent)?
  2. Milyen két feltételt kell ki elégítenie a valósidejű rendszereknek és milyen követelményeket határoznak meg ezek a követelmények?
  3. Mi a taszk és a mi a különbség a taszk és a folyamat (process) között a különbség?
  4. Mi értünk idő függő (time critical task) és időfüggetlen (non-time critical task) alatt?
  5. Rajzolja fel a valósidejű rendszerek alapstruktúráját és ismertesse két alapelemének feladatait!
  6. Milyen követelményeket (constraints) kell a valósidejű rendszereknek ki elégíteniük? Foglalja össze röviden az egyes követelmények által meghatározott korlátokat!
  7. Mi a különbség az ún puha időzítésű (soft real-time systems) és az ún. kemény időzítésű (hard real-time systems) valósidejű rendszerek között?
  8. Írja fel a periodikus és az aperiodikus kemény időzítésű valósidejű rendszerek időzítési követelményeit!
  9. Mit értünk megbízhatóság (reliability), tervezhetőség (predictability) és alkalmazkodás (adaptability) alatt a valósidejű rendszerekben?
  10. Milyen típusú valósidejű rendszereket alkalmaznak a gyakorlatban? Röviden ismertesse ezeket a rendszereket!
  11. Hasonlítsa össze az óra alapú (clock-based real-time systems) és az esemény vezérelt (event-driven real-time systems) valósidejű rendszereket!
  12. Mi a különbség a soros vagy szekvenciális programok (sequential programs) és a több felhasználós programok (multi-tasking programs) között?
  13. Milyen programokat nevezünk valósidejű programoknak? Rajzolja fel a valósidejű programok időzítési diagramját!
  14. Milyen jellemzők (measures) segítségével tudják meghatározni a valósidejű rendszerek teljesítményét (performance)? Foglalja össze az egyes jellemzők feladatait!
  15. Hogyan lehet meghatározni a valósidejű rendszerek futásidejét (run-time)?
  16. A valósidejű rendszerek tervezésekor milyen szempontokat kell figyelembe venni? Ismertesse röviden az egyes szempontokar!
  17. Mit értünk követelmény leírás (specification) és követelmény ellenőrzés (verification) alatt valósidejű rendszerekben?
  18. Milyen szolgáltatásokkal támogatja a valósidejű kernel a valósidejű rendszerek időzítési követelményeinek teljesítését?
  19. Mi az ütemezés alapfeladata valósidejű rendszerekben?
  20. Milyen hardware követelményeket támasztanak a valósidejű rendszerek?

Time and Synchronisation in Real-Time Systems

  1. Mit nevezünk valós időnek (real time) és óra időnek (clock time)?
  2. Milyen függvények segítségével lehet kezelni az óra időt?
  3. Mit értünk az ideális óra (ideal clock) alatt és milyen tulajdonságokkal rendelkezik az ideális óra?
  4. Hogyan kezeli az ideális óra az időt? Mi a kapcsolat a t óraütés idő és a w óraütés függvény között?
  5. Írja fel a valós óra (real clock) késését, illetve sietését leíró egyenletet és magyarázza meg az egyenletben szereplő változókat!
  6. Mi az esemény (event), az intervallum (interval) és az állapot (state) a valósidejű rendszerekben?
  7. Magyarázza meg a nyitott intervallum (open interval), a zárt intervallum (closed interval) és a korlátozatlan intervallum (unbounded interval) fogalmát egy-egy példa segítségével!
  8. Rajzolja fel az intervallumok közötti viszonyokat ábrázoló idődiagramokat!
  9. Mit értünk részleges (partially) esemény sorrend alatt? Milyen matematikai logikai szabályok segítségével lehet leírni az események részleges sorrendjét?
  10. Mi a különbség a részleges (partial) és a teljes /total/ esemény sorrend között? Mutassa be a különbségeket a matematikai logikai szabályok segítségével!
  11. A részleges (partial) és a teljes (total) esemény sorrend hogyan határozza meg az események sorrendiségét valósidejű rendszerekben?
  12. Mi a különbség a "Nemzetközi Atomi Idő" (TAI) és a "Koordinált Univerzális Idő" (UTC) között?
  13. Mi az időbélyeg (timestamp) és a logikai óra (logical clock)?
  14. Foglalja össze a logikai óra működési szabályait!
  15. Hogyan határozza meg a logikai óra egy valósidejű rendszerben az események teljes (global) sorrendiségét?
  16. Mi a különbség a logikai és a vektor óra között? Mutassa be a két óra működését esemény diagrammok segítségével!
  17. Milyen feladatok és problémák merülnek fel a szinkronizáció során, illetve, hogy oldják meg ezeket a feladatokat és problémákat?
  18. Határozza meg a fizikai és a logikai óra feladatát a szinkronizálás alatt valósidejű rendszerekben!
  19. Hasonlítsa össze a Berkely és a Cristian szinkronizálási módszereket /feladatok és műveletek/!
  20. Milyen problémák merülnek fel a Cristian módszer végrehajtása során és hogy oldják meg ezeket a problémákat?

Process Management in Real-Time Systems

  1. Határozza meg a folyamat (process) fogalmát a számítógépes rendszerekben!
  2. Milyen erőforrásokat nevezünk hozzárendelt (dedicated resources) erőforrásnak?
  3. Hasonlítsa össze a hozzárendelt erőforrásokat (dedicated resources) és az osztott erőforrásokat (shared resources) a felhasználó szemszögéből!
  4. Milyen erőforrásokat osztanak meg a valósidejű rendszerekben? Foglalja össze az egyes erőforrás megosztási módszereket!
  5. Mi a különbség a programkód és a memória szegmens közös felhasználása között?
  6. Milyen kommunikációs eszközöket használnak a valósidejű rendszerekben? Mutassa be ezeket az eszközöket!
  7. Határozza meg a sor (queue) a medence (pool) és körbuffer (hopper) feladatait a valósidejű rendszerekben!
  8. Milyen alapprimitivek segítségével lehet koordinálni a folyamatokat a valósidejű rendszerekben?
  9. Milyen feladatokat kell ellátni a folyamatok kezelése során a valósidejű rendszerekben?
  10. Milyen elemekből áll a folyamatok statikus és dinamikus adatstruktúrája?
  11. Mutass be a folyamatok különböző állapotait a a folyamatok állapot-átmenet (process stats & transitions) ábrájának segítségével
  12. Mi a folyamattábla és a folyamatleíró feladata? Milyen elemek találhatók a folyamattáblában és a folyamatleíróban?
  13. Milyen listákat használnak a valósidejű rendszerekben az egyes állapotok kezelésére?
  14. Mely rendszerhívások (system call) kezelik közvetlenül az időt? Mutass be ezeknek a rendszerhívásoknak a feladatait és működését!
  15. Mi az ütemező (scheduler) és a vezérlő (dispatcher) feladata a valósidejű rendszerekben?
  16. Mi a különbség a megvalósítható (feasible schedule) és az optimális ütemező (optimal schedule) között?
  17. Rajzolja fel a periodikus és az aperiodikus folyamatok ütemezési időzítési diagramját és hasonlítsa össze a két folyamattípus ütemezési feladatait és követelményeit!
  18. Miért növeli az ütemező a valósidejű rendszer terhelését az időben és hogyan lehet ezt a terhelést csökkenteni?
  19. Rajzolja fel az ütemező végrehajtásához szükséges környezetkapcsolást és magyarázza meg a végrehajtandó műveleteket!
  20. Milyen prioritás szinteket használnak a valósidejű rendszerekben? Foglalja össze az egyes prioritásszintek feladatait!
  21. Milyen feladatokat lát el a megszakítás szint (interrupt level) az ütemezés során?
  22. Hogyan kapcsolódik a valósidejű óra (real-time clock) a megszakítás és óra szinthez (clock level)?
  23. Mit folyamatokat nevezünk óra szintű folyamatoknak? Mi a különbség a magas és az alacsony prioritású óraszintű folyamatok között?
  24. Miben különböznek az alapszintű folyamatok (base level processes) a megszakítás és az óraszintű folyamatoktól?
  25. Milyen típusú ütemezőt használnak a valósidejű rendszerekben?
  26. Határozza meg az egyszerű (simple scheduling strategies) és a prioritás alapú (priority-based scheduling strategies) ütemezési stratégiák feladatait! Mi a különbség a két ütemezési stratégia között?
  27. Mi a különbség a felfüggeszthető (preemptive scheduling strategy) és a nem-felfüggeszthető ütemezési stratégia (non-preemptive scheduling strategy) között?
  28. Ismertesse az "Először jött először kiszolgálva" (first come first served) és a "Kerge rigó" (round robin) ütemezési algoritmusokat egy-egy ütemezési idődiagram segítségével!
  29. Hogyan működik a "legrövidebb feladat először" (shortest job firts) ütemezési algoritmus?
  30. Mutassa be a "végrehajtási ütem arányos" (rate monotonic scheduling) ütemezési algoritmus működését egy idődiagram segítségével!

Real-Time Kernels and Operating Systems

  1. Milyen alap- és kiegészítő szolgáltatásokat nyújt a valósidejű kernel?
  2. Hasonlítsa össze az egy-, a több processzoros és az osztott kernelt!
  3. Ismertesse a mikrokernel struktúráját és alapfeladatait!
  4. Milyen feladatokat hajt végre a mikrokernel a rendszer inicializálása alatt?
  5. Sorolja fel a mikrokernel folyamatkezelési feladatait!
  6. Milyen kommunikációs eszközöket és primitiveket használ a mikrokernel a valósidejű rendszerekben?
  7. Hogyan kezeli a mikrokernel a hardware és a software prioritási szinteket valósidejű rendszerekben?
  8. Hogyan lehet elérni a mikrokernelt eljáráshívás (procedure call), rendszerhívás (system call) és software megszakítás (software interrupt) segítségével?