Написать программу "проверка памяти"

Основные данные о работе

Версия шаблона

2.1

Филиал

 

Вид работы

Курсовая работа

Название дисциплины

Программирование

Тема

Написать программу "проверка памяти"

Фамилия студента

 

Имя студента

 

Отчество студента

 

№ контракта

 

 

Содержание

Основные данные о работе………………………………………………………...1

Содержание…………………………………………………………………………2

Введение…………………………………………………………………………….3

Основная часть……………………………………………………………………...5

1 Основы программирования и  разработка приложений………………………..5

2 Программирование и возможность программа "проверка памяти"…………13

Заключение………………………………………………………………………...21

Глоссарий………………………………………………………………………….22

Список использованных источников…………………………………………….24

Список сокращений……………………………………………………………….25

Приложения……………………………………………………………………….26

Введение

          «Программирование» — процесс создания компьютерных программ.

В узком смысле (так называемое кодирование) под программированием  понимается написание инструкций (программ) на конкретном языке программирования (часто по уже имеющемуся алгоритму — плану, методу решения поставленной задачи).

В более широком смысле под программированием  понимают весь спектр деятельности, связанный  с созданием и поддержанием в  рабочем состоянии программ —  программного обеспечения ЭВМ.

Иначе это называется «программная инженерия» («инженерия ПО»). Сюда входят анализ и постановка задачи, проектирование программы, построение алгоритмов, разработка структур данных, написание текстов программ, отладка и тестирование программы (испытания программы), документирование, настройка (конфигурирование), доработка и сопровождение.

Программирование для (ЭВМ) основывается на использовании языков программирования, на которых записывается программа. Чтобы программа могла быть понята и исполнена (ЭВМ), требуется специальный инструмент — транслятор.

В настоящее время активно используются интегрированные среды разработки, включающие в свой состав также редактор для ввода и редактирования текстов  программ, отладчики для поиска и  устранения ошибок, трансляторы с  различных языков программирования, компоновщики для сборки программы из нескольких модулей и другие служебные модули.

Текстовый редактор среды программирования может иметь специфичную функциональность, такую как индексация имен, отображение  документации, средства визуального  создания пользовательского интерфейса.

С помощью текстового редактора  программист производит набор и  редактирования текста создаваемой  программы, который называют исходным кодом. Язык программирования определяет синтаксис и изначальную семантику  исходного кода. Компилятор преобразует текст, программы в машинный код, непосредственно исполняемый электронными компонентами компьютера. Интерпретатор создаёт виртуальную машину для выполнения программы, которая полностью или частично берёт на себя функции исполнения программ.

flash-память ведет свою родословную  от неизменного запоминающего  устройства (ПЗУ) ПК, однако при этом может действовать как оперативное запоминающее приспособление (ОЗУ). Для тех, кто подзабыл, наверняка, стоит освежить память, в чем же фактически состоит меж ПЗУ и ОЗУ.

Этак вот, основное привилегия неизменного  запоминающего устройства – вероятность  сохранять данные даже при выключении кормления ПК (от, того-то в термине и находится словечко “постоянное”). В “классическом” ПЗУ недостает (ещё молвят, что микросхема “прожигается”, что, в общем, то правильно отображает физиологическую сущность записи в ПЗУ).

Что дотрагивается оперативной  памяти, ОЗУ то имеется, то этот тип  накопителя данных, напротив, не в состоянии  сохранять информацию при выключении кормления, но, несмотря, на все вышесказанное дозволяет одно вписывать и считывать данные в процессе текущей работы ПК.

Flash-микросхема сводит в себе  свойства обоих типов памяти: она дозволяет сравнимо скоро  вписывать и считывать данные, правда ещё плюс к тому “не забывает”, после выключения кормления.

Основная часть

1 Основы программирования и разработка приложений

«Программирование» — процесс  создания компьютерных программ.

Крупная дробь работы программистов  связана с написанием исходного  кода, тестированием и отладкой программ на одном из языков программирования.

Исходные тексты и выполняемые  файлы программ являются объектами  авторского права и являются интеллектуальной собственностью их создателей и правообладателей.

Разные языки программирования поддерживают разные стили программирования (парадигмы программирования).

Частично художество программирования состоит в том, чтоб избрать язычок программирования, более, много пригодный  для решения установленной задачки.

Различные языки требуют от программы разного уровня интереса к деталям при реализации метода, итогом, что нередко случается компромисс меж простотой и производительностью (либо меж порой программа и порой).

Единый язычок, напрямую исполняемый (ЭВМ) — это механический язычок (еще именуемый машинным кодом и языком машинных команд).

Вначале все программки писались в  машинном коде, однако в данный момент этого фактически уже не делается.

За место этого программы  пишут начальный код на том  либо другом языке программирования, потом, применяя автор, передают его в один либо некоторое количество шагов в механический код, отделанный к выполнению на целевом процессоре, либо в промежуточное понятие, которое может существовать исполнено особым интерпретатором — виртуальной машинкой. Однако это верно лишь для языков высочайшего уровня.[1]

Нежели требуется целый низкоуровневый контроль над системой на уровне машинных команд и отдельных ячеек памяти, программы пишут на языке ассемблера, мнемонические аннотации которого преобразуются один к одному в надлежащие аннотации машинного языка целевого процессора ЭВМ. (Сообразно данной фактору трансляторы с языков ассемблера — ассемблера — получаются алгоритмически простейшими трансляторами).[2]

В неких языках за место машинного  кода генерируется интерпретируемый бинарный код «виртуальной машины», еще именуемый байт-кодом (byte-code). Таковой подъезд используется в Forth, неких реализациях «Lisp, Java, Perl, Python», языках для «NET Framework».[3]

Конкретно в оперативной памяти хранятся все кратковременные команды. И данные нужные для их предстоящей отделки центральным процессором, записи на твердый диск, вывода на экран, принтер и т. д.

Данные хранящиеся в данной памяти доступны лишь во время включенного состояния ПК. Как лишь (ПК) станет, выключен, эти данные потеряются.

Потому чрезвычайно принципиально, чтоб данные записанные в оперативную  память, опосля их чтения из неё были полностью схожи. То имеется во время  сохранения в (ОЗУ), информация не обязана заполучить никаких повреждений и ошибок.

Сбой в работе (ОЗУ) безусловно, приводит к разным системным оплошностям, является предпосылкой появления экранов BSOD, внезапной перезагрузки и выключения (ПК).

Еще поломка оперативной памяти напрямую воздействует на вложение (ПК), правильную загрузку BIOS и операционной системы.

При появлении неизменной непостоянности работы (ПК) нужно испытать оперативную память в первую очередность. Тем наиболее таковая испытание особенных проблем не вызывает.

Все что необходимо для самостоятельной  испытания оперативной памяти ПК – это особые программы. Самыми популярными и доступными утилитами для испытания памяти (ПК), являются Memtest86+ и Memtest86. Из собственного моего эксперимента для испытания советую применять программу Memtest86+.

С интернет-сайта данных программ из раздела «Download» следует перекачать заключительную стабильную версию утилиты. Самый-самый обычный вариант – это переписывание вида ISO и предстоящая запись его на CD либо DVD диск. Нежели недостает оптического дисковода, то еще разрешено применять образ для USB дисков либо для мини-флоппи дисковода (дискеты 3,5).

После, такого как образ программы, записан на диск либо флешку (дискету) нужно в BIOS очертить загрузку с нужного устройства чтения – CD/DVD дисковода, Floppy либо USB. И перезагрузиться.

После загрузки программы испытания памяти вы увидите перед собой экран проверки. В правой верхней доли экрана вы увидите: шкала Pass – процент исполнения всей испытания в целом; шкалы Test – процент исполнения, заглавие и номер исполняемого в данный момент теста.

В верхней левой доли экрана будут  представлены общие характеристики системы: тактовая гармоника процессора, размер и гармоника оперативной  памяти, кеш. процессора и т. д.

В нижней центральной доли странички  будут выводиться оплошности и итоги  тестирования. Фактически она нас и интересует.

После пуска тестирования необходимо элементарно дожидаться его окончания и прохождения всех тестов по порядку.

В зависимости от типа процессора, размера оперативной памяти, чип сета материнской платы, испытание может брать от нескольких минут часа, и даже более!

Для точности испытания лучше только, чтоб целый набор тестов был пройден  некоторое количество циклов. Конфигурация (ПК) воздействует еще на численность и тип проходимых тестов.[4]

Нежели испытание прошла удачно, и оперативная память исправна, то вы увидите об этом доказательство на экране: Pass complete, no errors, press Esc to exit. Для выхода из режима испытания необходимо вынуть компакт-диск из устройства чтения CD/DVD, или выключить USB флешку с образом программы, и надавить кнопку Esc. ПК перезагрузится и начнет работу в обыкновенном режиме

Нежели во время тестирования будут выявлены оплошности, то предостережения будут выведены на экран (в особенно критичных вариантах ПК может перезагрузиться). Отдельная опечатка в памяти, нестабилен определенный адресок в оперативной памяти:

Нежели оперативная память сбоит при работе, то ее следует сменить.

Однако имейте в виду, что на итоги тестирования еще оказывают  воздействие непостоянность работы остальных принципиальных частей «ПК» (процессора, материнской платы, блока кормления, видеокарты).[5]

Чтоб удостовериться в том, что  неисправна конкретно оперативная  память (ПК), то следует вести тестирование остальных частей системы, а еще, нежели имеется вероятность, испытать свою оперативку на ином «ПК» либо ноутбуке.[6]

Микросхемы, программируемые в  программаторе.

Для реализации выбранного режима, программатор формирует в соответствии со спецификацией  производителя необходимые последовательности сигналов, которые через колодку подаются на определенные выводы программируемого микроконтроллера.

Подобные предполагают выполнение необходимой операции (программирование, стирание, чтение, верификация и  т.п.) непосредственно в плате  пользователя. Все действия по программированию производятся с помощью внешнего программатора, определенным образом подключенного к плате пользователя. При этом плата пользователя должна быть разработана с учетом специфических требований данного режима.

Микросхемы, поддерживающие режим  внутреннего само программирования. (Запись, стирание, чтение, верификация и т.п.) непосредственно в устройстве пользователя, без использования какого либо программатора. При этом устройство пользователя должно быть разработано с учетом специфических требований данного режима.

Программирование микроконтроллера подразумевает заполнение внутренней памяти микроконтроллера нужной информацией.

В зависимости от типа программируемого микроконтроллера, внутренняя память микроконтроллера обладает своей структурой и организацией.

В общем случае, внутренняя память микроконтроллера это: память данных, память программ, регистры специального назначения (fuse - биты) - содержимое которых  определяет режимы работы микроконтроллера и/или его периферии.

Таким образом: программирование микроконтроллера - это заполнение каждой области памяти своей специфической информацией.

Каждый программируемый микроконтроллер  обладает своим индивидуальным набором  допустимых режимов:

программирование (запись), чтение, стирание, защита от чтения, защита от программирования и т.п.

Некоторые программируемые микроконтроллеры не имеют отдельного режима «стирание». Для них стирание прежней информации в памяти происходит в теневом  режиме, при каждом новом цикле  программирования микроконтроллера;[7]

Некоторые программируемые микроконтроллеры поддерживают различные режимы ограничения доступа.

Выбор режима ограничения доступа  производится при программировании микроконтроллера. В зависимости  от выбранного режима, либо все ПЗУ  микроконтроллера, либо его определенные части могут быть.

Базисный адресок сектора кода берется из регистра CS. Нежели бригада  занимает 4 б, то смысл EIP возрастает на 4 б и станет ориентировать уже  на последующую аннотацию. Все это  делается автоматом без роли программа.

Данные загружаются в регистры DS, ES, FS, GS. Это означает, что частей данных может существовать по 4х. На нашей картинке он один.

Увольнение, сектора данных задается как операнд команды. Сообразно  дефолту употребляется сектор, на который показывает регистр DS. Для  такого чтоб зайти в иной сектор нужно это конкретно сориентировать в команде префикса подмены сектора.

Используемый сектор стека задается ролью регистра SS.  Увольнение снутри этого сектора представлено регистром ESP, который показывает на вершину  стека, как вы помните.

Сегменты в памяти имеют все  шансы друг друга перекрывать, не достаточно такого базисный адресок  всех частей может соответствовать, к примеру, в нуле. Таковой дегенерированный вариант именуется линейным представлением памяти. В современных системах, память как верховодило, этак организована.

Сейчас осмотрим определение базисных адресов сектора, я писал, что  они держаться в регистрах SS, DS, CS, однако это не совершенно этак, в  их держится некоторый 16 битный селектор, который показывает на некоторый дескриптор частей, в котором, уже хранится нужный адресок.

Этак смотрится селектор, в 13-ти его битах держится индекс дескриптора  в таблице дескрипторов. Не коварно  подсчитать станет, что 2^13 = 8192 это наибольшее численность дескрипторов в таблице.

Дескрипторных таблиц случается 2 вида GDT и LDT 1-ая именуется глобальная матрица дескрипторов, она в системе постоянно лишь одна, её исходный адресок, адресок её нулевого дескриптора хранится в 48 битном системном регистре GDTR. И с момента старта системы не изменяется и в свопе не воспринимает роли.

А вот смысла дескрипторов имеют  все шансы изменяться.

Нежели в селекторе бит TI равен  нулю, тогда процессор элементарно  идет в GDT отыскивает сообразно индексу  подходящий дескриптор, с поддержкой которого исполняет доступ к этому сектору.

  Все элементарно было, однако, нежели TI равен 1 тогда это значит, что употребляться станет LDT. Таблиц  данных немало, однако употребляться  в этот момент станет та  селектор которой загружен в целый регистр LDTR, который в отличии, от GDTR может изменяться.[8]

Индекс селектора показывает на дескриптор, который показывает уже  не на базисный адресок сектора, а  на память, в котором хранится локальная  матрица дескрипторов, её свежий вещество. Ну а далее все этак же как и  с GDT. Таковым образом во время работы локальные таблицы имеют все шансы формироваться и уничтожаться сообразно мерке необходимости. LDT не имеют все шансы кормить дескрипторы на остальные LDT.

Мнение «обслуживание микросхем», в нашем коротком обзоре значит функцию занесения (записи) нужной в неизменное запоминающее приспособление (ПЗУ) микросхемы.

Благородный программатор может не лишь записывать, однако и считывать  информацию, а в ряде случаев, осуществлять и запасные акции, и информацией  записанной в ней. Это может существовать: очистка, запрещение чтения, запрещение программирования и т. п.

Рядовая СИ-программа представляет собой определение функции main, которая  для исполнения нужных действий вызывает остальные функции.

Приведенные больше образцы программ представляли собой один начальный файл, сохраняющий все нужные для исполнения программные функции. Ассоциация меж функциями исполнялась сообразно этим средством передачи характеристик и возврата значений функций.[9]

Однако  автор языка СИ дозволяет еще расколотить программу на некоторое количество отдельных долей (исходных файлов), оттранслировать каждую дробь раздельно, и потом соединить все доли в один исполняемый файл при поддержке редактора связей.

мат WSM(Write State Machine). Вычеркивание и программирование флэш-памяти вероятны лишь при подаче на ввод VPP напряжения 12. Сообразно командам, записываемым во врождённый регистр в шинном цикле записи сообразно сигналу.  Исполнение команд инициируется записью их кодов во врождённый регистр, не имеющий конкретного адреса.

Сообразно, кормления врождённый регистр команд обнуляется, что подходит команде  чтения, и микросхема работает, как  рядовая микросхема PROM либо EPROM. Это  дозволяет ставить микросхемы флэш-памяти за место EPROM подобной емкости. При подаче на ввод VPP невысокого напряжения(0-6,5 В) вычеркивание и программирование невероятны, и микросхема ведет себя, как рядовая микросхема EPROM.

Микросхемы  другого поколения — ячейки группируются в блоки, дозволяющие независящее  вычеркивание асимметричное разбиение —,симметричное. Долгая операция стирания 1-го блока может прекращаться для считывания данных остальных блоков, что существенно увеличивает упругость и продуктивность устройства.

Микросхемы  имеют наиболее непростой врождённый правящий робот и регистр состояния, что дозволяет сгрузить наружный процессор и программу от хлопот сообразно отслеживанию продолжительности операции программирования и стирания, а еще адаптировать эти процедуры.

2 Программирование и возможность программа "проверка памяти"

«Конструктор» – это метод класса, имя которого совпадает с именем класса. Конструктор вызывается автоматически после выделения памяти для переменной и обеспечивает инициализацию компонент – данных.

Язычок  программирования — формальная знаковая система, при поддержке которой записываются компьютерные программы. Сообразно различным оценкам, в настоящее время есть от 2-ух с половиной по 10 разных языков программирования.

В сведения о языках программирования организованы в облике трехуровневой  структуры: "язык" →"реализация" →"версия". Еще описаны диалекты языков программирования (желая вопросов, что полагать языком, а что диалектом, является достаточно спорным).[10]

Классифицирование языков исполняется сообразно поддерживаемым парадигмам и системам типизации  данных. Разбиения на языки высочайшего и невысокого уровня недостает, этак как оно наиболее условно, устаревает с порой, возникают языки сверхвысокого уровня и т. д.

Большая часть представленных в энциклопедии языков разрешено полагать языками  высочайшего уровня.

Еще в не проводится деления на интерпретируемые и компилируемые языки: для почти  всех языков, обычно считавшихся интерпретируемыми, в данный момент есть компиляторы, и  напротив.

Вероятна  еще композиция интерпретации и  компиляции: компиляция в байт-код. Таковым образом, классифицирование сообразно принципу интерпретируемости либо языка не имела бы огромного значения.

Языки программирования (их реализации) условно  делятся на группу компиляторов и  группу интерпретаторов. Таковым методом  подчеркивается нрав порождаемых кодов, какие получаются в итоге процесса трансляции.

Нежели  начальный языка поначалу проверяется  и транслируется полностью, а  потом порождаемые коды являются в главном кодами машинного языка, то таковой начальный язычок является компилятором. Нежели строчка исходного языка наполняется сходу после ввода, то таковой язычок зовется интерпретатором.

Этак  компиляторы, традиционно, предоставляют  наиболее действенные сообразно  времени исполнения программы.

Но, цену компилятора и сопутствующих  программ высока, а издержки на заготовление трудной программы (компиляция, сборка), которая нередко изменяется, оказываются  неприемлемыми.

Интерпретаторы комфортны тем, что строчки языка осуществляются сходу. Образом, сходу видимы недостатки либо оплошности при написании программа. Не считая такого, во почти всех вариантах непринципиально, станет программа выполнена за 1 секунду либо за 0. 0001 секунды, к примеру, программа разговора с оператором.

Компиляторы – сразу переводят исходный текст, программы на язык машинных кодов. После этого формируется командный файл (exe или .com) и сама исходная программа уже не нужна.[11]

Языки программирования (их реализации) условно делятся на группу компиляторов и группу интерпретаторов. Таковым методом подчеркивается нрав порождаемых кодов, какие получаются в итоге процесса трансляции.

Нежели начальный языка поначалу проверяется и транслируется  полностью, а потом порождаемые  коды являются в главном кодами машинного  языка, то таковой начальный язычок является компилятором.

Нежели строчка исходного языка  наполняется сходу после ввода, то таковой язычок зовутся интерпретатором.[12]

Этот пост был задуман после такого, как на принципиальные вопросы не было отыскано внятных ответов. Недостает, всё еще спереди, однако период высиживания уже пройден. Это статья из цикла «Не умеешь сам — научи другого». В значении, чтоб кое-что лучше взять в толк необходимо это кое-что, кому-то разъяснить. Мотовелосипед не мой, данная выдумка встречалась мной ранее в публикациях.

Некие вещи чрезвычайно трудно взять  в толк. И люди, какие соображают, традиционно не имеют все шансы  разъяснить начинающему. Это как  беседа зрелого и ребёнка. Фактически конфликт поколений. По, куда мою степень не перерос в специалиста, необходимо выложить.

В природе не есть таковой силы воли, которая сумела бы вынудить Вас  прочитать книжку, при этом постановить  все приведённые задачки.

Вслед за тем всё написано довольно ясно для людей, какие о программировании знают очень не достаточно. Информация незначительно обветшала, однако для старта сойдёт. Может она Вам уже попадалась на глаза либо вы, даже скачали ее, однако отложили в каталог с литературой (ну таковой каталог имеется у всякого, он занимает 10-ки. и всё это мы намереваемся прочесть, как лишь покажется свободное время, а каталог всё растёт).

Сбои в подсистеме памяти часто  становятся причиной ошибок, происхождение  которых неочевидно, причем ошибки эти могут проявляться не каждый раз. Быстрый тест памяти, выполняемый  подпрограммами BIOS при запуске компьютера, способен выявить далеко не все проблемы в работе ОЗУ. Приведу пример из собственного опыта.

Несколько лет назад один из моих компьютеров вдруг начал давать сбои. Сбои случались при выполнении операций копирования файлов больших размеров.

Иногда, в процессе копирования  файла с диска CD-ROM, система сообщала об ошибке копирования, а иногда - просто зависала. Отмечу сразу, что быстрый  тест памяти, выполняемый BIOS при запуске  компьютера, рапортовал о полной исправности  модулей.

Столкнувшись с ошибками чтения с CD-диска, я сперва естественно "погрешил" на носитель, но на другом компьютере диск читался исправно. Простые манипуляции  с оборудованием убедили меня в том, что ни CD-драйв, ни шлейф, соединяющий  его с материнской платой, ни жесткий диск не виноваты.

Где скрывался сбой? Я решил последовательно  заменять все компоненты и проверять  каждую новую конфигурацию с помощью "тестового" CD-диска. Начал я  с модулей памяти (просто потому, что их легче всего было поменять). Когда после замены модуля система заработала нормально (и файлы со злополучного диска стали копироваться без проблем), я прежде всего подумал о том, что проблема была бы решена гораздо быстрее, если бы в тот момент в моем распоряжении была утилита тестирования микросхем памяти.

Почему тестировать микросхемы памяти на компьютерах, управляемых  современными операционными системами, сложно?

Дело в том, что все современные  операционные системы более или  менее успешно скрывают от выполняющихся  в них прикладных программ особенности физической реализации ОЗУ. Вообще-то изоляция программ от деталей работы памяти - вещь полезная. Благодаря этой изоляции программы в многозадачной системе могут выполняться совместно, не мешая друг другу, а операционная система может "сделал

вид", что в ее распоряжении больше оперативной памяти, чем на самом деле. Однако все это затрудняет работу программ тестирования памяти, которые должны непосредственно проверять ячейки (ОЗУ), адрес за адресом.

Впрочем, особенности современных  ОС - не единственное препятствие на пути тестирования памяти.

Кэш процессора и изменение порядка  выполнения инструкций также вносят свою лепту в невольное сокрытие ошибок. Кроме этого существует целый  пласт затруднений, связанных с  самими чипами памяти.

На первый взгляд это может показаться парадоксальным, но самый простой совет – и посмотреть, как все работает –

является не только "дорогостоящим", но и малоэффективным. Как уже  было отмечено, многие ошибки памяти проявляются  лишь в определенных ситуациях (и  то не всегда), так, что заменив, дефектные, модули на исправные и запустив любимую игрушку, вы можете и не обнаружить отличий (отличия могут проявиться потом, когда вы захотите установить, например, Oracle Client).[13]

В то же время программы тестирования памяти являются весьма надежным средством выявления ошибок, так как специально создают такие условия, в которых эти ошибки проявляются. Что представляет собой хороший алгоритм тестирования памяти?

а первый взгляд, кажется, что достаточно просто последовательно заполнять все ячейки памяти каким-то определенным значением (паттерном), а затем считывать записанные в память значения.

Описанный алгоритм отличается простотой, но его недостатком является то, что он позволяет обнаружить только тяжелые и устойчивые сбои в работе памяти, которые наверняка обнаружит и быстрый тест BIOS. Многие ошибки в работе памяти могут зависеть от содержимого памяти (речь идет о ситуации, когда в неисправной микросхеме некоторые соседние ячейки начинают "взаимодействовать" между собой).

Чтобы выявлять такие ошибки, алгоритм тестирования памяти должен проверять один и тот же участок памяти по нескольку раз, записывая и считывая различные (специально подобранные) паттерны. Удачный подбор паттернов позволит, насколько это, возможно, обойти и препятствия, связанные с особенностями выборки данных процессора, и добиться одинаковой эффективности выявления ошибок на разных чипах, отличающихся разным физическим расположением элементов памяти. Это расположение тоже может влиять на характер ошибок.

Все три утилиты, рассмотренные в этом обзоре, имеют малый размер (любой из дистрибутивов умещается на дискете).

Это неудивительно, ведь код алгоритма  тестирования памяти занимает не так  уж много места, а кроме тестирования программы, по сути, ничего и не делают. Еще одна общая черта утилит тестирования памяти - возможность выполнять "бесконечные" тесты. Закончив один прогон теста, программа тут же начинает его снова и так - до тех пор, пока пользователь не прервет этот процесс. По заявлениям авторов программ, одного прохода достаточно для того, чтобы выявить практически все возможные ошибки подсистемы памяти, но особо дотошные пользователи могут крутить тесты сколь угодно долго.

Разгон памяти — это весьма, радикальное средство увеличения производительности, но и чрезвычайно требовательное к качеству модулей памяти. Впрочем, некачественные модули могут сбоить даже в штатном режиме безо всякого разгона. Последствия таких ошибок весьма разнообразны: от аварийного завершения приложения до потери и/или искажения обрабатываемых данных.

Судя по всему, приобретение "битой" памяти — отнюдь не редкость и со сбоями памяти народ сталкивается достаточно регулярно. К его немедленному отказу. Чаще всего дефект проявляется лишь при определенном стечении ряда обстоятельств. Тяжеловесное приложение, «гоняющее" память "и в хвост, и в гриву", имеет все шансы за короткое время "подобрать" нужную комбинацию, провоцирующую сбой.

Написать программу "проверка памяти"