Gerenciamento 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),
semáforos,
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.
Gerenciamento de memória
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.
Sistema de arquivos
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.
O sistema de arquivos é a estrutura que permite o gerenciamento de arquivos—criação, destruição, leitura, gravação, controle de acesso, etc.
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.
Sistema 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.
Um multiprocessador ou sistema multiprocessador é 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 controlo; cada processador contém sua própria unidade de controlo. Assim, efectivamente, a lógica de controle é distribuída 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.
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 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.
Subscrever:
Enviar feedback (Atom)
Sem comentários:
Enviar um comentário