Сканирование файловой системы 


Мы поможем в написании ваших работ!



ЗНАЕТЕ ЛИ ВЫ?

Сканирование файловой системы



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

Кража ключевой информации

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

Подбор пароля

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

Сборка мусора

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

Превышение полномочий

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

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

Программные закладки

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

 

 

Билет № 14

Сегментно – страничный способ организации виртуальной памяти

 

Сегментно-страничная организация ( paging/segmentation) состоит в том, что память разбивается на страницы для каждого сегмента по его собственной таблице страниц. Адреса при этом состоят их трех компонент [ s,p,d ], где s- номер сегмента, и вход в таблицу сегментов осуществляется через регистр таблицы сегментов, в которой s -тая запись содержит базовый адрес и границу таблицы страниц для этого сегмента; p -определяет запись в таблице страниц, которая указывает на p -тую страницу сегмента s; d - смещение, которое необходимо прибавить к базовому адресу страницы, чтобы добраться до искомого слова. Таким образом, адрес [ s,p,d ] может означать d -е слово p -той страницы s -того сегмента того задания, которое определяется содержимым регистра таблицы сегментов.

На такую трехкомпонентную ссылку требуется три цикла обращения к памяти, но если использовать, так называемый аппарат ассоциативных регистров, представляющих собой группу ячеек памяти с быстрым доступом, можно добиться того, чтобы время обращения к памяти оставалось в разумных пределах. Служат ассоциативные регистры для того, чтобы сопоставить комбинациям [ s,p ] физические места страниц.

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

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

 

Понятие защищенной операционной системы

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

 

 

3) Решение задачи “обедающие философы”

Procedure Типичный_философ;

begin

while (true) do

begin

мыслить;

есть

end

end;

 

Прокомментируйте каждый из следующих фрагментов, реализующих поведение философов, какие последствия вызовет реализация этих алгоритмов?

Procedure Типичный_философ_А;

begin

while (true) do

begin

мыслить_некоторое время;

взять_обе_вилки;

есть_некоторое время;

положить_обе_вилки

end

end;

 

Procedure Типичный_философ_В;

begin

while (true) do

begin

мыслить_некоторое время;

repeat

взять_левую_вилку;

if правой_вилки_нет then положить_левую_вилку

else взять_правую_вилку

until в_руках_обе_вилки;

есть_некоторое время;

положить_левую_вилку;

положить_правую_вилку

end

end;

Билет № 15

Основные понятия и концепции организации ввода-вывода в ОС

 

Самым главным является следующий принцип: любые операции по управлению вводом/выводом объявляются привилегированными и могут выполняться только кодом самой ОС. Для обеспечения этого принципа в большинстве процессоров вводятся режимы пользователя и супервизора. Как правило, в режиме супервизора (в привилегированном режиме) выполнение команд ввода/вывода разрешено, а в пользовательском режиме — запрещено.

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

· Необходимость разрешать возможные конфликты доступа к устройствам ввода/вывода. Например, две параллельно выполняющиеся программы пытаются вывести на печать результаты своей работы. Если не предусмотреть внешнее управление устройством печати, то в результате мы можем получить абсолютно нечитаемый текст, так как каждая программа будет время от времени выводить свои данные, которые будут перемежаться данными другой программы. Другой пример: ситуация, когда одной программе необходимо прочитать данные с некоторого сектора магнитного диска, а другой — записать результаты в другой сектор того же накопителя. Если операции ввода/вывода не будут отслеживаться каким-то третьим (внешним) процессом-арбитром, то после позиционирования магнитной головки для первого запроса может тут же появиться команда позиционирования головки для второй задачи, и обе операции ввода/вывода не смогут быть выполнены корректно.

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

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

Управление вводом/выводом осуществляется операционной системой, компонентом, который чаще всего называют супервизором ввода/вывода. Основные задачи, выполняемые супервизором, следующие:

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

· супервизор ввода/вывода вызывает соответствующие распределители каналов и контроллеров, планирует ввод/вывод (определяет очередность предоставления устройств ввода/вывода задачам, затребовавшим их). Запрос на ввод/ вывод либо тут же выполняется, либо ставится в очередь на выполнение;

· супервизор ввода/вывода инициирует операции ввода/вывода (передает управ­ление соответствующим драйверам) и в случае управления вводом/выводом с использованием прерываний предоставляет процессор диспетчеру задач с тем, чтобы передать его первой задаче, стоящей в очереди на выполнение;

· при получении сигналов прерываний от устройств ввода/вывода супервизор идентифицирует их и передает управление соответствующей программе обработки прерывания;

· супервизор ввода/вывода осуществляет передачу сообщений об ошибках, если таковые происходят в процессе управления операциями ввода/вывода;

· супервизор ввода/вывода посылает сообщения о завершении операции ввода/вывода запросившему эту операцию процессу и снимает его с состояния ожидания ввода/вывода, если процесс ожидал завершения операции.

 

Планирование задач

 

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

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

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

Типы планировщиков в операционных системах

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

Среднесрочный планировщик

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

Краткосрочный планировщик

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

Долговременный планировщик

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

 

Алгоритм банкира

 

Если даже необходимые условия возникновения тупиков не нарушены, то все же можно избежать тупиковой ситуации, если рационально распределять ресурсы. Наиболее известным алгоритмом обхода тупиковых ситуаций является алгоритм банкира, предложенный Дейкстрой12, этот алгоритм как бы имитирует действия банкира, который, располагая определенным капиталом, выдает ссуды и принимает платежи.

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

Пусть система состоит из трех процессов, которые пронумерованы I=1..N, где N=3 и десяти устройств вывода, КОЛ=10.

Каждому процессу соответствует:

· максимальная потребность в устройствах, МАКС[I], где I номер процесса;

· количество устройств, выделенных процессу в данный момент ВЫД[I];

· оставшееся количество, которое процесс может еще потребовать ОСТ[I].

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

 

Таблица 1

 

Номер процесса, I Максимальная потребность, МАКС[I] Выделено ВЫД[I] Остаток ОСТ[I]
       
       
       

 

 

Таблица 2

 

Номер процесса, I Максимальная потребность, МАКС[I] Выделено ВЫД[I] Остаток ОСТ[I]
       
       
       

 

 

Алгоритм, предложенный Дейкстрой - алгоритм банкира как раз и предназначен для выяснения ведет ли удовлетворение некоторого запроса к опасному состоянию. Заметим, что новое состояние безопасно тогда и только тогда, когда каждый процесс все же может завершиться (обозначим это таким образом: МОЖЕТ_НЕ_ЗАВЕРШИТЬСЯ[I]=false для каждого I -го процесса).

 

const КОЛ=10;N=3 {общее количество устройств вывода и процессов,

соответственно}

var I: 1..N; { текущий номер процесса }

МАКС, ВЫД, ОСТ: array [1..N] of integer; { соответственно,

максимальное, выделенное, оставшееся количество устройств, определенное каждому процессу в текущий момент времени, }

СВОБ: 1..N; {общее количество свободных устройств в текущий

момент времени}

ПРИЗ: boolean;

МОЖЕТ_НЕ_ЗАВЕРШИТЬСЯ: array [1..N] of boolean;

...

{здесь мы не рассматриваем процесс заполнения массивов МАКС и ВЫД в каждый момент времени, согласно данным, например таб. 1,2}

Begin

СВОБ:=КОЛ;

for I:=1 to N do

Begin

СВОБ:= СВОБ-ВЫД[I];

МОЖЕТ_НЕ_ЗАВЕРШИТЬСЯ[I]:=true; {в начале работы неизвестно может ли завершиться каждый процесс, поэтому начальное значение этого признака устанавливаем true }

ОСТ[I]:=МАКС[I] - ВЫД[I] {расчет оставшихся устройств для каждого процесса}

end;

ПРИЗ:=true; {признак завершения цикла проверок}

While (ПРИЗ) do

Begin

ПРИЗ:=false;

for I:=1 to N do

Begin

if (МОЖЕТ_НЕ_ЗАВЕРШИТЬСЯ[I]) and (ОСТ[I]<=CВОБ) then

Begin

МОЖЕТ_НЕ_ЗАВЕРШИТЬСЯ[I]:=false;

СВОБ:=СВОБ+ВЫД[I];

ПРИЗ:=true

End

End

End

end;

Каждый раз, когда какой-то остаток, ОСТ[I], может быть выделен процессу из числа свободных устройств, предполагается, что соответствующий процесс работает до завершения, а затем его устройства освобождаются. Если, в конце концов, все устройства освободятся, значит все процессы могут завершиться и система находится в безопасном состоянии.

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

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

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

- требует, чтобы процессы гарантированно “платили долги”, т.е. возвращали выделенные им ресурсы в течение некоторого конечного времени, что также затруднительно в реальных условиях;

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


Билет №21

1)Интерфейс прикладного программирования (API - Application Programming Interface) это интерфейс, позволяющий различным программным компонентам взаимодействовать друг с другом.

 

API может быть применён несколькими способами:

 

Интегрирован в среду программирования, например C++ или Java API

В специальном назначении, например Google Maps API или Java API XML для веб-услуг. С помощю Google Maps API можно применить услугу указания местоположения на карте через интерфейс, предоставляемый Google..

API операционной системы это интерфейс, посредством которого приложения получают доступ к услугам ОС. Примером является Windows API, в котором для каждой службы ОС есть доступная приложениям процедура.

 

Различные службы, доступные приложениям через Windows API:

 

Базовые службы (Base Services), к которым относятся управление процессами и памятью, функции ввода/вывода и безопасности.

Службы компонентов (Component Services) - для взаимодействия приложений

Службы пользовательского интерфейса (User Interface Services) - для взаимодействия с различными меню и окнами

Службы графики и мультимедиа (Multimedia and Graphics Services)

Обмен сообщениями и совместная работа (Messaging and Collaboration)

Сетевые службы (Networking)

Веб-службы (Web Services)

2) Страничная память — способ организации виртуальной памяти, при котором единицей отображения виртуальных адресов на физические является регион постоянного размера (т. н. страница). Типичный размер 4096 байт, для некоторых архитектур до 128 КБ.

 

Поддержка такого режима присутствует в большинстве 32битных и 64битных процессоров. Такой режим является классическим для почти всех современных ОС, в том числе Windows и семейства UNIX. Широкое использование такого режима началось с процессора VAX и ОС VMS с конца 70х годов (по некоторым сведениям, первая реализация). В семействе x86 поддержка появилась с поколения 386, оно же первое 32битное поколение.

3) Решение задачи “обедающие философы”

(для самостоятельной работы)

 

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

Формулировка задачи заключается в следующем.

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

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

 

 

Procedure Типичный_философ;

Begin

While (true) do

Begin

мыслить;

есть

end

end;

Прокомментируйте каждый из следующих фрагментов, реализующих поведение философов, какие последствия вызовет реализация этих алгоритмов?

Procedure Типичный_философ_А;

Begin

While (true) do

Begin

мыслить_некоторое время;

взять_обе_вилки;

есть_некоторое время;

положить_обе_вилки

end

end;

Procedure Типичный_философ_В;

Begin

While (true) do

Begin

мыслить_некоторое время;

Repeat

взять_левую_вилку;

if правой_вилки_нет then положить_левую_вилку

else взять_правую_вилку

until в_руках_обе_вилки;

есть_некоторое время;

положить_левую_вилку;

положить_правую_вилку

end

end;

БИЛЕТ №22

Платформенно-независимый интерфейс POSIX

POSIX (Portable Operating System Interface for Computer Environments) — платформенно независимый системный интерфейс для компьютерного окружения. Это стандарт IEEE, описывающий системные интерфейсы для открытых операционных систем, в том числе оболочки, утилиты и инструментарии. Помимо этого, согласно POSIX, стандартизированными являются задачи обеспечения безопасности, задачи реального времени, процессы администрирования, сетевые

 

функции и обработка транзакций. Стандарт базируется на UNIX-системах, но допускает реализацию и в других ОС.

 

POSIX возник как попытка всемирно известной организации IEEE пропагандировать переносимость приложений в UNIX-средах путем разработки абстрактного, платформенно-независимого стандарта. Однако POSIX не ограничивается только UNIX-системами; существуют различные реализации этого стандарта в системах, которые соответствуют требованиям, предъявляемым стандартом IEEE Standard 1003.1-1990 (POSIX.1). Например, известная ОС реального времени QNX соответствует спецификациям этого стандарта, что облегчает перенос приложений в эту систему, но UNIX-системой не является ни в каком виде, ибо ее архитектура использует абсолютно иные принципы.

 

Этот стандарт подробно описывает VMS (virtual memory system, систему виртуальной памяти), многозадачность (МРЕ, multiprocess executing) и технологию переноса операционных систем (CTOS). Таким образом, на самом деле POSIX представляет собой множество стандартов, именуемых POSIX. I — POSIX. 12.

 

2) Для возникновения тупика необходимо наличие 4 условий:

 

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

 

2.Ожидание дополнительного ресурса, когда процессы удерживают ресурсы и требуют дополнительных ресурсов.

 

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

 

4.Кругового ожидания, когда существует кольцо процессов, удерживающих ресурсы друг друга.

 

Для решения проблемы тупиков должны решаться следующие задачи:

 

 

3) Рандеву в языке Ада

 

 

Билет №23

1) Реестр Windows (англ. Windows Registry), или системный реестр — иерархически построенная база данных параметров и настроек в большинстве операционных систем Microsoft Windows.

 

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

 

Хотя этот раздел выглядит как один из основных в редакторе реестра, он является всего лишь ссылкой на один из профилей HKEY_USERS\.

HKEY_USERS

 

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

 

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

HKEY_CLASSES_ROOT

 

Данный раздел содержит сведения о профиле оборудования, используемом локальным компьютером при запуске системы.[2] Является ссылкой на HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Hardware Profiles\Current

HKEY_DYN_DATA

 

Данный раздел имеется только в реестре ОС семейства Windows 9x/ME. Содержит динамически изменяемые данные о компьютере (загрузка процессора, размер файла подкачки и т. п.).

Панель управления (англ. Control Panel) является частью пользовательского интерфейса Microsoft Windows. Она позволяет выполнять основные действия по настройке системы, такие, как добавление и настройка устройств, установка и деинсталляция программ, управление учётными записями, включение специальных возможностей, а также многие другие действия, связанные с управлением системой. Апплеты (значки) Панели управления с помощью которых можно выполнять определенные системные действия представляют собой файлы с расширением.cpl. Большинство таких файлов расположено в системных папках C:\Windows\System32 и C:\Windows\winsxs (в папках внутри этой папки). Каждый такой апплет запускает системную утилиту, которая выполняет соответствующее действие, связанное с настройкой либо управлением операционной системой. Большинство апплетов в Панели управления соотносятся с определенными системными утилитами производства Microsoft, но в некоторых случаях сторонние производители также добавляют свои значки в Панель управления Windows 7 для достижения большего удобства управления своим программным либо аппаратным продуктом. Впервые Панель управления появилась в Windows 2.0. Многие из ныне существующих апплетов были добавлены с новыми релизами операционной системы. Со временем апплетов стало достаточно много, и это послужило поводом для сортировки их по категориям. Теперь пользователь волен самостоятельно выбирать наиболее удобный для него режим просмотра.

Настройка внешнего вида Панели управления

 

В последних версиях Windows Панель управления имеет два представления.

 

Мелкие либо Крупные значки. Все апплеты видны в окне Панели управления и отсортированы по алфавиту.

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

 

В Панели управления Windows 7 представлены 8 категорий настроек.

 

Система и безопасность.

Сеть и интернет.

Оборудование и звук.

Программы.

Учетные записи пользователей и семейная безопасность.

Оформление и персонализация.

Часы, язык и регион.

Специальные возможности.

 

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

2) Сети Петри — математический аппарат для моделирования динамических дискретных систем. Впервые описаны Карлом Петри в 1962 году.

 

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

 

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

Виды сетей Петри

 

Некоторые виды сетей Петри:

 

Временная сеть Петри — переходы обладают весом, определяющим продолжительность срабатывания (задержку).

Стохастическая сеть Петри — задержки являются случайными величинами.

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

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

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

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

WF-сети

Анализ сетей Петри

 

Основными свойствами сети Петри являются:

Пример траектории в сети Петри.

 

ограниченность — число меток в любой позиции сети не может превысить некоторого значения K;

безопасность — частный случай ограниченности, K=1;

сохраняемость — постоянство загрузки ресурсов, \sum A_i N_i постоянна. Где N_i — число маркеров в i-той позиции, A_i — весовой коэффициент;

достижимость — возможность перехода сети из одного заданного состояния (характеризуемого распределением меток) в другое;

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

 

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

3) Задача о взаимном исключении

 

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

 

 

Процесс I Процесс 2

 

Рис. 4

 

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

Переходы и находятся в конфликте за метку в позиции Запуск, например, перехода , вынуждает 1-ый процесс ждать, пока 2-ой процесс выйдет из своей критической секции и возвратит метку в позицию .

 

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

Напомним, что реализация взаимодействия в паре “производитель-

потребитель” при помощи семафоров рассматривалась нами ранее, теперь же покажем каким образом для решения этой проблемы можно воспользоваться монитором. В качестве кольцевого буфера, куда процесс-производитель помещает данные, используем массив BUFFER заданного размера N.

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



Поделиться:


Последнее изменение этой страницы: 2016-08-16; просмотров: 405; Нарушение авторского права страницы; Мы поможем в написании вашей работы!

infopedia.su Все материалы представленные на сайте исключительно с целью ознакомления читателями и не преследуют коммерческих целей или нарушение авторских прав. Обратная связь - 18.191.216.163 (0.195 с.)