При реализации страничной виртуальной памяти виртуальное адресное пространство делится на части одинакового фиксированного размера, называемые виртуальными страницами. Если виртуальное адресное пространство какого-то процесса не кратно размеру страницы, то последняя страница дополняется фиктивной областью. Физическая оперативная память также делится на части такого же размера, называемые физическими страницами. Размер страницы выбирается кратным степени двойки. Копия всех виртуальных страниц хранится на диске.
Страничное распределение памяти предусматривает только механическое разбиение на страницы, оно не позволяет различным образом организовать работу со страницами, содержащими команды и данные. При сегментном распределении памяти виртуальное адресное пространство делится на части, называемые сегментами, размер которых определяется смысловым значением содержащейся в них информации. Максимальный размер сегмента определяется разрядностью процессора, для 32-разрядного процессора он равен 4 Гбайт. Сегменты никак не упорядочиваются друг относительно друга. Виртуальный адрес задается парой чисел: номером сегмента и смещением внутри сегмента. При загрузке процесса в оперативную память помещается только часть его сегментов, полный образ виртуального адресного пространства находится на диске. Для каждого загружаемого сегмента подыскивается непрерывный участок свободной физической памяти достаточного размера.
При реализации страничной виртуальной памяти виртуальное адресное пространство делится на части одинакового фиксированного размера, называемые виртуальными страницами. Если виртуальное адресное пространство какого-то процесса не кратно размеру страницы, то последняя страница дополняется фиктивной областью. Физическая оперативная память также делится на части такого же размера, называемые физическими страницами. Размер страницы выбирается кратным степени двойки. Копия всех виртуальных страниц хранится на диске.
Страничное распределение памяти предусматривает только механическое разбиение на страницы, оно не позволяет различным образом организовать работу со страницами, содержащими команды и данные. При сегментном распределении памяти виртуальное адресное пространство делится на части, называемые сегментами, размер которых определяется смысловым значением содержащейся в них информации. Максимальный размер сегмента определяется разрядностью процессора, для 32-разрядного процессора он равен 4 Гбайт. Сегменты никак не упорядочиваются друг относительно друга. Виртуальный адрес задается парой чисел: номером сегмента и смещением внутри сегмента. При загрузке процесса в оперативную память помещается только часть его сегментов, полный образ виртуального адресного пространства находится на диске. Для каждого загружаемого сегмента подыскивается непрерывный участок свободной физической памяти достаточного размера.
from random import randint
n = 10
a = [0]*n
for i in range(0,n):
a[i] = randint(1,100)
for i in range(0,n):
if a[i] % 2==0:
print('a[',i,']==',a[i])
Объяснение:
при запуске выводит случайные числа
пример вывода
a[ 1 ]== 0
a[ 2 ]== 0
a[ 3 ]== 0
a[ 4 ]== 0
a[ 5 ]== 0
a[ 6 ]== 0
a[ 7 ]== 0
a[ 8 ]== 0
a[ 9 ]== 0
a[ 1 ]== 44
a[ 2 ]== 0
a[ 3 ]== 0
a[ 4 ]== 0
a[ 5 ]== 0
a[ 6 ]== 0
a[ 7 ]== 0
a[ 8 ]== 0
a[ 9 ]== 0
a[ 1 ]== 44
a[ 2 ]== 32
a[ 3 ]== 0
a[ 4 ]== 0
a[ 5 ]== 0
a[ 6 ]== 0
a[ 7 ]== 0
a[ 8 ]== 0
a[ 9 ]== 0
a[ 1 ]== 44
a[ 2 ]== 32
a[ 3 ]== 86
a[ 4 ]== 0
a[ 5 ]== 0
a[ 6 ]== 0
a[ 7 ]== 0
a[ 8 ]== 0
a[ 9 ]== 0
a[ 1 ]== 44
a[ 2 ]== 32
a[ 3 ]== 86
a[ 4 ]== 2
a[ 5 ]== 0
a[ 6 ]== 0
a[ 7 ]== 0
a[ 8 ]== 0
a[ 9 ]== 0
a[ 1 ]== 44
a[ 2 ]== 32
a[ 3 ]== 86
a[ 4 ]== 2
a[ 6 ]== 0
a[ 7 ]== 0
a[ 8 ]== 0
a[ 9 ]== 0
a[ 1 ]== 44
a[ 2 ]== 32
a[ 3 ]== 86
a[ 4 ]== 2
a[ 7 ]== 0
a[ 8 ]== 0
a[ 9 ]== 0
a[ 1 ]== 44
a[ 2 ]== 32
a[ 3 ]== 86
a[ 4 ]== 2
a[ 7 ]== 96
a[ 8 ]== 0
a[ 9 ]== 0
a[ 1 ]== 44
a[ 2 ]== 32
a[ 3 ]== 86
a[ 4 ]== 2
a[ 7 ]== 96
a[ 8 ]== 66
a[ 9 ]== 0
a[ 1 ]== 44
a[ 2 ]== 32
a[ 3 ]== 86
a[ 4 ]== 2
a[ 7 ]== 96
a[ 8 ]== 66
>>>