SlideShare uma empresa Scribd logo
1 de 62
Baixar para ler offline
Sistemas Operacionais
Profa Ana Paula Lemke
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.
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.
Fundamentos da Computação – Profa Ana Paula Lemke 4
Sistema Operacional [2..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
Fundamentos da Computação – Profa Ana Paula Lemke 6
Sistema Operacional [4..5]
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
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.
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
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
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
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
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
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
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.
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
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.
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?
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
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
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.
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
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.
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
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
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
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
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
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
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
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
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.
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..
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
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.
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.
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
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?
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?
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?
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
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.
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
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
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.
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
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
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
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.
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
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.
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.
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
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:
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
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.
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
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.
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.
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.
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
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.

Mais conteúdo relacionado

Semelhante a 5 - Sistemas Operacionais material adicional internet.pdf

Sistemas Operacionais - 2º unidade - Tiago Falcão
Sistemas Operacionais - 2º unidade - Tiago FalcãoSistemas Operacionais - 2º unidade - Tiago Falcão
Sistemas Operacionais - 2º unidade - Tiago Falcão
Camila Seródio
 
2010 02 26 Sistemas Operacionais Aula1
2010 02 26 Sistemas Operacionais Aula12010 02 26 Sistemas Operacionais Aula1
2010 02 26 Sistemas Operacionais Aula1
Universal.org.mx
 
Questoesde fso
Questoesde fsoQuestoesde fso
Questoesde fso
paulocsm
 
Sistemas Operacionais aula 02
Sistemas Operacionais  aula 02 Sistemas Operacionais  aula 02
Sistemas Operacionais aula 02
Diego Rodrigues
 

Semelhante a 5 - Sistemas Operacionais material adicional internet.pdf (20)

Introd. informática
Introd. informáticaIntrod. informática
Introd. informática
 
Sistemas Operacionais - 2º unidade - Tiago Falcão
Sistemas Operacionais - 2º unidade - Tiago FalcãoSistemas Operacionais - 2º unidade - Tiago Falcão
Sistemas Operacionais - 2º unidade - Tiago Falcão
 
Conceitos de sistemas operacionais
Conceitos de sistemas operacionaisConceitos de sistemas operacionais
Conceitos de sistemas operacionais
 
Sistemas Operacionais - 2 - Tipos de Sistemas Computacionais
Sistemas Operacionais - 2 - Tipos de Sistemas ComputacionaisSistemas Operacionais - 2 - Tipos de Sistemas Computacionais
Sistemas Operacionais - 2 - Tipos de Sistemas Computacionais
 
Questões de Sistemas Operacionais
Questões de Sistemas Operacionais Questões de Sistemas Operacionais
Questões de Sistemas Operacionais
 
[Cliqueapostilas.com.br] arquitetura-de-sistemas-operacionais
[Cliqueapostilas.com.br] arquitetura-de-sistemas-operacionais[Cliqueapostilas.com.br] arquitetura-de-sistemas-operacionais
[Cliqueapostilas.com.br] arquitetura-de-sistemas-operacionais
 
Apostila de sistemas operacionais emi mario gurgel
Apostila de sistemas operacionais emi mario gurgelApostila de sistemas operacionais emi mario gurgel
Apostila de sistemas operacionais emi mario gurgel
 
Apostila de sistemas operacionais emi mario gurgel
Apostila de sistemas operacionais emi mario gurgelApostila de sistemas operacionais emi mario gurgel
Apostila de sistemas operacionais emi mario gurgel
 
Apostila de sistemas operacionais emi mario gurgel
Apostila de sistemas operacionais emi mario gurgelApostila de sistemas operacionais emi mario gurgel
Apostila de sistemas operacionais emi mario gurgel
 
Sistemas operativos trabalho 10ºano
Sistemas operativos trabalho 10ºanoSistemas operativos trabalho 10ºano
Sistemas operativos trabalho 10ºano
 
SlackWare - Leonel
SlackWare - LeonelSlackWare - Leonel
SlackWare - Leonel
 
Introdução a Sistemas Operacionais
Introdução a Sistemas OperacionaisIntrodução a Sistemas Operacionais
Introdução a Sistemas Operacionais
 
2010 02 26 Sistemas Operacionais Aula1
2010 02 26 Sistemas Operacionais Aula12010 02 26 Sistemas Operacionais Aula1
2010 02 26 Sistemas Operacionais Aula1
 
So cap01
So cap01So cap01
So cap01
 
Questoesde fso
Questoesde fsoQuestoesde fso
Questoesde fso
 
Sistemas Operacionais aula 02
Sistemas Operacionais  aula 02 Sistemas Operacionais  aula 02
Sistemas Operacionais aula 02
 
Sistemas Operacionais
Sistemas OperacionaisSistemas Operacionais
Sistemas Operacionais
 
Noções básicas de Sistemas Operacionais
Noções básicas de Sistemas OperacionaisNoções básicas de Sistemas Operacionais
Noções básicas de Sistemas Operacionais
 
Hardware e sistemas operacionais
Hardware e sistemas operacionaisHardware e sistemas operacionais
Hardware e sistemas operacionais
 
fundamentos de sistema operacional- S.O
fundamentos de sistema operacional- S.Ofundamentos de sistema operacional- S.O
fundamentos de sistema operacional- S.O
 

5 - Sistemas Operacionais material adicional internet.pdf

  • 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.
  • 4. Fundamentos da Computação – Profa Ana Paula Lemke 4 Sistema Operacional [2..5]
  • 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
  • 6. Fundamentos da Computação – Profa Ana Paula Lemke 6 Sistema Operacional [4..5]
  • 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.