Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
dabagyan_Osnovnye_voprosy_k_ekzamenu.doc
Скачиваний:
19
Добавлен:
01.08.2019
Размер:
375.3 Кб
Скачать

Системные вызовы

(конспект, 24-25 )

Систе́мный вы́зов (англ. system call) в программировании и вычислительной технике — обращение прикладной программы к ядру операционной системы для выполнения какой-либо операции.

Системный вызов возникает, когда пользовательский процесс (наподобие emacs) требует некоторой службы, реализуемой ядром (такой как открытие файла), и вызывает специальную функцию (например, open). В этот момент пользовательский процесс переводится в режим ожидания. Ядро анализирует запрос, пытается его выполнить и передает результаты пользовательскому процессу, который затем возобновляет свою работу.

Идентификация пользователя

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

идентификацию - пользователь сообщает системе по ее запросу свое имя (идентификатор);

аутентификацию - пользователь подтверждает идентификацию, вводя в систему уникальную, не известную другим пользователям информацию о себе (например, пароль).

Идентификация пользователя - Это определение юзера на логину и паролю, которые определяют, как далеко тот может зайти: может с админами, с модерами потусоваться, а может с простыми смертными.

Ключевые слова: идентификация, идентификация пользователя, идентификатор, юзер, логин, пароль, админ, модератор, доступ

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

Адресное пространство, связь с разрядностью

Другой характеристикой процессора, влияющей на его производительность, является разрядность. В общем случае производительность процессора тем выше, чем больше его разрядность. В настоящее время используются 8-, 16-, 32- и 64-разрядные процессоры, причем практически все современные программы рассчитаны на 32- и 64-разрядные процессоры.

Часто уточняют разрядность процессора и пишут, например, 16/20, что означает, что процессор имеет 16-разрядную шину данных и 20-разрядную шину адреса. Разрядность адресной шины определяет адресное пространство процессора, т. е. максимальный объем оперативной памяти, который может быть установлен в компьютере.

В первом отечественном персональном компьютере «Агат» (1985 г.) был установлен процессор, имевший разрядность 8/16, соответственно его адресное пространство составляло 64 Кб. Современный процессор Pentium II имеет разрядность 64/32, т.е. его адресное пространство составляет 4 Гб.

--

Разрядность процессора. Это число одновременно обрабатываемых процессором битов, то есть количество внутренних битовых (двоичных) разрядов -- важнейший фактор производительности МП. Процессор может быть 8-,16-, 32- и 64-разрядным. Вместе с быстродействием разрядность характеризует объем информации, перерабатываемый процессором компьютера за единицу времени.

Адресное пространство (адресация памяти). Одна из функций процессора состоит в перемещении данных, в организации их обмена с внешними устройствами и оперативной памятью. При этом процессор формирует код устройства а, а для ОЗУ – адрес ячейки памяти. Код адреса передается по адресной шине. Объем физически адресуемой микропроцессором оперативной памяти называется его адресным пространством. Он определяется разрядностью внешней шины адреса. Действительно, пусть разрядность адресной шины, тогда количество различных двоичных чисел, которые можно по ней передать, равно 2N. Известно, что число, передаваемое по адресной шине при обращении процессора к оперативной памяти, есть адрес ячейки ОЗУ (ее порядковый номер). Значит, 2N -- это количество ячеек оперативной памяти которым, используя адресную шину, может обратиться (адресоваться) процессор, то есть 2N -- объем адресного пространства процессора. Следовательно, при 16-, 20-, 24- или 32-разрядной шине адреса создается адресное пространство соответственно 216 = 64Кбайта, 220= 1 Мбайт, 224 = 16 Мбайт, 232 = 4 Гбайта. Поэтому разрядность процессора часто уточняют, записывая, например для i80386 -- 32/32, что означает: МП имеет 32-разрядную шину данных и 32-разрядную шину адреса, то есть одновременно обрабатывает 32 бита информации, а объем адресного пространства микропроцессора составляет 232 = 4 Гбайта.

Файлы в различных ОС

Упорядочение, адресация файлов

Упорядоченные файлы

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

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

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

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

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

Оболочки в различных ОС

(конспект, 23-24)

Управление ресурсами и системные вызовы в различных ОС

(конспект, в UNIX, Windows, 24-25)

Единицы измерения

(конспект, 25)

Уровни программного обеспечения ввода-вывода

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

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

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

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

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

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

Для решения поставленных проблем целесообразно разделить программное обеспечение ввода-вывода на четыре слоя (рисунок 2.30):

  • Обработка прерываний,

  • Драйверы устройств,

  • Независимый от устройств слой операционной системы,

  • Пользовательский слой программного обеспечения.

Рис. 2.30. Многоуровневая организация подсистемы ввода-вывода

Обработка прерываний

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

Драйверы устройств

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

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

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

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

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

Независимый от устройств слой операционной системы

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

Типичными функциями для независимого от устройств слоя являются:

  • обеспечение общего интерфейса к драйверам устройств,

  • именование устройств,

  • защита устройств,

  • обеспечение независимого размера блока,

  • буферизация,

  • распределение памяти на блок-ориентированных устройствах,

  • распределение и освобождение выделенных устройств,

  • уведомление об ошибках.

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

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

Пользовательский слой программного обеспечения

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

count = write (fd, buffer, nbytes),

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

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

Работа драйвера, роль системных вызовов

(конспект, после системные вызовы, 26-28)

Буферизация

(конспект, 28)

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

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

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

Магнитная память - виды, наборы параметров, организация хранения

(конспект, 29)

Системы RAID

(конспект, 30)

Форматирование

(конспект, 29)

Компакт-диски виды, наборы параметров, организация хранения данных, стандарты

(конспект, 30-31)

DVD диски - виды, наборы параметров, стандарты

(конспект, 31-32)

DVD HQ (High Quality-Maximum) (DVD HQ (Высокое качество – максимум)) – это видео высшего качества, которое Вы можете видеть на DVD. Оно использует полный формат, 9.716 Мбит/с. Такие диски, возможно, не будут работать на плейерах DVD, которые не могут воспроизводить полный стандарт DVD.

DVD HQ (High Quality-Safe) (DVD HQ (Высокое качество – безопасное)) – это значение по умолчанию, которое используется ProShow, и воспроизводит 8 Мбит/с. Этот выбор не приведет к радикальному визуальному отличию от максимального параметра, но с большой вероятностью будет работать на всех плейерах DVD.

DVD SP (Standard Play) (DVD SP (обычная скорость)) – это нижний конец формата. Он имеет скорость 5.073 Мбит/с, и должен работать на всех плейерах. Выигрыш от более низкого качества в том, что можно сохранять на диске более длинные презентации.

DVD LP (Long Play) (DVD LP (медленная скорость)) – формат с еще более низким качеством, который позволяет сохранить на диске презентации длительностью до 3 часов.

DVD EP (Extended Play) (DVD EP (очень медленная скорость)) – продолжение ряда форматов с низким качеством. Этот формат позволяет сохранять на одном диске до 4 часов презентаций.

DVD SLP (Super Long Play) (DVD SLP (супер медленная скорость)) – формат жертвует качеством видео, но позволяет сохранять на диске презентации длительностью до 6 часов.

DVD SEP (Super Extended Play) (DVD SEP (сверх медленная скорость)) является форматом с самым низким качеством видео, но позволяет хранить на диске 8 часовые презентации.

Безопасность

(конспект,32-34)

Угрозы безопасности, в т.ч. вирусы

(конспект, 4 задачи,33)

Криптография, определения, алгоритмы

(конспект)

Криптогра́фия— наука о методах обеспечения конфиденциальности (невозможности прочтения информации посторонним) и аутентичности (целостности и подлинности авторства, а также невозможности отказа от авторства) информации.

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

Открытый (исходный) текст — данные (не обязательно текстовые), передаваемые без использования криптографии.

Шифротекст, шифрованный (закрытый) текст — данные, полученные после применения криптосистемы (обычно — с некоторым указанным ключом).

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

Шифр, криптосистема — семейство обратимых преобразований открытого текста в шифрованный.

Асимметричный шифр — шифр, являющийся асимметричной криптографической системой.

Шифрование — процесс нормального применения криптографического преобразования открытого текста на основе алгоритма и ключа, в результате которого возникает шифрованный текст.

Расшифровывание — процесс нормального применения криптографического преобразования шифрованного текста в открытый.

Криптоанализ — наука, изучающая математические методы нарушения конфиденциальности и целостности информации.

Криптоаналитик — человек, создающий и применяющий методы криптоанализа.

Криптография и криптоанализ составляют криптологию, как единую науку о создании и взломе шифров (такое деление привнесено с запада, до этого в СССР и России не применялось специального деления).

Криптографическая атака — попытка криптоаналитика вызвать отклонения в атакуемой защищенной системе обмена информацией. Успешную криптографическую атаку называют взлом или вскрытие.

Дешифрование (дешифровка) — процесс извлечения открытого текста без знания криптографического ключа на основе известного шифрованного. Термин дешифрование обычно применяют по отношению к процессу криптоанализа шифротекста (криптоанализ сам по себе, вообще говоря, может заключаться и в анализе шифросистемы, а не только зашифрованного ею открытого сообщения).

Криптографическая стойкость — способность криптографического алгоритма противостоять криптоанализу.

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