ChatGPT und Co. – der Versuch eines Blickes unter die Haube

Wenn man in sozia­len Netz­wer­ken über Sprach­mo­del­le wie GPT‑3 liest, blei­ben genau wie in den Feuil­le­tons die meis­ten Ana­ly­sen und Bewer­tun­gen auf der phä­no­me­no­lo­gi­schen Ebe­ne stehen:

  • Was kann ich im Unter­richt damit machen?
  • Was muss ich tun, damit ein Feh­ler in der Aus­ga­be auftritt?
  • Wel­chen Ein­fluss wer­den Sprach­mo­del­le auf die Schu­le der Zukunft haben?
  • War­um soll­ten Sprach­mo­del­le in der Schu­le nicht ver­bo­ten werden?
  • […]

Eine Analogie

Wenn ich mit Schul­klas­sen das ers­te Mal mit Indi­ka­to­ren im Che­mie­un­ter­richt expe­ri­men­tie­re, kommt es für vie­le zunächst nicht dar­auf an, war­um ein Indi­ka­tor eine bestimm­te Far­be hat, son­dern eher dar­auf, wie sich mög­lichst vie­le unter­schied­li­che Far­ben durch wahl­lo­ses Zusam­men­kip­pen erzeu­gen las­sen. Ich könn­te dabei in Aner­ken­nung der indi­vi­du­el­len Neu­gier Fra­gen stel­len, die auf einem ähn­li­chen phä­no­me­no­lo­gi­schen Level wie die sozia­len Medi­en zur Sprach­mo­del­len dis­ku­tier­ten Fra­gen operieren.

  • Durch wel­chen Men­gen­ver­hält­nis­se bekom­me ich wel­che Far­be hin?
  • Wie kann ich die­se Far­ben außer­halb des Labors nutzen?
  • Wel­chen Ein­fluss hat das neue Farb­spek­trum auf die Ent­wick­lung neu­er Wandfarben?
  • Stellt die­se Neu­ent­wick­lung nicht grund­le­gen­de Ver­fah­ren der Farb­her­stel­lung und des ästhe­ti­schen Emp­fin­dens in Frage?

Die­se Fra­gen sind berech­tigt. Aber eigent­lich sind die Indi­ka­to­ren z.B. ein Mit­tel, um sich gene­rel­len Stoff­ei­gen­schaf­ten (sau­er / alka­lisch) auf einer phä­no­me­no­lo­gi­schen Ebe­ne anzu­nä­hern, Gesetz­mä­ßig­kei­ten zu ent­de­cken und dar­aus wei­te­re all­ge­mei­ne Aus­sa­gen abzu­lei­ten. Nie­mand käme hier auf die (didak­ti­sche) Idee, hier auf der Ebe­ne der Phä­no­me­ne ste­hen­zu­blei­ben oder Men­schen auf Basis der blo­ßen Beob­ach­tung die­ser Phä­no­me­ne etwas „ver­mit­teln“ zu wollen.

Was ich selbst über Sprachmodelle weiß

Sprach­mo­del­le erle­be ich zur­zeit selbst auf einer phä­no­me­no­lo­gi­schen Ebe­ne. Ich expe­ri­men­tie­re mit Ein­ga­ben und unter­schied­li­chen Para­me­tern her­um. Ich weiß den­noch eini­ges über IT-Sys­te­me, was mir ein wenig hilft, die Leis­tun­gen von Sprach­mo­del­len ein­zu­ord­nen. Ich möch­te für mich durch die­sen Text eher ein­gren­zen, was ich eigent­lich noch nicht weiß, um dar­aus dann Fra­gen zu ent­wi­ckeln, die etwas weg von den Phä­no­me­nen füh­ren. Ich nut­ze dazu Kennt­nis­se, die ich im Rah­men mei­nes Infor­ma­tik­stu­di­ums auf Lehr­amt anders hineinvernetzte.

Ein Sprachmodell braucht eine Grammatik

Eine sehr simp­le Metho­de zur Beschrei­bung einer Gram­ma­tik ist die Erwei­ter­te Backus-Naur-Form (ENBF). Selbst die genaue gram­ma­ti­sche Defi­ni­ti­on einer Zahl ist schon gar nicht so einfach.

Ken­nen“ muss ein Mensch oder IT-Sys­tem dazu zunächst die in einer Spra­che ver­wen­de­ten Sym­bo­le (Ter­mi­na­le), wir ver­wen­den in Deutsch­land die Zei­chen 0–9 zur Dar­stel­lung von Zah­len, das sind also unse­re Terminale.

ZifferAusserNull = "1" | "2" | "3" | "4" | "5" | "6" | "7" | "8" | "9";
Ziffer           = "0" | ZifferAusserNull

Damit haben wir defi­niert, wel­che Sym­bo­le unse­re Spra­che zur Dar­stel­lung von Zah­len ver­wen­det. Das „|“-Zei­chen ist als „oder“ zu lesen. Die­se Defi­ni­tio­nen kön­nen wir für alle wei­te­ren als Platz­hal­ter ver­wen­den. Damit kön­nen wir jetzt eine natür­li­che Zahl definieren:

NatuerlicheZahl   = ZifferAusserNull, { Ziffer };
NegativeGanzeZahl = "-", NatuerlicheZahl;

Der Aus­druck in geschweif­ten Klam­mern kann belie­big oft oder gar nicht vor­kom­men. Jetzt kann unse­re „KI“ auf Basis die­ser Gram­ma­tik gan­ze Zah­len mit Vor­zei­chen, aber kei­ne Null erkennen.

Das geht aber mit die­ser Definition:

Zahl = ([ "-" ], ZifferAusserNull, { Ziffer }) | "0" ;

Eine Zahl besteht aus einem optio­na­len Minus­zei­chen, gefolgt von einer Zif­fer außer Null, gefolgt von belie­big vie­len wei­te­ren Zif­fern (auch kei­ner wei­te­ren Zif­fer). Oder: Eine Zahl besteht aus dem Zei­chen Null.

Bei Wor­ten wird es schon schwieriger.

Wort = [A-Z], {a-z}

Ein Wort besteht aus min­des­tens zwei Sym­bo­len aus dem Zei­chen­vor­rat a‑z, wobei am Anfang auch der Sym­bol­vor­rat {A‑Z} ste­hen kann.

Dum­mer­wei­se erfüllt jedes Fan­ta­sie­wort belie­bi­ger Län­ge genau die­se Bedin­gung. An eine Defi­ni­ti­on von „Satz“ mag ich da gar nicht erst den­ken. Aber jedes Sprach­mo­dell muss in einem ers­ten Schritt die Ein­ga­be auf Basis von vor­ge­be­nen Regeln ana­ly­sie­ren, bevor es intern wei­ter­ar­bei­ten kann.

Es wird aber auch schon jetzt klar, dass nicht gram­ma­tik­kon­for­me Eingaben

  1. erkannt
  2. auf Feh­ler ana­ly­siert sind

Damit kön­nen ins­be­son­de­re Recht­schreib­feh­ler recht ein­fach kor­ri­giert wer­den, indem auf Basis von z.B. Wahr­schein­lich­kei­ten ein gram­ma­ti­kon­for­mer Ersatz gesucht wird.

Ein Sprachmodell braucht eine Semantik

Bei uns im Hand­ball wird eine Soft­ware für Spiel­pro­to­kol­le ein­ge­setzt. Die Ein­ga­ben macht ein spe­zi­ell geschul­ter Mensch (z.B. ich), der „Sekre­tär“ genannt wird. Ein sol­ches Spiel­pro­to­koll sieht tech­nisch etwa so aus:

00:59   TOR     HEIM   01   1:0
01:02   GELB    GAST   89
08:36   ZEIT    GAST   89
08:45   TOR 7M  HEIM   04   2:0

Das ers­te Tor fiel für die Heim­mann­schaft nach 59s nach einem Foul des geg­ne­ri­schen Spie­lers mit der Num­mer 89. Es dau­er­te lan­ge 7:34 Minu­ten, bis der nächs­te Tref­fer per 7m nach einem mit Zeit­stra­fe geahn­de­tem Foul dem Spie­ler mit der Num­mer 4 gelang.“

Mit dem Kon­text „Hand­ball­spiel“ kann eigent­lich auch jeder, der in der Hal­le nicht anwe­send war, auf die­ser Basis einen kor­rek­ten Spiel­be­richt ver­fas­sen. Aus Meta­da­ten wie der Zeit las­sen sich auf Basis von Wahr­schein­lich­kei­ten wei­te­re Aus­sa­gen ergän­zen, z.B. sind tor­lo­se sie­ben Minu­ten im Hand­ball schon recht unge­wöhn­lich und es kom­men dafür nur weni­ge Ursa­chen in Betracht. Die Text­sor­te „Bericht“ gibt gram­ma­tisch die zu ver­wen­den­de Zeit­form vor, die mög­li­chen Ver­ben in einem Sport­be­richt sind zudem begrenzt.

Ich glau­be, dass man sich gut vor­stel­len kann, wie sich das Ver­fas­sen von Spiel­be­rich­ten ver­gleichs­wei­se ein­fach mit einem IT-Sys­tem umset­zen lässt, wenn es Regeln zur Umset­zung der Daten in eine Gram­ma­tik gibt. Der resul­tie­ren­de Text wirkt erst ein­mal authen­tisch, wenn er unse­re Erwar­tun­gen an einen Sport­be­richt erfüllt. Das tut er wie­der­um, wenn bestimm­te For­mu­lie­run­gen und Wort­grup­pen ent­hal­ten sind.

Ein Sprachmodell braucht Varianz

Mit einer Gram­ma­tik, ein per Daten und Kon­text las­sen sich schon Tex­te schrei­ben, aber nach ein paar Wochen im Sport­teil wür­de uns dann doch die Lust beim Lesen ver­ge­hen. Ähn­li­che Ein­ga­ben wür­den immer wie­der glei­che For­mu­lie­run­gen her­vor­brin­gen. Als „krea­tiv“ emp­fän­den wir Tex­te, die immer wie­der neue For­mu­lie­rungs­ideen ent­hal­ten wür­den. Die­se könn­te man auch hän­disch in unser bis­he­ri­ges Sprach­mo­dell kip­pen, aber schö­ner wäre es ja schon, wenn das auch auto­ma­ti­siert gin­ge. Und da kom­men neu­ro­na­le Net­ze ins Spiel. Die Funk­ti­ons­wei­se lässt sich am bes­ten mit einer star­ken Ver­ein­fa­chung erklären.

Dazu eine Geschich­te: Es gab eine Zeit, in der in Super­märk­ten Waa­gen zum Selbst­wie­gen stan­den. Da muss­te man eine Tas­te mit z.B. einem Sym­bol  oder einer Num­mer für die auf­ge­leg­te Ware drü­cken und es kam ein Bon zum Auf­kle­ben für die Kas­se her­aus. Es gab auch schon ers­te Waa­gen, die das auf­ge­leg­te Obst oder Gemü­se bereits optisch erken­nen konn­ten, aber trotz­dem noch Tas­ten hat­ten, die auch gedrückt wer­den mussten.

Das IT-Sys­tem hät­te dabei z.B. aus die­sen Kom­po­nen­ten bestehen können:

Eine Ein­ga­be­schicht:

  • Eine Kame­ra, die ein hoch­auf­lö­sen­des Bild von der auf­ge­leg­ten Ware macht.
  • Ein Gewichts­sen­sor, der das Gewicht digi­tal ermittelt.
  • Eine Tas­te, die die Kun­den­ein­ga­be weiterleitet.

Eine Ver­ar­bei­tungs­schicht:

  • Ein Algo­rith­mus, der aus dem Bild die Län­ge der auf­ge­leg­ten Ware ermit­telt („Neu­ron 1“).
  • Ein Algo­rith­mus, der aus dem Bild die Brei­te der auf­ge­leg­ten Ware ermit­telt („Neu­ron 2“).
  • Ein Algo­rith­mus, der die Bild­punk­te der domi­nie­ren­den Far­be der Ware zählt („Neu­ron 3“).
  • Ein Algo­rith­mus, der das Gewicht ins Ver­hält­nis zur Grö­ße setzt („Neu­ron 4“).
  • Ein Algo­rith­mus, der schaut, was der Kun­de gedrückt hat („Neu­ron 5“)

Eine Aus­ga­be­schicht:

  • Ein Algo­rith­mus, der auf Basis eines Schwell­wer­tes und einer Daten­bank einen Preis berech­net und einen Eti­ket­ten­dru­cker ansteuert.

 

Bei­spiel 1:

Neu­ron 1: 15cm

Neu­ron 2: 4cm

Neu­ron 3: Domi­nie­ren­de Far­be ist gelb.

Neu­ron 4: Das Gewicht ent­spricht etwa 70% des äqui­va­len­ten Volu­mens an Wasser

Neu­ron 5: Apfel

Der Kun­de hat mich ver­arscht, das ist eine Banane!“

Das Sys­tem gewich­tet sei­ne Mes­sun­gen hier höher als die Kundeneingabe.

 

Bei­spiel 2:

Neu­ron 1: 12cm

Neu­ron 2: 6cm

Neu­ron 3: grün

Neu­ron 4: Das Gewicht ent­spricht etwa 80% des äqui­va­len­ten Volu­mens an Wasser

Neu­ron 5: Avocado

Eigent­lich blöd, könn­te eine Limet­te oder eine Avo­ca­do sein. Ach, der Kun­de wird ja nicht das bil­li­ge­re Zeug gedrückt haben, also eher eine Avocado.“

 

Das Sys­tem gewich­tet die Kun­den­ein­ga­be in Ver­bin­dung mit einem Preis­ge­fü­ge hier hoch, um zu ent­schei­den, wel­chen Bon es druckt. Es „ent­schei­det“ auf Basis von Daten, wel­che Para­me­ter und Daten es wie gewich­tet und „merkt“ sich belie­big vie­le z.B. unein­deu­ti­ge Situa­tio­nen und wie sel­bi­ge auf­ge­löst wur­den. Danach „kann“ es auf Basis von Daten „ent­schei­den“, wel­chen Bon es z.B. bei einer „nicht stan­dard­kon­for­men Avo­ca­do“ druckt.

Man kann die­sen Pro­zess durch kor­rek­te mensch­li­che Ein­ga­ben beschleu­ni­gen und opti­mie­ren („Trai­ning“). Man kann – falls es einen ande­ren Rück­kopp­lungs­ka­nal gibt – die­se Sys­te­me sich auch selbst opti­mie­ren las­sen – bezo­gen auf Sprach­mo­del­le könn­te man als „Rück­mel­de­ka­nal“ schau­en, wel­che der gene­rier­ten Tex­te per Copy&Paste ver­wen­det wur­den oder wel­che Tex­te wie­der im Netz auftauchen.

Vari­anz „ent­steht“ bei unse­rer Geschich­te mit den Waa­gen durch unkla­re Situa­tio­nen. Im Fal­le von Sprach­mo­del­len kann Vari­anz durch spe­zi­el­le „Neu­ro­nen“ künst­lich erzeugt wer­den, die z.B. betrach­ten, wel­che Tex­te in einem Zeit­raum schon gene­riert wor­den sind und dann „Schwell­wer­te“ ande­rer Neu­ro­nen „ändert“.

Was ein Sprachmodell von einem Menschen unterscheidet

Ein Sprach­mo­dell erfüllt nur eine begrenz­te Auf­ga­ben­stel­lung ganz beson­ders gut: Aus Ein­ga­ben Tex­te erzeu­gen, die für einen mög­lichst gro­ßen Teil von Men­schen authen­tisch wirkt. Men­schen sind in ihren Mög­lich­kei­ten, krea­ti­ve Pro­duk­te zu erschaf­fen da nicht so arg begrenzt. Je mehr „Neu­ro­nen“ durch die Ein­ga­be „getrig­gert“ wer­den, des­to authen­ti­scher wird der Text sein. Daher ist es zumin­dest aus infor­ma­ti­scher Sicht eine Bin­se, wenn Rat­schlä­ge kom­men, ein Sprach­mo­dell mit mög­lichst umfas­sen­den Ein­ga­ben zu speisen.

Begrenzt sind Men­schen jedoch bei der Auf­nah­me von Daten. ChatGPT bricht momen­tan öfter ein­mal zusam­men, weil sehr vie­le Men­schen das Sys­tem gleich­zei­tig nut­zen. Es gibt zwar kei­ne bestä­tig­ten Zah­len, aber die Ein­heit „Mil­lio­nen Anfra­gen pro Sekun­de“ dürf­te als Basis zunächst nicht falsch sein. Mil­lio­nen Anfra­gen bedeu­ten aber auch Mil­lio­nen „Feed­back­ka­nä­le“ zum „Trai­ning“ des neu­ro­na­len Net­zes. Sprach­mo­del­le kön­nen viel mehr Infor­ma­ti­on bewäl­ti­gen als ein ein­zi­ger Mensch. Eigent­lich ist ein Sprach­mo­dell Borg. Wir neh­men die ent­ste­hen­den Tex­te als Pro­duk­te _eines_ Sys­tems wahr. Tech­nisch gese­hen sind es aber die Aus­ga­ben eines Kol­lek­tivs. Der ein­zel­ne Borg agiert ja nicht indi­vi­du­ell, son­dern ver­mit­telt der Figur, die mit ihm kom­mu­ni­ziert, ledig­lich den Anschein einer indi­vi­du­el­len Kom­mu­ni­ka­ti­on.  Wenn die­se Simu­la­ti­on hin­rei­chend gut ist, lässt sie sich für einen rele­van­ten Teil von Men­schen nicht mehr von „ech­ter“ Text­pro­duk­ti­on durch Men­schen unter­schei­den. Mehr braucht es eigent­lich nicht, um (wirt­schaft­lich) als Tech­no­lo­gie erfolg­reich zu sein.

Warum Sprachmodelle emotional wahrgenommen und diskutiert werden

Sprach­mo­del­le sind nüch­tern betrach­tet nicht­ma­te­ri­el­ler Code auf irgend­wel­chen elek­tro­ni­schen Schalt­krei­sen. Ihre Aus­ga­ben drin­gen aber erst­ma­lig leicht benutz­bar in einen Bereich vor, der für Gesell­schaf­ten prä­gend ist: Kom­mu­ni­ka­ti­on. Gesell­schaf­ten kon­sti­tu­ie­ren sich im Wesent­li­chen durch die Art, wie sie intern kom­mu­ni­zie­ren und über wel­che Leit­me­di­en sie das tun. Sprach­mo­del­le decken recht bru­tal auf, wel­che Tex­te einer Gesell­schaft so ein­fach gestrickt sind, dass sie sich mühe­los durch Aus­ga­ben eines IT-Sys­tems erset­zen las­sen. Und das sind zum ganz wesent­li­chen Teil Gebrauchs­tex­te, aber auch Tex­te von Men­schen, die das Schrei­ben (in einer Fremd­spra­che) gera­de ler­nen – also ein Groß­teil von Übun­gen, wie sie in Schul­bü­chern vor­kom­men. Das bedroht zen­tra­le Vor­stel­lun­gen, wie Bil­dung funk­tio­niert und es bedroht Arbeits­rou­ti­nen in Bil­dungs­sys­te­men. In unse­rer Vor­stel­lung waren die­se Tex­te bis­her näm­lich durch­aus nicht unter­kom­plex, son­dern wich­ti­ge Zwi­schen­stu­fen bei der Ent­wick­lung von z.B. Schreibfertigkeiten.

Unterkomplexe Reaktionsmuster auf phänomenologischer Basis

Und es gibt aus mei­ner Sicht unter­kom­ple­xe Reak­tio­nen dar­auf. Ein häu­fi­ger Reflex ist Freu­de dar­über, dass nun end­lich klar wird, wie „stu­pi­de“ Bil­dungs­pro­zes­se eigent­lich sind und wir viel kom­ple­xe­re Auf­ga­ben­for­ma­te brau­chen, z.B. die Bewer­tung der Aus­ga­ben eines Sprach­mo­dells und die Über­ar­bei­tung der­sel­ben. Ohne ein Wis­sen und ohne eige­ne ent­wi­ckel­te Schreib­fer­tig­keit ist das gar nicht so unge­fähr­lich. Im schlimms­ten Fall gibt es eine Aus­ga­be, die dann vom Nut­zen­den an ver­mu­te­te Erwar­tun­gen ange­passt wird.

So wie der Schü­ler, der die Far­be eines Indi­ka­tors so hin­mischt, dass es auf eine Säu­re hin­deu­tet, weil genau das ja auch auf der Fla­sche stand (und das Zeug sau­er schmeckt) – es könn­te aber auch eine ganz ande­re Säu­re oder eine falsch beschrif­te­te Fla­sche gewe­sen sein. MIt Wis­sen dar­über, wie ein Indi­ka­tor funk­tio­niert, wer­den in die­sem Fall ande­re Fra­ge­stel­lun­gen mög­lich. Durch blin­den Glau­ben an den Indi­ka­tor eher nicht.

Rechtfertigungsdruck für tradierte Bildungsprozesse

Was auf jeden Fall geschieht und was für mich der eigent­lich Gewinn dabei ist: Sprach­mo­del­le zwin­gen mich dazu:

  1. Kri­tisch auf für selbst­ver­ständ­lich gehal­te­ne Ver­mitt­lungs­for­men zu schauen
  2. Ver­mitt­lungs­for­men, die der Prü­fung stand­hal­ten, vor der Lern­grup­pe expli­zit recht­fer­ti­gen zu müssen.

Wenn ChatGPT uns alles für eine Erör­te­rung lie­fert, Herr Riecken, war­um müs­sen wir dann noch selbst eine schreiben?

Weil ich es so will und bes­ser weiß, was gut für euch ist!“ könn­te – auch als impli­zi­te Hal­tung – zukünf­tig etwas schwie­ri­ger wer­den – erst­mal gar nicht so komfortabel.

Was ich nicht über Sprachmodelle weiß

Es hat bis­her den Anschein, als sei­en Sprach­mo­del­le wie GPT‑3 bis­her aus­schließ­lich mit Tex­ten trai­niert worde, die Men­schen aus­ge­wählt haben. Da kom­men natür­lich Fra­gen dazu auf, nach wel­chen Kri­te­ri­en die­se Trai­nings­da­ten von wem aus­ge­wählt wor­den sind.

Sprach­mo­del­le sind in einem ers­ten Schritt zunächst nicht in die Lage ver­setzt wor­den, ihre Trai­nings­da­ten „selbst­stän­dig“ aus dem Inter­net her­aus­zu­ho­len. Wel­che Grün­de gibt es eigent­lich dafür?

Sprach­mo­del­le wer­den vie­le Gebrauchs­tex­te erset­zen, die bis­her Domä­nen von Men­schen waren – etwa Sport­be­rich­te. Logisch zuen­de gedacht, wer­den bald wesent­li­che Tei­le einer (west­li­chen) Gesell­schaft nicht mehr ihr Geld mit Schrei­ben ver­die­nen kön­nen. Auch mein Blog kann mühe­los von Aus­ga­ben von Sprach­mo­dell quan­ti­ta­tiv an die Wand gena­gelt und z.B. in Such­ma­schi­nen nicht mehr wahr­nehm­bar sein – mein Blog ist jetzt ein däm­li­ches Bei­spiel, aber was bedeu­tet das insgesamt?

Wird es uns gelin­gen, nen­nens­wer­te Tei­le von Schüler:innen (und uns Lehrer:innen) dazu zu befä­hi­gen, das künf­ti­ge Niveau von Sprach­mo­del­len zu errei­chen? Machen wir uns nicht ganz schön was vor mit der Annah­me, dass gro­ße Tei­le der Schüler:innenschaft in der Lage sein wer­den, Aus­ga­ben von Sprach­mo­del­len „kri­tisch“ zu hin­ter­fra­gen und zu über­ar­bei­ten, WENN uns gleich­zei­tig bewusst ist, dass das Niveau die­ser Aus­ga­ben eher qua­li­ta­tiv stei­gen wird?

 

Aufgaben abarbeiten – was die die beste Strategie?

Wir alle haben jeden Tag eine Fül­le von Auf­ga­ben zu erle­di­gen. Eini­ge bekom­men das sehr gut hin und ant­wor­ten z.B. immer schnell auf Anru­fe oder E‑Mails, schrei­ben Kon­zep­te oder Arti­kel in der vor­ge­ge­ben Zeit und schaf­fen auch sonst sehr viel offen­bar mit spie­len­der Leich­tig­keit. Ande­re ver­zet­teln sich – man bekommt lan­ge kei­ne Rück­mel­dung oder muss ewig oft nachfragen.

Dar­in unter­schei­den sich Men­schen erst­mal gar nicht so sehr von einem Haupt­pro­zes­sor in einem Com­pu­ter. Es ste­hen auch dort begrenz­te Res­sour­cen zur Abar­bei­tung von Auf­ga­ben zur Ver­fü­gung. Es gibt unter­schied­li­che Stra­te­gien, wie ein Betriebs­sys­tem mit Bear­bei­tungs­zeit „umgeht“. Das nennt sich dort „Sche­du­ling“. Lässt sich davon viel­leicht etwas ler­nen für den eige­nen All­tag? Sind viel­leicht sogar All­tags­über­le­gun­gen mit in Betriebs­sys­tem­ar­chi­tek­tu­ren eingeflossen?

Vier gän­gi­ge Ver­fah­ren von soge­nann­tem „Task-Sche­du­ling“ sind unten ein­mal visua­li­siert. Ich idea­li­sie­re in einem ers­ten Schritt ein­mal und neh­me an, dass zu einem Zeit­punkt x sämt­li­che Auf­ga­ben T für einen Tag bereits vor­lie­gen. Die Auf­ga­ben T1 bis T5 benö­ti­gen unter­schied­li­che Zeit­ein­hei­ten (E), um erle­digt wer­den zu kön­nen. Die War­te­zeit mei­nes Gegen­übers auf die Erle­di­gung einer Auf­ga­be ist durch einen grü­nen Pfeil sym­bo­li­siert. Eine wei­te­re Idea­li­sie­rung besteht dar­in, dass wäh­rend der gesam­ten Bear­bei­tungs­zeit kei­ne Unter­bre­chun­gen auftreten.

Strategie 1: First in, first out

Dazu sor­tie­re ich mir die Auf­ga­ben nach der Zeit ihres Ein­tref­fens. Die von Frei­tag­abend kom­men vor denen von Sonn­tag­mit­tag, wenn ich am Mon­tag im Büro sit­ze. Wir schau­en uns jetzt mal die War­te­zei­ten an, die mei­ne Gegen­über haben, wenn ich nach die­sem Prin­zip arbei­te. Alle War­te­zei­ten (grü­ne Pfei­le) addie­ren wir zusam­men. Das sind in unse­rem ers­ten gra­fi­schen Bei­spiel 39 Zeiteinheiten.

Strategie 2: Shortest Processing Time First

Hier pas­siert eine wesent­li­che Ände­rung: Ich sor­tie­re mir die Auf­ga­ben so, dass ich zunächst das erle­di­ge, was schnell geht. Man sieht es schon an der Län­ge der Pfei­le: Die durch­schnitt­li­che War­te­zeit sinkt dras­tisch, d.h. mehr mei­ner Gegen­über erhal­ten schnel­ler von mir eine Ant­wort (26 Zeit­ein­hei­ten). An einem All­tags­bei­spiel: Wenn man an einer Super­markt­kas­se immer die­je­ni­gen mit weni­gen Tei­len vor­lässt und kei­ne neu­en Kun­den zur War­te­schlan­ge hin­zu­kom­men, sinkt im Mit­tel die War­te­zeit für alle. Übri­gens sind wir Men­schen in der Vor­her­sa­ge, wie schnell etwas geht, einer Maschi­ne meist überlegen.

 

Zwischenbilanz

Ein kur­ze mitt­le­re Ant­wort­zeit ist oft genau das, was mich nach außen hin als „orga­ni­siert“ erschei­nen lässt. Intui­tiv wür­den Men­schen mir für kom­ple­xe­re Auf­ga­ben auch mehr Zeit zuge­ste­hen. Wenn ich aber eine ganz kur­ze Fra­ge lan­ge lie­gen las­se, gel­te ich schnell als lang­sam. Einen Com­pu­ter wür­den wir auch als lang­sam emp­fin­den, wenn so etwas ver­meint­lich Bana­les wie die Maus über den Bild­schirm ruckelt. Dass gleich­zei­tig z.B. das Video im Hin­ter­grund schnel­ler ger­en­dert wird, erfas­sen wir intui­tiv nicht. Wir sind aber immer noch äußerst idea­li­siert unterwegs.

 

Strategie 3: Highest Priority First

Am All­tag etwas dich­ter dran ist die Stra­te­gie, nach Prio­ri­tä­ten zu sor­tie­ren. Je dunk­ler die Auf­ga­be T in der fol­gen­den Gra­fik ist, des­to höher ist ihre Prio­ri­tät. Wenn wir die glei­chen Annah­men machen wie für die bei­den ers­ten Stra­te­gien (z.B. alle Auf­ga­ben lie­gen am Tages­be­ginn vor), ist das Ergeb­nis für die mitt­le­ren Ant­wort­zei­ten dras­tisch schlecht, was natür­lich aber auch mit am kon­kre­ten Bei­spiel liegt. In der Ten­denz lässt sich das aber durch­aus verallgemeinern.

Wir stel­len durch die­se Stra­te­gie zwar die wich­tigs­ten Auftraggeber:innen schnell zufrie­den, zah­len das aber mit dem rela­tiv hohen Preis, dass umso mehr Men­schen lan­ge auf unse­re Ant­wort war­ten müssen.

Strategie 4: Preemptive Highest Priority First

Damit wir auch mal den Gegen­pol sehen am Schluss noch mehr Rea­lis­mus mit der Zusatz­an­nah­me, dass Auf­ga­ben unter­schied­li­cher Prio­ri­tät zu unter­schied­li­chen Zei­ten über den Tag hin­zu­kom­men. Auf­ga­ben höhe­rer Prio­ri­tät unter­bre­chen dabei die Abar­bei­tung nied­ri­ger prio­ri­sier­ter Auf­ga­ben. Die­se wer­den dann fort­ge­setzt, wenn alle „höher­wer­ti­gen“ Auf­ga­ben erle­digt sind. Das sieht erst­mal gut aus, scheint ziem­lich opti­mal zu sein und kommt der Rea­li­tät viel­leicht am nächs­ten, aber da ste­cken auch wie­der star­ke ver­steck­te Idea­li­sie­run­gen und Pro­ble­me drin.

  • Es ist wahr­schein­lich, dass nied­rig­prio­ri­sier­te Auf­ga­ben wäh­rend der Abar­bei­tung höher­prio­ri­sier­ter Auf­ga­ben kom­men und nicht wie in mei­nem fik­ti­ven Bei­spiel gleich bear­bei­tet wer­den, weil sie immer gera­de da sind, wenn nichts zu tun ist. Dadurch stei­gen die im Mit­tel erfor­der­li­chen Ant­wort­zei­ten (x+1).
  • Jeder Auf­ga­ben­wech­sel ist res­sour­cen­mä­ßig teu­er. Man muss sich jedes­mal neu ein­den­ken, vor allem, wenn eine kom­ple­xe Auf­ga­be unter­bro­chen wird. Auch ein Betriebs­sys­tem muss Zustän­de von Pro­zes­sen sichern und wie­der­her­stel­len. Das kos­tet Rechenzeit.
  • Immer neue Auf­ga­ben mit hoher Prio­ri­tät kön­nen Auf­ga­ben mit nied­ri­ger Prio­ri­tät ver­drän­gen, sodass sie gar nicht mehr bear­bei­tet wer­den. Bei Betriebs­sys­te­men spricht man davon, dass Pro­zes­se ver­hun­gern, im All­tag blei­ben Ver­walt­un­g­ar­bei­ten ger­ne mal lie­gen – so wie Kor­rek­tu­ren (deren Prio­ri­tät steigt aber mit der Zeit auto­ma­tisch von alleine …).
Wie mache ich das?

Ich kom­bi­nie­re SPF und PHPF. SPF sorgt dafür, dass Ant­wort­zei­ten kurz sind, PHPF lässt mich gegen­über für mich wich­ti­gen Per­so­nen „gut“ daste­hen. Wei­ter­hin ver­su­che ich, indi­rek­te Kom­mu­ni­ka­ti­ons­si­tua­tio­nen zu ver­mei­den. Wenn ich mer­ke, dass jemand etwas für einen ande­ren bei mir lösen möch­te, las­se ich die Anfra­ge ent­we­der bewusst ver­hun­gern oder ver­su­che, eine direk­te Kom­mu­ni­ka­ti­on zu eta­blie­ren. Indi­rek­te Kom­mu­ni­ka­ti­ons­si­tua­tio­nen sind sehr teu­er, weil man die Bedürf­nis­se meh­re­rer Per­so­nen mit­den­ken muss.

Wei­ter­hin ver­mei­de ich in Arbeits­pha­sen Unter­bre­chun­gen bzw. ver­su­che Men­schen klar zu machen, wie pro­ble­ma­tisch Unter­bre­chung sind (spon­ta­nes Vor­bei­kom­men, Tele­fon­an­ru­fe). Als Aus­gleich schaf­fe ich Pha­sen, in denen ich klar signa­li­sie­re: „Ich bin bereit für ‚Wo ich dich gera­de sehe …‘ “. Irgend­was an uns ist ja dann schon anders als bei einem Betriebssystem …

Lehrkräfte gewinnen – Lehrkräftemangel überwinden

Unterrichten ist ein toller Beruf

Lehr­kraft ist ein tol­ler Beruf. Ich gehe mit eini­gen Stun­den nach den Som­mer­fe­ri­en zurück in den Unter­richt, weil mir in den ver­gan­ge­nen Jah­ren das Unter­rich­ten sehr gefehlt hat. Ich wer­de mit mei­ner gerin­gen Stun­den­zahl nicht oder kaum mit den Wid­rig­kei­ten kon­fron­tiert sein.

Das Lehr­kraft­sein ist in Deutsch­land sehr gut bezahlt. Frau­en und Män­ner wer­den gleich ver­gü­tet. Durch die Ver­be­am­tung win­ken wirk­lich aus­kömm­li­che Pen­sio­nen bei einem rund­rum siche­ren Job. Rech­net man die Per­si­ons­leis­tun­gen mit ein, müs­sen in der frei­en Wirt­schaft erheb­li­che Jah­res­ge­häl­ter zur Bedie­nung der pri­va­ten Alters­ver­sor­ge erwirt­schaf­tet wer­den, um dann auf ein ähn­li­ches Loh­ni­veau zu kom­men. Beam­te mit Kin­dern unter 18 Jah­ren kön­nen ihre Arbeits­zeit sehr fle­xi­bel gestal­ten, für allen ande­ren wur­de über Jah­re die fle­xi­ble Reduk­ti­on von Stun­den ermög­licht, soweit „dienst­li­che Grün­de“ nicht entgegenstanden.

Es gibt aus unter­schied­li­chen Grün­den auch ange­stell­te Lehr­kräf­te. Da sieht es deut­lich schlech­ter aus. Vor allem bei der Bezah­lung, den Auf­stiegs­mög­lich­kei­ten inner­halb des Schul­sys­tem und der Rente.

Wir haben einen ekla­tan­ten Man­gel an Lehr­kräf­ten in allen Schul­for­men. An Gym­na­si­en sieht es noch ver­gleichs­wei­se gut aus. Zukünf­tig wird sich die­ser Man­gel immens ver­schär­fen. Irgend­was scheint nicht zu stim­men, obwohl die Arbeits­be­din­gun­gen sicher und gut sind.

Zwei Arbeitsverträge

Jeder Mensch hat zwei Arbeitsverträge.

Der eine regelt das For­ma­le. Wie viel Geld gibt es für wel­che Arbeit? Wie sieht es mit der Ver­ein­bar­keit von Arbeit und Beruf aus? Wie kann ich mei­ne Arbeits­zeit an mei­ne momen­ta­ne Lebens­si­tua­ti­on anpas­sen? Wie viel Urlaub steht mir zu?

Die­ser ers­te Arbeits­ver­trag ist von außen sicht­bar. Im Lehrer:innenberuf für alle – selbst die Ent­loh­nung auf den Cent genau. Die Feri­en­zei­ten. Dar­an ent­zün­den sich mit ste­ter Regel­mä­ßig­keit die übli­chen Kli­schee­dis­kus­sio­nen von „nach­mit­tags frei“ und „12 Wochen Urlaub“. Da sol­len die Lehr­kräf­te auch etwas für leis­ten – so die ein­hel­li­ge Meinung.

Der ande­re Arbeits­ver­trag regelt das Ideel­le: Kann ich sinn­stif­tend arbei­ten? Erfah­re ich Unter­stüt­zung und Aner­ken­nung? Wel­che Hier­ar­chien gibt es und wie lebt Lei­tung die­se? Errei­che ich Zie­le? Wer­de ich den Men­schen in mei­nem beruf­li­chen Umfeld gerecht? Wel­che Erwar­tun­gen stellt die Gesell­schaft an mich?

Die­ser zwei­te Arbeits­ver­trag ist von außen nicht sicht­bar. Defi­zi­te in die­sem Bereich las­sen sich sehr oft durch eine ent­spre­chen­de Kom­pen­sa­ti­on im ers­ten Arbeits­ver­trag aus­glei­chen. Aber das hat Gren­zen. Gren­zen äußern sich dar­in, dass ein Beruf nicht mehr ange­wählt oder ver­las­sen wird – im Lehrer:innenberuf gar nicht so sel­ten durch „inne­re Kündigung“.

In die­sem Sta­di­um wir­ken Anreiz­sys­te­me finan­zi­el­ler Art nicht mehr – eher wird sogar bewusst auf Geld ver­zich­tet, um den ideel­len Arbeits­ver­trag sinn­stif­tend aus­ge­stal­ten zu können.

Das politische Dilemma

Man hat sich aus mei­ner Sicht poli­tik- und behör­den­sei­tig über Jah­re dar­auf ver­las­sen, dass man mit dem for­ma­len Arbeits­ver­trag – vor allem mit der Beam­tung – schon hin­rei­chend punk­ten wird, um immer genü­gend Lehr­kräf­te auf dem frei­en Markt zur Ver­fü­gung zu haben. Lan­ge Zeit war das auch so. Das kippt aber – übri­gens auch ganz ohne die aktu­el­le Flücht­lings­kri­se, die kata­ly­siert das Pro­blem „nur“.

Wahl­wei­se mag auch der eine oder die ande­re Politiker:in dar­auf gesetzt haben, dass sich die Her­aus­for­de­rung zumin­dest teil­wei­se durch Digi­ta­li­sie­rung löst. Das klappt auch so bedingt. Und jetzt steht man da.

Die poli­ti­sche Lösung sieht dann oft so aus, dass man Geld bereit­stellt und in die­sem Fall Kultusbeamt:innen den Auf­trag erteilt, mit die­sem Geld dafür zu sor­gen, dass das Pro­blem weg­geht oder es nach außen zumin­dest so aus­sieht, als wür­de man etwas dafür tun, dass das Pro­blem weggeht.

Hier­ar­chi­sche Sys­te­me nei­gen dann dazu, dar­auf zu schau­en, wie man an dem for­ma­len Arbeits­ver­trag (z.B. „Bonus­zah­lun­gen“) so schrau­ben kann, dass mehr Men­schen kom­men bzw. die­je­ni­gen blei­ben, die schon im Sys­tem sind. Das Pro­blem liegt aber gar nicht auf der for­ma­len Ebene.

Alter­na­tiv kann man die bis­her kulan­ten Teil­zeit­re­ge­lun­gen beschnei­den oder beam­ten­recht­li­che Mit­tel wie die Abord­nung oder Ver­set­zung nut­zen, um Per­so­nal­res­sour­cen bes­ser aus­zu­nut­zen. Bei­des dürf­te aber zu Las­ten des ideel­len Arbeit­ver­tra­ges gehen und das Pro­blem in ziem­lich kur­zer Zeit ziem­lich ver­schär­fen. Aber: Wir wer­den die­se Maß­nah­men mei­ner Mei­nung nach sehen.

Alles, was man kurz­fris­tig tun kann, ver­schärft das Pro­blem. Sinn­vol­le­re Maß­nah­men wir­ken nicht recht­zei­tig vor der nächs­ten Wahl oder sind wahl­wei­se nicht „öffent­lich­keits­gän­gig“. Mit sym­bol­träch­ti­gen öffent­lich­keits­gän­gi­gen Maß­nah­men wer­den im bes­ten Fall knap­pe Res­sour­cen nicht sinn­voll gebunden.

Was also tun?

Men­schen blei­ben in einem Beruf, den sie für sich als sinn­stif­tend erle­ben – das ist mei­ne Über­zeu­gung. Daher kann der Weg nur über den zwei­ten Arbeits­ver­trag führen.

War­um schau­en wir nicht ein­mal ganz kri­tisch auf das Refe­ren­da­ri­at? Ich war erstaunt, was für einen schlech­ten Ruf die­se Aus­bil­dungs­pha­se ins­ge­samt bei mei­nen Student:innen hat­te. Wir soll­ten die­se Wahr­neh­mung wirk­lich ernst neh­men, auch unse­re eige­ne … Viel­leicht hilft schon das Ange­bot(!) einer exter­nen(!) frei­wil­li­gen(!) Super­vi­si­on, um Wahr­neh­mung einzuordnen.

War­um machen wir es gera­de Berufsanfänger:innen am Anfang nicht etwas leich­ter, indem wir das Depu­tat zeit­lich begrenzt sen­ken? Natür­lich ver­schen­ken wir dadurch Unter­richts­stun­den, aber wel­che Lehr­kraft ist bes­ser für das Sys­tem: Die­je­ni­ge, die nicht da ist oder die­je­ni­ge, die zumin­dest 80% arbei­tet? (Ich weiß, dass das recht­lich schwie­rig ist – aber Recht lässt sich gestalten).

Schul­for­men ohne die Mög­lich­keit(!) des Erwerbs eines Abiturs wer­den gesell­schaft­li­che Pro­ble­me akku­mu­lie­ren. Immer. Wir soll­ten drin­gend davon weg­kom­men und eine ech­te Zwei­glied­rig­keit ins Auge fas­sen. Es hat Grün­de, war­um ins­be­son­de­re an Ober- und sons­ti­gen „Mit­tel­schu­len“ der Lehr­kräf­te­man­gel ekla­tant ist.

Die ver­schie­de­nen Hier­ar­chie­be­nen im Schul­sys­tem müs­sen ihre Wirk­lich­kei­ten abglei­chen und erfah­ren. Behördenmitarbeiter:innen soll­ten ver­bind­lich im Fünf­jah­res­tur­nus an Schu­len z.B. im Büro ein­ge­setzt wer­den. Ministeriumsmitarbeiter:innen soll­ten in Kon­takt mit Schu­le und Unter­richt kom­men, z.B. in Form von Hos­pi­ta­tio­nen. Lehr­kräf­te soll­ten Ver­fah­ren in Schul­be­hör­den haut­nah durch Hos­pi­ta­tio­nen erle­ben könn­ten oder es soll­te nie­der­schwel­li­ge Fall­be­spechun­gen mit unter­schied­li­chen Hiera­chie­ebe­nen geben. Wir brau­chen drin­gend gegen­sei­ti­ge Ein­bli­cke in die Arbeit.

Wir soll­ten uns als Gesell­schaft fra­gen, in wel­chem Ver­hält­nis per­sön­li­che Bedürf­nis­se und Lebens­ent­wür­fe zu der Erfül­lung des All­ge­mein­wohls ste­hen. Der Lehrer:innenberuf ist wie kein ande­rer einer, der im All­ge­mein­wohl die­nen soll­te. Das bringt bestimm­te Ein­schrän­kun­gen im per­sön­li­chen Umfeld mit sich, die aber an ande­rer Stel­le kom­pen­siert wer­den – z.B. durch den for­ma­len Arbeits­ver­trag im Fal­le der Verbeamtung.

Das löst die momentane Herausforderung nicht

Nein. Nichts davon löst das. Wir müs­sen Untericht kurz­fris­tig wahr­schein­lich tat­säch­lich strei­chen und damit das Pro­blem „öffent­lich­keits­gän­gig“ machen. Das ist eine poli­ti­sche Bank­rott­erklä­rung. Aber der Glau­be, lang­fris­tig ent­stan­de­ne Pro­ble­me durch kurz­fris­ti­ge Maß­nah­men lösen zu kön­nen, ist bes­ten­falls naiv – eben­so die Absicht, kon­kret „Ver­ant­wort­li­che“ für das Dilem­ma benen­nen zu wol­len. Dann weiß man zwar, dass es an Herrn Mey­er und Frau Schul­ze liegt, aber das Pro­blem ist ja immer noch da.

 

 

Das „Dining philosophers problem“ – yeah, Informatik!

Das „Dining-Phi­lo­phers-Pro­blem“ ist eine Par­al­le­li­sie­rungs­auf­ga­be aus der Infor­ma­tik. Fünf Phi­lo­so­phen sit­zen um einen Tisch mit für Tel­lern und fünf Gabeln dazwi­schen. Wenn einer von ihnen essen möch­te, benö­tigt er bei­de Gabeln neben sei­nem Teller.

By Ben­ja­min D. Esham / Wiki­me­dia Com­mons, CC BY-SA 3.0, https://commons.wikimedia.org/w/index.php?curid=56559

Damit kön­nen jeweils nur zwei Phi­lo­so­phen gleich­zei­tig essen und es muss jeweils ein Tel­ler zwi­schen ihnen sein, an dem nicht geges­sen wird. Eine his­to­ri­sche Lösung des Pro­blems kann man direkt in einer Publi­ka­ti­on von Dijks­tra nach­le­sen (S.29). Das hät­te man ein­fach for­ma­li­sie­ren kön­nen. Oder halt selbst nachdenken.

In der Infor­ma­tik­welt sind die Phi­lo­so­phen Pro­zes­se, die um die Betriebs­sys­tem­res­sour­cen auf dem Tisch kon­kur­rie­ren. Dabei muss man ver­mei­den, dass sich die Pro­zes­se gegen­sei­tig blo­ckie­ren: Wenn alle gleich­zei­tig wol­len, gibt es Streit und kei­ner kann die Res­sour­cen bele­gen, die er zum Essen braucht (infor­ma­tisch: Ver­klem­mung). Es darf aber auch kei­ne Situa­ti­on ein­tre­ten, in der alle so höf­lich sind, sich immer gegen­sei­tig den Vor­tritt zu las­sen (infor­ma­tisch: Aus­hun­ge­rung). Und natür­lich soll der Zugriff auf die Res­sour­cen fair und effi­zi­ent sein.

Die Her­aus­for­de­rung:

Man „denkt“ beim For­ma­li­sie­ren nicht nur für einen Pro­zess, son­dern für fünf, die mit­ein­an­der in einer defi­nier­ten Umge­bung interagieren.

Wer darf dann überhaupt miteinander essen?

Um das zu for­ma­li­sie­ren, neh­men wir mal eine simp­le mini­ma­le Daten­struk­tur – ein Feld mit einem boole­schen Ele­ment für jeden Pro­zess – d.h. jeder hat sein Flag, dass er auf „ich will essen“ set­zen kann. Dann gibt es fünf zuläs­si­ge Konstellationen:

10100
10010
01010
01001
00101

Das ist schon­mal hübsch, da es tat­säch­lich nur fünf zuläs­si­ge Fäl­le gibt. Boole­sche Wer­te zu scan­nen und zu mani­pu­lie­ren ist res­sour­cen­mä­ßig auch nicht so üppig aufwändig.

Eine Ent­schei­dung, ob man zwei Phi­lo­so­phen an den Tisch lässt, kann man ver­läss­lich fäl­len, wenn drei von ihnen ihr Inter­es­se bekun­det haben.

Damit nicht genug: Die Pro­zes­se müs­sen sich wei­ter­hin unter­ein­an­der steu­ern kön­nen, damit sie sich gegen­sei­tig an den Tisch las­sen können.

Ansatz

Man lässt immer drei Pro­zes­se in einen Emp­fangs­be­reich, die bei­den ande­ren blei­ben drau­ßen und stel­len sich an. Dann lässt man die mög­li­che Kon­stel­la­ti­on von zwei Phi­lo­so­phen an den Tisch. Der­je­ni­ge, der nicht zum Zuge kommt, bleibt in einem zwei­ten War­te­be­reich vor dem Tisch ste­hen (= sein Flag im Array bleibt gesetzt).

Wenn einer der am Tisch Essen­den auf­steht, kippt er sein Flag im Array, lässt einen aus der Schlan­ge im Emp­fangs­be­reich rein und stellt sich drau­ßen hin­ten wie­der an.

Ein beson­de­res Pro­blem ist die Konstellation:

10101

Bei sowas soll­te man die Rei­hen­fol­ge der Prü­fung mal vari­ie­ren, damit nicht immer die glei­chen zwei zum Zuge kom­men und der Drit­te „ver­hun­gert“ (das ist bei fünf Pro­zes­sen nicht sehr wahr­schein­lich, aber durch­aus mal möglich).

Wie macht man das mit dem Warten eigentlich?

Die ein­fachs­te Lösung besteht dar­in, die Pro­zes­se in End­los­schlei­fen mit einer Abbruch­be­din­gung (Prü­fung einer glo­ba­len Varia­ble) zu schi­cken, wenn sie im Emp­fangs­be­reich oder vor dem Tisch ste­hen. Dabei ver­bra­ten Sie bloß reich­lich Rechen­zeit – infor­ma­tisch heißt das „akti­ves War­ten“ (busy wait) – also dau­ernd her­um­quen­geln, ob man nicht end­lich dran ist. Moder­ne Betriebs­sys­te­me bekom­men das hin, mit sowas umzu­ge­hen, aber net­ter res­sour­cen­scho­nen­der Pro­gram­mier­stil ist das nicht.

Semaphoren als Lösung

Sema­pho­ren sind Daten­struk­tu­ren, die einen nega­ti­ven oder posi­ti­ven gan­zah­li­gen Wert anneh­men kön­nen und zusätz­lich einen Coun­ter besit­zen. Posi­ti­ve Wer­te geben die Anzahl der zur Ver­fü­gung ste­hen­den Res­sour­cen an, nega­ti­ve die Anzahl der Pro­zes­se, die bereits auf die Zutei­lung einer Res­sour­ce warten.

Der Coun­ter ist wie der Wert des Sema­phors für Anwen­dungs­pro­gram­me nicht ein­seh­bar. Inner­halb eines Pro­zes­ses kann ein Anwen­dungs­pro­gramm eine soge­nann­te P‑Operation auf einen Sema­phor aus­füh­ren. Wenn der Sema­phor einen posi­ti­ven Wert hat, wird die­ser um eins ernied­rigt (= eine Res­sour­ce ver­ge­ben) und der Pro­zess darf wei­ter­ma­chen. Wich­tig dabei: Das Betriebs­sys­tem ent­schei­det, wel­cher Pro­zess die Res­sour­ce erhält (meist FIFO, muss aber nicht).

Wenn der Wert nega­tiv oder null ist, wird auch um eins ernied­rigt und der Pro­zess muss war­ten (Auf Betriebs­sys­tem­ebe­ne wird dem Pro­zess der Pro­zes­sor ent­zo­gen, er bleibt im Spei­cher aktiv, ver­braucht aber außer Spei­cher kaum wei­te­re Res­sour­cen mehr).

Wenn der Pro­zess fer­tig ist, führt er eine V‑Operation auf den Sema­phor aus, der sich dadurch um Eins erhöht. Sema­pho­ren müs­sen, um die Inter­ak­ti­on von Pro­zes­sen steu­ern zu kön­nen, glo­ba­le Daten­struk­tu­ren sein.

Kritische Abschnitte

Da Pro­zes­se den Zustand bzw. Wert von Sema­pho­ren nicht abfra­gen, son­dern nur inkre­men­tie­ren oder dekre­men­tie­ren kön­nen, „erfah­ren“ sie von­ein­an­der nur über glo­ba­le Varia­blen oder sons­ti­ge Daten­struk­tu­ren, in unse­rem Fall z.B. das Array mit den boole­schen Elementen.

Wenn man auf glo­ba­len Daten­struk­tu­ren mit meh­re­ren Pro­zes­sen arbei­tet, muss man sicher­stel­len, dass das immer nur ein Pro­zess tun kann. Man sperrt sol­che Struk­tu­ren oder auch kri­ti­sche Abschnit­te durch einen extra Sema­phor (P‑Operation), macht sei­ne Arbeit und ent­sperrt die­sen Sema­phor wie­der (V‑Operation). Sol­che Sema­pho­ren haben nur 0 und 1 als Zustän­de und wer­den oft als „mutex“ bezeich­net. Damit wird ver­hin­dert, dass zwei Pro­zes­se sol­che Daten­struk­tu­ren gleich­zei­tig ver­än­dern (oder lesen) und damit Inkon­sis­ten­zen entstehen.

Meine Lösung (mittlerweile nach Rückmeldungen)

In der Vor­le­sung wird eine recht eigen­wil­li­ge Beschrei­bungs­spra­che ver­wen­det. Das hat damit zu tun, dass man nicht oft nur wenig über der Maschi­nen­spra­che bewegt, die dann deut­lich ein­ge­schränk­ter im Befehls­satz ist. Wenn man auf glo­ba­le Daten­struk­tu­ren lesend oder schrei­bend zugreift, muss man das „ato­mar“ machen (dafür sor­gen, dass man allei­ne ist).

TYPE philId = (0..4);
hungry_phils : SEMAPHORE == 3; // wir haben vorerst drei Plätze 
privsem : ARRAY (0...4) OF SEMAPHORE == [EACH == 0]; // persönlicher Warteplatz am Tisch
mutex_helper : SEMAPHORE == 1;
hungry_phils_array : ARRAY BOOLEAN OF slot == [EACH == FALSE];
swap_check : BOOLEAN == FALSE;

philosopher : PROCESS (id : IN philId)
BEGIN
  LOOP

    --denken

    P(hungry_phils);

    P(mutex_helper);
       hungry_phils_array[id] == true;

    IF swap_check
       IF hungry_phils_array[0] AND hungry_phils_array[2]
          let_eat[0,2];
       ELSEIF hungry_phils_array[0] AND hungry_phils_array[3]
          let_eat[0,3];
       ELSEIF hungry_phils_array[1] AND hungry_phils_array[3]
          let_eat[1,3];
       ELSEIF hungry_phils_array[1] AND hungry_phils_array[4]
          let_eat[1,4];
       ELSEIF hungry_phils_array[2] AND hungry_phils_array[4]
          let_eat[2,4];
       ENDIF
    ELSE
       IF hungry_phils_array[4] AND hungry_phils_array[2]
          let_eat[4,2];
       ELSEIF hungry_phils_array[4] AND hungry_phils_array[1]
          let_eat[4,1];
       ELSEIF hungry_phils_array[0] AND hungry_phils_array[3]
          let_eat[0,3];
       ELSEIF hungry_phils_array[1] AND hungry_phils_array[3]
          let_eat[1,3];
       ELSEIF hungry_phils_array[0] AND hungry_phils_array[2]
          let_eat[0,2];
       ENDIF
    ENDIF

    IF NOT swap_check
         swap_check == TRUE;
    ELSE
         swap_check == FALSE;
    ENDIF

    V(mutex_helper);

    P(privsem[id]);
      --essen
      P(mutex_helper);
          hungry_phils_array[id] == false; 
      P(mutex_helper);      
    V(hungry_phils); 

  REPEAT;

  let_eat : PROCEDURE (id1 : CARDINAL,id2 : CARDINAL)
     BEGIN
       V(privsem[id1]);
       V(privsem[id2]);
     END
 
END

Da steckt deut­lich mehr Gehirn­schmalz drin, als es den Anschein hat – z.B. war es gar nicht so ein­fach, immer dafür zu sor­gen, dass zwei Phi­lo­so­phen gleich­zei­tig essen. In alter­na­ti­ven Lösungs­vor­schlä­gen aus dem Tuto­ri­um wäre auch ein Ein­zel­es­sen mög­lich gewesen.

Wie geht in der Vorlesung weiter?

Sema­pho­ren sind bis­her Black­bo­xen. Jetzt wird geschaut, wie ein Betriebs­sys­tem Sema­pho­re rea­li­siert (das geht übri­gens manch­mal nicht ohne „busy wai­ting“). Letzt­lich geht es im Zutei­lung von Rechen­zeit an Pro­zes­se. Ich kann gedank­lich momen­tan nur leid­lich mit­hal­ten und brau­che letzt­lich zu viel Zeit für Lösun­gen. Das wird in der Klau­sur spä­ter spannend …

 

Die Edunautika 2022

Edunautika – was ist denn das?

Die Edunau­ti­ka ist ein Bar­camp mit dem Schwer­punkt auf Ler­nen und Leh­ren unter den Bedin­gun­gen einer zuneh­mend durch Digi­ta­li­sie­rung gepräg­ten Gesell­schaft. Sie fand letz­tes Wochen­en­de an der Win­ter­hu­der Reform­schu­le in Ham­burg statt. Unge­fähr 250 Men­schen aus unter­schied­li­chen Bil­dungs­kon­tex­ten haben ein bun­tes Pro­gramm mit vie­len inter­es­san­ten Ses­si­ons berei­tet. Schüler:innen der Gast­ge­ber­schu­le sorg­ten für das leib­li­che Wohl und sam­mel­ten so Geld für ihre „per­sön­li­che Her­aus­for­de­rung“. Im Innen­be­reich wur­de grund­sätz­lich Mas­ke getra­gen, medi­zi­ni­sche Mas­ken waren dabei eher sel­ten, Stan­dard war eher FFP2. Wäh­rend das Wet­ter im Süden sich in Hit­ze­re­kor­den übte, blieb es in Ham­burg bei beweg­tem Lüft­chen ange­nehm aus­halt­bar, sowohl innen als auch außen. Ich hat­te das Glück, mei­nen Auf­ent­halt mit einem Besuch bei einem guten Freund ver­bin­den zu kön­nen, bei dem ich auch im Gäs­te­zim­mer über­nach­ten durf­te. Mein Semes­ter­ti­cket brach­te mich kos­ten­los hin und zurück, wenn­gleich mit eini­gen Wid­rig­kei­ten (Ja, auch ein Zug kann anläss­lich eines Fes­ti­vals „aus den Federn“ kom­men, wenn vie­le Men­schen gleich­zei­tig aussteigen).

 

Und, was gab es?

Ich habe mich sehr gefreut, ganz vie­le Men­schen, die ich lan­ge nicht per­sön­lich getrof­fen habe, end­lich wie­der­zu­se­hen. Das gan­ze, sehr beein­dru­cken­de Pro­gramm kann man hier anschau­en. In einer Ses­si­on habe ich von 8jährigen Schüler:in ganz viel über ihre neue freie Schu­le hören dür­fen – und dar­über, wie viel bes­ser die­se Schu­le nun zu ihr passt. In einer Ses­si­on zu Phi­lo­so­phie ging es u.a. um die Gegen­über­stel­lung zwi­schen „Ich den­ke, also bin ich“ (Des­car­tes) vs. „Ich bin, weil du bist“ (Afri­ka­ni­sches Sprich­wort) – mit mul­ti­kul­tu­rel­ler Per­spek­ti­ve. Auch bei Chris­ti­an Vanell war ich, der etwas zu Feed­back­for­ma­ten bei Pro­jekt- und Port­fo­lio­ar­beit mit­ge­bracht hat­te. Ich bin immer glei­cher­ma­ßen beru­higt wie ver­wirtt, dass ande­re Men­schen an sehr ähn­li­chen Fra­ge­stel­lun­gen wie ich fest­hän­gen, aber immer mit ganz unter­schied­li­chen Per­spek­ti­ven, von denen man viel ler­nen kann.

 

About spirit

Orga­ni­siert wird die­se Ver­an­stal­tung maß­geb­lich von Jör­an Muuß-Mer­holz und Mit­ar­bei­ten­den sei­ner Agen­tur Jör­an & Kon­sor­ten - unter­stützt durch ehren­amt­li­che Hil­fe von Men­schen, die ich eher dem Ver­ein Edu­camps e.V. zuord­ne. Mit­ma­chen tun dort aber irgend­wie alle. Wenn etwas bei einer Ses­si­on nicht klappt, füh­len sich schnell Teil­ge­ben­de dafür ver­ant­wort­lich, dass es klappt und den/die Sessiongeber:in best­mög­lich zu unter­stüt­zen. Klar war der ein oder ande­re Name etwas pro­mi­nen­ter, aber Star-Allü­ren such­te man dort dann doch eini­ger­ma­ßen vergeblich.

 

Und ich?

Ich habe in die­sem Jahr etwas zu Invi­dua­li­sie­rung gemacht bzw. zu den Gren­zen die­ses Kon­zepts. Das ist ja eini­ger­ma­ßen ver­rückt, etwas noch gar nicht im Bil­dungs­sys­tem Ange­kom­me­nes schon wie­der kri­tisch zu betrach­ten. Daher ist das qua­si eine „Ste­alth­ses­si­on“ gewe­sen, ohne Doku­men­ta­ti­on nach außen. Ein paar Impul­se und Vor­über­le­gun­gen von mir waren dabei, wobei es letzt­lich aber pri­mär die Vor­aus­set­zun­gen bei Kin­dern und Jugend­li­chen ging und um Über­le­gun­gen, wann ein Indi­vi­du­um sei­ne Inter­es­sen einer Grup­pe unter­ord­nen soll­te – es gibt ja zwei Men­gen: Die Bedürf­nis­se des Indi­vi­du­ums und die Res­sour­cen eines „Schul-„systems.

Das hier war die ursprüng­li­che Ankün­di­gung mei­ner Session:

Wer?

Mein Name ist Maik und ich arbei­te zur­zeit für ein Lan­des­in­sti­tut, für Schul­trä­ger, an einer Universität

Was?

Mari­on (KiTa-Fach­kraft) hat vie­le mei­ner Gedan­ken bezeich­nen­der­wei­se anonym notiert: https://www.news4teachers.de/2022/05/die-kinder-haben-sich-veraendert-sie-tun-sich-viel-schwerer-damit-einfache-regeln-zu-akzeptieren-eine-kita-fachkraft-berichtet/ – für mich zieht sich die­se gesell­schaft­li­che Ver­än­de­rung viel, viel wei­ter. Die Erwar­tung, dass „ande­re es für mich tun und lösen“ wächst in mei­nen Augen – eine sub­jek­ti­ve Beob­ach­tung: Tele­fo­na­te oder Gesprä­che (also direk­te, nicht tech­nisch ver­mit­tel­te Kom­mu­ni­ka­ti­ons­si­tua­tio­nen) emp­fin­den vie­le Kin­der und Jugend­li­che zuneh­mend als belas­tend oder gar über­grif­fig – bes­ser per Chat/Voicenachricht lösen. Im Kon­text von Indi­vi­dua­li­sie­rung sind sol­che kri­ti­schen Töne oft tabui­siert – Ver­hal­ten wird oft auf Fehl­leis­tun­gen ande­rer zurück­ge­führt oder mit „den Umstän­den“ erklärt. Es scheint „en vogue“ zu wer­den, ver­mehrt „für“ Kin­der und Jugend­li­che zu arbei­ten und ihren indi­vi­du­el­len Ansprü­chen best­mög­lich entgegenzukommen.

Wie?

Ich möch­te anonym eure Beob­ach­tun­gen sam­meln. Ich möche dar­über spre­chen, wo für euch die „Gren­ze“ der Indi­vi­dua­li­sie­rung ist. Auf was wür­det ihr nicht ein­ge­hen? Wo erwar­tet ihr, dass Indi­vi­du­en sich zurück­neh­men, um für die Grup­pe eine Atmo­sphä­re „des gemein­sa­men“ Wach­sen zu schaf­fen? Und ich möch­te kei­ne Doku­men­ta­ti­on der Ses­si­on, son­dern eine Raum, in dem das, was im Raum geschieht, im Raum bleibt.

 

Es waren vol­le 1 1/2 Tagen mit vie­len Ein­drü­cken. Dan­ke allen, die das mög­lich gemacht haben!

1 2 3 4 5 148