quinta-feira, 10 de março de 2011

SISTEMA OPERATIVO


Etapas de Instalação e Configuração
do Sistema Operativo

Trabalho realizado por:
Mykhaylo Bilinkevych
Mário Anjos


Começa por…

1. Fazer boot pelo suporte do sistema operativo

2. Seleccionar o idioma a instalar e as definições. Depois clicar em Avançar.

3. Clicar em Instalar Agora.

4. Clicar em Instalação Personalizada (Avançada).

5. Neste passo seleccionar a partição onde se instala o SO. Caso esteja a partição criada seguir para o passo 7. Caso contrário, seleccionar o espaço disponível e clicar em Novo.
NOTA: recomenda-se criar duas partições, uma para instalar o SO e outra para guardar os documentos.
6. Seleccionar o tamanho a usar na nova partição. Depois clicar em Aplicar

7. Seleccionar a partição onde se pretende instalar o SO e clicar em Avançar.

8. Inicia-se a instalação do SO.

9. Durante o processo de instalação do SO, o computador vai ser reiniciado automaticamente.

10. Depois de reiniciar vai concluir o processo de instalação do SO.

11. Agora que o SO acabou de ser instalado, vai iniciar o processo de verificação do hardware.

12. Introduzir o nome de utilizador e nome do computador. Depois clicar em Avançar.

13. Definir uma password para a conta de utilizador. Depois clicar em Avançar.

14. Clicar em Usar configurações recomendadas.

15. Verificar se as configurações de data e hora estão correctas. Depois clicar em Avançar.

16. Terminou o processo de configuração do SO. Seja bem-vindo.

17. O SO está instalado e pronto ser utilizado.

quarta-feira, 9 de março de 2011




Trabalho realizado por:

Carla Valério
André Santos

DEADLOCK



INTRODUÇÃO



Deadlock (interbloqueio, blocagem, impasse), no contexto dos sistemas operacionais (SO), caracteriza uma situação em que ocorre um impasse e dois ou mais processos ficam impedidos de continuar suas execuções, ou seja, ficam bloqueados. Trata-se de um problema bastante estudado no contexto dos Sistemas Operacionais, assim como em outras disciplinas, como banco de dados, pois é inerente à própria natureza desses sistemas.



DEADLOCK


O deadlock ocorre com um conjunto de processos e recursos não-preemptíveis (sem preferência definida), onde um ou mais processos desse conjunto está aguardando a liberação de um recurso por um outro processo que, por sua vez, aguarda a liberação de outro recurso alocado ou dependente do primeiro processo.
A definição textual de deadlock normalmente, por ser muito abstracta, é mais difícil de se compreender do que a representação por grafos (conjunto de vértices em diagrama), que será resumida mais adiante. No entanto, algumas observações são pertinentes.
O deadlock pode ocorrer mesmo que haja somente um processo no SO, considerando que este processo utilize múltiplos threads (sequência de instruções) e que tais threads requisitem os recursos alocados a outras threads no mesmo processo.

O deadlock indecente da quantidade de recursos disponíveis no sistema;

Normalmente o deadlock ocorre com recursos como dispositivos, arquivos, memória, etc. Apesar da CPU também ser um recurso para o SO, em geral é um recurso facilmente prevenível, pois existem os escalonadores (procedimento operacional) para compartilhar o processador entre os diversos processos, quando trata-se de um ambiente multitarefa.

Um exemplo onde erros de deadlock ocorrem é no banco de dados. Suponha que uma empresa tenha vários vendedores e vários pontos de venda/caixas. O vendedor A vendeu 1 martelo e 1 fumadeira. O sistema então solicita o travamento do registo da tabela stock que contém o total de martelos em stock e em seguida solicita o travamento do registo que contém o total de fumadeiras em stock. Na posse da exclusividade de acesso aos dois registos, ele lê a quantidade de martelos, subtrai 1 e escreve de novo no registo, o mesmo com o registo de fumadeiras. Observe, no entanto que existem diversos caixas operando simultaneamente de forma que se algum outro caixa naquele exacto instante estiver vendendo uma fumadeira, ele ficará aguardando a liberação do registo das fumadeiras para depois alterá-lo. Note que ele só altera os registos depois que for dada exclusividade para todos os recursos que ele precisa, ou seja, de todos os registos. Suponha agora que em outra caixa foram vendidos 1 fumadeira e 1 martelo e que o outro caixa solicitou o travamento do registo com a quantidade de fumadeiras e agora quer o acesso ao de martelos, no entanto o de martelos está travado para o primeiro caixa. Nenhum deles devolve o recurso (registo) sobre o qual tem exclusividade e também não consegue acesso ao outro registo que falta para terminar a operação. Isto é um deadlock.

Condições necessárias para a ocorrência de deadlock:


No texto acima, foi dito que o deadlock ocorre naturalmente em alguns sistemas. No entanto, é necessário referir que tais sistemas precisam de obedecer a algumas condições para que uma situação de deadlock se manifeste.Essas condições estão listadas abaixo, onde as três primeiras caracterizam um modelo de sistema, e a última é o deadlock propriamente dito: processos que estejam de posse de recursos obtidos anteriormente podem solicitar novos recursos. Caso estes recursos já estejam alocados a outros processos, o processo solicitante deve aguardar pela liberação do mesmo;


· Condição de não-preempção: recursos já alocados a processos não podem ser tomados a força. Eles precisam ser liberados explicitamente pelo processo que detém a sua posse;
· Condição de exclusão mútua: cada recurso ou está alocado exactamente a um processo ou está disponível;
· Condição de posse-e-espera: cada processo pode solicitar um recurso, ter esse recurso alocado para si e ficar bloqueado esperando por um outro recurso;
· Condição de espera circular: deve existir uma cadeia circular de dois ou mais processos, cada um dos quais esperando por um recurso que está com o próximo membro da cadeia.

Representação de deadlock em grafos:


Exemplo de representação de deadlock em grafos de alocação de recursos, com dois processos A e B, e dois recursos R1 e R2.O deadlock também pode ser representado na forma de grafos dirigidos, onde o processo é representado por um círculo e o recurso, por um quadrado. Quando um processo solicita um recurso, uma seta é dirigida do círculo ao quadrado. Quando um recurso é alocado a um processo, uma seta é dirigida do quadrado ao círculo.
Na figura do exemplo, podem-se ver dois processos diferentes (A e B), cada um com um recurso diferente alocado (R1 e R2). Nesse exemplo clássico de deadlock, é facilmente visível a condição de espera circular em que os processos se encontram, onde cada um solicita o recurso que está alocado ao outro processo.


Tratamento de deadlock:


As situações de deadlock podem ser tratadas ou não em um sistema, e cabe aos desenvolvedores avaliar o custo/benefício que essas implementações podem trazer. Normalmente, as estratégias usadas para detectar e tratar as situações de deadlocks geram grande sobrecarga, podendo até causar um dano maior que a própria ocorrência do deadlock, sendo, às vezes, melhor ignorar a situação.


Existem três estratégias para tratamento de deadlocks:

-Ignorar a situação;

-Detectar o deadlock e recuperar o sistema;

-Evitar o deadlock;


Algoritmo do Avestruz (Ignorar a situação):
A estratégia mais simples para tratamento (ou não) do "deadlock", conhecida como Algoritmo do Avestruz, é simplesmente ignorá-lo. Muitos defendem que a frequência de ocorrência deste tipo de evento é baixa demais para que seja necessário sobrecarregar a CPU com códigos extras de tratamento, e que, ocasionalmente, é tolerável reiniciar o sistema como uma acção correctiva.
Detectar o deadlock e recuperar o sistema:
Nessa estratégia, o sistema permite que ocorra o deadlock e só então executa o procedimento de recuperação, que resume-se na detecção da ocorrência e na recuperação posterior do sistema. É na execução desse procedimento que ocorre a sobrecarga, pois existem dois grandes problemas: primeiro, como/quando detectar o deadlock e depois, como corrigi-lo.
Para detectar o deadlock, o sistema deve implementar uma estrutura de dados que armazene as informações sobre os processos e os recursos alocados a eles. Essas estruturas deverão ser actualizadas dinamicamente, de modo que reflictam realmente a situação de cada processo/recurso no sistema.
Só o mero procedimento de actualização dessas estruturas já gera uma sobrecarga no sistema, pois toda vez que um processo aloca, libera ou requisita um recurso, as estruturas precisam ser actualizadas. Além disso, o SO precisa de verificar a ocorrência da condição de espera circular nessas estruturas para a efectiva detecção do deadlock. Esse procedimento, por sua vez, gera outra sobrecarga, que pode ser mais intensa se não for definido um evento em particular para ser executado, como a liberação de um recurso, por exemplo. Assim, ou o SO verifica periodicamente as estruturas (o que não é aconselhável, pois pode aumentar consideravelmente o tempo de espera dos processos não-bloqueados), ou pode-se implementar uma política, onde o SO verifica as estruturas quando o mesmo realizar algum procedimento de manutenção do sistema.Finalmente, só após detectar a presença do deadlock no sistema, o SO precisa corrigi-lo, executando um procedimento de recuperação.
Evitar o deadlock, detecção de deadlock com vários recursos de cada tipo:
Quanto à detecção do deadlock, vamos apresentar uma das técnicas usadas para detectar a ocorrência de deadlock em sistemas que possuem vários recursos de cada tipo.
O algoritmo de detecção de deadlock com vários recursos de cada tipo baseia-se em um ambiente que possua vários recursos do mesmo tipo e os processos solicitam apenas pelo tipo de recursos, não especificando qual recursos desejam utilizar.
Assim, um processo pode requisitar uma unidade de CD para leitura. Se o sistema possuir duas, o processo pode utilizar a que estiver disponível, em vez de especificar uma delas. Dessa forma, o processo solícita o recurso pelo tipo, sem discriminação.

Conclusão

Cada processo é considerado como apto a ser executado até que a detecção prove o contrário. A detecção apenas verifica se os processos requisitam mais recursos do que estão disponíveis, o que caracteriza um deadlock. Caso o processo requisite uma quantidade disponível, então ele pode ser executado, e os recursos que foram solicitados antes podem também ser liberados de volta ao sistema, o que pode permitir que outros processos também concluam suas execuções e liberem os recursos.


Autores:
Mário Anjos
Mykhaylo Bilinkevych

sexta-feira, 4 de março de 2011

Configuração de Backups

Apresentação de um video do PowerPoint de como criar um Backup

trabalho realizado por:
Lénia Borges
Fernando Duarte
Fernando Domingues

quinta-feira, 3 de março de 2011

Instalação de Drivers

A maior dificuldade após uma reinstalação do Windows é a instalação de drivers. Não pelo trabalho em si, que é relativamente fácil, o desafio está em encontrar o driver correcto para determinado hardware. Quando existe o CD de instalação, é fácil, pois o programa encarrega-se de detectar e instalar automaticamente o driver correcto. Mas, quando temos que "caçar" os drivers, então complica-se um pouco.
É muito importante conhecer o que existe no seu computador. Uma boa ferramenta para saber o que há na sua máquina é o PC Wizard, um programa simples e muito útil. Ele faz uma análise completa de todo hardware e software instalado no computador, além de exibir várias hiperligações, com informações sobre os periféricos e drivers para download. É ainda possível criar relatórios completíssimos sobre o computador. Com o PC Wizard você terá conhecimento do que existe na sua máquina. Anote os nomes e modelos de todas as peças, procure os drivers na Internet (isso se você não os tiver), e parta para a formatação e reinstalação do Windows.
Um driver que se deve ter e é praticamente obrigatório nestes casos, é o do modem. Isso porque, caso você não encontre os outros, poderá ligar-se à Internet e fazer o seu download..
Para instalar um driver, primeiro, abra as propriedades do sistema, apertando juntos WinKey (aquela com o símbolo do Windows) e Pause/Break (perto do teclado numérico, à direita), ou então clicando com o botão direito no Meu Computador e indo a Propriedades.
Estando lá, seleccione e abra Hardware, e clique no botão Gestor de dispositivos. Aparecerá uma lista com todos os componentes do seu computador. Os ícones de interrogações amarelas, com uma pequena exclamação de lado, são os componentes "órfãos de drivers". Tente identificar ao que ele se refere. Observe bem o nome: Communication device significa modem; multimedia device, placa de som, e assim por diante.
Iremos utilizar como exemplo a instalação do driver da placa de som, modelo C-Media Mixer CMI8738 onboard. Tendo o driver disponível, descompacte-o numa pasta qualquer; a nossa será a C:\Driver. No Gestor de dispositivos, clique com o botão direito no item Multimedia Device (ou algo parecido), que tem um ícone de uma interrogação amarela. Seleccione Actualizar driver...
No primeiro separador, escolha a opção Instalar de uma lista ou local específico (avançado) e avance.
No próximo separador, deixe marcada a opção Procurar o melhor driver nestes locais. Desmarque a opção Pesquisar mídia removível e marque Incluir este local na pesquisa. Clique no botão Procurar e aponte a directoria onde se encontra o driver descompactado, no nosso caso, C:\Driver. O botão Ok só estará disponível se na directoria apontada houver um driver. Clique em avançar. O Windows identificará o driver, e caso seja o correcto, instalará. Caso não seja este, surgirá um separador informando que não é possível continuar o assistente, pois não foi encontrado o driver correcto. Quando isso acontecer, procure outro driver, e recomece o processo. Em caso de sucesso, um separador informará que correu tudo bem e o hardware está pronto para ser usado. Algumas instalações necessitam de reinicializarão. Finalizando, procure informar-se sempre sobre novos drivers. Eles fornecem melhoras significativas, e exploram ao máximo a capacidade dos periféricos.
Autores: Patrícia Pirraça, Helder Lebreiro e Ricardo Galope

Gestão de Memória

Introdução

A Gestão de memória é um complexo campo da ciência da computação e são constantemente desenvolvidas várias técnicas para torná-la mais eficiente. Na sua forma mais simples, está relacionado em duas tarefas essenciais, sendo elas, a alocação e a reciclagem.
A gestão da memória deve desempenhar as seguintes funções:
 permitir a partilha da memória (para um sistema multi-tarefas);
 permitir atribuir blocos de memória às diferentes tarefas;
 proteger os espaços memória utilizados (impedir, por exemplo, um utilizador de alterar uma tarefa executada por um outro utilizador);
 optimizar a quantidade de memória disponível, nomeadamente por mecanismos de extensão da memória.
A memória é um recurso importante que deve ser gerido com muito cuidado. Chama-se “memória” a todos os componentes electrónicos capazes de armazenar temporariamente dados. Podemos então, distinguir duas categorias de memórias:
 a memória central (chamada de memória interna), permite memorizar temporariamente os dados aquando da execução dos programas. A memória central é realizada com a ajuda de microcondutores, ou seja, circuitos electrónicos especializados rápidos. A memória central corresponde ao que se chama de memória viva.
 a memória de massa (chamada de memória física ou memória externa),permite armazenar informações a longo prazo, incluindo aquando do arranque do computador. A memória de massa corresponde aos dispositivos de armazenamento magnéticos, como o disco duro, os dispositivos de armazenamento óptico, correspondendo por exemplo ao CD-ROM ou os DVD-ROM, bem como as memórias mortas.
A memória tem como principais características: a capacidade, o tempo de acesso, o tempo de ciclo, o débito e a não volatilidade.


Atribuições de instruções e dados à memória (Binding)

A maior parte dos SO permite que um programa possa ser colocado em qualquer posição de memória. No entanto, esta atribuição pode ser em:
 Tempo de compilação – se a localização do programa poder ser conhecida a priori é gerado código com endereços absolutos. Alterações à localização do programa obrigam à sua recompilação.

 Tempo de carga – obriga o compilador a gerar código relocatável, a atribuição do programa a um determinado conjunto de endereços é feita na sua carga para memória

 Em run-time – se durante a execução do programa este poder ser recolocado noutra localização de memória. O que implica a utilização de hardware específico

Endereços Lógicos e Físicos

Nos sistemas actuais, quando a imagem de um processo é gerada, nunca é conhecido o local onde vai ser carregado um processo.
Durante a execução de um processo, este pode vir a ser carregado em zonas distintas de memória.
A separação entre o espaço de endereçamento lógico e espaço de endereçamento físico de um processo é essencial para a Gestão de Memória:
 Endereços lógicos – gerados pelo CPU, também conhecidos por endereços virtuais;
 Endereços físicos – endereços efectivamente enviados para a memória.
O mapeamento (correspondência) entre o espaço lógico e físico é realizado por um dispositivo hardware fundamental:
 Unidade de Gestão Memória ou Memory Management Unit.

Overlays

 Permite que a execução de um programa com tamanho superior ao total de memória disponível
 Apenas ficam em memória as instruções necessárias no momento
 O programador é responsável pelo controlo dos overlays, o SO não tem qualquer papel no seu controlo
 Fora de uso!!!
Swapping

É um mecanismo que permite retirar um processo da memória principal e para a memória secundária (disco), podendo ser utilizado em conjunto com o critério de escalonamento. Pode também ser utilizado em Round-Robin, sendo o processo retirado para o disco assim que terminar o seu time quantum.
Na questão da prioridade, os processos menos prioritários são retirados para o disco até poderem ser executados.
Pode reduzir fortemente a performance do sistema, por exemplo, o tempo necessário para retirar um processo com 1MB da memória e colocá-lo em disco é aproximadamente de 208ms.


Conclusão

A memória principal e os registos e o cache são os únicos dispositivos de armazenamento que o CPU pode aceder directamente. Quando um programa é executado, o seu código tem portanto de ser trazido de disco para a memória central, a imagem do processo é carregada em memória.
Para que o processo possa ser carregado em memória é necessário atribuir-lhe um espaço que pode ser em qualquer zona da memória física que esteja livre, ou num designado por espaço de endereçamento físico do processo.
Uma vez que existem inúmeros processos carregados simultaneamente em memória (residentes), os processos residentes em memória devem ter espaços físicos distintos e têm de existir mecanismos de protecção memória para assegurar a separação entre eles.


Autores: Patrícia Pirraça, Helder Lebreiro e Ricardo Galope