• Nenhum resultado encontrado

01 Sistemas operacionais - Conceitos Básicos v3

N/A
N/A
Protected

Academic year: 2021

Share "01 Sistemas operacionais - Conceitos Básicos v3"

Copied!
54
0
0

Texto

(1)

CONCEITOS BÁSICOS

SISTEMAS OPERACIONAIS

Prof. Filippo Valiante Filho http://prof.valiante.info

(2)

?

O QUE É E PARA QUE SERVE UM

SISTEMA OPERACIONAL?

(3)

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

(4)
(5)

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

(6)

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

(7)

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 recursos

(8)

OBJETIVOS 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)

(9)

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.

(10)

O QUE É UM SISTEMA OPERACIONAL?

Sistemas operacionais transformam o feio em belo, como mostrado na figura:

Interface bela

Interface feia

(11)

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 software

(12)

INTRODUÇÃ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

(13)

SISTEMA OPERACIONAL:

INTERFACE ENTRE USUÁRIO/COMPUTADOR

Hardware Sistema Operacional Utilitários Aplicativos Projetista de sistema operacional Programador Usuário final

(14)

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

(15)

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...

(16)
(17)

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)

(18)

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

(19)

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.

(20)

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

(21)

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.

(22)

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ça

(23)

DÉ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.

(24)

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.

(25)

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.

(26)

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.

(27)

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.

(28)

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.

(29)

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.

(30)

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.

(31)

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...

(32)

?

E PARA A PRÓXIMA DÉCADA?

2020 EM DIANTE?

(33)
(34)

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 real

(35)

SISTEMAS 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

(36)

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 monitor

(37)

SISTEMA 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 executado

CPU 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

(38)

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 disco

(39)

SISTEMAS 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ários

(40)

SISTEMAS 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 computador

(41)

SISTEMAS 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)

Preemptivo

(42)
(43)

SISTEMAS MULTIUSUÁRIO E MULTITAREFA

Usuário 1 Usuário 2 Usuário 3 Usuário n

. . .

Compilador Editor de texto Browser Jogo Sistema operacional Hardware

(44)

SISTEMAS PARALELOS (MÚLTIPLOS PROCESSADORES)

(45)

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ômicos

(46)

SISTEMAS 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:

(47)

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.

(48)

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 carga

(49)

SISTEMAS 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

(50)

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;

(51)

Disponível em:

(52)

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.”

(53)

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.

(54)

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

Referências

Documentos relacionados

Segundo Trigueiro (1999), o nordestino convive com esse mal crônico há pelo menos três séculos, e o autor trás a seca como fragilizadora da estrutura social e econômica

Caracterização de Eventos Meteorológicos associados a Movimentos Gravitacionais de Massa no Município de Guarujá – Estado de São Paulo. Anais,

Planilhas de Verificação Gráfico de Pareto Diagrama Causa e Efeito Estratificação Histograma Diagrama de Dispersão Cartas de Controle Identificação do Problema Análise

Neste trabalho estarei desenvolvendo um estudo sobre Equações Diferenciais Or- dinárias Lineares de 2 a Ordem, apresentando a teoria, métodos para resolução destas.. equações

Atualmente, o tema “funções” é trabalhado em sala de aula de forma paralela pelo professor de Matemática, na 1ª série do Ensino Médio, e pelo professor de Física ao

No que se trata das TICs na escola em questão, podemos perceber através da participação dos entrevistados que essa ferramenta de ensino ainda é precária, não está sendo

Em Economia Industrial, tem-se o chamado Modelo Estrutura-Conduta-Desempenho (ECD) que estabelece uma relação direta entre a estrutura, a conduta e o desempenho das

Esta orientação para o som como fundamento e horizonte poderia dis- tanciar Taborn do património histórico do piano, seja o do jazz como o mais lato que definiu a metalinguagem do