Escolar Documentos
Profissional Documentos
Cultura Documentos
HARDWARE E SOFTWARE
PARA S.O.
Sistemas Operacionais
Aula 02
2024
INTRODUÇÃO
● Computador
“É um sistema complexo com muitos componentes”
TANEMBAUM, 2016
● Sistema Operacional
“É apenas um conjunto de rotinas executado pelo
computador”
MACHADO, 2014
2
INTRODUÇÃO
Funções do S.O.
● Facilidade de acesso aos recursos de sistema
● Compartilhamento de recursos
3
INTRODUÇÃO
4
CONCEITOS DE HARDWARE
5
HARDWARE
6
ARQUITETURA DE VON NEUMANN
7
ARQUITETURA DE VON NEUMANN
Memória
● Compartilhada entre Dados do Usuário e Programas
○ simplificação do controle pelo processador
Entrada e Saída
● Comunicação com o mundo externo
○ facilidade de inserir programas e dados
8
SISTEMA COMPUTACIONAL - ALTA ABSTRAÇÃO
Adaptado de STALLINGS 2017. Vários componentes e sinais foram omitidos para simplificar (alta abstração).
9
HARDWARE - CPU
10
HARDWARE - CPU - COMPONENTES
Registrador de Instrução - RI
● Armazenamento temporário da instrução à ser
executada
Interpretador / Controle
● Decodifica e controla a Instrução presente em RI
Program Counter - PC
● Mantém o endereço de memória da próxima instrução
a ser executada
11
HARDWARE - CPU - COMPONENTES
12
HARDWARE - CPU - COMPONENTES
13
HARDWARE - CPU - COMPONENTES
14
HARDWARE - CPU - CICLO DE INSTRUÇÃO
Ciclo de Instrução
● É o conjunto de ações para que o CPU execute uma
instrução
15
HARDWARE - CPU - CICLO DE INSTRUÇÃO
Ciclo de Instrução
● Pode ser dividido em dois (ou mais) estágios
16
CPU - CICLO DE INSTRUÇÃO - BUSCA
17
CPU - CICLO DE INSTRUÇÃO - EXECUÇÃO
18
SISTEMA COMPUTACIONAL - ALTA ABSTRAÇÃO
Adaptado de STALLINGS 2017. Vários componentes e sinais foram omitidos para simplificar (alta abstração).
19
HARDWARE - CPU - PIPELINE
20
HARDWARE - CPU - PIPELINE
21
HARDWARE - CPU - PIPELINE EXEMPLO
5 Estágios
22
HARDWARE - CPU - PIPELINE EXEMPLO
23
HARDWARE - CPU - PIPELINE EXEMPLO
24
HARDWARE - CPU - PIPELINE
25
HARDWARE - HIERARQUIA DE MEMÓRIAS
26
HARDWARE - HIERARQUIA DE MEMÓRIAS
Solução encontrada
● Organizar as memórias em um sistema hierárquico
○ baixa latência, custo alto, porém, baixa capacidade
■ nível hierárquico mais alto
■ dados em processamento ou de interesse
■ alta frequência de acesso
○ alta latência, custo baixo, porém, alta capacidade
■ nível hierárquico mais baixo
■ dados armazenados definitivamente
■ baixa frequência de acesso
27
HARDWARE - HIERARQUIA DE MEMÓRIAS
28
HARDWARE - HIERARQUIA DE MEMÓRIAS
29
HARDWARE - HIERARQUIA DE MEMÓRIAS
● HIT
○ palavra é encontrada no nível procurado
● MISS
○ palavra não está no nível procurado, busca passa para o
próximo nível
30
HARDWARE - MEMÓRIA PRINCIPAL
Memória Principal
● Armazenamento volátil e de alto desempenho
○ dados e instruções dos programas/processos
● Composto por vetor de Células
○ cada célula armazena 1 bit
○ organiza-se as células em palavras de 8 bits (1 byte)
■ palavra
● Endereçamento por palavra
○ Exemplo: capacidade de 1024 bits (1 KiB)
■ 8 bits por palavra
■ 1024 / 8 = 128 palavras endereçáveis
31
HARDWARE - MEMÓRIA PRINCIPAL
Memória Principal
● Contém portas de Endereço e Dados
○ MAR e MBR
○ capacidade de endereçamento = núm de bits em MAR
■ log2(capacidade de endereços) * tamanho da palavra
○ tamanho da palavra = núm bits de MBR
● Endianness (Extremidade)
○ dados são maiores do que as palavras endereçáveis
■ little-endian
● Least Significant Byte (LSB) no endereço baixo
● padrão das arquiteturas x86
■ big-endian
● Most Significant Byte (MSB) no endereço baixo
32
HARDWARE - MEMÓRIA PRINCIPAL
33
CONCEITOS DE SOFTWARE
34
SOFTWARE
35
SOFTWARE - TRADUTOR
36
SOFTWARE - TRADUTOR
● Código-objeto (programa-objeto)
○ É a solução desenvolvida pelo programador já em linguagem
aceita pela máquina (CPU)
○ Não significa que é executável (ainda)
■ não é um código-executável
■ chamada a funções de bibliotecas externas
linguagem C
printf pertence à biblioteca stdio.h
37
SOFTWARE - TRADUTOR
Dois tipos
● Montador
○ linguagem de montagem para Código-objeto
■ linguagem de montagem é particular de cada arquitetura
de computador (máquina)
○ pouca otimização no código do usuário
● Compilador
○ linguagens de alto nível para linguagem de montagem
○ normalmente, aplica otimizações no código do usuário
○ chama montador e outros para gerar um código executável
final
38
SOFTWARE - TRADUTOR
39
SOFTWARE - INTERPRETADOR
40
SOFTWARE - INTERPRETADOR
41
SOFTWARE - TRADUTOR VS INTERPRETADOR
TRADUTOR INTERPRETADOR
42
SOFTWARE - LINKER
43
SOFTWARE - LINKER
44
SOFTWARE - LOADER
45
SOFTWARE - DEPURADOR
46
REFERÊNCIAS
47