Zum Inhalt springen

Übung


Empfohlene Beiträge

Du musst zunaechst berechenen, wie gross ein Datensatz fuer ein einziges Bild ist, dann dieses Ergebnis mal 5000, da man 5000 Bilder, und demnach 5000 Datensaetze hat.

Dabei soll jeder Block zu hoechstens 80% aufgefuellt sein. 4 kb sind 4000 byte, sind 32000 bit. Wenn wir also nur 80% des Blocks belegen duerfen, sind das

32000*(4/5) = 25600 [bit]

bzw. 3200 byte.

Zudem wird gesagt, dass in einem Block nur ganze Datensaetze sein duerfen. Das behalten wir erstmal im Hinterkopf. Berechnen wir jetzt wie gross ueberhaupt ein Datensatz ist. Dazu summieren wir einfach alle Daten auf (Bildname, Maler, etc.) wobei wir auf byte umrechnen:

Bildname, Maler: 40char = 40byte

Erstellungsjahr, Breite, Hoehe: 1 integer = 64 bit = (64 / 4) byte = ( 2^6 / 2^2) byte  = (2^4) byte = 16 byte

Verkauft: 1 Boolean: 1 byte

1 Float = 32 bit = ... = 8 byte

da alles in byte ist, spare ich mir es in der untrigen Rechnung auszuschreiben:
(2*40) + (3*16) + (1*1) + (1*8) = 137 [byte]

Ok. Also ist ein Block 137 byte gross, wenn ich mich nicht verrechnet habe. Jetzt muessen wir wissen, wievieler dieser Datensaetze in einem Block passen, s.d. nur ganze Datensaetze im Block enthalten sind (das was wir im Hinterkopf behielten):

wir rechenen in pseudo code sozusagen: floor(DatenSatzGroesse / BlockGroesse)

also:      floor(137 / 3200)
das ist:   = 23 [byte]
wir rechnen durch 3200 und nicht durch die eigentliche groesse des Blocks, da verlangt wird, hoechstens 80% des Blocks zu belegen, warum auch immer.

wir koennen kontrollieren ob wir richtig gerechnet haben: 137*23 ist 3151 [byte], wobei 24 Datensaetze schon zu viel gewesen waeren.
Somit koennen wir 23 Datensaetze pro block abspeichern. Wir haben 5000 Datensaetze, daher:

5000 / 23 = 217.391304348...

Oh nein, es geht nicht ganz auf. Wir brauchen also einen Block mehr, naemlich:
    
    ceil(5000 / 23) = 218 [block]

Hab noch nie so ne Aufgabe geloesst, also rechne selbst bitte nach. Ich habe sehr wahrscheinlich einen Rechenfehler und/oder nen logischen Fehler gemacht!

Link zu diesem Kommentar
Auf anderen Seiten teilen

Woran genau scheitert's denn bei dir? Man kann dir am besten helfen, wenn du schreibst, was du bisher probiert hast und wo du nicht weiterkommst. Dir hier einfach die Lösung aufzuschreiben ist nicht wirklich sinnvoll, wenn es um einen Lerneffekt geht.

@Samus Aran du hast da irgendwie komische 4Bit-Bytes... ein Byte sind gemeinhin 8 Bit - damit kommt man dann auf andere Zahlen.

Link zu diesem Kommentar
Auf anderen Seiten teilen

vor 16 Minuten schrieb arlegermi:

Woran genau scheitert's denn bei dir? Man kann dir am besten helfen, wenn du schreibst, was du bisher probiert hast und wo du nicht weiterkommst. Dir hier einfach die Lösung aufzuschreiben ist nicht wirklich sinnvoll, wenn es um einen Lerneffekt geht.

@Samus Aran du hast da irgendwie komische 4Bit-Bytes... ein Byte sind gemeinhin 8 Bit - damit kommt man dann auf andere Zahlen.

 

1552854120392591429092.jpg

Link zu diesem Kommentar
Auf anderen Seiten teilen

Gerade eben schrieb ahmetaj:

 

1552854120392591429092.jpg

könntest du bite diese nochmal gucken ?

 

 

vor 21 Minuten schrieb arlegermi:

Woran genau scheitert's denn bei dir? Man kann dir am besten helfen, wenn du schreibst, was du bisher probiert hast und wo du nicht weiterkommst. Dir hier einfach die Lösung aufzuschreiben ist nicht wirklich sinnvoll, wenn es um einen Lerneffekt geht.

@Samus Aran du hast da irgendwie komische 4Bit-Bytes... ein Byte sind gemeinhin 8 Bit - damit kommt man dann auf andere Zahlen.

 

Link zu diesem Kommentar
Auf anderen Seiten teilen

Die Datensatzgröße stimmt schonmal. Bei den 4 KiloByte musst du drauf achten, dass die IHK mit KiloByte auch tatsächlich 1000 Byte meint (1024 wären KibiByte). Du musst also nicht 4096 * 8 rechnen für die Bits, sondern 4000. Ich würde dir außerdem raten, immer auf Byte-Ebene zu rechnen, da sind die Zahlen kleiner ;)

Wenn du jetzt weißt, wieviele Byte du in einen Block stecken darfst (also 0.8 * 4000 = 3200), dann musst du gucken, wieviele deiner 109-Byte-Datensätze du in einen Block bekommst.

Mit der Zahl der Datensätze pro Block kannst du schließlich ermitteln, wieviele Blöcke du für alle (also 5000) Datensätze brauchst. Denk bei den letzten Schritten immer daran, dass nur ganze Datensätze bzw. Blöcke zählen - du kannst bspw. keinen halben Datensatz in einen Block packen.

Link zu diesem Kommentar
Auf anderen Seiten teilen

Dein Kommentar

Du kannst jetzt schreiben und Dich später registrieren. Wenn Du ein Konto hast, melde Dich jetzt an, um unter Deinem Benutzernamen zu schreiben.

Gast
Auf dieses Thema antworten...

×   Du hast formatierten Text eingefügt.   Formatierung wiederherstellen

  Nur 75 Emojis sind erlaubt.

×   Dein Link wurde automatisch eingebettet.   Einbetten rückgängig machen und als Link darstellen

×   Dein vorheriger Inhalt wurde wiederhergestellt.   Editor leeren

×   Du kannst Bilder nicht direkt einfügen. Lade Bilder hoch oder lade sie von einer URL.

Fachinformatiker.de, 2024 by SE Internet Services

fidelogo_small.png

Schicke uns eine Nachricht!

Fachinformatiker.de ist die größte IT-Community
rund um Ausbildung, Job, Weiterbildung für IT-Fachkräfte.

Fachinformatiker.de App

Download on the App Store
Get it on Google Play

Kontakt

Hier werben?
Oder sende eine E-Mail an

Social media u. feeds

Jobboard für Fachinformatiker und IT-Fachkräfte

×
×
  • Neu erstellen...