1
Introdução à Engenharia da Computação
Prof. Fábio Nelson CECOMPColegiado de Engenharia da Computação
Introdução àInformática
AULA 05Sistemas Operacionais
2
Introdução à Engenharia da Computação
Prof. Fábio Nelson CECOMPColegiado de Engenharia da Computação
Sistemas Operacionais: Software Oculto
• Serve como um intermediário entre o hardware e os softwares aplicativos.
• Sistema Operacional• Software de sistemas• Kernel
3
Introdução à Engenharia da Computação
Prof. Fábio Nelson CECOMPColegiado de Engenharia da Computação
Sistema Operacional
• Um conjunto de programas que se situa entre os softwares aplicativos e o hardware:– Gerencia os recursos do computador
(CPU, dispositivos periféricos).– Estabelece uma interface com o
usuário.• Determina como o usuário
interage com o sistema operacional.
– Provê e executa serviços para softwares aplicativos.
4
Introdução à Engenharia da Computação
Prof. Fábio Nelson CECOMPColegiado de Engenharia da Computação
Software de Sistemas
• Todos os programas relacionados à coordenação das operações do computador.
• Exemplos:– Sistemas operacionais.– Conversores de linguagem:
• Convertem código de programa para uma forma legível por máquina.
– Programas utilitários:• Executam tarefas secundárias.
5
Introdução à Engenharia da Computação
Prof. Fábio Nelson CECOMPColegiado de Engenharia da Computação
Kernel (Núcleo)
• Gerencia o sistema operacional.– Carregado do disco rígido para a memória quando o
computador é inicializado.• Booting refere-se a iniciar o computador.
– Carrega do armazenamento em disco outros programas do sistema operacional, quando necessário.
• Outros programas são chamados de não-residentes.
6
Introdução à Engenharia da Computação
Prof. Fábio Nelson CECOMPColegiado de Engenharia da Computação
Sistemas Operacionais para Computadores Pessoais
• Plataforma: combinação de hardware de computador e software de sistema operacional.– Wintel (Microsoft Windows que roda em um PC baseado
em Intel) é a mais comum.
• Plataformas Comuns:– MS-DOS– Windows– MAC OS– Unix– Linux
7
Introdução à Engenharia da Computação
Prof. Fábio Nelson CECOMPColegiado de Engenharia da Computação
MS-DOS• Usa uma interface de linha de comando.
– A tela apresenta prompts ao usuário.
– O usuário digita comandos.• Amplamente substituído pelas interfaces gráficas.
• Não é amigável (user-friendly).
8
Introdução à Engenharia da Computação
Prof. Fábio Nelson CECOMPColegiado de Engenharia da Computação
Microsoft Windows
• Iniciou-se como um ambiente operacional para o MS-DOS.– Não era um sistema operacional completo; necessitava do
MS-DOS.• Usa uma interface gráfica.
– Os usuários podem usar os comandos e a interface do DOS.• Agora é uma família completa de sistemas operacionais.
9
Introdução à Engenharia da Computação
Prof. Fábio Nelson CECOMPColegiado de Engenharia da Computação
Ambiente Operacional MS-DOS
• Windows 3.1• Uma camada adicionada
“por cima” do DOS.– Separa o sistema operacional do usuário.– Torna o sistema operacional
mais fácil de usar.
• Denomina-se shell.
10
Introdução à Engenharia da Computação
Prof. Fábio Nelson CECOMPColegiado de Engenharia da Computação
Interface Gráfica• O usuário dá um clique em
um ícone para executar tarefas.
• O menu Iniciar no canto inferior esquerdo abre programas.
• Usa menus para ativar comandos.
11
Introdução à Engenharia da Computação
Prof. Fábio Nelson CECOMPColegiado de Engenharia da Computação
Recursos do Windows
• Nomes de arquivo extensos (até 255 caracteres).• Plug and Play:
– Torna mais fácil a instalação de componentes de hardware.
• Object Linking and Embedding (OLE):– Permite ao usuário incorporar ou vincular um documento
em outro.
12
Introdução à Engenharia da Computação
Prof. Fábio Nelson CECOMPColegiado de Engenharia da Computação
• Windows 9x– Windows 95– Windows 98– Windows Millennium Edition (ME)
• Mercado corporativo– Windows NT– Windows 2000
• Windows– Windows XP– Windows XP 64bits
• Windows CE• Windows Vista
A Família Windows
13
Introdução à Engenharia da Computação
Prof. Fábio Nelson CECOMPColegiado de Engenharia da Computação
Windows 1.01
14
Introdução à Engenharia da Computação
Prof. Fábio Nelson CECOMPColegiado de Engenharia da Computação
Windows 2.03
15
Introdução à Engenharia da Computação
Prof. Fábio Nelson CECOMPColegiado de Engenharia da Computação
Windows 3.0
16
Introdução à Engenharia da Computação
Prof. Fábio Nelson CECOMPColegiado de Engenharia da Computação
Windows 3.1
17
Introdução à Engenharia da Computação
Prof. Fábio Nelson CECOMPColegiado de Engenharia da Computação
Windows 3.11 for Workgroups
18
Introdução à Engenharia da Computação
Prof. Fábio Nelson CECOMPColegiado de Engenharia da Computação
Windows 95
19
Introdução à Engenharia da Computação
Prof. Fábio Nelson CECOMPColegiado de Engenharia da Computação
Windows 98
20
Introdução à Engenharia da Computação
Prof. Fábio Nelson CECOMPColegiado de Engenharia da Computação
Windows Me
21
Introdução à Engenharia da Computação
Prof. Fábio Nelson CECOMPColegiado de Engenharia da Computação
Windows NT 3.1
22
Introdução à Engenharia da Computação
Prof. Fábio Nelson CECOMPColegiado de Engenharia da Computação
Windows NT 3.51
23
Introdução à Engenharia da Computação
Prof. Fábio Nelson CECOMPColegiado de Engenharia da Computação
Windows NT 4.0
24
Introdução à Engenharia da Computação
Prof. Fábio Nelson CECOMPColegiado de Engenharia da Computação
Windows 2000
25
Introdução à Engenharia da Computação
Prof. Fábio Nelson CECOMPColegiado de Engenharia da Computação
Windows XP
26
Introdução à Engenharia da Computação
Prof. Fábio Nelson CECOMPColegiado de Engenharia da Computação
Windows Vista
27
Introdução à Engenharia da Computação
Prof. Fábio Nelson CECOMPColegiado de Engenharia da Computação
Windows CE
28
Introdução à Engenharia da Computação
Prof. Fábio Nelson CECOMPColegiado de Engenharia da Computação
Windows 9x
• Serve ao mercado doméstico e de consumo.• Não é mais um shell, mas um sistema operacional
independente.• Iniciou-se com o Windows 95.
– Geração seguinte:• Windows 98• Windows ME
• Muitas melhorias em relação ao Windows 3.1.
29
Introdução à Engenharia da Computação
Prof. Fábio Nelson CECOMPColegiado de Engenharia da Computação
Melhorias do Windows 98 • Capacidades para
navegação na Internet/intranet.
• Suporte para hardware de última geração, inclusive DVD e multimídia.
• Suporte para unidades de disco de enorme capacidade.
• Assistentes: software passo a passo para instalar, configurar e usar software.
30
Introdução à Engenharia da Computação
Prof. Fábio Nelson CECOMPColegiado de Engenharia da Computação
Melhorias do Windows Me
• Suporte para multimídia: Media Player, edição de vídeo.• Maiores recursos de confiabilidade.• Suporte para redes domésticas.
31
Introdução à Engenharia da Computação
Prof. Fábio Nelson CECOMPColegiado de Engenharia da Computação
Mercado Corporativo
• Windows NT– NT é a sigla de “new technology” – nova tecnologia.
• Windows 2000
32
Introdução à Engenharia da Computação
Prof. Fábio Nelson CECOMPColegiado de Engenharia da Computação
Windows NT
• A Área de Trabalho tem a aparência do Windows 98 e age como ele.
• Destina-se a ambientes corporativos, ligados em rede.– Projetado para garantir escalabilidade (a capacidade de
suportar muitos usuários).– Segurança mais rígida.
33
Introdução à Engenharia da Computação
Prof. Fábio Nelson CECOMPColegiado de Engenharia da Computação
Windows 2000
• A última geração do Windows NT.• Um computador “serve” a muitos usuários.
– Você se identifica e o sistema sabe suas preferências.– Você obtém “sua” área de trabalho e arquivos,
independentemente de qual PC usa para acessar a rede.
34
Introdução à Engenharia da Computação
Prof. Fábio Nelson CECOMPColegiado de Engenharia da Computação
Windows XP
• Reúne em um único produto as versões corporativas e aquelas destinadas ao consumidor do Windows.
– Possui a versão doméstica (Home) e a profissional (Professional).
• Melhorias
35
Introdução à Engenharia da Computação
Prof. Fábio Nelson CECOMPColegiado de Engenharia da Computação
Melhorias do Windows XP • Melhor interface com o usuário:
– Área de trabalho muito mais clara e desobstruída.– Mais ícones no menu Iniciar redesenhado.
• Melhor suporte para multimídia.• Mais personalização.• Suporte para múltiplos usuários:
– O usuário pode sair do sistema, deixar programas rodando e permitir que outro usuário entre no sistema.
– Cria contas limitadas para crianças usarem; ou seja, sem jogos inadequados e sem acesso à Internet.
• Suporte e proteção para a Internet.
36
Introdução à Engenharia da Computação
Prof. Fábio Nelson CECOMPColegiado de Engenharia da Computação
Windows CE
• Versão em menor escala do Windows 9x:– Projetado para funcionar em máquinas com telas
pequenas e, se for o caso, com armazenamento pequeno.
• Usado em Pocket PCs.• Usado em sistemas embutidos.
– Dispositivos computadorizados integrados em outros produtos; ou seja, robôs.
• O CE .NET suporta a plataforma .NET.
37
Introdução à Engenharia da Computação
Prof. Fábio Nelson CECOMPColegiado de Engenharia da Computação
MAC OS
• Projetado para o computador Macintosh.
• Primeira GUI bem-sucedida comercialmente.– Serviu como modelo para o
Windows e outros produtos GUI desenvolvidos a partir de então.
38
Introdução à Engenharia da Computação
Prof. Fábio Nelson CECOMPColegiado de Engenharia da Computação
MAC OS X - Tiger
39
Introdução à Engenharia da Computação
Prof. Fábio Nelson CECOMPColegiado de Engenharia da Computação
UNIX
• Desenvolvido em 1971 para ser usado no minicomputador DEC.
• Sistema baseado em caracteres com interface de linha de comando.
• Não é ligado a nenhuma família de processadores.– Roda praticamente em qualquer tipo de sistema (PC,
mainframe, estação de trabalho) de qualquer fabricante.• Principal sistema operacional em uso em servidores de
Internet.– Manipula facilmente muitos usuários ao mesmo tempo.
40
Introdução à Engenharia da Computação
Prof. Fábio Nelson CECOMPColegiado de Engenharia da Computação
Linux
• Usa interface de linha de comando.– Muitas companhias criaram uma GUI para funcionar com
o Linux.
• Conceito de fonte aberta.– O código-fonte é livre.– Usuários podem baixar (download), modificar e distribuir o
software.
• Mais estável do que o Windows.• Aplicativos relativamente escassos.
41
Introdução à Engenharia da Computação
Prof. Fábio Nelson CECOMPColegiado de Engenharia da Computação
42
Introdução à Engenharia da Computação
Prof. Fábio Nelson CECOMPColegiado de Engenharia da Computação
43
Introdução à Engenharia da Computação
Prof. Fábio Nelson CECOMPColegiado de Engenharia da Computação
Linux com ambiente Gnome
44
Introdução à Engenharia da Computação
Prof. Fábio Nelson CECOMPColegiado de Engenharia da Computação
Linux com ambiente KDE
45
Introdução à Engenharia da Computação
Prof. Fábio Nelson CECOMPColegiado de Engenharia da Computação
Linux – AIGLX + BERYL
46
Introdução à Engenharia da Computação
Prof. Fábio Nelson CECOMPColegiado de Engenharia da Computação
Linux – AIGLX + BERYL
47
Introdução à Engenharia da Computação
Prof. Fábio Nelson CECOMPColegiado de Engenharia da Computação
Linux – AIGLX + BERYL
48
Introdução à Engenharia da Computação
Prof. Fábio Nelson CECOMPColegiado de Engenharia da Computação
Linux – AIGLX + BERYL
49
Introdução à Engenharia da Computação
Prof. Fábio Nelson CECOMPColegiado de Engenharia da Computação
Sistemas Operacionais para Redes
• Sistema Operacional de Rede – Network OperatingSystem (NOS):– Manipula funções de rede.– Faz parecer que os recursos rodam nos computadores
clientes.– Sistemas comuns.
50
Introdução à Engenharia da Computação
Prof. Fábio Nelson CECOMPColegiado de Engenharia da Computação
Funções de Rede
• Compartilhar recursos (discos rígidos e impressoras).• Segurança de dados.• Diagnóstico e solução de problemas (troubleshooting).• Controle administrativo.
51
Introdução à Engenharia da Computação
Prof. Fábio Nelson CECOMPColegiado de Engenharia da Computação
Sistemas Operacionais de Rede
• Windows NT Server• Windows 2000 Server• Windows .NET Server• Novell Netware• Unix• Linux
52
Introdução à Engenharia da Computação
Prof. Fábio Nelson CECOMPColegiado de Engenharia da Computação
Sistemas Operacionais para Computadores de Grande Porte
• Alocação de recursos: atribuir recursos de computador a certos programas e processos para serem usados.
• Principais questões relacionadas à alocação de recursos:– Compartilhar a Unidade Central de Processamento – Compartilhar memória– Compartilhar recursos de armazenamento– Compartilhar recursos de impressão
53
Introdução à Engenharia da Computação
Prof. Fábio Nelson CECOMPColegiado de Engenharia da Computação
Compartilhando a CPU
• Multiprocessamento• Multiprogramação• Tempo compartilhado
54
Introdução à Engenharia da Computação
Prof. Fábio Nelson CECOMPColegiado de Engenharia da Computação
Multiprocessamento
• O uso de um computador potente com múltiplas CPUs.• Múltiplos programas rodam simultaneamente.
– Cada um é executado em seu próprio processador.
55
Introdução à Engenharia da Computação
Prof. Fábio Nelson CECOMPColegiado de Engenharia da Computação
Multiprogramação
• Dois ou mais programas executados concorrentemente.– Os programas se alternam na utilização da CPU.– Baseada em eventos.
• Uma interrupção suspende o processamento para permitir a execução de um outro programa.
• Depois que o segundo programa é executado, o sistema operacional retorna a CPU a outro programa.
• Geralmente é usada em programas em lote que não exigem entrada do usuário.
56
Introdução à Engenharia da Computação
Prof. Fábio Nelson CECOMPColegiado de Engenharia da Computação
Tempo Compartilhado
• Os programas se alternam na utilização da CPU.• Baseado no tempo.
– A cada usuário é designada uma fatia de tempo (fração de segundo).
– A CPU trabalha somente nas tarefas desse usuário durante sua fatia de tempo.
– Tempo de resposta: o tempo entre o pedido digitado e a resposta do computador.
• Tipicamente, é usado em aplicações com muitos usuários.
57
Introdução à Engenharia da Computação
Prof. Fábio Nelson CECOMPColegiado de Engenharia da Computação
Compartilhando Memória
• Gerenciamento da memória.• Divide a memória em primeiro plano
e segundo plano.• Usa armazenamento virtual.
– Também chamado de memória virtual.
58
Introdução à Engenharia da Computação
Prof. Fábio Nelson CECOMPColegiado de Engenharia da Computação
Gerenciamento da Memória
• Divide a memória em partições distintas.• Aloca memória para programas.• Mantém os programas mutuamente separados.
59
Introdução à Engenharia da Computação
Prof. Fábio Nelson CECOMPColegiado de Engenharia da Computação
Primeiro Plano e Segundo Plano
• Primeiro plano: para programas com alta prioridade, que receberão mais tempo de CPU.
• Segundo plano: para programas com menor prioridade, que receberão menos tempo de CPU– Os programas que aguardam para ser executados são
colocados em filas, baseando-se em sua prioridade.
60
Introdução à Engenharia da Computação
Prof. Fábio Nelson CECOMPColegiado de Engenharia da Computação
Armazenamento Virtual
• Os programas que estão atualmente em execução são armazenados em disco.– Partes do programa são levadas para a memória
conforme a necessidade.– Minimiza a quantidade de memória necessária.
• Pode ser implementado por meio de paginação.– Divide a memória em páginas pequenas, de tamanho fixo.– A tabela de páginas (page table) controla as localizações na memória.
61
Introdução à Engenharia da Computação
Prof. Fábio Nelson CECOMPColegiado de Engenharia da Computação
Armazenamento Virtual
62
Introdução à Engenharia da Computação
Prof. Fábio Nelson CECOMPColegiado de Engenharia da Computação
Compartilhando Recursos de Armazenamento
• Controla a localização dos arquivos.• Responde a comandos para manipular arquivos.• Controla pedidos de entrada e saída de arquivos
– Processa-os na ordem em que são recebidos.
63
Introdução à Engenharia da Computação
Prof. Fábio Nelson CECOMPColegiado de Engenharia da Computação
Compartilhando Recursos de Impressão
• Spooling: o programa escreve uma linha em um arquivo em disco em vez de enviá-la diretamente a uma impressora.– Quando o arquivo é concluído, é colocado numa fila.– O arquivo é impresso quando a impressora se torna
disponível.• Permite a um programa concluir a execução muito mais
rapidamente.– Escrever em disco é muito mais rápido do que escrever
em uma impressora.
64
Introdução à Engenharia da Computação
Prof. Fábio Nelson CECOMPColegiado de Engenharia da Computação
Programas Utilitários
• Executam tarefas secundárias.• Exemplos:
– Gerenciador de arquivos– Compactação de arquivos– Outros
65
Introdução à Engenharia da Computação
Prof. Fábio Nelson CECOMPColegiado de Engenharia da Computação
Gerenciador de Arquivos
• Armazena arquivos em uma estrutura de diretórios hierárquica.
• O Windows usa o Windows Explorer.
66
Introdução à Engenharia da Computação
Prof. Fábio Nelson CECOMPColegiado de Engenharia da Computação
Compactação de Arquivos
• Reduz a quantidade de espaço que um arquivo requer.– Faz o arquivo ocupar menos
espaço em disco.– Toma menos tempo para
transmitir por meio de linhas de comunicação.
67
Introdução à Engenharia da Computação
Prof. Fábio Nelson CECOMPColegiado de Engenharia da Computação
Outros Programas Utilitários• Backup e Restauração:
– Backup: faz cópias de discos e armazena-as em um lugar seguro.
– Restauração: restaura arquivos de backups.
• Desfragmentador de disco: reorganiza o disco a fim de que todos os arquivos sejam armazenados em localizações contíguas.
• Driver de dispositivo: manipula comandos para dispositivos, como, por exemplo, impressoras e dispositivos de armazenamento.