Algoritmos de paginação do Windows NT

0

Eu tenho tentado descobrir como funciona a paginação dentro dos sistemas operacionais Windows. Eu encontrei um post de blog de Mark Russovich em 1998 sobre esse gerenciamento de memória. Ele discute o algoritmo "Menos recentemente usado".

O artigo é um pouco confuso, pois sua explicação não combina com sua visão geral. Por exemplo, sua visão geral é:

LRU replaces first those pages that processes have not accessed for the longest period of time

No entanto, a explicação afirma que é julgado apenas se um sinalizador acessado está definido ou não:

On a uniprocessor, if the Memory Manager finds a page with its Accessed flag set, the Memory Manager clears the flag and proceeds to the following pages, selecting for replacement the next page it finds with a cleared Accessed flag

Certamente, por essa lógica, não há datas para comparar e, portanto, se houver várias páginas sem um sinalizador de acesso, a MMU escolherá a primeira que encontrar (que pode não ser necessariamente a de "MENOS USADO"?

EDIT: link

    
por user3494322 27.11.2014 / 20:34

1 resposta

0

Bem, primeiro, esse artigo é bem antigo - é anterior ao Windows 2000.

Em segundo lugar, a descrição de Mark do algoritmo "relógio" está incompleta. Quando o Mm encontra um bit Acessado definido em um PTE, ele é limpo. Tudo bem até agora. Mas se achar que o bit já está claro, ele incrementa um contador na entrada da lista de conjuntos de trabalho da página (WSLE). Assim, valores de contador mais altos correspondem a páginas que foram acessadas há mais tempo.

Não há necessidade de ser tão preciso para registrar os timestamps.

    
por 17.05.2015 / 21:31