Baixe o app para aproveitar ainda mais
Esta é uma pré-visualização de arquivo. Entre para ver o arquivo original
Clique para editar o estilo do título mestre Clique para editar o estilo do subtítulo mestre * * * Sistemas Operacionais * * * Plano de Curso Conceitos Iniciais Processos Gerencia de Memória Sistemas de Arquivos Gerencia de E/S Deadlocks S.O Modernos * * * Conceitos Iniciais Computador Hardware Processador Memória Principal Dispositivos de Entrada/Saída Software Programas de Aplicação Programas do Sistema * * * Sistema Operacional * * * Sistema Operacional * * * Visões sobre o S.O Como máquina Estendida (“Top-down view”) Arquitetura Básica Máquina extremamente primitiva Difícil programação Dificuldade para acesso aos dispositivos de entrada/saída Máquina Virtual Mais simples de ser operável Mais amigável * * * Máquina virtual: serviços Execução de programas carregamento do programa em memória arquivos e dispositivos de E/S devem ser iniciados outros recursos devem ser preparados SO gerencia estas ações para o usuário * * * Máquina virtual: serviços Acesso a dispositivos de E/S cada dispositivo tem seu próprio conjunto de instruções ou sinais de controle SO esconde estas ações e usuário só executa leituras e escritas * * * Máquina virtual: serviços Acesso controlado a arquivos usuário não se preocupa coma natureza do dispositivo de E/S (disco, fita, ...) usuário não se preocupa com formato do arquivo no dispositivo mecanismos de proteção em caso de múltiplos usuários * * * Máquina virtual: serviços Acesso ao sistema SO controla acesso ao sistema como um todo e a recursos específicos em particular i.e., proteção contra acesso não autorizado i.e., resolução de conflitos em caso de disputa * * * Máquina virtual: serviços Detecção e correção de erros erros de h/w: memória, dispositivos, ... erros de s/w: estouro aritmético, acesso proibido a certas posições de memória correção da situação com mínimo de impacto no sistema * * * Visões sobre o S.O Como gerenciador de Recursos (“Botton-up view”) Gerencia todas as partes do sistema Coordena a alocação controlada e ordenada dos recursos Implementa proteção * * * SO: gerenciador de recursos controlador de E/S controlador de E/S controlador de E/S (núcleo do) SO programas e dados processador processador ••• • • • Sistema computacional Dispositivos de E/S • • • memória * * * Primeira Geração (1945-1955) Máquina a válvula Enormes Mais lentas que os Pc´s atuais Anos 40: não possuíam Sistemas Operacionais Anos 50:Os programas em linguagem de máquina eram entrados em cartões perfurados. * * * Segunda Geração (1955-1965) Transistores e Sistemas em Lote O primeiro S.O. foi desenvolvido pela GM Laboratories no início da década de 50 para um IBM 701. Os sistemas operacionais da década de 50 eram do tipo lote (batch). Programas eram perfurados em cartões Cartões eram lidos e transcritos em fitas Operadores levavam fita para processamento Resultados eram escritos em fitas Fitas eram levadas para saída de relatórios * * * Terceira Geração (1965-1980) Circuitos Integrados e Multiprogramação Diferença no preço, tamanho e desempenho Todo software deveria rodar em qualquer máquina Os SOs da década de 60 também eram do tipo lote, mas passaram a utilizar melhor os recursos do computador rodando vários jobs de uma só vez * * * Terceira Geração (1965-1980) Não é possível escrever um S.O. que atenda bem a todas as necessidades concomitantemente Assim, o produto final foi: S.O. enorme (milhares de linhas) Complexo Envolvimento de milhares de programadores Milhares e milhares de erros Novas versões => novos erros * * * Terceira Geração (1965-1980) Grandes inovações foram introduzidas através das quais pode-se obter um paralelismo entre operações de E/S e a execução de instruções pela UCP interrupções e canais autônomos de E/S multiprogramação (vários jobs são mantidos na memória ao mesmo tempo) * * * Terceira Geração (1965-1980) * * * Terceira Geração (1965-1980) Década 70: Surgimento de sistemas operacionais de tempo compartilhado (time-sharing) motivado necessidade de se aumentar a produtividade do programador. Neste tipo de sistema, o tempo da UCP é chaveada entre os processos ativos na máquina dando-se a cada um fatias de tempo do processador até que eles sejam completados * * * Terceira Geração (1965-1980) Tempo compartilhado: Usuários possuem um terminar “on-line” Uso iterativo de computador + processamento em lote “time slice” Aparecimento dos Minicomputadores Início da série PDP PDP – 7 deu início ao UNICS => UNIX PDP 11/45 => UNIX reescrito em C * * * Quarta Geração (1980 – 1990...) Uso de microprocessadores (computadores pessoais) Softwares => amigáveis Dois sistemas operacionais que dominaram o mercado: MS-DOS (microsoft) Unix (Bell/AT&T) * * * Quarta Geração (1980 – 1990...) O protocolo de comunicações TCP/IP tornou-se largamente utilizado (Depto de Defesa dos EUA) e as LANs tornaram-se mais práticas e econômicas com o surgimento do padrão Ethernet desenvolvido pela Xerox. Década de 80: Desenvolvimento e popularização do modelo cliente/servidor * * * Quarta Geração (1980 – 1990...) Difusão das redes de computadores Internet Década de 90: Entramos na era da computação distribuída: um processo será dividido em subprocessos que executarão em sistemas multiprocessados e em redes de computadores ou até mesmo em sistemas virtualmente paralelos * * * Quarta Geração (1980 – 1990...) Sistemas Operacionais Distribuídos Conjunto de módulos de, no mínimo, processador e memória interligados através de um subsistema de comunicação de topologia arbitrária. Descentralização do controle * * * Quarta Geração (1980 – 1990...) Um sistema operacional distribuído deve se apresentar aos usuários como um sistema operacional centralizado, mas que, na realidade, tem suas funções executadas por um conjunto de máquinas independentes. * * * Quarta Geração (1980 – 1990...) O ponto fundamental: conceito de transparência Assim, o usuário utiliza um conjunto de máquinas como se fosse uma única máquina centralizada. * * * Atualidades Sistemas Operacionais Orientados a Objetos Reuso Interface orientada a objetos JavaOS Sistemas operacionais (proprietários – tentativa de portabilidade) Sistemas Operacionais de Tempo Real Inferno (gerenciamento do tempo) RTLinux Gerenciamento de processos industriais (aviões, caldeiras) * * * Revisão de Arquitetura Funções básicas de um computador são: Processamento de dados Armazenamento de dados Movimentação de dados Controle * * * Estrutura: a UCP Computador ULA Unidade de controle Interconexão interna à UCP Registradores UCP E/S Memória Sistem. Com. UCP * * * Arquitetura * * * Ciclo de instrução Início Parada Busca nova instrução Executa Instrução Ciclo de busca Ciclo de execução * * * Ciclo de busca PC contém o endereço da próxima instrução Instrução é buscada e colocada no IR para ser interpretada PC é incrementado * * * Ciclo de execução UCP interpreta instrução e executa ação: UCP memória: transferência de dados UCP E/S: transferência de dados processamento de dados: operação lógica ou aritmética controle: alteração da seqüência de operação combinação dessas ações * * * Organização da UCP Funções da UCP: buscar instruções interpretar instruções buscar dados processar dados UCP precisa fazer armazenamento temporário: registradores * * * Registradores Espaço de trabalho temporário Quantidade e função varia entre processadores Uma das principais decisões de projeto Nível superior da hierarquia de memória Dispositivos de alta velocidade para armazenamento temporário de dados * * * Registradores Uso específico e de uso geral contador de instruções (CI) ou program counter (PC) registrador responsável pelo armazenamento do endereço da próxima instrução que a UCP deverá executar apontador de pilha (AP) ou stack pointer (SP) registrador que contém o endereço de memória do topo da pilha (estrutura de dados onde o sistema mantém informações sobre tarefas que estavam sendo processadas e tiveram de ser interrompidas por algum motivo) registrador de estado ou program status word (PSW) registrador responsável por armazenar informações sobre a execução do programa, como a ocorrência de overflow * * * Clock Circuito integrado que gera pulsos elétricos síncronos em um determinado intervalo de tempo (sinal de clock) Freqüência do clock quantidade de vezes que o sinal se repete em um segundo unidade de medida: Hertz (Hz) quanto maior a freqüência, mais instruções podem ser executadas pela UCP em um mesmo intervalo de tempo quanto maior a freqüência do clock, melhor o desempenho do processador? * * * Conceito de interrupção Mecanismo pelo qual outros módulos (e.g., E/S) interrompem processamento normal da UCP Tipos mais comuns de interrupção: programa (e.g., 0) temporização (e.g., escalonamento) E/S (e.g., fim de escrita em disco) falha de h/w (e.g., falta de energia) * * * Transferência de controle 1 2 i i+1 Programa do usuário M Tratador de interrupção * * * Tratador de interrupção Programa que determina a natureza da interrupção e que realiza o tratamento adequado Controle é transferido para este programa após salvamento de algumas informações Em geral, é parte do sistema operacional * * * Ciclo de interrupção Início Parada Busca nova instrução Executa instrução Verifica inter- rupção: processa interrupção Ciclo de busca Ciclo de execução Ciclo de interrupção Interrupções inibidas Interrupções permitidas * * * Tipos de SO * * * Sistemas Monoprogramáveis ou Monotarefa Permite que o processador, a memória e os periféricos permaneçam exclusivamente dedicados à execução de um único programa Desvantagens processador permanece ocioso durante operações de e/s memória é subutilizada periféricos não são utilizados de forma integral Vantagem implementação simples * * * Sistemas Multiprogramáveis / Multitarefa Existem vários programas dividindo os diversos recursos do sistema Gerencia o acesso concorrente aos seus diversos recursos de forma ordenada e protegida, entre os diversos programas vantagens • aumento da produtividade • redução de custos desvantagem • implementação complexa * * * Multiprogramação Permite que o processador execute outro programa enquanto um espera por E/S * * * Multiprogramação Necessidade de hardware extra, como: E/S por interrupção ou DMA gerenciamento de memória Necessidade de software extra, como: escalonamento de processos proteção de arquivos sincronização entre processos * * * Multiprogramação * * * Sistema Batch Sistemas Batch (lote) os programas (jobs) são executados seqüencialmente e não exigem interação com os usuários, lendo e gravando dados em discos ou fitas Vantagem podem ser eficientes, quando bem projetados Desvantagem podem oferecer tempos de resposta longos * * * Time-sharing Permitem interação dos usuários com o sistema terminais que incluem vídeo, teclado e mouse, também conhecidos como sistemas on-line Sistema operacional aloca uma fatia de tempo (time-slice) para cada usuário O processador, a memória e os periféricos são compartilhados Vantagens aumento da produtividade e redução de custos Desvantagem: implementação complexa * * * Tempo Real Os tempos de resposta devem estar dentro de limites rígidos,que devem ser obedecidos, caso contrário poderão ocorrer danos irreparáveis Não existe o conceito de fatia de tempo Um programa detém o processador o tempo que for necessário ou até que apareça outro com maior prioridade * * * Múltiplos Processadores * * * Estrutura dos Sistemas Operacionais Sistemas Operacionais Monolíticos Não há estrutura Coleção de procedimentos com chamadas livres a quaisquer outros procedimentos Procedimento: interface bem definida * * * Estrutura dos Sistemas Operacionais Modelo Estrutural Simples (melhorando os sistemas monolíticos) * * * Estrutura dos Sistemas Operacionais Estrutura em Camadas (generaliza o modelo anterior) Primeiro sistema a usar esse conceito: “THE” (E. W. Dijkstra – 1968) possuindo seis camadas: 5 operador 4 programas dos usuários 3 entrada/saída 2 comunicação entre processo/operador 1 gerenciamento de memória e tambor 0 alocação de processadores e multiprogramação * * * Estrutura dos Sistemas Operacionais Modelo cliente servidor Sistemas Operacionais Modernos Núcleo mínimo Maior parte do Sistema Operacional => implementado como processos de usuários * * * Estrutura dos Sistemas Operacionais Evolução do Modelo Cliente Servidor * * * Organização de Sistemas Operacionais Processos Gerenciamento de Memória Entrada/Saída Sistema de Arquivos * * * Processos * * * Processos Conceito fundamental em Sistemas Operacionais Processo programa em execução incluindo os valores do contador de programa, registradores e variáveis Processo seqüencial processo * * * Processos UCP virtualmente cada proc. sua UCP. Na realidade UCP chaveia de um processo para o outro Paralelismo Computadores modernos desempenham inúmeras tarefas concorrentemente Pseudo-paralelismo simulação da concorrência em uma única UCP (ex. multiprogramação) * * * O Modelo de Processos Software processos seqüenciais Cada proc. UCP (conceitualmente) Execução de um processo depende do estado da máquina e dos demais processos em andamento Condições são de difícil reprodução * * * * * * O Modelo de Processos Processos não devem ser construídos com condições de temporização pré-estabelecidas Ex: Fita magnética Processo E/S Aciona a fita Espera num “loop” até a fita entrar na velocidade correta Lê 1º registro * * * O Modelo de Processos Problema: UCP chaveia para o outro processo durante o “loop”. Quando processo lê, o 1º registro, já passou. * * * Programa x Processo Ex. cientista mestre-cuca – Bolo de aniversário 2 processos concorrentes Confecção do bolo Socorro ao filho * * * Programa x processo Conclusão: processo é uma atividade de algum tipo, tendo um programa, entradas, saídas e um estado Chaveamento entre processos: depende de um algoritmo de escalonamento (scheduling algorithm) * * * Modelo de Processo– bloco de controle do processo (Process Control Block - PCB) Mantém todas as informações sobre o processo Processos são gerenciados pelo SO por system calls Processo pode ser dividido em três elementos básicos: • contexto de hardware • contexto de software • espaço de endereçamento * * * Chamada ao Sistema Os 11 passos ao fazer a chamada ao sistema read(fd, buffer, nbytes) * * * Chamadas ao Sistema * * * Contexto Hardware Contexto de hardware registradores: program counter (PC), stack pointer (SP) e bits de estado Troca de Contexto * * * Contexto Software Especifica características do processo que vão influir na execução de um programa Cada processo criado pelo sistema recebe uma identificação única (PID - process identification), representada por um número O processo também possui a identificação do usuário ou processo que o criou (owner) Cada usuário possui uma identificação única (UID - user identification) Apenas os objetos com a mesma UID do usuário (processo) podem ser acessados * * * Criação/Destruição de Processos S.O. simples: todos os processos são criados com a inicialização do sistema (system start-up) S.O. modernos: mecanismos para criação e destruição dinâmica de processos Ex. FORK (chamada ao sistema) cria uma cópia idêntica (filho) do processo que está chamando (pai) * * * Criação/Destruição de Processos Outros: chamadas ao sistema para criar/ carregar/ disparar, etc Processos precisam criar processos * * * O Conceito de Estado de um Processo Processo: entidade independente mas necessita interagir com outros processos, ex. saída para outro processo Ex. Processo 1 - ordenar (v1, v2, n1, n2, v, n) Processo 2 – maior (v, n) Ordenar (v1, v2, n1, n2, v, n) & maior(v, n) Dependendo das velocidades relativas dos 2 processos, maior poderá / deverá ficar bloqueado, esperando o outro. * * * Estados de um Processo * * * Estados de um Processo Executando: usando o processador Bloqueado: Não pode continuar porque depende de algum dado ou evento externo Pronto: Pode executar mas foi suspenso temporariamente pela UCP para permitir outro processo E as transições de estados? 1, 2, 3 e 4 * * * Estados de um Processo * * * Estados de um Processo (1) Processo descobre que não pode continuar; (pode ser automático ou por execução de uma chamada ao sistema – Block) (2) Escalonador (scheduler) de processo decide que o processo em execução DEVE parar – passa a vez * * * Estados de um Processo (3) Processo é escolhido pelo escalonador para executar (novamente) (4) O evento/ dado externo ocorreu * * * Modelo S.O. Estruturado por Processos * * * Modelo S.O. Estruturado por Processos Implementação Modelo de processos requer uma tabela de processos (array de structures em C) Uma estrutura para cada processo Estado Contador de programa Ponteiro da pilha Alocação de memória Arquivos, etc * * * Hierarquia de Processos * * * Threads Uso de subprocessos tempo para alocar recursos (e desalocar recursos) possuem espaços de endereçamento independentes e protegidos Conceito de thread (linha) compartilham o processador da mesma maneira que um processo possui seu próprio conjunto de registradores compartilham o mesmo espaço de endereçamento do processo * * * Thread * * * Thread * * * Thread * * * Thread * * * Thread * * * Thread * * * Bibliografia Capitulo1, Sistemas Operacionais Modernos, A. Tanenbaun Capítulo 1, Computer Organization and Architecture, W. Stallings Capítulo 2, Operating Systems: Internals and Design Principles, W. Stallings
Compartilhar