TrabalhosGratuitos.com - Trabalhos, Monografias, Artigos, Exames, Resumos de livros, Dissertações
Pesquisar

Resumo Sistemas Operativos

Por:   •  4/7/2017  •  Resenha  •  3.282 Palavras (14 Páginas)  •  389 Visualizações

Página 1 de 14

Gestão de Processos:

Processos:

Definição:

  • Entidade lógica autónoma formada por alocação de recursos e execução de instruções – representa um programa em execução
  • É executado numa “Máquina Virtual”
  • Possui memória e outros recursos
  • Engloba uma ou mais threads que partilham recursos do processo
  • Recursos necessários: CPU, Memória e Dispositivos de E/S
  • Recursos são alocados quando: se dá a criação do processo e na execução

Conceitos:

  • Processador: Hardware responsável por toda a atividade do sistema; executa ações definidas em instruções máquina
  • Processo: Entidade Ativa; executa um conjunto de ações determinadas por um programa
  • Programa: Entidade Passiva; sequências de instruções sem atividade própria, essas instruções são executadas por processos.

Pseudo-paralelismo:

  • Os sistemas operativos atuais são, na sua maior parte, multiprogramados
  • A simulação do paralelismo advém da partilha concorrente do processador, que vem da existência de diversas atividades que disputam o acesso aos recursos do sistema

Características:

Um processo tem um PCB (bloco de controlo), contexto de execução, e um Address Space (Espaço de endereçamento), memória atribuída a cada processo pelo Sistema Operativo.

  • Bloco de Controlo:

Esta estrutura contém toda a informação sobre o processo:

  1. Estado do Processo
  2. Contador de programa: contém o endereço da instrução seguinte a ser executada
  3. Registos de CPU: o valor corrente de todos os registos deve ser guardado em memória quando o processo transita de estado
  4. Parâmetros de escalonamento: inclui a prioridade do processo
  5. Informação de memória
  6. Informação de segurança e auditoria
  7. Informação referente a entrada/saída

PID (Process ID) é um identificar único do processo.

  • Espaço de endereçamento:

[pic 1]

Estados Internos:

[pic 2]

[pic 3]

[pic 4]

[pic 5]

[pic 6]

[pic 7]

[pic 8]

Modelo Computacional:

  • Estrutura de dados- Árvore
  • Estrutura hierárquica

[pic 9]

[pic 10]

Operações sobre processos:

  • Processos podem ser (são) executados concorrentemente:

  • Criação e Destruição de forma dinâmica.

[pic 11]

Criação de processos:

Existem 4 eventos que podem causar a criação de um novo processo:

  1. Inicialização do sistema
  2. Execução de uma chamada de sistema dentro de um processo (“fork()”)
  3. A pedido de um utilizador; quando executa um programa
  4. Início de um “batch job”

Criação de processos filhos:

Quando um processo cria outro processo existem duas possibilidades:

  • O “Pai” continua a executar corretamente com o “Filho”
  • O “Pai” espera até que alguns ou todos os “Filhos” terminem.

Existem também duas possibilidades em termos do espaço de endereços dos “Filhos”:

  • Adquire um duplicado exato do ”Pai”: programa e dados
  • É carregado um novo programa[pic 12]

[pic 13]

Colaboração entre processos:

[pic 14]

[pic 15]

Término de um processo:

Um processo termina devido a uma das seguintes condições:

  1. Saída normal
  2. Saída com erro
  3. Erro fatal
  4. Morto por outro processo: chamada de sistema “kill()”.

O processo quando termina é retirado de execução e liberta o contexto e recursos por ele detidos.

Threads:

Definição:

  • Uma thread é um fluxo de atividade que é executada no âmbito de um processo
  • Thread ID é um contador do programa, o seu conjunto de registos e uma pilha (stack)
  • Um processo pode ter apenas uma linha de execução (single threaded process) ou ter várias linhas de execução (multithreaded process)

Single thread vs Multithread

[pic 16]

Motivação:

Em muitos casos existem várias tarefas a serem realizadas quase ao mesmo tempo, ou seja, concorrentemente. Se uma tarefa bloqueia, as outras podem aproveitar o tempo de CPU do processo.

Por exemplo: quando um browser está a ser executado, podemos ter uma thread que está a carregar as imagens, outra que está a aceitar uma stream da rede e outra que está associada À entrada de dados do teclado.

Diferenças em relação aos processos:

A criação de uma thread é mais leve que a de um processo, a nova thread partilha o espaço de endereços, dados, recursos do processo onde foi criada. Trocar a execução entre threads também é significativamente mais rápida e mais eficiente do que trocar entre processos.

  • Vantagens:

  • Tempo de resposta: a aplicação continua a funcionar mesmo que uma das threads esteja bloqueada
  • Partilha de recursos
  • Economia: alocação de memória e recursos a um novo processo é custoso e moroso. Troca de contexto de processos também o é.
  • Escalabilidade em arquiteturas multiprocessador: várias threads podem ser executadas em paralelo por vários CPU’s

  • Desvantagens/Dificuldades
  • Como planear/implementar a divisão de tarefas em atividades
  • Equilíbrio da divisão de trabalhos pelas várias tarefas
  • Necessidade se sincronização
  • Testes e debugging

Modelos de multithreading:

O suporte para threads pode ser providenciado ao nível do utilizador ou ao nível do kernel (a maior parte dos SO’s suporta threads no seu kernel)

[pic 17]

[pic 18]

[pic 19]

[pic 20]

Implementação: Bibliotecas de Threads

As três bibliotecas mais usadas:

  • POSIX Pthreads
  • WIN32
  • Java Threads

Problemas das Threads:

[pic 21]

[pic 22]

[pic 23]

[pic 24]

[pic 25]

Escalanador- “Scheduler”

Escalonamento (Um único CPU):

  • É a base dos SO’s que suportam multi-programação
  • Quando existem 2 ou mais processos no estado Executável, deve existir uma decisão que vai decidir qual se vai executar a seguir
  • Quem vai decidir é o Escalanador
  • O que coloca um novo processo na CPU é o dispatcher 
  • Objetivo: manter o CPU ocupado durante o maior tempo possível, obtendo a maximização da utilização do CPU

Maximização do CPU:

  • Um processo está em execução até executar uma operação de E/S
  • Dado que esta operação é demorada e deixa o CPU parado, o SO tira este processo do CPU
  • O SO dá o CPU a outro processo à espera para ser executado

Escalanador (Scheduler):

  • Responsável pela implementação do algoritmo de scheduling, que irá determinar qual o próximo processo a ser executado
  • Coloca o próximo processo a ser executado no topo desta lista
  • Esta lista é mantida em memória principal
  • O Escalanador, após selecionar o processo, aloca CPU para esse processo
  • Em geral, cada elemento dessa lista aponta para o Bloco de Controlo do Processo

Dispatcher:

  • Responsável pela colocação efetiva de um processo no CPU
  • Após a seleção do processo e alocação do CPU pelo Escalanador, o dispatcher dá o controlo do CPU ao processo
  • O dispatcher deve ser rápido e eficiente
  • Este processo chama-se latência do dispatcher

CPU bound: Processo com poucas rajadas de CPU mas longas

IO bound: Processos com muitas rajadas de CPU mas curtas

...

Baixar como (para membros premium)  txt (20 Kb)   pdf (1 Mb)   docx (1.1 Mb)  
Continuar por mais 13 páginas »
Disponível apenas no TrabalhosGratuitos.com