Prévia do material em texto
FMU - TRC - Sistemas Operacionais 1 5) COMPONENTES DO NÚCLEO DE UM SISTEMA MULTIUSUÁRIO TRABALHO EXECUTADO PELO NÚCLEO DE UM S. O. MULTIUSUÁRIO PODE SER REPRESENTADO EM UNIDADES FUNCIONAIS : INTERPRETADOR DE INTERRUPÇÕES GERENCIADOR GERENCIADOR SISTEMA DE DE PROCESSOS DE RECURSOS ARQUIVOS I) INTERPRETADOR DE RECEBE O CONTROLE QUANDO UMA INTERRUPÇÃO (ORIGINADA POR UMA CHAMADA AO SISTEMA - SYSTEM CALL) INDICA A SOLICITAÇÃO DE SERVIÇOS AO SISTEMA OPERACIONAL. APÓS EXECUTAR A TAREFA SOLICITADA O CONTROLE RETORNA AO PROGRAMA QUE ESTAVA EM EXECUÇÃO, ANTES DA SOLICITAÇÃO DE INTERRUPÇÃO: É UM SINAL ENVIADO PARA A UCP, INDICANDO QUE ALGUMA TAREFA DEVE SER EXECUTADA, PODENDO SER GERADA POR HARDWARE OU POR AS INTERRUPÇÕES POR HARDWARE SÃO CLASSIFICADAS EM: INTERNAS - DIRIGIDAS DIRETAMENTE À UCP. EXTERNAS - CANALIZADAS À UCP PELO PIC MASCARÁVEIS - PODEM SER DESABILITADAS NÃO MASCARÁVEIS - (PARIDADE, FALTA DE ENERGIA)FMU - TRC - Sistemas Operacionais 2 AS INTERRUPÇÕES POR SOFTWARE (TRAPS) ESTÃO CONTIDAS NO CÓDIGO DO PROGRAMA QUE AS GERA. EX.: INT 21 (DOS/WIN) A ROTINA (MANIPULADOR DE INTERRUPÇÃO - INTERRUPT HANDLER) A SER ATIVADA É IDENTIFICADA A PARTIR DO NÚMERO DA INTERRUPÇÃO, QUE NOS PCs SÃO NUMERADAS DE 00h A FFh (256 INTERRUPÇÕES). NA MAIORIA DOS SISTEMAS MODERNOS, O DESVIO PARA A ROTINA MANIPULADORA DA INTERRUPÇÃO É FEITO A PARTIR DE UMA TABELA DE VETORES DE INTERRUPÇÕES QUE CONTÉM O ENDEREÇO LÓGICO DE MEMÓRIA ONDE SE ENCONTRA O MANIPULADOR. NESSE CASO, O NÚMERO DA SERVE COMO ÍNDICE PARA LOCALIZAR A ENTRADA DA TABELA QUE CONTÉM O ENDEREÇO DO MANIPULADOR. os MANIPULADORES DE INTERRUPÇÕES SÃO ROTINAS RESIDENTES NA ROM (BIOS), NO SISTEMA OPERACIONAL, OU ROTINAS DESENVOLVIDAS PELOS USUÁRIOS. APLICATIVO SISTEMA OPERACIONAL BIOS HARDWAREFMU TRC - Sistemas Operacionais 3 II) GERENCIADOR DE PROCESSOS: É TAREFA CENTRAL DO SISTEMA OPERACIONAL, QUE CONSISTE BASICAMENTE NA CRIAÇÃO, CONTROLE, COMUNICAÇÃO E ESCALONAMENTO DE PROCESSOS (TAREFAS). O É ALOCADO PELO ESCALONADOR DE PROCESSOS, QUE PROPICIA A UTILIZAÇÃO DINÂMICA DO PROCESSADOR POR DIVERSOS PROCESSOS. 1) PROCESSO: UM PROCESSO REPRESENTA A SITUAÇÃO DE UMA ATIVIDADE A SER EXECUTADA PELO COMPUTADOR, SENDO GERADO PELA SUBMISSÃO DE UM PROGRAMA PARA EXECUÇÃO OU POR UM COMANDO EMITIDO POR UM USUÁRIO. DE FORMA MAIS ABRANGENTE UM PROCESSO É A ESTRUTURA RESPONSÁVEL PELA MANUTENÇÃO DAS INFORMAÇÕES NECESSÁRIAS PARA AEXECUÇÃO DE UM PROCGRAMA, COMO CONTEÚDO DOS REGISTRADORES, ARQUIVOS EM USO, ETC. 2) BLOCO DE CONTROLE DE PROCESSO: AS IFORMAÇÕES NECESSÁRIAS PARA A EXECUÇÃO DE UM PROGRAMA SÃO MANTIDAS EM UMA ESTRUTURA CHAMADA "BLOCO DE CONTROLE DO PROCESSO" (PCB PROCESS CONTROL BLOCK), COMO: ESTADO DO PROCESSO IDENTIFICAÇÃO DO PROCESSO PRIORIDADE DO PROCESSO REGISTRADORES LIMITES DE MEMÓRIA ARQUIVOS ABERTOS E POSIÇÃO NO ARQUIVO O PROCESSO PODE SER DIVIDIDO EM TRÊS ELEMENTOS BÁSICOS: CONTEXTO DE HARDWARE CONTEXTO DE SOFTWARE ESPAÇO DE ENDEREÇAMENTO. A) CONTEXTO DE CONSISTE BASICAMENTE DO CONTEÚDO DOS REGISTRADORES QUE POSICIONAM O PROGRAMA NA MEMÓRIA NO MOMENTO EM QUE UM PROCESSO ESTÁ EM EXECUÇÃO, SEU CONTEXTO DE HARDWARE ESTÁFMU - TRC - Sistemas Operacionais PÁG. 4 ARMAZENADO NOS REGISTRADORES DA CPU. QUANDO O PROCESSO PERDE O CONTROLE DA CPU O SISTEMA SALVA SUAS INFORMAÇÕES NO CONTEXTO DE HARDWARE, QUE É RESTAURADO QUANDO O PROCESSO RETOMA CONTROLE DA CPU. A TROCA DE UM PROCESSO POR OUTRO PARA USAR A CPU CHAMA-SE "MUDANÇA DE CONTEXTO". Sistema Operacional PROCESSO A PROCESSO B EXEC SALVA REG. DO PROCESSO A CARREGA REG. DO PROCESSO B EXEC SALVA REG. DO PROCESSO B CARREGA REG. DO PROCESSO A EXECFMU TRC Sistemas Operacionais PÁG. 5 B) CONTEXTO DE SOFTWARE: ESPECIFICA CARACTERÍSTICAS DO PROCESSO, QUE INFLUENCIAM A EXECUÇÃO DO PROGRAMA, COMO POR EXEMPLO, O NÚMERO MÁXIMO DE ARQUIVOS ABERTOS, O TAMANHO DO BUFFER PARA OPERAÇÕES DE E/S. O CONTEXTO DE SOFTWARE DEFINE BASICAMENTE TRÊS GRUPOS DE INFORMAÇÕES SOBRE O PROCESSO: IDENTIFICAÇÃO, QUOTAS E PRIVILÉGIOS. IDENTIFICAÇÃO: CADA PROCESSO CRIADO RECEBE UMA IDENTIFICAÇÃO ÚNICA PID (PROCESS IDENTIFICATION), GERALMENTE UM NÚMERO QUE É UTILIZADO PARA REFERENCIAR O PROCESSO MUDAR CARACTERÍSTICAS, ETC). ALÉM DO PID O PROCESSO POSSUI TAMBÉM A IDENTIFICAÇÃO DO USUÁRIO (UID USER IDENTIFICATION) OU PROCESSO QUE O CRIOU (OWNER). QUOTAS: REPRESENTAM LIMITES DE CADA RECURSO DO SISTEMA QUE UM PROCESSO PODE ALOCAR. CASO UMA QUOTA SEJA INSUFICIENTE O PROCESSO PODE SEREXECUTADO MAIS LENTAMENTE OU MESMO NÃO SER EXECUTADO. GERALEMTNE AS QUOTAS REFEREM-SE A: NÚMERO MÁXIMO DE ARQIUVOS ABERTOS. MAXIMO DE MEMÓRIA ALOCADA NUMERO MAXIMO DE OPERAÇÕES DE E/S NÚMERO MAXIMO DE PROCESSOS PARA CRIAR PRIVILÉGIOS: DEFINE O QUE O PROCESSO PODE OU NÃO FAZER EM RELAÇÃO AO SISTEMA E A OUTROS PROCESSOS. EXISTEM, POR EXEMPLO, PRIVILÉGIOS ASSOCIADOS À SEGURANÇA QUE PERMITEM A UM USUÁRIO ELIMINAR PROCESSOS DE OUTROS USUÁRIOS E ACESSAR ARQUIVOS QUE NÃO LHE PERTENCEM C) ESPAÇO DE É A ÁREA DE MEMÓRIA DO PROCESSO, ONDE O PROGRAMA SERÁ EXECUTADO E A ÁREA DE DADOS UTILIZADOS, QUE DEVEM SER PROTEGIDAS DOS DEMAIS PROCESSOS.FMU - TRC - Sistemas Operacionais 6 3) ESCALONAMENTO DE PROCESSOS O ESCALONAMENTO DE UM PROCESSO PARA EXECUÇÃO (ASSUMIR O CONTROLE DA CPU), REQUER QUE ELE ESTEJA PRONTO PARA SER EXECUTADO, DEVENDO SER MONITORADO QUANDO SAI DAS MÃOS DO USUÁRIO, INGRESSA NO SISTEMA E ASSUME VÁRIOS ESTADOS DURANTE SUA 3.1) ESQUEMA DOS completado suspenso pronto executando suspenso espera Na figura acima, os retângulos representam os possíveis estados de um processo e as setas representam as mudanças de estado. 3.2) os ESTADOS: A) SUSPENSO: SIGNIFICA QUE O PROCESSO JÁ FOI SUBMETIDO PORÉM O SISTEMA AINDA NÃO PERMITE QUE SEJA EXECUTADO. OCORRE QUANDO, P.EX., O USUÁRIO SUBMETE O PROCESSO COM INSTRUÇÕES PARA QUE SEJA EXECUTADO MAIS TARDE. B) PRONTO: INDICA QUE O PROCESSO ESTÁ PRONTO PARA SER EXECUTADO. O PROCESSO ESTÁ OCIOSO, MAS PODE SER EXECUTADO SE OBTIVER O CONTROLE DA CPU. C) EXECUTANDO: INDICA UM PROCESSO QUE ESTÁ ATUALMENTE COM CONTROLE DA CPU. D) ESPERA: O PROCESSO ESTÁ ESPERANDO POR ALGO DE QUE NECESSITA PARA PROSSEGUIR SUA E) COMPLETADO: INDICA QUE O PROCESSO TERMINOU.FMU TRC - Sistemas Operacionais 7 3.3) TRANSIÇÕES DE ESTADO DE UM PROCESSO 1) NÃO SUBMETIDO PARA SUSPENSO: OCORRE QUANDO USUÁRIO SUBMETE PROCESSO COM INSTRUÇÕES, ATRAVÉS DA LINGUAGEM DE CONTROLE, PARA ADIAR SUA 2) SUSPENSO OU NÃO SUBMETIDO PARA PRONTO: OCORRE QUANDO O USUÁRIO SUBMETE UM PROCESSO PARA COMPETIR IMEDIATAMENTE PELOS RECURSOS DO SISTEMA OU QUANDO O MOMENTO PROGRAMADO PARA EXECUÇÃO É ATINGIDO. 3) PRONTO PARA EXECUTANDO: OCORRE QUANDO SISTEMA OPERACIONAL PASSA CONTROLE DA CPU A UM PROCESSO. 4) EXECUTANDO PARA PRONTO: OCORRE QUANDO O S. O. RETIRA CONTROLE DA CPU DE UM PROCESSO POR TER TERMINADO SEU TIME-SLICE, OU QUANDO TERMINA O I/O DE UM PROCESSO COM PRIORIDADE SOBRE O QUE ESTÁ EXECUTANDO. 5) EXECUTANDO PARA ESPERA: OCORRE QUANDO PROCESSO SOLICITA A EXECUÇÃO DE UMA INSTRUÇÃO DE I/O. 6) ESPERA PARA PRONTO: OCORRE Q UANDO PROCESSO OBTÉM PELO QUE ESPERAVA. 7) EXECUTANDO PARA COMPLETADO: OCORRE QUANDO O PROCESSO TERMINA, OU POR TER CONCLUÍDO SUA TAREFA OU POR TER INCORRIDO EM ERRO E 8) PRONTO PARA SUSPENSO: OCORRE QUANDO HÁ PROCESSOS EM EXCESSO NO ESTADO DE PRONTO, EVITANDO O CONGESTIONAMENTO DO SISTEMA. 9) SUSPENSO PARA PRONTO: OCORRE QUANDO A SEBRECARGA SO SISTEMAFMU TRC Sistemas Operacionais 8 3.4) TIPOS DE PROCESSO BASICAMENTE EXISTEM DOIS TIPOS DE RPOCESSO, DE ACORDO COM A UTILZAÇÃO DE RECURSOS: A) SÃO PROCESSOS QUE UTILIZAM MUITO O PROCESSADOR, COM POUCAS OPERAÇÕES DE E/S. TIPICAMENTE SÃO PROCESSOS DE USO CIENTÍFICO. B) SÃO PROCESSOS QUE FAZEM MUITO I/O E POUCO UTILIZAM PROCESSADOR, PASSANDO A MAIOR PARTE DO TEMPO EM ESTADO DE ESPERA. SÃO PROCESSOS TÍPICOS DE APLICAÇÕES COMERCIAIS. ESSES PROCESSOS DEVEM TER PRIORIDADE SOBRE PROCESSOS 3.5) SITUAÇÕES DE IMPASSE: EM SISTEMAS COM VÁRIOS PROCESSOS EM EXECUÇÃO NÃO É RARO OCORREREM SITUAÇÕES DE IMPASSES, ONDE UM PROCESSO AGUARDA POR UM EVENTO QUE NUNCA DEVENDO ESSA SITUAÇÃO SER DETECTADA E CORRIGIDA PELO SISTEMA OPERACIONAL. UMA SITUAÇÃO DE IMPASSE BASTANTE COMUM É O DEAD-LOCK (BLOQUEIO PERPÉTUO), ONDE DOIS OU MAIS PROCESSOS FICAM IMPOSSIBILITADOS DE PROSSEGUIR A EXECUÇÃO, POIS AGUARDAM UM RECURSO QUE NUNCA SERÁ LIBERADO. 4) POLÍTICAS DE ESCALONAMENTO PARA O GERENCIAMENTO DO PROCESSADOR, ESCALONADOR DE PROCESSOS UTILIZA BASICAMENTE DOIS TIPOS DE POLÍTICAS DE ESCALONAMENTO: ESCALONAMENTO PREEMPTIVO E ESCALONAMENTO NÃO PREEMPTIVO. 4.1) ESCALONAMENTO NÃO PREEMPTIVO: NESSE TIPO DE ESCALONAMENTO O SISTEMA OPERACIONAL TEM POUCAS OU NENHUMA OPORTUNIDADE DE ESCALONAR UM PROCESSO PARA UTILIZAÇÃO DO PROCESSADOR QUE ESTÁ ALOCADO PARA UM OUTRO PROCESSO. VANTAGEM: FÁCIL DESVANTAGEM: PROCESSOS PODEM MONOPOLIZAR O PROCESSADOR DOIS MODELOS NÃO PREEMPTIVOS:FMU - TRC Sistemas Operacionais 9 A) ESCALONAMENTO COOPERATIVO: NO ESCALONAMENTO COOPERATIVO, O SISTEMA OPERACIONAL SOMENTE PODERÁ DAR O CONTROLE DO PROCESSADOR A UM PROCESSO QUE ESTEJA PRONTO PARA EXECUTAR, QUANDO O PROCESSO EM EXECUÇÃO LIBERÁ-LO ESPONTANEAMENTE B) ESCALONAMENTO POR PRIORIDADES: A ÚNICA OPORTUNIDADE PARA SUBSTITUIR PROCESSO QUE CONTROLA O PROCESSADOR POR OUTRO QUE ESTEJA PRONTO PARA EXECUÇÃO, É QUANDO QUE O PROCESSO EM EXECUÇÃO SOLICITA A EXECUÇÃO DE UMA INSTRUÇÃO DE I/O. Exemplo: CPU 5 SISTEMA OPERACIONAL C A 9 N 1 4 A L 2 3 I/O 7 8 prog. A prog. B LEGENDA: 1) O S. O. CARREGA PROGRAMAS "A" e "B" 2) O PROG. 'A' EXECUTA ATÉ A INTRUÇÃO DE I/O E ENTRA EM ESTADO DE ESPERA. 3) CANAL PASSA A EXECUTAR A INSTR. DE I/O. 4) O S.O. PASSA O CONTROLE AO PROG. 'B' 5) O CANAL AVISA A CPU QUE TERMINOU O I/O. 6) O PROGRAMA 'B' PERDE O CONTROLE DA CPU. 7) O S.O. RETORNA O CONTROLE AO PROGR. 8) PROGRAMA 'A' TERMINA E DEVOLVE O CONTROLE AO S.O. 9) S.O. RETORNA O CONTROLE AO PROGR. 'B'. 10) O PROGRAMA 'B' TERMINA E DEVOLVE O CONTROLE AO S.O.FMU - TRC - Sistemas Operacionais PÁG. 10 NESSE MODELO, A ATRIBUIÇÃO DE PRIORIDADES AOS PROCESSOS É CRÍTICA, POIS SE MAL ATRIBUÍDA, PODE DEGRADAR A PERFORMANCE DO SISTEMA. 4.2) ESCALONAMENTO PREEMPTIVO: O COMPARTILHAMENTO DO PROCESSADOR É FEITO ATRAVÉS DE UM RELÓGIO QUE INTERROMPE O PROCESSADOR A INTERVALOS REGULARES DE TEMPO, PARA QUE O ESCALONADOR DE TAREFAS POSSA PASSAR O CONTROLE DA CPU A OUTRO PROCESSO. O TEMPO DE PROCESSADOR DEDICADO A CADA PROCESSO É DENOMINADO "TIME-SLICE". PROCESSOS NÃO MONOPOLIZAM O PROCESSADOR. DOIS MODELOS PREEMPTIVOS: A) MODELO CIRANDA (CIRCULAR OU ROBIN-ROUND) : É O MODELO PREEMPTIVO MAIS SIMPLES, QUE CONSISTE EM REPARTIR UNIFORMEMENTE O TEMPO DO PROCESSADOR ENTRE VÁRIOS P1 P2 P3 P4 DESVANTAGEM: O TEMPO DE RESPOSTA AUMENTA À MEDIDA QUE NOVOS PROCESSOS INGRESSAM NO SISTEMA.FMU - TRC - Sistemas Operacionais PÁG. 11 B) MODELO CASCATA: VERSÃO MELHORADA DO MODELO CIRANDA, CONSISTE EM MANTER DIFERENTES FILAS DE ATENDIMENTO, COM DIFERENTES PRIORIDADES E DIFERENTES "TIME-SLICE". NOVOS PROCESSOS SEMPRE INGRESSAM NA FILA 1 (F1). SE NÃO TERMINAREM EM SEU "TIME-SLICE" SÃO REMANEJADOS PARA A FILA 2 (F2). PROCESSOS NA FILA 2 SOMENTE SERÃO ATENDIDOS QUANDO A FILA 1 ESTIVER VAZIA. PROCESSOS NA FILA 2 QUE NÃO TERMINAREM EM SEU TIME-SLICE SÃO REMANEJADOS PARA A FILA 3. PROCESSOS NA FILA 3 SOMENTE SERÃO ATENDIDOS QUANDO AS FILAS 1 E 2 ESTIVEREM VAZIAS. PROCESSOS NA FILA 3 QUE NÃO TERMINAREM EM SEU TIME-SLICE, OU RECEBEM O TRATAMENTO DO MODELO CIRANDA, OU RETORNAM À FILA 2, DEPENDENDO DA IMPLEMENTAÇÃO. F1 F2 F3 DESVANTAGEM: IMPLEMENTAÇÃO COMPLEXA TEMPOS DE RESPOSTA AOS USUÁRIOS INTERATIVOS É MANTIDO A NÍVEIS ESSE MODELO VISA BENEFICIAR O ATENDIMENTO A USUÁRIOS INTERATIVOS (POUCA DURAÇÃO), EM DETRIMENTO DOS USUÁRIOS "BATCH" (LONGA DURAÇÃO).