С Новым годом! Форум программистов, компьютерный форум, киберфорум
Наши страницы

С++ для начинающих

Войти
Регистрация
Восстановить пароль
 
 
bgm123
39 / 39 / 16
Регистрация: 29.01.2013
Сообщений: 277
#1

Возможно ли написать программу, минующую в работе оперативную память? - C++

12.07.2013, 14:15. Просмотров 964. Ответов 17
Метки нет (Все метки)

Скорее всего вопрос немного не к теме раздела, но всё же. Почему необходимо загружать программы перед началом выполнения в оперативную память? Возможно ли выполнять программы без загрузки в оперативную память с жёсткого диска и память выделять для процессов на жёстком диске?
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
12.07.2013, 14:15
Здравствуйте! Я подобрал для вас темы с ответами на вопрос Возможно ли написать программу, минующую в работе оперативную память? (C++):

Атака на оперативную память - C++
как организовать атаку на оперативную память? какие библиотеки использовать? кроме меня в сети никто не интересовался этим похоже) язык...

Загрузить файл в оперативную память - C++
есть файл, который будет прочтен много раз как я могу его загрузить в оперативную память, а не читать каждый раз из HDD ?

Отображение файла в оперативную память - C++
Реализовать отображение файла в оперативную память. Выполнить задание, с использованием этого отображения. Задание: Создать массив...

Считать файл в оперативную память построчно - C++
Условие задачи звучит так: Дан текстовой файл размером не менее 100 Кбайт, содержащий строки различной длины. Считать этот файл в...

Запись текста из текстового файла в оперативную память - C++
Подскажите, пожалуйста как решить следующую задачу. Имеется текстовый файл, состоящий из неизвестной длины строк и строки у него...

PROCESS_MEMORY_COUNTERS: какие поля отвечают за занимаемую оперативную и динамическую память - C++
помогите разобраться со структурой PROCESS_MEMORY_COUNTERS typedef struct _PROCESS_MEMORY_COUNTERS { DWORD cb; DWORD ...

17
CheshireCat
Эксперт С++
2896 / 1245 / 78
Регистрация: 27.05.2008
Сообщений: 3,405
12.07.2013, 14:24 #2
Зависит от архитектуры CPU. Почитай про фон-Немановскую и Гарвардскую архитектуры.
1
bgm123
39 / 39 / 16
Регистрация: 29.01.2013
Сообщений: 277
12.07.2013, 14:32  [ТС] #3
Вот вообще почему возник такой вопрос. Виртуальная память, насколько мне известна, была изобретена для того, чтобы можно было выполнять программы, размер которых превышает физический объём оперативной памяти. При это часть страниц виртуальной памяти располагается на HDD. Ну с другой стороны можно же было программы выделять непосредственной на жёстком диске, а защиту процессов реализовывать на основе адресных пространств. Или такой способ работы был бы слишком медленным?
0
CheshireCat
Эксперт С++
2896 / 1245 / 78
Регистрация: 27.05.2008
Сообщений: 3,405
12.07.2013, 14:36 #4
Сравни скорости доступа к оперативной памяти и к HDD. И сделай выводы.
0
Kuzia domovenok
2062 / 1907 / 176
Регистрация: 25.03.2012
Сообщений: 6,572
Записей в блоге: 1
12.07.2013, 16:16 #5
можешь написать операционную систему, минимизирующую в памяти всё, что тебе взбредётся. Но программе, работающей в Windows и.т.п. никто не даст вытворять такие трюки
0
Tulosba
12.07.2013, 16:21
  #6

Не по теме:

Цитата Сообщение от Kuzia domovenok Посмотреть сообщение
Но программе, работающей в Windows и.т.п. никто не даст вытворять такие трюки
А без ОЗУ комп вообще не стартанет.

0
bgm123
39 / 39 / 16
Регистрация: 29.01.2013
Сообщений: 277
12.07.2013, 16:25  [ТС] #7
Цитата Сообщение от Tulosba Посмотреть сообщение
А без ОЗУ комп вообще не стартанет.
Это только обычные ОС, которые загружают систему в оперативку.
0
Tulosba
:)
Эксперт С++
4397 / 3233 / 297
Регистрация: 19.02.2013
Сообщений: 9,045
12.07.2013, 16:34 #8
bgm123, до ОС дело еще не доходит.
0
bgm123
39 / 39 / 16
Регистрация: 29.01.2013
Сообщений: 277
12.07.2013, 16:43  [ТС] #9
Цитата Сообщение от Tulosba Посмотреть сообщение
до ОС дело еще не доходит.
Почему же не доходит? Bios проверит все устройства и поймёт, что ему некуда грузить ОС.
0
Tulosba
:)
Эксперт С++
4397 / 3233 / 297
Регистрация: 19.02.2013
Сообщений: 9,045
12.07.2013, 16:47 #10
bgm123, насколько я помню (пару лет назад проверял), без ОЗУ современный комп просто будет пищать характерным для конкретного BIOS'а образом и никаких дальнейших телодвижений сделать не получится, кроме как воткнуть планку памяти.
0
silent_1991
Эксперт С++
4989 / 3046 / 149
Регистрация: 11.11.2009
Сообщений: 7,028
Завершенные тесты: 1
17.07.2013, 10:56 #11

Не по теме:

bgm123, BIOS ничего не поймёт, потому что BIOS не грузит ОС. BIOS грузит загрузчик, который и загружает ОС (хотя, при желании, загрузчик тоже можно назвать ОС).


По факту, действительно, скорость передачи данных у современной среднестатистической DDR3-1600 около 13 ГБ/с. У современных SSD же скорость чтения/записи что-то около 200 МБ/с. Итого SSD медленнее RAM примерно в 65 раз.
1
SatanaXIII
Супер-модератор
Эксперт С++
5643 / 2678 / 252
Регистрация: 01.11.2011
Сообщений: 6,574
Завершенные тесты: 1
17.07.2013, 11:20 #12
Цитата Сообщение от Tulosba Посмотреть сообщение
без ОЗУ современный комп просто будет пищать
Да. Но наверное именно потому, что биос проверит наличие оперативной памяти и, не найдя таковой, поймет, что ему некуда грузить ось (загрузчик оси). И вообще все тщетно и жизнь не удалась.
Гипотетически, только предположение, можно наверное переписать биос и загрузчик так, чтобы для их работы не требовалась оперативная память. А все необходимые операции проходили на медленном винте.
0
CheshireCat
17.07.2013, 11:33
  #13

Не по теме:

Цитата Сообщение от Tulosba Посмотреть сообщение
А без ОЗУ комп вообще не стартанет.
Это только если под "комп" иметь в виду а-ля "стандартный офисный ПК x86/Windows".

0
Tulosba
:)
Эксперт С++
4397 / 3233 / 297
Регистрация: 19.02.2013
Сообщений: 9,045
17.07.2013, 12:03 #14
Цитата Сообщение от silent_1991 Посмотреть сообщение
У современных SSD же скорость чтения/записи что-то около 200 МБ/с.
По-моему, основной прирост (по сравнению с обычными HDD) именно при чтении, на запись скорости соизмеримы. По крайней мере такую картину наблюдал на своем компе.
Цитата Сообщение от CheshireCat Посмотреть сообщение
Это только если под "комп" иметь в виду а-ля "стандартный офисный ПК x86/Windows".
Сомневаюсь, что ТС делал акцент на каких-то промышленных машинах.
Просто во времена 486, можно было и без планок памяти загрузиться на тех же самых "стандартных ПК". А сейчас уже нельзя. Ну а если продолжить тему нестандартных компов, то есть и безбиосовые компы.

Добавлено через 1 минуту
Цитата Сообщение от SatanaXIII Посмотреть сообщение
Но наверное именно потому, что биос проверит наличие оперативной памяти и, не найдя таковой, поймет, что ему некуда грузить ось (загрузчик оси).
Легко проверить. Вынимаем винт и смотрим на результат.
0
SatanaXIII
Супер-модератор
Эксперт С++
5643 / 2678 / 252
Регистрация: 01.11.2011
Сообщений: 6,574
Завершенные тесты: 1
17.07.2013, 12:11 #15
Цитата Сообщение от Tulosba Посмотреть сообщение
Легко проверить. Вынимаем винт и смотрим на результат.
Я не специалист. Мне трудно судить. Но можно тест веселей - вынимаем любой кондер с матери.
0
17.07.2013, 12:11
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
17.07.2013, 12:11
Привет! Вот еще темы с ответами:

Возможно ли написать программу, пишущую программы? - C++
Кто-нибудь пробовал?

На qt creator возможно написать программу Эмулятор браузера? - C++
На qt creator возможно написать программу Эмулятор браузера? os: ubuntu

Возможно в С++ написать команду, которая бы запускала указанную программу? - C++
Возможно в С++ написать команду, которая бы запускала указанную программу? что-то вроде:...

Написать программу, которая вводит целое число n и выделяет память - C++
3. Написать программу, которая вводит целое число n и выделяет память для массива из n данных типа: char, int, double. Перед завершением...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
15
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.