Funkcja po sprawdzeniu prawidłowości parametrów wywołania i możliwości spełnienia żądań, w nich zawartych, przystępuje do realizacji zamówienia. Na początek znajduje pierwszy wolny obszar pamięci wirtualnej o żądanym rozmiarze (get_unmapped_area). Wywołuje funkcję do_munmap w celu sprawdzenia, czy przydzielony zakres nie pokrywa się z jakimś istniejącym VMA. Gdy ok, to przydziela pamięć na nowy deskryptor obszaru VMA. Po czym inicjalizuje go i wstawia do struktur związanych z zarządzaniem pamięcią procesu żądającego tego przydziału. Zwraca adres początku przydzielonego VMA.