Sei sulla pagina 1di 20

WA1 - TEC. ANALISE E DESENV. SIST.

SISTEMAS
DE
COMPUTAO
E
INFORMAO
Viso geral

Apresentao da disciplina:
Conceitos de processo.
Sincronizao de processos.
Gerenciamento de memria.
Memria virtual.
Escalonamento de processos.
Monoprocessamento e multiprocessamento.
Alocao de recursos e deadlocks.
Gerenciamento de arquivos.
Tcnicas de E/S.
Mtodos de acesso.
Anlise de desempenho.

Objetivos:
Apresentar os conceitos sobre o funcionamento de um
sistema de computao em relao ao hardware, com suas
principais funes:
gerncia de processador, gerncia de memria, sistema de
entrada/sada e gerncia de dispositivos.

Contedo Programtico:
Conceitos bsicos
Sistemas operacionais
Hardware e funcionamento de um sistema de computao
Tipos de sistemas operacionais
Gerncia do processador
Processos e threads
Processos concorrentes e deadlock
Escalonamento do processador
Gerncia de memria
Alocao de memria
Memria virtual
Sistema de arquivos
Arquivos e diretrios
Alocao de um espao em disco
Proteo de acesso
Gerncia de dispositivos
Sistema de entrada/sada

Discos magnticos

Metodologia:

Os contedos programticos ofertados nessa disciplina sero


desenvolvidos por meio das Tele-Aulas de forma expositiva e
interativa (chat tira dvidas em tempo real), Aula
Atividade por Chat para aprofundamento e reflexo e Web
Aulas que estaro disponveis noAmbiente Colaborar,
compostas de contedos de aprofundamento, reflexo e
atividades de aplicao dos contedos e avaliao. Sero
tambm realizadas atividades de acompanhamento tutorial,
participao em Frum, atividades prticas e estudos
independentes (auto estudo) alm do Material do Impresso
por disciplina.

Avaliao Prevista:
O sistema de avaliao da disciplina compreende em assistir
a tele-aula, participao no frum, produo de
texto/trabalho no portflio, realizao de duas avaliaes
virtuais, uma avaliao presencial embasada em todo o
material didtico, tele-aula e web aula da disciplina.

WEBAULA 1

Unidade 1 Processos
Como trabalhar com vrios programas em um mesmo tempo de execuo?
Ao iniciar o computador, voc pode acessar vrios softwares ao mesmo tempo,
como por exemplo, um editor de texto, uma planilha eletrnica, ou qualquer
outro.
E, ainda, dentro desses softwares, possvel executar vrias funes
praticamente ao mesmo tempo, em um nico processador!
Ento, como isso possvel?
possvel pois o computador pode contar com o
gerenciamento de um sistema operacional!
Na realidade, se o computador possui apenas um
processador, ele executar somente uma instruo em
um determinado instante.
O que acontece, que uma execuo muito rpida, o
que significa que em menos de 1 segundo diversas
instrues podem ser executadas.
Com essa velocidade, possvel ter a execuo de vrios programas ao mesmo
tempo.

Nesse contexto, um sistema (software) possui vrios tipos de tarefas que so


chamadas de PROCESSOS.

Um processo pode ser entendido como um programa em execuo, e para sua


execuo sero necessrios alguns recursos, como: CPU, memria, arquivos,
entre outros.
Um processo representado no sistema operacional por um bloco de controle
de processo (PCB Process Control Block).
PCB
Ponteiros

Estado do Processo
Nome do Processo
Prioridade do Processo
Registradores
Limites de memria
Lista de arquivos abertos
O sistema operacional reserva uma rea da memria onde coloca informaes
sobre cada processo a ser executado.
As alocaes das informaes em um PCB (bloco de controle de processos)
esto divididas em duas classes:

O contexto de hardware contm basicamente uma cpia dos registradores.


Quando um processo est em execuo, seu contexto de hardware est
armazenado nos registradores do processador. Quando o processo perde o
controle do processador, os dados dos registradores so salvos no contexto de
hardware.
Dessa forma, o processo que est deixando o processador ser salvo para
liberar a entrada de um novo processo.
Por sua vez, o contexto de software contm informaes como a identificao
do processo:
QUOTAS (nmero de arquivos que pode utilizar, tamanho mximo de
memria, nmero mximo de operaes de E/S pendentes etc.)
PRIVILGIOS

ESTADOS
DO PROCESSO
g
O
i estado do processo indica o que est acontecendo com aquele processo num
determinado instante de tempo.
n
a

Um processo pode estar em um dos seguintes estados:


Novo: o processo est sendo criado;
Pronto: o processo est esperando a liberao do processador para que possa
executar;
Em execuo: as instrues esto sendo executadas;
Em espera: o processo est esperando pela ocorrncia de algum evento (por
exemplo, o trmino de uma operao de E/S);
Terminado: o processo terminou sua execuo.
MUDANAS DE ESTADO
medida que um processo vai sendo executado, ele passa pelos diversos
estados.
As mudanas de estado acontecem nas seguintes situaes:
Novo - pronto: logo aps o programa ser criado.
Pronto - execuo: o programa selecionado para ganhar o controle do
processador e recebe uma fatia de tempo do processador.
Execuo - pronto: terminou a fatia de tempo do processo, mas ele ainda no

encerrou.
Execuo - espera: o processo que estava em execuo solicitou uma
operao de E/S.
Espera - pronto: o processo que estava esperando por um evento teve esse
evento concludo.
Execuo - terminado: o processo encerrou.

Quando um processo est em execuo, parte dos seus dados est


armazenada nos registradores da UCP.
Entre esses registradores est o PC (Program Counter), que o registrador
que aponta para a prxima instruo a ser executada.
medida que cada instruo executada, o IP vai sendo incrementado de
maneira a apontar para a instruo seguinte.
Para conseguir executar diversos processos ao mesmo tempo, o processador
tem seu tempo compartilhado (Time Sharing).
Isso quer dizer que cada processo tem direito a utilizar o processador durante
uma determinada fatia de tempo. Ento, quando acaba a fatia de tempo de um
processo, ele volta ao estado de pronto e aguarda a sua vez de ganhar uma
nova fatia.
Alm disso, quando um processo necessita de algum outro recurso alm da
CPU, por exemplo, precisa aguardar uma operao de E/S e libera o
processador para que outro processo o utilize.
Nesse caso, ele sai da execuo para o estado de espera.
Quando ocorre a troca de processos na utilizao do processador, dizemos que
ocorreu uma mudana de contexto.
Na mudana de contexto, os registradores da UCP so salvos no PCB do
processo que est saindo da execuo e so carregados os valores salvos no
PCB do processo que ir entrar em execuo.
Vamos ver passo a passo:
1. Um novo processo criado (o usurio solicitou a execuo de um
programa). Durante a sua criao, ele est no estado de novo e nessa hora o
sistema operacional cria o seu PCB com os registradores inicializados.
. Aps a criao, o processo passa para o estado de pronto e entra na fila para

ganhar uma fatia de tempo do processador.


3. Quando a CPU est desocupada, esse processo passa do estado de pronto
para execuo. Nesse momento, os valores dos registradores armazenados no
PCB so copiados para os registradores da UCP. Como um desses registradores
o PC (Program Counter), a prxima instruo que o processador ir executar
ser a primeira instruo desse processo.
4. A cada instruo executada o PC vai sendo incrementado.
5. Caso se esgote o tempo do processador, ou o processo necessite de algum
recurso, o contedo dos registradores da UCP copiado para o PCB, e ento o
sistema operacional carrega o prximo processo da fila de pronto, voltando ao
passo 3.
E a, pessoal, vocs entenderam as questes relacionadas a um processo?
As caractersticas que foram descritas nessa parte esto relacionadas ao termo
CONCORRNCIA, que permite a execuo de vrias tarefas ao mesmo tempo.

Unidade 2
THREAD
Ento, vamos continuar estudando!
possvel notar, na seo anterior, que cada processo pode executar mais de
um trecho em uma mesma chamada do processo.
PARA SABER MAIS
Por isso, surgiu a necessidade de ser criada a concorrncia entre trechos em
um determinado processo.
Nesse contexto, foram implementados os threads, que podem ser definidos
como as tarefas de um processo. Em um mesmo processo, pode haver um ou
mais threads.
Vimos anteriormente que um processo formado pelo contexto de hardware e
contexto de software.
Quando um processo possui mais de um thread, cada um possui seu contexto
de hardware separado.
Vamos ver isso mais de perto...
O contexto de hardware a parte do PCB que guarda os valores dos
registradores.
Entre os registradores temos o PC (Program Counter), que aponta para a
prxima instruo a ser executada.
Assim, se cada thread possui um contexto de hardware, cada um poder
executar um trecho diferente do processo.
Dessa maneira possvel implementar a concorrncia.

OK?
Por outro lado, o contexto de software nico para um processo.
Todos os threads de um processo compartilham o mesmo contexto de software
e o mesmo espao de endereamento.
Por exemplo, um editor de texto pode ter um thread para exibio de grficos,
outro para ler o que est sendo digitado e um terceiro para realizar a correo
ortogrfica.
Esses trs threads so executados concorrentemente dentro do processo do
editor de texto.
Os estados dos threads so os mesmos dos processos:
NOVO
EXECUO
ESPERA
PRONTO
TERMINADO
Para o conceito de se trabalhar com threads, o termo utilizado multithread.
SUAS VANTAGENS...
PARA SABER MAIS
Para saber mais acesse o seguinte link:
. (aula-07-cap-06-threads.pdf)

Capacidade de resposta: se uma parte do programa estiver bloqueada ou


aguardando uma operao de E/S demorada, o programa pode continuar
executando outras partes.
Compartilhamento de recursos: a memria e os demais recursos do processo
so compartilhados pelos threads.
Economia: como a memria e os recursos so compartilhados, a sua alocao
acontece uma nica vez na criao do processo.
Utilizao da arquitetura de multiprocessadores: em uma arquitetura de
multiprocessadores, cada thread pode ser executado em paralelo em um
processador diferente.

Ateno
PARA CONHECER MAIORES DETALHES SOBRE THREADS, estude a parte de
aprofundando o conhecimento do livro didtico de vocs: Sistemas
Operacionais, da autora Elo Jane Fernandes Mateus - captulo 2 a partir da
pgina 24.
Obs.: tambm est disponvel na biblioteca digital.
Como vocs viram, existem vrios aspectos que podem tornar o campo da
programao mais eficiente, e este contexto est ligado multiprogramo.
A multiprogramao realmente veio para ajudar, mas
necessrio conhecer bem suas caractersticas para se obter o
resultado esperado. Ento, continuem o estudo na Unidade 2.
Ento, conseguiram visualizar o contexto de Threads!
Agora, vamos para a Unidade 2?
REFERNCIAS
Machado, Francis B.; Maia, Luiz P.; Arquitetura de Sistemas Operacionais. LTC,
Rio de Janeiro, 2007.
Mateus, Elo J. F.; Sistemas Operacionais. Pearson Education do Brasil, So
Paulo, 2010.

Unidade 3 Entendendo as Aplicaes Concorrentes


Vamos assistir um vdeo!
Vdeo 001 Processos
(Sistemas Operacionais Captulo 02 Processos Threads - Parte 1.mp4)
A multiprogramao um conceito importante para agilizar o
andamento dos processos, mas, ao mesmo tempo, ela exige um
maior controle dos programas em execuo. Para esse controle,
uma das tcnicas utilizadas o desenvolvimento das aplicaes
concorrentes.
O principal objetivo da aplicao concorrente gerenciar a
execuo dos processos de um ou mais programas em execuo. Essa
execuo concorrente pode ocorrer utilizando um processador ou vrios
processadores (processamento paralelo).
Para possibilitar a execuo de processos concorrentes necessrio que haja o
gerenciamento da sincronizao das tarefas. Isso acontece porque, na
realidade, as tarefas no so executadas ao mesmo tempo. Existe a
concorrncia por uma determinada execuo.

Vamos ao exemplo:
Existem dois processos concorrentes A e B,
B l as informaes gravadas por A em uma varivel de memria.
O processo B somente poder ler essas informaes depois que A as tiver
gravado.
Por isso, como o processo A somente poder gravar novas informaes depois
que o processo B tiver lido as informaes anteriores, existir a necessidade da
sincronizao de suas operaes.

Mas, como trabalhar com a sincronizao?


Uma maneira para especificar as partes de um programa que devem ser
executadas ao mesmo tempo, atravs dos comandos FORK e JOIN.
O comando FORK inicia a execuo de outro processo concorrentemente e o
comando JOIN determina o ponto onde deve haver uma sincronizao.
Para entender melhor, vamos ao exemplo de FORK e JOIN:

Explicando o exemplo de FORK e JOIN:


O programa A executado at encontrar o comando FORK;
Nesse ponto criado o processo B, que ir executar ao mesmo tempo (os
comandos Comando1, Comando2, ComandoN do processo A sero executados
ao mesmo tempo que os comandos do processo B);
Os comandos do processo A aps o JOIN B somente sero executados aps o
trmino do processo B.
No compartilhamento dos recursos utilizado como exemplo, as variveis de
memria, ou arquivos de dados, alguns aspectos importantes devem ser
verificados durante a concorrncia, visto que na implementao da
sincronizao dos processos podem ocorrer alguns problemas na execuo de
tarefas.
Mas, quais so as recomendaes para prevenir possveis erros?

Agora, seguiremos com a identificao de algumas rotinas para resoluo


desses casos!
Excluso Mtua
O objetivo da excluso mtua que, se um processo estiver acessando um
determinado recurso, todos os outros devero esperar para utiliz-lo.
A parte do cdigo do programa em que um recurso deve ser bloqueado para
outros acessos chamada de regio crtica. Quando um processo est
executando a sua regio crtica, os outros processos no podero acessar o
mesmo recurso.

Se o recurso estiver livre, o processo deve bloque-lo para evitar a sua


utilizao simultnea. Se o recurso j estiver bloqueado, o processo entra
numa fila e aguarda at que o recurso seja liberado.
O grande problema no controle da excluso mtua a possibilidade de um
processo jamais conseguir acesso a um recurso. Isso chamado de starvation,
quando um processo fica em espera o tempo todo.
Isso ocorre porque os algoritmos de escalonamento, que veremos nas sees a
seguir, podem nunca escalonar um determinado processo.
Solues de Hardware
Desabilitao de interrupes:
Quando um processo est em execuo, ele somente ser substitudo por
outro no momento em que o sistema gerar uma interrupo.
Se o processo em execuo vai entrar na sua regio crtica, e no quer que
nenhum outro processo execute ao mesmo tempo, ele pode desabilitar as
interrupes e, assim, somente ele permanecer no controle do processador e

dos recursos do sistema.


Por meio da instruo test-and-set.
Essa instruo permite salvar o contedo de uma varivel e alterar o seu valor.
A vantagem dessa instruo que ela executada sem interrupo e,
portanto, enquanto estiver sendo alterada, nenhum outro processo poder
acess-la.
Solues de Software
Algoritmos
Os algoritmos para as solues em software se baseiam na criao de um
protocolo de entrada e de um protocolo de sada da regio crtica, o que prov
o bloqueio do acesso a um recurso.
Semforos
Um semforo uma varivel inteira, no negativa, que s pode ser
manipulada por duas instrues:
DOWN e UP.
Essas instrues so indivisveis, ou seja, a sua execuo ocorre sem
interrupes.
A instruo UP incrementa o semforo em uma unidade, e a instruo
DOWN o decrementa em uma unidade.
Como, por definio, um semforo no pode ser negativo, a tentativa de
realizar um DOWN em um semforo zerado coloca o processo em estado de
espera.
Quando um processo vai entrar na sua regio crtica, ele executa um DOWN no
semforo correspondente ao recurso que deseja bloquear.
Se o semforo estiver com zero, significa que o recurso j est bloqueado por
outro processo e o processo que tentou fazer o DOWN entra em espera.
Quando o processo sai da sua regio crtica, ele d um UP no semforo,
fazendo-o ir para o valor 1.
O uso de semforos exige, do desenvolvedor, bastante cuidado, pois qualquer
engano pode levar a problemas imprevisveis.
Monitores
Monitores so mecanismos de sincronizao de alto nvel que tornam mais
simples o desenvolvimento de aplicaes concorrentes.

Eles so implementados pelo compilador, facilitando, assim, a sua utilizao.


Troca de Mensagens
A troca de mensagens um mecanismo de comunicao e sincronizao de
processos, viabilizado pelo sistema operacional atravs do seu subsistema de
mensagens e que pode ser implementada atravs da comunicao direta ou
indireta.

Comunicao Direta
A mensagem deve enderear, explicitamente, o processo transmissor e o
processo receptor. Dessa forma, a comunicao acontece somente entre dois
processos.
Um dos problemas que, se um processo mudar de nome, a mensagem deve
ser igualmente alterada e, portanto, o cdigo do programa ter que ser
recompilado.
Comunicao Indireta
Os processos utilizam uma rea comum, chamada de mailbox ou port.
O processo transmissor coloca mensagens no mailbox e o processo receptor se
encarrega de retir-las.
Independente do tipo de comunicao utilizada, os processos que esto

fazendo a troca das mensagens devem estar sincronizados para evitar que um
processo tente ler uma mensagem que ainda no foi enviada, ou, que o
processo transmissor envie outra mensagem antes que o receptor tenha lido a
mensagem anterior.
Deadlock
O contexto de deadlock est relacionado ao seguinte problema: um processo
aguarda por um recurso que nunca estar disponvel ou um evento que no
ocorrer.

Na preveno da ocorrncia de deadlocks, so utilizadas algumas tcnicas:


No implementar a excluso mtua: essa soluo cria outros problemas,
como j discutimos anteriormente.
No permitir que processos que j possuem um recurso garantido requisitem
outros recursos. Para implementar isso, pode-se realocar todos os recursos
necessrios a um processo antes que ele seja iniciado. Assim, se algum
recurso j estiver bloqueado, esse processo ir aguardar para iniciar sua
execuo. Essa soluo tem dois problemas:
O primeiro saber de antemo todos os recursos que o processo ir
necessitar;
O segundo que o processo pode sofrer starvation caso os recursos
necessrios sua execuo nunca estejam disponveis ao mesmo tempo.
Forar o processo a ter apenas um recurso de cada vez.

Forar a liberao de um recurso j alocado a um processo no caso de outro


processo necessitar do mesmo recurso.
Todas essas solues levam a outros problemas e limitaes que podem
comprometer o funcionamento de todo o sistema.
O sistema operacional deve, portanto, implementar mtodos para a deteco e
correo de deadlocks.

Unidade 4
Escalonamento
Ateno
Para gerenciar o compartilhamento dos diversos processos e/ou threads em
execuo, necessrio implementar um algoritmo para a escolha de qual
processo ir deter o controle do processador. Essa implementao tem a ver
com o escalonamento (scheduling) de um processo, que responsvel por
selecionar (escalonar) qual o prximo processo na fila de prontos ir ganhar o
controle de um determinado recurso do processador.

PARA SABER MAIS


Para saber mais acesse o seguinte link:
. (SO-aula-10-escalonamento.pdf)
Escalonamento Preemptivo
No escalonamento preemptivo, o sistema pode interromper um processo em
execuo para que outro processo utilize o processador.
Escalonamento Circular (Round-Robin)

O escalonamento circular foi projetado especialmente para os sistemas de


tempo compartilhado. Seu funcionamento bastante semelhante ao FIFO,
porm, sendo um escalonamento preemptivo, o processo que est em
execuo pode ser interrompido.
Nos sistemas de tempo compartilhado, cada processo ganha uma fatia de
tempo do processador. Quando essa fatia de tempo (time slice ou quantum) se
encerra, o processo em execuo interrompido e passa para o estado de
pronto, entrando no final da fila. Esse mecanismo definido como preempo
por tempo. Dessa forma, nenhum processo poder monopolizar o processador,
sendo que cada processo pode utilizar o processador somente durante o seu
quantum, que definido pelo sistema.
Escalonamento por Prioridade
Nesse escalonamento, uma prioridade associada a cada processo e a UCP
alocada para o processo com maior prioridade.
Quando dois processos da fila tm a mesma prioridade, eles so escalonados
para execuo em ordem FIFO.
Como est caminhando o estudo?
Escalonamento por Mltiplas Filas
O algoritmo de escalonamento por mltiplas filas divide a fila de pronto em
vrias filas, uma para cada tipo de processo.
Os processos so designados a uma fila, em geral com base em alguma
propriedade do processo, tal como tamanho da memria, prioridade do
processo ou tipo do processo.
Cada fila tem seu prprio algoritmo de escalonamento, ou seja, uma fila pode
ser circular, outra por prioridade e assim por diante.
Para o escalonamento entre as filas, geralmente se utiliza a preempo por
prioridade esttica, ou seja, as filas possuem prioridade e o sistema atender a
fila de maior prioridade at que ela se esgote.
Escalonamento por Mltiplas Filas com Realimentao
Esse escalonamento funciona de maneira semelhante ao escalonamento por
mltiplas filas, com a diferena de que, quando um processo sai do estado de
execuo, ele poder entrar em outra fila de pronto, ou seja, os processos se
movimentam de uma fila para outra.
Assim, se um processo utilizar muito o processador, ele ser movido para uma
fila com prioridade mais baixa, da mesma forma que um processo que fica
muito tempo em espera pode passar para uma fila com prioridade mais alta.

Dessa forma se evita a starvation.


Escalonamento com Multiprocessadores
No escalonamento com multiprocessadores (mais de um processador), para
selecionar a tcnica mais apropriada, deve-se levar em considerao a

homogeneidade do sistema:
Se os processadores possuem a mesma capacidade e funo, ento os
processos podem ser escalonados para qualquer processador. E cada
processador deve implementar seu escalonamento em separado.
Se o sistema for heterogneo, determinados processos somente podero ser
executados em processadores especficos. Para aproveitar a possibilidade de
compartilhamento de carga, utiliza-se uma fila de pronto comum a todos os
processadores. Assim, todos os processos entram em uma fila e so
escalonados para qualquer processador disponvel.
O problema desse tipo de escalonamento que tem que haver um controle
para que um processo no seja escalonado para mais de um processador ao
mesmo tempo, e esse controle pode ser resolvido selecionando um
processador para fazer o controle dos escalonamentos.
Escalonamento de Sistemas de Tempo Real
Todo processamento desse tipo deve ser realizado dentro de limites rgidos de
tempo.
Nesses sistemas, no existe compartilhamento de tempo e o escalonamento
realizado somente com base em prioridades.
A cada processo atribuda uma prioridade esttica de acordo com sua
importncia.
Quando um processo de maior prioridade chega fila de pronto ele
imediatamente escalonado para execuo.
Escalonamento No Preemptivo
No escalonamento no preemptivo, o processo que est em execuo
permanecer assim at que no precise mais do processador.
Escalonamento FIFO (First-In-First-Out)
Nesse escalonamento implementada uma fila simples, onde o primeiro
processo ao entrar na fila de pronto ser o primeiro a receber o controle do
processador.
Seu algoritmo implementado da seguinte forma: os processos que passam
para o estado de pronto entram no final da fila e sero escalonados quando
chegarem ao seu incio. E, por ser no preemptivo, quando um processo ganha
o controle do processador, ele o utilizar sem ser interrompido.
O problema com esse tipo que, quando um processo utiliza muito o
processador, ir demorar demais para liber-lo.
Escalonamento SJF (Shortest-Job-First)
Esse tipo de algoritmo associa a cada processo o seu tempo de execuo.
Assim, os processos mais rpidos so escalonados primeiro. Na verdade, na
hora do escalonamento o sistema escolhe o processo que ter o menor bloco
de utilizao do processador.
O problema em relao a esse algoritmo determinar exatamente quanto

tempo do processador cada processo ir necessitar.


Fiquem de olho!
O aprendizado tambm depende de vocs!

Parabns, voc chegou ao fim de mais uma etapa do nosso estudo!

REFERNCIAS
Machado, Francis B.; Maia, Luiz P.; Arquitetura de Sistemas Operacionais. LTC,
Rio de Janeiro, 2007.
Mateus, Elo J. F.; Sistemas Operacionais. Pearson Education do Brasil, So
Paulo, 2010.

Potrebbero piacerti anche