introdução a computação e suas aplicações seminário

19
Noções de Sistemas Operacionais Sistemas Operacionais Linux, Mac Os e Windows Visão Geral sobre os Sistemas Operacionais para Computadores. Linux Área de Trabalho do Sistema Operacional Ubuntu - Linux Definição de área de Trabalho (Desktop) Todo Sistema Operacional apresenta uma área de trabalho, ou seja, um ambiente gráfico para que o usuário possa trabalhar. Em todos encontramos os ícones (Figuras que representam arquivos ou programas). A área de trabalho é a primeira tela que visualizamos após efetuar o logon ou ligar o computador, os programas são executados dentro de janelas que ficam na área de trabalho. Kernel O Kernel controla todos os dispositivos do computador, como por exemplo a placa de som, placa de vídeo, HD, memória RAM sistemas de arquivos etc.) O Kernel do Linux tem o código aberto, desta forma todos que entende de programação pode acessar e modificar de acordo com sua necessidade, habilitando suporte a novos dispositivos. Shell Sell é um interpretador de comandos, ou seja, o tradutor de uma ordem dada pelo usuário através do teclado ao Kernel. O Linux apresenta vários tipos de Shell e o mais utilizado

Upload: robson-ferreira

Post on 09-Jun-2015

691 views

Category:

Documents


0 download

TRANSCRIPT

Page 1: Introdução a computação e suas aplicações seminário

Noções de Sistemas Operacionais

Sistemas Operacionais Linux, Mac Os e Windows Visão Geral sobre os Sistemas Operacionais para Computadores.

Linux

Área de Trabalho do Sistema Operacional Ubuntu - Linux

Definição de área de Trabalho (Desktop) Todo Sistema Operacional apresenta uma área de trabalho, ou seja, um ambiente gráfico para que o usuário possa trabalhar. Em todos encontramos os ícones (Figuras que representam arquivos ou programas). A área de trabalho é a primeira tela que visualizamos após efetuar o logon ou ligar o computador, os programas são executados dentro de janelas que ficam na área de trabalho.

Kernel O Kernel controla todos os dispositivos do computador, como por exemplo a placa de som, placa de vídeo, HD, memória RAM sistemas de arquivos etc.) O Kernel do Linux tem o código aberto, desta forma todos que entende de programação pode acessar e modificar de acordo com sua necessidade, habilitando suporte a novos dispositivos.

Shell Sell é um interpretador de comandos, ou seja, o tradutor de uma ordem dada pelo usuário através do teclado ao Kernel. O Linux apresenta vários tipos de Shell e o mais utilizado

Page 2: Introdução a computação e suas aplicações seminário

é o Bash. Esse é um tipo de comando utilizado para executar tarefas de modo muito mais rápido.

Exemplo de comandos via terminal

Observação: No caso do Sistema Operacional Windows, chamamos de Prompt de Comandos.

Page 3: Introdução a computação e suas aplicações seminário

Painel de Controle do Ubuntu

Mensagens Instantâneas (MSN) As mensagens instantâneas (IM) são uma forma de comunicar com os amigos e a família, enviando mensagens uns aos outros através da internet. As mensagens instantâneas são em tempo real, e não existe qualquer atraso desde o momento em que digita a mensagem e a outra pessoa a recebe. O Pidgin é o cliente de mensagens instantâneas por omissão do Ubuntu, anteriormente conhecido por Gaim. Com o Pidgin pode conversar com pessoas que usam AIM/ICQ, Gadu-Gadu, GroupWise, IRC, Jabber, MSN, Napster, Bonjour e Yahoo, e listar todos os seus contactos numa só janela.

Programa para Mensagem Instantânea (MSN) - Ubuntu

Page 4: Introdução a computação e suas aplicações seminário

Aplicativo para Navegar na Internet com o Ubuntu O Ubuntu vem, por omissão, com o navegador web Mozilla Firefox. O Firefox tornou-se rapidamente num dos navegadores mais populares, sendo utilizado em dezenas de milhares de sistemas em todo o mundo.

Sistema Operacional Mac Os Ao iniciar o computador com Sistema Operacional Mac Os X, uma barra de menus na parte superior da tela, o Dock na parte inferior e uma janela do Finder com ícones e botões, tudo isso igual a outros sistemas operacionais.

Área de Trabalho do Mac Os X

Finder Para organizar arquivos e programas no Mac Os X, utilizamos o Finder.

Page 5: Introdução a computação e suas aplicações seminário

Barra de Menus do Mac Os X Aparece na parte superior da tela contém menus tais como, Arquivo e Editar, os quais oferecem uma lista de comandos para realizar as tarefas.

Ampliação do Dock O Dock é um jeito bastante prático de acessar os aplicativos, arquivos e pastas mais usados. Assim que você arrasta um ícone para o Dock, ele é redimensionado automaticamente para acomodar novos itens.

Calculadora falante O OS X vem com uma calculadora que fala ao pressionar cada botão, assim como os resultados. Ela tem três modos: uma calculadora simples, uma científica e uma para programadores.

Windows XP Definição: O Windows XP é o Principal Sistema Operacional da atualidade para computadores pessoais. Ele possui uma Interface gráfica que facilita a utilização, além de um grande Poder de Gerenciamento das funções do computador.

Meu Computador É um ícone que exibe todas as unidades de disco do computador local, bem como recursos para poder configurar uma impressora e outros elementos do Windows XP, conforme as figuras abaixo:

Lixeira É um local de armazenamento temporário para arquivos excluídos. Por meio dela você poderá recuperar os arquivos excluídos por descuido. Para a limpeza da lixeira devemos clicar com o botão direito do mouse ir à opção esvaziar lixeira.

Botão Iniciar Por meio dele se começa a trabalhar com os recursos do Windows XP. Clique no botão Iniciar para abrir um documento, acionar um aplicativo, modificar configurações, etc. Para acionar uma aplicação com o botão Iniciar, basta clicar ele e em seguida deslizar o ponteiro do mouse sobre as opções, ou digitar simultaneamente as teclas Ctrl Esc.

Barra de Tarefas É uma barra horizontal localizada na parte inferior da área de trabalho. É nela que está localizado o botão Iniciar e também, a referência para todas as aplicações que estão em uso.

As diferenças entre os sistemas operacionais são muitas, dentre as quais são:

Gratuidade e Pago- O sistema Linux é um sistema livre(free) não precisa ser comprado, basta que o usuário saiba a versão do Sistema Operacional e baixe esse no sítio do fabricante,

Page 6: Introdução a computação e suas aplicações seminário

portanto o Sistema Operacional Linux é Copyleft,isto é, todos os direitos são livres, então é possível modificar o kernel desse sistema de forma a deixá-lo mais otimizado e com melhores condições de uso. No que se refere ao Sistema Operacional Windows qualquer versão é paga, destarte existe um custo para a aquisição do sistema, não é possível neste ter acesso ao kernel do sistema pois estar nas mãos do criador do Windows, a licença é Copyright, ou seja, todos os direitos reservados a empresa nesse caso a Microsoft.

Sistema de Arquivos - Tema muito abordado em provas de concurso, temos que saber que o Sistema Operacional Windows utiliza o Sistema de arquivos NTSF, o sistema de arquivo é nada mais que um programa que consegue alocar arquivos no disco rígido, nas primeiras versões do Windows (95 e 98) tinhamos o Sistema de arquivos FAT (16 e 32) mas caiu em desuso, tendo em vista, a velocidade de alocação dos arquivos.

O S.O Linux possui uma tipo de sistema de arquivos diferente do Windows, seu sistema atual é o Ext 3 que possui um sistema de journalist (registro), significa que quando o computador é desligado repentinamente, os dados podem ser recuperados através de um registro que foi feito no Sistema. Salienta-se que já é possível nos Sistemas Operacionais mais recentes instalar o Sistema de Arquivo Ext 4 que creio que vária em relação ao Ext 3 o aumento da alocação de arquivos, antigamente o S.O Linux utilizava o sistemas Reiser Fs, Ext 2 e outros mais não são adequados serem instalados no Sistemas, tendo em vista, que consomem muita memória e desempenho do processador.

Participação - O Sistema Operacional Windows usa para divisão das partições primárias e lógicas as letras do alfabeto, exemplo:

Particão do Windows- (C:) Arquivos - (D:) Músicas - (M:)

O Linux não possui esse estilo de particão suas partições são classificadas em Sda1, Sda2, Sda3...

Outra diferença considerável é que o S.O Linux, quando instalado exige que seja destinado um espaço no disco rígido para a Memória Virtual mais conhecida como Memória Swap. No Windows esse processo é feito automaticamente.

Por que os Sistemas Operacionais utilizam a Memória Virtual (Swap)?

Imagine que seu sistema operacional estar executando um determinado aplicativo, digamos que ele é o Photoshop CS4 sua máquina que tem 1GB de memória usa todo espaço que têm para executar o aplicativo, o processador fica desesperado e procura alguém que o socorra, encontra o HD (Disco Rígido) para que disponibilize um pouco de memória, aliviando assim a Memória Ram. Observe que a velocidade de transmissão da Memória Ram para o HD não tem como comparar, aquela possui uma velocidade superior a esta, então quando o processador procura o hd para solicitação da memória a transmissão é mais lenta, mas é o único jeito de aliviar a barra da Memória.

Quanto as semelhanças dos Sistemas Operacionais, citamos algumas mais importantes:

Multi-usuário- Significa que em ambos os sistemas é possível ter vários usuários.

Multi-tarefa- Podem ser executadas várias tarefas, exemplo:

Escutar Música, baixar um vídeo e escrever um texto ao mesmo tempo. Observe que o Processador executa um arquivo de cada vez, mas como a velocidade é de bilhões de hertz, nem observamos isso.

Multi-Processamento- Processamento de vários dados.

Page 7: Introdução a computação e suas aplicações seminário

Sistema Operacional Monolítico- Sistema Operacional Monolítico é um termo oriundo dos estudos referentes a sistemas operacionais, que designa o modelo em que o sistema operacional é codificado por via de uma coleção de procedimentos, onde é permitido a qualquer um deles em qualquer parte do programa "chamar" outro procedimento.

A organização mais simples de um sistema como um conjunto de procedimentos que podem interagir livremente umas com as outras. Pode ser comparada com uma aplicação que contém vários procedimentos que são compilados separadamente e depois linkados, formando um grande e único programa executável. Vantagem: – Grande desempenho Desvantagem: – O sistema pode parar por causa de um erro. - As interfaces e níveis de funcionalidade não são bem separados nem estão unificados. O excesso de liberdade torna o sistema vulnerável.

Gerencia de recursos

Todos sistema autônomo objetos de consomem recursos do sistema sistema autônomo

memória, identificadores de arquivo e conexões de banco de dados. O CLR (Common

linguagem tempo de execução) gerencia recursos automaticamente e geralmente você não

precisa se preocupar sobre a liberação de objetos desnecessários. No entanto, compreender

como funciona de gerenciamento de recursos pode ajudar você projetar os aplicativos mais

eficientes.

O gerenciamento de recursos de hardware e software é uma tarefa extremamente

importante atribuída ao Sistema Operacional. Diversos programas e métodos de entrada de

dados competem pela atenção da CPU (Unidade Central de Processamento) e demanda

memória, espaço em disco e largura de banda de entrada/saída. O sistema operacional faz o

papel do bom pai. Ele cuida para que cada aplicativo tenha os recursos necessários para o

funcionamento e gerencia a capacidade limitada do sistema para atender a todos os usuários e

aplicativos.

Estados do processo e Escalonamento

O escalonamento de processos ou agendador de tarefas (em inglês scheduling) é uma

atividade organizacional feita pelo escalonador (scheduler) da Cpu ou de um sistema

Page 8: Introdução a computação e suas aplicações seminário

distribuído, possibilitando executar os processos mais viáveis e concorrentes, priorizando

determinados tipos de processos, como os de I/O Bound e os computacionalmente intensivos.

O escalonador de processos de 2 níveis escolhe o processo que tem mais prioridade e

menos tempo e coloca-o na memória principal, ficando os outros alocados em disco; com essa

execução o processador evita ficar ocioso.

Tipos básicos

Escalonador de curto prazo

Seleciona entre os processos em estado de pronto que estão na memória, para serem

executados pelo processador. O escalonador de curto prazo faz decisões de escalonamento

muito mais frequentemente que os de médio e longo prazo.

Escalonador de médio prazo

Seleciona entre os processos que estão na memória virtual, reduz o grau

de multiprogramação. Ele temporariamente remove o processo da memória principal e o coloca

na memória secundária (swap) fazendo as operações de swapping in e swapping out.

Escalonador de longo prazo

Seleciona entre os processos novos, os que são limitados por entrada/saída e os que são

limitados por CPU, dando prioridade aqueles limitados por I/O, já que utilizam menos tempo o

processador. Este escalonador é o responsável pelo grau de multiprocessamento, ou seja a

quantidade de processos que o sistema irá trabalhar.

Definição

Para que a CPU não fique muito tempo sem executar tarefa alguma, os sistemas

operacionais utilizam técnicas para escalonar os processos que estão em execução ao mesmo

tempo na maquina.

O escalonamento de processos é uma tarefa complicada, pois nenhum algoritmo é

totalmente eficiente e a prova de falhas, principalmente em se tratando de sistemas interativos,

como o Windows, pois a interação com o usuário é fundamental para este sistema onde quem

o utiliza procura respostas rápidas e a todo o momento processos são interrompidos pelo

usuário.

Page 9: Introdução a computação e suas aplicações seminário

O escalonador do SO utiliza alguns critérios de escalonamento, como: a taxa de utilização

de CPU, que é a fração de tempo durante a qual ela está sendo ocupada; throughput que são

números de processos terminados por unidade de tempo; turnaround que é o tempo

transcorrido desde o momento em que o software entra e o instante em que termina sua

execução; tempo de resposta: intervalo entre a chegada ao sistema e inicio de sua execução;

tempo de espera: soma dos períodos em que o programa estava no seu estado pronto.

Responsáveis por essa tarefa são algoritmos que são entendidos mais facilmente,

estudados separadamente, mas na pratica os sistemas operacionais utilizam combinações

deles para melhor escalonar os processos.

Objetivos do Escalonamento

O projeto de um escalonador adequado deve levar em conta uma série de diferentes

necessidades, ou seja, o projeto de uma política de escalonamento deve contemplar os

seguintes objetivos:

Ser justo: Todos os processos devem ser tratados igualmente, tendo possibilidades

idênticas de uso do processador, devendo ser evitado o adiamento indefinido.

Maximizar a produtividade (throughput): Procurar maximizar o número de tarefas

processadas por unidade de tempo.

Ser previsível: Uma tarefa deveria ser sempre executada com aproximadamente o mesmo

tempo e custo computacional.

Minimizar o tempo de resposta para usuários interativos.

Maximizar o número possível de usuário interativos.

Minimizar a sobrecarga (overhead): Recursos não devem ser desperdiçados embora

algum investimento em termos de recursos para o sistema pode permitir maior eficiência.

Favorecer processos "bem comportados": Processos que tenham comportamento

adequado poderiam receber um serviço melhor.

Balancear o uso de recursos: o escalonador deve manter todos os recursos ocupados, ou

seja, processos que usam recursos sub- utilizados deveriam ser favorecidos.

Exibir degradação previsível e progressiva em situações de intensa carga de trabalho.

Page 10: Introdução a computação e suas aplicações seminário

Como pode ser visto facilmente, alguns destes objetivos são contraditórios, pois dado que a

quantidade de tempo disponível de processamento (tempo do processador) é finita, assim

como os demais recursos computacionais, para que um proceso seja favorecido outro deve ser

prejudicado. O maior problema existente no projeto de algoritmos de escalonamento está

associado à natureza imprevisível dos processos, pois não é possível prevermos se um dado

processo utilizará intensamente o processador, ou se precisará grandes quantidades de

memória ou se necessitará numerosos acessos aos dispositivos e E/S.

Qualidade do Escalonamento

Existem vários critérios que permitem a avaliação da qualidade do serviço oferecido por um

algoritmo de escalonamento. São eles: uso do processador, tempo de resposta e tempo de

permanência.

O tempo de permanência, tempo de retorno ou turnaround time, é um critério simples dado

pela soma do tempo de espera com o tempo de serviço ou tempo de execução. Em geral

deseja- se que o tempo de permanência seja o menor possível.

Uma outra forma de avaliar a qualidade do escalonamento é utilizando-se do tempo de

permanência normalizado, ou seja, a razão entre o tempo de permanência e o tempo de

serviço.

Algoritmos Escalonadores

Existem os algoritmos preemptivos e os não preemptivos. Os preemptivos são algoritmos

que permitem que um processo seja interrompido durante sua execução, quer seja por força de

uma interrupção de entrada/saída, quer seja em decorrência da politica de escalonamento

adotada e aplicada por parte do escalonador de processos ou simplesmente por força do

término da execução do processo. Após a interrupção deste processo, ocorre o que se chama

de troca de contexto, que consiste em salvar o conteúdo dos registradores e a memoria

utilizada pelo processo e conceder à outro processo o privilégio de executar na CPU,

restaurando assim o contexto deste ultimo processo. Cabe ressaltar que nos algoritmos não

preemptivos, por serem utilizados exclusivamente em sistemas monoprocessados, esse fato

não ocorre, sendo cada programa executado até o fim.

Exemplos de Algoritmos:

Page 11: Introdução a computação e suas aplicações seminário

FIFO (First in, first out) ou FCFS (First come, first served): Onde como seu próprio nome já

diz, o primeiro que chega será o primeiro a ser executado;

SJF (Shortest Job First): Onde o menor processo ganhará a CPU e atrás do mesmo formar

uma fila de processos por ordem crescente de tempo de execução;

SRT (Shortest Remaining Time): Neste algoritmo é escolhido o processo que possua o

menor tempo restante, mesmo que esse processo chegue à metade de uma operação, se

o processo novo for menor ele será executado primeiro;

Algoritmo Loteria: O Sistema Operacional distribui tokens (fichas), numerados entre os

processos, para o escalonamento é sorteado um numero aleatório para que o processo

ganhe a vez na CPU, processos com mais tokens têm mais chance de receber antes a

CPU.

Escalonamento garantido: Este algoritmo busca cumprir promessas de alocação de CPU o

mais preciso possível.

RR (Round-Robin): Nesse escalonamento o sistema operacional possui um timer,

chamado de quantum, onde todos os processos ganham o mesmo valor de quantum para

rodarem na CPU. Com exceção do algoritmo RR e escalonamento garantido, todos os

outros sofrem do problema de Inanição (starvation).

Múltiplas Filas: São usadas várias filas de processos prontos para executar, cada processo

e colocado em uma fila, e cada fila tem uma política de escalonamento própria e outra

entre filas.

Todos os algoritmos classificam os processos em estados: Iniciando, Pronto, Executando,

Entrada/ Saída e Terminado.

Distribuição de Propriedades

Para melhorar essa distribuição da CPU entre os processos, alguns algoritmos utilizam

diferentes prioridades, essas prioridades podem ser mudadas no Windows, por exemplo, pelo

próprio usuário. Com intuito de gerenciar melhor as prioridades de processo, o sistema

operacional cria filas de processos. Em cada fila existem processos de mesma prioridade, e

existe também fila para processos de entrada e saída. Prioridades podem ser mudadas pelo

usuário, ou atribuídas automaticamente pelo sistema operacional em questão.

Page 12: Introdução a computação e suas aplicações seminário

Mesmo com a aplicação de prioridades e algoritmos melhor implementados, alguns

processos ainda correm o risco de sofrer starvation(ficar muito tempo sem receber a CPU) por

isso em determinando momento pode ocorrer o que chamamos de aging (O aging ocorre

quando a prioridade de um processo vai se alterando com o "tempo de vida" do mesmo,

controlando o starvation), que muda momentaneamente a prioridade de um processo que não

é executado há muito tempo e joga sua prioridade para a mais alta possível para que ele seja

atendido, logo após as prioridades voltam ao normal.

Outro caso em que prioridades são alteradas é quando um programa de baixa prioridade

começou a fazer uso de algum periférico de entrada e saída antes de outro de prioridade alta.

Neste caso processos de alta prioridade são obrigados a esperarem os de baixa terminar sua

para E/S poderem usar este periférico.

Alterando prioridades no Windows

Existem ainda sistemas em que quando um processo inicia sua execução, o sistema garante

que este processo vai ser terminado, são chamados sistemas garantidos. Nestes sistemas a

intervenção do usuário é mínima, ao contrario do que ocorre em sistemas em tempo real como

o Windows em que o usuário interrompe processos a todo instante por isso o sistema não

garante que um processo vai ser Terminado.

Trocas do contexto

Processos são interrompidos e retomados a todo tempo, para que o sistema operacional

possa fazer esse tipo de ação, é necessária a troca de contexto. Para que o sistema

operacional possa interromper um processo e retomar ele mais tarde, ele usa a PCB (Process

Control Block) para guardar todas as informações que a CPU estava usando naquele momento

e possa consulta-la mais tarde para que retome exatamente no ponto em que foi interrompido

anteriormente.

Threads

Processos podem ser divididos em “pedaços” para que eles não deixem de responder por

algum motivo externo, como isso poderia atrapalhar a sua execução, ou para agilizar a

Page 13: Introdução a computação e suas aplicações seminário

programação e execução. Quando programas são divididos em threads, podemos ter partes do

processo rodando em paralelo, pois as threads também são escalonáveis.

Tempo Compartilhado

O sistema operacional gerencia o acesso concorrente aos seus diversos recursos de forma

ordenada e protegida pelos diversos programas. Dessa forma é possível aumentar a

produtividade e reduzir os custos de utilização do sistema, aproveitando melhor o hardware.

Por exemplo, enquanto um programa espera por uma operação de leitura ou gravação em

disco, outros programas podem estar sendo processados no mesmo intervalo de tempo. São

mais complexos e eficientes do que os sistemas monoprogramados, que ficam dedicados a um

unico usuario, já que vários programas utilizam os mesmos recursos.

Os sistemas multitarefa podem ser classificados pela forma com que suas aplicações são

gerenciadas com os usuários, sendo que um sistema operacional pode suportar um ou mais

desses tipos de processamento.

Sistema de Tempo Compartilhado

O conceito de sistemas de tempo compartilhado, também chamados de multitarefa, é uma

extensão lógica de multiprogramação. Neste ambiente, múltiplos trabalhos são executados

simultaneamente, sendo que a UCP (Unidade Central de Processamento) atende cada

processo por um pequeno tempo, um a um em seqüência. Os tempos dedicados para cada

processo são pequenos o suficiente para que os usuários consigam interagir com cada

programa sem que percebam que existem outros programas rodando. Quando muitos

programas estão sendo executados, a impressão que o usuário tem é de que o computador

está lento, pois a UCP tem mais processos para atender, e portanto aumenta o tempo entre os

sucessivos atendimentos para um determinado trabalho.

Os sistemas de tempo compartilhado foram desenvolvidos para fornecer o uso interativo de

um sistema de computação a custos razoáveis. Um sistema operacional de tempo

compartilhado (time-sharing) usa escalonamento de UCP e multiprogramação para fornecer a

cada usuário uma pequena porção de tempo de computador. Um sistema operacional de

tempo compartilhado permite que muitos usuários compartilhem o computador

Page 14: Introdução a computação e suas aplicações seminário

simultaneamente. Já que cada ação ou comando em um sistema de tempo compartilhado

tende a ser pequena, apenas uma pequena quantidade de tempo de UCP é necessária para

cada usuário. Conforme o sistema troca de um usuário para outro, cada usuário tem a

impressão de ter seu próprio computador, enquanto na realidade um computador está sendo

compartilhado entre muitos usuários.

É fácil de entender como funcionam sistemas de tempo compartilhado quando comparados com sistemas batch ou arquivo de lote (também conhecidos por .bat) é um arquivo de computador utilizado para automatizar tarefas. Neste tipo de sistema operacional, um fluxo de processos separados é lido (de uma leitora de cartões, por exemplo), incluindo seus cartões de controle que predefinem o que faz o processo . Quando o trabalho termina, seu resultado normalmente é impresso, e o próximo processo é posto em execução.

A idéia de tempo compartilhado foi demonstrada no início de 1960, devido aos numerosos

dispositivos de E/S necessários, eles somente tornaram-se comuns até o início dos anos 70.

Conforme a popularidade destes sistemas cresceu, os pesquisadores tentaram combinar os

recursos de sistemas batch e de tempo compartilhado em um único sistema operacional.

Muitos sistemas que foram inicialmente projetados como sistemas batch foram modificados

para criar um subsistema de tempo compartilhado. Por exemplo, o sistema batch OS/360 da

IBM foi modificado para suportar a opção de tempo compartilhado (Time Sharing Option -

TSO). Ao mesmo tempo, à maioria dos sistemas de tempo compartilhado foi adicionado um

subsistema batch . Hoje em dia, a maioria dos sistemas fornecem ambos processamento batch

e de tempo compartilhado, embora seu projeto básico e uso sejam de um ou de outro tipo.

Sistemas operacionais de tempo compartilhado são sofisticados. Eles fornecem um

mecanismo para execução concorrente. Como na multiprogramação, vários processos deve

ser mantidos simultaneamente na memória, o que requer alguma forma de gerenciamento de

memória, proteção e escalonamento de UCP. Como a memória tem tamanho limitado, e em

dadas situações alguns trabalhos terão que ser retirados da memória e gravados

temporariamente em disco, para que outros programas possam ser lidos do disco e postos em

execução na memória. Quando aquele processo novamente precisar de continuação em sua

execução, ele será trazido de volta para a memória.

Hoje, multiprogramação e sistema compartilhado são os temas centrais dos sistemas

operacionais modernos. Os sistemas operacionais mais recentes para microcomputadores

suportam múltiplos usuários e múltiplos programas rodando concorrentemente em tempo

compartilhado.

Page 15: Introdução a computação e suas aplicações seminário

Memória Virtual

Se você é interessado em mexer nas configurações do sistema, certamente já se deparou

com o termo “memória virtual”. O problema é que são poucas as pessoas que param para

pensar sobre a importância que esse tipo de memória tem para o sistema operacional como

um todo.

Antes de poder explicar o que é a memória virtual, é importante ao menos falar um pouco sobre a memória RAM. Embora não seja possível perceber em um primeiro momento, os sistemas armazenamentos RAM e virtual possuem uma relação muito grande entre si.

Memória RAM

A chamada memória RAM é o local utilizado pelo processador para armazenar as informações de tudo o que estiver aberto em seu computador, seja um jogo ou uma aplicação qualquer. Assim, conforme novos aplicativos vão sendo executados, a RAM é consumida.

O problema é que o espaço da memória RAM nos computadores é limitado, e os aplicativos consomem cada vez mais espaço nela.

>>Daí pode surgi a pergunta:

Page 16: Introdução a computação e suas aplicações seminário

Por que usar a memória RAM? Não seria mais fácil simplesmente utilizar o HD para colocar os dados temporários?

Não necessariamente. A principal diferença entre a RAM e o armazenamento virtual está na velocidade de acesso.

O processo de leitura e escrita no disco rígido é extremamente mais lento do que na memória RAM. Dessa forma, acessar os dados presentes no recurso virtual é muito mais devagar do que no recurso físico. Dessa forma, se o seu computador estiver com pouca memória RAM livre e precisar usar a memória virtual para armazenar os dados dos programas, certamente haverá uma queda de desempenho significativa.

E quando a memória RAM se esgota, o que acontece? Muito simples: o processo utiliza a memória virtual.

O que é Memória Virtual?

A memória virtual é uma técnica pela qual é possível utilizar uma parte do disco rígido como se fosse memória RAM, assim sendo, o sistema operacional é capaz de executar aplicações mesmo que a soma de todos os programas em execução simultânea supere a da memória RAM instalada no computador.

Afim de que isso ocorra, o sistema move ao disco rígido o conteúdo da memória RAM que não foi utilizado por último, liberando espaço para novas aplicações,se esses dados movidos ao HD voltem a ser necessários, o sistema automaticamente realiza a operação inversa, carregando-os na memória RAM, razão pela quais muitos chamam este tipo de procedimento de troca de memória, ou swap.

Page 17: Introdução a computação e suas aplicações seminário

Swapping em Memória Virtual

A técnica de swapping também pode ser aplicada em sistemas com memória virtual, permitindo aumentar o número de processos que compartilham a memória principal e, consequentemente, o grau de multiprogramação do sistema. Quando existem novos processos para serem executados e não há memória principal livre suficiente para alocação, o sistema utiliza o swapping, selecionando um ou mais processos para saírem da memória e oferecer espaço para novos processos. Depois de escolhidos, o sistema retira os processos da memória principal para a memória secundária (swap out), onde as páginas ou segmentos são gravados em um arquivo de swap (swap file). Com os processos salvos na memória secundária, os frames ou segmentos alocados são liberados para novos processos. Posteriormente, os processos que foram retirados da memória devem retornar para a memória principal (swap in) para serem novamente executados.

Há várias políticas que podem ser aplicadas na escolha dos processos que devem ser retirados da memória principal. Independente do algoritmo utilizado, o sistema tenta selecionar os processos com as menores chances de serem executados em um futuro próximo. Na maioria das políticas, o critério de escolha considera o estado do processo e sua prioridade. O swapping com base no estado dos processos seleciona, inicialmente, os processos que estão no estado de espera. A seleção pode ser refinada em função do tipo de espera de cada processo. É possível que não existam processos suficientes no estado de espera para atender as necessidades de memória do sistema. Nesse caso, os processos no estado de pronto com menor prioridade deverão ser selecionados. O arquivo de swap é compartilhado por todos os processos que estão sendo executados no ambiente. Quando um processo é criado, o sistema

Page 18: Introdução a computação e suas aplicações seminário

reserva um espaço no arquivo de swap para o processo. Da mesma forma, quando um processo é eliminado o sistema libera a área alocada. Em alguns sistemas operacionais, o arquivo de swap é, na verdade, uma área em disco reservada exclusivamente para esta função. Independentemente da implementação, o arquivo de swap deve oferecer o melhor desempenho possível para as operações de swapping.

Page 19: Introdução a computação e suas aplicações seminário

Curso: Gestão em Tecnologia da Informação Disciplina: Intro. Computação e suas aplicações Professor: Ademar Alunos: Joel Nerys Luciano Albuquerque Raylla Souza Rian Albuquerque Robson Ferreira

João Pessoa, 23/11/2012