Gestão de processos
- 1. Processo
- 1.1 definições de processo
- 1,2 relações e diferenças nos processos e procedimentos
- 1.3 processo de composio
- 1.4 Características de processo
- estrutura de controlo 1.5 Processo
- 2 Estado Processo
- processo de gestão de ciclo de vida 2.1
- 2.2 processo de mudança de status modelo
- 2.3 Processo de trava
- 3 tópicos (Thread) Gestão
- 3.1 Utilização tópicos Why
- 3.2 O que é o fio
- Atingir 3,3 rosca
- Mais de 3,4 tópicos exemplo interface de programação
- 4 contexto interruptor (contexto)
- 5 Processo de Controlo
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
- 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 - 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 - PCB contém três tipos de informação
- organização do PCB
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
- Criação de processo
- Processos em execução
(algoritmo de escalonamento) - processo de espera
, como esperando para ler o arquivo, e outro processo colaborativo, e ele não terminou o processo, dados e outros recursos - processo de Wake
- Finalizar processo
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
A figura de três estados
diagrama de estado Cinco
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
não vai duram muito tempo, é um processo rápido, porque acaba de completar do PCB inicialização
do sistema operacional para concluir
espera para ler e escrever arquivos, recursos
do sistema operacional para concluir o estado de transição
2.3 Processo de trava
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)
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?
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
problemas:
- 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)
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
esta entidade é o fio!
3.2 O que é o fio
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
OS só ver o PCB, consulte TCB, TCB é gerido pela gestão de bibliotecas fio de
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
(janelas típicas)
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)
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)
(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
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
2 o PCB parecem forquilha (depois)
o processo pai, executar directamente: = PID 127
PID = 128: subprocesso cargas (exec ( "/ bin / calc ")) torna-se a FIG
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:
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
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
5.2 O processo de processo de carregamento e execuçã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
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:
: memória real (executar fork () após a replicação completa)
depois de executar Exec ():
Exec (): programas diferentes de carga, a implementação do novo programa, após a execução, a pilha de código é substituído
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
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
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
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