You are on page 1of 24

Sistemas Operacionais No inicio do Sistema computacional era feita um programao no hardware , depois ocorreu o surgimento dos cartes perfurados.

Neste perodo a caracterstica principal que o programador interagia diretamente com hardware. Aps este perodo, autorizou-se a execuo dos JOBS: Caractersticas: Um Operador profissional opera o hardware para executar tarefas, esse mesmo operador fiscaliza a atribuio do hardware e o andamento dos JOBS. Possibilidade de definir bibliotecas especializadas. Definio de categorias de programas com o uso dedicado de recursos. Autorizar o andamento dos JOB`S: O controle passa ser feito por um programa, o sistema monitor residente na memria. O sistema monitor carrega o JOB na memria. Passa o controle do fluxo de execuo ao JOB. Volta a exercer o controle ao terminar ao JOB. Centraliza o acesso aos perifricos. Melhor, porm possibilita a execuo de um JOB por vez. Multiprogramao uma tcnica utilizada para melhor aproveitamento dos recursos de um Sistema Operacional, por meio de um escalonamento de tarefas, o tempo do processador e a alocao de memria podem ser melhorados. Isso permite que vrios programas sejam armazenados simultaneamente na memria virtual. Segundo TANENBAUM consiste no escalonamento de processos, fazendo com que o sistema operacional execute apenas partes de programas separadamente, contudo, para o usurio parece que todos os programas esto sendo executados ao mesmo tempo.

Objetivo Principal: Poupar o desperdciode CPU devido operao I/O (entrada/sada). Execuo Itermediria JOB1 JOB1 JOB1 Trmino da Operao
I/O I/O

Trmino da Execuo JOB1

Soluo: Manter mais de um JOB na memria.

Compartilhamento de tempo Permite que vrios usurios utilizem a mesma CPU simultaneamente para executar programas. Multiusurio Permite que mais de uma sesso possa ser aberta em um computador. Multitarefa Cada usurio pode executar mais de um programa.

Tipos de Sistemas Operacionais Sistema Operacional PC Usado nos computadores pessoais. Sistema Operacional embarcado - Um sistema embarcado (ou sistema embutido) um sistema microprocessado no qual o computador completamente encapsulado ou dedicado ao dispositivo ou sistema que ele controla. Sistema Operacional paralelo. Mquinas multiprocessadores possuem mais de um processador. um sistema fortemente acoplado (tightly coupled system) onde processadores compartilham memria e relgio comuns, a comunicao realizada atravs de memria. Sistema Operacional distribudo. Distribuir a realizao de uma tarefa entre vrios computadores interconectados atravs de algum tipo de rede de comunicao. um conjunto de computadores autnomos interconectados de forma a possibilitar a execuo de um servio. Objetivos do Sistema Operacional Tornar transparente a utilizao do computador. Esconderos detalhes internos do funcionamento do hardware. Tornar eficiente a execuo dos programas em um computador. Gerenciamento justo dos recursos dos sistemas. Facilitar a evoluo do sistema Desenvolvimento e atualizao.

Programa do Sistema Sistema Operacional Ncleo

Shell, Terminal e Compiladores

Chamadas de sistemas(TELNET,LS,CD)

Drives

Ncleo o conjunto mnimo de servios executados pelo Sistema Operacional. Chamadas de Sistemas So funes que os programas dos usurios podem usar para acessar os servios do S.O. Programa de Sistemas So servios menos crticos oferecidos pelo Sistema Operacional. Servios oferecidos pelo Sistemas Operacionais. Criao de programas Execuo de programas Acesso aos dispositivos de entrada e sada. Controle de acesso a arquivos. Acesso a recursos do sistema Deteco de erros: software e hardware. Gerenciamento de arquivos (criar, apagar, editar, gravar, copiar e imprimir). Definio de um Sistema Operacional uma camada (interface) entre hardware e o usurio. Componentes de um Sistema Operacional Sistema Operacional Programas Aplicativos Processadores, memria principal, hard disk.. Usurio

EDITOR - COMPILADO - PLANILHA SISTEMA OPERACIONA HADWARE O Sistema Operacional responsvel por: Permitir execuo de programas. Permitir acesso a perifricos Solucionar todos os nossos problemas Existem duas formas de ver um Sistema Operacional: Alocador de recursos Gerenciar o tempo Alocao de espao Programa de controle

Chamadas ao Sistema Gerenciamento de processos PID=FORK() Cria um processo filho idntico ao pai. PID =WAITPID (PID^) Aguarda um processo filho terminar EXECV(NAME,AEGV) Substitui o espao de endereo Gerenciamento de arquivo OPEN() Abre um arquivo para leitura/escrita. CLOSE() Fecha um arquivo READ Le dados em um arquivo WRITE Escreve dados em um arquivo Gerenciamento de diretrio MKDIR Cria um diretrio RMDIR Renomeia um diretrio vazio LINK Estabelece uma conexo entre dois arquivos MOUNT Monta um sistema de arquivo

Ordem de acesso rpido da CPU e armazenamento de dados Registrador Cache Memria Principal HD Fita Magntica Maior armazenamento

Diminui o tempo

Hierarquia de Processos O processo pai cria um processo filho, e o processo filho pode criar seu prprio processo, formando assim uma hierarquia de processos. O Sistema UNIX chama isso de grupo de processos, j o Windows no possui este conceito de hierarquia, ou seja, os processos so criados iguais. Diferenciao entre programa e processo: Programa uma entidade esttica formada por uma seqncia de instrues com diferentes fluxos de execuo, comandos condicionais e iterativos. (Entidade Passiva) UM PROGRAMA ARMAZENADO EM DISCO Processo um programa em execuo. uma entidade ativa que compete por recursos oferecidos pelo sistema (acesso a discos, perifricos e CPU) e tambm interage com outros processos. UM PROCESSO ARMAZENADO EM MEMRIA

Processos em segundo plano: Executam programas do usurio e do S.O., e podem ser chamados de Daemons. Ex.: Antivrus, Mensagem instantnea, etc. A cada processo, seja ele primeiro ou segundo plano, est associado um espao de endereamento, que uma lista de posies na memria, delimitada, ou seja, uma quantidade mxima de posies que este processo pode ler e escrever. Quando o processo alterna de um processo para outro, ou cria um novo processo, algumas informaes devem ser salvas: Estado do Processo. Apontador de instrues aponta para a prxima instruo a ser executada pelo processador. Registradores de CPU - unidade de memria voltil capaz de armazenar vrios bits. Informaes relativas ao escalonamento de CPU. Informaes relativas ao gerenciamento de memria. Informaes relativas ao gerenciamento de arquivos. Nmero do processo Estados de um processo Novo - processo recm criado. Pronto - quando um processo no possui nenhuma pendncia, por exemplo, I/O e est esperando ser executado. Executando - quando um processo est executando efetivamente. Bloqueado - quando o processo possui alguma pendncia (I/O, espera pelo trmino de um outro processo, etc) E no pode entrar em execuo enquanto no terminarem suas pendncias. Finalizado - trmino de um Processo. Relacionamento entre os estados

Criao de processos Existem trs formas de criao de processos Ao iniciar o sistema (criando processos do S.O) Ao Executar chamadas ao sistema (criando processos do usurio) Ao iniciar um programa (criando processos do usurio) Na criao do processo o S.O responsvel por: Atribuir um ID nico; Alocar as estruturas de dados associadas a um processo Alocar espao necessrio em memria Iniciar o PCB Manter a consistncia das listas de processos. Condies que levam ao trmino de um processo Sada Normal (voluntaria) Sada por erro anormal Cancelamento por outro processo (involuntria)

Troca de contexto Quando a CPU passa para outro processo, o sistema precisa salvar os dados no PCB do processo antigo e carregar o PCB do processo novo. Dados que so salvos: valores dos registradores, estado do processo e informaes sobre o gerenciamento de memria. O tempo de troca de contexto custo adicional, o sistema no realiza qualquer trabalho til durante a troca. PCB (Process control block) Define: estado, limite memria, nmero processo Troca de contexto P1 -> P2 1- Salva dados do processo P1 2- PCB carrega dados do P2 Nesse momento a CPU fica ociosa. Caso um processo seja muito pequeno, o tempo ocioso aumenta muito.
.

Escalonador de CPU Escalonador preenptivo: pode interromper um processo em execuo. Escalonador no preenptivo: no pode interromper um processo em execuo, ou seja deve esperar o processo terminar a execuo para poder atribuir um novo processo.

Dispatcher(despachante): responsvel por passar o controle da CPU para o processo selecionado pelo escalonador de CPU, isso envolve: Troca de Contexto Desvio para a instruo apropriada no processo que est sendo carregado.

Latncia de despacho: tempo gasto (tempo que a CPU fica ociosa) para o despachante interromper um processo e iniciar a execuo do outro. Filas de escalonamento de processos Fila de tarefas - conjunto de todos os processos existentes no sistema. Fila de prontos - conjunto de todos os processos residindo na memria principal que esto esperando para ser executados. Fila de dispositivos - Conjunto de processos esperando um dispositivo de E/S. Obs.: Os processos migram entre as filas Ex: FILA DE PRONTOS >> PCB1 >> PCB6 >> PCB10 >> PCB2 FILA DE DISPOSITIVO_2 >> MCB4 >> PCB3 >> PCB2 FILA DE DISPOSITIVO_2 >> PCB7 >> PCB5 >> PCB8 Representaes de escalonamento de processos >> << << << << Fila de prontos fila de E/S >> << << espera criao proc. filho << ocorra a integrao / exceo << CPU fila de requisio fatia de tempo expirada gera um proc. filho espera uma interrupo / exceo(trap)

2 tipos de processos IO bound CPU bound

I/O bound um termo utilizado para designar os sistemas que fazem uso intensivo de entrada/sada (I/O). Todos os sistemas operacionais executam processos de entrada e sada, como por exemplo algum usurio querendo copiar um arquivo para o disquete. Esses processos so conhecidos como I/O bound porque fazem pouco uso da CPU. CPU bound - so aqueles que fazem muito uso da CPU, consomem a maior parte do tempo em estado de execuo, realizando poucas operaes de E/S,. Escalonamento O escalonamento de processos ou agendador de tarefas (em ingls scheduling) uma atividade organizacional feita pelo escalonador (scheduler) da CPU ou de um sistema distribudo, possibilitando executar os processos mais viveis e concorrentes, priorizando determinados tipos de processos, como os de I/O Bound e os computacionalmente intensivos.

O escalonador de processos de 2 nveis escolhe o processo que tem mais prioridade e menos tempo e coloca-o na memria principal, ficando os outros alocados em disco; com essa execuo o processador evita ficar ocioso.

Escalonadores
Escalonador de curto prazo
Seleciona entre os processos em estado de pronto que esto na memria, para serem executados pelo processador. O escalonador de curto prazo faz decises de escalonamento muito mais frequentemente que os de mdio e longo prazo. Chamado de escalonador de CPU seleciona um processo da fila de prontos a ser executado e em seguida aloca a CPU. O escalonador de curto prazo freqentemente chamado (precisa ser veloz).

Escalonador de mdio prazo


Seleciona entre os processos que esto na memria virtual, reduz o grau de multiprogramao. Ele temporariamente remove o processo da memria principal e o coloca na memria secundria (swap) fazendo as operaes de swapping in e swapping out.

Escalonador de longo prazo


Seleciona entre os processos novos, os que so limitados por entrada/sada e os que so limitados por CPU, dando prioridade aqueles limitados por I/O, j que utilizam menos tempo o processador. Este escalonador o responsvel pelo grau de multiprocessamento, ou seja a quantidade de processos que o sistema ir trabalhar. Chamado escalonador de tarefas seleciona os processos de um banco de disco e os carrega na memria colocando-os na fila de prontos O escalonador de longo prazo chamado raramente. (pode ser mais complexo e levar mais tempo) Critrios de Escalonamento Utilizaes da CPU matem a CPU ocupada pelo mximo de tempo possvel. Vazo (THROGHPUT) nmero de processo que so completados por unidade de tempo. Turnaround o tempo necessrio para terminar um determinado processo. Tempo de espera- Tempo que o processo despende esperando na fila de prontos Tempo de resposta tempo percorrido desde que uma requisio submetida at a primeira resposta produzida. Objetivos do Escalonamento Otimizar o desempenho do Sistema de acordo com um critrio. Dividir a capacidade de processamento da CPU entre vrios processos. Diminuir o tempo de resposta.

Escalonamento First Server O processo que requisita a CPU em primeiro lugar recebe A Fila de processos prontos organizada por ordem de chegada(FIFO) Vantagem: fcil de implementar. Desvantagem: tempo de espera mdio e turnaround mdio geralmente so largos. preenptivo. Efeito comboio: Processo curto atrs do processo longo. PRC P1 P2 P3 P4 TC 0 1 2 3 TE 20 15 12 4 0 P1 20 P2 35 P1 47 51 TA1= 20 TA2= 34 TA3= 45 P2 TA4= 48 TAM = 48/4=36,8 TE=0 TE=19 TE=33 TE=44 TEM=96/4=24

PRC P1 P2 P3 P4

TC 3 2 1 0

TE 20 15 12 4

0 P4

4 P3

16 P2

31 P1

51

TA1= 48 TA2= 29 TA3= 15 TA4= 4 TAM = 96/4=24

TE1=28 TE2=14 TE3=3 TE4=0 TEM=45/4=

PRC P1 P2 P3 P4

TC 1 2 3 4

TE 20 10 5 25

1 P1

21 P2

36 P3

41

66 P4

TA1= 20 TA2= 34 TA3= 38 TA4= 62 TAM =

TE1=1 TE2=19 TE3=33 TE4=37 TEM=

Escalonamento SJF (Shortest Job First) Associa a cada processo a durao do seu tempo de execuo na CPU. Usa esses tempos para escalonar processos com o tempo mais curto. Dois esquemas: No preemptivo: uma vez dada ao processo a CPU no pode ser preemptada, at que se complete o tempo de execuo do processo na CPU. Preemptivo: Se um novo processo chegar o tempo de execuo menor do que o tempo restante do processo atualmente em execuo, este processo retirado da CPU e entra o novo processo para execuo (SRTF - Sortest Remaining Time First). O SJF timo, pois ir prover sempre o menor tempo de espera para um determinado conjunto de dados. Porm o algortimo SJF bem difcil de implementar, porque tem que colocar o tempo estimado de cada processo.

Escalonamento por prioridade Um valor de prioridade (inteiro) associado a cada processo. A CPU alocada para o processo com prioridade mais alta (menor inteiro = prioridade mais alta) Dois esquemas: - no preemptivo - Preemptivo Prioridade pode ser esttica ou dinmica Problema = Estagnao (Star Vation) - Processo de baixa prioridade no podem nunca ser executado. Soluo = Envelhecimento (AGGING) - Conforme o tempo passa, aumenta a prioridade do processo; O SJF um escalonamento por prioridade em que a prioridade o tempo de execuo previsto de um processo.
SJF NAO PREEMPTIVO 0 5 6 16 31

P1

P4

P3

P2

PRC P1 P2 P3 P4
TAP1 = 5 TAP2 = 30 TAP3 = 14 TAP4 = 3

TC 0 1 2 3

TE 5 15 10 1

TEMP = 0 TEMP = 15 TEMP = 4 TEMP = 2

TAM = 52/4 =13 TEM = 21/4 = 5,25 SJF PREEMPTIVO 0 3 4 6 16 31

P1

P4 PRC P1 P2 P3 P4 TC 0 1 2 3

P1 TE 5 15 10 1

P3

P2

TAP1 = 6 TEMP = 1 TAP2 = 30 TEMP = 15 TAP3 = 14 TEMP = 4 TAP4 = 3 TEMP = 0 TAM = 53/4 =13,25 TEM = 20/4=5

Algoritmo de escalonamento Round-Robin (RR) -FcFs com preempo Cada processo obtm uma pequena quantidade de tempo de CPU(quantum). Depois de decorrido esse tempo o processo interrompido e colocado no final da fila de provas. Se houver n processos na fila de prontos e o quantum de tempo for q, ento cada processo recebe 1/n do tempo de CPU em, no mximo, q unidades de tempo de cada vez. Nenhum processo espera mais do que (n-1)q unidades de tempo. Desempenho: q grande = FcFs; q pequeno = muita troca de contexto, ou seja, q precisa ser grande com relao ao tempo de troca de contexto ou o custo adicional ser alto. mltiplas filas(multi level queue) Fila de Processos dividida em filas distintas primeiro plano interativos, tempo de resposta menor segundo plano batch, tempo de reposta longo Cada processo permanentemente atribudo a uma fila. Cada fila possui o seu prprio algoritmo de escalonamento. primeiro plano - RR segundo plano FcFs necessrio realizar o escalonamento entre as filas; Escalonamento preenptivo de prioridade fixa, ou seja, serve a todos a partir da primeira fila e depois da segunda fila. Existe a possibilidade de estagnao. Fatia de tempo. Cada Fila recebe certa parte do tempo de CPU, que pode ser escalonamento entre seus processos. Ex: 80% de tempo para uma fila e 20% para a outra. Escalonamento de mltiplas filas

PRC TC TE P1 01 52 P2 02 63 P3 1 6 16 741 P4 21 41 TA1= 11 TA2= 16 TA3= 18 TA4= 18 TAM =63/6=10,5

0 P1

3 P2

6 P3

9 P1

11 P4

14 P2

16 P3

19 P4

20 P3

21

TE1=6 TE2=8 TE3=12 TE4=13 TEM=39/6=6,5

PRC TC TE P1 03 52 P2 16 52 P3 4 6 16 6 3 P4 6 3 TA1= 8 TA2= 15 TA3= 15 TA4= 8 TAM =46/6=7,6

0 P1 TE1=3 TE2=10 TE3=9 TE4= 5 TEM=27/6=4,5

3 P2

6 P1

8 P3

11 P4

14

16 P2

19 P3

Ordem de prioridade processos do sistema processos em primeiro plano processos em segundo Exerccio: Para o quadro de processos abaixo, obtenha o diagrama de execuo, o tempo de espera de cada processo e o turnaround, FCFC, SJF PREEMPITIVO, SJF NO PREEMPTIVO, PRIORIDADE NO PREEMPTIVO, PRIORIDADE PREEMPTIVO E RR Q=3.

1) FCFS PRC TC P1 0 P2 1 P3 4 P4 3 P5 6 P6 5 0 P1 TAP1=3 TAP2=7 TAP3=15 TAP4=11 TAP5=23 TAP6=17 TAM=76/6=12,66 3 P2 TE 3 5 5 6 7 3 8 P4 PRIORIDADE 4 -1 -4 3 2 1 14 P3 19 P6 TEP1=0 TEP2=2 TEP3=10 TEP4=5 TEP5=16 TEP6=14 TEM=47/6=7,83 22 P5 29

2) SJF PREEMPTIVO PRC TC P1 0 P2 1 P3 4 P4 3 P5 6 P6 5 0 P1 TAP1=3 TAP2=7 TAP3=12 TAP4=19 TAP5=23 TAP6=6 TAM=70/6=11,66 3 P2 TE 3 5 5 6 7 3 8 P6 PRIORIDADE 4 -1 -4 3 2 1 11 P3 16 P4 TEP1=0 TEP2=2 TEP3=7 TEP4=13 TEP5=16 TEP6=3 TEM=41/6=6,83 22 P5 29

3) SJF NO PREEMPTIVO PRC TC P1 0 P2 1 P3 4 P4 3 P5 6 P6 5 0 P1 TAP1=3 TAP2=7 TAP3=12 TAP4=19 TAP5=23 TAP6=6 TAM=70/6=11,66 3 P2 TE 3 5 5 6 7 3 8 P6 PRIORIDADE 4 -1 -4 3 2 1 11 P3 16 P4 TEP1=0 TEP2=2 TEP3=7 TEP4=13 TEP5=16 TEP6=3 TEM=41/6=6,83 22 P5 29

4) PRIORIDADE PREEMPTIVO PRC TC P1 0 P2 1 P3 4 P4 3 P5 6 P6 5 0 P1 TAP1=29 TAP2=10 TAP3=5 TAP4=24 TAP5=15 TAP6=11 TAM=94/6=15,66 1 P2 TE 3 5 5 6 7 3 4 P3 PRIORIDADE 4 -1 -4 3 2 1 9 P2 11 P6 TEP1=26 TEP2=5 TEP3=0 TEP4=18 TEP5=8 TEP6=6 TEM=63/6=10,55 14 P5 21 P4 27 P1 29

5) PRIORIDADE NO PREEMPTIVO PRC TC P1 0 P2 1 P3 4 P4 3 P5 6 P6 5 0 P1 TAP1=3 TAP2=7 TAP3=9 TAP4=26 TAP5=17 TAP6=11 TAM=73/6=12,16 3 P2 TE 3 5 5 6 7 3 8 P3 PRIORIDADE 4 -1 -4 3 2 1 13 P6 16 P5 TEP1=0 TEP2=2 TEP3=4 TEP4=20 TEP5=10 TEP6=8 TEM=44/6=7,33 23 P4 29

6) RR Q=3 PRC TC P1 0 P2 1 P3 4 P4 3 P5 6 P6 5 0 P1 3-1=2 TAP1=3 TAP2=16 TAP3=21 TAP4=20 TAP5=23 TAP6=10 TAM=93/6=15,50 3 P2 TE 3 5 5 6 7 3 6 P4 15-6=9 TEP1=0 TEP2=11 TEP3=16 TEP4=14 TEP5=16 TEP6=7 TEM=64/6=10,66 PRIORIDADE 4 -1 -4 3 2 1 9 P3 12 P6 15 P2 17 P5 20 P4 23 P3 25 P5 29

* Para calcular o TURNARROUND o mesmo mtodo para todos os tipos o tempo total de execuo menos o tempo de chegada. * Para calcular o Tempo de execuo quando for preenptivo, o procedimento somar os dois tempos que o processo ficou esperando para poder executar, conforme o exemplo acima. Multiplas filas com realimentao Um processo pronto pode se mover entre as vrias filas Implementao de envelhecimento (AGINNG) Escalonador definido atravs dos seguintes parmetros: Nmero de filas Nmero de escalonamento para cada fila Mtodo usado para determinar quando elevar um processo e rebaixar um processo. Mtodo usado para determinar em que fila um processo entrar quando esse processo precisar de atendimento. Exemplo mltiplas filas com realimentao *Trs filas: - Q0 - quantum de tempo de 8 milissegundos - Q1 - quantum de tempo de 16 milissegundos - Q2 - FcFs Uma nova tarefa entra na fila Q0, que atendida com base no RR. Quando ganha a CPU, a tarefa recebe 8 milissegundos.Se no terminar nesse tempo , a tarefa movida para a fila Q1.Em

Q1, a tarefa atendida novamente com base no RR e recebe no milissegundos adicionais. Se ainda no estiver completa atarefa interrompida e movida da fila Q2. Ex: Todos os processos entram na primeira fila, independente do tempo de execuo. Vamos supor que o processo necessite de 40 milissegundos para executar, ele mandado para a primeira fila de prontos, depois encaminhado para a CPU onde executado durante 8 milissegundos, como ele precisa de mais tempo para ser executado totalmente ele interrompido, sai da CPU e vai para a segunda fila de prontos, retorna para a CPU e executa mais 16 milissegundos interrompido novamente, sai e vai para a terceira fila de prontos retorna novamente para a CPU e executa os 16 milissegundos restante ou seja nesta ultima ele executa at terminar. A CPU estabelece uma porcentagem para cada FILA, com isso o processo vai migrando entre as filas at executar totalmente.
CPU

CPU

scalonamento
CPU

Comunicao interprocesso Muitas aplicaes que possuem vrios processos necessitam da comunicao entre estes processos. Existem 2 classes de processes: Processos independentes- So processos que no podem afetar ou serem afetados pela execuo de outro processo. Processos cooperativos - so processos que podem afetar ou serem afetados pela execuo de outro processo. Vantagens da cooperao entre processos: Compartilhamento de informaes. Agilidade na computao Modular idade. Existem dois modos de comunicao interprocessos: Memria compartilhada Troca de mensagens Memria compartilhada Processos que trabalham juntos podem compartilhar algum armazenamento comum a partir do qual cada processo seja capaz de ler e escrever

Troca de mensagens Send: utilizada por um processo para enviar uma msg. Pode ser bloqueante ou no bloqueante. Receive: utilizada por um processo para receber uma msg. Essa operao bloqueante, o processo que a executa fica bloqueado at o recebimento de uma mensagem. Reply: usada por um processo para responder a uma mensagem recebida. Pode conter uma informao de resposta ou simplesmente pode indicar que uma mensagem enviada com uma operao send foi recebida sem erros. A operao reply no bloqueante. Problema: Pode acontecer situaes em que dois ou mais processos esto lendo e escrevendo algum dado compartilhado e cujo resultado depende das informaes de quem e quando executa precisamente. Esta situao chamada de condio de disputa. Soluo: Para evitar esse problema deve-se encontrar algum modo de implementar que mais de um processo leia e escreva ao mesmo tempo na memria compartilhada. Esta situao chamada de execuo mutua. Existem trs condies necessrias para prover excluso mtua, so elas: 1) Nunca dois processos simultaneamente em uma regio crtica. 2) Nenhum processo fora da regio crtica para bloquear outros processos. 3) Nenhum processo deve esperar eternamente para entrar em sua regio crtica.

PocessoA Aceita

Pocesso B

Negada Aceita

27-04-11 - THREADS O MODELO DE PROCESSO BASEADO EM 2 CONCEITOS INDEPENDENTES: -SECO DE DADOS(EX: ESPAO DE ENDEREAMENTO, CDIGO, DADOS DO PROGRAMA, ARQUIVOS ABERTOS, ETC). -UMA THREAD DE EXECUO -->Uma THREAD ou Processo leve uma unidade bsica de utilizao de cpu. -->Uma THREAD consiste em -ID - Contador de Programas e registradores -->Compartilha com outras THREADS pertencentes ao mesmo processo: -Seo de cdigo e dados -->Um processo tradicional possui uma nica THREAD de controle. -->O contador de programas da THREAD serve para especificar qual instruo deve ser executada em seguida. -->Os registradores contm as variveis que esto sendo utilizadas pela THREAD. -->Apesar de uma THREAD ter de executar em um processo, ambos so conceitos diferentes. Os processos so usados para agrupar recursos e as THREADS sp as entidades escalonadas para a execuo destes recursos. -->Podem existir mltiplas THREADS dentro do mesmo processo executando paralelamente ou concorrentemente.

04-05-11 - Threads Vantagens ->Numa tarefa dotada de multiplas threads de execuo, enquanto uma thread est bloqueada,um outra thread da mesma tarefa pode continuar sendo executada(modo usurio). ->Cooperao de mltiplas threads em uma mesma tarefa aumenta o throughput e o desempenho. ->O mecanismo de threads permite que processos sequenciais sejam executados paralelamente. -> mais rpido criar/terminar uma Thread do que um processo. ->Threads podem se comunicar sem invocar o ncleo j que compartilham memria e arquivos. Exerccios 1) Oque so threads?

R: uma unidade bsica de utilizao de CPU. 2) Explique o funcionamento dos dois modos de implementao de threads.Cite trs diferenas entre eles. R: 3) Cite trs vantagens e trs desvantagens de se ultilizar threads do que processos na paralelizao de tarefas. R: 4) Cite duas diferenas entre thread e processos. R:

09-05-11 - Deadlocks prova 20/06 2 chamada 22/06 prova final 27/06 -Um conjunto de processos esta em sitao de deadlock se cada processo do conjunto estiver esperando por um evento que somente outro processo pertencente ao conjunto poder fazer acontecer. - um efeito colateral de estratgias de sincronizao, porque dois processos ao atualizar variveis compartilhadas usam determinadas tcnicas de sincronizao que causam deadlocks. - Como todos os processos estaro esperando, nenhum deles poder fazer acontecer qualquer um dos eventos que podem vir a acordar um dos dmais membros do conjunto. - Dessa forma, todos os processos do conjunto estaro eternamente bloqueados.

Condies para ocorrncia de um Deadlock - Recursos precisam de ser acessados de forma exclusiva. - Processos manterem recursos alocados enquanto esperam por recursos adicionais. - Necessidade dos recursos serem liberados pelos prprios processos que os esto utilizando. - Formao de uma espera circular. DESENHO

TRATAMENTO DO Deadlock - Eliminao das condies ateriormente citadas. - O Sistema verificar a possibilidade de deadlock antes da alocao dos recursos(causa Overhead) - Deixar acontecer, detect-las e eliminar os processos que esto travando os recursos

* A maioria dos S.O. utilizam a ltima soluo. MEMRIA - sequencia

TRABALHO Sistemas de arquivos: -NFTS -FAT32 -EXT 3 -EXT 4 -FAT16 -GFS-assunto do nosso grupo.

CRITRIOS: Trabalho terico e apresentao -DESEMPENHO -GERENCIAMENTO DE ESPAO -CONFIABILIDADE -ETC

11-05-11 - GERENCIAMENTO DE MEMRIA -> Os condutores utilizam uma herana de memria em sua organizao combinando memrias voltteis e no-volteis, tais como memria cache, memria principal e memria secundria. -> Ao sistema Operacional destinada a funo de coordenar e gerenciar a utilizao dessas memrias de forma eficiente. -> Este servio implementado pelo sistema operacional atravs de gerenciador de memria. Hierarquia figura ______________ Registradores ______________ cache ______________ ram ______________ discos ______________

-> O gerenciador de memria controla quais partes da memria esto sendo utilizadas e quais no esto. -> Alm disso, ele responsvel por alocar espao em memria aos processos que sero que sero executados e liberar as posies de memria ocupadoas quando os processos so finalizados. -> Uma outra funcionalidade do gerenciador de memria controlar o swapping de informao constante na execuo de aplicaes.

Memria -> uma sequencia de bytes, cada um com seu endereo. -> A unidade de memria v um fluxo de endereos. -> A CPU acessa diretamente a memria principal e os registradores. -> Um programa precisa ser trazido para a memria e colocado dentro de um processo para que possa ser executado. -> Fila de entrada: o conjunto de processos no disco que esto esperando para serem trazidos para execuo na memria. -> Um processo pode residir em qualquer posio da memria, afetando os endereos que o processo pode acessar. Trabalho apresentao de 08 a 13/06.

EXTRA - Espao de endereamento Lgico e fsico O conceito de um espao de endereamento lgico que est vinculado a um espao de endereamento fsico separado, fundamental para um correto gerenciamento de memria. Endereo Lgico: gerado pela CPU na compilao de um programa. tambm chamado de endereo virtual. Endereo fsico: endereo usado pela unidade de memria. Os endereos lgicos e fsicos so iguais nops esquemas de mapeamento de endereo em tempo de compilao. CPU---> Memria Os endereos Lgico e Fsico so diferentes no esquema de mapeamento de endereo em tempo de execuo. end logico end fsico

CPU -------> MMU -----> Memria MMU unidade de gerenciamento de memria. dispositivo de hardware que mapeia endereos lgicos em fsicos. ->O programa do usurio lida com os endereos Lgicos, ele nunca l os endereos fsicos.

end lgico end fsico CPU ------> Registrador de realocao(14000) (+)---------> Memria 346 14346

No exemplo, o valor no registrador de relocao somado a cada endereo gerado de um processo do usurio no momento em que enviado para a memria. A memria dividida em duas partes: 1) Sistema operacional residente 2) Processo do usurio -> Registradores de relocao so usados para proteger os processos do usurio uns dos outros e contra alterao de dados e cdigos do SO. -> Registradores de relocao(base): contm o endereo fsico inicial da rea alocada ao processo. -> Registradores Limite:Contm um intervalo de endereos lgicos onde cada endereo lgico precisa ser menor que o registrador limite. EX: Registrador Limite Registradores de relocao end lgico ^ sim CPU----------> <> -----------> (+) ------------> Memria ` End fsico Erro de endereamento

Alocao contgua ->Bloco livre -> bloco de memria disponvel. Blocos livres esto espalhados por toda memria. -> Quando um processo chega, este alocado em uma rea de memria a partir de um bloco grande o suficiente paraacomod-lo. -> O sistema operacional mantm informaes sobre as parties alocadas e parties livres.

18-05-11 - Espao de envelhecimento lgico e fsico -> O conceito de um espao de endereamento lgico que est vinculado a um espao de envelhecimento fsico separado, fundamental para o correto gerenciamento de memria. - Envelhecimento lgico: gerado pela CPU na compilao de um programa. tambm chamado de endereo virtual. - Endereo fsico: Endereo visto pela unidade de memria. -> Os endereos lgico e fisicos so iguais nso esquemas de mapeamento de endereo em tempo de compilao. FIGURA1 -> Os endereo lgicos e fsicos so diferentes no esquema de mapeamento de endereo em tempo de execuo. figura2 MMU-Unidade

06-06-11 - Memria Virtual -> Separao da memria lgica vista pelo usurio da memria fsica. - Apenas parte do programa precisa estar na memria. - O espao de endereamento lgico pode ser muito maior do que o espao de endereamento fsico. - Permite que os espaos de endere[amento sejam compartilhados por vrios processos. -> Memria virtual pode ser implementada atravs de: -Paginao por demanda; -Segmentao por demanda; 1-Paginao por demanda -> Traz uma pgina para a memria apenas quando necessria. - Menor necessidade de E/S. - Necessita de menos memria. -> Pgina necessria ->referncia e ela. -Referncia invlida. -Necessita de menos memria. -> Lazy swapper - Nunca troca uma pgina para memria, a menos que a pgina seja requisitada. -> Swapper - Responsvel por lidar com as pginas.

Oque acontece se no houver quadro dsiponvel? -> Substituio de pgina - encontrar alguma pgina na memria, que no esteja sendo usada, e a descarga para o disco. -> Para ter um bom desempenho, o algortimo resposvel pela substituio de pginas tem que resultar em um mnimo de falta de pginas. -> A mesma pgina pode ser trazida para a vrias vezes.

Substituio de Pginas -> Evita a superalocao da memria modificando a rotina do servio de falta de pagina para incluir a substituio de pgina. -> Substituio de pgina completa a separao entre memria lgica e memria fsica. Uma memria virtual grande pode ser fornecida em uma memria menor. Algortimos de substituio de pgina -> FIFO -> Sequncia de referncia 1,2,3,4,12,5,1,2,3,4,5 -> 3 Quadros (Trs pginas estaro na memria ao mesmo tempo). -> Algortimo LRU (Least Recently Used) -> Faz a troca da pgina que foi menos recentemente usada. Algortimo bsico de substituio de pgina 1- Localizar a pgina desejada no disco 2- Achar quadro livre: - Se houver um quadro livre, use-o. - Se no houver um quadro livre, utilize um algortmo de substituio de pgina; 3- Carrega a pgina desejada para o quadro liberado, e o quadro vai para o disco.

You might also like