Операционные системы

Автор работы: Пользователь скрыл имя, 21 Ноября 2013 в 17:10, контрольная работа

Краткое описание

Время системы, прошедшее с 1 января 1970 г., по Всеобщему скоординированному времени (Universal Coordinated Time - UTC), известное также как эпоха (Epoch), возвращается системным вызовом gettimeofday. Большинство современных процессоров (включая процессоры PC) поддерживают регистр времени дня с батарейкой. Эти часы продолжают идти, даже когда процессор выключен. Когда система загружается, она использует регистр времени дня процессора для выяснения текущего времени. После этого время системы поддерживается прерываниями от часов. При каждом прерывании система увеличивает значение переменной глобального времени на величину, равную числу микросекунд в тике.

Содержание

Реализация функций службы времени в ядре ОС……………………..…3
Анализ алгоритмов кэширования (сквозная запись, отложенная запись, запись по закрытию, централизованное управление)……………………5
Разработка и реализация алгоритмов защиты файлов от несанкционированного доступа……………………………………...……7
Разработка модели параллельных вычислений на основе сети Петри………………………………………………………………………..9
Макросредства. Макрокоманды управляющей программы……….…..14
Список литературы………………………………………………….…….. 15

Прикрепленные файлы: 1 файл

контрольная по ОС.docx

— 30.79 Кб (Скачать документ)

Содержание

 

  1. Реализация функций службы времени в ядре ОС……………………..…3
  2. Анализ алгоритмов кэширования (сквозная запись, отложенная запись, запись по закрытию, централизованное управление)……………………5
  3. Разработка и реализация алгоритмов защиты файлов от несанкционированного доступа……………………………………...……7
  4. Разработка модели параллельных вычислений на основе сети Петри………………………………………………………………………..9
  5. Макросредства. Макрокоманды управляющей программы……….…..14

Список литературы………………………………………………….……..   15   

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

  1. Реализация функций службы времени в ядре ОС

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

Реальное время

Время системы, прошедшее с 1 января 1970 г., по Всеобщему скоординированному времени (Universal Coordinated Time - UTC), известное  также как эпоха (Epoch), возвращается системным вызовом gettimeofday. Большинство современных процессоров (включая процессоры PC) поддерживают регистр времени дня с батарейкой. Эти часы продолжают идти, даже когда процессор выключен. Когда система загружается, она использует регистр времени дня процессора для выяснения текущего времени. После этого время системы поддерживается прерываниями от часов. При каждом прерывании система увеличивает значение переменной глобального времени на величину, равную числу микросекунд в тике. Для PC, работающего со 100 тиками в секунду, каждый тик представляет 10 000 микросекунд.

Внешнее представление

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

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

  1. Анализ алгоритмов кэширования (сквозная запись, отложенная запись, запись по закрытию, централизованное управление)

 

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

Рассмотрим четыре алгоритма управления кэшированием:

1. Сквозная запись. Этот метод эффективен частично, так как уменьшает интенсивность только операций чтения, а интенсивность операций записи остается неизменной.

2. Отложенная запись. Производительность лучше, но результат чтения кэшированного файла не всегда однозначен.

3. "Запись-по-закрытию". Удовлетворяет сессионной семантике.

4. Централизованное управление. Ненадежен вследствие своей централизованной природы.

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

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

  1. Разработка и реализация алгоритмов защиты файлов от несанкционированного доступа

 

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

  • Конфиденциальность (confidentiality) - гарантия того, что секретные данные будут доступны только тем пользователям, которым этот доступ разрешен (такие пользователи называются авторизованными).
  • Доступность (availability) — гарантия того, что авторизованные пользонатели всегда получат доступ к данным.
  • Целостность (integrity) — гарантия сохранности данными правильных значений, которая обеспечивается запретом для неавторизованных пользователей каким-либо образом изменять, модифицировать, разрушать или создавать данные.

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

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

Не  менее важным в данном примере  является и обеспечение доступности  данных. Затратив немалые средства на создание и поддержание сервера в Интернете, предприятие вправе рассчитывать на отдачу: увеличение числа клиентов, количества продаж и т. д. Однако существует вероятность того, что злоумышленник предпримет атаку, в результате которой помещенные на сервер данные, станут недоступными для тех, кому они предназначались. Примером таких злонамеренных действий может служить «бомбардировка» сервера IP- пакетами с неправильным обратным адресом, которые в соответствии с логикой работы этого протокола могут вызвать тайм-ауты, а в конечном счете сделать сервер недоступным для всех остальных запросов.

 

 

 

 

 

 

 

 

 

 

 

  1. Разработка модели параллельных вычислений на основе сети Петри

 

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

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

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

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

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

  1. Макросредства. Макрокоманды управляющей программы

 

Макросредства - инструменты (средства) модификации текста программы  во время ее трансляции.

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

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

Транслятор ассемблера состоит  из двух частей: макрогенератора и  непосредственно транслятора. Транслятор при этом называют макроассеблером. Именно таким макроассемблером мы пользуемся в системе MASM (macroassembler language).

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

Макроопределение - это описание макроса. Синтаксис макроопределения:

<имя макрокоманды> MACRO [формальные параметры]

   тело макроопределения

  ENDM

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

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

Завершает макроопределение директива ENDM.  !!! Не надо повторять имя макроса.

Пример; настройка сегмента данных

initds   macro

mov ax, @data

mov ds, ax

endm

Пример; вывод строки на экран

outstr   macro  str        ; форм. параметр - имя строки

push ax

mov ah,09h

lea dx, str

int 21h

pop ax

endm

Размещаться макроопределения могут:

1.   В любом месте программы

  !!! Обязательно до  первой ссылки на него.

2.   В отдельном файле

     Чтобы сделать  доступными макроопределения в  программе, необходимо в начале  программы использовать директиву  INCLUDE  <имя файла>. При этом на этапе работы макрогенератора текст указанного файла будет вставлен полностью на место директивы.

Пример.        Masm

model small

include  Mymacro.inc

. . .

Можно универсальные макрокоманды записать в один файл, в так называемую макробиблиотеку. Подключать ее с помощью  директивы include.

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

PURGE <список через запятую имен макроопределений>

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

Пример. . . .

include mymacro.inc

purge   outstr, initds

Информация о работе Операционные системы