Sobes.tech
Junior — Middle

Šta se dešava u sistemu kada se zahteva dodela memorijskog bloka od 1024 bajta?

sobes.tech АИ

Одговор од АИ

Kada u Go-u zatraži se alokacija memorijskog bloka od 1024 bajta, dešavaju se sledeći koraci:

  1. Poziva se funkcija za alokaciju memorije, poput make ili new, ili direktno putem runtime-a.
  2. Sistem proverava da li u bazenu postoji slobodna memorija odgovarajuće veličine.
  3. Ako postoji, alocira se memorijski blok i vraća se pokazivač.
  4. Ako ne, poziva se sistemski poziv za alokaciju većeg bloka od operativnog sistema.
  5. Memorija se inicijalizuje na nulu (u Go-u, memorija je uvek nulirana pri alokaciji).

Na kraju, program dobija pokazivač na memorijsku oblast od 1024 bajta, spremnu za korišćenje.

Primer:

buf := make([]byte, 1024) // alocira slice od 1024 bajta, memorija je nulirana

Unutar Go runtime-a, upravljanje hrpom i optimizacija alokacije minimiziraju sistemske pozive.