Senão Senão get-f get-free ree-pa -page ge ( ) and copy-pa copy-page ge ( ). A página página adqui adquirir riree a bandei bandeira ra suja suja da página velha. Diminua a conta do mapa da página velha.
4.6 - Paginando (Paging) Paginando é a troca numa base da página melhor do que os processos inteiros. Nós vamos usar trocando aqui para referir à "paginando" , uma vez que apenas Linux página, e não trocar, e pessoas são mais acostumadas à palavra "Swap" / "trocar" do que "page" / "paginar". Kernel pages nunca são trocadas páginas limpas também não são escritas para trocar. Elas são liberadas e recarregadas quando é requerida. O troca trocador dor mantém mantém um úni único co bit bit de inform informaç ação ão de envelh envelheci ecimen mento to nas Página Páginass acessadas bit da page table cutries - [ O que são os detalhes de manutenção? Como isto é usado?] Linux suporta múltiplos swap files ou projetos que podem ser ligados ou desligados desligados pelas ligações de swapoff system. Cada swap file ou projeto é descrito por uma strut-swap-info. strut-swap-info. O campo das bandeiras (SWP-USED ou SWP-WRITE ok) é usado para controlar acesso para o swap files. Quando SWP- WRITE ok é desligado, o espaço não vai ser distribuído neste arquivo. Isto é usado por Swapoff quando isto tenta de não usar um arquivo. Quando swapoff adiciona um arquivo de troca nova isto aplica SWP-USED. Um variável imóvel no Swap files armazena o número dos arquivos ativos correntemente ativos. Os campos lowest - bit e hihgest hihgest - bit limitam a região livre na pasta de troca e são usadas para adiantar a procura por espaço de troca livre. O programa do usuário m | < swap inicializa um swap device ou file. A primeira página contém uma assinatura (swap-space) nos últimos 10 bytes, e contém um mapa de bit. Inicialmente 1's no bitmap significam páginas ruins A'1' no bitmap significa que a página correspondente é livre. Esta página nunca é distribuída deste modo a inicialização precisa ser feita somente uma vez. The Syscall Swapor ( ) é chamado pelo user program swapon tipicamente de / etc / rc. Algumas páginas da memória são distribuídas por swap-map e swap-lockmap, swap-map contém um byte para cada página no swapfile. Isto é inicializado do bitmap para conter 0 para páginas disponíveis e 128 para páginas que não pode ser usadas. Isto é para manter uma conta das petições da troca em cada página no swap file. Swap-lockmap contém um bit para cada página que é usada para assegurar exclusão mútua quando lendo ou escrevendo swap-files. swap-files. Quando uma página da memória está para ser trocada, um índice para posição da troca é obtido com uma chamada para get-swap-page ( ). Este índice é deste modo guardado em bits 1-31 da page table entry para que a página trocada possa ser localizada pela page fault handles, do-no-page ( ) quando necessário. Os 7 bits mais altos do índice dão o swap file ( ou projeto) e os 24 bits mais baixos dão o número da página neste projeto. Isto faz até 128 swap files, cada um com espaço para mais ou menos 64 Gb, mas o espaço em cima devido o swap map seria grande. Ao invés o tamanho do swap file é limitado para 16 Mb, porque o swap map então toma 1 página. A função swap-duplicate ( ) é usado por copy-page-tables ( ) para deixar o processo da child herdar páginas trocadas durante um fork. Isto somente incrementa a conta mantendo no Swap-map para aquela página. Cada processo vai trocar numa cópia da 25
página separa quando acessá-la. Swap-free diminui a conta mantendo no swap-map. Quando a conta abaixa para 0 a página pode ser redistribuída por get-swap-page ( ). Isto é chamado cada vez que uma página trocada é lida na memória ( swap-inc ) ou quando uma página está para ser descartada ( free-one-table ( ), etc ).