Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Full_OS (1).doc
Скачиваний:
2
Добавлен:
01.03.2025
Размер:
6.1 Mб
Скачать

Решение

Пусть в одном цикле К команд. Тогда в 1 цикле происходит одно прерывание.

Время выполнения цикла = K * 2 нс + N.

Среднее время выполнения каждой команды = (время выполнения цикла / К) = 2нс + N/K.

Фактическое время стремится к среднему.

Билет 17

  1. Взаимодействие и синхронизация процессов и потоков. Проблемы взаимодействия и синхронизации. Конкуренция процессов. Критические секции.

  2. несимметричное шифрование

Синхронизация процессов и потоков. Проблемы взаимодействия и синхронизации

Степень осведомленности

Взаимосвязь

Влияние одного процесса на другой

Потенциальные проблемы

Процессы не осведомлены друг о друге

Конкуренция

Результат работы одного процесса не зависит от действий других.

Возможно влияние одного процесса на время работы другого.

Взаимоисключения

Взаимоблокировки

Голодание

Процессы косвенно осведомлены о наличии друг друга

Сотрудничество с использованием разделения

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

Возможно влияние одного процесса на время работы другого.

Взаимоисключения

Взаимоблокировки

Голодание

Синхронизация

Процессы непосредственно осведомлены о наличии друг друга

Сотрудничество с использованием связи

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

Возможно влияние одного процесса на время работы другого.

Взаимоблокировки (возобновляемые ресурсы)

Голодание

Системные функции для работы с критическими секциями

Достоинство: исключается потеря времени процессора на циклическую проверку освобождения занятого ресурса. Недостаток: растут накладные расходы ОС на по реализации функции входа в критическую секцию и выхода из нее.

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

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

Модель и схема несимметричного шифрования. Пример несимметричного шифрования

Существуют два класса криптосистем – симметричные и ассемитричные.

В системах шифрования с открытым или асимметричным ключом (public/ assymmetric key) используется два ключа. Один из ключей, называемый открытым, несекретным используется для шифрования сообщений, которые могут быть расшифрованы только с помощью секретного ключа, имеющегося у получателя, для которого предназначено сообщение. Либо для шифрования сообщения может использоваться секретный ключ и если сообщение можно расшифровать с помощью открытого ключа, то подлинность отправителя будет гарантирована (система электронной подписи). Этот принцип изобретен Уитфилдом Диффи (Whitfield Diffie) и Мартином Хеллманом (Martin Hellman) в 1976 г.

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

Среди несимметричных алгоритмов наиболее известен RSA, предложенный Роном Ривестом (Ron Rivest), Ади Шамиром (Adi Shamir) и Леонардом Эдлманом (Leonard Adleman). Так же несимметричное шифрование можт использоваться в системах электронной подписи.

Шифрование с использованием алгоритма RSA

Задача, положенная в основу метода состоит в том, чтобы найти такую функцию y=f(x), чтобы получение обратной функции x=f-1(y) , было бы в общем случае очень сложной задачей (NP-полной задачей), однако, если знать некую секретную информацию, то сделать это существенно проще. Такие функции также называют односторонними функциями с лазейкой или потайным ходом. Например, получить произведение двух чисел n=p*q просто, а разложить n на множители, если p и q достаточно большие простые числа, сложно.

  1. Первым шагом в использовании алгоритма RSA является генерация ключей. Для этого нужно:

  2. Выбрать два очень больших простых числа p и q.

  3. Вычислить произведение n= p*q.

  4. Выбрать большое случайное число d, не имеющее общих сомножителей с числом (p-1)*(q-1).

  5. Определить число e, чтобы выполнялось (e*d) mod ((p-1)*(q-1))=1.

Тогда открытым ключом будут числа e и n, а секретным ключом - числа d и n.

Теперь, чтобы зашифровать данные по известному ключу {e,n}, необходимо сделать следующее:

  • Разбить шифруемый текст на блоки, где i-й блок может быть представлен в виде числа m(i)=0,1,2..., n-1. Их должно быть не более n-1.

  • Зашифровать текст, рассматриваемый как последовательность чисел m(i) по формуле c(i)=(m(i)e)mod n.

Чтобы расшифровать эти данные, используя секретный ключ {d,n}, необходимо вычислить: m(i) = (c(i)d) mod n. В результате будет получено множество чисел m(i), которые представляют собой часть исходного текста.

Например, зашифруем и расшифруем сообщение AБВ, которое представим, как последовательность чисел 123 (в диапазоне 0-32)

  • Выбираем p=5 и q=11 (числа на самом деле должны быть большими).

  • Находим n=5*11=55

  • Определяем (p-1)*(q-1) = 40. Тогда d будет равно, например 7.

  • Выберем e, исходя из (e*7) mod 40=1. Например, e=3.

Теперь зашифруем сообщение, используя открытый ключ {3,55}

  • C1 = (13)mod 55 = 1

  • C2 = (23)mod 55 = 8

  • C3 = (33)mod 55 = 27

Теперь расшифруем эти данные, используя закрытый ключ {7,55}.

  • M1 = (17)mod 55 = 1

  • M2 = (87)mod 55 = 2097152mod 55 = 2

  • M3 = (277)mod 55 = 10460353203 mod 55 = 3

Таким образом, все, данные расшифрованы.

Задача

Компьютер, чьи процессы имеют 1024 страницы в своем адресном пространстве, хранит таблицы страниц в памяти. На чтение слова из таблицы страниц требуется 5 нс. Чтобы уменьшить затраты, в компьютере существует буфер быстрого преобразования адреса (TLB), содержащий 32 пары (виртуальная страница – физический страничный блок), который может выполнять поиск за 1 нс. При какой частоте обращений к памяти, успешно реализуемых в TLB, средние затраты будут ниже 2 нс?

Время поиска: 1 в случае успеха, 5+1 в случае, если записи нет.

Среднее время: P*1+(1-p)*(1+5)=6-5*p<2 => 1>p>0,8

Соседние файлы в предмете [НЕСОРТИРОВАННОЕ]