Escolar Documentos
Profissional Documentos
Cultura Documentos
Sistemas Operacionais Em geral, os programas precisam ser compilados para que possam ser executados no sistema computacional. Vrias atividades ocorrem entre o instante em que o mesmo compilado e o momento em que ele inicia sua execuo: gerao do cdigo objeto, cdigo executvel, alocao em memria, nova entrada no PCB, insero da referncia do processo na fila de apto, etc. O mecanismo tradicional de transformao de programas em processos ilustrado abaixo:
Sistemas Operacionais monoprogramao indica que somente um programa usurio carregado na memria e executado por vez. Algumas formas de organizar a memria com um sistema operacional e um processo de usurio so mostradas na Figura 1. O modelo apresentado em (a) foi utilizado em computadores de grande porte mas no mais empregado. J a segunda organizao (b) ainda utilizada em alguns palmtops e em sistemas embarcados. A estratgia ilustrada em (c) esteve presente nos primeiros computadores pessoais, onde a parte do sistema operacional contida em ROM denominada BIOS (Basic Input Output System).
0xFFF. 0xFFF.
Programa de usurio
SO em RAM
SO em RAM
0 (a)
Programa de usurio
0 (b)
SO em RAM
(c)
Figura 1. Formas de organizao da memria. Pelo fato de permitir que apenas um nico programa usurio seja carregado em memria a cada instante, a monoprogramao raramente usada hoje em dia, a no ser em sistemas embarcados simples.
Sistemas Operacionais Kbytes, no contguas. Nesse instante criado um processo de 110 Kbytes que no poder ser carregado em memria pela forma como ela gerenciada. Este problema ocasiona o que chamamos de fragmentao externa (memria perdida fora da rea ocupada por um processo). A Figura 2 ilustra o esquema de organizao com parties fixas. O problema da organizao em mltiplas filas que jobs pequenos podem precisar esperar pela liberao de memria (partio mais adequada para o mesmo), embora exista memria disponvel (partio grande), como o caso da partio 1 e 3. Por outro lado, isso no ocorre no esquema de uma nica fila. Nesta organizao (b) sempre que uma nova partio liberada o job mais prximo do incio da fila e que caiba nessa partio pode ser carregado nela para ser executado pela CPU. No entanto, esta estratgia pode desperdiar muito espao ao armazenar um job pequeno em uma partio grande. Assim, uma opo mais interessante seria pesquisar em toda a fila de entrada e alocar a partio disponvel ao maior job que pudesse ser carregado. Qual o problema dessa soluo? (Discriminar jobs pequenos!) Qual a soluo? (Ter pelo menos uma partio pequena!). Existe uma outra possibilidade consiste em estabelecer uma quantidade mxima k de vezes que um job pudesse ser excludo da escolha de receber uma partio. Assim, sempre que ele fosse preterido teria seu contador incrementado e, ao chegar em k vezes, ele teria que receber uma partio.
800 K Partio 4 700 K Partio 3 400 K Partio 2 200 K Partio 1 100 K SO 0 (a) (b) SO Partio 1 Partio 2 Partio 3 Partio 4
800 K 700 K
Figura 2. Parties fixas com filas de entrada separadas (a) e com uma nica fila (b).
Sistemas Operacionais
Sistemas Operacionais necessita crescer e sua partio no permite nenhuma expanso. Se houver algum espao adjacente ao processo que puder ser alocado a ele, o crescimento ser permitido sem que seja necessrio mover o mesmo para outra partio maior (Figura 4). Caso no haja espao para aumentar o tamanho da partio ou no tenha uma partio grande o suficiente para realocar o processo, ento um ou mais processos devero ser removidos para o disco (swapping). Se no for possvel realizar o swapping (rea de swapping cheia) o processo que deseja crescer dever esperar ou ser eliminado.
tempo
C B B
C B
C B
E A A A D SO SO SO SO SO D SO D SO
SO
Sistemas Operacionais
Figura 5. Representao dos espaos de memria com mapa de bits e lista ligada. (a) 5 segmentos alocados a processos e trs livres. (b) mapa de bits. (c) lista ligada.
Sistemas Operacionais retirado da memria. A utilizao de uma lista duplamente encadeada facilita no processo de atualizao da mesma. Existem alguns algoritmos que podem ser utilizados para alocar as informaes na memria: 1. algoritmo da primeira alocao (first fit): procura-se pelo primeiro espao na lista o suficientemente grande para armazenar o processo. um algoritmo rpido pois ele gasta o tempo mnimo em procura. Se o processo no ocupa todo o espao o restante disponibilizado como buraco na lista. A pesquisa por espao sempre inicia na parte baixa de memria, independentemente dos locais escolhidos para alocar os dados. 2. algoritmo da melhor alocao (best fit): busca em toda a lista o espao cujo o tamanho seja o mais prximo possvel do tamanho do processo. Este algoritmo mais lento que o anterior pois precisa pesquisar em toda a lista para descobrir qual a melhor opo. 3. algoritmo da prxima alocao (next fit): semelhante ao first-fit, s que a prxima alocao inicia com uma busta a partir da pgina onde terminou a alocao anterior e no da parte baixa da memria. 4. algoritmo da pior alocao (worst fit): procura pelo maior espao capaz de armazenar o processo, de tal forma que o espao restante seja grande o suficiente para armazenar outro processo. Questionamento: que estratgia poderiamos adotar, em relao a lista encadeada, para aumentar o desempenho dos algortmos ao procurar um espao disponvel para alocao?
Sistemas Operacionais
Exerccios
01. Qual a funo da MMU na gerncia de memria? 02. O que o TLB? 03. Explique a importncia do TLB no desempenho da MMU. 04. Qual o tipo de fragmentao apresentado pelos mtodos de gerncia de memria baseados em parties fixas e por parties variveis? 05. Qual a diferena entre endereo fsico e virtual? 06. Qual a diferena entre monoprogramao e multiprogramao? 07. Explique o que a atividade de swapping e diga como ela pode prejudicar o desempenho do sistema computacional. 08. Quando mais interessante utilizarmos o algoritmo best-fit? E o worst-fit? 09. Considerando parties fixas de memria de 100K, 500K, 200K, 300K e 600K (nessa ordem), como cada um dos algoritmos first-fit, best-fit e worst-fit colocaria processos de 212K, 417K, 112K e 426K (nessa ordem)? Calcule a quantidade de espao desperdiado em cada algoritmo. 10. Considere um sistema cuja gerncia de memria feita atravs de parties variveis. Inicialmente, existem as seguintes pginas: 10K, 4K, 20K, 18K, 7K, 9K, 12K e 13K, nessa ordem. Desenhe a memria com suas pginas e mostre como as pginas sero ocupadas pelos processos de tamanho: 5K, 10K, 15K, 8K, 3K, 7K e 6K. Considere essa ordem de solicitao. Simule os seguintes algoritmos: a. First-fit b. Best-fit c. Worst-fit d. Next-fit
Bibliografia
TANENBAUM, A. S. Sistemas Operacionais Modernos. 2 Edio. Prentice Hall, 2003.