Патент на изобретение №2177636
|
||||||||||||||||||||||||||
(54) СБОР ДАННЫХ ОБ ОТКАЗАХ КАК ЧАСТЬ ПЕРЕЗАПУСКА КОМПЬЮТЕРНОГО УСТРОЙСТВА
(57) Реферат: Изобретение относится к вычислительной технике. Техническим результатом является возможность сбора данных, являющихся релевантными при нахождении причин ошибки, и их сохранность для последующего анализа. Для этого заявленный способ состоит в том, что считывают из основного запоминающего устройства компьютера структуры данных программного обеспечения после инициализации перезапуска компьютера, но перед записью новых данных в часть основного запоминающего устройства, сравнивают содержимое структур данных с заранее определенными нормальными значениями и в ответ на отклонение копируют структуры данных, считанные из основного запоминающего устройства, в заранее определенное периферийное устройство. 6 з.п.ф-лы, 4 ил. Изобретение относится к сбору данных об отказах в компьютерных системах. Точнее, изобретение относится к способу решения проблем, ведущих к перезапуску компьютера, управляющего процессом, например – передачей вызовов. Пользователи компьютеров и их программного обеспечения часто сталкиваются с такими беспокоящими ситуациями отказов, в которых компьютер переключается в исходное состояние, т.е. он действует так, как будто электропитание только что включено. В таком случае данные, которые хранились в запоминающем устройстве компьютера, обычно теряются. Операционная система может выдать короткое сообщение об ошибке, например – “Общий отказ защиты”. Такое сообщение об ошибке вряд ли дает пользователю или поддерживающему консультанту какую-либо информацию о причине отказа или совет о том, как действовать, чтобы такая ситуация не повторилась. Другой экстремальный вариант представлен случаем, при котором программное обеспечение определенной локальной сети ( Novell ![]() фиг. 1 изображает распределенную компьютерную систему, фиг. 2 изображает части операционной системы компьютера, фиг. 3 изображает иллюстративную цепочку процессов и фиг. 4 является схемой, иллюстрирующей работу программы сбора данных об отказах. Фиг. 2 изображает части операционной системы компьютера 20. Функция OC1 сбора данных об отказах в соответствии с изобретением может быть помещена в операционную систему наряду с другими функциями операционной системы. На фиг. 2 функция OC1 сбора данных об отказах показана как первая функция. Эта компоновка предназначена для того, чтобы подчеркнуть, что данные об отказах должны быть собраны до загрузки программного обеспечения, например – из накопителя на дисках, и повторной инициализации структур данных. На фиг. 2 также показано, что часть основного запоминающего устройства 23 компьютера 20 резервируется как область памяти, ОПАМ, использование которой будет пояснено в связи с фиг. 3. Фиг. 3 изображает иллюстративную цепочку процессов. Программа OC1 сбора данных об отказах, соответствующая изобретению, получает информацию о происхождении цепочки, например, посредством способов пакетирования программного обеспечения. Тот же способ используется, например, для разрешения использования библиотек общего назначения. Общая идея состоит в том, что программа OC1 сбора данных об отказах, соответствующая изобретению, выявляет параметры различных процессов и семейств процессов таким же образом, как и остальное программное обеспечение – OC2-OC5 – выявляет соответствующие параметры. Начальную точку ОП10 процесса П10 локализуют на основе точки запуска. Процесс П10 связан с процессом П11, который, в свою очередь, связан с процессами П12 и П13. На фиг. 3 также показан в качестве примера случай, в котором процесс П11 может также быть связан с процессом П14. Предположим сначала, что процессы можно загрузить в запоминающее устройство динамически, т. е. по произвольным адресам, так что данные об адресе запоминающего устройства, по которому помещен процесс, находятся, например, в области параметров предыдущего члена семейства. Ниже описывается то, как программа сбора данных об отказах, соответствующая изобретению, может выявить, какой процесс остается зацикленным. Это зависание можно обнаружить, например, таким образом, что сообщение, которое было передано в процесс последним, сохраняется до тех пор, пока процесс не будет готов принять следующее сообщение. Если программа остается зацикленной, сообщение обычно в любом случае не выпускается. Программа OC1 сбора данных об отказах, соответствующая изобретению, может обнаружить такую ситуацию, например, путем проверки блока управления процессом, БУП, в области параметров, ОП. Кроме того, после нескольких процессов имеющаяся в наличии память фрагментируется таким образом, что расширенные процессы нельзя снабдить единой областью памяти. Такие проблемы можно решить, исходя из структур данных управления памятью операционной системы. Вхождение в курс вышеупомянутых иллюстративных проблем облегчается, когда данные об областях памяти, зарезервированных процессами, сохраняют во время перезапуска следующим образом: 1) адрес ОП10 первого элемента П10 первого семейства процессов считывают из списка семейств процессов, ССП, 2) область параметров, ОП, первого процесса семейства процессов считывают на основе этого адреса и копируют в область памяти, ОПАМ, 3) этап 2) рекурсивно повторяют для всех процессов, которые вызвал этот процесс, 4) адрес первого элемента следующего семейства процессов считывают из списка и повторяют этапы 2) – 3) до тех пор, пока список семейств процессов не будет полностью обработан. В этой связи отметим, что область параметров, ОП, относится к области в основном запоминающем устройстве 23, связанной с каждым процессом, и к сохранению данных, которые связаны с процессом и существенны для изобретения. Точный характер этих существенных данных будет описан ниже. Область памяти, ОПАМ, – это область, которая также находится в основном запоминающем устройстве 23, которая задается программным обеспечением сбора данных, соответствующим изобретению, и в которую области параметров, ОП, процессов копируются во время перезапуска. Вышеупомянутый способ применим в общем случае, когда процессы можно загружать в любую область памяти. Когда определенные процессы всегда загружают по конкретному адресу, адрес начала и конца их областей параметров получают непосредственно известным способом во время компиляции программы. В случае программы анализа, соответствующей изобретению, эти адреса можно соотносить таким же образом, как их соотносят, когда задают также остаток программного обеспечения. В этом случае можно использовать более простой способ, который можно представить в виде следующего псевдокода: копировать П10.ОП в ПАМ. ОП1 копировать П11.ОП в ОПАМ. ОП2 … Пn. ОП относится к области параметров процесса Пn и, соответственно, ОПАМ. ОПn относится к области в области памяти, ОПАМ, в которую копируется область параметров процесса Пn. В переводе на реальный язык программирования этот псевдокод, приведенный выше, можно реализовать таким образом, что адрес начала области П10. ОП загружается в исходный регистр в целях копирования, адрес начала области ОПАМ. ОП1 загружается в целевой регистр, а размер области П10. ОП в байтах загружается в регистр, указывающий количество байтов копирования. Адрес начала области ОПАМ. ОП2 получают путем прибавления размера области П10. ОП в байтах к адресу начала области ОПАМ. ОП1, и т.д. Соответственно, область параметров, ОП, любого процесса Пn копируется в область памяти, ОПАМ, по адресу, который получается путем прибавления размера области параметров, ОП, предыдущего процесса Пn-1 к адресу начала области памяти, ОПАМ. ОПn-1, предыдущего процесса. Для иллюстрации изобретения, выше принято допущение, что область параметров, ОП, каждого процесса является единой областью памяти. Если область параметров распределена по нескольким отдельным областям, вышеупомянутые этапы копирования области параметров в область памяти, ОПАМ, следует повторять для каждого сегмента распределенной области параметров. Значимые данные можно также получить путем проверки семафоров, относящихся к процессу. Семафор – это счетчик, который содержит состояние ожидания и посредством которого можно осуществлять взаимное исключение процессов. Процессы используют таким образом, что обычно только один процесс может оперировать с областью, защищенной семафором. Такая область, защищенная семафором, обрабатывается подпрограммой программного обеспечения, которая начинается с так называемой операции P и оканчивается так называемой операцией V. Операция P обеспечивает отрицательное приращение величины содержимого счетчика, и если эта величина слишком мала (отрицательна), процесс сам себя ставит в очередь в семафоре. В противном случае процесс продолжает код, следующий за операцией Р. В конце кода процесс выполняет операцию V, при которой значение содержимого счетчика получает положительное приращение. Если значение стало отрицательным, активизируется процесс резервирования и он, в свою очередь, имеет доступ в защищенную область. Проблема состоит в том, что когда процесс не попадает в защищенную область, т.е. когда он управляет семафором, очередь этого семафора прекращается без специальных мер. С другой стороны, программа может быть ошибочной и не выполнять операцию V вовсе. Эти проблемы можно решить путем указания данных обо всех семафорах, управляемых процессом, в области параметров. Вышеописанный способ как таковой дает слишком много недостаточно выводимых на экран данных для практических приложений. На самом деле данные следует выводить на экран более точно перед их передачей для анализа человеком. Например, можно поставить такую цель, чтобы данные, необходимые для устранения отказа, можно было сжать из основного запоминающего устройства объемом около 32 мегабайт в несколько или даже одну пригодную для чтения страницу. В таком случае из основного запоминающего устройства можно извлечь 0,01% данных, которые существенны для локализации отказа. Подходящий способ заключается в том, что программа сбора данных об отказах задает заранее определенное пороговое значение для памяти, резервируемой процессом. Сохраняются области параметров только тех процессов, которые зарезервировали память в количестве, превышающем это пороговое значение. Вместо этого программа сбора данных об отказах может также проходить по цепочке семейств процессов вышеуказанным образом, но дважды. Первый раз включает только выявление того, сколько памяти зарезервировано для каждого процесса или семейства процессов. Во второй раз в области памяти сохраняются области параметров нескольких или только одного семейства процессов, резервирующего больше всего памяти. Для обобщения выше было внесено допущение, что список семейств процессов, ССП, является линейным списком, т.е. цепочкой, в которой за одним семейством процессов следует другое, но только одно семейство процессов (или конец списка). Также внесено допущение, что в рамках семейства процессов процессы Пn могут образовывать древовидные структуры. Если реальная ситуация проще, чем одна из описанных выше, например – такова, что процессы образуют только линейные списки в рамках семейства процессов, обработку древовидных структур можно исключить для простоты. Содержание областей параметров, ОП, существенное для изобретения, может включать в себя, например, следующие конкретные моменты процессов при использовании, например процессоров “Intell ![]() ![]() – области памяти, зарезервированные процессом (размер, время резервирования, использование), – сообщения, переданные, но еще не принятые процессом, – управления временем, заданные процессом, – файлы, открываемые процессом, – совместно используемые ресурсы, зарезервированные процессом, например – операции P, выполняемые для совместно используемых семафоров, – прикладные конкретные переменные в стеке и в области данных, а также данные, сохраняемые в этих областях операционной системой. Соответственно, данные, совместно используемые всеми процессами, включают в себя: – данные резервирования памяти, особенно – данные, относящиеся к имеющейся памяти, – семафоры, связанные с резервированиями памяти, – семафоры, предназначенные для использования в целях общего назначения, – журнал регистрации ошибок операционной системы. Программа ОС1 сбора данных об отказах, соответствующая изобретению, может находить эти структуры данных из памяти и получать данные из них так же, как остальная часть программного обеспечения обрабатывает те же структуры данных. Кроме того, выгодно дополнить программу сбора данных об отказах возможностью управления работой программы с принудительными управляющими записями, которые можно использовать, чтобы заставить программу собирать данные из определенных областей памяти. Эти области памяти, в которых осуществляется сбор, можно указывать посредством либо абсолютных адресов, либо символьных меток (если соответствующий перечень связей хранится в запоминающем устройстве компьютера). Поддерживающий консультант, пытающийся локализовать отказ, может формировать такие принудительные управляющие записи с помощью любой простой программы обработки слов. Эти записи могут содержать в простейшем виде только два параметра, адрес начала и адрес конца, и программа сбора данных об отказах копирует содержание области между этими адресами в область памяти. Программа может также копировать идентификатор, например – адрес начала. На практике отказы имеют тенденцию появляться в неожиданных местах. При наличии принудительных управляющих записей можно также собирать данные из мест, которые не предполагались при задании программы сбора данных об отказах. Фиг. 4 изображает возможные этапы иллюстративного конкретного варианта программы ОС1 сбора данных об отказах, соответствующей изобретению. Программа сбора данных загружается в память вместе с остальной частью программного обеспечения (этап S0). На этом этапе переход, за которым происходит последующий перезапуск, задается так, что он направлен к программе сбора. Последующий перезапуск активизирует программу сбора (этап S5). Программа сбора считывает из основного запоминающего устройства 23 первую запись из списка принудительных управляющих записей (этап S10). Если такая запись существует, программа сбора обрабатывает ее (этап S20). Когда на этапе S15 обнаруживается, что достигнут конец списка принудительных управляющих записей, программа сбора переходит к этапу S25 для поиска структур данных процессов. На этапе S30 проверяют, все ли структуры данных обработаны. Если – не все, то на этапе S35 проверяют, содержит ли структура данных какие-либо аномальные признаки. Если это так, то на этапе S40 существенная часть структуры данных копируется в область памяти, ОПАМ. Когда на этапе S30 обнаружено, что достигнут конец списка структур данных, программа переходит к этапу S45 для загрузки других частей программного обеспечения, среди которых существенными для изобретения являются подпрограммы для обработки периферийных устройств, например – накопителей на дисках. Когда подпрограммы для обработки периферийных устройств загружены, на этапе S50 содержимое области памяти, ОПАМ, копируется для использования поддерживающего консультанта. Поддерживающий консультант может получать содержимое области памяти, ОПАМ, в виде отчета, отпечатанного на принтере, в виде файла, записанного на диске, или сообщения по телефону на удаленную рабочую станцию. В некоторых системах дефектная программа может полностью дезорганизовать основное запоминающее устройство, так что оно также вызывает неправильную работу программы сбора данных об отказе. Такой риск можно ограничить путем помещения программы сбора данных об отказах в запоминающее устройство, которое защищено, по крайней мере, от непреднамеренной перезаписи. Защиту можно осуществить, например, путем помещения программы сбора данных об отказах в ЗУПВ или ФЛЭШ-ЗУ или путем предотвращения записи в сегмент памяти, где размещена программа сбора, с помощью регистров процессора. Конкретные варианты, иллюстрирующие изобретение, были проиллюстрированы на примере в связи с процессорами “Intell ![]() ![]() Формула изобретения
РИСУНКИ
MM4A – Досрочное прекращение действия патента СССР или патента Российской Федерации на изобретение из-за неуплаты в установленный срок пошлины за поддержание патента в силе
Дата прекращения действия патента: 30.10.2008
Извещение опубликовано: 20.07.2010 БИ: 20/2010
|
||||||||||||||||||||||||||