Baixe o app para aproveitar ainda mais
Prévia do material em texto
Visão Geral: Estruturas do Sistema Operacional Sistemas Operacionais I Prof. Rainer Rodrigo de Castro Rodrigues E-mail: rainercastro25@gmail.com Centro Profissionalizante Dom Aristides Pirovano Introdução Primeiros computadores Programação complexa Exigia grande conhecimento do hardware e de linguagem de máquina Solução: Sistemas Operacionais Encapsulamento das interfaces de Hw Interação se tornou mais fácil, confiável e eficiente. Aplicações Define o modo que o recursos do sistema serão utilizados para resolver os problemas computacionais dos usuários Compiladores, B.D., jogos, programas comerciais. Usuários Utilizadores do sistema computacional Pessoas, maquinas, outros computadores. Componentes de um Computador Componentes de um Computador Hardware Recursos básicos de computação Três subsistemas básicos: Unidade Central de Processamento; Memória principal; Dispositivos de entrada e saída. Componentes de um Computador Sistemas Operacionais 6 USUÁRIOS SISTEMA OPERACIONAL HARDWARE Introdução □ Representação da área de atuação do SO em um sistema computacional. Introdução □ Representação da área de atuação do SO em um sistema computacional. Introdução □ Representação da área de atuação do SO em um sistema computacional. Definições O que é um S istema Operacional? Quais os objetivos de um Sistema Operacional? A maioria de usuários de computador têm alguma experiência com sistemas operacionais, mas é difícil definir precisamente o que é um sistema operacional. Parte do problema decorre do fato do sistema operacional realizar duas funções básicas que, dependendo do ponto de vista abordado, uma se destaca sobre a outra. Estas funções são descritas a seguir. O que é um Sistema Operacional? O Sistema Operacional como uma Máquina Virtual O Sistema Operacional como um Gerenciador de Recursos O que é um Sistema Operacional? Programa especial que atua de forma intermediaria entre um usuário e os componentes de um computador. Quais os objetivos de um SO? Possibilitar o uso eficiente e controlado dos diversos componentes de hardware do computador. Implementar políticas e estruturas de software de modo a assegurar um melhor desempenho do sistema de computação como um todo. Definições Objetivos do Sistema Operacional Disponibilizar os recursos do sistema de forma simples e transparente. Gerenciar de forma eficiente a utilização dos recursos. Garantir a integridade e a segurança dos dados armazenados e processados no sistema, além dos seus recursos físicos. Proporcionar uma interface adequada para os usuários utilizarem os recursos do sistema. Existem responsabilidades? Transparência Simplificação Gerência Compartilhamento Otimização Encapsulamento Esconder Detalhes Definições □ Segundo Francis Machado e Luiz Paulo Maia “ O Sistema Operacional tem por objetivo funcionar como uma interface entre o usuário e o computador, tornando sua utilização mais simples, rápida e segura”. Definições □ Segundo Andrew S Tanenbaum “ O Sistema Operacional realizam basicamente duas funções não relacionadas: fornecer aos programadores de aplicativos (e aos programas aplicativos naturalmente) um conjunto de recursos abstratos claros em vez de recursos confusos de Hardware e gerenciar esses recursos de Hardware”. □ Segundo Silberschatz, Galvin e Gagne “... é um programa que atua como intermediário entre o usuário e o hardware de um computador.” “... deve propiciar um ambiente no qual o usuário possa executar programas de forma conveniente e eficiente”. Definições S is tem as Operac ion ais Características desejadas Concorrência Existência de várias atividades ocorrendo paralelamente. Ex: execução simultânea de “jobs”, E/S paralela ao processamento. Compartilhamento Uso coordenado e compartilhado de recursos de Hardware e Software. Motivação: custo de equipamentos, reutilização de programas,redução de redundâncias, etc. Armazenamento de dados Capacidade de armazenamento a longo prazo. Não determinismo Atendimento de eventos que podem ocorrer de forma imprevisível. Eficiência Baixo tempo de resposta, pouca ociosidade da CPU e alta taxa de processamento. Confiabilidade Pouca incidência de falhas e exatidão dos dados computados. Características desejadas Mantenabilidade Facilidade de correção ou incorporação de novas características. Pequena dimensão Simplicidade e baixa ocupação da memória. Características desejadas S is tem as Operac ion ais Núcleo Responsável pela gerência do processador, tratamento de interrupções, comunicação e sincronização entre processos. Gerenciador de Memória Responsável pelo controle e alocação de memória aos processos ativos. Gerenciador de E/S Responsável pelo controle e execução de operações de E/S e otimização do uso dos periféricos. Responsável pela interface conversacional com o usuário. Organização Sistema de Arquivos Responsável pelo acesso e integridade dos dados residentes na memória secundária. Processador de Comandos / Interface com o Usuário Responsável pela interface conversacional com o usuário. Organização TIPOS DE SISTEMAS OPERACIONAIS Os tipos e sua evolução estão intimamente relacionados com a evolução do HW e das aplicações por ele suportadas. A evolução dos S.O. para PCs e WS popularizou vários conceitos e técnicas, antes só conhecidos em ambientes de grande porte. Tipos de Sistemas Operacionais Sistemas Monoprogramáveis / Monotarefa Sistemas Multiprogramáveis / Multitarefa Sistemas com Múltiplos Processadores TIPOS DE SISTEMAS OPERACIONAIS SISTEMAS MONOPROGRAMÁVEIS / MONOTAREFA Execução de um único programa (job); Qualquer outro programa, para ser executado, deveria aguardar o término do programa corrente; Tipicamente relacionado ao surgimento dos mainframes; UCP Memória Dispositivos de E/S Programa / Tarefa SISTEMAS MONOPROGRAMÁVEIS / MONOTAREFA Sistemas Operacionais 28 SISTEMAS MULTIPROGRAMÁVEIS / MULTITAREFA Mais complexos e mais eficientes; Vários programas dividem os mesmos recursos; Aumento da produtividade dos seus usuários e a redução de custos; UCP Memória Dispositivos de E/S Programa / Tarefa SISTEMAS MULTIPROGRAMÁVEIS / MULTITAREFA Programa / Tarefa Programa / Tarefa Programa / Tarefa Sistemas Multiprogramáveis / Multitarefa Sistemas Batch Sistemas de Tempo Compartilhado Sistemas de Tempo Real CLASSIFICAÇÃO SISTEMAS COM MÚLTIPLOS PROCESSADORES Caracterizam por possui duas ou mais UCPs interligadas, trabalhando em conjunto; O fator chave neste tipo de S.O. é a forma de comunicação entre as UCPs e o grau de compartilhamento da memória e dos dispositivos de I/O; Sistemas Fortemente Acoplado Existem dois ou mais processadores compartilhando uma única memória e controlados por apenas um único SO. Sistemas Simétricos todos os processadores tem a mesma função, podendo executar o SO independentemente Sistemas Assimétricos processador primário, responsável pelo controle dos demais processadores (secundários) e pela execução do SO. Sistemas Fracamente Acoplado Dois ou mais sistemas de computação interligados, sendo que cada sistema possui o seu próprio SO. Sistemas Operacionais de Rede Cada nó possui seu próprio HW, SW e SO. Independente um do outro. Sistemas Operacionais Distribuídos Para o usuário e suas aplicações, é como se não existisse uma rede de computadores, mas sim um único sistema centralizado. ESTRUTURA DO SO Formado por um conjunto de rotinas (procedimentos) que oferecem serviços aos usuários do sistema e suas aplicações, bem como a outras rotinas do próprio sistema. Esse conjunto de rotinas é chamado núcleo do sistema ou kernel (cérebro). KERNEL Tratamento de interrupções; criação e eliminação de processos; sincronização e comunicação entre processos; escalonamento e controle dos processos; gerência de memória;gerência do sistema de arquivos; operações de entrada e saída contabilização e segurança do sistema. SYSTEM CALLS Mecanismo de proteção ao núcleo do sistema e de acesso aos seus serviços. O usuário (ou aplicação), quando deseja solicitar algum serviço do sistema, realiza uma chamada a uma de suas rotinas (ou serviços) através da system calls (chamadas ao sistema). SYSTEM CALL Aplicação System Call Núcleo H a r d w a r e GRUPOS DE FUNÇÕES Gerência de Processos criação e eliminação de processos; alteração das características do processo; sincronização e comunicação entre processos; Gerência de Memória Alocação e desalocação de memória; Gerência de I/O Operações de I/O; Manipulação de arquivos e diretórios. Sistemas Operacionais 39 MODOS DE ACESSO Existem certas instruções que não podem ser colocadas diretamente à disposição das aplicações, pois a sua utilização indevida ocasionaria sérios problemas à integridade do sistema. As instruções que têm o poder de comprometer o sistema são conhecidas como instruções privilegiadas (modo kernel), enquanto as instruções não-privilegiadas são as que não oferecem perigo ao sistema. Registrador da UCP, que indica o modo de acesso corrente. CHAMADA A UMA ROTINA DO SISTEMA Memória principal Programa Usuário A Programa Usuário B Rotina do Sistema System Call Programas dos usuários executam no modo usuário SO executa no modo Kernell S is tem as Operac ion ais E volu ção H is tórica Dividido em 5 fases: Fase Inicial ( Fase 0) Computadores são uma ciência experimental e exótica: Não precisa de sistema operacional 1ª FASE Altos Preços Computadores são caros; pessoas são baratas 2ª FASE Produtividade - Custo/Beneficio Computadores são rápidos; pessoas são lentas; ambos são caros. Dividido em 5 fases: 3ª FASE Produtividade - Custo/Beneficio Computadores são baratos; pessoas são caras. Dar um computador para cada pessoa. 4ª FASE Popularização Computadores Pessoais (PCs) em todo o planeta. E volu ção H is tórica Fase Inicial ( Fase 0) Computadores são uma ciência experimental e exótica: Não precisa de sistema operacional Programação através de "plugs“ Usuário presente todo o tempo e toda atividade é sequencial: Conjuntos de cartões manualmente carregados para executar os programas Primeiras bibliotecas, utilizadas por todos O usuário é programador e operador da máquina ao mesmo tempo Problema: muita espera! Usuário tem que esperar pela máquina ... Máquina tem que esperar pelo usuário ... Todos têm que esperar pela leitora de cartões ! Evolução Histórica A Primeira Geração (1945-1955): Válvulas e Plugs 1ª FASE Altos Preços Computadores são caros; pessoas são baratas: S.O surge com o objetivo básico de automatizar a preparação, carga e execução de programas. S.O Torna utilização do computador mais eficiente, desacoplando as atividades das pessoas das atividades do computador Mais tarde: otimização do uso dos recursos de hardware pelos programas S.O funciona como um monitor batch, continuamente carregando um job, executando e continuando com o próximo job. Se o programa falhasse, o S.O salvava uma cópia do conteúdo de memória para o programador depurar. Evolução Histórica 2ª FASE Produtividade - Custo/Beneficio Computadores são rápidos; pessoas são lentas; ambos são caros. "Timesharing" interativo: permitir que vários usuários utilizem a mesma máquina simultaneamente Um terminal para cada usuário Manter os dados "on-line": utilização de sistemas de arquivos estruturados □ Problema: □ Como prover tempo de resposta razoável? Evolução Histórica A Segunda Geração (1955-1965): Transistores e Processamento em Batch A maioria dos computadores de 2 a geração foram utilizados para cálculos científicos e de engenharia. Estes sistemas eram largamente programados em FORTRAN e ASSEMBLY. Sistemas operacionais típicos 2 eram o FMS (Fortran Monitor Systems) e o IBSYS (IBM‘s Operating Systems). □ Um s istema em lotes (batch) antigo: (a) Os programadores levam os cartões para o 1401. O 1401 grava os lotes de tarefas nas fitas. O operador leva a fita de entrada para o 7094. 7094 executa o processamento. O operador leva a fita de saída para o 1401. 1401 imprime as saídas (b) (c) (d) (e) (f) 3ª FASE Produtividade - Custo/Beneficio Computadores são baratos; pessoas são caras. Dar um computador para cada pessoa. Workstation pessoal (SUN - Stanford University Network, Xerox Alto) Apple II IBM PC MacIntosh Evolução Histórica A Terceira Geração (1965-1980): Circuitos Integrados e Multiprogramação 4ª FASE Popularização Computadores Pessoais (PCs) em todo planeta □ Redes possibilitam aparecimento de novas aplicações importantes Problemas: As pessoas ainda continuam esperando por computadores Virus, worms, hackers... Evolução Histórica A Quarta Geração (1980-): Computadores Pessoais e Estações de Trabalho A quarta geração de computadores teve início em 1971, quando a Intel lançou o primeiro microprocessador, o Intel 4004, muito mais potente que os circuitos SSI e MSI de até então, e só terminou em 1981 com o lançamento dos circuitos ULSI (Circuitos de Escala Ultra Grande). O período da quarta geração foi 1971-1980. Os computadores de quarta geração utilizadas de forma Very Large Scale Integrated (VLSI) circuitos. Circuitos VLSI ter cerca de 5.000 transistores e de outros elementos de circuito e os seus associados os circuitos em um único chip, é possível que os microcomputadores de quarta geração. Quarta geração os computadores tornaram-se mais potente e compacto, confiável e acessível. Como um resultado, que deu origem ao personal computer (PC) revolução. Quinta Geração (1991 — dias atuais) Os computadores da quinta geração usam processadores com milhões de transistores. Nesta geração surgiram as arquiteturas de 64 bits, os processadores que utilizam tecnologias RISC e CISC, discos rígidos com capacidade superior a 600GB, pen-drives com mais de 1GB de memória e utilização de disco ótico com mais de 50GB de armazenamento. A quinta geração está sendo marcada pela inteligência artificial e por sua conectividade. A inteligência artificial pode ser verificada em jogos e robores ao conseguir desafiar a inteligência humana. A conectividade é cada vez mais um requisito das indústrias de computadores. Hoje em dia, queremos que nossos computadores se conectem ao celular, a televisão e a muitos outros dispositivos como geladeira e câmeras de segurança. Evolução Histórica Exemplos de Sistemas Operacionais MS-DOS (MicroSoft Disk Operating Systems) Windows 1.01 Windows 2.03 Windows 3.0 Windows 3.1 Windows NT 3.1 (New Technology) Windows 95 Windows 98 Windows 2000 Windows XP (eXPerience) Windows Vista Windows 7 Linux - Distribuições Mac OS e Mac OS X Mac OS - 1984 Mac OS X - 2001 Mac OS Snow - 2010 Sistemas Operacionais S is t em as Operac ion ais Computação de Alto Desempenho Video Sobre Demanda (VoD) Redes P2P Computação Heterogenea Cloud Computing GRID COMPUTING Tolerancia a Falhas Algoritmos Distribuidos Sistemas Computacionais GPU A arquitetura da maioria dos computadores no nível da linguagem de máquina é primitiva e difícil de programar, especialmente para operações de entrada e saída. É preferível para um programador trabalhar com abstrações de mais alto nível onde detalhes de implementação das abstrações não são visíveis. No caso de discos, por exemplo, uma abstração típica é que estes armazenam uma coleção de arquivos identificados por nomes simbólicos. O programa que esconde os detalhes de implementação das abstrações é o sistema operacional. A abstração apresentada ao usuário pelo sistema operacionalé simples e mais fácil de usar que o hardware original. Nesta visão, a função do sistema operacional é apresentada ao usuário como uma máquina estendida ou máquina virtual que é mais fácil de programar que o hardware que a suporta. O Sistema Operacional como uma Máquina Virtual O Sistema Operacional como um Gerenciador de Recursos Um computador moderno é composto de vários subsistemas tais como processadores, memórias, discos, terminais, fitas magnéticas, interfaces de rede, impressoras, e outros dispositivos de E/S. Neste ponto de vista, o sistema operacional tem a função de gerenciar de forma adequada estes recursos de sorte que as tarefas impostas pelos usuários sejam atendidas da forma mais rápida e confiável possível. Um exemplo típico é o compartilhamento da unidade central de processamento (CPU) entre as várias tarefas (programas) em sistemas multiprogramados. O sistema operacional é o responsável pela distribuição de forma otimizada da CPU entre as tarefas em execução.
Compartilhar