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:
- Poziva se funkcija za alokaciju memorije, poput
makeilinew, ili direktno putem runtime-a. - Sistem proverava da li u bazenu postoji slobodna memorija odgovarajuće veličine.
- Ako postoji, alocira se memorijski blok i vraća se pokazivač.
- Ako ne, poziva se sistemski poziv za alokaciju većeg bloka od operativnog sistema.
- 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.