Gerenciamento de Memória no Computador
|
|
- Lorena Mafalda de Sousa Faria
- 8 Há anos
- Visualizações:
Transcrição
1 Gerenciamento de Memória no Computador
2 Introdução Devido aos Sistemas Operacionais apresentarem características variadas, determinados procedimentos tornam-se por vezes semelhantes ou próprios de cada Sistema. O gerenciamento de memória é um procedimento fundamental na objetividade de todos os Sistemas Operacionais. É responsabilidade do Sistema Operacional executar inúmeras tarefas, independente da quantidade de tarefas assim como o tamanho das mesmas. Neste contexto parece complicado para o Sistema Operacional gerenciar tarefas que exigem uma quantidade de memória superior ao que é disponibilizado pela máquina. Cada Sistema possui suas características próprias para complementar estas tarefas e principalmente gerenciar a memória disponível para estas execuções. No entanto, é necessário garantir para elas além da possibilidade de execução um alto grau de segurança. Recursos do modo usuário O gerenciador do memória virtual (VM) permite aos subsistemas do modo usuário compartilhar memória eficientemente usando objetos que são protegidos, denominados e manipulados como qualquer objeto do executivo. Os subsistemas podem definir proteção a nível de página na memória privativa, bloquear páginas selecionadas na memória, tirar proveito dos arquivos mapeados e gerenciar os espaços de endereçamento virtual de outros processos. Gerenciando a memória O gerenciador VM fornece um conjunto de serviços nativos que um processo pode usar para gerenciar diretamente sua memória virtual. Estes serviços permitem que um processo faça o seguinte: Alocar memória em um processo de dois estágios. Ler e gravar na memória virtual. Bloquear páginas virtuais na memória física.
3 Obter informações sobre páginas virtuais. Descarregar páginas virtuais para o disco. O gerenciador VM estabelece uma abordagem de duas fases para alocar memória, reservá-la e depois comprometê-la. A memória reservada é um conjunto de endereços virtuais que o gerenciador VM reservou para ser usado futuramente por um processo. A reserva de memória é uma operação rápida e barata no Windows NT. A memória comprometida é memória para qual o gerenciador VM separou espaço no seu arquivo de paginação. Outro serviço do gerenciador VM do Windows NT possibilitam ao chamador fornecer uma alça de processos para indicar um processo cuja memória virtual será manipulada. O chamador pode manipular sua própria memória virtual ou aquela de um outro processo. Esta facilidade é poderosa porque permite que um processo do modo usuário gerencie o espaço de endereçamento de um outro processo. Seções, visões e arquivos mapeados Assim como todos os outros componentes do Windows NT, o gerenciador VM é totalmente paralelo. Ele roda simultaneamente em todos os processadores de um computador multiprocessado e tem de compartilhar suas estruturas de dados com as linhas que estão sendo executadas em processadores diferentes. Memória compartilhada pode ser definida como a memória que é visível apartir de mais de um processo ou que está presente em mais de um espaço de endereçamento virtual. A abordagem do Windows NT ao compartilhamento de recursos é implementá-los como objetos protegidos e a memória não é nenhuma exceção. O objeto de seção representa um bloco de memória que dois ou mais processos podem compartilhar. Uma linha de um processo cria um objeto de seção e dá a ele um nome para que as linhas de outros processos possam abrir alças para ele.
4 Um objeto de seção do NT pode ser muito grande, ocupando dezenas ou até milhares de páginas, por isso um processo precisa mapear apenas as partes do objeto de seção que lhes são necessárias. O mapeamento de visões de uma seção permite a um processo acessar grandes blocos de memória que, caso contrário, ele poderia não ter espaço de endereçamento virtual para mapear. Da mesma forma que a memória privativa, o conteúdo da memória compartilhada é paginado para o disco quando a demanda de memória esta alta. O gerenciador VM também permite que os objetos de seção sejam paginados para um arquivo mapeado. O executivo do NT usa os arquivos mapeados para carregar imagens executáveis para a memória e o gerenciador de cache do sistema usa os arquivos mapeados para ler e gravar em páginas do cachê. Objeto de seção Os objetos de seções são alocados e desalocados pelo gerenciador de objetos. O gerenciador VM também implementa serviços que as linhas do modo usuário podem chamar para recuperar e alterar os atributos armazenados no corpo dos objetos de seção. Dois processos podem mapear partes do mesmo objeto de seção em seus espaços necessário que eles sincronizem seus acessos a memória para evitar alterações de dados ao mesmo tempo Protegendo a memória A proteção de memória no Windows NT é oferecida em quatro formas: 1. um espaço de endereçamento separado para cada processo. 2. dois modos de operação: modo kernel e modo usuário. 3. um mecanismo de proteção baseado em páginas. 4. proteção de memória baseado em objetos.
5 Memória privativa do processo Toda vez que uma linha usa um endereço, o gerenciador VM do executivo do NT, juntamente com o hardware, intervém e traduz o endereço virtual em endereço físico. O sistema de memória virtual através do controle da tradução dos endereços virtuais consegue garantir que as linhas de um processo não acessarão uma estrutura de página de memória que pertença a um outro processo. O gerenciador VM oferece as proteções de página somente leitura e leitura/gravação, e suplementa estas proteções de memória em alguns mecanismos próprios: * somente execução. * guardar página. * nenhum acesso. * cópia na gravação. Usando os serviços nativos de memória virtual, o subsistema de ambiente tem condições de controlar a proteção a nível de página virtuais. O controle da proteção a nível de páginas pode produzir programas mais confiáveis já que assegura que as linhas não gravarão em páginas designadas como somente para leitura. Bibliografia
6 Compiladores
7 Compiladores O que são compiladores? Os computadores são máquinas que entendem apenas comandos, dados e endereços escritos em linguagem binária (0 s e 1 s). Porém, desenvolver um programa complexo em linguagem de máquina é muito complicado e desgastante. Para resolver esse impasse, foram criadas as linguagens de programação, que permitem a criação de programas utilizando comandos mais fáceis e com funções já prontas. Os compiladores foram criados para que possamos fazer as programações em alguma das inúmeras linguagens de programação e os computadores recebam as informações em linguagem de máquina. Um compilador é um programa (ou um grupo de programas) que, a partir de um código fonte escrito na linguagem de programação, cria um programa equivalente escrito em uma outra linguagem, ou seja, traduz um programa descrito para um programa equivalente em código de máquina. Para que o compilador possa produzir um arquivo executável, é preciso que o código fonte seja escrito de acordo com as regras da linguagem de programação. Um compilador não reconhece programas escritos em uma linguagem de programação diferente da reconhecida por ele, mesmo que sejam parecidas. Características Gerais Normalmente, o código fonte é escrito em uma linguagem de programação de alto nível, com grande capacidade de abstração, e o código objeto é escrito em uma linguagem de baixo nível, como uma sequência de instruções a ser executada pelo processador. O processo de compilação é composto de análise e síntese. A análise tem como objetivo entender o código fonte e representá-lo em uma estrutura intermediária. A síntese constrói o código objeto a partir desta representação intermediária. A análise pode ser subdividida ainda em análise léxica, análise sintática e análise semântica. A síntese é mais variada, podendo ser composta pelas etapas de geração de código intermediário, otimização de código e geração de código final (ou código de máquina), e somente esta última etapa é obrigatória. Classicamente, um compilador traduz um programa de uma linguagem textual facilmente entendida por um ser humano para uma linguagem de máquina, específica para um processador e sistema operacional. Atualmente, porém, são comuns compiladores que geram código para uma máquina virtual que é, depois, interpretada por um interpretador.
8 Em linguagens híbridas, o compilador tem o papel de converter o código fonte em um código chamado de byte code, que é uma linguagem de baixo nível. Um exemplo deste comportamento é o do compilador da linguagem Java que, em vez de gerar código da máquina hospedeira (onde se está executando o compilador), gera código chamado Java Bytecode. Um compilador é chamado de Just-in-time compiler (JIT) quando seu processo de compilação acontece apenas quando o código é chamado. Normalmente, o usuário tem a percepção que um compilador JIT é um interpretador. Muitos compiladores incluem um pré-processador. Um pré-processador normalmente é responsável por mudanças no código fonte destinadas de acordo com decisões tomadas em tempo de compilação. Por exemplo, um programa em C permite instruções condicionais para o pré-processador que podem incluir ou não parte do código caso uma assertiva lógica seja verdadeira ou falsa, ou simplesmente um termo esteja definido ou não. Tecnicamente, préprocessadores são muito mais simples que compiladores e são vistos, pelos desenvolvedores, como programas à parte, apesar dessa visão não ser necessariamente compartilhada pelo usuário. E por último, outra parte separada do compilador que muitos usuários vêem como integrada é o linker, cuja função é unir vários programas já compilados de uma forma independente e unificá-los em um programa executável. Isso inclui colocar o programa final em um formato compatível com as necessidades do sistema operacional para carregá-lo em memória e colocá-lo em execução. Compilador Dev-C++ Disponível para download grátis no baixaki.
9 Exemplos de compiladores Existem diversos compiladores C / C++ disponíveis para os programadores. A decisão sobre qual compilador utilizar pode ser baseada em vários fatores: qualidade do compilador (é rápido; está conforme com a padronização da linguagem; a interface com o usuário é agradável - possui ou não um IDE (Integrated Development Enviroment); possui diversas opções de compilação etc.); sistema(s) operacional(is) que o compilador funciona (e gera códigos); custo do compilador; documentação disponível e suporte. Compilador GCC (GNU Compiler Collection) Este é o compilador da GNU (Free Software Foundation). É sem dúvida um "líder" no mercado de compiladores C atualmente, é o compilador padrão do sistema operacional GNU/Linux e também foi adotado por (ou portado para) vários outros sistemas operacionais (inclusive S.O.s comerciais pagos), tais como HP-UX, MS-Windows, MS-DOS, IBM OS2, IBM AIX, SUN OS, SUN Solaris etc. No GNU/Linux, este compilador é utilizado no desenvolvimento do próprio sistema operacional e de todas as ferramentas nele disponíveis (ou seja, é o compilador 'nativo' do Linux). Outro detalhe importante é que todas as distribuições Linux já vem com um compilador GCC disponível, ou seja, se você tem um computador com Linux instalado, você tem um compilador GCC pronto para ser utilizado. Compilador Dev-C++ Compilador Free Software (GPL), para Windows, com um IDE 'respeitável' (editor, compilador e debug integrados). Compilador C++ Builder - Borland Outro compilador C muito conhecido e utilizado é o da empresa Borland, certamente uma das empresas mais conhecidas na área de linguagens de programação (Delphi, Turbo Pacal, Turbo C, Kylix...).
10 Turbo C Borland Este é um dos compiladores C mais conhecidos (e antigos) na microinformática. Este compilador roda em "modo MS-DOS"... é muito simples mas funciona perfeitamente em muitas versões de Windows. Compilador Visual C# - Microsoft O compilador C da Microsoft é outro com muitos usuários, com desenvolvimento leve, simples e integrado. Bibliografia apostila de compiladores Introdução a Compilação. Maria G. V. Nunes, Alessandra A. Macedo, Daniel G. Dosualdo e Tatiana Barbosa; Analisadores léxicos e sintáticos
11 Processamento Batch
12 Introdução Processamento batch, no contexto de sistemas operacionais, é um termo referente a um processamento de dados que ocorre através de um lote de tarefas enfileiradas, de modo que o sistema operacional só processa a próxima tarefa após o término completo da tarefa anterior. É um modo de processamento de dados no qual os dados de entrada são coletados em grupos, ou lotes, e periodicamente processados em seqüência por um ou mais jobs. O processamento batch não permite a interação do usuário com o sistema durante a execução dos jobs. Sistemas Batch Os sistemas batch foram os primeiros tipos de sistemas operacionais multiprogramáveis a serem implementados na década de Os programas, também chamados de jobs, eram submetidos para execução através de cartões perfurados e armazenados em disco ou fita, onde aguardavam para ser processados. Posteriormente, em função da disponibilidade de espaço na memória principal, os jobs eram executados, produzindo uma saída em disco ou fita. O processamento batch tem a característica de não exigir a interação do usuário com a aplicação. Todas as entradas e saídas de dados da aplicação são implementadas por algum tipo de memória secundária, geralmente arquivos em disco. Alguns exemplos de aplicações originalmente processadas em batch são programas envolvendo cálculos numéricos, compilações, ordenações, backups e todos aqueles onde não é necessária a interação com o usuário. Esses sistemas, quando bem projetados, podem ser bastante eficientes, devido à melhor utilização do processador, entretanto, podem oferecer tempos de resposta longos. Atualmente, os sistemas operacionais implementam ou simulam o processamento batch, não existindo sistemas exclusivamente dedicados a este tipo de processamento. Figura 1: Sistema de Processamento Batch
13 Cada trabalho (job) podia corresponder a uma seqüência de passos (job steps). Cada passo poderia envolver a compilação de um programa numa linguagem (assembly ou FORTRAN) ou a execução de um programa já compilado. O utilizador era responsável por especificar a descrição de cada trabalho, com base numa linguagem de controle, devendo tipicamente codificar essa descrição sob a forma de cartões perfurados, editados numa máquina perfuradora de cartões. Assim, a descrição do trabalho pedido por cada utilizador constituía uma pilha de cartões, que eram depois entregues ao operador, responsável pela supervisão da execução dos trabalhos. Cartões especiais de controle indicavam, na descrição do trabalho, informações tais como 'início de cartões de um trabalho', 'compilador de FORTRAN', 'início de seqüência de cartões do programa utilizador', 'início de seqüência de cartões de dados para o trabalho', etc. O operador do sistema era responsável por escalonar a ordem segunda a qual os diversos trabalhos submetidos iriam ser executados. Uma vez decidida essa ordem, colocava as pilhas de cartões na 'calha' de leitura de um periférico de entrada: o leitor de cartões perfurados. Os cartões de cada trabalho iriam ser lidos para memória e interpretados por um programa que antes tinha sido carregado em memória (este programa era chamado monitor control program) e constituia o embrião dos atuais interpretadores de comandos do terminal (shell). Este sistema de processamento de trabalhos era estritamente seqüencial, isto é, cada trabalho era executado completamente, até terminar e passar o controle ao monitor de controle, para este processar o próximo trabalho do lote. Durante a execução, o programa era responsável também pelas operações de entrada (leitura de cartões de dados) e de saída (escrita dos resultados numa impressora). Uma evolução introduzida nos primeiros sistemas foi a de disponibilizar as rotinas de controlo das entradas e saídas, como rotinas auxiliares, que residiam em memória, de modo a poupar o trabalho e diminuir a probabilidade de ocorrência de erros do programador. Estas rotinas de entrada/saída, mais o interpretador de cartões de controle, formavam o que se designava por monitor de controle ou programa supervisor de trabalhos. Este programa residia numa zona de memória central. Figura 2: Ocupação de Memória
14 Estes sistemas não ofereciam qualquer mecanismo de proteção contra erros imprevistos dos programas utilizadores: se o programa gerasse endereços que referissem a zona de memória do monitor, poderia corromper o seu código ou dados; o programa de um utilizador, em situações de erro, podia começar a ler os cartões de entrada, do leitor de cartões, mas correspondentes aos utilizadores seguintes, no lote de trabalhos submetidos; se o programa tivesse um ciclo infinito, nunca terminaria e o controle nunca retornaria ao monitor de controle, ficando o sistema completamente bloqueado Para resolver os dois primeiros tipos de problemas, surgiram mecanismos de proteção, suportados pelo hardware dos próprios processadores (CPU). No registrador de flags de estado do processador passou a haver um bit adicional de controle, indicando o modo de operação corrente do processador. Se este bit indicar o modo supervisor ou protegido, então todas as ações são permitidas na execução das instruções da máquina, incluindo o acesso a toda a memória, sem restrições, o acesso aos registradores de controle do processador, incluindo os que controlam o acesso às tabelas de páginas ou de segmentos dos programas, bem como o acesso às interfaces dos periféricos e o controlo do mecanismo de interrupções. Tipicamente, os programas que constituem o sistema de operação, irão ser executados no modo supervisor. O sistema de operação, antes de passar o controle da execução para um programa utilizador, modifica o bit de modo para indicar o modo utilizador. Neste modo, o programa só pode gerar endereços que refiram as zonas de memória às quais lhe foi dado acesso, por exemplo, através da sua tabela de páginas (inicializada pelo SO). Qualquer referência de memória fora dessas zonas é detectada pelo hardware do processador, no processo de transformação do endereço virtual, o que, em modo utilizador, origina uma interrupção do programa, por violação de memória. O mesmo controle é exercido, de modo a impedir o programa em modo utilizador de aceder às portas de interface dos periféricos, executar instruções máquina de entrada e saída e efetuar ações de controle do processador, por exemplo, para o controle de interrupções.
15 Figura 3: Modos de Operação do Processador Como aquelas ações ficam proibidas e são impostas por hardware, os erros dos dois primeiros tipos podem ser controlados pelo SO. Se, em modo utilizador, o programa não pode executar instruções de entrada e saída, como é que comunica com o exterior, isto é, recebe dados e produz resultados, envolvendo os dispositivos periféricos, sejam de entrada, de saída ou de arquivo de ficheiros? A resposta é: fazendo pedidos ao SO, através da invocação de chamadas ao sistema. Conclusão O processamento batch costuma se mostrar mais eficiente nos casos de operações rotineiras de alto volume. Muitos jobs batch costumam ser rodados à noite, nos mainframes. Antes que as redes se tornassem economicamente viáveis, quase todo o processamento de dados empresarial e científico era feito em batch. Os jobs batch podem ser rodados por requisição específica ou dentro de um cronograma regular de produção, sendo essa última modalidade mais comum nas empresas. A freqüência em que os jobs regulares são executados (diária, semanal, mensal e assim por diante) é determinada pelas exigências da aplicação. Este tipo de arquivo pode ser muito perigoso, pois é capaz de danificar o sistema operacional sem o conhecimento do usuário, enchendo o disco rígido,
16 desconfigurando a inicialização do sistema, dentre outros males. Por isso, é recomendado executar jobs batch conhecidos. Bibliografia
17 Processamento Time-Sharing (Tempo Compartilhado)
18 Introdução As redes de computadores habilitam os computadores a comunicar-se diretamente, com o objetivo de trocar informações e serviços de uma forma mais prática e otimizada. Na medida em que os computadores variam em tipo e localidade, a tarefa de habilitar a interconexão pode tornar-se um tanto difícil. Computação Centralizada (time-sharing) Tempo compartilhado ou time sharing (em inglês) é um termo referente a sistemas operacionais, que surgiu durante a 3ª geração dos sistemas operacionais, atualmente em sua 4ª geração. Este conceito significa compartilhamento de tempo, ou seja, o tempo ocioso entre os processos é compartilhado com outros processos para dinamizar o sistema. Múltiplas tarefas são executados simultaneamente, sendo que a CPU atende cada tarefa por um determinado tempo, em sequência. Os tempos dedicados para cada tarefa são pequenos o suficiente para dar a ilusão de que as tarefas estão sendo executadas simultaneamente. É também um termo utilizado pelo mercado imobiliário para um imóvel vendido a mais de um proprietário, que compartilham o uso alternadamente durante o ano, comum em locais muito procurados para férias. Sistemas time-sharing são diferentes, esta técnica é utilizada para aplicações interativas a chave para se medir a eficiência de um sistema é o tempo de resposta. Como o tempo entre duas transações consecutivas é usualmente longo o espaço de memória pode ser gerenciado pela técnica do roll in/roll out Computação Centralizada (time-sharing). Roll In / Roll Out Na maioria dos sistemas de time-sharing as técnicas do roll in/ roll out são utilizadas para gerenciarem o espaço na memória principal. Vejamos uma aplicação típica de time-sharing. As transações (um comando, uma declaração de um programa) são digitadas em um teclado. Na maioria dos casos muito poucos processamento é exigido, a digitação é lenta. Desta maneira, quando uma transação é processada o sistema sabe que haverá um considerável intervalo de tempo até que chegue a próxima transação do mesmo usuário. Então a área de trabalho pode ser colocada em uma memória auxiliar (rolled-out) abrindo espaço
19 para outra aplicação na memória principal. Na próxima transação deste usuário seu espaço será novamente colocado na memória principal (rolled-in). Sistemas de time sharing Os sistemas operacionais multiprogramados apareceram numa época em que os usuários acessavam as máquinas através de "terminais burros" (sem capacidade de processamento local). Todo o processamento era feito num computador central, cujo tempo de processamento era então compartilhado pelos vários usuários. Os sistemas de tempo compartilhado (time-sharing) permitem que diversos programas sejam executados a partir da divisão do tempo do processador em pequenos intervalos, denominados fatia de tempo (time-slice). Caso a fatia de tempo não seja suficiente para a conclusão do programa, ele é interrompido pelo sistema operacional e substituído por um outro, enquanto fica aguardando por uma nova fatia de tempo. O sistema cria para cada usuário um ambiente de trabalho próprio, dando a impressão de que todo o sistema está dedicado exclusivamente a ele. Geralmente, sistemas de tempo compartilhado permitem a interação dos usuários com o sistema, através de terminais que incluem vídeo, teclado e mouse. Esses sistemas possuem uma linguagem de controle que permite ao usuário comunicar-se diretamente com o sistema operacional, através de comandos. Desta forma, é possível verificar arquivos armazenados em disco ou cancelar a execução de um programa. O sistema, normalmente, responde em poucos segundos à maioria desses comandos. Devido a esse tipo de interação, os sistemas de tempo compartilhado também ficaram conhecidos como sistemas on-line. A maioria das aplicações comerciais atualmente é processada em sistemas de tempo compartilhado, pois elas oferecem tempos de respostas razoáveis a seus usuários e custos mais baixos, em função da utilização compartilhada dos diversos recursos do sistema. Time-slicing Imagine que um usuário se encontre a 30 minutos digitando dados para um programa de análise estatística. Cada transação (digitação de dado) corresponde a uma típica aplicação de time-sharing. Apesar disto, ao final de seu trabalho de digitação, sua última transação é diferente. Ele solicitará o processamento dos dados que poderá levar alguns minutos e todos os outros usuários deveriam esperar este processamento terminar para voltarem a obter a atenção do processador novamente, e isto seria intolerável. A fim de evitar este tipo de problema utiliza-se a técnica do time-slicing onde cada programa tem o direito de utilizar-se do processador por um certo período de tempo máximo, por exemplo 0.1 segundo. Após o término deste período de tempo o próximo programa da fila recebe o controle, e assim sucessivamente. Um determinado programa só perderá o controle e entrará em regime de espera antes do seu tempo terminar se ele solicitar uma E/S.
20 Bibliografia
21 Processamento On-line
22 Processamento On-line O processamento de dados online fornece cômputos interativos. Sempre que os dados de entrada ou transações como ele introduz o sistema sejam processados imediatamente. Não há nenhuma provisão para esperar por alguns outros dados para entrar ou reunir dados durante o período do tempo e submeter-se de uma vez em caso do Processamento de Lote. os computadores online processam cada transação sobre a recepção e os resultados do processamento de dados podem ser imediatamente informados ao usuário do sistema. Os exemplos de sistemas de processamento de dados online incluem: Reserva de companhia aérea, reserva de Ônibus, reserva Ferroviária. Os passageiros que fazem reserva gostariam de saber imediatamente se o assento é disponível ou não. Como o balcão de reserva de ônibus online computadorizado aceita dos passageiros os dados da viagem, o tempo de viagem, número de ônibus, número de via, distinção, classe da viagem, número de assentos necessitados etc. Estes dados são processados imediatamente para informar os passageiros sobre a posição de disponibilidade dos assentos de reserva do ônibus especificado e o número de via, em passageiros é disposto agora a reservar os assentos, dados online que processam sistema de computador que trata reservas, confirmar os assentos reservados do passageiro reduzindo o número total de assentos disponíveis naquele ônibus pelo número solicitado de assentos. Lá pelo processamento online fornece a interação, uma espécie de gerência automática quanto a continuam seguindo a pista dos assentos disponíveis reais e inquirição online sobre a posição de reserva. ATMs Computadorizado (Máquinas de Contador Automáticas) no banco permite aos portadores de contas desenhar o dinheiro necessitado.
23 Referências Bibliográficas robson.fjaunet.com.br/fundacao/delphi/pdf/aula_04_delphi.pdf
24 Processamento Real-Time (Tempo Real)
25 Processamento real time Em um processamento em tempo real, há uma entrada contínua, processo e saída de dados. Os dados precisam ser transformados em um pequeno período de tempo estipulado (real time), caso contrário ele irá criar problemas para o sistema. Por exemplo: montagem de robôs em linha e sistema de radar. O que é o Real-Time? Considere um sistema de software em que os insumos representam dados digitais de hardware como dispositivos de imagem ou outro sistema de software e as saídas são dados digitais que o hardware de controle externo, como displays. O tempo entre a apresentação de um conjunto ofinputs e a aparência de todos as saídas associadas é chamado de tempo de resposta. Um sistema em tempo real é aquele que deve satisfazer explícitas limitações de tempo limitado de resposta para evitar falha. Equivalentemente, um sistema em tempo real é uma correção, cuja lógica é baseado tanto na exatidão dos resultados e a sua atualidade. Observe que tempos de resposta, por exemplo, microssegundos não são necessários para caracterizar um sistema em tempo real - ele simplesmente deve ter tempos de resposta que são restritas e, portanto, previsível. Na verdade, o equívoco de que os sistemas em tempo real deve ser "rápido" é porque na maioria dos casos, os prazos são da ordem de microssegundos. Mas as restrições de prazos ou prazos são geralmente uma reflexo do processo físico subjacente está sendo controlado. Por exemplo, em processamento de imagens envolvendo atualização de tela para visualização de movimento contínuo, os prazos são da ordem de 30 microssegundos. A principal diferença entre tempo real e não sistemas de tempo real é uma ênfase na previsão de tempo de resposta e sua redução. Percebe-se que cada sistema pode ser feita de conformidade com a definição em tempo real simplesmente ser o estabelecimento de prazos (arbitrária ou não). Por exemplo, um tempo de um algoritmo de filtragem de imagens para imagens médicas, que não pode ser considerado como tempo-real, realmente é em tempo real se o procedimento está relacionado com a anillness em que o diagnóstico e tratamento têm algum realista prazo. Como todos os sistemas podem ser feitos para olhar como se fossem em tempo real, nós refinamos a definição tanto em termos de tolerância do sistema para não atendidos prazos. Por exemplo, sistemas tempo real, são aqueles onde a falha para atender até mesmo um prazo resulta em falha total do sistema. Na empresa em tempo real sistemas de número pequeno com prazos fixos podem ser perdidos sem total falha do sistema. Finalmente, em suaves prazos de sistemas em tempo real leva em falta para a degradação do desempenho, mas não fracassam. Salvo disposição em contrário, quando dizemos "tempo real" ao longo deste tutorial, vamos dizer rígido em tempo real. Outro equívoco comum é que o estudo do processamento em tempo real não é realmente um problema de hardware, porque é sempre mais rápido. Jogando hardware mais rápido nos prazos problemas podem ser sempre respeitados.
26 Além disso, o hardware mais rápido é sempre disponível ou adequado para determinados aplicações. Alguns acham que o desempenho em tempo real é fácil de conseguir. E nem sempre é assim, principalmente porque a maioria dos hardwares e linguagens de programação não são adequados para as demandas em tempo real. Características de Sistemas em Tempo Real Real-Time Systems são freqüentemente reativos e / ou sistemas embarcados. Reactive sistemas são aqueles em que a funcionalidade é impulsionada pela contínua, esporádica interação com o meio ambiente, como na realidade virtual. Embedded sistemas geralmente não têm uma interface de sistema operacional generalizado e são utilizados explicitamente para controlar dispositivos de hardware especializados. Por exemplo, sistemas de imagem muitos que residem em plataformas de hardware especiais, como realidade virtual, multimídia e imagens médicas, são incorporadas. Um conceito importante em sistemas de tempo real é a noção de um evento, isto é, qualquer ocorrência que resulta em uma mudança no fluxo seqüencial de execução do programa. Os eventos podem ser divididos em duas categorias: síncrono e assíncronas. Acontecimentos síncronos são aqueles que ocorrem na previsível vezes como a execução de uma instrução de ramificação condicional ou armadilha de hardware. Eventos assíncronos ocorrem em pontos imprevisíveis no fluxo de controle e são geralmente causadas por fontes externas, como um sinal de relógio. Ambos os tipos de eventos pode ser um sinal para o processador de sinais de hardware. Real-Time Design Issues Por que estudar sistemas em tempo real? A concepção e implementação de tempo real sistemas requer a consideração cuidadosa de uma variedade de questões. Entre as tarefas atribuídas ao projetista do sistema em tempo real são: 1. Seleção de hardware e software necessário a combinação adequada para uma solução de custo eficaz. 2. A decisão de tirar vantagem de uma operação comercial tempo real sistema ou de conceber um sistema operacional especial.
27 3. Predição e medição de utilização da CPU e conseguir um seguro mas o nível eficiente de utilização. 4. Seleção de um idioma do software apropriado para o desenvolvimento do sistema. 5. Maximizando a tolerância a falhas e confiabilidade do sistema através de uma cuidadosa assinar e testes rigorosos. Ambientes de computação distribuídos estão a evoluir no sentido de sistemas em tempo real. Por exemplo, os avanços na comunicação digital redes e estações de trabalho no computador pessoal estão a começar a permitir que a geração, comunicação e apresentação de voz em tempo real e mídia de vídeo simultaneamente. Muitos não-sistemas em tempo real têm sido estripado para estender seu uso para processamento em tempo real. Este tendência exige distribuição e real funcionalidade de controle de tempo para serem elementos intrínsecos do sistema. Existe uma grande demanda para oferecer real funcionalidades do tempo como serviços do sistema normal, ao invés de adicionar em especial recursos. Exemplo de utilização do processamento real time. A Análise Inteligente de Vídeo (IVA) da Bosch Auxilia os operadores a manterem a atenção, introduzindo um novo nível de automação no controle de CFTV. Baseado em ilustrações virtuais (metadados), o processamento em tempo real identifica as condições de alerta, fornecendo as informações necessárias à equipe de segurança para a tomada de ações preventivas ou ações em situações de emergências.
28 Bibliografia
29 Multiprocessamento
30 Multiprocessamento São cada vez mais comuns os sistemas computacionais que contam com mais de um processador, em comunicação ativa, compartilhando barramento, clock e até mesmo memória e dispositivos periféricos. São denominados como sistemas multiprocessador. Multiprocessamento é a capacidade de um sistema operacional executar simultaneamente dois ou mais processos. Pressupõe a existência de dois ou mais processadores. Difere da multitarefa, pois esta simula a simultaneidade, utilizando-se de vários recursos, sendo o principal o compartilhamento de tempo de uso do processador entre vários processos. Diferenças entre Multiprocessamento e Multitarefa Multitarefa é referente a software, mais precisamente a Sistema Operacional. Um SO multitarefa é um SO que consegue realizar diversas tarefas em paralelo, ou seja, você pode digitar no Word, enquanto escuta música no Musicmatch e baixa um vídeo. Logo o Windows é um sistema multitarefas, pois ele consegue organizar mais de uma tarefa por vez. Ao contrário do antigo MS-DOS, onde não se conseguia nem sequer abrir dois textos simultaneamente. Multiprocessamento é referente a hardware, mais precisamente a processadores. Nada mais é do que executar mais de um processo por vez. Quando o SO vai realizar uma tarefa ele cria um Processo para esta tarefa (que você pode visualizar no Gerenciador de Dispositivos do Windows) e envia ao processador. Na verdade, o multiprocessamento só ocorre se houver mais de um processador no micro, pois mesmo com as Máquinas Virtuais, o que ocorre é uma ilusão de multiprocessos, pois na parte física um único processador só pode executar um processo por vez. Características de um multiprocessamento Um multiprocessador ou sistema multiprocessado é um sistema integrado de computação com as seguintes características: Envolve dois ou mais processadores físicos (sejam processadores separados ou múltiplos núcleos encapsulados no mesmo chip) ou lógicos (processador(es) com a tecnologia HyperThreading da Intel) com o mesmo poder computacional e cada um capaz de executar processos autonomamente. Isto implica que não há
31 nenhuma unidade central de controle; cada processador contém sua própria unidade de controle. Assim, efetivamente, a lógica de controle é distribuida pelo sistema. Os processadores compartilham um único espaço de endereçamento de memória. O sistema de hardware é como um todo gerenciado por um único sistema operacional. O sistema operacional com suporte a multiprocessamento deve ser capaz de suportar multitarefa e manter múltiplas filas de processos, uma para cada processador. Benefícios de um multiprocessamento Estes sistemas geram economia pelo compartilhamento de periféricos, memória primária e secundária e fontes de alimentação. São convenientes, pois possibilitam armazenamento mais centralizado de dados. Além de fornecer maior disponibilidade que é a probabilidade de um sistema estar operando corretamente e disponível para uso em um dado instante de tempo, mesmo na ocorrência de falhas, defeitos físicos ou imperfeições que ocorram em algum componente de hardware ou de software em um dado sistema. Outro benefício é a confiabilidade. A falha de um processador irá diminuir a eficiência do sistema, mas não o interromperá. Esta capacidade é conhecida como degradação normal e os sistemas que a implementam são conhecidos por ser tolerantes a falhas. A operação contínua na presença de falhas requer mecanismos que detectem, façam o diagnóstico e correção das falhas. Arquitetura São comuns os sistemas multiprocessadores utilizarem multiprocessamento simétrico ou SMP (de Symmetric MultiProcessing). Nele, os processadores compartilham a mesma memória, embora possam ter caches separadas. O sistema operacional deve estar preparado para trabalhar com coerência de caches e, principalmente, evitar condições de corrida na memória principal. No SMP, cada processador executa uma cópia idêntica do sistema operacional, que se comunicam entre si como for necessário e tem tempo uniforme de acesso à memória. Também é possível a arquitetura NUMA (Non-Uniform Memory Access), onde o tempo de acesso à memória varia em função da localização física dos processadores em relação à da memória.
32 Como o acesso à memória não é uniforme, cada processador é associado um banco de memória. Nesse caso, o sistema operacional trata cada banco separadamente, pois cada banco tem um custo de acesso diferente, dependendo de qual o processador a que está associado e onde está sendo executado o processo que tenta acessar a memória. Outra forma de trabalho é a de multiprocessamento assimétrico, na qual cada processador recebe uma tarefa específica. Um processador mestre controla o sistema e os outros (escravos) recebem instruções dele. A distinção pode ser implementada em hardware ou software. Com o barateamento dos processadores, mais responsabilidades podem ser atribuídas aos processadores escravos de um sistema com multiprocessamento assimétrico. Por exemplo, um processador escravo com sua própria memória pode gerenciar um sistema de disco (até implementando seus próprios algoritmos de escalonamento e filas de disco) ou controlar interfaces gráficas. É também comum que esta arquitetura não seja mais considerada como multiprocessamento real. Exemplos de Multiprocessamento Placas mãe com dois ou mais processadores são normalmente usadas em servidores e estações de trabalho de alto desempenho. Usam processadores como o XEON e o Itanium (Intel) e o Opteron (AMD). O que os novos processadores duais têm de interessante é o fato de trazerem o multiprocessamento para os micros convencionais (desktop) e e para os notebooks. Certos sistemas operacionais já oferecem suporte a múltiplos processadores há bastante tempo. Citamos o Windows NT, Windows 2000, Windows XP Professional, Windows 2003, Windows Vista e a maioria das implementações do Linux. Antes de existirem processadores com mais de um núcleo, a única forma de ter processamento dual era usando placas mãe com soquetes para vários processadores. Essas placas são comuns em servidores, há bastante tempo. A Figura 1 mostra uma placa mãe com soquetes para dois processadores Intel Xeon, para uso em servidores. O multiprocessamento (uso de mais de um processador) existe em servidores desde meados dos anos 90, com processadores como o Pentium Pro, Pentium II Xeon e Pentium III Xeon, mas sempre com placas mãe para 2 ou 4 processadores. E para que é preciso usar multiprocessamento nos micros mais simples? Todos os que acompanham a evolução recente dos processadores estão a par das dificuldades dos fabricantes em produzirem modelos com clocks mais elevados. A Intel atingiu a marca de 3 GHz no final de 2002, e no início de 2007 ainda estava em 3,8 GHz. É uma contradição à Lei de Moore, que afirma empiricamente que os
33 processadores tendem a dobrar de desempenho a cada 18 meses. Se aumentar o clock é difícil, por limitações tecnológicas, é menos difícil usar dois processadores iguais e de menor velocidade, aumentando bastante a velocidade de processamento. Figura 1: Placa mãe para dois processadores Intel Xeon. Multiprocessamento simétrico O multiprocessamento simétrico ou SMP (Symmetric Multi-Processing) é uma tecnologia que permite a um determinado sistema operacional distribuir tarefas entre dois ou mais processadores. Este método, mais especificamente, permite que vários processadores partilhem o processamento de instruções requisitadas pelo sistema. O multiprocessamento simétrico oferece um aumento linear na capacidade de processamento a cada processador adicionado. Não há necessariamente um hardware que controle este recurso, cabe ao próprio sistema operacional suportá-lo. Este método também é chamado de "processamento paralelo". Funcionamento Os processadores trabalham em conjunto compartilhando os recursos de hardware, geralmente são processadores iguais, similares ou com capacidades parecidas. Todos têm os mesmos privilégios de acesso ao hardware, ao contrário do que acontece em sistemas multiprocessados assimétricos, onde um processador é encarregado de gerenciar e coordenar as tarefas e ações dos demais, o que pode proporcionar melhor controle sobre a sobrecarga ou a ociosidade dos processadores subordinados. Por tratar todos os processadores de forma igualitária, no
34 multiprocessamento simétrico, qualquer processador pode assumir as tarefas realizadas por qualquer outro processador, as tarefas são divididas e também podem ser executadas de modo concorrente em qualquer processador que esteja disponível. Os acessos dos processadores aos dispositivos de entrada e saída e a memória são feitos por um mecanismo de intercomunicação constituído por um barramento único. A memória principal da máquina é compartilhada por todos os processadores através de um único barramento que os interliga, de modo que esse acesso a memória é nativo, não existe a necessidade de um mascaramento da memória real em nível de aplicação. Por todo acesso à memória principal ser realizado através de um único barramento, aqui temos um ponto de gargalo do sistema, pois o acesso é serial, ou seja, o sistema fica limitado a passagem de apenas uma instrução de cada vez pelo barramento, abrindo uma lacuna de tempo entre uma instrução e outra. Memórias caches junto aos processadores diminuem o tempo de latência entre um acesso e outro à memória principal e ajudam também a diminuir o tráfego no barramento. Como estamos falando em mais de um processador, cada um com sua memória cache é imprescindível garantir que os processadores sempre acessem a cópia mais recente da memória cache, isso se chama coerência de cache geralmente implementada diretamente por hardware. Um dos métodos de coerência de cache mais conhecido é o snooping, quando um dado compartilhado nas caches dos processadores é alterado, todas as cópias das caches são consideradas inválidas e logo após atualizadas mantendo assim a integridade do dado. Gerenciamento O sistema operacional é quem se encarrega de realizar a interação entre os processadores e as aplicações do sistema. Deixando a existência de múltiplos processadores transparente para os usuários, pois o próprio sincroniza os processos com os processadores. Mesmo as arquiteturas de SMP já existirem há muitos anos no mercado, até pouco tempo os sistemas não tinham uma padronização para as funções básicas de operação, cada sistema implementava suas próprias funções. O que tornava impossível que os sistemas operacionais fossem portáveis. Apartir dessa necessidade foi criada a MPS (Específicações da Intel para Multiprocessadores ou do inglês - Intel's Multiprocessor Specification), com o objetivo de padronizar o desenvolvimento de SOs que suportassem essas arquiteturas. A criação da MPS fez com que a Intel saísse na frente no desenvolvimento da tecnologia multicore. Vantagens Sistemas de multiprocessamento simétrico são considerados mais poderosos em relação aos de multiprocessamento assimétricos, abaixo alguns descritivos de comparação entre eles.
35 No multiprocesasmento simétrico muitos processos podem ser executados ao mesmo tempo sem queda no desempenho, pois o sistema operacional delega as instruções a cada processador; Se um processador falhar o sistema não tranca pois qualquer outro processador pode assumir as tarefas daquele que falhou, já no assimétrico por exemplo, se o processador mestre falhar o sistema trava; No SMP o usuário pode melhorar o desempenho da máquina simplesmente adicionando um processador. Tecnologias Antigamente para utilizar SMP era necessário hardware específico, placas-mãe com dois ou mais soquetes de CPU, grandes estruturas de servidores clusterizados. Hoje em dia com a tecnologia multi-core, as fabricantes já integram tudo isso em apenas um dispositivo físico, também conhecidos como processadores multi-core. Alguns exemplos de processadores multi-core: Intel Xeon; Intel Pentium D; Core Duo e Core 2 Duo; Intel Itanium; AMD Athlon 64 ou X2; Opteron 200 e 2000 processadores da série; UltraSPARC da Sun Microsystems; Fujitsu SPARC64 III; Hewlett Packard PA-RISC; IBM POWER; PowerPC Apple Computer(G4 e séries G5) Bibliografia
36 Teleprocessamento
37 Teleprocessamento Os primeiros sistemas de comunicações de dados remontam à metade dos anos 60. Os sistemas de comunicações de dados rudimentares eram conhecidos como sistemas de teleprocessamento. Os primeiros sistemas de teleprocessamento eram constituídos de terminais conectados a um computador central por meio de linhas de comunicações. O processamento dos dados enviados pelos terminais era realizado remotamente pelo computador central e os resultados processados, distribuídos posteriormente para os terminais. Em sistemas de teleprocessamento mais modernos, o processamento dos dados passou a ser realizado de forma distribuída (não mais centralizada em um único computador). Maior sistema de teleprocessamento existente: Denominação: Descrição: Projeto SETI - Search for Extraterrestrial Intelligence. Rede de PCs ao redor do mundo destinada a analisar e processar sinais provenientes do espaço, captados por rádio-telescópios.
38 Objetivo: Integrantes: Captar sinais que possam constituir comunicação inteligente, originada de fora da Terra. Qualquer indivíduo ou entidade pode integrar esta rede, disponibilizando seu PC como um terminal de processamento remoto gerenciado pelo projeto SETI. O processamento busca estabelecer a existência de algum processo subjacente responsável pela geração dos sinais analisados. Definição de Teleprocessamento Técnica em que os dispositivos de entrada/saída de dados, por estarem afastados do centro de processamento, utilizam os recursos de telecomunicações para que o sinal (dados) seja transferido entre os pontos distantes, promovendo, à distância, o processamento dos dados. Aglutina tecnologias de telecomunicações + processamento. Inicialmente Denominação proprietária da IBM. Hoje Denominação de domínio público. Definição de Comunicação de Dados Conceito mais abrangente do que Teleprocessamento. Significa: técnica de transferência confiável da informação contida no sinal (dados) entre pontos distantes. Inclui, além das funções de transmissão, funções adicionais como: detecção e correção de erros, protocolos, etc.
39 Bibliografia teleprocessamento-e-redes/
40 Linguagem de Programação de Robôs
41 Linguagem de programação de robôs A concepção de um robô envolve a criação de um conjunto de algoritmos, permitindo cada um deles realizar uma função específica. A dinâmica, o controlo, o planejamento de trajetória, a utilização de sensores são algumas das funções que estes algoritmos implementam. Este conjunto de algoritmos utilizados para completar as tarefas estão normalmente incluídos em módulos de software. No entanto, existem diversas formas de comunicar com o robô, sendo importante destacar três delas: reconhecimento de palavras, a estratégia "teach and playback" e as linguagens de alto nível. Será essencialmente sobre estas últimas que o nosso estudo recairá. Os sistemas de reconhecimento de palavras encontram-se ainda num estado primitivo e dependentes do orador. Estes sistemas podem reconhecer um conjunto de palavras discretas de entre um vocabulário bastante restrito sendo, na maioria dos casos, necessário que o orador efetue pausas entre palavras. A segunda estratégia referida anteriormente é muito comum nos robôs industriais dos dias de hoje. Este método envolve o ensino ao robôs dos movimentos que o utilizador pretende que ele realize e caracteriza-se essencialmente por três fases. Numa primeira fase, o utilizador guia o robôs usando os comandos manuais por todos as fases que constituem a tarefa a realizar registrando todos os ângulos e localizações dos braços do robô e do próprio robô por forma a poder repetir o processo. Numa segunda fase será necessário editar, inserir e recapitular os movimentos ensinados ao robô. Finalmente, se os movimentos estiverem corretos é possível passar para a utilização prática do robô. Em caso contrário será necessário repetir todo o processo.
Sistema Operacional Correção - Exercício de Revisão
Prof. Kleber Rovai 1º TSI 22/03/2012 Sistema Operacional Correção - Exercício de Revisão 1. Como seria utilizar um computador sem um sistema operacional? Quais são suas duas principais funções? Não funcionaria.
Leia maisEverson Scherrer Borges João Paulo de Brito Gonçalves
Everson Scherrer Borges João Paulo de Brito Gonçalves 1 Tipos de Sistemas Operacionais Os tipos de sistemas operacionais e sua evolução estão relacionados diretamente com a evolução do hardware e das
Leia maisSistemas Operacionais Introdução. Professora: Michelle Nery
Sistemas Operacionais Introdução Professora: Michelle Nery Área de Atuação do Sistema Operacional Composto de dois ou mais níveis: Tipo de Sistemas Operacionais Sistemas Operacionais Monotarefas Sistemas
Leia maisSistemas Operacionais. Prof. André Y. Kusumoto andrekusumoto.unip@gmail.com
Sistemas Operacionais Prof. André Y. Kusumoto andrekusumoto.unip@gmail.com Introdução Um sistema operacional é um programa que atua como intermediário entre o usuário e o hardware de um computador. O propósito
Leia maisSISTEMAS OPERACIONAIS CAPÍTULO 3 CONCORRÊNCIA
SISTEMAS OPERACIONAIS CAPÍTULO 3 CONCORRÊNCIA 1. INTRODUÇÃO O conceito de concorrência é o princípio básico para o projeto e a implementação dos sistemas operacionais multiprogramáveis. O sistemas multiprogramáveis
Leia maisSistemas Operacionais
Sistemas Operacionais O que se espera de um sistema de computação? Execução de programas de usuários Permitir a solução de problemas Sistema Operacional (SO) é um programa colocado entre o hardware do
Leia maisSistemas Operacionais
Sistemas Operacionais Aula 03 Tipos de Sistemas Operacionais Maxwell Anderson Prof. Maxwell Anderson www.maxwellanderson.com.br Tipos de Sistemas Operacionais Os tipos de sistemas operacionais e a sua
Leia maisBACHARELADO EM SISTEMAS DE INFORMAÇÃO EaD UAB/UFSCar Sistemas de Informação - prof. Dr. Hélio Crestana Guardia
O Sistema Operacional que você usa é multitasking? Por multitasking, entende-se a capacidade do SO de ter mais de um processos em execução ao mesmo tempo. É claro que, num dado instante, o número de processos
Leia maisSistemas Operacionais
Sistemas Operacionais Aula 6 Estrutura de Sistemas Operacionais Prof.: Edilberto M. Silva http://www.edilms.eti.br Baseado no material disponibilizado por: SO - Prof. Edilberto Silva Prof. José Juan Espantoso
Leia maisArquitetura de Computadores. Introdução aos Sistemas Operacionais
Arquitetura de Computadores Introdução aos Sistemas Operacionais O que é um Sistema Operacional? Programa que atua como um intermediário entre um usuário do computador ou um programa e o hardware. Os 4
Leia maisSistemas Operacionais. INTRODUÇÃO Prof. Rafael Alberto Vital Pinto FACSUL/CESUR
Sistemas Operacionais INTRODUÇÃO Prof. Rafael Alberto Vital Pinto FACSUL/CESUR 1 Introdução O que se espera de um sistema de computação? Execução de programas de usuários Permitir a solução de problemas
Leia mais1.2 Tipos de Sistemas Operacionais
1.2 Tipos de Operacionais Tipos de Operacionais Monoprogramáveis/ Monotarefa Multiprogramáveis/ Multitarefa Com Múltiplos Processadores 1.2.1 Monoprogramáveis/Monotarefa Os primeiros sistemas operacionais
Leia maisIFPE. Disciplina: Sistemas Operacionais. Prof. Anderson Luiz Moreira
IFPE Disciplina: Sistemas Operacionais Prof. Anderson Luiz Moreira SERVIÇOS OFERECIDOS PELOS SOS 1 Introdução O SO é formado por um conjunto de rotinas (procedimentos) que oferecem serviços aos usuários
Leia maisIntrodução aos Sistemas
Introdução Introdução aos Sistemas Operacionais 1 2 3... n Ambientes Operacionais Prof. Simão Sirineo Toscani stoscani@inf.pucrs.br www.inf.pucrs.br/~stoscani Compilador Editor de texto Browser Programas
Leia maisHardware (Nível 0) Organização. Interface de Máquina (IM) Interface Interna de Microprogramação (IIMP)
Hardware (Nível 0) Organização O AS/400 isola os usuários das características do hardware através de uma arquitetura de camadas. Vários modelos da família AS/400 de computadores de médio porte estão disponíveis,
Leia maisSistemas Operacionais 2014 Introdução. Alexandre Augusto Giron alexandre.a.giron@gmail.com
Sistemas Operacionais 2014 Introdução Alexandre Augusto Giron alexandre.a.giron@gmail.com Roteiro Sistemas Operacionais Histórico Estrutura de SO Principais Funções do SO Interrupções Chamadas de Sistema
Leia maisProf. Marcos Ribeiro Quinet de Andrade Universidade Federal Fluminense - UFF Pólo Universitário de Rio das Ostras - PURO
Conceitos básicos e serviços do Sistema Operacional Prof. Marcos Ribeiro Quinet de Andrade Universidade Federal Fluminense - UFF Pólo Universitário de Rio das Ostras - PURO Tipos de serviço do S.O. O S.O.
Leia maisTipos de sistemas operacionais
Tipos de sistemas operacionais Sistemas Operacionais de Computadores de Grande Porte Sistemas Operacionais para Servidores Sistemas Operacionais de Multiprocessadores Sistemas Operacionais para Computadores
Leia mais4 Estrutura do Sistema Operacional. 4.1 - Kernel
1 4 Estrutura do Sistema Operacional 4.1 - Kernel O kernel é o núcleo do sistema operacional, sendo responsável direto por controlar tudo ao seu redor. Desde os dispositivos usuais, como unidades de disco,
Leia maisSistemas Operacionais
Sistemas Operacionais Gerência de processos Controle e descrição de processos Edson Moreno edson.moreno@pucrs.br http://www.inf.pucrs.br/~emoreno Sumário Representação e controle de processos pelo SO Estrutura
Leia maisSistemas Operacionais
Sistemas Operacionais Aula 4 Tipos de SO Prof.: Edilberto M. Silva http://www.edilms.eti.br SO - Prof. Edilberto Silva Os Sistemas Operacionais podem ser assim classificados: SO - Prof. Edilberto Silva
Leia maisProcessos e Threads (partes I e II)
Processos e Threads (partes I e II) 1) O que é um processo? É qualquer aplicação executada no processador. Exe: Bloco de notas, ler um dado de um disco, mostrar um texto na tela. Um processo é um programa
Leia maisSISTEMAS OPERACIONAIS. Apostila 01 Assunto: Tipos de Sistemas Operacionais UNIBAN
SISTEMAS OPERACIONAIS Apostila 01 Assunto: Tipos de Sistemas Operacionais UNIBAN 2.0 - INTRODUÇÃO Os tipos de sistemas operacionais e sua evolução estão intimamente relacionados com a evolução do hardware
Leia mais1º Estudo Dirigido. Capítulo 1 Introdução aos Sistemas Operacionais
1º Estudo Dirigido Capítulo 1 Introdução aos Sistemas Operacionais 1. Defina um sistema operacional de uma forma conceitual correta, através de suas palavras. R: Sistemas Operacionais são programas de
Leia maisCapacidade = 512 x 300 x 20000 x 2 x 5 = 30.720.000.000 30,72 GB
Calculando a capacidade de disco: Capacidade = (# bytes/setor) x (méd. # setores/trilha) x (# trilhas/superfície) x (# superfícies/prato) x (# pratos/disco) Exemplo 01: 512 bytes/setor 300 setores/trilha
Leia maisSistemas Operacionais. Prof. André Y. Kusumoto andrekusumoto.unip@gmail.com
Sistemas Operacionais Prof. André Y. Kusumoto andrekusumoto.unip@gmail.com Estruturas de Sistemas de Computação O sistema operacional precisa garantir a operação correta do sistema de computação. Operação
Leia mais7 Processos. 7.1 Introdução
1 7 Processos 7.1 Introdução O conceito de processo é a base para a implementação de um sistema multiprogramável. O processador é projetado apenas para executar instruções, não se importando com qual programa
Leia maisSistemas Operacionais Gerência de Dispositivos
Universidade Estadual de Mato Grosso do Sul UEMS Curso de Licenciatura em Computação Sistemas Operacionais Gerência de Dispositivos Prof. José Gonçalves Dias Neto profneto_ti@hotmail.com Introdução A gerência
Leia mais11/3/2009. Software. Sistemas de Informação. Software. Software. A Construção de um programa de computador. A Construção de um programa de computador
Sistemas de Informação Prof. Anderson D. Moura Um programa de computador é composto por uma seqüência de instruções, que é interpretada e executada por um processador ou por uma máquina virtual. Em um
Leia maisSistemas Operacionais
Andrique Amorim www.andrix.com.br professor@andrix.com.br Classificação dos Sistemas Operacionais Classificação Os sistemas operacionais podem ser classificados segundo diversos parâmetros e perspectivas.
Leia maisSISTEMAS OPERACIONAIS
SISTEMAS OPERACIONAIS Tópico 4 Estrutura do Sistema Operacional Prof. Rafael Gross prof.rafaelgross@fatec.sp.gov.br FUNÇÕES DO NUCLEO As principais funções do núcleo encontradas na maioria dos sistemas
Leia maisMultiplexador. Permitem que vários equipamentos compartilhem um único canal de comunicação
Multiplexadores Permitem que vários equipamentos compartilhem um único canal de comunicação Transmissor 1 Receptor 1 Transmissor 2 Multiplexador Multiplexador Receptor 2 Transmissor 3 Receptor 3 Economia
Leia maisESTUDO DE CASO WINDOWS VISTA
ESTUDO DE CASO WINDOWS VISTA História Os sistemas operacionais da Microsoft para PCs desktop e portáteis e para servidores podem ser divididos em 3 famílias: MS-DOS Windows baseado em MS-DOS Windows baseado
Leia maisUnidade 13: Paralelismo:
Arquitetura e Organização de Computadores 1 Unidade 13: Paralelismo: SMP e Processamento Vetorial Prof. Daniel Caetano Objetivo: Apresentar os conceitos fundamentais da arquitetura SMP e alguns detalhes
Leia maisNotas da Aula 15 - Fundamentos de Sistemas Operacionais
Notas da Aula 15 - Fundamentos de Sistemas Operacionais 1. Software de Entrada e Saída: Visão Geral Uma das tarefas do Sistema Operacional é simplificar o acesso aos dispositivos de hardware pelos processos
Leia mais1. CAPÍTULO COMPUTADORES
1. CAPÍTULO COMPUTADORES 1.1. Computadores Denomina-se computador uma máquina capaz de executar variados tipos de tratamento automático de informações ou processamento de dados. Os primeiros eram capazes
Leia maisSistemas Operacionais. Prof. M.Sc. Sérgio Teixeira. Aula 02 - Estrutura dos Sistemas Operacionais. Cursos de Computação
Cursos de Computação Sistemas Operacionais Prof. M.Sc. Sérgio Teixeira Aula 02 - Estrutura dos Sistemas Operacionais Referência: MACHADO, F.B. ; MAIA, L.P. Arquitetura de Sistemas Operacionais. 4.ed. LTC,
Leia maisSistemas Operacionais. Prof. M.Sc. Sérgio Teixeira. Aula 04 - Concorrência. Cursos de Computação
Cursos de Computação Sistemas Operacionais Prof. M.Sc. Sérgio Teixeira Aula 04 - Concorrência Referência: MACHADO, F.B. ; MAIA, L.P. Arquitetura de Sistemas Operacionais. 4.ed. LTC, 2007. Mono x Multiprogramação
Leia maisProfs. Deja e Andrei
Disciplina Sistemas Distribuídos e de Tempo Real Profs. Deja e Andrei Sistemas Distribuídos 1 Conceitos e Projetos de Sistemas Distribuídos Objetivos: Apresentar uma visão geral de processamento distribuído,
Leia maisProf.: Roberto Franciscatto. Capítulo 1.2 Aspectos Gerais
Sistemas Operacionais Prof.: Roberto Franciscatto Capítulo 1.2 Aspectos Gerais Estrutura do Sistema Operacional Principais Funções do Sistema Operacional Tratamento de interrupções e exceções Criação e
Leia maisO hardware é a parte física do computador, como o processador, memória, placamãe, entre outras. Figura 2.1 Sistema Computacional Hardware
1 2 Revisão de Hardware 2.1 Hardware O hardware é a parte física do computador, como o processador, memória, placamãe, entre outras. Figura 2.1 Sistema Computacional Hardware 2.1.1 Processador O Processador
Leia maisNoções de Software. André Aziz (andreaziz.ufrpe@gmail.com) Francielle Santos (francielle.ufrpe@gmail.com)
Noções de Software André Aziz (andreaziz.ufrpe@gmail.com) Francielle Santos (francielle.ufrpe@gmail.com) Noções de Software; Sistemas Operacionais: Evolução; Conceitos Básicos; Tipos; Exemplos. DEINFO/UFRPE
Leia maisSistema Operacional. Prof. Leonardo Barreto Campos 1
Sistema Operacional Prof. Leonardo Barreto Campos 1 Sumário Introdução; Tipos de Sistemas Operacionais; Escalonamento; Gerenciamento de Memória; Bibliografia. Prof. Leonardo Barreto Campos 2/25 Introdução
Leia maisARQUITETURA DE COMPUTADORES - 1866
7 Unidade Central de Processamento (UCP): O processador é o componente vital do sistema de computação, responsável pela realização das operações de processamento e de controle, durante a execução de um
Leia maisSO - Conceitos Básicos. Introdução ao Computador 2010/01 Renan Manola
SO - Conceitos Básicos Introdução ao Computador 2010/01 Renan Manola Definição de SO É uma camada de software que opera entre o hardware e os programas aplicativos voltados ao usuário final. É uma estrutura
Leia maisProgramação Concorrente Processos e Threads
Programação Concorrente Processos e Threads Prof. Eduardo Alchieri Processos O conceito mais central em qualquer sistema operacional é o processo Uma abstração de um programa em execução Um programa por
Leia maisFundamentos de Sistemas Operacionais
Fundamentos de Sistemas Operacionais Professor: João Fábio de Oliveira jfabio@amprnet.org.br (41) 9911-3030 Objetivo: Apresentar o que são os Sistemas Operacionais, seu funcionamento, o que eles fazem,
Leia maisSistema de Computação
Sistema de Computação Máquinas multinível Nível 0 verdadeiro hardware da máquina, executando os programas em linguagem de máquina de nível 1 (portas lógicas); Nível 1 Composto por registrados e pela ALU
Leia maisFACULDADE PITÁGORAS DISCIPLINA: ARQUITETURA DE COMPUTADORES
FACULDADE PITÁGORAS DISCIPLINA: ARQUITETURA DE COMPUTADORES Prof. Ms. Carlos José Giudice dos Santos cpgcarlos@yahoo.com.br www.oficinadapesquisa.com.br Conceito de Computador Um computador digital é
Leia maisIntrodução a Computação
Sistemas Operacionais: Software Oculto Introdução a Computação Sistemas Operacionais Serve como um intermediário entre o hardware e os softwares aplicativos. Sistema Operacional Software de sistemas Kernel
Leia maisMáquinas Multiníveis
Infra-Estrutura de Hardware Máquinas Multiníveis Prof. Edilberto Silva www.edilms.eti.br edilms@yahoo.com Sumário Conceitos básicos Classificação de arquiteturas Tendências da tecnologia Família Pentium
Leia maisApresentação. Ementa da Disciplina. Objetivo da Disciplina. DCA-108 Sistemas Operacionais
DCA-108 Sistemas Operacionais Luiz Affonso Guedes www.dca.ufrn.br/~affonso affonso@dca.ufrn.br Apresentação Disciplina básica do curso de Engenharia de Computação Carga-horária: 60h teóricas Associadas
Leia maisCISC RISC Introdução A CISC (em inglês: Complex Instruction Set Computing, Computador com um Conjunto Complexo de Instruções), usada em processadores Intel e AMD; suporta mais instruções no entanto, com
Leia maisProf.: Roberto Franciscatto. Capítulo 1.1 Introdução
Sistemas Operacionais Prof.: Roberto Franciscatto Capítulo 1.1 Introdução Tipos de Sistemas Operacionais Sistemas Monoprogramáveis / Monotarefa Voltados tipicamente para a execução de um único programa.
Leia maisBancos de dados distribuídos Prof. Tiago Eugenio de Melo tiagodemelo@gmail.com. http://www.tiagodemelo.info
Bancos de dados distribuídos Prof. Tiago Eugenio de Melo tiagodemelo@gmail.com Última atualização: 20.03.2013 Conceitos Banco de dados distribuídos pode ser entendido como uma coleção de múltiplos bds
Leia maisTecnologia PCI express. Introdução. Tecnologia PCI Express
Tecnologia PCI express Introdução O desenvolvimento de computadores cada vez mais rápidos e eficientes é uma necessidade constante. No que se refere ao segmento de computadores pessoais, essa necessidade
Leia maisIntrodução aos Computadores
Os Computadores revolucionaram as formas de processamento de Informação pela sua capacidade de tratar grandes quantidades de dados em curto espaço de tempo. Nos anos 60-80 os computadores eram máquinas
Leia mais3. Arquitetura Básica do Computador
3. Arquitetura Básica do Computador 3.1. Modelo de Von Neumann Dar-me-eis um grão de trigo pela primeira casa do tabuleiro; dois pela segunda, quatro pela terceira, oito pela quarta, e assim dobrando sucessivamente,
Leia maisOrganização e Arquitetura de Computadores
Organização e Arquitetura de Computadores Entrada e saída Alexandre Amory Edson Moreno Nas Aulas Anteriores Foco na Arquitetura e Organização internas da Cleo Modelo Von Neuman Circuito combinacional Circuito
Leia maisSistemas Operacionais e Introdução à Programação. Módulo 1 Sistemas Operacionais
Sistemas Operacionais e Introdução à Programação Módulo 1 Sistemas Operacionais 1 Sistema computacional Sistemas feitos para resolver problemas Problema: como obter determinado resultado, com base em dados
Leia maisIntrodução aos Sistemas Operativos
Introdução aos Sistemas Operativos Computadores e Redes de Comunicação Mestrado em Gestão de Informação, FEUP 06/07 Sérgio Sobral Nunes mail: sergio.nunes@fe.up.pt web: www.fe.up.pt/~ssn Sumário Definição
Leia maisFundamentos de Sistemas Computacionais Introdução
Fundamentos de Sistemas Computacionais Introdução Prof. Eduardo Alchieri Sistema Computacional Hardware Software Usuários Um ou mais processadores, memória, discos, impressoras, teclado, mouse, monitor,
Leia maisSistemas Operacionais
UNIVERSIDADE BANDEIRANTE DE SÃO PAULO INSTITUTO POLITÉCNICO CURSO DE SISTEMAS DE INFORMAÇÃO Sistemas Operacionais Notas de Aulas: Tópicos 7 e 8 Estrutura do Sistema Operacional São Paulo 2009 1 Sumário
Leia maisVisão Geral de Sistemas Operacionais
Visão Geral de Sistemas Operacionais Sumário Um sistema operacional é um intermediário entre usuários e o hardware do computador. Desta forma, o usuário pode executar programas de forma conveniente e eficiente.
Leia maisARQUITETURA E ORGANIZAÇÃO DE COMPUTADORES. Prof. André Dutton
ARQUITETURA E ORGANIZAÇÃO DE COMPUTADORES Prof. André Dutton EMENTA: Conceitos fundamentais e histórico da ciência da computação; Histórico dos computadores, evolução e tendências; Modalidades de computadores
Leia maisSistemas de Lotes (2) Sistemas de Lotes (3) Layout da MP em Sistemas de Lotes. Minimizar o tempo de resposta
1 Mono e multiprogramação Introdução Classificação (Aula 2) Recap Sistemas Máquina Profa. Patrícia Gerenciador D. CostaLPRM/DI/UFES Provê Fornece Compartilhamento programador máquina justa recursos Operacionais
Leia maisDisciplina: Introdução à informática Profª Érica Barcelos
Disciplina: Introdução à informática Profª Érica Barcelos CAPÍTULO 3 1. ARQUITETURA DO COMPUTAÇÃO- SOFTWARE Vimos nos capítulos anteriores que durante muitas décadas vários projetos foram realizados para
Leia maisSISTEMAS OPERACIONAIS. Apostila 03 Estrutura do Sistema Operacional UNIBAN
SISTEMAS OPERACIONAIS Apostila 03 Estrutura do Sistema Operacional UNIBAN 1.0 O Sistema Operacional como uma Máquina Virtual A arquitetura (conjunto de instruções, organização de memória, E/S e estrutura
Leia maisClassificação de SO (Sistemas Operacionais) Técnico de Informática 2º. Módulo Profa. Madalena Pereira da Silva madalena.silva@ifsc.edu.
Classificação de SO (Sistemas Operacionais) Técnico de Informática 2º. Módulo Profa. Madalena Pereira da Silva madalena.silva@ifsc.edu.br Agenda Classificação de SO quanto a: Interface Processamento Tarefas
Leia mais6 - Gerência de Dispositivos
1 6 - Gerência de Dispositivos 6.1 Introdução A gerência de dispositivos de entrada/saída é uma das principais e mais complexas funções do sistema operacional. Sua implementação é estruturada através de
Leia maisOrganização de Computadores 1
Organização de Computadores 1 4 SUPORTE AO SISTEMA OPERACIONAL Prof. Luiz Gustavo A. Martins Sistema Operacional (S.O.) Programa responsável por: Gerenciar os recursos do computador. Controlar a execução
Leia maisSistemas Operacionais valnaide@dca.ufrn.br kliger@dca.ufrn.br affonso@dca.ufrn.br
Sistemas Operacionais valnaide@dca.ufrn.br kliger@dca.ufrn.br affonso@dca.ufrn.br INTRODUÇÃO O que é um sistema operacional? História dos sistemas operacionais Conceitos dos Sistemas Operacionais Estrutura
Leia maisINTRODUÇÃO BARRAMENTO PCI EXPRESS.
INTRODUÇÃO BARRAMENTO EXPRESS. O processador se comunica com os outros periféricos do micro através de um caminho de dados chamado barramento. Desde o lançamento do primeiro PC em 1981 até os dias de hoje,
Leia maisMecanismo de Interrupção
Mecanismo de Interrupção Paralelismo de Operação Num sistema multiprogramado a CPU está sempre apta a compartilhar o seu tempo entre os vários programas e os diferentes dispositivos periféricos que necessitam
Leia maisNível do Sistema Operacional
Nível do Sistema Operacional (Aula 14) Introdução a Sistemas Operacionais Roberta Lima Gomes - LPRM/DI/UFES Sistemas de Programação I Eng. Elétrica 2007/1 Introdução Hardware Provê os recursos básicos
Leia maisSISTEMAS OPERACIONAIS
SISTEMAS OPERACIONAIS Arquitetura Sistemas Operacionais Andreza Leite andreza.leite@univasf.edu.br Plano de Aula Sistemas monolíticos Sistemas em camadas Sistemas micro-núcleo Modelo Cliente-Servidor Máquinas
Leia maisMontagem e Manutenção. Luís Guilherme A. Pontes
Montagem e Manutenção Luís Guilherme A. Pontes Introdução Qual é a importância da Montagem e Manutenção de Computadores? Sistema Binário Sistema Binário Existem duas maneiras de se trabalhar e armazenar
Leia maisAula 3. Sistemas Operacionais. Prof: Carlos Eduardo de Carvalho Dantas (carloseduardoxpto@gmail.com) http://carloseduardoxp.wordpress.
Sistemas Operacionais Aula 3 Prof: Carlos Eduardo de Carvalho Dantas (carloseduardoxpto@gmail.com) http://carloseduardoxp.wordpress.com Nunca cone em um computador que você não pode jogar pela janela.
Leia maisDisciplina: Introdução à Informática Profª Érica Barcelos
Disciplina: Introdução à Informática Profª Érica Barcelos CAPÍTULO 4 1. ARQUITETURA DO COMPUTADOR- HARDWARE Todos os componentes físicos constituídos de circuitos eletrônicos interligados são chamados
Leia maisdiscos impressora CPU memória AULA 04 - Estruturas de Sistemas Computacionais Operação dos sistemas de computação Controlador de disco
AULA 04 - Estruturas Sistemas Computacionais Nosso objetivo é apenas revisar conceitos relacionados a estrutura geral um sistema computacional para pois explicarmos os talhes operação do sistema e como
Leia maisSISTEMAS OPERACIONAIS 2007
SISTEMAS OPERACIONAIS 2007 VISÃO GERAL Sumário Conceito Máquina de Níveis Conceituação de SO Componentes do SO Visões do SO Conceito de Sistemas O que se espera de um sistema de computação? Execução de
Leia maisTais operações podem utilizar um (operações unárias) ou dois (operações binárias) valores.
Tais operações podem utilizar um (operações unárias) ou dois (operações binárias) valores. 7.3.1.2 Registradores: São pequenas unidades de memória, implementadas na CPU, com as seguintes características:
Leia maisCadastramento de Computadores. Manual do Usuário
Cadastramento de Computadores Manual do Usuário Setembro 2008 ÍNDICE 1. APRESENTAÇÃO 1.1 Conhecendo a solução...03 Segurança pela identificação da máquina...03 2. ADERINDO À SOLUÇÃO e CADASTRANDO COMPUTADORES
Leia maisCAPÍTULO 2 CARACTERÍSTICAS DE E/S E PORTA PARALELA
8 CAPÍTULO 2 CARACTERÍSTICAS DE E/S E PORTA PARALELA A porta paralela, também conhecida por printer port ou Centronics e a porta serial (RS-232) são interfaces bastante comuns que, apesar de estarem praticamente
Leia maisOrganização de Computadores 1
Organização de Computadores 1 SISTEMA DE INTERCONEXÃO (BARRAMENTOS) Prof. Luiz Gustavo A. Martins Arquitetura de von Newmann Componentes estruturais: Memória Principal Unidade de Processamento Central
Leia maisINTRODUÇÃO ÀS LINGUAGENS DE PROGRAMAÇÃO
Capítulo 1 INTRODUÇÃO ÀS LINGUAGENS DE PROGRAMAÇÃO 1.1 Histórico de Linguagens de Programação Para um computador executar uma dada tarefa é necessário que se informe a ele, de uma maneira clara, como ele
Leia maisBARRAMENTO DO SISTEMA
BARRAMENTO DO SISTEMA Memória Principal Processador Barramento local Memória cachê/ ponte Barramento de sistema SCSI FireWire Dispositivo gráfico Controlador de vídeo Rede Local Barramento de alta velocidade
Leia maisGerência de Memória RAM em Computadores com Mais de 4GB O sistema Windows x86 (32bits) não tem capacidade de reconhecer, fisicamente, mais que 3,X GB de RAM, a não ser que seja ativado, manualmente, o
Leia maisSistemas Operacionais
Sistemas Operacionais Aula 3 Software Prof.: Edilberto M. Silva http://www.edilms.eti.br SO - Prof. Edilberto Silva Barramento Sistemas Operacionais Interliga os dispositivos de E/S (I/O), memória principal
Leia maisCurso de Instalação e Gestão de Redes Informáticas
ESCOLA PROFISSIONAL VASCONCELLOS LEBRE Curso de Instalação e Gestão de Redes Informáticas PROCESSADORES DE 64 BITS X PROCESSADORES DE 32 BITS José Vitor Nogueira Santos FT2-0749 Mealhada, 2009 Introdução
Leia maisAula 26: Arquiteturas RISC vs. CISC
Aula 26: Arquiteturas RISC vs CISC Diego Passos Universidade Federal Fluminense Fundamentos de Arquiteturas de Computadores Diego Passos (UFF) Arquiteturas RISC vs CISC FAC 1 / 33 Revisão Diego Passos
Leia maisTRABALHO COM GRANDES MONTAGENS
Texto Técnico 005/2013 TRABALHO COM GRANDES MONTAGENS Parte 05 0 Vamos finalizar o tema Trabalho com Grandes Montagens apresentando os melhores recursos e configurações de hardware para otimizar a abertura
Leia maisPARANÁ GOVERNO DO ESTADO
A COMUNICAÇÃO NA INTERNET PROTOCOLO TCP/IP Para tentar facilitar o entendimento de como se dá a comunicação na Internet, vamos começar contando uma história para fazer uma analogia. Era uma vez, um estrangeiro
Leia maisINSTITUTO DE EMPREGO E FORMAÇÃO PROFISSIONAL, I.P.
INSTITUTO DE EMPREGO E FORMAÇÃO PROFISSIONAL, I.P. Centro de Emprego e Formação Profissional da Guarda Curso: Técnico de Informática Sistemas (EFA-S4A)-NS Trabalho Realizado Por: Igor_Saraiva nº 7 Com
Leia maisSistemas Operacionais Processos e Threads
Sistemas Operacionais Processos e Threads Prof. Marcos Monteiro, MBA http://www.marcosmonteiro.com.br contato@marcosmonteiro.com.br 1 Estrutura de um Sistema Operacional 2 GERÊNCIA DE PROCESSOS Um processo
Leia maisSISTEMAS OPERACIONAIS ABERTOS Prof. Ricardo Rodrigues Barcelar http://www.ricardobarcelar.com
- Aula 2-1. PRINCÍPIOS DE SOFTWARE DE ENTRADA E SAÍDA (E/S) As metas gerais do software de entrada e saída é organizar o software como uma série de camadas, com as mais baixas preocupadas em esconder as
Leia mais