Методические рекомендации по выполнению практических работ НПО наладчики ПР ПМ 02 (Установка и обслуживание программного обеспечения ПК и серверов)
Автономное учреждение
среднего профессионального образования
Ханты-Мансийского автономного округа – Югры
«Сургутский профессиональный колледж»
Структурное подразделение-4
Методические рекомендации
по выполнению практических работ
по профессиональному модулю
«Установка и обслуживание программного обеспечения персональных компьютеров, серверов, периферийных устройств и оборудования»
для студентов очной формы обучения
Профессия: 230103.04 Наладчик аппаратного и программного обеспечения
Наименование профиля: технический
Сургут 2013
Практические работы профессионального модуля разработаны на основе Федерального государственного образовательного стандарта (далее - ФГОС) по профессии (профессиям) начального профессионального образования (далее - НПО) 230103.04 Наладчик аппаратного и программного обеспечения
Организация - разработчик: АУ СПО «Сургутский профессиональный колледж»
Разработчик: Михнюк Екатерина Сергеевна, преподаватель специальных дисциплин
Рекомендована профессионально-методическим объединением «Информатика и вычислительная техника», протокол № 9 от «28» мая 2013г.
Согласовано с методической службой ____________ / Е.А.Тостановская /
Содержание
Пояснительная записка...4
Требования к выполнению практических работ6
Перечень практических работ7
Практическая работа №1 «Установка ОС»..9
Практическая работа №2 «Установка и настройка прикладного программного обеспечения»10
Практическая работа №3 «Алгоритм планирования процессов».18
Практическая работа №4 «Применение алгоритма Банкира для обнаружения тупиков».28
Практическая работа №5 «Исследование методов замещения страниц в виртуальной памяти»..37
Практическая работа №6 «Исследование функции API для запуска процессов»50
Практическая работа №7 «Исследование API-функции Windows для управления памятью»63
Практическая работа №8 «Исследование методов обработки программных и аппаратных прерываний»74
Практическая работа №9 «Работа в виртуальная файловой системе VFS. Операции над файлами» (2 часа).79
Практическая работа №10 «Файловая система FAT 12/16/32. Разделение диска на разделы»84
Практическая работа №11 «Размещения файлов FAT»..89
Практическая работа №12 «Файловая система NTFS. Логическая и физическая структура. Файлы, потоки, каталоги в NTFS. Журналирование в NTFS»..92
Практическая работа №13 «Исследование методов организации файловых систем».111
Практическая работа №14 «Автоматизация через MS Excel».121
Практическая работа №15 «Служба каталогов Active Directory. Базовые термины и концепции. Архитектура Active Directory. Система именований Active Directory. Тиражирование в Active Directory»138
Практическая работа №16 « Изучение работы протоколов безопасности ОС и Интернет»148
Практическая работа №17 « Шифрование. Симметричные алгоритмы»..162
Практическая работа №18 «Шифрование. Несимметричные алгоритмы».195
Список литературы для выполнения практической работы.202
Пояснительная записка
Методические рекомендации по выполнению практических работ по профессиональному модулю «Установка и обслуживание программного обеспечения персональных компьютеров, серверов, периферийных устройств и оборудования» разработаны для студентов по профессии 230103.04 Наладчик аппаратного и программного обеспечения.
Методические рекомендации содержат 18 практических работ, которые отвечают следующим профессиональным компетенциям (ПК) в соответствии с требованиями ФГОС по профессии 230103.04 Наладчик аппаратного и программного обеспечения:
ПК 2.1. Устанавливать операционные системы на персональных компьютерах и серверах, а также производить настройку интерфейса пользователя.
ПК 2.2. Администрировать операционные системы персональных компьютеров и серверов.
ПК 2.3. Устанавливать и настраивать работу периферийных устройств и оборудования.
ПК 2.4. Устанавливать и настраивать прикладное программное обеспечение персональных компьютеров и серверов.
ПК 2.5. Диагностировать работоспособность, устранять неполадки и сбои операционной системы и прикладного программного обеспечения.
В результате выполнения практических работ обучающийся должен уметь:
выбирать программную конфигурацию персонального компьютера, сервера, оптимальную для предъявляемых требований и решаемых пользователем задач;
устанавливать и администрировать операционные системы на персональных компьютерах и серверах, а также производить настройку интерфейса пользователя;
оценивать производительность вычислительной системы;
управлять файлами данных на локальных, съемных запоминающих устройствах, а также на дисках локальной компьютерной сети и в Интернете;
осуществлять навигацию по веб-ресурсам Интернета с помощью программы веб-браузера;
осуществлять поиск, сортировку и анализ информации с помощью поисковых интернет-сайтов;
устанавливать и настраивать параметры функционирования периферийных устройств и оборудования;
устанавливать и настраивать прикладное программное обеспечение персональных компьютеров и серверов;
осуществлять резервное копирование и восстановление данных;
диагностировать работоспособность, устранять неполадки и сбои операционной системы и прикладного программного обеспечения;
вести отчетную и техническую документацию;
В результате выполнения практических работ обучающийся должен знать:
архитектуру, состав, функции и классификацию операционных систем персонального компьютера и серверов;
классификацию прикладного программного обеспечения персонального компьютера и серверов;
назначение, разновидности и функциональные возможности программ администрирования операционной системы персональных компьютеров и серверов;
принципы лицензирования и модели распространения операционных систем и прикладного программного обеспечения для персональных компьютеров и серверов;
виды и характеристики носителей информации, файловые системы, форматы представления данных;
порядок установки и настройки прикладного программного обеспечения на персональные компьютеры и серверы;
основные виды угроз информационной безопасности и средства защиты информации;
принципы антивирусной защиты персонального компьютера и серверов
Требования к выполнению практических работ
В соответствии с учебным планом по профессиональному модулю «Установка и обслуживание программного обеспечения персональных компьютеров и серверов» выполняется ряд практических работ число которых варьируется исходя из года бучения студента той или иной группы (18 – 26 практических работ)
Задания по практической работе студент получает в период проведения занятий.
Цель выполнения практических работ - освоение основных теоретических положений и приобретение навыков решения типовых задач.
Задания для выполнения практических работ сформулированы ниже.
Практическая работа выполняется и оформляется в соответствии с установленными требованиями. Теоретический вопрос излагается кратко, изложение должно сопровождаться необходимыми схемами, иллюстрациями и т.п., с обязательными ссылками на использованную литературу. При ответе на конкретно поставленный вопрос нельзя ограничиваться ответом «Да» или «Нет», следует привести обоснование своего выбора. Описание решения задачи приводится подробно, со всеми промежуточными выкладками и необходимыми компонентами.
Критерии оценки:
Практическая работа выполнена самостоятельно и без ошибок – оценка «5», практическая работа выполнена при помощи преподавателя и без ошибок – оценка «4», практическая работа выполнена с небольшим количеством ошибок, не влияющих на результат решения – оценка «3».
Перечень практических работ
По профессиональному модулю «Установка и обслуживание программного обеспечения персональных компьютеров, серверов, периферийных устройств и оборудования»
По профессии: 230103.04 Наладчик аппаратного и программного обеспечения
№
Тема практической работы
Кол-во часов
Формируемые компетенции
(в соответствии с ФГОС)
Практическая работа №1 «Установка ОС»
2
ОК 1. Понимать сущность и социальную значимость своей будущей профессии, проявлять к ней устойчивый интерес.
ОК 2. Организовывать собственную деятельность, исходя из цели и способов ее достижения, определенных руководителем.
ОК 3. Анализировать рабочую ситуацию, осуществлять текущий и итоговый контроль, оценку и коррекцию собственной деятельности, нести ответственность за результаты своей работы.
ОК 4. Осуществлять поиск информации, необходимой для эффективного выполнения профессиональных задач.
ОК 5. Использовать информационно-коммуникационные технологии в профессиональной деятельности.
ОК 6. Работать в команде, эффективно общаться с коллегами, руководством, клиентами.
ОК 7. Исполнять воинскую обязанность, в том числе с применением полученных профессиональных знаний (для юношей).
ПК 2.1. Устанавливать операционные системы на персональных компьютерах и серверах, а также производить настройку интерфейса пользователя.
ПК 2.2. Администрировать операционные системы персональных компьютеров и серверов.
ПК 2.3. Устанавливать и настраивать работу периферийных устройств и оборудования.
ПК 2.4. Устанавливать и настраивать прикладное программное обеспечение персональных компьютеров и серверов.
ПК 2.5. Диагностировать работоспособность, устранять неполадки и сбои операционной системы и прикладного программного обеспечения.
Практическая работа №2 «Установка и настройка прикладного программного обеспечения»
2
Практическая работа №3 «Алгоритм планирования процессов»
4
Практическая работа №4 «Применение алгоритма Банкира для обнаружения тупиков»
2
Практическая работа №5 «Исследование методов замещения страниц в виртуальной памяти»
2
Практическая работа №6 «Исследование функции API для запуска процессов»
2
Практическая работа №7 «Исследование API-функции Windows для управления памятью»
2
Практическая работа №8 «Исследование методов обработки программных и аппаратных прерываний»
6
Практическая работа №9 «Работа в виртуальная файловой системе VFS. Операции над файлами» (2 часа)
2
Практическая работа №10 «Файловая система FAT 12/16/32. Разделение диска на разделы»
4
Практическая работа №11 «Размещения файлов FAT»
2
Практическая работа №12 «Файловая система NTFS. Логическая и физическая структура. Файлы, потоки, каталоги в NTFS. Журналирование в NTFS»
2
Практическая работа №13 «Исследование методов организации файловых систем»
4
Практическая работа №14 «Автоматизация через MS Excel»
10
Практическая работа №15 «Служба каталогов Active Directory. Базовые термины и концепции. Архитектура Active Directory. Система именований Active Directory. Тиражирование в Active Directory»
8
Практическая работа №16 « Изучение работы протоколов безопасности ОС и Интернет»
6
Практическая работа №17 « Шифрование. Симметричные алгоритмы»
6
Практическая работа №18 «Шифрование. Несимметричные алгоритмы»
4
Практическая работа №1
Тема: «Установка операционной системы» (2 часа)
Цель работы: изучить этапы и способы установки Windows
Студентам предлагается посмотреть видео по установке и настройке ОС Windows 7. после чего необходимо ответить на ряд вопросов. Ответы на вопросы необходима занести на бланках.
ФИО_____________________________________________
Группа________________
Операционная оболочка Windows – это
______________
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·В ОС Windows гораздо лучше, по сравнению с другими ОС, налажено взаимодействие между пользователем и компьютером. Большинство повседневных задач выполняется с меньшими, чем когда-либо затратами времени. Решено также большинство проблем с распределением памяти. Интерфейс, разработанный корпорацией Microsoft является одним из лучших и стал своеобразным эталоном для подражания. В Microsoft Windows программисту доступна вся мощь этого интерфейса - он избавляется от необходимости организовывать меню, работу с клавиатурой и мышью (достаточно воспользоваться стандартными средствами). Интерфейс с пользователем Windows является полным и цельным. В нем решены не только проблемы организации меню, но и все общение с пользователем организовано стандартными средствами.
Основная идея создания Windows была высказана главой фирмы ____________________________________________________________________
________________________________________________________________________________________________________________________________________
Установка Windows 7
Контекстное меню Windows 7
Первичные настройки Windows 7
Настройка интерфейса Windows 7
Оборудование и звук Windows 7
Сетевые настройки Windows 7
Практическая работа №2
Тема: «Установка и настройка прикладного программного обеспечения» (2 часа)
1. ЦЕЛЬ РАБОТЫ: Знакомство с программным обеспечением (ПО). Виды программ, пути и методы распространения. Классификация ПО. Назначение различных наиболее распространенных программ.
2. ТЕОРЕТИЧЕСКАЯ ЧАСТЬ
2.1. Коротко о главном
Разновидности программ
Компьютер без программного обеспечения – это кусок железа. Лишь установка и настройка программ делает из компьютера тот предмет, который носит это гордое название. Все ПО можно условно разделить на две группы:
1. Операционные системы;
2. Прикладное программное обеспечение.
Устройство компьютера достаточно сложно для неподготовленного пользователя. Чтобы облегчить жизнь нам с Вами, разработчики придумали операционную систему – назначение которой максимально упростить Вам (нам) жизнь, сделать работу легкой и понятной. Именно интерфейс (внешний вид) экрана монитора, и именно операционная система позволяет неподготовленному пользователю довольно уверенно чувствовать себя за компьютером, интуитивно понимать и догадываться, что произойдет в следующий момент.
Операционная система служит связывающим звеном между «железом» и пользователем, она «правильно» связывает взаимодействие различных составляющих компьютера между собой и пользователем. Большинство людей (в нашей стране и не только) предпочитает Windows (окна) за ее понятный внешний вид.
Прикладной программное обеспечение – это все остальные программы (кроме операционной системы), которые ставятся поверх операционки.
А еще есть карманные компьютеры где операционная система Palm, Pocket PC, Windows CE и другие. Под Палм существует несколько тысяч прикладных программ.
А еще есть не IBM совместимые компьютеры (например Apple – яблоко), детали которых не взаимозаменяемы с нашими домашними собратьями и которые работают под другими системами, там господствует MAC различных версий и не только.
Операционные системы
Немного истории. В начале был ДОС, где все работало в одном окне, и практически отсутствовал графический интерфейс (оболочка, внешний вид программ). Потом появился Windows 3,1, после его сетевой вариант для ДОС и первая многозадачная операционная система Windows 95. Далее Windows 98, миллениум, Windows NT, 2000 и наконец Windows ХР. Есть еще серверные варианты, но это удел предприятий, мы же делаем упор на частном использовании компьютера.
Сейчас уже разработана и начала продаваться 64 разрядная операционная система Windows, в отличие от 32 разрядной Windows ХР. Конечно, она будет работать быстрее и подвинет пользователей на очередное обновление своих компьютеров.
Кроме Windows есть целый ряд альтернативных операционных систем:
Линукс и его клоны (разновидности);
Солярис;
ОС/2;
Новелл нетваре и другие.
Новелл – сетевая версия – удел профи и предприятий.
Солярис и ОС/2 – операционка для графических и мультимедийных приложений, заточена (предназначена) в основном не для широкого круга пользователей.
А вот Линукс интересен уже тем, что даже исходный пакет (код) операционный системы бесплатный и доступный для изменений пользователем. То есть Вы можете бесплатно взять эту систему, установить на свой компьютер, вместе с ней поставляется пакет бесплатных!!! прикладных программ, выполняющих все те же функции что и Windows. Сами можете менять исходники и переделывать свою операционную систему так, как Вам вздумается. Впрочем, как и все что под ней стоит. Удачи, если осмелитесь.
В Windows есть понятие драйвера (в переводе с английского – водитель). Драйвер – это программа, написанная для конкретного устройства под конкретную операционную систему. Ни одно устройство (мышь, клавиатура, монитор, принтер, видеокарта и т.д.) не будет работать без правильно установленного драйвера. Операционная система сама правильно находит и ставит большинство драйверов (для мыши, клавиатуры и другие), но не всегда она это делает правильно в силу определенных причин. Частично мы с этим сейчас разберемся.
Windows включает в себя базовый набор программ, для минимального функционирования компьютера. Даже без прикладных программ Вы уже можете создавать файлы и папки, слушать и записывать музыку, видео, рисовать, работать в локальной сети и в Интернет, набирать и печатать документы. Установка прикладных программ расширяет Ваши возможности.
Windows ХР имеет два основных варианта поставки: Home Editor и Professional. Первый для домашнего использования, в нем отсутствуют некоторые компоненты от профессионала. Для дома вполне пригоден, есть все что необходимо.
Если Вам необходимо доустановить (убрать) какой то компонент Windows, Вам нужно идти по маршруту: Пуск – Панель управления – Установка и удаление программ – Установка компонентов Windows. Открывается Мастер, который и проведет Вас по дистрибутиву (пакету установки операционной системы). Для этого, наверняка, потребуется оригинальный диск с операционной системой установленной на Вашем компьютере.
Знание компьютера предполагает, как минимум, знание основных возможностей Windows, его базовых программ, и в первую очередь Проводника, который проводит Вас по внутренностям компьютера.
Прикладные программы
Это все программы, кроме операционки. Каждая прикладная программа написана под конкретную операционную систему и вряд ли будет работать под другой. Какие?
Офисные системы;
Утилиты и тестовые пакеты;
Графические редакторы;
Мультимедийные программы (для работы с видео и музыкой);
Сетевые программы;
Антивирусы;
Средства разработки и программирования;
Финансовые и аналитические системы;
Обучающие, энциклопедии и целый ряд программ на все случаи жизни.
Варианты поставки и пути распространения
Два основных типа:
Бесплатные программы с открытым исходным кодом. Линукс, его клоны (разновидности) и;
Лицензионные программы.
Не будем говорить про первые, ввиду их малого распространения, остановимся на вторых. За удовольствие надо платить. Итак, мы можем купить программу:
при покупке компьютера;
в специализированном магазине (офисе);
через Интернет (там можно купить все);
по знакомству (через распространителей).
Варианты продаж:
ОЕМ поставка – обычно при покупке компьютера. Вам остается диск с лицензионным ПО, наклейки и договор.
Коробочный вариант – при покупке в магазине (как правило). Кроме перечисленного выше Вам дадут красивую коробку, описание на русском языке, рекламные материалы. Стоит в 1,5 – 2 раза дороже.
Промо-акции и другие варианты продаж, в т.ч. с рассрочкой платежа, в лизинг, со скидками, бонусами и еще парой десятков вариантов как соблазнить рядового пользователя.
А вообще программы выпускаются:
Лицензионные – для официальной продажи, варианты смотри выше;
В демоверсиях – (триал) бесплатные или условно бесплатные, либо ограниченные по функциональным возможностям, либо по времени работы;
Тестовые варианты – незаконченная программа, переданная на тестирование с целью выявления и устранения недоработок;
Пиратские – когда злоумышленники (хакеры) ломают систему защиты от копирования, подбирают серийный номер, или создают генератор ключей.
Офисные программы
Если Вы купили компьютер, то скорее всего на нем будут работать. 99% документов в России пишут в программе Microsoft Word и Microsoft Excel. Первая текстовой редактор (процессор). Вторая электронные таблицы. Первая нужна для текста и букв, вторая для цифр, формул, графиков и диаграмм.
Знание компьютера предполагает знание именно этих двух программ, хотя бы на уровне пользователя. А пользователь бывает, по уровню подготовки:
Начальный – когда знает как, где и что включить;
Просто пользователь – работавший от 10 до 100 часов в каждой из этих программ, владеющий основными понятиями и возможностями;
Продвинутый – знающий все основные настройки, имеющий навыки быстрой работы и пользующийся приемами, ускоряющими выполнение задач (горячие клавиши);
Гуру – профессионал, владеющий тонкостями настроек, восстановления программ и аппаратной части, специалист, проработавший в сфере настроек и обслуживания компьютеров не один год.
Офис имеет несколько вариантов поставок: стандартный, базовый, профессионал, для малого бизнеса и т.д. в зависимости от поставки в него входит то или иное количество программ. Как правило в нем присутствуют программы:
· Графический редактор;
· Почтовая программа и ежедневник;
· Для работы со сканером;
· Для создания презентаций;
· Для печати книг и брошюр;
· Для разработки сайтов (страничек Интернета);
· Просмотр картинок и многое другое.
Утилиты и тесты
Необязательные компоненты. Без них компьютер может работать довольно долго и успешно. Чем меньше программ в него попадает, тем меньше у Вас будет проблем. Но практика показывает что, как только он появляется в доме, друзья приносят свои диски, на каждом из которых может быть не одна сотня программ и начинается процесс. Любая программа, за исключением самых мелких, при установке прописывается в системе (естественно отнимая на себя какие то ее ресурсы) в реестре, бросает энное количество общих библиотек (файлов которые используются при работе нескольких программ) в папку Систем. Эти библиотеки начинают конфликтовать между собой. При удалении программ (это самое страшное для компьютера, что только может быть), Вы одному Богу известными способами пытаетесь избавиться от ненужной Вам программы. А ведь когда то Вам казалось что без нее нет жизни, а потом оказалось. При удалении возможно удаление части общих библиотек (в каждой из которых есть своя версия), и еще неизвестно как это скажется на работе оставшихся программ.
Побороть часть Ваших подобных проблем, призваны утилиты. Нортоновские и еще с десяток других. Каждая при установке еще с десяток других. ть своя версия), и еще неизвестно как это скажется на работе оставшихся программ.
особами пытаетесь изба, от души, хвалит себя, говорит какая она незаменимая, и что она может. Есть утилиты очистки реестра и масса еще каких.
Лучшее средство от всех бед – полная переустановка операционной системы с ликвидацией старой. Еще лучше с форматированием диска. Еще лучше с низкоуровневым удалением разделов, например ДискЕдитом из нортоновских утилит. После него Ваш жесткий диск вообще не размечен и не имеет объема.
Тесты запускают «тяжелую» работу для компьютера и отслеживают скорость ее выполнения. По результатам работы выдается сравнение Вашего ПК с какой-то конфигурацией в процентах, баллах и т.д. Наилучший тест «железа» - крутая игрушка. Если она часов несколько работает нормально и система не тормозит, значит у Вас все нормально.
Настройка программ
Перед тем как поставить любую программу, подумайте, нужна ли Вам она. Если нужна, отложите установку на завтра. А завтра взвесьте, сможете ли Вы без нее прожить? Если нет, посчитайте, а нет ли программы более нужной, альтернативной той, что Вы собираетесь поставить? Если нет проконсультируйтесь с друзьями у кого она стоит, она им действительно необходима. А потом поставьте ее не на свой компьютер, а на чужой, за который душа не болит, и поработайте с ней на нем, хотя бы год. Если Вы в ней еще не разочаровались, лишь тогда устанавливайте ее на свой компьютер.
Серьезно. Нет ничего страшней, чем удаление программ. Для компьютера, а потом для Вас.
Вы хотите установить программу? Включаете компьютер, выходите на Рабочий стол. Открываете СД привод и вставляете в него диск, закрываете. Должен сработать автозапуск СД и запуститься программа заставки. Если этой программы на компьютере у Вас нет, там будет слово «Установить» или что-то подобное. Нажимаете на него мышкой и начинается процесс инсталляции – установки программы на Ваш компьютер. Как правило, Вы должны принять лицензионное соглашение, без этого программа не установится. Далее Вы жмете клавишу Далее, Next, продолжить, e, пока этот процесс не закончится и Вас не поздравят с успешной установкой.
Если автозапуск не сработал. Открываете Проводник, или что там у Вас еще есть. Открываете диск СД, и ищете нужную Вам папку. Для установки запустите приложение с именем Setup или Install в нужной Вам папке. Запустится процесс установки, далее как обычно.
Удаление программ. Лучший способ – Пуск – Все программы – строка с именем ненавистной программы – Удалить, деинсталлировать и т.д. Uninstall жмете мышкой и подтверждаете – полное удаление, частичное, переустановка.
Если нет команды удалить, там где хочется, второй способ. Пуск – Панель управления – Установка и удаление программ – в списке Изменение или удаление программ ищите ненужную и жмете кнопочку удалить возле нее.
Если нет и в этом списке, ищите папку, где она установлена, (чаще всего C:\Program Files\...) а в ней файлик с именем Uninstall. Наступаете на него мышкой и далее подтверждение удаления.
Самый нехороший вариант – физическое удаление с диска через Проводник или подобную программу. Вы удаляете лишь видимую часть айсберга, оставляя записи в реестре, общие библиотеки и еще кучу мусора.
После установки игр, их надо еще настроить. Хоть большинство по умолчанию начинают сразу работать, сами приняв минимальные настройки при установке. Как? Лучше обратиться к специалисту по компьютерным играм, в игровом салоне или к друзьям с большим опытом эксплуатации.
Для игр необходим ДиректХ 8 или ДиректХ 9 – это программный ускоритель графики. Многие игры без него не работают. Несмотря на то, что он у Вас установлен, если игра не идет, все равно переустановите его с того диска, на котором игра не запускается. Благо он есть почти на всех дисках, где он необходим.
В настройки BIOS лучше Вам не ходить. Для работы там нужен большой опыт, последствия могут быть тяжелыми.
Для тонкой настройки самой операционной системы есть целый ряд программ. Установив их, Вы получаете доступ к настройкам, которые не были доступны ранее. Если Вы не гуру, Вам это то же не надо.
Серьезные деловые пакеты в настройке не нуждаются. Возможностей в них много. На изучение любой программы надо время, и не один месяц, не стремитесь познать все сразу, это невозможно. Компьютер как медицина. Нет медика и гинеколога, и хирурга и окулиста в одном лице. Так же нет компьютерщика знающего всё. Каждый специализируется в какой-то узкой области знаний. Чем более Вы изучаете компьютер, тем более Вы должны понимать, как много Вы еще не знаете.
Восстановление операционной системы
Часто и густо бывает такая ситуация. Вы установили программу (как Вам перед этим казалось, без которой Вы не сможете и дня прожить), а тут. Звук пропал. Что-то там еще не работает. Вы в трансе. Полный развал. А еще час назад все было так хорошо. Понимаете, что дело в той программе, что Вы поставили.
Знаем средство, как удалить от нас такое бедство. Разработчики операционной системы предусмотрели такой поворот событий, и средства для его реализации. Если у Вас стоит Windows XP сервис пак 2, то Вы должны сделать следующее:
1. Пуск – Все программы – Стандартные – Служебные – Восстановление системы.
2. Открывается окно – Восстановление системы. Тут Вы можете:
либо создать новую точку восстановления (что очень актуально, если Вы шестым чувством чувствовали, что то, что Вы сейчас установите, очень опасно), и Вы (умницы) перед установкой сделали эту точку восстановления. Тогда Вы делаете откат на эту точку с минимальными потерями;
либо восстановить систему. Жмем Далее. На втором окне – Выбор контрольной точки восстановления – Вам предлагают выбрать дату (жирным шрифтом) контрольной точки восстановления. Выбираете последнюю жирную, или когда там Вы ее создали, и жмете Далее.
Система возвращает все настройки (и самое главное – реестр), восстанавливает все на точку (дату) создания, указанную жирным шрифтом. Все. После этого перезагрузка, и Ваш компьютер снова стал таким, когда у Вас все было прекрасно. Не правда ли, здорово! Восстановление системы не затрагивает документы, которые Вы создали, не влияет на почту и письма, что Вы получили, игнорирует песни и музыку, которые Вы написали в этот интервал времени. Это все не пострадает! Разве не прекрасно жизнь после этого? Как тут не снять шапку перед Биллом Гейтсом.
А вот под Линуксом таких проблем вообще не бывает. Но на то он и Линукс.
3. ЗАДАНИЕ ДЛЯ САМОСТОЯТЕЛЬНОЙ РАБОТЫ
1.Пуск – Панель управления – Установка и удаление программ – установка компонентов Windows. Запустите мастера. Посмотрите на те компоненты, которые имеются в установочном пакете. Посмотрели, закройте на Отмена.
2.Пуск – Все программы – Стандартные – Paint. Запустите графический редактор и нарисуйте, что угодно. Желательно задействовать при этом все инструменты на панели рисования с левой стороны вверху. Не забывайте менять цвета в палитре. Нарисовали, закройте с сохранением.
3.По этому же пути запустите Блокнот. Напишите в нем текст и сохраните. Большинство интернетчиков в работе используют Блокнот. Почему? Потому, что размер файлов сделанных в нем минимален, что критично для сети.
4.В папке Стандартные запустите Калькулятор. Переключитесь в режим Инженерный. Щелкните правой клавишей мыши на его клавишах и прочитайте, для чего они предназначены. Отлично, закройте это окно.
5.Там же запустите WordPad. Поработайте в нем и сохраните свои данные. Оцените широту размаха по сравнению с блокнотом. Но это далеко не Word, а лишь его страничка.
6.Запустите Проводник и поработайте в нем. Лишь человек ХОРОШО знающий Проводник имеет право говорить, что он знает компьютер. Уметь создавать файлы и папки, переименовывать их, копировать и перемещать Вы должны уметь делать ночью, на ощупь и с закрытыми глазами. Это без шуток, если Вы не знаете Проводника, то Вы не владеете компьютером! Аксиома.
4. КОНТРОЛЬНЫЕ ВОПРОСЫ
1. Для чего нужна операционная система?
2. И какие операционные системы Вы знаете?
3. Чем они отличаются друг от друга, и что они делают?
4. Линукс, его плюсы и минусы?
5. Дайте характеристику остальных операционных систем.
6. Драйвер, это еще что за зверь?
7. Для чего он нужен, кто их пишет и зачем?
8 Какой драйвер Вам предпочесть и почему?
9. А где их берут, опять в Интернет?
10. Какие программы входят в обычную поставку операционной системы?
11. Для чего они нужны, что могут делать?
12. А зачем нужен Проводник, что он делает и как?
13. Если ли у него (Проводника) аналоги, т.е. программы делающие тоже?
14. Для чего нужна Панель управления, какие функции она выполняет?
15. Как устанавливать программы?
16. А сколько их должно быть на компьютере?
17. Где их искать (брать), нужно ли их обновлять и зачем?
18. А как часто и каким путем?
19. Как их лучше удалять, и как удалять не надо, почему и чем это грозит?
20. Если Ваша операционная система захворала, что делать?
21. Как создать точку отката, и зачем она нужна?
22. Часто ли ее нужно делать и почему?
23. Как часто надо делать полную перестановку программного обеспечения?
24. Что это дает и зачем?
25. Кто должен выполнить эту работу и почему?
26. Насколько это сложно, и что надо сделать при этом?
Практическая работа №3
Тема: «Алгоритм планирования процессов» (4 часа)
ЦЕЛЬ РАБОТЫ: Изучить исследование алгоритмов планирования процессов
Изучить возможности программы AlgOfComp по моделированию различных алгоритмов планирования процессов (потоков)
2.1. Назначение и возможности программы. Программа позволяет моделировать следующие алгоритмы распределения времени центрального процессора очереди выполняемых процессов: RR (Round Robin) – “круговая дисциплина обслуживания”; FCFS (First Com –First Served) - “первый пришел – первый обслужен”; SJF (Short Job First) – “короткая задача – первая” в двух вариантах. Первый – вытесняющий алгоритм, т.е. с прерыванием процесса по истечении кванта времени, второй – невытесняющий алгоритм, т.е. с выполнением короткой задачи до ее завершения.
Окно программы после ее запуска показано на рис. 1. В верхней части окна выбирается для исследования один из возможных алгоритмов. Среднее поле программы предназначено для ввода исходных данных. Здесь задается количество обрабатываемых процессов, причем для каждого процесса задаются время перехода в состояние “Готовность” (например по причине ожидания ввода-вывода) и время выполнения в условных единицах.
После ввода исходных данных по всем процессам и задания величины кванта времени процессора в таких же условных единицах следует нажать кнопку Произвести расчет. В нижней части окна представляются полученные результаты. По каждому процессу даются среднее время ожидания и среднее время обслуживания (выполнения). Полученные результаты можно просмотреть в виде диаграммы, нажав кнопку Диаграмма (пример на рис. 2), а также можно сохранить в файле, нажав кнопку Сохранить. Файл можно просмотреть в программе Блокнот (пример на рис.3). В правой части диаграммы даются обобщенные данные по результатам выполнения процессов.
2.2. Провести исследование различных алгоритмов планирования процессов, используя программу AlgOfComp. В качестве исходных данных сформировать 3-4 процессов со временем перехода в состояние готовность в диапазоне 1 – 5 усл. ед. и временем исполнения в диапазоне 20 – 50 усл. ед. Исследования провести для различных значений квантов времени процессора 1, 2, 3, 4, 5. По полученным результатам построить графики в электронной таблице Excel. Провести анализ эффективности того или иного алгоритма в зависимости от величины кванта времени процессора и характеристик процессов.
Программа-пример Queue (иллюстрация использования мьютекса и семафора).
Назначение и возможности программы. Программа управляет очередью обрабатываемых элементов данных, используя мьютекс и семафор. После запуска открывается окно, показанное на рис. 4.
При инициализации программа создает четыре клиентских и два серверных потока. Каждый клиентский поток засыпает на определенный период времени, а затем помещает в очередь элемент данных. Когда в очередь ставится новый элемент, содержимое списка Client Threads обновляется. Каждый элемент данных состоит из номера клиентского потока и порядкового номера запроса, выданного этим потоком. На рис. 4 первая запись в левом окне сообщает, что клиентский поток 1 поставил в очередь пятый запрос.
Серверные потоки ничего не делают, пока в очереди не появится хотя бы один элемент данных. Как только он появляется, для его обработки пробуждается один из серверных потоков. Их работа отображается в правом окне. Первая запись говорит о том, что нулевой серверный поток обрабатывает первый запрос от клиентского потока с номером 0.
В этом примере серверные потоки не успевают обрабатывать клиентские запросы и очередь, в конечном счете, заполняется до максимума (10 элементов). Это происходит к тому моменту, когда клиентский поток 3 выдает свой пятый запрос.
Исходный текст программы приведен в файле Module. Жирным черным и красным цветом выделены комментарии м строки, на которые нужно обратить внимание. Эти строки связаны с работой и созданием потоков, семафора и мьютекса. Очередью управляет С++-класс CQueue. Метод Append пытается добавить элемент в очередь, но сначала он должен убедиться, что вызывающему потоку разрешен монопольный доступ к очереди. Для этого метод Append вызывает WaitForSingleObject, передавая описатель объекта-мьютекса, m_bmtxQ. Если функция возвращает WAIT_OBJECT_0, значит поток получил монопольный доступ к очереди.
Далее метод Append пытается увеличить число элементов очереди, вызвав функцию ReleaseSemaphore и передав ей счетчик числа освобождений, равный 1. Если вызов ReleaseSemaphore проходит успешно, в очереди есть место и в нее помещается элемент. По окончании этой операции Append вызывает ReleaseMutex, чтобы и другие потоки могли получить доступ к очереди.
Для выборки элемента из очереди серверный поток вызывает метод Remove сначала этот метод должен убедиться, что вызывающий поток получил монопольный доступ к очереди и что в ней есть хотя бы один элемент. Поэтому метод Remove предварительно обращается к WaitMultipleObjects, передавая ей описания мьютекса и семафора. После освобождения этих объектов серверный поток может пробудиться.
Объект семафор отслеживает, сколько элементов находится в очереди. Это значение увеличивается, когда метод Append вызывает ReleaseSemaphore после добавления нового элемента в очередь и уменьшается при вызове WaitMultipleObjects из метода Remove.
Запустить программу Queue. Для более удобного просмотра ее работы, предварительно запустить программу CPUStress, присвоив ей высший приоритет. В файле Module и просмотреть выделенные жирным шрифтом участки, которые связаны с синхронизацией потоков.
/******************************************************************************
Module: Queue.cpp
Notices: Copyright (c) 2000 Jeff
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·Решение задач на планирование вычислительных процессов
Задача № 1
Запуска ожидают пять задач. Предполагаемое время их выполнения составляет 9, 6, 3, 5 и Х. В каком порядке их следует запустить, чтобы минимизировать среднее время отклика? (Ответ должен зависеть от Х).
Задача № 2
Три задачи A, B, C поступают в однопроцессорный компьютер практически одновременно. Ожидаемое время их выполнения составляет 10, 4 и 8 мин. Определите среднее оборотное время для алгоритма циклического планирования (каждой задаче достается справедливая доля времени процессора, время кванта равно 20 мс), пренебрегая временем, теряющемся при переключении между процессами.
Задача № 3
Пять пакетных задач A, B, C, D, E поступают в однопроцессорный компьютер практически одновременно. Ожидаемое время их выполнения составляет 10, 6. 2. 4 и 8 мин. Их установленные приоритеты составляют 3, 5. 2, 1 и 4, причем 5 – высший приоритет. Определите среднее оборотное время для алгоритма приоритетного планирования с абсолютными приоритетами, пренебрегая временем, теряющемся при переключении между процессами.
Задача № 4
Пять пакетных задач A, B, C, D, E поступают в однопроцессорный компьютер практически одновременно. Ожидаемое время их выполнения составляет 10, 6. 2. 4 и 8 мин. Определите среднее оборотное время для алгоритма «кратчайшая задача – первая» (запущенная задача работает до конца), пренебрегая временем, теряющемся при переключении между процессами.
Задача № 5
Пять пакетных задач A, B, C, D, E поступают в двухпроцессорный компьютер практически одновременно. Ожидаемое время их выполнения составляет 10, 6. 2. 4 и 8 мин. Их установленные приоритеты составляют 3, 5. 2, 1 и 4, причем 5 – высший приоритет. Определите среднее оборотное время для алгоритма планирования с относительными приоритетами (запущенная задача работает до конца), пренебрегая временем, теряющемся при переключении между процессами.
Задача № 6
В гибкую систему реального времени поступают четыре периодических сигнала с периодами 50, 100. 200. и 250 мс. На обработку каждого сигнала требуется 35, 20, 10 и Х времени центрального процессора. Требуется определить максимальное значение Х, при котором система остается поддающейся планированию.
Задача № 7
В оперативной памяти центрального процессора может содержаться четыре программы. Эти программы простаивают в ожидании ввода-вывода половину времени. Какая часть времени процессора пропадает. Как изменится эта часть, если число программ удвоить?
Задача № 8
В оперативной памяти центрального процессора может содержаться три программы. Эти программы простаивают в ожидании ввода-вывода одну треть времени. Какая часть времени процессора пропадает. Как изменится эта часть, если число программ удвоить?
Практическая работа №4
Тема: «Применение алгоритма Банкира для обнаружения тупиков» (2 часа)
ЦЕЛЬ РАБОТЫ: Изучить алгоритм Банкира, алгоритм Медника
Тупиком, клинчем или дедлоком (deadlocks) в операционной системе называется ситуация в которой два или более процессов взаимно блокируют друг друга при обращении к критической секции или разделяемым ресурсам. Пусть двум процессам, выполняющимся в режиме мультипрограммирования, для выполнения их работы нужно два ресурса, например, принтер и диск. И пусть после того, как процесс А занял принтер (установил блокирующую переменную), он был прерван. Управление получил процесс В, который сначала занял диск, но при выполнении следующей команды был заблокирован, так как принтер оказался уже занятым процессом А. Управление снова получил процесс А, который в соответствии со своей программой сделал попытку занять диск и был заблокирован: диск уже распределен процессу В. В таком положении процессы А и В могут находиться сколь угодно долго.
Проблема тупиков включает в себя следующие задачи: предотвращение тупиков, распознавание тупиков, восстановление системы после тупиков.
Тупики могут быть предотвращены на стадии написания программ, то есть программы должны быть написаны таким образом, чтобы тупик не мог возникнуть ни при каком соотношении взаимных скоростей процессов. Так, если бы в предыдущем примере процесс А и процесс В запрашивали ресурсы в одинаковой последовательности, то тупик был бы в принципе невозможен. Второй подход к предотвращению тупиков называется динамическим и заключается в использовании определенных правил при назначении ресурсов процессам, например, ресурсы могут выделяться в определенной последовательности, общей для всех процессов.
В некоторых случаях, когда тупиковая ситуация образована многими процессами, использующими много ресурсов, распознавание тупика является нетривиальной задачей. Существуют формальные, программно-реализованные методы распознавания тупиков, основанные на ведении таблиц распределения ресурсов и таблиц запросов к занятым ресурсам. Анализ этих таблиц позволяет обнаружить взаимные блокировки.
Если же тупиковая ситуация возникла, то не обязательно снимать с выполнения все заблокированные процессы. Можно снять только часть из них, при этом освобождаются ресурсы, ожидаемые остальными процессами, можно вернуть некоторые процессы в область свопинга, можно совершить "откат" некоторых процессов до так называемой контрольной точки, в которой запоминается вся информация, необходимая для восстановления выполнения программы с данного места. Контрольные точки расставляются в программе в местах, после которых возможно возникновение тупика.
Надежным и простым методом предотвращения клинчей является требование предварительного объявления пользователем всех необходимых его заданию ресурсов еще на стадии представления задания. В этом случае планировщик заданий просто не пропускает задание на обработку до тех пор, пока все затребованные ресурсы не станут доступными. Ресурсы закрепляются за заданием на все время его выполнения. Метод имеет широкое распространение, однако ему присущи определенные недостатки:
пользователь не всегда может определить, какие устройства (ресурсы) потребуются его заданию на стадии выполнения;
задание вынуждено ждать освобождения всех ресурсов, хотя некоторые из них могут понадобиться ему значительно позже, например при его завершении, которое наступит лишь несколько часов спустя.
Если известно, что вероятность использования заданием определенного устройства невелика, постоянное закрепление такого устройства за заданием является непозволительным расточительством. Например, выдача на печать содержимого памяти может потребоваться только в случае возникновения ошибок в работе программы, тем не менее печатающее устройство будет монопольно закреплено за этим заданием.
Существует еще одна форма контроля над распределением ресурсов, а именно стандартная последовательность распределения. Согласно этому методу, каждому ресурсу приписывается определенный номер (например, HDD – 1, CDROM – 2, FDD – 3, LPT- 4, COM1 – 5, COM2 – 6 и т.д.). Все запросы должны быть упорядочены по возрастанию этих номеров. Например, последовательность запросов б HDD (1), FDD (3), LPT (4)с будет правильной, а последовательность б HDD (1), LPT (4), FDD (3)с будет неверной. Если запросы следуют в порядке возрастания номеров, то они удовлетворяются по мере того, как ресурсы становятся доступными. В противном случае процесс вынужден ждать.
Этот метод гарантирует отсутствие клинчей. Отметим, что нам также не обязательно знать максимальную потребность в ресурсах. Однако и у него есть свои недостатки. Стандартная последовательность может отличаться от порядка, в котором процессу в действительности могут потребоваться ресурсы. Если, например, задание использует сначала COM, а печатающее устройство значительно позже, ему все равно придется сначала заказать печатающее устройство. Однако разумное назначение номеров может сделать эти неудобства гораздо менее заметными.
Предотвращение тупиков («Алгоритм банкира»).
Схема предотвращения основана на точке зрения, что систему нельзя допускать до опасного состояния. Поэтому, когда какой-нибудь процесс делает запрос, который может привести к тупику, система принимает меры к тому, чтобы избежать опасного состояния: либо неудовлетворяет этот запрос, либо отбирает ресурс у другого процесса, чтобы избежать возможного попадания в тупик. Преимущество этого метода состоит в том, что он всегда предотвращает тупиковые ситуации. Однако ресурсы часто присваивают, поскольку запросы на имеющиеся в распоряжении системы ресурсы отклоняются иногда с целью предотвратить попадание в опасное состояние. К тому же и сам предотвращающий алгоритм может внести большие накладные расходы.
Автоматическое обнаружение тупиков (алгоритм Медника)
Предыдущий метод гарантирует отсутствие тупиковых ситуаций за счет весьма осторожной политики. Метод обнаружения и восстановления действует гораздо более решительно. Не препятствуя возникновению тупика, метод предполагает его обнаружение и восстановление прерванной им нормальной работы. Произвольно нумеруем все ресурсы и процессы в системе. Создаем таблицы, в которых собиралась бы вся информация о назначении ресурсов процессами (РАСПРЕД) и о процессах, блокированных при попытке обращения к ресурсу (БЛК). Заносим в эти таблицы соответствующую информацию при всяком назначении или освобождении ресурса согласно следующему алгоритму:
НАЧАЛО «МЕДНИК»
(*Процесс Рi запрашивает занятый ресурс Уi*)
(*ПОДГОТОВИТЬ*)
К = РАСПРЕД (i) (*К – номер процесса владеющего ресурсом Уi*)
ЦИКЛ-ПОКА БЛК (К) и J(K
J = К
N = БЛК (К) (*N – номер ресурса, которого ожидает*)
К = РАСПРЕД (N) (*рассматриваемый процесс*)
ВСЕ-ЦИКЛ
ЕСЛИ
J = К
ТУПИК
ИНАЧЕ
БЛК (J) = i (*Перевести процесс Рi в состояние ожидания*)
ВСЕ-ЕСЛИ
КОНЕЦ «МЕДНИК»
Формулировка задачи
Определить наличие тупика при следующей последовательности запросов устройств процессами. Определить опасные и безопасные состояния методом банкира. Исходные данные к задаче находятся в таблице 1. Номер варианта выбирается по последней цифре зачетной книжки.
Пример решения
Пусть в какой-то период времени 3 процесса разделяют 5 устройств одного типа. Факты запроса устройств процессами представим в виде таблицы:
t
У1
У2
У3
У4
У5
1
3
1
2
2
2
2
3
1
4
3
5
2
Определение опасных и безопасных состояний
Для предотвращения тупиков необходимо определить МАХ (i): МАХ (1) = 2, МАХ(2) = 4 и т.д. Обшее число устройств (ОБЩУСТР) равно 5 и все они одного типа.
На обслуживание принимаются процессы, которым необходимо не более ОБЩУСТР устройств и для каждого из них определяются остатки (ОСТ(i)). В первый момент времени 1-й процесс запросил 1 устройство, 2-й процесс – 1, 3-й процесс – 1.
Если им выделить эти 3 устройства, то получим:
Имя процесса
МАХ потребность
Выделено
Остаток
1
2
1
1
2
4
1
3
3
2
1
1
С точки зрения вероятности тупика худший случай из всех возможных - это если каждый процесс запросит все, что ему еще полагается. Если при таких обстоятельствах все процессы могут окончиться, то рассматриваемое состояние для системы безопасно.
В нашем случае система имеет в резерве 2 устройства 5 и может «рассчитаться» с каждым из процессов (сначала с первым или третьим, а затем со вторым). Поэтому состояние системы – безопасное.
В следующий момент времени второй процесс запрашивает 2 устройства. Если ему их выделить, то получим:
Имя процесса
МАХ потребность
Выделено
Остаток
1
2
1
1
2
4
3
1
3
2
1
1
В резерве у системы нет одного устройства и, очевидно, состояние – опасное. Заметим, что по условию задачи процессы не отдают предоставленные им ресурсы. Во второй момент времени второй процесс блокируется, и ресурсы ему не выделяются. В третий момент времени первый процесс запрашивает устройство. Если его ему выделить, то получим:
Имя процесса
МАХ потребность
Выделено
Остаток
1
2
2
0
2
4
1
3
3
2
1
1
В резерве – одно устройство, а после окончания процесса 1 - он освободит 2 устройства и можно будет рассчитаться с процессом 2. Таким образом, и это состояние – безопасное. Легко показать, что в четвертый момент времени – состояние также будет безопасным, а в пятый момент времени – опасный.
Определение тупиковой ситуации
В моменты времени t1 и t2 все запрашиваемые устройства свободны, следовательно нет опасности возникновения тупика.
В третий момент времени Р1 запрашивает У1, которое принадлежит процессу Р3 (К=РАСПРЕДЕЛ (1)=3).
Так как J(К, а также БЛК (3) = « » - тело цикла в алгоритме не выполняется и БЛК (1) = 1.
В четвертый момент времени Р3 запрашивает У2. Получаем :
К = 2,J = 3 и БЛК (2) = « »
Поэтому : БЛК (3) = 2.
В пятый момент времени Р2 запрашивает У3, которым владеет процесс Рi (К = 1). Вто же время процесс Р1 ожидает момента времени, когда освободится устройство У1, которым владеет процесс 3. В свою очередь процесс 3 ожидает освобождения устройства У2, которым владеет процесс Р2 (J = К). Таким образом, система попала в тупик в пятый момент времени.
ТАБЛИЦА РАСПРЕДЕЛЕНИЯ РЕСУРСОВ /РАСПРЕД/
Номер ресурса
Номер процесса, которому распределен ресурс
1
3 (1)
2
2 (2)
3
1 (1)
4
2 (1)
5
2 (2)
ТАБЛИЦА БЛОКИРОВАННЫХ ПРОЦЕССОВ /БЛК/
Номер процесса
Номер ресурса, которого ожидает данный процесс
1
1 (3)
2
3
2 (4)
Задачи для самостоятельной работы.
Определить наличие тупика при следующей последовательности запросов устройств процессами. Определить опасные и безопасные состояния методом банкира. Пусть в какой-то период времени 3 процесса разделяют 5 устройств одного типа. Факты запроса устройств процессами представим в виде таблицы:
Вариант
Данные
t
J1
J2
J3
J4
J5
1
t1
1
2
t2
3
2
t3
3
1
t4
1
t5
2
Определить наличие тупика при следующей последовательности запросов устройств процессами. Определить опасные и безопасные состояния методом банкира. Пусть в какой-то период времени 3 процесса разделяют 5 устройств одного типа. Факты запроса устройств процессами представим в виде таблицы:
Вариант
Данные
t
J1
J2
J3
J4
J5
2
t1
2
3
t2
1
1
t3
2
2
t4
3
t5
3
Определить наличие тупика при следующей последовательности запросов устройств процессами. Определить опасные и безопасные состояния методом банкира. Пусть в какой-то период времени 3 процесса разделяют 5 устройств одного типа. Факты запроса устройств процессами представим в виде таблицы:
Вариант
Данные
t
J1
J2
J3
J4
J5
3
t1
3
3
1
t2
1
2
t3
2
t4
1
t5
3
Определить наличие тупика при следующей последовательности запросов устройств процессами. Определить опасные и безопасные состояния методом банкира. Пусть в какой-то период времени 3 процесса разделяют 5 устройств одного типа. Факты запроса устройств процессами представим в виде таблицы:
Вариант
Данные
t
J1
J2
J3
J4
J5
4
t1
1
2
t2
3
2
3
t3
1
t4
1
t5
2
Определить наличие тупика при следующей последовательности запросов устройств процессами. Определить опасные и безопасные состояния методом банкира. Пусть в какой-то период времени 3 процесса разделяют 5 устройств одного типа. Факты запроса устройств процессами представим в виде таблицы:
Вариант
Данные
t
J1
J2
J3
J4
J5
5
t1
2
2
2
t2
1
3
t3
3
3
t4
1
t5
2
Определить наличие тупика при следующей последовательности запросов устройств процессами. Определить опасные и безопасные состояния методом банкира. Пусть в какой-то период времени 3 процесса разделяют 5 устройств одного типа. Факты запроса устройств процессами представим в виде таблицы:
Вариант
Данные
t
J1
J2
J3
J4
J5
6
t1
1
2
2
t2
3
t3
3
3
t4
1
1
t5
2
Определить наличие тупика при следующей последовательности запросов устройств процессами. Определить опасные и безопасные состояния методом банкира. Пусть в какой-то период времени 3 процесса разделяют 5 устройств одного типа. Факты запроса устройств процессами представим в виде таблицы:
Вариант
Данные
t
J1
J2
J3
J4
J5
7
t1
1
2
3
t2
3
t3
2
1
t4
2
t5
3
Определить наличие тупика при следующей последовательности запросов устройств процессами. Определить опасные и безопасные состояния методом банкира. Пусть в какой-то период времени 3 процесса разделяют 5 устройств одного типа. Факты запроса устройств процессами представим в виде таблицы:
Вариант
Данные
t
J1
J2
J3
J4
J5
9
t1
1
2
t2
1
3
t3
2
1
t4
2
1
t5
3
Определить наличие тупика при следующей последовательности запросов устройств процессами. Определить опасные и безопасные состояния методом банкира. Пусть в какой-то период времени 3 процесса разделяют 5 устройств одного типа. Факты запроса устройств процессами представим в виде таблицы:
Вариант
Данные
t
J1
J2
J3
J4
J5
10
t1
3
1
t2
2
3
t3
1
3
t4
1
2
t5
2
Письменный опрос по теме Алгоритм Банкира, алгоритм Медника
1. Тупиком называется ____________________________________________
________________________________________________________________________________________________________________________________________
2. Задачи тупиков ______________
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·3. Тупики могут быть предотвращены _______________________________
________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________
4. Надежным и простым методом предотвращения клинчей является ____
________________________________________________________________________________________________________________________________________
5. Недостатки метода предотвращения клинчей _______________________
____________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________
6. Предотвращение тупиков («Алгоритм банкира»).
____________________
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·7. Автоматическое обнаружение тупиков (алгоритм Медника)
_______________________________________________________________________________________________________________________________________________________________________________________________________
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·Практическая работа №5
Тема: «Исследование методов замещения страниц в виртуальной памяти» (2 часа)
ЦЕЛЬ РАБОТЫ: Выполнить исследование методов замещения страниц в виртуальной памяти
Теоретическая часть
Память является важнейшим ресурсом, требующим тщательного управления со стороны мультипрограммной операционной системы. Распределению подлежит вся оперативная память, не занятая операционной системой. Обычно ОС располагается в самых младших адресах, однако может занимать и самые старшие адреса. Функциями ОС по управлению памятью являются: отслеживание свободной и занятой памяти, выделение памяти процессам и освобождение памяти при завершении процессов, вытеснение процессов из оперативной памяти на диск, когда размеры основной памяти не достаточны для размещения в ней всех процессов, и возвращение их в оперативную память, когда в ней освобождается место, а также настройка адресов программы на конкретную область физической памяти.
Страничная организация памяти является одним из основных способов реализации виртуальной памяти. Множество виртуальных адресов, как правило, значительно превышает диапазон адресов первичной памяти. Суть концепции виртуальной памяти заключается в том. что виртуальные адреса, на которые ссылается выполняющийся процесс, отделяются от адресов, существующих в первичной памяти, т.е. реальных адресов. Диапазон виртуальных адресов. к которым может обращаться процесс. называется виртуальным адресным пространством V этого процесса. Диапазон реальных адресов, существующих в конкретной вычислительной машине, называется реальным адресным пространством R этой машины.
Алгоритмы замещения страниц
Выталкивание случайной страницы (RANDOM). Если вам нужно иметь стратегию выталкивания страниц, которая характеризовалась бы малыми издержками и не являлась бы дискриминационной по отношению к каким-либо конкретным пользователям, то можно пойти по очень простому пути – выбирать случайную страницу. В этом случае все страницы, находящиеся в основной памяти, могут быть выбраны для выталкивания с равной вероятностью, в том числе даже следующая страница к которой будет производиться обращение (и которую, естественно, удалять из памяти наиболее нецелесообразно). Поскольку подобная стратегия по сути как бы рассчитана на “слепое” везение, в реальных системах она применяется редко.
Выталкивание первой пришедшей страницы (FIFO). При выталкивании страниц по принципу FIFO мы присваиваем каждой странице в момент поступления в основную память временную метку. Когда появляется необходимость удалять из основной памяти какую-нибудь страницу, мы выбираем ту, которая находилась в памяти дольше других. Интуитивный аргумент в пользу подобной стратегии кажется весьма весомым, а именно: у данной страницы уже были возможности “использовать свой шанс”, и пора дать подобные возможности и другой странице. К сожалению, стратегия FIFO с достаточно большой вероятностью будет приводить к замещению активно используемых страниц, поскольку тот факт, что страница находится в основной памяти в течение длительного времени, вполне может означать, что она постоянно в работе. Например, для крупных систем разделения времени стандартна ситуация, когда многие пользователи во время ввода и отработки своих программ совместно используют одну копию текстового редактора. Если в подобной системе выталкивать страницы по принципу FIFO, это может привести к удалению из памяти какой-либо интенсивно используемой странице редактора. А это будет безусловно нецелесообразно, поскольку её почти немедленно придется снова переписывать в основную память.
Выталкивание дольше всего не использовавшейся страницы (LRU).Эта стратегия предусматривает, что для выталкивания следует выбирать ту страницу, которая не использовалась дольше других. Здесь мы исходим из эвристического правила, говорящего о том, что недавнее прошлое – хороший ориентир для прогнозирования ближайшего будущего. Стратегия LRU требует, чтобы при каждом обращении к странице ее временная метка обновлялась. Это может быть сопряжено с существенными издержками, и поэтому стратегия LRU, хотя она и кажется весьма привлекательной, в современных системах реализуется редко. Чаще применяются близкие к LRU стратегии, для которых характерны меньшие издержки.
Выталкивание реже всего используемой страницы (LFU).Одной из близких к LRU стратегий является стратегия, согласно которой выталкивается наименее часто (наименее интенсивно) использовавшаяся страница (LFU). Здесь мы контролируем интенсивность использования каждой страницы. Выталкивается та страница, которая наименее интенсивно используется или обращения к которой наименее часты. Подобный подход опять-таки кажется интуитивно оправданным, однако в то же время велика вероятность того, что удаляемая страница будет выбрана нерационально. Например, наименее интенсивно используемой может оказаться та страница, которую только что переписали в основную память и к которой успели обратиться только один раз, в то время как к другим страницам могли уже обращаться более одного раза. Теперь работающий по принципу LFU механизм вытолкнет эту страницу, а она скорее всего сразу же будет использоваться.
Выталкивание не использовавшейся в последнее время страницы (NUR).Один из распространенных алгоритмов, близких к стратегии LRU и характеризующихся малыми задержками,– это алгоритм выталкивания страницы, не использовавшейся в последнее время (NUR) к страницам, которая в последнее время не использовались, вряд ли будут обращения и в ближайшем будущем, так что их можно заменять на вновь поступающие страницы.
Поскольку желательно заменять ту страницу, которая в период нахождения в основной памяти не изменялась, реализация стратегии предусматривает введение двух аппаратных битов – признаков на страницу. Это
а) бит-признак обращения 13EMBED Equation.31415
б) бит-признак модификации 13EMBED Equation.31415
Бит-признак модификации часто называют так же “признаком записи” в страницу. Стратегия NUR реализуется следующим образом. Первоначально биты-признаки обращения и модификации для всех страниц устанавливаются в 0. При обращении к какой-либо странице её бит-признак обращения устанавливается в 1, а в случае изменения содержимого страницы устанавливается в 1 её бит-признак модификации. Когда нужно выбрать страницу для выталкивания, прежде всего мы пытаемся найти такую страницу, к которой не было обращений (поскольку мы стремимся приблизиться к алгоритму LRU). В противном случае у нас не будет другого выхода, как вытолкнуть страницу, к которой были обращения. Если к странице обращения были, мы проверяем, подверглась ли она изменению или нет. Если нет, мы заменяем ее из тех соображений, что это связано с меньшими затратами, чем в случае замены модифицированной страницы, которую необходимо будет физически переписывать во внешнюю память. В противном случае нам придется заменять модифицированную страницу.
В много абонентских системах основная память, естественно, работает активно, так что рано или поздно у большинства страниц бит-признак обращения будет установлен в 1, и мы не сможем отличать те страницы, которые вытолкнуть наиболее целесообразно. Один из широко распространенных способов решения этой проблемы заключается в том, что все биты-признаки обращений периодически сбрасываются в 0, с тем чтобы механизм выталкивания оказался в исходном состоянии, а затем снова разрешается установка этих битов-признаков в 1 обычным образом при обращениях. Правда, в этом случае существует опасность того, что могут быть вытолкнуты даже активные страницы, однако только в течение короткого периода после сброса битов-признаков, поскольку почти немедленно биты-признаки обращений для этих страниц будут снова установлены в 1.
Описанный выше алгоритм NUR предусматривает существование четырех групп страниц:
Группа 1
обращений не было
модификаций не было
Группа 2
обращений не было
модификация была
Группа 3
обращения были
модификаций не было
Группа 4
обращения были
модификация была
Страницы групп с меньшими номерами следует выталкивать в первую очередь, а с большими – в последнюю. Отметим, что группа 2 означает на первый взгляд нереальную ситуацию, она включает страницы, к которым как бы не было обращений, но они оказались модифицированными. В действительности это просто результат того, что биты-признаки обращения (но не биты-признаки модификации) периодически сбрасываются, т.е. подобная ситуация вполне возможна.
Формулировка задачи
Виртуальная память имеет объем 1000 страниц. В оперативной памяти имеется 10 страниц, о которых известна информация, приведенная в таблице 2. Определить состояние оперативной памяти после выполнения последовательности обращений, заданных в таблице 5. Алгоритм замещения страниц также задан в таблице 3. Номер варианта определяется по последней цифре зачетной книжки.
Пример решения
Пусть в оперативной памяти находится 10 из 1000 страниц виртуальной памяти:
№
№ вирт. страницы
Обращение в посл. время
Модификация
0
5
0
1
1
15
0
1
2
7
1
0
3
116
1
0
4
219
0
0
5
12
0
1
6
314
1
0
7
25
1
1
8
117
1
1
9
262
1
0
Определить состояние оперативной памяти после выполнения следующей последовательности обращений: 7 (Запись), 251 (Чтение), 46 (запись) при использовании алгоритма NUR.
Страница 7 уже находится в оперативной памяти. Так как осуществляется процесс записи данных бит модификации устанавливается в 1.
№
№ вирт. страницы
Обращение в посл. время
Модификация
0
5
0
1
1
15
0
1
2
7
1
0(1
3
116
1
0
4
219
0
0
5
12
0
1
6
314
1
0
7
25
1
1
8
117
1
1
9
262
1
0
Страница 251 в оперативной памяти отсутствует. Все страницы заняты, поэтому согласно алгоритму NUR для замещения выбираем страницу 219.
№
№ вирт. страницы
Обращение в посл. время
Модификация
0
5
0
1
1
15
0
1
2
7
1
1
3
116
1
0
4
219(251
0(1
0
5
12
0
1
6
314
1
0
7
25
1
1
8
117
1
1
9
262
1
0
Страница 46 в оперативной памяти отсутствует. В оперативной памяти отсутствуют немодифицированные страницы к которым не было обращения. Согласно алгоритму NUR для замещения выбираем страницу 5, так как к ней не было обращения в последнее время.
№
№ вирт. страницы
Обращение в посл. время
Модификация
0
5(46
0(1
1
1
15
0
1
2
7
1
1
3
116
1
0
4
251
1
0
5
12
0
1
6
314
1
0
7
25
1
1
8
117
1
1
9
262
1
0
Задание для самостоятельной работы
Виртуальная память имеет объем 1000 страниц. В оперативной памяти имеется 10 страниц, о которых известна информация, приведенная в таблице 2. Определить состояние оперативной памяти после выполнения последовательности обращений, заданных в таблице 3. Алгоритм замещения страниц также задан в таблице 3. Номер варианта определяется по последней цифре зачетной книжки.
Таблица 2 – Размещение и характеристики страниц в оперативной памяти для задачи 2
№
№ вирт. страницы
Время пребывания
(последнего использования для LRU)
Количество обращений
Обращение в посл. время
Модификация
0
5
3
3
1
1
1
15
8
8
1
1
2
7
1
4
0
0
3
14
6
1
1
0
4
18
12
2
0
0
5
22
4
5
0
0
6
24
15
4
1
1
7
16
11
3
0
0
8
9
4
2
1
1
9
22
8
4
1
0
Таблица 3 – Последовательность и вид обращений к страницам для задачи 2
Вариант
Алгоритм
Номер страницы
Вид обращения
1
NUR
49
Запись
22
Запись
18
Чтение
67
Запись
Виртуальная память имеет объем 1000 страниц. В оперативной памяти имеется 10 страниц, о которых известна информация, приведенная в таблице 2. Определить состояние оперативной памяти после выполнения последовательности обращений, заданных в таблице 3. Алгоритм замещения страниц также задан в таблице 3. Номер варианта определяется по последней цифре зачетной книжки.
Таблица 2 – Размещение и характеристики страниц в оперативной памяти для задачи 2
№
№ вирт. страницы
Время пребывания
(последнего использования для LRU)
Количество обращений
Обращение в посл. время
Модификация
0
5
3
3
1
1
1
15
8
8
1
1
2
7
1
4
0
0
3
14
6
1
1
0
4
18
12
2
0
0
5
22
4
5
0
0
6
24
15
4
1
1
7
16
11
3
0
0
8
9
4
2
1
1
9
22
8
4
1
0
Таблица 3 – Последовательность и вид обращений к страницам для задачи 2
Вариант
Алгоритм
Номер страницы
Вид обращения
2
LFU
29
Чтение
5
Запись
15
Чтение
6
Запись
Виртуальная память имеет объем 1000 страниц. В оперативной памяти имеется 10 страниц, о которых известна информация, приведенная в таблице 2. Определить состояние оперативной памяти после выполнения последовательности обращений, заданных в таблице 3. Алгоритм замещения страниц также задан в таблице 3. Номер варианта определяется по последней цифре зачетной книжки.
Таблица 2 – Размещение и характеристики страниц в оперативной памяти для задачи 2
№
№ вирт. страницы
Время пребывания
(последнего использования для LRU)
Количество обращений
Обращение в посл. время
Модификация
0
5
3
3
1
1
1
15
8
8
1
1
2
7
1
4
0
0
3
14
6
1
1
0
4
18
12
2
0
0
5
22
4
5
0
0
6
24
15
4
1
1
7
16
11
3
0
0
8
9
4
2
1
1
9
22
8
4
1
0
Таблица 3 – Последовательность и вид обращений к страницам для задачи 2
Вариант
Алгоритм
Номер страницы
Вид обращения
3
NUR
22
Запись
14
Запись
48
Чтение
57
Чтение
Виртуальная память имеет объем 1000 страниц. В оперативной памяти имеется 10 страниц, о которых известна информация, приведенная в таблице 2. Определить состояние оперативной памяти после выполнения последовательности обращений, заданных в таблице 3. Алгоритм замещения страниц также задан в таблице 3. Номер варианта определяется по последней цифре зачетной книжки.
Таблица 2 – Размещение и характеристики страниц в оперативной памяти для задачи 2
№
№ вирт. страницы
Время пребывания
(последнего использования для LRU)
Количество обращений
Обращение в посл. время
Модификация
0
5
3
3
1
1
1
15
8
8
1
1
2
7
1
4
0
0
3
14
6
1
1
0
4
18
12
2
0
0
5
22
4
5
0
0
6
24
15
4
1
1
7
16
11
3
0
0
8
9
4
2
1
1
9
22
8
4
1
0
Таблица 3 – Последовательность и вид обращений к страницам для задачи 2
Вариант
Алгоритм
Номер страницы
Вид обращения
4
LRU
19
Запись
72
Запись
9
Запись
51
Чтение
Виртуальная память имеет объем 1000 страниц. В оперативной памяти имеется 10 страниц, о которых известна информация, приведенная в таблице 2. Определить состояние оперативной памяти после выполнения последовательности обращений, заданных в таблице 3. Алгоритм замещения страниц также задан в таблице 3. Номер варианта определяется по последней цифре зачетной книжки.
Таблица 2 – Размещение и характеристики страниц в оперативной памяти для задачи 2
№
№ вирт. страницы
Время пребывания
(последнего использования для LRU)
Количество обращений
Обращение в посл. время
Модификация
0
5
3
3
1
1
1
15
8
8
1
1
2
7
1
4
0
0
3
14
6
1
1
0
4
18
12
2
0
0
5
22
4
5
0
0
6
24
15
4
1
1
7
16
11
3
0
0
8
9
4
2
1
1
9
22
8
4
1
0
Таблица 3 – Последовательность и вид обращений к страницам для задачи 2
Вариант
Алгоритм
Номер страницы
Вид обращения
5
NUR
6
Запись
28
Чтение
49
Запись
14
Чтение
Виртуальная память имеет объем 1000 страниц. В оперативной памяти имеется 10 страниц, о которых известна информация, приведенная в таблице 2. Определить состояние оперативной памяти после выполнения последовательности обращений, заданных в таблице 3. Алгоритм замещения страниц также задан в таблице 3. Номер варианта определяется по последней цифре зачетной книжки.
Таблица 2 – Размещение и характеристики страниц в оперативной памяти для задачи 2
№
№ вирт. страницы
Время пребывания
(последнего использования для LRU)
Количество обращений
Обращение в посл. время
Модификация
0
5
3
3
1
1
1
15
8
8
1
1
2
7
1
4
0
0
3
14
6
1
1
0
4
18
12
2
0
0
5
22
4
5
0
0
6
24
15
4
1
1
7
16
11
3
0
0
8
9
4
2
1
1
9
22
8
4
1
0
Таблица 3 – Последовательность и вид обращений к страницам для задачи 2
Вариант
Алгоритм
Номер страницы
Вид обращения
6
LFU
13
Запись
22
Запись
25
Чтение
58
Запись
Виртуальная память имеет объем 1000 страниц. В оперативной памяти имеется 10 страниц, о которых известна информация, приведенная в таблице 2. Определить состояние оперативной памяти после выполнения последовательности обращений, заданных в таблице 3. Алгоритм замещения страниц также задан в таблице 3. Номер варианта определяется по последней цифре зачетной книжки.
Таблица 2 – Размещение и характеристики страниц в оперативной памяти для задачи 2
№
№ вирт. страницы
Время пребывания
(последнего использования для LRU)
Количество обращений
Обращение в посл. время
Модификация
0
5
3
3
1
1
1
15
8
8
1
1
2
7
1
4
0
0
3
14
6
1
1
0
4
18
12
2
0
0
5
22
4
5
0
0
6
24
15
4
1
1
7
16
11
3
0
0
8
9
4
2
1
1
9
22
8
4
1
0
Таблица 3 – Последовательность и вид обращений к страницам для задачи 2
Вариант
Алгоритм
Номер страницы
Вид обращения
7
NUR
19
Запись
22
Чтение
29
Чтение
41
Чтение
Виртуальная память имеет объем 1000 страниц. В оперативной памяти имеется 10 страниц, о которых известна информация, приведенная в таблице 2. Определить состояние оперативной памяти после выполнения последовательности обращений, заданных в таблице 3. Алгоритм замещения страниц также задан в таблице 3. Номер варианта определяется по последней цифре зачетной книжки.
Таблица 2 – Размещение и характеристики страниц в оперативной памяти для задачи 2
№
№ вирт. страницы
Время пребывания
(последнего использования для LRU)
Количество обращений
Обращение в посл. время
Модификация
0
5
3
3
1
1
1
15
8
8
1
1
2
7
1
4
0
0
3
14
6
1
1
0
4
18
12
2
0
0
5
22
4
5
0
0
6
24
15
4
1
1
7
16
11
3
0
0
8
9
4
2
1
1
9
22
8
4
1
0
Таблица 3 – Последовательность и вид обращений к страницам для задачи 2
Вариант
Алгоритм
Номер страницы
Вид обращения
8
LRU
17
Запись
23
Чтение
15
Чтение
5
Чтение
Виртуальная память имеет объем 1000 страниц. В оперативной памяти имеется 10 страниц, о которых известна информация, приведенная в таблице 2. Определить состояние оперативной памяти после выполнения последовательности обращений, заданных в таблице 3. Алгоритм замещения страниц также задан в таблице 3. Номер варианта определяется по последней цифре зачетной книжки.
Таблица 2 – Размещение и характеристики страниц в оперативной памяти для задачи 2
№
№ вирт. страницы
Время пребывания
(последнего использования для LRU)
Количество обращений
Обращение в посл. время
Модификация
0
5
3
3
1
1
1
15
8
8
1
1
2
7
1
4
0
0
3
14
6
1
1
0
4
18
12
2
0
0
5
22
4
5
0
0
6
24
15
4
1
1
7
16
11
3
0
0
8
9
4
2
1
1
9
22
8
4
1
0
Таблица 3 – Последовательность и вид обращений к страницам для задачи 2
Вариант
Алгоритм
Номер страницы
Вид обращения
9
NUR
59
Чтение
94
Запись
18
Чтение
22
Запись
Виртуальная память имеет объем 1000 страниц. В оперативной памяти имеется 10 страниц, о которых известна информация, приведенная в таблице 2. Определить состояние оперативной памяти после выполнения последовательности обращений, заданных в таблице 3. Алгоритм замещения страниц также задан в таблице 3. Номер варианта определяется по последней цифре зачетной книжки.
Таблица 2 – Размещение и характеристики страниц в оперативной памяти для задачи 2
№
№ вирт. страницы
Время пребывания
(последнего использования для LRU)
Количество обращений
Обращение в посл. время
Модификация
0
5
3
3
1
1
1
15
8
8
1
1
2
7
1
4
0
0
3
14
6
1
1
0
4
18
12
2
0
0
5
22
4
5
0
0
6
24
15
4
1
1
7
16
11
3
0
0
8
9
4
2
1
1
9
22
8
4
1
0
Таблица 3 – Последовательность и вид обращений к страницам для задачи 2
Вариант
Алгоритм
Номер страницы
Вид обращения
10
LRU
6
Чтение
12
Запись
14
Чтение
93
Запись
Письменный опрос по теме алгоритм замещения страниц
1. Важнейшим ресурсом, требующим тщательного управления со стороны мультипрограммной операционной системы, является ____________________
2. RANDOM – это _______________________________________________
____________________________________________________________________________________________________________________________________________________________________________________________________________
3. FIFO – это _________________________________________________
____________________________________________________________________________________________________________________________________________________________________________________________________________
4. Отличием алгоритма LRU и LFU является то, что ___________________
______
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·5. NUR – это ____________________________________________________
____________________________________________________________________________________________________________________________________________________________________________________________________________
6. Реализация стратегии алгоритма NUR предусматривает введение двух аппаратных битов – признаков на страницу. Это:
____________________________________________________________________________________________________________________________
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·7. Алгоритм NUR предусматривает существование четырех групп страниц. Это:
______________________________________________________________________________________________________________________________________________________________________________________
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·Практическая работа №6
Тема: «Исследование функции API для запуска процессов» (2 часа)
ЦЕЛЬ РАБОТЫ: Выполнить исследование функции API для запуска процессов
Заполните пропуски
WindowsAPI (Application Programming Interface) - ______________________
________
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
АРI состоит из большого количества динамических библиотек и содержит множество функций, которые прикладные программы могут использовать для взаимодействия с операционной системой. Каждая операционная система реализует различную подмножество Windows API.
АРI выполняет роль связующего звена между приложениями и операционной системой. Windows API содержит несколько тысяч функций, сгруппированы в следующие основные категории:
____________________________________________________________________________________
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
АРI содержит совокупность функций, которые доступны программистам при разработке программ - их называют _________________________________________ К ним относятся ____________
________________________________________________________________________________________________________________________________________
Функции ядра - _______________________________________________
____________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________
К службам относятся процессы, которые запускаются диспетчером управления служб. Они, как правило, работают в фоновом режиме независимо от других приложений и предназначенны для обслуживания определенных потребностей пользователя или системы. Например, служба Task Scheduler-планировщик, который позволяет управлять запуском других программ.
Windows содержит большой набор функций (подпрограмм), объединенных в отдельные бинарные файлы, которые программы могут динамически загружать во время своего выполнения. Такие библиотеки функций называют ________________________________________________________________________________________________________________________________________
Различные программные механизмы, которые операционная система предоставляет программистам для выполнения определенных действий, называют также сервисами, поскольку они предназначены для обслуживания различных потребностей пользователя системы. К таким сервисам относятся ___________________________________ Отдельное подмножество составляют неуправляемые системные сервисы (или исполнительные системные сервисы). Они охватывают недокументированные низкоуровневые сервисы операционной системы, которые можно вызвать в пользовательском режиме.
Когда в среде Windows запускается прикладная программа, система создает специальный объект - ___________________________, - который ________________________________________________________________________________________________. Может показаться, что программа и процесс - понятие похожие, они фундаментально отличаются. Программа - _____________________________________________________, а процесс - ________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________
Известная утилита для анализа активности процессов-системный Task Manager (_________________________________________). В ядре Windows нет такого понятия, как задачи, поэтому Task Manager
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·–
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·Диспетчер задач Windows отображает список активных процессов. Его можно запустить различными способами:
_______________________________________________________________________________________________________________________________________________________
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·_В этом окне процессы идентифицируются по имени образа, экземплярами которого они являются. В отличие от других объектов в Windows процессам нельзя присваивать глобальные имена.
Если вкладка Processes окна диспетчера задач показывает список процессов, то содержание вкладки Applications (приложения) отображает список видимых окон верхнего уровня всех объектов "рабочий стол" интерактивного объекта WindowStation. Столбик Status (состояние) ________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________. Состояние "Running" ("выполняется") _____________________________________________________________________________________________________________________________________________________________________________________________________________________________________, a Not Responding ("не отвечает ") - _____________________________________
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·Вкладка Applications позволяет _________________________________________________________________________________________________________________________________________________________________________________________________________________________________
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·–
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
· \* MERGEFORMATINET 1415
Для предотвращения доступа приложений к критически важным данным операционной системы и устранения риска их модификации Windows использует два режима доступа к процессору (даже если он поддерживает более двухрежимов): ___________________________________________________________________. Код программ работает в ___________________________________________, тогда как код операционной системы (например, системные сервисы и драйверы устройств) - в _____________________________. В режиме ядра предоставляется доступ ко всей системной памяти и разрешается выполнять любые машинные команды процессора.
Прикладные программы ________________________________________
_______________________________________________________________________________________________________________________________________________________________________________________________________________________________________________. Переключение с пользовательского режима в режим ядра осуществляется __________________________________
________________________________________________________________________. Операционная система __________________________________________
____________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________. Перед возвращением управления пользовательскому потоку процессор переключается обратно в пользовательский режим. Благодаря этому операционная система ____________________________________________ ____________________________________________________________________________________________________________________________________________________________________________________________________________.
Поэтому ситуация, когда пользовательский поток часть времени работает в пользовательском режиме, а часть - в режиме ядра, обычная. Поскольку подсистема, отвечающая за поддержку графики и окон, функционирует в режиме ядра, то программы, интенсивно работающих с графикой, большую часть времени действуют в режиме ядра, а не в пользовательском режиме. Самый простой способ проверить это – ________________________________
______________________________________________________________________________________________________________________________________________________________________________________________________________________
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·–
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
Часть 2. Практические задания в диспетчере задач.
Задание 1. Просмотр состояния процессов через диспетчер задач.
Просмотр и анализ взаимосвязей процессов и потоков.
Запустите диспетчер задач. Переключитесь на закладку Процессы. В меню Вид выберите пункт Выбрать столбцы и укажите столбцы согласно рисунка 1. Сделайте скриншот вашей работы и сохраните его под именем «Рисунок 1. Выбор столбцов диспетчера задач»
Рисунок 1. Выбор столбцов диспетчера задач
Потом определите сколько процессов запущено системой. Для этого я передите на закладку Быстродействие и в меню Вид выберите пункт Загрузка ЦП. (см. рис.2) Например: из рисунка мы видим что системой запущено 53 процесса, загрузка ЦП колеблется от 3-5%, файл подкачки загружен на 931 МБ. Сделайте скриншот вашей работы и сохраните его под именем «Рисунок 2. Диспетчер задач. Вкладка "Быстродействие"»
Рисунок 2. Диспетчер задач. Вкладка "Быстродействие"
Теперь запускаем приложение Paint и смотрим на изменения ЦП. Например в примере: загрузка ЦП колеблется в пределах 1-4%, файл подкачки загрузился на 942 МБ. Если сравнить объёмы используемого файла подкачки и доступной физической памяти, то можно сделать вывод что в сумме они дают общий объем физической памяти. (см. рис.3).
Рисунок 3. Результат после запуска приложения Paint
Сделайте скриншот вашей работы и сохраните его под именем «Рисунок 3. Результат после запуска приложения Paint». Напишите в каких пределах колеблется загрузка ЦП, как изменился файл подкачки.
Просмотр времени работы системы в пользовательском режиме и режиме ядра.
Переключитесь на закладку Быстродействие и в меню Вид выберите пункт Вывод времени ядра (см. Рисунок 4). Быстро прокручиваем страницы любого текстового документа. На индикаторе Загрузка ЦП процент работы процессора в пользовательском режиме отражается зеленым цветом, в режиме ядра красным. Из рисунка четко видны изменения работы процессора при прокрутке страниц.
Рисунок 4. Состояние системы при прокрутке страниц
Сделайте скриншот вашей работы и сохраните его под именем «Рисунок 4. Состояние системы при прокрутке страниц»
Задание 2. Просмотр сведений о поддержке многопроцессорных систем.
Согласно следующему заданию откройте диспетчер устройств (Пуск – Панель управления – Диспетчер устройств). В списке устройств раскройте узел Компьютер. В окне свойств (Правой кнопкой свойства) перейдите на закладку Драйвер и с помощью кнопки Сведения просмотрите сведения о файлах драйверов (см. Рисунок 5).
Рисунок 5. Сведения о файлах поддержки многопроцессорных систем
Сделайте скриншот вашей работы и сохраните его под именем «Рисунок 5. Сведения о файлах поддержки многопроцессорных систем»
Задание 3. Изучение отношения процессов родитель-потомок
1. Запустите командную строку (Пуск – Все программы – Стандартные – Командная строка)
2. Потом наберите start cmd для запуска второго окна командной строки.
Рисунок 6. Запуск окон командной строки
Сделайте скриншот вашей работы и сохраните его под именем «Рисунок 6. Запуск окон командной строки»
3. Далее я откройте диспетчер задач.
4. Переключился на второе окно командной строки.
5. Ввел mspaint для запуска Microsoft Paint.
Рисунок 7. Запуск приложения Paint
Сделайте скриншот вашей работы и сохраните его под именем «Рисунок 7. Запуск приложения Paint»
6. Потом выберите второе окно командной строки.
7. Ввел команду exit, тем самым завершив работу второго окна.
Сделайте скриншот вашей работы и сохраните его под именем «Рисунок 8. Завершение работы второго окна»
8. Потом переключитесь в диспетчер задач. Откройте его вкладку Приложения. Щелкнул правой кнопкой мыши задачу Командная строка (cmd.exe) и выбрал Перейти к процессу.
Рисунок 9. Диспетчер задач. Переход к процессу cmd.exe
Сделайте скриншот вашей работы и сохраните его под именем «Рисунок 9. Диспетчер задач. Переход к процессу cmd.exe»
11. Щелкните процесс Cmd.exe, выделенный цветом.
12. Щелкнув правой кнопкой мыши, выберите команду Завершить дерево процессов.
13. В окне Предупреждение диспетчера задач щелкните кнопку Завершить дерево процессов.
Рисунок 10. Диспетчер задач. Переход к процессу cmd.exe
Первое окно командной строки исчезнет, но окно Paint по прежнему работает.
Сделайте скриншот вашей работы и сохраните его под именем «Рисунок 10. Диспетчер задач. Переход к процессу cmd.exe»
Задание 4. Увеличение быстродействия Windows
1. Откройте Диспетчер Задач нажатием (Ctrl+Alt+Del)
Перейдите на вкладку Процессы, щелкните прав на строке Explorer.exe и в контекстном меню выберите команду Завершить Процесс. Опишите в отчете, что вы видите на экране и почему.
______________________________________________
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·__________________________________________________________________________________________________________________________
2. Закройте окно Диспетчера Задач завершив процесс taskmgr.exe. Внесите в отчет сведения: работает ли компьютер, загружена ли ОС, реагирует ли система на манипуляции мышью, на нажатие клавиш? Почему?
____________________________________________________________________________________________________________________________________________________________________________________________
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·____________________________________________________________________________________________________________________
3. Нажмите (Ctrl+Alt+Del) и снова откройте Диспетчер Задач
4. Перейдя на вкладку Приложения, нажмите кнопку Новая задача
5. В окне Создать Новую Задачу наберите Explorer и нажмите OK.
6. Опишите в отчете, что вы видите. Почему система не отвечала ни на какие клавиши, но среагировала на (Ctrl+Alt+Del)?
___________________________________________________________________________________________
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·_________
Если операционная система загружается достаточно быстро, но с момента появления на экране Рабочего стола до полной готовности к работе проходит большое количество времени (горят песочные часы или кольцо), возможно в списке автоматической загрузки содержится большое количество программ. Это может быть причиной замедления работы компьютера, т.к. каждая запущенная программа занимает некоторое количество оперативной памяти и использует ресурсы процессора.
Избавиться от них можно следующими способами:
удалив лишние программы из папки Автозагрузка главного меню Windows
удалив лишние программы из меню Настройка системы
отключив различные «украшения» и визуальные эффекты
отключить лишние резидентные программы
!!!Внимание!!!
Не удаляйте из автозагрузки программы, которые следят за состоянием вашей системы, антивирусные программы или необходимые вам утилиты.Значительную роль в быстродействии компьютера размер и положение файла подкачки. Файл подкачки – это специальный файл, расположенный на жестком диске, который дополняет объем оперативной памяти. Если в процессе работы запущено несколько программ одновременно, то для всех может не хватить места в оперативной памяти. Неактивные программы при этом копируются в файл подкачки. При обращении к этим программам они вновь возвращаются в ОП. По умолчанию файл подкачки создается в корневом каталоге диска, на котором установлена ОС и называется pagefile.sys.
!!!Внимание!!!
Самостоятельно не изменять положение и размеры файла подкачкиЧтобы посмотреть, какие программы запущены в данный момент на компьютере, как используется память и как нагружен процессор, следует воспользоваться Диспетчером задач Windows.
В «чистой» ОС Windows XP должно быть запущено 17 – 19 процессов. Остальное – запущенные приложения и резидентные программы. Понять, какие процессы относятся к ОС можно по имени исполняемого файла программы. К системным однозначно относятся csrss, explorer, lsass, services, smss, spoolsv, svchost, system, winlogon. Что означают имена других процессов не всегда ясно. Иногда имя образа совпадает с названием программы, а иногда нет. Можно осуществить эксперимент: завершить процесс и посмотреть, какая программа прекратит работать.
!!!Внимание!!!
Самостоятельно не завершайте никакие процессы. Если после окончания работы будут обнаружены проблемы в работе компьютера, оценка за лабораторную работу будет снижена.
7. Автозагрузка:
Нажать кнопку Пуск на Панели задач и войти в Главное Меню Windows.
Выбрать Все программы/ Автозагрузка
Удалить из списка автозагрузки лишние программы, щелкнув правой кнопкой мыши и выбрав Удалить.
Если список автозагрузки пуст – внесите в него какую-нибудь программу. Запишите, что вы включили в автозагрузку.
Для добавления в список: Пуск/Автозагрузка, щелкнуть правой кнопкой мыши Свойства/Папка/Найти Папку/Автозагрузка, перетащить ярлык программы.
Нажать кнопку Пуск/ Выполнить. В окне Запуск программы ввести команду msconfig и нажать OK. На экране появится окно Настройка системы
Перейти на вкладку Автозагрузка
Снять флажки слева о названий программ, которые вы хотите удалить из списка автоматически загружаемых. Записать их названия.
Перезагрузить компьютер
На папке Компьютер щелкнуть ПКМ и выбрать Свойства/ Дополнительные параметры системы/ Быстродействие/ Параметры (на вкладке Визуальные Эффекты)
Снять флажки слева от названий эффектов, которые вы хотите отключить. Записать их названия.
На папке Компьютер щелкнуть ПКМ и выбрать Свойства/ Дополнительные параметры системы
Быстродействие/ Параметры (на вкладке Дополнительно).
Нажмите кнопку Изменить
В окне Виртуальная память посмотреть, где располагается файл подкачки, каковы его размеры
Открыть Диспетчер задач Windows
Перейти на вкладку Быстродействие. Здесь отображается использование вычислительной мощности процессора и файла подкачки, а также сведения о распределении физической памяти. Записать данные о физической памяти
Перейти на вкладку Процессы. Здесь перечислены основные процессы, которые выполняются в данный момент, показано, как они используют оперативную память и ресурсы процессора.
Составить и сдать отчет о проведенной работе:
Дата проведения работы, фамилия, номер задания, номер компьютера;
Сделайте записи, о которых шла речь в описании к работе 7. Автозагрузка (опишите все что вы делали в пунктах 1-18). Для этого воспользуйтесь строчками под текстом.
Критерии оценки:
Организованность проведения работ;
Точность исполнения инструкций;
Полнота и развернутость отчета.
________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________
Практическая работа №7
Тема: «Исследование API-функции Windows для управления памятью» (2 часа)
1. ЦЕЛЬ РАБОТЫ: Изучение организации памяти и функций управления памятью, приобретение практических навыков использования этих функций в прикладных программах.
2. ОСНОВНЫЕ СВЕДЕНИЯ
2.1. Функции управления памятью операционной системы
Память – важнейший ресурс вычислительной системы. Память распределяется между модулями прикладных программ и модулями самой операционной системы. Основные функции ОС по управлению памятью:
§ контроль свободной и занятой памяти;
§ выделение памяти процессам и освобождение памяти при завершении процесса;
§ настройка адресов программы на конкретные адреса физической памяти;
§ динамическое распределение памяти во время исполнения программы;
§ вытеснение кодов программы и данных из оперативной памяти (ОП) на диск, когда размера ОП недостаточно для выполнения процессов и возвращение их в память, когда в ней освобождается место;
§ защита памяти, которая не должна позволять выполняемому процессу записывать или читать данные из памяти, выделенной другому процессу.
Возможны также дополнительные функции, например, дефрагментация памяти и др. Организация и стратегии управления памятью различны для однопользовательских, многопользовательских, многозадачных ОС и ОС реального времени.
2.2. Динамическое распределение памятью в языках С и С++
Каждой переменной (объекту) память может выделяться статически в момент загрузки программы или динамически – в процессе исполнения программы. Статические переменные хранятся в области данных программы или в стековой памяти. Динамическое распределение используется для экономии памяти как ресурса. Переменные, массивы или объекты, которые по ходу исполнения программы становятся ненужными, уничтожаются, а освобожденная память может быть использована для новых переменных или объектов.
Для динамического распределения выделяется специальная область свободной памяти – heap (куча). В программах на языках С и С++ динамическое выделение памяти производится с помощью библиотечных функций malloc, calloc, realloc или оператора new. Освобождение выделенной памяти осуществляется функцией free или операцией delete. Примеры, демонстрирующие использование вышеприведенных функций для динамического выделения и освобождения памяти, приведены в Приложении 1 и Приложении 2.
2.3. Управление памятью в операционной системе MS-DOS
MS-DOS – наиболее распространенная однозадачная ОС. Верхняя граница доступной памяти для приложений MS-DOS – 640 Кбайт, из которых примерно 60 Кбайт занято ОС. Такое ограничение предела доступной памяти – один из основных недостатков MS-DOS.
MS-DOS поддерживает несвязное распределение ОП. При этом программа может размещаться в основной памяти в нескольких блоках, необязательно соседних. Размер блока задается в параграфах (16 байт). Для контроля распределения памяти MS-DOS использует блоки управления памятью (Memory Conrol Block, MCB). В этой структуре размером 16 байт, располагаемой перед выделенным блоком, хранится размер блока, сегментный адрес программы-владельца и тип блока (последний или промежуточный блок). Распределение памяти в конкретном сеансе работы можно проследить по связанному списку блоков MCB.
Для управления памятью MS-DOS использует функции 48h, 49h и 4Ah прерывания INT 21h. Функция 48h предназначена для выделения блока памяти, например, при загрузке программы в память. При обращении функция требует указания в регистре AH номера функции (AH = 48h), в регистре BX – количества затребованных параграфов памяти. Если функция выполнена успешно, то в регистре флагов процессора флаг CF = 0 и в регистре АХ возвращается адрес сегмента выделенной памяти. Если при выполнении функции произошла ошибка, то CF = 1 в регистре AX устанавливается код ошибки, а в регистре BX– размер наибольшего доступного блока памяти.
Функция 49h служит для освобождения специфицированного блока памяти. Её интерфейс: при вызове AH = 49h, ES – адрес сегмента освобождаемой памяти. Возврат функции при успешном выполнении: CF = 0, при ошибке CF =1, AX = код ошибки.
Функция 4Ah INT 21h позволяет произвести изменение размера выделенного функцией 48h блока памяти. Её входные параметры: AH = 4Ah, BX = требуемый размер блока памяти в параграфах, ES = сегментный адрес модифицируемого блока памяти. При ошибке функция возвращает CF = 1, в регистрах AX = код ошибки, BX = размер наибольшего доступного блока памяти.
В Приложении 3 приведена программа, демонстрирующая использование функций MS-DOS для управления динамической памятью. В программе для обращения к функциям MS-DOS использован встроенный ассемблерный код; возможно также обращение к системным вызовам на языке С с помощью специальных функций компилятора, например, с помощью библиотечной функции intdos (заголовочный файл dos.h) компилятора Borland C++.
2.4. Управление памятью в операционной системе Windows
Windows, как и многие другие операционные системы, поддерживает виртуальную память. Размер виртуальной памяти намного превосходит имеющуюся в системе реальную оперативную память за счет использования части дискового пространства. Размер этой области диска (pagingfile) можно изменять.
Адреса, на которые делает ссылки выполняющийся процесс, являются виртуальными адресами. Диапазон виртуальных адресов процесса называется виртуальным адресным пространством. Каждый процесс имеет собственное независимое виртуальное адресное пространство. Для Windows, как 32-разрядной системы, этот диапазон имеет границы от 0000000016 до FFFFFFFF16. Диапазон реальных адресов, существующих в конкретной вычислительной системе, составляет пространство реальных (физических) адресов. Процессы при исполнении обращаются только к виртуальным адресам. Виртуальные адреса преобразовываются в реальные адреса физической памяти.
Работа виртуальной памяти происходит медленнее, поскольку коды и данные программ хранятся на диске и при необходимости загружаются в реальную оперативную память. Преобразование виртуальных адресов в реальные осуществляется аппаратно с использованием так называемого механизма MMU (Memory Management Unit – устройство управления памятью). MMU использует страничную виртуальную память, при которой перемещение данных между памятью и дисками выполнятся страницами – небольшими блоками размером 4 Кбайт.
Виртуальная и оперативная память делятся на страницы равного размера. Виртуальный адрес представляется в виде пары (p, si), где p – порядковый номер виртуальной страницы, si – смещение на странице. Аналогично в виде пары (n, sk) адресуется физический адрес. При каждом обращении к памяти выполняется поиск виртуальной страницы, содержащей требуемый адрес. Если нужной виртуальной страницы в оперативной памяти нет, то происходит страничное прерывание и нужная страница загружается с диска в физическую память. Предварительно, если в памяти нет свободной физической страницы, то с помощью специальной стратегии (алгоритма) замещения одна или несколько из невостребованных в данный момент физических страниц выгружается на диск.
Операционная система и аппаратные средства поддержки виртуальной памяти компьютера осуществляют размещение данных в оперативной памяти и на дисках, выбор образов процессов или их частей для перемещения из оперативной памяти и обратно, перемещение данных между физической памятью и дисками, преобразование виртуальных адресов в физические.
Для управления работой MMU служит функция API Windows VirtualAlloc. Это основной способ управления памятью в Win32. Функция резервирует или выделяет область страничной памяти в виртуальном адресном пространстве вызывающего функцию процесса. Память, выделяемая функцией, автоматически инициализируется нулем. Синтаксис функции:
LPVOIDVirtualAlloc(
LPVOID lpAddress, // адрес области памяти
DWORD dwSize, // размер области
DWORD flAllocationType, // тип выделения
DWORD flProtect // тип уровня защиты
).
Параметры функции
lpAddress - специфирует начальный адрес выделяемой памяти, если этот параметр имеет значение NULL, то сама ОС определяет адрес выделяемой памяти;
dwSize – определяет размер областив байтах, размер округляется до числа, кратного размеру страницы;
flAllocationType– определяет тип распределения памяти, параметр может принимать значения : MEM_COMMIT – выделение памяти, MEM_RESERVE – резервирует область памяти без выделения памяти, MEM_TOP_DOWN – выделяет память с самого старшего возможного адреса;
flProtect – определяет тип уровня защиты выделяемой памяти, в таблице 1 приведены допустимые значения констант уровня защиты.
Таблица 1. Константы уровня защиты
Константа
Значение
PAGE_READONLY
PAGE_READWRITE
PAGE_WRITECOPY
PAGE_EXECUTE
PAGE_EXECUTE_READ
PAGE_EXECUTE_READWRITE
PAGE_NOACCESS
PAGE_NOCACHE
PAGE_GUARD
Память выделяется только для чтения
Память выделяется для чтения и для записи
После окончания записи страница заменяется её новой копией
Разрешается исполнение программного кода, расположенного в выделяемой памяти
Разрешается исполнение программного кода и чтение данных
Разрешается исполнение программного кода, а также чтение и запись данных в выделяемой памяти
Запрещается любой доступ к выделенной памяти
Запрещается кэширование страниц
Страницы в выделяемой памяти становятся «сторожевыми» - режим «тревога_при_первом_обращении». При попытке чтения или записи данных в такой странице ОС инициирует исключение STATUS_GUARD_PAGE и сбрасывает статус сторожевой страницы
Чаще всего при выделении памяти используется значение PAGE_READWRITE. Функция VirtualAlloc позволяет не только выделить участок памяти, но и просто резервировать его. Если в третьем аргументе использовать флаг MEM_RESERVE, то функция только зарезервирует память, повторное обращение к VirtualAlloc с флагом MEM_COMMIT позволит выделить ту или иную часть из зарезервированного пространства. Однако нельзя повторно зарезервировать ранее зарезервированный участок памяти.
По сравнению с функцией malloc или оператором new функция VirtualAllocвозвращаетосвобождаемую память под контроль операционной системы и благодаря параметру flProtect обеспечиваетвыделенный блок памяти или его участки специальным атрибутом, например, только для чтения.
Для изменения уровня защиты страниц выделенного участка памяти можно использовать системный вызов VirtualProtect.
Функция VirtualQuery() служит для получения информации об уровне защиты некоторой страницы или набора страниц.
Функция VirtualFree() освобождает или отменяет выделение памяти , специфицированной вызовом VirtualAlloc(). Синтаксис этой функции:
BOOL VirtualFree(
LPVOID lpAddress, // адрес области памяти
DWORD dwSize, // размер области
DWORD dwFreeType // тип операции освобождения
).
Первые два параметра этой функции – те же, что и для функции VirtualAlloc(). Третий параметр dwFreeType определяет тип операции освобождения. Возможные значения этого параметра – MEM_DECOMMIT отменяет выделение региона памяти, но не отменяет резервирование, MEM_RELEASE освобождает специфицированный регион зарезервированной памяти, при этом параметр dwSize должен иметь значение 0.
Пример программы, демонстрирующей использование функции VirtualAlloc(), приведен в Приложении 4. Данная программа выводит простое меню. При выборе пункта 1 функция VirtualAlloc() выделит блок памяти запрашиваемого размера, а функция VirtualFree() освободит его. По умолчанию размер блока памяти, установленный константой MEMORYSIZE, равен 15 Мбайт. Размер выделяемой памяти можно также задать параметром командной строки при запуске программы. Если выбрать в меню пункт 2, то программа просто зарезервирует память требуемого размера, но не выделит её. При выборе пункта 3 программа резервирует память установленного размера и выделяет один мегабайт из зарезервированного объема.
Windows предоставляет ещё ряд системных вызовов для работы с несколькими кучами свободной памяти. Эти вызовы перечислены в таблице 2.
Таблица 2. Системные функции для работы с несколькими кучами свободной памяти
Функция
Назначение
HeapCreate
HeapAlloc
HeapDestroy
HeapFree
GetProcessHeap
HeapReAlloc
HeapSize
HeapValidate
Создание новой кучи
Выделение блока памяти в куче
Уничтожение кучи
Освобождение блока памяти в куче
Получение дескриптора стандартной кучи процесса
Изменение размера блока памяти, выделенного в куче
Возвращает размер блока памяти, выделенного в куче
Тестирует целостность кучи
Более детальные сведения о функциях, перечисленных в таблице 2 можно найти в справочной системе Help Windows API.
3. ЗАДАНИЕ И ПОРЯДОК ВЫПОЛНЕНИЯ РАБОТЫ
1. Ознакомьтесь с программами, приведенными в Приложениях 1 и 2. Если те или иные операторы (функции) для работы с динамической памятью в программах на языках С и С++ вызывают затруднения, то научитесь их практическому применению с помощью соответствующих программ.
2. Изучите функции ОС MS-DOS для управления памятью: 48h, 49h и 4Ah INT 21h. Составьте и выполните программу, в которой используются эти функции.
3. Изучите назначение и синтаксис основных функций Windows API для управления памятью: VirtualAlloc() и VirtualFree(). Ознакомьтесь с демонстрационным примером использованием этих функций в программе Приложения 4. Выполните программу с изменением её параметров.
4. Составьте и выполните программу по индивидуальному заданию.
5. Оформите отчет, проверьте подготовку по контрольным вопросам и защитите работу.
4. КОНТРОЛЬНЫЕ ВОПРОСЫ
1. Сформулируйте основные функции управления памятью операционной системы.
2. Каковы основные различия организации и управления памятью в многозадачных и однозадачных ОС?
3. Каким образом ОС MS-DOS поддерживает распределение памяти?
4. Поясните обращение к функциям 48h и 49h INT 21h в программах для MS-DOS.
5. Составьте и выполните программу, в которой для выделения и освобождения памяти используются функции malloc() и free().
6. Составьте и выполните программу, в которой для управления динамической памятью используются операторы new и delete.
7. Составьте и выполните программу, в которой с помощью функции 48h INT 21h выделяется память размером 256 байт, в неё вводится с клавиатуры символьная строка, которая затем записывается в файл и ранее выделенная память освобождается.
8. Объясните механизм функционирования виртуальной памяти.
9. Каковы особенности страничной организации виртуальной памяти?
10. Как осуществляется преобразование виртуального адреса в физический при страничной организации памяти?
11. Почему размер страницы в страничной виртуальной памяти выбирается равным степени два?
12. Объясните назначение и синтаксис функции VirtualAlloc().
13. Каким образом можно с помощью VirtualAlloc() зарезервировать память, а затем выделить её частями?
14. Поясните синтаксис функции VirtualFree().
15. Составьте и выполните программу, в которой с помощью функции VirtualAlloc() выделяется память и заполняется случайными числами.
16. Каковы преимущества и недостатки функции VirtualAlloc() по сравнению с обычными средствами языка С (С++) для управления динамической памятью?
5. ЛИТЕРАТУРА
1. Сетевые операционные системы / В.Г. Олифер, Н.А. Олифер. – СПб.: Питер, 2001,
стр. 162 – 212.
2. Вильямс А. Системное программирование в Windows 2000 для профессионалов. -
СПб.: Питер, 2001, стр.359 - 379
Приложение 1.
// Пример программы с использованием функций calloc()/free()
// для динамического выделения / освобождения памяти
#include
#include< alloc.h>
#include< conio.h>
#define COUNT 10
int main(void)
{
int *pBlock;
int i;
// Выделение памяти
if ((pBlock = (int*) malloc(COUNT*sizeof(int)))== NULL)
// Вариант
//if ((pBlock = (int*) calloc(COUNT,sizeof(int)))== NULL)
{
cout << "Ошибка выделения памяти!\n";
return 1;
}
// заполнение выделенной памяти
for (i=0; i *(pBlock+i) = i;
// Вывод на экран
for (i=0; i cout<< (*pBlock++) << '\n';
// освобождение памяти
cout << "Для освобождения памяти нажмите любую клавишу\n";
getch();
free(pBlock);
return 0;
}
Приложение 2.
// Пример динамического выделения памяти с использованием
// операций new/ delete
#include< iostream.h>
#include< conio.h>
#include< new.h>
// собственный обработчик ошибок выделения памяти
void newHandler()
{
cout<< "\n Inadequate memory!\n";
}
int main()
{
int *iptr, i;
// установка собственного обработчика ошибок
set_new_handler(newHandler);
// выделение памяти
iptr = new int[100];
// заполнение и вывод выделенного блока памяти
for (i=0; i<100; i++)
*(iptr+i)= 100-i;
for(i =0; i<100; i++)
cout<<*(iptr+i) << " ";
// Освобождение выделенного блока
delete[] iptr;
// выделение огромного блока памяти
long double *lptr;
if(lptr = new long double[1000000])
{
cout<< "\n Finished!"<<"\nPress any key";
getch();
delete[] lptr;
}
else
cout<< "\n Failure...";
return 0;
}
Приложение 3.
// Программа выделения памяти в ОС MS-DOS
// Программа выделяет блок памяти с помощью функции 48h INT 21h
// флаг CF=1 в случае неуспеха
// Освобождение памяти с помощью функции 49h
#include< stdio.h>
#include< conio.h>
#include< dos.h>
#define NUMPARAGR 32 // Число параграфов
main()
{
unsigned seg;// Адрес сегмента выделен. памяти
char *str;
printf(" Выделяем %d параграфов памяти\n", NUMPARAGR);
asm {
mov AH,48h
mov BX,NUMPARAGR
int 21h
jc error
mov seg,AX
}
puts(" Успешное выделение!\n");
str = (char *)MK_FP( seg,0); //получение полного адреса
printf("\nInput a string: ");
gets(str); //ввод строки по выделенному адресу
puts("\n Для освобождения памяти нажмите любую клавишу\n");
getch();
//Освобождение выделенной памяти
asm {
mov AH,49h
mov ES,seg
int 21h
}
return 0;
error: puts("Неудачное выделение...");
return 1;
}
Приложение 4.
// Программа, демонстрирующая использование функции API Windows
// VirtualAlloc() - резервирование и выделение памяти
#include
#include< iostream.h>
#define MEGABYTE 1048576
#define MEMORYSIZE 15
char *p=NULL;
// Размер резервируемой памяти в МВ может передаваться
//как параметр командной строки или устанавливаться равным MEMORYSIZE
void main(int argc, char *argv[
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·Вывод меню
cout<<"\n\n MENU\n\n";
cout<<"1 - Allocate "< cout<<"2 - Reserve "< cout<<"3 - Reserve "< cout<<"4 - Exit\n\n";
cout<<" YOUR CHOICE: ";
cin>> choice;
//Выбор команды
switch (choice)
{
case 1:
cout<<"\n Allocate memory\n";
p=(char*)VirtualAlloc(NULL, size*MEGABYTE,
MEM_COMMIT, PAGE_READWRITE);
break;
case 2
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
· cout<<"What-what?";
flag=0;
}
//Вывод начального адреса выделенного блока памяти
if (p&& flag)
cout<<"Block memory @ "< if(!p&& flag) cout<<"Failure allocation memory!\n";
} while (1);
}
Практическая работа №8
Тема: «Исследование методов обработки программных и аппаратных прерываний» (6 часов)
1. ЦЕЛЬ РАБОТЫ: Целями работы являются приобретение знаний о типах внутренних прерываний и флаговой логики процессора, источников возникновения внутренних прерываний, формирование навыков использования механизма внутренних прерываний при решении практических задач (приемы перехвата прерываний и передачи управления соответствующим системным обработчикам).
2. Анализ обработчика прерывания при делении на ноль
Задание:
Проанализируйте содержимое стандартного обработчика прерывания по ошибке операции деления. Т.е. проверьте, как реагирует операционная система, на переполнение при выполнении команды деления
mov ax, 11
mov bl, 0
div bl
ret
Листинг 2. Текст программы вызова обработчика деления на ноль
Выводы:
Как видно, данная программа пытается разделить число 11, занесенное в регистр ax на 0, занесенный в младший байт регистра bx. Продолжительность выполнения данной операции составляет 2 байта.
В результате выполнения программы на экране монитора возникает предупреждение об ошибке деления на ноль.
3. Замена стандартного обработчика int0 с помощью функций DOS
Задание:
Замените стандартный обработчик int0 на собственный, используя функции DOS для замены вектора прерывания и функцию 9h прерывания int021h (функция dos9) для иллюстрации работы вашего обработчика.
Рис. 3. Алгоритм последовательности действий
print macro
push ax, dx
lea dx, #1
mov ah, 9
int 021
pop dx, ax
#em
jmp start
_error db 'Warning: деление на ноль', 13, 10, '$'
n_vect equ 0
old_v dd ?
ddiv db 200 dup 0
start:
mov ax, 035 by n_vect ;сохранение вектора
int 021 ;es:bx
mov w old_v, bx
mov w old_v + 2, es
mov ax, 025 by n_vect ;установка нового вектора
lea dx, new ;ds:dx
int 021
Листинг 3. Текст программы PR_2.8 (начало)
mov ax, 11 ;деление на 0
mov bl, 0
nop
nop
div ddiv
mov ax, 025 by n_vect ;возврат старого вектора
mov dx, w old_v ;ds:dx
mov ds, w old_v+2
int 021
mov ds, cs ;возврат ds
int 020 ;выход
new: ;обработка прерывания
print _error
pop ax
add ax , 4
push ax
iret
Листинг 3. Текст программы PR_2.8 (окончание)
Выводы:
Данная программа заменяет стандартный обработчик прерывания int 0. При ее запуске на экран выдается надпись “'Warning: деление на ноль”. Вектор успешно сохраняется, о чем свидетельствует успешный запуск первой программы (инициирование деления на ноль).
При попадании в прерывание, в стек заносятся последовательно флаги, CS и IP. IP (instruction Pointer) указывает на месторасположение команды, вызвавшей прерывание. В нашем обработчике мы извлекаем это значение из стека и увеличиваем на 4. Затем снова заносим в стек и выходим из прерывания. Это сделано потому, что команда деления в данном случае занимает 4 байта, и если мы укажем значение меньше 4, то попадем в зону неопределенности для нас (в середину выполнения команды деления, например), но на вполне осознанную часть для процессора, который наверняка посчитает оставшиеся до 4 байты как коды команд и непременно их выполнит. По этой же причине опасно задавать значение, большее 4.
4. Модификация программы
Задание:
Преобразуйте вашу программу так, чтобы не применять функции DOS для получения и установки вектора прерываний int 0
print macro
push ax, dx
lea dx, #1
mov ah, 9
int 021
pop dx, ax
#em
jmp start
_error db 'Warning: деление на ноль', 13, 10, '$'
n_vect equ 0
old_v dd ?
start:
lea ax, new ;установка нового вектора
mov dx, cs ;сохранение старого
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·w old_v ;восстановление страрого вектора
mov dx, w old_v+2
es mov [n_vect*4], ax
es mov [n_vect*4+2], dx
int 020 ;выход
new:
print _error
pop ax
add ax, 2
push ax
iret
Листинг 4. Текст программы PR_3.8
Выводы:
Данная программа реализована без использования стандартных функций DOS для получения и установке вектора int 0. Как видно по обработчику прерывания, указатель смещается на 2 байта. И действительно, в этом случае команда деления занимает 2 байта.
В результате работы программы на экране по прежнему красуется гордая надпись “Warning: деление на ноль” что подтверждает корректности перехвата обработчика прерываний. Последующий запуск первой программы прошел успешно, обработчик перехватил прерывание и выдал соответствующее сообщение, что свидетельствует о корректном восстановлении вектора.
5. Передача управления обработчику BIOS
Задание:
Организуйте передачу управления обработчику BIOS после выполнения всех команд вашего прерывания, т.е. для выхода из Вашего обработчика используйте команду безусловного перехода по адресу системного обработчика.
print macro
push ax, dx
lea dx, #1
mov ah, 9
int 021
pop dx, ax
#em
jmp start
_error db 'Warning: деление на ноль', 13, 10, '$'
_msg db 'Все правильно))',13,10,'$'
n_vect equ 0
old_v dd ?
start:
mov ax, 035 by n_vect ;сохранение старого вектора
int 021 ;es:bx
mov w old_v, bx
mov w old_v + 2, es
mov ax, 025 by n_vect ;установка нового вектора
lea dx, new ;ds:dx
int 021
mov ax, 11
mov bl, 0
div bl
norm_exit:
mov ax, 025 by n_vect ;восстановление вектора
mov dx, w old_v ;ds:dx
mov ds, w old_v+2
int 021
mov ds, cs ;восстановление ds
print _msg
int 020 ;выход
new:
print _error
mov ax, 025 by n_vect
mov dx,w old_v
mov ds,w old_v+2
int 021
mov ds,cs
jmp old_v
Листинг 5. Текст программы PR_4.8
Выводы:
Данная программа имеет два исхода. Либо срабатывает перехватчик обработчика прерывания int 0, и формируется сообщение об ошибке деления на ноль, либо (при отсутствии оной) формируется сообщение о корректном завершении программы.
Практическая работа №9
Тема: «Работа в виртуальная файловой системе VFS. Операции над файлами» (2 часа)
Цели и задачи.
Обучающая:
1. Познакомить учащихся с операциями, которые можно проводить над файлами.
2. Приобрести навык работы с файлами.
3. Научиться архивировать и разархивировать файлы.
Развивающая:
1. Развитие логического мышления, внимания, памяти
2. Развивать устойчивый познавательный интерес у учащихся
3. Продолжить развитие навыков работы на компьютере.
4. Научиться с лёгкостью управлять, файловой системой компьютера и проводить различные операции над файлами.
Воспитательная:
1. Воспитание информационной культуры учащихся.
2. Воспитывать у учащихся мотивацию учебной деятельности.
3. Совершенствовать работу на персональном компьютере.
Методическая: Применение методов дифференцированного обучения для развития логического мышления и памяти учащихся на уроках информатики и ИКТ.
Тип урока: комбинированный.
Оборудование: мультимедийный проектор, презентация, тесты, карточки с заданиями.
Ход урока
1. Организационный момент.
Здравствуйте, ребята.
Тема нашего урока “Файлы. Рабата с файлами”. Откройте тетради, запишите число, классная работа, тема урока “Файлы. Работа с файлами”. Сегодня на уроке вы научитесь выполнять операции с файлами с помощью специальных программ – файловых менеджеров.
Я верю, что сегодня на уроке вы будете работать активно, ответственно относится к заданиям, организуете свою работу за компьютером так, чтобы научиться выполнять все операции с файлами в операционной системе Linux.
2. Проверка домашнего задания.
Вы знаете, что в компьютере хранятся несколько тысяч файлов, и для того, чтобы пользователь успешно работал на компьютере, тратил на доступ к ресурсам минимум времени, он должен отлично, разбираться в файловой системе компьютера. Домашним заданием прошлого урока было изучить п.2.3.2 “Файловая система”. Сейчас проверим, как вы усвоили этот материал. На предыдущем уроке мы с вами изучили файловые системы ОС Windows и Linux.
Работа по карточкам ученики берут карточки со стола учителя и отвечают у доски.
Карточка № 1. Запишите полные имена файлов Реферат.doc, Эскиз.bmp, Сумерки.avi
[ Cкачайте файл, чтобы посмотреть картинку ]
Вопрос учителя: Запиши логическое имя дисков в ОС Windows, Linux. (правильный ответ: С:, D: - в Windows, hda1,hda2 hdb1,hdb2 это название логических разделов жестких дисков в ОС Linux.)
Карточка № 2. Постройте дерево каталогов
C:\ Мои документы\Попиль\Реферат.doc,
C:\Рисунки\Времена года\Снеговик.bmp,
C:\Рисунки\Времена года \ Открытка.bmp,
C:\Мои документы\8 класс \ Мануйленко\ Сочинение.doc
Ответ. Ученик рисует на доске
Вопрос учителя: Как выстраивается файловая система в Linux.?
Ответ: (в ОС Linux. используется многоуровневая файловая система, но не иерархическая . Папки дисков и их логические разделы не принадлежат верхнему уровню файловой системы. Эти папки хранятся в папке mnt, которая входит в Корневую папку верхнего уровня)
Проверим ваши знания с помощью дифференцированного теста, в который входят задания из КИМов ГИА по информатике и ИКТ
Каждый ученик получает карточку с тестом.
Вариант 1
Задания 1-3, задания с выбором ответа, 4, 5 с краткой записью ответа.
1. Файл это -
1) единица измерения информации;
2) это программное обеспечение, хранящееся на внешнем носителе;
3) это программа или данные, имеющие имя и хранящиеся в долговременной памяти.
4) тест, распечатанный на принтере.
2. Вопрос: На какие области, разбивается диск, во время форматирования?
Область записи.
Хранение файлов. Каталог.
Файлы и диски.
1 и 2 часть.
3. Установите соответствие файлов (стрелочками) и их расширений:
1
Фильм “Сумерки”
1
.doc
2
Реферат
2
.mp3
3
Рисунок “бабочка”
3
.bmp
4
“Гимн России”
4
.avi
4. Запишите полное имя файла Задачи для 8 класса.doc:
[ Cкачайте файл, чтобы посмотреть картинку ]
5. В некотором каталоге хранился файл сочинение.doc. После того, как в этом каталоге создали подкаталог и переместили в созданный подкаталог этот файл, полное имя файла стало P: \папки\мои сочинения\ сочинение.doc. Какое было полное имя файла до перемещения?
Вариант 2
1. Вопрос: Из чего состоит имя файла?
Имени и фамилии.
Имени и расширения.
Точки и Знаков вопроса.
Имени и числа.
2. Вопрос: Какие файловые системы Вы знаете?
Одноуровневые, Многоуровневые
Каталоговые и одноуровневые;
Иерархические, табличные;
Папочные.
3. Запишите расширение файлов.
1
Семейная фотография
2
Реферат по истории
3
Клип любимого исполнителя
4
Любимая песня
4. Запишите полное имя файла Сочинение.doc.
[ Cкачайте файл, чтобы посмотреть картинку ]
5. В некотором каталоге хранился файл Задача.doc. После того, как в этом каталоге создали два подкаталога (один в один) и переместили в созданные подкаталоги этот файл, полное имя файла стало P: \папки\математика\задачи\ Задача.doc. Какое было полное имя файла до перемещения?
Через 5 минут ученики меняются карточками, и каждый проверяет тест соседа. получаю ключи и сравниваю ответы, выставляют оценки за тест.
Ключи
Вариант 1
В.1. - 3; в.2. - 2; в.3: 1 4, 2 1, 3 3, 4 2.
в. 4 В:\Предметы\Физика\Задачи для 8 класса.doc
в.5. - P:\Папки\Сочинение.doc
Вариант 2
В.1. - 2; в.2. - 1; в.3: bmp, doc, avi, mp3,
в. 4. – А:\Документы\Литература\Сочинение.doc
в. 5. - P:\Папки\Задачи.doc
Разбор теста: обсуждение ошибок, варианты ответов, выбор ответа.
Инструктаж по ТБ.
3. Новый материал.
Как уже было сказано ранее любому пользователю приходится иметь дело с файлами и для того, чтобы проще было работать с ними, существуют программы – файловые менеджеры с помощью которых можно производить над файлами операции. А какие вы сейчас узнаете из презентации. Для работы за компьютером повторим технику безопасности и распишемся в журнале учета инструктажа. Пройдите за компьютеры. Изучите учебный материал в презентации “Операции над файлами”, то, что вы считаете необходимым, запишите себе в тетради. Ученики садятся за компьютеры на рабочем столе перед каждым учеником презентация “Работа с файлами и дисками”. Ученики изучают презентацию под руководством учителя.
4. Следующая часть урока – практическая работа. Что сейчас вы будете делать? Предполагаемый ответ учеников(Сегодня мы будем работать с файлами. Научимся их открывать, копировать, перемещать, переименовывать и удалять). Далее учащиеся работают с использованием разноуровневого раздаточного материала с заданиями. (учитель раздает карточки с разноуровневыми заданиями ученикам). После выполнения третьего задания – физ. минутка. “Упражнение для глаз”.
Учитель: Перед вами на столе упражнения для глаз. Давайте выполним их. После приступим к выполнению более сложных заданий.
Карточка 1
1 задание. Откройте рабочую папку 8 класс, папку со своей фамилией. Создайте папку “Мои сочинения”.
2 задание. Откройте папку Рефераты, найдите текстовый файл “Реферат ” переименуйте его назовите “Сочинение”, переместите этот файл в папку “Мои сочинения”, найдите еще файлы похожей тематики.
3 задание. В своей папке найдите файл с именем “Пустой” и удалите его.
4 задание. Узнайте объем папки “Рефераты”(запишите) ___________________.
За архивируйте эту папку с помощью ZIP.
Проверьте объем файла “Рефераты”после упаковки(запишите) _______________. Укажите на сколько уменьшился объем информации после архивации _________.
5 задание. “Найди клад”. Инструкция. В папке “Домашняя папка”. Найдите папку “Найди клад”, в ней текстовый файл “Вопрос 1”, ответьте на вопрос и откройте папку название, которой является ответом на вопрос и тд. Если вы правильно пройдете, весь путь то найдете клад. Клад – это мудрые мысли, высказывания .
Мудрые мысли, высказывания, афоризмы то же богатство и богатство в двойне, если вы их запомните, и будете помнить дальше в своей жизни.
5. Закрепление изученного учебного материала.
1. С какими операциями над файлами мы сегодня познакомились?
2. Что нам даёт архивирование файлов?
6. Подведение итогов. Выставление оценок с комментариями.
Практическая работа №10
Тема: «Файловая система FAT 12/16/32. Разделение диска на разделы» (4 часа)
ЦЕЛЬ РАБОТЫ: научиться выполнять восстановление файловой системы, при помощи специального программного обеспечения
Теоретическая часть
Восстановление FAT/FAT32 файловых таблиц
Файловая система используется для индексирования и организации файлов на диске. Записи в файловой системе располагаются в четко определенных областях диска, содержащего информацию, которая относится к определенному файлу. В различных файловых системах организация данных происходит по-разному. Мы поговорим о системах FAT (File Allocation Table), включая FAT, FAT16 и FAT32.
Анализ файловой системы
[ Cкачайте файл, чтобы посмотреть картинку ]Современные программы для восстановления данных используют различные методы определения точного местоположения удаленных файлов. Для начала они пытаются проанализировать файловую систему (если таковая имеется), ведь запись в таблице размещения файлов содержит наиболее полную информацию о расположении файла, его имени и атрибутах. Если какая-либо часть файловой системы по-прежнему доступна, программа сможет проанализировать все записи, существующие в файловой системе, определить записи, принадлежащие определенному файлу, и узнать, какие секторы на диске занимал файл и в каком порядке. Для правильного [ Cкачайте файл, чтобы посмотреть ссылку ] это просто необходимо, поскольку файл может храниться на диске в виде нескольких сегментов (фрагментов), а не одной непрерывной записи, из-за фрагментации диска.
Фрагментированные файлы крайне трудно (даже не всегда возможно) восстановить без действующей ссылки файловой системы.
Поиск файлов в FAT
В FAT каждому файлу присваивается индивидуальная запись в системе. Эти записи содержат информацию о файле, включая все кластеры данных занимаемые файлом. FAT структуры используются для идентификации последующих кластеров в файлы, а также для определения текущего состояния кластеров (например, они могут быть еще доступны, если файл удален, все еще принадлежать файлу, либо уже быть занятыми другим файлом).
Фрагментированные файлы всегда занимают более одного кластера, и, следовательно, имеют взаимосвязанные цепочки FAT структур, записанных в файловой системе. Доступ к самой первой записи и последующим имеет важное значение при поиске всех записей.
Анализ файловой системы это все, что может сделать программа восстановления, работая в режиме быстрого сканирования. Но что, если файловая система пуста (например, после форматирования диска), повреждена или полностью отсутствует? В этом случае придется выполнить комплексный анализ всей поверхности диска с использованием метода поиска по сигнатурам – наиболее действенного метода обнаружения определенных типов файлов.
Расширенный анализ и поиск по сигнатурам
Поиск по сигнатурам позволяет [ Cкачайте файл, чтобы посмотреть ссылку ] успешно выявлять, анализировать и восстанавливать файлы, которые не индексируются в файловой системе. Поиск по сигнатурам может обнаружить файлы, имеющие стандартные сигнатуры (например, “JFIF” для файлов JPEG) или содержащие ограниченные подмножества (например, текстовые файлы). Иногда файлы с циклической или «повторяющейся» структурой могут быть найдены и восстановлены. После обнаружения существующих файлов и анализа его заголовка алгоритм поиска по сигнатурам сможет вычислить кластеры, занимаемые этим файлом на диске, и успешно восстановить файл.
Практическая часть
Программа для восстановления с FAT
Выбираете программу для восстановления флешки, карты памяти или жесткого диска? Сомневаетесь, удастся ли восстановить целый раздел диска в исходном виде? Нужен надежный помощник, чтобы восстановить удаленные данные с поврежденного или отформатированного раздела? Хотите вернуть фотографии, исчезнувшие с карты памяти цифровой камеры?
[ Cкачайте файл, чтобы посмотреть ссылку ]
Восстановление FAT разделов программой
RS FAT Recovery
Успех восстановления файлов с флешки, жесткого диска или любого другого носителя напрямую зависит от выбранного инструмента восстановления. Поэтому к его выбору стоит отнестись ответственно. При этом не стоит думать, что самое дорогое – и есть самое лучше. Иногда, купив по-настоящему надежную и качественную программу для восстановления данных, можно еще и приятно сэкономить.
[ Cкачайте файл, чтобы посмотреть ссылку ][ Cкачайте файл, чтобы посмотреть ссылку ]
Программа RS FAT Recovery работает так же эффективно, как уже проверенная пользователями и завоевавшая их доверие [ Cкачайте файл, чтобы посмотреть ссылку ]. В основе ее работы – уникальные алгоритмы поиска малейших обрывков удаленных данных, на основе которых программа поможет восстановить целые массивы информации (вплоть до полного восстановления сильно поврежденных, недоступных, перезаписанных дисков).
[ Cкачайте файл, чтобы посмотреть картинку ]
Восстановление данных с флэш-карт и FAT/FAT32 разделов
RS FAT Recovery – это надежное восстановление информации с поврежденных разделов FAT/FAT32 и восстановление файлов и папок с полным сохранением файловой структуры с отформатированных носителей в несколько простых шагов. RS FAT Recovery – лучшее решение для восстановления файлов и разделов, позволяющее забыть о проблемах исчезновения важных данных в FAT и FAT32.
Восстанавливает карты памяти и USB флэшки
Абсолютное большинство USB-накопителей и карт памяти, используемых в портативных устройствах, таких как цифровые камеры, смартфоны, музыкальные плееры и электронные книги, отформатированы в FAT. Файловая система некоторых жестких дисков, на которых используются более ранние версии Windows, также базируется на FAT или FAT32 в зависимости от их размера. Программа RS FAT Recovery разработана специально решения вопросов, связанных с повреждением данных на носителях, отформатированных в FAT, что позволяет легко восстановить данные с отформатированных, перераспределенных, поврежденных и нечитаемых разделов и дисков.
Все быстро и просто
Работать с RS FAT Recovery по-настоящему просто! Пользовательский интерфейс программы понятен, поэтому восстановление данных с ее помощью не составит труда даже для новичка. Используйте режим предварительного просмотра, в котором отображается содержание всех восстанавливаемых файлов. Интерактивное восстановление пройдет в полностью автоматизированном режиме. При помощи режима быстрого восстановления «отменить удаление» только что исчезнувших файлов можно за считанные минуты.
Всесторонний анализ
В режиме глубокого анализа RS FAT Recovery может восстановить файлы с носителей, пострадавших в результате серьезных сбоев. В этом режиме программа способна извлекать файлы и папки с отформатированных карт памяти, пустых или нечитаемых разделов на основе анализа всего содержимого устройства. Глубокий анализ позволяет найти и восстановить все файлы, следы которых все еще сохранились на диске, даже если они были удалены несколько месяцев назад и диск был неоднократно перезаписан.
Предварительный просмотр восстанавливаемых изображений
Вы можете легко просматривать файлы, хранящиеся на поврежденных носителях, до их восстановления. RS FAT Recovery поддерживает возможность мгновенного предварительного просмотра. При использовании данной функции утилита может отображать содержимое сотен типов файлов, включая офисные документы, изображения, сжатые архивы, электронные письма, музыкальные и видеофайлы во всех популярных форматах.
Анализ содержимого
Алгоритмы восстановления на основе анализа содержимого носителей (Content-Aware) – то, что выгодно отличает RS FAT Recovery среди конкурентных продуктов. Content-Aware анализ использует все сохранившиеся сведения о форматах файлов и их характерных подписях для того, чтобы обнаружить все эти файлы даже на сильно поврежденных носителях. Даже если на диске нет файловой системы, RS FAT Recovery сможет обнаружить и извлечь с испорченного носителя множество типов файлов, включая фотографии, документы, архивы, видео, сообщения электронной почты, а также десятки других типов файлов. Благодаря алгоритмам анализа содержимого RS FAT Recovery обеспечивает впечатляющие результаты восстановления при самых трудных обстоятельствах.
Поддерживает FAT и FAT32
RS FAT Recovery поддерживает все версии FAT, VFAT и FAT32 во всех 32-битных и 64-битных версях ОС Windows до Windows 8.
В то же время RS FAT Recovery стоит почти в два раза дешевле RS Partition Recovery, поскольку программа работает только с носителями, отформатированными в файловую систему FAT, и не поддерживает NTFS. Но никаких уступок в качестве работы!
Если вы работаете в системе NTFS, вам подойдет [ Cкачайте файл, чтобы посмотреть ссылку ] или [ Cкачайте файл, чтобы посмотреть ссылку ].
Возможности программы:
Восстановление данных с отформатированных или удаленных логических разделов FAT;
Восстановление логических дисков, поврежденных из-за аппаратного или системного сбоя, отключения питания, а также по другим причинам;
Восстановление данных с жестких дисков любого типа, с флешек, карт памяти фотоаппаратов и мобильных телефонов, с других видов сменных носителей;
Восстановление даже сильно поврежденных дисков благодаря использованию глубокого анализа данных;
Исправление поврежденных разделов и воссоздание «с нуля» сильно поврежденных логических структур дисков;
Исправление поврежденных логических структур, восстановление недоступных и перераспределенных дисков;
Возобновление работы системы «с нуля»;
Возможность создания виртуальных образов дисков для восстановления «с отсрочкой»;
Восстановление документов Microsoft Office (Word, Excel, PowerPoint и др.), документов Adobe Reader, файлов баз данных, цифровых изображений и фотографий любых форматов, видео и аудио файлов;
Поддержка популярных файловых систем exFAT / FAT 16 / FAT 32, и популярных ОС Microsoft Windows, включая XP, 2003, Vista, 2008 Server и Windows 7.
Практическая работа №11
Тема: «Размещения файлов FAT» (2 часа)
ЦЕЛЬ РАБОТЫ: изучить размещения файлов в файловой системе FAT
Файловая система - это часть операционной системы, назначение которой состоит в том, чтобы обеспечить пользователю удобный интерфейс при работе с данными, хранящимися на диске, и обеспечить совместное использование файлов несколькими пользователями и процессами.
В широком смысле понятие "файловая система" включает: совокупность всех файлов на диске, наборы структур данных, используемых для управления файлами, такие, например, как каталоги файлов, дескрипторы файлов, таблицы распределения свободного и занятого пространства на диске, комплекс системных программных средств, реализующих управление файлами, в частности: создание, уничтожение, чтение, запись, именование, поиск и другие операции над файлами.
Логическая организация файла. Программист имеет дело с логической организацией файла, представляя файл в виде определенным образом организованных логических записей. Логическая запись - это наименьший элемент данных, которым может оперировать программист при обмене с внешним устройством. Даже если физический обмен с устройством осуществляется большими единицами, операционная система обеспечивает программисту доступ к отдельной логической записи. На рисунке 4.2 показаны несколько схем логической организации файла. Записи могут быть фиксированной длины или переменной длины. Записи могут быть расположены в файле последовательно (последовательная организация) или в более сложном порядке, с использованием так называемых индексных таблиц, позволяющих обеспечить быстрый доступ к отдельной логической записи (индексно-последовательная организация). Для идентификации записи может быть использовано специальное поле записи, называемое ключом. В файловых системах ОС UNIX и MS-DOS файл имеет простейшую логическую структуру - последовательность однобайтовых записей.
Рис. 4.2 - Способы логической организации файлов
Физическая организация файла описывает правила расположения файла на устройстве внешней памяти, в частности на диске. Файл состоит из физических записей - блоков. Блок - наименьшая единица данных, которой внешнее устройство обменивается с оперативной памятью. Непрерывное размещение - простейший вариант физической организации (рисунок 4.3,а), при котором файлу предоставляется последовательность блоков диска, образующих единый сплошной участок дисковой памяти. Для задания адреса файла в этом случае достаточно указать только номер начального блока. Другое достоинство этого метода - простота. Но имеются и два существенных недостатка. Во-первых, во время создания файла заранее не известна его длина, а значит не известно, сколько памяти надо зарезервировать для этого файла, во-вторых, при таком порядке размещения неизбежно возникает фрагментация, и пространство на диске используется не эффективно, так как отдельные участки маленького размера (минимально 1 блок) могут остаться не используемыми.
Следующий способ физической организации - размещение в виде связанного списка блоков дисковой памяти (рисунок 4.3,б ). При таком способе в начале каждого блока содержится указатель на следующий блок. В этом случае адрес файла также может быть задан одним числом - номером первого блока. В отличие от предыдущего способа, каждый блок может быть присоединен в цепочку какого-либо файла, следовательно фрагментация отсутствует. Файл может изменяться во время своего существования, наращивая число блоков. Недостатком является сложность реализации доступа к произвольно заданному месту файла: для того, чтобы прочитать пятый по порядку блок файла, необходимо последовательно прочитать четыре первых блока, прослеживая цепочку номеров блоков. Кроме того, при этом способе количество данных файла, содержащихся в одном блоке, не равно степени двойки (одно слово израсходовано на номер следующего блока), а многие программы читают данные блоками, размер которых равен степени двойки.
Рисунок 4.3. Физическая организация файла а - непрерывное размещение; б - связанный список блоков; в - связанный список индексов; г - перечень номеров блоков
Популярным способом, используемым, например, в файловой системе FAT операционной системы MS-DOS, является использование связанного списка индексов. С каждым блоком связывается некоторый элемент - индекс. Индексы располагаются в отдельной области диска (в MS-DOS это таблица FAT). Если некоторый блок распределен некоторому файлу, то индекс этого блока содержит номер следующего блока данного файла. При такой физической организации сохраняются все достоинства предыдущего способа, но снимаются оба отмеченных недостатка: во-первых, для доступа к произвольному месту файла достаточно прочитать только блок индексов, отсчитать нужное количество блоков файла по цепочке и определить номер нужного блока, и, во-вторых, данные файла занимают блок целиком, а значит имеют объем, равный степени двойки.
Письменный опрос по теме
1. Файловая система – это ______________________________________
____________________________________________________________________________________________________________________________________________________________________________________________________________
____________________________________________________________________
2. Какая организация файлов присуща программистам _________________
____________________________________________________________________
____________________________________________________________________
3. Логическая запись – это ______________________________________
________________________________________________________________________________________________________________________________________
____________________________________________________________________
4. Блок – это _________________________________________________
________________________________________________________________________________________________________________________________________
____________________________________________________________________
5. Изобразите способы логической организации файлов
6. Изобразите физическую организацию файлов
7. Перечислите какие файловые системы вы знаете
____________________________________________________________________________________________________________________________________________________________________________________________________________
Практическая работа №12
Тема: «Файловая система NTFS. Логическая и физическая структура. Файлы, потоки, каталоги в NTFS. Журналирование в NTFS» (2 часа)
ЦЕЛЬ РАБОТЫ: исследовать структуру файловой системы NTFS и файловые записи MFT.
Ключевые слова: [ Cкачайте файл, чтобы посмотреть ссылку ], [ Cкачайте файл, чтобы посмотреть ссылку ], [ Cкачайте файл, чтобы посмотреть ссылку ], [ Cкачайте файл, чтобы посмотреть ссылку ], [ Cкачайте файл, чтобы посмотреть ссылку ], [ Cкачайте файл, чтобы посмотреть ссылку ], [ Cкачайте файл, чтобы посмотреть ссылку ], [ Cкачайте файл, чтобы посмотреть ссылку ], [ Cкачайте файл, чтобы посмотреть ссылку ], [ Cкачайте файл, чтобы посмотреть ссылку ], [ Cкачайте файл, чтобы посмотреть ссылку ], [ Cкачайте файл, чтобы посмотреть ссылку ], [ Cкачайте файл, чтобы посмотреть ссылку ], [ Cкачайте файл, чтобы посмотреть ссылку ], [ Cкачайте файл, чтобы посмотреть ссылку ], [ Cкачайте файл, чтобы посмотреть ссылку ], [ Cкачайте файл, чтобы посмотреть ссылку ], [ Cкачайте файл, чтобы посмотреть ссылку ], [ Cкачайте файл, чтобы посмотреть ссылку ], [ Cкачайте файл, чтобы посмотреть ссылку ], [ Cкачайте файл, чтобы посмотреть ссылку ], [ Cкачайте файл, чтобы посмотреть ссылку ], [ Cкачайте файл, чтобы посмотреть ссылку ], [ Cкачайте файл, чтобы посмотреть ссылку ], [ Cкачайте файл, чтобы посмотреть ссылку ], [ Cкачайте файл, чтобы посмотреть ссылку ], [ Cкачайте файл, чтобы посмотреть ссылку ], [ Cкачайте файл, чтобы посмотреть ссылку ], [ Cкачайте файл, чтобы посмотреть ссылку ], [ Cкачайте файл, чтобы посмотреть ссылку ], [ Cкачайте файл, чтобы посмотреть ссылку ], [ Cкачайте файл, чтобы посмотреть ссылку ], [ Cкачайте файл, чтобы посмотреть ссылку ], [ Cкачайте файл, чтобы посмотреть ссылку ], [ Cкачайте файл, чтобы посмотреть ссылку ]
Задание 1. Создать виртуальный жесткий диск.
Замечание. В данной лабораторной работе используется виртуальный жесткий диск (Virtual Hard Disk, VHD) – формат файла, в котором можно сохранить образ жесткого диска. В VHD файлах, например, хранятся образы жестких дисков Microsoft Virtual PC.
Встроенная поддержка VHD реализована в Windows 7. Если ваша операционная система выпущена ранее Windows 7, рекомендуется пропустить первое задание, а остальные выполнять с использованием флеш диска (отформатировав его в файловой системе NTFS).
Помните, что при форматировании все данные на диске стираются.
Указания к выполнению.
1. Наберите в командной строке (нажмите кнопку Пуск) следующую команду:
[ Cкачайте файл, чтобы посмотреть картинку ]
Управление компьютером
Откроется оснастка (snap-in) Управление компьютером. Выберите пункт Управление дисками:
[ Cкачайте файл, чтобы посмотреть картинку ]
2. В меню Действие выберите пункт Создать вирту
·альный жёсткий диск:
[ Cкачайте файл, чтобы посмотреть картинку ]
Откроется диалоговое окно. Введите имя файла, в котором будет храниться виртуальный жесткий диск, и размер файла 100 МБ:
[ Cкачайте файл, чтобы посмотреть картинку ]
После процедуры создания новый жесткий диск должен отобразиться в списке дисков:
[ Cкачайте файл, чтобы посмотреть картинку ]
3. Чтобы с новым диском можно было работать, его следует проинициализировать, создать на нем том и отформатировать.
Щелкните правой кнопкой мыши на диске и выберите пункт Инициализировать диск (параметры оставьте по умолчанию):
[ Cкачайте файл, чтобы посмотреть картинку ]
После инициализации, щелкните правой кнопкой мыши на нераспределенном пространстве диска и выберите Создать простой том. Откроется Мастер создания простых томов. Выберите следующие параметры:
Размер тома – оставьте по умолчанию;
Назначить букву диска – можно выбрать любую;
Форматирование раздела – NTFS, размер кластера по умолчанию, Быстрое форматирование:
[ Cкачайте файл, чтобы посмотреть картинку ]
Нажмите кнопку Готово.
[ Cкачайте файл, чтобы посмотреть картинку ]
В результате на вашем компьютере должен появиться новый логический диск:
[ Cкачайте файл, чтобы посмотреть картинку ]
Задание 2. Получить информацию об NTFS томе.
Указания к выполнению.
1. Скачайте с сайта Sysinternals утилиту NTFSInfo1[ Cкачайте файл, чтобы посмотреть ссылку ]. Сохраните её в папку на жестком диске, например, c:\Instruments.
2. Запустите командную строку: нажмите кнопку Пуск – в текстовом окне введите cmd – нажмите Enter.
3. Перейдите в каталог с утилитой NTFSInfo: введите в командной строке:
cd c:\Instruments
4. Запустите утилиту NTFSInfo. Введите команду ntfsinfo.exe, указав букву виртуального диска, например:
ntfsinfo.exe d:
[ Cкачайте файл, чтобы посмотреть картинку ]
Утилита отображает следующую информацию.
Информацию о томе (Volume Size):
размер тома (Volume size);
количество секторов (Total sectors);
количество кластеров (Total clusters);
количество свободных кластеров (Free clusters);
свободное место на диске (Free space).
Информацию о размерах единиц данных (Allocation Size):
количество байт в секторе (Bytes per sector);
количество байт в кластере (Bytes per cluster);
количество байт файловой записи (Bytes per MFT record);
количество кластеров в файловой записи (Clusters per MFT record).
Информацию о MFT (MFT Information):
размер MFT (MFT size);
начальный кластер MFT (MFT start cluster);
кластеры зоны MFT (MFT zone clusters);
размер зоны MFT (MFT zone size);
начальный кластер файла $MftMirr (MFT mirror start).
Задание 3. Узнать размер на диске, занимаемый небольшим файлом.
Указания к выполнению.
1. Создайте на виртуальном жестком диске текстовый файл Test.txt, наберите в нем, например, следующий текст: "This is test". Сохраните файл.
2. В свойствах файла (правая кнопка мыши – Свойства) посмотрите, чему равен размер файла и его размер на диске:
[ Cкачайте файл, чтобы посмотреть картинку ]
Как можно объяснить полученный результат?
Файл Test.txt не удаляйте – он нам потребуется в дальнейшем.
Задание 4. Изучить содержимое MFT.
Указания к выполнению.
1. Скачайте утилиту Nfi. Для этого перейдите по следующему адресу:
[ Cкачайте файл, чтобы посмотреть ссылку ]
На этой странице скачайте OEM Support Tools по ссылке, обозначенной Download Oem3sr2.zip now. Извлеките из архива папку Nfi с одноименной утилитой.
2. Поместите утилиту Nfi в каталог c:\Instruments.
3. Запустите командную строку и перейдите в папку c:\Instruments таким же образом как в задании 2.
4. Введите в командной строке следующую команду (указав букву виртуального диска, например, d):
nfi d >> log.txt
Данная команда записывает в файл log.txt информацию обо всех файлах на диске D (виртуальном жестком диске).
5. Откройте файл log.txt, расположенный в том же каталоге, что и утилита Nfi. Просмотрите его содержимое. Сравните с информацией из лекции 17 "Файловая система NTFS".
На рисунке ниже приведен пример вывода утилиты Nfi для первой записи в таблице MFT – о самом файле $Mft:
[ Cкачайте файл, чтобы посмотреть картинку ]
Обратите внимание на запись для файла Test.txt в конце файла log.txt:
[ Cкачайте файл, чтобы посмотреть картинку ]
Задание 5. Исследовать внутреннюю структуру тома NTFS.
Указания к выполнению.
1. Для изучения внутренней структуры дисков существует множество программ. В этой лабораторной работе воспользуемся программой DiskExplorer for NTFS. Бесплатная оценочная версия доступна по адресу: [ Cкачайте файл, чтобы посмотреть ссылку ].
2. После установки и запуска программы (под учетной записью администратора) откроется главное окно:
[ Cкачайте файл, чтобы посмотреть картинку ]
В меню File выберите Drive и в разделе Logical drives выделите Hard drive, соответствующий виртуальному диску:
[ Cкачайте файл, чтобы посмотреть картинку ]
Нажмите ОК и отобразится окно с загрузочным сектором (Boot sector) NTFS:
[ Cкачайте файл, чтобы посмотреть картинку ]
Дважды щелкните по надписи Boot sector (NTFS) или в меню Goto выберите Mft, программа перейдет к отображению файловых записей в таблице MFT:
[ Cкачайте файл, чтобы посмотреть картинку ]
Относительно каждой файловой записи программа показывает следующую информацию.
В первой строке:
Sector – начальный сектор данной файловой записи: сверху – в шестнадцатеричном виде, снизу – в десятичном;
Name – имя файла (или каталога);
Type – тип файловой записи (файл или каталог);
Attributes – DOS атрибуты файла (например, s – системный, h – скрытый); не путать с NTFS атрибутами;
Size – размер всего файла в байтах (не только файловой записи); отображается в десятичном виде;
Date – дата и время модификации файла (или каталога);
1st cluster – первый кластер файла, если он имеет нерезидентные атрибуты;
NT Attributes – NTFS атрибуты (коды см. в лекции 17 "Файловая система NTFS").
Во второй строке:
No – номер записи в MFT;
Parent – номер записи в MFT для родительского каталога; например, для всех первых файлов в MFT этот номер будет равен 5 – номеру записи для корневого каталога (обозначается точкой);
Run – список групп для нерезидентных файлов.
В крайней левой колонке таблицы (Sector) показывается номер сектора, в котором располагается начало файловой записи. Проверьте, что этот номер совпадает с номером сектора для $Mft в файле log.txt, полученным в предыдущем задании. В нашем примере этот номер равен 0x102A8.
Проверьте соответствие других записей в программе DiskExplorer и в файле log.txt.
Обратите внимание, что номера секторов в столбце Sector увеличиваются на 2, т.е. файловая запись занимает 2 сектора (1 КБ).
Задание 6. Изучить файловую запись для резидентного файла.
Указания к выполнению.
1. Найдите в списке файловых записей DiskExplorer запись для файла Test.txt:
[ Cкачайте файл, чтобы посмотреть картинку ]
Дважды щелкните на этой записи (или нажмите клавишу F7) – откроется окно файловой записи:
[ Cкачайте файл, чтобы посмотреть картинку ]
В этом окне три основных раздела:
Structures – структура файловой записи. Показаны заголовок (Header) файловой записи и атрибуты; каждый атрибут имеет заголовок (Header) и тело (Body);
Interpretation of data – интерпретация данных. Для текстового файла приведено его содержимое в текстовом виде;
Raw data – содержимое файловой записи в виде набора байт (приведены шестнадцатеричные значения и ASCII коды).
2. При перемещении по пунктам в разделе Structures, в остальных двух разделах отображается соответствующая данному пункту информация. Например, на рисунке ниже приведена информация для заголовка файловой записи:
[ Cкачайте файл, чтобы посмотреть картинку ]
Изучите содержимое заголовка файловой записи и всех атрибутов. Определите способ хранения информации при помощи окна Raw data. Например, на рисунке ниже красным цветом в разделах Interpretation of data и Raw data выделено поле Length (Длина) для атрибута $STANDARD_INFORMATION, а синим цветом – поле Data status (Резидентность): значение 00 означает, что атрибут резидентный.
Информацию о структуре файловой записи NTFS можно найти в лекции 17 "Файловая система NTFS", а также в источниках [[ Cкачайте файл, чтобы посмотреть ссылку ]; [ Cкачайте файл, чтобы посмотреть ссылку ]].
[ Cкачайте файл, чтобы посмотреть картинку ]
3. В теле атрибута $DATA ($80) найдите текст, хранящийся в файле.
Задание 7. Изучить файловую запись для нерезидентного файла.
Указания к выполнению.
1. Чтобы вернуться к списку файловых записей, можно нажать кнопку Go back (Назад) в правой верхней части окна DiskExplorer:
[ Cкачайте файл, чтобы посмотреть картинку ]
или нажать клавишу F6, или выбрать пункт as File entry в меню View:
[ Cкачайте файл, чтобы посмотреть картинку ]
2. Найдите в списке файловых записей $MftMirr – зеркальную копию MFT (следующая запись после $Mft):
[ Cкачайте файл, чтобы посмотреть картинку ]
Дважды щелкните на записи $MftMirr (или нажмите клавишу F7) – откроется окно с подробной информацией о файле $MftMirr:
[ Cкачайте файл, чтобы посмотреть картинку ]
Выделите пункт Attributes (Атрибуты) в окне Structures:
[ Cкачайте файл, чтобы посмотреть картинку ]
Как видно из рисунка, атрибут $80 ($DATA) является нерезидентным. Изучим его расположение в памяти.
Щелкните на заголовок (Header) атрибута $80 в окне Structures:
[ Cкачайте файл, чтобы посмотреть картинку ]
На представленном рисунке зеленым цветом выделен признак атрибута non resident в разделе Interpretation of data и соответствующий байт в разделе Raw data (01).
Синим цветом выделены начальный (Start VCN) и конечный (Last VCN) виртуальные номера кластеров (см. лекцию 11 "Файловая система NTFS"). Поскольку они совпадают (равны 0), то группа (Run) занимает всего один кластер.
Красным цветом выделен список групп (Run list): 11:01 02.
11 – определяет размер следующих двух полей:
младший полубайт (1) кодирует размер поля длины группы; поскольку в данном случае полубайт равен 1, размер поля длины группы составляет 1 байт;
старший полубайт (1) кодирует размер поля номера LCN стартового кластера; в данном случае размер поля составляет 1 байт;
01 – размер группы составляет 1 кластер (это значение совпадает с определенной нами ранее длиной группы по номерам начального и конечного кластеров);
02 – LCN номер начального кластера.
Перейдя на второй кластер (щелкнув ссылку x00000002 в окне Interpretation of data, выделенную синим цветом шрифта) и нажав клавишу F6, можно убедиться, что атрибут $DATA файла $MftMirr содержит первые 4 записи таблицы MFT:
[ Cкачайте файл, чтобы посмотреть картинку ]
Обратите внимание, что поскольку одна файловая запись занимает 1 КБ (2 сектора), то 4 записи будут занимать 4 КБ или 8 секторов или 1 кластер.
Задания для самостоятельного выполнения
Задание 1. Определить максимальный размер обычного текстового файла, который целиком помещается в файловую запись NTFS.
Задание 2. Исследовать представление каталогов в файловых записях NTFS.
Указания к выполнению.
Создайте каталог на томе виртуального жесткого диска.
В программе DiskExplorer найдите файловую запись для созданного каталога и изучите её содержимое.
Задание 3. Определите расположение в атрибутах файловых записей NTFS следующей информации (указаны также виды атрибутов, для которых нужно определять расположение). Проверить соответствие информации в файловой записи и информации, отображаемой в окне свойств файла в Windows.
Для всех атрибутов:
длина тела атрибута.
Для атрибута $STANDARD_INFORMATION:
время создания файла;
время изменения файла;
время последнего чтения файла;
признаки MS DOS (скрытый, системный и т.д.);
Для атрибута $FILE_NAME:
родительский каталог;
имя файла.
Практическая работа №13
Тема: «Исследование методов организации файловых систем» (4 часа)
1. ЦЕЛЬ РАБОТЫ: исследование методов организации файловых систем
Файловая система - это часть операционной системы, назначение которой состоит в том, чтобы обеспечить пользователю удобный интерфейс при работе с данными, хранящимися на диске, и обеспечить совместное использование файлов несколькими пользователями и процессами.
Формулировка задачи
Размер кластера жесткого диска составляет 4 кБайт. Таблица размещения файлов имеет вид, приведенный в таблице 4. Последовательность обращений к API-функциям файловой системы задана таблицей 5.
Пример решения
Размер кластера жесткого диска составляет 4 кБайт. Таблица размещения файлов имеет вид:
№ кл.
1
2
3
4
5
6
7
8
9
10
11
12
13
14
Зн.
EOF
0
0
7
0
0
9
10
EOF
14
0
0
0
EOF
Как изменится состояние таблицы размещения файлов FAT при следующей последовательности вызовов API – функций: 1)Создать файл А; 2)Создать файл В; 3)Записать в А 6кБайта; 4)Записать в В 2кБайт 5)Закрыть А 6)Удалить А 7)Записать в B 3 кБайта 8) Закрыть B.
При открытии файла в системе FAT производится поиск первого свободного кластера диска- это кластер 2. Аналогично поступаем и для файла B:
№ кл.
1
2
3
4
5
6
7
8
9
10
11
12
13
14
Зн.
EOF
EOF
EOF
7
0
0
9
10
EOF
14
0
0
0
EOF
Файл
A
B
Свободно
4к
4к
Размер кластера жесткого диска – 4 кБайта, поэтому при записи фрагмента 6 кБайт файл будет занимать 2 кластера. При записи в файл В 2 кБайт нового кластера для него не потребуется.
№ кл.
1
2
3
4
5
6
7
8
9
10
11
12
13
14
Зн.
EOF
5
EOF
7
EOF
0
9
10
EOF
14
0
0
0
EOF
Файл
A
B
А
Свободно
0к
2к
2к
При удалении файла кластеры, которые он занимает, отмечаются как свободные.
№ кл.
1
2
3
4
5
6
7
8
9
10
11
12
13
14
Зн.
EOF
0
EOF
7
0
0
9
10
EOF
14
0
0
0
EOF
Файл
B
Свободно
2к
В кластере 3 имеется только 2кБайта свободного пространства. Поэтому при записи 3кБайт будет задействован первый свободный кластер 2.
№ кл.
1
2
3
4
5
6
7
8
9
10
11
12
13
14
Зн.
EOF
EOF
2
7
0
0
9
10
EOF
14
0
0
0
EOF
Файл
B
B
Свободно
3к
0к
Самостоятельная работа
Размер кластера жесткого диска составляет 4 кБайт. Таблица размещения файлов имеет вид, приведенный в таблице 4. Последовательность обращений к API-функциям файловой системы задана таблицей 5.
Таблица 4 – Состояние таблицы размещения файлов (FAT) для задачи 3
№ кл.
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
Зн.
3
0
EOF
0
8
0
0
10
EOF
0
13
0
14
15
EOF
Файл
D
D
E
E
E
F
F
F
F
Свободно
2к
1к
3к
Объем кластера – 4 кБайта.
Таблица 5 – Последовательность вызовов API-функций файловой системы для задачи 3
Задание
Файл
Функция
1
A
Создать
D
Запись 2к
A
Запись 6к
E
Удалить
Размер кластера жесткого диска составляет 4 кБайт. Таблица размещения файлов имеет вид, приведенный в таблице 4. Последовательность обращений к API-функциям файловой системы задана таблицей 5.
Таблица 4 – Состояние таблицы размещения файлов (FAT) для задачи 3
№ кл.
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
Зн.
3
0
EOF
0
8
0
0
10
EOF
0
13
0
14
15
EOF
Файл
D
D
E
E
E
F
F
F
F
Свободно
2к
1к
3к
Объем кластера – 4 кБайта.
Таблица 5 – Последовательность вызовов API-функций файловой системы для задачи 3
Задание
Файл
Функция
2
D
Запись 4к
B
Создать
E
Запись 1к
B
Запись 2к
Размер кластера жесткого диска составляет 4 кБайт. Таблица размещения файлов имеет вид, приведенный в таблице 4. Последовательность обращений к API-функциям файловой системы задана таблицей 5.
Таблица 4 – Состояние таблицы размещения файлов (FAT) для задачи 3
№ кл.
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
Зн.
3
0
EOF
0
8
0
0
10
EOF
0
13
0
14
15
EOF
Файл
D
D
E
E
E
F
F
F
F
Свободно
2к
1к
3к
Объем кластера – 4 кБайта.
Таблица 5 – Последовательность вызовов API-функций файловой системы для задачи 3
Задание
Файл
Функция
3
A
Создать
D
Удалить
А
Запись 6к
F
Запись 2к
Размер кластера жесткого диска составляет 4 кБайт. Таблица размещения файлов имеет вид, приведенный в таблице 4. Последовательность обращений к API-функциям файловой системы задана таблицей 5.
Таблица 4 – Состояние таблицы размещения файлов (FAT) для задачи 3
№ кл.
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
Зн.
3
0
EOF
0
8
0
0
10
EOF
0
13
0
14
15
EOF
Файл
D
D
E
E
E
F
F
F
F
Свободно
2к
1к
3к
Объем кластера – 4 кБайта.
Таблица 5 – Последовательность вызовов API-функций файловой системы для задачи 3
Задание
Файл
Функция
4
D
Запись 4к
B
Создать
B
Запись 1к
F
Запись 5к
Размер кластера жесткого диска составляет 4 кБайт. Таблица размещения файлов имеет вид, приведенный в таблице 4. Последовательность обращений к API-функциям файловой системы задана таблицей 5.
Таблица 4 – Состояние таблицы размещения файлов (FAT) для задачи 3
№ кл.
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
Зн.
3
0
EOF
0
8
0
0
10
EOF
0
13
0
14
15
EOF
Файл
D
D
E
E
E
F
F
F
F
Свободно
2к
1к
3к
Объем кластера – 4 кБайта.
Таблица 5 – Последовательность вызовов API-функций файловой системы для задачи 3
Задание
Файл
Функция
5
E
Удалить
D
Запись 4к
A
Создать
A
Запись 2к
Размер кластера жесткого диска составляет 4 кБайт. Таблица размещения файлов имеет вид, приведенный в таблице 4. Последовательность обращений к API-функциям файловой системы задана таблицей 5.
Таблица 4 – Состояние таблицы размещения файлов (FAT) для задачи 3
№ кл.
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
Зн.
3
0
EOF
0
8
0
0
10
EOF
0
13
0
14
15
EOF
Файл
D
D
E
E
E
F
F
F
F
Свободно
2к
1к
3к
Объем кластера – 4 кБайта.
Таблица 5 – Последовательность вызовов API-функций файловой системы для задачи 3
Задание
Файл
Функция
6
B
Создать
F
Запись 2к
D
Запись 5к
B
Запись 4к
Размер кластера жесткого диска составляет 4 кБайт. Таблица размещения файлов имеет вид, приведенный в таблице 4. Последовательность обращений к API-функциям файловой системы задана таблицей 5.
Таблица 4 – Состояние таблицы размещения файлов (FAT) для задачи 3
№ кл.
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
Зн.
3
0
EOF
0
8
0
0
10
EOF
0
13
0
14
15
EOF
Файл
D
D
E
E
E
F
F
F
F
Свободно
2к
1к
3к
Объем кластера – 4 кБайта.
Таблица 5 – Последовательность вызовов API-функций файловой системы для задачи 3
Задание
Файл
Функция
7
F
Запись 5к
D
Запись 2к
A
Создать
D
Запись 2к
Размер кластера жесткого диска составляет 4 кБайт. Таблица размещения файлов имеет вид, приведенный в таблице 4. Последовательность обращений к API-функциям файловой системы задана таблицей 5.
Таблица 4 – Состояние таблицы размещения файлов (FAT) для задачи 3
№ кл.
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
Зн.
3
0
EOF
0
8
0
0
10
EOF
0
13
0
14
15
EOF
Файл
D
D
E
E
E
F
F
F
F
Свободно
2к
1к
3к
Объем кластера – 4 кБайта.
Таблица 5 – Последовательность вызовов API-функций файловой системы для задачи 3
Задание
Файл
Функция
8
B
Создать
F
Запись 5к
F
Удалить
B
Запись 2к
Размер кластера жесткого диска составляет 4 кБайт. Таблица размещения файлов имеет вид, приведенный в таблице 4. Последовательность обращений к API-функциям файловой системы задана таблицей 5.
Таблица 4 – Состояние таблицы размещения файлов (FAT) для задачи 3
№ кл.
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
Зн.
3
0
EOF
0
8
0
0
10
EOF
0
13
0
14
15
EOF
Файл
D
D
E
E
E
F
F
F
F
Свободно
2к
1к
3к
Объем кластера – 4 кБайта.
Таблица 5 – Последовательность вызовов API-функций файловой системы для задачи 3
Задание
Файл
Функция
9
A
Создать
D
Удалить
E
Запись 2к
F
Запись 5к
Размер кластера жесткого диска составляет 4 кБайт. Таблица размещения файлов имеет вид, приведенный в таблице 4. Последовательность обращений к API-функциям файловой системы задана таблицей 5.
Таблица 4 – Состояние таблицы размещения файлов (FAT) для задачи 3
№ кл.
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
Зн.
3
0
EOF
0
8
0
0
10
EOF
0
13
0
14
15
EOF
Файл
D
D
E
E
E
F
F
F
F
Свободно
2к
1к
3к
Объем кластера – 4 кБайта.
Таблица 5 – Последовательность вызовов API-функций файловой системы для задачи 3
Задание
Файл
Функция
10
B
Создать
F
Запись 5к
E
Запись 2к
B
Удалить
Размер кластера жесткого диска составляет 4 кБайт. Таблица размещения файлов имеет вид, приведенный в таблице 4. Последовательность обращений к API-функциям файловой системы задана таблицей 5.
Таблица 4 – Состояние таблицы размещения файлов (FAT) для задачи 3
№ кл.
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
Зн.
3
0
EOF
0
8
0
0
10
EOF
0
13
0
14
15
EOF
Файл
D
D
E
E
E
F
F
F
F
Свободно
2к
1к
3к
Объем кластера – 4 кБайта.
Таблица 5 – Последовательность вызовов API-функций файловой системы для задачи 3
Задание
Файл
Функция
11
A
Создать
Е
Запись 2к
A
Запись 3к
E
Удалить
Размер кластера жесткого диска составляет 4 кБайт. Таблица размещения файлов имеет вид, приведенный в таблице 4. Последовательность обращений к API-функциям файловой системы задана таблицей 5.
Таблица 4 – Состояние таблицы размещения файлов (FAT) для задачи 3
№ кл.
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
Зн.
3
0
EOF
0
8
0
0
10
EOF
0
13
0
14
15
EOF
Файл
D
D
E
E
E
F
F
F
F
Свободно
2к
1к
3к
Объем кластера – 4 кБайта.
Таблица 5 – Последовательность вызовов API-функций файловой системы для задачи 3
Задание
Файл
Функция
12
D
Запись 4к
К
Создать
E
Запись 1к
К
Запись 7к
Размер кластера жесткого диска составляет 4 кБайт. Таблица размещения файлов имеет вид, приведенный в таблице 4. Последовательность обращений к API-функциям файловой системы задана таблицей 5.
Таблица 4 – Состояние таблицы размещения файлов (FAT) для задачи 3
№ кл.
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
Зн.
3
0
EOF
0
8
0
0
10
EOF
0
13
0
14
15
EOF
Файл
D
D
E
E
E
F
F
F
F
Свободно
2к
1к
3к
Объем кластера – 4 кБайта.
Таблица 5 – Последовательность вызовов API-функций файловой системы для задачи 3
Задание
Файл
Функция
13
A
Создать
Е
Удалить
А
Запись 6к
F
Запись 8к
Размер кластера жесткого диска составляет 4 кБайт. Таблица размещения файлов имеет вид, приведенный в таблице 4. Последовательность обращений к API-функциям файловой системы задана таблицей 5.
Таблица 4 – Состояние таблицы размещения файлов (FAT) для задачи 3
№ кл.
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
Зн.
3
0
EOF
0
8
0
0
10
EOF
0
13
0
14
15
EOF
Файл
D
D
E
E
E
F
F
F
F
Свободно
2к
1к
3к
Объем кластера – 4 кБайта.
Таблица 5 – Последовательность вызовов API-функций файловой системы для задачи 3
Задание
Файл
Функция
14
D
Запись 4к
B
Создать
Е
Запись 1к
F
Запись 5к
Размер кластера жесткого диска составляет 4 кБайт. Таблица размещения файлов имеет вид, приведенный в таблице 4. Последовательность обращений к API-функциям файловой системы задана таблицей 5.
Таблица 4 – Состояние таблицы размещения файлов (FAT) для задачи 3
№ кл.
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
Зн.
3
0
EOF
0
8
0
0
10
EOF
0
13
0
14
15
EOF
Файл
D
D
E
E
E
F
F
F
F
Свободно
2к
1к
3к
Объем кластера – 4 кБайта.
Таблица 5 – Последовательность вызовов API-функций файловой системы для задачи 3
Задание
Файл
Функция
15
E
Удалить
F
Запись 4к
A
Создать
A
Запись 2к
Размер кластера жесткого диска составляет 4 кБайт. Таблица размещения файлов имеет вид, приведенный в таблице 4. Последовательность обращений к API-функциям файловой системы задана таблицей 5.
Таблица 4 – Состояние таблицы размещения файлов (FAT) для задачи 3
№ кл.
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
Зн.
3
0
EOF
0
8
0
0
10
EOF
0
13
0
14
15
EOF
Файл
D
D
E
E
E
F
F
F
F
Свободно
2к
1к
3к
Объем кластера – 4 кБайта.
Таблица 5 – Последовательность вызовов API-функций файловой системы для задачи 3
Задание
Файл
Функция
16
W
Создать
F
Запись 2к
E
Запись 5к
W
Запись 4к
Размер кластера жесткого диска составляет 4 кБайт. Таблица размещения файлов имеет вид, приведенный в таблице 4. Последовательность обращений к API-функциям файловой системы задана таблицей 5.
Таблица 4 – Состояние таблицы размещения файлов (FAT) для задачи 3
№ кл.
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
Зн.
3
0
EOF
0
8
0
0
10
EOF
0
13
0
14
15
EOF
Файл
D
D
E
E
E
F
F
F
F
Свободно
2к
1к
3к
Объем кластера – 4 кБайта.
Таблица 5 – Последовательность вызовов API-функций файловой системы для задачи 3
Задание
Файл
Функция
17
F
Запись 5к
D
Запись 7к
A
Создать
A
Запись 2к
Размер кластера жесткого диска составляет 4 кБайт. Таблица размещения файлов имеет вид, приведенный в таблице 4. Последовательность обращений к API-функциям файловой системы задана таблицей 5.
Таблица 4 – Состояние таблицы размещения файлов (FAT) для задачи 3
№ кл.
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
Зн.
3
0
EOF
0
8
0
0
10
EOF
0
13
0
14
15
EOF
Файл
D
D
E
E
E
F
F
F
F
Свободно
2к
1к
3к
Объем кластера – 4 кБайта.
Таблица 5 – Последовательность вызовов API-функций файловой системы для задачи 3
Задание
Файл
Функция
18
S
Создать
F
Запись 5к
F
Удалить
S
Запись 9к
Размер кластера жесткого диска составляет 4 кБайт. Таблица размещения файлов имеет вид, приведенный в таблице 4. Последовательность обращений к API-функциям файловой системы задана таблицей 5.
Таблица 4 – Состояние таблицы размещения файлов (FAT) для задачи 3
№ кл.
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
Зн.
3
0
EOF
0
8
0
0
10
EOF
0
13
0
14
15
EOF
Файл
D
D
E
E
E
F
F
F
F
Свободно
2к
1к
3к
Объем кластера – 4 кБайта.
Таблица 5 – Последовательность вызовов API-функций файловой системы для задачи 3
Задание
Файл
Функция
19
A
Создать
D
Удалить
F
Запись 6к
A
Запись 5к
Размер кластера жесткого диска составляет 4 кБайт. Таблица размещения файлов имеет вид, приведенный в таблице 4. Последовательность обращений к API-функциям файловой системы задана таблицей 5.
Таблица 4 – Состояние таблицы размещения файлов (FAT) для задачи 3
№ кл.
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
Зн.
3
0
EOF
0
8
0
0
10
EOF
0
13
0
14
15
EOF
Файл
D
D
E
E
E
F
F
F
F
Свободно
2к
1к
3к
Объем кластера – 4 кБайта.
Таблица 5 – Последовательность вызовов API-функций файловой системы для задачи 3
Задание
Файл
Функция
20
G
Создать
F
Запись 5к
E
Запись 6к
B
Удалить
Практическая работа №14
Тема: «Автоматизация через MS Excel» (10 часов)
ЦЕЛЬ РАБОТЫ: изучить особенности автоматизации через MS Excel, как основного прикладного программного обеспечения
Автоматизация через MS Excel (на примре OpenOffice.org Calc) Часть 1.
Задание 1:
Создайте новую рабочую книгу OOo Calc, назовите ее «Практика_14».
На Листе1 в левой верхней части листа заполните таблицу данными так, как приведено на рис. 1. Верхняя левая ячейка таблицы соответствует ячейке А1.
Рис. 1.
Используя функцию Автозаполнение, создайте таблицу согласно рис. 2.
Сохраните таблицу.
Рис. 2.
Задание 2:
Убедитесь, что активный является английский шрифт.
Установите табличный курсор в ячейке D2.
Щелкните левой кнопкой мыши в строке формул.
Введите знак равенства, а затем формулу: В2*С2. Нажмите клавишу .
Убедитесь, что в ячейке D2 появилось числовое значение рис. 3.
Рис. 3.
Сохраните таблицу.
Задание 3:
Установите табличный курсор в ячейку Е2.
В строке формул наберите знак равенства.
С помощью указателя мыши активизируйте ячейку D2. Вокруг ячейки появится движущаяся рамка, а в строке формул отобразиться адрес ячейки.
В строке формул наберите оператор «умножить».
Активизируйте ячейку В19 и убедитесь, что ее адрес также отразился в строке формул рис. 4.
Рис. 4
Нажмите клавишу .
Убедитесь, что в ячейке Е2 появилось числовое значение.
Сохраните таблицу.
Задание 4:
Выделите ячейку с формулой, рассчитывающей величину дохода для 1-го изделия (D2).
Используя метод автозаполнения, скопируйте формулу для определения расходов по новым изделиям.
Убедитесь, что программа изменила ссылки на ячейки в соответствии с новым положением формулы рис. 5.
Рис. 5.
Задание 5:
С помощью автозаполнения введите формулы для расчета суммы налога для каждого изделия. Убедитесь, что полученные формулы не верны. Таким образом необходимо, чтобы ссылка на ячейку В19 оставалась неизменной.
В ячейке Е2 измените формулу следующим образом: =D2*$B$19.
С помощью автозаполнения скопируйте данную формулу в остальные ячейки.
Просмотрите формулы и убедитесь, что относительные ссылки изменились, но ссылка на ячейку В19 осталась прежней рис.6.
Рис. 6.
Сохраните таблицу.
Задание 6:
Установите табличный курсор в ячейку общего количества изделий – В15.
В строке формул наберите следующее выражение: =SUM(В2:В11)
Нажмите клавишу .
Убедитесь, что в ячейке В15 появилось числовое значение.
Сохраните таблицу.
Задание 7:
Перейдите в ячейку С13 – эта ячейка будет содержать формулу для определения средней цены изделий.
Вызовите диалоговое окно Мастер функций. Для этого выберите команду Вставка => Функция или щелкните на кнопке Вставка функции , которая находится около строки формул.
В поле Категория выберите Все.
В поле Выберите функцию найдите функцию AVERAGE (СРЗНАЧ). Обратите внимание, что при выборе функции в левой части диалогового окна появляется список ее аргументов вместе с кратким описанием.
Ознакомьтесь с описанием функции, затем нажмите кнопку ОК
В окне Аргументы функции в поле Число 1 введите диапазон ячеек, среди значений которых требуется найти среднее значение.
Щелкните на кнопке сворачивания диалогового окна, расположенной в правой части поля Число 1. Это приведет к временному сворачиванию окна, в результате чего будет виден весь рабочий лист.
В рабочем листе выделите диапазон ячеек, среди значений которых требуется найти среднее: С2:С11.
Снова щелкните на кнопке сворачивания диалогового окна. Отобразится окно, в ее нижней части будет представлен результат вычисления функции
Поскольку вы собираетесь вычислить среднее значение только одного диапазона значений, нет необходимости вводить какие-нибудь дополнительные аргументы. Щелкните на кнопке ОК.
Убедитесь, что в ячейке С13 появилось числовое значение.
Задание для самостоятельной работы:
Используя соответствующие функции, рассчитайте значения суммарного дохода и суммы налога.
Сравните полученные результаты с рис. 7.
Рис. 7.
Сохраните таблицу.
Задание:
Самостоятельно определите назначение кнопок панели инструментов Форматирование.
Выделите ячейку А1 и выполните команду Вставка=>Строки.
В ячейку А1 введите заголовок таблицы Доходы от продажи изделий.
Отформатируйте данные таблицы так, как представлено на рис 8. Для того, чтобы расположить заголовок таблицы по центру, используйте инструмент Объединить и поместить в центре.
Рис. 8.
Сохраните таблицу.
Вопросы для самоконтроля
Перечислите основные типы данных электронной таблицы.
Какой тип данных является основой электронной таблицы?
Для чего может быть использована функция Автозаполнение?
В чем состоит суть форматирования числовых значений?
На что влияет форматирование числовых значений?
Каким образом осуществляется автоматическое форматирование чисел?Приведите примеры автоматического форматирования.
Какие числовые форматы устанавливаются с помощью данных кнопок:?
Для чего предназначены эти кнопки:?
Опишите способы вызова окна Формат ячеек.
Перечислите основные категории числовых форматов вкладки Число окна Формат ячеек.
Что входит в стилистическое форматирование ячеек? Каким образом оно осуществляется?
Перечислите элементы, которые могут содержаться в формулах.
С какого знака начинается ввод формулы?
Перечислите операторы, распознаваемые формулами.
Опишите порядок выполнения операторов.
В каком порядке происходит вычисление в формуле: 25+9^8-25/4+8*7 ?
Для чего необходимо использовать круглые скобки в формулах?
Как вычисляется формула, имеющая внешние и вложенные скобки?
В какой последовательности рассчитывается данная формула: (((25-14)*5)-((17+45)/12))*3 ?
Опишите способ ввода формул вручную.
Как ввести формулу в ячейку, используя метод указания ячеек?
Какие ссылки называют относительными?
Что такое абсолютная ссылка?
Что такое функции OOo Calc?
Какие возможности OOo Calc реализуют встроенные функции?
Перечислите типы функции в зависимости от аргументов, которые в них используются.
Какие данные могут быть использованы в качестве аргументов функции?
Опишите способы ввода функций.
Перечислите основные математические функции.
Как можно преобразовывать текстовые строки, используя текстовые функции?
Автоматизация через MS Excel (на примре OpenOffice.org Calc) Часть 2.
Таблицы с постоянными данными и формулами
Цель работы – ознакомление с табличным процессором; выполнение расчетов с использованием формул и постоянных данных; построение простейших диаграмм.
Задание 1.
Выполнить расчет цены продажи продукции по исходной информации (все показатели приведены в условных единицах):
Наименование товара
Цена закупки
Количество
Вес (кг)
Транспортные расходы
Торговая надбавка
Цена продажи
1 ед.
всего
на 1 ед.
всего
Товар 1
100
10
2,0
Товар 2
200
2
3,0
Товар 3
120
13
1,5
Товар 4
130
5
2,1
Товар 5
320
23
2,0
Товар 6
122
11
0,5
Товар 7
150
4
3,2
Товар 8
120
3
1,0
Величина транспортных расходов по доставке всех товаров составляет 1030. Транспортные расходы распределяются пропорционально весу товаров.
Торговая надбавка (на 1 ед.) устанавливается в размере 22% от затрат: [Цена закупки]+[Транспортные расходы].
[Цена продажи]=[Цена закупки]+[Транспортные расходы]+[Торговая надбавка].
При выполнении вычислений все значения округлить (а не установит формат отображения) до двух знаков после запятой.
Построить диаграмму по ценам закупки и продажи товаров, количеству.
Задание 2.
Рассчитать заработную плату для сотрудников предприятия. При проведении расчета принять следующие правила и исходные данные:
минимальная заработная плата – 140 руб.;
районный коэффициент – 15% от [3];
премия начисляется в размере:
15% от [3] для сотрудников категории 2 и 4,
10% от [3] для остальных сотрудников;
начислено всего [6]=[3]+[4]+[5];
облагаемая налогом сумма получается после вычитания из “Начислено всего” произведения “Количество налоговых льгот” на величину минимальной заработной платы: [7]=[6]-[1]*[Минимальная заработная плата]. Облагаемая налогом сумма принимается равной нулю, если в результате расчетов она будет отрицательной;
отчисление в пенсионный фонд – 1% от [6];
подоходный налог – 13% от [7];
удержано всего – [11]=[8]+[9]+[10];
сумма к выдаче – [12]=[6]–[11];
Для колонок [6], [11] и [12] вычислить среднее, минимальные и максимальные значения.
Таблица 1.
Заработная плата сотрудников предприятия
Фамилия И.О.
Количество налоговых льгот
Категория
Начислено по видам оплат
Начислено всего
Облагаемая налогом сумма
Удержано и учтено
Сумма к выдаче
Начислено
районный коэффициент
премия
аванс
подоходный налог
пенсионный фонд
всего
1
2
3
4
5
6
7
8
9
10
11
12
Никифоров И.Л.
1
3
5 700
2 500
Петрова М.Р.
2
2
8 400
4 200
Самойлова А.О.
1
1
3 500
1 700
Певцов Н.А.
2
4
4 860
1 700
Кузбасов Е.Р.
4
3
3 020
1 200
Романова Н.Г.
1
1
3 930
1 350
Симонов С.П.
3
2
3 700
1 200
Зубова Е.А.
2
4
8 500
3 500
Автоматизация через MS Excel (на примре OpenOffice.org Calc) Часть 3.
Задание 1. Рассчитать заработную плату для сотрудников предприятия (таблица из прошлой лабораторной)
Фамилия И.О.
Количество налоговых льгот
Категория
Начислено по видам оплат
Начислено всего
Облагаемая налогом сумма
Удержано и учтено
Сумма к выдаче
начислено
районный коэффициент
премия
аванс
подоходный налог
пенсионный фонд
всего
1
2
3
4
5
6
7
8
9
10
11
12
Никифоров И.Л.
1
3
5 700
2 500
Петрова М.Р.
2
2
8 400
4 200
Самойлова А.О.
1
1
3 500
1 700
Певцов Н.А.
2
4
4 860
1 700
Кузбасов Е.Р.
4
3
3 020
1 200
Романова Н.Г.
1
1
3 930
1 350
Симонов С.П.
3
2
3 700
1 200
Зубова Е.А.
2
4
8 500
3 500
ВСЕГО
При проведении расчета принять следующие правила и исходные данные:
минимальная заработная плата – 140 руб.;
районный коэффициент – 70% от [3];
премия начисляется в размере:
15% от [3] для сотрудников категории 2 и 4,
10% от [3] для остальных сотрудников;
начислено всего [6]=[3]+[4]+[5];
облагаемая налогом сумма получается после вычитания из “Начислено всего” произведения “Количество налоговых льгот” на величину минимальной заработной платы: [7]=[6]-[1]*[Минимальная заработная плата]. Облагаемая налогом сумма принимается равной нулю, если в результате расчетов она будет отрицательной;
отчисление в пенсионный фонд – 1% от [6];
подоходный налог – 13% от [7];
удержано всего – [11]=[8]+[9]+[10];
сумма к выдаче – [12]=[6]–[11];
Для колонок [6], [11] и [12] вычислить среднее, минимальные и максимальные значения.
Задание 2. Разработать книгу для расчета заработной платы сотрудников фирмы. Расчет для каждого сотрудника оформить на отдельном листе. Расчетным листам присвоить имя – фамилия сотрудника. Количество сотрудников должно быть не менее пяти.
Нормативные данные разместить на первом листе «Нормативы».
Последним в книге разместить лист «Итог» с итоговой информацией: общими суммами соответствующих значений по статьям.
Для каждого сотрудника подготовить к печати расчетный литок (задать область печати), в котором на печать должны выводиться только статьи начислений (удержаний) и начисленные и удержанные суммы.
Структура расчетного листа сотрудника представлена в таблице.
В таблице указываются индивидуальные значения для каждого сотрудника:
разряд может принимать значения от 1 до 5;
увеличение базового оклада за вредность – в % от [4].
Увеличение базового оклада за работу в отрасли одинаково для всех и устанавливается равным 25% от [4].
Оклад вычисляется как сумма значений [4], [5] и [6].
Надбавки к должностному окладу за разряд и за выслугу лет устанавливаются в % от [7] в соответствии с нормативными данными.
Таблица. Структура расчетного листа сотрудника
<Ф.И.О.>, например Иванов И.И.
Сумма
Значение
Дата приема на работу
01.03.1997
Разряд
4
Базовый оклад
970
Увеличение должностного оклада за работу в отрасли
Увеличение должностного оклада за вредность
10%
Должностной оклад
Надбавка к окладу за разряд
Надбавка к окладу за выслугу лет
Районный коэффициент
Всего начислено
Подоходный налог
Выдано аванса
3000
К выдаче
Районный коэффициент устанавливается в % к сумме позиций [7], [8], [9].
Всего начислено равно сумме позиций [7], [8], [9] и [10].
Подоходный налог устанавливается в % от [11] согласно нормативным данным.
Значение «К выдаче» равно [11]-[12]-[13].
Нормативные данные:
Расчетная дата – последнее число текущего месяца.
Увеличение оклада за работу в отрасли – 22%.
Районный коэффициент – 70%.
Подоходный налог - 13%.
Надбавка к окладу за разряд:
Разряд
% надбавки
1
0
2
8
3
16
4
20
5
25
Надбавка к окладу за выслугу лет:
Стаж работы (лет)
Надбавка (%)
От
До
0
1
0
1
2
5
2
5
10
5
10
15
10
15
20
15
и более
24
При расчете стажа работы считать, что один год содержит 365 дней.
Разработанная таблица должна допускать изменение всех исходных данных без изменения формул.
При выполнении вычислений все значения округлить до двух знаков после запятой.
Построить гистограмму с накоплением, отражающую для каждого сотрудника составляющие его заработной платы. На этой же диаграмме отобразить в виде графика начисленный подоходный налог.
Автоматизация через MS Excel (на примре OpenOffice.org Calc) Часть 4.
Сортировка и фильтрация данных в табличном процессоре
Электронные таблицы можно использовать для организации работы с небольшими базами данных.
Сортировка данных – базовая операция любой таблицы, целью которой является упорядочивание данных. Сортировка осуществляется на том же листе и выполняется командой Данные/Сортировка с установкой необходимых параметров.
Особенно важно осуществлять сортировку в списке, т.к. многие операции группировки данных, которые доступны из меню Данные, можно использовать только после проведения операции сортировки.
Задание 1.
Имеется информация о продажах товаров фирмами:
Дата заказа
Заказа
Фирма
Товар
Ед.изм.
Кол.
Цена
Сумма
Налог
Дата поставки
24.07.02
Мечта
Клей обойный
пачка
43
134
06.09.02
05.12.02
Соловей
Плинтус
п.м.
12
23
30.11.02
Приз
Гвозди
кг
50
12
23.12.02
12.03.03
Приз
Клей обойный
пачка
34
134
16.09.02
Приз
Обои
п.м.
32
120
24.10.02
28.02.03
Соловей
Линолеум
п.м.
120
342
31.01.02
Мечта
Гвозди
кг
48
12
15.02.03
29.10.02
Мечта
Потолок подв.
м^2
154
64
08.11.02
12.07.02
Приз
Обои
п.м.
165
120
04.03.03
22.02.03
Соловей
Плинтус
п.м.
34
23
31.08.02
Соловей
Обои
п.м.
234
120
06.09.02
17.09.02
Мечта
Клей обойный
пачка
65
134
25.09.02
19.02.02
Приз
Краска
кг
23
87
06.08.02
Мечта
Обои
п.м.
60
120
23.09.02
29.10.02
Соловей
Плинтус
п.м.
45
23
07.11.02
02.09.02
Мечта
Обои
п.м.
211
120
18.09.02
16.12.02
Приз
Краска
кг
57
87
28.12.02
05.03.03
Приз
Клей обойный
пачка
23
134
13.01.03
Соловей
Гвозди
кг
59
12
17.02.03
05.10.02
Соловей
Ручка дверная
шт.
23
31
12.10.02
06.03.03
Мечта
Линолеум
п.м.
123
342
24.03.03
16.08.02
Приз
Обои
п.м.
78
120
22.06.02
Мечта
Клей обойный
пачка
38
134
14.08.02
04.12.02
Мечта
Плинтус
п.м.
40
23
14.02.02
Соловей
Плинтус
п.м.
56
23
11.12.02
Приз
Ручка дверная
шт.
84
31
14.01.03
04.02.03
Соловей
Потолок подв.
м^2
421
64
06.03.02
Мечта
Краска
кг
26
87
04.04.02
17.11.02
Приз
Краска
кг
78
87
23.11.02
04.03.03
Соловей
Клей обойный
пачка
234
134
15.03.02
Соловей
Обои
п.м.
398
120
18.03.02
17.10.02
Мечта
Обои
п.м.
234
120
29.10.02
12.02.03
Приз
Гвозди
кг
12
12
18.02.03
29.01.03
Мечта
Линолеум
п.м.
567
342
23.11.02
Приз
Потолок подв.
м^2
20
64
30.11.02
29.10.02
Приз
Клей обойный
пачка
34
134
23.11.02
26.03.03
Мечта
Обои
п.м.
24
120
Создать электронную книгу «Анализ работы фирм», на первом листе разместить исходную информацию. Дать листу имя «Исходная информация». Оформить данные в виде списка. Вычислить по формулам значения столбцов:
Сумма = Количество*Цена
Налог = 20%*Цена
Сделать копии списка на листы Л1, Л2, Л3, Л4.
На листе Л1 выполнить сортировку данных по товарам, фирмам, количеству.
На листе Л2 для фирм подвести итоги по количеству, сумме и налогу.
На листе Л3 отобразить данные только по выполненным заказам, выполнить сортировку данных по фирмам, дате поставки.
На листе Л4 отобразить данные о товарах, заказанных во II квартале 2002 г. Выполнить сортировку списка по фирмам.
Автоматизация через MS Excel (на примре OpenOffice.org Calc) Часть 5.
Сводные таблицы
Сводная таблица – итог агрегирования информации определенных видов на основе данных списков, других сводных таблиц, внешних баз данных, нескольких разрозненных областей данных электронной таблицы.
Сводная таблица обеспечивает различные способы агрегирования информации.
Для создания сводных таблиц используется Мастер сводных таблиц, вызываемый командой Данные/Сводная таблица/Запустить.
Мастер сводных таблиц осуществляет построение сводной таблицы в несколько этапов:
Указание вида источника сводной таблицы – в зависимости от вида источника изменяется содержание последующих этапов работы по созданию сводной таблицы.
Указание диапазона ячеек, содержащего исходные данные.
Построение макета сводной таблицы.
Выбор места расположения и параметров сводной таблицы.
Внимание! Для выполнения работы используются исходные данные лабораторной работы «Сортировка и фильтрация данных».
Задание:
1. В книге «Анализ работы фирм» добавить листы СТ1, СТ2, СТ3, СТ4 и построить на них сводные таблицы:
СТ1. Продажи товаров по фирмам за отчетный период
Товар
Фирма
Итого
Приз
Соловей
Мечта
Обои
Клей обойный
Плинтус
Потолок подвесной
Гвозди
Ручка дверная
Краска
Линолеум
СТ2. Продажи фирмы (по выбору)
Фирма
<Название>
Обои
Клей обойный
Плинтус
Потолок подвесной
Гвозди
Ручка дверная
Краска
Линолеум
СТ3. Налоги фирм по кварталам за 2002 год
Сумма по полю Налог
Фирма
Итого
Год
Дата заказа
Приз
Соловей
Мечта
2002
1 кв.
2 кв.
3 кв.
4 кв.
Итого
2. Построить диаграммы, приведенные ниже.
Для построения диаграмм требуется создание сводных таблиц.
Практическая работа №15
Тема: «Служба каталогов Active Directory. Базовые термины и концепции. Архитектура Active Directory. Система именований Active Directory. Тиражирование в Active Directory» (8 часов)
ЦЕЛЬ РАБОТЫ: освоение технологии ручной настройки службы каталогов Windows 2003 Server Active Directory.
Теоретические сведения
1. Назначение службы каталогов Active Directory
Каталог (справочник) может хранить различную информацию, относящуюся к пользователям, группам, компьютерам, сетевым принтерам, общим файловым ресурсам и так далее будем называть все это объектами. Каталог хранит также информацию о самом объекте, или его свойства, называемые атрибутами. Например, атрибутами, хранимыми в каталоге о пользователе, может быть имя его руководителя, номер телефона, адрес, имя для входа в систему, пароль, группы, в которые он входит, и многое другое. Для того чтобы сделать хранилище каталога полезным для пользователей, должны существовать службы, которые будут взаимодействовать с каталогом. Например, можно использовать каталог как хранилище информации, по которой можно аутентифицировать пользователя, или как место, куда можно послать запрос для того, чтобы найти информацию об объекте.
Active Directory отвечает не только за создание и организацию этих небольших объектов, но также и за большие объекты, такие как домены, OU (организационные подразделения) и сайты.
Служба каталогов Active Directory (сокращенно AD) обеспечивает эффективную работу сложной корпоративной среды, предоставляя следующие возможности:
единая регистрация в сети; Пользователи могут регистрироваться в сети с одним именем и паролем и получать при этом доступ ко всем сетевым ресурсам и службам (службы сетевой инфраструктуры, службы файлов и печати, серверы приложений и баз данных и т. д.);
безопасность информации. Средства аутентификации и управления доступом к ресурсам, встроенные в службу Active Directory, обеспечивают централизованную защиту сети;
централизованное управление. Администраторы могут централизованно управлять всеми корпоративными ресурсами;
администрирование с использованием групповых политик. При загрузке компьютера или регистрации пользователя в системе выполняются требования групповых политик; их настройки хранятся в объектах групповых политик (GPO) и применяются ко всем учетным записям пользователей и компьютеров, расположенных в сайтах, доменах или организационных подразделениях;
интеграция с DNS. Функционирование служб каталогов полностью зависит от работы службы DNS. В свою очередь серверы DNS могут хранить информацию о зонах в базе данных Active Directory;
расширяемость каталога. Администраторы могут добавлять в схему каталога новые классы объектов или добавлять новые атрибуты к существующим классам;
масштабируемость. Служба Active Directory может охватывать как один домен, так и множество доменов, объединенных в дерево доменов, а из нескольких деревьев доменов может быть построен лес;
репликация информации. В службе Active Directory используется репликация служебной информации в схеме со многими ведущими (multi-master), что позволяет модифицировать БД Active Directory на любом контроллере домена. Наличие в домене нескольких контроллеров обеспечивает отказоустойчивость и возможность распределения сетевой нагрузки;
гибкость запросов к каталогу. БД Active Directory может использоваться для быстрого поиска любого объекта AD, используя его свойства (например, имя пользователя или адрес его электронной почты, тип принтера или его местоположение и т. п.);
стандартные интерфейсы программирования. Для разработчиков программного обеспечения служба каталогов предоставляет доступ ко всем возможностям (средствам) каталога и поддерживает принятые стандарты и интерфейсы программирования (API).
В Active Directory может быть создан широкий круг различных объектов. Объект представляет собой уникальную сущность внутри Каталога и обычно обладает многими атрибутами, которые помогают описывать и распознавать его. Учетная запись пользователя является примером объекта. Этот тип объекта может иметь множество атрибутов, таких как имя, фамилия, пароль, номер телефона, адрес и многие другие. Таким же образом общий принтер тоже может быть объектом в Active Directory и его атрибутами являются его имя, местоположение и т.д. Атрибуты объекта не только помогают определить объект, но также позволяют вам искать объекты внутри Каталога.
2. Терминология
Служба каталогов системы Windows Server построена на общепринятых технологических стандартах. Изначально для служб каталогов был разработан стандарт X.500, который предназначался для построения иерархических древовидных масштабируемых справочников с возможностью расширения как классов объектов, так и наборов атрибутов (свойств) каждого отдельного класса. Однако практическая реализация этого стандарта оказалась неэффективной с точки зрения производительности. Тогда на базе стандарта X.500 была разработана упрощенная (облегченная) версия стандарта построения каталогов, получившая название LDAP (Lightweight Directory Access Protocol). Протокол LDAP сохраняет все основные свойства X.500 (иерархическая система построения справочника, масштабируемость, расширяемость), но при этом позволяет достаточно эффективно реализовать данный стандарт на практике. Термин "lightweight" ("облегченный") в названии LDAP отражает основную цель разработки протокола: создать инструментарий для построения службы каталогов, которая обладает достаточной функциональной мощью для решения базовых задач, но не перегружена сложными технологиями, делающими реализацию служб каталогов неэффективной. В настоящее время LDAP является стандартным методом доступа к информации сетевых каталогов и играет роль фундамента во множестве продуктов, таких как системы аутентификации, почтовые программы и приложения электронной коммерции. Сегодня на рынке присутствует более 60 коммерческих серверов LDAP, причем около 90% из них представляют собой самостоятельные серверы каталогов LDAP, а остальные предлагаются в качестве компонентов других приложений.
Протокол LDAP четко определяет круг операций над каталогами, которые может выполнять клиентское приложение. Эти операции распадаются на пять групп:
установление связи с каталогом;
поиск в нем информации;
модификация его содержимого;
добавление объекта;
удаление объекта.
Кроме протокола LDAP служба каталогов Active Directory использует также протокол аутентификации Kerberos и службу DNS для поиска в сети компонент служб каталогов (контроллеры доменов, серверы глобального каталога, службу Kerberos и др.).
2.1 Домен
Основной единицей системы безопасности Active Directory является домен. Домен формирует область административной ответственности. База данных домена содержит учетные записи пользователей, групп и компьютеров. Большая часть функций по управлению службой каталогов работает на уровне домена (аутентификация пользователей, управление доступом к ресурсам, управление службами, управление репликацией, политики безопасности).
Имена доменов Active Directory формируются по той же схеме, что и имена в пространстве имен DNS. И это не случайно. Служба DNS является средством поиска компонент домена в первую очередь контроллеров домена.
Контроллеры домена специальные серверы, которые хранят соответствующую данному домену часть базы данных Active Directory. Основные функции контроллеров домена:
хранение БД Active Directory (организация доступа к информации, содержащейся в каталоге, включая управление этой информацией и ее модификацию);
синхронизация изменений в AD (изменения в базу данных AD могут быть внесены на любом из контроллеров домена, любые изменения, осуществляемые на одном из контроллеров, будут синхронизированы c копиями, хранящимися на других контроллерах);
аутентификация пользователей (любой из контроллеров домена осуществляет проверку полномочий пользователей, регистрирующихся на клиентских системах).
Настоятельно рекомендуется в каждом домене устанавливать не менее двух контроллеров домена во-первых, для защиты от потери БД Active Directory в случае выхода из строя какого-либо контроллера, во-вторых, для распределения нагрузки между контроллерами.
2.2 Дерево
Дерево является набором доменов, которые используют единое связанное пространство имен. В этом случае "дочерний" домен наследует свое имя от "родительского" домена. Дочерний домен автоматически устанавливает двухсторонние транзитивные доверительные отношения с родительским доменом. Доверительные отношения означают, что ресурсы одного из доменов могут быть доступны пользователям других доменов.
Пример дерева Active Directory изображен на рисунке. В данном примере домен company.ru является доменом Active Directory верхнего уровня. От корневого домена отходят дочерние домены it.company.ru и fin.company.ru. Эти домены могут относиться соответственно к ИТ-службе компании и финансовой службе. У домена it.company.ru есть поддомен dev.it.company.ru, созданный для отдела разработчиков ПО ИТ-службы.
Корпорация Microsoft рекомендует строить Active Directory в виде одного домена. Построение дерева, состоящего из многих доменов необходимо в следующих случаях:
для децентрализации администрирования служб каталогов (например, в случае, когда компания имеет филиалы, географически удаленные друг от друга, и централизованное управление затруднено по техническим причинам);
для повышения производительности (для компаний с большим количеством пользователей и серверов актуален вопрос повышения производительности работы контроллеров домена);
для более эффективного управления репликацией (если контроллеры доменов удалены друг от друга, то репликация в одном может потребовать больше времени и создавать проблемы с использованием несинхронизированных данных);
для применения различных политик безопасности для различных подразделений компании;
при большом количестве объектов в БД Active Directory.
2.3 Лес
Наиболее крупная структура в Active Directory. Лес объединяет деревья, которые поддерживают единую схему (схема Active Directory набор определений типов, или классов, объектов в БД Active Directory). В лесе между всеми доменами установлены двухсторонние транзитивными доверительными отношения, что позволяет пользователям любого домена получать доступ к ресурсам всех остальных доменов, если они имеют соответствующие разрешения на доступ. По умолчанию, первый домен, создаваемый в лесе, считается его корневым доменом, в корневом домене хранится схема AD.
Новые деревья в лесе создаются в том случае, когда необходимо построить иерархию доменов с пространством имен, отличным от других пространств леса. В примере на рис. 1 российская компания могла открыть офис за рубежом и для своего зарубежного отделения создать дерево с доменом верхнего уровня company.com. При этом оба дерева являются частями одного леса с общим "виртуальным" корнем.
При управлении деревьями и лесами нужно помнить два очень важных момента:
первое созданное в лесу доменов дерево является корневым деревом, первый созданный в дереве домен называется корневым доменом дерева (tree root domain);
первый домен, созданный в лесу доменов, называется корневым доменом леса (forest root domain), данный домен не может быть удален (он хранит информацию о конфигурации леса и деревьях доменов, его образующих).
2.4 Организационные подразделения (ОП).
Организационные подразделения (Organizational Units, OU) контейнеры внутри AD, которые создаются для объединения объектов в целях делегирования административных прав и применения групповых политик в домене. ОП существуют только внутри доменов и могут объединять только объекты из своего домена. ОП могут быть вложенными друг в друга, что позволяет строить внутри домена сложную древовидную иерархию из контейнеров и осуществлять более гибкий административный контроль. Кроме того, ОП могут создаваться для отражения административной иерархии и организационной структуры компании.
2.5 Глобальный каталог
Глобальный каталог является перечнем всех объектов, которые существуют в лесу Active Directory. По умолчанию, контроллеры домена содержат только информацию об объектах своего домена. Сервер Глобального каталога является контроллером домена, в котором содержится информация о каждом объекте (хотя и не обо всех атрибутах этих объектов), находящемся в данном лесу.
2.6 Именование объектов
В службе каталогов должен быть механизм именования объектов, позволяющий однозначно идентифицировать любой объект каталога. В каталогах на базе протокола LDAP для идентификации объекта в масштабе всего леса используется механизм отличительных имен (Distinguished Name, DN). В Active Directory учетная запись пользователя с именем User домена company.ru, размещенная в стандартном контейнере Users, будет иметь следующее отличительное имя: "DC=ru, DC=company, CN=Users, CN=User".
Обозначения:
DC (Domain Component) указатель на составную часть доменного имени;
OU (Organizational Unit) указатель на организационное подразделение (ОП);
CN (Common Name) указатель на общее имя.
Если отличительное имя однозначно определяет объект в масштабе всего леса, то для идентификации объекта относительно контейнера, в котором данный объект хранится, существует относительное отличительное имя (Relative Distinguished Name, RDN). Для пользователя User из предыдущего примера RDN-имя будет иметь вид "CN=User".
Кроме имен DN и RDN, используется основное имя объекта (User Principal Name, UPN). Оно имеет формат @. Для того же пользователя из примера основное имя будет выглядеть как [ Cкачайте файл, чтобы посмотреть ссылку ].
Имена DN, RDN могут меняться, если объект перемещается из одного контейнера AD в другой. Для того чтобы не терять ссылки на объекты при их перемещении в лесе, всем объектам назначается глобально уникальный идентификатор (Globally Unique Identifier, GUID), представляющий собой 128-битное число.
3. Установка первого контроллера домена
Установка начинается с запуска из командной строки мастера установки Active Directory dcpromo.
Нажимаем кнопку "ОК" и видим стартовую страницу мастера
Далее идет предупреждение, что операционные системы Windows 95, Windows NT 4.0 SP3 и более ранние не смогут функционировать в доменах Windows 2003 . Заметим, что в доменах на базе Windows 2000 такой проблемы нет (да и в доменах на базе windows 2003 эта проблема решаема).
Затем выбираем варианты установки контроллера домена в новом домене и создания нового домена в новом лесу.
Следующий шаг выбор имени домена (для Active Directory это будет корневой домен). В нашем примере выберем имя world.ru.
Зададим NetBIOS-имя домена (по умолчанию, будет предложена левая часть полного имени домена, выбранного на предыдущем шаге). В нашем примере WORLD.
Далее мастер предложит выбрать место на жестких дисках для размещения базы данных Active Directory, журнала транзакций это БД и папки системного тома SYSVOL. Системный том обязательно должен быть размещен на разделе с файловой системой NTFS.
После этого мастер установки на основе параметров сетевой конфигурации сервера ищет в сети DNS-сервер, на котором имеется зона с указанным нами именем домена, причем в данной зоне должны быть разрешены динамические обновления. Если такой сервер DNS в сети не найден, то мастер предложит установить службу DNS на данном сервере и создать соответствующую зону.
Далее предлагается выбрать уровень разрешений создаваемого домена. Заметим, что если мы выберем наиболее высокий уровень, то в таком домене не смогут существовать компьютеры с операционными системами, более ранними, чем Windows 2000.
Затем задаем пароль администратора при запуске системы в режиме восстановления служб каталогов, данный режим используется для восстановления БД Active Directory из резервной копии.
Затем следует экран со сводкой информации о создаваемом домене и параметрах контроллера домена. На этом шаге в случае обнаруженной ошибки в конфигурации можно вернуться назад и исправить ошибку.
После этого начинается работа по созданию базы данных AD и наполнению ее нужными записями.
Последний шаг нажать кнопку "Готово" и перезагрузить сервер.
Важное замечание. Если при создании первого контроллера в домене перед запуском мастера в локальной базе SAM данного сервера были какие-либо учетные записи пользователей и групп, то все они импортируются в созданную БД Active Directory с сохранением своих имен и паролей, в том числе и учетная запись администратора сервера, которая становится учетной записью администратора домена (а если это самый первый домен в лесе, то и администратором предприятия и администратором схемы).
Практическая часть
Задание 1. Проверка настройки параметров протокола TCP/IP
У первого компьютера в каждой паре должны быть такие настройки параметров TCP/IP:
IP-адрес и маска подсети - из таблицы распределения адресов и имен компьютеров
Предпочитаемый сервер DNS - ссылка на самого себя
Альтернативный сервер DNS - ссылка на второй компьютер в паре и компьютер преподавателя (если вы занимаетесь в компьютерном классе)
Задание 2. Проверка настройки службы DNS
У первого компьютера в каждой паре должны быть такие настройки службы DNS
Зоны прямого просмотра отсутствуют
Зоны обратного просмотра - зона для IP-сети компьютерного класса (стандартная основная, динамические обновления разрешены)
Сервер-пересыльщик (если вы занимаетесь в компьютерном классе) - компьютер преподавателя
Задание 3. Запуск мастера создания контроллера домена
Запустите мастер создания контроллера домена:
Кнопка "Пуск" - "Выполнить" - ввести команду dcpromo
Нажмите "Далее"
Появится предупреждение, что некоторые операционные системы не удовлетворяют требованиям безопасности, установленным в Windows 2003. Нажмите "Далее"
Выбор типа контроллера домена:
Контроллер домена в новом домене
Добавочный контроллер в существующем домене
Выберите первый вариант: "Контроллер домена в новом домене"
Варианты создания нового домена:
Новый домен в новом лесу
Новый дочерний домен в существующем доменном дереве
Новое доменное дерево в существующем лесу
Если вы работаете в классе с единым деревом доменов, то выберите второй вариант: "^ Новый дочерний домен в существующем доменном дереве"
Если вы работаете в классе с изолированными лесами или изучаете курс самостоятельно, то выберите первый вариант: "^ Новый домен в новом лесу"
Новое имя домена
Введите полное имя вашего домена (из таблицы распределения адресов и имен компьютеров)
Пример: world.ru
NetBIOS-имя домена
Введите NetBIOS-имя вашего домена
Пример: WORLD
Размещение базы данных Active Directory
Укажите папки для размещения файлов БД и журналов транзакций AD
Размещение системного тома
Укажите папку для размещения системного тома (обязательно раздел с файловой системой NTFS)
Тестирование службы DNS
Мастер установки DNS не обнаружил сервера DNS, отвечающего необходимым требованиям и предлагает три варианты решения проблемы.
Выберите второй вариант:
"^ Установить и настроить DNS-сервер на этом компьютере и выбрать этот DNS-сервер в качестве предпочитаемого DNS-сервера"
Уровень разрешений на доступ к контроллеру домена
Выберите первый вариант: "^ Разрешения, совместимые с серверами пред-Windows 2000"
Пароль администратора для режима восстановления
Введите пароль администратора для входа в систему при работе в режиме восстановления служб каталогов
Итоговая сводка
Изучите сводку выбранных вами параметров установки контроллера домена.Если что-то задано неверно, то можно вернуться к соответствующему шагу и сделать нужные исправления.
Если все верно, нажмите кнопку "Далее"
Мастер начнет создавать на компьютере контроллер домена.
Завершение работы мастера
Перезагрузите компьютер по окончании работы мастера
Задание 4. Преобразование DNS-зон, созданных первым контроллером домена
Преобразуйте DNS-зону, соответствующую вашему домену AD, из AD-интегрированной в стандартную основную
Откройте консоль DNS.
Откройте Свойства созданных на вашем DNS-сервере зон (зоны вида world.ru и _msdcs.world.ru).
На странице Свойств для каждой зоны нажмите кнопку "Изменить" для параметра "Тип", убрать галочку в поле "Хранить зону в Active Directory", нажать "ОК" два раза.
Снова откройте Свойства зон, для параметра "Динамические обновления" задайте значение "Небезопасные и безопасные", нажмите "ОК", закройте консоль DNS.
Задание 5. Отключение строгих политик учетных записей (выполняется на первом созданном контроллере домена)
Внимание! В реальной рабочей системе ни в коем случае не отключайте строгие политики доступа. В упражнении это делается только для изучения соответствующего материала.
Запустите консоль "Политика безопасности домена"
Раскрыть "Параметры безопасности" - "Политики учетных записей" - "Политика паролей"
Установить значения параметров:
"Мин. длина пароля" - 0 символов
"Мин. срок действия пароля" - 0 дней
"Пароли должны отвечать требованиям сложности" - Отключен
"Требовать неповторяемости паролей" - 0 хранимых паролей
Примените политики безопасности: в командной строке ввести команду gpupdate
Задание 6. Разрешение локального входа в систему простым пользователям домена
Внимание! В реальной рабочей системе ни в коем случае не отключайте строгие политики доступа. В упражнении это делается только для изучения соответствующего материала.
Запустите консоль "^ Политика безопасности контроллеров домена"
Далее:
"Параметры безопасности" – "Локальные политики" – "Настройка прав пользователей" – "Локальный вход в систему"
Добавьте группу "Пользователи домена"
Закройте все окна
Примените политики безопасности
Практическая работа №16
Тема: «Изучение работы протоколов безопасности ОС и Интернет» (6 часов)
ЦЕЛЬ РАБОТЫ: исследовать структуры данных и функции WRK, используемые для обеспечения безопасности.
Ключевые слова: [ Cкачайте файл, чтобы посмотреть ссылку ], [ Cкачайте файл, чтобы посмотреть ссылку ], [ Cкачайте файл, чтобы посмотреть ссылку ], [ Cкачайте файл, чтобы посмотреть ссылку ], [ Cкачайте файл, чтобы посмотреть ссылку ], [ Cкачайте файл, чтобы посмотреть ссылку ], [ Cкачайте файл, чтобы посмотреть ссылку ], [ Cкачайте файл, чтобы посмотреть ссылку ], [ Cкачайте файл, чтобы посмотреть ссылку ], [ Cкачайте файл, чтобы посмотреть ссылку ], [ Cкачайте файл, чтобы посмотреть ссылку ], [ Cкачайте файл, чтобы посмотреть ссылку ], [ Cкачайте файл, чтобы посмотреть ссылку ], [ Cкачайте файл, чтобы посмотреть ссылку ], [ Cкачайте файл, чтобы посмотреть ссылку ], [ Cкачайте файл, чтобы посмотреть ссылку ], [ Cкачайте файл, чтобы посмотреть ссылку ], [ Cкачайте файл, чтобы посмотреть ссылку ], [ Cкачайте файл, чтобы посмотреть ссылку ], [ Cкачайте файл, чтобы посмотреть ссылку ], [ Cкачайте файл, чтобы посмотреть ссылку ], [ Cкачайте файл, чтобы посмотреть ссылку ], [ Cкачайте файл, чтобы посмотреть ссылку ], [ Cкачайте файл, чтобы посмотреть ссылку ], [ Cкачайте файл, чтобы посмотреть ссылку ], [ Cкачайте файл, чтобы посмотреть ссылку ], [ Cкачайте файл, чтобы посмотреть ссылку ], [ Cкачайте файл, чтобы посмотреть ссылку ], [ Cкачайте файл, чтобы посмотреть ссылку ], [ Cкачайте файл, чтобы посмотреть ссылку ], [ Cкачайте файл, чтобы посмотреть ссылку ], [ Cкачайте файл, чтобы посмотреть ссылку ], [ Cкачайте файл, чтобы посмотреть ссылку ], [ Cкачайте файл, чтобы посмотреть ссылку ], [ Cкачайте файл, чтобы посмотреть ссылку ], [ Cкачайте файл, чтобы посмотреть ссылку ], [ Cкачайте файл, чтобы посмотреть ссылку ], [ Cкачайте файл, чтобы посмотреть ссылку ], [ Cкачайте файл, чтобы посмотреть ссылку ], [ Cкачайте файл, чтобы посмотреть ссылку ], [ Cкачайте файл, чтобы посмотреть ссылку ], [ Cкачайте файл, чтобы посмотреть ссылку ], [ Cкачайте файл, чтобы посмотреть ссылку ]
Задание 1. Определить идентификатор защиты SID текущего пользователя.
Указания к выполнению.
1. Узнать SID текущего пользователя можно несколькими способами.
Способ 1. При помощи утилиты Process Explorer.
Запустите в виртуальной машине утилиту Process Explorer. Сделайте двойной щелчок на процессе explorer.exe (или любом другом процессе, запущенном текущим пользователем). Когда откроется окно свойств процесса, перейдите на вкладку Security:
[ Cкачайте файл, чтобы посмотреть картинку ]
На рисунке вверху красным цветом выделен SID пользователя – владельца процесса. В данном случае, процесс запущен пользователем с именем Administrator, который является администратором системы, о чем говорит, во первых, RID = 500 (последнее число в SID, см. статью базы знаний Microsoft "Хорошо известные идентификаторы безопасности в операционных системах Windows"1[ Cкачайте файл, чтобы посмотреть ссылку ]), во вторых, то, что пользователь входит в группу администраторов (BUILTIN\Administrators).
Способ 2. При помощи утилиты PsGetSid.
Утилита PsGetSid специально предназначена для получения SID разных учетных записей. Данная утилита входит в набор PsTools и её можно скачать с сайта Sysinternals.
Запустите утилиту PsGetSid на виртуальной машине в командной строке. В качестве параметра утилиты можно указать либо имя учетной записи, либо SID. На рисунке ниже продемонстрированы оба варианта:
[ Cкачайте файл, чтобы посмотреть картинку ]
Удостоверьтесь, что SID полностью совпадают в первом и втором способах.
Задание 2. Определить тип файловой системы.
Указания к выполнению.
1. Следующие задания в данной лабораторной работе основываются на предположении, что системный раздел (логический диск) на виртуальной машине отформатирован с использованием файловой системы NTFS. Проверить, так ли это, можно следующим образом. Дважды щелкните на ярлыке My Computer – щелкните правой кнопкой на локальном диске C – выберите пункт Properties. На рисунке ниже обведен тип файловой системы логического диска:
[ Cкачайте файл, чтобы посмотреть картинку ]
Задание 3. Создать программу, которая открывает и читает файл.
Указания к выполнению.
1. Создайте пустой проект с названием, например, ReadFile, в Visual Studio и добавьте файл исходного кода main.cpp (см. лабораторную работу 2 "Процессы и потоки", задание 3).
Сохраните проект в папку c:\Programs\ReadFile.
2. Вставьте в main.cpp следующий исходный код (модифицированный пример из MSDN):
#include
#include
#include
#define BUFFERSIZE 81
void __cdecl _tmain(int argc, TCHAR *argv[])
{
HANDLE hFile; // Дескриптор файла
DWORD dwBytesRead = 0; // Количество прочитанных байт
char ReadBuffer[BUFFERSIZE] = {0}; // Буфер для чтения
char FileName[] = "input.txt"; // Имя файла
// Точка останова
//__asm int 3
hFile = CreateFile(FileName, // Имя файла для открытия
GENERIC_READ, // Открываем для чтения
FILE_SHARE_READ, // Файл можно открывать другим процессам
NULL, // Атрибуты безопасности по умолчанию
OPEN_EXISTING, // Открытие существующего файла
FILE_ATTRIBUTE_NORMAL, // Атрибуты файла - обычные
NULL); // Без шаблона
if (hFile == INVALID_HANDLE_VALUE)
{
_tprintf("Terminal failure: unable to open file \"%s\" for read\n", FileName);
system("pause");
return;
}
// Читаем на один символ меньше, чем помещается в буфер,
// чтобы сохранить место под завершающий нулевой символ
if( ReadFile(hFile, ReadBuffer, BUFFERSIZE-1, &dwBytesRead, NULL) == FALSE)
{
printf("Terminal failure: Unable to read from file\n");
CloseHandle(hFile);
system("pause");
return;
}
if (dwBytesRead > 0 && dwBytesRead <= BUFFERSIZE-1)
{
ReadBuffer[dwBytesRead]='\0'; // символ с кодом "0"
_tprintf("Data read from %s (%d bytes): \n\n", FileName, dwBytesRead);
printf("%s\n\n", ReadBuffer);
}
else if (dwBytesRead == 0)
{
_tprintf(TEXT("No data read from file %s\n"), FileName);
}
else
{
printf("\n ** Unexpected value for dwBytesRead ** \n");
}
CloseHandle(hFile);
system("pause");
}
Приведенная программа открывает файл input.txt при помощи функции CreateFile, пытается прочитать из него строку символов при помощи функции ReadFile (не более 80 символов) и выводит её на экран.
3. Создайте текстовый файл input.txt в папке проекта, в которой расположен файл main.cpp (например, c:\Programs\ReadFile\ReadFile).
Наберите в нем какой нибудь текст латиницей и сохраните файл.
4. Установите свойства проекта (см. лабораторную работу 2 "Процессы и потоки", задание 3):
конфигурацию Release;
Библиотека времени выполнения – Многопоточная (/MT).
5. Проверьте работоспособность созданного приложения (клавиша F5):
[ Cкачайте файл, чтобы посмотреть картинку ]
Задание 4. В приложении поставить точку останова.
Указания к выполнению.
1. В созданном проекте уберите комментарии (//) перед оператором, обозначающим точку останова:
_asm int 3
2. Запустите проект. Программа должна прерваться в точке останова. Её выполнение можно продолжить, нажав кнопку Продолжить:
[ Cкачайте файл, чтобы посмотреть картинку ]
Задание 5. Запустить приложение ReadFile на виртуальной машине, установить точку останова на функции SeAccessCheck.
Указания к выполнению.
1. Исполняемый файл созданного в предыдущем пункте приложения ReadFile.exe после компиляции проекта должен находиться в следующей папке:
c:\Programs\ReadFile\Release.
Скопируйте исполняемый файл на виртуальную машину.
Скопируйте текстовый файл input.txt на виртуальную машину в ту же папку, что и исполняемый файл.
2. Запустите исполняемый файл. Выполнение программы должно прерываться, а управление перейти к отладчику WinDbg.
3. Установите в отладчике точку останова на функции SeAccessCheck для процесса ReadFile.exe. Для этого сначала следует определить адрес объекта EPROCESS для процесса ReadFile.exe при помощи команды:
!process 0 0 ReadFile.exe
[ Cкачайте файл, чтобы посмотреть картинку ]
В данном случае адрес равен 0x8222F630.
Установить точку останова для функции SeAccessCheck для процесса ReadFile.exe можно при помощи следующей команды:
bp /p 8222F630 nt!SeAccessCheck
Проверьте, что команда выполнена верно: в меню Edit отладчика выберите пункт Breakpoints:
[ Cкачайте файл, чтобы посмотреть картинку ]
Замечание. После перезапуска процесса ReadFile.exe его адрес может поменяться. В этом случае придется удалить старую точку останова и повторить нахождение адреса объекта EPROCESS и установки новой точки останова.
4. Продолжите выполнение, нажав F5 в отладчике. Должна сработать точка останова на функции SeAccessCheck и откроется исходный код этой функции.
Задание 6. Исследовать маркер доступа (access token).
Указания к выполнению.
1. Функция SeAccessCheck проверяет возможность доступа процесса с заданным маркером доступа к объекту с определенным дескриптором защиты (см. лекцию 13 "Безопасность в Windows").
2. Адрес маркера доступа процесса содержится в поле PrimaryToken параметра SubjectSecurityContext. Чтобы узнать этот адрес, откройте в отладчике окно Locals (Alt+3) и раскройте параметр SubjectSecurityContext (нажмите "плюс" слева от имени параметра):
[ Cкачайте файл, чтобы посмотреть картинку ]
На рисунке видно, что адрес в поле PrimaryToken равен 0xE1249870.
3. Просмотрите содержимое структуры _TOKEN, по адресу, определенному в предыдущем пункте. Введите команду:
dt _token 0xE1249870
[ Cкачайте файл, чтобы посмотреть картинку ]
В этой структуре содержится вся информация о маркере. Например, ID маркера хранится в поле TokenID типа _LUID по смещению 0x010 от начала структуры. Чтобы узнать ID маркера, введите следующую команду:
dt _LUID 0xE1249870+0x010
[ Cкачайте файл, чтобы посмотреть картинку ]
В данном примере TokenID равен 0x963D2.
SID учетной записи пользователя владельца маркера и групп, в которые он входит, хранятся по адресу в поле UserAndGroups:
dt _SID_AND_ATTRIBUTES 0xe1249a00
[ Cкачайте файл, чтобы посмотреть картинку ]
В первом поле структуры _SID_AND_ATTRIBUTES хранится адрес SID. Чтобы узнать какой SID расположен по данному адресу, можно воспользоваться следующей командой:
!sid 0xe1249a58
[ Cкачайте файл, чтобы посмотреть картинку ]
Очевидно, что это SID учетной записи с именем Administrator, ведь процесс ReadFile запускался из под неё.
Структуры _SID_AND_ATTRIBUTES для групп, в которые входит учетная запись, расположены следом за той же структурой для учетной записи. Чтобы вывести адреса SID групп, можно набрать следующую команду:
dd 0xe1249a00
[ Cкачайте файл, чтобы посмотреть картинку ]
Структура _SID_AND_ATTRIBUTES для учетной записи Administrator выделена на рисунке красным, для первой группы, в которую входит Administrator – синим.
Чтобы узнать SID групп, можно снова воспользоваться командой !sid:
[ Cкачайте файл, чтобы посмотреть картинку ]
Этот SID соответствует группе Users (см. статью MSDN "Хорошо известные идентификаторы безопасности в операционных системах Windows").
4. В отладчике WinDbg имеется специальная команда для удобного отображения содержимого маркера доступа – !token.
Введите эту команду, указав адрес маркера доступа:
!token 0xE1249870
[ Cкачайте файл, чтобы посмотреть картинку ]
Сравните информацию, выводимую командой !token, с данными, полученными в предыдущем пункте путем анализа полей структуры TOKEN.
Задание 7. Исследовать дескриптор защиты (security descriptor).
Указания к выполнению.
1. Адрес дескриптора защиты объекта (в данном случае – файла) содержится в параметре SecurityDescriptor функции SeAccessCheck:
[ Cкачайте файл, чтобы посмотреть картинку ]
2. Дескриптор защиты, зная его адрес, можно посмотреть при помощи команды !sd:
!sd 0xE186ABC0 1
Параметр 1 в конце указывает, что нужно по возможности указывать имена для SID.
[ Cкачайте файл, чтобы посмотреть картинку ]
Уровень доступа к объекту определяется в списке DACL маской доступа (поля Mask выделены на рисунке красным). В маске отдельные биты отвечают за определенные виды доступа.
Выделяют стандартные права доступа (Standard Access Rights), применимые к большинству объектов, и специфичные для объектов права доступа (Object-Specific Access Rights) (см. лекцию 9 "Безопасность в Windows"). Описание стандартных прав доступа и соответствующих значений масок приведено в файле public\sdk\inc\ntseapi.h (строки 72–166), а также описаны в статье MSDN "Access Mask Format"2[ Cкачайте файл, чтобы посмотреть ссылку ]. Описание прав доступа для файлов и каталогов имеется в файле public\sdk\inc\ntioapi.h (строки 41–108), а также в статье MSDN "Access Mask"3[ Cкачайте файл, чтобы посмотреть ссылку ].
Для примера рассмотрим две маски, используемые для файла input.txt (см. рисунок выше): 0x001F01FF и 0x001200A9.
Представим маску 0x001F01FF в двоичном виде и укажем, за что отвечает каждая единица:
[ Cкачайте файл, чтобы посмотреть картинку ]
Как видно из рисунка, маска 0x001F01FF обозначает полный доступ к файлу. Такой доступ имеют члены группы Administrators и системная учетная запись Система (System).
Рассмотрим вторую маску доступа 0x001200A9:
[ Cкачайте файл, чтобы посмотреть картинку ]
Таким образом, члены группы Пользователи (Users) имеют доступ только на чтение и исполнение.
Задания для самостоятельного выполнения
Задание 1. Изменить права доступа на файл и зафиксировать изменения в DACL дескриптора защиты файла.
Указания к выполнению.
1. В виртуальной машине измените права доступа на файл input.txt. Для этого в свойствах файла перейдите на вкладку Security и сделайте необходимые изменения (добавьте/удалите пользователей и/или группы, измените их права):
[ Cкачайте файл, чтобы посмотреть картинку ]
Замечание. Для осуществления некоторых действий (например, удаления пользователей) может потребоваться отказаться от наследования прав доступа объекта родителя (папки). Для этого нажмите кнопку Advanced – снимите флажок Allow inheritable permissions – в появившемся окне нажмите кнопку Copy:
[ Cкачайте файл, чтобы посмотреть картинку ]
2. Просмотрите дескриптор безопасности файла, повторив действия из задания 7 основной части работы.
Задание 2. Исследовать функцию SeAccessCheck.
Указания к выполнению.
1. Выполните трассировку функции SeAccessCheck, пользуясь материалом лекции 9 "Безопасность в Windows" и документацией WRK.
Задание 3. Исследовать расположение в памяти структуры SECURITY_DESCRIPTOR.
Указания к выполнению.
1. Выясните расположение в памяти структуры SECURITY_DESCRIPTOR, пользуясь информацией, изложенной в задании 7 данной лабораторной работы, материалом лекции 9 "Безопасность в Windows", документацией WRK и статьей MSDN "SECURITY_DESCRIPTOR"4[ Cкачайте файл, чтобы посмотреть ссылку ].
Практическая работа №17
Тема: «Шифрование. Симметричные алгоритмы» (6 часов)
ЦЕЛЬ РАБОТЫ: знакомство с криптографией; шифрами, их видами и свойствами.
Задачи:
Ознакомиться с криптографией
Рассмотреть шифры, их виды и свойства
То, что информация имеет ценность, люди осознали очень давно - недаром переписка сильных мира сего издавна была объектом пристального внимания их недругов и друзей. Тогда-то и возникла задача защиты этой переписки от чрезмерно любопытных глаз. Древние пытались использовать для решения этой задачи самые разнообразные методы, и одним из них была тайнопись - умение составлять сообщения таким образом, чтобы его смысл был недоступен никому кроме посвященных в тайну. Есть свидетельства тому, что искусство тайнописи зародилось еще в доантичные времена. На протяжении всей своей многовековой истории, вплоть до совсем недавнего времени, это искусство служило немногим, в основном верхушке общества, не выходя за пределы резиденций глав государств, посольств и - конечно же - разведывательных миссий. И лишь несколько десятилетий назад все изменилось коренным образом - информация приобрела самостоятельную коммерческую ценность и стала широко распространенным, почти обычным товаром. Ее производят, хранят, транспортируют, продают и покупают, а значит - воруют и подделывают - и, следовательно, ее необходимо защищать. Современное общество все в большей степени становится информационно обусловленным, успех любого вида деятельности все сильней зависит от обладания определенными сведениями и от отсутствия их у конкурентов. И чем сильней проявляется указанный эффект, тем больше потенциальные убытки от злоупотреблений в информационной сфере, и тем больше потребность в защите информации.
Широкое применение компьютерных технологий и постоянное увеличение объема информационных потоков вызывает постоянный рост интереса к криптографии. В последнее время увеличивается роль программных средств защиты информации, не требующих крупных финансовых затрат в сравнении с аппаратными криптосистемами. Современные методы шифрования гарантируют практически абсолютную защиту данных.
1. История криптографии
Перед тем как приступить к собственно истории криптографии необходимо прокомментировать ряд определений, так как без этого все нижесказанное будет "слегка" затруднительным для понимания:
Под конфиденциальностью понимают невозможность получения информации из преобразованного массива без знания дополнительной информации (ключа).
Аутентичность информации состоит в подлинности авторства и целостности.
Криптоанализ объединяет математические методы нарушения конфиденциальности и аутентичности информации без знания ключей.
Алфавит - конечное множество используемых для кодирования информации знаков.
Текст - упорядоченный набор из элементов алфавита. В качестве примеров алфавитов можно привести следующие:
алфавит Z33 - 32 буквы русского алфавита (исключая "ё") и пробел;
алфавит Z256 - символы, входящие в стандартные коды ASCII и КОИ-8;
двоичный алфавит - Z2 = {0, 1};
восьмеричный или шестнадцатеричный алфавит
Под шифром понимается совокупность обратимых преобразований множества открытых данных на множество зашифрованных данных, заданных алгоритмом криптографического преобразования. В шифре всегда различают два элемента: алгоритм и ключ. Алгоритм позволяет использовать сравнительно короткий ключ для шифрования сколь угодно большого текста.
Криптографическая система, или шифр представляет собой семейство Т обратимых преобразований открытого текста в шифрованный. Членам этого семейства можно взаимно однозначно сопоставить число k, называемое ключом. Преобразование Тk определяется соответствующим алгоритмом и значением ключа k.
Ключ - конкретное секретное состояние некоторых параметров алгоритма криптографического преобразования данных, обеспечивающее выбор одного варианта из совокупности всевозможных для данного алгоритма. Секретность ключа должна обеспечивать невозможность восстановления исходного текста по шифрованному.
Пространство ключей K - это набор возможных значений ключа.
Обычно ключ представляет собой последовательный ряд букв алфавита. Следует отличать понятия "ключ" и "пароль". Пароль также является секретной последовательностью букв алфавита, однако используется не для шифрования (как ключ), а для аутентификации субъектов.
Электронной (цифровой) подписью называется присоединяемое к тексту его криптографическое преобразование, которое позволяет при получении текста другим пользователем проверить авторство и целостность сообщения.
Зашифрованием данных называется процесс преобразования открытых данных в зашифрованные с помощью шифра, а расшифрованием данных - процесс преобразования закрытых данных в открытые с помощью шифра.
Дешифрованием называется процесс преобразования закрытых данных в открытые при неизвестном ключе и, возможно, неизвестном алгоритме, т.е. методами криптоанализа.
Шифрованием называется процесс зашифрования или расшифрования данных. Также термин шифрование используется как синоним зашифрования. Однако неверно в качестве синонима шифрования использовать термин "кодирование" (а вместо "шифра" - "код"), так как под кодированием обычно понимают представление информации в виде знаков (букв алфавита).
Криптостойкостью называется характеристика шифра, определяющая его стойкость к дешифрованию. Обычно эта характеристика определяется периодом времени, необходимым для дешифрования.
С распространением письменности в человеческом обществе появилась потребность в обмене письмами и сообщениями, что вызвало необходимость сокрытия содержимого письменных сообщений от посторонних. Методы сокрытия содержимого письменных сообщений можно разделить на три группы. К первой группе относятся методы маскировки или стеганографии, которые осуществляют сокрытие самого факта наличия сообщения; вторую группу составляют различные методы тайнописи или криптографии (от греческих слов ktyptos - тайный и grapho - пишу); методы третьей группы ориентированы на создание специальных технических устройств, засекречивания информации[ Cкачайте файл, чтобы посмотреть ссылку ].
В истории криптографии условно можно выделить четыре этапа: наивный, формальный, научный, компьютерный.
1. Для наивной криптографии (до начала XVI в) характерно использование любых, обычно примитивных, способов запутывания противника относительно содержания шифруемых текстов. На начальном этапе для защиты информации использовались методы кодирования и стеганографии, которые родственны, но не тождественны криптографии.
Большинство из используемых шифров сводились к перестановке или моноалфавитной подстановке. Одним из первых зафиксированных примеров является шифр Цезаря, состоящий в замене каждой буквы исходного текста на другую, отстоящую от нее в алфавите на определенное число позиций. Другой шифр, полибианский квадрат, авторство которого приписывается греческому писателю Полибию, является общей моноалфавитной подстановкой, которая проводится с помощью случайно заполненной алфавитом квадратной таблицей (для греческого алфавита размер составляет 5 Ч 5). Каждая буква исходного текста заменяется на букву, стоящую в квадрате снизу от нее.
2. Этап формальной криптографии (конец XV - начало XX вв) связан с появлением формализованных и относительно стойких к ручному криптоанализу шифров. В европейских странах это произошло в эпоху Возрождения, когда развитие науки и торговли вызвало спрос на надежные способы защиты информации. Важная роль на этом этапе принадлежит Леону Батисте Альберти, итальянскому архитектору, который одним из первых предложил многоалфавитную подстановку. Данный шифр, получивший имя дипломата XVI в. Блеза Вижинера, состоял в последовательном "сложении" букв исходного текста с ключом (процедуру можно облегчить с помощью специальной таблицы). Его работа "Трактат о шифре" считается первой научной работой по криптологии. Одной из первых печатных работ, в которой обобщены и сформулированы известные на тот момент алгоритмы шифрования, является труд "Полиграфия" немецкого аббата Иоганна Трисемуса. Ему принадлежат два небольших, но важных открытия: способ заполнения полибианского квадрата (первые позиции заполняются с помощью легко запоминаемого ключевого слова, остальные - оставшимися буквами алфавита) и шифрование пар букв (биграмм). Простым, но стойким способом многоалфавитной замены (подстановки биграмм) является шифр Плейфера, который был открыт в начале XIX в. Чарльзом Уитстоном. Уитстону принадлежит и важное усовершенствование - шифрование "двойным квадратом". Шифры Плейфера и Уитстона использовались вплоть до первой мировой войны, так как с трудом поддавались ручному криптоанализу. В XIX в. голландец Керкхофф сформулировал главное требование к криптографическим системам, которое остается актуальным и поныне: секретность шифров должна быть основана на секретности ключа, но не алгоритма.
Наконец, последним словом в донаучной криптографии, которое обеспечило еще более высокую криптостойкость, а также позволило автоматизировать процесс шифрования стали роторные криптосистемы.
Одной из первых подобных систем стала изобретенная в 1790 г. Томасом Джефферсоном механическая машина. Многоалфавитная подстановка с помощью роторной машины реализуется вариацией взаимного положения вращающихся роторов, каждый из которых осуществляет "прошитую" в нем подстановку.
Практическое распространение роторные машины получили только в начале XX в. Одной из первых практически используемых машин, стала немецкая Enigma, разработанная в 1917 г. Эдвардом Хеберном и усовершенствованная Артуром Кирхом. Роторные машины активно использовались во время второй мировой войны. Помимо немецкой машины Enigma использовались также устройства Sigaba (США), Турех (Великобритания), Red, Orange и Purple (Япония). Роторные системы - вершина формальной криптографии, так как относительно просто реализовывали очень стойкие шифры. Успешные криптоатаки на роторные системы стали возможны только с появлением ЭВМ в начале 40-х гг.
3. Главная отличительная черта научной криптографии (1930 - 60-е гг.) - появление криптосистем со строгим математическим обоснованием криптостойкости. К началу 30-х гг. окончательно сформировались разделы математики, являющиеся научной основой криптологии: теория вероятностей и математическая статистика, общая алгебра, теория чисел, начали активно развиваться теория алгоритмов, теория информации, кибернетика. Своеобразным водоразделом стала работа Клода Шеннона "Теория связи в секретных системах", которая подвела научную базу под криптографию и криптоанализ. С этого времени стали говорить о криптологии (от греческого kryptos - тайный и logos - сообщение) - науке о преобразовании информации для обеспечения ее секретности. Этап развития криптографии и криптоанализа до 1949 г. стали называть донаучной криптологией.
Шеннон ввел понятия "рассеивание" и "перемешивание", обосновал возможность создания сколь угодно стойких криптосистем[ Cкачайте файл, чтобы посмотреть ссылку ]. В 1960-х гг. ведущие криптографические школы подошли к созданию блочных шифров, еще более стойких по сравнению с роторными криптосистемами, однако допускающих практическую реализацию только в виде цифровых электронных устройств.
4. Компьютерная криптография (с 1970-х гг.) обязана своим появлением вычислительным средствам с производительностью, достаточной для реализации криптосистем, обеспечивающих при большой скорости шифрования на несколько порядков более высокую криптостойкость, чем "ручные" и "механические" шифры.
Первым классом криптосистем, практическое применение которых стало возможно с появлением мощных и компактных вычислительных средств, стали блочные шифры. В 70-е гг. был разработан американский стандарт шифрования DES. Один из его авторов, Хорст Фейстель описал модель блочных шифров, на основе которой были построены другие, более стойкие симметричные криптосистемы, в том числе отечественный стандарт шифрования ГОСТ 28147-89.
С появлением DES обогатился и криптоанализ, для атак на американский алгоритм был создано несколько новых видов криптоанализа (линейный, дифференциальный и т.д.), практическая реализация которых опять же была возможна только с появлением мощных вычислительных систем. В середине 70-х гг. ХХ столетия произошел настоящий прорыв в современной криптографии - появление асимметричных криптосистем, которые не требовали передачи секретного ключа между сторонами. Здесь отправной точкой принято считать работу, опубликованную Уитфилдом Диффи и Мартином Хеллманом в 1976 г. под названием "Новые направления в современной криптографии". В ней впервые сформулированы принципы обмена шифрованной информацией без обмена секретным ключом. Независимо к идее асимметричных криптосистем подошел Ральф Меркли. Несколькими годами позже Рон Ривест, Ади Шамир и Леонард Адлеман открыли систему RSA, первую практическую асимметричную криптосистему, стойкость которой была основана на проблеме факторизации больших простых чисел. Асимметричная криптография открыла сразу несколько новых прикладных направлений, в частности системы электронной цифровой подписи (ЭЦП) и электронных денег.
В 1980-90-е гг. появились совершенно новые направления криптографии: вероятностное шифрование, квантовая криптография и другие[ Cкачайте файл, чтобы посмотреть ссылку ]. Осознание их практической ценности еще впереди. Актуальной остается и задача совершенствования симметричных криптосистем. В этот же период были разработаны нефейстелевские шифры (SAFER, RC6 и др.), а в 2000 г. после открытого международного конкурса был принят новый национальный стандарт шифрования США - AES.
Таким образом, мы узнали следующее:
Криптология - это наука о преобразовании информации для обеспечения ее секретности, состоящая из двух ветвей: криптографии и криптоанализа.
Криптоанализ - наука (и практика ее применения) о методах и способах вскрытия шифров.
Криптография - наука о способах преобразования (шифрования) информации с целью ее защиты от незаконных пользователей. Исторически первой задачей криптографии была защита передаваемых текстовых сообщений от несанкционированного ознакомления с их содержанием, известного только отправителю и получателю, все методы шифрования являются лишь развитием этой философской идеи. С усложнением информационных взаимодействий в человеческом обществе возникли и продолжают возникать новые задачи по их защите, некоторые из них были решены в рамках криптографии, что потребовало развития новых подходов и методов.
2. Шифры, их виды и свойства
В криптографии криптографические системы (или шифры) классифицируются следующим образом:
симметричные криптосистемы
асимметричные криптосистемы
2.1 Симметричные криптографические системы
Под симметричными криптографическими системами понимаются такие криптосистемы, в которых для шифрования и расшифрования используется один и тот же ключ, хранящийся в секрете. Все многообразие симметричных криптосистем основывается на следующих базовых классах:
I. Моно - и многоалфавитные подстановки.
Моноалфавитные подстановки - это наиболее простой вид преобразований, заключающийся в замене символов исходного текста на другие (того же алфавита) по более или менее сложному правилу. В случае моноалфавитных подстановок каждый символ исходного текста преобразуется в символ шифрованного текста по одному и тому же закону. При многоалфавитной подстановке закон преобразования меняется от символа к символу. Один и тот же шифр может рассматриваться и как моно - и как многоалфавитный в зависимости от определяемого алфавита.
Например, самой простой разновидностью является прямая (простая) замена, когда буквы шифруемого сообщения заменяются другими буквами того же самого или некоторого другого алфавита. Таблица замены может иметь следующий вид:
Исходные символы шифруемого текста
а
б
в
г
д
е
ж
з
и
к
л
м
н
о
п
р
с
т
у
ф
Заменяющие символы
s
р
x
l
r
z
i
m
a
y
e
d
w
t
b
g
v
n
j
o
Используя эту таблицу, зашифруем слово победа. Получим следующее: btpzrs
II. Перестановки - также несложный метод криптографического преобразования, заключающийся в перестановке местами символов исходного текста по некоторому правилу. Шифры перестановок в настоящее время не используются в чистом виде, так как их криптостойкость недостаточна, но они входят в качестве элемента в очень многие современные криптосистемы.
Самая простая перестановка - написать исходный текст наоборот и одновременно разбить шифрограмму на пятерки букв[ Cкачайте файл, чтобы посмотреть ссылку ]. Например, из фразы
ПУСТЬ БУДЕТ ТАК, КАК МЫ ХОТЕЛИ
получится такой шифротекст:
ИЛЕТО ХЫМКА ККАТТ ЕДУБЪ ТСУП
В последней пятерке не хватает одной буквы. Значит, прежде чем шифровать исходное выражение, следует его дополнить незначащей буквой (например, О) до числа, кратного пяти, тогда шифрограмма, несмотря на столь незначительные изменения, будет выглядеть по-другому:
ОИЛЕТ ОХЫМК АККАТ ТЕДУБ ЬТСУП
III. Блочные шифры - семейство обратимых преобразований блоков (частей фиксированной длины) исходного текста. Фактически блочный шифр - это система подстановки на алфавите блоков. Она может быть моно - или многоалфавитной в зависимости от режима блочного шифра. Иначе говоря, при блочном шифровании информация разбивается на блоки фиксированной длины и шифруется поблочно. Блочные шифры бывают двух основных видов: шифры перестановки (transposition, permutation, P-блоки) и шифры замены (подстановки, substitution, S-блоки) [ Cкачайте файл, чтобы посмотреть ссылку ]. В настоящее время блочные шифры наиболее распространены на практике.
Американский стандарт криптографического закрытия данных DES (Data Encryption Standard), принятый в 1978 г., является типичным представителем семейства блочных шифров и одним из наиболее распространенных криптографических стандартов на шифрование данных, применяемых в США. Этот шифр допускает эффективную аппаратную и программную реализацию, причем возможно достижение скоростей шифрования до нескольких мегабайт в секунду. Первоначально метод, лежащий в основе данного стандарта, был разработан фирмой IBM для своих целей. Он был проверен Агентством Национальной Безопасности США, которое не обнаружило в нем статистических или математических изъянов.
DES имеет блоки по 64 бит и основан на 16-кратной перестановке данных, также для шифрования использует ключ в 56 бит. Существует несколько режимов DES: Electronic Code Book (ECB) и Cipher Block Chaining (CBC).56 бит - это 8 семибитовых символов, т.е. пароль не может быть больше чем восемь букв. Если вдобавок использовать только буквы и цифры, то количество возможных вариантов будет существенно меньше максимально возможных 256. Однако, данный алгоритм, являясь первым опытом стандарта шифрования, имеет ряд недостатков. За время, прошедшее после создания DES, компьютерная техника развилась настолько быстро, что оказалось возможным осуществлять исчерпывающий перебор ключей и тем самым раскрывать шифр. В 1998 г. была построена машина, способная восстановить ключ за среднее время в трое суток. Таким образом, DES, при его использовании стандартным образом, уже стал далеко не оптимальным выбором для удовлетворения требованиям скрытности данных. Позднее стали появляться модификации DESa, одной из которой является Triple Des ("тройной DES" - так как трижды шифрует информацию обычным DESом). Он свободен от основного недостатка прежнего варианта - короткого ключа: он здесь в два раза длиннее. Но зато, как оказалось, Triple DES унаследовал другие слабые стороны своего предшественника: отсутствие возможности для параллельных вычислений при шифровании и низкую скорость.
IV. Гаммирование - преобразование исходного текста, при котором символы исходного текста складываются с символами псевдослучайной последовательности (гамме), вырабатываемой по некоторому правилу. В качестве гаммы может быть использована любая последовательность случайных символов. Процедуру наложения гаммы на исходный текст можно осуществить двумя способами. При первом способе символы исходного текста и гаммы заменяются цифровыми эквивалентами, которые затем складываются по модулю k, где k - число символов в алфавите. При втором методе символы исходного текста и гаммы представляются в виде двоичного кода, затем соответствующие разряды складываются по модулю 2. Вместо сложения по модулю 2 при гаммировании можно использовать и другие логические операции.
Таким образом, симметричными криптографическими системами являются криптосистемы, в которых для шифрования и расшифрования используется один и тот же ключ. Достаточно эффективным средством повышения стойкости шифрования является комбинированное использование нескольких различных способов шифрования. Основным недостатком симметричного шифрования является то, что секретный ключ должен быть известен и отправителю, и получателю.
2.2 Асимметричные криптографические системы
Еще одним обширным классом криптографических систем являются так называемые асимметричные или двухключевые системы[ Cкачайте файл, чтобы посмотреть ссылку ]. Эти системы характеризуются тем, что для шифрования и для расшифрования используются разные ключи, связанные между собой некоторой зависимостью. Применение таких шифров стало возможным благодаря К. Шеннону, предложившему строить шифр таким способом, чтобы его раскрытие было эквивалентно решению математической задачи, требующей выполнения объемов вычислений, превосходящих возможности современных ЭВМ (например, операции с большими простыми числами и их произведениями). Один из ключей (например, ключ шифрования) может быть сделан общедоступным, и в этом случае проблема получения общего секретного ключа для связи отпадает. Если сделать общедоступным ключ расшифрования, то на базе полученной системы можно построить систему аутентификации передаваемых сообщений. Поскольку в большинстве случаев один ключ из пары делается общедоступным, такие системы получили также название криптосистем с открытым ключом. Первый ключ не является секретным и может быть опубликован для использования всеми пользователями системы, которые зашифровывают данные. Расшифрование данных с помощью известного ключа невозможно. Для расшифрования данных получатель зашифрованной информации использует второй ключ, который является секретным. Разумеется, ключ расшифрования не может быть определен из ключа зашифрования.
Центральным понятием в асимметричных криптографических системах является понятие односторонней функции.
Под односторонней функцией понимается эффективно вычислимая функция, для обращения которой (т.е. для поиска хотя бы одного значения аргумента по заданному значению функции) не существует эффективных алгоритмов.
Функцией-ловушкой называется односторонняя функция, для которой обратную функцию вычислить просто, если имеется некоторая дополнительная информация, и сложно, если такая информация отсутствует.
Все шифры этого класса основаны на так называемых функциях-ловушках[ Cкачайте файл, чтобы посмотреть ссылку ]. Примером такой функции может служить операция умножения. Вычислить произведение двух целых чисел очень просто, однако эффективных алгоритмов для выполнения обратной операции (разложения числа на целые сомножители) - не существует. Обратное преобразование возможно лишь, если известна, какая-то дополнительная информация.
В криптографии очень часто используются и так называемые хэш-функции. Хэш-функции - это односторонние функции, которые предназначены для контроля целостности данных. При передаче информации на стороне отправителя она хешируется, хэш передается получателю вместе с сообщением, и получатель вычисляет хэш этой информации повторно. Если оба хэша совпали, то это означает, что информация была передана без искажений. Тема хэш-функций достаточно обширна и интересна. И область ее применения гораздо больше чем просто криптография.
В настоящее время наиболее развитым методом криптографической защиты информации с известным ключом является RSA, названный так по начальным буквам фамилий его изобретателей (Rivest, Shamir и Adleman) и представляющий собой криптосистему, стойкость которой основана на сложности решения задачи разложения числа на простые сомножители. Простыми называются такие числа, которые не имеют делителей, кроме самих себя и единицы. А взаимно простыми называются числа, не имеющие общих делителей, кроме 1.
Для примера выберем два очень больших простых числа (большие исходные числа нужны для построения больших криптостойких ключей). Определим параметр n как результат перемножения р и q. Выберем большое случайное число и назовем его d, причем оно должно быть взаимно простым с результатом умножения (р - 1) * (q - 1). Найдем такое число e, для которого верно соотношение:
(e*d) mod ( (р - 1) * (q - 1)) = 1
(mod - остаток от деления, т.е. если e, умноженное на d, поделить на ( (р - 1) * (q - 1)), то в остатке получим 1).
Открытым ключом является пара чисел e и n, а закрытым - d и n. При шифровании исходный текст рассматривается как числовой ряд, и над каждым его числом мы совершаем операцию:
C (i) = (M (i) e) mod n
В результате получается последовательность C (i), которая и составит криптотекст.д.екодирование информации происходит по формуле
M (i) = (C (i) d) mod n
Как видите, расшифровка предполагает знание секретного ключа.
Попробуем на маленьких числах. Установим р=3, q=7. Тогда n=р*q=21. Выбираем d как 5. Из формулы (e*5) mod 12=1 вычисляем e=17. Открытый ключ 17, 21, секретный - 5, 21.
Зашифруем последовательность "2345":
C (2) = 217 mod 21 =11
C (3) = 317 mod 21= 12
C (4) = 417 mod 21= 16
C (5) = 517 mod 21= 17
Криптотекст - 11 12 16 17.
Проверим расшифровкой:
M (2) = 115 mod 21= 2
M (3) = 125 mod 21= 3
M (4) = 165 mod 21= 4
M (5) = 175 mod 21= 5
Как видим, результат совпал.
Криптосистема RSA широко применяется в Интернете. Когда пользователь подсоединяется к защищенному серверу, то здесь применяется шифрование открытым ключом с использованием идей алгоритма RSA. Криптостойкость RSA основывается на том предположении, что исключительно трудно, если вообще реально, определить закрытый ключ из открытого. Для этого требовалось решить задачу о существовании делителей огромного целого числа. До сих пор ее аналитическими методами никто не решил, и алгоритм RSA можно взломать лишь путем полного перебора.
Таким образом, асимметричные криптографические системы - это системы, в которых для шифрования и для расшифрования используются разные ключи. Один из ключей даже может быть сделан общедоступным. При этом расшифрование данных с помощью известного ключа невозможно.
Заключение
Криптография - наука о математических методах обеспечения конфиденциальности (невозможности прочтения информации посторонним) и аутентичности (целостности и подлинности авторства, а также невозможности отказа от авторства) информации. Изначально криптография изучала методы шифрования информации - обратимого преобразования открытого (исходного) текста на основе секретного алгоритма и ключа в шифрованный текст. Традиционная криптография образует раздел симметричных криптосистем, в которых зашифрование и расшифрование проводится с использованием одного и того же секретного ключа. Помимо этого раздела современная криптография включает в себя асимметричные криптосистемы, системы электронной цифровой подписи (ЭЦП), хеш-функции, управление ключами, получение скрытой информации, квантовую криптографию.
Криптография является одним из наиболее мощных средств обеспечения конфиденциальности и контроля целостности информации. Во многих отношениях она занимает центральное место среди программно-технических регуляторов безопасности. Например, для портативных компьютеров, физически защитить которые крайне трудно, только криптография позволяет гарантировать конфиденциальность информации даже в случае кражи.
Список литературы
Златопольский Д.М. Простейшие методы шифрования текста. /Д.М. Златопольский - М.: Чистые пруды, 2007
Молдовян А. Криптография. /А. Молдовян, Н.А. Молдовян, Б.Я. Советов - СПб: Лань, 2001
Яковлев А.В., Безбогов А.А., Родин В.В., Шамкин В.Н. Криптографическая защита информации. /Учебное пособие - Тамбов: Изд-во Тамб. гос. техн. ун-та, 2006
http://ru. wikipedia.org
http://cryptoblog.ru
http://Stfw.ru
http://www.contrterror. tsure.ru
Контрольная работа «КОДИРОВАНИЕ И ШИФРОВАНИЕ ИНФОРМАЦИИ»
Вариант 1
Кодирование информации
Дана кодовая таблица азбуки Морзе
[ Cкачайте файл, чтобы посмотреть картинку ]
Расшифруйте (декодируйте), что здесь написано (буквы отделены друг от друга пробелами)?
[ Cкачайте файл, чтобы посмотреть картинку ]
Закодируйте с помощью азбуки Морзе слова СТЕНОГРАФИЯ, ШИФРОВАНИЕ, КОДИРОВАНИЕ.
Дана таблица ASCII-кодов
Расшифровать слово : 48 41 54 52 48 58 (Шестнадцатеричная СС)
Зашифрованная пословица.
Разгадайте слова в предложениях (каждой букве соответствует определенная цифра).
Чтобы рубить дрова, нужен 14, 2, 3, 2, 7 , а чтобы полить огород – 10, 4, 5, 1, 6 .
Рыбаки сделали во льду 3, 7, 2, 7, 8, 9, 11 и стали ловить рыбу.
Самый колючий зверь в лесу – это 12, 13.
А теперь прочитайте пословицу:
1, 2, 3, 4, 5, 1, 6
7, 8, 9, 10, 11
9, 4, 7, 4, 13, 12, 14.
Заменяя каждую букву ее порядковым номером в алфавите, зашифруйте фразу: “Я УМЕЮ КОДИРОВАТЬ ИНФОРМАЦИЮ”. Зашифрованный текст должен быть записан без пропусков.
[ Cкачайте файл, чтобы посмотреть картинку ],
Дана кодировочная таблица (первая цифра кода – номер строки, вторая – номер столбца).
[ Cкачайте файл, чтобы посмотреть картинку ]
С помощью этой кодировочной таблицы зашифруйте фразу: Я УМЕЮ РАБОТАТЬ С ИНФОРМАЦИЕЙ!
Используя эту же кодировочную таблицу, расшифруйте текст: 25201538350304053835111503040038
Шифры замены.
Каждая буква алфавита может быть заменена любым числом из соответствующего столбика кодировочной таблицы.
[ Cкачайте файл, чтобы посмотреть картинку ]
Какие сообщения закодированы с помощью этой таблицы?
[ Cкачайте файл, чтобы посмотреть картинку ]
При помощи таблицы Вижинера зашифровать текст «Полиалфавитная замена». Ключ «Шифр»
Шифры перестановки
Закодировать методом Гамильтона (создать свой маршрут(ы)).
Аутентификация
Закодировать методом Гамильтона (создать свой маршрут(ы)).
Детектор движения
Аналитические методы шифрования
Зашифровать слово ТОМ
Ключ – матрица
1
1
3
-1
0
2
2
1
-2
A=
Выполнить проверку (расшифровать слово)
Вариант 2
Кодирование информации
Дана кодовая таблица азбуки Морзе
[ Cкачайте файл, чтобы посмотреть картинку ]
Расшифруйте (декодируйте), что здесь написано (буквы отделены друг от друга пробелами)?
[ Cкачайте файл, чтобы посмотреть картинку ]
Закодируйте с помощью азбуки Морзе слова КРИПТОАНАЛИЗ, КЛЮЧ, ШИФР
Дана таблица ASCII-кодов
Расшифровать слово при помощи таблицы ASCII rкодов:
32 2А 78 2В 79 3D 30.
Зашифрованная пословица.
Разгадайте слова в предложениях (каждой букве соответствует определенная цифра).
Чтобы рубить дрова, нужен 14, 2, 3, 2, 7 , а чтобы полить огород – 10, 4, 5, 1, 6 .
Рыбаки сделали во льду 3, 7, 2, 7, 8, 9, 11 и стали ловить рыбу.
Самый колючий зверь в лесу – это 12, 13.
А теперь прочитайте пословицу:
1, 2, 3, 4, 5, 1, 6
7, 8, 9, 10, 11
9, 4, 7, 4, 13, 12, 14.
Заменяя каждую букву ее порядковым номером в алфавите, зашифруйте фразу: “Я УМЕЮ ШИФРОВАТЬ ДАННЫЕ”. Зашифрованный текст должен быть записан без пропусков.
[ Cкачайте файл, чтобы посмотреть картинку ],
Дана кодировочная таблица (первая цифра кода – номер строки, вторая – номер столбца).
[ Cкачайте файл, чтобы посмотреть картинку ]
С помощью этой кодировочной таблицы зашифруйте фразу: Я УМЕЮ ШИФРОВАТЬ ДАННЫЕ!
Используя эту же кодировочную таблицу, расшифруйте текст: 25201538350304053835111503040038
Шифры замены.
Каждая буква алфавита может быть заменена любым числом из соответствующего столбика кодировочной таблицы.
[ Cкачайте файл, чтобы посмотреть картинку ]
Какие сообщения закодированы с помощью этой таблицы?
[ Cкачайте файл, чтобы посмотреть картинку ]
При помощи таблицы Вижинера зашифровать текст «Криптографическая защита». Ключ «Шифр»
Шифры перестановки
Закодировать методом Гамильтона (создать свой маршрут(ы)).
Криптоанализ
Закодировать методом Гамильтона (создать свой маршрут(ы)).
Криптостойкость
Аналитические методы шифрования
Зашифровать слово БАР
Ключ-матрица
0
1
2
2
2
1
3
1
-1
А=
Выполнить проверку (расшифровать слово)
Вариант 3
Кодирование информации
Дана кодовая таблица азбуки Морзе
[ Cкачайте файл, чтобы посмотреть картинку ]
Расшифруйте (декодируйте), что здесь написано (буквы отделены друг от друга пробелами)?
[ Cкачайте файл, чтобы посмотреть картинку ]
Закодируйте с помощью азбуки Морзе слова КРИПТОГРАФИЯ, ВИРУС, ДЕКОДИРОВАНИЕ
Дана таблица ASCII-кодов
Закодировать при помощи таблицы ASCII кодов следующий текст Password. Результат представить в шестнадцатеричной СС
Зашифрованная пословица.
Разгадайте слова в предложениях (каждой букве соответствует определенная цифра).
Чтобы рубить дрова, нужен 14, 2, 3, 2, 7 , а чтобы полить огород – 10, 4, 5, 1, 6 .
Рыбаки сделали во льду 3, 7, 2, 7, 8, 9, 11 и стали ловить рыбу.
Самый колючий зверь в лесу – это 12, 13.
А теперь прочитайте пословицу:
1, 2, 3, 4, 5, 1, 6
7, 8, 9, 10, 11
9, 4, 7, 4, 13, 12, 14.
Заменяя каждую букву ее порядковым номером в алфавите, зашифруйте фразу: “Я УМЕЮ ШИФРОВАТЬ ДАННЫЕ”. Зашифрованный текст должен быть записан без пропусков.
[ Cкачайте файл, чтобы посмотреть картинку ],
Дана кодировочная таблица (первая цифра кода – номер строки, вторая – номер столбца).
[ Cкачайте файл, чтобы посмотреть картинку ]
С помощью этой кодировочной таблицы зашифруйте фразу: Я УМЕЮ ШИФРОВАТЬ ДАННЫЕ!
Используя эту же кодировочную таблицу, расшифруйте текст: 25201538350304053835111503040038
Шифры замены.
Каждая буква алфавита может быть заменена любым числом из соответствующего столбика кодировочной таблицы.
[ Cкачайте файл, чтобы посмотреть картинку ]
Какие сообщения закодированы с помощью этой таблицы?
[ Cкачайте файл, чтобы посмотреть картинку ]
При помощи таблицы Вижинера зашифровать текст «Методы шифрования». Ключ «Шифр»
Шифры перестановки
Закодировать методом Гамильтона (создать свой маршрут(ы)).
Кодирование
Закодировать методом Гамильтона (создать свой маршрут(ы)).
Декодирование
Аналитические методы шифрования
Зашифровать слово ГАМ
Ключ – матрица
-1
0
4
0
2
2
3
1
-2
А=
Выполнить проверку (расшифровать слово)
Вариант 4
Кодирование информации
Дана кодовая таблица азбуки Морзе
[ Cкачайте файл, чтобы посмотреть картинку ]
Расшифруйте (декодируйте), что здесь написано (буквы отделены друг от друга пробелами)?
[ Cкачайте файл, чтобы посмотреть картинку ]
Закодируйте с помощью азбуки Морзе слова ШИФРОВАНИЕ, ШИФР, МАСКИРОВКА
Дана таблица ASCII-кодов
Закодировать при помощи таблицы ASCII кодов следующий текст Windows. Результат представить в шестнадцатеричной СС
Зашифрованная пословица.
Разгадайте слова в предложениях (каждой букве соответствует определенная цифра).
Чтобы рубить дрова, нужен 14, 2, 3, 2, 7 , а чтобы полить огород – 10, 4, 5, 1, 6 .
Рыбаки сделали во льду 3, 7, 2, 7, 8, 9, 11 и стали ловить рыбу.
Самый колючий зверь в лесу – это 12, 13.
А теперь прочитайте пословицу:
1, 2, 3, 4, 5, 1, 6
7, 8, 9, 10, 11
9, 4, 7, 4, 13, 12, 14.
Заменяя каждую букву ее порядковым номером в алфавите, зашифруйте фразу: “Я УМЕЮ КОДИРОВАТЬ ДАННЫЕ ДАННЫЕ”. Зашифрованный текст должен быть записан без пропусков.
[ Cкачайте файл, чтобы посмотреть картинку ],
Дана кодировочная таблица (первая цифра кода – номер строки, вторая – номер столбца).
[ Cкачайте файл, чтобы посмотреть картинку ]
С помощью этой кодировочной таблицы зашифруйте фразу: Я УМЕЮ КОДИРОВАТЬ ДАННЫЕ!
Используя эту же кодировочную таблицу, расшифруйте текст: 25201538350304053835111503040038
Шифры замены.
Каждая буква алфавита может быть заменена любым числом из соответствующего столбика кодировочной таблицы.
[ Cкачайте файл, чтобы посмотреть картинку ]
Какие сообщения закодированы с помощью этой таблицы?
[ Cкачайте файл, чтобы посмотреть картинку ]
При помощи таблицы Вижинера зашифровать текст «Криптографическая защита». Ключ «Шифр»
Шифры перестановки
Закодировать методом Гамильтона (создать свой маршрут(ы)).
Маскировка
Закодировать методом Гамильтона (создать свой маршрут(ы)).
Шифрование
Аналитические методы шифрования
Зашифровать слово МИР
Ключ – матрица
1
0
4
0
2
2
5
-1
4
А=
Выполнить проверку (расшифровать слово)
Вариант 5
Кодирование информации
Дана кодовая таблица азбуки Морзе
[ Cкачайте файл, чтобы посмотреть картинку ]
Расшифруйте (декодируйте), что здесь написано (буквы отделены друг от друга пробелами)?
[ Cкачайте файл, чтобы посмотреть картинку ]
Закодируйте с помощью азбуки Морзе слова ПАРОЛЬ, ЭКРАНИРОВАНИЕ, КОДИРОВАНИЕ
Дана таблица ASCII-кодов
Расшифровать слово при помощи таблицы ASCII rкодов:
49 20 6С 6F 76 65 20 79 6F 75
Зашифрованная пословица.
Разгадайте слова в предложениях (каждой букве соответствует определенная цифра).
Чтобы рубить дрова, нужен 14, 2, 3, 2, 7 , а чтобы полить огород – 10, 4, 5, 1, 6 .
Рыбаки сделали во льду 3, 7, 2, 7, 8, 9, 11 и стали ловить рыбу.
Самый колючий зверь в лесу – это 12, 13.
А теперь прочитайте пословицу:
1, 2, 3, 4, 5, 1, 6
7, 8, 9, 10, 11
9, 4, 7, 4, 13, 12, 14.
Заменяя каждую букву ее порядковым номером в алфавите, зашифруйте фразу: “Я УМЕЮ ДЕКОДИРОВАТЬ ДАННЫЕ”. Зашифрованный текст должен быть записан без пропусков.
[ Cкачайте файл, чтобы посмотреть картинку ],
Дана кодировочная таблица (первая цифра кода – номер строки, вторая – номер столбца).
[ Cкачайте файл, чтобы посмотреть картинку ]
С помощью этой кодировочной таблицы зашифруйте фразу: Я УМЕЮ ДЕКОДИРОВАТЬ ДАННЫЕ!
Используя эту же кодировочную таблицу, расшифруйте текст: 25201538350304053835111503040038
Шифры замены.
Каждая буква алфавита может быть заменена любым числом из соответствующего столбика кодировочной таблицы.
[ Cкачайте файл, чтобы посмотреть картинку ]
Какие сообщения закодированы с помощью этой таблицы?
[ Cкачайте файл, чтобы посмотреть картинку ]
При помощи таблицы Вижинера зашифровать текст «Криптографическая защита». Ключ «Шифр»
Шифры перестановки
Закодировать методом Гамильтона (создать свой маршрут(ы)).
Туннелирование
Закодировать методом Гамильтона (создать свой маршрут(ы)).
Криптоанализ
Аналитические методы шифрования
Зашифровать слово ЛУГ
Ключ – матрица
1
0
1
0
2
2
5
-2
4
А=
Выполнить проверку (расшифровать слово)
Вариант 6
Кодирование информации
Дана кодовая таблица азбуки Морзе
[ Cкачайте файл, чтобы посмотреть картинку ]
Расшифруйте (декодируйте), что здесь написано (буквы отделены друг от друга пробелами)?
[ Cкачайте файл, чтобы посмотреть картинку ]
Закодируйте с помощью азбуки Морзе слова ХАКЕР, АНТИВИРУС, ШИФРОВАНИЕ
Дана таблица ASCII-кодов
Расшифровать слово при помощи таблицы ASCII rкодов:
49 20 6С 6F 76 65 20 79 6F 75
Зашифрованная пословица.
Разгадайте слова в предложениях (каждой букве соответствует определенная цифра).
Чтобы рубить дрова, нужен 14, 2, 3, 2, 7 , а чтобы полить огород – 10, 4, 5, 1, 6 .
Рыбаки сделали во льду 3, 7, 2, 7, 8, 9, 11 и стали ловить рыбу.
Самый колючий зверь в лесу – это 12, 13.
А теперь прочитайте пословицу:
1, 2, 3, 4, 5, 1, 6
7, 8, 9, 10, 11
9, 4, 7, 4, 13, 12, 14.
Заменяя каждую букву ее порядковым номером в алфавите, зашифруйте фразу: “Я УМЕЮ ДЕКОДИРОВАТЬ ДАННЫЕ ”. Зашифрованный текст должен быть записан без пропусков.
[ Cкачайте файл, чтобы посмотреть картинку ],
Дана кодировочная таблица (первая цифра кода – номер строки, вторая – номер столбца).
[ Cкачайте файл, чтобы посмотреть картинку ]
С помощью этой кодировочной таблицы зашифруйте фразу: Я УМЕЮ ДЕКОДИРОВАТЬ ДАННЫЕ!
Используя эту же кодировочную таблицу, расшифруйте текст: 25201538350304053835111503040038
Шифры замены.
Каждая буква алфавита может быть заменена любым числом из соответствующего столбика кодировочной таблицы.
[ Cкачайте файл, чтобы посмотреть картинку ]
Какие сообщения закодированы с помощью этой таблицы?
[ Cкачайте файл, чтобы посмотреть картинку ]
При помощи таблицы Вижинера зашифровать текст «Криптографическая защита». Ключ «Шифр»
Шифры перестановки
Закодировать методом Гамильтона (создать свой маршрут(ы)).
Антивирус
Закодировать методом Гамильтона (создать свой маршрут(ы)).
Вирусное заражение
Аналитические методы шифрования
Зашифровать слово ЖУК
Ключ – матрица
-1
1
1
3
2
4
5
-2
4
А=
Выполнить проверку (расшифровать слово)
Вариант 7
Кодирование информации
Дана кодовая таблица азбуки Морзе
[ Cкачайте файл, чтобы посмотреть картинку ]
Расшифруйте (декодируйте), что здесь написано (буквы отделены друг от друга пробелами)?
[ Cкачайте файл, чтобы посмотреть картинку ]
Закодируйте с помощью азбуки Морзе слова ПАРОЛЬ, ЭКРАНИРОВАНИЕ, КОДИРОВАНИЕ
Дана таблица ASCII-кодов
Расшифровать слово при помощи таблицы ASCII rкодов:
49 20 6С 6F 76 65 20 79 6F 75
Зашифрованная пословица.
Разгадайте слова в предложениях (каждой букве соответствует определенная цифра).
Чтобы рубить дрова, нужен 14, 2, 3, 2, 7 , а чтобы полить огород – 10, 4, 5, 1, 6 .
Рыбаки сделали во льду 3, 7, 2, 7, 8, 9, 11 и стали ловить рыбу.
Самый колючий зверь в лесу – это 12, 13.
А теперь прочитайте пословицу:
1, 2, 3, 4, 5, 1, 6
7, 8, 9, 10, 11
9, 4, 7, 4, 13, 12, 14.
Заменяя каждую букву ее порядковым номером в алфавите, зашифруйте фразу: “Я ЗНАЮ МЕТОДЫ ШИФРОВАНИЯ ”. Зашифрованный текст должен быть записан без пропусков.
[ Cкачайте файл, чтобы посмотреть картинку ],
Дана кодировочная таблица (первая цифра кода – номер строки, вторая – номер столбца).
[ Cкачайте файл, чтобы посмотреть картинку ]
С помощью этой кодировочной таблицы зашифруйте фразу: Я ЗНАЮ МЕТОДЫ ШИФРОВАНИЯ
Используя эту же кодировочную таблицу, расшифруйте текст: 25201538350304053835111503040038
Шифры замены.
Каждая буква алфавита может быть заменена любым числом из соответствующего столбика кодировочной таблицы.
[ Cкачайте файл, чтобы посмотреть картинку ]
Какие сообщения закодированы с помощью этой таблицы?
[ Cкачайте файл, чтобы посмотреть картинку ]
При помощи таблицы Вижинера зашифровать текст «Профилактика заражения вирусами». Ключ «ВИРУС»
Шифры перестановки
Закодировать методом Гамильтона (создать свой маршрут(ы)).
Скремблирование
Закодировать методом Гамильтона (создать свой маршрут(ы)).
Туннелирование
Аналитические методы шифрования
Зашифровать словоМАК
Ключ – матрица
3
0
1
1
2
-2
5
-2
4
А=
Выполнить проверку (расшифровать слово)
Вариант 8
Кодирование информации
Дана кодовая таблица азбуки Морзе
[ Cкачайте файл, чтобы посмотреть картинку ]
Расшифруйте (декодируйте), что здесь написано (буквы отделены друг от друга пробелами)?
[ Cкачайте файл, чтобы посмотреть картинку ]
Закодируйте с помощью азбуки Морзе слова АУТЕНТИФИКАЦИЯ, ПАРОЛЬ, КОДИРОВАНИЕ
Дана таблица ASCII-кодов
Закодировать при помощи таблицы ASCII кодов следующий текст PASCAL. Результат представить в шестнадцатеричной СС
Зашифрованная пословица.
Разгадайте слова в предложениях (каждой букве соответствует определенная цифра).
Чтобы рубить дрова, нужен 14, 2, 3, 2, 7 , а чтобы полить огород – 10, 4, 5, 1, 6 .
Рыбаки сделали во льду 3, 7, 2, 7, 8, 9, 11 и стали ловить рыбу.
Самый колючий зверь в лесу – это 12, 13.
А теперь прочитайте пословицу:
1, 2, 3, 4, 5, 1, 6
7, 8, 9, 10, 11
9, 4, 7, 4, 13, 12, 14.
Заменяя каждую букву ее порядковым номером в алфавите, зашифруйте фразу: “Я ЗНАЮ МЕТОДЫ КОДИРОВАНИЯ ”. Зашифрованный текст должен быть записан без пропусков.
[ Cкачайте файл, чтобы посмотреть картинку ],
Дана кодировочная таблица (первая цифра кода – номер строки, вторая – номер столбца).
[ Cкачайте файл, чтобы посмотреть картинку ]
С помощью этой кодировочной таблицы зашифруйте фразу: Я ЗНАЮ МЕТОДЫ КОДИРОВАНИЯ
Используя эту же кодировочную таблицу, расшифруйте текст: 25201538350304053835111503040038
Шифры замены.
Каждая буква алфавита может быть заменена любым числом из соответствующего столбика кодировочной таблицы.
[ Cкачайте файл, чтобы посмотреть картинку ]
Какие сообщения закодированы с помощью этой таблицы?
[ Cкачайте файл, чтобы посмотреть картинку ]
При помощи таблицы Вижинера зашифровать текст «Профилактика заражения вирусами». Ключ «ВИРУС»
Шифры перестановки
Закодировать методом Гамильтона (создать свой маршрут(ы)).
Генератор паролей
Закодировать методом Гамильтона (создать свой маршрут(ы)).
Вирусное заражение
Аналитические методы шифрования
Зашифровать слово СОК
Ключ – матрица
2
0
-1
1
2
-2
4
-2
3
А=
Выполнить проверку (расшифровать слово)
Вариант 9
Кодирование информации
Дана кодовая таблица азбуки Морзе
[ Cкачайте файл, чтобы посмотреть картинку ]
Расшифруйте (декодируйте), что здесь написано (буквы отделены друг от друга пробелами)?
[ Cкачайте файл, чтобы посмотреть картинку ]
Закодируйте с помощью азбуки Морзе слова ДАКТЕЛОСКОПИЯ, ПАРОЛЬ,СТЕНОГРАФИЯ
Дана таблица ASCII-кодов
Расшифровать слово при помощи таблицы ASCII rкодов:
32 2А 78 2В 79 3D 30
Зашифрованная пословица.
Разгадайте слова в предложениях (каждой букве соответствует определенная цифра).
Чтобы рубить дрова, нужен 14, 2, 3, 2, 7 , а чтобы полить огород – 10, 4, 5, 1, 6 .
Рыбаки сделали во льду 3, 7, 2, 7, 8, 9, 11 и стали ловить рыбу.
Самый колючий зверь в лесу – это 12, 13.
А теперь прочитайте пословицу:
1, 2, 3, 4, 5, 1, 6
7, 8, 9, 10, 11
9, 4, 7, 4, 13, 12, 14.
Заменяя каждую букву ее порядковым номером в алфавите, зашифруйте фразу: “Я ЗНАЮ МЕТОДЫ КОДИРОВАНИЯ ”. Зашифрованный текст должен быть записан без пропусков.
[ Cкачайте файл, чтобы посмотреть картинку ],
Дана кодировочная таблица (первая цифра кода – номер строки, вторая – номер столбца).
[ Cкачайте файл, чтобы посмотреть картинку ]
С помощью этой кодировочной таблицы зашифруйте фразу: Я ЗНАЮ МЕТОДЫ КОДИРОВАНИЯ
Используя эту же кодировочную таблицу, расшифруйте текст: 25201538350304053835111503040038
Шифры замены.
Каждая буква алфавита может быть заменена любым числом из соответствующего столбика кодировочной таблицы.
[ Cкачайте файл, чтобы посмотреть картинку ]
Какие сообщения закодированы с помощью этой таблицы?
[ Cкачайте файл, чтобы посмотреть картинку ]
При помощи таблицы Вижинера зашифровать текст «Биометрические характеристики». Ключ «ВИРУС»
Шифры перестановки
Закодировать методом Гамильтона (создать свой маршрут(ы)).
Атака на шифр
Закодировать методом Гамильтона (создать свой маршрут(ы)).
Защита информации
Аналитические методы шифрования
Зашифровать слово ПАР
Ключ – матрица
2
0
-2
3
2
-2
4
-2
0
А=
Выполнить проверку (расшифровать слово)
Вариант 10
Кодирование информации
Дана кодовая таблица азбуки Морзе
[ Cкачайте файл, чтобы посмотреть картинку ]
Расшифруйте (декодируйте), что здесь написано (буквы отделены друг от друга пробелами)?
[ Cкачайте файл, чтобы посмотреть картинку ]
Закодируйте с помощью азбуки Морзе слова АНТИВИРУС, МАСКИРОВКА, ЗАРАЖЕНИЕ
Дана таблица ASCII-кодов
Закодировать при помощи таблицы ASCII кодов следующий текст NORTON COMMANDER. Результат представить в шестнадцатеричной СС
Зашифрованная пословица.
Разгадайте слова в предложениях (каждой букве соответствует определенная цифра).
Чтобы рубить дрова, нужен 14, 2, 3, 2, 7 , а чтобы полить огород – 10, 4, 5, 1, 6 .
Рыбаки сделали во льду 3, 7, 2, 7, 8, 9, 11 и стали ловить рыбу.
Самый колючий зверь в лесу – это 12, 13.
А теперь прочитайте пословицу:
1, 2, 3, 4, 5, 1, 6
7, 8, 9, 10, 11
9, 4, 7, 4, 13, 12, 14.
Заменяя каждую букву ее порядковым номером в алфавите, зашифруйте фразу: “Я ЗНАЮ МЕТОДЫ КОДИРОВАНИЯ ”. Зашифрованный текст должен быть записан без пропусков.
[ Cкачайте файл, чтобы посмотреть картинку ],
Дана кодировочная таблица (первая цифра кода – номер строки, вторая – номер столбца).
[ Cкачайте файл, чтобы посмотреть картинку ]
С помощью этой кодировочной таблицы зашифруйте фразу: Я ЗНАЮ МЕТОДЫ КОДИРОВАНИЯ
Используя эту же кодировочную таблицу, расшифруйте текст: 25201538350304053835111503040038
Шифры замены.
Каждая буква алфавита может быть заменена любым числом из соответствующего столбика кодировочной таблицы.
[ Cкачайте файл, чтобы посмотреть картинку ]
Какие сообщения закодированы с помощью этой таблицы?
[ Cкачайте файл, чтобы посмотреть картинку ]
При помощи таблицы Вижинера зашифровать текст «Технологии аутентификации». Ключ «ВИРУС»
Шифры перестановки
Закодировать методом Гамильтона (создать свой маршрут(ы)).
Криптографическая защита
Закодировать методом Гамильтона (создать свой маршрут(ы)).
Кодирование информации
Аналитические методы шифрования
Зашифровать слово ТИР
Ключ – матрица
2
0
-2
3
2
-2
1
-2
0
А=
Выполнить проверку (расшифровать слово)
Практическая работа №18
Тема: «Шифрование. Несимметричные алгоритмы» (4 часа)
ЦЕЛЬ РАБОТЫ: разобраться с алгоритмами шифрования. Для реализации этой цели разработана программа шифрования сообщений, которая объясняет принцип работы используемого в ней алгоритма шифрования.
Исходя из поставленной задачи, программа шифрования должна:
содержать блок, дающий полное представление о работе выбранного алгоритма;
содержать блок шифрования/дешифрования текста, иллюстрирующий работу этого алгоритма.
Шифрование это обратимое преобразование данных с целью их скрытия от посторонних. Методов шифрования было придумано множество. Почти все методы шифрования используют ключ шифрования секретную кодовую последовательность, используемую в процессе преобразования информации. В работе рассмотрено несколько алгоритмов шифрования, их работа, использование, приведены листинги программ на двух языках. В конце работы описываются программные средства для работы с криптоалгоритмами и электронной цифровой подписью.
В качестве технологии реализации поставленной задачи выбрана технология Macromedia Flash. Эта технология более проста для разработчика, нежели Delphi или C++, но при этом она является не менее мощным инструментом разработки приложений, к тому же она позволяет разрабатывать анимацию, управляемую пользователем, с наименьшими затратами времени разработчика.
Асимметричные алгоритмы шифрования
Развитие основных типов криптографических протоколов (ключевой обмен, электронно-цифровая подпись (ЭЦП), аутентификация) было бы невозможно без создания открытых ключей и построенных на их основе ассиметричных алгоритмов шифрования.
Основная идея асимметричных криптоалгоритмов состоит в том, что для шифрования сообщения используется один ключ, а при дешифровании другой. Кроме того, процедура шифрования выбрана таким образом, что она необратима даже по известному ключу шифрования. В итоге восстановить исходное сообщение можно только с помощью второго ключа ключа дешифрования. Ключ шифрования называют «открытым ключом», а ключ дешифрования называется «закрытым ключом».
Таким образом, пользователи избавляются от необходимости решать сложную задачу обмена секретными ключами.
Стандарт асимметричного шифрования RSA
Самым распространенным алгоритмом асимметричного шифрования является алгоритм RSA. Он был предложен тремя исследователями математиками Рональдом Ривестом (R.Rivest), Ади Шамиром (A.Shamir) и Леонардом Адльманом (L.Adleman) в 1977 году. Стойкость RSA базируется на сложности факторизации больших целых чисел. В 1993 году метод RSA был обнародован и принят в качестве стандарта шифрования. RSA можно применять как для шифрования/ дешифрования, так и для генерации/проверки электронно-цифровой подписи.
Генерация ключей
Первым этапом любого асимметричного алгоритма является создание пары ключей открытого и закрытого и распространение открытого ключа. Пара чисел (d, n) используется для шифрования сообщения и является открытым ключом, а пара чисел (e, n) хранится в строжайшем секрете закрытый ключ, который дешифрует послания, зашифрованные с помощью открытого ключа.
Шифрование/дешифрование
Далее производится шифрование с помощью этих чисел (d, n). Зашифрованное сообщение можно спокойно передавать по открытому каналу, поскольку операция шифрования, согласно алгоритму RSA, является необратимой математической задачей.
А вот на приемной стороне процесс дешифрования все же возможен благодаря закрытому ключу (e, n).
Электронная цифровая подпись
При ведении деловой переписки подпись ответственного лица является непременным атрибутом документа, преследующим несколько целей:
Гарантирование истинности письма путем сличения подписи с имеющимся образцом;
Гарантирование авторства документа (с юридической точки зрения).
Развитие современных средств безбумажного документооборота немыслимо без развития средств доказательства подлинности и целостности документа электронно-цифровой подписи (ЭЦП), которая сохранила свойства обычной подписи.
Существует два метода построения ЭЦП, а именно:
Шифрование электронного документа (ЭД) на основе симметричных алгоритмов. Данная схема требует наличие в системе арбитра, пользующегося доверием обеих сторон. Авторизацией документа в данной схеме является сам факт шифрования ЭД секретным кличем и передача его арбитру.
Использование асимметричных алгоритмов шифрования. Фактом подписания документа является его шифрование секретным ключом отправителя.
Развитием второй идеи стала наиболее распространенная схема ЭЦП: шифрование окончательного результата обработки ЭД хеш-функцией при помощи асимметричного алгоритма.
Практическая часть
Программа шифрования состоит из трех логических частей:
шифрование и дешифрация сообщений алгоритмом симметричного шифрования с закрытым ключом;
шифрование и дешифрация сообщений алгоритмом асимметричного шифрования с открытым ключом;
выставление и проверка электронной цифровой подписи.
Каждая из частей содержит в себе как программу, шифрующую и дешифрующую сообщение, так и обучающую анимацию, объясняющую принцип работы этого алгоритма. Для доступа к этим компонентам написана стартовая форма, содержащая кнопки выбора каждого раздела.
Алгоритм симметричного шифрования
Обучающий компонент
Этот компонент содержит описание операции XOR на конкретном примере: берутся два символа: А и 1, и над ними выполняется операция XOR.
Программа шифрования/дешифрования
Для иллюстрации симметричного алгоритма шифрования написана простая программа, которая из текстового поля, связанного с переменной inText, считывает символы и шифрует введенным пользователем ключом k. Результат выводится в поле outText при нажатии на кнопку «Шифрование».
Чтобы расшифровать полученное зашифрованное сообщение, пользователь должен ввести ключ шифрования в поле k. Зашифрованный текст из поля outText при нажатии на кнопку «Дешифрование» отобразится в поле deshifr таким образом получаем исходное сообщение.
Алгоритм асимметричного шифрования
Обучающий компонент
В этом разделе программы по шагам демонстрируется, каким образом происходит процесс шифрования/дешифрования текста. Для наглядности представления процесса, числа p и q выбраны небольшими. Поэтому сгенерированные с их помощью открытый ключ (d, n) и закрытый ключ (e, n) также представлены небольшими числами, что делает процесс вычисления понятным
Программа шифрования/дешифрования
В теоретической части был рассмотрен алгоритм шифрования RSA. Этот алгоритм применен для шифрования текста в следующей последовательности:
все символы сообщения представляются в виде ASCII-кодов, что автоматически переведет эти символы в числовой вид;
для ASCII-кодов производится шифрование данных открытым ключом, получаем новый набор чисел;
зашифрованные значения будем считать ASCII-кодами некоторых символов, т.е. преобразуем полученные значения в символы;
полученный в итоге набор символов будет зашифрованным сообщением.
Зашифрованное сообщение дешифруется закрытым ключом по такому же принципу:
символы сообщения переводятся в ASCII-коды этих символов;
над полученным массивом чисел производятся необходимые вычисления (дешифрация);
полученные числа будут ASCII-кодами символов исходного сообщения.
В представленной форме поле для ввода шифруемого сообщения обращается к связанной переменной inText, поле для зашифрованного сообщения связано с переменной outText.
Для расшифрованного сообщения предназначено поле и связанная с ним переменная deshifr. При нажатии на кнопку «Шифрование» происходит шифрование исходного текста по разработанному алгоритму. Полученный результат зашифрованное сообщение (в виде кракозябр) отображается в поле outText. Если нужно расшифровать сообщение, пользователю нужно ввести секретный ключ e для дешифрования и нажать на кнопку «Дешифрование».
Для реализации этого подхода к решению задачи шифрования необходимо взять такие параметры p и q, чтобы их произведение было не менее 8500, так как ASCII-коды некоторых специальных символов превышают за 8 000. Возьмем два простых числа, дающих достаточно близкое по значению произведение: p = 103 и q = 83. Тогда N = p*q =8549. Возьмем простое число d = 53. Находим число e = 2525.
Согласно алгоритму шифрования, ASCII-код символа нужно возвести в степень d = 53 и от полученного числа взять остаток от деления его на 8549. Тут возникает сложная вычислительная задача: Flash поддерживает точность вычислений до 15 значащей цифры, а работая, например, с русскими символами, нам приходится возводить в 53 степень значения, близкие к тысяче. Получаем порядка 150 значащих цифр, а для ASCII-кодов, близких к 8000 получаем порядка 200-220 значащих цифр. При дешифровании же нужно возводить ASCII-код в степень 2525, что еще более усложняет задачу (значащих цифр получается порядка 10 000). Проблема выглядит нерешаемой.
Однако, найден простой и оригинальный выход из сложившегося тупика. Вместо того, чтобы тупо возводить число в нужную степень при помощи функции Math.pow(ascii, 2525), организован цикл на 2525 шагов. На каждом шагу цикла производится умножение ASCII-кода на себя, от полученного результата берется остаток от деления на 8549. В этом случае количество значащих цифр в вычислениях не превышает 8 (9 000 х 9 000 = 81 000 000), и точность расчетов не страдает. Программный код этого решения алгоритма шифрования данных приведен в листинге 3 Приложения. Дешифрование имеет аналогичный программный код.
Кстати, непосредственно в кадре написан программный код, который позволяет для произвольно выбранных простых чисел p и q подобрать открытый ключ d и закрытый ключ e. Чем больше значения p и q, тем больше будут значения d и e, тем выше будет надежность шифра. Замечено, что, работая с указанными параметрами, программа начинает «притормаживать», поэтому дальнейший подбор ключей более высоких порядков признан нецелесообразным, хотя разработанный алгоритм вполне может справиться и с ними.
Заключение
В результате выполнения проекта получен программный продукт, который наглядно и доступно объясняет основные принципы шифрования данных. К единственному его недостатку можно отнести то, что мы не разработан алгоритм формирования электронной цифровой подписи. Это связано с тем, что очень мало литературы, которая достаточно подробно описала бы принцип создания электронной подписи.
Приложение
Листинг 1
Uses Crt;
Var
i: Byte; {описываем переменные}
Msg: String;
Code: Integer;
Begin
writeln('Enter Message'); {msg – само сообщение}
readln(Msg);
writeln('Enter Key'); {ключ – небольшой длины}
readln(code);
For i:=1 to Length(Msg) Do
Msg[i]:=Chr(Ord(Msg[i]) xor Code); {шифрование }
writeln(' ',Msg);
readkey;
End.
Листинг 2
#include
int main {
char Msg[] = ”Message”; // задаётся сообщение
char Code[] = “8080”; //задается ключ
int i=0; j=0;
printf(“%\n”, Msg);
while (Msg[i] !=’\0’) {
if (j>Length(msg)) j=0; //если j>l длины ключа, тогда j=0;
printf(“%c”,msg[i++] ^= code[j++]);
}
printf(“\n”)’
return 0;
}
Листинг 3
outText = "";
var countS = inText.length;
for (i=0; i<=countS-1; i++) {
InS[i] = inText.slice(i, i+1);
a = ord(InS[i]);
for (k=2; k<=d; k++) {
a *= ord(InS[i]);
a = a%n;
}
InS[i] = a;
outText += chr(InS[i]);
}
Список литературы для выполнения практической работы
Алиев, Т.И. Сети ЭВМ и телекоммуникации. [Текст]СПБ: СПБГУ ИТМО, 2011.
Амосов, В.В. Схемотехника и средства проектирования цифровых устройств. – СПб.: БХВ-Петербург, 2008. – 560с.: ил. – (Учебное пособие)
Балабанов, П.В., Мозгова Г.В. Методы и средства контроля и диагностики аппаратного и программного обеспечения компьютерных сетей [Текст]: лабораторные работы. – Тамбов. Изд-во Тамб. гос. техн. ун-та, 2009.- 560с.
Бардиян, Д.В. 500 типичных проблем и их решений при работе на ПК[Текст]. – СПб.: Питер, 2009. – 564с.
Вонг, Адриан. Справочник по параметрам BIOS. [Текст]Изд-во ДМК Пресс. 2010.
Джон Ф. Уэйкерли, Проектирование цифровых устройств том I, II, Постмаркет, Москва, 2012, 1088с.
Китаев, Ю.В. Основы цифровой техники. Учебное пособие: СПб, 2008,- 87с.
Логинов, М.Д. Техническое обслуживание средств вычислительной техники[Текст]: учебное пособие. – М.: Бином. Лаборатория знаний, 2010. – 235с.
Нестеров, С.А. Администрирование в Информационных сетях. [Текст] Методические указания к лабораторным работам. Санкт – Петербург. 2010. – 564с.
Новиков, Ю.В. Основы цифровой схемотехники. Методы проектирования, М.: Мир, 2011. – 346с.
Таненбаум, Э. Современные операционные системы. [Текст]3-еизд. – СПб.: Питер, 2010. – 230с.
Ташков, П. Восстанавливаем данные на 100%. [Текст]Изд-во Питер, 2010. – 235с.
Ташков, П. Защита компьютера на 100%: сбои, ошибки и вирусы. [Текст]Изд-во Питер, 2010. – 342с.
Халябия, Р.Ф. Администрирование вычислительных систем и сетей: [Текст] Учебно – методическое пособие по выполнению лабораторных работ. – М.: МГУПИ, 2010. – 450с.
Холме, Д., Рест Н. Настройка Active Directory. Windows Server 2008. [Текст] Учебный курс Microsoft. – М.: Изд-во «Русская редакция», 2011. – 340с.
UPGrade. Ежемесячный журнал о компьютерах и компьютерных технологиях.
Алгоритм безопасности. Ежемесячный журнал. Информационно-аналитическое издание, освещающее вопросы технического обеспечения безопасности объектов.
Антонов А.П. Язык описания цифровых устройств. М.: издательство «РадиоСофт», 2002. – 340с.
Бибило П.Н. Основ языка VHDL. – М.: Солон-Р, 2000. – 500с.
Влах И., Синхгал К. Машинные методы анализа и проектирования электронных схем: Пер. с англ. - М.: Радио и связь, 1988. - 560с.
Красько А.С. Проектирование аналоговых электронных устройств: Методические указания по курсовому проектированию. - Томск: ТУСУР ТМЦДО, 2000. 42с.
Кукушкина М.С. Работа в MS Office 2007. Табличный процессор Excel 2007[Текст]. Лабораторные работы. – Ульяновск: УЛГТУ, 2010. – 250с.
Поляков А.К. Языки VHDL и Verylog в проектировании цифровой аппаратуры, М.: издательство «СОЛОН-пресс», 2003. – 350с.
Системный администратор. [Текст]Ежемесячный журнал.
Фиошин М.Е. Информатика и ИКТ. 10 – 11 кл. [Текст] Профильный уровень. – М.: Дрофа, 2009. – 240с.
Хубаев Г.И. Информатика[Текст]: учебное пособие. – Ростов н/Д.: Издательский центр «МарТ»; Феникс, 2010. – 360с.
[ Cкачайте файл, чтобы посмотреть ссылку ]
[ Cкачайте файл, чтобы посмотреть ссылку ]
[ Cкачайте файл, чтобы посмотреть ссылку ]
[ Cкачайте файл, чтобы посмотреть ссылку ]
[ Cкачайте файл, чтобы посмотреть ссылку ]
[ Cкачайте файл, чтобы посмотреть ссылку ]
[ Cкачайте файл, чтобы посмотреть ссылку ]
Компьютер своими руками. [Электронный ресурс]/ ruslan-m.com – режим доступа: [ Cкачайте файл, чтобы посмотреть ссылку ]
Ремонт настройка и модернизация компьютера. [Электронный ресурс]/ remont-nastroyka-pc.ru – режим доступа: [ Cкачайте файл, чтобы посмотреть ссылку ].
Собираем компьютер своими руками. [Электронный ресурс]/svkcomp.ru –рРежим доступа: [ Cкачайте файл, чтобы посмотреть ссылку ].
13PAGE \* MERGEFORMAT1420315
13 EMBED Excel.Sheet.8 1415
13 EMBED Excel.Sheet.8 1415
13 EMBED Excel.Sheet.8 1415
13 EMBED Excel.Sheet.8 1415
13 EMBED Excel.Sheet.8 1415
13 EMBED Excel.Sheet.8 1415
13 EMBED Excel.Sheet.8 1415
13 EMBED Excel.Sheet.8 1415
13 EMBED Excel.Sheet.8 1415
13 EMBED Excel.Sheet.8 1415
.
j
l
n
r
Ђ
‚
њ
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·Рисунок 1Рисунок 4Рисунок 13Рисунок 19Рисунок 2Рисунок 6Рисунок 9