def _estimate_memory_utilization(self, process_dict):
        n_processes = len(process_dict)
        total_utilization = psutil.virtual_memory().percent
        sum = 0.0
        for proc in compat.itervalues(process_dict):
            try:
                sum += psutil.Process(proc.pid).memory_percent()
            except (psutil.NoSuchProcess, ZeroDivisionError):
                pass
        curr_all_processes = sum
        missing_utilization = max(0.0, n_processes * self._est_per_process - curr_all_processes)
        estimated_utilization = total_utilization
        estimated_utilization += missing_utilization
        estimated_utilization += self._est_per_process
        return estimated_utilization
:return: tuple of allowable classes
dataset/ETHPy150Open SmokinCaterpillar/pypet/pypet/environment.py/Environment._estimate_memory_utilization--crossover with--dataset/ETHPy150Open dimagi/commcare-hq/corehq/form_processor/casedb_base.py/AbstractCaseDbCache.case_model_classes