28
Sistemas Operacionais [email protected] Introdução Carlos Gustavo A. da Rocha

Introdução - diatinf.ifrn.edu.brdiatinf.ifrn.edu.br/prof/lib/exe/fetch.php?media=user:1379492:... · fortemente à arquitetura dos computadores sobre ... e sistemas de lote

Embed Size (px)

Citation preview

Sistemas [email protected]

Introdução

Carlos Gustavo A. da Rocha

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

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

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