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

Билет №46

1. Аутентификация с использованием одноразового пароля. Алгоритм Лесли Лампорта

Аутентификация (authentication) предотвращает доступ к сети нежелательных лиц и разрешает вход для легальных пользователей. Термин «аутентификация» в переводе с латинского означает «установление подлинности».

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

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

Алгоритм Лапорта основан на необратимой функции y=f(x), обладающей тем свойством, что по заданному x легко найти y, а вот наоборот (по y найти x) невозможно.

Вход и выход должны иметь одинаковую длину, например 128 бит.

1.Пользователь выбирает секретный пароль S и число n – сколько раз будет сгенерирован одноразовый пароль.

Для удобства рассмотрим маленькое значение n=4

2. Тогда первый пароль получается с ипользованием необратимой функции f(x) n раз:

Р1 = f ( f ( f ( f (x))))

3. Второй, если применить функцию n-1 раз и т.д.

P2 = f ( f( f(x)))

Таким образом, Pi-1 = f (Pi)

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

Сервер инициализируется числом Р0 = f (P1). Это значение хранится в файле вместе с именем пользователя и числом 1. Машина пользователя отвечает числам Р1, вычисляемым локально из S.

Затем сервер вычисляет f(P1) и сравнивает с Р0, хранящемся в файле. При следующем входе в систему пользователю посылается число 2, а машина пользователя вычисляет число Р2. А затем сервер вычисляет Р2, если значения совпадают регистрация завершается: число увеличивается на единицу, а в Р2 записывается поверх Р1.

2. Модели процессов и потоков. Управление процессами и потоками. Основные функции управления и их содержание

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

1. их созданием и уничтожением;

2. поддерживает изоляцию и взаимодействие между ними;

3. распределяет ресурсы системы между несколькими одновременно существующими в системе процессами и потоками.

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

Информационные структуры для управления процессами

1. Блок управления процессом (дескриптор)

2. Контекст процесса

Дескрипторы объединяются в таблицу процессов, которая хранится области ядра. На ее основании ОС осуществляет планирование и синхронизацию процессов.

В дескрипторе хранится информация необходимая ядру в течение всего ЖЦ процесса информация:

    • по идентификации процесса

    • по состоянию процесса

    • используемая при управлении процессом

Информация по состоянию и управлению процессом:

  • состояние готовности процесса

  • приоритет

  • инф-я о событиях и т.п.

Контекст процесса – информация, позволяющая система приостанавливать и возобновлять выполнения процесса с прерванного места

  • Содержимое регистров процессора, доступных пользователю (обычно 8 – 32 регистра и до 100 регистров в RISC – процессорах);

  • Содержимое счетчика команд;

  • Состояние управляющих регистров и регистров состояния;

  • Коды условия, отражающие результат выполнения последней арифметической или логической операции (например, равенство нулю, переполнение);

САМУЮ ПРОСТУЮ МОДЕЛЬ ПРОЦЕССА можно построить исходя из того что возможны 2 состояния: выполняется/не выполняется

Однако в реальности удобнее другая модель:

ВЫПОЛНЕНИЕ - активное состояние процесса, во время которого процесс обладает всеми необходимыми ресурсами и непосредственно выполняется процессором;

ОЖИДАНИЕ - пассивное состояние процесса, процесс заблокирован, он не может выполняться по своим внутренним причинам, он ждет осуществления некоторого события, например, завершения операции ввода-вывода, получения сообщения от другого процесса, освобождения какого-либо необходимого ему ресурса;

ГОТОВНОСТЬ - также пассивное состояние процесса, но в этом случае процесс заблокирован в связи с внешними по отношению к нему обстоятельствами: процесс имеет все требуемые для него ресурсы, он готов выполняться, однако процессор занят выполнением другого процесса.

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

В состоянии ВЫПОЛНЕНИЕ в однопроцессорной системе может находиться только один процесс, а в каждом из состояний ОЖИДАНИЕ и ГОТОВНОСТЬ - несколько процессов, эти процессы образуют очереди соответственно ожидающих и готовых процессов.

Потоки и их модели.

Описатель потока (идентификатор потока, приоритет и т.п.)

  1. атрибуты блока управления

  2. контекст потока (равления потоком и контекст потока (в многопоточной системе процессы контекстов не имеют).

Способы реализации пакета потоков:

1) в пространстве пользователя (user - level threads – ULT);

2) в ядре (kernel – level threads – KLT).

ДОСТОИНСТВА:

 можно реализовать в ОС, не поддерживающей потоки без каких-либо изменений в ОС;

 высокая производительность, поскольку процессу не нужно переключаться в режим ядра и обратно;

 ядро о потоках ничего не знает и управляет однопоточными процессами;

 имеется возможность использования любых алгоритмов планирования потоков с учетом их специфики;

 управление потоками возлагается на программу пользователя.

НЕДОСТАТКИ:

 системный вызов блокирует не только работающий поток, но и все потоки того процесса, к которому он относится;

 приложение не может работать в многопроцессорном режиме, так как ядро закрепляет за каждым процессом только один процессор;

 при запуске одного потока ни один другой поток а рамках одного процесса не будет запущен пока первый добровольно не отдаст процессор;

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

ДОСТОИНСТВА:

 возможно планирование работы нескольких потоков одного и того же процесса на нескольких процессорах;

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

 при блокировании одного из потоков процесса ядро может выбрать другой поток этого же (или другого процесса);

 процедуры ядра могут быть многопоточными.

НЕДОСТАТКИ:

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

Смешанная реализация.

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

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

Задача

Чтобы не было потерь данных: (2*1024)/скорость_модема=5+1.

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