O segundo capítulo do sistema operacional - programação em três níveis e algoritmo de programação da CPU

Programação em três níveis de uma CPU

Referência de: este  e este

  • Programação avançada

  • Agendamento intermediário

  • Agendamento de baixo nível

1.1 Programação avançada

Agendamento avançado: ou seja, agendamento de trabalhos, de acordo com uma determinada estratégia, o programa no disco selecionado é carregado na memória e o processo é estabelecido. (Existe no sistema em lotes multicanal)

Aqui, explique a diferença e a conexão entre o trabalho e o processo

O trabalho pode ser dividido em quatro etapas: compilar, vincular, carregar e executar.

Quando um trabalho é selecionado o agendamento de tarefas (programação avançada) para a memória e colocar o tempo dentro do prazo , o sistema operacional gera um processo de usuário para completar suas tarefas de computação que os usuários finais trabalham.

O processo é a entidade de execução do trabalho (programa) que foi enviado e selecionado para execução, além de ser a unidade básica para aplicar e alocar recursos ao sistema para concluir a tarefa, no estado de execução, pronto, aguardando etc.

Em resumo:

  • O trabalho é a entidade da tarefa e o processo é a entidade de execução que conclui a tarefa

  • Sem uma tarefa de trabalho, o processo não tem nada a ver; sem um processo, a tarefa de trabalho não pode ser concluída

  • O conceito de tarefas é mais usado em sistemas operacionais em lote; os processos são usados ​​em vários sistemas de multiprogramação

 

1.2 Programação intermediária

Agendamento intermediário: agendamento de trocas, troca de dados entre armazenamento interno e externo de acordo com uma determinada estratégia.

Quando os recursos de memória são escassos, o processo temporariamente inoperável será trocado por falta de memória.Neste momento, o processo está no estado "suspenso" e não participa do planejamento de baixo nível; quando o processo tem condições operacionais e os recursos de memória são ricos, o processo é recuperado novamente na memória Trabalho.

Desempenhe o papel de balanceamento de carga do sistema a curto prazo, aprimore totalmente a utilização da memória e a taxa de transferência do sistema.

 

1.3 Programação de baixo nível

Agendamento de baixo nível: ou seja, o agendamento da CPU (agendamento do processo), de acordo com uma certa estratégia para selecionar o processo pronto, ocupa a CPU para executar.

De acordo com um certo princípio, decida qual processo / encadeamento na fila pronta obtém o processador e transfira o processador para ele.

O agendamento de baixo nível é uma função indispensável de vários sistemas operacionais, e geralmente não é necessário agendar em sistemas operacionais de compartilhamento de tempo puro ou em tempo real.

 

Referência gráfica de: this

 

1. Somente agendamento de processo (agendamento de baixo nível)

 

2. Somente agendamento de nível baixo e alto

 

3. Algoritmo de escalonamento em três níveis

 

 

2.1 Sistema de processamento em lote

O sistema de processamento em lote não possui muitas operações do usuário.Nesse sistema, o algoritmo de agendamento visa garantir o rendimento e o tempo de resposta (tempo desde o envio até o término).

1 Primeiro a chegar, primeiro a chegar, primeiro a chegar, primeiro servidor (FCFS)

2 Trabalho mais curto primeiro (SJF)

3 Prioridade de tempo restante mais curto (SRTN)

4 Maior taxa de resposta primeiro (HSRF)

5 rotação de fatia de tempo

6 Agendamento prioritário

7 Fila de feedback multinível

2.1.1 Primeiro a chegar, primeiro a chegar, primeiro a chegar, primeiro serverd (FCFS)

Algoritmo de agendamento não privado.

Agende na ordem solicitada.

Selecione os trabalhos de acordo com a ordem em que os trabalhos entram na fila de trabalhos de backup do sistema.Os trabalhos inseridos primeiro são selecionados primeiro na memória, criando processos do usuário

É bom para trabalhos longos, mas não é bom para trabalhos curtos, porque os trabalhos curtos devem sempre aguardar a conclusão do trabalho longo anterior antes de serem executados e os trabalhos longos precisam ser executados por um longo período de tempo, resultando em tempo de espera muito longo para trabalhos curtos.

 

2.1.2 Menor trabalho primeiro (SJF)

Algoritmo de agendamento não privado.

Programe na ordem do menor tempo estimado de execução.

Desvantagens: 1. É necessário conhecer antecipadamente o tempo de execução da CPU exigido pelo trabalho, o que é difícil de estimar com precisão.

2. Ignorar o tempo de espera do trabalho tornará o tempo de espera do trabalho longo muito longo

3. A falta de mecanismo de privação não é ideal para compartilhamento de tempo e processamento em tempo real.

 

2.1.3 Prioridade de tempo restante mais curto (SRTN)

Algoritmo de agendamento privado.

Programe na ordem do tempo restante mais curto estimado.

 

2.1.4 Maior taxa de resposta primeiro (HSRF)

Algoritmo de agendamento não privado.

Programe na ordem em que a maior taxa de resposta calculada é menor.

Tratamento preferencial de trabalho curto, mas a fome não ocorrerá.

Desvantagens: Cada cálculo da taxa de resposta de cada trabalho causará um certo tempo de sobrecarga.

(1) Se o tempo de espera do trabalho for o mesmo, quanto menor o tempo necessário para o serviço, maior será sua prioridade, de modo que o algoritmo é propício a trabalhos curtos.

(2) Quando o tempo de serviço necessário é o mesmo, a prioridade do trabalho é determinada pelo seu tempo de espera.Quanto maior o tempo de espera, maior a prioridade, para que ele implemente o primeiro a chegar, primeiro a ser servido.

(3) Para trabalhos longos, a prioridade do trabalho pode ser aumentada com o aumento do tempo de espera.Quando o tempo de espera é longo o suficiente, a prioridade pode ser aumentada para um nível alto, para que o processador também possa ser obtido. Em resumo, o algoritmo cuida dos trabalhos curtos e da ordem de chegada dos trabalhos, e não deixa trabalhos longos sem manutenção por um longo período de tempo. Portanto, o algoritmo alcança um melhor compromisso. Obviamente, ao usar esse algoritmo, a taxa de resposta deve ser calculada antes do agendamento, o que aumentará a sobrecarga do sistema.

 

2.2 Sistema interativo

Os sistemas interativos têm um grande número de interações do usuário, e o objetivo de agendar algoritmos nesse sistema é responder rapidamente.

 

2.2.1 Rotação da fatia de tempo

1) Princípios básicos

No método de rotação de fatia de tempo inicial, o sistema organiza todos os processos prontos em uma fila de acordo com o princípio de primeiro a chegar, primeiro a ser servido.A cada agendamento, a CPU é atribuída ao processo de líder de equipe e é executada para uma fatia de tempo. O tamanho do intervalo de tempo varia de vários ms a centenas de ms. Quando o intervalo de tempo de execução é usado, um timer emite uma solicitação de interrupção do relógio, e o planejador interrompe a execução do processo com base nesse sinal e o envia para o final da fila de pronto; então, o processador é designado para pronto O novo processo de líder de equipe na fila também permite executar uma fatia de tempo. Dessa maneira, pode-se garantir que todos os processos na fila pronta possam obter um tempo de execução do processador de um intervalo de tempo dentro de um determinado período. Em outras palavras, o sistema pode responder a todas as solicitações do usuário dentro de um determinado período.

Todos os processos prontos são organizados em uma fila de acordo com o princípio do FCFS.A cada agendamento, o tempo da CPU é alocado para o processo do líder da equipe e o processo pode executar uma fatia de tempo. Quando o intervalo de tempo acaba, o cronômetro emite uma interrupção do relógio e o planejador interrompe a execução do processo e o envia para o final da fila de espera, enquanto continua alocando o tempo da CPU para o início do processo.

 

A eficiência do algoritmo de rotação do intervalo de tempo tem uma ótima relação com o tamanho do intervalo de tempo:

  • Como a alternância do processo deve salvar as informações do processo e carregar as novas informações do processo, se o intervalo de tempo for muito pequeno, fará com que o processo alterne com muita frequência e levará muito tempo para alternar o processo.

  • Se o intervalo de tempo for muito longo, o desempenho em tempo real não poderá ser garantido.

 

2.2.2 Programação prioritária

Atribua uma prioridade a cada processo e agende de acordo com a prioridade.

O sistema pode predefinir a estratégia como não privada ou privada.

Para impedir que os processos de baixa prioridade nunca esperem pelo agendamento, você pode aumentar a prioridade dos processos em espera ao longo do tempo.

Dessa maneira, o sistema também atribui o processador ao processo com a maior prioridade para execução. Porém, durante sua execução, enquanto outro processo com prioridade mais alta aparecer, o agendador de processos interromperá imediatamente a execução do processo atual (o processo com a prioridade mais alta) e reatribuirá o processador à prioridade recém-chegada O processo mais alto. Portanto, quando esse algoritmo de agendamento é adotado, sempre que um novo processo pronto i aparece no sistema, sua prioridade Pi é comparada com a prioridade Pj do processo j que está sendo executado. Se Pi≤Pj, o processo original Pj continuará sendo executado, mas se Pi> Pj, pare imediatamente a execução de Pj, faça a alternância de processos, para que o processo i seja executado. Obviamente, esse algoritmo de agendamento prioritário de preferência pode atender melhor aos requisitos de operações urgentes; portanto, é frequentemente usado em sistemas em tempo real com requisitos rígidos e em sistemas de processamento em lote e de compartilhamento de tempo com requisitos de alto desempenho.

2.2.3 Fila de feedback multinível

Um processo precisa executar fatias de 100. Se um algoritmo de agendamento de rodízio for utilizado, ele deverá ser trocado 100 vezes.

A fila de vários níveis é considerada para esse processo que precisa executar continuamente várias faixas de tempo.Ele configura várias filas, cada uma com um tamanho de faixa de tempo diferente, como 1, 2, 4, 8, ... O processo não é executado na primeira fila, será movido para a próxima fila. Dessa forma, o processo anterior precisa ser trocado apenas 7 vezes.

A prioridade de cada fila também é diferente, com a prioridade mais alta na parte superior. Portanto, o processo na fila atual só pode ser agendado se nenhum processo estiver na fila na fila anterior.

Esse algoritmo de agendamento pode ser considerado como uma combinação do algoritmo de agendamento da rotação da fatia de tempo e do algoritmo de agendamento prioritário.

(1) Múltiplas filas prontas devem ser configuradas e cada fila deve ter prioridade diferente. A primeira fila tem a prioridade mais alta, a segunda fila vem a seguir e a prioridade das filas restantes diminui uma a uma. O algoritmo atribui diferentes tamanhos de fatias de tempo de execução do processo em cada fila.Quanto maior a prioridade, menor a fatia de tempo de execução especificada para cada processo. Por exemplo, o intervalo de tempo da segunda fila é duas vezes maior que o intervalo de tempo da primeira fila, ..., o intervalo de tempo da i + 1ª fila é duas vezes maior que o intervalo de tempo da i-ésima fila.

(2) Quando um novo processo entra na memória, ele é primeiro colocado no final da primeira fila e colocado na fila para agendamento de acordo com o princípio do FCFS. Quando é a vez do processo ser executado, se ele pode ser concluído dentro do intervalo de tempo, ele pode se preparar para evacuar o sistema; se não for concluído no final de um intervalo de tempo, o planejador transferirá o processo para o final da segunda fila Da mesma forma, aguarde a execução agendada de acordo com o princípio do FCFS; se não for concluída após a execução de um intervalo de tempo na segunda fila, coloque-o na terceira fila por vez ... assim, quando um trabalho (processo) longo for iniciado a partir do primeiro Depois que uma fila cai para a enésima enésima fila, por sua vez , a enésima  fila é executada em uma maneira de rotação de intervalo de tempo.

(3) Somente quando a primeira fila está ociosa, o planejador agenda os processos na segunda fila; somente quando as primeiras filas (i-1) estão vazias, o processo na i-ésima fila é agendado. Se o processador estiver atendendo a um processo na i-ésima fila e um novo processo entrar na fila com uma prioridade mais alta (qualquer fila da primeira a (i-1)), o novo processo impedirá a execução O processador do processo, ou seja, o planejador coloca o processo em execução de volta ao final da i-ésima fila e atribui o processador ao processo de alta prioridade recém-chegado.

 

2.3 Sistema em tempo real

Os sistemas em tempo real exigem que uma solicitação seja respondida dentro de um determinado período de tempo.

Dividido em tempo real difícil e em tempo real suave, o primeiro deve cumprir o prazo absoluto, o último pode tolerar um certo tempo limite

Publicado 519 artigos originais · elogiou 69 · 50.000+ visualizações

Acho que você gosta

Origin blog.csdn.net/qq_41286356/article/details/105200621
Recomendado
Clasificación