Escolar Documentos
Profissional Documentos
Cultura Documentos
O que é um Sistema
Operacional?
• É uma máquina estendida (visão top-down)
– Implementa abstrações que escondem (do programador e do
usuário final) os detalhes de como acessar e controlar
os recursos de hardware;
– Apresenta ao programador uma máquina virtual, que é mais
fácil de usar (API simples baseada em conceitos
independentes do hardware) e genérica (sem expor a
diversidade dos recursos/dispositivos)
• É um gerenciador de recursos (visão bottom-up)
– Garante o compartilhamento seguro de recursos pelas várias
tarefas executando concorrentemente no sistema;
– Visa maximizar a utilização dos recursos (CPU,
Memória,
Disco, etc.)
6
S.O.visto como gerente de recursos
8
Concorrência
• Nos sistemas multiprogramados (multi-tarefa), existem
vários programas que executam concorrentemente
(ao mesmo tempo), aproveitando o fato de que:
– a CPU e os dispositivos de Entrada/Saida (E/S)
poderem operar em paralelo;
• Cada programa em execução intercala períodos de
processamento (uso efetivo da CPU) com períodos de
E/S.
• Seria um desperdício fazer a CPU esperar pelo término
de cada E/S com um dispositivo
• Para tal, é importante que o SO possa inciar uma E/S e
prosseguir com a execução de outra tarefa.
• Ou seja, multiprogramação aumenta a utilização
da CPU.
1
1
Funções essenciais
Progr. B
Modo usuário
Progr. A
Modo kernel
t 29
Geração do sistema operacional
Os sistemas operacionais são projetados para
executar em qualquer uma de uma classe de
máquinas; o sistema precisa ser configurado
para cada ponto de computador específico
O programa SYSGEN obtém informações
referentes à configuração específica do sistema
de hardware
Booting – iniciar um computador carregando o
kernel
Programa de bootstrap – código armazenado na
ROM que é capaz de localizar o kernel,
carregá- lo na memória e iniciar sua execução
Boot do sistema
O sistema operacional precisa estar disponível ao
hardware, para que o hardware possa iniciá-lo
Pequeno trecho de código – carregador de
bootstrap, localiza o kernel, carrega-o na
memória e o inicia
Às vezes, um processo em duas etapas, onde
o bloco de boot no local fixo carrega o
carregador de bootstrap
Quando o sistema é inicializado, a execução
começa em um local fixo da memória
Firmware usado para manter o código
inicial de boot
Não chega ser próximo da linguagem de
maquina
Estrutura Tradicional do UNIX
(muito simplificado)
Sistema de vários componentes e
camadas de software
Windows
9
Sistema de vários
componentes e
camadas de software
Android
1
0
Arquitetura do Sistema
Sistemas Reserva
Navegadores
de de
Banco
Web
Passagens APLICATIVOS
Interpretadores
Compiladores Editores de
e Linkers Comando PROGRAMAS
SISTEMA OPERACIONAL DO
SISTEMA
Linguagem de Máquina
Dispositivos Físicos
22
Máquinas de Vários
Níveis
Nível do Usuário: Programas Aplicativos
Controle Microprogramado/Fixo
Portas Lógicas
Transistores e Fios 23
Arquitetura do Sistema
Transistores
Capacitores
Memória
Disco rígido
etc...
24
Arquitetura do Sistema
25
Arquitetura do Sistema
26
Software
Software aplicativo
aplicações criadas para solucionar problemas específicos
Exemplos
contabilidade, folha de pagamento, correção de provas
Software básico
conjunto de softwares que permite ao usuário criar, depurar e modificar as
aplicações criadas por ele
sistema operacional, linguagens de programação, utilitários
Sistema operacional
Gerência de memória
Gerência de processador
Gerência de arquivos
Gerência de dispositivos de E/S
27
Software básico
Linguagens de programação
conjunto de convenções e regras que especificam como instruir o
computador a executar determinadas tarefas
serve como meio de comunicação entre o indivíduo que deseja resolver
um determinado problema e o computador
Gerações de linguagens
1ª geração: linguagens em nível de máquina
2ª geração: linguagens de montagem (Assembly)
3ª geração: linguagens orientadas ao usuário
4ª geração: linguagens orientadas à aplicação
5ª geração: linguagens de conhecimento
28
Software básico
29
Software básico
30
Software básico
31
Controle de um programa a ser executado pela
UCP
32
Instruções
35
A Arquitetura do Conjunto de Instruções
Arquitetura do Conjunto de Instruções
EXECUC AO DE TODO O
C O M P ILA D O R PROGRA MA
LING UA GEM
DE MAQUINA
LING UA GEM
DE ALTO
NIVEL EXECUTA A IN STRUC AO
IN TE RP RETA D O R E VOLTA
38
O que é um conjunto de instruções?
Código de máquina
Binário
Instruções de E/S
leituras de fita, disco magnético, pendrive, cd, dvd, gravação etc
Instruções de transferência
da memória para a CPU, de um registrador para outro
Instruções Aritméticas
adição, subtração, multiplicação, divisão
Instruções Lógicas
E (AND), OU (OR), NÃO (NOT)
42
Localização dos Operandos
(fonte: Tanenbaum)
O Modelo de Barramento de Sistemas Revisitado
Principles of Computer Architecture by M. Murdocca and V. Heuring © 1999 M. Murdocca and V. Heuring
Visão Abstrata de uma CPU
• A CPU consiste de uma seção (ou caminho) de dados
(datapath) que contém registradores e uma ALU, e uma seção
de controle, que interpreta instruções e efetua transferências
entre registradores.
Principles of Computer Architecture by M. Murdocca and V. Heuring © 1999 M. Murdocca and V. Heuring
Diagrama de Blocos de uma UCP
Fluxo de Controle
Fluxo de Dados/Endereços
Unidade Central de Processamento 47
Processador (cont.)
Principles of Computer Architecture by M. Murdocca and V. Heuring © 1999 M. Murdocca and V. Heuring
Busca e Execução (det.)
1 - Busca da próxima instrução na memória e
armazenamento da instrução em IR
2 - Atualização de PC
5 - Execução da instrução
Busca na memória
Processador (cont.)
RD/WR
IR (8) VI (8) SP (16) T1 (8) T2 (8)
F (1) ULA
UC
Processador (cont.)
RD/WR
IR (8) VI (8) SP (16) T1 (8) T2 (8)
F (1) ULA
UC
Processador (cont.)
RD/WR
IR (8) VI (8) SP (16) T1 (8) T2 (8)
F (1) ULA
UC
Processador (cont.)
RD/WR
IR (8) VI (8) SP (16) T1 (8) T2 (8)
F (1) ULA
UC
Processador (cont.)
RD/WR
IR (8) VI (8) SP (16) T1 (8) T2 (8)
F (1) ULA
UC
Processador (cont.)
RD/WR
IR (8) VI (8) SP (16) T1 (8) T2 (8)
F (1) ULA
UC
Processador (cont.)
Execução da instrução
Processador (cont.)
RD/WR
IR (8) VI (8) SP (16) T1 (8) T2 (8)
F (1) ULA
UC
Processador (cont.)
Principles of Computer Architecture by M. Murdocca and V. Heuring © 1999 M. Murdocca and V. Heuring
ISA – Aspectos principais:
- Repertório de operacões
- Quantas, quais e complexidade:
Ex.: ULA, tranf de dados, I/O, controle
- Tipo e tamanho dos operandos
- (dados: byte, palavra, meia palavra)
- Endereçamento dos operandos (aponta reg, mem,…)
- Formato da Instrução
- Número de operandos (explicitos), tamanho dos bits,…
- Armazenamento dos operandos
- Registrador (numero), memória
64
65
66
67
68
Como funciona um conjunto de instruções?
Código de máquina
Binário