Buscar

Aula 01 Introdução

Prévia do material em texto

Universidade Federal de Ouro Preto - UFOP
Departamento de Computação e Sistemas - DECSI
CSI437 – Sistemas Operacionais
Prof. Samuel Brito
Introdução
2
O que é um Sistema 
Operacional?
• Programa que 
gerencia o hardware 
do computador.
• Oferece uma base 
para os programas 
aplicativos e atua 
como intermediário 
entre o usuário e o 
hardware.
3
O que é um Sistema 
Operacional?
• Sistemas Operacionais são projetados para 
serem convenientes, eficientes ou uma 
combinação de ambos aspectos:
– SOs de mainframes são projetados para 
otimizar a utilização do hardware.
– SOs de computadores pessoais são 
desenvolvidos para suportar jogos complexos, 
aplicações comerciais, etc.
– SOs de dispositivos móveis são focados no 
gerenciamento eficiente de recursos (energia, 
memória, processamento, etc.).
4
O que é um Sistema 
Operacional?
• Um programa ilusionista:
– Provê abstrações:
• A interface do usuário não corresponde ao 
hardware existente.
• Permite executar o mesmo programa em vários 
ambientes diferentes.
– Coordena recursos:
• Controla o acesso a recursos de modo a 
maximizar seu uso e a proteger os usuários uns 
dos outros.
5
O que é um Sistema 
Operacional?
• Principais objetivos:
– Controlar a execução dos programas do 
usuário.
– Tornar sistemas computacionais mais 
simples de serem utilizados.
– Fazer o uso do hardware de forma 
“eficiente”.
• Alocação de recursos “justa”, proteção, 
segurança...
6
Visão do Usuário
• Usuário enxerga a interface com o sistema, 
velocidade, capacidade de armazenamento e 
funcionalidades de periféricos.
• Visão varia de acordo com a interface que está 
sendo usada.
7
Visão do Usuário
• Modelo monopolista:
– Maioria dos usuários de computador se 
senta à frente de um PC:
• Monitor, teclado, mouse e unidade do sistema.
– Objetivo:
• Agilizar o trabalho realizado.
– Facilidade de uso.
– Atenção ao desempenho.
» Nenhuma atenção à utilização de recursos 
(compartilhamento de hardware e software).
8
Visão do Usuário
• Modelo compartilhado:
– Vários usuários acessando um mainframe 
por meio de diferentes terminais.
– Objetivos:
• Sistema operacional é desenhado para 
maximizar a utilização de recursos.
• Recursos alocados de forma eficiente para 
que nenhum usuário em específico tome mais 
recursos que outro.
9
Visão do Usuário
• Modelo semi-compartilhado:
– Estações de trabalho com recursos locais, mas 
conectadas a redes.
– Compartilham os recursos como a própria rede 
e/ou dispositivos remotos: impressoras, 
scanners, servidores de arquivo, etc.
– Objetivo:
• Compromisso entre a facilidade de utilização 
individual e a utilização de recursos compartilhados.
10
Visão do Sistema
• Alocador de recursos:
– Gerencia e distribui os recursos do 
hardware.
• Programa de controle:
– Administra a execução dos programas do 
usuário para impedir erros e o uso 
impróprio do computador.
• Em especial a operação e controle de 
dispositivos de E/S.
11
Definição
• Em geral, não temos uma definição 
totalmente adequada de um sistema 
operacional.
– Eles existem porque fornecem um modo 
razoável de solucionar o problema de criação 
de um sistema computacional utilizável.
• Kernel:
– Programa essencial que executa todo o tempo.
– Restante seriam aplicativos.
12
Funções Principais
• Coordenação:
– Permite que múltiplos aplicativos/usuários 
trabalhem simultaneamente de forma eficiente.
• Concorrência
• Proteção de memória
• Arquivos
• Etc.
• Padronização de Serviços:
– Padronização da interface a fim de simplificar a 
programação e uso.
13
Por que estudar Sistemas 
Operacionais?
• Entender como os computadores funcionam.
– Melhor utilização das máquinas.
• Conectam hardware e software.
• Entendimento dos SOs revelam limitações e 
pontos fortes:
– Exemplo:
• Por que não utilizar Windows para se controlar uma usina 
nuclear?
– Gerência de memória.
14
Por que estudar Sistemas 
Operacionais?
• Combinam conceitos de praticamente todas as 
áreas da computação.
• Seu conhecimento fornece base sólida para 
construção de sistemas complexos:
– Hardware
– Algoritmos
– Estruturas de dados
– Linguagens
– Teoria da computação
– Etc.
HISTÓRIA DOS SISTEMAS 
OPERACIONAIS
Introdução
16
História dos Sistemas 
Operacionais
• Primeira Geração (1945-1955) – Válvulas
• Segunda Geração (1955-1965) – Transistores
• Terceira Geração (1965-1980) – CIs e 
Multiprogramação
• Quarta Geração (1980-?) – Computadores 
Pessoais
17
Primeira Geração (1945-1955) - 
Válvulas
• Não existiam sistemas operacionais.
– Programação através de chaves em um painel.
• Código de máquina.
• Conexão de plugs em painéis para controlar as funções da máquina.
– Operação:
• Programador reservava tempo de máquina.
• Inseria seu painel de programação.
• Passava horas torcendo para que nenhuma das 20 mil válvulas 
queimasse durante a execução.
– No início da década de 50 os cartões perfurados foram 
introduzidos.
• Operação continua a mesma.
18
Primeira Geração (1945-1955) - 
Válvulas
19
Primeira Geração (1945-1955) - 
Válvulas
20
Segunda Geração (1955-1965) - 
Transistores
• Mudança radical:
– Computadores suficientemente confiáveis.
• Computadores de grande porte 
(mainframes):
– Isolados em salas especiais, operadas por 
equipes profissionais.
– Grandes corporações, agências 
governamentais ou universidades.
• Milhões de dólares!
21
Segunda Geração (1955-1965) - 
Transistores
• Execução de uma tarefa:
– Programador escrevia no papel e depois perfurava 
cartões.
– Entregava os cartões para um dos operadores e 
esperava a saída.
– Operador executava cartão por cartão e caminhava 
até a sala da impressora para retirar a saída.
• Problema?
– Muito tempo gasto no deslocamento dos 
operadores.
22
Segunda Geração (1955-1965) - 
Transistores
• Introdução da tecnologia de disco.
– Escalonamento de tarefas.
• Sistema em lote (batch):
– Programadores entregavam as tarefas para os operadores.
– Operadores agrupavam tarefas com necessidades 
semelhantes.
– Lotes eram executados no computador (quando 
disponível).
– Saída de cada lote era enviada para o respectivo 
programador.
• Sistema operacional simples:
– Transferia o controle de uma tarefa para a seguinte.
– Residente na memória.
Área do
Programa
do Usuário
Sistema
Operacional
23
Segunda Geração (1955-1965) - 
Transistores
24
Terceira Geração (1965-1980) – CIs e 
Multiprogramação
• IBM cria o System/360:
– Família de computadores.
– Softwares compatíveis.
– Computação científica e comercial.
– Pioneiros no uso de Circuitos 
Integrados (CIs).
• Melhor custo-benefício.
– Sistema operacional: OS/360.
• Enorme e extraordinariamente complexo.
• Milhares de erros.
25
Terceira Geração (1965-1980) – CIs e 
Multiprogramação
26
Terceira Geração (1965-1980) – CIs e 
Multiprogramação
• Apesar dos problemas, OS/360 e sistemas operacionais 
similares atendiam razoavelmente bem à maioria dos 
clientes.
– Popularizaram várias técnicas fundamentais.
• Spooling:
– Sistemas operacionais tinham a capacidade de transferir 
tarefas de cartões perfurados para discos magnéticos logo 
que chegassem à sala do computador.
– Assim que uma tarefa era completada, o sistema 
operacional poderia carregar uma nova tarefa a partir do 
disco na partição que acabou de ser liberada e processá-la.
– Diminui deslocamento dos operadores.
27
Terceira Geração (1965-1980) – CIs e 
Multiprogramação
• Multiprogramação:
– Memória dividida em partes, uma tarefa diferente em 
cada partição.
– Enquanto uma tarefaesperava que uma operação de 
E/S se completasse, outra poderia usar a CPU.
– CPU poderia permanecer ocupada por quase 100% do 
tempo.
Tarefa 3
Tarefa 2
Tarefa 1
Sistema
Operacional
Partições
de
Memória
28
Terceira Geração (1965-1980) – CIs e 
Multiprogramação
• Timesharing:
– Intervalo entre submeter uma tarefa e obter uma saída 
era grande.
• Erros levariam horas para serem corrigidos.
– Timesharing surgiu como uma variante da 
multiprogramação:
• Cada usuário se conectava por meio de um terminal on-line.
• CPU executava várias tarefas, alternando entre elas.
– Usuários podiam interagir com cada programa enquanto ele está 
sendo executado.
• Tempo de resposta curto (~1 segundo).
• Surgimento do UNIX.
29
Terceira Geração (1965-1980) – CIs e 
Multiprogramação
30
Quarta Geração (1980-?) – 
Computadores Pessoais
• Circuitos integrados em larga escala (LSI):
– Milhares de transistores em 1 cm² de silício.
• Microcomputadores:
– Inicialmente baratos mas com pouca 
potência e poder de processamento.
– Sistemas Operacionais Simplificados:
• CP/M, MS-DOS, etc.
• Baseados na digitação de comandos.
31
Quarta Geração (1980-?) – 
Computadores Pessoais
• Lisa (1983):
– Projeto de Steve Jobs.
– Dispendioso.
– Falhou comercialmente.
• Apple Macintosh (1984):
– Enorme sucesso.
– Baixo custo em relação ao projeto Lisa.
– Amigável ao usuário.
– Destinado a usuários que não sabiam e/ou não 
tinham interesse em aprender sobre computadores.
32
Quarta Geração (1980-?) – 
Computadores Pessoais
• Windows (1985):
– Baseado em interface gráfica.
– Executado originalmente em cima do MS-DOS.
• Ambiente gráfico sobre o MS-DOS.
• Windows 95 e Windows 98:
– Independentes do MS-DOS.
– Incorporaram aspectos de um sistema operacional.
• Windows NT, 2000, Millennium, XP, Vista...
• UNIX, Linux, FreeBSD ...
33
Sistemas Operacionais 
Modernos
• Enormes:
– Centenas de milhares de linhas de código.
– 100... 1000 homens-ano de desenvolvimento.
• Complexos:
– Tipos diferentes de hardware e usuários.
– Foco em desempenho.
• Mal compreendidos:
– Muito grandes para serem compreendidos por um único 
desenvolvedor.
– Nunca estão completamente sem erros.
– Comportamento difícil de prever.
34
Sistemas Operacionais 
Modernos
• Exemplo:
– Evolução do número de linhas do kernel Linux:
• Versão 0.01 (1991): 10.239
• Versão 1.0.0 (1994): 176.250
• Versão 1.2.0 (1995): 310.950
• Versão 2.2.0 (1999): 1.800.847
• Versão 2.4.0 (2001): 3.377.902
• Versão 2.6.0 (2003): 5.929.913
• Versão 2.6.36 (2010): 13.499.457
• Versão 3.0.0 (2011): 13.872.245
• Versão 3.2.1 (2012): 14.304.901
ARQUITETURAS DOS SISTEMAS 
DE COMPUTADORES
Introdução
36
Sistemas Multiprocessados
• Até algum tempo atrás, maioria dos 
sistemas utilizavam um único processador.
• Atualmente, sistemas multiprocessados 
crescem em quantidade e importância.
• Série de vantagens podem ser obtidas.
37
Sistemas Multiprocessados
• Principais vantagens:
– Maior vazão (througput):
• Mais processadores, mais trabalho em menos tempo.
– Economia de escala:
• Sistemas multiprocessados podem custar menos do 
que múltiplos sistemas de processador único 
equivalentes (compartilhamento de periféricos, 
armazenamento, etc).
– Maior confiabilidade:
• A falha de um processador não interromperá o sistema.
– Só o atrasará.
• Rebalanceamento de carga.
38
Sistemas Multiprocessados
• Tipos de sistemas multiprocessados:
– Multiprocessamento simétrico (SMP):
• Cada processador executa uma cópia do sistema 
operacional.
• Cópias se comunicam entre si de acordo com a 
necessidade.
• Sem relação mestre-escravo.
• Exemplo:
– Solaris da Sun Microsystems.
– Sistemas operacionais modernos oferecem suporte para SMP.
39
Sistemas Multiprocessados
• Multiprocessamento assimétrico (ASMP):
• Cada processador recebe uma tarefa específica.
• Processador mestre controla o sistema.
– Outros (escravos) procuram instruções com o mestres ou 
possuem tarefas predefinidas.
40
Sistemas Distribuídos
• Crescimento das redes de computadores teve 
uma profunda influência no desenvolvimento dos 
sistemas operacionais.
• Sistemas Distribuídos:
– Processadores comunicam entre si por meio de 
diversas linhas de comunicação.
• Barramentos de alta velocidade, linhas telefônicas, rede, etc.
– Processadores podem compartilhar tarefas de 
computação e oferecer um rico conjunto de recursos 
ao usuários.
– Arquitetura cliente-servidor ou peer-to-peer.
41
Sistemas Distribuídos
Estrutura de um sistema 
peer-to-peer.
Estrutura geral de um 
sistema cliente-servidor. 
42
Sistemas em Clusters
• Reúnem diversas CPUs para realizar 
trabalho de computação.
• Sistemas individuais e acoplados.
– Compartilham recursos.
• Conectados de maneira rígida por 
meio de redes locais rápidas.
43
Sistemas de Tempo Real
• Sistemas com restrições bem definidas sobre 
tempos de resposta.
• Frequentemente usados em aplicações 
dedicadas, como controladores de dispositivos.
– Sistemas de imagens médicas, sistemas de injeção 
de combustível de motor de automóvel, controle 
industrial, etc.
• Exigem planejamento de alocação de recursos 
em termos de limites garantidos.
44
Sistemas de Tempo Real
45
Sistemas Portáteis
• Personal Digital Assistants (PDAs).
– Exemplo: Palms, Pocket-PCs, smartphones.
• Envolvem questões diferentes de 
computadores pessoais:
– Memória limitada.
– Processadores relativamente lentos.
– Telas pequenas.
– Gasto de energia.
– Etc.
46
Sistemas Embutidos
• Sistemas desenvolvidos para serem inseridos 
em dispositivos específicos.
• Usualmente, as necessidades de interface 
com o usuário são definidas pelo dispositivo.
• Muitas vezes trazem requisitos de tempo real.
• Restrições de memória e capacidade de 
processamento podem ser severas.
47
Sistemas Embutidos
48
Dúvidas?
	Slide 1
	O que é um Sistema Operacional?
	O que é um Sistema Operacional?
	O que é um Sistema Operacional?
	O que é um Sistema Operacional?
	Visão do Usuário
	Visão do Usuário
	Visão do Usuário
	Visão do Usuário
	Visão do Sistema Computacional
	Slide 11
	Funções Principais
	Por que estudar Sistemas Operacionais?
	Por que estudar Sistemas Operacionais?
	História dos sistemas operacionais
	História dos Sistemas Operacionais
	Primeira Geração (1945-1955) - Válvulas
	Primeira Geração (1945-1955) - Válvulas
	Primeira Geração (1945-1955) - Válvulas
	Segunda Geração (1955-1965) - Transistores
	Segunda Geração (1955-1965) - Transistores
	Segunda Geração (1955-1965) - Transistores
	Segunda Geração (1955-1965) - Transistores
	Terceira Geração (1965-1980) – CIs e Multiprogramação
	Terceira Geração (1965-1980) – CIs e Multiprogramação
	Terceira Geração (1965-1980) – CIs e Multiprogramação
	Terceira Geração (1965-1980) – CIs e Multiprogramação
	Terceira Geração (1965-1980) – CIs e Multiprogramação
	Terceira Geração (1965-1980) – CIs e Multiprogramação
	Quarta Geração (1980-?) – Computadores Pessoais
	Quarta Geração (1980-?) – Computadores Pessoais
	Quarta Geração (1980-?) – Computadores Pessoais
	Sistemas Operacionais Modernos
	Sistemas Operacionais Modernos
	Arquiteturas dos Sistemas de Computadores
	Sistemas Multiprocessados
	Sistemas Multiprocessados
	Sistemas Multiprocessados
	Sistemas Multiprocessados
	Sistemas Distribuídos
	Sistemas Distribuídos
	Sistemas em Clusters
	Sistemas de Tempo Real
	Sistemas de Tempo Real
	Sistemas Portáteis
	Sistemas Embutidos
	Sistemas Embutidos
	Dúvidas?

Continue navegando