Operando gestão de sistema de processo --4

1. Processo

1.1 definições de processo

  • É um programa da primeira apresentação
  • Ou que o processo é um exemplo de execução do programa
  • Cada processo tem seu próprio espaço de endereço
  • Consumir recursos do computador (CPU, IO, etc.)
  • Um determinado programa tem uma função separada na execução dinâmica de um conjunto de dados

Por processo de introduzir

De um ponto de vista histórico, o sistema operacional, o primeiro sistema operacional só pode apoiar um programa para ser executado, com o desenvolvimento posterior, CPU crescendo, mais e mais memória, mais e mais programas armazenados na memória, desta vez, Se você executar um programa muitas vezes, tantos exemplos de programas também usar o programa para indicar claramente inadequada.

1,2 relações e diferenças nos processos e procedimentos

  • Programa é a base do processo, o processo se reflete na funcionalidade do programa
  • Por executadas repetidamente, um programa pode ter vários processos; chamando relações, um processo pode conter vários programas
  • Programa é um processos entidade estática (ie, código em execução)
  • É um processo dinâmico, o programa é estática
  • Programa é um conjunto ordenado de código, o processo é a execução do programa, o processo tem um modo de núcleo e modo de usuário ( por kernel do modo : se os pedidos de processo para ler e gravar um arquivo para o sistema operacional, desta vez em nome de um processo executado no kernel do sistema operacional, esta quando em modo kernel)
  • Processo é temporário, o programa é permanente: o processo é um processo de mudança de estado, o programa de preservação a longo prazo
  • Os processos e procedimentos das diferentes funções: a composição do processo, incluindo os programas, dados e controlo do processo rápidos
  • Programa pode corresponder a uma pluralidade de processos, cada processo gera uma hora de início
    Exemplo:
    receita = procedimentos,
    cozinhado = a CPU,
    a matéria-prima = dados,
    um bolo = Processo de
    processo pode ser comutada

1.3 processo de composio

  • Código (em memória) Programa
  • Dados (em memória) do processamento do programa
  • Próxima instrução no valor contador de programa indicando um prazo de
  • O valor atual de um conjunto de registos de uso geral, montão, pilha,
  • Um conjunto de recursos do sistema (como arquivos abertos)
    Em suma, o processo contém todas as informações de status de um programa em execução

1.4 Características de processo

  • Dinâmico: criados dinamicamente, Processo End
  • Simultaneidade: processos pode ser programado de forma independente e usando o processo de transformação
  • Independência: o trabalho de diferentes processos não afetam uns aos outros (com a proteção de tabela de página)
  • restrições de sincronização que surgem devido entre o acesso a dados compartilhados / recursos ou processos: Restrição

Concurrent e Paralela

Concorrente: quando apenas uma CPU, apenas um programa por vez é executado, executar outros programas, quando necessário, podem ser comutadas em um curto período de tempo pode ter uma pluralidade de programas são executados
em paralelo: quando existem múltiplas CPU em um momento pode ter uma pluralidade de programas são executados

Estruturas de Dados algoritmos + = Programas
descrição da estrutura de dados do processo: o bloco de controlo do processo (bloco de controlo de processo, PCB)
sistema operacional para cada processo mantém um PCB, para armazenar várias informações de estado associada com o processo de

estrutura de controlo 1.5 Processo

  1. bloco de controlo do processo: informação conjunto Um sistema operativo controla o processo de controle de execução pelo
    sistema operacional com o PCB para descrever a base, bem como durante a operação de mudança de processo
    PCB se encontra presente no processo de 唯一标志
    PCB associada processos de vida do processo gerar PCB que produzem, processo de matriz PCB i.e. murchar
  2. bloco de controlo do processo utilizando
    o processo de criação de: geração de uma PCB para o processo
    para terminar o processo: PCB recuperado seus
    processos de organização e gestão: implementado pela organização e gestão de PCB
  3. PCB contém três tipos de informação
    Aqui Insert Picture DescriçãoAqui Insert Picture Descrição
    Aqui Insert Picture Descrição
    Aqui Insert Picture Descrição
  4. organização do PCB
    Aqui Insert Picture Descrição
    número de processo relativamente fixa, maneira indexada podem ser empregues, geralmente lista ligada, adição e eliminação de facilitar

2 Estado Processo

processo de gestão de ciclo de vida 2.1

  1. Criação de processo
    Aqui Insert Picture Descrição
  2. Processos em execução
    Aqui Insert Picture Descrição
    (algoritmo de escalonamento)
  3. processo de espera
    Aqui Insert Picture Descrição
    , como esperando para ler o arquivo, e outro processo colaborativo, e ele não terminou o processo, dados e outros recursos
  4. processo de Wake
    Aqui Insert Picture Descrição
  5. Finalizar processo
    Aqui Insert Picture Descrição

2.2 processo de mudança de status modelo

Três estados de processo

O processo antes do final da vida de 处于且仅处于um dos três estados básicos
o número de processos em sua configuração do sistema de estado diferente
Aqui Insert Picture Descrição

A figura de três estados

Aqui Insert Picture Descrição

diagrama de estado Cinco

Aqui Insert Picture Descrição
Run -> Pronto: os processos de múltiplas Pronto, para garantir que cada processo são susceptíveis de continuar a executar, pronto para cada processo é atribuído um intervalo de tempo, você pode executar completa e foi substituído, outra mudança está pronto para execução
Aqui Insert Picture Descrição
não vai duram muito tempo, é um processo rápido, porque acaba de completar do PCB inicialização
Aqui Insert Picture Descrição
do sistema operacional para concluir
Aqui Insert Picture Descrição
espera para ler e escrever arquivos, recursos
Aqui Insert Picture Descrição
do sistema operacional para concluir o estado de transição

2.3 Processo de trava

Aqui Insert Picture Descrição

estado suspenso

  • Bloqueado pendente (Blocked_suspend): processo na espera de memória externa para um evento
  • Pronto suspenso estado (Ready_suspend): No processo de memória externa, mas apenas ir para a memória, você pode executar

Associada à conversão pendente

  • Suspender (suspender): um processo de memória para a memória externa; pode ter as seguintes situações:
    • → pendurar obstruindo: quando nenhum processo no estado pronto ou o processo pronto requer mais recursos de memória, esta conversão ocorre, a apresentar um novo processo de prontidão operacional do processo ou (para liberar mais espaço de memória a um estado de prontidão / processo)
    • Pronto → Pronto para pendurar: Quando um de alta prioridade bloqueado (o sistema em breve será considerado pronto) processo eo processo de baixa prioridade está pronto, o sistema irá optar por suspender processo pronto baixa prioridade
    • Run → pronto para pendurar: ao sistema preventivo, quando há um processo de alta prioridade devido a eventos de obstrução pendente para o pronto para pendurar, o sistema pode estar pronto para executar o processo irá suspender estado
  • No estado da conversão de memória externa:
  • Suspender para pendurar em bloqueio continuou: Quando um bloqueio ocorre devido pendente eventos relacionados com o processo, o sistema irá suspender o processo de bloquear o processo de conversão está pronto para pendurar (ou disco rígido, mas o estado mudou)
    Aqui Insert Picture Descrição
    pergunta: OS como por PCB e processos para gerenciar a definição estado de PCB, para ajudar a completar o processo de processo de agendamento?
    Aqui Insert Picture Descrição
    Aqui Insert Picture Descrição
    Aqui Insert Picture Descrição
    Se o evento só pode atender 1 um processo de bloqueio, só que este estado, bloqueando o processo torna-se pronto
    se se pode satisfazer todas, colocar todo o estado estão se tornando pronto

3 tópicos (Thread) Gestão

Desde a década de 1960 apresentou o conceito do processo, no sistema operacional tem sido sempre a progredir como unidade básica operar independentemente até meados da década de 1980, ele também propôs unidade básica menor pode operar de forma independente - Rosca

3.1 Utilização tópicos Why

Aqui Insert Picture Descrição
Aqui Insert Picture Descriçãoproblemas:

  • O som pode jogar fora coerente?
    Read () indica lidos a partir dos arquivos do disco rígido, o disco rígido ler velocidade é lenta, que irá conduzir a esta última solução não realizar compressão, ou seja, entre as respectivas funções não são executadas simultaneamente, afetando a eficiência do uso de recursos (I / O e CPU não se sobrepõem, em vez de em simultâneo)
    Aqui Insert Picture Descrição
    poucos começa a ler os dados. Quando o jogador é bloqueada quando o read (), a implementação de outros processos, assegurar eficiente

Problemas:
1, como a comunicação entre processos, dados compartilhados? (Um estado de dados do processo de como passar o processo 2?)
2, maiores processos de manutenção gerais (o processo de comutação necessidade de guardar e restaurar, uso intensivo de recursos)
, quando o processo de revogação; processo de criação, alocar recursos e estabelecer PCB: sobrecarga , recuperação de recursos, revogação PCB; quando o processo de mudança para salvar o estado atual das informações do processo
Aqui Insert Picture Descrição
esta entidade é o fio!

3.2 O que é o fio

Aqui Insert Picture Descrição

Atingir 3,3 rosca

Há três maneiras de conseguir rosca:

  • threads do usuário: implementado no espaço do usuário (os não pode ver, é gerido pela biblioteca de threads de usuário) (o usuário a Thread)
    os POSIX Pthreads, o Mach C-Threads, os fios Solaris
  • threads do kernel: implementado no kernel (a gestão os)
    do Windows, Solaris, Linux (Kernel do Thread)
  • processos leves: implementadas no kernel para thread do usuário suporte (processo leve)
    do Solaris

A correspondência entre segmentos de usuários e tópicos de kernel

  • Many-to (usuário vários segmentos para o kernel threads)
  • One to One
  • Muitos para muitos

3.3.1 segmento do usuário

Aqui Insert Picture Descrição
OS só ver o PCB, consulte TCB, TCB é gerido pela gestão de bibliotecas fio de
Aqui Insert Picture Descrição
threads do usuário desvantagens:

  • chamada de sistema obstrutiva como? Se um segmento é bloqueado iniciar uma chamada de sistema, todo o necessidades do processo de esperar (porque o OS não vê um fio, só para ver o processo)
  • Quando um segmento está em execução, a menos que seja a iniciativa de mão sobre o direito de uso da CPU, ou entre os outros segmentos no processo que não será possível (porque o modo de usuário da biblioteca do condado não pode tomar a iniciativa de romper o segmento de execução, mas o sistema operacional pode ser interrompido, porque tem interrompido)
  • Devido ao intervalo de tempo atribuído para o processo, quando comparado com outros processos, quando a execução de multi-threaded, cada fio fica menos fatia de tempo, a execução será mais lento

3.3.2 segmentos de kernel

Aqui Insert Picture Descrição
(janelas típicas)
Aqui Insert Picture Descrição
unidade básica de programação de gerenciamento de sistema operacional torna-se um fio
para criar todos os segmentos estão programados para ser concluída até o sistema operacional
processo de gestão de recursos é a principal realização de
uma série de lista de TCB gestão PCB, na programação específica é feita por TCB
cada parâmetro thread de cada vez, deve haver uma mudança do modo kernel modo de usuário, grande sobrecarga

3.3.3 LWP

É apoiado pelo segmento de usuário kernel, um processo pode ter um ou mais leves processos, cada um dos processos a fim por um fio kernel separado para alcançar (Solaris / Linux)
Aqui Insert Picture Descrição

Mais de 3,4 tópicos exemplo interface de programação

4 contexto interruptor (contexto)

processo de transferência (contexto será guardado para o PCB)
Aqui Insert Picture Descrição
Aqui Insert Picture Descrição
(implementado por montador)
sistema de operação para o processo de preparação do bloco de controlo de processo activo (PCB)
do sistema operacional será colocado numa fila de PCB adequado
Aqui Insert Picture Descrição

5 Processo de Controlo

5.1 Processo de criação (vídeo não encontrado)

  • Criando um PCB
  • Dado um identificador pid processo único
  • inicialização PCB
  • Definir a ligação adequado, tal como: o novo processo é adicionado à fila pronto

Aqui Insert Picture Descrição
Aqui Insert Picture Descrição
Aqui Insert Picture Descrição
Aqui Insert Picture Descrição
Aqui Insert Picture Descrição
2 o PCB parecem forquilha (depois)
o processo pai, executar directamente: = PID 127
PID = 128: subprocesso cargas (exec ( "/ bin / calc ")) torna-se a FIG
Aqui Insert Picture Descrição
Aqui Insert Picture Descrição
Aqui Insert Picture Descrição
forquilha () para gerar o primeiro ciclo de dois , o segundo ciclo é gerado no primeiro ciclo, seguido por duas forquilha () produz quatro. . . A figura a seguir:
Aqui Insert Picture Descrição
não uma seqüência juntos, mas criar um novo processo, colocá-lo para a fila pronta, devido ao algoritmo de escalonamento, o processo recém-criado não é estritamente na execução da ordem
Aqui Insert Picture Descrição
esquerda para a fork () chamada de função
direita a imagem mostra o fork () implementação interna

Quando todos os usuários do programa foram concluídas, CPU pitching, é criado durante o processo ocioso
Aqui Insert Picture Descrição

5.2 O processo de processo de carregamento e execução

Aqui Insert Picture Descrição
exec (): deixe o programa atual para implementar o novo programa
depois quando a implementação do novo programa, todos os códigos de dados e outros conteúdos novo vai se tornar aquelas armazenadas
segmentos do mapa no vermelho: Se exex ( "calc", ...) é executado, o segmento de código é coberto, não vai executar o printf ( "Por que o eu executar?")
o fork () pode retornar depois de realizar <0, = 0,> 0
Aqui Insert Picture Descrição
visto na figura, após o fork (), todos os replicação de dados de código um processo filho pid depois de copiar o mesmo, mas o código se tornará a ser executado, alterar a parte do código da variável figura seguinte:
Aqui Insert Picture Descrição
: memória real (executar fork () após a replicação completa)
Aqui Insert Picture Descrição
depois de executar Exec ():
Aqui Insert Picture Descrição
Aqui Insert Picture Descrição
Exec (): programas diferentes de carga, a implementação do novo programa, após a execução, a pilha de código é substituído
Aqui Insert Picture Descrição
fork () Qual deveria ser a cópia de memória de pilha de código completo, e executar exec () será posteriormente coberto, cópia branco, como otimizar?

  • vfork (): Copiar apenas uma parte do necessário, imediatamente após um exec ()
  • O uso de memória virtual, usar a cópia na escrita, o tempo de gravação e depois copiada. Quando o processo pai cria um processo filho, copie o espaço de endereço, basta copiar o espaço de endereço processo pai necessários para os dados originais (ou seja, mesa de página, eles referenciar o mesmo espaço de endereço), o processo de pai ou filho a uma certa gravação unidade de endereço quando irá acionar uma exceção, para que o processo pai ou filho para completar uma operação, copiar em 2 partes desencadear uma página de exceção, para que o processo filho do processo pai, cada um com um endereço diferente, replicação write-demand, se tudo é somente leitura não há necessidade de copiar. Se por trás da execução não é executado exec, fork () ainda é o mesmo

5.3 espera e encerrar processos

Aqui Insert Picture Descrição
O processo pai para esperar o fim do processo filho?
Quando o fim de um processo é executado, ele irá chamar o exit (), mas todos os recursos necessários para este processo não está totalmente recuperado, memória, arquivos abertos e outros recursos serão recuperados no modo de usuário, mas a presença orifício interno de representantes do processo atual que identifica exclusivamente após --PCB (recursos no kernel) não serão recuperados, isso é difícil de reciclar-se, apenas com o processo pai, de saída do processo child (), notifique libertado em espera no kernel do processo de processo pai da criança para ajudar o processo filho recursos
Aqui Insert Picture Descrição
antigos recursos do usuário do processo filho após ser liberado, mas os recursos do kernel não lançado, em um estado zumbi, não funciona apenas esperando para ser reciclado

Pai antes de o processo será encerrado criança (morte), como recuperar que os processos de criança?
Isto irá levar a mais e mais processo zombie, o processo tem uma relação entre pais e filhos, o primeiro processo, a saber ancestral processo verifica periodicamente o bloco da lista de controlo de processo, se o processo se encontra num estado zombie, em vez do processo pai para completar a operação de recuperação de recursos correspondentes
Aqui Insert Picture Descrição
exec (): carregar uma execução do programa; executar uma execução do programa.
Assume que existe o programa no disco é carregado, ele será carregado do disco na memória, o processo será mais longo, a transição de executar um estado para outro bloco será exibido

Publicado 16 artigos originais · ganhou elogios 0 · Visualizações 241

Acho que você gosta

Origin blog.csdn.net/qq_42713936/article/details/104936046
Recomendado
Clasificación