CONCEITOS BÁSICOS
SISTEMAS OPERACIONAIS
Prof. Filippo Valiante Filho http://prof.valiante.info
?
O QUE É E PARA QUE SERVE UM
SISTEMA OPERACIONAL?
Referências
Machado, Francis Berenger e Maia, Luiz Paulo. Arquitetura de Sistemas Operacionais - 5ª edição. LTC Editora. 2013.
Tanenbaum, Andrew S. e Bos, Herbert. Sistemas Operacionais Modernos - 4ª edição. Pearson Education. 2016.
Deitel, H.M.; Deitel, P.J. e Choffnes D.R. Sistemas Operacionais - 3ª edição. Pearson Education. 2005.
Oliveira, Rômulo Silva de; Carissimi, Alexandre da Silva e Toscani, Simão Sirineo. Sistemas Operacionais 3ª edição Série Livros Didáticos do Instituto de Informática da UFRGS -Volume 11. Editora Bookman – 2008
Esta apresentação é basicamente uma compilação
/ adaptação dos slides dos livros indicados para proporcionar uma visão básica sobre os sistemas
INTRODUÇÃO E FUNÇÕES BÁSICAS
•
Um Sistema Operacional é apenas um conjunto de rotinas executado pelo
processador, de forma semelhante aos programas dos usuários. Sua principal
função é controlar o funcionamento de um computador, gerenciando a
utilização e o compartilhamento dos seus diversos recursos, como
processadores, memórias e dispositivos de entrada e saída.
•
Suas funções podem ser resumidas em duas:
•
Facilidade de acesso aos recursos do sistema;•
Compartilhamento de recursos de forma organizada e protegida.Arquitetura de Sistemas Operacionais
Copyright © LTC – Livros Técnicos e Científicos Editora Ltda. Reprodução proibida www.grupogen.com.br | http://gen-io.grupogen.com.br
INTRODUÇÃO E FUNÇÕES BÁSICAS
Arquitetura de Sistemas Operacionais
Copyright © LTC – Livros Técnicos e Científicos Editora Ltda. Reprodução proibida www.grupogen.com.br | http://gen-io.grupogen.com.br
SISTEMA OPERACIONAL: CONCEITO
•
Sistema operacional
•
Um programa que controla a execução de programas aplicativos•
Interface entre aplicativos e o hardware•
Duas formas de ver um sistema operacional:
•
Alocador de recursosOBJETIVOS DO SISTEMA OPERACIONAL
•
Tornar mais conveniente a utilização de um computador
•
“Esconder” detalhes internos de funcionamento•
Tornar mais eficiente a utilização de um computador
•
Gerenciamento “justo” dos recursos do sistema•
Facilitar a evolução do sistema (desenvolvimento, teste e atualização de
novas facilidades)
O QUE É UM SISTEMA OPERACIONAL?
•
Os sistemas operacionais realizam duas funções:
•
fornecer a programadores de aplicativos (e programas aplicativos, claro)
um conjunto de recursos abstratos limpo em vez de recursos confusos de
hardware,
•
gerenciar esses recursos de hardware.
•
A função do sistema operacional é fornecer aos programas do usuário um
modelo do computador melhor, mais simples e mais limpo, assim como lidar
com o gerenciamento de todos os recursos mencionados.
O QUE É UM SISTEMA OPERACIONAL?
•
Sistemas operacionais transformam o feio em belo, como mostrado na figura:
Interface bela
Interface feia
O QUE É UM SISTEMA OPERACIONAL?
•
O sistema operacional separa as aplicações do hardware por elas acessado
•
(camada de software)•
e gerencia o software e o hardware para gerar os resultados desejados.•
O sistema operacional é, primordialmente, um gerenciador de recursos
•
Hardware • Processadores • Memória • Dispositivos de entrada/saída • Dispositivos de comunicação•
Aplicações de softwareINTRODUÇÃO
•
O que se espera de um sistema de computação?
•
Execução de programas de usuários;•
Permitir a solução de problemas.•
Sistema operacional é
um programa colocado entre o hardware do
computador e os programas dos usuários de forma a atingir esses dois
objetivos.
Hardware
Sistema Operacional Programas
SISTEMA OPERACIONAL:
INTERFACE ENTRE USUÁRIO/COMPUTADOR
Hardware Sistema Operacional Utilitários Aplicativos Projetista de sistema operacional Programador Usuário final
SERVIÇOS OFERECIDOS PELO SISTEMA OPERACIONAL
•
Criação de programas
•
Editores, depuradores, compiladores•
Execução dos programas
•
Carga de programas em memória•
Acesso a dispositivos de E/S
•
Controle de acesso a arquivos
•
Acesso a recursos de sistema
SERVIÇOS OFERECIDOS PELO SISTEMA OPERACIONAL
•
Contabilidade• Estatísticas
• Monitoração de desempenho
• Sinalizar upgrades necessários hardware (memória, disco, etc)
• Tarifação de usuários
•
Detecção de erros• Erros de hardware
• e.g.: erros de memória, falha em dispositivos de E/S, etc... • Erros de programação
• e.g.: overflow, acesso não autorizado a posições de memória, etc...
HISTÓRICO DE SISTEMAS OPERACIONAIS
•
Primórdios:
•
Sistema operacional inexistente•
Usuário é o programador e o operador da máquina•
Alocação do recurso “computador” feito por planilha•
Evolução foi motivada por:
•
Melhor utilização de recursos•
Avanços tecnológicos (novos tipos de hardware)HISTÓRIA DOS SISTEMAS (COMPUTACIONAIS E)
OPERACIONAIS
•
A primeira geração (1945-1955): válvulas
•
A segunda geração (1955-1965): transistores e sistemas em lote (batch)
•
A terceira geração (1965-1980): circuitos integrados e multiprogramação
•
A quarta geração (1980-presente): computadores pessoais
O COMEÇO DA HISTÓRIA: DÉCADAS DE 1940 E 1950
•
Década de 1940
•
Os primeiros computadores não dispunham de sistemas operacionais.•
Década de 1950
•
Executavam um job (serviço) por vez.•
Dispunham de tecnologias que facilitavam a transição de um job para outro.•
Eram chamados de sistemas de processamento em lote de fluxo único.DÉCADA DE 1960
•
Década de 1960
•
Permanecem como sistemas de processamento em lote.•
Processam vários jobs simultaneamente.•
Multiprogramação•
Um job podia usar o processador enquanto outros utilizavam os dispositivos periféricos.•
Desenvolveram-se sistemas operacionais avançados para atender a diversos usuários interativos.•
1964
DÉCADA DE 1960
•
Sistemas de tempo compartilhado
•
Esses sistemas foram desenvolvidos para apoiar usuários interativos simultâneos.•
O tempo de retorno foi reduzido a minutos ou segundos.• Tempo entre a submissão de um job e o retorno de seus resultados.
•
Sistemas de tempo real• Fornecem respostas dentro de um prazo determinado.
•
O tempo e os métodos de desenvolvimento foram aperfeiçoados.• O MIT usou o sistema CTSS para desenvolver seu próprio sucessor, o Multics.
•
TSS, Multics e CP/CMS, todos incorporavam memória virtual.DÉCADA DE 1970
•
Os sistemas de tempo compartilhado eram primordialmente multimodais.
•
Suportavam processamento em lote, tempo compartilhado e aplicações de tempo real.•
A computação pessoal estava apenas em seu estágio inicial.•
Foi favorecida por desenvolvimentos anteriores da tecnologia de multiprocessadores.•
O Departamento de Defesa desenvolveu o TCP/IP
•
Protocolo de comunicação-padrão•
Esse protocolo passou a ser amplamente usado em ambientes militares e universitários.•
Problemas de segurançaDÉCADA DE 1980
•
Década de 1980
•
Década dos computadores pessoais e das estações de trabalho.•
A computação era distribuída aos locais em que era necessária.•
Interfaces gráficas com o usuário (GUI)•
Era relativamente fácil aprender a usar um computador pessoal.•
A transferência de informações entre computadores interconectados em rede tornou-se mais econômica e prática.DÉCADA DE 1980
•
O modelo de computação cliente/servidor se disseminou.
•
Os clientes são os computadores que solicitam serviços variados.•
Os servidores são os computadores que executam os serviços solicitados.•
O campo da engenharia de software continuou a evoluir.
•
Recebeu grande impulso do governo dos Estados Unidos, que visava controlar de modo mais rígido os projetos de software do Departamento de Defesa.•
Uma das metas era a reutilização de códigos•
Maior grau de abstração nos idiomas de programação.DÉCADA DE 1990
•
O desempenho do hardware melhorou exponencialmente.
•
Capacidade de processamento e armazenamento barata.•
Execução de programas grandes e complexos em computadores pessoais.•
Máquinas econômicas para serviços extensivos de banco de dados e processamento.•
Rara necessidade de computadores de grande porte.•
A computação distribuída ganhou ímpeto.DÉCADA DE 1990
•
O suporte a sistemas operacionais para tarefas de rede tornaram-se
padrão.
•
Aumento da produtividades e comunicação.•
A Microsoft Corporation tornou-se dominante:
•
Sistemas operacionais Windows•
Empregava vários conceitos usados nos primeiros sistemas operacionais Macintosh.•
Permitia que os usuários executassem várias aplicações concorrentes com facilidade.•
A tecnologia de objeto tornou-se popular em várias áreas da computação.
•
Diversas aplicações foram desenvolvidas em linguagens de programação orientadas a objetos como C++ ou Java, p. ex.DÉCADA DE 1990
•
A maioria dos softwares comerciais era vendida como código-objeto.
•
O código-fonte não é incluído.•
Isso permite que os fabricantes ocultem informações e técnicas de programação patenteadas.•
Os softwares gratuitos e de fonte aberto tornaram-se muito comuns na década de
1990.
•
O software de fonte aberto era distribuído com o código-fonte.• Isso permite que os indivíduos examinem e modifiquem o software.
• O sistema operacional Linux e o servidor Web Apache são ambos software de fonte aberto.
•
Richard Stallman lançou o projeto GNU.
•
Recria e amplia as ferramentas do sistema operacional UNIX da AT&T.DÉCADA DE 1990
•
Open Source Initiative (OSI)
•
Fundada para promover os benefícios da programação de código-fonte aberto.•
Facilita o aperfeiçoamento de produtos de software.•
Permite que qualquer pessoa teste, depure e aperfeiçoe aplicações.•
Aumenta a chance de descobrir e corrigir problemas imperceptíveis.•
Fundamental para erros de segurança que precisam ser corrigidos rapidamente.•
Indivíduos e corporações podem modificar a fonte e•
criar softwares personalizados que atendam às necessidades de um determinado ambiente.DÉCADA DE 1990
•
Os sistemas operacionais tornavam-se cada vez mais acessíveis ao usuário.
•
As capacidades GUI criadas pela Apple passaram a ser amplamente usadas e aperfeiçoadas.•
As capacidades do tipo plug-and-play (ligar-e-usar) foram embutidas nos sistemas operacionais.•
Isso habilita os usuários a adicionar e remover componentes de software dinamicamente sem ter de reconfigurar manualmente o sistema operacional.2000 EM DIANTE
•
Middleware
•
Liga duas aplicações diferentes.•
Em geral em uma rede e entre máquinas incompatíveis.•
Particularmente importante para serviços Web.•
Simplifica a comunicação entre plataformas diferentes.•
Serviços Web
•
Compreendem um conjunto de padrões relacionados.•
São peças de software prontas para uso na Internet.2010 EM DIANTE
•
Novas formas de interação com o usuário;
•
Sistemas para dispositivos móveis;
•
Novos dispositivos;
•
Maiores preocupações com autonomia / consumo de energia;
•
Universalidade (?) do acesso à Internet
•
Consolidação da nuvem;
•
Internet das Coisas (IoT);
•
Aplicações “independentes” do SO (apps universais) #sqn...
?
E PARA A PRÓXIMA DÉCADA?
2020 EM DIANTE?
O ZOOLÓGICO DOS SISTEMAS OPERACIONAIS
(CLASSIFICAÇÃO PELA APLICAÇÃO)
•
Sistemas operacionais de computadores de grande porte•
Sistemas operacionais de servidores•
Sistemas operacionais de multiprocessadores•
Sistemas operacionais de computadores pessoais•
Sistemas operacionais de computadores portáteis•
Sistemas operacionais embarcados•
Sistemas operacionais de nós sensores (senso r-node)•
Sistemas operacionais de tempo realSISTEMAS EM LOTE (BATCH)
•
Introdução de operadores profissionais
•
Usuário [programador] não era mais o operador da máquina•
Job
•
Programa a ser compilado e executado, acompanhado dos dados de execução (cartões perfurados)•
Jobs são organizados em lote (batch)• Necessidades semelhantes (e.g. mesmo compilador)
•
Passagem entre diferentes jobs continua
sendo manual
MONITOR RESIDENTE
•
Evolução:
•
Sequenciamento automático de jobs, transferindo o controle de um job a outro•
Primeiro sistema operacional (rudimentar)•
Monitor residente:
•
Programa que fica permanentemente em memória•
Execução inicial•
Controle é transferido para o job (cartões de controle)•
Quando o job termina, o controle retorna ao monitorSISTEMA BATCH MULTIPROGRAMADOS
(INÍCIO DA MULTITAREFA)
•
Monitor residente permite a execução de apenas um programa a cada vez
•
Desperdício de tempo de CPU com operações de E/S
•
Evolução:
•
Manter diversos programas na memória ao mesmo tempo•
Enquanto um programa realiza E/S, outro pode ser executadoCPU E/S Requisição E/S Término E/S Desperdício CPU tempo Requisição E/S Término E/S tempo Multiprogramação
MULTIPROGRAMAÇÃO
•
Manter mais de um programa em “execução” simultaneamente
•
Duas inovações de hardware possibilitaram o surgimento da
multiprogramação
•
Interrupções•
Sinalização de eventos•
Discos magnéticos•
Acesso randômico a diferentes jobs (programas) no discoSISTEMAS TIMESHARING
•
[Compartilhamento de tempo baseado em “revezamento”]
•
Tipo de multiprogramação
•
Usuários possuem um terminal
•
Interação com o programa em execução•
Há vários terminais•
Ilusão de possuir a máquina dedicada a execução de seu programa
•
Divisão do tempo de processamento entre usuáriosSISTEMAS MONOUSUÁRIO E MULTIUSUÁRIO
•
Sistemas monousuário
•
Projetados para serem usados por um único usuário•
e.g.: MS-DOS, Windows 3.x, Windows 9x, Millenium•
Sistemas multiusuário
•
Projetados para suportar várias sessões de usuários em um computadorSISTEMAS MONOTAREFA E MULTITAREFA
•
Sistemas monotarefa
•
Capazes de executar apenas uma tarefa de cada vez • e.g.: MS-DOS•
Sistemas multitarefas:
•
Capazes de executar várias tarefas simultaneamente•
Existem dois tipos de sistemas multitarefa:•
Não preemptivo (cooperativo)• e.g.: Windows 3.x, Windows9x (aplicativos 16 bits)
•
PreemptivoSISTEMAS MULTIUSUÁRIO E MULTITAREFA
Usuário 1 Usuário 2 Usuário 3 Usuário n. . .
Compilador Editor de texto Browser Jogo Sistema operacional HardwareSISTEMAS PARALELOS (MÚLTIPLOS PROCESSADORES)
SISTEMAS PARALELOS (MÚLTIPLOS PROCESSADORES)
SISTEMAS FORTEMENTE ACOPLADOS
•
Máquinas multiprocessadas possuem mais de um processador
•
Sistemas fortemente acoplados (tightly coupled system)
•
Processadores compartilham memória e relógio comuns•
Comunicação é realizada através da memória•
Vantagens:
•
Aumento de throughput (número de processos executados)•
Aspectos econômicosSISTEMAS PARALELOS (MÚLTIPLOS PROCESSADORES)
SISTEMAS FORTEMENTE ACOPLADOS
•
Symmetric multiprocessing (SMP)
•
Cada processador executa uma cópia idêntica do sistema operacional•
Vários processos podem ser executados em paralelo sem perda de desempenho para o sistema•
A maioria dos sistemas operacionais atuais suportam SMP através do conceito de multithreading•
Asymmetric multiprocessing
•
Cada processador executa uma tarefa específica:SISTEMAS DISTRIBUÍDOS
SISTEMAS FRACAMENTE ACOPLADOS
•
Distribuir a realização de uma tarefa entre vários computadores•
Sistema distribuído:• Conjunto de computadores autônomos interconectados de forma a possibilitar a execução de um serviço
• Existência de várias máquinas é transparente
• Software fornece uma visão única do sistema
• Palavra-chave: transparência
• « A distributed system is one in which the failure of a computer you didn’t even know existed can render your own computer unusable » Leslie Lamport.
SISTEMAS DISTRIBUÍDOS
SISTEMAS FRACAMENTE ACOPLADOS
•
Sistemas fracamente acoplados (loosely coupled system)
•
Máquinas independentes•
Cada máquina possui seu próprio sistema operacional•
Comunicação é feita através de troca de mensagens entre processos•
[MIDDLEWARE]•
Vantagens
•
Compartilhamento de recursos•
Balanceamento de cargaSISTEMAS OPERACIONAIS DE REDE X SISTEMAS
DISTRIBUÍDOS
•
Sistema operacional de rede
•
É executado em um único computador.•
Permite que seu processo acesse recursos em computadores remotos.•
[já foi um sistema específico, mas foi incorporado aos sistemas operacionais “gerais”]•
Sistema operacional distribuído
•
[MIDDLEWARE] Sistema operacional único.•
Gerencia recursos em mais de um sistema de computador.•
Dentre suas metas incluem-se:• Desempenho transparente
• Escalabilidade
• Tolerância a falhas
SISTEMAS DE TEMPO REAL
RTOS (REAL TIME OPERATING SYSTEM)
•
Empregado para o controle de tarefas que devem responder dentro de um certo intervalo de tempo• P.ex.: experimentos científicos, tratamento de imagens médicas, controle de processos, piloto automático de aeronaves, etc.
• Essas tarefas não podem esperar indefinidamente — e algumas vezes não podem sequer esperar.
•
Noção de tempo real é dependente da aplicação• Milissegundos, segundos, minutos, etc.
•
Dois tipos:• Hard real time;
• Tarefas críticas são completadas dentro de um intervalo de tempo. • Soft real time;
Disponível em:
PESQUISA EM SISTEMAS OPERACIONAIS
•
“Virtualmente todos os pesquisadores de sistemas operacionais sabem que os
sistemas operacionais atuais são enormes, inflexíveis, inconfiáveis, inseguros e
carregados de erros, uns mais que os outros (os nomes não são citados aqui
para proteger os culpados). Consequentemente, há muita pesquisa sobre
como construir sistemas operacionais melhores.”
NA PRÁTICA
•
Vamos nos familiarizar com alguns dos conceitos na
prática. Verifique as interfaces gráfica e de texto
do seu sistema operacional e alguns dos utilitários
que o acompanham.
Referências
Machado, Francis Berenger e Maia, Luiz Paulo. Arquitetura de Sistemas Operacionais - 5ª edição. LTC Editora. 2013.
Tanenbaum, Andrew S. e Bos, Herbert. Sistemas Operacionais Modernos - 4ª edição. Pearson Education. 2016.
Deitel, H.M.; Deitel, P.J. e Choffnes D.R. Sistemas Operacionais - 3ª edição. Pearson Education. 2005.
Oliveira, Rômulo Silva de; Carissimi, Alexandre da Silva e Toscani, Simão Sirineo. Sistemas Operacionais 3ª edição Série Livros Didáticos do Instituto de Informática da UFRGS -Volume 11. Editora Bookman – 2008