Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Операционные_системы.doc
Скачиваний:
2
Добавлен:
20.09.2019
Размер:
643.58 Кб
Скачать
  1. Иерархическая каталоговая система.

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

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

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

Путь к файлу обычно состоит из перечисления всех каталогов, начиная с корневого до каталога, в котором содержится файл, и заканчивается именем самого файла. Например, Root\C1\F1.

«\» - slash (косая черта, разделяющая каталоги)

«\» - в Windows

«/» - в Unix

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

Обычно в ОС имеется специальная команда (в MS-DOS – cd (change directory)), с помощью которой можно установить текущий каталог.

CD C:\DOS\TEXT

При задании такой строки текущим каталогом станет \TEXT.

cd . – переход в иерархии на один каталог выше.

cd . . – переход в корневой каталог.

ОПЕРАЦИИ С КАТАЛОГАМИ.

  1. Create

Создается пустой каталог, не содержащий никаких элементов.

  1. Delete

При помощи этой операции можно удалить только пустой каталог.

  1. Open DIR

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

  1. Close DIR

Закрытие каталога.

  1. Read DIR

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

  1. Rename

Переименование.

  1. Link

Позволяет одному файлу содержаться сразу в нескольких каталогах.

  1. Unlink

Удаляет эту связь.

ФАЙЛОВАЯ СИСТЕМА CD-ROM.

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

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

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

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

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

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

Затем идет описание корневого каталога этого диска, т.е. в каких логических блоках хранится корневой каталог.

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

1 байт

1 байт

8 байт

8 байт

7 байт

1 байт

2 байта

4 байта

1 байт

4 байта

Расположение файла

Размер файла

Дата и время создания

Имя файла

Каталоговые записи могут иметь различную длину. Обычно они имеют от 10-12 участков. Часть информации в каталоговых записях кодируется с помощью таблицы ASCII, а часть информации – это двоичные коды, причем существуют разные коды для разных ОС.

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

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

ФАЙЛОВАЯ СИСТЕМА MS-DOS

В файловой системе MS-DOS используется иерархическая система. Т.к. ОС MS-DOS является однопользовательской, то пользователь получает доступ сразу ко всей файловой системе.

В ОС MS-DOS реализован произвольный доступ к файлу. Отсюда, основными элементами файловой системы MS-DOS являются:

  1. Специальный справочник, в котором хранится информация обо всех файлах и каталогах, записанных на диске. Этот справочник располагается в специальной служебной области магнитного диска, которая носит название «область корневого каталога». Каждая запись в области корневого каталога состоит из нескольких разделов (полей).

8 байт

3 байта

1 байт

10 байт

2 байта

2 байта

2 байта

4 байта

Имя файла

Расширение

Зарезерв.

Время

Дата

№ первого кластера

Размер

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

Чтобы прочитать какой-либо файл, любой процесс, работающий в системе MS-DOS должен дать задание ОС на открытие файла. В качестве параметра заданию на открытие файла он должен указать путь к файлу.

При открытии файла ОС MS-DOS просматривает каталоги, указанные в пути к файлу вплоть до последнего каталога, в котором хранится указанный файл. Из этого каталога ОС считывает информацию о файле в соответствии с форматом записи. Одним из параметров каталоговой записи является номер первого кластера, в котором записан файл. Этот параметр носит название «точка входа в таблицу файла». Затем ОС в соответствии с этим параметром из таблицы размещения файлов получает информацию, в каких кластерах находится данный файл.

Исторически в ОС MS-DOS использовалось 3 варианта таблицы размещения файлов: FAT12, FAT16, FAT32. Цифра говорит о количестве двоичных разрядов, которые используются для нумерации кластеров. В FAT32 используется 28 разрядов.

В первой версии MS-DOS работали с FAT12. Размер кластера в этой таблице составлял 512 байт, поэтому общий объем диска, с которым могла работать FAT12, мог составлять примерно 2 Мб.

Но и сама FAT занимает в памяти примерно 20 Кб. Такая система хорошо работала с гибкими магнитными дисками, но с появлением жестких дисков появлялись проблемы.

Сначала были увеличены размеры кластеров до 1, 2 и 4 Кб. При V кластера 4 Кб максимальный объем диска мог составлять 16 Мб.

Эти версии ОС MS-DOS могли работать с 4 разделами жесткого диска до 16 Мб и отсюда, общий объем диска составлял 64 Мб.

Для того, чтобы работать с дисками большего объема, была разработана версия ОС MS-DOS с поддержкой FAT16. При этом размеры кластера могли быть 1, 2, 4, 8, 14, 32 Кб.

Максимальный V диска составлял уже 2 Гб, а с 4 разделами – 8 Гб.

Размер кластера устанавливался в зависимости от максимального V диска. Сама FAT стала занимать уже достаточно большой V = 128 Кб. MS-DOS v.6.22 работает с FAT16.

32-х разрядная таблица размещения файлов впервые появилась в ОС Windows 95, и то не в самой первой версии. Теоретически, max V диска с max таблицей размещения файлов составляет 2 Тб. Размеры самой FAT зависят от V диска. Кроме поддержки дисков большого V FAT32 имеет еще одно преимущество над FAT16: при одних и тех же объемах диска размер кластера в FAT32 меньше, чем в FAT16.

ФАЙЛОВАЯ СИСТЕМА WINDOWS 9.X\ME

Основным отличием файловой системы Windows 9.x является то, что она основана на файловой системе MS-DOS и поддерживает имена файлов до 256 символов, включая пробелы.

Для того, чтобы ОС Windows 9.x могла работать с длинными именами файлов, нужно было разработать новую структуры каталоговой записи, однако такой подход имеет существенный недостаток: т.к. во всех версия Windows встроен MS-DOS, то при работе в сеансе MS-DOS было бы невозможно работать с длинными именами файлов.

Поэтому Microsoft приняла решение разработать такую файловую систему, чтобы из Windows 9.x и встроенной MS-DOS был полный доступ ко всем файлам, в том числе и с длинными именами файлов. Структура каталоговой записи, использующаяся в MS-DOS, имеет длину 32 байта, однако 10 байт из них не задействовано. Эти 10 байт были использованы в ОС семейства Windows 9.x. На их место было добавлено 5 новых полей. Таким образом, структура каталоговой записи в Windows 9.x имеет следующий вид:

8 байт

3 байта

1 байт

1 байт

1 байт

4 байта

2 байта

4 байта

2 байта

4 байта

Имя файла

Расширение

NT

Дата и время создания

Дата и время последней записи

Размер

В ОС Windows 9.x каждому файлу присваивается сразу 2 имени. Длинное имя в формате 256 символов и имя в формате MS-DOS – 8 символов.

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

Для этого берутся первые шесть символов длинного имени, затем «~» и цифра 1. Если есть файлы с совпадающими первыми 6 символами, ставится цифра 2. При этом из длинного имени удаляются пробелы и точки.

Длинное имя хранится в следующем формате:

1 байт

10 байт

1 байт

1 байт

1 байт

12 байт

2 байта

4 байта

5 символов

0

6 символов

0

2 символа

ОС отличает фрагменты длинного имени от имени в формате MS-DOS тем, что в каталоговую запись в часть длинного имени в поле «Атрибуты» записывается специальный код. Этот код неизвестен ОС MS-DOS, и она игнорирует эти записи.

СИСТЕМА ВВОДА\ВЫВОДА. ОСНОВНЫЕ ФУНКЦИИ.

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

ТИПЫ УТСРОЙСТВ ВВОДА\ВЫВОДА.

Устройства ввода-вывода можно условно разделить на две большие группы:

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

  2. Символьные. Эти устройства передают поток данный (или принимают), который не имеет блочной структуры. Символьные устройства не являются адресуемыми и не выполняют операцию поиска. К символьным относятся принтеры, модемы, сканеры и т.д.

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

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

Например, клавиатура передает информацию со скоростью 10 байт в секунду, мышь – 100 байт в секунду, лазерный принтер – 100 Кб/с, 40х CD-ROM – 6 Мб/с, обычная компьютерная сеть – 100 Мб/с.

КОНТРОЛЛЕРЫ УСТРОЙСТВ ВВОДА\ВЫВОДА.

Каждое устройство ввода-вывода обычно состоит из механической части и электронной. Электронная часть называется контроллером (или адаптером). Обычно контроллер выполнен в виде платы, которая вставляется в разъем материнской платы.

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

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

Например, магнитный диск может быть разбит с определенным количеством кластеров на дорожку с V кластера в 512 Мб. На самом деле с диска в контроллер поступает последовательный поток байтов, который состоит из заголовка, полезных байтов и заканчивается контрольной суммой. Работа контроллера заключается в том, чтобы преобразовать последовательный2 поток байтов в блок байтов и провести коррекцию ошибок, если это необходимо. Обычно блок байтов формируется путем накапливания байтов в специальной памяти контроллера, который носит название «буфер», а коррекция ошибок производится путем подсчета контрольной суммы, которая должна совпадать с суммой, указанной в заголовке.

ОТОБРАЖАЕМЫЙ НА АДРЕСНОЕ ПРОСТРАНСТВО ВВОД-ВЫВОД.

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

Кроме регистров, в каждом контроллере имеется буфер.

Буфер – это память, в которой храниться информация, считываемая из устройства и записываемая в него.

Существует два способа, с помощью которых можно получить доступ к регистрам и буферам:

  1. К аждому регистру устройств ввода-вывода назначается специальный адрес. Этот адрес носит название «порт ввода-вывода». Он представляет из себя многоразрядное двоичное число (обычно 16 разрядов). При помощи специальных команд процессор может записывать по этим адресам различную управляющую информацию. Порты ввода-вывода никак не связаны с общим адресным пространством. Такая схема адресации ввода-вывода использовалась в ЭВМ 2-го и 3-го поколения.

  2. В общем адресном пространстве часть адресов выделяется устройствам ввода-вывода. Эта схема носит название «отображаемый на адресное пространство ввод-вывод».

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

Э ти схемы работают следующим образом:

Когда CPU хочет прочитать данные либо из памяти, либо из порта ввода-вывода, то он выставляет нужный адрес на шину адреса, а на управляющую шину выставляет команду «Чтение». В зависимости от адреса, на этот сигнал реагирует либо память, либо устройство ввода-вывода. Если, как во 2 случае, пространство адресов общее, то каждое устройство ввода-вывода и каждый модуль памяти сравнивают выставленный на адресную шину адрес с диапазоном адресов, который им выделен. Если адрес попадает в этот диапазон, то они реагируют.

Каждая из этих схем имеет свои достоинства и недостатки. Например, к достоинствам 2 схемы относится то, что не требуется различные команды процессора при обращении к памяти и при обращении к устройствам ввода-вывода.

К недостаткам такой схемы относится более сложное устройство механизма адресации.

В порты ввода-вывода входят адреса регистров и буферов.

ПРЯМОЙ ДОСТУП К ПАМЯТИ.

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

На практике используется другая схема, называемая «прямой доступ к памяти» (Direct Memory Access (DMA)). Для реализации этой схемы используется специальное устройство, которое называется контроллер прямого доступа к памяти. При использовании этого контроллера перенос данных от устройств ввода-вывода в память будет производиться без непосредственного участия CPU.

Рассмотрим вначале, как происходит работа контроллера устройства ввода-вывода без DMA.

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

П ри использовании DMA происходит следующая процедура:

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

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

Т.е. контроллер DMA в этой ситуации заменяет CPU.

Таким образом, использование прямого доступа к памяти позволяет резко уменьшить нагрузку на CPU при некоторых операциях ввода-вывода.

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

ПРОГРАММНЫЙ ВВОД-ВЫВОД.

Сутью программного ввода-вывода является то, что в этом случае всю работу выполняет CPU. Рассмотрим программный ввод-вывод на примере:

Пользователю необходимо напечатать на принтере строку «ABCD». В начале пользователь должен набрать эту строку путем помещения символов в область памяти, которая выделена данному процессу. Затем процесс должен получить с помощью ОС принтер в свое распоряжение. Если принтер в это время занят, то процессу будет сообщен код ошибки или процесс будет заблокирован до тех пор, пока принтер не будет освобожден.

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

Обычно принтеры не печатают по одному символу, а накапливают информацию в буфере. После накапливания информации в буфере принтер все печатает.

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

При этом CPU будет большую часть времени тратить на ожидание готовности принтера.

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

УПРАВЛЯЕМЫЙ ПРЕРЫВАНИЯМИ ВВОД-ВЫВОД.

Например, если рассмотреть ситуацию, когда принтер не будет накапливать строку в буфере, а будет печатать символ сразу. Если принтер печатает со скоростью 100 символов в секунду, то на печать одного символа уйдет примерно 10 миллисекунд. Это означает, что в течение этого времени процессор будет простаивать. Это для процессора очень большое время.

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

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

ВВОД-ВЫВОД С ИСПОЛЬЗОВАНИЕМ DMA.

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

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

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

ОБРАБОТЧИКИ ПРЕРЫВАНИЙ.

ПО ввода-вывода обычно реализуется в виде 4-х уровней.

ПО ввода-вывода уровня пользователя

Устройство-независимое ПО операционной системы

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

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

Аппаратура ввода-вывода

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

Обработчики прерываний выполняют следующие действия:

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

  2. Настраивают стэк для процедуры обработки прерывания.

  3. Выдает подтверждение контроллеру прерываний. Если такой контроллер отсутствует, то разрешает прерывание.

  4. Запускает процедуру обработки прерывания. Она извлекает информацию из регистров контроллера устройства, вызвавшего прерывание.

  5. Выбирает процесс, которому необходимо передать управление. Загружает регистры нового процесса. Начинает выполнение нового процесса.

ДРАЙВЕРЫ УСТРОЙСТВ.

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

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

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

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

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

Поэтому существует определенная классификация драйверов в соответствии с типом обслуживаемых ими устройств.

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

Ранее ОС включали в себя набор всех необходимых драйверов. При появлении нового устройства необходимо было добавить в ОС кусок кода и заново ее компилировать. Такая схема долго использовалась в ОС UNIX.

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

В ОС MS-DOS эта процедура выглядит следующим образом:

Во время загрузки ОС MS-DOS выполняются команды специального файла конфигурации ОС Config.sys. В этом файле существует специальная команда device, с помощью которой к системе подключаются драйверы устройств. Когда необходимо работать с мышью, то ОС автоматически подключает драйвер мыши. Процедура подключения драйверов к системе автоматизирована и осуществляется при помощи механизма Plug&Play.

Наиболее типичные функции драйвера:

  1. Обработка запросов записи и чтения

  2. Необходимо инициализировать устройства ввода-вывода

  3. Управление энергопотреблением

  4. Включение и выключение устройств

СХЕМА РАБОТЫ УСТРОЙСТВА ВВОДА\ВЫВОДА.

Рассмотрим эту схему на примере запуска программы:

  1. Пользователь инициализирует запуск какого-либо программного файла.

  2. ОС на основании справочной информации, хранящейся в области корневого каталога и таблицы размещения файлов, находящейся в ОЗУ.

  3. Затем ОС передает управление драйверу устройства ввода-вывода, в котором находится данный файл.

  4. При помощи команд драйвера ОС переписывает файл с магнитного диска в буфер контроллера.

  5. Когда буфер заполнен, то устройство ввода-вывода выдает сигнал-запрос на прерывание.

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

  7. Обработчик прерывания переносит информацию из буфера контроллера в ОЗУ.

  8. После того, как файл будет полностью скопирован в память, ОС полностью передаст ему управление.

НЕЗАВИСИМОЕ ОТ УСТРОЙСТВ ПО ВВОДА\ВЫВОДА.

В некоторых ОС могут существовать функции, связанные с вводом-выводом, не зависящим от конкретных устройств ввода-вывода. К таким функциям относятся:

  1. Единообразный интерфейс для взаимодействия драйверов с ОС. Это набор привил, по которым создатели драйверов должны создавать свои программы для работы с конкретной ОС.

  2. Буферизация. В некоторых ОС существует функция создания дополнительных буферов при работе с устройствами ввода-вывода. Буфер – это часть ОЗУ, которая резервируется для хранения информации, записанной или считанной с устройств ввода-вывода. Например, в ОС MS-DOS в файле CONFIG.SYS существует специальная команда BUFFERS, с помощью которой можно создать определенное число дисковых буферов. С помощью этих буферов ускоряется ввод-вывод информации с магнитный дисков.

  3. Сообщения об ошибках. Эта часть ПО отвечает за индикацию сообщений об ошибках, связанных с вводом-выводом.

  4. Захват и освобождение выделенных устройств. Эта часть ПО связана с распределением времени управления ОС различными устройствами.

ПРОГРАММНОЕ ОБЕСПЕЧЕНИЕ ВВОДА\ВЫВОДА УРОВНЯ ПОЛЬЗОВАТЕЛЯ.

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

Spooling – это предварительное накопление данных.

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

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

Спулинг используется не только для принтеров, например передачу файлов по сети осуществляет ДЕМОН. Чтобы посылать файл в другой компьютер, пользователь помещает его в каталог сетевого демона. Затем сетевой демон извлекает этот файл и посылает его по сети. Такая система работает в сервисе Интернета «Usenet News».

Вся эта система работает вне ОС.

СХЕМА РАБОТЫ ПО ВВОДА-ВЫВОДА.

ПО ввода-вывода уровня пользователя

Spooling, обращение к ОС в вводе-выводе.

Устройство-независимое ПО операционной системы

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

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

Управление устройствами ввода-вывода при помощи команд, помещенных в регистры.

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

Перенос информации из буфера устройства ввода-вывода в память и наоборот, передача управления драйверу.

Аппаратура ввода-вывода

Выполнение операции ввода-вывода.

УПРАВЛЕНИЕ ПАМЯТЬЮ. ОСНОВНЫЕ ФУНКЦИИ.

Длительное время память представляла собой один из самых дорогостоящих ресурсов компьютера. Первые ПК имели память объемом 16-32 Кб и только Macintoch имел 64 Кб.

В настоящее время, благодаря успехам в развитии микроэлектроники ОЗУ достигла размеров 512 Мб - 1 Гб. В соответствии с принципом фон Неймана память имеет иерархическую структуру.

На верхней ступени иерархии находятся регистры микропроцессора, далее идет ОЗУ.

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

И на самой низкой ступени иерархии располагается внешняя память, которая имеет самый большой V, но минимальное быстродействие.

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

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

ПОНЯТИЕ О РАСПРЕДЕЛЕНИИ ПАМЯТИ.

Распределению памяти обычно подлежит вся часть ОЗУ, не занятая ОС. Обычно ОС располагается в самых младших адресах памяти, т.е. те, которые начинаются с 0.

ОС для управления памятью должна выполнять следующие функции:

  1. Должна отслеживать участки свободной и занятой памяти.

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

  3. Вытеснять процессы из ОЗУ на магнитный диск в том случае, когда размера памяти не хватает для размещения всех процессов.

  4. Возвращать процессы в ОЗУ, когда в ней освобождается место.

  5. Настраивать адреса процессов на конкретную область физической памяти.

ТИПЫ АДРЕСОВ.

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

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

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

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

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

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

Превращение виртуальных адресов в физические может осуществляться 2 способами:

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

  2. Программа загружается в память в неизменном виде в виртуальных адресах, при этом ОС фиксирует смещение действительного расположения программного кода относительно виртуального адресного пространства. Во время выполнения программы при каждом обращении к ОЗУ выполняется преобразование виртуального адреса в физический.

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

РАСПРЕДЕЛЕНИЕ ПАМЯТИ.

РАСПРЕДЕЛЕНИЕ ПАМЯТИ ФИКСИРОВАННЫМИ РАЗДЕЛАМИ.

Самым простым способом управления ОЗУ является разделение ее на несколько разделов фиксированной величины. Это может производиться вручную оператором во время старта системы, либо происходить автоматически во время запуска системы. При этом может быть 2 варианта распределения памяти при выполнении процесса:

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

  2. Могут существовать очереди к разделам. В данном случае система управления памятью должна решать следующие задачи:

        1. Сравнивать размер программы, поступающей на выполнение с V свободных разделов и выбирать подходящий для данной программы свободный раздел памяти.

        2. Загружать программу в раздел и осуществлять настройку адресов.

Этот способ легко реализовывается, но имеет существенный недостаток:

  1. Число одновременно выполняемых программ определяется числом разделов.

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

Такая система управления памятью использовалась в серии машин IBM 360. В современных ОС практически не используется.

РАСПРЕДЕЛЕНИЕ ПАМЯТИ РАЗДЕЛАМИ ПЕРЕМЕННОЙ ВЕЛИЧИНЫ.

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

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

Задачи ОС при данном методе управления памятью:

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

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

  3. Загрузка задачи в выделенный не занятый раздел и корректировка работы таблиц свободных и занятых областей.

  4. После завершения задачи – корректировка свободных и занятых областей.

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

  1. В первый попавшийся раздел доступного размера.

  2. В раздел, имеющий наименьший доступный размер.

  3. В раздел, имеющий наибольший доступный размер.

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

Фрагментация памяти – образование несмежных свободных участков памяти небольшого V. В такие участки нельзя загрузить ни одну вновь поступающую программу.

РАСПРЕДЕЛЕНИЕ ПАМЯТИ ПЕРЕМЕЩАЮЩИМИСЯ РАЗДЕЛАМИ.

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

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

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

ПОНЯТИЕ ВИРТУАЛЬНОЙ ПАМЯТИ.

Давно программисты столкнулись с проблемой размещения в памяти программ, размер которых превышает объем физической памяти. Одним из решений этой проблемы было деление программ на части, которые получили название ОВЕРЛЕИ. Нулевой оверлей начинал выполняться первым. Когда он завершал выполнение, то вызывал следующий, первый, оверлей. Все оверлеи хранились на магнитном диске и перемещались между диском и ОЗУ за счет управления ОС. Разбиение программ на оверлеи и планирование их загрузки должен был осуществлять программист.

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

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

Виртуальная память должна выполнять следующие задачи:

  1. Размещать данные в различных устройствах различного типа (часть в ОЗУ, часть на винчестере).

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

Все эти действия виртуальная память должна совершать без участия программиста (или пользователя).

Наиболее распространенными способами реализации виртуальной памяти являются:

  1. Страничное распределение

  2. Сегментное распределение

  3. Странично-сегментное распределение

  4. Свопинг

СТРАНИЧНОЕ РАСПРЕДЕЛЕНИЕ ПАМЯТИ.

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

Процесс 1

0

1

2

3

4

Процесс 2

0

1

2

3

4

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

Вся ОЗУ также делится на части того же размера, который носит название – физические страницы.

Размер страницы является степенью числа 2, что позволяет управлять механизмом образования адресов.

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

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

Таблица станиц процесса

№ виртуальной страницы

№ физической страницы

Управляющая информация

0

6

1

ВП

2

ВП

3

2

4

3

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

Кроме того, в таблице страниц хранится управляющая информация. К ней относится:

  1. Была ли изменена страница

  2. Признак выгруженности (некоторые страницы нельзя выгружать на магнитный диск)

  3. Некоторые другие данные, которые формируют механизм виртуальной памяти.

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

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

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

При этом используется несколько алгоритмов:

  1. Выгружаются из памяти дольше всего не использующиеся страницы

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

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

В некоторых ОС имеется понятие рабочего множества страниц. Рабочее множество страниц определяется для каждого процесса и представляет из себя перечень страниц, которые наиболее часть используются и, поэтому должны постоянно находиться в ОЗУ.

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

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

Виртуальный адрес при страничной организации памяти может быть представлен в виде двоичного числа, состоящего из двух частей, одна из которых является номером виртуальной страницы процесса, а вторая – смещением в виртуальной странице. Учитывая то, что размер страницы равен 2k, смещение S может быть получено отделением k двоичных разрядов в двоичной записи виртуального адреса.

При каждом обращении к ОЗУ аппаратные средства ЭВМ выполняют следующие действия:

Н а основании начального адреса таблицы страниц (хранится в специальном регистре процессора), а также номера виртуальной страницы и длины записи в таблице страниц определяется адрес нужной записи в таблице. Из этой записи извлекается номер физической страницы. Физический адрес также будет состоять из двух двоичных чисел. Старшими разрядами физического адреса является номер физической страницы. К нему добавляется смещение, которое равно смещению виртуальной страницы. Т.к. V страницы равен 2k, то это позволяет при образовании физического адреса заменить операцию сложения операцией конкатенации (присоединения).

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

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

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

СЕГМЕНТНОЕ РАСПРЕДЕЛЕНИЕ ПАМЯТИ.

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

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

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

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

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

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

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

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

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

  1. Номер сегмента

  2. Смещение

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

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

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

СТРАНИЧНО-СЕГМЕНТНОЕ РАСПРЕДЕЛЕНИЕ ПАМЯТИ.

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

ОЗУ делится на физические страницы. Загрузка процесса выполняется ОС постранично, при этом часть страниц размещается в ОЗУ, а часть – на диске.

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

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

СВОПИНГ. КЕШ-ПАМЯТЬ.

СВОПИНГ.

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

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

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

КЕШ-ПАМЯТЬ.

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

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

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

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

Каждая запись в Кэш-памяти хранит следующую информацию:

  1. Адрес данных в RAM

  2. Данные

  3. Управляющая информация

    1. Признак модификации

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

В системах с Кэш-памятью каждый запрос к RAM выполняется в соответствии со следующим алгоритмом:

  1. Просматривается содержимое Кэш-памяти с целью определения, не находятся ли нужные данные в Кэш-памяти.

  2. Кэш-память не является адресуемой, поэтому поиск происходит по значению адреса данных в RAM, который берется из запроса к RAM.

  3. Если данные содержатся в Кэш-памяти, то они считываются из нее и передаются в процессор.

  4. Если нужных данных нет, то они копируются в нее из RAM вместе с адресом, а результат затем передается в процессор.

  5. Если в Кэш-памяти не оказалось свободного места, тогда выбирается запись в Кэш-памяти, к которой за последний период времени было меньше всего обращений, и она удаляется, а на ее место записывается новая.

На практике в Кэш-память считывается не один элемент данных, а целый блок данных, что увеличивает вероятность нахождения данных в Кэш-памяти. В реальных системах вероятность нахождения нужных данных в Кэш-памяти равна 0,9. Это связано с тем, что у данных имеются объективные свойства: пространственная и временная локальность.

Структура Кэш-памяти.

Адрес данных в RAM

Данные

Управляющая информация

Бит модификации

Бит обращения

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

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

Кэш-память может работать и по отношению к другим парам запоминающих устройств (например, ОЗУ – ВЗУ).

ПОНЯТИЕ КОМПЬЮТЕРНОЙ БЕЗОПАСНОСТИ. ОСНОВНЫЕ ФУНКЦИИ.

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

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

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

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

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

УГРОЗЫ КОМПЬЮТЕРНОЙ БЕЗОПАСНОСТИ.

С позиции безопасности, компьютерная система должна решать 3 основные задачи:

  1. Конфиденциальность. Если владелец данных решил, что эти данные будут доступны только определенному кругу лиц, то система должна гарантировать, что к этим данным не смогут получить доступ лица, не входящие в этот круг.

  2. Целостность данных. Целостность данных означает, что неавторизированные пользователи не должны иметь возможности изменять данные без разрушения владельца, т.е. изменять, удалять или добавлять фальшивые данные.

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

ТИПЫ ЗЛОУМЫШЛЕННИКОВ.

Люди, которые пытаются получить несанкционированный доступ к данным, в компьютерной литературе называются злоумышленниками. Существует 2 категории злоумышленников: пассивные и активные. Пассивные пытаются получить информацию. Активные пытаются ее изменить.

Наиболее распространенными категориями злоумышленников являются:

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

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

  3. Люди, которые взламывают КС для обогащения. Это те, кто взламывают банковские системы, номера кредитных карточек.

  4. Люди, которые занимаются военным и коммерческим шпионажем.

  5. Еще одним видом злоумышленников являются компьютерные программы, которые называются компьютерными вирусами. Вирусы – это особый вид программ, которые обладают способностью к самовоспроизведению, и могут наносить компьютерной системе различный урон.

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

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

  2. Различного рода сбои и ошибки аппаратуры компьютера.

  3. Человеческие ошибки.

Все эти проблемы решаются путем резервного копирования данных.

АУТЕНТИФИКАЦИЯ ПОЛЬЗОВАТЕЛЕЙ.

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

Большинство методов аутентификации основаны на распознавании:

  1. Чего-то, известного пользователю.

  2. Чего-то, имеющегося у пользователя.

  3. Чего-то, чем является пользователь.

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

АУТЕНТИФИКАЦИЯ С ИСПОЛЬЗОВАНИЕМ ПАРОЛЯ.

В этом методе аутентификации для регистрации пользователя в системе необходимо соответствие двух символьных последовательностей:

  1. Login

  2. Password

Этот метод является наиболее простым, т.к. для его применения не требуется никакого дополнительного оборудования. Использование пароля базируется на трех предположениях:

  1. Пользователь может запомнить свой пароль

  2. Никто не сможет догадаться, какой пароль используется

  3. Пользователь никому не сообщает свой пароль

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

Вид атаки, в котором перебираются все возможные пароли, называется словарной атакой. Возможности словарной атаки были продемонстрированы в 1987 году студентом Робертом Моррисом. Разработанная Моррисом программа, червь Морриса, использовала словарную атаку и последующий вход в систему с целью заполнения всей ОЗУ этой самой программой.

После входа в систему, червь создавал многочисленные свои копии, которые и заполняли всю ОЗУ. При подборе пароля, червь Морриса использовал следующие варианты:

  1. Входное имя пользователя

  2. Входное имя пользователя задом на перед

  3. Компонент полного имени пользователя (имя, фамилия и т.д.)

  4. Эти же элементы, но задом на перед

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

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

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

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

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

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

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

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

АУТЕНТИФИКАЦИЯ С ИСПОЛЬЗОВАНИЕМ ФИЗИЧЕСКОГО ОБЪЕКТА.

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

В качестве пароля используется pin-код. Как правило, pin-код состоит из 4 цифр. Существует 2 основные разновидности пластиковых карт:

  1. Магнитные

  2. С микросхемой

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

Дешевые, следовательно, широко распространенные, пластиковые карты, содержащие микросхему, делятся на 2 типа:

  1. Карты, хранящие информацию

  2. Смарт-карты

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

В настоящее время наибольший V работ в сфере безопасности производится со смарт-картами. В эти карты встраивается 8-ми разрядный CPU, работающий с тактовой частотой 4 MHz, 16 Кб ПЗУ, 512 Кб ОЗУ и каналом связи с V 9600 бит в секунду. Причем постоянно происходит совершенствование этих карт. Эти карты являются самыми дорогими среди пластиковых карт, но и обладают большими возможностями. С использованием смарт-карт могут применяться различные схемы аутентификации. Самый простой, работающий на протоколе «отзыв-отклик», работает следующим образом:

  1. Центральный компьютер-сервер посылает случайное 512-разрядное число смарт-карте.

  2. Она добавляет к нему 512-разрядный пароль, хранящийся в ПЗУ.

  3. Возводит эту сумму в квадрат, и средние 512 бит посылаются обратно на сервер, которому известен пароль пользователя.

  4. Сервер производит те же самые операции и сравнивает полученные результаты, тем самым, проверяя правильность пароля.

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

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

АУТЕНТИФИКАЦИЯ С ИСПОЛЬЗОВАНИЕМ БИОМЕТРИЧЕСКИХ ДАННЫХ.

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

Работа типичной биометрической системы состоит из 2-х этапов:

  1. Внесение пользователя в список

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

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

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

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

Существуют и другие биометрические методы.

АТАКИ ИЗНУТРИ СИСТЕМЫ. «ТРОЯНСКИЙ КОНЬ». ФАЛЬШИВЫЕ ПРОГРАММЫ РЕГИСТРАЦИИ.

Атаки изнутри системы – это атаки со стороны уже зарегистрированных в системе пользователей, либо взломщиков, либо законных пользователей со злым умыслом против кого-нибудь.

ТРОЯНСКИЕ КОНИ.

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

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

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

ФАЛЬШИВЫЕ ПРОГРАММЫ РЕГИСТРАЦИИ.

Фальшивые программы регистрации работают следующим образом: при входе в систему пользователю необходимо ввести логин и пароль. Для этого на экране выводится специальное окно регистрации.

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

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

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

АТАКИ ИЗНУТРИ СИСТЕМЫ. ЛОГИЧЕСКАЯ БОМБА. ПОТАЙНЫЕ ДВЕРИ.

ЛОГИЧЕСКИЕ БОМБЫ.

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

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

ПОТАЙНЫЕ ДВЕРИ.

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

АТАКИ СИСТЕМЫ СНАРУЖИ. ПОНЯТИЕ КОМПЬЮТЕРНОГО ВИРУСА. ПОРЯДОК ЗАРАЖЕНИЯ.

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

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

Основную часть таких программ составляют вирусы и компьютерные черви.

ПОНЯТИЕ КОМПЬЮТЕРНОГО ВИРУСА.

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

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

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

ПОРЯДОК ЗАРАЖЕНИЯ.

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

  1. Зараженная вирусом программа через сеть или при помощи копирования файла с ВЗУ попадает на компьютер.

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

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

  4. Вредоносные действия вирус проявляет либо сразу, либо через какое-то определенное количество времени.

ВИРУСЫ-КОМПАНЬОНЫ. ВИРУСЫ, ЗАРАЖАЮЩИЕ ИСПОЛНЯЕМЫЕ ФАЙЛЫ.

Существует 7 основных разновидностей вирусов, отличающихся друг от друга тем, что они заражают:

ВИРУСЫ-КОМПАНЬОНЫ.

Эта разновидность вирусов не заражает программу, а запускается вместо них. Пример: в ОС MS-DOS вводят в командной строке имя какой-нибудь программы. При этом MS-DOS вначале ищет файл с именем prog.com. Расширение .com имеют программные файлы определенного формата. V таких файлов ограничен 64 Кб. В настоящее время файлы с расширением com практически не создаются и не используются. Злоумышленник знает, что под таким именем есть популярная программа, которая часто используется при работе в MS-DOS. Поэтому он создает программу с именем prog.com, которая вначале запустится, выполнит свою работу, а затем передаст управление программе prog.exe.

ВИРУСЫ, ЗАРАЖАЮЩИЕ ИСПОЛНЯЕМЫЕ ФАЙЛЫ.

Это вирусы, которые заражают файлы с расширением exe и com. В ОС MS-DOS наиболее опасным является заражение файла command.com. Т.к. этот файл взаимодействует со всеми программными файлами, которые запускаются в ОС MS-DOS. Наиболее простым видом такого типа вирусов являются вирусы, которые записывают себя поверх исполняемого файла. Но такие вирусы легко обнаружить, т.к. программный файл перестает работать. Большая часть такого рода вирусов приписывают себя либо в начало, либо в конец файла. Если вирус приписывается в конец файла, то он изменяет структуру файла таким образом, что при запуске первым получает управление. Среди этого типа вирусов наибольшее распространение получили вирусы, которые заражают файлы exe. Затем вирусы, которые заражают exe и com файлы. И последние вирусы, которые заражают только com файлы.

РЕЗИДЕНТНЫЕ ВИРУСЫ. БУТОВЫЕ ВИРУСЫ.

РЕЗИДЕНТНЫЕ ВИРУСЫ.

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

БУТОВЫЕ ВИРУСЫ.

При включении ЭВМ начинают работать программы, которые входят в состав BIOS. Эти программы проверяют функционирование компьютера, а затем передают управление программе загрузчику ОС. В MS-DOS и Windows эта программа называется Boot record, и размещается в специальной служебной области магнитного диска. В MS-DOS эти область называется системной областью, и размещается на нулевой дорожке магнитного диска. При форматировании или при работе программы fdisk не происходит изменения записи в этой области диска, поэтому эта область является хорошим укрытием для вируса. Вирус, который заражает или портит программу boot record, копирует ее на свободное место диска, чтобы затем передать ей управление.

МАКРО-ВИРУСЫ. ВИРУСЫ ДРАЙВЕРОВ УСТРОЙСТВ.

МАКРОВИРУСЫ.

Макро-вирусы – это вирусы, которые заражают файлы программ Word и Exel, имеющие в своем составе макросы. Макрос – небольшая программа, написанная на языке VBA (Visual Basic for Aducation). Эти программы обычно предназначены для автоматического выполнения некоторых операций. Была создана разновидность вирусов, которая приписывалась к макросам. Этот вирус получает управление, когда запускается макрос. От этих вирусов легко избавиться, удалив макрос.

ВИРУСЫ ДРАЙВЕРОВ УСТРОЙСТВ.

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

ПРОГРАММЫ «ЧЕРВИ».

В настоящее время эти программы распространяются главным образом через Интернет. В отличие от вирусов, черви не приписываются к другим программам. При попадании на другой компьютер они могут производить копирование самих себя в ОЗУ. Первым червем стала программа червь Морриса.

Технически червь Морриса состоял из 2-х программ:

  1. Начальный загрузчик

  2. Червь

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

В настоящее время Интернет-черви составляют 85% от всех вредоносных программ. В 2003 году произошло несколько глобальных эпидемий. Первую эпидемию вызвал червь Slammed A Hacker. 25 января 2003 года за несколько часов было заражено 100 тысяч компьютеров, подключенных к Интернет. Это привело к перегрузке и выводу из строя целых национальных участков сети Интернет.

Вторая эпидемия – Lovesson Blaster (август 2003 года). Этот червь предназначался для систем, работающих под Windows XP.

АНТИВИРУСНЫЕ ПРОГРАММЫ: СКАНЕРЫ. CRC-СКАНЕРЫ.

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

СКАНЕРЫ.

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

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

В некоторых сканерах для поиска вирусов используется эвристический метод (например, Dr. Web). В этом методе для поиска вирусов производится анализ последовательности команд в проверяемом объекте, набор некоторой статистики и принятие решения: не заражен или возможно заражен вирусом. Т.к. этот метод вероятностный, то на него распространяются законы теории вероятностей. Например, чем больше находит вирусов – тем больше ложных срабатываний.

Сканеры можно разделить на 2 категории:

  1. Универсальные

  2. Специализированные

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

Специализированные проверяют только тогда, когда их запускают.

Достоинства: универсальность, относительный V работы.

Недостатки: программы могут определять только уже известные вирусы. Необходимо постоянно обновлять базы данных о вирусах.

CRC-СКАНЕРЫ.

Этот тип антивирусных программ работает в 2 этапа:

  1. Запоминает состояние всех файлов и системных областей всех дисков. Для этого для каждого файла и системной области диска подготавливается CRC-сумма. Эти суммы и другие данные о файлах и системных областях дисков хранятся в специальной базе данных.

  2. Программа сравнивает текущее состояние файла и область диска с запомненными. Если информация в БД и состояние файла различны, то поступает сообщение о том, что файл был изменен или заражен вирусом.

Достоинства: если произошло заражение вирусом, то почти в 100% случаев заражение будет выявлено.

Недостатки: проверка на вирусы производится достаточно медленно. Такие программы запускают 1 раз в сутки. Если заражение произошло после проверки, то у вируса если достаточно времени, чтобы заразить другие файлы и произвести вредоносные действия.

Есть разновидность вирусов, которые заражают вновь созданные файлы.

АНТИВИРУСНЫЕ ПРОГРАММЫ: БОКИРОВЩИКИ. ИММУНИЗАТОРЫ.

БЛОКИРОВЩИКИ.

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

Достоинства: могут выявлять заражение вирусом на самой ранней стадии.

Недостатки: большое число ложных срабатываний и появление вирусов, которые в своей работе не используют прерывания.

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

ИММУНИЗАТОРЫ.

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

Недостатки: для каждого типа вирусов нужно создавать свой иммунизатор.

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

Недостатки: не могут выявить часть вирусов (например, бутовые).

ПРОФИЛАКТИКА ОТ ЗАРАЖЕНИЯ ВИРУСАМИ. ДЕЙСТВИЯ ПОЛЬЗОВАТЕЛЯ ПРИ ЗАРАЖЕНИИ ВИРУСАМИ.

ПРОФИЛАКТИКА ОТ ЗАРАЖЕНИЯ ВИРУСАМИ.

Для уменьшения возможности заражения вирусам и уменьшении наносимого ми вреда в случае заражения предпринимается следующее:

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

  2. Установить на компьютер современный антивирус, обеспечивающий защиту от вирусов и червей.

  3. Необходимо сделать резервную копию всех необходимых файлов и записать ее на диск.

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

  5. При возможности не допускать к компьютеру посторонних лиц.

ДЕЙСТВИЯ ПОЛЬЗОВАТЕЛЯ ПРИ ЗАРАЖЕНИИ ВИРУСАМИ.

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

  1. Появление новых файлов, неизвестных пользователю

  2. Некоторые программные файлы могут иметь ненормальную дату создания файла

  3. Изменение V программного файла

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

  5. ОС иногда самопроизвольно перезагружается

Если пользователь заметил, что произошло заражение, следует предпринять следующие действия:

  1. Не торопиться и не предпринимать необдуманных действий.

  2. Выключить компьютер, чтобы предотвратить дальнейшее заражение.

  3. Произвести загрузку компьютера при помощи загрузочного диска. (Если это дискета, то нужно защитить ее от записи).

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

  5. Проверить антивирусом все носители информации, которые использовались на зараженном компьютере.

ПРИНЦИПЫ ПОСТРОЕНИЯ ОПЕРАЦИОННЫХ СИСТЕМ: ПРИНЦИП МОДУЛЬНОСТИ. ПРИНЦИП ВИРТУАЛИЗАЦИИ.

ПРИНЦИП МОДУЛЬНОСТИ.

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

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

При создании ядра ОС существует 2 противоречивых требования:

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

  2. V модулей должен быть таким, чтобы не занимать достаточно большое количество ОЗУ.

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

Кроме ядра, в состав ОС может входить достаточно большое количество другие модулей. Эти модули называются транзитными. Они загружаются в ОЗУ только при необходимости и выгружаются, если требуется загрузка других модулей.

ПРИНЦИП ВИРТУАЛИЗАЦИИ.

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

Сама ОС изменяет наши представления о компьютере. Она виртуализирует его, добавляет ему функциональность, удобство управления и т.д. Наиболее законченным проявлением принципа виртуальности является понятие «виртуальная машина».

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

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

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

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

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

Степень приближения к идеальной виртуальной машине может быть различной в каждом конкретном случае. Примем принципа виртуализации – Virtual Dos Machine (VDM). VDM – подсистема ОС Windows, которая позволяет выполнять DOS программы. Такие же виртуальные DOS-машины есть и в ОС Linux и в OS/2.

ПРИНЦИПЫ ПОСТРОЕНИЯ ОПЕРАЦИОННЫХ СИСТЕМ: ПРИНЦИП ОСОБОГО РЕЖИМА РАБОТЫ. ПРИНЦИП СОВМЕСТИМОСТИ.

ПРИНЦИП ОСОБОГО РЕЖИМА РАБОТЫ.

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

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

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

        1. Привилегированном (режим супервизора)

        2. Пользовательском

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

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

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

Супервизорная часть вначале проверяет этот запрос. И, если он корректный, то передает для выполнения соответствующему модулю ОС.

Множество всех запросов к супервизорной части ОС образует интерфейс прикладного программирования API (Application Program Interface).

ПРИНЦИП СОВМЕСТИМОСТИ.

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

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

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

Гораздо сложнее достичь совместимости на уровне кодов для машин с различной архитектурой. Например, чтобы программы. Написанные для компьютеров IBM, выполнялись на компьютерах фирмы Apple, необходимо, чтобы процессор компьютеров Apple мог выполнять команды, которые предназначены для процессоров фирмы Intel.

Процессоры фирмы Apple имеют другую архитектуру, т.е. у них другой состав регистров, другой тип АЛУ и т.д.

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

ПРИНЦИПЫ ПОСТРОЕНИЯ ОПЕРАЦИОННЫХ СИСТЕМ: ПРИНЦИП БЕЗОПАСНОСТИ ВЫЧИСЛЕНИЙ.

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

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

Основы стандартов в области безопасности заложены в документе «Критерий оценки надежных компьютерных систем», который издан в США, и называется «Оранжевая книга». В этом документе приведена иерархия уровней безопасности.

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

В соответствии с этим стандартом существует иерархия уровней безопасности:

  1. Класс D. Самая низкая безопасность.

  2. Класс C. Тоже, что и D + наличие системы учета событий, связанных с безопасностью, и избирательный контроль пользователей. Класс C имеет 2 подуровня:

    1. Подуровень C1. Защита данных от пользователей, но не от злоумышленников.

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

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

  4. Класс А. Тоже, что и класс B + добавлено выполнение некоторого математически обоснованного доказательства в соответствии с системой требуемой безопасностью. Т.к. выполнение требуемой классом А безопасности может занимать до 90% процессорного времени, то практически системы безопасности такого уровня не используются.

ОПЕРАЦИОННАЯ СИСТЕМА MS-DOS. СТРОЕНИЕ И ФУНКЦИИ МОДУЛЕЙ.

ОС MS-DOS является однозадачной ОС, в которой практически вся память предоставляется только загруженному процессу. ОС MS-DOS состоит из следующих модулей:

  1. Boot record.

  2. BIOS.

  3. IO.SYS.

  4. MSDOS.SYS.

  5. COMMAND.COM.

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

  7. Внешние команды DOS.

ЗАГРУЗЧИК ОС (BOOT RECORD).

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

Эта программа не обладает возможностью поиска, поэтому эти файлы (MSDOS.SYS и IO.SYS) должны находиться на диске в строго определенном месте.

Записываются они в это место при помощи команды format \s, либо при помощи специальной команды для копирования этих файлов SYS.

Таким образом, загрузочный диск ОС MS-DOS должен содержать программу загрузчик, файлы IO.SYS и MSDOS.SYS, записанные в строго определенное место диска, файл COMMAND.COM.

БАЗОВАЯ СИСТЕМА ВВОДА-ВЫВОДА (BIOS).

BIOS – это комплекс программ и некоторых важных таблиц данных, которые записываются в ПЗУ компьютера.

BIOS является не только модулем ОС MS-DOS, но и модулем других ОС, предназначенных для компьютеров IBM PC.

Основной частью BIOS является несколько программ. При включении компьютера первой начинает работу программа POST (Power of Self Testing). Назначение этой программы состоит в том, чтобы проверять функционирование всех основных устройств компьютера. Если тестирование прошло успешно, управление передается другой программе, находящейся в BIOS.

Эта программа называется «Вызов загрузчика». Она находит и загружает программу boot record. Для этого она в определенном порядке проверяет, в каком дисководе находится диск с программой boot record.

Остальной частью BIOS являются программы для управления стандартными устройствами ввода-вывода.

Работа этих программ осуществляется при помощи специальной процедуры – прерываний.

Для управления некоторыми функциями BIOS существует программа BIOS setup. Эта программа хранится в специальной энергозависимой памяти CMOS. Эта память питается от специального аккумулятора. В этой памяти хранятся некоторые важные характеристики данного компьютера (тип и V жесткого диска, и т.д.).

МОДУЛЬ РАСШИРЕНИЯ BIOS (IO.SYS).

Это один из важнейших модулей MS-DOS. Он предназначен для расширения функций BIOS. С его помощью решаются следующие задачи:

  1. Связь BIOS с ОС MS-DOS. Т.к. BIOS может использоваться другими ОС, то в каждой такой ОС должен быть модуль, который осуществляет связь BIOS с конкретной ОС.

  2. Исправление ошибок BIOS. В то время, когда использовалась ОС MS-DOS, в компьютерах в качестве ПЗУ использовалась неперезаписываемая память. Если там содержалась ошибка, то ее можно было исправить с помощью модуля IO.SYS. Для этого, программу с исправленной ошибкой помещали в файл IO.SYS, а когда происходило обращение к программе, содержащей ошибку и находящейся в ПЗУ, то с помощью изменения вектора прерываний происходило перенаправление вызова к исправленной программе, находящейся в файле IO.SYS.

  3. Подключение к системе и обслуживание новых устройств ввода-вывода. Для подключения устройства к компьютеру IBM PC необходимо внести соответствующую команду в файл конфигурации системы ( device = mouse.sys). После своей загрузки в память файл IO.SYS ищет в корневом каталоге загрузочного диска файл config.sys и тем самым производится выполнение команд, входящих в этот файл.

МОДУЛЬ ОБРАБОТКИ ПРЕРЫВАНИЙ (MSDOS.SYS).

Этот модуль является основой ОС MS-DOS, т.к. выполняет важнейшую функцию, связанную с обработкой прерываний. В состав этого файла входят обработчики всех основных прерываний. Управление обработкой прерываний при помощи файла MSDOS.SYS осуществляется следующим образом:

Когда какое-либо устройство выдает запрос на прерывание, то по этому сигналу файл MSDOS.SYS останавливает выполнение текущей программы, с запоминанием текущей информации из регистров процессора в специальной памяти – стеке.

Затем MSDOS.SYS передает управление драйверу данного устройства. По окончании работы драйвера в соответствии с номером и вектором данного прерывания, файл MSDOS.SYS запускает обработчик данного прерывания. По окончании обработки прерывания файл MSDOS.SYS передает управление прерванной программе.

Номер и вектор прерывания хранятся в специальной таблице, которая называется таблица прерываний. Эта таблица хранится в ПЗУ и при загрузке ОС загружает в ОЗУ, где находится во время всего сеанса работы.

КОМАНДНЫЙ ПРОЦЕССОР (COMMAND.COM).

Этот файл предназначен для организации взаимодействия между пользователем и ОС на основе языка команд. В MS-DOS существует 2 типа команд:

  1. Внутренние команды DOS. Это небольшие программы, которые являются частью самого файла command.com (dir, copy и т.д.). В самом файле имеется список этих команд.

  2. Внешние команды. Внешние команды – это файлы com и exe. Когда пользователь вводит в командной строке какую-либо команду, то после нажатия Enter, файл command.com проверяет, входит ли данная команда в список внутренних команд. Если это программный файл, то файл ищет его в текущем каталоге, а затем в других каталогах, указанных в команде с именем PATH. Если заданный файл найден, то в соответствии с информацией, записанной в области корневого каталога и в таблице размещения файлов, файл загружается в ОЗУ и ему передается управление. Если файл не найден, то выводится сообщение об ошибке.

Файл command.com отслеживает выполнение команд в пакетных файлах. Пакетный файл – это текстовый файл, каждая строка которого начинается с имени команды DOS или программного файла.

При загрузке ОС после своей загрузки в память файл command.com ищет в корневом каталоге загрузочного диска файл autoexec.bat. Если этот файл существует, то command.com отслеживает выполнение команд этого файла. В файл autoexec.bat включаются все команды, которые должны выполниться при загрузке ОС.

Если файла autoexec.bat в корневом каталоге нет, то command.com выводит на экран запрос о текущей дате и времени.

ДРАЙВЕРЫ УСТРОЙСТВ.

Для того, чтобы ОС могла работать с большим количеством внешних устройств, к ней дополнительно могут включаться драйверы. В ранней версии DOS файлы драйверов имели расширение drv, а в последних – sys.

ВНЕШНИЕ КОМАНДЫ DOS.

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

Например, format.com, fdisk.com, chkdisk.com. Внешние команды DOS обычно поставляются в комплекте с ОС.

УПРАВЛЕНИЕ ПАМЯТЬЮ В MS-DOS.

Вся память в MS-DOS делится между ОС MS-DOS и программой.

Ограничение на память: V памяти, к которому может обращаться микропроцессор, зависит от технических характеристик микропроцессора и разрядности адресной шины. К техническим характеристикам микропроцессора относится режим работы микропроцессора. Микропроцессоры, на основе которых создавался компьютер IBM PC (8086, 8080) имели только один режим работы – нормальный.

При работе в этом режиме микропроцессор мог обращаться к V памяти в 1024 Кб. При разработке карты памяти V в 1 Мб инженеры фирмы IBM произвольным образом разбили адресное пространство на два участка: 640 Кб и 384 Кб. Участок памяти в 384 Кб был отведен под адреса ПЗУ, адреса видео ОЗУ и адреса адаптеров некоторых устройств. Участок памяти в 640 Кб – под ядро ОС и прикладные программы. Все возможности по адресации памяти процессор может реализовать только при работе в 2-х режимах работы.

А ЛГОРИТМ ЗАГРУЗКИ ОС MS-DOS.

ТИПЫ ПАМЯТИ В КОМПЬЮТЕРАХ IBM PC.

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

  1. Стандартная память (Conventional memory), находится в адресном пространстве от 0 до 640 Кб, предназначена для размещения в ней ядра DOS, файла command.com. При работе в MS-DOS V файла exe ограничен.

  2. Верхняя память (Upper memory). На карте памяти располагается от 640 до 1024 Кб. Предназначена для размещения адресов ПЗУ, видео ОЗУ и адресов адаптеров некоторых устройств. В общем случае, эта память для пользователя недоступна. Но в последних версях Ms-DOS при помощи специального драйвера в эту область памяти можно загрузить драйверы и резидентные программы.

  3. Расширенная память (Extended memory). Доступна только при работе в защищенном режиме работы и выше. При работе в DOS эта память также недоступна. При работе в DOS при помощи специального драйвера становятся доступны первые 64 Кб этой памяти (high memory). При помощи специальных программ в эту область памяти можно загружать ядро DOS.

  4. Отображаемая память (Expanded memory). Уже в начале 80-х годов некоторым прикладным программам (СУБД) стало нехватать памяти для размещения данных. Несколько фирм разработали концепцию отображаемой памяти. Доступ к этой памяти осуществляется при помощи специального драйвера EMM.SYS. Этот драйвер делил всю отображаемую память на участки по 16 Кб, логические страницы. Затем, драйвер emm.sys находил в upper memory незадействованный участок в 64 Кб и делил его на 4 участка по 16 Кб (физические страницы). Затем, этот драйвер ставил в соответствие 4-м логическим страницам 4 физические страницы. Когда в прикладной программе требовалось загрузить данные в отображаемую память, то процессор направлял информацию по адресам 4-х физических страниц, но при этом она записывалась не в верхнюю, а в отображаемую память, т.е. в логические страницы.

Когда заполнялись 1-е 4 логические страницы, то в соответствие 4-м физическим страницам ставились 4 новые логические страницы.

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

ЗАГРУЗКА ЯДРА DOS В ВЫСОКУЮ ПАМЯТЬ.

С 5 версии DOS существует возможность загрузки ядра DOS в специальный участок расширенной памяти – high memory area (область расширенной памяти). Для этого использовался специальный драйвер HIMEM.SYS. Этот драйвер подключается к системе при помощи строки в файле config.sys: DEVICE = c:\himem.sys.

Эта команда делает доступной для пользователя 1-е 64 Кб расширенной памяти (HMA). Для того, чтобы файлы io.sys и msdos.sys были загружены в HMA, в файл config.sys необходимо включить следующую команду: DOS = HIGH.

ЗАГРУЗКА ДРАЙВЕРОВ РЕЗИДЕНТНЫХ ПРОГРАММ В БЛОКИ ВЕРХНЕЙ ПАМЯТИ.

Драйверы и резидентные программы по умолчанию загружаются в стандартную память. Начиная с 5 версии DOS существует возможность загрузки драйверов и резидентных программ в блоки верхней памяти. Верхняя память в обычных условиях для пользователя недоступна. Для того, чтобы память стала доступной для пользователя, необходимо проделать следующие шаги:

  1. Подключить к системе драйвер EMM386.EXE с помощью команды в файле config.sys: DEVICE = C:\EMM386.EXE. Драйвер EMM386.EXE имеет два параметра: NOEMS и RAM. NOEMS означает, что не будет создаваться отображаемая память, а свободные участки верхней памяти будут преобразованы в блоки верхней памяти (Upper Memory Block (UMB)). RAM означает, что часть расширенной памяти будет преобразована в отображаемую память и после этого указывается V расширенной памяти, которая будет преобразована в отображаемую.

  2. В файле config.sys должна быть указана команда DOS=UMB. Эта команда позволяет сделать блоки верхней памяти доступными для пользователя. Если при этом загружается ядро DOS в высокую память, то команда может выглядеть следующим образом: DOS=UMB, HIGH. При этом становится доступны для пользователя блоки верхней памяти.

ЗАГРУЗКА РЕЗИДЕНТНЫХ ПРОГРАММ В UMB.

Резидентные программы – программы, постоянно находящиеся в верхней памяти. Чтобы загрузить их в блоки верхней памяти, необходимо использовать внутреннюю команду DOS LH (Load High). Например, загрузка русификатора клавиатуры выглядит следующим образом: LH c:\rk.com. Для того, чтобы загружать драйверы в блоки верхней памяти, в файле config.sys используется специальная команда: DEVICEHIGH = c:\mouse.sys.

КОНФИГУРИРОВАНИЕ ЖЕСТКОГО ДИСКА.

Конфигурирование жесткого диска заключается в создании на жестком диске разделов. Существуют следующие типы разделов:

  1. Первичный раздел DOS. Предназначен для загрузки ОС фирмы Microsoft.

  2. Расширенный раздел DOS. Предназначен для создания в нем логических дисков. Логические диски создаются в следующих случаях:

        1. Для удобства работы пользователя.

        2. В том случае, если ОС не поддерживает целиком V жесткого диска

  3. Разделы не DOS. Для размещения ОС, созданной не фирмой Microsoft.

В общем случае на диске может быть 1 первичный раздел DOS, 1 расширенный раздел DOS и 2 раздела не DOS. Для создания разделов на жестком диске используется специальная программа. Например, Partition Magic.

ОПЕРАЦИОННЫЕ СИСТЕМЫ С ГРАФИЧЕСКИМ ИНТЕРФЕЙСОМ.

ОС с командным интерфейсом обладают следующими недостатками:

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

  2. ОС MS-DOS может работать только в реальном режиме работы микропроцессора, что не позволяет использовать расширенную память.

  3. MS-DOS является однозадачной ОС.

В связи с этим, разработчики ПО стали переходить к графическому интерфейсу пользователя. Первый графический интерфейс пользователя создан фирмой Apple для компьютеров Macintoch. Покой интерфейс в конце 80-х для компьютеров IBM PC стали создавать фирма Microsoft и IBM путем добавления к MS-DOS графической оболочки, которая получила название Windows.

Первая версия Windows, была создана в 1985 году. Эта оболочка была многозадачной и имела некоторые элементы графического интерфейса в виде popup меню. Однако, это версия не получила широкого распространения по ряду причин. Она имела очень много ошибок. Основной парк компьютеров составляли IBM PC XT (8086). Эти процессоры обладали не достаточной мощностью для обработки графики. Эти компьютеры не имели возможности для подключения мыши.

Вторая версия Windows (Windows 2) появилась в 1987 году и несмотря на ряд улучшений, она по тем же причинам не получила широкого распространения.

Новые возможности для Windows появились в связи с выпуском фирмой Intel процессора 80286, а особенно 80386. Процессор 80386 мог работать в следующих режимах:

  1. Реальный режим. Точная копия работы режима процессора 8086.

  2. Режим процессора 80286. Это защищенный режим, в котором процессор мог адресовать до 16 Мб памяти.

  3. Защищенный режим работы процессора 08386, в котором процессор мог адресовать до 4 Гб памяти.

  4. Режим виртуального процессора 8086. Это защищенный режим, в котором процессор 80386 эмулировал работу процессора 8086.

Фирма Microsoft выпустила ряд промежуточных версий Windows для разных процессоров, но только Windows 3.0 широко распространилась для использования на ПК.

ОСНОВНЫЕ ЧЕРТЫ WINDOWS 3X.

  1. В этих версиях реализован привлекательный графический интерфейс. При печать текстов, набранных в Windows был реализован принцип WYSIWYG (What You See Is What You Get). Для этого были использованы специальные масштабируемые шрифты True Type, позаимствованные у фирмы Apple.

  2. Windows представляет из себя замкнутую систему, т.е. все операции можно было производить не выходя из Windows.

  3. В Windows реализован кооперативный механизм многозадачности. Этот механизм работает следующим образом: Некоторому запущенному приложению выделялась какая-то часть времени, чтоб оно могло выполнить некоторую часть работы. Затем управление передавалось другому запущенному приложению или оболочке Windows, чтобы она могла выполнять другую задачу. Такой механизм имел существенный недостаток: некоторые запущенные приложения (программы для DOS) захватывали целиком все ресурсы компьютера, и могли длительное время не возвращать управление.

  4. Windows – интегрированная среда. Под ее управлением могли работать как программы, созданные для Windows, так и программы для DOS. В Windows все приложения, в том числе и DOS приложения могут обмениваться между собой информацией при помощи буфера обмена.

  5. Механизм связи и внедрения объектов OLE (Clipboard Object Liking and Embedding). Суть механизма: из приложения, использующего некоторые данные, можно запустить приложение, с помощью которого эти данные были созданы. (Например, в текстовый документ может быть помещен рисунок, созданный при помощи графического редактора. Щелкнув по рисунку можно запустить графический редактор). Для проведения некоторых сложных операций используется механизм Drag&Drop.

В Windows 3.1 был использован механизм виртуальной памяти при работе в защищенном режиме работы. В Windows 3.11 (Windows для рабочих групп) была включена поддержка работы в сети. Установив на компьютеры сетевые карты и, соединив их при помощи кабеля, можно было совместно использовать файлы и принтеры.

Для управления файлами в Windows 3.x использовалась специальная программа File Manager. С ее помощью можно производить все операции над файлами и каталогами. В Windows впервые появилось понятие документ – файл, созданный каким-либо приложением Windows. Пиктограмма этого файла имела специальный вид.

Для работы с приложениями в Windows 3.x использовалась специальная программа – диспетчер программ (Program Manager). Это основная программа Windows 3.x.

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

У Windows 3.x были существенные недостатки: кооперативная многозадачность не позволяла использовать Windows 3.x для ответственных работ. Для ответственных работ фирма Microsoft создала сетевую ОС – Windows NT. 1-е версии этой ОС не могли конкурировать с распространенной в то время ОС фирмы Novell, т.к. требовали для своей работы очень много аппаратных ресурсов. Но с версии Windows NT 4.0 эта ОС стала широко распространяться. Ее последующие версии 4.5, 5.0, 2000, XP стали доминирующими в мире.

Windows NT задумывалась как ОС с повышенной надежностью и безопасностью. Предназначалась для корпоративных пользователей. До версии XP эти ОС поддерживали очень мало устройств ввода-вывода. Для домашних пользователей в 1995 году выпустили ОС Windows 95.

В отличие от Windows 3.x, которая была всего лишь графической оболочкой для DOS, Windows 95 – полноценная ОС.

ОСНОВНЫЕ ЧЕРТЫ ОС WINDOWS 9X.

  1. В Windows 9x реализована полноценная поддержка всех 32-х разрядных команд процессоров Intel. Кроме того, под управление Windows 95 выполняются 16-ти разрядные программы для DOS и Windows 3x.

  2. Использование 32-х разрядных команд позволило значительно увеличить скорость выполнения программ. Кроме того, значительно увеличена скорость работы с магнитными дисками и скорость вывода информации на принтер.

  3. В Windows 9x значительно улучшен и переработан графический интерфейс пользователя. Этот интерфейс реализован на основе программы Explorer. Одним из видов этой программы является рабочий стол Windows 9x.

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

  5. В ОС Windows 9x использован другой механизм многозадачности – вытесняющая многозадачность. Сущность этого механизма состоит в том, что первоначально всем запущенным приложениям выделяется одинаковое время, и присваивается некоторый уровень приоритета. Если какое-то запущенное приложение не использует отпущенное ему время, то ОС понижает ему уровень приоритета, и уменьшает отведенное ему время. Т.е. происходит вытеснение приложения, которое активно не используется. В отличие от Windows 3x, запущенное приложение не может не вернуть управление ОС. И даже если приложение зависло, то оно может быть выгружено из памяти, не влияя на работу других приложений.

  6. Для конфигурирования вновь подключаемых устройств используется механизм Plug&Play.

  7. В ОС Windows 9x значительно увеличена, и переработана поддержка работы с мультимедиа.

  8. Windows 9x включает в себя средства работы с Internet. Начиная с Windows 98, в нее входят Internet Explorer, Outlook Express.

  9. Все ОС Windows 9x поддерживают работу в сетях.

  10. В ОС Windows 9x поддерживается работа с именами файлов, которые имеют длину до 255 символов, включая пробелы.

  11. В ОС Windows 9x включена некоторая поддержка компьютерной системы безопасности. Существует возможность аутентификации пользователей при помощи пароля, однако при этом защищается только индивидуальные настройки пользователя в ОС.

АРХИТЕКТУРА WINDOWS 9X.

СИСТЕМНАЯ ВИРТУАЛЬНАЯ МАШИНА.

Системная виртуальная машина – это элемент Windows, который обеспечивает работу с приложениями, написанными для Windows 9x. Она состоит из 3-х элементов:

  1. 32-х разрядных приложений для Windows 9x.

  2. Программы для запуска приложений (проводник).

  3. 16-ти разрядные приложения для Windows 3x.

32-х разрядные приложения используют все возможности Windows 9x. При запуске используется вытесняющая многозадачность. Они поддерживают длинные имена файлов. При выполнении 32-х разрядных приложений используются все возможности процессора по адресации памяти. При запуске каждого 32-х разрядного приложения ему выделяется отдельное адресное пространство.

16-ти разрядные приложения – приложения, созданные для Windows 3x. Для работы 16-ти разрядной программы выделяется отдельное адресное пространство, которое совместно используют все запущенные 16-ти разрядные программы. При этом между ними используется кооперативная модель многозадачности.

Программа-оболочка. В Windows 95 существуют 2 программы-оболочки. Одна из них – это программа Explorer, которая обеспечивает весь новый интерфейс, и которая заменила диспетчер программ и диспетчер файлов.

И вторая – 16-ти разрядная оболочка системы Windows 3x.

ВИРТУАЛЬНАЯ МАШИНА DOS. СЛОЙ WINDOWS API.

ВИРТУАЛЬНАЯ МАШИНА DOS.

В Windows 9x работа с DOS-программами осуществляется иначе, чем с программами, написанными для Windows. Каждая DOS программа запускается в специальной рабочей среде – виртуальной машине DOS. При этом процессор работает в специальном режиме. Каждой DOS программе выделяется отдельное адресное пространство в объеме 640 КБ и предоставляется доступ к ресурсам системы. При этом DOS программа считает, что она единственная программа, которая работает на этой машине.

СЛОЙ WINDOWS API.

Слой Windows API включает в себя 2 интерфейса:

  1. 16-ти разрядный

  2. 32-х разрядный

16-ти разрядный – для приложений Windows 3x.

32-х разрядный – для приложений Windows 9x.

Ядро Windows API состоит из 3-х групп файлов. В каждую группу входят 16 и 32 разрядные версии.

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

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

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

WINDOWS И ФАЙЛЫ DLL.

В ОС MS-DOS каждая программа содержала в себе все то, что ей нужно для работы. Если программа использовала графику, то использовались специальные библиотеки. Все это было основано на том, что DOS – это однозадачная система.

Windows 9x – многозадачная и поэтому, возникла идея, что несколько запущенных приложений могут использовать повторяющиеся участки программного кода. (Каждое приложение Windows при запуске рисует окна с одинаковыми элементами). Поэтому, в Windows используются специальные файлы с расширением dll. Это динамически присоединяемые библиотеки.

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

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

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

БАЗОВАЯ СИСТЕМА WINDOWS.

Базовая система – это элемент Windows, который обеспечивает все основные функции ОС. В нее входит:

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

  2. Сетевая подсистема. Сетевая подсистема обеспечивает работу Windows 9x в компьютерных сетях. Сюда также входит возможность работы Windows в Интернет.

  3. Службы ОС. Обеспечивают выполнение разнообразных запросов пользователя и ОС. Сюда входит реализация механизма Plug&Play, а также отображение текущего времени и т.д.

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

  5. Драйверы устройств. В Windows 9x существует два типа драйверов устройств:

    1. Драйверы реального режима. Это те драйверы, которые использовались в DOS и Windows 3x. Для работы с ними, процессор должен переключаться в реальный режим работы.

    2. Драйверы виртуальных устройств VXD. Они используются для работы в защищенном режиме. Использование таких драйверов позволяет сделать работу Windows более стабильной и надежной.

РЕЕСТР WINDOWS 9X.

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

Реестр – важнейшая часть Windows. Если он будет испорчен, то Windows работать не будет. Физически реестр располагается в 2-х файлах:

  1. system.dat

  2. user.dat

Эти файлы располагаются в каталоге Windows. При загрузке ОС автоматически создает резервные файлы system.dao и user.dao для восстановления реестра в случае его уничтожения.

Сам системный реестр состоит из 2-х частей:

  1. В файле system.dat хранится информация об ОС, компьютере и некоторых установленных программах и о настройках, общих для всех пользователей.

  2. В файле user.dat информация специфическая для каждого пользователя.

Для работы с реестром существует специальная программа regedit.exe, с помощью которой можно изменять информацию в реестре. Кроме того, в состав Windows входит программа scanreg.exe, которая проверяет реестр на ошибки и при необходимости позволяет их исправить. Все эти программы представляют реестр как единое целое.

Все записи реестра подразделяются на 3 типа:

  1. Раздел. Подобие каталога. Разделы могут содержать в себе другие разделы.

  2. Параметры. Информация, которая может содержаться в разделе. Существует 3 типа параметров:

    1. Строковые. Обычная текстовая строка.

    2. Двоичные. Двоичное число в реестре, в редакторе реестра – 16-ричное.

    3. DWORD. Число.

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

На самом деле существует только 2 раздела реестра:

  1. HKEY_LOCAL_MACHINE. Содержится в файле system.dat.

  2. HKEY_USERS. Содержится в файле user.dat.

Четыре оставшихся раздела – копии 1-го и 2-го раздела. Деление на 6 разделов сделано для более удобной работы с реестром.

HKEY_CLASSES_ROOT – копия HKEY_LOCAL_MACHINE\Software\Classes.

В нем хранится информация обо всех зарегистрированных в системе типах файлов. Информация об этом в разделе хранится достаточно сложным образом.

Вначале, все зарегистрированные типы файлов идут в качестве подразделов данного раздела. У каждого такого типа расширения есть параметр по умолчанию. В нем записано название типа файлов с таким расширением, которое выводится в окне «типы файлов».

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

Данный раздел хранит информацию о всех типах файлов, зарегистрированных в системе. При редактировании этого раздела пользователь может редактировать меню «Создать».

В некоторых разделах, посвященных типам файлов, можно найти следующие подразделы: Shell. В этом подразделе может существовать подраздел ddeexec. В этом подразделе содержатся команды динамического обмена данными (DDE – Dynamic Data Exchange). Механизм DDE используют некоторые программы, которые при открытии того или иного типа файлов, открывают их не в новом окне, а в своем подокне.

HKEY_USERS – реальный раздел реестра. Его копии содержатся в HKEY_CURRENT_CONFIG и HKEY_DIN_DATA.

В этом разделе реестра существуют 2 больших подраздела:

  1. DEFAULT. Содержится информация о пользователе, который работает в Windows по умолчанию, т.е. если в Windows не зарегистрирован ни один пользователь. Если в Windows зарегистрированы несколько пользователей, то будут созданы подразделы с именами HKEY_CURRENT_USER и HKEY_DIN_DATA для каждого из пользователей. В разделе HKEY_CURRENT_CONFIG содержится информация о конфигурации данного компьютера. Основная информация в этот раздел вносится при установке ОС. И в дальнейшем она изменяется, если удаляется или устанавливается новое оборудование.

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

    1. ..\Config_Manager\Enum. Здесь хранится информация о состоянии всех устройств компьютера.

    2. Perfstats. Содержит статистическую информацию о работе всех устройств компьютера.

В ОС Windows есть специальная программа, которая называется «Система». Эта программа отображает информацию обо всех устройствах компьютера, о том, в каком состоянии они находятся. И вся эта информация берется из раздела реестра Perfstats.

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

Есть подраздел Policies, который относится к разделу Windows. В нем располагается информация о политике ОС к различным установленным программам. Например, Policies\System1. В этом разделе можно установить параметр NoDispScrSavPage. Установив его, вы запретите устанавливать какой-либо Screen Saver.

RUN – в этом разделе размещается информация о программах, которые загружаются при загрузке Windows. Этим разделом часто пользуются троянские программы.

Второе место в реестре, где находится информация о загрузке программ, это раздел HKEY_LOCAL_MACHINE.

HKEY_CLASSES_ROOT\Explorer. Т.к. программа Explorer – важнейшая, то в этом разделе хранится информация о всех настройках программы.

ОПЕРАЦИОННЫЕ СИСТЕМЫ СЕМЕЙСТВА WINDOWS NT.

В 1990 году фирма Microsoft начала разработку сетевой ОС для корпоративных пользователей. Эта ОС должна была поддерживать следующие функции:

  1. Многозадачность.

  2. Использование виртуальной памяти.

  3. Аппаратная независимость. Т.е. эта ОС должна легко устанавливаться не только на компьютеры IBM, но и на компьютеры с другой архитектурой.

  4. Обеспечение многозадачного режима работы и легкой масштабируемости системы.

  5. Обеспечение выполнения приложений, созданных для других ОС.

  6. Защита информации от несанкционированного доступа.

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

  8. Встроенные сетевые функции и поддержка распределенных вычислений.

Первоначально, этот проект разрабатывался с фирмой IBM, и был назван OS/2, а в дальнейшем – Windows NT (New Technology). ОС Windows NT вышла в 1993 году и получила название Windows NT 3.1. Эта ОС не получила широкого распространения, т.к.:

  1. Она требовала большое количество аппаратных ресурсов для того времени. Это были параметры не ниже 486 процессора и не менее 16 Мб ОЗУ.

  2. По ряду параметров эта ОС уступала OS/2, а также Novell Net Ware.

Далее вышла NT 3.5, и только с NT 4.0 ОС Windows NT получила широкое распространение.

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

Была использована поддержка механизма Plug&Play, и реализован привлекательный графический интерфейс.

Дальнейшим этапом в развитии этих ОС стала Windows 2000. В 2001 году была выпущена Windows XP, предназначенная для широкого круга пользователей. Существуют 2 основные версии этой ОС:

  1. Home

  2. Professional

Home-версия предназначена, как основная ОС для современных ПК.

Professional – это ОС, предназначенная для корпоративных пользователей, работающих в локальной сети и имеющих выход в Интернет.

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

ОСНОВНЫЕ ОСОБЕННОСТИ АРХИТЕКТУРЫ WINDOWS XP.

В целом, архитектура Windows XP построена по тому же принципу, что и архитектура Windows 9x. Она включает в себя системную виртуальную машину, виртуальную машину DOS, слой Windows API (32-х и 16-тиразрядные компоненты).

Коренные отличия архитектуры XP от архитектуры Windows 9x происходит в базовой системе. Базовая система Windows XP включает в себя следующие объекты:

  1. Диспетчер процессов (Process Manager). Этот элемент предназначен для управления процессами. Для каждого процесса создается блок управления процессом.

  2. Диспетчер виртуальной памяти (Virtual Memory Manager). Этот элемент управляет распределением виртуальной памяти, выделенной процессам. При этом каждый процесс имеет свое адресное пространство виртуальной памяти. Пространства виртуальной памяти отдельных процессов не могут пересекаться.

  3. Диспетчер объектов (Object Manager). Этот элемент предназначен для управления объектами. Объектами в ОС Windows 2K считаются каталоги, файлы, процессы.

  4. Монитор безопасности (Security Reference Monitor). Это программа, которая организует систему безопасности Windows XP, т.е. с ее помощью обеспечивается идентификация пользователя при входе в систему. Обеспечиваются права доступа, и реализуется ведение аудита (все события).

  5. Диспетчер ввода-вывода (Input/Output Manager). Эта часть Windows XP управляет всеми операциями ввода-вывода. С ее помощью организуется взаимодействие между драйверами всех устройств. Организуется поддержка файловых систем, встроенных в XP. Обеспечивается поддержка работы Windows XP в сети.

  6. Средство вызова локальных процедур. Эта часть базовой системы обеспечивает работу приложений, работа которых происходит по технологии клиент-сервер.

ФАЙЛОВАЯ СИСТЕМА WINDOWS XP.

Является достаточно сложной, т.к. в ней реализуется поддержка одновременно нескольких файловых систем (FAT16, FAT32 и NTFS).

NTFS предназначена для более надежной и более защищенной работы с файлами. Была создана на основе файловой системы HPFS, которая использовалась в совместно разрабатываемом проекте OS/2.

Первый вариант файловой системы NTFS был использован в первой версии Windows NT 3.1. В этой системе были воплощены передовые технологические достижения:

  1. Файловая система могла работать с дисками большого объема. V кластера – от 512 байт до 64 Кб. Теоретически, эта файловая система могла работать с дисками до 16 Тб.

  2. Для обеспечения устойчивой и надежной работы NTFS содержит 2 копии MFT (мастер таблицы файлов), которая играет роль таблицы размещения файлов. MFT по своей сути напоминает таблицу базы данных. Устойчивость системы NTFS основана на системе регистрации всех основных событий (система транзакции) при записи файлов на диск. Эта система используется в системах управления БД, где целостность данных должна быть очень высокой. В упрощенном виде, система транзакции работает следующим образом:

    1. Драйвер ввода-вывода NTFS инициирует процесс записи, одновременно приказывая специальному сервису (Log File Service) записывать все события.

    2. Вначале, все данные записываются в КЭШ, которым управляет менеджер КЭШа.

    3. Менеджер КЭШа отправляет данные менеджеру виртуальной памяти для записи на диск. Драйвер диска отправляет данные контроллеру, который их записывает на диск.

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

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

  1. Защищенность. NTFS рассматривает файлы как объекты. Каждый такой объект обладает определенными свойствами:

    1. Имя.

    2. Расширение.

    3. Дата создания.

    4. Атрибуты.

    5. Дескриптор безопасности.

Кроме того, файловый объект содержит набор методов, позволяющих с ним работать (open, close, read, write). Когда пользователь собирается работать с файлом, то он вызывает эти методы. При этом монитор безопасности определяет, имеет ли данный пользователь права для вызова таких методов. Кроме того, файловая системы NTFS позволяет шифровать файлы.

  1. Файловая система позволяет сжимать данные. Возможность сжимать данные существует и в ОС Windows 9x. Для этого в ОС Windows 9x есть специальная программа Drive Space, позволяющая создавать специальный логический диск, все данные на котором хранятся в сжатом виде. В отличие от программы Drive Space, файловая система NTFS позволяет сжимать отдельные файлы и каталоги.

  2. Поддержка формата Unicode.

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

  4. Файловая система NTFS позволяет ускорить поиск файлов и каталогов за счет системы индексации. Для этого в Windows XP имеется служба индексации.

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

БЕЗОПАСНОСТЬ В ОС WINDOWS XP.

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

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

Разрешения применяются к конкретным объектам (файлы, каталоги и т.д.).

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

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

При регистрации пользователя в системе создается учетная запись (account). Все учетные записи хранятся в специальной учетной БД, которой управляет программа Security Account Manager. Каждая учетная запись в БД идентифицируется по имени (login) и специальному идентификатору безопасности. Программа, управляющая учетными записями, создает для каждого пользователя уникальный идентификатор безопасности. Пользователи в Windows XP могут объединяться в группы. При этом, принадлежность к группу определяет, какими правами обладает пользователь.

В системе безопасности Windows XP имеются средства аудита, которые регистрируют все обращения к системе безопасности. По системе классификации, система безопасности ОС Windows XP относится к классу С2.

ОПЕРАЦИОННЫЕ СИСТЕМЫ СЕМЕЙСТВА UNIX.

Ос этого семейства впервые появились еще в 3-м поколении ОС. Впервые ОС Unix была создана двумя учеными К. Томпсоном и Д. Ритчи.

Первая версия этой ОС занимала 12 Кб.

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

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

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

  2. Одни и те же методы и механизмы должны были использоваться при:

        1. Обращении к файлам и устройствам

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

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

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

В настоящее время существует несколько направлений развития ОС семейства Unix:

  1. Большие коммерческие системы Unix. Основная фирма, разрабатываемая эти системы, называется Sun.

  2. Имя + BCD (например, Free BCD). Разработчиком таких систем является университет в Беркле. Используются в качестве сетевого сервера.

  3. Linux. В отличие от первых 2-х направлений, ОС Linux создавалась как бесплатная ОС. Все работы по этим ОС начал финский студент Линус Торвальдсен. Эти ОС создавались не только Линусам, но и другими программистами мира в рамках открытых программ. Линус написал только ядро Linux.

Все разновидности ОС семейства Unix взаимодействуют с пользователем при помощи командного интерфейса. При появлении графического интерфейса, в эти ОС стали добавляться графические оболочки (X-Window).

Центральной частью Unix систем является ядро. Ядро в Unix включает 3 основных подсистемы:

  1. Подсистема управления процессами.

  2. Подсистема управления файлами.

  3. Подсистема управления операциями ввода-вывода.

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

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

ОСНОВНЫЕ ПОНЯТИЯ UNIX.

  1. Виртуальная машина. Система Unix многопользовательская. Каждому пользователю после регистрации предоставляется виртуальный компьютер, в котором есть все необходимые ресурсы. Процессорное время выделяется пользователю по круговой системе, с использованием динамических приоритетов. Текущее состояние такого виртуального компьютера называется образом. Образ процесса, во время выполнения процесса размещается в ОЗУ. В старых версиях Unix образ можно было выгрузить на диск (свопинг), когда какому-нибудь более приоритетному процессу требовалась память. В современных реализациях Unix, в т.ч. и в Linux, используется страничная организация памяти и, поэтому, процессы целиком не выгружаются. Для организации виртуальной памяти на диске создается специальный файл (файл подкачки).

  2. Пользователь. Unix является многопользовательской системой. Чтобы начать работать с системой, пользователь должен в ней зарегистрироваться, введя свое учетное имя и пароль. Учетные записи и регистрацию новых пользователей в системе выполняет администратор. Сам пользователь не может изменить свое учетное имя, но может изменить свой пароль. Пароли хранятся в зашифрованном виде. Ядро Unix идентифицирует каждого пользователя по уникальному идентификатору (User Identifier) UID. Кроме того, каждый пользователь может быть отнесен к некоторой группе пользователей, и идентифицирован некоторым групповым идентификатором. Значения этих идентификаторов хранятся в учетных записях, и приписываются к каждому процессу, запускаемому данным пользователем. Это необходимо для определения правомочности доступа пользователя к файлам, программам и т.д. При регистрации пользователя в системе, он может создать свой домашний каталог. При этом, он получает неограниченный доступ ко всем файлам и каталогам, расположенным в домашнем каталоге.

В ОС Unix существует единственный пользователь, у которого его идентификатор равен 0. Это самый главный пользователь в системе. В большинстве версий Unix этот пользователь имеет имя Root. Этот пользователь имеет не ограниченные права. На супер пользователя не распространяется ограничения, связанные с размером файлов, каталогов и каких-либо ресурсов.

ИНТЕРФЕЙС ПОЛЬЗОВАТЕЛЯ ОС UNIX.

Для работы с командами в Unix имеются программы оболочки (Shell). Например, в Linux используется оболочка Bach.

Командные языки, использующиеся в Unix, являются достаточно мощными, и позволяют создавать некоторые программы. Механизм их работы похож на механизм пакетных файлов. В Unix они называются скрипты оболочки (Shell Scripts).

В настоящее время, Unix используют графические интерфейсы. Самым распространенным является X-Window. А в Linux используют KDE, GNOME. Все эти графические оболочки простроены по принципу «клиент-сервер».

----------------------------------

84