2. Fundamentos da Computação – Profa Ana Paula Lemke 2
Objetivos da Aula
Descrever as funções de um sistema operacional.
Explicar os fundamentos do sistema operacional de um
computador.
Descrever as vantagens de um sistema operacional
gráfico.
Descrever os métodos de alocação de recursos em
grandes computadores.
Explicar os princípios do gerenciamento de memória.
Discutir sobre escalonamento.
Apresentar diferentes programas utilitários.
3. Fundamentos da Computação – Profa Ana Paula Lemke 3
Sistema Operacional [1..5]
Controla todos os componentes (hardware) da máquina e os
demais programas.
Também controla dispositivos como impressoras, scanners e outros
É através dele que se pode, por exemplo, imprimir um
documento, abrir um janela, excluir um arquivo...
Gerencia os arquivos e pastas do computador
É o primeiro programa que a máquina executa no momento
em que é ligada e, a partir de então, não deixa de funcionar
até que o computador seja desligado.
São encontrados em dispositivos que vão de telefones
celulares a automóveis e de computadores pessoais a
computadores de grande porte.
5. Fundamentos da Computação – Profa Ana Paula Lemke 5
Sistema Operacional [3..5]
Conjunto de programas que se situa entre os softwares
aplicativos e o hardware:
Gerencia os recursos do computador (CPU, dispositivos
periféricos).
Estabelece uma interface com o usuário.
• Determina como o usuário interage com o sistema operacional.
• Duas formas básicas: linha de comando e interface gráfica
(graphical user interface – GUI).
Provê e executa serviços para softwares aplicativos.
Fonte: Livro “Introdução à Informática”, de Capron e Johnson
7. Fundamentos da Computação – Profa Ana Paula Lemke 7
Sistema Operacional [5..5]
Objetivo principal:
Fornecer uma plataforma operacional para que os
usuários possam executar programas.
Objetivo secundário:
Utilizar o hardware de forma eficaz e eficiente.
Fonte: Livro “Sistemas Operacionais”, de Laureano e Olsen
8. Fundamentos da Computação – Profa Ana Paula Lemke 8
Kernel (Núcleo)
Parte mais importante de um sistema operacional.
Gerencia os diversos recursos presentes no sistema
operacional.
Carregado do disco rígido para a memória quando o
computador é inicializado (processo chamado de booting).
• Quando o computador é ligado, um pequeno programa
armazenado na ROM realizada alguns testes de componentes de
hardware internos e carrega o kernel do disco rígido.
• Por permanecer na memória, é chamado de residente.
Carrega na memória outros programas do sistema operacional,
quando necessário.
• Esses outros programas são chamados de não-residentes.
9. Fundamentos da Computação – Profa Ana Paula Lemke 9
Atribuições dos Sistemas Operacionais [1..6]
Inicializar o hardware do computador
Fornecer rotinas básicas para controle de dispositivos
Fornecer gerência, escalonamento e interação de tarefas
Manter a integridade de sistema
Gerenciar processos e memória
Gerenciar o sistema de arquivos
Gerenciar entrada e saída de dados
10. Fundamentos da Computação – Profa Ana Paula Lemke 10
Alguns autores indicam que
um sistema operacional é
composto de vários módulos
com funcionalidades
distintas. Cada módulo é
responsável por gerenciar
uma particularidade do
sistema.
Os módulos indicados por
Laureano e Olsen (2011)
estão apresentados na
figura ao lado.
Atribuições dos Sistemas Operacionais [2..6]
Fonte: Livro “Sistemas Operacionais”, de Laureano e Olsen
11. Fundamentos da Computação – Profa Ana Paula Lemke 11
Atribuições dos Sistemas Operacionais [3..6]
Gerência do processador: visa distribuir a capacidade de
processamento (uso da CPU) de forma justa.
É importante lembrar que algumas aplicações demandam mais
processamento do que outras.
Gerência de memória: tem como função fornecer a cada
aplicação um espaço próprio de memória, independente e
isolado das demais aplicações. Responsável também pelo
uso do disco como memória complementar (swap), neste
caso, a aplicação desconhece o tipo da memória em uso.
Fonte: Livro “Sistemas Operacionais”, de Laureano e Olsen
12. Fundamentos da Computação – Profa Ana Paula Lemke 12
Atribuições dos Sistemas Operacionais [4..6]
Gerência de dispositivos: cada periférico do computador
possui suas peculiaridades; logo, temos vários dispositivos
diferentes, mas com problemas e características comuns.
Pen drives e discos são dispositivos diferentes, mas basta um
endereço ou área de locação para que determinado dado
seja buscado.
Gerência de arquivos: construída sobre a gerência de
dispositivos, possibilita criar abstrações de arquivos e
diretórios.
Fonte: Livro “Sistemas Operacionais”, de Laureano e Olsen
13. Fundamentos da Computação – Profa Ana Paula Lemke 13
Atribuições dos Sistemas Operacionais [5..6]
Gerência de proteção: políticas de acesso e uso do sistema
operacional. Permite a definição de usuários, grupos de
usuários e registro de recursos por usuários.
Interface gráfica: a interação com o usuário se faz
necessária, assim a maioria dos sistemas operacionais
apresentam “telas”, nas quais pode-se informar ao sistema
operacional qual a operação que ele deverá fazer.
Fonte: Livro “Sistemas Operacionais”, de Laureano e Olsen
14. Fundamentos da Computação – Profa Ana Paula Lemke 14
Atribuições dos Sistemas Operacionais [6..6]
Suporte de rede: a comunicação em rede é, atualmente,
essencial ao mundo dos computadores. Assim, o
gerenciamento dessas comunicações se faz necessário e é
realizado sob uma abstração do sistema operacional sobre os
dispositivos físicos, como placas de redes ou modems.
Outros suportes: sistemas operacionais de uso geral (que
permitem ao usuário ouvir músicas, navegar na Internet,
editar textos) normalmente têm mais recursos para gerência
de multimídia. Sistemas operacionais de uso específico (que
possibilitam o controle de uma usina nuclear, por exemplo)
possuem outras características específicas, tais como tempo
de resposta ou suporte a algum hardware especial.
Fonte: Livro “Sistemas Operacionais”, de Laureano e Olsen
15. Fundamentos da Computação – Profa Ana Paula Lemke 15
Atividade [1..2]
Complete o mapa mental apresentado abaixo
adicionando novas relações à idéia central “Sistema
Operacional - SO”.
Mapa mental, ou mapa da mente é o nome dado para um tipo de diagrama, voltado para a gestão de informações, de
conhecimento e de capital intelectual; para a compreensão e solução de problemas; na memorização e aprendizado; na
criação de manuais, livros e palestras; como ferramenta de brainstorming (tempestade de idéias); e no auxílio da gestão
estratégica de uma empresa ou negócio. Fonte: Wikipedia.
16. Fundamentos da Computação – Profa Ana Paula Lemke 16
Atividade [2..2]
No seu mapa mental, tente associar os seguintes conceitos:
Interface gráfica
Telefones celulares
Automóveis
Computadores
pessoais
Impressoras
Scanners
Diretórios de arquivos
Interface com o usuário
Linha de comando
Booting
Programa residente
Programa não-residente
Swap
Gerência do processador
Gerência de
memória
Gerência de proteção
Gerência de dispositivos Gerência de arquivos
Suporte de rede
17. Fundamentos da Computação – Profa Ana Paula Lemke 17
Características dos Sistemas Operacionais
Interativo: modificação e entrada de dados ainda
durante a execução do programa;
Multi-usuário: compartilhamento do computador entre
mais de um usuário;
Multi-tarefas: mais de um processo é executado
concorrentemente;
Multi-processamento: quando há mais de um
processador central dedicados na execução de
processos.
18. Fundamentos da Computação – Profa Ana Paula Lemke 18
Alocação de recursos - Motivação
Em determinado momento, qual programa está
utilizando a CPU?
Se vários programas estão na memória ao mesmo
tempo, como eles não se misturam?
Como é feito o armazenamento quando diversos
programas estão copiando e salvando dados no
disco rígido?
19. Fundamentos da Computação – Profa Ana Paula Lemke 19
Os problemas referem-se a
É preciso compartilhar CPU, memória,
armazenamento, impressora...
Alocação de recursos - Motivação
20. Fundamentos da Computação – Profa Ana Paula Lemke 20
Alocação de recursos
Alocar recursos é atribuir recursos de computador a
certos programas e processos para serem usados.
Principais questões relacionadas à alocação de
recursos:
Compartilhar CPU
Compartilhar memória
Compartilhar recursos de armazenamento
Compartilhar recursos de impressão
21. Fundamentos da Computação – Profa Ana Paula Lemke 21
A maioria dos computadores tem apenas uma CPU que
é compartilhada por todos os programas.
O processo de compartilhamento da CPU é controlado
pelo Sistema Operacional.
Abordagens para o compartilhamento de CPU:
Multiprogramação
Tempo compartilhado
Alocação de recursos –
Compartilhamento de CPU
Multiprocessamento ou processamento paralelo: quando um computador
possui várias CPUs e inúmeras instruções são executadas
simultaneamente, cada uma em um processador distinto.
22. Fundamentos da Computação – Profa Ana Paula Lemke 22
MULTIPROGRAMAÇÃO
Dois ou mais programas executados concorrentemente.
Os programas se alternam na utilização da CPU.
Baseada em eventos.
• Uma interrupção suspende o processamento para permitir a
execução de um outro programa.
• Depois que o segundo programa é executado, o sistema
operacional retorna a CPU a outro programa.
Geralmente é usada em programas em lote que não
exigem entrada do usuário.
Alocação de recursos –
Compartilhamento de CPU
23. Fundamentos da Computação – Profa Ana Paula Lemke 23
TEMPO COMPARTILHADO
Os programas se alternam na utilização da CPU.
Baseado no tempo.
A cada usuário é designada uma fatia de tempo (fração de
segundo).
A CPU trabalha somente nas tarefas desse usuário
durante sua fatia de tempo.
Tipicamente, é usado em aplicações com muitos
usuários.
Alocação de recursos –
Compartilhamento de CPU
Tempo de resposta: o tempo entre o pedido digitado e a resposta do computador.
24. Fundamentos da Computação – Profa Ana Paula Lemke 24
O gerenciamento da memória:
Divide a memória em partições distintas.
Aloca memória para programas.
Mantém os programas mutuamente separados.
Divide a memória em primeiro plano e segundo plano.
Primeiro plano: para programas com alta prioridade, que receberão
mais tempo de CPU.
Segundo plano: para programas com menor prioridade, que
receberão menos tempo de CPU
Os programas que aguardam para ser executados são colocados
em filas, baseando-se em sua prioridade.
Atualmente utiliza armazenamento virtual.
Também chamado de memória virtual.
Alocação de recursos –
Compartilhamento de Memória
25. Fundamentos da Computação – Profa Ana Paula Lemke 25
Alocação de recursos –
Compartilhamento de Memória
Os sistemas operacionais podem ser divididos em duas
amplas categorias quanto ao gerenciamento de
memória:
Monoprogramação
Multiprogramação
Fonte: Livro “Fundamentos da Ciência da Computação”, de Forouzan e Mosharraf
26. Fundamentos da Computação – Profa Ana Paula Lemke 26
Alocação de recursos –
Compartilhamento de Memória
Monoprogramação: a maior parte da capacidade de memória
é dedicada a um único programa. O programa inteiro fica na
memória para execução.
A função do gerenciador de memória é carregar o programa em
memória, esperar que ele execute e depois substituir pelo
programa seguinte.
Problemas:
• O programa deve se ajustar à memória. Se o programa for
maior que a memória, ele não poderá ser executado.
• Quando um programa está sendo executado, nenhum outro
pode executar.
Mais comum em computadores antigos.
Fonte: Livro “Fundamentos da Ciência da Computação”, de Forouzan e Mosharraf
27. Fundamentos da Computação – Profa Ana Paula Lemke 27
Alocação de recursos –
Compartilhamento de Memória
Multiprogramação: há mais de um programa na memória ao
mesmo tempo e eles são executados concorrentemente, com
a CPU alternando entre os programas.
Categorias de multiprogramação:
• Categorias sem swap: o programa permanece na memória durante a
execução.
• Categorias com swap: durante a execução, o programa pode ser “swapped”
(trocado) entre a memória e o disco, uma ou mais vezes.
Fonte: Livro “Fundamentos da Ciência da Computação”, de Forouzan e Mosharraf
28. Fundamentos da Computação – Profa Ana Paula Lemke 28
PARTICIONAMENTO
A memória é dividida em seções de tamanho variável.
Cada seção da partição mantém um programa.
A CPU alterna entre os programas:
Começa com um programa, executa algumas instruções até que
• Encontre uma operação de entrada/saída
• Esgote o tempo alocado para aquele programa.
O mesmo procedimento é repetido para o próximo programa, até
terminar a execução de todos os programas.
Problema:
Os tamanhos das partições precisam ser definidos a priori pelo
gerenciador.
• Se forem grandes, alguns programas não poderão ser carregados. Se
forem pequenos, podem sobrar espaços.
Alocação de recursos –
Compartilhamento de Memória
Fonte: Livro “Fundamentos da Ciência da Computação”, de Forouzan e Mosharraf
29. Fundamentos da Computação – Profa Ana Paula Lemke 29
Alocação de recursos –
Compartilhamento de Memória
Fonte: Livro “Fundamentos da Ciência da Computação”, de Forouzan e Mosharraf
PARTICIONAMENTO
30. Fundamentos da Computação – Profa Ana Paula Lemke 30
PAGINAÇÃO
A memória é dividida em seções de tamanhos iguais, chamadas
frames.
Os programas também são divididos em seções de igual tamanho,
denominadas páginas.
Os tamanhos de um frame e uma página geralmente são iguais.
Uma página é carregada em um frame da memória.
Importante: duas páginas consecutivas não precisam ser contíguas na
memória.
Problema:
Ainda é preciso carregar todo o programa na memória para executá-lo.
• Se um programa tem 6 páginas (e precisa, portanto, de 6 frames), ele não
poderá ser carregado na memória se houver apenas 5 frames desocupados.
Alocação de recursos –
Compartilhamento de Memória
Fonte: Livro “Fundamentos da Ciência da Computação”, de Forouzan e Mosharraf
31. Fundamentos da Computação – Profa Ana Paula Lemke 31
PAGINAÇÃO
Alocação de recursos –
Compartilhamento de Memória
Fonte: Livro “Fundamentos da Ciência da Computação”, de Forouzan e Mosharraf
32. Fundamentos da Computação – Profa Ana Paula Lemke 32
Alocação de recursos –
Compartilhamento de Memória
Fonte: Livro “Fundamentos da Ciência da Computação”, de Forouzan e Mosharraf
PAGINAÇÃO POR DEMANDA
O programa é dividido em páginas, mas não é necessário
que o programa inteiro esteja na memória para que se inicie
sua execução.
33. Fundamentos da Computação – Profa Ana Paula Lemke 33
SEGMENTAÇÃO POR DEMANDA
A segmentação é similar a paginação.
Na paginação, o programa é dividido em páginas do mesmo
tamanho.
Na segmentação, o programa é dividido em segmentos
• São como blocos ou módulos de programa. Mais parecido com a
forma como o programador pensa.
Os segmentos da memória possuem o mesmo tamanho,
então parte de um segmento pode permanecer vazia.
Alocação de recursos –
Compartilhamento de Memória
Fonte: Livro “Fundamentos da Ciência da Computação”, de Forouzan e Mosharraf
Paginação e segmentação por demanda podem ser utilizadas em conjunto: um
segmento pode ser grande demais para se encaixar em um espaço livre da memória.
Então a memória pode ser dividida em frames e o módulo em páginas..
34. Fundamentos da Computação – Profa Ana Paula Lemke 34
SEGMENTAÇÃO POR DEMANDA
Alocação de recursos –
Compartilhamento de Memória
Fonte: Livro “Fundamentos da Ciência da Computação”, de Forouzan e Mosharraf
35. Fundamentos da Computação – Profa Ana Paula Lemke 35
Armazenamento/Memória Virtual [1..3]
Os programas que estão atualmente em execução são
armazenados em disco.
Partes do programa são levadas para a memória conforme a
necessidade.
Pode ser implementado por meio de paginação e/ou
segmentação por demanda.
Paginar significa dividir o programa em partes de igual tamanho,
que são chamadas páginas, e armazená-las em espaços de
memória de igual tamanho denominados frames.
A tabela de páginas (page table) controla as localizações na memória (é como
um índice).
Segmentar significa dividir o programa em segmentos e armazená-
los em espaços de memória também de igual tamanho.
36. Fundamentos da Computação – Profa Ana Paula Lemke 36
Armazenamento/Memória Virtual [2..3]
Com paginação e/ou segmentação por demanda, quando um
programa está sendo executado, parte do programa está na
memória e parte está em disco.
Exemplo:
Uma memória de 10 MB de tamanho pode executar 10 programas, cada
um com tamanho de 3 MB, o que totaliza 30 MB.
A qualquer momento, apenas 10 MB dos 10 programas estão na memória
e 20 MB estão no disco.
Fala-se que existe uma memória real de 10 MB, mas a memória virtual é
de 30 MB.
A memória virtual é utilizada em praticamente todos os sistemas
operacionais da atualidade.
37. Fundamentos da Computação – Profa Ana Paula Lemke 37
Armazenamento/Memória Virtual [3..3]
Fonte: Livro “Introdução à Informática”, de Capron e Johnson
38. Fundamentos da Computação – Profa Ana Paula Lemke 38
Atividade 1
Um computador tem um sistema operacional com
monoprogramação. Se o tamanho da memória for 64
MB e a parte residente em memória (do sistema
operacional), precisar de 4 MB, qual é o tamanho
máximo do programa que pode ser executado por esse
computador?
39. Fundamentos da Computação – Profa Ana Paula Lemke 39
Atividade 2
Um sistema operacional com multiprogramação utiliza um
esquema de repartição e divide os 60MB de memória
disponível em quatro partições, sendo uma de 10MB, uma de
12MB, uma de 18MB e outra de 20MB. O primeiro programa
a ser executado precisa de 17MB e ocupa a terceira partição.
O segundo programa precisa de 8MB e ocupa a primeira
partição. O terceiro programa necessita de 10,5MB e ocupa a
segunda partição. Por fim, o quarto programa precisa de
20MB e ocupa a quarta partição. Qual é a memória total
utilizada? Qual é a memória total desperdiçada? Que
porcentagem de memória é desperdiçada?
40. Fundamentos da Computação – Profa Ana Paula Lemke 41
Atividade 3
Um sistema operacional com multiprogramação utiliza
paginação. O total de memória disponível é 60 MB, divididos
em 15 frames, cada um com 4 MB. O primeiro programa
precisa de 13 MB. O segundo, de 12 MB. O terceiro, de 27
MB.
Quantos frames são utilizados pelo primeiro programa?
Quantos frames são utilizados pelo segundo programa?
Quantos frames são utilizados pelo terceiro programa?
Quantos frames ficam sem ser utilizados?
Qual é o total de memória desperdiçada?
Que porcentagem de memória é desperdiçada?
41. Fundamentos da Computação – Profa Ana Paula Lemke 43
Controla a localização dos arquivos.
Supervisiona a criação, exclusão e modificação de
arquivos.
Responde a comandos para manipular arquivos.
Controla pedidos de entrada e saída de arquivos
O processamento é feito na ordem em que os pedidos são
recebidos.
Alocação de recursos –
Compartilhamento de Armazenamento
42. Fundamentos da Computação – Profa Ana Paula Lemke 44
Alocação de recursos –
Compartilhamento de Recursos de Impressão
Spooling: o programa escreve uma linha em um arquivo
em disco em vez de enviá-la diretamente a uma
impressora.
Quando o arquivo é concluído, é colocado numa fila.
O arquivo é impresso quando a impressora se torna disponível.
Permite que um programa conclua a execução muito
mais rapidamente.
Escrever em disco é muito mais rápido do que escrever em uma
impressora.
43. Fundamentos da Computação – Profa Ana Paula Lemke 45
Escalonamento (gerenciamento de processos)
Conceitos:
Programa: “conjunto de instruções, não ativo, armazenado em
disco (ou fita), que pode ou não se transformar em um job”.
Job: “Um programa se torna um job no momento em que é
selecionado para execução, e assim permanece até o momento
em que a execução é concluída, quando se torna novamente
um programa. Ele pode estar localizado em disco, esperando
para ser carregado na memória ou ser carregado na memória e
estar esperando a execução pela CPU”.
• Todos os jobs são um programa, mas nem todo programa é um job.
Processo: “é um programa em execução, ou seja, um programa
que iniciou, mas não foi concluído. Em outras palavras, um
processo é um job que está sendo executado na memória”.
Fonte: Livro “Fundamentos da Ciência da Computação”, de Forouzan e Mosharraf
44. Fundamentos da Computação – Profa Ana Paula Lemke 46
Escalonamento (gerenciamento de processos)
Fonte: Livro “Fundamentos da Ciência da Computação”, de Forouzan e Mosharraf
45. Fundamentos da Computação – Profa Ana Paula Lemke 47
Escalonamento (gerenciamento de processos)
Fonte: Livro “Fundamentos da Ciência da Computação”, de Forouzan e Mosharraf
• É responsável por criar um
processo a partir de um job e
concluir um processo.
Escalonadores são utilizados pelo gerenciador de
processos para mover jobs ou processos de um estado
para outro.
Escalonador de jobs: responsável por mover um job do
estado de preparação para pronto ou do estado de
execução para concluído.
46. Fundamentos da Computação – Profa Ana Paula Lemke 48
Escalonamento (gerenciamento de processos)
Escalonador de processos: move processos do estado
de execução para o estado de espera, de espera para
pronto, do estado de execução para pronto e do estado de
pronto para execução.
Fonte: Livro “Fundamentos da Ciência da Computação”, de Forouzan e Mosharraf
47. Fundamentos da Computação – Profa Ana Paula Lemke 49
Escalonamento (gerenciamento de processos)
Sincronização de processos: compreende o
gerenciamento de processos de forma a sincronizar
diferentes processos com diferentes recursos.
Problemas:
Deadlock (impasse)
Starvation (do inglês, fome, inanição)
Fonte: Livro “Fundamentos da Ciência da Computação”, de Forouzan e Mosharraf
48. Fundamentos da Computação – Profa Ana Paula Lemke 50
Escalonamento (gerenciamento de processos)
Sincronização de processos: problema deadlock
Figurinha com a ponte
O deadlock ocorre quando o sistema operacional não
define restrições de recursos para os processos.
Fonte: Livro “Fundamentos da Ciência da Computação”, de Forouzan e Mosharraf
49. Fundamentos da Computação – Profa Ana Paula Lemke 51
Escalonamento (gerenciamento de processos)
O deadlock ocorre quando o sistema operacional permite que
um processo inicie sua execução sem primeiro verificar se os
recursos necessários estão prontos (liberados para uso) e,
ainda, que um processo mantenha um recurso por quanto
tempo quiser.
Solução 1: não permitir que um processo inicie sua execução
até que os recursos estejam liberados.
Solução 2: limitar o tempo pelo qual um processo pode manter
um recurso.
Fonte: Livro “Fundamentos da Ciência da Computação”, de Forouzan e Mosharraf
Recurso: algo que pode ser adquirido, usado e liberado com o passar do tempo. Um
recurso pode ser um dispositivo de hardware (por exemplo, um gravador de CD) ou um
trecho de informação (por exemplo, um registro travado em uma base de dados).
Fonte: livro “Sistemas Operacionais Modernos", de Tanenbaum.
50. Fundamentos da Computação – Profa Ana Paula Lemke 52
Escalonamento (gerenciamento de processos)
Condições para a existência de um deadlock:
Exclusão mútua: quando somente um processo pode manter um
recurso.
Retenção de recursos: quando um processo mantém um
recurso, mesmo que não possa utilizá-lo, até que os outros
recursos estejam disponíveis.
Sem preempção: quando o sistema operacional não pode
realocar um recurso temporariamente.
Espera circular: quando todos os processos e recursos formam
um laço.
As quatro condições são exigidas para que um deadlock ocorra. No
entanto, elas não são suficientes para causar o deadlock por si mesmas.
Fonte: Livro “Fundamentos da Ciência da Computação”, de Forouzan e Mosharraf
51. Fundamentos da Computação – Profa Ana Paula Lemke 53
Escalonamento (gerenciamento de processos)
Exemplo de deadlock:
No exemplo, o Processo A está mantendo o Arquivo1 (está associado a ele) e
não pode liberá-lo até que adquira outro arquivo, o Arquivo2. O processo B está
mantendo o arquivo Arquivo2 e não pode liberá-lo até que tenha o Arquivo1.
Se não houver algo que force um processo a liberar um arquivo, é criado um
deadlock.
52. Fundamentos da Computação – Profa Ana Paula Lemke 54
Exemplo
Suponha, por exemplo, que dois processos queiram cada um
gravar em CD um documento escaneado. O processo A
solicita permissão para usar o scanner e é autorizado. O
processo B, que tem uma programação diferente, solicita
primeiro permissão para utilizar o gravador de CD e também
é autorizado.
Então o processo A pede para usar o gravador de CD, mas a
solicitação lhe é negada até que o processo B o libere. Nesse
mesmo momento, ao invés de liberar o gravador de CD, o
processo B pede para usar o scanner.
53. Fundamentos da Computação – Profa Ana Paula Lemke 55
Escalonamento (gerenciamento de processos)
Sincronização de processos: problema STARVATION
Starvation é o oposto do deadlock. Ocorre quando o
sistema operacional define muitas restrições de recursos
para um processo.
Fonte: Livro “Fundamentos da Ciência da Computação”, de Forouzan e Mosharraf
54. Fundamentos da Computação – Profa Ana Paula Lemke 56
Escalonamento (gerenciamento de processos)
Fonte: Livro “Fundamentos da Ciência da Computação”, de Forouzan e Mosharraf
Sincronização
de processos:
problema
STARVATION
Exemplo:
55. Fundamentos da Computação – Profa Ana Paula Lemke 57
Escalonamento (gerenciamento de processos)
Fonte: Livro “Fundamentos da Ciência da Computação”, de Forouzan e Mosharraf
Explicação do Exemplo:
- Imagine que o processo A precisa de 2 arquivos
para executar (os arquivos Arquivo1 e Arquivo2). O
Arquivo1 está sendo utilizado pelo processo B e o
Arquivo2 está sendo utilizado pelo processo E.
- O processo B termina e libera o Arquivo1, mas o
processo A não pode executar porque também
precisa do Arquivo 2.
- Como o processo C precisa somente do Arquivo1,
ele ganha permissão para executar.
- Agora, o processo E é concluído e libera o
Arquivo2, mas o processo A não pode ser
executado porque o Arquivo1 ainda está
indisponível.
Sincronização de processos: problema STARVATION
56. Fundamentos da Computação – Profa Ana Paula Lemke 58
Atividade 4
Três processos (A, B e C) estão sendo executados
simultaneamente. O processo A adquiriu o Arquivo1, mas
precisa do Arquivo2. O processo B adquiriu o Arquivo 3, mas
precisa do Arquivo1. O processo C adquiriu o Arquivo2, mas
precisa do Arquivo3. Desenhe um diagrama para esses
processos. Essa é uma situação de deadlock? Justifique sua
resposta.
57. Fundamentos da Computação – Profa Ana Paula Lemke 60
Programas Utilitários
Executam tarefas secundárias dentro do sistema
operacional.
Exemplos:
Gerenciador de arquivos
Compactação de arquivos
Outros
58. Fundamentos da Computação – Profa Ana Paula Lemke 61
Gerenciador de Arquivos
Armazena arquivos
em uma estrutura de
diretórios hierárquica.
O Windows usa o
Windows Explorer.
59. Fundamentos da Computação – Profa Ana Paula Lemke 62
Compactação de Arquivos
Reduz a quantidade de espaço que um arquivo requer.
Faz o arquivo ocupar menos espaço em disco.
Toma menos tempo para transmitir por meio de linhas de
comunicação.
60. Fundamentos da Computação – Profa Ana Paula Lemke 63
Outros Programas Utilitários
Backup e Restauração:
Backup: faz cópias de discos e armazena-as em algum
lugar seguro.
Restauração: restaura arquivos de backups.
Desfragmentador de disco: reorganiza o disco a fim de
que todos os arquivos sejam armazenados em
localizações contíguas.
Driver de dispositivo: manipula comandos para
dispositivos, como, por exemplo, impressoras e
dispositivos de armazenamento.
61. Fundamentos da Computação – Profa Ana Paula Lemke 64
Desfragmentador de disco
Outros Programas Utilitários[2..2]
Fonte: Livro “Introdução à Informática”, de Capron e Johnson
62. Fundamentos da Computação – Profa Ana Paula Lemke 65
Referências
Fontes utilizadas para a confecção desse material:
Slides do livro “Introdução à Informática” disponibilizados pela
Pearson Education.
Slides gentilmente cedidos pelo professor Ivan Prá.
Laureano, M., Olsen, D. “Sistemas Operacionais”. Editora do
Livro técnico. Curitiba, 2010, 160 p.