diff --git a/main.typ b/main.typ index 5f98730..74e4274 100644 --- a/main.typ +++ b/main.typ @@ -188,9 +188,13 @@ Bei geteilten Ressourcen wie Bussen tritt dieses Problem häufig auf, weswegen i Da hier eine geteilte Ressource (der Bus) _fair_ zwischen mehreren Clients (den Treibern) verteilt werden soll, bietet sich ein #link("https://de.wikipedia.org/wiki/Prozess-Scheduler", link-text([Scheduling Verfahren])) an. Fragt ein Client einen I²C-Transfer an, so wird er nicht direkt ausgeführt, sondern mit anderen ausstehenden Anfragen in einer Warteschlange (Queue) gespeichert. -Nun kann der I²C-Scheduler die nächste anstehende Transaktion nach einem Scheduling-Verfahren wie dem #link("https://en.wikipedia.org/wiki/Completely_Fair_Scheduler", link-text([Completely Fair Scheduler])) aussuchen und durchführen, um Aushungern zu vermeiden. +Nun kann der I²C-Scheduler die nächste anstehende Transaktion nach einem Scheduling-Verfahren wie dem Completely Fair Scheduler@wiki-cfs aussuchen und durchführen, um Aushungern zu vermeiden. -Nachfolgend ist der Ablauf mit dem simplen #link("todo", link-text([Round-Robin-Verfahren])) gezeigt: +Nachfolgend ist der Ablauf mit dem simplen Round-Robin-Verfahren@wiki-round-robin gezeigt: -//TODO: +#figure( + image("./i2c-scheduler-rr.excalidraw.png"), + caption: [I²C-Scheduling mit Round Robin], + alt: "A vertical scheduling diagram showing round robin scheduling", +) diff --git a/refs.bib b/refs.bib index e69de29..5514ac2 100644 --- a/refs.bib +++ b/refs.bib @@ -0,0 +1,26 @@ +@misc{iotbyhvm, + author = {Harshvardhan Mishra}, + title = {Peripheral Management on Linux: UART, GPIO, ADC, SPI, I2C}, + howpublished = {\url{https://iotbyhvm.ooo/peripheral-management-on-linux-uart-gpio-adc-spi-i2c/}}, + year = {2025}, + month = {03}, + note = {Zuletzt aufgerufen: 2026-01-20}, +} + +@misc{wiki-round-robin, + author = {Wikipedia contributors}, + title = {Round Robin (Informatik)}, + howpublished = {\url{https://de.wikipedia.org/w/index.php?title=Round_Robin_(Informatik)&oldid=249025330}}, + year = {2024}, + month = {09}, + note = {Zuletzt aufgerufen: 2026-01-20}, +} + +@misc{wiki-cfs, + author = {Wikipedia contributors}, + title = {Completely Fair Scheduler}, + howpublished = {\url{https://en.wikipedia.org/w/index.php?title=Completely_Fair_Scheduler&oldid=1329198135}}, + year = {2025}, + month = {12}, + note = {Zuletzt aufgerufen: 2026-01-20}, +}