Академический Документы
Профессиональный Документы
Культура Документы
Introduo
Computador Moderno
Componentes fsicos (hardware)
Um ou mais processadores
Memria
Discos
Impressoras
Vrios outros dispositivos de E/S (tela, mouse)
Computador Moderno
Componentes fsicos (hardware)
Um ou mais processadores
Memria
Discos
Impressoras
Vrios outros dispositivos de E/S (tela, mouse)
Sistema Computacional em
Camadas
Tanenbaum, Modern Operating Systems 3 e, (c) 2008 Prentice-Hall, Inc. All rights reserved.
Sistema Computacional em
Camadas
No pode executar
instrues que afetam o
controle da mquina ou
fazem E/S
GUI ou
shell
Tanenbaum, Modern Operating Systems 3 e, (c) 2008 Prentice-Hall, Inc. All rights reserved.
Processador
Memria
Dispositivos E/S
Processos
Memria Virtual
Arquivos
Processador
Memria
Dispositivos E/S
Abstraes
Processos
Memria Virtual
Arquivos
Processador
Memria
Dispositivos E/S
Exemplos?
no espao
Ex.: dados de diferentes usurios/arquivos podem
compartilhar o espao em disco
Um pouco de hardware
um computador tpico
CPU
Register file
PC
ALU
System bus
Memory bus
Main
memory
I/O
bridge
Bus interface
I/O bus
USB
controller
Mouse Keyboard
Graphics
adapter
Disk
controller
Display
Disk
Exemplos de registradores
PC (program counter): contm o
endereo da prxima instruo a
ser executada
Instruction register: onde
copiada cada instruo a ser
executada
Exemplos de registradores
PC (program counter): contm o
endereo da prxima instruo a
ser executada
Instruction register: onde
copiada cada instruo a ser
executada
Memria
Logicamente, a memria
principal corresponde a um
enorme vetor (array) de bytes
cada posio tem um endereo
nico (o ndice do vetor)
Hierarquia de Memria
L0:
Registers
Smaller,
faster,
and
costlier
(per byte)
storage
devices
L1:
L2:
L3:
Larger,
slower,
and
cheaper
(per byte)
storage
devices
L4:
L5:
On-chip L1
cache (SRAM)
Off-chip L2
cache (SRAM)
Main memory
(DRAM)
Resoluo
Tmdio = 0,7*2 + (0,3*0,95)*(3+2) + (0,3*0,05)*(10+3+2) = 3,05
Tempo
mdio
para
acesso
cache L1
Tempo
mdio
para
acesso
cache
L2
Software Bsico
[A. Raposo e M. Endler, PUC-Rio, 2008]
Conhecendo mais sobre o que est por baixo do programa, voc pode
escrever programas mais eficientes e confiveis
Abstraes em um sistema de computao:
Programa de
usurio
Aplicaes: jogos, editores,
browsers, media players
Escritos geralmente em
linguagem de alto nvel (C, C+
+, C#, Java etc.)
?????
Hardware
Linguagem de
mquina: binria
(0,1) pouco legvel
por humanos
Software Bsico
[A. Raposo e M. Endler, PUC-Rio, 2008]
Conhecendo mais sobre o que est por baixo do programa, voc pode
escrever programas mais eficientes e confiveis
Abstraes em um sistema de computao:
Programa de
usurio
Programa em
Assembly
Sistema
Operacional
Hardware
Linguagem de
mquina: binria
(0,1) pouco legvel
por humanos
Gerando um executvel
unix> gcc o hello hello.c
1.
2.
3.
4.
5.
hello.c
programafonte
(texto)
#include <stdio.h>
int main()
{
printf(hello, world\n);
}
hello.i
prprocessador programa-fonte
modificado
Gerando um executvel
unix> gcc o hello hello.c
1.
2.
3.
4.
5.
hello.c
programafonte
(texto)
#include <stdio.h>
int main()
{
printf(hello, world\n);
}
hello.i
hello.s
prcompilador
processador programa-fonte
programa
modificado
Assembly
(texto)
Gerando um executvel
unix> gcc o hello hello.c
1.
2.
3.
4.
5.
hello.c
programafonte
(texto)
#include <stdio.h>
int main()
{
printf(hello, world\n);
}
hello.i
hello.s
prcompilador
processador programa-fonte
programa
modificado
Assembly
(texto)
Gerando um executvel
unix> gcc o hello hello.c
1.
2.
3.
4.
5.
hello.c
programafonte
(texto)
hello.i
hello.s
prcompilador
processador programa-fonte
programa
modificado
Assembly
(texto)
#include <stdio.h>
int main()
{
printf(hello, world\n);
}
hello.o
montador
(assembler) programaobjeto relocvel
(binrio)
Opo -c
Os mdulos de programas, compilados ou montados, so armazenados em um formato
intermedirio (Programa-Objeto Relocvel)
Gerando um executvel
unix> gcc o hello hello.c
1.
2.
3.
4.
5.
#include <stdio.h>
int main()
{
printf(hello, world\n);
}
printf.o
hello.c
programafonte
(texto)
hello.i
hello.s
prcompilador
processador programa-fonte
programa
modificado
Assembly
(texto)
hello.o
hello
montador
ligador (linker)
(assembler) programaprogramaobjeto relocvel
objeto
(binrio)
executvel
(binrio)
Execuo de um programa
Processo: Um programa em execuo
1. Ao digitar hello, os caracteres so passados para
um registrador e depois para memria principal
Execuo de um programa
1. Ao digitar Enter, sabe-se que acabou o comando
So executadas instrues para copiar cdigo e dados do
programa hello do disco para a memria principal
Execuo de um programa
1. PC aponta para o endereo de memria onde o
programa hello est
2. Processador executa instrues em linguagem de
mquina da funo main() do programa
Editor de
Texto
Gerenciador de
Imagens
Sistemas Distribudos
Processos em mquinas distintas e que se
comunicam
Web
browser
Web
server