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

Автор: Пользователь скрыл имя, 20 Июня 2013 в 03:53, курсовая работа

Описание работы

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

Содержание

Введение…………………………………………………………………………….3
Основная часть……………………………………………………………………...5
1 Основы программирования и разработка приложений………………………..5
2 Программирование и возможность программа "проверка памяти"…………13
Заключение………………………………………………………………………...21
Глоссарий………………………………………………………………………….22
Список использованных источников…………………………………………….24
Список сокращений……………………………………………………………….25
Приложения……………………………………………………………………….26

Работа содержит 1 файл

KR_Programmirovanie.doc

— 435.50 Кб (Скачать)

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

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

При линейном чтении ячеек микросхема памяти за счет пакетного режима успевает несколько приостыть, поддерживая  внутри себя умеренную температуру. Действительно, при запросе одной ячейки вся «DRAM»-страница читается целиком, сохраняясь во внутренних буферах, и до тех пор, пока не будет запрошена следующая страница этого же банка, никаких обращений к ядру памяти не происходит!

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

Не стоит тестировать несколько банков одновременно. Во-первых, это несколько снизит температуру "накала" каждого из них, а, во-вторых, перепад температур внутри кристалла увеличивает вероятность обнаружения сбоя.

Когда модуль памяти нагрелся так, что  не удержишься рукой, самое время приступать к настоящим тестам. Заполняем «DRAM»-страницу контрольной последовательностью чисел (далее по тексту — шаблоном), переключаем страницу, чтобы гарантированно обновить ячейки памяти (в противном случае микросхема может возвратить содержимое своих буферов, не обращаясь к матрице памяти). Вновь переключаем страницу назад и проверяем, что мы записали. 

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

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

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

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

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

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

В последнее время словосочетание Random Access Memory (RAM) перешло из разряда  обычной аббревиатуры в термин, который  обозначает основное рабочее пространство памяти ПК. Это пространство создается при помощи динамических микросхем оперативной памяти (Dynamic RAM , или сокращенно DRAM). Данное пространство используется процессором для обработки различных задач.

Заключение

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

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

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

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

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

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

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

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

Глоссарий

№ п/п

Понятие

Определение

1.

Язык программирования (ЯП)

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

2.

         Семантика

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

3.

Алфавит

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

4.

Исходный код (ИК)

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

5.

Ключевое слово (КС)

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

6.

Синтаксис

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

7.

Система программирования (СП)

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

8.

Язык описания технических средств

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

9.

Рекурсивное построение

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

10.

Процедурно-ориентированный язык программирования

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


 

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

1.

Анатолий А. Андрей К. Логическое программирование и Visual Prolog (с CD).. – СПб: «БХВ–Петербург», 2009. – С. 990.

2.

Городняя Л.В. Основы функционального программирования. /– М.:– 2007г.

3.

Андрей. Современное проектирование. С++ /Вильямс., 2009г. 336 стр. Тираж: 3500 экз. ISBN 5–8459–0351–3

4.

Иан Грэхем. Объектно–ориентированные методы. Принципы и практика = Object–Oriented Methods. – 3–е изд./ – М.: «Вильямс», 2009г.

5.

Пратт Т., Зелковиц М. Языки программирования: разработка и реализация / Под общей  ред. А. Матросова. – СПб.: Питер, 2012. – 689 с.: ил.

6.

Альфред В. Ахо, Рави Сети, Джеффри  Д. Ульман. Компиляторы: принципы, технологии и инструментарий. – М.: Вильямс, 2011г.

7.

Шишмарев А.И., Заморин А.П. толковый словарь по вычислительной технике. М.: Издательство «Русский язык», 2010г.

8.

Лавров А.И. Процедурно-параметрическая парадигма программирования. - Красноярск: 2000. Деп. рук. № 622-В00 Деп. в ВИНИТИ 13.03.2000. – 43с.

9.

Ахо А., Ульман Дж. Теория синтаксического  анализа, перевода и компиляции. - М.: Мир, 2011г.

10.

Льюис Ф., Розенкранц Д., Стринз Р. Теоретические  основы проектирования компиляторов. - М.: Мир, 2010г..

11.

Пратт Т., Зелковиц М. Языки программирования: разработка и реализация /, 2012. – 475 с.: ил.


 

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

Я.П. – Язык программирования.

КР – Курсовая работа.

ИК – Исходный код.

КС – Ключевое слово.

СП – Система программирования.

Ст. – Статья.

ЭВМ – Электронная вычислительная машина.

ПК – Персональный компьютер.

ПО – Программное обеспечение.

П.Р. – Приложение.

ОЗУ – Оперативное запоминающее устройство.

ОС – Операционная система.

ЭС – Экономическая система.

СУ – Система управления.

Г. – Город.

НИ – Научное исследование.

ЭР – Электронный ресурс интернет.

США – Соединенные Штаты Америки.

В. – Век.

У. – Управление.

МШ – Мозговой штурм.

Др. – Другое.

Млн. – Миллион.

Млрд. – Миллиард.

СУ – Система управления.

А. – Адаптация.

Ас. – Ассоциация.

Гор. – Город.

Приложения

А.

Б.

В.

Г.


1 Пратт Т., Зелковиц М. Языки программирования: разработка и реализация / Под общей ред. А. Матросова. – СПб.: Питер, 2012. – 689 с.: ил.

2 Андрей. Современное проектирование. С++ /Вильямс., 2009г. 336 стр. Тираж: 3500 экз. ISBN 5–8459–0351–3

3 Анатолий А. Андрей К. Логическое программирование и Visual Prolog (с CD).. – СПб: «БХВ–Петербург», 2009. – С. 990.

4 Андрей. Современное проектирование. С++ /Вильямс., 2009г. 336 стр. Тираж: 3500 экз. ISBN 5–8459–0351–3

5 Лавров А.И. Процедурно-параметрическая парадигма программирования. - Красноярск: 2000. Деп. рук. № 622-В00 Деп. в ВИНИТИ 13.03.2000. - 43 с.

6 Шишмарев А.И., Заморин А.П. толковый словарь по вычислительной технике. М.: Издательство «Русский язык», 2010г.

7 Шишмарев А.И., Заморин А.П. толковый словарь по вычислительной технике. М.: Издательство «Русский язык», 2010г.

8 Шишмарев А.И., Заморин А.П. толковый словарь по вычислительной технике. М.: Издательство «Русский язык», 2010г.

9 Лавров А.И. Процедурно-параметрическая парадигма программирования. - Красноярск: 2000. Деп. рук. № 622-В00 Деп. в ВИНИТИ 13.03.2000. - 43 с.

10 Пратт Т., Зелковиц М. Языки программирования: разработка и реализация / Под общей ред. А. Матросова. – СПб.: Питер, 2012. – 689 с.: ил.

11 Альфред В. Ахо, Рави Сети, Джеффри Д. Ульман. Компиляторы: принципы, технологии и инструментарий. – М.: Вильямс, 2011г.

12 Пратт Т., Зелковиц М. Языки программирования: разработка и реализация / Под общей ред. А. Матросова. – СПб.: Питер, 2012. – 689 с.: ил.

13 Лавров А.И. Процедурно-параметрическая парадигма программирования. - Красноярск: 2000. Деп. рук. № 622-В00 Деп. в ВИНИТИ 13.03.2000. - 43 с.

14 Шишмарев А.И., Заморин А.П. толковый словарь по вычислительной технике. М.: Издательство «Русский язык», 2010г.




Информация о работе Написать программу "проверка памяти"