diff --git a/ws22.q b/ws22.q index 021ff14b438763b4aa988a2ca543bb499d7ee168..677999bbd3c57efed7db3474b17f7047696225ef 100644 --- a/ws22.q +++ b/ws22.q @@ -170,9 +170,9 @@ - Mit malloc() angeforderter Speicher, welcher vor Programmende nicht freigegeben wurde, kann vom Betriebssystem nicht mehr an andere Prozesse herausgegeben werden und ist damit bis zum Neustart des Systems verloren. Nein, nach dem Ende des Programms wird der gesamte Adressbereich des Prozesses freigegeben. - Mit Hilfe des Systemaufrufes malloc() kann ein Programm zusätzliche Speicherblöcke von sehr feinkörniger Struktur vom Betriebssystem anfordern. - Nein, die Laufzeitumgebung (*libc*) fordert den Speicher grobgranular vom Betriebssystem an (`mmap(2), brk(2)`) und verteilt diesen im Benutzerprozess. + Nein, die Laufzeitumgebung (*libc*) fordert den Speicher grobgranular vom Betriebssystem an (`mmap(2), brk(2)`) und verteilt diesen im Benutzerprozess. Zudem ist `malloc(3)` kein Systemaufruf, sondern eine Bibliotheksfunktion, die im *userspace* implementiert ist und die zuvor genannten Systemaufrufe verwendet. - Da das Laufzeitsystem auf die Betriebssystemschnittstelle zur Speicherverwaltung zurückgreift, ist die Granularität der von malloc() zurückgegebenen Speicherblöcke vom Betriebssystem vorgegeben. - Nein, `malloc` kann als Teil des Laufzeitsystems den grobgranular vom Betriebssystem angeforderten Speicher feingranular zurückgeben. + Nein, `malloc` kann als Teil des Laufzeitsystems den grobgranular vom Betriebssystem angeforderten Speicher feingranular aufteilen und zurückgeben. . 0 Sie kennen den Translation-Lookaside-Buffer (TLB). Welche Aussage ist richtig? (Februar 2022)