ja hallo willkommen zurück zu betriebssystemen vorab ein paar ankündigungen heute mal ein paar mehr und ein paar spannende glaube ich zunächst mal zum thema studienleistungen es gibt ja diese beiden aufgaben blöcke 1 0 bis 1 2 und 3 + a 4 und ursprünglich war die bestehende grenze für den aufhören block 1 0 bis 2 bei 15 punkten von den 30 erreichbaren ich habe jetzt entschieden dass wir das reduzieren auf zehn punkte und zwar weil es zu semesterbeginn offenbar ausreichend kommunikationsprobleme gegeben hat dass eine ganze reihe von ihnen die aufgabe 0 nicht abgegeben haben ja was er eigentlich doch mit abstand noch die einfachste aufgabe wahr und letztendlich wollte ich hier mit erreichen dass letztendlich alle die chance haben diese studie leistung zu erreichen bei dem zweiten aufgaben blog also a3 und a4 habe ich allerdings nicht vor diese diese bestehens grenze von 50 prozent also sprich 10 von den 20 erreichbaren punkten zu verringern weiterer punkt die diese virtuellen meetingräumen wir für die übungen sind umgezogen wir haben freundlicherweise von der fachschaft die erlaubnis bekommen den fachschaften button zu aber mit benutzen zu dürfen der vor kurzem aus dem netz heraus transferiert wurde in ein externes was den vorteil hat dass wir beide das wir dass wir übungen die dort stattfinden dass die nicht unter dem netzschwankungen die seit wochen die tu heimsuchen nicht mehr länger zu leitung haben die neuen raum adressen falls ihr dass sie ihr geld in den übungsraum die book markt haben müssen sie dieses diesem bookmark aktualisieren die neuen raum adressen finden sich seit einer knappen stunde auf der betriebssystem der webseite zum thema klausurtermine diesen tatsächlich die gleichen geblieben ich habe die 9 und gleichzeitig auch die alten klausurtermine und die bleiben beim 31 17 beim 21 19 das einzige was sich ändert ist das bei dem neben terminen am 21.9 die uhrzeit sich erinnern das war vorher war ich 17 wurden jetzt die ohren ansonsten der wöchentliche hinweise auf dem heck des kja also wenn sie schwierigkeiten mit aufgabe zum beispiel aufgabe drei haben empfehle ich stark den handys zu nutzen ja zum beispiel heute zwischen 15 und 17 uhr mir wurde auch gesagt dass a3 jetzt ein bisschen schwieriger ist als die vorherigen aufgaben das ist durchaus so vorgesehen wenn sie da schwierigkeiten haben wie gesagt nutzen sie den hätte es dafür ist er da und ich weise auch nochmal auf meine frage stunde mein kommentar heute nachmittag hin 15 15 wenn sie fragen haben wenn möglich bitte vorher einreichen also per e-mail kummerkasten per frag jetzt fragt jetzt da findet sich der dazugehörige link in der stream beschreibung von der kommune termin zur heutigen vorlesung können sie ständig fragen stellen über fragt jetzt über den frack jetzt link der in der stream beschreibung unter diesem streamium sich findet jetzt gibt es noch einen hinweis aus dem chat raum dass man die aufgabe a3 noch nicht abgeben kann ja das habe ich versäumt mache ich heute noch richtig heute noch ein dass man die das war dem ss abgeben kann das geht tatsächlich bis jetzt noch nicht ja das gleiche nochmal fragt jetzt ok soviel zum organisatorischen zum organisatorischen letztes mal haben wir gesprochen über inter prozess kommunikation und haben also zunächst abgesprochen das ist also grundsätzlich 22 nachrichten basierte primitive also kommunikationspolitik gibt also das zentrum das motiv auf dem letztendlich die ganze vorlesung letzte woche passiert hat und wir haben gesehen dass es dass insbesondere unterschiede bezüglich der synchronisation gibt bezüglich der adressierung und noch ein paar andere eigenschaften die wir uns angeschaut haben und da haben wir also zunächst mal gesprochen über lokale inter prozess kommunikation unter unix ja also das waren zum einen die signale die letztendlich nachgebildete also in software nachgebildete unterbrechungen sind also so ähnlich wie lehrern prozessor unterbrochen wird weil ein ausgabegerät mit einer ausgabe fertig ist in dem fall werden prozesse unterbrochen und letztendlich ist dass dieser eine eine minimale form der inter prozess kommunikation einmal ein signal nummer übertragen wird da gab es auch letztes mal noch die zwischenfrage wenig mittlerweile geklärt habe ob ein prozess der ein signal erhält auch die information erhält berlin da unterbrochen hat also dass das hier dieser empfänger prozess erfährt dass der sender prozess 1 hier mit dem system auf ruft ihm ein signal geschickt hat und die antwort ist ja das gibt es jetzt nicht mehr schnittstelle dafür man kann jetzt endlich ein signal händler sogar händler funktion so einrichten dass sie nicht nur die signale nummer bekommt die an diesem prozess geschickt wurde sondern auch informationen über den absender also zum beispiel die prozesse eigentlich des absenders ja wir haben als weitere möglichkeit der unix inter prozess kommunikation uns die pipes angeschaut werden letztendlich unser 1 kommunikationskanal zwischen zwei kommunikationspartnern zu zwei prozessen und diese type ist uli direktional und gepuffert ach es gibt ja also einen puffer im prinzip zwischen sender und empfänger und da gab es noch weitere eigenschaften also dass die pipes zuverlässig sind die pipes schon orientiert sind da gab es auch noch wer zwischen verhält sich mal die ich noch abschließend geklärt habe um das war spies unter windows gibt ja die gibt es auch unter windows ja ganz ähnliche schnittstelle wie nie im besitz der velos genau das konnten wir noch unterscheiden zwischen den ungenannten preis und den benannten preis um diese genannten preis die finden sich letztendlich im dateisystem wieder ja das ist der system aufruf im café vor bzw da gab es auch ein kommandozeilen tool mit demselben namen mit dem man so genannte pipes anlegen konnte und last but not least bei der lokal kommunikation kann dann noch über die message to use gesprochen die letztendlich ungerichtete im zu in kommunikation unter unter unix auf basis von message queue die hier erlauben da haben wir allerdings auch besprochen dass das heutzutage eigentlich nicht mehr so breit genutzt wird dann habe über rechnet übergreifende interpretation gesprochen insbesondere die rockets die diese zu den pipes bidirektional sind auch geputzt sind und letztendlich beschrieben werden durch so eine domain also letztendlich die die domäne die protokoll familie festlegt socket typ und zocke protokoll da hatten wir also das beispiel diesen kleinen webserver angeschaut und wir hatten über dann aufrufe gesprochen letztendlich sind das also fraktions aufrufe über prozess- und mutig man sogar auch recht ergänzen hinweg wo also eine anwendung die illusion erhält das ja eine reguläre funktion aufruft bei in einem anderen prozess die aber faktisch also diese dieser aufruf ist letztendlich faktisch dann realisiert durch einen sonderstab und kommunikation über das netz wenn das noch ein bisschen genauer interessiert da habe ich letzten montag in der session auch mal gezeigt wie das praktisch funktioniert an hand und diese mo ncr pc oder son r pc gibt es zur zu dieser letzten vorlesung zum thema inter prozess kommunikation noch weitere fragen die ich jetzt gleich oder vielleicht auch später in der sitzung beantworten soll und scheint gerade nicht so da ja doch der kompass benutzt x.org sox oder pipes das ist eine gute frage meine vermutung wäre das ist jetzt sind sogar ziemlich sicher sagt jetzt weil man letztendlich mit einem x-server unter unter linux und unix auch übers netz kommunizieren kann er sogar kann wenn man den so konfiguriert letztlich auch die die die gui von einem programm auf einem entfernten server darstellen ok soviel dazu heute haben wir ein neues thema und zwar das thema speicherverwaltung was möchte ich da heute mit ihm bespricht zum einen möchte ich ein bisschen über die die grundlegenden aufgaben von speicherverwaltung sprechen dann werden wir konkret über speicher vergabe also platzierung strategien sprechen dann wenn wir darüber reden was es bedeutet wenn man speichererweiterungen mehr programm betrieb macht ja also die ein- und auslagerung von von speichern segmenten lokation von prozessen und dann reden wir bisschen über hardware unterstützung für das für die speicherverwaltung nämlich die andreas abbildung wohnsegment als auch seiten basiert steigen wir zunächst mal noch mal ein bisschen ihm das ein dass wir was wir schon besprochen haben also das betriebssystem verwaltet betriebsmittel des rechners das ist die eine hauptaufgabe das andere ist das schaffen von abstraktionen ja also abstraktionen die ist anwendungen erlaubt einfach und effizient mit betriebsmitteln umzugehen bis jetzt haben wir haben über komplexe gesprochen also das konzept der abstraktion von der realen cpu also die die illusion dass jeder prozessor cpu hat dadurch dass die ihn mit hilfe der prozesse virtualisiert wird und heute sprechen wir über speicher also verwaltung von hauptspeicher aber auch von internet speicher damit hinter gespeichert also was gemeint wie eine festplatten ssds solche dinge ja das ist ein so ein diagramm da sieht man wie wie gut eine cpu ausgelastet werden kann mit mehreren laufenden prozessen unter anderem andere stimmten ein ausgabe war die wahrscheinlichkeit also wenn man zum beispiel mal man annimmt dass ein prozess zu einem beliebigen zeitpunkt mit einer 50 prozentigen wahrscheinlichkeit gerade dabei ist auf eine ausgabe zu warten dann sieht man das also wenn man einen nur einen prozess auf dem system hat dann lastet der logischerweise zu 50 prozent die die cdu dieses systems aus und je mehr prozesse man laufen hat desto weiter kommt man 100 prozent auslastung ja man sieht aber auch dass man letztendlich nie ganz die mutter prozent erreicht aber es ist auch relativ klar also je höher die die airline ausgabe warte wahrscheinlichkeit ist desto mehr prozesse desto mehr programme müssen wir auf diesem rechner gleichzeitig laufen damit die cpu ausreichend ausgelastet wird also gerade bei diesen unteren fall hier 80 prozent ein ausgabe warte wahrscheinlichkeit man sieht man also dass das wir selbst bei 10 gleichzeitig in prozessen noch einmal so zehn prozentpunkte von den 100 prozent entfernt sind hat mehr programm betrieb ist essentiell will hohe auslastung der cpu das heißt aber auch dass sich diese fielen gleichzeitig laufenden programme den speicher teil müssen ja deswegen braucht man speicherverwaltung eine grundlegende anforderung hier ist dass man beim starten und beenden von prozessen dynamisch speicher zuweisen kann oder auch speicher wieder zurücknehmen kann und das führt uns auch direkt zu den grundlegenden aufgaben der speicherverwaltung wenn man mehrere prozesse hat ja dann brauchen die natürlich auch hauptspeicher und in der regel liegen diese prozesse natürlich an verschiedenen stellen im hauptspeicher gabrin können sich sagen wir normalerweise speicher jetzt nicht so ohne weiteres teil weitere anforderung die sich hier die sich ergibt dass das ein schutzbedürfnis gibt zwischen also jetzt endlich nach schutz des betriebssystems vor den vor den prozessen und der prozessor untereinander ja dass die also nicht sich gegenseitig in den speicher schreiben können und zum beispiel welche geheimnisse aus lesen können oder für für abstürze sorgen können ein programm zum beispiel programmierfehler beinhaltet und jetzt gibt es eben noch das problem dass der speicher eventuell sogar bewusst jetzt endlich was bringt das betriebssystem rechnen dass der möglicherweise nicht für alle prozesse reicht ja so heutzutage ist natürlich hauptspeicher schon ganz schön günstig aber der speicherhunger von von programm wird natürlich auch immer größer früher war das war das war das ganze sogar noch viel extremer ja dass überhaupt weiter als eine sehr knappe ressource waren also anforderungen die sich hier raus hier an die speicherverwaltung gegeben ist dass das betriebssystem zunächst mal freie speicher bereiche kennen muss ja also das betriebssystem muss wissen dass uns das hier zwischen prozess eins und platz zwei eine bestimmte menge an speicher frei ist also sprechen müssen bekannt sein das betriebssystem muss die verwalten und auch vergehen also wenn ein neuer prozess sollen das system kommt dann muss das betriebssystem hier in der lage sein zum beispiel diesen speicher der hier zwischen dem ssv es an diesem prozess zu vergeben wenn der speicher nicht ausreicht für alle prozesse die hier laufen dann muss das betriebssystem auch in der lage sein prozesse ein und auszulagern also auf den hintergrund speicher um im hauptspeicher freizubekommen im zuge dessen kann es auch notwendig werden das programm befehle reduziert werden müssen da kommen wir später ein bisschen genauer dann braucht es das bedeutet und letztendlich aus effizienzgründen ist es zwingend notwendig heutzutage dass man also hardware unterstützung für die speicherverwaltung nutzt im kontext der speicherverwaltung gibt es ein paar grundlegende policies oder strategien letztendlich auf jeder ebene der speicher hierarchie nach rechts gegangen so einer klassischen speicher hierarchie noch mal hat das hier die die die register und die caches ja also sehr schnelle speicher die aber sehr sehr klein sind dann so was wir an was schon deutlich größer ist aber schon nicht mehr ganz so schnell wie register oder caches und dann kommt schon hintergrund speicher und dann noch langsamer speichern also sowas wie ein magnetband ja die gibt es in sehr günstig und in sehr groß aber die sind eben noch ein gutes stück langsamer als festplatten und hier noch weiter hinten einsortiert und netzwerkspeicher da kann man sich wahrscheinlich darüber streiten was von beiden hier größer oder un- oder langsamer ist ja die strategien dies betrachten gilt sind zunächst mal die platzierung strategien ja placement policies die letztendlich entscheiden woher nimmt man speicher wenn man welche benötigt naja also wo im freien speicher bereich platziert man einen neuen prozess zum beispiel ja da gibt es verschiedene kriterien die man da anlegen kann also zum beispiel kann man versuchen den verschnitt so klein oder so groß wie möglich zu halten was festgenommen verschnitt gemeint ist wenn wir auch gleich noch ein bisschen genauer besprechen oder man entscheidet eben dass das depperschmidt jetzt in diesem konkreten use cases weiter eigentlich es gibt sogenannte ladestrategie htcs ja also bahn lagert man zuvor ausgelagerte speicher inhalte von von massenspeicher wieder ein er macht man das wenn dieser speicher benötigt wird oder macht man das im voraus voraus hat natürlich den vorteil dass man wenn dann dieser speicher benötigt wird nicht darauf warten muss aber das geht natürlich kann natürlich auch schief gehen weil das was letztendlich einen blick in die zukunft erfordert und die dritte kategorie das sind ersetzung strategien ja also wenn der speicher knapp wird welche speicher inhalte verdrängt man also sprich welche speicher inhalte lagert man auch die festplatte zum beispiel aus das kann zum beispiel dass der speicherinhalt sein der am seltensten genutzt wurde oder der wohl die letzte benutzung am längsten herz solche geschichten heute waren wir erstmal nur bei platzierungs strategien sprechen und in der nächsten vorlesung über lade strategien untersetzung strategie gibt es einen kommentar auf frag jetzt zu diesem thema sprechen heutzutage ist die am netzwerk speicher teilweise schneller als wechsel speicher ja das war genau jetzt endlich mal ein punkt kommt natürlich darauf an ja also wechsel speicher gibt es natürlich auch in sehr schnell sondern usb 3.0 usb stick überholt wahrscheinlich nochmal google google google drive oder wir haben wir das heißt aber das kommt sich dann auch wieder selbst an bildung ja also ich wollte darauf hinaus dass diese ein folgen hier natürlich nicht in stein gemeißelt ist okay so viel zum thema strategien und jetzt steigen wir direkt ein in das thema speicher vergabe zunächst mal dass das das gut das problem vor dem wir jetzt also stehen wir haben also ein rechnersystem mit ja darin verbauten hauptspeicher und man sieht jetzt hier also ja diese hauptspeicher der ersten adressen an verschiedenen stellen eingeblendet jetzt muss man also zunächst mal trennen den physischen speicher ja das können welche speicher chips seien die also auf dem mainboard verbaut sondern die dateien gesteckt sind und die können in den physischen adressraum an verschiedenen stellen eingeblendet sein inzwischen ganz oben in seinem physischen 32 bit adressen ist zum beispiel oft das video on demand version eingeblendet also studierte die das bios ja so die die die basis funktionalität die in so einem rechner verhalten ist schon bevor das betriebssystem geladen wird ja und jetzt in diesem beispiel also ist also hier unten so ein bisschen hauptspeicher eingeblendet die obersten hauptspeicher eingeblendet dazwischen ist so einen adressbereich wo überhaupt gibt eingeblendet ist und dann sieht man noch dass ein ausgabegeräte auch in den adressraum eingeblendet sind also es gibt ein ausgabegerät mit denen kommuniziert man unter anderem über den über den regulären speicher adresse ja also sprich einiges an diese speicher adresse hier daten schreibe dann landet das bei einem 1 3 ein ausgabegerät da kommen wir auch zu einer den anderen vorlesung noch mal genauer drauf das hat so positiv ist 32 bit system und das ist also die die speicher landkarte in dem remake des physischen adresse raus das problem ist jetzt also haben ist diesen verfügbaren hauptspeicher sich wir sprechen jetzt also erstmal nur noch von diesen gelten bereichen sodass das rammen eingeblendet ist diese verfügbaren hauptspeicher den möchte ich also belieben und es gibt diverse dinge die ich dort hineinlegen muss ja so zum einen natürlich benutzer programme wenn ich da ein bisschen genauer hingucken stellte ich fest dass kann man noch ein bisschen unterteilen also zum einen gehört so ein benutzer programm die programm befehle also dass text segment zu zweit die programmdaten also daten sequent wartet und auch und oder auch das bss segment und dann möglicherweise braucht dieses programm da noch weitere speicher zur laufzeit ja also dynamische speicheranforderungen zum beispiel auf dem auf dem stick oder auch den hieb saß und beide speicher bereiche die dynamische vom nutzer programm belegt werden und die aufwachsen können müssen was auch in diesem verfügbaren speicher hinein muss das natürlich das betriebssystem also auch da gibt es natürlich betriebssystem code betriebssystem daten und natürlich auch lauter dynamische daten strukturen wie zum beispiel die prozesskontrolle blöcke so sehr sich die datenstruktur wo also der zustand eines prozesses vorgehalten wird wie er so zum beispiel die inhalte aller register wenn man diesen prozess wieder laufen lassen möchte was man auch benötigt sind im betriebssystem zum beispiel daten für eine ausgabe ja also wenn man einen ausgabe auf der festplatte zum beispiel macht dann passiert das überprüfen prozess zum beispiel ein daten blog schreibe dann ist das letztendlich erst mal eine kopie in einen puffer im betriebssystem kern aus dem dann der festplatten controller zum beispiel liest so und um all diese dinge in unserer verfügbaren raum zu verteilen muss man diesen speicher eben zu teilen jetzt gibt sie also noch mal eine zwischenfrage zum thema 32 bit adressraum beim 32 bit systemen gibt es eine grenze wie viel hauptspeicher dieses überhaupt unterstützt weil sonst kann der ja nicht angesprochen werden völlig richtig also 32 bit adressen heißt eine adresse hat die länge 32 bit 32 bit adresse heißt ich kann damit zwei hoch 32 oder ungefähr 4 milliarden nur ein paar zerquetschte ansprechen ja oder die gewalt dann gibt's noch ein paar kniffe wodurch man letztendlich auf manchen zahlenlastig bit system auch noch ein bisschen mehr speicher adressieren kann stichwort 2 steht also physical address extensions dass man dann statt 4 vj 8 gb adressieren kann aber das war es dann auch einer der gründe weswegen heutzutage zumindest bei bei server und desktop rechnern 64 bit adressen verwendet werden ja damit einfach mehr speicher adressiert werden kann aber das ist eine der lehren die offensichtlichste einschränkung von einzahlen also ich bitte adresse natürlich dass man nur will gigabyte speicher ansprechen ja also wir müssen diese speicher zu teilen und da gibt es verschiedene möglichkeiten wie man das machen kann die einfachste ist man liegt das einfach ganz am anfang ja bevor man das system überhaupt startet einfach fest man nimmt sich ein stück papier und schreibt er hat dann drauf okay von adresse drei gigabyte ist bis 3,1 gigawatt liegt das betriebssystem an der adresse ein gigabyte bis 1,2 gigawatt liegt dass benutzer programm 1 ja einfach so eine eine feste zuordnung welcher speicher welches welches stück weiter gehört zu welchem zu welchen prozess oder zu welchem teil des betriebssystems das ist zunächst mal eine einfache möglichkeit und die wurde auch tatsächlich früher wirklich genutzt ja ja ich dachte sich das beispiel ist das ibm us 360 ja da wurde ja dann mit festen mit festen partitionen gearbeitet aber dieses system hat natürlich deutliche nachteile oder probleme also zum einen ist natürlich der der grad des mehr programm betriebs hier stark begrenzt ja also wenn ich auf meinem stück papier nicht nur voll rein das anwendungsprogramm 5 vorgesehen habe dann kann ich das auch nicht so ohne weiteres in meinem system einsetzen ja und möglicher bruder möglicherweise muss ich meine ganze planung umwerfen wenn ein weiteres programm dazu kommt oder wenn sich irgendeinen speicheranforderungen ganz programms ändert ein weiteres problem ist dass man dadurch andere ressourcen begrenzt ja also wenn man zum beispiel sei fit für die betriebssysteme ein ausgabe puffer eine feste menge an speicher vorgesehen hat die sehr klein ist ja weil ich wusste dass möglicherweise kleinen wellen da bitte ich also genug speicher für meine vereine geplant und an bildungsprozesse habe dann kann das aber dazu führt dass die der durchsatz die bandbreite bei der einen ausgabe ja sehr klein ist ja wenn ich bin ich wenn ich sehr kleine puffer gewählt habe und der offensichtliche nachteil ist natürlich dadurch hat sich das fest schreibe ja was sind betriebssystem zugeordnet das war's welchen prozess zugeordnet ist dann kann ich natürlich auch nicht ohne weiteres speicher vom einen in das andere über schieben also zum beispiel um genutzten speicher des betriebssystems kann ich jetzt nicht ohne weiteres von anwendungsprogrammen nutzen lassen oder andersherum ja also was man ja eigentlich möchte um diese ganzen nachteile auszugleichen und also der größte nachteil ist mit sicherheit dass der grat ist es dass mehr programm des betriebs ist ein begrenztes ist eben dass man dynamische speicher zuteilung einsetzt und dann bei der dynamischen speicher zuteilung arbeitet man zunächst mal mit so genannten segmenten ja also das ist ein segment segment ist letztlich ein zusammenhängen der speicherbereich also ein bereich wo die die speicher adressen direkt aufeinander folgend sind und diese segment diallo ziert man und oder gibt sie wieder frei ja also wir legen freigeben auf granularität von segmenten haben wie wir schon bei einer früheren police mal gehört haben also wieder ins programm üblicherweise drei minuten mindestens drei segmente wir hatten noch und noch das pss noch zusätzlich genannt also wie gesagt zum einen das textdokument das datum segment und das tech segment ja also was die lokale variablen oder rücksprung adressen gespeichert werden und was man jetzt in bei der dynamischen speicher zu tun muss man muss wenn man so ein segment adoptieren möchte einen geeigneten speicherbereich suchen also insbesondere beim programmstart und müssen natürlich irgendwie speicher reserviert werden führt das textilverdeck cement und letztendlich welchen speicherbereich man jetzt also zu teilt das bestimmt die platzierung strategie und was besonders wichtig ist wenn im kontext einer platzierung strategie ist die sogenannte frei speicherverwaltung ja also die verwaltung aller freien speicher bereiche jetzt seine zwischen verheilt zu dem thema dynamische speicher zuteilung und zwar kann ein programm an mehreren stellen in einer speicher art speicher haben oder versucht das betriebssystem gespeichert zusammenhängend zu verteilen na ja das kommt letztendlich auf die auf genau diese platzierung strategie anja das muss aber nicht zwingend zusammen hängt sein werden auch später noch noch sehen das ist auch das sind die adress abbildung verfahren gibt die das die verteilung im physischen speicher vor dem prozess verbergen frei speicherverwaltung also wir wollen die freien speicher bereiche im hauptspeicher oder auch im laufen die auf dem hintergrund speicher er hat das ist jetzt also erst mal unabhängig von der speicher art verwalten und eine einfache möglichkeit das zu tun ja wir gucken uns das einfach mal verschiedene möglichkeiten an wie man so einen freien speicher verwalten kann eine möglichkeit ist zu tun ist das über mit listen zu machen ja also mit listen die uns helfen herauszufinden welche speicher bereiche gerade noch frei sind wie funktioniert das das ist das hier ist jetzt endlich darstellung dass speichers den wir verwalten möchten ja und dem wir also zum beispiel mal an diese diese roten bereiche hier die sind schon belegt von prozessen oder auch vom betriebssystem datenstruktur und diese diese blöcke hier diese kleine blöcke die das sind ja die speichereinheit und gleicher größe ja das kann zum beispiel ein weit sein das kann aber auch so was wie 64 byte sein oder ein kilobyte oder sowas und wir führen jetzt also eine pid liste mit und merck nutzen diese bitte für jeden und diesen blöcken zum beispiel der größe ein kilobyte ob dieser block gerade beliebtes dann ist also hier dass hierbei gebiet das die bitte nach einer 1 oder auch der boxer ist dass das zugehörige tier eine null und so können wir ganz leicht zum beispiel ja wenn wir also zum beispiel ein speicherbereich der größe 2 kg suchen also die nur an die anwendung fordert einen speicher der größe 2 kilo an dann müssen wir also diese liste hierdurch suchen bis wir zwei aufeinanderfolgende 0 biz finden diese zwei hier zum beispiel können wir nehmen und dann könnten wir der anwendung diese beiden blöcke hier zu teilen und wir hätten letztendlich diese speicher anforderung dadurch erfüllt diese mit listen lösung hat allerdings auch eine reihe von nachteilen ja also diese bit liste die braucht natürlich selbst auch speicher ja möglicherweise sogar sehr viel speicher also wenn man zum beispiel sehr kleine speicher einheiten wählt für diese für diese diese kleinen glocke die man jetzt die man hier verwaltet dann wird es dann natürlich sehr sehr groß ja weiteres problem ist wenn man einen lock frei gibt ja so zum beispiel die anbindung möchte blog.de freigeben dann reicht es nicht zu sagen irgendwie mann und das ist das ist die adresse dass die stadt hier das ist die stadt das ist die adresse 18 12 komischen totalen rani hier ist jetzt 14 da reicht es also nicht wenn man die stadt hat reste von diesem blog ziehen nennt und sagt ich möchte also den die die datenstruktur den speicher blog freigeben der bayer bei adresse 14 startet und ich muss zusätzlich noch die information mitliefern wie groß dieser block c es ja also ich muss wissen dass der die größe 4 speicher einheiten hat und ein hauptnachteil von diesen dieser besten lösung ist wenn ich einen freien speicher block der größer sein mal vier speichereinheiten 4 kilobyte suche dann muss sich sequenziell diese liste durchsuchen so verfahren von anfang an hier linear durch diese liste hier durchsuchen bis sich irgendwo eine stelle findet wo 40 bands aufeinanderfolgen und das kann natürlich sehr lange dauern ja das ist das ist ein im jahre 6 i tät für eine operation die das betriebssystem sehr oft durchführen muss das ist so der der hauptnachteil ja um dementsprechend gibt es ja auch noch erscheint fragt jetzt kommentar jetzt zu genau diesen punkt ja könnte man nicht eine liste in einer bessere lagerstruktur verwalten um die suche schneller zu machen als alle bits durchzugehen ja das möchte man eigentlich ja weil eben diese lineare suche ja wie gesagt sehr lange dauern kann nächste lösung wie man eine andere datenstruktur guter vorschlag ja zum beispiel eine verkettete liste ja also wir haben wir wieder den speicher den wir verwalten der blogger hier ist also diese aber diese rote block ist belegt vom prozessor zum beispiel und wir verwalten separat eine verkettete liste das ist quasi der headquarter in die punkteliste und wir haben hier so eine doppelstruktur da steht hier also vorne zunächst einmal drin b für belegt oder f für frei dann die stadt adresse im speicher und die größe des jeweiligen blogs ja also diese diese diese datenstrukturen dieser verketteten liste hier die liefert uns die information dass er so adresse 0 hier dieser block a liegt und die größe 5 hat ja da haben wir den nächsten in der kette hier sind er ist ein blog der größe 3 der ist frei der startet startet bei adresse 5 hat die größe 34 oder ist frei und hier kommt wieder ein beliebter der größe 8 an der position acht der größe 6 und so weiter das ist jetzt also eine kette der liste die belegte und freie segmente repräsentiert ja das geht schon mal ganz gut da muss ich wenigstens muss ja immer noch lineal suchen zumindest wenn ich das so mache die ist jetzt hier gerade dargestellt ist aber ich bin ein bisschen schneller ja wenn also ich einen blog der größte 1000 kommt dann ist das dann muss ich eben nicht die 1000 biz alle durch kugeln sondern das ist ein eintrag in meiner verkettet liste weiteres problem ist auch diese liste hier diese liste selbst braucht dynamische speicher ja sobald hier ein weiterer block dazu kommt auch ich auch einen weiteren eintrag gemeiner verkettete liste da dafür muss ich auch irgendwoher speicher kriegen ja da habe ich so ein riesiges problem ich brauche in der speicherverwaltung und brauche dafür die speicherverwaltung irgendwie blöd deswegen kann man einen kleinen kniff anwenden man kann diese verkettete liste im freien speicher selbst verwalten ja also man hat hier wieder der diesen winter hier diese verkettet liste punkt sind übrigens ein kleines bisschen anders und zwar verkettet sie jetzt hier nur noch die freien blöcke ja also headquarter zeigt also auf den ersten freien blog und hier steht wie viel platz also die große ist dieser frei blockt er hat die größe 33 einheiten was auch immer jetzt eine einheit genau ist ja also 123 diese drei einheiten hier und an der zweite stelle ist defekt der vertretungszeit zunächst vereinbart hier steht wieder die größe 2 verkettung zum nächsten zusätzlich noch marica kann dass das teil auch noch rückwärts verketten daran gehen manche operationen schneller also insbesondere dass das löschen von einträgen in dieser verketteten beste kleiner seiten effekt von dieser verwaltung im freien speicher ist dass diese blöcke jetzt hier nimmt also diese freien locke jetzt eine mindestgröße haben müssen ja und wenn die mindestgröße die hätten die ist jetzt in diesen diesem beispiel hier zwei braucht also platz für die für das speichern der größe und ein platz für das speichern das next portas und letztendlich wie man das genau geht präsentiert ja also ob da die wieder die länge darin könnt ihr das auch mal dass auch ich als verkettung möchte und so weiter das hängt das nicht auch ein bisschen noch von der vergabe strategie ab vergabe strategien schauen wir uns gleich noch ein paar wenn ich so eine verkettete listing freien speicher habe und da wird jetzt also einen blog freigegeben zum beispiel wenn wir also an dieser block b hiermit freigegeben dann wird der automatisch verschmolzen mit seinem vorgänger der vorgänger war ja schon frei weil dann entsteht also nicht ein neuer freie block in der verkehrten liste sondern der wird mit diesem dreier block hier verschmolzen und wird zu einem einem großen neuen blog ja das ist so eine operation die man hier machen muss wenn verein gegeben wird aber es gibt noch einen zwischen kommentar zu dieser lösung hier ist er voraussichtlich benötigte speicherplatz für die verkehrte den listen für die vorherige lösung diese lösung also die separat verwaltet der verkehrte der liste ist der voraussichtlich benötigte speicherplatz für die verketteten liste nicht limitiert in den geschaut wird wie groß der speicher insgesamt ist man auch dadurch sind so viel platz in der liste wie platz im speicher ist das ist natürlich richtig das hieße allerdings dass man hier sehr sehr viel speicher für diese pakete die liste quasi zurücklegen müsste für den worst case wäre der worst case sind ebenfalls das ja ganz viele ganz viele reservierungen der größe 1 eine speichereinheit die dort erhältlichen speicher der größe 1024 speicher einheiten also vielleicht 1024 x 1024 byte als einen megabyte ein megawatt genau dann hätte man 1024 müssen wir 1024 x speichert hat sie für so eine datenstruktur hier zurücklegen wenn diese datenstruktur ich ja sagen wir mal die größe hat das geht das geht in einem bitten prinzipiell also ich könnte jetzt könnt ihr jetzt mal vorstellen man hat hier irgendwie insgesamt zehn vielleicht für diese für diese datenstruktur hier man hat man also 1024 x 10 meter sind schon zehn kilobyte nur für den worst case dieser verkettete liste hier zurückgelegt und das geht nur das ganze schon bei relativ großen beide hoben granularität ja dass das hier 1024 byte sind aber das kann sich auch deutlich weniger sein dann müsste man noch mehr zurücklegen ja also prinzipiell gedacht aber ich glaub ich glaube nicht dass es richtig praktikabel ist verschmelzung das habe ich jetzt das falsche weg geschlossen dann kleinen moment sie meinten das wären etwas frei gegeben wird wird es mit dem freistaat verschmolzen wie wäre es dann mit c würde das mit dem nacht mit dem nachfolgenden verschmelzen ja also wenn man jetzt hier noch zwei gibt wenn man jetzt weitergeht dann würde das das und das würde diese drei hier sogar verschmolzen werden dann hätte man am schluss einen freien bereich der größe 15 natürlich eine 15 eingetragen diese verkettung hier würde hier je nach hinten zeigen ja platzierung strategien wir haben ja jetzt gesehen wir hätten hier die löcher ja also die löcher zwischen den die die löcher zwischen den belegten speicher blöcken die verketten wir um so schnell wie möglich freie im freien speicher der die richtige größe hat für die für eine anforderung finden zu können und jetzt ist die frage in welcher reihenfolge verkettet man die ja also hier sind sie zum beispiel einfach verkettet von links nach rechts also nach anhand der der aufsteigenden adressen aber das ist möglicherweise gar nicht die schlaueste lösung ja also was man zum beispiel machen kann ja dass also das ist 'first fit was wir gerade gesehen haben wir sortieren nach der speicher adresse dann wird einfach wenn er seine scheine eine anforderung kommt ja dann von der größe 5 und wird hier also in dieser reagierte der liste eingestiegen wird geguckt ist dass wir groß genug nein das ist nicht nächstes ist das groß genug sind nicht nächstes bis man irgendwann ein loch findet das groß genug ist java ist das erste das passt wird genommen man kann aber diese diese verkettung auch in einer anderen reihenfolge machen also zum beispiel weiter unten hier sehen wir solche sortierung nach glück die größe ja noch eine variante über extras fit ist so genannte rotating fast fit oder next fit ja also da sortiert man auch speicher adresse man fängt aber nicht jedes mal wieder von vorne an zu suchen wenn man also wenn jetzt die nächste anforderung kommt nehmen wir haben also diese anforderung der größe 5 beantwortet und das kommt jetzt noch eine weitere anforderung der größe 8 oder so dann fangen wir nicht von vorne an zu suchen sind wir fangen an der stelle an zu suchen wo wir das letzte mal aufgehört haben zu suchen ja das hat einen vorteil und zwar dass man damit nicht viele kleine lücken ganz am anfang an ist er bekommt ja wenn man letztendlich sind wir fast fit benutzt dann gibt es sehr viele bewegungen und freigaben ganz am anfang vom freien speicher ja und das führt das führt dazu dass man viele kleine lücke hat die möglicherweise auch nicht mehr so richtig nutzbar sind und über die man ständig wieder hinweg suchen muss tja das podcast beziehungs indect fit das hat dieses problem nicht oder zumindest nicht so stark weiter war ihr habt jetzt best fit ja also sortiert man nach der lücken größe und zwar sortiert man hier von kleinen nach groß na also man verkettet die löcher vom kleinsten noch bis zum großen die bürste noch und durchsucht auch darum den jahre bis man eins findet dass gerade passt oder so gerade größer gleich der anforderung ist na also man findet letztendlich das kleinstmögliche die kleinstmögliche lücke andere variante ist das ist das worst verfahren wo man die sortierung umgekehrt macht man so man sortiert hiervon groß nach klein und sucht einfach die größte passende lücke ja das ist in ganz vielen fällen natürlich die erste was ich ganz zufällig sieht in jedem fall die erste die erste lücke er kommt dann letztendlich ein anderes qualifizierungs pattern in seinem fall speicher probleme die bei diversen dieser strategien hier entstehen ist dass man also nur noch sehr sehr viele kleine lücken hat zwischen den zwischen den belegten blöcken die in wien ich mir nur zwar sind für für anforderungen die hereinkommen ja also wir andere begriff dafür ist speicher verschnitt also letztendlich speicher der nicht mehr nutzbar ist für für die für die anbindung oder fürs betriebssystem weil die lücke ihm zu klein sind ein verfahren dass dieses problem nicht in dieser form hat oder nicht in die nächste nicht bringt nicht so stark hat ist das so genannte body verfahren um das buddy heißt das gucken wir zwei mal ein bisschen genauer an und zwar ja also zunächst mal wir verwalten also einen speicher der der in dem fall jetzt 1024 einheiten groß ist ja was auch immer eine einheit genau ist wir können nur sagen eine einheit ist ein kilobyte das heißt also wir bald verwalten hier 1024 kilobyte oder ein megabyte und wir unterteilen diesen speicher in unterbereiche die die größe einer zweier potenz haben und initial in die zahl gibt es genau ein speicherbereich ein speicherbereich also eine unterteilung in genau 1 speicherbereich der größe 1024 hat das ist also diese zeile hier 1020 und wir sehen so eine ebenso eine interne dato struktur von diesem brief erfahren hat so zu jeder zweier potenz eine liste von vom freien bereichen derek dieser größe ja und die den zustand von den banden verfahren oder so wir haben ein bereich der größe 1024 und er startet an der positionen durch ja das ist also dieser hier der hier startet jetzt gucken wir wie dieses bei die verfahren also mit mit so anfrage umgeht wie man sich eine anfrage der größe 70 buddy vergibt nur speicher speicher abschnitte einer zweier potenz entsprechenden größe das heißt wir müssen das jetzt alles erstmal auf die nächste zwei potenz auf runden das ist ein liter 128 ja jetzt gucken wir also zunächst mal in unserer dato struktur hier und schauen die haben wir denn hier speicher bereiche also unterbereiche der größe 128 der hand kein ja diese liste hinten am ende ist leer was war die dann macht es zerlegt größere also die kurve einfach einmal in die zeile eins drüber 256 gibt es auch keine 112 gibt es auch keine es gibt einen der größe 1004 20 auf der startposition 0 und was partie dann macht ist dieses dieses diesen bereich der größe 1024 solange wir unterteilen bis blöcke der größe 128 in dem fall da sind also was machen wir wir verteilen diese 1024 er in 2 512 und hat er eine startet und position 0 der andere steht an position 5 112 jetzt haben wir immer noch keinen der größe 128 also zerlegen wir den hier bei null noch mal weiter das heißt wir haben jetzt keinen nuller mehr sondern 250er 1 bei 0 1 bei 256 und jetzt legen wir diesen beim 0 noch mal in 128 jahr bei null und 128 er bei 128 jetzt nehmen wir zurück zu unserer anfrage jetzt haben also dienen diese diesen speicherbereich ein bisschen zertrümmert in blöcke der ddr der größte zwar auch wenn die kursiv zerlegt und die anfrage 70 also die jetzt endlich aufgewendet wird auf 128 die kann jetzt beantwortet werden mit einem block an der stad adresse 0 ja und das ist auch genau das was dann dabei herauskommt ja also das was sie jetzt hier sehen ist die die bildliche der präsentation dessen was ich jetzt hier auch in den editor geschrieben haben dass dieser block 0 der ist hierbei der ist jetzt von diesen prozess art belegt hat die größe 128 ja aber jetzt haben wir zumindest schon mal ein paar einträge in unseren in unseren in unserer freien speicher liste so und jetzt kommt eine weitere anfrage der größe 35 was muss jetzt als nächstes gemacht werden heute gibt es vorschläge im chatraum zum beispiel was machen wir mit dieser anfrage der usa 35 ja es war auf runden auf die nächste zwei potenz das heißt wie groß ist die anfrage eigentlich was ist die nächste zweier potenz größer 35 die ist 64 ganz genau ja das heißt also wir schauen uns erst mal in unsere freisprecher liste gibt's hier ein blog der größte 64 nie gibt es nicht also gehen wir eine ebene rauf da gibt es einen da gibt's einen der größe 128 an der position 128 unzähligen wer in zwei hälften genau ja das ist genau richtig in dem chat raum ja also wir machen gibt es hier 264 er draus bei der position 128 und bei der position 996 denke ich und damit dafür verschwindet der 128 jahren und jetzt haben wir einen fairen mit 264 er nämlich den bei 128 mit dem 196 und den davon können wir dann auch den ersten billigen den die ist bei der position oder 28 hat die größe 64 der ist weg ja dann sieht das so aus anfang geht der größe 80 wird wieder aufgerundet auf 128 x 128 punkten wieder in unserem beispiel haben wir wieder keinen dass ein bisschen wieder die 256 jetzt zertrümmern moment doch wir haben jetzt einen bei 256 und allem bei 384 und davon gehen wir wieder den ersten und haben da hier die billige co2 128 ja der ist jetzt hier und wenn man jetzt blöcke freigibt ja also nehmen wir an da die anwendung gibt ihr block a frei ihr habt das ist diese zeile hier dann wird der sozialplan der sie zunächst mal hier wieder in der der freisprecher liste also der wird jetzt hier wieder gelöscht aber bei der position 0 die ressort 23 das heißt wir haben den neuen eintrag bei null ist jetzt frei hier muss jetzt auch nichts weiter getan werden spannender wird es jetzt moment jetzt kommt noch mal der anfang der große 60 mal wieder aufgerundet auf 64 in dem fall haben wir einen deckel 64 jahre bei 196 ja das ist also bei dieser position hier blitzt bei 196 da ist er hat alleine die fdp müsste bei 196 der größe 64 weg damit so und jetzt wird b freigegeben man sieht dass wir noch nichts spannendes außer dass wir jetzt hier seinen neuen eintrag hier bei der von der position 128 haben so und jetzt wird die feier ging es passieren paar spannende dinge 192 natürlich und der zwei sollen sich wieder zu ändern danke schön jetzt so dvi d das heißt wir haben es also erstmal einen neuen eintrag hier der größe 64 bei der position unter 92 jetzt sind hier zwei benachbarte also die diesmal auch derselben die die bahn war 128 er blog ja also dass sie zwei buddies deswegen gibt es weniger name dieses verfahrens und diese beiden buddies werden jetzt wieder zusammengefasst zu einem 128 er und dann haben wir uns hat ein 28 28 jahren werden wieder zusammengefasst zu einem 256 er ja das heißt also die zwei sind weggeschmolzen mit dem hier und jetzt haben wir 156 meine position 0 und wenn jetzt auch c4 geben wird 128 der hat da ist ein partie ist schon frei das heißt die weidener zusammengefasst zu einem 256 er dann hat man hier 2016 50er basis dieser zusammengefasst zu 112 dann hat man zeitpunkt unter zwölf war dies die wieder zu 1024 er zusammengefasst werden ja und dann erdmann die letztendlich die ausgangsposition wo die hand weg sind und es ist genau einen 1024 erwarte startposition 0 gibt ja das ist so wie das das ist so die piloten funktionalität von diesem partie verfahren das kann man übrigens auch ganz gut mal in der klausur durchexerzieren lassen was hier wichtig zu beachten ist es dürfen nur buddies zusammengefasst werden also sprich solche zwei benachbarten 128 er wenn du dann zusammengefasst wenn sie vorher mal aus einem gas aus demselben 256 herausgekommen sind oder anders gesagt wenn hier 128 er frei ist und hier 128 er frei wäre ja dann könnte man die nicht zusammen passen weil die nicht aus dem bett und 256 jahren stammen ja das ist so ein kleines detail da muss man doch achten und dieses bunny verfahren ist tatsächlich relativ effizient ja also die die die lücken durch diese frei speicher liste relativ effizient repräsentiert und es gibt sehr effiziente algorithmen dafür jetzt gibt es noch eine zwischenfrage zum thema next fit mal ganz kurz mal ganz kurz zurück dann dann da wollte ich zum thema next fit ja also ich gesagt hatte man sucht an der stelle weiter wo man das letzte mal gesucht hat und längst ist also den kommentar oder frage kann es vorkommen dass next fit keine freie stelle findet obwohl es eine freie speicher ständig gibt zb erst wird das wird fünfte eingefügt hatte fünf auf bildqualität an doziert man in der regel nicht sondern auch bei der mobilität oder noch gröber dann kommen drei bald aber dann gibt es nach dem 5 bald keine plätze mit drei bald mehr aber vorher schon also die die idee bei dem bei next fit oder hotels rotating first fit ist man sucht an der stelle weiter wo man vorher aufgehört hat zu suchen aber wenn man am ende ist denkt man wieder am anfang an ja also man findet auf jeden fall eine freie stelle wenn es die gibt selbst wenn es die vor der aktuellen position gibt ja wenn man irgendwann wieder an die man die vorher in die position kommt jetzt gibt's noch eine wahrheit gibt es durch die aufstockung auf zwei wochen beim body system nicht eine verschwendung von speicher bereichen das ist natürlich richtig das ist der so genannte verschnitt das ist auch prinzip der nächste tagesordnungspunkt bei verschnitt unterscheidet man externe und interne verschnitt also letztendlich speicher bereiche die die nicht mehr nutzbar sind ja oder anders ausgedrückt die verschwendet wurden ja externer verschnitt ist ist verschnitt also nicht nutzbare speicher bereiche außerhalb der zugeteilte speichern bereiche also zb die bei diese bei dieser wahl dieser frei speicherverwaltung wo die verkettung im verein speicher passiert ist keiner kann es sein dass die lücken also so klein werden dass sie nicht mehr nutzbar sind also einfach praktisch nicht mehr benutzt werden können weil die weil die weil die verteidigung schon so viel platz braucht ja bei den weg ganz in listen basierten strategien kann externe versteht auftreten und andererseits interne verschnitt dass es speicher der ungenutzt ist innerhalb der zugeteilte speicherbereich ja und das ist das eben bei dir natürlich ein beispiel für eine anforderung der jurist 70 kilowatt zum beispiel kommt und ich wohnte das paar auf 128 kilobyte auf dann habe ich davon fast da wird davon fast die hälfte nicht genutzt werden ja dieses auf und sorgt natürlich dafür dass intern verschnitt bekomme ja möglicherweise sogar sehr viel das ist definitiv ein nachteil nennt man verschnitt auch fragen wenn tieren oder war das was anderes die beiden sachen hängen zusammen aber also stark fragmentierte gestartete stark frequentierter speicher hat zur folge dass verschnitt auftritt ja aber es ist nicht dasselbe ja also ich haben wir so ein paar verfahren gesehen zur frei speicherverwaltung und die wären tatsächlich alle eingesetzt ja also auch wenn die auch verschiedene nachteile hatten es gibt für all diese verfahren einsatz einsatzfälle zum einen wenn diese diese wenn diese verfahren tatsächlich im betriebssystem selbst eingesetzt also um letztendlich den gesamten systemspeicher jetzt verwalten zu können und speichert zu teilen zu können symbol an prozesse als auch wenn das betriebssystem und da wird zum beispiel in linux - karl tatsächlich dieses verfahren verwendet ja so linux ist so der dass das standard beispiel für den verdienten für den ba dialog ator also trotz dieser dieses diese dieser nachteile mit dem mit dem internet verschnitt man die zweite ebene wo man freisprecher verwaltet das ist innerhalb eines prozesses also ein prozess läuft und holt sich speicher vom betriebssystem im betriebssystem wird der speicher zum beispiel mit dem buggy analog verwaltet und jetzt hat es da hat der prozess also eine bestimmte menge an speicher vom betriebssystem zugeteilt bekommt und jetzt wird aber innerhalb dieses speichers wieder in der freisprecher verwaltung gemacht zum beispiel um halten speicher also hier zu verwalten und da verwendet man typischerweise listen basierte verfahren ja also fast für den exit best fit solche verfahren das das führt dazu dass man innerhalb des prozesses dynamisch speicher also ziehen kann also zum beispiel in der problemsparte c geht es mit bloc und free also mal zum belegen und fini zum freigeben von speicher oder auf der c + + wäre das in new delhi tja das ist das dynamische telefonspeicher innerhalb das ist den prozess vom betriebssystem zugeteilten speichern oder ebenso eines gewissen wissen über sie das verfahren zum beispiel verwendet wird und dann braucht man noch frei speicherverwaltung beim verwalten von sekunden später also von letztendlich fest wie zum beispiel um bestimmte abschnitte dass der kunde der speicher verwalten zu können ja also zum beispiel speicherbereich für prozess auslagerungen ja es ist ob speichern da werden tatsächlich oft verfahren verwendet weil da die die qualität hoch genug ist dass die hitlisten nicht so lang werden und ja auch die auch die gesamtgröße sich nicht geändert in der regel ja das ist hauptspeicher ist normale atmung aber seine fixe kulisse hat man das bunny verfahren früher auch genutzt wenn das so viel verschnitt geht waren das doch früher bestimmt eine riesige verschwendung von speicher weiß ich nicht ganz ehrlich also sandbahn das wirklich ständig eingesetzt wird man linux ist schon so ein paar jährchen wäre die frage ist wie weit in die historie wenn man zurückgehen was in den 70ern siebzigerjahre betriebssystemen in dieser stelle eingesetzt wurde das kann ich ihnen nicht sagen konnte ich mal nach kuchen beim ok gibt es noch fragen zum thema frei speicherverwaltung platzierungs strategie die ich akut beantworten sollte werde ich mir einen schluck wasser geschaffen ansonsten springe ich mal weiter in den abschnitt speicherverwaltung bei mehr programm betrieb mehr pro betrieb heißt ja insbesondere das ist also passieren kann dass ein der speicher aus geht ja dass der speicher nicht mehr ausreicht und die die lösung in der betriebssystem welt dafür dieses problem ist das auslagern von janich zum beispiel von segmenten also said an segmente eines prozesses werden dann auch den hintergrund ausgelagert und im hauptspeicher freigegeben ja also bald zum beispiel so schön jetzt sämtliche segmente von diesem prozess 1 sieg könnte man hier auf den index spreche auslagern und dann wird dieser teil im hauptspeicher frei kann man machen um zum beispiel wartezeiten bei 1 ausgabe zu überbrücken das heißt also der prozess ist gab sowieso nicht rächen bereit weil er auf die neue aufgabe wartet und dann kann ich ihn nach auslagern habe ich noch nicht mal groß dass verloren außer dass ich natürlich das natürlich dass ein und auslagern selbst auch noch zeit braucht ja also man hat zunächst mal eine vereinbare der klassischen festplatte in der bestimmte latenz ja also man muss zum beispiel den schreib lesekopf das ist tatsächlich ein sohn an einem arm befestigt das stück elektronik und diese ahnung muss erst mal an die man die richtige position bewegt werden und dann müssen auch sie müssen auch noch die daten übertragen werden ja also die die speicher inhalte von dem jeweiligen segment oder von der ganzen prozess der hier ausgelagert werden soll muss auf die festplatte geschrieben werden oder von der festplatte wieder gelesen werden dann wieder einlagern ja also kostet zeit aber es gibt noch ein paar andere probleme also das ist tatsächlich das was man praktisch tun möchte ich führe das dazu dass man mehr hauptspeicher frei bekommt aber ist es leider nicht so nicht ganz so einfach ja und zwar so ein zentrales problem hier ist das speicher adressen in einem prozess normalerweise statisch gebunden sind ja also zum beispiel wenn eine maschine nissans hohen auf eine auf denen auf den stellen darf auf eine variable zugleich eine variable in dem in dem programm dann ist das in der regel statisch gebunden da steht also fix in den programmtext eine weiche adresse ja und das führt dazu dass man also einen prozess wenn man jetzt keine weiteren maßnahmen ergreift immer nur an dieselbe stelle in den hauptspeicher wieder einlagern kann von der man den vorher ausgelagert hat das wird natürlich zwangsläufig zu kollisionen ja also ich habe ja den müssen wir bei den speicherbereich freigegeben freigeschaufelt damit ich da also einen anderen prozess damit ein anderer prozess mehr speicher bekommen kann und der belegt natürlich dann genau diesen speicherbereich das heißt ich kann den diesel und diesen ausgelagert prozess erst wieder einlagern wenn der speicherbereich in denen in denen der aus sind in der vorher an den der vorher lag wenn er wieder frei ist eine lösung die wir auch schon mal an anderer stelle angeguckt hatten ist tatsächlich das partitionieren des hauptspeichers also man wenn man legt hier einfach fest dass leute aus speichert etwas das hier ist hier in 55 bereiche eingeteilt da oben diese weiche oben der ist also ein fest für das betriebssystem reserviert und dann hat man hier so viel party zonen in die jeweils genau einen prozess eingelagert werden kann ja also prozess gespart werden kann der kann dann ausgelagert werden und kann aber dann auch nur diese tradition wieder eingelagert werden ja also das koalitions problem wird man damit nicht los aber man kann sie natürlich trotzdem sei um so ein und auslagern dass das halt die zwei prozesse dienen partition laufen dass die halt niemals gleichzeitigen speichern das ganze hat aber einen großen nachteil natürlich dass man den speicher hier nicht optimal nutzen kann also wenn du weil man irgendwie prozesse hat die die nicht so groß sind wie ihre wie die partitionen die sie in diese these gestartet werden dann ist das bitter bitter speicher verschwindet ja also in dem fall die teller verschnitt also spät der speicherbereich der dem programm der prozess zugeteilt wird wird von dem prozess vollständig ausgenutzt und deswegen möchte man eigentlich im modernen betriebssystemen hier dynamisch belegen können und ein programm eher reduzieren können reduzieren heißt an einen anderen ort verschieden jetzt gibt's noch einen kommentar auf frag jetzt ja die da gibt es ein lustiges handy spielt das heißt 2048 eine handy-app 2048 da spielt man so ein bisschen buddy verfahren ja das war richtig kann als beim nächsten nicht vorkommen dass man in einer endlosschleife ist oder wird das bemerkt falls kein platz für mich fast kein platz groß genug ist natürlich hört man nach einer nach einer suche also noch einmal wenn man einmal alles abgesucht hatte hat man natürlich auch zu suchen ja dann braucht man natürlich in der regel keine in deutschland verein sollte man zumindest nicht ja also dynamisches weiter belegen und programm relegation ist hier die lösung und moment genau und da gibt es verschiedene varianten auch verschiedene schritte wo man das machen kann ja also wie gesagt dass das grundlegende problem ist also maschinen befehle benutzen der regel feste speicher adressen also zum beispiel auch einen sprung gefehlt er also von einer stelle das programm text an eine andere stelle springt ja oder lade befehl der also eine variable aus den daten sind mit laden soll das steht also in der regel in der machen diese maschinen destruktion steht eine feste adresse drin es gibt jetzt aber verschiedene möglichkeiten in dieser andreas bindung zwischen dem befehl und im op rannten herzustellen also zunächst mal ist das ist die eine möglichkeit das sogenannte absolute binden ja dass das ist also da passiert es binden zur übersetzungs beziehungsweise zu link zeit dass das programm da stehen also die adressen fest dass also quasi der die ausgangssituation wo wir also schon bei unserem bei unserer petitions lösung bahn dass das führt eben dazu dass das programm nur an einer bestimmten speicherstelle korrekt ablaufen kann wenn man es woanders hin lädt dann sind dann trotzdem programm mit funktionen drin die auf adressen zugreifen die eigentlich dem programme gar nicht gehört ja also versucht irgendwie in verschiedene variable auf der speicherbereich zu laden der wahl möglicherweise gar ein anderes programm liegt im speicher nächste möglichkeit ist das statische binden das passiert zur ladezeit das problem nicht ja also das programm liegt schon über setzt auf der festplatte aber zu ladezeit ist es zu dem zeitpunkt was er sät wird noch mal gebunden ja also was passiert er beim laden das dem start des programms werden die absoluten adressen die im programmtext drinstehen als zum beispiel als die sprung zieladressen oder die variablen adressen beim laden von bavaria applaus und das segment die werden zum lade zeitpunkt noch angepasst auf die auf den speicher bereiche in denen das programm jetzt tatsächlich geladen wird das heißt also wird sich das programm das binary von der festplatte geladen wird erstmalig ein speicher an eine bestimmte stelle irgendwie gelegt die es dir eine stelle geben falls das betriebssystem natürlich festlegt und dann wird dieses das tatsächlich im text segment noch adressen angepasst also zum beispiel welche konstanten drauf addiert die voraussetzung dafür ist dass dieses dass bei diesen beiden über dieses programm noch zusatzinformationen sogenannte relegations informationen dabei liegen die den laden an der stelle sagen an welchen stellen von dem binary noch adressen angepasst werden müssen dass informationen die in der regel der compiler besuchen sie das händler generieren kann nicht auch die dritte möglichkeit ist das dynamische binden was tatsächlich zur laufzeit passiert wo der code als endlich nie direkt auf einen opera so zum beispiel auch eine variable zugriff sondern immer eine indirekte benutzt ja also dass irgendwer ist das ja ein zugriff auf eine variable nicht direkt durch einen zu durch ein solcher und lesezugriffe bestimmten speicher adresse passiert sondern immer über die in direktion einer zuordnung tabelle zum beispiel ja das führt dazu dass man das programm jederzeit auch zur laufzeit im speicher verschieben kann dann muss man nur diese diese zu lust diese übersetzungs tabelle anpassen hat aber den nachteil dass die programme ein bisschen größer werden und bisschen langsamer werden kann man sich vielleicht vorstellen wenn also jeder variable zugriff indirekt über so eine tabelle passieren muss dann wird halt bitte hallt es war langsam machen ja aber kann man machen gucken wir uns mal dieses diese diese diese diese binde schritte mal einzeln an das ist jetzt also zunächst mal der übersetzungs vorgang von einem programm das ein ganz einfaches programm entnehmen und es tut auch nicht viel mehr als die funktion exit aufrufen exit code 0 und jetzt kommt also der der gc c compiler und übersetzt das ganze zunächst mal das ist was was man normalerweise gar nicht sieht ja man kann denkt den gtc aber dazu bringen dass er einen ersten mal der centre-court ausspuckt mit dem mit dem kommando zahlen parameter - große und dann hat man also eine das template von diesem programm sieht also hier ist die beginnt die funktion my dann wird hier also ein bisschen was du bist du register irgendwie umgebaut hat ist es ihr so der der punktion dass der typische funktions polanco also der reporter im wege sicher wird gar nicht so furchtbar wichtig jetzt gerade hier mit dem 0 als parameter auf dem weg gelegt und dann wird hier die funktion exit aufgerufen paul ist mit verschiedenen zonen auf x86 und das ruft jetzt endlich diese diese funktion exil auf ja und dann gibt's ja danach noch ein paar hinzu kommen die noch ein bisschen ja die sachen die hier auch noch einstecken liegt wurden wieder runter genommen werden diese massenblatt kann man wiederum durch den durch ein tool dann durch ein werkzeug name des samplers heißt also auch das dass das programm das ein sampler code in maschinencode übersetzt heißt auch assembler ja dass dieser schritt und dann kommt man bei einem so genannten bilde modul heraus ja ein objekt fallen punkto und jetzt sehen wir hier schon das ist jetzt schon nur noch maschinen also ja nicht mehr wirklich menschen lesbar ja das ist also der der nackte maschinencode hier in dieser erste spalte sieht man also die die adressen der offset in weiz up programm start und dann sieht man hier die verschiedenen institutionen die hier dabei entstehen ja man sieht hier die sind für diesen collins kollektionen exit die ist jetzt hier gelandet man sieht hier dieses e8 das steht für das call und in die institution hinein codiert ist jetzt die ist die zieladresse wohin also wohin gesprungen werden soll der us sender kennt diese in diese adresse er aber noch nicht von dieser funktion exit weil die auch in einer anderen übersetzungs einheit wird er in einer bibliothek steht und was der templates an solche tut da die adresse gar nicht kennt er schreibt hier einfach nur lauter 0 rein sagt ja so zieht die sprung adresse da ist dies jetzt erstmal 00.00 und so weiter und er legt aber zusätzlich eine tabelle an mit den sogenannten relegations informationen ja und da steht also drin an der speicher adresse 6 ja wir mal gucken 01 35 das hier ist die hier beginnt das dass beide nummer fünf hier beginnt das bald nummer sechs andere an der adresse nummer 6 soll die 32 bit adresse der funktion exit eingetragen werden ja das ist wird einfach hier hinterlegt dass das noch angepasst werden muss in einem späteren binde schritt und das ist jetzt also nochmal der der ausgangszustand hier wir haben hier ist das bild im modul man also immer noch die atlantis und die relegations information dass also an dieser hat diese dieser dieser adresse ersetzt werden muss durch die adresse von der funktion exit das ist mit dem modul und jetzt kommt der linke der linker bindet jetzt also das binde module mit tusche der standard lebt sie zusammen also anderen anderes sind die andere ganze satz von object pfalz und in einigen anderen optik falls ist auch die funktion exit definiert das heißt der linke kennt jetzt auch die hatte die adresse von der funktion exit und der patch trieb diese der patti dieser adresse hier rein ja die adresse von dem exit ist in dem fall 101 48 hexadezimal da wir hier auf x86 sind 86 ländern ist ist die weiteren folge umgekehrt war das 48 landet hier 0 1 nicht hier und dann kommen noch ein paar jetzt ist also die adresse von der funktion existiert ein gepatcht jetzt gibt es aber nochmal relegations informationen und zwar an der adresse 36 also ab hier soll muss noch muss noch die adresse angepasst werden auf die stadt adresse von dem text segment wenn es wenn du mir das programm dann wirklich ein speicher geladen ist also er ist ja auch sehen die adressen sie haben sich geändert nun also der linke hat ja den unser unserem test puncto mit derstandard.at zusammengebunden und die ja da ist jetzt möglicherweise zum beispiel in den speicher davor irgendwie irgendwelcher code von irgendwelcher also wie auf dem pc zum beispiel zum beispiel die funktion exit kann sagen dass die jeder vorher wo gelandet ist naja die adresse hier zeigt sagt sagt ja irgendwie dass die das thema hintergrund davor ist das ist so welche irgendwelche anderen teilen auch noch dazu gelingt worden so also die relegations informationen jetzt in dem fall für den lada das wären also dieses programm in den speicher geladen wird an diese adresse hier eine 32 bit adresse noch angepasst werden muss wenn bekannt ist wie die tatsächliche staat adresse von den text segment sein wird oder ist da und jetzt kommt also der laden nutzer startet das programm test der lader lebt dieses programm zum beispiel dass in den speichern und legt zum beispiel das text segment das programm ist in den speicher ab der adresse 2 1 0 0 also da hat er hat also die platzierung strategie festgestellt da ist jetzt genug speicher für den für das textprogramm das wird dorthin geladen um was jetzt noch passiert ist wird diese relegation hier noch durchgeführt also es wird an auf diesel auf diese adresse hier dieses 0 0 1 48 wird noch dieses 2 1 oder 2 105 0 drauf addiert so dass also letztendlich adresse im ergebnis 22 48 ist man auch hier wieder mittel indien 48 22 und so weiter und so liegt dieses programm dann im speicher und dann kann ein absoluter also ein direkter sprung zu dieser funktion exit zur laufzeit stattfinden ja das ist so die der binde und ladevorgang pierre wir ja in der regel durchgeführt wird so und jetzt gibt's ja eine reihe von zwischenfragen irgendwann die instruktion nummern immer um zwei hoch gezählt wenn sie gar nicht also die diese instruktionen puschel also das ja nicht dass ein legen den inhalt von diesem ewp register auf den stack diese institution hat nur ein die größe 15 hex ja das ist die startet die nächste institution bei der bei sat 1 hat diesem of institutionen hier die ist eben hier mit zwei bereits codiert oder 8 905 deswegen hat die nächste ist die letzte instruktionen an der adresse 3 und hier sind wir zum beispiel in der rezession diese konstruktion wurde ja die hat letztendlich die codierung g8 und dann kommen noch 4 bei 32 bit für die zieladresse wo wir wo wir ihn springen möchten das heißt diese ist an insgesamt fünf bereits deswegen hat die nächste instruktion das office excel 2010 und dezimalsystem wie viele zwischenschritte hat der c compiler und wie man die zwischenstufen aus naja also wie gesagt dieses zwischen diesen assembler code hier den kriegt man mit dem parameter - großes drauflos probieren jetzt ziehen - es test pc und schauen was herausgekommen ist ja mit einem test von tes da ist natürlich ein bisschen mehr drin als also in diesem vereinfachten beispiel auf der folie gezeigt ich kann es ja auch mal in 32 bit modus übersetzen dann ist es dem doch endlich was wir hier gesehen haben hier ist die funktion mehr ich sehe jetzt ein bisschen anders aus also im original ich habe mal gucken vielleicht muss noch ein bisschen optimieren ja also hierbei sieht den funktions prolog noch ein bisschen mehr aber letztendlich sieht man zum beispiel hier diese zwei zeilen ja pusch und dieses 0 beide auf den stack geprüft wird und dann jede funktion excel aufgerufen wird ja das mit dem panda meter groß - es wenn ich - den schalter - c dazu gebe dann bekomme ich ein objekt fall da kann man prinzipiell auch reingucken aber das motiv möchte ich jetzt nicht ansteigen wenn sie da mehr interesse daran haben wir können sie gerne über heute nachmittag die sehr schnell bekommen da habe ich ein bisschen was zu tun und letztendlich diesen schritt hiervon mit dem optik fall zu dem gebundenen laden motor zu den binary den macht man in der regel mit dem man das was komplett zu fuß machen möchte mit dem blue linker das ist das programm led da müsste ich jetzt aber per hand angeben dass ich die standard pc noch dazu legen möchte da kenne ich jetzt den vater nicht auswendig deswegen kann man dazu auch einfach den die pc benutzen denn letztendlich dann intern den led aufruft und da kann ich also sagen ich möchte dass das programm test heißt und ich möchte das fest punkto mode hineinlegen das wollte er jetzt nicht genau weiß ich das jetzt natürlich auch und zwar dass ich mit modus übersetzungen okay ich habe hier keine zahlen dass ich mit lyzeum die eben gerade so aber letztlich das ganze halt noch mal normal also dass dieser befehl denn sie sorgt dafür dass es dass der linke schritt stattfindet und dann habe ich letztendlich auch ein binary test ist jetzt ja auch ausführbaren sich mir hier einen halt nix für exekutive und das kann man auch starten und hier sieht man auch das ding ist auch ein gutes stück größer als das objekt fall nehme ich hier noch teile aus der big c dazu gelingt wurden unter anderen staat ab roth dazu gekommen also dinge die passieren bevor die mehrin tatsächlich gestartet wird dass es das überhaupt dass sie hauptsächlich noch mit drin ist soviel dazu gut address bindung lokationen den baum so also man habe jetzt zunächst mal gesehen dass keeper lokation informationen den bienen dem modul also in dem objekt fall hat das erlaubt also das binden von modulen in beliebige programme ja weil ich jetzt endlich ohne modul beim linken dann noch beliebig reduzieren kann dann gibt es die relegations information im laden modul das also erlaubt dass man so ein programm an beliebige speicher stellen laden kann und wo dann letztendlich absoluten adressen also dieses drauf addieren von der von der stadt adresse von texten wie zum beispiel das wird dann erst beim laden gemacht man kann auch dynamisch binden mit compiler unterstützung wo also dass letztendlich kann man den gtc mit dem mit dem commander - pick pc russischen independet code sagen dass das programm überhaupt keine absoluten adressen benutzen sollen sondern nur relative adressen dann hat man programmtext der tatsächliche reduzierbar ist oder dass man noch irgendwelche adressen um patchen muss also ist dass man noch mal irgendwie reduzieren muss hat er den seiten effektes zungengrund das ist der quote dabei entsteht ein effizienter sein kann als nicht positiv endet code und ich glaube es geht auch nicht auf jede architektur es gibt nicht nur mit dem thema aber was man auch machen kann man kann dynamisch blüten mit eu-unterstützung also entsteht für memory management unit wo es letztendlich hardware gestützt eine abbildung skript von sogenannten biologischen auch sogenannte physische adresse ja und wenn man das hat und nutzt ja das ist auch tatsächlich der standard fahrer heutzutage zumindest auf sondern der in den rechnern auf denen wieso arbeiten ja also windows linux x86 oder auch am also so etwas wie einem smartphone zum beispiel nun wir haben alle ein mmo die auch genutzt wird und dann genügt es beim beim binden zurück zu reduzieren ja also ich muss dann nicht mehr beim laden nochmal reduzieren das macht dann die hardware zur laufzeit für mich kleine ausnahme ist so genannte shared library ist da muss man tatsächlich auch beim laden noch reduzieren können das ist mir das nur so am rande gut und diese dieses dynamische binden mit dem unterstützung das wollen wir uns jetzt mal ein bisschen genauer angucken gibt es endlich zwei verschiedene möglichkeiten der adressat bildung und die eine ist zunächst mal die segment basierte bei der segmentierung hat man eben hart der unterstützung die dafür sorgt dass es sogenannte logische auch sogenannte physische adressen abgebildet werden hier rechts sehen wir also den physischen adressraum solche oben braucht dass ich das wieder und memory eingeblendet ist und wo ihr unten zum beispiel in einen großen block der hauptspeicher der in den rechner verbaut ist eingeblendet ist und diese segmentierung sagt eben dafür dass man einen weiteren adressen bekommt der wo die adressen drin sind also die die die die adressen mit denen das programm tatsächlich arbeitet das programm arbeitet ab jetzt nur noch in logischen adressen aber mit also arbeit in logischen adresse zum beispiel könnte so ein programm im logischen adressraum an der adresse null liegen und hier die größe fff also in diesem bereich hier haben und die hardware unterstützung sorgt es dafür dass also dem fall durch eine einfache rechnung vorschrift eine addition von einer festen adresse hier um festen offset dafür dass dieses segment im logischen adressraum an einer beliebigen stelle im physischen adressraum liegen kann ja und wo dieses segment tatsächlichen physischen adressraum liegt das bestimmt das betriebssystem ja und durch einfaches und konfigurieren von dieser memory management unit kann man hier zum beispiel dass hier in diesem speicher war ich hier oben abbilden jetzt also jede auf jede logische adresse wird bevor also der zugriff in den tassen in der rechnung in physischen speicher passiert wird eine umrechnung durchgeführt indem also eine feste konstante drauf addiert wird ja und das macht die hp vor uns sagte er für uns wie ist das realisiert in der hardware tatsächlich wird es gemacht mit einer übersetzungs tabelle zwar gibt es die jeweils einmal pro prozess also dass der detektor der text also die die maschine aktion von unserer prozess hier die die sehen zum beispiel dieser vorn hier aus dass es jetzt in zwei sich mit adresse und die oberes oberste weit von dieser 32 bit adresse ja das wird jetzt interpretiert als sogenannte segmente select ohren da gibt es also eine besetzung tabelle die sogenannte segment tabelle die liegt irgendwo im speicher ja wohl im speicher liegt das muss man in der mur an einer bestimmten stelle in einem so genannten segment tabellen basis register eintragen und diese sequenz elektro der wird jetzt also hier genommen und wird als index in dieser tabelle hier genommen das heißt wir nehmen jetzt hier den eintrag in der zeile zwei unseren ein tragendes element tabelle der hat natürlich zwei komponenten nämlich die stadt adresse im physischen speicher von diesem segment und die größe also die länge von diesem segment in physischen speichern sodass man guckt der der der rechte teil von dieser logisch adresse das ist der offset in dieses segment hinein oder so erst mal geguckt ist der offset dieses segment hinein kleiner gleich dieser dieser ring also ist das ding ist es eine adresse die also die innerhalb dieses segment zeigt wenn das nicht der fall ist dann wird hier entfernt ausgelöst ja und da gibt es dann so genannte schutz verletzungen die anderen mussten knapp aus und letztendlich passiert und sprung ins betriebssystem der dass das dann möglicherweise zum beispiel den den prozess ja zum beispiel terminiert ja beziehungsweise den prozess hat ein ein signal schickt ja also wie gesagt es wird geguckt ist der ist diese hochzeit innerhalb des segments wenn das der fall ist dann wird die stadt adresse von dem segment genommen und auf diesen ops offset hier drauf addiert und dann bekommt man hier letztendlich als ergebnis die physische adresse auf die ihm bei allen hauptspeicher physischen hauptspeicher dann zugegriffen werden soll ist die sequenzierung mit ausnahme zusätzliche operationen im wesentlichen dasselbe wie die direkte speicher zuordnung also genau eins zu eins warum sollte dann dieses verwendet werden wenn das der fall wäre naja also der der der trick hier ist dass es eine übersetzungs tabelle prozess gibt und ja also wenn es nicht wird das nehmen wir mal an also das programm greift auf eine variable an der adresse 42 zu einer logischen adresse 42 ja das ist so hart codiert in den maschinen zum zonen von diesem programm bisschen von text segment in diesem programm das hier gestartet wird wenn ich dieses programm sollte zweimal starten möchte ja also ich habe ein programm mit möchte das zweimal starten hatte zwei prozesse mit dem seinem programm haben und ich möchte nicht zur laufzeit oder zu ladezeit reduzieren sondern ich möchte die e-mail-nutzung ja dann kann ich also einfach dieses dieses segment von diesem programm in den speicher laden zwei mal von mir aus und dafür sorgen dass diese beiden diese beiden prozesse zwei unterschiedliche übersetzungs tabellen haben ja und dann wird halt der adressen von den art von um einen prozess hier oben eingeblendet also die adresse 42 von der variable die auf die hierzu garten möchte dass es dann irgendwo hier oben und der andere prozess ist hier unten eingeblendet das heißt die diese prozesse greifen beide auf eine variable an der adresse 42 zu durch die unterschiedliche unterschiedlichen übersetzungs tabellen greifen sie aber auf unterschiedlichen physischen speicher zu ja diese abbildung von logischer physische adressen ermöglicht es mir diese prozesse an beliebige stellen im physischen hauptspeicher zulegen ohne dass ich irgendwie in dem text academy herum patchen das mache sich auch selbst darauf hatte ich glaube das ist der große vorteil so also das feld auch eine physische adresse heraus und auf die passiert dann tatsächlich der speicher zugriff auf den physischen speicher und die hardware die dahinter steckt das ist wie gesagt die memory management unit die auch dafür sorgt dass die segmente grenzen nicht überschritten werden hört also ist also genau dieser vergleich hier war sie geguckt wird ist diese adresse hier also ist dieser auf set hier kleiner gleich diesem segment länge hat das wird überprüft was zum beispiel auch den effekt hat dass man nicht nicht mehr in speicher bereiche von anderen prozessen hineingreifen kann lesen oder gar oder gar schreibt diese segmente die die dann auch noch amtiert mit so informationen wie der prozess der viel darf hier nur lesen der prozess dafür auch schreiben oder der prozess darf hier aus führen oder auch das wird von der eu geprüft naja das heißt also so kann man also die die hardware erzwingen lassen dass ein prozess seine seine rechte nicht überschreitet und wenn ein wenn man den prozess das doch tut dann tritt in mein job auf und dann wird der prozess zum beispiel terminiert oder also jedenfalls fazit der speicherzugriff da nicht praktisch sagt also dafür dass die programme und das betriebssystem vorhandene geschützt werden und wenn man dann zwischen zwei prozessen schaltet dann muss man nur dieses segment basis register also dem segment tabellenplatz mit dem inhalt von diesem register austauschen und dann zeigt das ding auf eine andere segment tabelle und es findet einfach eine andere abbildung von phänologischer auch physisch adressen stadt seit effekt davon ist auch dass die ein- und auslagerungen jetzt deutlich vereinfacht ist ja also nach einlagern an irgend eine bestimmte stelle in speicher muss nur diese übersetzungs tabelle angepasst werden und sonst nichts ja macht man auch noch machen kann ist dass man gemeinsame speicher segmente haben kann also dass ein prozess sich ein stück physischen speicher mit einem anderen prozess teil ein solches beispiel wäre tatsächlich so etwas wie das befehl segment zu teilen ja also wenn man diesen prozess dieses programm von dem ich gerade geredet haben wir mal 12 mal startet dann legt man normalerweise nicht den text von diesem programm zweimal in den speicher sondern man teilt sich den ja das heißt er die instruktionen sind auch wirklich nur einmal im speicher und möglicherweise nur an andere adressen eingeblendet gegeben die beiden prozesse noch nicht mal das das macht man nicht aber sie sind natürlich nicht schreibt war für die für die prozesskette hatte eine prozent prozess die die instruktionen des anderen prozesses irgendwie modifizieren weiteres beispiel sind die segmente können sich auch daten teilen mit anderen prozess natürlich so segmentierung hat aber eine reihe von problemen ja also ein problem ist dass frau argumentieren des speichers was ist der physischen speicher kann argumentieren wenn wenn wenn häufig ein und ausgelagert wurde also ist es entstehen dann kleine nicht benutzbare lücken also externe verschnitt und was man da machen kann man kann kann kompakt praktizieren oder die fragen wenn tieren wo also segmente verschoben werden um diese lücke zu schließen das kostet aber einfach zeit und weiteres problem ist wenn man segmente nur in ihrer gänze ein und auslagern kann dann hat man relativ viel ein ausgabe die die da die dann lebendig ist obwohl möglicherweise gar nicht alle teile an des segmentes wie gleich häufig benutzt werden ja so zum beispiel durch den programmteil der nur bei programmstart irgendwie gebraucht wird der könnte man eigentlich einmal auslagern und mussten dann vielleicht sogar nie wieder einlagern außer man muss eben das ganze segment anlage und das so wie wenn es gerade betrachtet ist das jetzt die hat sie die möglichkeit momentan ist gottes text wenn du mal komplett aus zulagen wieder komplett einzulagern praktizieren wie funktioniert das ja relativ einfach aber aufwendig ja also man erzeugt hier weniger aber größere lücken das ist relativ aufwendige operationen also zum beispiel wenn man die hier alle und gp2 nach hier oben kopiert und p3 nach hier oben kopiert also verschiebt ja dann hat man anschluss hier ein megabyte frei hat aber die 7 100 kilobyte speicher verschieden müssen oder kopieren müssen wenn man ein bisschen schlauer macht kann man aber durch den p2 einfach hier unter kopieren und hat aber dann letztendlich auch eine ein megabyte große lücke frei aber unterm strich dann verschoben ja tatsächlich auch wieder strategien wie man das besonders gut machen kann ok dabei will ich dort das wort bewenden lassen nächstes mal gucken wir uns noch die seiten basierte adresse bildung an und jetzt gibt es noch eine zwischenfrage bedeutet dies dass diese übersetzungs tabelle an starten des programms berechnet wird und kann sie neu berechnet werden zb während der laufzeit ja genau das ist der fall ja also das betriebssystem legt so eine sonne adresse adressat bildungsarbeit so eine segment tabelle an wenn so ein programm gestartet wird und wenn dann zwischendurch notwendig wird einzelne segmente programm zum beispiel auszulagern und später wieder an eine andere adresse einzulagern dann wird diese adresse wird diese bänder natürlich entsprechend angepasst dass die adressen wieder zu dem zu dem neuen physischen adressen passen drauf gibt's noch eine frage habe ich habe zu spät eingeschaltet damit deswegen jetzt erst bei den verfahren okay gibt es eine situation wo man first feature überhaupt benutzt da gibt es bestimmt ich hier springt jetzt aber keine in den kopf gehabt aber das kann ich nach gruppe irgendwann später wird er dieser studierende hier an dieser stelle im stream ankommen ok dann weiß ich nochmal auf meine kosten heute nachmittag hin 15 15 ich nehme gerne vorab fragen und ansonsten bedanke ich mich für die aufmerksamkeit und vielleicht bis später