sexta-feira, 4 de dezembro de 2009

Sistemas de Multiprocessamento

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.

Características

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á 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;
  • manter múltiplas filas de processos, uma para cada processador.
  • Atenção Multiprocessamento é diferente de Multiprogramação.

Arquitetura

Sistemas multiprocessados podem ser basicamente de dois tipos: SMP e NUMA.

  • Multiprocessamento simétrico (SMP): 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.
  • Acesso não uniforme à memória (NUMA): a 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.

quinta-feira, 3 de dezembro de 2009

Sistema de Escalonamento

Objectivos do escalonamento

Optimizar a performance do sistema de acordo com um critério

  • Dividir a capacidade de processamento da UCP entre vários processos
  1. Diminuir o tempo de resposta (sistemas de Tempo-Real)

Como?
  • Alguns exemplos:
  1. Quando um processo está à espera (por ex: de uma operação de I/O ou de um sinal), outro processo pode entrar em funcionamento
  2. Periodicamente é retirado um processo e substituído pelo próximo na fila de ready

Escalonando da UCP

O escalonador selecciona entre os processos na fila de Ready, aqueles que devem entrar em execução de seguida

A decisão de escalonamento pode ser feita nas seguintes circunstâncias:

1. O processo comuta do estado Running para o estado Waiting (pedido de I/O, evocação da função wait())

  1. O processo comuta do estado Running para o estado Ready (ocorrência de uma interrupção)
  2. O processo comuta do estado Waiting para o estado Ready (termina um pedido de I/O)
  3. O processo termina

Diagrama de Estados










Tipos de Escalonamento

Escalonamento não preemptivo:


  • O escalonador apenas pode efectuar a comutação entre processos quando o processo termina ou passa para o estado de Waiting
  • Exemplo: Windows 3.1 e Apple Macintosh OS

Escalonamento preemptivo:

  • O escalonador pode interromper a execução de um processo antes que este tenha terminado

Estrutura de um Escalonador

Sistema Distribuido

A computação distribuída, ou sistema distribuído, é uma referência à computação paralela e descentralizada, realizada por dois ou mais computadores conectados através de uma rede, cujo objetivo é concluir uma tarefa em comum.

Definição

Um sistema distribuído segundo a definição de Andrew Tanenbaum é uma "colecção de computadores independentes que se apresenta ao usuário como um sistema único e consistente"; outra definição, de George Coulouris, diz: "colecção de computadores autónomos interligados através de uma rede de computadores e equipados com software que permita o compartilhamento dos recursos do sistema: hardware, software e dados"[carece de fontes?].

O suporte completo de um sistema de banco de dados distribuídos implica que uma única aplicação seja capaz de operar de modo transparente sobre dados dispersos em uma variedade de banco de dados diferentes, gerenciados por vários SGBDs diferentes, em execução em uma variedade de máquinas diferentes que podem estar rodando em diversas plataformas diferentes e uma variedade de sistemas operacionais. Onde o modo transparente diz respeito à aplicação operar sob um ponto de vista lógico como se os dados fossem gerenciados por um único SGBD, funcionando em uma única máquina com apenas um sistema operacional.
Assim, a computação distribuída consiste em adicionar o poder computacional de diversos computadores interligados por uma rede de computadores ou mais de um processador trabalhando em conjunto no mesmo computador, para processar colaborativamente determinada tarefa de forma coerente e transparente, ou seja, como se apenas um único e centralizado computador estivesse executando a tarefa. A união desses diversos computadores com o objectivo de compartilhar a execução de tarefas, é conhecida como sistema distribuído.

Características Fundamentais

Execução concorrente das componentes – paralelismo real
o Necessidade de coordenação entre os vários componentes

Falhas independentes das componentes e das comunicações

  • Impossível determinar se existe uma falha dum componente ou do sistema de comunicações
  • Necessidade de tratar as falhas

Ausência de relógio global – existem limites para a precisão da sincronização dos relógios locais

  • Impossível usar relógios locais para ordenar globalmente todos os eventos

Implicações

Nenhuma componente tem uma visão exacta e instantânea do estado global do sistema

Os componentes têm uma visão parcial do estado global do sistema

  • Os componentes do sistema estão distribuídos e só podem cooperar através da troca de mensagens, as quais levam um tempo não nulo a serem propagadas

Na presença de falhas, o estado global pode tornar-se incoerente → as visões parciais do estado global podem tornar-se incoerentes

  • Por exemplo, réplicas de um ficheiro podem ficar incoerentes

Vantagens

• Economia: melhor relação custo/desempenho
• Eficiência: maior poder total de computação
• Distribuição inerente: máquinas espacialmente separadas
• Confiabilidade: se uma máquina falha, o sistema como um todo pode ainda sobreviver
• Crescimento incremental: poder computacional adicionado em incrementos

Desvantagens

• Pouco software disponível (ainda!)
• Networking: a rede pode causar problemas
• Segurança: várias portas de acesso (mas...)

Sistema Operativo

Funcionamento

Um sistema operacional possui as seguintes funções:

  • gerenciamento de processos;
  • gerenciamento de memória;
  • sistema de arquivos;
  • entrada e saída de dados.

Gestão de Processos

O sistema operacional multitarefa é preparado para dar ao usuário a ilusão que o número de processos em execução simultânea no computador é maior que o número de processadores instalados. Cada processo recebe uma fatia do tempo e a alternância entre vários processos é tão rápida que o usuário pensa que sua execução é simultânea.

São utilizados algoritmos para determinar qual processo será executado em determinado momento e por quanto tempo.

Os processos podem comunicar-se, isto é conhecido como IPC (Inter-Process Communication). Os mecanismos geralmente utilizados são:

  • sinais;
  • pipes;
  • named pipes;
  • memória compartilhada;
  • soquetes (sockets);
  • trocas de mensagens.

O sistema operacional, normalmente, deve possibilitar o multiprocessamento (SMP ou NUMA). Neste caso, processos diferentes e threads podem ser executados em diferentes processadores. Para essa tarefa, ele deve ser reentrante e interrompível, o que significa que pode ser interrompido no meio da execução de uma tarefa.

SO fornece serviços para:

  • Criação e eliminação de processos
  • Escalonamento de processos (multiprogramação)
  • Tratamento das interrupções
  • Mecanismos para sincronização de processos
  • Mecanismos para a comunicação de processos


Gestão de Memórias

O sistema operacional tem acesso completo à memória do sistema e deve permitir que os processos dos usuários tenham acesso seguro à memória quando o requisitam.

Vários sistemas operacionais usam memória virtual, que possui 3 funções básicas:

  1. assegurar que cada processo tenha seu próprio espaço de endereçamento, começando em zero, para evitar ou resolver o problema de relocação (Tanenbaum, 1999);
  2. prover proteção da memória para impedir que um processo utilize um endereço de memória que não lhe pertença;
  3. possibilitar que uma aplicação utilize mais memória do que a fisicamente existente.

Gestão de arquivos/ficheiros

A memória principal do computador é volátil, e seu tamanho é limitado pelo custo do hardware. Assim, os usuários necessitam de algum método para armazenar e recuperar informações de modo permanente.

Um arquivo é um conjunto de bytes, normalmente armazenado em um dispositivo periférico não volátil (p.ex., disco), que pode ser lido e gravado por um ou mais processos.

Um sistema de ficheiros é constituído por duas partes:

  • Um conjunto de ficheiros (dados).
  • Uma estrutura de directórios (organização).

O sistema operativo é responsável por:

  • Criação e eliminação de ficheiros.
  • Criação e eliminação de directórios.
  • Suporte das funções base para a manipulação de ficheiros e directórios.
  • Mapeamento dos ficheiros (lógico) no suporte de armazenamento secundário (físico).
  • Criação de cópias de segurança dos ficheiros em suporte estável, não volátil.
  • Gestão e manutenção das permissões de acesso aos ficheiros.

Um ficheiro é uma colecção de informação relacionada, identificada por um nome. Normalmente, os ficheiros representam programas ou dados.

Propriedades dos ficheiros:

  • Nome
  • Tipo
  • Local
  • Tamanho
  • Segurança
  • Data
  • Dono

Operações sobre ficheiros:

  • Criação
  • Escrita
  • Leitura
  • Posicionamento
  • Eliminação

A estrutura de directórios permite gerir e organizar o conjunto de ficheiros existentes num volume.

Operações desempenhadas num directório:

  • Pesquisa de ficheiros, criação de ficheiros, eliminação de ficheiros, listagem de conteúdos, renomear ficheiros.

São possíveis muitas formas de organização. A mais comum é em árvore com um número arbitrário de níveis.

segunda-feira, 2 de novembro de 2009

Como instalar o Windows XP

Durante o processo de instalação o processo de instalação você terá que fornecer algumas informações.
Deve ter consigo:
  • CD do Microsoft Windows XP.
  • Chave do produto (Product Key) : A chave do produto encontra-se no verso da embalagem do Windows XP.
  • Informações sobre a rede: Se o computador estiver conectado a uma rede (é o que ocorre na maioria dos casos), obtenha estas informações antes de executar a instalação.
- Nome do computador
- Nome do grupo de trabalho ou domínio.
- Número IP,
- Gateway, DNS e Máscara de sub-rede (esses dados são iguais para todos os micros e são fornecidos abaixo).
Vamos configurar a BIOS para o micro dar BOOT pelo drive de CD.


1- Ligue o seu computador e coloque o CD do Windows XP no drive de CDROM. E quando a tela inicial da BIOS aparecer, aperte a tecla DEL ou F2 (vai aparecer no canto inferior esquerdo qual tecla apertar). Na BIOS, aparecerá a tela principal (MAIN) igual a mostrada abaixo.

2- No menu vá para a opção BOOT (Use as teclas ← →).
Agora, você pode escolher qual dispositivo será usado como primeiro boot, segundo boot, terceiro e assim por seguir. Use as teclas ↑↓ para selecionar opção First BOOT DEVICE pressione a tecla ENTER e selecione CD-ROM (vamos dar o BOOT através do CD). Na opção Second Boot Device selecione Hard Drive.



3- Pressione a tecla F10, aparecerá a opção da tela abaixo: SAVE CONFIGURATION CHANGES AND EXIT NOW? Dê OK. Com isso o sistema vai salvar as configurações e dar o boot no PC automaticamente.



4- Em seguida, a tela abaixo aparecerá. Nela tem uma mensagem PRESSIONE UMA TECLA PARA INICIAR DO CD. Preste atenção pois esta tela só aparece por poucos segundos. Aperte qualquer tecla para iniciar do CD.



5- O CD começará a ser acessado. A próxima tela a aparecer é igual à abaixo.


6- Espere até que apareca a próxima tela (veja abaixo). Você quer instalar o Windows XP no disco rígido, então aperte ENTER.


7- Após teclar ENTER, a tela abaixo aparecerá (Contrato do Windows XP). Se concordar com o contrato (ou seja, quiser instalar o Windows XP), tecle F8.


8- Se o seu HD está novinho, se nem estiver formatado, você terá que criar uma partição no mesmo e depois formatar. Veja que a própria instalação particiona e formata o seu HD. E tem instruções bem fáceis de seguir.


Após a partição propriamente dita, selecione: Formatar a partição utilizando sistema de arquivo NTFS (Rápido). Presione ENTER (veja abaixo na tela).


9- Depois de particionado e formatado, você deve apertar ENTER na tela mostrada abaixo.

10- O programa começará a copiar os arquivos.


11- Após a conclusão da cópia de todos os ficheiros de instalação (processo que pode levar vários minutos). Não deveremo fazer nada, pois caso pressionemos alguma tecla, como o cd de instalação ainda está na drive, poderemos voltar a entrar no menu de instalação do Windows XP. Por isso, deveremos esperar mais um pouco… enquanto a instalação continua…


12- O próximo ecrã permite a personalização do sistema. Podem introduzir o vosso nome e o nome da vossa organização e clicar em “Next”.


13- No ecrã seguinte deverã introduzir a chave do Windows XP que estão a instalar. E clicar em “Next”.


14- No próximo ecrã escolhemos o nome do computador, e introduzimos a password de administrador caso desejemos que exista uma. E clicamos em “Next”.

15- Depois escolhemos o nosso fuso horário, e acertamos a hora e data. E clicamos em “Next”.


16- Após alguns minutos, é-nos apresentado o menu de configuração da rede. Neste passo poderemos seleccionar “Typical Settings” e clicar em “Next”.


17- No ecrã seguinte, deixar as opções pré-definidas e clicar em “Next”. Se estiver numa rede, escolha a outra opção, e introduza o domínio da rede


18- A instalação continua durante mais alguns minutos…

19- Após algum tempo, o Windows XP arranca pela primeira vez

20- No arranque do Windows XP somos questionados para definirmos algumas configurações do sistema. Escolham as opções que melhor se adequarem à vossa situação. Em quase todos os menus bastará clicar em “Next”. Caso tenham alguma dúvida, deixem um comentário. Tentaremos ajudar.


21- Finalmente estamos dentro do nosso novo sistema operativo.