41
Aula 02 Sistemas Multiprogramáveis Matéria: Sistema Computacional - SC Prof. Esp. Patricia Dias da Silva Peixoto

Aula 02 Sistemas Multiprogramáveis - univap.br · Alguns sistemas operacionais permitem a possibilidade de se implementar o conceito de reentrância em aplicações desenvolvidas

Embed Size (px)

Citation preview

Page 1: Aula 02 Sistemas Multiprogramáveis - univap.br · Alguns sistemas operacionais permitem a possibilidade de se implementar o conceito de reentrância em aplicações desenvolvidas

Aula 02

Sistemas Multiprogramáveis

Matéria: Sistema Computacional - SC

Prof. Esp. Patricia Dias da Silva Peixoto

Page 2: Aula 02 Sistemas Multiprogramáveis - univap.br · Alguns sistemas operacionais permitem a possibilidade de se implementar o conceito de reentrância em aplicações desenvolvidas

SISTEMAS MULTIPROGRAMÁVEIS

Um Sistema Operacional pode ser visto como um conjunto de rotinas que executam concorrentemente de forma ordenada. A possibilidade de um processador executar instruções em paralelo com operações de entrada e saída permite que diversas tarefas sejam executadas concorrentemente. É este conceito de concorrência o princípio fundamental para o projeto e implementação de sistemas multiprogramáveis.

Page 3: Aula 02 Sistemas Multiprogramáveis - univap.br · Alguns sistemas operacionais permitem a possibilidade de se implementar o conceito de reentrância em aplicações desenvolvidas

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

Page 4: Aula 02 Sistemas Multiprogramáveis - univap.br · Alguns sistemas operacionais permitem a possibilidade de se implementar o conceito de reentrância em aplicações desenvolvidas

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

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

Page 5: Aula 02 Sistemas Multiprogramáveis - univap.br · Alguns sistemas operacionais permitem a possibilidade de se implementar o conceito de reentrância em aplicações desenvolvidas

INTERRUPÇÃO E EXCEÇÃO

Durante a execução de um programa, alguns eventos inesperados podem ocorrer, ocasionando um desvio forçado no seu fluxo normal de execução. Esses eventos são conhecidos como interrupção ou exceção, e podem ser resultado de sinalizações de algum dispositivo de hardware externo ao ambiente memória/processador. A diferença entre interrupção e exceção é dada pelo tipo de evento ocorrido, embora alguns autores e fabricantes não façam tal distinção.

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

Page 6: Aula 02 Sistemas Multiprogramáveis - univap.br · Alguns sistemas operacionais permitem a possibilidade de se implementar o conceito de reentrância em aplicações desenvolvidas

Uma interrupção é sempre gerada por um evento externo ao programa e, sendo assim, independe da instrução que está sendo executada. Um exemplo de interrupção é quando um dispositivo avisa ao processador que alguma operação de E/S está completa. Neste caso, o processador 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 processador) verifica a ocorrência de algum tipo de interrupção. Desta forma, o programa em execução é interrompido e seu controle é desviado para uma rotina do sistema responsável por tratar o evento ocorrido, denominada rotina de tratamento de interrupção. Para que o programa interrompido possa retornar posteriormente à sua execução é necessário que, no momento da interrupção, um certo conjunto de informações sobre sua execução seja preservado.

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

Page 7: Aula 02 Sistemas Multiprogramáveis - univap.br · Alguns sistemas operacionais permitem a possibilidade de se implementar o conceito de reentrância em aplicações desenvolvidas
Page 8: Aula 02 Sistemas Multiprogramáveis - univap.br · Alguns sistemas operacionais permitem a possibilidade de se implementar o conceito de reentrância em aplicações desenvolvidas

Para cada tipo de interrupção existe uma rotina de tratamento associada, para onde o fluxo do programa é desviado. A identificação do tipo de evento ocorrido é fundamental para determinar 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 ao 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 um programa.

Page 9: Aula 02 Sistemas Multiprogramáveis - univap.br · Alguns sistemas operacionais permitem a possibilidade de se implementar o conceito de reentrância em aplicações desenvolvidas

A principal diferença é que a exceção é o resultado da execução de uma instrução dentro do próprio programa, como a divisão por zero ou a ocorrência de um overflow (estouro de 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érmino anormal do programa. Isto se deve ao fato de que a exceção é melhor tratada dentro do próprio programa, com instruções escritas pelo programador.

Page 10: Aula 02 Sistemas Multiprogramáveis - univap.br · Alguns sistemas operacionais permitem a possibilidade de se implementar o conceito de reentrância em aplicações desenvolvidas

BUFFER

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

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

Page 11: Aula 02 Sistemas Multiprogramáveis - univap.br · Alguns sistemas operacionais permitem a possibilidade de se implementar o conceito de reentrância em aplicações desenvolvidas

SPOOL

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

Com o aparecimento dos terminais para acesso ao sistema, esta técnica teve sua função 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 uma grande área em disco, com a finalidade de simular uma impressora. Desta forma, todos os usuários e seus programas imprimem, na verdade, para este arquivo em disco, liberando a associação dos dispositivos de impressão diretamente aos programas que estão executando.

O usuário consegue visualizar o resultado de seus programas na tela dos terminais, gerando assim mais eficiência e economia de papel e fita de impressão. À proporção que vão sendo gerados no SPOOL, os relatórios vão sendo liberados para impressão pelo operador do sistema, de forma ordenada e sequencial. Para cada usuário, é como se ele tivesse uma impressora associada para si.

Page 12: Aula 02 Sistemas Multiprogramáveis - univap.br · Alguns sistemas operacionais permitem a possibilidade de se implementar o conceito de reentrância em aplicações desenvolvidas

REENTRÂNCIA

É comum, em sistemas multiprogramáveis, vários usuários utilizarem os mesmos aplicativos simultaneamente, como editores de texto, compiladores e outros utilitários. Nesta situação, se cada usuário que utilizasse um destes aplicativos trouxesse o código executável para a memória, haveria então diversas cópias de um mesmo programa ocupando espaço na 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) ser compartilhado por vários usuários, exigindo apenas uma cópia do programa em memória. A reentrância permite que cada usuário esteja executando um trecho diferente do código reentrante, manipulando dados próprios, exclusivos de cada usuário.

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

Page 13: Aula 02 Sistemas Multiprogramáveis - univap.br · Alguns sistemas operacionais permitem a possibilidade de se implementar o conceito de reentrância em aplicações desenvolvidas

SEGURANÇA E PROTEÇÃO DO SISTEMA

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

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

Como vários programas ocupam a memória principal simultaneamente, cada usuário possui uma área reservada onde seus programas e dados são armazenados durante o processamento. O sistema operacional deve possuir mecanismos de proteção a essas áreas, de forma a preservar as informações nela contidas. Caso um programa tente acessar uma posição de memória fora de sua área, um erro indicando a violação de acesso deve ocorrer, sendo responsabilidade do sistema operacional o controle eficiente do compartilhamento dos recursos e a sincronização da comunicação, evitando problemas de consistência.

Page 14: Aula 02 Sistemas Multiprogramáveis - univap.br · Alguns sistemas operacionais permitem a possibilidade de se implementar o conceito de reentrância em aplicações desenvolvidas

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

Todo o controle da segurança do sistema é implementado pelo sistema operacional, a partir 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 faz a conexão inicial ao sistema, através de nome do usuário e senha. A partir daí, toda uma estrutura de controle é iniciada, em função da identificação do usuário, no sentido de 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ível do programa do usuário, com a inserção de rotinas específicas dentro do programa para controlar o acesso de usuários ao aplicativo, além de controlar internamente quais telas e funções tal usuário pode acessar.

Page 15: Aula 02 Sistemas Multiprogramáveis - univap.br · Alguns sistemas operacionais permitem a possibilidade de se implementar o conceito de reentrância em aplicações desenvolvidas

OPERAÇÕES DE ENTRADA E SAÍDA

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

O surgimento do controlador de E/S permitiu ao processador agir de maneira independente dos dispositivos de E/S. Com esse novo elemento, o processador não mais se comunicava 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:

Page 16: Aula 02 Sistemas Multiprogramáveis - univap.br · Alguns sistemas operacionais permitem a possibilidade de se implementar o conceito de reentrância em aplicações desenvolvidas

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

por interrupção: evoluindo o processo anterior, após o início da transferência de dados o processador passou a ficar livre para realizar outras tarefas. Assim, em determinados intervalos de tempo o sistema operacional deveria testar o estado dos periféricos para saber se a operação de E/S tinha terminado. Este tipo de operação permitiu um certo grau de paralelismo, já que um programa poderia ser processado enquanto uma operação de leitura/gravação em periférico estava sendo efetuada. Isto permitiu a implementação dos primeiros sistemas multiprogramáveis.

Page 17: Aula 02 Sistemas Multiprogramáveis - univap.br · Alguns sistemas operacionais permitem a possibilidade de se implementar o conceito de reentrância em aplicações desenvolvidas

Dispositivo de E/S

Page 18: Aula 02 Sistemas Multiprogramáveis - univap.br · Alguns sistemas operacionais permitem a possibilidade de se implementar o conceito de reentrância em aplicações desenvolvidas

A necessidade de se transmitir cada vez um volume maior de informações trouxe uma evolução significativa nas operações de E/S. Em vez de o processador ser interrompido várias vezes para interrogar os dispositivos para saber do resultado das operações, o que diminuía sua eficiência devido ao excesso de interrupções, foi criado um dispositivo de transferência de dados chamado de DMA – Direct Memory Access. Esta técnica permite que um bloco de dados seja transferido entre a memória e os dispositivos de E/S sem a intervenção do processador, a não ser no início (quando a operação é solicitada) e no final da transferência (quando o processador é notificado sobre o término da operação). Na figura a seguir, podemos ver a implementação do canal de E/S gerenciando vários controladores e, ligados a estes, vários periféricos.

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

Page 19: Aula 02 Sistemas Multiprogramáveis - univap.br · Alguns sistemas operacionais permitem a possibilidade de se implementar o conceito de reentrância em aplicações desenvolvidas

Dispositivos de E/S Dispositivos de E/S

Page 20: Aula 02 Sistemas Multiprogramáveis - univap.br · Alguns sistemas operacionais permitem a possibilidade de se implementar o conceito de reentrância em aplicações desenvolvidas

ESTRUTURA DO SISTEMA

OPERACIONAL

Page 21: Aula 02 Sistemas Multiprogramáveis - univap.br · Alguns sistemas operacionais permitem a possibilidade de se implementar o conceito de reentrância em aplicações desenvolvidas

ESTRUTURA DO SISTEMA

Page 22: Aula 02 Sistemas Multiprogramáveis - univap.br · Alguns sistemas operacionais permitem a possibilidade de se implementar o conceito de reentrância em aplicações desenvolvidas

O sistema operacional é formado por um conjunto de rotinas

que oferecem serviços essenciais aos usuários, às suas

aplicações, e também ao próprio sistema. A esse conjunto de

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 ou o interpretador de comandos, que

acompanham o sistema operacional. As aplicações são

utilizadas pelos usuários de maneira transparente,

escondendo todos os detalhes da interação com o sistema.

Os utilitários, como os compiladores, editores de texto e

interpretadores de comandos permitem aos usuários,

desenvolvedores e administradores de sistema uma interação

amigável com o sistema.

Page 23: Aula 02 Sistemas Multiprogramáveis - univap.br · Alguns sistemas operacionais permitem a possibilidade de se implementar o conceito de reentrância em aplicações desenvolvidas

Existe uma grande dificuldade em compreender a estrutura e o

funcionamento do sistema operacional, pois ele não é

executado como uma aplicação tipicamente seqüencial, com

início, meio e fim. Os procedimentos do sistema são

executados concorrentemente sem uma ordem específica ou

predefinida, com base em eventos dissociados do tempo.

Muitos desses eventos estão relacionados ao hardware e a

tarefas internas do próprio sistema operacional.

Page 24: Aula 02 Sistemas Multiprogramáveis - univap.br · Alguns sistemas operacionais permitem a possibilidade de se implementar o conceito de reentrância em aplicações desenvolvidas

FUNÇÕES DO SISTEMA

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

- 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 todos os recursos necessários à execução do processo. É esta função que aloca em memória, além do executável, o contexto do processo, o buffer de leitura/gravação (se necessário), além de listas e estruturas de controle utilizadas pelo sistema operacional. Nesta função também são estabelecidos vínculos físicos a arquivos em disco, fitas e outros periféricos que serão usados no processamento. Quando do fim da execução do programa, é esta função que desaloca todos os espaços em memória ocupados pelo processo, liberando-os para futuras alocações a outros processos;

Page 25: Aula 02 Sistemas Multiprogramáveis - univap.br · Alguns sistemas operacionais permitem a possibilidade de se implementar o conceito de reentrância em aplicações desenvolvidas

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

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

- Gerência de sistemas de arquivos: responsável pelo gerenciamento dos arquivos, bem como seu compartilhamento pelos diversos usuários, implementando mecanismos de controle da segurança e direitos de acesso às áreas utilizadas pelos usuários nos diversos dispositivos;

Page 26: Aula 02 Sistemas Multiprogramáveis - univap.br · Alguns sistemas operacionais permitem a possibilidade de se implementar o conceito de reentrância em aplicações desenvolvidas

- Gerência de dispositivos de E/S: responsável por

gerenciar os dispositivos, prestando auxílio à

criação/eliminação de processos e á gerência de sistemas de

arquivos no que diz 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ços de rede, fazendo o empacotamento

das mensagens vindas dos terminais para a CPU central e

vice-versa, além de controlar e confirmar o envio e

recebimento de todas as mensagens que trafegam pela rede;

Page 27: Aula 02 Sistemas Multiprogramáveis - univap.br · Alguns sistemas operacionais permitem a possibilidade de se implementar o conceito de reentrância em aplicações desenvolvidas

- Contabilização de uso do sistema: responsável por

contabilizar o uso de todos os recursos do sistema

consumidos pelos usuários e suas aplicações. São

registrados: tempo de CPU, tempo corrido, quantidade de

área alocada em memória, em disco, linhas impressas,

páginas de papel, entre outros. Isto se faz necessário para

servir de subsídio para análise de performance, estatísticas

de gastos com material de consumo e também para definição

de custos de processamento.;

Page 28: Aula 02 Sistemas Multiprogramáveis - univap.br · Alguns sistemas operacionais permitem a possibilidade de se implementar o conceito de reentrância em aplicações desenvolvidas

- Auditoria e segurança do sistema: função extremamente

importante, pois detecta e registra (num arquivo especial de

LOG) todas as ocorrências de erro e violação de direitos de

acesso ao sistema, aos arquivos, à memória e a todos os

recursos do sistema. O arquivo de LOG é usado pela

gerência de sistemas, com o intuito de verificar e aperfeiçoar

os mecanismos de segurança e proteção ao sistema.

A estrutura do sistema, a maneira como ele é organizado e o

inter-relacionamento entre seus diversos componentes pode

variar conforme a concepção do projeto do sistema.

Page 29: Aula 02 Sistemas Multiprogramáveis - univap.br · Alguns sistemas operacionais permitem a possibilidade de se implementar o conceito de reentrância em aplicações desenvolvidas

SYSTEM CALLS

Uma grande preocupação no projeto de sistemas operacionais

se refere à implementação de mecanismos de proteção ao

núcleo do sistema e também o controle de acesso aos

serviços oferecidos pelo sistema. Caso uma aplicação que

tenha acesso ao núcleo realize alguma operaçã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úcleo do sistema e aos seus

serviços. Sempre que um usuário ou uma aplicação necessita

de algum serviço do sistema, é realizada uma chamada a uma

de suas rotinas através de uma system call.

Page 30: Aula 02 Sistemas Multiprogramáveis - univap.br · Alguns sistemas operacionais permitem a possibilidade de se implementar o conceito de reentrância em aplicações desenvolvidas

Através dos parâmetros fornecidos na system call, a solicitação

é processada e uma resposta é enviada à aplicação

juntamente com um estado de conclusão indicando o sucesso

ou não da operação. Para cada serviço disponível existe uma

system call associada, e cada sistema operacional possui seu

próprio conjunto de chamadas, com nomes, parâmetros e

formas de ativação específicos. Isto explica por que uma

aplicação desenvolvida utilizando serviços de um determinado

sistema operacional não pode ser diretamente portada para

um outro sistema.

Page 31: Aula 02 Sistemas Multiprogramáveis - univap.br · Alguns sistemas operacionais permitem a possibilidade de se implementar o conceito de reentrância em aplicações desenvolvidas
Page 32: Aula 02 Sistemas Multiprogramáveis - univap.br · Alguns sistemas operacionais permitem a possibilidade de se implementar o conceito de reentrância em aplicações desenvolvidas

MODOS DE ACESSO Existem certas instruções que não podem ser colocadas

diretamente à disposição das aplicações, pois a sua utilização indevida poderia ocasionar sérios problemas à integridade do sistema. Imagine que uma aplicação atualize um arquivo em disco. O programa, por si só, não pode especificar diretamente as instruções que acessam seus dados no disco pois, como o disco é um recurso compartilhado, sua utilização deve ser gerenciada unicamente pelo sistema operacional. Tal procedimento evita que a aplicação possa ter acesso a qualquer área do disco indiscriminadamente, o que poderia comprometer a segurança e a integridade do sistema de arquivos.

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

Page 33: Aula 02 Sistemas Multiprogramáveis - univap.br · Alguns sistemas operacionais permitem a possibilidade de se implementar o conceito de reentrância em aplicações desenvolvidas

Para que uma aplicação possa executar uma instrução privilegiada, é preciso que haja um mecanismo de proteção no processador, chamado modos de acesso. Existem basicamente dois modos de acesso ao processador: modo usuário e modo kernel. Quando o processador trabalha no modo usuário, somente instruções não-privilegiadas podem ser executadas, tendo assim acesso a um número limitado de instruções do processador. Já no modo kernel (ou supervisor), a 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 apenas o sistema operacional tenha acesso a elas. Sempre que uma aplicação necessita executar uma instrução privilegiada, a solicitação deve ser feita através de uma system call, que altera o modo de acesso ao processador do modo usuário para o modo kernel. Ao término da execução da rotina do sistema, o modo de acesso retorna para o modo usuário.

Page 34: Aula 02 Sistemas Multiprogramáveis - univap.br · Alguns sistemas operacionais permitem a possibilidade de se implementar o conceito de reentrância em aplicações desenvolvidas

ARQUITETURAS: SISTEMAS MONOLÍTICOS, EM CAMADAS E

MICROKERNEL

- Arquitetura monolítica: é caracterizada por possuir seus

módulos compilados separadamente mas linkados formando

um único e enorme programa executável. Onde os módulos

podem interagir livremente. Os primeiros sistemas

operacionais foram desenvolvidos com base nesta

arquitetura, o que tornava seu desenvolvimento e,

principalmente, sua manutenção muito difíceis. Como

vantagens desta arquitetura podemos citar a rapidez de

execução e simplicidade de implementação. Como

desvantagens, a limitação quanto a inovações futuras e a

dificuldade de manutenção.

Page 35: Aula 02 Sistemas Multiprogramáveis - univap.br · Alguns sistemas operacionais permitem a possibilidade de se implementar o conceito de reentrância em aplicações desenvolvidas
Page 36: Aula 02 Sistemas Multiprogramáveis - univap.br · Alguns sistemas operacionais permitem a possibilidade de se implementar o conceito de reentrância em aplicações desenvolvidas

- Arquitetura em camadas: com o aumento do tamanho

do código dos sistemas operacionais, técnicas de

programação estruturada e modular foram incorporadas em

seu projeto. Na arquitetura em camadas, o sistema é dividido

em níveis sobrepostos. Cada camada oferece um conjunto de

funções que podem ser utilizadas somente pelas camadas

superiores. Neste tipo de implementação as camadas mais

internas são mais privilegiadas que as camadas mais

externas. A vantagem da estruturação em camadas é o

isolamento das funções do sistema, facilitando sua

manutenção. Uma desvantagem é o desempenho,

comprometido devido às várias mudanças de estado do

processador provocado pela mudança de camadas. A figura

a seguir mostra esta arquitetura.

Page 37: Aula 02 Sistemas Multiprogramáveis - univap.br · Alguns sistemas operacionais permitem a possibilidade de se implementar o conceito de reentrância em aplicações desenvolvidas
Page 38: Aula 02 Sistemas Multiprogramáveis - univap.br · Alguns sistemas operacionais permitem a possibilidade de se implementar o conceito de reentrância em aplicações desenvolvidas

Arquitetura microkernel (cliente x servidor): uma tendência nos

sistemas operacionais modernos é tornar o núcleo do sistema

o menor e o mais simples possível. Para implementar esta

idéia, os serviços do sistema são disponibilizados através de

processos, onde cada um é responsável por oferecer um

conjunto específico de funções, como gerência de arquivos,

gerência de processos, gerência de memória e

escalonamento. Sempre que uma aplicação deseja algum

serviço, é realizada uma solicitação ao processo responsável.

Neste caso, a aplicação que está solicitando o serviço é

chamada de cliente, enquanto o processo que responde à

solicitação é chamado de servidor. Um cliente, que pode ser

uma aplicação do usuário ou um outro componente do

sistema operacional, solicita um serviço enviando uma

mensagem para o servidor.

Page 39: Aula 02 Sistemas Multiprogramáveis - univap.br · Alguns sistemas operacionais permitem a possibilidade de se implementar o conceito de reentrância em aplicações desenvolvidas

O servidor responde ao cliente através de uma outra mensagem. A principal função do núcleo é realizar a comunicação, ou seja, a troca de mensagens entre o cliente e o servidor. A utilização deste modelo permite que os servidores operem em modo usuário, não tendo acesso direto a certos componentes do sistema. Apenas o núcleo do sistema, responsável pela comunicação entre clientes e servidores, executa em modo kernel. Como consequência, se ocorrer um erro em algum servidor, este poderá parar, mas o sistema não ficará inteiramente comprometido, aumentando assim a sua disponibilidade. Como os servidores se comunicam através de trocas de mensagens, não importa se os clientes e servidores processam em um sistema com um único processador, com vários processadores ou ainda em um

ambiente de sistema distribuído.

Page 40: Aula 02 Sistemas Multiprogramáveis - univap.br · Alguns sistemas operacionais permitem a possibilidade de se implementar o conceito de reentrância em aplicações desenvolvidas

- A arquitetura microkernel permite isolar as funções do

sistema operacional por diversos servidores pequenos e

dedicados a serviços específicos, tornando o núcleo menor,

mais fácil de depurar (procurar e solucionar erros) e, com

isso, aumentando a sua confiabilidade. Apesar de todas as

vantagens deste modelo, sua implementação é muito difícil. A

começar pelo desempenho, comprometido devido às várias

trocas de modo de acesso a cada troca de mensagens entre

cliente e servidor. Outro problema é que certas funções do

sistema operacional, como operações de E/S, exigem acesso

direto ao hardware. Assim, o núcleo do sistema, além de

promover a comunicação entre clientes e servidores, passa a

incorpora funções críticas do sistema, como escalonamento,

tratamento de interrupções e gerência de dispositivos.

Page 41: Aula 02 Sistemas Multiprogramáveis - univap.br · Alguns sistemas operacionais permitem a possibilidade de se implementar o conceito de reentrância em aplicações desenvolvidas