sistemas operacionais introdução à disciplina · controle de processo industrial, aviação,...
TRANSCRIPT
SISTEMAS OPERACIONAISIntrodução à disciplina
“Se você tem uma maçã e eu tenho outra; e nós trocamos as maçãs,então cada um terá sua maçã. Mas se você tem uma ideia e eu tenhooutra, e nós as trocamos; então cada um terá duas ideias.”
George Bernard Shaw
Profº: Joseph DonaldContatos:[email protected]
OBJETIVOS DA DISCIPLINA
• Conhecer os principais conceitos e funções dos Sistemas Operacionais;
• Gerência de Processos;
• Gerência de Processador;
• Gerência de Memória;
• Gerência de Arquivos;
• Gerência de Entrada / Saída;
Sistemas OperacionaisProfº: Joseph Donald
OBJETIVOS DA AULA
• Entender a visão de um Sistema Computacional;
• Compreender a importância dos Sistemas Operacionais:• Conceitos;• Interação com o Hardware;
• Assimilar os conceitos básicos sobre Sistemas Operacionais, como:• Interpretador de comandos;• Chamadas ao Sistema (System Calls);• Multiprocessamento.
• Conhecer o histórico dos Sistemas Operacionais:• 1ª, 2ª, 3ª, 4ª e 5ª gerações;
Sistemas OperacionaisProfº: Joseph Donald
SISTEMA COMPUTACIONAL
• Antes de definir um Sistema Operacional, vamos compreender oque é um Sistema Computacional:
✓Um ou mais processadores;
✓Memória principal;
✓Discos, Impressoras, teclados, monitor, mouse e etc;
✓Usuários.
Os softwares precisam utilizar todos esses recursos.
Sistemas OperacionaisProfº: Joseph Donald
Sistemas OperacionaisProfº: Joseph Donald
DEFINIÇÃO DO SISTEMA OPERACIONAL
Tanembaum (2016), afirma que os Sistemas Operacionais são difíceisde se definir com precisão, mas afirma possuem duas funçõesessencialmente não relacionadas:
• Fornecer a programadores de aplicativos um conjunto de recursosabstratos limpo em vez de recursos confusos de hardware;(Máquina estendida)
• Gerenciar esses recursos de hardware. (Gerenciador de recursos).
A IMPORTÂNCIA DO SISTEMA OPERACIONAL
Segundo Tanenbaum (2016): O Sistema Operacional tem como função fornecer aos programas(softwares) do usuário um modelo de computador melhor, mais simples e mais limpo, assim comolidar com o gerenciamento de todos os recursos disponíveis.
Sem o sistema operacional:
• O usuário deveria conhecer os detalhes do hardware;
• Cada hardware possui suas peculiaridades;
• A complexidade ao se realizar uma tarefa induziria a erros;
• Se tornaria uma tarefa árdua manipular um computador ou dispositivo;
• Dificuldade de intercomunicação entre os dispositivos.
Sistemas OperacionaisProfº: Joseph Donald
A IMPORTÂNCIA DO SISTEMA OPERACIONAL
Com o sistema operacional:
• Maior racionalidade;• Mais dedicação aos problemas de alto nível;• Portabilidade dos softwares entre diferentes tipos de hardware;
USUÁRIO
APLICAÇÃO
ROTINAS DE E/S
HARDWARE
USUÁRIO APLICAÇÃO
SISTEMA OPERACIONAL
HARDWARE
SEM S.O. COM S.O.
• Possibilidade de intercomunicação entre os dispositivos;
• Abstração do conceito de baixo nível ao usuário.
Sistemas OperacionaisProfº: Joseph Donald
Sistemas OperacionaisProfº: Joseph Donald
MODOS DE OPERAÇÃO DO S.O.
Tanembaum, 2016 (pág. 1)
• A maioria dos computadores tem dois modos deoperação: modo núcleo e modo usuário.
• O sistema operacional opera em modo núcleo
(também conhecido como modo supervisor).
• Os outros softwares operam em modo usuárioonde somente um subconjunto de instruções damáquina está disponível;
Sistemas OperacionaisProfº: Joseph Donald
HARDWARE
• Provê os recursos computacionais básicos;
• Composto por: Dispositivos de Entrada e Saída, CPU e Memória.
MODOS DE OPERAÇÃO DO S.O.
Sistemas OperacionaisProfº: Joseph Donald
SISTEMA OPERACIONAL
• Modo núcleo;
• Controla o uso do hardware entre várias aplicações do usuário.
MODOS DE OPERAÇÃO DO S.O.
Sistemas OperacionaisProfº: Joseph Donald
PROGRAMA DE INTERFACE COM O USUÁRIO
• Definem a forma como os recursos do S.O. são utilizados;
• Para solucionar problemas computacionais dos usuários.
MODOS DE OPERAÇÃO DO S.O.
Sistemas OperacionaisProfº: Joseph Donald
SOFTWARES (Programas)
• Interpretam e executam sequências de instruções;
• Pode ser executado de qualquer dispositivo capaz de interpretar e executar suas instruções.
MODOS DE OPERAÇÃO DO S.O.
Sistemas OperacionaisProfº: Joseph Donald
ORGANIZAÇÃO TÍPICA
Núcleo (kernel)Responsável pela gerência do processador, tratamento de interrupções, comunicação e sincronização entre processos.
Gerente de MemóriaResponsável pelo controle e alocação de memória aos processos ativos.
Sistema de E/SResponsável pelo controle e execução de operações de E/S e otimização do uso dos periféricos.
Sistema de ArquivosResponsável pelo acesso e integridade dos dados residentes na memória secundária.
Processador de Comandos (shell) / Interface com o UsuárioResponsável pela interface conversacional com o usuário.
Sistemas OperacionaisProfº: Joseph Donald
Sistemas Operacionais de Grande Porte
a. Sistemas de Lotes (Batch): Processa
tarefas rotineiras sem qualquer
usuário interativo presente;
b. Processamento de transações: Lidam
com grandes número de pequeno
pedidos;
c. Tempo Compartilhado (Time
Sharing): Permitem que múltiplos
usuários remotos executem tarefas no
computador ao mesmo tempo;
TIPOS DE SISTEMAS OPERACIONAIS
Sistemas OperacionaisProfº: Joseph Donald
Sistemas Operacionais de Servidores
- Servem a múltiplos usuários ao menos
tempo por meio de uma rede e
permitem que os usuários
compartilhem recurso de hardware ou
software.
- Servidores WEB;
- Servidores de Domínio;
- Proxy;
- Provedores de acesso;
TIPOS DE SISTEMAS OPERACIONAIS
Sistemas OperacionaisProfº: Joseph Donald
Sistemas Operacionais de
Multiprocessadores
- Também conhecidos como
computadores paralelos,
multicomputadores ou
multiprocessadores;
- Sistemas Operacionais especiais;
- Clusters;
TIPOS DE SISTEMAS OPERACIONAIS
Sistemas OperacionaisProfº: Joseph Donald
Sistemas Operacionais de computadores pessoais
- Computadores modernos;
- Suporte a multiprogramação;
- Proporcionar um bom apoio a um único usuário;
- Amplamente usados para processamento de textos, planilhas, acesso à Web e games.
TIPOS DE SISTEMAS OPERACIONAIS
Sistemas OperacionaisProfº: Joseph Donald
Sistemas Operacionais de computadores portáteis
- Tablets, Smartphones e etc...
- CPU multinúcleos, GPS, Câmeras, acelerômetro entre outros;
- Facilitou a disseminação dos “apps”;
- Google e Apple.
TIPOS DE SISTEMAS OPERACIONAIS
Sistemas OperacionaisProfº: Joseph Donald
Sistemas Operacionais embarcados
- Executados em computadores que controlam
dispositivos que não costumam ser vistos como
computadores e não aceitam softwares
instalados pelo usuário.
- A principal distinção é a certeza de que nenhum
software não confiável vá ser executado nele um
dia.
- Embedded Linux, QNX e VxWorks são os mais
utilizados.
TIPOS DE SISTEMAS OPERACIONAIS
Sistemas OperacionaisProfº: Joseph Donald
Sistemas Operacionais de nós sensores (sensor-node)
- Os sensores são computadores pequenos
movidos a bateria com rádios integrados;
- Podem ser usados para proteger prédios,
detectar incêndios, medir temperaturas,
monitoramento de veículos e etc;
- TinyOS e Arduino.
TIPOS DE SISTEMAS OPERACIONAIS
Sistemas OperacionaisProfº: Joseph Donald
Sistemas operacionais de Tempo Real (Real Time)
- Caracterizados por ter o tempo como parâmetro-chave;
- Sistema de Tempo Real Crítico: É quando a ação tem que
ocorrer absolutamente em um determinado momento. Ex:
Controle de Processo industrial, aviação, monitor cardíaco,
semáforos e etc;
- Sistema de Tempo Real não-crítico: É aquele em que
perder um tempo ocasional, embora indesejável, é
aceitável e não causa danos permanentes. Ex: Sistemas de
multimídia, irrigação, monitoramento de veículos
TIPOS DE SISTEMAS OPERACIONAIS
Sistemas OperacionaisProfº: Joseph Donald
Sistemas operacionais de cartões inteligentes (Smartcards)
- São os menores sistemas operacionais;
- Dispositivo do tamanho de um cartão de crédito;
- Alguns recebem energia quando inseridos na leitora;
- Outros recebem energia por indução;
- Alguns são usados somente para uma função ou já
possuem múltiplas funções;
- Tecnologia NFC.
TIPOS DE SISTEMAS OPERACIONAIS
Sistemas OperacionaisProfº: Joseph Donald
1. Processos: É um programa em execução;
2. Espaços de endereçamento: Responsável por armazenar programas em execução;
3. Arquivos: Tem como objetivo esconder as peculiaridades dos discos e outros
dispositivos de E/S e apresentar ao programador (ou usuário) um modelo
agradável e claro de arquivos que sejam independentes dos dispositivos;
4. Entrada / Saída: Dispositivos físicos que têm a função de obter entrada e produzir
saídas;
5. Proteção: Gerenciar a segurança do sistema de maneira que os arquivos, por
exemplo, sejam acessíveis somente a usuários autorizados.
CONCEITOS E ABSTRAÇÕES
Sistemas OperacionaisProfº: Joseph Donald
Terminais de textoÉ o código que executa as chamadas de sistema (System Calls).
A interação com o Sistema Operacional pode acontecer através de softwares baseados em texto,normalmente conhecido como SHELL.
Por exemplo: date (Retorna a data atual)
Ex: bash, sh no Linux ou Prompt de Comando (D.O.S.) e PowerShell no Windows
INTERPRETADOR DE COMANDOS
Sistemas OperacionaisProfº: Joseph Donald
LINUX
INTERPRETADOR DE COMANDOS
Sistemas OperacionaisProfº: Joseph Donald
WINDOWS
INTERPRETADOR DE COMANDOS
Sistemas OperacionaisProfº: Joseph Donald
A interação com o Sistema Operacional pode acontecer através de softwares baseados em janelas,normalmente conhecido como GUI (Grafics User Interface).
Ex: GNOME, KDE no Linux ou Explorer no Windows.
LINUX WINDOWS
Interfaces gráficas
INTERPRETADOR DE COMANDOS
Sistemas OperacionaisProfº: Joseph Donald
• Os Softwares interagem com o Sistema Operacionalatravés das Chamadas ao Sistema, também conhecidascomo System Calls.
• Elas permitem um controle mais eficiente sobre asoperações do sistema.
Segundo Silberschatz (2015): “As chamadas de sistemapodem ser agrupadas, grosso modo, em seis categoriasprincipais: Controle de processos, manipulação dearquivos, manipulação de dispositivos, manutenção deinformações, comunicações e proteção”
CHAMADAS DE SISTEMA (System Calls)
Sistemas OperacionaisProfº: Joseph Donald
Sistemas OperacionaisProfº: Joseph Donald
• Monoprocessado✓ São sistemas criados com o intuito de
executar instruções através de um únicoprocessador.
MULTIPROCESSAMENTO
• Multiprocessado:✓ Projetados para uso em Servidores, Data Centers,
Mainframes, Cloud Computing, ou seja, equipamentosque geralmente possuem mais de um processador.
Sistemas OperacionaisProfº: Joseph Donald
• Monoprogramação / Monotarefas (SERIAL):✓ Recursos alocados a um único programa;✓ Executa uma tarefa por vez;✓ Exige que um trabalho seja salvo e fechado para que seja aberto
um novo projeto;✓ Não-preemptivo – Nenhum evento pode ocasionar a perda do
uso do processador
• Multiprogramação / Multitarefas (CONCORRENTE):✓ Recursos dinamicamente associados entre uma coleção de
programas em diferentes estágios;✓ Os processos podem ser executados simultaneamente /
concorrentemente.✓ Preemptivo – Tempo dividido em fatias, onde se obedece uma
ordem de prioridade entre os processos;
MULTIPROGRAMAÇÃO
Sistemas OperacionaisProfº: Joseph Donald
• Monousuário✓ Acesso de um usuário por vez;
MULTIUSUÁRIOS
• Multiusuário:✓ Acesso simultâneo de vários usuários;✓ Simultaneidade física e/ou virtual;
Sistemas OperacionaisProfº: Joseph Donald
Sistemas Monolíticos
✓ O Sistema Operacional é executado em um único programa em modo núcleo;✓ É escrito como uma coleção de rotinas ligadas a um único grande programa binário;✓ Milhares de procedimento podem dificultar a compreensão sobre o sistema
operacional;✓ Uma rotina que falhar pode derrubar todo o sistema;✓ Compila todas as rotinas de forma individual e junta todas em um único arquivo
ligador (linker);
• Estrutura Básica:1. Um programa principal que invoca a rotina de serviço requisitada;2. Um conjunto de rotinas de serviço que executam as chamadas de sistema (System
Calls);3. Um conjunto de rotinas utilitárias que ajudam as rotinas de serviço.
ESTRUTURA DOS SISTEMAS OPERACIONAIS
Sistemas OperacionaisProfº: Joseph DonaldESTRUTURA DOS SISTEMAS OPERACIONAIS
Um modelo de estruturação simples para um sistema monolítico.
Sistemas OperacionaisProfº: Joseph Donald
Sistemas de Camadas
✓ Divide o Sistema Operacional em sistemas sobrepostos. Cada módulo oferece umconjunto de funções que pode ser usado por outros módulos;
✓ O intenção da estruturação em camadas é o isolamento do sistema operacional,facilitando sua alteração e depuração, além de criar uma hierarquia de níveis de modos,protegendo as camadas mais internas.
✓ O empilhamento de várias camadas de software faz com que cada pedido de umaaplicação demore mais tempo para chegar até o dispositivo periférico ou recurso a seracessado, prejudicando o desempenho do sistema;
✓ Não é óbvio dividir as funcionalidades de um núcleo de sistema operacional em camadashorizontais, de abstração crescente, pois essas funcionalidades são inter-dependentes,embora tratem muitas vezes de recursos distintos.
ESTRUTURA DOS SISTEMAS OPERACIONAIS
Sistemas OperacionaisProfº: Joseph Donald
Sistemas de Camadas
O sistema THE era um sistema de lote simples para um computador holândes, o Electrologica X8.
• Camada 0 – lidava com alocação do processador , realizando o chaveamento de processosquando ocorriam interrupções ou quando os temporizadores expiravam. Em outras palavras,a camada 0 (zero) fornecia a multiprogramação básica da CPU;
• Camada 1 – realizava o gerenciamento da memória. Ela alocava espaço para os processos damemória principal e em um tambor (Antigo meio magnético de armazenamento de dados)utilizado para armazenar partes do processo (páginas) para os quais não havia lugar namemória principal;
• Camada 2 – encarregava-se da comunicação entre cada processo e o console do operador.• Camada 3 – gerenciava dispositivos de entrada e saída e armazenava temporariamente fluxos
de informação que transitavam entre os dispositivos;• Camada 4 – onde os programas de usuários eram encontrados. Eles não tinham de se
preocupar com o gerenciamento de processo, memória, console ou E/S;• Camada 5 – onde se encontra o processo operador do sistema.
ESTRUTURA DOS SISTEMAS OPERACIONAIS
Sistemas OperacionaisProfº: Joseph DonaldESTRUTURA DOS SISTEMAS OPERACIONAIS
Sistemas OperacionaisProfº: Joseph Donald
Micronúcleos (microkernel)
✓ Mínimo possível de código no modo núcleo, pois erros de código podem derrubar osistema instantaneamente;
✓ Processos de usuário podem ser configurados para ter menos poder, de maneira que umerro possa não ser fatal;
✓ A ideia é atingir a alta confiabilidade através da divisão do sistema operacional emmódulos pequenos e bem definidos, onde apenas o micronúcleo é executado em modonúcleo e os demais em modo usuário;
✓ Muito utilizados em Sistemas de Tempo Real , como: industriais, aviônica, militares e etc;
ESTRUTURA DOS SISTEMAS OPERACIONAIS
Sistemas OperacionaisProfº: Joseph DonaldESTRUTURA DOS SISTEMAS OPERACIONAIS
Estrutura simplificada do sistema MINIX.
Sistemas OperacionaisProfº: Joseph Donald
Modelo cliente-servidor
✓ Uma ligeira variação da ideia do micronúcleo é distinguir duas classes deprocessos, os servidores, que prestam algum serviço, e os clientes, queusam esses serviços;
✓ Frequentemente a camada inferior é o micronúcleo, mas nãoobrigatoriamente. A essência é haver a presença de processos clientes eservidores;
✓ A comunicação entres clientes e servidores se dá geralmente por troca demensagens;
✓ O modelo cliente-servidor é uma abstração que pode ser usada para umaúnica máquina ou para uma rede de máquinas.
ESTRUTURA DOS SISTEMAS OPERACIONAIS
Sistemas OperacionaisProfº: Joseph Donald
Máquinas virtuais
✓ Máquinas virtuais não são máquinas estendidas com arquivos e outrascaracterísticas convenientes;
✓ São cópias exatas do hardware, inclusive com modos núcleo/usuário, E/S,interrupções e tudo o que uma máquina real tem;
✓ A VM pode executar qualquer SO capaz de ser executado diretamente sobre o hardware.
✓ Diferentes VMs podem executar diferentes SOs.
ESTRUTURA DOS SISTEMAS OPERACIONAIS
Sistemas OperacionaisProfº: Joseph DonaldESTRUTURA DOS SISTEMAS OPERACIONAIS
Sistemas OperacionaisProfº: Joseph Donald
Exonúcleos
✓ Ao invés de clonar a máquina real ele a divide ela e dá a cada usuário umsubconjunto de recursos;
✓ Sua tarefa é alocar recursos às máquinas virtuais e então conferirtentativas de usá-las para assegurar-se de que nenhuma máquina estejatentando usar os recursos de outra pessoa;
✓ Separa a multiprogramação do código do sistema operacional do usuário,mas com menos sobrecarga.
ESTRUTURA DOS SISTEMAS OPERACIONAIS
Sistemas OperacionaisProfº: Joseph Donald
• A PRIMEIRA GERAÇÃO (1945 – 1955) : Válvulas
✓ ENIAC, MARK I, COLOSSUS, Z3;
✓ Computadores a válvulas e relés;
✓ Possuía por volta de 20.000 válvulas;
✓ Ausência de um Sistema Operacional;
✓ Não possuía Linguagem de Programação;
✓ Alto consumo energético, por volta de 200 kilowatts;
História dos Sistemas Operacionais
Sistemas OperacionaisProfº: Joseph Donald
• A SEGUNDA GERAÇÃO (1955 – 1965) : Transistores
✓ Invenção e uso dos transistores;
✓ Uso da linguagem Assembly e FORTRAN;
✓ Sistema Operacional em lote (batch);
✓ Cartões perfurados;
✓ Esquentavam menos;
História dos Sistemas Operacionais
Sistemas OperacionaisProfº: Joseph Donald
• A TERCEIRA GERAÇÃO (1965 – 1980) : CIs emultiprogramação
✓ Circuitos Integrados;
✓ Multiprogramação;
✓ Time-sharing;
✓ System / 360 (IBM);
✓ Teoricamente programas escritos em uma
máquina poderiam operar em todas as outras;
História dos Sistemas Operacionais
Intel 4004
Sistemas OperacionaisProfº: Joseph Donald
• A QUARTA GERAÇÃO (1980 – presente)
✓ Circuitos Integrados em Larga Escala (LSI – Large Scale Integration)
✓ Sistemas Operacionais para microcomputadores – DOS e Windows;
✓ Difusão da Internet;
História dos Sistemas Operacionais
Sistemas OperacionaisProfº: Joseph Donald
• A QUINTA GERAÇÃO (1990 – hoje)
✓ Expansão da Internet;
✓ S.O. com suporte ao protocolo TCP/IP;
✓ Arquitetura Cliente / Servidor;
✓ Sistemas de tempo-real (Real Time Operating System);
✓ Computação Ubíqua (Everywhere);
✓ Internet das Coisas (IoT);
✓ Robótica.
História dos Sistemas Operacionais
Dúvidas?Sistemas OperacionaisProfº: Joseph Donald