public SimuladorPresenter(ISimuladorView simuladorView, TipoEscalonamento tipoEscalonamento)
 {
     _simuladorView = simuladorView;
     _ssdService    = new SsdService();
     _ramService    = new RamService(MmuService.TAMANHO_PAGINA_MB, ESPACO_RESERVADO_SO_MB);
     _mmuSerivce    = new MmuService(_ramService, _ssdService);
     _cpuService    = new CpuService(_mmuSerivce, FREQUENCIA_CLOCK_SEGUNDOS);
     ConfigurarTimer();
     ConfigurarDispatcher(tipoEscalonamento);
     _simuladorView.ExibirEspacoReservadoSo(_ramService.RetornarEspacoReservadoSoMB());
 }
        public void ConfigurarDispatcher(TipoEscalonamento tipoEscalonamento)
        {
            switch (tipoEscalonamento)
            {
            case TipoEscalonamento.PrimeiroAChegar:
                _dispatcherService = new FcfsDispatcherService(_ramService, _mmuSerivce);
                break;

            case TipoEscalonamento.JobMaisCurto:
                _dispatcherService = new SjfDispatcherService(_ramService, _mmuSerivce);
                break;

            default:
                throw new ArgumentException("Tipo de escalonamento inválido.", nameof(tipoEscalonamento));
            }
        }