Revisão do exame de sistema operacional - Capítulo 4 Método de gerenciamento de armazenamento de paginação swap

A tecnologia de troca também se tornou tecnologia de comutação.Como a memória dos computadores naquela época era muito pequena, a tecnologia de troca foi introduzida para permitir que o sistema executasse vários programas de usuário de maneira compartilhada.

1. Introdução de troca:

A chamada "troca" refere-se à transferência de processos e dados que estão temporariamente impossibilitados de executar ou programas e dados temporariamente não utilizados na memória para a memória externa , a fim de liberar espaço de memória suficiente e, em seguida, transferir os processos ou processos que já estão qualificado para ser executado.Programas e dados são carregados na memória .

2. Tipo de troca:

1) Troca geral

O agendamento de nível médio do processador é, na verdade, a função de troca de memória. Seu objetivo é resolver o problema de falta de memória. Como o agendamento intermediário é baseado em processos, também é chamado de “troca de processo” ou “troca inteira”.

2) Troca de página

Realizadas em unidades de uma "página" ou "segmento" do processo, são chamadas de "troca de página" e "troca de segmento", respectivamente, e são coletivamente chamadas de "troca parcial".

Entre as tecnologias de troca, discutiremos apenas a troca de processos, enquanto a paginação ou troca de segmentos será introduzida na memória virtual.

Trocar gerenciamento de espaço

1. Os principais objetivos do gerenciamento de espaço de swap:

Em um sistema operacional com função de troca, o armazenamento externo geralmente é dividido em uma área de arquivos e uma área de troca .
1) O objetivo principal do gerenciamento da área de arquivos.
O objetivo é melhorar a utilização do espaço de armazenamento de arquivos, para isso a área de arquivos é alocada de forma discreta.
2) O objetivo principal do gerenciamento da área de swap.
As operações de troca são mais frequentes. Portanto, a velocidade de troca e troca de processos é melhorada. Por esta razão, é adotado um método de alocação contínua, com menor consideração ao problema de fragmentação na memória externa.

2. Estrutura de dados no gerenciamento de blocos de disco livre na área de troca

É semelhante à estrutura de dados do método de alocação dinâmica de partições, ou seja, a tabela de partições livres ou a cadeia de partições livres. Cada entrada contém dois itens: o primeiro endereço da área de troca e seu tamanho. A subtabela é representada pelo número do bloco do disco e pelo número de blocos do disco.

3. Alocação e reciclagem de partes do espaço de troca

Semelhante aos métodos anteriores de alocação e reciclagem de memória de alocação dinâmica de partições, também é dividido em quatro situações. Há uma divisória livre acima da área de reciclagem e uma divisória livre abaixo da área de reciclagem.Existem divisórias livres acima e abaixo da área livre e não há divisórias livres acima e abaixo da área livre.

Troca de processos e troca de processos:

Processo de troca:
1) Selecione o processo a ser trocado. O processo que está bloqueado ou em suspensão é selecionado primeiro e, se houver vários, o processo com prioridade mais baixa é selecionado. Em alguns sistemas, além de considerar a prioridade, também é necessário considerar o tempo de permanência do processo na memória. Se não houver processos bloqueados no sistema e a memória ainda for insuficiente, o processo pronto com a prioridade mais baixa é selecionado para ser trocado.
2) Processo de troca de processo. Somente segmentos de programas e dados não compartilhados podem ser trocados. Segmentos compartilhados não podem ser trocados enquanto o processo precisar deles. Ao trocar, ① você precisa solicitar espaço de troca. ② Se a aplicação for bem-sucedida, inicie o disco e transfira o programa e os dados do processo para a área de troca do disco. ③Se a transferência for bem-sucedida, o espaço de memória ocupado pelo processo pode ser recuperado e o PCB e a tabela de alocação de memória do processo podem ser modificados de acordo. Se ainda houver processos que possam ser trocados, continue a trocar até que haja não há mais obstrução na memória até que o processo seja bloqueado.

Troca de processos.
Execute operações de swap regularmente. Encontre os processos que estão no estado "pronto", mas que foram trocados, use o processo que foi trocado por mais tempo como o processo de troca e solicite memória para ele. Se o aplicativo for bem-sucedido, ele será transferido. Se falhar, alguns processos na memória precisarão ser trocados primeiro e, em seguida, os processos serão trocados. O processo de troca interrompe a troca até que não haja mais processos no estado "pronto e trocado" na memória externa ou não haja memória suficiente para trocar no processo.

Método de gerenciamento de armazenamento de paginação:

O método de alocação contínua formará muitos "fragmentos", embora muitos fragmentos possam ser unidos em um grande espaço utilizável de maneira "compacta", mas muitas despesas gerais devem ser pagas por isso. Se o processo puder ser carregado diretamente em muitas partições não contíguas, o espaço de memória poderá ser totalmente utilizado sem a necessidade de "compactação".

1) Método de gerenciamento de armazenamento de paginação: Divida o espaço de endereço do programa do usuário em várias áreas de tamanho fixo, chamadas "páginas" ou "páginas". O espaço de memória também é dividido em vários blocos físicos ou quadros de página, e as páginas e quadros têm o mesmo tamanho.
2) Método de gerenciamento de armazenamento segmentado: Divida o espaço de endereço do programa do usuário em vários segmentos de tamanhos diferentes. A alocação é feita em unidades de segmentos.
3) Método de gerenciamento de armazenamento de páginas segmentadas: É o produto da combinação de métodos de paginação e armazenamento de segmentação.

Métodos básicos de gerenciamento de armazenamento de paginação

1. Páginas e blocos físicos

1) Página: Divida o espaço de endereço lógico de um processo em vários pedaços de tamanhos iguais, chamados de páginas ou páginas, e numere cada página. Da mesma forma, o espaço físico da memória também é dividido em vários blocos, e cada bloco é numerado. Ao alocar memória para um processo, diversas páginas do processo são carregadas em unidades de bloco em vários blocos físicos que podem não ser contíguos. Como a última página do processo muitas vezes não cabe em uma única peça, forma-se uma fragmentação inutilizável, chamada de "fragmentação na página".
2) Tamanho da página: O tamanho da página deve ser selecionado moderadamente e o tamanho da página deve ser uma potência de 2, geralmente 1 KB ~ 8 KB. Se a página for muito pequena, o número de páginas no processo será muito grande, então a tabela de páginas será muito longa, ocupando uma grande quantidade de memória, e também aumentará o custo da tradução de endereços de hardware e reduzirá a eficiência de troca/troca de página. Se a página for muito grande, aumentará a fragmentação na indústria e reduzirá a utilização de memória.

2.Estrutura de endereço

A estrutura de endereço no endereço de paginação é a seguinte:

                      31 12 11 0

Número da página P Deslocamento W

Ele contém duas partes: a primeira parte é o número da página P, e a última parte é o valor do deslocamento W, que é o endereço dentro da página. Conforme mostrado na figura, podemos saber que o tamanho de cada bloco é 2 ^ 12, que é 4 KB. Os bits 31-12 são o número da página, então o número da página é 2 ^ 20, que equivale a 1 milhão de páginas.

3. Tabela de páginas

Para garantir o correto funcionamento do processo, o bloco físico correspondente a cada página pode ser encontrado na memória. Para tanto, o sistema estabelece uma tabela de imagens de páginas para cada processo, denominada tabela de páginas. Todas as páginas no espaço de endereço do processo possuem uma entrada de página na tabela de páginas, que registra o número do bloco físico correspondente da página correspondente na memória . Pode-se observar que a função da tabela de páginas é implementar o mapeamento de endereços de números de páginas para números de blocos físicos.

Agência de tradução de endereços:

O objetivo de configurar o mecanismo de conversão de endereço é converter o endereço lógico no espaço de endereço do usuário em endereço físico no espaço de memória.

Mecanismo de tradução de endereços com tabela rápida:

Como a tabela de páginas é armazenada na memória, a CPU precisa acessar a memória duas vezes cada vez que acessa um dado. A primeira vez é acessar a tabela de páginas na memória, encontrar o número do bloco físico da página especificada e, em seguida, concatenar o número do bloco com o deslocamento W dentro da página para formar um endereço físico. Ao acessar a memória pela segunda vez, os dados necessários são obtidos do endereço obtido pela primeira vez.
A fim de melhorar a velocidade de conversão de endereços, um registro de cache especial com capacidade de pesquisa paralela pode ser adicionado ao mecanismo de conversão de endereços, também conhecido como "registro associativo" ou "tabela rápida".

Depois que a CPU fornece o endereço efetivo, o mecanismo de conversão de endereço envia automaticamente o número da página P para o registrador de cache e compara esse número de página com todos os números de página no cache. Se houver um número de página correspondente, significa que a página a entrada da tabela a ser acessada está na tabela rápida. Portanto, o número do bloco físico correspondente à página pode ser lido diretamente da tabela rápida e enviado para o registrador de endereço físico. Se a entrada da tabela de páginas correspondente não for encontrada na tabela de blocos, a tabela de páginas na memória deve ser acessada novamente. Depois de encontrá-la, o número do bloco físico lido da entrada da tabela de páginas é enviado para o registrador de endereços; ao mesmo tempo , a tabela de páginas é A entrada é armazenada em uma unidade de registro da tabela rápida, ou seja, a tabela rápida é modificada novamente. Mas se a tabela rápida estiver cheia, o sistema operacional deverá encontrar uma entrada antiga da tabela de páginas que não seja mais considerada necessária e trocá-la.

Tempo válido para acessar a memória:

No método básico de gerenciamento de armazenamento de paginação, o tempo de acesso efetivo é dividido no primeiro tempo de acesso à memória (ou seja, o tempo t gasto para encontrar a entrada da tabela de páginas correspondente à tabela de páginas) e o segundo tempo de acesso à memória (ou seja, acessando a entrada da tabela de páginas na tabela de páginas) A soma do tempo t) gasto concatenando o número do bloco físico e o endereço da página no endereço físico real: EAT = t + t = 2t;

Há um problema de taxa de acerto para encontrar a entrada de tabela necessária na tabela rápida. A chamada taxa de acerto refere-se à taxa de uso da tabela rápida e de localização bem-sucedida das entradas da tabela da página necessária.
Então: EAT = а×λ + (t+λ)(1-а) + t = 2t + λ - t×а;
na fórmula acima, λ representa o tempo necessário para encontrar a tabela rápida, а representa a taxa de acerto e t representa o tempo necessário para acessar a memória uma vez.

Tabelas de páginas de dois e vários níveis

A maioria dos sistemas de computadores modernos suporta espaços de endereço lógico muito grandes, de modo que a tabela de páginas se torna muito grande e ocupa uma quantidade considerável de espaço na memória. Como cada entrada da tabela de páginas ocupa um byte, o comprimento da tabela de páginas * 1 byte é o tamanho do espaço de memória ocupado pela tabela de páginas. Além disso, o espaço de memória da tabela de páginas também deve ser contínuo, o que obviamente não é realista. Solução:
(1) Para o espaço de memória exigido pela tabela de páginas, a alocação discreta pode ser usada para resolver o problema de dificuldade em encontrar um grande espaço de memória contínua; (2) Apenas parte das
entradas da tabela de páginas atualmente necessárias são transferidas para o memória e o restante são As entradas da tabela de páginas ainda residem no disco e podem ser recuperadas quando necessário.

Tabela de páginas de dois níveis.
A tabela de páginas é dividida em páginas e cada página é armazenada discretamente em diferentes blocos físicos. Também é necessário criar outra tabela de páginas para a tabela de páginas alocada discretamente, chamada tabela de páginas externa.O número do bloco físico da página da tabela de páginas é registrado em cada entrada da tabela de páginas.
Tomando o espaço de endereço lógico anterior de 32 bits como exemplo, quando o tamanho da página é de 4 KB e uma estrutura de tabela de páginas de dois níveis é usada, a tabela de páginas é paginada de modo que cada página contenha 2 ^ 10 (ou seja, 1.024) páginas. As entradas da tabela permitem até 2 ^ 10 páginas da tabela. A estrutura de endereço lógico neste momento é a seguinte:

Cada entrada na tabela de páginas armazena o número do bloco físico de uma determinada página do processo na memória, enquanto cada entrada da tabela de páginas na tabela de páginas externa armazena o número de páginas na memória de uma determinada tabela de páginas. Você pode usar dois níveis de tabelas de páginas, a tabela de páginas externa e a tabela de páginas, para realizar a conversão do endereço lógico do processo para o endereço físico na memória. No mecanismo de conversão de endereço, também é necessário adicionar um registro de tabela de página externa para armazenar o endereço inicial da tabela de página externa e usar o número da página externa no endereço lógico para encontrar o endereço inicial da tabela de página especificada, e em seguida, use o número da página externa para encontrar o endereço inicial da tabela de páginas especificada. Encontre a entrada da tabela de páginas especificada no endereço dentro da página e, em seguida, leia o número do bloco físico da página na memória a partir da entrada da tabela de páginas.
Embora resolva o problema de não exigir grande espaço de armazenamento contíguo para tabelas de páginas grandes, não resolve o problema de usar menos espaço de memória para armazenar tabelas de páginas grandes. Somente a alocação discreta de espaço não reduz o espaço de memória ocupado pela tabela de páginas. A solução é transferir um lote de entradas da tabela de páginas atualmente necessárias para a memória e, em seguida, transferi-las uma após a outra, conforme necessário. No caso de utilizar uma estrutura de tabela de páginas de dois níveis, para o processo em execução, sua tabela de páginas externa deve ser transferida para a memória, enquanto a tabela de páginas só precisa ser transferida para uma ou mais páginas. Para indicar se a tabela de páginas de uma determinada página foi transferida para a memória, um bit de status S deve ser adicionado à entrada da tabela de páginas externa. Se seu valor for 0, significa que a página da tabela de páginas não foi transferida na memória, caso contrário, significa que a página foi transferida para a memória
. Quando o processo está em execução, o mecanismo de conversão de endereço pesquisa a tabela de páginas externa de acordo com o número de página externa P1 no endereço lógico; se o bit de status na entrada da tabela de páginas encontrada for 0, um sinal de interrupção é gerado para solicitar ao sistema operacional que transferir a página A tabela é paginada na memória. Os detalhes da paginação de solicitação são abordados no próximo capítulo, Memória Virtual.
Tabela de páginas multinível.
Para máquinas de 32 bits, é apropriado usar uma estrutura de tabela de páginas de dois níveis; mas para máquinas de 64 bits, uma tabela de páginas multinível deve ser usada e a tabela de páginas externa é paginada.

A introdução de tabelas de páginas invertidas
Em sistemas de computador modernos, o espaço de endereço lógico de um processo geralmente pode ser muito grande, por isso requer muitas entradas de tabela de páginas, o que também ocupa muito espaço de memória. Apresentando a tabela de páginas invertidas, geralmente as entradas da tabela de páginas são classificadas por número de página e o conteúdo da entrada da tabela de páginas é o número do bloco físico. A tabela de páginas invertidas define uma entrada na tabela de páginas para cada bloco físico e classifica-a pelo número do bloco físico. O conteúdo é o número da página e o identificador do processo ao qual pertence.

Tradução de endereços
Ao usar a tabela de páginas invertidas para tradução de endereços, a tabela de páginas invertidas é recuperada com base no identificador do processo e no número da página. Se uma entrada da tabela de páginas correspondente for recuperada, o número de sequência i da entrada da tabela de páginas (centro) é o número do bloco físico onde a página está localizada. Este número de bloco pode ser usado junto com o endereço da página para formar um endereço físico e enviar para o registrador de endereço de memória.
A tabela de páginas invertidas pode conter apenas páginas que foram carregadas na memória, mas não páginas que ainda não foram carregadas na memória. Portanto, uma tabela de páginas externa também deve ser estabelecida para cada processo. Quando se constata que a página necessária não está na memória, porque a tabela de páginas externas contém o endereço físico de cada página na memória externa, a página necessária pode ser transferida para a memória por meio dela.
Quando a capacidade de memória for grande, o número de entradas da tabela ainda será muito grande. Recuperar uma tabela linear tão grande usando identificadores de processo e números de página consome bastante tempo. O algoritmo Hash pode ser usado para recuperação, e a entrada correspondente da tabela de páginas na tabela de páginas invertida pode ser encontrada rapidamente, mas podem ocorrer os chamados "conflitos de endereço".

Acho que você gosta

Origin blog.csdn.net/m0_53345417/article/details/130542725
Recomendado
Clasificación