Escolar Documentos
Profissional Documentos
Cultura Documentos
http://www.votepelosanimais.org.br/
Reconhecer os principais
componentes de Hardware de um
computador
http://mundohoje.com.br/alguns-conceitos-de-hardware-e-software.html
• Hardware é a parte física do computador,
peças encaixes, fios e chips. Software é algo
que não se pode pegar e determina o
comportamento e a função a ser executada.
Ou seja , o hardware é o equipamento. O
software é o programa. Eles trabalham em
estreita colaboração.
5
Hardware e Software
• Tem gente que diz que Hardware é aquilo que
se chuta...
• E Software é aquele que se xinga!
6
Hardware e Software.
Duração: 6’13’’
Fonte: http://www.youtube.com/watch?v=dgkxCLOfB50
Filme
7
HARDWARE
A
– Dispositivos de Entrada/Saída (ou dispositivos de
I/O – Input/Output)
– Barramento, ou BUS
9
Sistema Computacional Completo
10
http://dc407.4shared.com/doc/7tmsLHeo/preview.html
CPU ou UCP
• A CPU é o principal componente do
computador, pois é o responsável pela
execução das instruções dos programas e do
próprio Sistema Operacional.
• É o “motor” do computador!
11
CPU ou UCP
http://computer.greavek.com/hardware/motherboard2.html
• Fica localizada na placa-mãe (mother board)
do computador
12
CPU ou UCP
http://www.ebah.com.br/content/ABAAAATCcAH/arquitetura-computadores
• A CPU organiza-se basicamente em:
– ULA: Unidade de Lógica e Aritmética
– UC: Unidade de Controle
– Registradores
13
CPU ou UCP
http://minerva.ufpel.edu.br/~guntzel/TD/projeto_ULA.pdf
• A unidade lógico-aritmética (ULA) é
responsável pelas operações lógicas e
aritméticas básicas num processador.
• As operações aritméticas tipicamente
realizadas por uma ULA são adição, subtração,
incremento e decremento.
• Dentre as operações lógicas citam-se o E, o
OU.
14
CPU ou UCP
• A unidade de controle (UC) : é a unidade que
http://www.ufpa.br/dicas/mic/mic-proc.htm
armazena a posição de memória que contém
a instrução que o computador está
executando nesse momento. Ela informa à
ULA qual operação a executar, buscando a
informação (da memória) que a ULA precisa
para executá-la. Depois, transfere o resultado
de volta para o local apropriado da memória.
A seguir, a unidade de controle vai para a
próxima instrução.
15
CPU ou UCP
http://www.di.ufpb.br/raimundo/Hierarquia/Registradores.html
• Registradores
• Em um sistema de computação, a destinação final do
conteúdo de qualquer tipo de memória é o
processador (a CPU). Isto é, o objetivo final de cada
uma das memórias (ou do subsistema de memória) é
armazenar informações destinadas a serem, em algum
momento, utilizadas pelo processador. Ele é o
responsável pela execução das instruções, pela
manipulação dos dados e pela produção dos resultados
das operações.
16
CPU ou UCP
http://www.di.ufpb.br/raimundo/Hierarquia/Registradores.html
• Registradores
• As ações operativas do processador são realizadas nas
suas unidades funcionais: na unidade aritmética e
lógica - ULA (Aritmetic and Logic Unit), na unidade de
ponto flutuante - UFP (Float Point Unit - FPU) ou talvez
em uma unidade de processamento vetorial. No
entanto, antes que a instrução seja interpretada e as
unidades da CPU sejam acionadas, o processador
necessita buscar a instrução de onde ela estiver
armazenada (memória cache ou principal) e armazená-
la em seu próprio interior, em um dispositivo de
memória denominado registrador de instrução.
17
CPU ou UCP
http://www.di.ufpb.br/raimundo/Hierarquia/Registradores.html
• Registradores
• Em seguida a este armazenamento da instrução, o
processador deverá, na maioria das vezes, buscar dados
da memória (cache, principal ou mesmo de unidades
de disco em fita) para serem manipulados na ULA.
Esses dados também precisam ser armazenados em
algum local da CPU até serem efetivamente utilizados.
Os resultados de um processamento (de uma soma,
subtração, operação lógica, etc.) também precisam, às
vezes, ser guardados temporariamente na CPU, ou para
serem novamente manipulados na ULA por uma outra
instrução, ou para serem transferidos para uma
memória externa à CPU. 18
CPU ou UCP
http://www.di.ufpb.br/raimundo/Hierarquia/Registradores.html
• Registradores
• Esses dados são armazenados na CPU em pequenas
unidades de memória, denominadas registradores.
19
CPU ou UCP
http://schoolnet.gov.mt/keith.aquilina/resources/storage/Data_registers.htm
• Ou seja, os Registradores armazenam todas as
http://www.di.ufpb.br/raimundo/Hierarquia/Registradores.html
http://www.c-jump.com/CIS77/ASM/Instructions/lecture.html
informações referentes a execução de um programa!
20
VAMOS PENSAR?
Atividade:
Em equipes de 4 pessoas, relembre o que são os sistemas
multitarefa.
Ok, agora raciocine: quem é que executa os programas
em um computador? É a CPU, ok?
Muito bem, se pensarmos em um computador que tem
apenas uma CPU (com apenas UM núcleo), quantos
programas podem realmente ser executados AO MESMO
TEMPO? Lembre que até pouco tempo atrás esta era a
realidade dos computadores...
Pois bem, discuta com seus colegas da equipe COMO os
computadores conseguiam executar vários programas
simultaneamente, se tinham apenas uma CPU.
22
Para aprender um pouco mais sobre CPUs,
acesse os links recomendados abaixo.
Infoescola
http://www.infoescola.com/informatica/proc
essador/
O que é?
http://www.cultura.ufpa.br/dicas/mic/mic-
proc.htm
24
Memória Principal ou RAM
• A memória RAM (Random Access Memory) é
http://informatica.hsw.uol.com.br/memoria-ram.htm
a forma mais conhecida de memória de
computador.
• A memória RAM é considerada de "acesso
aleatório" porque é possível acessar
diretamente qualquer célula da memória se
você conhece a linha e a coluna que cruzam
essa célula.
25
Memória Principal ou RAM
• A RAM é volátil, ou seja, perde seu conteúdo
se ficar sem energia elétrica.
• As células da memória RAM possuem, cada
uma, seu “endereço” próprio.
• Além disto, cada célula pode armazenar uma
certa quantidade de bits.
– 8 bits armazenados = 1 byte!
26
O QUE SÃO BIT E BYTE?
28 = 256
A
28
Memória Principal ou RAM
29
http://ojhemerson.wordpress.com/2011/10/14/sistemas-operacionais-3/
Memória Principal ou RAM
• Quanto de memória RAM um
computador pode ter?
• Depende do Processador!
– Existe um registrador chamado
MAR (Memory Address
Register) que determina
quantas células de memória o
processador consegue
enxergar.
30
Memória Principal ou RAM
• Por exemplo, se o registrador MAR tiver
tamanho de 16 bits:
0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1
0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0
0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 1
0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0
até
1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1
32
• Existem muitos tipos de memória RAM.
Você encontrará todos em:
• http://informatica.hsw.uol.com.br/memoria-
ram3.htm
33
O que é enviado para a CPU quando você
digita uma tecla no teclado? É o caractere
correspondente à tecla? NÃO!
O que é enviado é o código ASCII do
caractere correspondente. Por exemplo,
ao digitar um “M”, o teclado envia o
código binário 01001101.
34
COMO REPRESENTAR CAPACIDADES DE
ARMAZENAMENTO?
A
36
VAMOS PENSAR?
Atividade:
Considere um computador que tenha um processador
cujo registrador MAR tenha tamanho de 20 bits.
Considere também que cada célula de memória RAM
armazene 8 bits (ou seja, 1 byte).
Quanto será a capacidade máxima de memória RAM que
este processador conseguirá gerenciar?
37
VAMOS PENSAR?
Resolução:
Se o processador possui MAR com 20 bits, então 220 será
a quantidade de células que ele conseguirá gerenciar.
220 = 1.048.576 células
Se cada célula armazena 1 byte (8 bits), então este
processador será capaz de gerenciar até 1.048.576 bytes,
correto?
Bem, 1 Kb = 1024 bytes. Então,
1048576 / 1024 = 1024 Kbytes
Também, 1 Mb = 1024 Kbytes. Portanto:
1024 / 1024 = 1 Mbyte
Fonte: http://www.youtube.com/watch?v=mYbYGFWeG_Y&feature=relmfu
Filme
39
Dispositivos de I/O
• Os dispositivos de entrada e saída
http://www.cultura.ufpa.br/dicas/mic/mic-e-s.htm
(E/S) ou input/output (I /O) são também
denominados periféricos. Eles permitem a
interação do processador com o homem,
possibilitando a entrada e/ou a saída de
dados.
• Podem, também, fazer o
armazenamento de dados.
40
Dispositivos de I/O
• O que todos os dispositivos de entrada têm
http://www.cultura.ufpa.br/dicas/mic/mic-e-s.htm
em comum é que eles codificam a informação
que entra em dados que possam ser
processados pelo sistema digital do
computador. Já os dispositivos de
saída decodificam os dados em informação
que pode ser entendida pelo usuário.
41
• Exemplos:
Dispositivos de I/O
42
http://arquivos.unama.br/nead/graduacao/ccet/processamento_dados/2semestre/org_computadores/unidade3/unidade_3.html
Dispositivos de I/O
• Controladoras
– Controladoras são interfaces de hardware que
tem como função fazer a interconexão de um
determinado dispositivo ao sistema.
a
– É quem conhece os “detalhes técnicos” do
dispositivo controlado.
• Existem diversos tipos de controladoras, tanto on-board
quanto off-board.
43
Dispositivos de I/O
• Controladoras
a
Contr. SCSI Contr. SATA Placa Rede PCI Placa Gráfica
44
Dispositivos de I/O
• Device Drivers
http://www.thecnica.com/artigos/PnP_08_07.pdf
– O driver nada mais é que um pequeno programa
cuja função é permitir aos aplicativos ou ao
sistema operacional propriamente dito interagir
com um dispositivo físico de hardware como uma
placa de som, vídeo ou rede.
– Independentemente do dispositivo ser do tipo
onboard ou off-board, um driver se comunica com
ele através do barramento no qual esse
dispositivo encontra-se conectado ao resto da
placa mãe. 45
Dispositivos de I/O
46
http://www.acso.uneb.br/leandro/NOVOSITE/academic/docs/soI/107.pdf
Dispositivos de I/O
• Técnica de DMA
– DMA significa Direct Memory Access.
– Esta técnica permite que os dispositivos de um
computador acessem a memória RAM, tanto para
leitura quanto para escrita, de modo
independente, sem auxílio da CPU.
47
Dispositivos de I/O
• Técnica de DMA
http://www.thecnica.com/artigos/PnP_08_07.pdf
– O DMA permite que componentes como discos
rígidos, placas gráficas, de rede e som acessem a
memória diretamente, o que aumenta o
desempenho na transferência de dados
48
Dispositivos de I/O
• Técnica de DMA
http://encyclopedia2.thefreedictionary.com/dma
– Antes do DMA, e CPU era obrigada a controlar
todas as operações de I/O, o que a deixava
ocupada sem necessidade!
“PIO is an older method that has
since been replaced by DMA in most
applications due to certain
advantages. DMA is newer and better
than PIO in many ways and many
devices now use mainly DMA with
only minimal PIO support for
compatibility”
FONTE:
http://www.differencebetween.net/technology/difference-
between-dma-and-pio/
49
Para aprender um pouco mais sobre os
dispositivos de entrada e saída, acesse os
links recomendados abaixo.
http://www.cultura.ufpa.br/dicas/mic/mic-e-
s.htm
http://windows.microsoft.com/pt-
br/windows-vista/What-is-a-driver
http://pcworld.uol.com.br/dicas/2008/09/05
/drivers-saiba-o-que-sao-para-que-servem-e-
como-cuidar-bem-deles/
http://www.differencebetween.net/technolo
gy/difference-between-dma-and-pio/
http://www.clubedohardware.com.br/dicion
ario/termo/360
50
FIM DO MÓDULO 1 – Parte I
http://www.forumpcs.com.br/comunidade/viewtopic.php?t=141948
• Barramento é um
conjunto de pequenas
“trilhas” que estão na
placa-mãe, cuja função
é interligar os
componentes do
computador
2
Barramento ou BUS
http://alumni.ipt.pt/~sandrina/trabalhos/como_funciona_um_computador.htm
• Os barramentos podem ser:
– Barramento Local ou Processador-Memória
– Barramento de E/S (I/O)
3
Barramento ou BUS
http://www.tecmundo.com.br/hardware/1736-o-que-e-barramento-.htm
• Há três funções distintas nos principais
barramentos E/S de um computador, que, em
termos simples, conectam o processador, a
memória e os outros componentes
conectados a ele pelo que chamamos de
barramentos de entrada e saída.
4
Barramento ou BUS
http://www.tecmundo.com.br/hardware/1736-o-que-e-barramento-.htm
– Barramento de dados – como o próprio nome já
deixa a entender, é por este tipo de barramento
que ocorre as trocas de dados no computador,
tanto enviados quanto recebidos.
– Barramento de endereços – indica o local onde os
processos devem ser extraídos e para onde devem
ser enviados após o processamento.
– Barramento de controle – atua como um
regulador das outras funções, podendo limitá-las
ou expandi-las em razão de sua demanda.
5
http://www.di.ufpb.br/raimundo/PCaFundo/placa_mae/placamae.htm
• Existem vários tipos de barramentos de
E/S, como por exemplo ISA, AGP, PCI, PCI
Express, AMR e outros
6
Para aprender um pouco mais sobre os
conceitos de Barramentos, acesse os links
recomendados abaixo.
Tipos de Barramentos:
http://www.infowester.com/barramentos.php
Placas-mãe e Barramentos:
http://www.hardware.com.br/guias/placas-mae-
barramentos/
O que é Barramento
http://www.tecmundo.com.br/hardware/1736-o-
que-e-barramento-.htm
7
Memória Cache
http://www.hardware.com.br/termos/memoria-cache
• A memória Cache surgiu quando percebeu-se
que as memórias não eram mais capazes de
acompanhar o processador em velocidade,
fazendo com que muitas vezes ele tivesse que
ficar "esperando" os dados serem liberados
pela memória RAM para poder concluir suas
tarefas, perdendo muito em desempenho
8
Memória Cache
• A Cache sempre será menor que a RAM, e
armazenará apenas uma certa quantidade de
dados desta.
• Ou seja, a Cache simplesmente mantém uma
A
cópia de um pequeno pedaço da RAM
• Para quê?
– Ela é mais rápida que a RAM, diminuindo o tempo
que o processador precisa ficar esperando por um
dado a processar.
9
Memória Cache
10
http://images.yourdictionary.com/cache
Memória Cache
11
http://fourier.eng.hmc.edu/e85/lectures/memory/node5.html
Memória Cache
http://www.forumpcs.com.br/comunidade/viewtopic.php?t=105014
• Funcionamento da Cache:
– O funcionamento da memória Cache baseia-se
nos conceitos de Localidade Espacial e Localidade
Temporal.
12
Memória Cache
– Localidade Espacial: quando o processador acessa
uma determinada posição da memória RAM, há
uma grande chance de que a próxima posição a
ser acessada estar próxima da última
A
– Localidade Temporal: quando o processador
acessa uma determinada posição da memória
RAM, há uma grande chance de acessar esta
mesma posição em um intervalo de tempo
relativamente curto
13
A Saga de um Processador
Duração: 8’14’’
Fonte: http://www.youtube.com/watch?v=3W33ojPv_ws
Filme
14
Para aprender um pouco mais sobre os
Memória Cache, acesse os links
recomendados abaixo.
15
VAMOS PENSAR?
Atividade:
Em equipes de 4 pessoas.
É muito importante o bom entendimento do conceito de
localidade, tanto o temporal quanto o espacial, para
compreendermos vários aspectos de funcionamento dos
sistemas operacionais.
Portanto, discuta com seus colegas e tente reescrever
este conceito. Refaça a conexão entre este conceito e o
funcionamento da memória cache, reexplicando os seus
benefícios.
16
Memórias Secundárias
http://www.laercio.com.br/artigos/HARDWARE/HARD-016/HARD-016.HTM
• São as memórias não-voláteis e com grande
capacidade de armazenamento
– Discos Rígidos, disquetes, CD’s, DVD’s, fitas
magnéticas, pendrive, etc... etc...
17
Hierarquia das Memórias
18
http://www.di.ufpb.br/raimundo/Hierarquia/Hierarquia.html
PESQUISE!
A
19
SOFTWARE
http://www.tecmundo.com.br/mac-os-x/1636-o-que-e-kernel-.htm
• O Kernel é um componente do Sistema
Operacional, mas fica tão escondido que a
maioria dos usuários domésticos sequer ouviu
falar nele. Isso se deve à sua importância: ao
contrário do que pode parecer, ele é tão
essencial para o funcionamento de um
computador que é melhor mantê-lo a salvo de
pessoas bisbilhoteiras e inexperientes.
21
Kernel
http://www.tecmundo.com.br/mac-os-x/1636-o-que-e-kernel-.htm
• Ele começa a funcionar assim que o
computador é ligado; nesse momento ele
inicia a detecção de todo o hardware
indispensável ao funcionamento da máquina
(monitor, placa de vídeo etc.).
22
Kernel
http://www.tecmundo.com.br/mac-os-x/1636-o-que-e-kernel-.htm
• O Sistema Operacional é carregado em
seguida e, uma vez que o usuário faça seu
login, o Kernel passa a administrar as
principais funções dentro do S.O.: isso inclui o
gerenciamento da memória, dos processos,
dos arquivos e de todos os dispositivos
periféricos
23
Kernel
• O kernel não é, necessariamente, um software
http://www.infowester.com/historia_linux.php
manipulável pelo usuário. Ou seja, não se
trata de algo tão simples a ponto de poder ser
instalado e, logo em seguida, estar pronto
para uso, como um programa de edição de
textos, por exemplo. O kernel é uma base
complexa, que serve de estrutura para o
sistema, atuando nos "bastidores". Assim, o
usuário sequer precisa saber de sua existência
para poder utilizar o computador.
24
Kernel
25
http://www.vivaolinux.com.br/artigo/Novidades-do-Kernel-2.6.35
Tipos de Kernel
• Um Kernel pode ser estruturado de duas
formas:
– Kernel Monolítico
– Microkernel
A
26
Kernel Monolítico
http://members.multimania.co.uk/bootpro/articles/pt_intro_prj-kernel.pdf
• Os kernels monolíticos são aqueles que
contém todos os sub-sistemas (serviços
fornecidos pelo kernel, como por exemplo um
sistema de arquivos) em um único executável
binário. Andrew S. Tanenbaum os define como
“A grande bagunça”. É verdade, drivers,
serviços e tudo mais estão contidos neste
mesmo binário. Esta é a forma mais comum
de kernel.
27
Kernel Monolítico
http://members.multimania.co.uk/bootpro/articles/pt_intro_prj-kernel.pdf
• Vantagens
– Normalmente um kernel monolítico tem um
desempenho melhor que outras formas de desenho
de kernel
• Desvantagens
– Um kernel monolítico tende a ser inseguro pois há um
livre acesso a todas as funções de todos os sub-
sistemas
– A manutenção do kernel em nível de programação é
muito prejudicada pois o kernel deve ser recompilado
e substituído por completo para ter acesso a um novo
recurso do kernel
28
Kernel Monolítico
29
http://under-linux.org/blogs/code/linus-torvalds-afirma-o-linux-esta-inchado-1335/
http://members.multimania.co.uk/bootpro/articles/pt_intro_prj-kernel.pdf
• Exemplos de sistemas com kernel
monolítico:
30
Microkernel
http://members.multimania.co.uk/bootpro/articles/pt_intro_prj-kernel.pdf
• Os microkernels são kernels que tem um
“framework” básico que através de troca de
mensagens, “conversa” como os sub-sistemas
que estão em nível de usuário, funcionando
como programas normais. Por exemplo, o sub-
sistema que implementa um sistema de
arquivos é executado como se fosse um
programa qualquer
31
Microkernel
http://members.multimania.co.uk/bootpro/articles/pt_intro_prj-kernel.pdf
• Vantagens
– Os microkernels são modulares, cada sub-sistema do
microkernel funciona como plug-ins e por isso o
microkernel é extremamente flexível
– Há também a vantagem de um microkernel também pode
ter um executável binário menor que um kernel monolítico
por que o microkernel permite a utilização plug-ins que
podem ser usados de acordo com as necessidades do
projeto
• Desvantagens
– Os microkernels tem um desempenho menor comparado
com um kernel monolítico justamente pelo fato de fazer
um uso muito intenso de troca de mensagens
32
Monolítico x Microkernel
http://mobile.osnews.com/printer.php?news_id=15814
Na arquitetura Monolítica todas Na arquitetura Microkernel as
as rotinas do sistema ficam rotinas do sistema estão fora do
agrupadas em um único bloco de núcleo, sendo executadas como
programa. se fossem programas comuns.
33
Para aprender um pouco mais sobre os Kernel,
acesse os links recomendados abaixo.
34
Linus Torvalds na Globo
Duração: 5’16’’
Fonte: http://www.youtube.com/watch?v=owrai0okB3A
Filme
35
VAMOS PENSAR?
Atividade:
Em equipes de 4 pessoas.
Discuta com seus colegas, pesquise e responda:
É possível proceder algum tipo de alteração no kernel de
um sistema operacional? Exemplifique.
36
System Call
• Como viram, o kernel pode ser entendido
como o principal componente do sistema
operacional, e desta forma deve estar de
algum modo protegido do acesso
a
indiscriminado por parte das aplicações.
37
System Call
• Uma System Call (chamada de sistema)
http://pt.scribd.com/doc/27743176/System-Call
é usado pela aplicação (programas) para
solicitação de serviços ao sistema operacional.
Um sistema operacional pode acessar o
hardware de um sistema diretamente, mas
um programa do usuário não tem acesso
direto ao hardware. Isto é feito para que
o kernel possa manter o sistema seguro de
programas de usuário mal-intencionados.
38
System Call
• Muitas vezes, um programa do usuário
http://pt.scribd.com/doc/27743176/System-Call
requer algumas informações do hardware
(por exemplo, de uma câmera web
para mostrar-lhe a imagem), mas não pode
obter as informações diretamente. Assim,
solicita ao sistema operacional para fornecer-
lhe a informação. Esta solicitação é feita
usando uma chamada de sistema adequada.
39
System Call
• As System Calls protegem o kernel:
40
http://ksearch.wordpress.com/2010/09/12/system-call-vs-library-function/
System Call
http://coep.vlab.co.in/?sub=29&brch=88&sim=230&cnt=351
• As aplicações só conseguem utilizar os
serviços do kernel fazendo solicitações via
System Calls:
41
• O termo system call é tipicamente
utilizado em sistemas Unix, porém em
outros sistemas o mesmo conceito é
a
apresentado com diferentes nomes,
como system services no Open VMS e
Application Program Interface (API) no
Windows da Microsoft.
42
Para aprender mais sobre system calls e sua
programação, acesse os links:
http://www.docstoc.com/docs/55683423/Chapter-
5-The-Kernel-API---System-Calls
43
Shell
• O Shell (ou Interpretador de comandos) é um
http://www.guiabrasilblog.com/o-que-e-shell/
programa que recebe e em seguida interpreta
e executa os comandos, e aparece na tela
como uma linha de comando, que é
representada por um prompt, e aguarda na
tela o comando do usuário. Então é o Shell
que faz a interpretação de comandos
digitados pelo usuário e chama os programas
44
Shell
http://blogote.com/windows/top-windows-7-themes-for-xp/6938/
http://www.remontti.com.br/blog/archives/tag/shell
• O Shell é o programa que faz o intermédio
entre o computador e usuário, é basicamente
a interface entre o mouse o teclado e o
cérebro do computador.
45
Shell
• O Shell é a camada que faz a interface entre o
http://www.icefusion.com.br/o-shell/
usuário e o Kernel do Sistema Operacional.
46
Loader
http://home-dns.certto.com.br/~aguerra/capitulo1.pdf
• É o utilitário responsável por colocar
fisicamente na memória um programa para
execução. O procedimento de carga varia com
o código gerado pelo linker e, em função
deste, o loader é classificado como sendo do
tipo absoluto ou relocável.
47
Loader
http://home-dns.certto.com.br/~aguerra/capitulo1.pdf
• Se o código executável for do tipo absoluto, o
loader só necessita conhecer o endereço de
memória inicial e o tamanho do módulo para
realizar o carregamento. Então, o loader transfere
o programa da memória secundária para a
memória principal e inicia sua execução (loader
absoluto).
• No caso do código relocável, o programa pode ser
carregado em qualquer posição de memória, e o
loader é responsável pela relocação no momento
do carregamento (loader relocável).
48
VAMOS PENSAR?
Atividade:
Em equipes de 4 pessoas.
Pesquise e defina:
a) Programa-fonte;
b) Programa-objeto;
c) Programa executável
d) Compilador;
e) Linker;
f) Bibliotecas de linguagem;
g) Interpretador.
http://www.votepelosanimais.org.br/
Entender a diferença entre os
diferentes tipos existentes de S.O.
5
http://www.oficinadanet.com.br/artigo/851/o_que_e_um_sistema_operacional
O que é um Sistema Operacional?
• O sistema operacional é uma coleção de
programas que:
7
http://www.sypnet.com.br/index.php?option=com_content&view=article&id=24:sistema-operacional&catid=1:recentes
Duas principais funções do S.O.:
• Facilitar o acesso as recursos do sistema
• Compartilhar de forma organizada e protegida
os recursos do sistema
8
Visão Geral do S.O.
memória discos
Hardware
fitas
UCP
impressoras monitores
9
História do Computador em minutos.
Duração: 4’56’’
Fonte: http://www.youtube.com/watch?v=F3qWg1JBPZg
Filme
10
Conceitos Básicos e Histórico
• Quais são os conceitos básicos de um Sistema
Operacional?
– Década de 1960
– Década de 1970
– Década de 1980
– Década de 1990
– Década de 2000
11
Para aprender um pouco mais sobre a
evolução dos sistemas operacionais, acesse:
12
Introdução aos Sistemas Operacionais.
Duração: 37’33’’
Fonte: http://www.youtube.com/watch?v=Zl9w2HbUecU
Filme
13
Mainframes.
Duração: 4’37’’
Fonte: http://www.youtube.com/watch?v=Cwj6pfhWBps
Filme
14
Tipos de Sistemas Operacionais
http://informatica.hsw.uol.com.br/sistemas-operacionais3.htm
• Existem 4 tipos básicos de sistemas
operacionais. Eles são divididos em grupos
relacionados com o tipo de computador que
controlam e o tipo de aplicativos que
suportam:
– S.O. de Tempo Real
– S.O. Monousuário/Monotarefa
– S.O. Monousuário/Multitarefa
– S.O. Multiusuário
15
Tipos de Sistemas Operacionais
http://informatica.hsw.uol.com.br/sistemas-operacionais3.htm
• Sistema operacional de tempo real
– (RTOS - Real-time operating system). É utilizado
para controlar máquinas, instrumentos científicos
e sistemas industriais. Geralmente um RTOS não
tem uma interface para o usuário muito simples e
não é destinado para o usuário final, desde que o
sistema é entregue como uma "caixa selada". A
função do RTOS é gerenciar os recursos do
computador para que uma operação específica
seja sempre executada durante um mesmo
período de tempo.
16
Tipos de Sistemas Operacionais
http://informatica.hsw.uol.com.br/sistemas-operacionais3.htm
• Monousuário, monotarefa.
– O sistema operacional foi criado para que um
único usuário possa fazer uma coisa por vez. O
Palm OS dos computadores Palm é um bom
exemplo de um moderno sistema operacional
monousuário e monotarefa.
17
Tipos de Sistemas Operacionais
http://informatica.hsw.uol.com.br/sistemas-operacionais3.htm
• Monousuário, multitarefa.
– Este tipo de sistema operacional é o mais utilizado
em computadores de mesa e laptops. As
plataformas Microsoft Windows e Apple MacOS
são exemplos de sistemas operacionais que
permitem que um único usuário utilize diversos
programas ao “mesmo tempo”. Por exemplo, é
perfeitamente possível para um usuário de
Windows escrever uma nota em um processador
de texto ao mesmo tempo em que faz download
de um arquivo da Internet e imprime um e-mail.
18
Tipos de Sistemas Operacionais
http://informatica.hsw.uol.com.br/sistemas-operacionais3.htm
• Multiusuário.
– Um sistema operacional multiusuário permite que
diversos usuários utilizem simultaneamente os
recursos do computador. O sistema operacional
deve se certificar de que as solicitações de vários
usuários estejam balanceadas. Cada um dos
programas utilizados deve dispor de recursos
suficientes e separados, de forma que o problema
de um usuário não afete toda a comunidade de
usuários. Unix, VMS e sistemas operacionais
mainframe como o MVS são exemplos de sistemas
operacionais multiusuário.
19
Tipos de Sistemas Operacionais
http://informatica.hsw.uol.com.br/sistemas-operacionais3.htm
• Sistemas de Tempo Compartilhado:
– Um sistema operacional comercial multitarefa
e/ou multiusuário é classificado como sendo de
Tempo Compartilhado.
• Ou seja, os programas que estão carregados na verdade
não estão sendo executados ao mesmo tempo!
• O S.O. compartilha o tempo do processador (CPU) por
entre estes programas (roda um pouquinho um, para,
roda um pouquinho outro, para, e assim por diante).
• O usuário tem a sensação de que eles estão rodando ao
mesmo tempo!
20
Como seriam classificados os sistemas operacionais mais utilizados
atualmente?
A família Windows, sem dúvida a mais usada, pode ser classificado como
um sistema multitarefa , pois permite a execução de vários programas
simultâneos.
Apesar de poder gerenciar vários usuários (multiusuário), a Microsoft
bloqueia este recurso, que só pode ser usado nas versões server, com a
aquisição de licenças de Terminal Services (TS).
21
Sistema Operacional:
uma máquina de níveis?
http://informatica.hsw.uol.com.br/sistemas-operacionais3.htm
• Existe um conceito de níveis na arquitetura de
computadores. A ideia básica é que existem
muitos níveis nos quais o computador pode
ser considerado, do nível mais alto, onde o
usuário executa programas, ao nível mais
baixo, que consiste de transistores e fios.
22
Sistema Operacional:
uma máquina de níveis?
Utilitários
Sistema Operacional
Linguagem de Máquina
Microprogramação
Circuitos Eletrônicos
23
Para aprender um pouco mais sobre os
conceitos de Sistemas Operacionais, acesse
os links recomendados abaixo.
24
VAMOS PENSAR?
Atividade:
Em equipes de quatro pessoas.
25
VAMOS PENSAR?
Atividade:
Em equipes de quatro pessoas.
26
RESUMINDO...
Neste módulo você aprendeu o que são e quais são os tipos de
sistemas operacionais existentes (monousuário, monotarefa e
multitarefa).
Também entendeu como os sistemas operacionais evoluíram, e por
fim compreendeu que um sistema computacional pode ser
entendido como uma máquina de níveis, onde o nível mais alto está
próximo ao usuário e o mais baixo refere-se aos circuitos eletrônicos
do sistema.
FIM DO MÓDULO 2
http://www.votepelosanimais.org.br/
existentes e entender como são
executados.
Entender os conceitos de
Interrupção e Exceção.
http://pt.wikipedia.org/wiki/Programa_de_computador
• O programa de computador surgiu antes do
desenvolvimento do computador eletrônico.
Um trabalho publicado em 1843 por Ada
Lovelace, sugerindo uma forma para calcular
os números de Bernoulli através da máquina
analítica de Charles Babbage, é tido como o
primeiro programa de computador.
5
O que é um Programa?
Ada Lovelace
Máquina Analítica
Charles Babbage
6
O que é um Programa?
http://pt.wikipedia.org/wiki/Programa_de_computador
• A primeira aplicação prática da programação
surgiu com os dispositivos baseados em
cartões perfurados, que eram utilizados desde
o século XVIII na indústria da confecção. O
empresário estadunidense Hermann
Hollerith utilizou o conceito no processamento
dos dados do censo dos Estados Unidos em
1890.
7
O que é um Programa?
Perfuradora de cartões
Máquina Tabuladora
Herman Hollerith
8
O que é um Programa?
http://pt.wikipedia.org/wiki/Programa_de_computador
• Os primeiros computadores eletrônicos eram
programados somente através de linguagens de
baixo nível. Essas linguagens não disponibilizavam
um nível de abstração sobre o hardware e os
comandos eram interpretados diretamente
pelos circuitos eletrônicos. No ENIAC, um dos
equipamentos mais emblemáticos na história da
computação, a programação era realizada através
de ligações manuais, que uniam as unidades de
processamento do computador, formando uma
sequência de execução. 9
O que é um Programa?
• ENIAC
Válvula Eletrônica
10
História do ENIAC.
Duração: 6’20’’
Fonte: http://www.youtube.com/watch?v=gQbTeayG6Dg
Filme
11
O que é um Programa?
http://pt.wikipedia.org/wiki/Programa_de_computador
• As linguagens de alto nível surgiram por volta
da década de 1940 e tiveram grande impulso
com o desenvolvimento dos compiladores,
que tornaram a programação uma atividade
possível para um grande número de pessoas.
Na década de 1950 surgiu a primeira
linguagem de grande aceitação, o Fortran.
12
O que é um Programa?
• Normalmente, programas de computador são
http://pt.wikipedia.org/wiki/Software
escritos em linguagens de programação, pois
estas foram projetadas para aproximar-se das
linguagens usadas por seres humanos.
Raramente a linguagem de máquina é usada
para desenvolver um programa. Atualmente
existe uma quantidade muito grande de
linguagens de programação, dentre elas as
mais populares no momento são Java, Visual
Basic, C, C++, PHP, dentre outras.
13
Para aprender um pouco mais sobre os
pioneiros da computação e também dar boas
risadas, tente encontrar o livro:
Leitura OBRIGATÓRIA!
14
Como um programa é executado?
• Um programa de computador é composto por
http://pt.wikipedia.org/wiki/Software
uma sequência de instruções, que é
interpretada e executada por um processador
• Em um programa correto e funcional, essa
sequência segue padrões específicos que
resultam em um comportamento desejado.
15
Como um programa é executado?
• Quando um software está representado como
http://pt.wikipedia.org/wiki/Software
instruções que podem ser executadas
diretamente por um processador dizemos que
está escrito em linguagem de máquina.
16
Como um programa é executado?
• A execução de um software também pode ser
http://pt.wikipedia.org/wiki/Software
intermediada por um programa interpretador,
responsável por interpretar e executar cada
uma de suas instruções. Uma categoria
especial e notável de interpretadores são
as máquinas virtuais, como a Máquina virtual
Java (JVM), que simulam
um computador inteiro, real ou imaginado.
17
VAMOS PENSAR?
Qual outro interpretador também é muito usado
atualmente, por muuuuuita gente?
Os _ _ _ _ _ _ _ _ _ _ _ !
18
Jeliot – a Java program visualization system.
Duração: 0’45’’
Fonte: http://www.youtube.com/watch?v=f5ahEgu5Ba0
Filme
19
http://www.cristiancechinel.pro.br/my_files/algorithms/bookhtml/node19.html
Linguagem de Máquina e Assembly
• A linguagem de máquina é composta
somente por números, representados de
forma binária, que, sob o ponto de vista
do computador, representam as
operações e os operandos que serão
usados no processamento do programa.
Para um ser humano, a linguagem de
máquina é dificílima de se compreender.
Assim, existe uma linguagem
representada por comandos mas que
reproduz as tarefas que serão executadas
dentro do computador, a linguagem de
montagem (assembly).
20
http://www.cristiancechinel.pro.br/my_files/algorithms/bookhtml/node19.html
Linguagem de Máquina e Assembly
• Abaixo é mostrado o início de um programa que escreve a
frase “Olá Mundo” no monitor. Na coluna da esquerda está o
endereço relativo de memória, na coluna do centro o
programa escrito em linguagem de máquina e na coluna da
direita a representação em caracteres ASCII
00000000 7F 45 4C 46 01 01 01 00 00 00 00 00 00 00 00 00 .ELF............
00000010 02 00 03 00 01 00 00 00 D0 82 04 08 34 00 00 00 ............4...
00000020 BC 0C 00 00 00 00 00 00 34 00 20 00 07 00 28 00 ........4. ...(.
00000030 24 00 21 00 06 00 00 00 34 00 00 00 34 80 04 08 ..!.....4...4...
00000040 34 80 04 08 E0 00 00 00 E0 00 00 00 05 00 00 00 4................
21
Interrupção e Exceção
• Durante a execução de um programa, alguns
http://www.truenet.com.br/vivianef/SOI.html
eventos podem ocorrer durante seu
processamento, obrigando a intervenção do S.O.
Este tipo de intervenção é denominado
interrupção ou exceção e pode ser resultado da
execução de instruções do próprio programa,
gerado pelo SO ou por algum dispositivo de
hardware.
• Nestas situações o fluxo de execução do
programa é desviado para uma rotina especial de
tratamento. O que diferencia uma interrupção de
uma exceção é o tipo de evento que gera esta
condição. 22
Interrupção
• Quando algo acontece no ambiente e
necessita da atenção do processador, o
programa que está sendo executado precisa
ser interrompido para que o S.O. rode uma de
a
suas rotinas de tratamento.
Hmmm... Lembro de ter
visto isto no filme “A Saga
de um Processador”!
Este evento é chamado de
Interrupção.
23
Interrupção
http://www.inf.puc-rio.br/~inf1018/2010.2/interrupcoes.html
• Interrupções geradas por algum dispositivo
externo à CPU, como teclado ou controlador
de disco, são exemplos de
interrupções assíncronas (ocorrem
independentemente das instruções que a CPU
está executando).
24
Interrupção
http://www.inf.puc-rio.br/~inf1018/2010.2/interrupcoes.html
• Quando ocorre uma interrupção, a CPU
interrompe o processamento do programa em
execução e executa um pedaço de código
(tipicamente parte do sistema operacional)
chamado de tratador de interrupção. Em
muitos casos, após a execução do tratador, a
CPU volta a executar o programa
interrompido.
25
Interrupção
http://pt.scribd.com/doc/5565518/02CONCORRENCIA
• Procedimento do tratamento de Interrupções:
26
Interrupção
http://www.inf.puc-rio.br/~inf1018/2010.2/interrupcoes.html
• Um tipo importante de interrupção de
hardware é a interrupção do relógio. Em
particular, esse mecanismo permite ao
sistema operacional atribuir quotas de tempos
de execução (fatias de tempo) para cada um
dos programas em um sistema multitarefa.
27
Interrupção
http://www.inf.puc-rio.br/~inf1018/2010.2/interrupcoes.html
• A cada interrupção do relógio, o tratador pode
verificar se a fatia de tempo do programa em
execução já se esgotou e, se for esse o caso,
suspendê-lo e acionar o escalonador para que
esse escolha outro programa para colocar em
execução.
28
Exceção
• A exceção ocorre quando a execução do
programa é interrompida, mas não por causa
de um evento externo (como na interrupção),
mas sim em função de algum evento interno
a
ao programa.
29
Exceção
• Ao contrário da interrupção, a exceção é um
evento síncrono, ou seja, quando um
determinado evento acontece em um
programa, se este programa for novamente
a
executado com os mesmos dados de entrada,
o evento ocorrerá novamente, no mesmo
ponto onde já havia ocorrido.
30
Exceção
• Considere:
A := 20
B := 0
a
• O que vai
acontecer?
31
Exceção
• Exemplo de
tratamento de
Exceção:
a
32
http://pt.kioskea.net/contents/langages/langages.php3
Certas linguagens pertencem, em certa medida, às duas categorias:
interpretadas e compiladas (LISP, Java, Python), porque o programa
escrito com estas linguagens pode, em certas condições, sofrer uma fase
de compilação intermédia para um arquivo escrito numa linguagem que
não é compreensível (por conseguinte, diferente do arquivo fonte) e não
executável (necessidade de um intérprete).
Os applets Java, pequenos programas inseridos às vezes nas páginas
Web, são arquivos que são compilados mas que se podem executar
apenas a partir de um navegador Internet.
33
34
http://pt.kioskea.net/contents/langages/langages.php3
VAMOS PENSAR?
Atividade: Formem uma equipe de quatro pessoas e
discuta os seguintes assuntos. Façam um resumo do que
entenderam de cada um deles:
35
Para aprender um pouco mais sobre
linguagens de programação, acesse os links
recomendados abaixo.
http://pt.kioskea.net/contents/langages/lang
ages.php3
http://www.oficinadanet.com.br/artigo/prog
ramacao/diferencas_entre_linguagem_compi
lada_e_linguagem_interpretada
http://www.dee.feis.unesp.br/graduacao/dis
ciplinas/langc/apostila/c_04_linguagem_de_
programacao.pdf
36
Buffer
http://pt.wikipedia.org/wiki/Buffer_(ci%C3%AAncia_da_computa%C3%A7%C3%A3o)
• Em ciência da computação, buffer (retentor) é uma
região de memória temporária utilizada para escrita e
leitura de dados. Os dados podem ser originados de
dispositivos (ou processos) externos ou internos ao
sistema. Os buffers podem ser implementados
em software (mais usado) ou hardware. Normalmente
são utilizados quando existe uma diferença entre a taxa
em que os dados são recebidos e a taxa em que eles
podem ser processados, ou no caso em que essas taxas
são variáveis.
• Os buffers são mecanismos muito utilizados em
aplicações multimídia, em especial nas aplicações
de streaming. 37
Spool de Impressão (Spooling)
http://cemshost.com.br/bcc/w/Cap%C3%ADtulo_1_-_Introdução
• Spooling é a técnica de escrever dados em um
local temporário (no disco, por exemplo) para
que eles possam ser acessados no futuro. É
geralmente utilizado quando dois devices
possuem velocidades de leitura/escrita muito
diferentes; assim é possível ajustar a mesma a
cada um deles.
38
• Exemplos de Spool:
Spool de Impressão (Spooling)
39
http://www.freebsd.org/doc/en/books/corp-net-guide/printserving-network.html
Reentrância
http://www.ebah.com.br/content/ABAAABlZUAH/apostila-sistemas-operacionais
• É comum, em sistemas multiprogramáveis,
vários usuários utilizarem os mesmos
aplicativos simultaneamente, como editores
de texto, compiladores e outros utilitários.
Nesta situação, se cada usuário que utilizasse
um destes aplicativos trouxesse o código
executável para a memória, haveria então
diversas cópias de um mesmo programa
ocupando espaço na memória, o que causaria
um grande desperdício de espaço. 40
Reentrância
http://www.ebah.com.br/content/ABAAABlZUAH/apostila-sistemas-operacionais
• Reentrância é a capacidade de um código
executável (código reentrante) ser
compartilhado por vários usuários, exigindo
apenas uma cópia do programa em memória.
A reentrância permite que cada usuário esteja
executando um trecho diferente do código
reentrante, manipulando dados próprios,
exclusivos de cada usuário.
41
RESUMINDO...
Você aprendeu que os processadores (CPU’s) só conseguem executar código
binário, portanto todos os programas devem estar neste formato para serem
reconhecidos. Desta forma, ou os programas precisam ser compilados ou
interpretados.
Aprendeu também que os buffers ajudam no desempenho do sistema, uma vez
que ajudam a diminuir a diferença de velocidade entre processador e dispositivos
de E/S. O spooling também tem esta função, porém exclusivamente para com as
impressoras.
Por fim, viu que a reentrância ajuda a economizar a memória principal do
sistema, pois mantém apenas uma cópia de um programa carregada e que pode
ser compartilhada por vários usuários ou várias sessões de um mesmo usuário.
FIM DO MÓDULO 3
a
• Que possa ser acessada concorrentemente
por vários processos;
Tipicamente, a necessidade de armazenar
grandes volumes de informação!
Introdução a Sistemas de Arquivos
• Arquivo: um conjunto de bytes armazenado
em um dispositivo não volátil.
• Além dos bytes de dados, Arquivos têm
Metadados:
a
– Identificar a informação armazenada (nome e
extensão, opcionalmente);
– Permissões de acesso aos dados;
– Local onde os dados estão armazenados;
– Outras informações...
Existem regras e exceções para a criação de
nomes de arquivos, tanto no sistema
operacional Windows quanto nos Unix-like,
como o Linux.
https://www.cursosdeinformaticabasica.com.br/q
uais-sao-os-caracteres-invalidos-para-a-criacao-
de-arquivos-e-pastas/
https://www.oficinadanet.com.br/artigo/linux/list
a_de_comandos_em_arquivos_e_diretorios_no_li
nux
Introdução a Sistemas de Arquivos
• Duas principais funções do Sistema de
Arquivos :
– define a forma como o sistema operacional
organiza os dados e os metadados dos arquivos
a
em um dispositivo de armazenamento
permanente.
– Organização de um cache e suas estruturas de
dados em memória com parte das informações do
disco: eficiência.
Introdução a Sistemas de Arquivos
• Tudo em um S.O. é arquivo!
• Diretório: é um arquivo especial que
armazena parte dos metadados de outros
arquivos.
a
https://www.jntelecom.com.br/conhecendo-a-estrutura-de-diretorios-do-linux/
Introdução a Sistemas de Arquivos
• Diretórios contém arquivos (de dados ou
outros diretórios);
• Os diretórios são organizados em Árvore:
Introdução a Sistemas de Arquivos
• Caminhos: junção de nomes de diretórios até
chegar a um determinado arquivo.
– Caminhos absolutos
a
– Caminhos relativos
Introdução a Sistemas de Arquivos
• Diretório Corrente: local onde o processo está
executando na árvore de diretórios.
a
• Exemplos sobre caminhos:
Introdução a Sistemas de Arquivos
http://www.cassic.com.br/tutoriais/lenny/caminho_de_diretorios
Introdução a Sistemas de Arquivos
https://www.qconcursos.com/questoes-de-concursos/questoes/a39fca0c-5d
• Como os arquivos são gravados no disco?
– Disco: organizado em setores, trilhas e cilindros.
https://slackspace.com.br/
https://www.profissionaisti.com.br/diferenca-entre-cluster-e-setor-de-um-disco-rigido-hd/
Introdução a Sistemas de Arquivos
• Formatação Física do disco:
– Na fábrica: é gravada, na placa lógica, a tabela de
endereçamento das áreas de armazenamento do
HD;
– Processo onde o disco é “mapeado” em setores,
cada um com seu endereço físico utilizado pelo
S.O. para organizar as informações gravadas;
– Setor: menor porção física de um HD mapeado
no disco rígido, com tamanho de 512 bytes cada.
https://www.profissionaisti.com.br/diferenca-entre-cluster-e-setor-de-um-disco-rigido-hd/
Introdução a Sistemas de Arquivos
• Formatação Lógica do disco:
– Habilitar no disco a capacidade de se instalar um
Sistema Operacional;
– Organização dos setores em Clusters, dentre
outras ações.
Introdução a Sistemas de Arquivos
• Cluster:
https://www.hardware.com.br/termos/cluster
– Um conjunto de setores do HD que são
endereçados pelo sistema operacional como uma
única unidade lógica;
– Um cluster é a menor parcela do HD que pode ser
acessada pelo sistema operacional;
– Cada cluster tem um endereço único;
– Um arquivo grande é dividido em vários clusters,
mas um cluster não pode conter mais de um
arquivo, por menor que seja.
Introdução a Sistemas de Arquivos
http://scxo1oc06c.blogspot.com/2012/03/slack-space.html
• Slack Space:
– Por exemplo, um sistema com Cluster de 2K ao
armazenar um arquivo de 768 bytes:
Exemplos de Sistemas de Arquivos
• FAT16 (DOS): cluster de 32KB; gerenciamento
máximo de 2GB;
• FAT32 (Windows 98 até 2000): clusters de 4, 8,
16 e 32KB, chegando a gerenciar até 2TB.
a
• ExFAT/FAT64 (desenv. pela MS em 2006):
clusters de até 32MB usado principalmente
em memórias flash, para arquivos únicos
maiores do que 4GB.
Exemplos de Sistemas de Arquivos
• NTFS : amplamente utilizado atualmente nos
https://www.infowester.com/ntfs.php
Sistemas Operacionais da Microsoft.
– Sua primeira aparição foi no Windows NT, sistema
operacional para uso em servidores cuja primeira
versão foi lançada em 1993.
– A Microsoft não possuía nenhum sistema operacional
capaz de fazer frente ao Unix e suas variações em
aplicações de servidores. Seus principais produtos
eram o MS-DOS e a linha Windows 3.x, sistemas
operacionais para uso doméstico ou em escritório. Era
preciso criar algo novo, capaz de disputar mercado
com as soluções baseadas em Unix. Foi aí que surgiu o
Windows NT.
Exemplos de Sistemas de Arquivos
• NTFS – Principais características:
https://www.infowester.com/ntfs.php
– Clusters de 512 bytes a 64KB, com tamanho
máximo de gerenciamento chegando a 256TB.
– Escrita única de arquivos maiores do que 4GB;
– Journaling;
– Controle de acesso a arquivos/permissões;
– Criptografia;
– Suporte à replicação de dados;
– Compactação.
https://minaslinux.trimabo.com/2015/08/o-ex-engenheiro-do-google-acelera-um.html
Exemplos de Sistemas de Arquivos
• Os sistemas baseados
em Unix (Unix-like
systems), o que inclui
os sistemas com
kernel Linux, podem
utilizar-se de uma
grande variedade de
Sistemas de Arquivos.
Exemplos de Sistemas de Arquivos
• A família EXTFS (Extended File System) foi e
https://hackerculture.com.br/?p=537#_ftn1
continua sendo a mais usada, sendo o EXT4FS
atualmente o padrão habilitado para a maioria
das distribuições.
Exemplos de Sistemas de Arquivos
• EXT4FS
https://hackerculture.com.br/?p=537#_ftn1
– Utilizado a partir de 2008;
– Gerencia até 1EB (exabyte) de disco;
– 16TB de tamanho máximo de arquivo único;
– Número ilimitado de subdiretórios;
– Partições de até 1024 petabytes;
– Suporta journaling.
Exemplos de Sistemas de Arquivos
• Outros destaques:
https://e-tinet.com/linux/sistema-de-arquivos/
– XFS: padrão do sistema Red Hat – semelhante ao
EXT4FS, destaca-se por gerenciar arquivos de até 8
exbibytes (8 milhões de terabytes).
– BTRFS: desenvolvido de maneira independente por
diversas instituições e gigantes do mercado (Linux
Foundation, Intel, Oracle, Facebook, Red Hat, SuSe,
Fujistu). O formato se caracteriza pela tolerância a
falhas, manutenção, gerenciamento e sua capacidade
de trabalhar com arquivos de até 16 exbibytes. É, sem
dúvida alguma, um dos mais poderosos sistemas de
arquivos (e se encontra em franco desenvolvimento).
FIM DO MÓDULO S.A.
http://www.votepelosanimais.org.br/
para os sistemas operacionais.
4
Programas e Processos
http://pt.scribd.com/doc/5565560/03PROCESSOS
• O conceito de processo é a base para a imple-
mentação de um sistema multitarefa.
• O processador é projetado apenas para
executar instruções, não sendo capaz de
distinguir qual programa se encontra em
execução.
5
http://gsd.di.uminho.pt/members/jpo/2006-2007/processos_handout_2x2.pdf
Programas e Processos
• Então, podemos definir que:
– Um programa é um arquivo executável que reside
em um diretório de um disco.
• Quando um programa é carregado para a
memória e executado pelo kernel, passa a ser
chamado de processo.
• Portanto, uma instância em execução de um
programa é designada por processo.
6
http://www.tecmundo.com.br/memoria/3197-o-que-sao-processos-de-um-sistema-operacional-e-por-que-e-importante-saber.htm
Um sistema operacional não executa somente os programa que
podemos ver. Imagine que os aplicativos que você roda reúnem diversas
instruções e comandos, porém, são os processos que efetivamente
executam esses comandos.
Isso significa que um único aplicativo pode ter vários processos
relacionados a ele. Por exemplo, o navegador Google Chrome, que
executa uma nova tarefa a cada aba aberta. Essa medida permite que
cada aba seja gerenciada individualmente e, mesmo que uma trave, as
outras continuam trabalhando normalmente.
7
Processos
• Como você viu, o processador apenas executa
instruções, sejam de quem for!
• Portanto, quem deve gerenciar os vários
processos que serão executados pelo
a
processador é o sistema operacional.
8
Processos
• Mas... Gerenciar o quê??? Que informações
um programa em execução (processo) tem???
a
Qual é o estado deste processo?
Onde na memória foi carregado?
Que dia e hora foi carregado?
Qual é sua identificação?
9
Processos
• Na verdade, cada vez que um programa é
carregado (passando a ser chamado de
processo), uma estrutura é criada para
gerenciá-lo. Esta estrutura é chamada de PCB
a
(Process Control Block – ou Bloco de Controle
do Processo).
10
Processos
• O PCB é uma estrutura
de dados que armazena
todas as informações de
um processo enquanto
a
ele existir.
11
Processos
Endereçamento
endereços de memória
principal alocados
12
Processos
• Contexto de Software:
– Armazena as informações de identificação do
processo:
• Nome do processo
a
• PID (Process Identifier) – número/código do processo
• PPID (Parental Process Identifier) – PID do processo pai
• UID (User Identifier) – Usuário que carregou o processo
• Prioridade do processo
• Data e hora de criação
• Tempo de processador
• Outras informações que estudaremos mais tarde... 13
Processos
• Espaço de Endereçamento:
– Armazena as informações referentes aos
endereços de memória principal alocados para
este processo:
a
• Endereços de memória usados pelo código
• Endereços de memória usados pelos dados do processo
14
Processos
• Contexto de Hardware:
– Este é o local onde serão salvos os valores que se
encontram nos registradores da CPU quando o
relógio interromper o processo que está em
a
execução.
15
Processos
• Estrutura do PCB na memória:
a
Nome PID PPID UID Prior. Dt/Hr End1 End2 End3… Reg1 Reg2 Reg3…
PCBa
PCBb
PCBc
16
http://atikum.ueuo.com/atikum_bibliotecaonline/computacao/so/teoria/tutorapido01/so_intro_frame.htm
Estados dos Processos
• Os sistemas de computadores atualmente
permitem que vários programas sejam
colocados na memória e executados
simultaneamente. Com isso, a divisão de
tarefas entre os diversos programas tem que
ser feita com um maior controle.
17
Aguardando...
Aguardando... Aguardando...
Aguardando...
a
Execução!
Execução! 18
Então, quer dizer que...
http://www.inf.ufrgs.br/~johann/sisop1/aula04.ciclo.processo.pdf
• Processos nascem
– No momento de sua criação (via chamada de
sistema
• Processos vivem
– Executam na CPU, liberam a CPU (E/S)…
– Executam:
• Programas dos usuários
• Programas do sistema (daemons)
• Processos morrem
– Ou porque terminaram sua execução
– Ou porque um outro processo os matou:
• Erro, acesso não-autorizado, falha
19
Estados dos Processos
• Assim, é importante você entender que os
processos passam por diversos ESTADOS
durante sua existência:
– Novo (New)
a
– Pronto (Ready)
– Execução (Running)
– Espera (Waiting)
– Terminado (Terminated)
20
Estados dos Processos
• Novo (new)
– Quando um programa é carregado, o seu PCB
precisa ser criado, recursos alocados...
– Enquanto tudo isto não estiver pronto, o processo
a
se encontra no estado de Novo.
• Ou seja, ele ainda não pode ser colocado no estado de
Pronto, por um motivo óbvio: ele não está pronto!
21
Estados dos Processos
• Pronto (ready)
– Agora sim! O PCB já foi criado e todos os recursos
necessários à execução do processo estão
garantidos.
a
– Assim, ele está pronto para ser executado!
• Por que não está executando, então???
a
registradores.
– O processo agora vai executar durante alguns
milissegundos e... pode mudar para:
• Pronto, novamente
• Espera, ou
• Terminado
23
Estados dos Processos
• Espera (waiting) Também chamado de Bloqueado (Blocked)
– Um processo mudará para o estado de espera
quando for colocado na fila de espera de E/S
devido ao processador de E/S ser mais lento que a
CPU principal.
a
• O processo tornaria a CPU escrava dele se não
houvesse esse estado, pois como ele não está
concorrendo à CPU ao executar uma E/S, pode-se então
colocá-lo no estado de espera para que os demais
processos do estado pronto possam concorrer a CPU.
– Ou seja, quando precisar realizar uma operação
de E/S!
24
Estados dos Processos
http://pt.scribd.com/doc/5565560/03PROCESSOS
• Terminado (terminated)
– Acabou de rodar... Quando a execução do
processo chega ao fim (ou se ele for morto!),
então ele vai para o estado de Terminado.
• Um processo no estado de terminado não poderá mais
ser executado, porém o sistema operacional ainda
mantém suas informações de controle presentes em
memória. Como o seu PCB ainda existe, o sistema
operacional pode recuperar informações sobre a
contabilização de uso de recursos do processo, como o
tempo total gasto do processador, por exemplo.
25
Mudança de Estados dos Processos
• Ou seja, um processo não fica o tempo todo
executando!
– Ou ele está executando
– Ou está esperando uma operação de E/S
a
– Ou está pronto para executar, aguardando a sua
chance de usar o processador.
26
Mudança de Estados dos Processos
a
P2 Pronto Execução P1
P4 Pronto Execução P5
P6 Pronto Execução P9
P8Pronto ...
P3 – Imprimindo
P7 – Aguardando teclado
27
Mudança de Estados dos Processos
• O tempo máximo que um processo pode usar
o processador é chamado de Time Slice ou
Quantum.
• O valor do Time Slice depende do sistema
a
operacional.
– No Windows, este valor está entre 10 e 15 ms
(milissegundos).
– No Linux é um múltiplo de 10 ms, inferior a 100
ms. (processos podem ter TS diferentes).
28
Mudança de Contexto
• Você entendeu que um processo não fica em
execução todo o tempo.
• Na verdade o processador é compartilhado por
entre os diversos processos carregados, certo?
• Mas, quando o processo é interrompido pelo
sistema operacional, o seu ponto de execução
deve ser preservado para que, quando voltar ao
processador, volte a executar exatamente do
mesmo ponto onde parou!
29
Mudança de Contexto
• O segredo para que isto aconteça é que o
sistema operacional, no momento que
interrompe o processo que está no
processador, salva o conteúdo de todos os
registradores do processador no seu PCB.
• Quando voltar ao processador, basta que o
sistema leia os valores que foram salvos no PCB
deste processo e leve-os de volta aos
registradores.
30
Mudança de Contexto
• Esta troca dos valores armazenados nos
http://train-srv.manipalu.com/wpress/?p=39175
registradores de um processo pelo de outro é
chamada de Mudança de Contexto.
31
Exemplo de três processos
compartilhando a CPU:
http://www.metropoledigital.ufrn.br/aulas/disciplinas/sist_operacional/aula_10.html
1) Inicialmente a CPU não está
executando nenhum deles.
2) A CPU executa o Processo 1
3) A CPU deixa de executar o
Processo 1, salva o conteúdo
dos registradores no PCB1, lê
os valores dos registradores
em PCB2 e começa a executar
o Processo 2.
4) A CPU deixa de executar o
Processo 2, salva o conteúdo
dos registradores no PCB2, lê
os valores dos registradores
em PCB3 e começa a executar
o Processo 3.
32
VAMOS PENSAR?
Quando você está usando o computador, normalmente
com o Windows, é possível abrir várias janelas, certo?
Cada janela corresponde a um programa em execução,
ou seja, um processo.
Você não tem a impressão de que todos estão sendo
executados ao mesmo tempo?
Tempo: 10 minutos.
33
http://pt.kioskea.net/contents/langages/langages.php3
É possível ver quais processos estão em execução? Sim!
No Windows basta acessar o Gerenciador de Tarefas e
clicar na aba Processos.
No Linux você pode usar o comando top para visualizar
os processos em execução.
34
Para aprender mais sobre processos, acesse os
links abaixo e estude-os!
http://www.inf.ufrgs.br/~johann/sisop1/aula04.cic
lo.processo.pdf
http://pt.wikipedia.org/wiki/Processo_(informátic
a)
http://atikum.ueuo.com/atikum_bibliotecaonline/
computacao/so/teoria/tutorapido01/so_intro_fra
me.htm
http://www.metropoledigital.ufrn.br/aulas/discipli
nas/sist_operacional/aula_10.html
35
Tipos de Processos
• Os processos podem ser:
– Foreground ou Background
– CPU Bound ou I/O Bound
a
36
Tipos de Processos
• Processos Foreground:
– São aqueles executados em primeiro plano, ou
seja, aqueles que interagem com o usuário.
• Processos Background:
a
– São aqueles que estão sendo executados em
segundo plano; não interagem com o usuário.
• Por exemplo: anti-virus.
37
Tipos de Processos
• Processos CPU Bound:
– São aqueles que usam muito o processador, fazem
muitos cálculos (aplicações científicas, por
exemplo).
a
38
Tipos de Processos
• Processos I/O Bound:
– Passam a maior parte do seu tempo de existência
realizando operações de E/S (lendo teclado,
imprimindo, lendo ou gravando dados em disco,
a
transmitindo dados pela rede...).
• Aplicações comerciais são tipicamente I/O Bound!
39
Na ciência da computação, I/O bound é um
termo utilizado para designar os processos
que fazem uso intensivo
de entrada/saída (I/O). Todos os sistemas
operacionais executam processos de entrada
e saída, como por exemplo algum usuário
querendo copiar um arquivo para o Pen
Drive. Esses processos são conhecidos
como I/O bound porque fazem pouco uso
da CPU.
No entanto existem processos conhecidos
como CPU bound, que fazem muito uso da
CPU, a citar alguns jogos eletrônicos que
utilizam recursos gráficos em 3D de alta
complexidade.
Fonte: http://pt.wikipedia.org/wiki/I/O_bound
40
SOsim: Simulador para o Ensino de
Sistemas Operacionais
41
Simulador de sistemas operacionais SOsim
Duração: 6’40’’
Fonte: http://www.youtube.com/watch?v=6KUeMwXmU_A
Filme
42
FAÇA VOCÊ MESMO!
Você já ouviu falar em softwares como VirtualBox, VMWare
Workstation e VMWare Player?
São programas que permitem a criação de Máquinas Virtuais
em seu computador.
Ou seja, em sua máquina doméstica você consegue
“simular”um hardware sobre seu Windows e “configurar” um
hardware virtual, instalando depois um sistema operacional
real neste computador.
Acesse: http://www.virtualbox.org e faça o download do
programa. É gratuito!
Depois, crie uma máquina virtual e instale um sistema
operacional (Windows, Linux ou BSD).
Você pode também fazer o download do VMware Player em
https://my.vmware.com
O Player permite executar máquinas prontas. Você encontra
várias imagens prontas para download na Internet.
43
VirtualBox – Video Aula
Duração: 14’54’’
Fonte: http://www.youtube.com/watch?v=S73JlL8bjuA
Filme
44
FIM DO MÓDULO 4
Parte 1
4
Subprocessos
http://pt.scribd.com/doc/56258529/65/Subprocesso-e-Thread
• O subprocesso, por sua vez, pode criar outros
subprocessos.
• Como consequência desta estrutura, caso um
processo deixe de existir, os subprocessos
subordinados são eliminados.
5
Subprocessos
http://equipe.nce.ufrj.br/thome/grad/so_old/apostila/Processos.pdf
• Nos sistemas operacionais mais antigos, cada
processo possuía um único fluxo de controle, ou
seja, as instruções eram executadas
sequencialmente, uma de cada vez.
• Já nos sistemas mais modernos, um processo
pode, por sua vez, dar início a um ou mais
subprocessos, que são executados em paralelo
ou de forma concorrente com o processo pai e,
para todos os efeitos, apresentam as mesmas
características e particularidades de um processo
qualquer, no tocante a contexto e fluxo de
controle. 6
Subprocessos
• Quer dizer então que...
7
Subprocessos
• Considerações sobre subprocessos:
– Um subprocesso é tratado pelo S.O. como um
processo;
– Todo subprocesso tem PCB próprio e compartilha
a
o processador como os processos;
– Os subprocessos passam pelos mesmos estados
que um processo;
– Relação hierárquica: o subprocesso é “filho” do
pai, assim, em eliminado o pai, o subprocesso
também é eliminado!
8
Threads
• Como você viu os subprocessos são tratados
como processos, inclusive tendo seu próprio
PCB e passando pelos mesmos estados.
• Com o intuito de reduzir o tempo gasto na
a
criação ou eliminação de processos
e economizar recursos, surgiu o conceito de
thread.
9
Threads
http://pt.scribd.com/doc/56258529/65/Subprocesso-e-Thread
• Threads compartilham o processador da
mesma maneira que um processo.
• Por exemplo, enquanto um thread espera por
uma operação de E/S, outro thread pode ser
executado.
10
Threads
http://pt.scribd.com/doc/56258529/65/Subprocesso-e-Thread
• A grande diferença entre subprocessos e
threads é em relação ao espaço de
endereçamento: enquanto subprocessos
possuem, cada um, espaços de
endereçamento independentes e protegidos,
threads compartilham o mesmo espaço de
endereçamento do processo, sem nenhuma
proteção, permitindo assim que um thread
possa alterar dados de outro thread.
11
Threads
http://equipe.nce.ufrj.br/thome/grad/so_old/apostila/Processos.pdf
• Threads representam uma nova concepção na
forma de um processo paralelizar a execução
de partes do seu código. Os threads,
conceitualmente, se assemelham a
subprocessos porém não possuem identidade
própria e, portanto, não são independentes.
Cada thread possui seu próprio contador de
programa, sua pilha e seus registradores
porém compartilham todos o mesmo espaço
de endereçamento, isto é, como se fossem
uma única entidade.
12
Threads
http://equipe.nce.ufrj.br/thome/grad/so_old/apostila/Processos.pdf
• Exemplo: Processo Y com 3 subprocessos e
Processo X com 3 Threads
13
Threads
• Traduzindo...
• Threads são “pedaços” de um mesmo
programa que são executados de modo
concorrente, ou seja, como se fossem outros
a
programas.
• O programador pode criar quantos threads
quiser a partir de um programa (processo).
• A estrutura que controla os threads é
chamada de TCB (Thread Control Block).
14
DotNet Minutes - Trabalhando com Threads
Duração: 6’33’’
Fonte: http://www.youtube.com/watch?v=xiPahPWUI6U
Filme
15
Processos Independentes
• São processos criados por outro processo,
porém não existindo nenhuma relação
hierárquica entre eles.
– Se o processo pai for morto, o filho continuará
a
sendo executado;
– Na prática, é quando um programa chama para
execução outro programa totalmente diferente.
• Exemplo???
16
Ambientes Monothread e Multithread
• Monothread:
– Cada processo tem apenas um thread.
– Concorrência se dá apenas com processos
independentes ou subprocessos.
a
– Problema - criar, gerenciar e eliminar processos é
computacionalmente caro.
– Compartilhar o espaço de endereçamento é
complexo, por conta dos mecanismos
empregados.
– Processo → Unidade de alocação e de
escalonamento.
17
Ambientes Monothread e Multithread
• Multithread:
– Permite que tenhamos aplicações concorrentes de forma
mais eficiente:
• Aumenta o desempenho, por dispensar mecanismos de
comunicação dentro do processo.
• Aumenta a eficiência, por termos menos sobrecarga do sistema
a
como um todo
– Menos processos e mais threads.
– Programas associados a threads.
– Os threads sofrem mudança de estado (pronto, espera e
execução), e tem seu próprio bloco de controle(o TCB).
– Processo -> Unidade de alocação.
– Thread -> Unidade de escalonamento.
– O S. O. vê e escalona os threads de cada processo
18
VAMOS PENSAR?
Atividade: EM QUE SITUAÇÃO PODEM SER USADOS
THREADS???
19
Para aprender mais sobre Threads, acesse os
seguintes sites e ESTUDE-OS:
22
http://pt.wikipedia.org/wiki/Sinal_(ci%C3%AAncia_da_computa%C3%A7%C3%A3o)
Sinais
• Os sinais são meios usados para que os
processos possam se comunicar e para que o
sistema possa interferir em seu
funcionamento.
• Essencialmente, um sinal é uma notificação
assíncrona enviada para um processo com o
objetivo de notificar a ocorrência de um
evento. Quando um sinal é enviado a um
processo, o sistema operacional interrompe o
seu fluxo normal de execução.
23
http://pt.wikipedia.org/wiki/Sinal_(ci%C3%AAncia_da_computa%C3%A7%C3%A3o)
Sinais
• Determinadas combinações de teclas, ao serem
pressionadas no terminal de controle de um
processo em execução, fazem com que o sistema
envie determinados sinais a este processo:
– CTRL-C (DEL em versões antigas do Unix) envia um
sinal INT (SIGINT); normalmente causa o término do
processo.
– CTRL-Z envia um sinal TSTP (SIGTSTP); normalmente
causa a suspensão da execução do processo.
– CTRL-\ envia um sinal QUIT (SIGQUIT); normalmente
causa o término da execução do processo e a geração
de um core dump.
24
http://pt.wikipedia.org/wiki/Sinal_(ci%C3%AAncia_da_computa%C3%A7%C3%A3o)
Sinais
• A chamada de sistema kill envia um sinal ao
processo, se o usuário tiver permissão para
tal. De maneira parecida, o comando kill do
Unix permite que um "usuário" envie sinais a
um processo.
• As exceções causadas por divisão por zero ou
violação de segmento de memória geram
sinais (SIGFPE e SIGSEGV, respectivamente,
gerando um core dump).
25
Para entender melhor os sinais, veja os
seguintes textos:
http://pt.wikipedia.org/wiki/Sinal_(ci%C3%AAncia
_da_computa%C3%A7%C3%A3o)
http://www.vivaolinux.com.br/artigo/Processos-
no-Linux?pagina=2
http://doc.fug.com.br/handbook/basics-
daemons.html
26
PESQUISE!
A
27
RESUMINDO...
Neste módulo você aprendeu que processo nada mais é do que um
programa em execução.
Entendeu que os processos não ficam o tempo todo utilizando o
processador, mas passam por diversos estados durante sua
existência.
Também entendeu que existem classificações de processos, e como
estes são criados e controlados pelo sistema operacional.
FIM DO MÓDULO 4
Parte 2