diff options
author | Julian T <julian@jtle.dk> | 2020-06-05 11:55:01 +0200 |
---|---|---|
committer | Julian T <julian@jtle.dk> | 2020-06-05 11:55:01 +0200 |
commit | d8578fd12f65e7335490129c7712af52cbf61c7e (patch) | |
tree | f52d50742b763829a42c0f00c77bfa8d29d947f0 /sem4/embedded/eksamnen/notes.md | |
parent | fc90ff2c6e8ee40701761a1da153496500d34cb0 (diff) |
Moved to asciidoc to get easier rendering
Diffstat (limited to 'sem4/embedded/eksamnen/notes.md')
-rw-r--r-- | sem4/embedded/eksamnen/notes.md | 161 |
1 files changed, 0 insertions, 161 deletions
diff --git a/sem4/embedded/eksamnen/notes.md b/sem4/embedded/eksamnen/notes.md deleted file mode 100644 index 450740a..0000000 --- a/sem4/embedded/eksamnen/notes.md +++ /dev/null @@ -1,161 +0,0 @@ - -## J1 module 1 - -> Show code and explain for 1,4,5,6 (design and impl ISR, time based debouncing, tick routing, limitations) - -TODO med arduino. -Og debouncer. - -### Noter - -Findes forskellige slags realtime afhængig af hvor vigtigt det er at man laver -sin opgave inden for deadline. - -- **Hard** er når en manglende deadline tæller som en system fejl. -- **Firm** nogle deadlines på gerne misses, men disse resultater vil være ubrugelige. -- **Soft** et resultat er ikke nær så meget værd hvis det er forsent, men kan stadig bruges. - -## H1 module 2 - -> Exercise 1-11 - -See ../emb_m2/emb_m2.ino - -TODO med arduino - -### Noter - -**Q-format** er hver man dedikere nogle af bits til decimaler. -Det er derfor ikke *floating* point. - -**Floating points** er decimal tak med en floating point. -Her har man kun et bestemt tal betydende cifre. - -TODO læs op på error calculus. -Totalt uforståeligt i slides. - -Der findes forskellige måder at have negative tal på. - -- Signed - Her bruger man MSB til at betyde sign. - Når den er 1 er det et minutal. - Problemet er at der nu er 2 nuller. -- 1's komplement - Ligesom *signed* men når det er negativt er alle bits flippet. - Dette gør det meget lettere at lave matematik på det. - Her er stadig det problem at der er 2 nuller. -- 2's komplement - Ligesom *1.s komplement* men negative har 1 lagt til. - Dette betyder at der kun er 1 nul værdi. - -## H2 module 3 - -> Exercise 4-7 - -TODO lav det her på arduino. - -### Noter - -To forskellige hoved protokoller. - -- ASCII - Let at læse at læse for en person. - Det er nemmere at seperere felter. - Bare ikke særlig efficient. -- Binary - Inviklet af seperere felter, da data felter kan indeholder delimiters. - Mere efficient. - -Findes fire forskellige structurelle elementer. - -- Sequence - Flere elementer efter hinnanden. -- Alternation - Enten den ene eller anden type element. -- Repetition - Lister af det samme elemtn -- Abstraction - Structure og egne data typer. - -**Haming distance** er hvor mange bits er forskellige mellem to bit sekvenser. - -**Haming distance of protection code** hvor langt der er imellem to sekvenser -der stadig er korrekte. -Dette kan man kande for *HD*. - -- Hvis *HD* er større end *n* kan man detect *n* bit errors. -- Hvis *HD* er større end *2n* kan man fixe *n* bit errors. - -Fletcher *HD* er 2 så man kan detect en bit fejl. - -## J2 module 4 - -> Show LED13 blink code and explain program. - -> Explain interrupt - -> Lack of control maybe bq of non-interruptable ISRs - -> Procesmodel: running,ready,blocked - -> semaphore wait and signal - -## J3 module 5 - -> What is a semaphore, show code from above and eplaing critical region setup - -## J4 module 6 - -> Show code for and explain message queues as a buffering tool. - -## J5 module 6.5 - -> Exercise 1 in part3 on page295 (Pdf is on moodle) - -## H3 module 7 - -> Exercise 4-5 - -### Noter - -**Scheduling** er når flere opgaver eller jobs skal time shares på en CPU. -Et **Schedule** er plan for hvordan disse opgaver skal have tid. -Et schedule er **feasable** hvis alle jobs kan køres imellem deres readytime og -deadline. - -Der findes forskellige kategorier. - -- Fixed schedules - Jobs kører på tidspunkter man har bestemt for forhånd. - Og dette kører bare i loop. - Dette er ret simpelt og effektivt men ikke særlig fleksibelt. - - Her behøver man kun lave en plan hen til LCM eller Least Common Multiple af - tasks periods. -- Round robin - Fixed tidsrum er delt ud mellem jobs periodisk. - Simpelt og fleksiblet men ikke effekttivt. -- Fixed priority - Det er altid jobbet med højeste prioritet der kører. - Dette er simpelt og fleksibelt, men kun middelt effektivt. -- Dynamic priority - Her bruger man andre regler til at bestemme hvem der kører. - Dette giver de bedste resultater men er også mere komplekst. - -Utilization er *completion time* dividere med *period*. -Man kan definere CPU utilization som: - -$$ -U = \sum_{i=1}^N \frac{c_i}{T_i} -$$ - -*Rate Monotonic Scheduling* eller **RMA** er når man giver task med lav periode -højere prioritet. - -## H4 module 8 - -> Exercise 1-2 - -## H5 module 9 - -> All exercises |