48
 Material didático extraído da web. Essa apostila Não substitui as consultas nas bibliografias oficiais da disciplina. 1  Arquitetura de Sistemas Operacionais 1. Histórico ............................................................................................................ 3 2. Tipos de Sistemas Operacionais ..................................................................... 4 2.1 Sistemas Monoprogramáveis ..................................................................... 4 2.2 Sistemas Multiprogramáveis ..................................................................... 5 2.2.1 Sistemas Batch ..................................................................... 6 2.2.2 Sistemas de Tempo Compartilhado ........................................ 7 2.2.3 Sistemas de Tempo Real ........................................................... 7 2.3 Sistemas Multiprocessados ..................................................................... 8 3. Sistemas Multiprogramáveis ............................................................................... 10 3.1 Tratamento de Interrupções e Exceções .................................................. 11 3.2 Buffer ................................................................................................... 12 3.3 Spool ................................................................................................... 12 3.4 Reentrância ......................................................................................... 13 3.5 Segurança e Proteção do Sistema ............................................................ 14 3.6 Operações de E/S ................................................................................ 17 4. Estrutura do Sistema Operacional ...................................................................... 17 4.1 Estrutura do Sistema ................................................................................ 17 4.2 Funções do Sistema ................................................................................ 18 4.3 System Calls .......................................................................................... 19 4.4 Modos de Acesso ................................................................................ 20 4.5 Arquiteturas: Sistemas monolíticos, em camadas e microkernel ...................... 21 5. PROCESSO .................................................................................................... 24 5.1 Componentes do processo ....................................................................... 24 5.2 Estados do processo ................................................................................. 26 5.3 Mudanças de estado ................................................................................. 27 5.4 Tipos de processo ................................................................................. 28 6. Gerência do Processador ........................................................................................ 29 6.1 Funções ............................................................................................................. 29 6.2 Critérios de Escalonamento ............................................................................. 29 6.3 Escalonamentos Não-Preemptivos e Preemptivos ................................... 30 7. Gerência de Memória / Memória Virtual ................................................................... 34 7.1 Introdução ................................................................................................... 34 7.2 Funções .............................................................................................................. 34 7.3 Alocação Contígua Simples .............................................................................. 34 7.4 Segmentação de programas .............................................................................. 35

Ambiente e Sistemas Operacionais

Embed Size (px)

Citation preview

5/14/2018 Ambiente e Sistemas Operacionais - slidepdf.com

http://slidepdf.com/reader/full/ambiente-e-sistemas-operacionais 1/48

Material didático extraído da web. Essa apostila Não substitui as consultas nas bibliografiasoficiais da disciplina.

 Arquitetura de Sistemas Operacionais

1. Histórico ............................................................................................................

2. Tipos de Sistemas Operacionais ..................................................................... 2.1 Sistemas Monoprogramáveis ..................................................................... 2.2 Sistemas Multiprogramáveis .....................................................................

2.2.1 Sistemas Batch ..................................................................... 2.2.2 Sistemas de Tempo Compartilhado ........................................ 2.2.3 Sistemas de Tempo Real ...........................................................

2.3 Sistemas Multiprocessados .....................................................................

3. Sistemas Multiprogramáveis ............................................................................... 3.1 Tratamento de Interrupções e Exceções ..................................................

3.2 Buffer ................................................................................................... 3.3 Spool ................................................................................................... 3.4 Reentrância ......................................................................................... 3.5 Segurança e Proteção do Sistema ............................................................ 3.6 Operações de E/S ................................................................................

4. Estrutura do Sistema Operacional ...................................................................... 4.1 Estrutura do Sistema ................................................................................ 4.2 Funções do Sistema ................................................................................ 4.3 System Calls .......................................................................................... 4.4 Modos de Acesso ................................................................................

4.5 Arquiteturas: Sistemas monolíticos, em camadas e microkernel ......................

5. PROCESSO .................................................................................................... 5.1 Componentes do processo ....................................................................... 5.2 Estados do processo ................................................................................. 5.3 Mudanças de estado ................................................................................. 5.4 Tipos de processo .................................................................................

6. Gerência do Processador ........................................................................................ 6.1 Funções .............................................................................................................

6.2 Critérios de Escalonamento ............................................................................. 6.3 Escalonamentos Não-Preemptivos e Preemptivos ...................................

7. Gerência de Memória / Memória Virtual ................................................................... 7.1 Introdução ................................................................................................... 7.2 Funções .............................................................................................................. 7.3 Alocação Contígua Simples .............................................................................. 7.4 Segmentação de programas ..............................................................................

5/14/2018 Ambiente e Sistemas Operacionais - slidepdf.com

http://slidepdf.com/reader/full/ambiente-e-sistemas-operacionais 2/48

Material didático extraído da web. Essa apostila Não substitui as consultas nas bibliografiasoficiais da disciplina.

7.5 Alocação Particionada Estática Absoluta e Relocável .................................... 7.6 Alocação Particionada Dinâmica ................................................................... 7.7 Estratégias de Alocação de Partição ........................................................ 7.8 Swapping ................................................................................................... 7.9 Memória Virtual ...................................................................................................

7.10 Algoritmos de substituição de páginas ........................................................

8. Gerência de sistemas de Arquivos .............................................................................. 8.1 Estrutura de diretórios ......................................................................................... 8.2 Sistemas de alocação de arquivos .................................................................... 8.3 Gerência de espaço livre ............................................................................... 8.4 Proteção de acesso ..........................................................................................

9. BIBLIOGRAFIA ...............................................................................................................

5/14/2018 Ambiente e Sistemas Operacionais - slidepdf.com

http://slidepdf.com/reader/full/ambiente-e-sistemas-operacionais 3/48

Material didático extraído da web. Essa apostila Não substitui as consultas nas bibliografiasoficiais da disciplina.

1. Histórico

 Antes da década de 50, os computadores eram muito difíceis de serem programados. necessário conhecer totalmente sua arquitetura, e tal operação era efetuada em painéis ccerca de 6.000 conectores, em linguagem de máquina. Nesta fase os computadores n

possuíam ainda dispositivos para interagir com o usuário, como teclados e monitores.

Na década de 50, já com a utilização de transistores, sucedeu-se um grande avantecnológico, melhorando a velocidade dos processadores e a capacidade dos meios armazenamento, em especial a memória e os discos magnéticos.

Por volta de 1953 foi introduzido o primeiro sistema operacional, um programa controle que permitia uma interação, mesmo que limitada, entre o operador e a máquiotimizando a execução das tarefas. Em 1959 foi criada uma versão de sistema operacional q

 já implementava conceitos de memória virtual, conceito este largamente utilizado nos sistem

atuais.Na década de 60, a partir do surgimento dos circuitos integrados, foi possível difundi

uso de sistemas computacionais em empresas, com diminuição de custos e tamanho dequipamentos. Além disso, esta década presenciou inúmeras inovações na área de sistemoperacionais, presentes até hoje, como os ambientes de multitarefa, multiprogramaçmultiprocessamento e time-sharing, tendo o desenvolvimento destas técnicas avançado atémeado da década de 70, onde também foram implementadas as tecnologias baseadas arquitetura VLSI (chips), as primeiras redes de computadores, e o desenvolvimento de diverlinguagens de programação de alto nível.

  A década de 80 foi marcada pela criação dos microcomputadores, baseados microprocessadores de uso pessoal. Liderados pela IBM, diversos fabricantes seguiram por elinha, porém alguns deles não abandonando a fabricação dos computadores de grande pocomo foi o caso da própria IBM.

Nota-se que, a partir do meado da década de 80, acontece uma divisão de águas, comindústria passando a produzir equipamentos de grande porte e muitos modelos microcomputadores, que também precisavam de sistemas operacionais bastante evoluídForam, então, utilizadas as técnicas modernas já existentes nos ambientes de grande porteimplementação de sistemas operacionais para os microcomputadores, com versões divers

todas inicialmente monousuário/monotarefa (devido à baixa capacidade de armazenamento micros, naquela época). Com o avanço da tecnologia, os micros ganharam discos rígidosoutros periféricos, possibilitando a criação de sistemas operacionais mais evoluídos necategoria de computadores, quando surgiram os sistemas monousuário/multitarefa, qexecutam até hoje.

5/14/2018 Ambiente e Sistemas Operacionais - slidepdf.com

http://slidepdf.com/reader/full/ambiente-e-sistemas-operacionais 4/48

Material didático extraído da web. Essa apostila Não substitui as consultas nas bibliografiasoficiais da disciplina.

Cronologia

Grande porte (mainframes)

1990

1950 1960 1970 1980

Microcomputadores 

2. Tipos de Sistemas Operacionais 

Tipos deSistemas Operacionais

Sistemas

Monoprogramáveis/Monotarefa

Sistemas

Multiprogramáveis/Multitarefa

Sistemas

Com MúltiplosProcessadores

2.1 Sistemas Monoprogramáveis/Monotarefa

Os primeiros sistemas operacionais eram voltados tipicamente para a execução de único programa. Qualquer outra aplicação, para ser executada, deveria aguardar o término programa corrente. Neste tipo de sistema, o processador, a memória e os periféripermanecem exclusivamente dedicados à execução de um único programa.

Os sistemas monoprogramáveis estão diretamente ligados ao surgimento, na década50/60, dos primeiros computadores. Embora os sistemas operacionais já tivessem evoluído cas tecnologias de multitarefa e multiprogramáveis, os sistemas monoprogramáveis voltaramser utilizados na plataforma de microcomputadores pessoais e estações de trabalho devidobaixa capacidade de armazenamento destas máquinas, na época.

1º SistemaOperacionalMonoprogramávelMonotarefa

Introduzido oconceito deMemória Virtual

SistemasMultitarefa

SistemasMultiprogramáveisMultitarefa

5/14/2018 Ambiente e Sistemas Operacionais - slidepdf.com

http://slidepdf.com/reader/full/ambiente-e-sistemas-operacionais 5/48

Material didático extraído da web. Essa apostila Não substitui as consultas nas bibliografiasoficiais da disciplina.

Era muito clara a desvantagem deste tipo de sistema, no que diz respeito à limitação tarefas (uma de cada vez), o que provocava um grande desperdício de recursos de hardware.

Sistema Monoprogramável/Monotarefa

Comparados a outros sistemas, os monoprogramáveis são de simples implementaçnão existindo muita preocupação com problemas decorrentes do compartilhamento de recurcomo memória, processador e dispositivos de E/S.

2.2 Sistemas Multiprogramáveis/Multitarefa

Constituindo-se uma evolução dos sistemas monoprogramáveis, neste tipo de sistemarecursos computacionais são compartilhados entre os diversos usuários e aplicações: enquaum programa espera por um evento, outros programas podem estar processando neste mesintervalo de tempo. Neste caso, podemos observar o compartilhamento da memória e processador. O sistema operacional se incumbe de gerenciar o acesso concorrente aos sdiversos recursos, como processador, memória e periféricos, de forma ordenada e protegientre os diversos programas.

  As vantagens do uso deste tipo de sistema são a redução do tempo de resposta aplicações, além dos custos reduzidos devido ao compartilhamento dos recursos do siste

entre as diferentes aplicações. Apesar de mais eficientes que os monoprogramáveis, os sistemmultiprogramáveis são de implementação muito mais complexa.

CPU 

MemóriaPrincipal

 _______  _______  _______  _______  _______ 

Programa/TarefaDispositivos

5/14/2018 Ambiente e Sistemas Operacionais - slidepdf.com

http://slidepdf.com/reader/full/ambiente-e-sistemas-operacionais 6/48

Material didático extraído da web. Essa apostila Não substitui as consultas nas bibliografiasoficiais da disciplina.

Sistema Multiprogramável/Multitarefa

Os sistemas multiprogramáveis/multitarefa podem ser classificados de acordo comforma com que suas aplicações são gerenciadas, podendo ser divididos em sistemas batch,tempo compartilhado e de tempo real, de acordo com a figura abaixo.

Sistemas

Multiprogramáveis/Multitarefa

Sistemas BATCH Sistemas deTempo Compartilhado

Sistemas deTempo Real

2.2.1 Sistemas BATCH

Foram os primeiros sistemas multiprogramáveis a serem implementados na década 60. Nesta modalidade, os programas eram submetidos para execução através de cartperfurados e armazenados em disco ou fita, para posterior execução. Vem daí o nome ba(lote de cartões). O processamento em batch tem como característica não exigir interaçãousuário com o sistema ou com a aplicação. Todas as entradas ou saídas são implementadas pmeio de algum tipo de memória secundária, geralmente disco ou fita. Aplicações deste teram utilizadas em cálculo numérico, compilações, back-ups, etc.

CPU 

MemóriaPrincipal

 _______ 

 _______ 

 _______ 

 _______ 

 _______ 

Dispositivos E/S

 _______ 

 _______ 

 _______ 

 _______ 

 _______ 

 _______ 

 _______ 

 _______ 

 _______ 

 _______  _______ 

 _______ 

 _______ 

 _______ 

 _______ Pro rama/Tarefa

Pro rama/Tarefa

Pro rama/Tarefa Pro rama/Tarefa

5/14/2018 Ambiente e Sistemas Operacionais - slidepdf.com

http://slidepdf.com/reader/full/ambiente-e-sistemas-operacionais 7/48

Material didático extraído da web. Essa apostila Não substitui as consultas nas bibliografiasoficiais da disciplina.

Estes sistemas, se bem projetados, podem ser bastante eficientes devido à melutilização do processador, mas podem oferecer tempos de resposta bastante long

  Atualmente, os sistemas operacionais simulam este tipo de processamento, não havesistemas dedicados a este tipo de execução.

2.2.2 Sistemas de Tempo Compartilhado

Também chamados sistemas de time-sharing , permitem que diversos programas sejexecutados a partir da divisão de tempo do processador em pequenos intervalos, denominafatia de tempo (ou time-slice). Caso a fatia de tempo não seja suficiente para a conclusão programa, este é interrompido pelo sistema operacional e substituído no processador por outenquanto aguarda nova fatia de tempo. Neste tipo de processamento, cada usuário temimpressão de que a máquina está dedicada ao seu programa, como se ele fosse o único usuáa se utilizar do sistema.

Geralmente permitem interação do usuário com a aplicação através de termincompostos por monitor, teclado e mouse. Estes sistemas possuem uma linguagem de contrque permite ao usuário interagir com o sistema operacional através de comandos. Assimpossível verificar arquivos armazenados em disco ou cancelar execução de programNormalmente, o sistema responde em apenas alguns segundos à maioria destes comandosque se levou a chamá-los também de sistemas on-line .

  A maioria das aplicações comerciais atualmente é processada em ambiente de temcompartilhado, que oferece tempos baixos de respostas a seus usuários e menores custos, função do alto grau de compartilhamento dos diversos recursos do sistema.

2.2.3 Sistemas de Tempo Real

Este tipo de sistema é implementado de forma bastante semelhante ao de temcompartilhado. O que caracteriza a diferença entre eles é o tempo exigido no processamedas aplicações.

Enquanto nos sistemas de tempo compartilhado o tempo de processamento pode vasem comprometer as aplicações em execução, nos sistemas de tempo real os tempos execução devem estar dentro de limites rígidos, que devem ser obedecidos, caso contrápoderão ocorrer problemas irreparáveis.

No sistema de tempo real não existe a idéia de fatia de tempo como nos sistemas tempo compartilhado. Um programa ocupa o processador o tempo que for necessário ou que apareça um outro com um nível de prioridade maior. Esta prioridade de execução é definpela própria aplicação e não pelo sistema operacional, como nos sistemas de temcompartilhado.

5/14/2018 Ambiente e Sistemas Operacionais - slidepdf.com

http://slidepdf.com/reader/full/ambiente-e-sistemas-operacionais 8/48

Material didático extraído da web. Essa apostila Não substitui as consultas nas bibliografiasoficiais da disciplina.

Estes sistemas são utilizados em aplicações de controle de processos, comonitoramento de refinarias de petróleo, controle de tráfego aéreo, de usinas, ou em qualqaplicação onde o tempo de processamento é fator fundamental.

2.3 Sistemas com Múltiplos Processadores

Os sistemas com múltiplos processadores caracterizam-se por possuir duas ou mais CPinterligadas e trabalhando em conjunto. A vantagem deste tipo de sistema é permitir qvários programas sejam executados ao mesmo tempo ou que um mesmo programa ssubdividido em várias partes para serem executadas simultaneamente em mais de processador.

Esta técnica permitiu a criação de sistemas computacionais voltados para processamecientífico, prospecção de petróleo, simulações, processamento de imagens e CAD.

Um fator chave no desenvolvimento dos sistemas multiprocessados é a forma comunicação entre as CPUs e o grau de compartilhamento da memória e dos dispositivos E/S. Em função destes fatores, podemos classificar os sistemas multiprocessados de acordo ca figura a seguir:

Sistemascom

Múltiplos

Processadores

SistemasFortemente Acoplados

SistemasFracamente Acoplados

Simétricos Assimétricos Redes Distribuídos

Tipos de Sistemas com Múltiplos Processadores

Na figura podemos perceber a divisão dos sistemas multiprocessados em duas categoriniciais: sistemas fortemente acoplados e fracamente acoplados. A grande diferença enestas duas categorias é que nos sistemas fortemente acoplados existe apenas uma memó

5/14/2018 Ambiente e Sistemas Operacionais - slidepdf.com

http://slidepdf.com/reader/full/ambiente-e-sistemas-operacionais 9/48

Material didático extraído da web. Essa apostila Não substitui as consultas nas bibliografiasoficiais da disciplina.

a ser compartilhada pelos processadores do conjunto, enquanto que nos fracameacoplados cada sistema tem sua própria memória individual. A taxa de transferência enprocessadores e memória em sistemas fortemente acoplados é muito maior que fracamente acoplados.

Nos sistemas fortemente acoplados a memória principal e os dispositivos de E/S gerenciados por um único sistema operacional. Quando todos os processadores arquitetura são iguais, diz-se que o sistema é simétrico. No entanto, quando processadores são diferentes, dá-se à arquitetura a denominação assimétrica.

Nos sistemas fracamente acoplados, como os processadores estão em arquitetudiferentes, somente interligados por cabos de interconexão, cada CPU constitui umáquina independente, com memória própria, dispositivos de E/S e sistemas operacionindependentes.

Nesta subdivisão, temos como exemplo as redes e os sistemas distribuídos.

No ambiente de rede, existem dois ou mais sistemas independentes (hosts), interligadpor linhas telefônicas, que oferecem algum tipo de serviço aos demais, permitindo que host compartilhe seus recursos, como impressora e diretórios, com os outros hosts da rede

Enquanto nos sistemas em rede os usuários têm conhecimento dos hosts e seus serviçnos sistemas distribuídos os sistema operacional esconde os detalhes dos hosts individuaipassa a tratá-los como um conjunto único, como se fosse um sistema só, fortemeacoplado. Os sistemas distribuídos permitem, por exemplo, que uma aplicação seja dividem partes e que cada parte seja executada por hosts diferentes na rede. Para os usuário

suas aplicações é como se não existisse a rede, mas um único sistema centralizado.

Outros exemplos de sistemas distribuídos são os clusters. Em um cluster podem exidois ou mais servidores ligados por algum tipo de conexão de alto desempenho, e o usuánão conhece os nomes dos membros do cluster e nem quantos são. Quando é necessáalgum serviço, basta solicitar ao cluster para obtê-lo, sem se preocupar com quem vai dise oferecer tal serviço. Clusters são muito utilizados em servidores de bancos de dadoWeb.

5/14/2018 Ambiente e Sistemas Operacionais - slidepdf.com

http://slidepdf.com/reader/full/ambiente-e-sistemas-operacionais 10/48

Material didático extraído da web. Essa apostila Não substitui as consultas nas bibliografiasoficiais da disciplina.

3. Sistemas Multiprogramáveis

Um Sistema Operacional pode ser visto como um conjunto de rotinas que execut

concorrentemente de forma ordenada. A possibilidade de um processador executar instruçem paralelo com operações de entrada e saída permite que diversas tarefas sejam executaconcorrentemente. É este conceito de concorrência o princípio fundamental para o projetoimplementação de sistemas multiprogramáveis.

Os sistemas multiprogramáveis surgiram a partir das limitações dos sistemmonoprogramáveis onde os recursos computacionais como processador, memória e dispositivde E/S eram utilizados de maneira muito pouco eficiente, limitando seu desempenho, cmuitos destes recursos permanecendo ociosos por longos períodos de tempo.

Nos sistemas monoprogramáveis somente um programa pode estar em execução de cavez, permanecendo o processador dedicado exclusivamente a uma tarefa, ficando ocioenquanto uma operação de leitura em disco é realizada. O tempo de espera é relativamelongo, já que as operações de E/S são muito lentas se comparadas à velocidade de operação processador.

Outro aspecto a ser considerado é a sub-utilização da memória principal, onde um progranem sempre ocupa todo o espaço disponível, ficando o restante inutilizado. Nos sistemmultiprogramáveis vários programas podem ser alocados na memória, concorrendo pelo uso processador. Dessa forma, quando um programa solicita uma operação de E/S, outprogramas poderão utilizar o processador, deixando a CPU menos ociosa e tornando o uso

memória mais eficiente, pois existem vários residentes e se revezando na utilização processador.

 A utilização concorrente da CPU deve ser feita de maneira que, quando um programa peo uso do processador e depois retorna para continuar sua execução, seu estado deve idêntico ao do momento em que foi interrompido. O programa deverá continuar sua execuçexatamente na instrução seguinte àquela onde havia parado, aparentando ao usuário que naaconteceu. Em sistemas de tempo compartilhado existe a impressão de que o computador einteiramente dedicado ao usuário, ficando esse mecanismo totalmente transparente ausuários.

Quanto ao uso dos periféricos, é comum nos sistemas monoprogramáveis é comum termpor exemplo, impressoras paradas por um grande período de tempo e discos com acerestrito a um único usuário. Esses problemas são minimizados nos sistemas multiprogramáveonde é possível compartilhar os dispositivos de E/S, como impressoras e discos, entre diverusuários e aplicativos.

5/14/2018 Ambiente e Sistemas Operacionais - slidepdf.com

http://slidepdf.com/reader/full/ambiente-e-sistemas-operacionais 11/48

Material didático extraído da web. Essa apostila Não substitui as consultas nas bibliografiasoficiais da disciplina.

3.1  Interrupção e Exceção

Durante a execução de um programa, alguns eventos inesperados podem ocorocasionando um desvio forçado no seu fluxo normal de execução. Esses eventos são conhecidcomo interrupção ou exceção, e podem ser resultado de sinalizações de algum dispositivo

hardware externo ao ambiente memória/processador. A diferença entre interrupção e exceçãdada pelo tipo de evento ocorrido, embora alguns autores e fabricantes não façam tal distinçã

  A interrupção é o mecanismo que permitiu a implementação da concorrência computadores, sendo o fundamento básico dos sistemas multiprogramáveis/multitarefa.

Uma interrupção é sempre gerada por um evento externo ao programa e, sendo assindepende da instrução que está sendo executada. Um exemplo de interrupção é quando dispositivo avisa ao processador que alguma operação de E/S está completa. Neste casoprocessador deve interromper o programa para tratar o término da operação.

  Ao término de cada instrução a Unidade de Controle (situada dentro do processadverifica a ocorrência de algum tipo de interrupção. Desta forma, o programa em execuçãointerrompido e seu controle é desviado para uma rotina do sistema responsável por trataevento ocorrido, denominada rotina de tratamento de interrupção . Para que o prograinterrompido possa retornar posteriormente à sua execução é necessário que, no momentointerrupção, um certo conjunto de informações sobre sua execução seja preservado.

Essas informações consistem basicamente no conteúdo dos registradores internos CPU, que deverão ser restaurados para a continuação do programa.

Programa SalvaContexto

Identificaa origem

InterrupçãoTrata a

InterrupçãoRotina

de

RestauraContexto Tratamento

Mecanismo de interrupção/exceção

5/14/2018 Ambiente e Sistemas Operacionais - slidepdf.com

http://slidepdf.com/reader/full/ambiente-e-sistemas-operacionais 12/48

Material didático extraído da web. Essa apostila Não substitui as consultas nas bibliografiasoficiais da disciplina.

Para cada tipo de interrupção existe uma rotina de tratamento associada, para ondefluxo do programa é desviado. A identificação do tipo de evento ocorrido é fundamental pdeterminar o endereço da rotina adequada ao tratamento da interrupção.

 As interrupções podem ser geradas:

- Pelo programa do usuário (entrada de dados pela console ou teclado)- Pelo hardware (operações de E/S)- Pelo sistema operacional (ao término da fatia de tempo do processador destinada

programa)

 As interrupções sempre são tratadas pelo Sistema Operacional.

 A exceção é um evento semelhante à interrupção, pois também de fato interrompe programa.

 A principal diferença é que a exceção é o resultado da execução de uma instrução dendo próprio programa, como a divisão por zero ou a ocorrência de um overflow (estouro capacidade de um campo) numa operação aritmética.

Na maioria das vezes, a exceção provoca um erro fatal no sistema, causando o térmanormal do programa. Isto se deve ao fato de que a exceção é melhor tratada dentro próprio programa, com instruções escritas pelo programador.

3.2  Buffer

  A técnica de buffering  consiste nua utilização de uma área em memória principdenominada buffer , criada e mantida pelo Sistema Operacional, com a finalidade de auxia transferência de dados entre dispositivos de E/S e a memória. O buffer permite minimia disparidade de velocidade entre o processador e os dispositivos de E/S, e tem coobjetivo principal manter tanto os dispositivos de E/S como o processador ocupados a maparte do tempo.

  A unidade de transferência do mecanismo de buffering é o registro . O buffer depermitir o armazenamento de vários registros, de forma que o processador tenha à sdisposição dados suficientes para processar sem ter que interromper o programa a caleitura/gravação no dispositivo de E/S. Enquanto o processador está ocupado processanos dispositivos de E/S estão efetuando operações para outros processos.

3.3  SPOOL

 A técnica de spooling  foi criada inicialmente para auxiliar a submissão de processos sistema, sendo os processos gravados em fita para posterior leitura e execução.

5/14/2018 Ambiente e Sistemas Operacionais - slidepdf.com

http://slidepdf.com/reader/full/ambiente-e-sistemas-operacionais 13/48

Material didático extraído da web. Essa apostila Não substitui as consultas nas bibliografiasoficiais da disciplina.

Com o aparecimento dos terminais para acesso ao sistema, esta técnica teve sua funçadaptada para armazenar o resultado da impressão dos programas em execução.

Isto é conseguido através da criação e manutenção, pelo Sistema Operacional de u

grande área em disco, com a finalidade de simular uma impressora. Desta forma, todosusuários e seus programas imprimem, na verdade, para este arquivo em disco, liberandassociação dos dispositivos de impressão diretamente aos programas que estão executand

O usuário consegue visualizar o resultado de seus programas na tela dos terminagerando assim mais eficiência e economia de papel e fita de impressão. À proporção que vsendo gerados no SPOOL, os relatórios vão sendo liberados para impressão pelo operadorsistema, de forma ordenada e seqüencial. Para cada usuário, é como se ele tivesse uimpressora associada para si.

3.4  Reentrância

É comum, em sistemas multiprogramáveis, vários usuários utilizarem os mesmosaplicativos simultaneamente, como editores de texto, compiladores e outros utilitários. Nessituação, se cada usuário que utilizasse um destes aplicativos trouxesse o código executávpara a memória, haveria então diversas cópias de um mesmo programa ocupando espaço memória, o que causaria um grande desperdício de espaço.

Reentrância é a capacidade de um código executável (código reentrante) compartilhado por vários usuários, exigindo apenas uma cópia do programa em memóriareentrância permite que cada usuário esteja executando um trecho diferente do cód

reentrante, manipulando dados próprios, exclusivos de cada usuário.

Normalmente códigos reentrantes são utilizados em utilitários do sistema, como editorcompiladores e linkers, promovendo um uso mais eficiente da memória e um desempenmaior do sistema. Alguns sistemas operacionais permitem a possibilidade de se implemeno conceito de reentrância em aplicações desenvolvidas pelo próprio usuário, mas nãocomum.

3.5  Segurança e Proteção do Sistema

  A eficiência proporcionada por um ambiente multiprogramável implica em mcomplexidade do sistema operacional, já que alguns problemas de proteção surgem codecorrência deste tipo de implementação.

Considerando-se que diversos usuários estão compartilhando os mesmos recurscomo memória, processador e dispositivos de E/S, faz-se então necessário exmecanismos de proteção para garantir a confiabilidade e a integridade dos dadosprogramas dos usuários, além do próprio sistema operacional.

5/14/2018 Ambiente e Sistemas Operacionais - slidepdf.com

http://slidepdf.com/reader/full/ambiente-e-sistemas-operacionais 14/48

Material didático extraído da web. Essa apostila Não substitui as consultas nas bibliografiasoficiais da disciplina.

Como vários programas ocupam a memória principal simultaneamente, cada usuápossui uma área reservada onde seus programas e dados são armazenados duranteprocessamento. O sistema operacional deve possuir mecanismos de proteção a essas árede forma a preservar as informações nela contidas. Caso um programa tente acessar u

posição de memória fora de sua área, um erro indicando a violação de acesso deve ocorrsendo responsabilidade do sistema operacional o controle eficiente do compartilhamento drecursos e a sincronização da comunicação, evitando problemas de consistência.

Semelhante ao compartilhamento da memória, um disco também armazena arquide diferentes usuários. Novamente o sistema operacional deve garantir a integridadeconfiabilidade dos dados de cada usuário.

Todo o controle da segurança do sistema é implementado pelo sistema operacionapartir de mecanismos como grupos de usuários, perfis de usuários e direitos de acesso.

  A proteção começa geralmente no procedimento de login, quando o usuário faconexão inicial ao sistema, através de nome do usuário e senha. A partir daí, toda uestrutura de controle é iniciada, em função da identificação do usuário, no sentido proteger as áreas alocadas em memória, em disco, e até mesmo o uso do processador.

  A proteção e segurança do sistema pode ser implementada também a nívelprograma do usuário, com a inserção de rotinas específicas dentro do programa pcontrolar o acesso de usuários ao aplicativo, além de controlar internamente quais telafunções tal usuário pode acessar.

3.6  Operações de Entrada e Saída

Nos primeiros sistemas computacionais, a comunicação entre o processador e periféricos era direta, sendo o processador responsável por efetuar as operações leitura/gravação nos dispositivos.

O surgimento do controlador de E/S permitiu ao processador agir de maneindependente dos dispositivos de E/S. Com esse novo elemento, o processador não maiscomunicava diretamente com os periféricos, mas sim via controlador.

Passou a existir então três maneiras básicas de se implementar operações de E/S:

-    por programa : o processador sincronizava-se com o periférico e iniciavatransferência de dados, ficando permanentemente testando o estado do perifépara saber quando a operação chegaria ao seu final. O processador ficava ocupaaté o término da operação de E/S.

5/14/2018 Ambiente e Sistemas Operacionais - slidepdf.com

http://slidepdf.com/reader/full/ambiente-e-sistemas-operacionais 15/48

Material didático extraído da web. Essa apostila Não substitui as consultas nas bibliografiasoficiais da disciplina.

-    por interrupção : evoluindo o processo anterior, após o início da transferência dados o processador passou a ficar livre para realizar outras tarefas. Assim, determinados intervalos de tempo o sistema operacional deveria testar o estado periféricos para saber se a operação de E/S tinha terminado. Este tipo de operaçpermitiu um certo grau de paralelismo, já que um programa poderia ser processa

enquanto uma operação de leitura/gravação em periférico estava sendo efetuaIsto permitiu a implementação dos primeiros sistemas multiprogramáveis.

Dispositivos de E/S

-    A necessidade de se transmitir cada vez um volume maior de informações trouma evolução significativa nas operações de E/S. Em vez de o processador interrompido várias vezes para interrogar os dispositivos para saber do resultadas operações, o que diminuía sua eficiência devido ao excesso de interrupções,criado um dispositivo de transferência de dados chamado de DMA – Direct Mem

 Access . Esta técnica permite que um bloco de dados seja transferido entre

memória e os dispositivos de E/S sem a intervenção do processador, a não serinício (quando a operação é solicitada) e no final da transferência (quandoprocessador é notificado sobre o término da operação). Na figura a segpodemos ver a implementação do canal de E/S gerenciando vários controladoresligados a estes, vários periféricos.

CPU

MemóriaPrincipal

Controlador 

5/14/2018 Ambiente e Sistemas Operacionais - slidepdf.com

http://slidepdf.com/reader/full/ambiente-e-sistemas-operacionais 16/48

Material didático extraído da web. Essa apostila Não substitui as consultas nas bibliografiasoficiais da disciplina.

O canal de E/S funciona então como uma interface entre os controladores e a Ccomo mostra a figura a seguir:

CPU

MemóriaPrincipal

Controlador  Controlador 

Canal de E/S

Dispositivos de E/S Dispositivos de E/S

5/14/2018 Ambiente e Sistemas Operacionais - slidepdf.com

http://slidepdf.com/reader/full/ambiente-e-sistemas-operacionais 17/48

Material didático extraído da web. Essa apostila Não substitui as consultas nas bibliografiasoficiais da disciplina.

4. Estrutura do Sistema Operacional

4.1 Estrutura do Sistema

USUÁRIO

UTILITÁRIOS

NÚCLEODO SISTEMA

HARDWARE

Hierarquia do Sistema Operacional

O sistema operacional é formado por um conjunto de rotinas que oferecem serviessenciais aos usuários, às suas aplicações, e também ao próprio sistema. A esse conjude rotinas dá-se o nome de núcleo do sistema ou kernel .

É fundamental não se confundir o núcleo do sistema com aplicações, utilitários ouinterpretador de comandos, que acompanham o sistema operacional. As aplicações sutilizadas pelos usuários de maneira transparente, escondendo todos os detalhes interação com o sistema. Os utilitários, como os compiladores, editores de textointerpretadores de comandos permitem aos usuários, desenvolvedores e administradoressistema uma interação amigável com o sistema.

Existe uma grande dificuldade em compreender a estrutura e o funcionamento

sistema operacional, pois ele não é executado como uma aplicação tipicamente seqüenccom início, meio e fim. Os procedimentos do sistema são executados concorrentemente suma ordem específica ou predefinida, com base em eventos dissociados do tempo. Mudesses eventos estão relacionados ao hardware e a tarefas internas do próprio sisteoperacional.

5/14/2018 Ambiente e Sistemas Operacionais - slidepdf.com

http://slidepdf.com/reader/full/ambiente-e-sistemas-operacionais 18/48

Material didático extraído da web. Essa apostila Não substitui as consultas nas bibliografiasoficiais da disciplina.

4.2 Funções do Sistema

 As principais funções do núcleo encontradas na maioria dos sistemas comerciais sãoseguintes:

-  Tratamento de interrupções e exceções: já explicados anteriormente, em detalhes;

-  Criação e eliminação de processos: função responsável por alocar em memória todosrecursos necessários à execução do processo. É esta função que aloca em memória, aldo executável, o contexto do processo, o buffer de leitura/gravação (se necessário), alde listas e estruturas de controle utilizadas pelo sistema operacional. Nesta funtambém são estabelecidos vínculos físicos a arquivos em disco, fitas e outros periféricque serão usados no processamento. Quando do fim da execução do programa, é efunção que desaloca todos os espaços em memória ocupados pelo processo, liberandopara futuras alocações a outros processos;

-  Escalonamento e controle de processos: função responsável por organizar a fila acesso ao processador. Utiliza parâmetros do sistema e do perfil do usuário pestabelecer a ordem em que os processos permanecerão à espera pela liberação da Cpara então entrarem em execução;

-  Gerência de memória: função responsável por fornecer à função de criação/eliminaçãoprocessos os endereços em memória disponíveis para alocação;

-  Gerência de sistemas de arquivos: responsável pelo gerenciamento dos arquivos, bcomo seu compartilhamento pelos diversos usuários, implementando mecanismos

controle da segurança e direitos de acesso às áreas utilizadas pelos usuários nos diverdispositivos;

-  Gerência de dispositivos de E/S: responsável por gerenciar os dispositivos, prestanauxílio à criação/eliminação de processos e á gerência de sistemas de arquivos no que respeito ao endereçamento e associação de arquivos em periféricos;

-  Suporte a redes e teleprocessamento: é esta função que executa todos os serviçosrede, fazendo o empacotamento das mensagens vindas dos terminais para a CPU cene vice-versa, além de controlar e confirmar o envio e recebimento de todas mensagens que trafegam pela rede;

-  Contabilização de uso do sistema: responsável por contabilizar o uso de todos recursos do sistema consumidos pelos usuários e suas aplicações. São registrados: temde CPU, tempo corrido, quantidade de área alocada em memória, em disco, linhimpressas, páginas de papel, entre outros. Isto se faz necessário para servir de subsípara análise de performance, estatísticas de gastos com material de consumo e tambpara definição de custos de processamento.;

5/14/2018 Ambiente e Sistemas Operacionais - slidepdf.com

http://slidepdf.com/reader/full/ambiente-e-sistemas-operacionais 19/48

Material didático extraído da web. Essa apostila Não substitui as consultas nas bibliografiasoficiais da disciplina.

-    Auditoria e segurança do sistema: função extremamente importante, pois detectregistra (num arquivo especial de LOG) todas as ocorrências de erro e violação direitos de acesso ao sistema, aos arquivos, à memória e a todos os recursos do sistemO arquivo de LOG é usado pela gerência de sistemas, com o intuito de verificaaperfeiçoar os mecanismos de segurança e proteção ao sistema.

  A estrutura do sistema, a maneira como ele é organizado e o inter-relacionamento eseus diversos componentes pode variar conforme a concepção do projeto do sistema.

4.3 System Calls

Uma grande preocupação no projeto de sistemas operacionais se refere à implementaçãomecanismos de proteção ao núcleo do sistema e também o controle de acesso aos servioferecidos pelo sistema. Caso uma aplicação que tenha acesso ao núcleo realize alguoperação que altere sua integridade, todo o sistema poderá ficar comprometido e inoperante

 As system calls podem ser entendidas como uma porta de entrada para acesso ao núcleosistema e aos seus serviços. Sempre que um usuário ou uma aplicação necessita de algserviço do sistema, é realizada uma chamada a uma de suas rotinas através de uma system c

  Através dos parâmetros fornecidos na system call, a solicitação é processada e uresposta é enviada à aplicação juntamente com um estado de conclusão indicando o sucessonão da operação. Para cada serviço disponível existe uma system call associada, e cada sisteoperacional possui seu próprio conjunto de chamadas, com nomes, parâmetros e formas ativação específicos. Isto explica por que uma aplicação desenvolvida utilizando serviços de determinado sistema operacional não pode ser diretamente portada para um outro sistema.

 Aplicação

System Call

Núcleo doSistema

Operacional

Biblioteca Hardware

5/14/2018 Ambiente e Sistemas Operacionais - slidepdf.com

http://slidepdf.com/reader/full/ambiente-e-sistemas-operacionais 20/48

Material didático extraído da web. Essa apostila Não substitui as consultas nas bibliografiasoficiais da disciplina.

4.4 Modos de Acesso 

Existem certas instruções que não podem ser colocadas diretamente à disposição aplicações, pois a sua utilização indevida poderia ocasionar sérios problemas à integridade sistema. Imagine que uma aplicação atualize um arquivo em disco. O programa, por si só, n

pode especificar diretamente as instruções que acessam seus dados no disco pois, como o dié um recurso compartilhado, sua utilização deve ser gerenciada unicamente pelo sisteoperacional. Tal procedimento evita que a aplicação possa ter acesso a qualquer área do diindiscriminadamente, o que poderia comprometer a segurança e a integridade do sistema arquivos.

 Assim, fica claro que existem certas instruções que só podem ser executadas pelo sisteoperacional ou sob sua supervisão. As instruções que têm o poder de comprometer o sistesão chamadas de instruções privilegiadas , enquanto as instruções que não comprometemfuncionamento do sistema chamam-se instruções não-privilegiadas .

Para que uma aplicação possa executar uma instrução privilegiada, é preciso que haja mecanismo de proteção no processador, chamado modos de acesso . Existem basicamente dmodos de acesso ao processador: modo usuário e modo kernel. Quando o processador trabano modo usuário, somente instruções não-privilegiadas podem ser executadas, tendo asacesso a um número limitado de instruções do processador. Já no modo kernel (ou supervisoa aplicação pode ter acesso ao conjunto total de instruções do processador.

 A melhor maneira de controlar o acesso às instruções privilegiadas é permitir que apenasistema operacional tenha acesso a elas. Sempre que uma aplicação necessita executar uinstrução privilegiada, a solicitação deve ser feita através de uma system call, que altera o mo

de acesso ao processador do modo usuário para o modo kernel. Ao término da execução rotina do sistema, o modo de acesso retorna para o modo usuário.

5/14/2018 Ambiente e Sistemas Operacionais - slidepdf.com

http://slidepdf.com/reader/full/ambiente-e-sistemas-operacionais 21/48

Material didático extraído da web. Essa apostila Não substitui as consultas nas bibliografiasoficiais da disciplina.

4.5 Arquiteturas: Sistemas monolíticos, em camadas e microkernel

-    Arquitetura monolítica: é caracterizada por possuir seus módulos compilseparadamente mas linkados formando um único e enorme programa executável. Onos módulos podem interagir livremente. Os primeiros sistemas operacionais for

desenvolvidos com base nesta arquitetura, o que tornava seu desenvolvimento principalmente, sua manutenção muito difíceis. Como vantagens desta arquitetpodemos citar a rapidez de execução e simplicidade de implementação. Codesvantagens, a limitação quanto a inovações futuras e a dificuldade de manutenção.

Modo Usuário

Modo Kernel

 Arquitetura monolítica

 Aplicação  Aplicação

System call

Hardware

Núcleo

doSistema

5/14/2018 Ambiente e Sistemas Operacionais - slidepdf.com

http://slidepdf.com/reader/full/ambiente-e-sistemas-operacionais 22/48

Material didático extraído da web. Essa apostila Não substitui as consultas nas bibliografiasoficiais da disciplina.

-    Arquitetura em camadas: com o aumento do tamanho do código dos sisteoperacionais, técnicas de programação estruturada e modular foram incorporadas em sprojeto.Na arquitetura em camadas, o sistema é dividido em níveis sobrepostos. Cacamada oferece um conjunto de funções que podem ser utilizadas somente pe

camadas superiores. Neste tipo de implementação as camadas mais internas são mprivilegiadas que as camadas mais externas. A vantagem da estruturação em camadao isolamento das funções do sistema, facilitando sua manutenção. Uma desvantagem desempenho, comprometido devido às várias mudanças de estado do processaprovocado pela mudança de camadas. A figura a seguir mostra esta arquitetura.

 Arquitetura em camadas

-    Arquitetura microkernel (cliente x servidor): uma tendência nos sistemas operaciomodernos é tornar o núcleo do sistema o menor e o mais simples possível. Pimplementar esta idéia, os serviços do sistema são disponibilizados através de processonde cada um é responsável por oferecer um conjunto específico de funções, cogerência de arquivos, gerência de processos, gerência de memória e escalonamen

Sempre que uma aplicação deseja algum serviço, é realizada uma solicitação ao proceresponsável. Neste caso, a aplicação que está solicitando o serviço é chamada de clienenquanto o processo que responde à solicitação é chamado de servidor . Um cliente, qpode ser uma aplicação do usuário ou um outro componente do sistema operacionsolicita um serviço enviando uma mensagem para o servidor. O servidor respondecliente através de uma outra mensagem. A principal função do núcleo é realizacomunicação, ou seja, a troca de mensagens entre o cliente e o servidor. A utiliza

Camada Usuário

Camada Supervisor 

Camada Executivo

Kernel

5/14/2018 Ambiente e Sistemas Operacionais - slidepdf.com

http://slidepdf.com/reader/full/ambiente-e-sistemas-operacionais 23/48

Material didático extraído da web. Essa apostila Não substitui as consultas nas bibliografiasoficiais da disciplina.

deste modelo permite que os servidores operem em modo usuário, não tendo acedireto a certos componentes do sistema. Apenas o núcleo do sistema, responsável pcomunicação entre clientes e servidores, executa em modo kernel. Como conseqüênse ocorrer um erro em algum servidor,este poderá parar, mas o sistema não ficinteiramente comprometido, aumentando assim a sua disponibilidade. Como

servidores se comunicam através de trocas de mensagens, não importa se os clienteservidores processam em um sistema com um único processador, com várprocessadores ou ainda em um ambiente de sistema distribuído. A arquitetmicrokernel permite isolar as funções do sistema operacional por diversos servidopequenos e dedicados a serviços específicos, tornando o núcleo menor, mais fácil depurar (procurar e solucionar erros) e, com isso, aumentando a sua confiabilida

  Apesar de todas as vantagens deste modelo, sua implementação é muito difícicomeçar pelo desempenho, comprometido devido às várias trocas de modo de acesscada troca de mensagens entre cliente e servidor. Outro problema é que certas funçdo sistema operacional, como operações de E/S, exigem acesso direto ao hardwa

 Assim, o núcleo do sistema, além de promover a comunicação entre clientes e servidorpassa a incorpora funções críticas do sistema, como escalonamento, tratamento interrupções e gerência de dispositivos.

Modo Usuário

Modo Kernel

Microkernel

Hardware

Servidor  Arquivo

Servidor Process

 

Servidor Memória

Servidor 

Servidor Rede

5/14/2018 Ambiente e Sistemas Operacionais - slidepdf.com

http://slidepdf.com/reader/full/ambiente-e-sistemas-operacionais 24/48

Material didático extraído da web. Essa apostila Não substitui as consultas nas bibliografiasoficiais da disciplina.

5. PROCESSO

O conceito de processo é a base para a implementação de um sistema multiprogramávelprocessador é projetado apenas para executar instruções, não sendo capaz de distinguir qprograma se encontra em execução.A gerência de um ambiente multiprogramável é funexclusiva do sistema operacional, que deve controlar a execução dos diversos programas euso concorrente do processador.

 A gerência do processador é uma das principais funções de um sistema operacional. Atravdos processos, um programa pode alocar recursos, compartilhar dados e trocar informações.

5.1 Componentes do processo

Um processo pode ser entendido inicialmente como um programa em execução, que tsuas informações mantidas pelo sistema operacional.

Num sistema multiusuário, cada usuário tem a impressão de possuir o processador e todos demais recursos reservados exclusivamente para si, mas isto não é verdade. Todos recursos estão sendo compartilhados, inclusive a CPU. Neste caso, o processador executaprocesso do usuário por um intervalo de tempo e, no instante seguinte, poderá esprocessando um outro programa, do mesmo ou de outro usuário.

Para que a troca de processos possa ser feita sem problemas, é necessário que todasinformações do programa que está sendo interrompido sejam guardadas, para que ele poretornar à CPU exatamente do ponto em que parou, não lhe faltando nenhuma informação và sua continuação. Todas as informações necessárias à execução de um programa fazem pa

do processo.

Um processo também pode ser definido como o ambiente onde o programa é executaEste ambiente, além das informações sobre a execução, possui também a quantidade recursos do sistema que o programa pode utilizar,como espaço de endereçamento, tempo processador e área em disco.

Um processo é formado por três partes: contexto de software, contexto de hardwareespaço de endereçamento, que juntas mantêm todas as informações necessárias à execuçãoum programa.

5/14/2018 Ambiente e Sistemas Operacionais - slidepdf.com

http://slidepdf.com/reader/full/ambiente-e-sistemas-operacionais 25/48

Material didático extraído da web. Essa apostila Não substitui as consultas nas bibliografiasoficiais da disciplina.

Estrutura do processo:

•  Contexto de Software: neste contexto são especificadas características e limites drecursos que podem ser alocados pelo processo, como número máximo de arquivabertos, prioridade de execução, número máximo de linhas impressas, etc. Muitas descaracterísticas são criadas no momento da criação do processo, quando da sua alocaçã

O sistema operacional obtém, a partir do cadastro de usuários e do cadastro contas no sistema, as informações e características que valerão para o processo.

O contexto de software é composto por tr?es grupos de informações:

-  Identificação: neste grupo são guardadas informações sobre o usuário que crioprocesso, e, em função disso, suas áreas de atuação no sistema.

-  Quotas: são os limites de recursos do sistema que um processo pode alocar, coárea utilizada em disco, em memória, limite de linhas impressas, número máxide arquivos abertos, número máximo de operações de E/S pendentes, temlimite de CPU, etc.

-  Privilégios: diz respeito principalmente às prioridades assumidas pelo procedurante sua execução.

•  Contexto de Hardware: armazena o conteúdo dos registradores gerais da CPU, além dregistradores de uso específico. Quando um processo está em execução, o seu contede hardware está armazenado nos registradores da CPU. No momento em queprocesso perde a utilização da CPU, o sistema salva as informações no contexto hardware do processo.

  A troca de um processo por outro no processador, comandada pelo sisteoperacional, é denominada troca de contexto , que consiste em salvar o conteúdo dregistradores do processo que está deixando a CPU e carrega-los com os valo

 ________  ________  ________ Programa

Espaço deendere amento

Contexto deSoftware

Contexto deHardware

5/14/2018 Ambiente e Sistemas Operacionais - slidepdf.com

http://slidepdf.com/reader/full/ambiente-e-sistemas-operacionais 26/48

Material didático extraído da web. Essa apostila Não substitui as consultas nas bibliografiasoficiais da disciplina.

referentes ao do novo processo que irá executar. Essa operação resume-se em substio contexto de hardware de um processo pelo de outro.

•  Espaço de endereçamento: é a área de memória pertencente a um processo ondeinstruções e os dados do programa são armazenados para execução. Cada proce

possui seu próprio espaço de endereçamento, que deve ser devidamente protegido acesso dos demais processos. Os contextos de software e de hardware não fazem pado espaço de endereçamento .

•  Bloco de controle do processo: é a estrutura de dados que compõe o processo, contenos contextos de software e de hardware e o espaço de endereçamento. O BCP reside memória, numa área reservada ao sistema operacional.

5.2 Estados do processo

Num sistema multiprogramável, um processo não deve alocar a CPU com exclusividade forma que possa existir um compartilhamento no uso do processador. Os procespassam por diferentes estados ao longo do processamento, em função de eventos geradpelo sistema operacional, pelo hardware, ou pelo próprio programa. São estados possívde um processo:

-  Criação: neste estado o processo está sendo alocado na memória, sendo criadosistema. Todos os recursos necessários à execução do processo são reservaddurante a passagem do processo por este estado, o que acontece uma única v

 Vários processos podem estar neste estado, ao mesmo tempo.

-  Pronto: é o estado onde os processos, depois de criados ou quando retornam tratamento de uma interrupção, permanecem aguardando a liberação da CPU p

que possam iniciar ou continuar seu processamento. É como se fosse uma fgerenciada pelo sistema operacional, que se incumbe de organizar os processosacordo com as informações contidas no contexto de software (identificaçquotas e privilégios). Vários processos podem estar neste estado, ao mestempo.

-  Execução: é onde o processo efetivamente utiliza a CPU. Ele permanece processador até que seja interrompido ou termine sua execução. Neste estasomente um processo pode permanecer de cada vez, já que existe apenas processador.

-  Espera: neste estado estão todos os processos que sofreram algum tipo interrupção de E/S, onde permanecem até que a intervenção seja resolvida. Váprocessos podem estar neste estado, ao mesmo tempo.

5/14/2018 Ambiente e Sistemas Operacionais - slidepdf.com

http://slidepdf.com/reader/full/ambiente-e-sistemas-operacionais 27/48

Material didático extraído da web. Essa apostila Não substitui as consultas nas bibliografiasoficiais da disciplina.

-  Saída: é o estado final do processo, quando este termina seu processamen Vários processos podem estar neste estado, ao mesmo tempo.

5.3 Mudanças de estado do processo

Um processo muda de estado diversas vezes durante sua permanência no sistemdevido aos eventos ocorridos durante sua execução. São mudanças possíveis:

-  Criação Pronto: o processo foi criado, tem seus recursos alocados, e está aptdisputar o uso da CPU.

-  Pronto Execução: o processo é o primeiro da fila de pronto e a CPU fdisponível. Neste momento o processo passa a ocupar a CPU, permanecendo execução até que seja interrompido ou termine sua execução.

-  Execução Pronto: o processo foi interrompido por fatia de tempo ou prioridade. Ainda precisa de mais tempo na CPU para terminar sua execução, ntem nenhuma intervenção pendente, por isso volta à fila de pronto para dispunovamente o uso da CPU.

-  Execução Espera: esta transição acontece quando o processo foi interromppor E/S. Significa que deve permanecer no estado de espera até que a interrupçseja tratada pelo sistema. Neste estado o processo fica impedido de disputar o uda CPU.

-  Espera Pronto: Após o término do tratamento da interrupção, o processo vo

à fila de pronto para disputar novamente o uso da CPU.

-  Execução Saída: o processo terminou, e não mais disputará o uso da CPU.

 A seguir, a figura mostra as mudanças possíveis de estado de um processo.

Pronto

Espera

Execução

Cria ão

Saída

Mudanças de estado deum processo

5/14/2018 Ambiente e Sistemas Operacionais - slidepdf.com

http://slidepdf.com/reader/full/ambiente-e-sistemas-operacionais 28/48

Material didático extraído da web. Essa apostila Não substitui as consultas nas bibliografiasoficiais da disciplina.

5.4 Tipos de processos

 Além dos processos do usuário, a CPU também executa processos do sistema. São aqueque oferecem os serviços do sistema operacional aos usuários, como criação/eliminação processos, tratamento de interrupção e todos aqueles correspondentes às funções do sistema

estudadas. Estes executam sempre, com certa prioridade, concorrendo com os processos usuário.

Os processos em execução, do usuário, podem assumir dois tipos diferentes, de acordo csuas características de uso de CPU e periféricos:

-  Processo CPU-bound: é aquele processo que utiliza muito a CPU. Ele ganha uma fatiatempo e a utiliza por inteiro, sem desperdiçar nenhum tempo. É o caso de programcientíficos, de cálculo numérico, estatística, matemática, e também na área de simulaçNormalmente fazem pouca ou nenhuma entrada de dados, e muito processamento.

-  Processo I/O-bound: é o tipo de processo que utiliza muito mais E/S do que C  Aplicações em Banco de Dados, onde se faz consultas e atualizações constantes arquivos em disco são um bom exemplo deste tipo de processo. De acordo com escaracterísticas, podemos dizer que este tipo de processo permanece mais tempo espera (tratando interrupções) do que propriamente em execução, ocupando a CPU períodos mínimos de tempo.

5/14/2018 Ambiente e Sistemas Operacionais - slidepdf.com

http://slidepdf.com/reader/full/ambiente-e-sistemas-operacionais 29/48

Material didático extraído da web. Essa apostila Não substitui as consultas nas bibliografiasoficiais da disciplina.

6. Gerência do Processador 

6.1 Funções

Com o surgimento dos sistemas multiprogramáveis, onde múltiplos processos poderi

permanecer na memória e disputar o uso de um único processador, a gerência do processadtornou-se uma das atividades mais importantes em um sistema operacional.

 A partir do momento em que vários processos podem estar no estado de pronto, devser estabelecidos critérios para definir qual processo será escolhido para fazer uso processador. Tais critérios compõem a política de escalonamento, que é a base da gerência processador e da multiprogramação em um sistema operacional.

Dentre as funções da gerência do processador, podemos citar: manter o processadocupado a maior parte do tempo. balancear o uso da CPU entre processos, privilegiarexecução de aplicações críticas, maximizar o throughput e oferecer tempos de respo

razoáveis aos usuários interativos.

Cada sistema operacional possui sua política de escalonamento adequada ao spropósito e às suas características. Sistemas de tempo compartilhado, por exemplo, possurequisitos de escalonamento distintos dos sistemas de tempo real.

6.2 Critérios de escalonamento

- Utilização do processador: corresponde a uma taxa de utilização, que na maioria dsistemas varia entre 30 e 90%. Uma utilização abaixo dos 30% indicaria um siste

ocioso, com carga de processamento baixa, enquanto uma taxa de utilização acima d90% pode indicar um sistema bastante carregado, próximo da sua capacidade máxi(em alguns casos tal situação pode levar a um crash – travamento do sistema).

- Throughput: é o número de processos executados em um determinado intervalo tempo. Quanto maior o throughput, maior o número de tarefas executadas em função tempo. A maximização do throughput é desejada na maioria dos sistemas.

- Tempo de Processador: é o tempo que um processo leva no estado de execuçdurante seu processamento. As políticas de escalonamento não interferem neparâmetro, sendo este tempo função apenas do código executável e da entrada/saída

dados.

- Tempo de Espera (pela CPU): é todo o tempo que o processo permanece na fila pronto, aguardando a liberação da CPU para ser executado. A redução deste tempo espera é desejada pela maioria das políticas de escalonamento.

5/14/2018 Ambiente e Sistemas Operacionais - slidepdf.com

http://slidepdf.com/reader/full/ambiente-e-sistemas-operacionais 30/48

Material didático extraído da web. Essa apostila Não substitui as consultas nas bibliografiasoficiais da disciplina.

- Tempo de Turnaround: é o tempo total que o processo permaneceu no sistema, dessua criação até o momento em que é encerrado. São contados os tempos de alocaçde memória, espera na fila de pronto e interrupção (E/S).

- Tempo de Resposta: é o tempo decorrido entre uma requisição ao sistema e o insta

em que a resposta começa a ser exibida. Em sistemas interativos, como aplicações line ou acesso à Web, os tempos de resposta devem ser da ordem de apenas poucsegundos.

6.3 Escalonamentos Não-Preemptivos e Preemptivos

Escalonamentos do tipo não-preemptivos são aqueles onde o sistema operacional npode interromper o processo em execução para retirá-lo da CPU. Assim sendo, se nenhevento externo ocorresse durante a execução do processo, este permanecia na CPU terminar ou então alguma instrução do próprio programa o desviasse para o estado de espe(operação de E/S).

Já os escalonamentos preemptivos são caracterizados pela possibilidade de o sisteoperacional interromper o processo em execução para retirá-lo da CPU e dar lugar a ouNeste caso o processo retirado da CPU volta ao estado de pronto, onde permaneaguardando nova oportunidade de ocupar a CPU. Com o uso da preempção, é possível sistema priorizar a execução de processos, como no caso de aplicações em tempo real. Oubenefício é a possibilidade de implementar políticas de escalonamento que compartilhemprocessador de uma maneira mais uniforme, balanceando o uso da CPU entre os processos.

São escalonamentos não-preemptivos:

-

FIFO: o processo que chegar primeiro à fila de pronto é selecionado para execuçãopermanece utilizando o processador até terminar sua execução ou ser interrompido E/S. Neste caso, o próximo processo da fila de pronto é selecionado para execuçTodo processo que chega à fila de pronto entra no final desta fila, conservando a ordde chegada na fila, até ser escalonado novamente. Apesar de simples, eescalonamento apresenta algumas deficiências, principalmente no que diz respeitodificuldade de se prever o início da execução de um processo, já que a ordem chegada á fila de pronto deve ser observada à risca. Outro problema é quanto aos tipde processo, onde os CPU-bound levam vantagem no uso do processador em relaçaos do tipo I/O-bound, pois o sistema não trata este tipo de diferença. O escalonameFIFO foi inicialmente implementado em sistemas monoprogramáveis, sendo ineficie

se aplicado em sistemas interativos de tempo compartilhado.

5/14/2018 Ambiente e Sistemas Operacionais - slidepdf.com

http://slidepdf.com/reader/full/ambiente-e-sistemas-operacionais 31/48

Material didático extraído da web. Essa apostila Não substitui as consultas nas bibliografiasoficiais da disciplina.

 Abaixo, um exemplo de escalonamento utilizando o método FIFO: a ordem de chegados processos (A, B, C) na fila de pronto foi obedecida, e, não tendo sido interrompidos pE/S, os processos executaram inteiramente até terminar, de acordo com seus tempnecessários para execução.

0 10 18 27

Processo A Processo B Processo C10 u.t. 8 u.t. 9 u.t.

-

SJF (Shortest Job First): este escalonamento seleciona o processo que tiver o metempo de processador ainda por executar. Desta forma, o processo que estiver na fila pronto com menor necessidade de tempo de CPU para terminar o seu processamenserá o escolhido para ocupar a CPU. Funciona com um parâmetro passado ao sistevia contexto de software, onde o tempo estimado para o processo é informabaseando-se em estatísticas de execuções anteriores.

Como exemplo, vamos utilizar os mesmos processos executados escalonamento FIFO acima, com seus respectivos tempos de execução em (unidades de tempo): processo A com 10 u.t., processo B com 8 u.t, e o processo C c9 u.t. Como neste escalonamento o que importa é o tempo de execução, a nova ord

de escalonamento para utilização da CPU será B, C e A, como segue:0 8 17 27

Processo B Processo C Processo A

- Cooperativo: este escalonamento busca aumentar o grau de concorrência processador. Neste caso, um processo em execução pode voluntariamente liberaprocessador retornando à fila de pronto, possibilitando que um novo processo s

escalonado, permitindo melhor distribuição do tempo do processador. A liberação CPU é uma tarefa exclusiva do programa em execução, que de maneira cooperatlibera o processador para um outro processo. Neste mecanismo, o processo eexecução verifica periodicamente uma fila de mensagens para saber se existem outprocessos na fila de pronto. Porém, como a interrupção do processo não depende sistema operacional, situações indesejáveis podem ocorrer, como por exemplo, se programa em execução não verificar a fila de mensagens, os demais programas n

5/14/2018 Ambiente e Sistemas Operacionais - slidepdf.com

http://slidepdf.com/reader/full/ambiente-e-sistemas-operacionais 32/48

Material didático extraído da web. Essa apostila Não substitui as consultas nas bibliografiasoficiais da disciplina.

terão chance de executar enquanto a CPU não for liberada. As primeiras versões Windows chegaram a utilizar este tipo de escalonamento.

São escalonamentos preemptivos:

-

Circular: é um tipo de escalonamento projetado especialmente para sistemas em temcompartilhado. É muito semelhante ao FIFO (obedece a ordem de chegada á fila PRONTO), mas quando um processo passa para o estado de execução há um limite tempo para o uso contínuo do processador, chamado fatia de tempo (time-slice)quantum. Assim, toda vez que um processo é selecionado para execução uma nova fade tempo lhe é concedida. Caso esta fatia de tempo expire, o sistema operaciointerrompe o processo, salva seu contexto e o direciona para a fila de PRONTO. Emecanismo é conhecido como   preempção por tempo. A principal vantagem deescalonamento é não permitir que um processo monopolize a CPU. Outrossim, udesvantagem é que os processos CPU-bound são beneficiados no uso do processaem relação aos processos I/O-bound, pois tendem a utilizar totalmente a fatia de tem

recebida. A figura a seguir mostra o escalonamento circular com 3 processos, ondefatia de tempo é igual a 2 u.t. No exemplo não estão sendo levados em consideraçtempos de troca de contexto entre os processos, nem o tempo perdido em operações E/S. Os processos A, B e C, gastam 10 u.t, 6 u.t e 3 u.t., respectivamente.

2 4 6 8 10 11 17

- Por Prioridades: funciona com base num valor associado a cada processo, denomina prioridade de execução. O processo com maior prioridade na fila de PRONTO é semo escolhido para ocupar o processador, sendo os processos com prioridades igu

escalonados pelo critério FIFO. Neste escalonamento o conceito da fatia de tempo nexiste. Como conseqüência disto, um processo em execução não pode sofrer preempçpor tempo. Neste escalonamento a perda do uso do processador somente ocorrerá caso de uma mudança voluntária para o estado de espera (interrupção por E/S), quando um outro processo de prioridade maior passa (ou chega) para o estado pronto. Neste caso o sistema operacional interrompe o processo em execução, salva scontexto e o coloca na fila de pronto, dando lugar na CPU ao processo prioritário. Esmecanismo é chamado de preempção por prioridade. A figura a seguir mostra

 A

B

u.t.

5/14/2018 Ambiente e Sistemas Operacionais - slidepdf.com

http://slidepdf.com/reader/full/ambiente-e-sistemas-operacionais 33/48

Material didático extraído da web. Essa apostila Não substitui as consultas nas bibliografiasoficiais da disciplina.

execução dos processos A, B e C, com tempos de execução de 10, 4 e 3 urespectivamente, e valores de prioridades de 2, 1 e 3, também respectivamente. maioria dos sistemas, valores menores correspondem à MAIOR prioridade. Assimordem de execução será invertida para B, A e C.

 A

B

C

4 14 17 u.t.

  A prioridade de execução faz parte do contexto de software do processo, e pode estática (quando não pode ser alterada durante a existência do processo) ou dinâm(quando pode ser alterada durante a existência do processo). Este escalonamentomuito usado em sistemas de tempo real, com aplicações de controle de processcontrole de tráfego (sinais de trânsito, de trens/metrô, aéreo), robótica, entre outros.

- Escalonamento Circular com Prioridades: implementa o conceito de fatia de tempo e prioridade de execução associada a cada processo. Neste escalonamento, um procespermanece no estado de execução até que termine seu processamento, voluntariamente passe para o estado de espera (interrupção por E/S), ou sofra upreempção por tempo ou prioridade. A principal vantagem deste escalonamentopermitir um melhor balanceamento no uso do processador, com a possibilidade diferenciar o grau de importância dos processos através da prioridade (o Windows utileste escalonamento).

- Por Múltiplas Filas: Este escalonamento implementa várias filas de pronto, cada ucom prioridade específica. Os processos são associados às filas de acordo ccaracterísticas próprias, como importância da aplicação, tipo de processamento ou árde memória necessária. Assim, não é o processo que detém a prioridade, mas sim a fO processo em execução sofre preempção caso um outro processo entre em uma fila maior prioridade. O sistema operacional só pode escalonar processos de uma quando todas as outras filas de maior prioridade estejam vazias. Os processos sempvoltam para a mesma fila de onde saíram.

- Por Múltiplas Filas com Realimentação: semelhante ao anterior, porém permitindo processo voltar para uma outra fila de maior ou menor prioridade, de acordo com scomportamento durante o processamento. O sistema operacional identifdinamicamente o comportamento de cada processo e o redireciona para a fila mconveniente ao longo de seu processamento. É um algoritmo generalista, podendo implementado na maioria dos sistemas operacionais.

5/14/2018 Ambiente e Sistemas Operacionais - slidepdf.com

http://slidepdf.com/reader/full/ambiente-e-sistemas-operacionais 34/48

Material didático extraído da web. Essa apostila Não substitui as consultas nas bibliografiasoficiais da disciplina.

7. Gerência de Memória / Memória Virtual

7.1 Introdução

Historicamente, a memória principal sempre foi vista como um recurso escasso e caUma das maiores preocupações dos projetistas foi desenvolver sistemas operacionais que nocupassem muito espaço de memória e, ao mesmo tempo, otimizassem a utilização drecursos computacionais. Mesmo atualmente, com a redução do custo e o aumento consideráda capacidade da memória principal, seu gerenciamento é dos fatores mais importantes projeto e implementação dos sistemas operacionais.

Enquanto nos sistemas monoprogramáveis a gerência de memória não é muito complenos sistemas multiprogramáveis essa gerência se torna crítica, devido à necessidade de maximizar o número de usuários e aplicações utilizando eficientemente o espaço da memó

principal.7.2 Funções

Geralmente, os programas são armazenados em memórias secundárias, de upermanente e não voláteis, como discos ou fitas. Como o processador somente executa o qestá na memória principal, o sistema operacional deve sempre transferir programas da memósecundária para a principal antes de serem executados.Como o tempo de acesso às memórsecundárias é muito superior ao tempo de acesso à memória principal, o sistema operaciodeve buscar reduzir o número de operações de E/S (acessos à memória secundária) a fim não comprometer o desempenho do sistema.

  A gerência de memória deve tentar manter na memória principal o maior númeroprocessos residentes, permitindo maximizar o compartilhamento do processador e demrecursos computacionais. Mesmo não havendo espaço livre, o sistema deve permitir que noprocessos sejam aceitos e executados. Outra preocupação na gerência de memória é permitexecução de programas maiores do que a memória física disponível.

Em um ambiente de multiprogramação o sistema operacional deve proteger as áreasmemória ocupadas por cada processo, além da área onde reside o próprio sistema. Caso programa tente realizar algum acesso indevido à memória, o sistema deve, de alguma form

impedir o acesso.7.3 Alocação Contígua Simples

Este tipo de alocação foi implementado nos primeiros sistemas operacionais, embainda nos dias de hoje esteja presente em alguns sistemas monoprogramáveis. Nesse modelomemória principal é dividida em duas partes, uma para o sistema operacional e a outra para

5/14/2018 Ambiente e Sistemas Operacionais - slidepdf.com

http://slidepdf.com/reader/full/ambiente-e-sistemas-operacionais 35/48

Material didático extraído da web. Essa apostila Não substitui as consultas nas bibliografiasoficiais da disciplina.

programa do usuário. Dessa forma, o programador deve desenvolver suas aplicaçpreocupado apenas em não ultrapassar o espaço de memória disponível.

Neste esquema o usuário tem total controle sobre toda a memória, exceto naquela áonde reside o sistema operacional, cujo endereçamento é protegido por um registrad

impedindo acesso indevido pelo usuário.

 X  registrador

Proteção na alocação contígua simples

  Apesar de simples implementação e código reduzido, a alocação contígua simples permite a utilização eficiente dos recursos do sistema, pois apenas um usuário pode disdestes recursos. Há inclusive um desperdício de espaço de memória, caso o programa nvenha a ocupar toda a área reservada para ele.

Sub-utilização da memória principal

7.4 Segmentação de Programas

Na alocação contígua simples todos os programas estão limitados ao tamanho memória principal disponível para o usuário. Uma solução encontrada para o problema é divo programa em módulos, de modo que seja possível a execução independente de cada móduutilizando a mesma área de memória. A esta técnica dá-se o nome de segmentação ou overla

SistemaOperacional

  Área paraprogramas

Sistema

Operacional

Programa doUsuário

 Área livre

5/14/2018 Ambiente e Sistemas Operacionais - slidepdf.com

http://slidepdf.com/reader/full/ambiente-e-sistemas-operacionais 36/48

Material didático extraído da web. Essa apostila Não substitui as consultas nas bibliografiasoficiais da disciplina.

Consideremos um programa que tenha três módulos: um principal, um de cadastramee outro de impressão, sendo os módulos de cadastramento e impressão independentesindependência significa que quando um módulo estiver na memória para execução, o outro nnecessariamente precisa estar presente.O módulo principal é comum aos outros dois, loprecisa estar na memória durante todo o tempo da execução do programa.

Na figura a seguir, a memória é insuficiente para armazenar todo o programa, qtotaliza 9 KB. A técnica de overlay utiliza uma área de memória comum para armazenamódulo principal do programa e uma outra área na mesma memória, chamada área de overlque será compartilhada entre os módulos de cadastramento e impressão. Assim, sempre qum dos módulos for referenciado no módulo principal, o sistema o carregará da memósecundária para a área de overlay, sobrepondo o módulo antigo na memória.

Memória Principal

Cadastramento

Impressão

Técnica de Overlay

  A definição das áreas de overlay é função do programador, através de comanespecíficos da linguagem de programação utilizada.

 A grande vantagem da utilização desta técnica consiste em se poder executar programmaiores do que a memória física disponível.

7.5 Alocação Particionada Estática

Os sistemas operacionais evoluíram no sentido de proporcionar melhor aproveitamedos recursos disponíveis. Nos sistemas monoprogramáveis o processador permanece granparte do tempo ocioso e a memória principal é sub-utilizada. Os sistemas multiprogramáveis

SistemaOperacional

MóduloPrincipal

 Área deOverlay

 Área livre

2 KB

3 KB

4 KB

1 KB

4 KB

2 KB

2 KB

5/14/2018 Ambiente e Sistemas Operacionais - slidepdf.com

http://slidepdf.com/reader/full/ambiente-e-sistemas-operacionais 37/48

Material didático extraído da web. Essa apostila Não substitui as consultas nas bibliografiasoficiais da disciplina.

são muito mais eficientes no uso do processador, necessitando que vários processos estejam memória principal ao mesmo tempo e que novas formas de gerência de memória sejimplementadas.

Nos primeiros sistemas multiprogramáveis a memória era dividida em blocos de taman

fixo, chamados  partições.O tamanho dessas partições, estabelecido em tempo de inicializaçdo sistema, era definido em função do tamanho dos programas que executariam ambiente.Sempre que fosse necessária a alteração do tamanho de uma partição, o sistedeveria ser inicializado novamente com uma nova configuração.

SistemaOperacionalPartição 1 2 KB

Partição 2 5 KB

Partição 3 8 KB

Inicialmente, os programas só podiam ser carregados e executados em apenas upartição específica, mesmo que as outras estivessem disponíveis. Esta limitação se devia compiladores e linkeditores, que geravam apenas código absoluto . No código absoluto, todasreferências a endereços no programa são posições físicas na memória, ou seja, o programapoderia ser carregado a partir do endereço de memória especificado no seu próprio códigoesse tipo de alocação de memória chamou-se alocação particionada estática absoluta.

Coma evolução dos compiladores, linkeditores, montadores e loaders, o código geradeixou de ser absoluto e passou a ser relocável  . No código relocável, todas as referênciaendereços no programa são relativas ao início do código e não a endereços fixos na memóDesta forma, os programas puderam ser alocados em qualquer partição livre, independenteendereço inicial e da partição para a qual o código foi criado. A esse tipo de alocação deu-snome de alocação particionada estática relocável.

Tanto nos sistemas de alocação absoluta como nos de alocação relocável, os programnormalmente, não ocupam totalmente as partições onde são alocados, deixando algum espalivre dentro das partições. Este tipo de problema, decorrente do esquema de alocação fixa

partições, é chamado fragmentação interna.

 A figura a seguir mostra um gráfico representando o particionamento estático de umamemória e sua fragmentação interna.

5/14/2018 Ambiente e Sistemas Operacionais - slidepdf.com

http://slidepdf.com/reader/full/ambiente-e-sistemas-operacionais 38/48

Material didático extraído da web. Essa apostila Não substitui as consultas nas bibliografiasoficiais da disciplina.

Memória Principal

SistemaOperacional

Programa C

1 KB

Programa A

3 KB

Programa E

5 KB

 Alocação particionada estática com fragmentação interna

7.6 Alocação Particionada Dinâmica

  A alocação particionada estática deixou clara a necessidade de uma nova formagerência de memória principal, onde o problema da fragmentação interna fosse reduzidoconseqüentemente, o grau de compartilhamento da memória aumentado.

Na alocação particionada dinâmica, foi eliminado o conceito de partições de tamanho fiNesse esquema, cada programa, ao ser carregado, utilizaria o espaço necessário à sexecução, tornando esse espaço a sua partição. Assim, como os programas utilizam apenaespaço de que necessitam, no esquema de alocação particionada dinâmica o problema fragmentação interna deixa de existir.

Porém, com o término de alguns programas e o início de outros, passam a existir memória blocos cada vez menores na memória, não permitindo o ingresso de novos program

 A este tipo de problema dá-se o nome de fragmentação externa.

Para resolver o problema da fragmentação externa, os fabricantes tentaram dsoluções:

-  reunião de todos os blocos livres adjacentes, formando uma grande área livre, quetransforma em uma nova partição;

-  realocação de todas as partições ainda ocupadas para a parte inicial da memóeliminando os blocos livres entre elas, formando uma grande área livre no final

Fragmentaçãointerna

5/14/2018 Ambiente e Sistemas Operacionais - slidepdf.com

http://slidepdf.com/reader/full/ambiente-e-sistemas-operacionais 39/48

Material didático extraído da web. Essa apostila Não substitui as consultas nas bibliografiasoficiais da disciplina.

memória, que podia ser distribuída entre os processos ainda por executar. A este tde compactação de espaços livres foi dado o nome de alocação particionada dinâmcom realocação. 

Estas soluções ajudaram a diminuir os problemas da fragmentação (tanto interna co

externa), mas, devido á complexidade dos algoritmos, nem todos os sistemas operacionas utilizaram.

7.7 Estratégias de Alocação de Partição

Os sistemas operacionais implementam basicamente três estratégias para determinar qual área livre um programa será alocado para execução. Essas estratégias tentam evitar diminuir o problema da fragmentação.

  A melhor estratégia a ser adotada por um sistema depende de uma série de fatosendo o mais importante o tamanho dos programas executados no ambiente.

Independentemente do algoritmo utilizado, o sistema possui uma lista das áreas livrcom endereço e tamanho de cada área.

São estratégias de alocação:

-  Best-fit: é escolhida a melhor partição, ou seja, aquela que deixa o menor espaço sutilização. Uma grande desvantagem desta estratégia é que, como são alocadprimeiramente as partições menores, deixando pequenos blocos, a fragmenta

aparece mais rapidamente.

-  Worst-fit: aloca o programa na pior partição, ou seja, aquela que deixa o maespaço livre. Esta técnica, apesar de aproveitar primeiro as partições maiores, acadeixando espaços livres grandes o suficiente para que outros programas utilizesses espaços, permitindo que um número maior de processos se utilizem memória, diminuindo ou retardando a fragmentação.

-  First-fit: esta estratégia aloca o programa na primeira partição que o coubindependente do espaço livre que vai deixar. Das três estratégias, esta é a mrápida, consumindo menos recursos do sistema.

7.8 Swapping

É uma técnica aplicada à gerência de memória que visa dar maior taxa de utilizaçãomemória principal, melhorando seu compartilhamento. Visa também resolver o problema falta de memória principal num sistema.

5/14/2018 Ambiente e Sistemas Operacionais - slidepdf.com

http://slidepdf.com/reader/full/ambiente-e-sistemas-operacionais 40/48

Material didático extraído da web. Essa apostila Não substitui as consultas nas bibliografiasoficiais da disciplina.

Toda vez que um programa precisa ser alocado para execução e não há espaço memória principal, o sistema operacional escolhe entre os processos alocados que não tprevisão de utilizar a CPU nos próximos instantes (quase sempre entre aqueles que estão interrupção de E/S ou no final da fila de pronto), e “descarrega” este processo da memória puma área especial em disco, chamada arquivo de swap, onde o processo fica armazena

temporariamente. Durante o tempo em que o processo fica em swap, o outro que necessitde memória entra em execução ocupando o espaço deixado pelo que saiu. Pouco antes chegar a vez do processo armazenado em swap utilizar a CPU, o sistema escolhe um ouprocesso para descarregar para swap e devolve o anterior da área de swap para a memóprincipal, para que este possa ser executado novamente. E vai trabalhando assim até queprocessos vão terminando. O problema dessa técnica é que pode provocar um númexcessivo de acesso à memória secundária (disco), levando o sistema a uma queda desempenho.

7.9 Memória Virtual

 Anteriormente foram apresentadas diversas técnicas de gerenciamento de memória evoluíram no sentido de maximizar o número de processos residentes na memória principareduzir o problema da fragmentação, porém os esquemas vistos se mostraram muitas veineficientes. Além disso, o tamanho dos programas e de suas estruturas de dados estalimitado ao tamanho da memória disponível. Como vimos, a utilização da técnica de overpara contornar este problema é de difícil implementação na prática e nem sempre uma solugarantida e eficiente.

Memória virtual é uma técnica sofisticada e poderosa de gerência de memória onde

memórias principal e secundária são combinadas, dando ao usuário a impressão de que exmuito mais memória do que a capacidade real de memória principal.

O conceito de memória virtual baseia-se em não vincular o endereçamento feito pprograma aos endereços físicos da memória principal. Desta forma, o programa e sestruturas de dados deixam de estar limitados ao tamanho da memória física disponível, ppodem possuir endereços vinculados à memória secundária, que funciona como uma extenda memória principal.

Outra vantagem desta técnica é permitir um número maior de processos compartilhana memória principal, já que apenas partes de cada processo estarão residentes. Isto leva a uutilização mais eficiente do processador, além de minimizar (ou quase eliminar) o problema fragmentação.

  A seguir, os conceitos que envolvem a gerência de memória virtual, incluindpaginação:

-  espaço de endereçamento virtual : é o conjunto de endereços virtuais que processo pode endereçar.

5/14/2018 Ambiente e Sistemas Operacionais - slidepdf.com

http://slidepdf.com/reader/full/ambiente-e-sistemas-operacionais 41/48

Material didático extraído da web. Essa apostila Não substitui as consultas nas bibliografiasoficiais da disciplina.

-  Espaço de endereçamento real: analogamente, é o conjunto de endereços reais qum processo pode endereçar.

-  Mapeamento:  como o espaço de endereçamento virtual não tem nenhuma relaç

com o espaço de endereçamento real, um programa pode fazer referência a endereço virtual que esteja fora dos limites da memória principal (real), ou seja,programas e suas estruturas de dados não estão mais limitados ao tamanho memória física disponível. Quando um programa é executado, apenas uma parte seu código fica residente na memória principal, permanecendo o restante na memóvirtual até o momento de ser referenciado. Este esquema de endereçamento virtuaignorado pelo programador no desenvolvimento das aplicações. Cabe ao compiladoao linkeditor gerar códigos executáveis em função do endereçamento virtual, esistema operacional se incumbe de administrar os detalhes durante a sua execuçãoprocessador apenas executa instruções e referencia dados residentes no espaçoendereçamento real. Portanto, deve existir um mecanismo que transforme endereços virtuais em endereços reais. Este mecanismo é o que chamamos mapeamento, e consiste em permitir a tradução do endereço virtual em enderreal. Como conseqüência, um programa não mais precisa estar necessariamente endereços contíguos na memória real para ser executado.

-  Tabela de endereçamento de páginas:  estrutura mantida pelo sistema parmazenar, entre outras informações, o mapeamento. É única e exclusiva para caprocesso, relacionando os endereços virtuais do processo ás suas posições memória real.

-

  Memória virtual por paginação: é a técnica de gerência de memória onde o espaçoendereçamento virtual e o espaço de endereçamento real são divididos em blocosmesmo tamanho chamados  páginas . As páginas do espaço virtual são chamad

 páginas virtuais , enquanto as páginas do espaço real são chamadas páginas reaisframes .

-  Page fault:  é a falha de página. Sempre que o processo referencia um endervirtual, o sistema verifica se a página correspondente já está carregada na memóreal. Se não estiver, acontece o page fault. Neste caso, o sistema deve transferpágina virtual para um endereço na memória real. Esta transferência é chamada

 paginação . O número de page faults gerados por um processo em um determinaintervalo de tempo é chamado de taxa de paginação do processo. Se esta taxa atinvalores elevados, pode haver um comprometimento do desempenho do sistema. page fault provoca uma interrupção no processo, pois há a necessidade de acesoperações de E/S. Assim, sempre que acontece a paginação, uma interrupção de fará com que o processo em execução seja interrompido e colocado em estadoespera até que sua intervenção de E/S seja realizada, quando então o procevoltará à fila de pronto e entrará em execução de acordo com o escaloname

5/14/2018 Ambiente e Sistemas Operacionais - slidepdf.com

http://slidepdf.com/reader/full/ambiente-e-sistemas-operacionais 42/48

Material didático extraído da web. Essa apostila Não substitui as consultas nas bibliografiasoficiais da disciplina.

normal. Enquanto o sistema trata a interrupção deste processo, um outro ocuparCPU.

-  Working- set: é o conjunto de páginas de um processo, em memória real, em determinado instante. Este conceito surgiu com o objetivo de reduzir o problema

thrashing  e está relacionado ao   princípio da localidade . Existem dois tipos localidade que são observados durante a execução da maioria dos programaslocalidade espacial  é a tendência de que, após uma referência a um endereço memória, sejam realizadas novas referências a endereços próximos ou adjacenteslocalidade espacial  é a tendência de que, após a referência a uma posição memória, esta mesma posição seja referenciada novamente num curto intervalo tempo. A partir desse princípio de localidade, o processador tenderá a concentrar sreferências a um conjunto de páginas do processo durante um determinado període tempo. Imagine um loop principal de um programa que ocupe três páginastendência é que estas três páginas tenham um alto índice de referências durantexecução do programa.

-  Thrashing: é o efeito causado pelo excesso de page faults durante a execução de processo. Pode acontecer a nível de programa ou de sistema. A nível de programpode ser provocado por um programa mal escrito, com desvios incondicionespalhados por seu código (desobedecendo portanto aos princípios da localidade),por um limite de working-set muito pequeno (que não comporte o loop principal programa, por exemplo). A solução para estes casos é reescrever o programa aumentar o limite do working-set. No caso de thrashing de sistema, significa que mais páginas sendo requeridas na memória real do que ela pode realmente supor

 A solução é aumentar o tamanho da memória física.

-  Tamanho da página: deve estar entre 512 bytes e 128KB, aproximadamente. Págimenores promovem maior compartilhamento da memória, permitindo que mprogramas possam ser executados. Páginas maiores diminuem o grau compartilhamento da memória, com menos programas disputando o processad

  Assim conclui-se que quanto menor o tamanho da página, MAIOR é o graucompartilhamento da memória e da CPU.

-  Políticas de busca de páginas: definem como as páginas serão carregadas da memóvirtual para a memória real. A política   por demanda estabelece que uma págsomente será carregada quando for referenciada. Este mecanismo é conveniente, pleva para a memória real somente as páginas realmente necessárias à execuçãoprograma, ficando as outras na memória virtual. A outra política, chamada  paginaçantecipada , funciona carregando antecipadamente várias páginas da memória virtpara a principal, na tentativa de economizar tempo de E/S. Nem sempre o sisteacerta na antecipação, mas o índice de acertos é quase sempre maior que o de erro

-  Políticas de alocação de páginas:  determinam quantos frames cada processo pomanter na memória real. A política de alocação fixa  determina um limite de worki

5/14/2018 Ambiente e Sistemas Operacionais - slidepdf.com

http://slidepdf.com/reader/full/ambiente-e-sistemas-operacionais 43/48

Material didático extraído da web. Essa apostila Não substitui as consultas nas bibliografiasoficiais da disciplina.

set igual para todos os processos, e pode ser vista como uma política injusta, medida em que processos maiores normalmente necessitam de um working-set ma

 A outra política é a variável , que define um limite de working-set diferente e variápara cada processo, em função de seu tamanho, taxa de paginação ou até mesmotaxa de ocupação da memória principal.

-  Políticas de substituição de páginas: definem onde serão trocadas as páginas, quanse fizer necessária uma substituição. Na política local , somente as páginas processo que gerou o page fault são candidatas a serem substituídas.Já na polítglobal , todas as páginas alocadas na memória principal são candidatas à substituiçindependente do processo que gerou o page fault. Como uma página de qualqprocesso pode ser escolhida, pode ser que este processo sofra um aumetemporário da taxa de paginação em função da diminuição das suas páginas alocadem memória.

7.10 Algoritmos de substituição de páginas 

O maior problema na gerência de memória virtual por paginação não é decidir qupáginas carregar para a memória real, mas sim quais páginas liberar. Quando há a necessidade carregar uma página, o sistema deve selecionar entre as diversas páginas alocadas memória qual delas deverá ser liberada pelo processo.

Os algoritmos de substituição de páginas têm o objetivo de selecionar os frames qtenham as menores chances de serem referenciados num futuro próximo. Caso contrárioframe poderia retornar diversas vezes para a memória real, provocando excesso de page fault

São algoritmos de substituição de páginas:

-  algoritmo ótimo : impossível de ser implementado, pois o processador não consegprever com segurança qual frame não será mais referenciado durante a execução programa. Tal fato deve-se à lógica do programa e aos dados que ele manipudesconhecidos pelo processador.

-    Algoritmo aleatório : escolhe qualquer página, entre as alocadas na memória, pfazer a substituição. Em função de sua baixa eficiência, este algoritmo não muutilizado, embora consuma poucos recursos do sistema.

-    Algoritmo FIFO (first in, first out) : escolhe a página que está há mais tempo memória principal para fazer a troca. É um algoritmo de simples implementação, mcorre o risco de retirar uma página que, embora tenha sido carregada há mais temesteja sendo muito utilizada. Por essa razão não é muito usado.

-   Algoritmo LFU (least frequently used) : elege a página menos freqüentemente usapara efetuar a troca. Através de um contador, armazenado na tabela

5/14/2018 Ambiente e Sistemas Operacionais - slidepdf.com

http://slidepdf.com/reader/full/ambiente-e-sistemas-operacionais 44/48

Material didático extraído da web. Essa apostila Não substitui as consultas nas bibliografiasoficiais da disciplina.

endereçamento de páginas, mo sistema identifica quantas referências cada págteve e utiliza esta informação para escolher a página.

-   Algoritmo LRU (least recently used) : elege a página menos recentemente usada pfazer a troca. O sistema mantém na tabela de endereçamento de páginas um cam

onde são armazenadas a data e a hora da última referência de cada página, e cbase nestas informações faz a seleção.

-   Algoritmo NRU (not recently used) : elege a página menos recentemente usada pefetuar a troca. O sistema exclui da decisão a página mais recente e escolhe entreoutras, pelo método FIFO, qual página deve sair.

5/14/2018 Ambiente e Sistemas Operacionais - slidepdf.com

http://slidepdf.com/reader/full/ambiente-e-sistemas-operacionais 45/48

Material didático extraído da web. Essa apostila Não substitui as consultas nas bibliografiasoficiais da disciplina.

8. Gerência de Sistemas de Arquivos

8.1 Estrutura de Diretórios

É como o Sistema organiza logicamente os arquivos. Contém entradas associadas a

arquivos, com as informações de localização, nome, organização e outros atributos:

•  Nível único: é a implementação mais simples de uma estrutura de diretórios, onde exium único diretório contendo todos os arquivos do disco. É muito limitado, não permitina criação de arquivos com o mesmo nome.

•  Diretório pessoal: Evolução do modelo anterior, permite a cada usuário ter ser “diretórparticular, sem a preocupação de conhecer os outros arquivos do disco. Neste modeloum diretório “master” que indexa todos os diretórios particulares dos usuários, proveno acesso a cada um.

•  Múltiplos níveis (ÁRVORE): É o modelo utilizado hoje em dia em quase todos os SistemOperacionais. Nesta modalidade cada usuário pode criar vários níveis de diretórios (sub-diretórios), sendo que cada diretório pode conter arquivos e sub-diretórios.número de níveis possíveis depende do Sistema Operacional.

8.2 Sistemas de alocação de arquivos

•  FAT: sistema criado no MS-DOS e depois utilizado no Windows. Usa listas encadeadtem um limite de área utilizável em partições de 2 GB, caracteriza-se por um badesempenho no acesso e armazenamento.

•  FAT32: igual ao FAT no que diz respeito a organização e desempenho, mas potrabalhar com partições de até 2TB.

•  NTFS: NT File System, original da plataforma Windows NT/2000/XP. Opera com uestrutura em árvore binária, oferecendo alto grau de segurança e desempenho:

-  nomes de arquivo com até 255 caracteres, podendo conter maiúsculas, minúscue espaços em branco;

-  dispensa ferramentas de recuperação de erros;

-

  bom sistema de proteção de arquivos;-  criptografia;-  suporta discos de até 264 bytes.

•  UNIX: Usa diretório hierárquico, com um raiz e outros diretórios subordinados. NeSistema Operacional todos os arquivos são considerados apenas como uma “seqüêncde bytes, sem significado para o Sistema. É responsabilidade da aplicação controlar

5/14/2018 Ambiente e Sistemas Operacionais - slidepdf.com

http://slidepdf.com/reader/full/ambiente-e-sistemas-operacionais 46/48

Material didático extraído da web. Essa apostila Não substitui as consultas nas bibliografiasoficiais da disciplina.

métodos de acesso aos arquivos. O UNIX utiliza também alguns diretórios padronizadde exclusividade do Sistema.

8.3 Gerência de espaço livre

São três as formas de se implementar estruturas de espaços livres. Uma delas é atravde uma tabela denominada mapa de bits, onde cada entrada da tabela é associada a um blodo disco representado por um bit, que estando com valor 0 indica que o espaço está livrecom valor 1 representa um espaço ocupado. Gasta muita memória, pois para cada bloco disco há uma entrada na tabela.

  A segunda forma é utilizando uma lista encadeada dos blocos livres do disco. Demodo, cada bloco possui uma área reservada para armazenar o endereço do próximo blolivre. Apresenta problemas de lentidão no acesso, devido às constantes buscas seqüenciaislista.

  A terceira forma é a tabela de blocos livres. Nesta, leva em consideração que blocontíguos de dados geralmente são alocados/liberados simultaneamente. Desta forma, podeenxergar o disco como um conjunto de segmentos de blocos livres. Assim, pode-se manter utabela com o endereço do primeiro bloco de cada segmento e o número de blocos contígque se seguem.

-   Alocação contígua: armazena o arquivo em blocos seqüencialmente dispostosdisco. O arquivo é localizado através do endereço do primeiro bloco de extensão em blocos. O principal problema neste tipo de alocação é a existênciaespaço livre para novos arquivos, que deve ser contígua. Utiliza as estratég

best-fit, worst-fit e first-fit (já conhecidas) para definir onde o arquivo salocado. Causa alto índice de fragmentação no disco.

-   Alocação encadeada: nesta modalidade o arquivo é organizado como um conjude blocos ligados logicamente no disco, independente de sua localização físionde cada bloco possui um ponteiro para o bloco seguinte. A fragmentação nrepresenta problemas na alocação encadeada, pois os blocos livres para alocaçdo arquivo não necessariamente precisam estar contíguos. O que acontece équebra do arquivo em vários pedaços, o que aumenta o tempo de acesso. Netipo de alocação só se permite acesso seqüencial aos blocos do arquivo, senesta uma das principais desvantagens da técnica. Outra desvantagem é a perdaespaço nos blocos com o armazenamento dos ponteiros.

-   Alocação indexada: esta técnica soluciona a limitação da alocação encadeada,que diz respeito ao acesso, pois permite acesso direto aos blocos do arquivo. Ié conseguido mantendo-se os ponteiros de todos os blocos do arquivo em uúnica estrutura chamada bloco de índice. Este tipo de alocação, além de permacesso direto aos blocos, não utiliza informações de controle nos blocos de dado

5/14/2018 Ambiente e Sistemas Operacionais - slidepdf.com

http://slidepdf.com/reader/full/ambiente-e-sistemas-operacionais 47/48

Material didático extraído da web. Essa apostila Não substitui as consultas nas bibliografiasoficiais da disciplina.

8.4 Proteção de acesso

Considerando-se que os meios de armazenamento são compartilhados por várusuários, é fundamental que mecanismos de proteção sejam implementados para garanti

integridade e proteção individual dos arquivos e diretórios:

-  Senha de acesso: mecanismo de simples implementação, mas apresenta ddesvantagens: não é possível determinar quais os tipos de operação podem efetuadas no arquivo, e, se este for compartilhado, todos os usuários queutilizam devem conhecer a senha de acesso.

-  Grupos de usuário: é muito utilizada em muitos Sistemas Operacionais. Consem associar cada usuário a um grupo. Os grupos são organizados logicamecom o objetivo de compartilhar arquivos e diretórios no disco. Este mecanisimplementa três níveis de proteção: OWNER (dono), GROUP (grupo) e A(todos). Na criação do arquivo o usuário especifica se o arquivo pode ser acessasomente pelo seu criador, pelo grupo ou por todos os usuários, além de defque tipos de acesso podem ser realizados (leitura, escrita, execução e eliminaçã

- Lista de controle de acesso: é uma lista associada ao arquivo onde sespecificados quais os usuários e os tipos de acesso permitidos. O tamandessa estrutura pode ser bastante extenso se considerarmos que um arqupode ser compartilhado por vários usuários. Além deste problema, háinconveniente de se fazer acesso seqüencial à lista toda vez que um acessosolicitado. Em determinados sistemas de arquivos pode-se utilizar ucombinação de proteção por grupos de usuários ou por listas de acesoferecendo assim maior flexibilidade ao mecanismo de proteção de arquivosdiretórios.

5/14/2018 Ambiente e Sistemas Operacionais - slidepdf.com

http://slidepdf.com/reader/full/ambiente-e-sistemas-operacionais 48/48

Material didático extraído da web. Essa apostila Não substitui as consultas nas bibliografiasoficiais da disciplina.

9. BIBLIOGRAFIA

 Arquitetura de Sistemas OperacionaisFrancis B. Machado

Ed. LTC

Sistemas Operacionais: Conceitos e Aplicações Abraham SilberschatzEd. Campus

Sistemas Operacionais Modernos A.S. TanenbaumEd. Campus