Feld & Hauptspeicher

Alles, was nicht direkt mit Python-Problemen zu tun hat. Dies ist auch der perfekte Platz für Jobangebote.
Antworten
Bindl
User
Beiträge: 70
Registriert: Donnerstag 27. Oktober 2016, 11:48

Hi zusammen,
ich habe eine weitere Frage im Zuge einer Klausurvorbereitung.

In unserem Skript steht das sich ein Feld gut auf dem Hauptspeicher abbilden lässt und nur den unbedingt notwendigen Hauptspeicher verbraucht.

Nun ist eine Aufgabe zu diesem Kapitel die wir nicht gemacht haben und die ich nicht selbst klären kann.

Aufgabe:
Warum ist die Aussage über den Hauptspeicherverbrauch nicht ganz korrekt? Begründen Sie und finden Sie Gegenbeispiele.

Ich hoffe mal mir kann hierbei jemdand helfen.
Danke dafür schonmal im voraus
Sirius3
User
Beiträge: 17711
Registriert: Sonntag 21. Oktober 2012, 17:20

@Bindl: was meinst Du mit "Feld". Definiere diesen Begriff. Was bedeutet "afu dem Hauptspecher abbilden"? Definiere "abbilden". Ich kann mir ungefähr denken, was derjenige der diese Aussage getroffen hat, damit gemeint haben könnte. Aber ohne dass klar ist, was wirklich gemeint ist, kann man die Frage nicht beantworten. Zum Nachtrag der Frage: Ich soll also begründen warum ein Feld, was auch immer das ist, nicht nur den unbedingt notwendigen Hauptspeicher verbraucht und soll Gegenbeispiele finden, also Dinge, die kein Feld sind und nur ihren unbedingt notwendigen Hauptspeicher verbrauchen?

Also um es noch einmal konkrete zu formulieren: Unter der Annahme, es gäbe einen Hauptspeicher dergestalt, dass dort Informationen in Zellen abgespeichert werden können und eine Zelle die kleinstmögliche Informationseinheit ist, kann eine Implementierung des Objekts X existieren, die die selbe Funktionalität bereitstellt, wie die Implementierung des selben Objekts X im offiziellen CPython Version 3.x für ein 64Bit-System, die weniger Zellen des Hauptspeichers braucht.

Die Antwort dürfte immer ja, es existiert solch eine Implementierung, lauten. Von daher dürfte es schwierig sein Gegenbeispiele zu finden.
Bindl
User
Beiträge: 70
Registriert: Donnerstag 27. Oktober 2016, 11:48

Hi,
des Feld wird auch Array, Reihung oder Sequenz genannt.
Vielleicht hilft das weiter.
__deets__
User
Beiträge: 14494
Registriert: Mittwoch 14. Oktober 2015, 14:29

Das war relativ klar. Ohne weiter Randbedingungen (wie von Sirius schon ausgefuehrt) gibt es aber keinen Grund, die Aussage in Zweifel zu ziehen. Wenn ich im C++-Compiler sowas mache

Code: Alles auswählen

#include <iostream>

int main(int argc, char *argv[])
{

  char testfeld[3];
  std::cout << sizeof(testfeld) << "\n";
  return 0;
}
dann kommt dabei genau die erwartete 3 raus. Insofern ist das also schon ein Gegenbeispiel zur These.

Oder ist hierbei spezifisch von Python die Rede als Sprache und Umgebung?
Sirius3
User
Beiträge: 17711
Registriert: Sonntag 21. Oktober 2012, 17:20

@Bindl: während Array noch relativ klar definiert ist, kann man sich unter Reihung irgendetwas vorstellen und als "Sequenz" bezeichnet man generisch jede Datenstruktur, die eine feste Rangfolge unter ihren Elementen hat.

Ohne eine klare Definition von Feld ist die Aufgabe nicht zu beantworten.
BlackJack

Ich habe ja die Vermutung diese Frage hat überhaupt nichts mit Python zu tun, sondern wir reden hier von C oder Pascal oder etwas in der Art. Und dann entsprechend von deren Feldvariablen.

Was natürlich nichts daran ändert das hier einfach viel zu viele Randbedingungen unklar sind. Gibt es einen Datentyp für Wahrheitswerte? Wie ist ein Feld von Wahrheitswerten implementiert? Da könnte es dann zum Beispiel sein das eine Feldvariable ein Byte pro Wahrheitswert verbraucht, man das aber kompakter als Bitmap speichern könnte. Oder spielt hier noch so etwas wie virtuelle Speicherverwaltung mit hinein, wo man eventuell nicht beliebig Speicher verwenden kann, sondern nur in einer bestimmten Blockgrösse mit einer bestimmten Ausrichtung? Manche Rechnerarchitekturen ”erzwingen” auch die Ausrichtung aller Werte und damit ”Löcher” in der Speichernutzung. Ist das gemeint?
Bindl
User
Beiträge: 70
Registriert: Donnerstag 27. Oktober 2016, 11:48

Hi,

also das hat nicht zwingend etwas mit Python zu tun.
Deswegen habe ich es mal im OffTopic Bereich gepostet.

Vielmehr Info´s habe ich leider nicht, also keine weiteren Randbedingungen.

Das ganze ich ist wieder für "Einführung in die Informatik".
Das ganze wird an einer HS unterrichtet und wir gehen hier bei den Themen nicht all zu sehr ins Detaill.
Benutzeravatar
snafu
User
Beiträge: 6731
Registriert: Donnerstag 21. Februar 2008, 17:31
Wohnort: Gelsenkirchen

Vermutlich will man auf Alignment und Datentypen, die kleiner als ein Byte sind, hinaus. Möglicherweise auch auf Fragmentierung.
Antworten