Самоучители для программиста

         

Служебная программа Speed Disk




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









Сохранение содержимого Реестра



Сохранение содержимого Реестра


В системе Windows данные Реестра хранятся в двух файлах - user.dat и system.dat (оба имеют атрибут "скрытый"). Хотя данные Реестра в этих файлах имеют не текстовый формат, их можно сохранить в текстовом виде - такая операция называется экспортом. В результате экспорта создается специальный текстовый файл с расширением .REG. Возможна и обратная операция - импорт данных в реестр. Проще всего выполнить импорт двойным щелчком на файле с расширением .REG.
Неграмотное внесение изменений в системный Реестр может вывести из строя операционную систему. Чтобы застраховаться от неприятностей, следует воспользоваться резервным сохранением Реестра.

В программе Norton Registry Editor возможно использование как текстового формата .REG для сохранения данных Реестра, так и файлов собственного двоичного формата .SRG. Работать с последними можно только в программе Norton Registry Editor. Эти файлы предназначены не для просмотра, а только для резервного сохранения разделов Реестра - они гораздо компактнее, чем текстовые файлы .REG.

Резервирование Реестра выполняют командой









Sort Entries (Сортировка объектов)



Sort Entries (Сортировка объектов). При дефрагментации можно расположить файлы внутри папок в определенном порядке, если установить флажок Sort folder entries (Сортировка объектов в папках). Можно использовать сортировку по одному из следующих критериев: Name (По имени), Extension (По расширению), Date (По дате), Time (По времени), Size (По размеру). Переключатель Sort Order (Порядок сортировки) имеет два положения: Ascending (Прямой порядок) и Descending (Обратный порядок). Дополнительно можно установить флажок Place sub folders first (В начале располагать вложенные папки).









Speed Disk (Дефрагментация диска)



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


Norton Optimization Wizard (Мастер оптимизации). Средство оптимизации системного реестра и размера файла подкачки Windows.


Поиск и устранение неисправностей (Find and Fix Problems)











Сравнение макросредств и подпрограмм



Сравнение макросредств и подпрограмм

Использование макросредств во многом подобно использованию подпрограмм: в обоих случаях мы сокращаем запись исходного текста и создаем повторно используемые фрагменты кода. (Например, в C/C++ вызов псевдофункции неотличим от вызова функции.) Принципиальные различия между подпрограммами и макросредствами: Команды, реализующие подпрограмму, содержатся в кода загрузочного модуля один раз, а команды, реализующие макровызов, включаются в программу для каждого применения макровызова (макросредства требуют больше памяти). Выполнение подпрограммы требует передачи управления с возвратом - команды типа CALL и RET, а команды макрорасширения включаются в общую последовательность команд программы (макровызовы выполняются быстрее). Если в многофункциональной подпрограмме имеется разветвление в зависимости от значений параметров, то в загрузочный модуль включается код подпрограммы в полном объеме, даже если в конкретной программе реально используется только одна из ветвей алгоритма; в макровызове в каждое макрорасширение включаются только операторы, определяемые фактическими значениями параметров макровызова (экономия и времени и объема в макровызовах).

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



Start Необходимо выделить под



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

Этап работы программы можно определить по её строке состояния. Сразу после запуска дефрагментации там записано: Converting Application Start Data (Преобразование данных по запуску приложений), после начинается оптимизация папок (Optimizing folders), затем сортировка (Sorting). И только после завершения этих предварительных этапов начнется собственно перемещение файлов. Если вам необходимо прервать процесс, это можно сделать щелчком на кнопке Stop. Уже выполненная работа не пропадет даром - для завершения дефрагментации в следующий раз потребуется меньше времени.
Если в процессе дефрагментации будет сделана запись на диск, то весь процесс начнется заново.








Start/Stop Начать/остановить дефрагментацию





Start/Stop - Начать/остановить дефрагментацию

Show/Hide Map - Показать/Скрыть карту диска

Help - Помощь

Propeties - Свойства

Legend - Цветовая расшифровка

Close - Закрыть

Если щелкнуть по кнопке







Структурный Ассемблер



Структурный Ассемблер

В виде макрокоманд могут быть реализованы операторы, близкие к операторам управления потоком вычисления в языках высокого уровня (условные операторы, ветвления, различные виды циклов). Известным примером такого расширения является язык Макроассемблера BCPL - предшественник языка C.



Структуры (базы) данных Ассемблера



Структуры (базы) данных Ассемблера









Структуры данных Макропроцессора



Структуры данных Макропроцессора

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

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

Таблица глобальных переменных имеет такую структуру:

Все таблицы имеют переменный размер и заполняются в процессе работы.

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

Для обработки каждого макровызова создаются:

Таблица параметров, содержащая информацию о параметрах макроопределения.

Таблица локальных переменных, содержащая информацию о локальных переменных макроопределения.

Структура этих таблиц - такая же, как и таблицы глобальных переменных, эти две таблицы могут быть объединены в одну таблицу параметров и локальных переменных.

Таблица меток макроопределения, структура которой:



Style



Style

(Стиль) предназначена для выбора оформления индикатора. Выбор выполняют в раскрывающемся списке Type (Тип). Переменные параметры можно отображать с помощью цифрового индикатора Digital Counter (Цифровой) или с помощью графических индикаторов Bar (Линейный), Analog (Аналоговый), Histogram (Гистограмма), Graph (График), Speedometer (Секторная шкала), Wide Bar (Горизонтальная шкала), Tall Bar (Вертикальная шкала). Сводная информация о наличии ошибок или о выполнении различных операций обычно отображается индикатором Stoplight (Светофор).
В группе Sensor Size (Размер датчика) можно задать размер индикатора: Small (Малый) или Large (Большой). Если установить флажок Hidden (Скрытый), то индикатор не будет виден в окне Norton System Doctor, но будет продолжать контролировать заданный параметр.
В группе Sensor Scale для многих датчиков предусмотрен выбор единицы измерения. Предусмотрена также возможность инвертирования показаний, например для пространства жесткого диска можно отображать как размер свободного пространства (Amount Free), так и обратный параметр - размер занятого пространства (Amount Used).









Связывание в Настраивающем Загрузчике



Связывание в Настраивающем Загрузчике.

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

При загрузке в оперативную память Вектор Переходов загружается вместе с кодами программы и остается в памяти все время выполнения программы.

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



System



System -









System Information (Информация



System Information (Информация о системе). Программа, собирающая данные о программной части компьютерной системы: об используемой операционной системе, драйверах, устройствах ввода/вывода, мультимедийных компонентах и т.д.


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


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


Norton File Compare (Сравнение файлов). Служебная программа, предназначенная для сравнения файлов, имеющих текстовый формат (.BAT, .INI, .REG и т.п.). Имеет расширенные возможности для поиска различий, например выполняет синхронизацию строк, фиксирует изменение порядка следования записей и т.п.


Обслуживание реестра (Registry Management)











Тема 2 Ассемблеры


Определение (не по ГОСТ)
Язык Ассемблера - система записи программы с детализацией до отдельной машинной команды, позволяющая использовать мнемоническое обозначение команд и символическое задание адресов.

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

Программирование на языке Ассемблера позволяет в максимальной степени использовать особенности архитектуры вычислительной системы. До недавнего времени воспринималась как аксиома, что Ассемблерная программа всегда является более эффективной и в смысле быстродействия, и в смысле требований к памяти. Для Intel-архитектуры это и сейчас так. Но это уже не так для RISK-архитектур. Для того, чтобы программа могла эффективно выполняться в вычислительной среде с распараллеливанием на уровне команд, она д.б. определенным образом оптимизирована, т.е., команды д.б. расположены в определенном порядке, допускающим их параллельное выполнение. Программист просто не сможет покомандно оптимизировать всю свою программу. С задачей такой оптимизации более эффективно справляются компиляторы.

Доля программ, которые пишутся на языках Ассемблеров в мире, неуклонно уменьшается, прикладное программирование на языках Ассемблеров применяется только по недомыслию. Язык Ассемблера "в чистом виде" применяется только для написания отдельных небольших частей системного ПО: микроядра ОС, самых нижних уровней драйверов - тех частей, которые непосредственно взаимодействуют с реальными аппаратными компонентами. Этим занимается узкий круг программистов, работающих в фирмах, производящих аппаратуру и ОС. Зачем же нам тогда изучать построение Ассемблера?

Хотя разработка программ, взаимодействующих с реальными аппаратными компонентами, - редкая задача, в современном программировании при разработке прикладного, а еще более - промежуточного ПО довольно часто применяется технологии виртуальных машин. Для выполнения того или иного класса задач программно моделируется некоторое виртуальное вычислительное устройство, функции которого соответствуют нуждам этого класса задач. Для управления таким устройством для него м.б. создан соответствующий язык команд. (Широко известные примеры: MI AS/400, JVM.) Говоря шире, любую программу можно представить себе как виртуальное "железо", решающее конкретную задачу. (Конечный пользователь обычно не видит разницы между программой и аппаратурой и часто говорит не "мне программа выдала то-то", а "мне компьютер выдал то-то"). В некоторых случаях интерфейс программы м.б. удобно представить в виде системы команд, а следовательно, нужен соответствующий Ассемблер. (Это, конечно, относится не к программам "для чайников", а к инструментальным средствам программистов, системам моделирования и т.п.).



Тема 5 Кросссистемы


Исходная вычислительная система (ВС) - та ВС, на которой программа готовится к выполнению.

Целевая ВС - та ВС, на которой программа выполняется.

Эти две ВС не обязательно совпадают. Макропроцессор, Ассемблер, Редактор Связей - программы, обрабатывающие данные. Ассемблер, например, получает на входе одни код (текст) и производит на выходе другой код (объектный модуль). При этом Ассемблер не рассматривает свой выходной код как команды именно своей ВС, это просто некоторые данные. Ничто не мешает нам сделать Ассемблер, на выходе которого будут генерироваться коды не той ВС, в которой работает Ассемблер, а некоторой другой ВС.

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

Для чего может понадобиться кросс-система? Часто кросс-системы применяются для разработки программного обеспечения встроенных вычислительных систем. Для встроенных ВС характерен малый объем ресурсов: ограничение оперативной памяти, возможно, отсутствие внешней памяти (программы и постоянные данные размещаются в ПЗУ), отсутствие должного набора внешних устройств. Иногда ресурсов целевой ВС просто недостаточно для выполнения на ней системного программного обеспечения подготовки программ, тем более - для выполнения интерактивных систем программирования с развитым интерфейсом пользователя. При разработке новых ВС создание программного обеспечения для них ведется параллельно с разработкой аппаратной части. Подготовка и отладка программ для проектируемой ВС должна вестись, когда целевой ВС еще не существует физически.

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

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

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

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

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

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

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



Text Files



Text Files

(Текстовые файлы) заданы системные файлы, имеющие текстовый формат. По умолчанию это файлы autoexec.bat, config.sys, system.ini, win.ini. Этот список можно корректировать кнопками Add (Добавить) и Remove (Удалить). Флажок Show EExclusion(Отображать исключения) приводит к индикации имеющихся исключений.









UnErase Wizard



UnErase Wizard



В стартовом окне предлагается предварительный выбор:

Find recently deleted files (Поиск недавно удаленных файлов), к которым относятся 25 последних удаленных файлов);

Find all protected files on local drives (Поиск всех защищенных файлов на локальных дисках), то есть всех файлов находящихся под защитой Norton Protection;

Find any recoverable files matching your criteria (Поиск любых файлов, способных к восстановлению и отвечающих заданным критериям). К этой группе относятся любые файлы, восстановление которых еще возможно.


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

Quick View - просмотр содержимого файла;

Recover - восстановление файла;

Recover to - восстановление файла в другую папку;

Delete - удаление, после чего файл теряет защиту Norton Protection;

Properties - открывается окно свойств файла.


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

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

·Original Location (Исходное местоположение);  
·Date Deleted (Дата удаления);  
·Type (Тип файла);  
·Size (Размер файла);  
·Modified (Дата последнего изменения);  
·Created (Дата создания);  
·Accessed (Дата последнего открытия);  
·Attributes (Атрибуты);  
·Deleted by (Каким приложением удален);  
·Status (Возможность восстановления).  

Если в главном окне UnErase Wizard выбран пункт Find all protected files on local drives (Поиск всех защищенных файлов на локальных дисках), то также открывается окно со списком файлов, но содержащее все файлы, находящиеся под защитой Norton Protection.

При выборе третьего пункта в главном окне программы Find any recoverable files matching your criteria (Поиск любых файлов, способных к восстановлению и отвечающих заданным критериям), будет выполняться поиск всех файлов, пригодных к восстановлению, независимо от статуса защиты Norton Protection. В этом случае Мастер приступает к серии запросов, позволяющих выполнить поиск удаленного файла.

Запрос What is filename (Каково имя файла) допускает использование общепринятых подстановочных символов.
Следующий запрос What is the file type (Каков тип файла) позволяет сделать выбор любого из зарегистрированных в системе типов файлов.
Запрос What words are in the file (Какие слова встречаются в файле) может использоваться при поиске текстовых файлов. Можно уточнить условия поиска: Must contain at least one word (Должно содержаться любое из слов) или Main contain all the words (Должны содержаться все слова).
Запрос Where was the file located (Где файл размещался) позволит сузить зону поиска. Обратите внимание на флажок Look in subfolders (Просматривать вложенные папки).
Если вы не можете ответить на какой-либо из запросов Мастера, то переходите к следующему. По завершении запросов начинается поиск, результаты которого предстанут перед вами.

Таким образом, Мастер восстановления данных (UnErase Wizard) располагает внушительным арсеналом средств, предназначенных для восстановления потерянной информации.

















UnErase Wizard ·Из Главного меню



UnErase Wizard.  
·Из Главного меню (Пуск>Программы>Norton Utilites>UnErase Wizard).  
·Из оболочки Norton Utilites Integrator.  









UnErase Wizard (Мастер восстановления удаленных файлов)



UnErase Wizard (Мастер восстановления удаленных файлов).







Unerasefordos



Этот модуль применяют для восстановления жизненно важных файлов, удаленных по неаккуратности, небрежности или в результате вирусной атаки. При запуске программы из оболочки Rescue Disk Shell потребуется вставить в дисковод дискету NU Emergency Utilities Disk 1. После загрузки программы вы увидите окно, показанное на рисунке ниже.

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



В правом столбце Prognosis (Прогноз) приведена оценка шансов на удачное восстановление:

·excellent (отлично) - файл находится под защитой Norton Protection;  
·good (хорошо) - файл не имеет статуса защиты, но может быть восстановлен, так как поверх него еще не записан никакой другой файл;  
·poor (плохо) - скорее всего файл не может быть восстановлен, так как поверх него уже записан другой файл.  

Восстанавливают файл щелчком на кнопке UnErase (Восстановить). Если файл не имел статуса защиты Norton Protection придется вручную ввести первый символ его имени.

























Уникальные метки



Уникальные метки

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

Уникальное имя метки может формироваться формате, подобном следующему: &имя.nnnnnn где - nnnnnn - число, увеличивающееся на 1 для каждой следующей уникальной метки.

Другой возможный способ формирования, например: имя&SYSNDX где SYSNDX - предустановленное имя, имеющее числовое значение, начинающееся с 00001 и увеличивающееся на 1 для каждой следующей уникальной метки.

Следующие операторы Макроязыка влияют на последовательность обработки операторов макроопределения. В тех или иных Макропроцессорах имеется тот или иной набор таких операторов.



Условные блоки



Условные блоки

Возможный формат оператора: IF условное_выражение операторы_макроопределения_блок1 ENDIF ELSE операторы_макроопределения_блок2 ENDIF

Если условное_выражение имеет значение "истина", обрабатываются операторы макроопределения от оператора IF до оператора ENDIF, иначе обрабатываются операторы макроопределения от оператора ESLE до оператора ENDIF. Как и в языках программирования блок ELSE - ENDIF не является обязательным.

Условные выражения описаны выше. Обычно предусматриваются специальные формы: IFDEF имя IFNDEF имя проверяющие просто определено или не определено данное имя.

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



В процессе установки новых приложений




В процессе установки новых приложений происходит изменение системной информации: добавление динамических библиотек в папку \Windows, изменение системного реестра, файлов инициализации .INI и т.п. Программа Norton Registry Tracker автоматически делает "снимки" системных объектов, когда обнаруживает их изменение, а также предоставляет возможность вернуть систему в ее предыдущее состояние.









Verify Writes (Проверка записи)



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

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

Созданные настройки можно сохранить щелчком на кнопке Save (Сохранить).
Щелчок на кнопке Customize (Заказной метод) открывает диалоговое окно Customize Full Optimization (Заказной метод полной оптимизации).









Вкладка



Вкладка









Вкладка Advanced



Advanced


Вкладка Advanced позволяет задать время простоя жесткого диска, по истечении которого дефрагментация будет возобновлена. Это делается установкой счетчиков Begin after ... idle minutes and ... seconds.

Флажок Watch communication ports (Ждать освобождения порта) устанавливают для устранения возможных конфликтов с программами факсимильной связи, находящимися в дежурном режиме.










Вкладка Alarm



Вкладка Alarm

(Сигнализация) служит для настройки параметров сигнализации. Применение сигнализации определяется установкой флажка Enabled (Разрешено). Флажок Show Trigger Level (Показать уровень срабатывания) позволяет отображать этот уровень на графическом индикаторе.
Движок Trigger Level (Уровень срабатывания) предназначен для задания уровня срабатывания сигнализации. В большинстве случаев возможен выбор единиц измерения уровня срабатывания с помощью раскрывающегося списка, а также прямой ввод параметров в текстовое поле.
С помощью переключателя Alarm Action (Выполняемые действия) можно задать реакцию на превышение уровня срабатывания:
·No Action (Без действий);
·Display Alarm Message (Вывести предупреждающее сообщение);  
·Fix Automatically (Автоматически исправить).  

В последнем случае иногда можно скорректировать действия кнопкой Settings (Установки), с помощью которой выполняют настройку служебных программ, предназначенных для устранения обнаруженной неполадки.
Установив флажок Fix At (Исправить в) можно задать конкретное время выполнения процедуры.
С помощью флажка Play Sound (Воспроизведение звука) можно в качестве сигнализатора воспроизводить звуковой сигнал, для которого указывается путь доступа к звуковому файлу (/wav или .mid).









Вкладка General Программа Norton



Вкладка General

Программа Norton Disk Doctor может запускаться автоматически при загрузке Windows. Для этого необходимо установить флажок Start automatically with Windows.

В поле Select drive(s) to diagnose необходимо флажками отметить диски, которые должны проверяться. В автоматическом режиме проверка поверхности не производится, независимо от установок на вкладке Surface Test (Проверка поверхности).

При обнаружении повреждений файловой структуры программа может выполнить необходимые восстановительные работы (ремонт). Параметры ремонта настраиваются в поле Repair Options (Параметры ремонта).
Желаемый порядок действий в случае обнаружения неполадок можно задать включением одного из следующих переключателей:








Вкладка Norton Protection



Вкладка Norton Protection









Вкладка Optimization На вкладке



Optimization
На вкладке Optimization (Оптимизация) задаются основные параметры оптимизации.

В группе Optimization Method (Метод оптимизации) можно выбрать один из трех режимов оптимизации. Подробнее >>

Флажок Optimization Swap File (Оптимизировать файл подкачки) желательно не сбрасывать, иначе работа Windows может замедлиться.

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

Установка флажка







Вкладка Surface Test



Вкладка Surface Test









Вложенные макровызовы Вложенные макроопределения



Вложенные макровызовы. Вложенные макроопределения.

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



Внесение изменений в Реестр



Внесение изменений в Реестр



Изменения в Реестр удобно вносить с помощью контекстного меню. Щелчок правой кнопки открывает контекстное меню. Раскрывающийся пункт меню New (Создать) позволяет создать:

·Key (Раздел);
·String (Строковый параметр);  
·Numeric (Числовой параметр);  
·Binary (Двоичный параметр);  
·Expanded String (Расширенный строковый параметр);  
·Multi String (Мультистрока).  

Двойной щелчок на панели значений открывает диалоговое окно, в котором можно изменить значение параметра.









Время



Время

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



Вводвывод



Ввод-вывод

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

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

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



Выдача сообщения



Выдача сообщения

При возникновении ошибок или ситуаций, требующих предупреждения программисту в листинг должно выводиться сообщение. Если в результате ошибки программиста, написавшего макроопределение или макровызов будет сгенерирован неправильный код программы на языке Ассемблера, то эта ошибка будет выявлена только Ассемблером на этапе трансляции программы. Однако выгоднее выявлять ошибки не как можно более ранних этапах подготовки программы, в Макроязыке ошибочные ситуации (ошибки в параметрах и т.п.) могут быть выявлены при помощи условных операторов или блоков, а для выдачи сообщения об ошибке должен существовать специальный оператор Макроязыка. Формат такого оператора примерно следующий: MOTE код_серьезности,код_ошибки,сообщение_об_ошибке

код_серьезности - числовой код, определяющий возможность продолжения работы при наличии ситуации, вызвавшей сообщения. Должны индицироваться, как минимум, следующие ситуации: работа Макропроцессора может быть продолжена, по окончании ее может выполняться ассемблирование; работа Макропроцессора может быть продолжена, но ассемблирование выполняться не может; работа Макропроцессора не может продолжаться.

код_ошибки - числовой код, служащий, например, для поиска развернутого описания сообщений и действий при его возникновении в документе "Сообщения программы"

сообщение_об_ошибке - текст, печатаемый в листинге



Взаимодействие с человекомоператором



Взаимодействие с человеком-оператором

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

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

Точки останова могут задаваться в исходном для Интерпретатора файле и вводиться/изменяться в ходе интерактивной отладки. Могут быть предусмотрены остановы при: передаче управления по заданному адресу; чтении данных по заданному адресу; записи данных по заданному адресу.

Связь отладки с исходным текстом. Такая связь безусловно удобно и может быть осуществлена относительно несложно, если выход 1-го прохода Кросс-Ассемблера передается на вход Интерпретатора. Выход 1-го прохода связывает операторы исходного текста с адресами памяти. Таким образом, по значению счетчика адреса в каждый момент выполнения программы можно найти в выходе 1-го прохода соответствующий оператор исходного текста. Если на вход Интерпретатора подается также сформированная 1-ым проходом таблица символов, то есть возможность обращаться к переменным программы и к точкам передачи управления по символьным именам.

Можно ли обеспечить изменение прямо в ходе отладки исходного текста? Схема решения сводится к представленной на рисунке. В схеме остается только 1-й проход Кросс-Ассемблера. Выход его - исходный текст с разметкой адресов и таблица символов является основным входом Интерпретатора. Необходимость во 2-ом проходе Кросс-Ассемблера отпадает. В начале выполнения Интерпретатор должен построить модель памяти, в которой он размещает, однако, только данные программы, но не команды. При работе Интерпретатор повторяет многие действия 2-го прохода Кросс-Ассемблера, читает не коды, а исходные тексты и распознает команду не по коду операции, а по мнемонике, и интерпретирует операнды не по кодам, а по исходным текстам. Изменения в исходном тексте оператора программы должны автоматически реплицироваться в соответствующем операторе (только в одном операторе!) результата 1-го прохода, и тогда при следующем выполнении этого оператора будет моделироваться уже выполнение новой команды. Однако, поскольку в результате 1-го прохода каждый оператор уже привязывается к определенному адресу, возможность изменения должна ограничиваться тем, что длина новой команды обязательно равна длине старой команды. Более сложные изменения потребуют повторного выполнения 1-го прохода Кросс-Ассемблера.

Итоговая схема алгоритма функционирования Интерпретатора сводится к следующей:

Запуск Интерпретатора. Открытие исходных файлов - результатов работы Кросс-Ассемблера и файлов с управляющей информацией (описание файлов - внешних устройств, программа поступления прерываний, описание фрагментов памяти и отдельных ячеек и т.п.). Считывание управляющей информации. Установка начальных значений для компонентов модели (содержимое памяти, регистры, счетчик модельного времени). Интерактивное задание/корректировка управляющей информации (режим выполнения, точки останова и т.п.). Автоматический режим? Если установлен пошаговый (не автоматический) режим выполнения, выполняется ввод и обработка команд оператора в интерактивном режиме. Эта обработка может заканчиваться либо продолжением выполнения интерпретатора в пошаговом или автоматическом режиме, либо завершением его работы по команде оператора. Если установлен автоматический режим выполнения, но текущее значение регистра - счетчика адреса совпадает с одной из заданных точек останова, также выполняется ввод и обработка команд оператора в интерактивном режиме. Проверяется счетчик модельного времени сравнивается с временем поступления первого прерывания в списке прерываний. Если счетчик модельного времени больше или равен времени поступления первого прерывания в списке, выполняется сохранение текущего состояния и занесение в регистр-счетчик адреса секции обработки прерывания данного типа. Первый элемент удаляется их списка прерываний и происходит возврат на начало итерации обработки команды. Если прерывание не поступило, выбирается первый байт команды (при отладке по объектному модулю) или ее мнемоника (при отладке по исходному тексту). Код операции или мнемоника команды ищется в таблице команд. При неуспешном поиске Интерпретатор заканчивается с сообщением об ошибке. Выбор операндов из кода команды или из текста оператора. Проверка правильности кодирования операндов, проверка корректности обращения к памяти. При ошибках в операндах или в обращении к памяти Интерпретатор заканчивается с сообщением об ошибке. Задан ли для адреса операнда останов при обращении? Если да - возврат на выполнение команд в интерактивном режиме. Интерпретация команды и запись результата Вычисление и занесение в регистр-счетчик адреса следующей команды. Проверка, является ли адрес в регистре-счетчике адреса адресом 1-го байта команды Если это не так, Интерпретатор заканчивается с сообщением об ошибке. Модификация счетчика модельного времени и переход на выполнение следующей команды.

Окончание работы Интерпретатора может происходить: при обнаружении ошибки в программе; при вводе оператором интерактивной команды завершения работы; при обработке команды останова (HALT) в программе.

НазадОглавление
КаталогИндекс раздела

x

Welcometopic



 
Переводы справочных файлов к популярным программам www.ruhelp.narod.ru

 

 

 

Редактирование, скриншоты, адаптация к версии Norton Utilities 2002, компиляция в формат .CHM  

Горчаков Д.А.  

 

Этот файл содержит материалы книги  

Симонович С.В., Евсеев Г.А., Алексеев А.Г.  

WINDOWS: Лаборатория мастера: Практическое руководство по эффективным приемам работы с компьютером.  

М.: АСТ-ПРЕСС: Инфорком-Пресс, 2001.  

 

Советую Вам приобрести эту книгу. Очень профессиональное и в то же время доступное изложение материала. Подробно описано более 40 популярных программ.  









Windows



Windows.


Для выполнения поиска предназначена кнопка Find (Найти) на панели инструментов. Она открывает окно поиска.

Строку для поиска вводят в поле








Windows Settings



Windows Settings

(Настройки Windows) с помощью переключателя Window Display (Отображение окна) можно задать режим отображения окна. Рядом расположена область предварительного просмотра, в которой можно наблюдать результаты настроек. В положении Docked (Пристыковано) окно стыкуется к одному из краев экрана (по умолчанию - сверху, но впоследствии его можно перетащить к любому краю). Установка флажка Auto Hide (Скрывать автоматически) приведет к скрытию окна в нерабочем состоянии. Окно всплывает при подведении указателя к краю экрана. В положении Normal (Обычное) можно установить следующие флажки:

·Show Title Bar (Отображать заголовок);
·Show Symantec Logo (Отображать логотип);  
·Always on Top (Всегда сверху).  

Список Sensor Order (Порядок датчиков) позволяет управлять порядком расположения датчиков в окне с помощью кнопок Up (Вверх) и Down (Вниз).
Установка флажка Start automatically with Windows (Загружать вместе с Windows) приведет к запуску мониторинга сразу после загрузки операционной системы. Флажок Start Minimized (Запуск в свернутом состоянии) обеспечивает запуск программы в свернутом состоянии. При этом на панели индикации рядом с часами появляется ее значок в виде светофора.
Существует и другой способ включения режима автозагрузки Norton System Doctor - в окне Интегратора надо подать команду Options и на вкладке Startup Programs установить флажок Norton System Doctor.









Заголовок макроопределения



Заголовок макроопределения

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

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

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

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

Заголовок макроопределения Макровызов Результат подстановки
M1 MACRO A,B,C M1 X,Y,Z A=X, B=Y, C=Z

В позиционной форме количество и порядок следования фактических параметров макровызова должны соответствовать списку формальных параметров в заголовке макроопределения. При использовании ключевой формы каждый фактический параметр макровызова задается в виде: имя_параметра=значение_параметра

В таком же виде они описываются и в списке формальных параметров, но здесь значение_параметра может опускаться. Если значение_параметра в списке формальных параметров не опущено, то это - значение по умолчанию. В макровызове параметры могут задаваться в любом порядке, параметры, имеющие значения по умолчанию, могут опускаться.
Пример:

Заголовок макроопределения Макровызов Результат подстановки
M1 MACRO A=Q,B=,C=R M1 C=Z,B=X A=Q, B=X, C=Z

В смешанной форме первые несколько параметров подчиняются правилам позиционной формы, а остальные - ключевые.

Пример:

Заголовок макроопределения Макровызов Результат подстановки
M1 MACRO A,B,C=Q,D=,E=R M1 X,Y,Z,D=T,E=S A=X,B=Y,C=Q,D=T,E=S

В некоторых Макропроцессорах имена параметров начинаются с некоторого отличительного признака (например, амперсанда - &), чтобы Макропроцессор мог отличить "свои" имена (имена, подлежащие обработке при обработке макроопределения) от имен, подлежащих обработке Ассемблером. Для Макропроцессоров, которые мы отнесли к категории сильносвязанных такой признак может и не быть необходимым, так как такой Макропроцессор обрабатывает как свои имена, так и имена Ассемблера. В любом случае возникает проблема распознавания имени в теле макроопределения. Например, если макроопределение имеет формальный параметр &P, а в макровызове указано для него фактическое значение 'X', то как должна обрабатываться подстрока '&PA' в теле макроопределения? Должна ли эта подстрока быть заменена на 'XA' или оставлена без изменений?

Логика, которой следует большинство Макропроцессоров в этом вопросе, такова. &PA является именем в соответствии с правилами формирования имен. Поэтому оно не распознается как имя &P и остается без изменений. Если мы хотим, чтобы подстановка в этой подстроке все-таки произошла, следует поставить признак, отделяющий имя параметра от остальной части строки. Обычно в качестве такого признака используется точка - '.': '&P.A' заменяется на 'XA'.



Завершение обработки



Завершение обработки

Обработка макроопределения завершается при достижении оператора MEND. Однако, поскольку алгоритм обработки макроопределения может разветвляться, должна быть предусмотрена возможность выхода из обработки и до достижения конца макроопределения. Эта возможность обеспечивается оператором MEXIT. Операндом этого оператора может быть код_серьезности.