Управление памятью – одна из главных задач ОС. Она критична как для программирования, так и для системного администрирования.
Объяснение:
Каждый процесс в многозадачной ОС работает в своей «песочнице» в памяти. Это виртуальное адресное пространство, которое в 32-битном режиме представляет собою 4Гб блок адресов. Эти виртуальные адреса ставятся в соответствие (mapping) физической памяти таблицами страниц, которые поддерживает ядро ОС. У каждого процесса есть свой набор таблиц. Но если мы начинаем использовать виртуальную адресацию, приходится использовать её для всех программ, работающих на компьютере – включая и само ядро.
#include <iostream>
using namespace std;
int main()
{
int n,i,max,j,count=0,sum=0;
cout << "n = ";
cin >> n;
int array[n];
for (i=0;i<n;i++)
{
cin >> j;
if (j>1000000)
{
cout << "Элемент массива превосходит 1000000";
break;
}
else
{
array[i] = j;
sum += j;
}
}
max = array[0];
for (i=1;i<n;i++)
{
if (array[i]>max)
{
max = array[i];
}
}
for (i=0;i<n;i++)
{
if (array[i] == max)
{
count++;
}
}
if (count > 1)
{
sum -= count*max;
cout << "Сумма элементов массива без максимальных: " << sum;
}
else
{
sum -= max;
cout << "Сумма элементов массива без максимального: " << sum;
}
}
Вывод:n = 5
1 2 5 3 5
Сумма элементов массива без максимальных: 6
1 + 2 + 3 = 6n = 5
1 2 3 4 5
Сумма элементов массива без максимального: 10
1 + 2 + 3 + 4 = 10