Baixe o app para aproveitar ainda mais
Prévia do material em texto
Revisão para a AV1 Definição Classificação Conceitos: concorrência, interrupção Arquitetura do SO Definição de SO ● Abstração e Gerenciamento ● Conceito Topdown – visão do usuário ● Conceito Bottom-up – gerenciador de recursos O que um SO precisa gerenciar? ● Processos ● Hardware / dispositivos ● Memória ● Processador ● Sistemas de arquivos Revisão: classificação de SO Sistemas com múltiplos processadores Sequência de execução e desvio Interrupções ● Programas têm suas instruções executadas pelos processador de forma sequencial. ● Até que algum evento externo cause um desvio na sequência de execução. ● Eventos externos são princ. gerados por dispositivos de hardware. ● Eventos internos são chamados de exceções. ● Os dados são guardados em registradores para a retomada a interrupção. ● Rotina de tratamento de interrupção. ● Otimiza a comunicação dos dispositivos com a CPU Interrupção sequencial Interrupção em cascata Concorrência ● É possibilitada para utilização de interrupções ● Vários programas são carregados na memória a espera da sua utilização do processador ● Otimização do tempo do processador ● O controle do acesso concorrente a diversos recursos é implementado por mecanismos de proteção do SO para garantir a integridade Diferença entre SO e demais programas ● Programas são executados sequencialmente – Tem início, meio e fim. – São passíveis de interrupções ● Funciona com base em rotinas que servem: – Os usuários – Os programas – E as demais rotinas do SO ● A esse conjunto de rotinas damos o nome de kernel Modos de acesso ● Servem para proteger o acesso ao kernel – Evitando a execução de instruções indevidas ● Modo usuário ● O usuário e as aplicações não têm permissão para executar instruções privilegiadas. ● Modo Kernel ● O usuário e as aplicações podem executar instruções privilegiadas. System Calls ● São chamadas às rotinas do kernel ● Mecanismos de acesso aos serviços oferecidos pelo kernel – Por parte dos usuários ou aplicações – Mudança do modo usuário para modo kernel ● Serve como intermediário entre as aplicações do usuário e o SO – garantindo a segurança do sistema ● O serviço é processado com bases nos parâmetros definidos na System Call – e retorna à aplicação os resultados obtidos. Linguagem de comando / Shell ● Linguagem de controle – Maneira mais simples do usuário se comunicar com o SO – Ações: ● Criar, ler, organizar e deletar arquivos ● Criar, consultar e deletar diretórios ● Atualizar e instalar aplicativos ● Interpretador de comandos – Verifica, interpreta e executa Esquema de kernel monolítico Esquema do kernel micro-núcleo Em camadas ● A camada mais baixa realiza a interface com o hardware ● As camadas intermediárias proveem níveis mais altos de abstração e gerência ● A camada superior faz a interface entre núcleo e aplicações Em camadas ● (+) Estrutura bem organizada ● (+) Baseada no modelo de referência OSI (Open Systems Interconnection) ● (-) O empilhamento aumenta o tempo de comunicação entre camadas e dispositivos periféricos ou recursos. ● (-) Dificuldade de dividir as funcionalidades devido as suas interligações Em camadas ● A camada mais baixa realiza a interface com o hardware ● As camadas intermediárias proveem níveis mais altos de abstração e gerência ● A camada superior faz a interface entre núcleo e aplicações Em camadas ● (+) Estrutura bem organizada ● (+) Baseada no modelo de referência OSI (Open Systems Interconnection) ● (-) O empilhamento aumenta o tempo de comunicação entre camadas e dispositivos periféricos ou recursos. ● (-) Dificuldade de dividir as funcionalidades devido as suas interligações Núcleo do Linux ● Linus Torvalds – Estudante de Ciência da Computação da Univ. de Helsinki – Finlândia ● Colaboração de vários programadores voluntários via Usenet em 1991 (21 anos) ● Baseado em Minix – Desenvolvido pelo prof. Andrew S. Tanenbaum baseado em UNIX, http://www.cs.vu.nl/~ast/, Amsterdã ● GPLv2, marca registrada, Tux ● Debate Tanenbaum – Torvalds – 1992, micro x mono, portabilidade, segurança Programas x Processos ● Programa é algo estático – São formados por sequências de comandos e instruções – Não têm a possibilidade de alterar o seu estado. ● Processo é um programa em execução – Executam os comandos dos programas – São dinâmicos: processos podem sofrer alterações Classificação de processos ● Interativos (Foreground) ● Batch (Backgound) ● Daemons ● Processo CPU-Bound ● Processo I/O-Bound Diagrama de mudança de estado Estrutura do processo Contexto de hardware Contexto de software 1. Quotas 2. Privilégios 3. Identificação Processos x Threads ● Processos gerenciam/agrupam recursos associados: – área de endereçamento – dados e recursos, como arquivos abertos, processos filhos, sinais, variáveis globais, etc. ● São mais independentes entre si ● Há muita competição – Podem pertencer a usuários diferentes ● Threads são responsáveis pela execução. ● Compartilham todos os recursos dos processo. ● Não há proteção entre threads – Há cooperação e não competição. ● Otimização e paralelismo entre as tarefas Exercício em equipes Processos x Threads ● O uso de processos em programas concorrentes gera otimização de tempo de uso de CPU porque podemos alterná-los em processamento e separá-los das atividades de E/S. – Uma vez, que esta otimização já é proposta pelos processos, qual são as vantagens do uso de threads em relação ao uso de processos? Comunicação entre processos ● Necessário para que haja “cooperação” entre os processos concorrentes ● Situações: 1. Um processo deve passar informações para outro 2. Evitar atividades críticas nas quais um processo invade o outro 3. Sequência adequada em caso de dependência • Casos 2 e 3 também se aplicam aos threads Mecanismos de comunicação ● No caso de processos em memória compartilhada: – Uso de variável compartilhada na memória principal – Uso de arquivo compartilhado ● No caso de não haver memória compartilhada: – Uso de mensagens Sincronização ● Necessário devido ao uso de compartilhamento de memória, E/S pelos processos e arquivos – Pode acarretar em inconsistências – Servem para ordenar a execução dos processos ● Condições de corrida/disputa ● Região crítica Soluções para sincronização ● Resolvem o problema da exclusão mútua ao acesso à região crítica ● Garantem as condições de não-disputa – Por software – Por hardware – Semáforos – Monitores – Troca de mensagens Mecanismos para evitar condição de corrida ● Exclusão mútua com espera ociosa / ativa ● Exclusão mútua sem espera ociosa – Dormir e acordar 1. Exclusão Mútua com espera ociosa 1. Desabilitando interrupções 1. Sincronismo por hardware 2. Técnica que deve ser usada apenas pelo SO e não por P de usuários 2. Varáveis de impedimento (lock variables) 1. Sincronismo por software 3. Alternância obrigatória 1. Spin lock 4. Solução de Peterson 5. Instrução TSL ● Nesses 5 casos, quando um processo estiver em sua RC, nenhum outro processo invadirá a RC do primeiro. Problemas da espera ociosa ● Starvation ● Prioridade invertida 2. Dormir e acordar ● Invés de entrar em loop infinito, há o bloqueio do processo que aguarda para entrar na RC● Um processo nessa condição chama sleep para dormir ● Até que outro processo chame – wakeup (processo a ser acordado) ● Uso de semáforos ● Problema da consumidor-produdor Sincronização condicional utilizando semáforos ● Além de permitir a implementação de exclusão mútua, os semáforos também podem ser utilizados para sincronização condicional entre processos, – em que um processo precisa de um resultados de outro processo para que possa continuar sua execução. – Ex: problema do produtor-consumidor Condições para o Deadlock ● Para que exista o deadlock é necessário que ocorram 4 condições simultaneamente: – 1. Exclusão mútua ● Acesso exclusivo a um recurso – 2. Espera por recursos ● Hardware ou informação; entre máquinas ● Só pode ser usado por um P em um instante Condições para o Deadlock ● 3. Não preempção – Recurso q não pode ser retirado do P proprietário sem que haja falha – Ex: gravação de um CD – Preemptivo ● Ex: memória ● 4. Espera circular – Cada P espera um recurso que está com o outro P também em espera Slide 1 Slide 2 Slide 3 Slide 4 Slide 5 Slide 6 Slide 7 Slide 8 Slide 9 Slide 10 Slide 11 Slide 12 Slide 13 Slide 14 Slide 15 Slide 16 Slide 17 Slide 18 Slide 19 Slide 20 Slide 21 Slide 22 Slide 23 Slide 24 Slide 25 Slide 26 Slide 27 Slide 28 Slide 29 Slide 30 Slide 31 Slide 32 Slide 33 Slide 34 Slide 35 Slide 36 Slide 37 Slide 38 Slide 39 Slide 40 Slide 41 Slide 42 Slide 43
Compartilhar