• O PROCESSO É A ABSTRAÇÃO DE UM PROGRAMA EM EXECUÇÃO.
• EM SISTEMAS MULTITAREFA, EXISTEM VÁRIOS PROCESSOS UTILIZANDO A CPU "SIMULTANEAMENTE". • CADA PROCESSO PODE ASSUMIR, BASICAMENTE, TRÊS ESTADOS: • EXECUÇÃO, QUE UTILIZA A CPU; • BLOQUEADO, QUE ESPERA ALGUM RECURSO, COMO, POR EXEMPLO, A LEITURA DE UM DISCO; • PRONTO, QUE OCUPARÁ A CPU, A QUAL, NO MOMENTO, ESTÁ OCUPADA POR OUTRO PROCESSO. PROCESSOS SUBPROCESSOS E THREAD
• PODEMOS TRABALHA DE FORMA DIVIDIDA EM CADA PROCESSO.
• DIVIDIR EM PARTES O PROBLEMA É MAIS FÁCIL? • O “PROCESSO PAI” PERMITE QUE “PROCESSOS FILHOS” SOLUCIONEM O PROBLEMA DEVOLVENDO SOMENTE A RESPOSTA CORRETA, PODEMOS CHAMAR ELES DE SUBPROCESSOS. • ESTES SUBPROCESSOS PODEM CRIAR OUTROS SUBPROCESSOS. • CASO O PROCESSO PRINCIPAL DEIXE DE EXISTIR, TODOS OS OUTROS SERÃO ELIMINADOS. VINI MALVADEZA 😈🤙 • LEVA TEMPO PARA EXCLUIR UM PROCESSO COM VÁRIOS SUBPROCESSOS? • E SE TIVÉSSEMOS OS PROCESSOS ALINHADOS EM UMA LINHA DE COMANDO? • FICARIA MAIS RÁPIDO? • THREADS “FLUXO DE EXECUÇÃO” • SEQUÊNCIA DE INSTRUÇÃO • EXECUTA VÁRIAS TAREFAS SIMULTANEAMENTE • COMPARTILHAM O MESMO ESPAÇO DE MEMÓRIA • EXEMPLO: • SE TIVER UM ARQUIVO A SER TRANSFERIDO PARA OUTRO LUGAR • QUAL A MELHOR FORMA DE TRANSFERIR? • O ARQUIVO COMPLETO QUANTO TEMPO DEMORARIA? • O ARQUIVO DIVIDIDO EM VÁRIAS PARTES SERIA MAIS RÁPIDO? AMBIENTE DE PROGRAMAÇÃO MONOTHREAD E MULTITHREAD • MONOTHREAD: CADA PROCESSO PODE EXECUTAR APENAS UMA INSTRUÇÃO DO PROGRAMA DA SEQUÊNCIA DE INSTRUÇÕES (DESVIOS, REPETIÇÕES, CHAMADAS A PROCEDIMENTOS OU FUNÇÕES) – AS POSIÇÕES SÃO REGISTRADAS.
• MULTITHREADS: AS THREADS COMPARTILHAM UM PROCESSADOR, COM A
VANTAGEM DE COMPARTILHAREM O MESMO ESPAÇO DE ENDEREÇAMENTO. ESSA VANTAGEM DIFERE AS THREADS DOS PROCESSOS E POSSIBILITA A ELAS ALTERAR DADOS UMAS DAS OUTRAS DE FORMA MAIS RÁPIDA QUE OS PROCESSOS, GERANDO GANHO DE DESEMPENHO PARA AS APLICAÇÕES ESCALONAMENTO DE PROCESSOS
• O PROCESSO QUANDO SE ENCONTRA EM PRONTO FICA NO AGUARDO DE UMA
LIBERAÇÃO DA CPU PARA ENTRAREM EM EXECUÇÃO. • PODEMOS MANTER O PROCESSADOR SEMPRE OCUPADO? • PARA SEMPRE CONSEGUIRMOS O MELHOR DO PROCESSADOR COMO SERIA A MELHOR FORMA? ESCALONADOR
• É UTILIZADO UM ALGORITMO DE ESCALONAMENTO PARA DEFINIR OS CRITÉRIOS
DE SELEÇÃO DE UM PROCESSO. • NO ESCALONAMENTO (PREEMPTIVO) O SISTEMA INTERROMPE UM PROCESSO EM EXECUÇÃO PARA QUE OUTRO OCUPE O PROCESSADOR POR MEIO DO CONCEITO DE PREEMPÇÃO** E TAMBÉM UTILIZADO EM PROCESSAMENTO BATCH (NÃO PREEMPTIVO), QUANDO UM PROCESSO (JOB) GANHA A CPU, NENHUM OUTRO LHE PODE TIRAR ESSE RECURSO • ***SIGNIFICANDO QUE UM PROCESSO EM ESTADO DE PRONTO TEM PRECEDÊNCIA PARA OCUPAR A CPU EM RELAÇÃO AOS OUTROS PROCESSOS NO MESMO ESTADO • EM UMA PRIMEIRA ANÁLISE, O ESCALONAMENTO PREEMPTIVO PARECE-NOS SER MAIS VANTAJOSO QUE O NÃO PREEMPTIVO. • NO ENTANTO, O QUE PODE DETERMINAR SUAS VANTAGENS É O TIPO DE APLICAÇÃO E O USO QUE SE FAZ DELE. • PODEMOS OBSERVAR QUE, NO ESCALONAMENTO NÃO PREEMPTIVO, CONHECEMOS PREVIAMENTE O TEMPO DE USO DA CPU, E ESSA CARACTERÍSTICA É IMPORTANTE PARA O PROCESSAMENTO EM LOTE, QUE PERMITE AOS USUÁRIOS CONHECER O TEMPO EXATO DA CONCLUSÃO DE UM TRABALHO. NESSE CASO, O USO DO ESCALONAMENTO NÃO PREEMPTIVO É MAIS INDICADO PRIORIDADES
• A PRIORIDADE ESTÁTICA É AQUELA QUE, APÓS SER ASSOCIADA AO PROCESSO,
SE TORNA PERMANENTE E É ATRIBUÍDA PELO PRÓPRIO USUÁRIO, DE ACORDO COM A IMPORTÂNCIA DO TRABALHO (JOB)
• A PRIORIDADE DINÂMICA PODE VARIAR, AUMENTANDO OU DIMINUINDO, DE
ACORDO COM A NECESSIDADE E O OBJETIVO DE OFERECER MELHOR TEMPO DE RESPOSTA (TEMPO NECESSÁRIO PARA SE CONCLUIR UMA TAREFA) E INTERATIVIDADE DO SISTEMA. ALGORITMOS DE ESCALONAMENTO • FIRST-IN-FIRST-OUT (FIFO) – PRIMEIRO-A-ENTRAR-PRIMEIRO-A-SAIR • CONHECIDO COMO PRIMEIRO-A-CHEGAR-PRIMEIRO-A-SER-ATENDIDO • MÉTODO SIMPLES DE ESCALONAMENTO. • SÃO EXECUTADOS DO INÍCIO ATÉ O FIM. • SEM INTERRUPÇÃO. • SEM GARANTIAS DE TEMPO CURTO DE RESPOSTAS ALGORITMOS DE ESCALONAMENTO
• ROUND ROBIN (RR) – ALTERNÂNCIA CIRCULAR
• FORMATO FIFO • ALGORITMO DE INTERVALO DE TEMPO, CHAMADO DE QUANTUM. • AO FINAL DE CADA QUANTUM O PROCESSO É INTERROMPIDO E VOLTARÁ AO FINAL DA FILA E O PRÓXIMO SERÁ ALOCADO. ALGORITMOS DE ESCALONAMENTO • SHORTEST-PROCESS-FIRST (SPF) – PROCESSO-MAIS-CURTO-PRIMEIRO • TAREFAS MENORES EXECUTADAS PRIMEIRO. • NÃO PREEMPTIVO • ANÁLISE EM LOTES • PROCESSOS CURTOS SÃO FAVORECIDOS EM RELAÇÃO AOS MAIORES • PROCESSOS PEQUENOS NÃO FICAM NA FILA • COMPROMETER PROCESSOS LONGOS ALGORITMOS DE ESCALONAMENTO
• MENOR TEMPO DE EXECUÇÃO • VERSÃO MELHORADA SPF. • SE APARECER PROCESSOS MAIS CURTOS É INTERROMPIDO E COLOCADO OUTRO A SER EXECUTADO. • TEMPO MENOR DE USO DA CPU. • TEMPO DE ESPERA LONGO PARA PROCESSOS LONGOS. • SE ESTIVER EXECUTANDO UM PROCESSO LONGO E APARECER UM MENOR O MAIOR PERDE A PRIORIDADE. MÚLTIPLAS FILAS, OU FILAS MULTINÍVEIS DE RETORNO • VÁRIAS CLASSES DE PRIORIDADES • PROCESSOS MENORES ENTRAM NA FILA DE MENOR QUANTUM. • PROCESSOS SÃO REALIZADO MAIS RÁPIDOS. • FILAS SUPERIORES COM MAIOR PRIORIDADE. • CHEGA E OCUPA UMA FILEIRA DE NÍVEL ALTO E VAI AVANÇANDO PARA AS SEGUINTES