O documento resume a história e introdução de sistemas operacionais. Começa definindo o que é um sistema operacional e suas funções principais de fornecer recursos de hardware de forma abstrata para programadores e gerenciar recursos. Em seguida, descreve as principais gerações de sistemas operacionais desde a primeira geração mecânica até a atual quarta geração com sistemas operacionais para dispositivos móveis e computação distribuída.
O documento resume a história e introdução de sistemas operacionais. Começa definindo o que é um sistema operacional e suas funções principais de fornecer recursos de hardware de forma abstrata para programadores e gerenciar recursos. Em seguida, descreve as principais gerações de sistemas operacionais desde a primeira geração mecânica até a atual quarta geração com sistemas operacionais para dispositivos móveis e computação distribuída.
O documento resume a história e introdução de sistemas operacionais. Começa definindo o que é um sistema operacional e suas funções principais de fornecer recursos de hardware de forma abstrata para programadores e gerenciar recursos. Em seguida, descreve as principais gerações de sistemas operacionais desde a primeira geração mecânica até a atual quarta geração com sistemas operacionais para dispositivos móveis e computação distribuída.
Tecnologia da Paraíba Campus Campina Grande David Candeia
Baseado no Material do Professor Henrique do Nascimento Cunha, MSc.
Introdução ● Sistema Computacional – Um ou mais processadores – Memória principal – Discos – Impressoras – Teclado – Monitor – Interfaces de Rede – Outros dispositivos de E/S ● Controle e uso correto de todos estes componentes -> SO Introdução ● Podemos pensar na área de atuação do SO observando a figura – Hardware: chips, placas, discos, teclado, CPU, registradores, caminho de dados, microprograma, etc. – Dois modos de operação: núcleo x usuário Introdução – Dois modos de operação: núcleo x usuário ● Núcleo: pode executar qualquer instrução ● Usuário: subconjunto de instruções disponível – Interface com usuário: Shell ou GUI -> dá início a outros programas ● OBS: sistemas embarcados podem não ter modo núcleo; sistemas interpretados não tem essa distinção do hardware – Em outros casos: programas de troca de senhas, sistema de arquivos executam em modo usuário Introdução ● Sistemas operacionais x sistemas de usuário – Enormes, complexos, têm vida longa, milhões de linhas de código ● 5 milhões de linhas: 50 linhas por página, 1.000 páginas por volume -> 100 volumes para conter o SO todo! ● Considerando bibliotecas compartilhadas o Windows tem mais de 70 milhões de linhas de código (excluindo softwares básicos como Windows Explorer, Media Player e outros) ● Os sistemas evoluem: – Windows 95/98/ME, Windows NT/2000/XP/Vista/Windows 7, Unix/System V/Solaris/Free BSD O que é um SO? ● Difícil definir com exata precisão – Modo núcleo? ● Duas funções essenciais não relacionadas – Fornecer a programadores recursos abstratos limpos ao invés de recursos confusos – Gerenciar recursos de hardware O que é um SO? ● Máquina estendida (top-down) – Discos rígidos SATA tem uma descrição de sua interface com mais de 450 páginas ● Sorte que temos os drivers!
– SOs fornecem mais um nível de abstração: arquivos
● Criar boas abstrações e então implementar e gerenciar os objetos abstratos criados desse modo ● Fornecer interfaces aos programas de aplicativos (não estamos falando de interface gráfica) O que é um SO? ● Gerenciador de recursos (bottom-up) – Alocação ordenada e controlada dos processadores, memórias e dispositivos de E/S – Exemplos: ● Três programas na memória tentando imprimir? ● Um player de música e um Word consumindo memória? ● Arquivos compartilhados entre usuários? – Multiplexação ● Tempo: revezamento de uso no tempo ● Espaço: cada cliente tem direito a parte do recurso Histórico ● Evolução muito ligada à evolução dos computadores ● Primeira Geração (1945 a 1955) – Charles Babbage, máquina de calcular puramente mecânica ● Depois ele percebeu a necessidade de um software para sua máquina analítica Histórico ● Primeira Geração (1945 a 1955) – Pouco progresso em computador digital até Segunda Guerra Mundial ● Acelerar procedimentos manuais para fins militares – Máquinas de calcular (meados da década de 40) ● Howard Aiken, John Von Neumann, entre outros... ● Relés Mecânicos muito lentos de início ● Válvulas na sequência ● Tempo de resposta medido em segundos Histórico ● Primeira Geração (1945 a 1955) – Um mesmo grupo de pessoas: projetistas, construtores, programadores e operadores – Não havia linguagens de programação e muito menos S.O. – Tempo de uso restrito – Cálculos numéricos de tabelas Histórico ● Segunda Geração (1955 a 1965) – Cartões perfurados, uso de transistores – Mainframes – Separação entre projetistas, construtores, programadores e operadores – Apenas grandes corporações podiam comprar ● Governo ● Instituições de ensino ● Grandes empresas privadas Histórico ● Segunda Geração (1955 a 1965) Histórico ● Segunda Geração (1955 a 1965) – FORTRAN, ALGOL, COBOL / linguagem de montagem (assembly) ● Programas deixaram de ter relação direta com o hardware – Programas eram submetidos (jobs) ● O resultado era colhido depois – Muito trabalho manual! Histórico ● Segunda Geração (1955 a 1965) – Sistemas em lote ● Vários jobs gravados em fita Histórico ● Segunda Geração (1955 a 1965) – SOs evoluíram para facilitar codificação, submissão, execução e depuração ● Incorporaram suas próprias rotinas de entrada/saída (input/output control system – IOCS) ● Surge então o conceito de independência de dispositivo – SOS (SHARE Operating System) – FMS (Fortran Monitor System) – IBSYS (máquinas IBM) Histórico ● Terceira Geração (1965 a 1980) – 2 tipos de computadores: ● Científicos, para cálculos numéricos e de engenharia ● Comerciais, para uso em bancos e companhias de seguros – Alto custo – Demanda por máquinas mais rápidas Histórico ● Terceira Geração (1965 a 1980) – Década de 60: marcou o surgimento do conceito de multiprogramação ● Programas compartilhando a memória e processador podendo executar um programa enquanto outro executava uma leitura/gravação Histórico ● Terceira Geração (1965 a 1980) – Década de 70: marcou o surgimento do conceito de multiprocessamento ● Arquiteturas com diversos processadores exigiram dos SOs novos mecanismos de controle Histórico ● Terceira Geração (1965 a 1980) – IBM System/360 ● Série de computadores ● Várias capacidades de processamento ● Software compatível ● Diferença entre preço e desempenho ● Uso de circuitos integrados em pequena escala – OS/360 ● S.O. monolítico ● Milhões de linhas de código Histórico ● Terceira Geração (1965 a 1980) – OS/360 ● Diferença entre o OS/360 e os S.O. antigos era a multiprogramação ● Ainda demorava muito para obter saída ● Time-sharing: cada usuário se conectava a partir de seu terminal – Ideia de um computador para centenas usuários ● MIT, Bell Labs e General Electric ● MULTICS (multiplexed information and computing service) Histórico ● Terceira Geração (1965 a 1980) – Minicomputadores ● DEC PDP-1 e família – $ 120 mil (5% do valor de um 7094 da IBM) ● PDP-7 – Ken Thompson criou uma versão despojada e monousuário do MULTICS: Unix – Várias organizações desenvolveram suas próprias e incompatíveis versões: System-V, BSD – Minix: pequeno clone com objetivo educacional – Linus Torvalds – Linux: versão gratuita do Minix e diferente da educacional Histórico ● Quarta geração (1980 ao presente) – Circuitos integrados de larga escala: LSI, VLSI e ULSI – Microcomputadores: computadores pessoais ● Diferença de preço ● IBM-PC, 80386 e 80486 ● MS-DOS: Bill Gates vendeu o sistema para a IBM Histórico ● Quarta geração (1980 a presente) – Xerox e GUI – Apple / Steve Jobs: Lisa e depois Apple Macintosh – Microsoft ● Windows 3.1 ● Windows 95: aqui independente do DOS ● Windows 98 ● Windows NT – Linux Histórico ● Quarta geração (1980 a presente) – Década de 90: a Internet evoluiu e o TCP/IP virou um padrão de mercado ● Exigiu suporte dos Sos ● Preocupações com gerência, segurança, desempenho... Histórico ● Quarta geração (1980 a presente) – A partir de 2000: ● Sistemas operacionais proativos, incorporando mecanismos automáticos de detecção e recuperação de erros ● Processamento distribuído passou a ser explorado pelos sistemas operacionais Histórico ● Quarta geração (1980 a presente) – Atualmente ● Sistemas operacionais muito específicos ● Windows 8 (desktop e dispositivos móveis) e 10 ● MAC OSX ● Linux ● Android