Introdução -...
-
Upload
trinhtuyen -
Category
Documents
-
view
215 -
download
0
Transcript of Introdução -...
Sistemas [email protected]
Introdução
● Computadores modernos são bastantecomplexos● Exemplo: um desktop ou notebook possui
processador(es), memórias, disco, teclado, mouse,placa de rede e diversos outros dispositivos
● Se cada programador tivesse que entender comotudo isso funciona, pouco ou quase nenhumsoftware seria produzido
● Gerenciar todos estes componentes e utilizá-los deforma otimizada é um trabalho muito difícil
Sistemas [email protected]
Introdução
● O sistema operacional é um software que tem,como uma de suas funções “esconder” estacomplexidade de programadores e programas● Dentre os SOs mais conhecidos estão aqueles para
computadores derivados da arquitetura “IBM-PC”– Windows, Linux, BSDs, Mac OS X, …– Vale lembrar que a janela gráfica ou terminal através do
qual interagimos, tecnicamente não faz parte do SO. Estas são simples aplicações, da mesma forma que umeditor de texto ou navegador web
Sistemas [email protected]
Introdução
● Numa visão simples dos principaiscomponentes de um computador vemos● Uma divisão entre hardware e software● Outras divisões no software, estando o SO no mais
baixo nível
Sistemas [email protected]
Introdução
● Uma das primeira diferenças entre o SO eaplicações é que elas executam em “modos”distintos● SO executa em modo “kernel”, com acesso
completo e direto a todo o hardware, memória einstruções implementadas pelo processador
● Aplicações executam em modo “user” sem acessodireto ao hardware ou memória, e com apenas umsubconjunto de instruções disponíveis
Sistemas [email protected]
Introdução
● Algumas aplicações podem estar mais“próximas” do SO que outras, por exemplo● O interpretador de comandos do SO Linux● O “Windows Explorer”, Finder (Mac OS X) etc
● Atualmente é mais difícil estabelecer um limiteclaro entre o SO e as aplicações● Não é raro se permitir a implementações de
funções que seriam do SO em aplicações
Sistemas [email protected]
Introdução
● Dependendo do tipo de uso o SO pode servisto como um grande criador de abstrações,ou gerenciador de recursos● Como criador de abstrações, sua principal função é
esconder detalhes técnicos de baixo nível ligado aofuncionamento do hardware– Um programador pode lidar diretamente com o conceito
de arquivos, e não com as (centenas de) instruções(diferentes) de cada chip controlador de disco rígido
– Ganha-se em facilidade, tempo, portabilidade etc
Sistemas [email protected]
Introdução
● Como gerenciador de recursos o SO gerencia ouso de processadores, memórias, discos,temporizadores e quaisquer outros dispositivos– Fornece uma alocação ordenada e controlada destes
diversos dispositivos entre os vários programas que“competem” por ele
● Também é função do SO liberar e redistribuirrecursos alocados a um determinado programa aotérmino de sua execução
– Realiza, quando possível, o compartilhamento destesrecursos
Sistemas [email protected]
Introdução
● História dos Sistemas Operacionais● Passaram por uma grande evolução, ligada
fortemente à arquitetura dos computadores sobreos quais são executados
O primeiro computador digital foi projetado por Charles Babbage (1792 – 1871) - Nunca chegou a ser construído, por limitações técnicas da época - Babbage percebeu que seria necessário um conceito rudimentar de software para esta máquina, e contratou para tanto uma jovem de nome Ada Lovelace - A linguagem de programação Ada, recebeu este nome como homenagem
Sistemas [email protected]
Introdução
● Primeira geração (1945 – 1955) – válvulas● Construção fortemente influenciada pela segunda
guerra mundial● Mais famoso foi o ENIAC
– Universidade da Pensilvânia● Mesmo grupo projetava, construía (e consertava),
operava (e consertava) o computador (quebrou :()● “Programação” conectando fios em painéis
– Não existia sequer a linguagem assembly, nem ossistemas operacionais
Sistemas [email protected]
Introdução
● Primeira geração (1945 – 1955) – válvulas● Usadas para problemas de cálculo numérico
– “O programador reservava a máquina, ia para sua sala,inseria seu painel de programação, e passava algumashoras rezando para que nenhuma das 17.468 válvulas,7.200 diodos, 1.500 relés, 70.000 resistores, 10.000capacitores e 5.000.000 de soldas manuais falhasse”
Sistemas [email protected]
Introdução
● Segunda geração (1955 – 1965) – transistorese sistemas de lote● Introdução do transistor muda muito o quadro
– Computadores passam a ser confiáveis a ponto deserem comercializados e utilizados para algum trabalhoútil antes que queimassem
– Surge a separação entre projetistas, fabricantes,programadores
– Surge a denominação mainframe
Sistemas [email protected]
Introdução
● Segunda geração (1955 – 1965) – transistorese sistemas de lote● Computadores executavam “JOBS”, descritos em
uma série de cartões perfurados– Carregados em um computador auxiliar dos cartões para
uma fita
Sistemas [email protected]
Introdução
● Segunda geração (1955 – 1965) – transistorese sistemas de lote● No mainframe havia um “programa especial” que
– Lia um job da fita; O executava; Escrevia seu resultadona fita de saída; Repetia o processo para o próximo job
– Quando uma sequencia de jobs acabava a fita de saídaera levada a outro computador de pequeno porte paraser impressa
Era comum a CPU ficarparada, por exemplo,nas operações de E/S
Sistemas [email protected]
Introdução
● Segunda geração (1955 – 1965) – transistorese sistemas de lote
Sistemas [email protected]
Introdução
● Terceira geração (1965 – 1980) – CIs emultiprogramação● IBM lança o System/360 → uma série de máquinas
de portes distintos com software compatível– Os sucessores destes sistemas estão no mercado até
hoje, com o nome de “IBM Z system” – Sistemas de reservas aéreas, bancos etc
● Introduziu o conceito de multiprogramação– Memória dividida em partes, com um “job” por partição
Sistemas [email protected]
Introdução
● Terceira geração (1965 – 1980) – CIs emultiprogramação● Enquanto um “job” esperava por E/S, outro poderia
usar a CPU– Com um número adequado de jobs podia se manter a
CPU ocupada 100% do tempo
Sistemas [email protected]
Introdução
● Terceira geração (1965 – 1980) – CIs emultiprogramação● Surgem os sistemas de timesharing
– Usuários se conectavam por meio de terminais– CPU era alocada dinamicamente aos usuários que
estivessem requisitando a CPU
Surge o projeto de implementar um SO de propósito geral,que poderia ser utilizado com qualquer finalidade: MULTICS
Dada a sua complexidade só foi possível implementar umaversão bastante simplificada, chamada até hoje de UNIX
Sistemas [email protected]
Introdução
● Quarta geração (1980 – …) - computadorespessoais● Evolução dos CIs cria os microprocessadores● Em 1974 a IBM lança o 8080, primeira CPU de 8
bits de propósito geral– BASIC, Sistema Operacional CP/M, ...
● No início dos anos 80 é lançado o IBM-PC– Processador 8086 / 8088– Sistema Operacional MS-DOS
Sistemas [email protected]
Introdução
● Quarta geração (1980 – …) - computadorespessoais● Interfaces gráficas (apesar de já existirem como
projeto de pesquisa desde os anos 60) são levadasaos computadores pessoais– Lisa (fracasso) e após Macintosh (sucesso)– Windows (primeiras versões eram apenas uma interface
gráfica para o MS-DOS)
Sistemas [email protected]
Introdução
● Quarta geração (1980 – …) - computadorespessoais
– Um estudante da Finlândia resolve criar uma versãogratuita do UNIX, para computadores pessoais → Linux
● X Window e dezenas de ambientes de janelas
– BSDs (pouco conhecidos e muito importantes)
Sistemas [email protected]
Introdução
● Classes de sistemas operacionais● SOs para computadores de grande porte
– Estão no topo da hierarquia dos SOs– Distinguem-se dos PCs por gerenciarem uma enorme
quantidade de dispositivos (processadores, memória,discos etc)
– Orientados sobretudo para o processamento simultâneode milhares de tarefas
– Z/OS, Linux etc
Sistemas [email protected]
Introdução
● Classes de sistemas operacionais● SOs para servidores (e multiprocessadores)
– Semelhantes aos SOs de grande porte, mas devemgerenciar máquinas bem menos complexas
– Foco mantido na multitarefa– Linux, BSDs, Windows Server etc
● SOs para computadores pessoais– Seu foco e oferecer uma boa interface, e responder de
forma rápida às requisições de usuários– Windows, Mac OS X, Linux
Sistemas [email protected]
Introdução
● Classes de sistemas operacionais● SOs para computadores portáteis (celular, tablet)
– Foco também na interface e na execução rápida deaplicativos, bem como no consumo de energia, em umhardware bastante limitado
● IOS, Android (Linux), Windows
● SOs embarcados– Encontrados em TVs, tocadores de DVD, carros etc– Uma característica principal é que nenhum software não
confiável jamais será instalado ou executado– Linux (WebOS, Tizen …), BSDs, ...
Sistemas [email protected]
Introdução
● Classes de sistemas operacionais● SOs de tempo real
– Semelhantes aos embarcados, mas tem o tempo comoparâmetro fundamental de funcionamento
– Controle de processos industriais e de sensores etc– VxWorks, QNX, FreeRTOS, Linux (não tem jeito, ele
roda em tudo) etc
Sistemas [email protected]
Introdução
● Classes de sistemas operacionais● SOs para sensores, smart cards etc
– São pequenos e bastantes simples– Executam em um ambiente com sérias restrições de
recursos– Por exemplo, alguns smart cards possuem uma JVM em
ROM, e são capazes de executar uma ou maisaplicações java simultaneamente
– O gerenciamento de recursos e proteção entreaplicações é gerenciada por um SO rudimentar, tambémexistente no cartão