запуск приложений с задержкой
Классы МПК: | G06F9/44 устройства для выполнения специальных программ G06F9/30 устройства для выполнения машинных команд, например декодирование команды G06F13/10 программное управление для периферийных устройств |
Автор(ы): | ЭРГАН Сенк (US), ЛИ Дан (US), ФОРТИН Майкл Р. (US), ГИЗЕ Робин (US), РАЙНАУЭР Роберт Л. (US) |
Патентообладатель(и): | МАЙКРОСОФТ КОРПОРЕЙШН (US) |
Приоритеты: |
подача заявки:
2006-11-29 публикация патента:
27.05.2011 |
Изобретение относится к области вычислительной техники и управления приоритетами системы. Техническим результатом является улучшение быстродействия системы. Задержка запуска некоторых приложений может иметь результатом улучшение общего быстродействия системы. Приложения, которые должны задерживаться, могут помещаться в контейнерный объект или упаковку так, чтобы они могли прослеживаться, и чтобы другие приложения, зависимые от задержанных приложений, могли обрабатываться надлежащим образом. 3 н. и 17 з.п. ф-лы, 3 ил.
Формула изобретения
1. Способ управления приоритетами системы, состоящий в том, что:
предоставляют возможность приоритетам назначаться, по меньшей мере, одному из класса приоритета ЦП (процессора), приоритета I/O (Input/Output - Ввод/Вывод), приоритета страницы памяти, рабочего множества памяти, возможностей работы в сети процесса;
помещают процесс в контейнерный объект, для того чтобы процесс и зависимые процессы могли прослеживаться;
предоставляют приоритетам возможность устанавливаться ниже при запуске приложения;
предоставляют приоритетам возможность устанавливаться выше после периода задержки после запуска и опционально восстанавливают приоритеты на первоначальные настройки в течение или после конфигурируемого периода времени сеанса.
2. Способ по п.1, дополнительно состоящий в том, что предоставляют приоритетам возможность устанавливаться ниже в течение периодов высокого использования.
3. Способ по п.1, дополнительно состоящий в том, что после периодов высокого использования предоставляют приоритетам возможность устанавливаться выше.
4. Способ по п.1, дополнительно состоящий в том, что создают контейнерный объект масштаба сеанса, в который будут объединяться все приложения, активизируемые при запуске системы.
5. Способ по п.1, дополнительно состоящий в том, что добавляют процессы в контейнерный объект в виде группы.
6. Способ по п.1, дополнительно состоящий в том, что осуществляют настройку для высвобождения процесса из контейнерного объекта после конфигурируемого периода времени.
7. Способ по п.1, дополнительно состоящий в том, что обнаруживают взаимодействие пользователя с процессами в контейнерном объекте и динамически снимают их ограничения, и/или используют историческую информацию для предохранения их от помещения в контейнерном объекте в будущем.
8. Способ по п.1, дополнительно состоящий в том, что используют реестр для хранения настройки прообраза имени файла в отношении того, должен ли данный процесс помещаться в контейнерный объект, если он работает в качестве приложения, активизируемого при запуске системы.
9. Способ по п.8, дополнительно состоящий в том, что ключ представляют в реестр, в список управления доступом, так, чтобы общее приложение, активизируемое при запуске системы, было бы не способным модифицировать свои собственные настройки в ключе.
10. Способ по п.1, дополнительно состоящий в том, что помещают процессы в ограничительный контейнерный объект в качестве процессов, которые запускаются так, чтобы:
приложения в контейнерном объекте не могли разрушать настроек приоритета;
такая ассоциативная связь с процессом не могла разрушаться до тех пор, пока не уничтожен контейнерный объект; и
ограничения, установленные контейнерным объектом, не могли переписываться процессами в контейнерном объекте.
11. Способ по п.1, дополнительно состоящий в том, что создают структуру ограничений объекта задания, которая управляет ограничениями приоритета страницы и I/O.
12. Машиночитаемый носитель, содержащий компьютерно-исполняемые инструкции для управления приоритетами системы, содержащие компьютерно-исполняемые инструкции для:
предоставления возможности приоритетам назначаться, по меньшей мере, одному из класса приоритета ЦП, приоритета I/O, приоритета страницы памяти, рабочего множества памяти, возможностей работы в сети процесса;
помещения процесса в некоторый контейнерный объект, в который будут объединены все приложения, активизируемые при запуске системы, для того чтобы процесс и зависимые процессы могли прослеживаться;
предоставления приоритетам возможности устанавливаться ниже при запуске;
предоставления приоритетам возможности устанавливаться выше после периода задержки после запуска и опционального восстановления приоритетов на первоначальные настройки в течение или после конфигурируемого периода времени.
13. Машиночитаемый носитель по п.12, дополнительно содержащий компьютерно-исполняемые инструкции для, по меньшей мере, одного из:
предоставления приоритетам возможности устанавливаться ниже во время периодов высокого использования;
после периодов высокого использования, предоставления приоритетам возможности устанавливаться выше;
создания контейнерного объекта масштаба сеанса, в который будут объединяться все приложения, активизируемые при запуске системы;
добавления процессов в контейнер в виде группы; и
осуществления настройки для высвобождения процесса из контейнерного объекта после конфигурируемого периода времени.
14. Машиночитаемый носитель по п.12, дополнительно содержащий компьютерно-исполняемые инструкции для обнаружения взаимодействия пользователя с процессами в контейнерном объекте и динамического снятия их ограничений, и/или использования исторической информации для предохранения их от помещения в контейнерном объекте в будущем.
15. Машиночитаемый носитель по п.12, дополнительно содержащий компьютерно-исполняемые инструкции для использования реестра для хранения настройки прообраза имени файла в отношении того, должен ли данный процесс помещаться в контейнерный объект, если он работает в качестве приложения, активизируемого при запуске системы.
16. Машиночитаемый носитель по п.12, дополнительно содержащий компьютерно-исполняемые инструкции для представления ключа в реестр, в список управления доступом, так, чтобы общее приложение, активизируемое при запуске системы, было бы не способным модифицировать свои собственные настройки в ключе.
17. Машиночитаемый носитель по п.12, дополнительно содержащий компьютерно-исполняемые инструкции для помещения процессов в ограничительном объекте задания в качестве процессов, которые запускаются так, чтобы:
приложения в контейнерном объекте не могли нарушать настройки приоритета;
такая ассоциативная связь с процессом не могла нарушаться до тех пор, пока не уничтожен контейнерный объект; и
ограничения, установленные контейнерным объектом, не могли переписываться процессами в контейнерном объекте.
18. Машиночитаемый носитель по п.12, дополнительно содержащий компьютерно-исполняемые инструкции для создания структуры ограничений объекта процесса, которая управляет ограничениями приоритета страницы и I/O.
19. Компьютерная система, содержащая процессор, память и устройство ввода/вывода, процессор, являющийся приспособленным для выполнения инструкций, содержит инструкции для:
предоставления возможности приоритетам назначаться, по меньшей мере, одному из класса приоритета ЦП, приоритета I/O, приоритета страницы памяти, рабочего множества памяти, возможностей работы в сети процесса;
помещения процесса в контейнерный объект, в который будут объединяться все приложения, активизируемые при запуске системы, для того чтобы процесс и зависимые процессы могли прослеживаться;
предоставления приоритетам возможности устанавливаться ниже при запуске;
предоставления приоритетам возможности устанавливаться выше после периода задержки после запуска и опционального восстановления приоритетов на первоначальные настройки в течение или после конфигурируемого периода времени сеанса.
20. Компьютерная система по п.19, дополнительно содержащая инструкции, помещающие процессы в ограничительном объекте задания, в качестве процессов, которые запускаются так, чтобы:
приложения в контейнерном объекте не могли нарушать настройки приоритета;
такая ассоциативная связь с процессом не могла нарушаться до тех пор, пока не уничтожен объект процесса; и
ограничения, установленные контейнерным объектом, не могли переписываться процессами в контейнерном объекте.
Описание изобретения к патенту
ОБЛАСТЬ ТЕХНИКИ, К КОТОРОЙ ОТНОСИТСЯ ИЗОБРЕТЕНИЕ
Компьютерные операционные системы предлагают многочисленные способы регистрации приложений, которые должны запускаться, когда включается питание компьютера или когда выполняется вход пользователей в систему. Эти приложения, активизируемые при запуске системы, могут быть главной причиной проблем быстродействия при начальной загрузке (включении питания) и во время входа в систему. Во время установки программные приложения часто сами регистрируются в качестве приложений, активизируемых при запуске системы, без принятия во внимание, необходимо ли это пользователю. Пользователи часто озадачиваются и не знают, как отключить эту необязательную возможность, конечным результатом является большое количество приложений, активизируемых при запуске системы, на машинах среднего пользователя, которые отнимают длительное время на инициализацию. Во время этой инициализации они потребляют системные ресурсы на машине, даже если большинство из них необязательны и нежелательны пользователю немедленно и могут запускаться на более медленной скорости. Большое количество потребителей операционной системы Microsoft Windows должны ожидать длительное время, чтобы быть способными начать использование своего компьютера после входа в систему, вследствие этой проблемы. Конечно, есть приложения, активизируемые при запуске, которые необходимы и важны, такие как средство обмена мгновенными сообщениями, антивирус или приложения против шпионящего программного обеспечения.
РАСКРЫТИЕ ИЗОБРЕТЕНИЯ
Задержка при запуске некоторых приложений может иметь результатом улучшение воспринимаемого быстродействия системы. Это может достигаться задержкой момента времени, в который эти процессы запускаются, и/или снижением приоритетов этих процессов в отношении различных системных ресурсов, таких как ресурсы процессора, I/O (ввода/вывода) или памяти. Это предоставляет этим ресурсам возможность быть быстрее доступными пользователю для каких бы то ни было целей, которые пользователь желает предпочтительнее, чем обязывающими ожидать, чтобы приложения, активизируемые при запуске, завершили инициализацию. В дополнение, может быть раскрыт пользовательский интерфейс для предоставления пользователю возможности устанавливать приоритеты запуска.
КРАТКОЕ ОПИСАНИЕ ЧЕРТЕЖЕЙ
Фиг.1 - структурная схема вычислительной системы, которая может работать в соответствии с формулой изобретения;
фиг.2 может быть высокоуровневой иллюстрацией способа в соответствии с формулой изобретения и
фиг.3 может иллюстрировать другой вариант осуществления способа в соответствии с формулой изобретения.
ОСУЩЕСТВЛЕНИЕ ИЗОБРЕТЕНИЯ
Хотя последующий текст излагает подробное описание многочисленных разных вариантов осуществления изобретения, должно быть понятно, что правовой объем описания определен словами формулы изобретения, изложенной в конце этого патента. Подробное описание должно толковаться только как примерное и не описывает каждый возможный вариант осуществления, поскольку описание каждого возможного варианта осуществления будет непрактичным, если не невозможным. Многочисленные альтернативные варианты осуществления могли бы быть реализованы с использованием либо современной технологии, либо технологии, разработанной после даты подачи этого патента, которые по-прежнему подпадали бы под объем формулы изобретения.
Также должно быть понятно, что если термин не определен в этом патенте явным образом с использованием предложения «В качестве используемого в материалах настоящей заявки, термин '______' определен настоящим, чтобы обозначать », или подобного предложения, нет никакого намерения ограничивать значение этого термина, в прямой форме или скрытым смыслом, вне его плоскости или нормального значения, и такой термин не должен интерпретироваться ограниченным по объему на основании любой формулировки, приведенной в любом разделе этого патента (иной, чем язык формулы изобретения). В пределах того, что любой термин, изложенный в формуле изобретения в конце этого патента, указывается ссылкой в этом патенте некоторым образом, совместимым с взятым в отдельности значением, то есть приведен только в целях ясности, с тем чтобы не путать читателя, и не подразумевается, что такой термин формулы изобретения ограничивается, скрытым смыслом или иным образом, таким взятым в отдельности значением. В конечном счете, если элемент формулы изобретения не определен изложением слова «средство» и функцией без подробного изложения какой бы то ни было конструкции, не подразумевается, что объем любого элемента формулы изобретения должен толковаться на основании применения § 112 Раздела 35 Кодекса законов США, шестого параграфа.
Фиг.1 иллюстрирует пример пригодной среды 100 вычислительной системы, в которой может быть реализована система для этапов заявленного способа и устройства. Среда 100 вычислительной системы является только одним из примеров пригодной вычислительной среды и не имеет намерения внушить какое бы то ни было ограничение в отношении объема использования или функциональных возможностей способа и устройства по формуле изобретения. Вычислительная среда 100 также не должна интерпретироваться в качестве обладающей какой бы то ни было зависимостью или требованием, относящимися к любому одному или сочетанию компонентов, проиллюстрированных в примерной операционной среде 100.
Этапы заявленного способа и устройство работоспособны с многочисленными другими средами или конфигурациями вычислительных систем общего применения или специального назначения. Примеры широко известных вычислительных систем, сред и/или конфигураций, которые могут быть пригодными для использования со способами или устройством по формуле изобретения, включают в себя, но не в качестве ограничения, персональные компьютеры, серверные компьютеры, карманные или переносные устройства, многопроцессорные системы, основанные на микропроцессорах системы, телевизионные абонентские приставки, программируемую бытовую электронику, сетевые ПК (персональные компьютеры, PC), миникомпьютеры, универсальные вычислительные машины, распределенные вычислительные среды, которые включают в себя любые из вышеприведенных систем или устройств, и тому подобное.
Этапы заявленного способа и устройства могут быть описаны в общем контексте компьютерно-исполняемых инструкций, таких как программные модули, исполняемые компьютером. Как правило, программные модули включают в себя процедуры, программы, объекты, компоненты, структуры данных и т. п., которые выполняют конкретные задачи или реализуют конкретные абстрактные типы данных. Способы и устройство также могут быть осуществлены на практике в распределенных вычислительных средах, где задачи выполняются удаленными обрабатывающими устройствами, которые связаны через сеть связи. В распределенной вычислительной среде программные модули могут быть расположены на запоминающих носителях как локального, так и удаленного компьютера, в том числе запоминающих устройствах памяти.
Со ссылкой на фиг.1, примерная система для реализации этапов заявленного способа и устройства включает в себя вычислительное устройство общего назначения в виде компьютера 110. Компоненты компьютера 110 могут включать в себя, но не в качестве ограничения, блок 120 обработки, системную память 130 и системную шину 121, которая присоединяет различные системные компоненты, в том числе системную память, к блоку 120 обработки. Системная шина 121 может быть любой из нескольких типов шинных структур, в том числе шиной памяти или контроллером памяти, периферийной шиной и локальной шиной, использующей любую из многообразия шинных архитектур. В качестве примера, а не ограничения, такие архитектуры включают в себя шину архитектуры промышленного стандарта (ISA), шину микроканальной архитектуры (MCA), шину расширенной ISA (EISA), локальную шину ассоциации по стандартизации в области видеотехники (VESA) и шину межсоединения периферийных компонентов (PCI), также известную как шина расширения (Mezzanine).
Компьютер 110 типично включает в себя многообразие машиночитаемых носителей. Машиночитаемые носители могут быть любыми имеющимися в распоряжении носителями, к которым может осуществляться доступ компьютером 110, и включают в себя как энергозависимые и энергонезависимые носители, так и съемные и несъемные носители. В качестве примера, а не ограничения, машиночитаемые носители могут содержать компьютерные запоминающие носители и среду связи. Компьютерные запоминающие носители включают в себя как энергозависимые и энергонезависимые, так и съемные и несъемные носители, реализованные любым способом или технологией для хранения информации, такими как машиночитаемые инструкции, структуры данных, программные модули или другие данные. Компьютерные запоминающие носители включают в себя, но не в качестве ограничения, ОЗУ (оперативное запоминающее устройство, RAM), ПЗУ (постоянное запоминающее устройство, ROM), ЭСППЗУ (электрически стираемое и программируемое ПЗУ, EEPROM), флэш-память или другую технологию памяти, CD-ROM (ПЗУ на компакт-диске), многофункциональные цифровые диски (DVD) или другое оптическое дисковое запоминающее устройство, магнитные кассеты, магнитную ленту, магнитное дисковое запоминающее устройство или другие магнитные запоминающие устройства, или любой другой носитель, который может использоваться для хранения требуемой информации и к которому может осуществляться доступ компьютером 110. Среда связи типично воплощает машиночитаемые инструкции, структуры данных, программные модули или другие данные в модулированном сигнале данных, таком как несущая волна или другой транспортный механизм, и включает в себя любую среду доставки информации. Термин «модулированный сигнал данных» означает сигнал, который обладает одной или более своих характеристик, установленных или изменяемых таким образом, чтобы кодировать информацию в сигнале. В качестве примера, а не ограничения, среда связи включают в себя проводную среду, такую как проводная сеть или непосредственное проводное соединение, и беспроводную среду, такую как акустическая, РЧ (радиочастотная, RF), инфракрасная и другая беспроводная среда. Сочетания любых из вышеприведенных также должны быть включены в объем машиночитаемых носителей.
Системная память 130 включает в себя компьютерные запоминающие носители в виде энергозависимой и/или энергонезависимой памяти, такой как постоянное запоминающее устройство 131 (ПЗУ) и оперативное запоминающее устройство 132 (ОЗУ). Базовая система 133 ввода/вывода (BIOS), содержащая базовые процедуры, которые помогают передавать информацию между элементами в пределах компьютера 110, к примеру, во время запуска, типично хранится в ПЗУ 131. ОЗУ 132 типично содержит данные и/или программные модули, которые доступны непосредственно для, и/или, над которыми в настоящий момент производятся действия блоком 120 обработки. В качестве примера, а не ограничения, фиг.1 иллюстрирует операционную систему 134, прикладные программы 135, другие программные модули 136 и данные 137 программ.
Компьютер 110 также может включать в себя другие съемные/несъемные, энергозависимые/энергонезависимые компьютерные запоминающие носители. Только в качестве примера, фиг.1 иллюстрирует накопитель 140 на жестком диске, который осуществляет считывание с и запись на несъемный энергонезависимый магнитный носитель, накопитель 151 на магнитных дисках, который осуществляет чтение с и запись на съемный энергонезависимый магнитный диск 152, и накопитель 155 на оптических дисках, который осуществляет чтение с и запись на съемный энергонезависимый оптический диск 156, такой как CD-ROM или другие оптические носители. Другие съемные/несъемные, энергозависимые/энергонезависимые компьютерные запоминающие носители, которые могут использоваться в примерной операционной среде, включают в себя, но не в качестве ограничения, кассеты магнитной ленты, карты флэш-памяти, цифровые многофункциональные диски, цифровую видеоленту, твердотельное ОЗУ, твердотельное ПЗУ и тому подобное. Накопитель 141 на жестком диске типично присоединен к системной шине 121 через интерфейс несъемной памяти, такой как интерфейс 140, а накопитель 151 на магнитных дисках и накопитель 155 на оптических дисках типично присоединены к системной шине 121 посредством интерфейса съемной памяти, такого как интерфейс 150.
Накопители и их ассоциативно связанные компьютерные запоминающие носители, обсужденные выше и проиллюстрированные на фиг.1, обеспечивают хранение машиночитаемых инструкций, структур данных, программных модулей и других данных для компьютера 110. На фиг.1, например, накопитель 141 на жестком диске проиллюстрирован в качестве хранящего операционную систему 144, прикладные программы 145, другие программные модули 146 и данные 147 программ. Отметим, что эти компоненты могут быть либо такими же как, либо отличными от операционной системы 134, прикладных программ 135, других программных модулей 136 и данных 137 программ. Операционная система 144, прикладные программы 145, другие программные модули 146 и данные 147 программ здесь снабжены другими номерами, чтобы проиллюстрировать, что они, как минимум, являются другими копиями. Пользователь может вводить команды и информацию в компьютер 20 через устройства ввода, такие как клавиатура 162 и координатно-указательное устройство 161, обычно указываемое ссылкой как мышь, шаровой манипулятор или сенсорная панель. Другие устройства ввода (не показаны) могут включать в себя микрофон, джойстик, игровую панель, спутниковую антенну, сканер или тому подобное. Эти и другие устройства ввода часто присоединены к блоку 120 обработки через интерфейс 160 пользовательского ввода, который соединен с системной шиной, но могут присоединяться другими интерфейсными и шинными структурами, такими как параллельный порт, игровой порт или универсальная последовательная шина (USB). Монитор 191 или другой тип устройства отображения также присоединен к системной шине 121 через интерфейс, такой как видеоинтерфейс 190. В дополнение к монитору, компьютеры также могут включать в себя другие периферийные устройства вывода, такие как динамики 197 и принтер 196, которые могут быть присоединены через периферийный интерфейс 190 вывода.
Компьютер 110 может работать в сетевой среде с использованием логических соединений с одним или более удаленных компьютеров, таких как удаленный компьютер 180. Удаленный компьютер 180 может быть персональным компьютером, сервером, маршрутизатором, сетевым ПК, одноранговым устройством или другим общим узлом сети, и типично включает в себя многие или все из элементов, описанных выше относительно компьютера 110, хотя только запоминающее устройство 181 памяти было проиллюстрировано на фиг.1. Логические соединения, изображенные на фиг.1, включают в себя локальную сеть 171 (LAN) и глобальную сеть 173 (WAN), но также могут включать в себя другие сети. Такие сетевые среды являются обычными в офисах, корпоративных компьютерных сетях, сетях интранет (локальных сетях, основанных на технологиях сети Интернет) и сети Интернет.
Когда используется в сетевой среде LAN, компьютер 110 присоединен к LAN 171 через сетевой интерфейс или адаптер 170. Когда используется в сетевой среде WAN, компьютер 110 типично включает в себя модем 172 или другое средство для установления связи через WAN 173, такую как сеть Интернет. Модем 172, который может быть внутренним или внешним, может быть присоединен к системной шине 121 через интерфейс 160 пользовательского ввода или другой подходящий механизм. В сетевой среде программные модули, изображенные относительно компьютера 110, или их части могут храниться в удаленном запоминающем устройстве памяти. В качестве примера, а не ограничения, фиг.1 иллюстрирует удаленные прикладные программы 185 в качестве постоянно находящихся в устройстве 181 памяти. Будет принято во внимание, что показанные сетевые соединения являются примерными, и может использоваться другое средство установления линии связи между компьютерами.
ЗАДЕРЖАННЫЙ ЗАПУСК ПРИЛОЖЕНИЙ
Было бы полезным предложить пользователям необязательные возможности для «удаления» приложений, активизируемых при запуске системы, из процесса запуска путем удаления их из различных мест регистрации, таких как ключи реестра «Run» («Выполнение») и т.п., но есть несколько проблем с этим признаком. Во-первых, приложения, активизируемые при запуске системы, часто контролируют эти места регистрации и добавляют сами себя обратно. Во-вторых, полным удалением приложений из последовательности запуска, некоторые функциональные возможности могут непреднамеренно нарушаться или пропадать.
Способ «задержки» приложений, активизируемых при запуске системы, предоставляющий пользователям возможность возвращать управление своим компьютером при входе в систему и не обязательно полностью удаляющий приложения, активизируемые при запуске системы, из запуска, является одним из решений и описан ниже. Влияние приложений, активизируемых при запуске системы, на систему пользователя может снижаться ограничением потребления ЦП, I/O и памяти этих процессов посредством снижения их соответственных приоритетов в отношении этих типов системных ресурсов. В то время как приложения, активизируемые при запуске системы, запускаются, способ может понижать приоритеты их ЦП, I/O и страниц и помещать их в некоторый объект отслеживания. Этот способ также упоминается ссылкой как «упаковывание». Через конфигурируемый период способ может возвращать их приоритеты к изначальным настройкам.
Фиг.2 может быть высокоуровневой иллюстрацией способа в соответствии с формулой изобретения. На этапе 200 пользователь может использовать пользовательский интерфейс для настройки определенного приложения, которое должно задерживаться. На этапе 205 способ может сохранять выбранное приложение, чтобы оно сохранялось в памяти. На этапе 210 может начинаться операционная система. На этапе 215 способ может запускать приложения, активизируемые при запуске системы. На этапе 220 способ может определять, было ли конкретное приложение сохранено на этапе 210 в качестве процесса, который должен задерживаться. Если определением является нет, на этапе 225 способ может запускаться в обычном режиме, и способ может заканчиваться. Если определением на этапе 220 является да, способ может приостанавливать процесс создания для конкретного приложения 230. На этапе 235 способ может добавлять конкретное приложение, которое должно задерживаться, в контейнерный объект задания. На этапе 240 способ может понижать приоритеты процессов для конкретного приложения, и способ может ограничивать рабочее множество. На этапе 245 таймер может стартовать, а на этапе 250 таймер может истекать. На этапе 255 приоритеты конкретного приложения могут восстанавливаться, и способ может отменять ограничение рабочего множества.
В одном из вариантов осуществления защищенный ключ в системном реестре содержит список исключений, который предоставляет упаковке возможность включаться или выключаться на основе прообраза пути. Например, все приложения, которые не перечислены в списке исключений, могут упаковываться или помещаться в контейнерный объект.
Операционной системе необходимо прослеживать исходные и производные процессы, являющиеся упакованными. Например, если приложение, активизируемое при запуске системы, является упакованным, и процесс данного приложения запускает дочерний процесс, такой дочерний процесс также должен быть упакован и также должен распаковываться, когда распаковывается родительский (исходный) процесс. В операционной системе Microsoft Windows объекты заданий могут использоваться для выполнения этой задачи.
Способ будет наиболее эффективным, если он может защищать от приложений, активизируемых при запуске системы, повторно поднимающих свои приоритеты до того, как они предполагаются распакованными, так как это могло бы значительно снижать выгоды способа. В операционной системе Microsoft Windows объекты заданий могут использоваться для наложения ограничений приоритета на процессы, таких, от которых процессы не могут избавляться, пока исходный создатель объекта задания (то есть упаковка, а потому операционная система) не принимает активное решение поднять ограничения, например, при распаковке данных приложений.
Способ может использовать системный реестр для сохранения настройки прообраза имени файла в отношении того, должен ли процесс (с помощью имени своего исполняемого образа файла) упаковываться, если он выполняется в качестве приложения, активизируемого при запуске системы. В системе Windows может требоваться выбирать специальное обслуживание для универсальных механизмов, подобных «rundll32.exe», которое может исполнять многочисленные разные признаки, а потому намерения пользователя могут отражаться наилучшим образом, если есть более мелкомодульный контроль над этими признаками, чем всеохватывающее ограничение по «rundll32.exe». Способу может понадобиться осуществлять доступ к пределу управления («ACL»), ключу, из условия, чтобы обычное приложение, активизируемое при запуске системы, было бы не способным модифицировать свои собственные настройки в таком ключе.
Как только способ запустил все приложения, активизируемые при запуске системы, способ может настраивать объект упаковки для освобождения задания (то есть освобождения процессов от их ограничений и восстановления их приоритетов) после определенного конфигурируемого тайм-аута (например, 30 секунд).
Способ также может связываться с другими частями операционной системы для обнаружения, является ли пользователь взаимодействующим с упакованным приложением, и использовать такую информацию, чтобы распаковать данное приложение до того, как истечет его тайм-аут упаковки. Это предоставляет операционной системе возможность снизить затраты нежелательных приложений, активизируемых при запуске системы, в общем случае, но также и динамически обнаруживать, когда приложение становится требуемым пользователем, в каковой момент ограничения приоритета были бы вредны для впечатлений пользователя от системы. Способ обнаружения деятельности пользователя в отношении этих приложений должен предотвращать обманную имитацию деятельности приложениями, так как это низложило бы полезность способа. Знание, что приложение, активизируемое при запуске системы, используется интерактивно, также может храниться в качестве исторических данных и использоваться для предотвращения его упаковывания в будущем, каковое, вероятно, улучшило бы впечатление пользователя. Один из простых примерных подходов к определению, когда пользователь является взаимодействующим с приложением, активизируемым при запуске системы, состоит в том, чтобы многократно проверять, стали ли какие-нибудь окна приложений, активизируемых при запуске системы, окном переднего плана, и расположен ли курсор мыши в пределах такого окна.
Фиг.3 может иллюстрировать другой вариант осуществления способа в соответствии с формулой изобретения. На этапе 300 способ может предоставлять приоритетам возможность назначаться одному из: класса приоритета, приоритета I/O, страницы приоритета, рабочего множества и возможностей работы в сети процесса. На этапе 305 способ может помещать процесс в объект задания, для того чтобы процесс и зависимые процессы могли прослеживаться. На этапе 310 способ может предоставлять приоритетам возможность устанавливаться ниже при запуске, а на этапе 315 способ может предоставлять приоритетам возможность устанавливаться выше после периода задержки после запуска. На этапе 320 способ может предоставлять приоритетам возможность устанавливаться ниже в течение периодов высокого использования. На этапе 325 способ, после периодов высокого использования, может предоставлять приоритетам возможность устанавливаться выше. На этапе 330 способ может создавать объект задания масштаба сеанса, в который будут объединяться все приложения, активизируемые при запуске системы. На этапе 335 способ может упаковывать процессы в виде группы и не позволять одиночному процессу распаковываться в одиночку. На этапе 340 способ может использовать хранилище уровня потока для переправления информации в систему, упаковка которой запрашивается. Это может выполняться созданием объекта (CBox) в «Run Startup Apps Thread» («Выполнении потока приложений, активизируемых при запуске системы») и резервированием указателя хранилища уровня потока для соседнего (CBox). На этапе 345 способ может использовать модифицированный стек API (программного интерфейса приложения) для переправления информации в систему, упаковка которой запрашивается. На этапе 350 способ может, при создании процесса, выдавать объект (CBox) из хранилища уровня потока и определять, упаковывать или не упаковывать процесс. На этапе 355 способ может использовать указатель, который является указателем с подсчетом ссылок. На этапе 360 способ может приращивать счетчик ссылок в объекте упаковки, указанного сегментом хранилища уровня потока. На этапе 365 способ может настраивать для освобождения задания от объекта упаковки после конфигурируемого периода времени. На этапе 370 способ может использовать реестр для сохранения настройки праобраза средства просмотра в отношении того, должен ли такой образ упаковываться, если он выполняется в качестве приложения, активизируемого при запуске системы. На этапе 375 способ может представлять ключ в реестр, в список управления доступом, так, чтобы общее приложение, активизируемое при запуске системы, было бы не способным модифицировать свои собственные настройки в ключе. На этапе 375 способ может помещать процессы в ограничительном объекте задания, в то время как процессы запускаются так, чтобы упакованные приложения не могли разрушать настройки приоритета, чтобы ассоциативная связь с заданием не могла разрушаться до тех пор, пока не уничтожен объект задания, и чтобы ограничения, заданные объектом задания, не могли переписываться упакованными процессами. На этапе 380 способ может создавать структуру ограничений объекта задания, которая управляет ограничениями приоритета страницы и I/O.
Хотя предшествующий текст излагает подробное описание многочисленных разных вариантов осуществления, должно быть понятно, что объем патента определен словами формулы изобретения, изложенной в конце этого патента. Подробное описание должно толковаться только как примерное и не описывает каждый возможный вариант осуществления, так как описание каждого возможного варианта осуществления будет непрактичным, если не невозможным. Многочисленные альтернативные варианты осуществления могли бы быть реализованы с использованием либо современной технологии, либо технологии, разработанной после даты подачи этого патента, которые по-прежнему подпадали бы под объем формулы изобретения.
Таким образом, многие модификации и варианты могут быть произведены в технологиях и конструкциях, описанных и проиллюстрированных в материалах настоящей заявки, не выходя из сущности и объема настоящей формулы изобретения. Соответственно должно быть понятно, что способы и устройство, описанные в материалах настоящей заявки, являются только иллюстративными, а не ограничивающими объем формулы изобретения.
Класс G06F9/44 устройства для выполнения специальных программ
Класс G06F9/30 устройства для выполнения машинных команд, например декодирование команды
Класс G06F13/10 программное управление для периферийных устройств