quinta-feira, 3 de dezembro de 2009

Sistemas Operativos - Trabalho

Gestão de Processos


Um Processo é uma instância de um programa em execução. No entanto, um programa pode ser constituído por vários processos



Processos:

Cada processo pode ser considerado como um programa em execução.
Abstracção do SO que contém dados referentes ao código a executar, às variáveis, à pilha (stack), às áreas de memória, aos parâmetros, etc.



Exemplos:

Comandos ou programas em execução
ShellProcessos do sistema: syslog, rpciod, etc.



Um Processo define:
- Um conjunto de operações:
- Operações elementares, normalmente um subconjunto das instruções do processador
- Operações de interacção com outros processos



Um espaço de endereçamento

Um processo executa-se dentro de um espaço de endereçamento bem delimitado, evitando que possa interactuar de forma indevida com os outros processos ou com o próprio Sistema Operativo.



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 da Memória



Controla a utilização da memória física.
Cada posição de memória, byte ou word é endereçada individualmente.



A memória é utilizada para armazenar:

- Código referente a processos
- Dados e a stack referente a cada processo
- Comunicação com os dispositivos de I/O


Os algoritmos de alocação de memória devem ter como objectivo reduzir a fragmentação da memória..


First Fit
Aloca o primeiro pedaço de memória livre que tenha espaço suficiente

Best Fit
Aloca o pedaço de memória livre mais pequeno mas com espaço suficiente para conter os dados

Worst Fit
Aloca o maior pedaço de memória livre



Funções do Sistema de Gestão da Memória Principal:

- Registo actualizado das zonas de memória sob utilização e por quem
- Decisão sobre os processos a carregar em memória face ao espaço ainda disponível em memória
- Reservar e libertar espaço de memória







Gestão de Ficheiros


O Sistema Operativo fornece uma visão uniforme do sistema de ficheiros, independentemente da tecnologia usada.


Ficheiro:

- Colecção de informação relacionada entre si
- Programas
- Dados
- Organizados por directórios



Funções do Sistema de Gestão de Ficheiros:

- Criar/Apagar ficheiros e directórios
- Operações de leitura e escrita em ficheiros
- Mapeamento dos ficheiros no disco
- Escalonamento do acesso ao disco
- Protecção de acesso aos ficheiros






Sistema distribuído


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 objectivo é concluir uma tarefa em comum.



Definição


Um sistema distribuído é uma "colecção de computadores independentes que se apresenta ao utilizador como um sistema único e consistente.

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.






Sistemas multiprocessador


Uma forma lógica de aumentar o desempenho de uma arquitectura é adicionando vários processadores.


- Teoricamente, a junção do N processadores pode conduzir a uma melhoria do desempenho em N vezes, atingindo uma capacidade de processamento superior a qualquer sistema uni processador.

- Escaláveis: o desempenho do sistema pode ser melhorado adicionando mais unidades de processamento.

- Populares em servidores de ficheiros e de bases de dados.

- Podem ser utilizados para executar uma só aplicação (p. ex. simulação do tempo) ou para suportar a carga de vários utilizadores (p. ex. servidores Web).







Sincronização


Sincronização é o gerenciamento adequado de múltiplas linhas de execução ou processos concorrentes que acessam um mesmo recurso limitado ou uma porção de dados, situação conhecida como condição de corrida.

Este gerenciamento em geral deve prover acesso a todas as linhas de execução dentro dos limites do recurso limitado, de modo que todas tenham tempo finito de espera (não ficarão em espera infinita). No caso de acesso a uma porção de dados, as leituras e escritas realizadas devem ocorrer de modo a preservar a consistência.

Entre o mecanismo que provém sincronização podemos citar os semáforos e exclusão mútua que definem regiões críticas.

Sincronização é útil em programas multitarefa para manter a consistência de dados usados por diversas linhas de execução, em sistemas distribuídos para controlar o acesso de diversos nós a um recurso limitado e bancos de dados para escalonar adequadamente acessos concorrentes à base.






Escalonamento


O escalonamento de processos ou agendador de tarefas (em inglês scheduling) é uma actividade organizacional feita pelo escalonador (scheduler) da CPU ou de um sistema 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

Selecciona 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


Selecciona 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


Selecciona entre os processos novos, os que são limitados por I/O 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.





Sem comentários:

Enviar um comentário