Что подразумевается под управлением памятью. Реферат: Операционные системы

  • Дата: 30.11.2021

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

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

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

    Когда в память начинают загружаться приложения, каждое из них занимает в ОЗУ определенное количество блоков, размер которого назначается операционной системой. Если размер блока 2 килобайта, каждый процесс занимает участок памяти, размер которого кратен двум килобайтам. То есть сколько-то раз по 2 килобайта. Приложения загружаются в эти блоки фиксированного размера. Каждый блок начинается и заканчивается словом-ограничителем, длиной от 4 до 8 байт. Блоки и ограничители исключают ситуацию, при которой одно приложение могло бы наложиться в памяти на другое. Ведь для того, чтобы случилось такое наложение порой достаточно ошибиться одним или двумя битами. Но что же делать, когда отведенное под приложения 500-килобайтное пространство оперативной памяти заполнено?

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

    Процессор имеет доступ лишь к одному участку памяти в момент времени. Таким образом, большая часть доступного объема ОЗУ не используется. Пространство жесткого диска значительно дешевле оперативной памяти, поэтому перемещение информации из ОЗУ на диск способно существенно (и главное — бесплатно) «расширить» оперативную память. Данное решение называется технологией виртуальной памяти, и о нем мы уже .

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

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

    Продолжение следует…

    По материалам computer.howstuffworks.com

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

1. Отслеживание свободной и занятой памяти

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

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

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

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

Типы адресов

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

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

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

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

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

Методы распределения делятся на две группы:

1. Без использования внешней памяти

a. Фиксированными разделами

b. Динамическими разделами

c. Перемещаемыми разделами

2. С использованием внешней памяти

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

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

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

Распределение памяти фиксированными разделами

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

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

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

2. Осуществляет загрузку программы в этот раздел и настройку адресов

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

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

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

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

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

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

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

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

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

Перемещаемые разделы

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

Методы распределения памяти с использованием дискового пространства.

Понятие виртуальной памяти

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

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

2. Перемещает по мере необходимости данные между устройствами разного типа

3. Преобразует виртуальные адреса в физические

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

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

1. Страничная

2. Сегментная

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

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

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

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

1. Дольше всего не использовавшаяся страница

2. Страница к которой в последнее время было меньше всего обращений

3. Первая попавшая страница.

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

1. На основании начального адреса торицы страниц (содержимое регистра адреса таблицы страниц)номер виртуальной страницы(стар) Длины записи в таблицы страниц

2. Определяется адрес нужной записи в таблицы. Из этой записи извлекается номер физической страницы

3. К номеру физической страницы присоединяется смещение (младшие разряды виртуального адреса)

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

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

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

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

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

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

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

Иерархия запоминающих устройств. Принцип кеширования данных.

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

Файловая система

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

1. совокупность всех файлов на диске

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

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

Имена файлов

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

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

Виды файлов

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

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

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

1. Информация о разрешенном доступе

3. Владелец файла

4. Создатель файла

5. Признак “только для чтения”

6. Признак “скрытый”

7. Признак “системный файл

8. Признак “временный файл”

9. Признак блокировки

10. Времена создания, последнего доступа, последнего изменения

11. Текущий размер файла

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

Логическая организация файлов

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

Физическая организация и адрес файлов

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

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

2. при таком порядке размещения неизбежно возникает фрагментация.

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

Задание физического расположения файла простым перечислением номеров блоков занимаемым этим файлом. Операционная система UNIX использует вариант данного способа, позволяющий обеспечить фиксированную длину адреса независимо от размера файла. Для хранения адреса файла выделено 13 полей. Если размер файла меньше или равен 10 блокам, то номера этих блоков непосредственно перечислены в первых 10 полях адреса. Если размер файла больше 10 блоков, то следующее 11 поле содержит адрес блока в котором могут быть расположены еще 128 номеров следующих блоков файла. Если файл больше 10 + 128 блоков, то используется 12 поле в котором находится номер блока содержащего 128 номеров блоков которые содержат еще 128 номеров блоков данного файла. Если файл больше даже этого размера, то используется последнее 13 поле для тройной косвенной адресации.

Права доступа к файлу

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

1. Создание файла

2. Уничтожение файла

3. Открытие файла

4. Закрытие файла

5. Чтение файла

6. Запись в файл

7. Дополнение файла

8. Поиск в файле

9. Получение атрибутов файла

10. Установление новых значений атрибутов

11. Переименование файлов

12. Выполнение файла

13. Чтение каталога

14. И другие операции с файлами и каталогами

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

Раздевают два основных подхода к определению прав доступа:

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

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

Кеширование диска

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

Общая модель файловой системы

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

Уровни снизу вверх

1. Физический уровень – обращается только к подсистеме ввода/вывода. Его задача определение номера физического блока содержащего логическую запись

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

3. Уровень проверки прав доступа – его задача проверка допустимости заданной операции к заданному файлу

4. Базовый уровень – определение по уникальному имени характеристик файла

5. Символьный уровень – определение по символьному имени файла его уникального имени

Отображаемая в память файлы

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

Современная архитектура файловых систем

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

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

Отправить свою хорошую работу в базу знаний просто. Используйте форму, расположенную ниже

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

Размещено на http://www.allbest.ru/

Введение

1. Управление памятью

1.1 Основные задачи управления памятью

3.1 Распределение памяти фиксированными разделами

3.2 Распределение памяти динамическими разделами

3.3 Перемещаемые разделы

4.1 Страничный способ распределения виртуальной памяти

4.2 Сегментный способ распределения виртуальной памяти

4.3 Сегментно-страничный способ распределения виртуальной памят

Заключение

Список литературы

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

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

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

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

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

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

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

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

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

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

2. Классификация методов распределения памяти
Рис. 1 Классификация методов распределения памяти
3. Управление реальной памятью
3.1 Распределение памяти фиксированными разделами
Простейший способ управления оперативной памятью состоит в том, что память разбивается на несколько областей фиксированной величины, называемых разделами. Такое разбиение может быть выполнено вручную оператором во время старта системы или во время ее установки. После этого границы разделов не изменяются.
Очередной новый процесс, поступивший на выполнение, помещается либо в общую очередь (рис. 1.1, а), либо в очередь к некоторому разделу (рис. 1.1, б).
Рис. 1.1. Распределение памяти фиксированными разделами:
с общей очередью (а), с отдельными очередями (б)
Подсистема управления памятью в этом случае выполняет следующие задачи:
§ Сравнивает объем памяти, требуемый для вновь поступившего процесса, с размерами свободных разделов и выбирает подходящий раздел;
§ Осуществляет загрузку программы в один из разделов и настройку адресов. Уже на этапе трансляции разработчик программы может задать раздел, в котором ее следует выполнять. Это позволяет сразу, без использования перемещающего загрузчика, получить машинный код, настроенный на конкретную область памяти.

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

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

3.2 Распределение памяти динамическими разделами

В этом случае память машины не делится заранее на разделы. Сначала вся память, отводимая для приложений, свободна. Каждому вновь поступающему на выполнение приложению на этапе создания процесса выделяется вся необходимая ему память (если достаточный объем памяти отсутствует, то приложение не принимается на выполнение и процесс для него не создается). После завершения процесса память освобождается, и на это место может быть загружен другой процесс. Таким образом, в произвольный момент времени оперативная память представляет собой случайную последовательность занятых и свободных участков (разделов) произвольного размера. На рис. 2.1 показано состояние памяти в различные моменты времени при использовании динамического распределения. Так, в момент t0 в памяти находится только ОС, а к моменту t1 память разделена между 5 процессами, причем процесс П4, завершаясь, покидает память. На освободившееся от процесса П4 место загружается процесс П6, поступивший в момент t3.

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

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

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

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

Распределение памяти динамическими разделами лежит в основе подсистем управления памятью многих мультипрограммных операционных системах 60-70-х годов, в частности такой популярной операционной системы, как OS/360.
3.3 Перемещаемые разделы

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

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

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

4. Управление виртуальной памятью

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

4.1 Страничный способ распределения виртуальной памяти

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

Преимущества: устранение фрагментации памяти, т.е. страницы одинакового размера.
Недостатки: программа разбивается на страницы случайно, без учета логической связи, это приводит к потерям времени на межстраничные переходы.
В ОС Windows память может быть увеличена до 4 Гб, а размер страниц до 4 Кб.
4.2 Сегментный способ распределения виртуальной памяти

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

- о месте расположения сегмента (в оперативной памяти или на жестком диске);
- права доступа;
- отметка об обращении к сегменту (т.е. давно или недавно использовался сегмент).
Преимуществом является то, что это был первый способ распределения с использованием файла подкачки, так же можно было устанавливать права доступа к сегментам.
Недостатки: потеря процессорного времени на загрузку сегментов и на обработку информационных структур, информационные структуры требовали для себя памяти, дефрагментация памяти.
4.3 Сегментно - страничный способ распределения виртуальной памяти
В данном способе программа разбивается на логически-законченные части, а сегменты на страницы и адрес страницы состоит из номера сегмента, при этом сегмент при загрузке в оперативную память размещается целиком, но страницы одного сегмента могут занимать несмежные страницы.
Преимущества: сокращается время для загрузки страниц, но требуются вычислительные ресурсы для хранения информационных структур - способ используется в дорогих ос.
5. Подсистема управления памятью в ОС MS-DOS

MS-DOS - это ОС, работающая в реальном режиме процессора i86, что предполагает использование адресного пространства размером всего лишь 1 Мб. На самом деле, в компьютерах IBM гарантируется наличие лишь 640 Кб основной памяти, старшие же адреса памяти заняты под BIOS и видеопамять, хотя среди них попадаются разрозненные куски оперативной памяти, называемые UMB (верхний блок памяти).

Адрес в реальном режиме записывается в формате [сегмент: смещение], однако здесь сегмент - это не селектор, адресующий строку таблицы сегментов, а просто номер параграфа памяти (1 параграф = 16 байт). Поэтому можно считать, что в MS-DOS используются только физические адреса.

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

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

Рис. 4 Основные области памяти ОС MS-DOS

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

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

Часть системной памяти и вся область пользователя разбита на прилегающие друг к другу блоки, размер которых кратен параграфу. Перед началом каждого блока памяти размещается блок управления памятью (MCB, Memory Control Block), который занимает один параграф и содержит следующие данные:

· признак, определяющий, последний ли это блок памяти или за ним будут еще блоки (соответственно буква `Z" или `M");

· адрес PSP программы, владеющей этим блоком (0 означает свободный блок);

· размер блока в параграфах;

· имя программы-владельца (до 8 символов); это поле избыточно (зная PSP программы, можно найти имя ее файла), оно было добавлено, вероятно, чтобы хоть как-то занять пустующие байты параграфа MCB.

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

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

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

Почему блок среды выделяется раньше, чем блок PSP?

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

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

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

· Освобождение ранее выделенного блока.

· Изменение размера блока. Уменьшение блока возможно всегда, увеличение - только в том случае, если после данного блока расположен свободный блок достаточного размера.

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

Заключение
Проанализировав общие принципы управления памятью, видно, что в простейших системах нет свопинга или страничной организации памяти. Программа, загруженная в память, остается там до своего завершения. Некоторые ОС не позволяют находиться в памяти более чем одному процессу, в то время как другие поддерживают многозадачность.
Список литературы
1. Олифер В. Г. Сетевые операционные системы: учебник для вузов/ В.Г. Олифер, Н.А. Олифер. - СПб.: Питер, 2009. - 539 с.: ил
2. Попов И.И. Операционные системы, среды и оболочки/ И.И. Попов. - М.: Издательство "ФОРУМ: ИНФА-М", 2010. - 400 с. - (Серия "Профессиональное образование")
Размещено на Allbest.ru

Подобные документы

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

    лекция , добавлен 24.01.2014

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

    презентация , добавлен 27.12.2010

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

    курсовая работа , добавлен 01.07.2011

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

    курсовая работа , добавлен 02.12.2009

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

    презентация , добавлен 14.11.2012

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

    контрольная работа , добавлен 23.12.2016

    Распределение памяти фиксированными и динамическими, а также перемещаемыми разделами, особенности данного процесса в Windows. Функция VirtualAlloc: переданная и зарезервированная память. Выделение памяти функцией malloc, методика и анализ результатов.

    контрольная работа , добавлен 01.12.2013

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

    презентация , добавлен 27.08.2013

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

    курсовая работа , добавлен 31.05.2013

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

Под памятью здесь подразумевается оперативная память.

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

1. отслеживание свободной и занятой памяти

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

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

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

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

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

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

ЭТАПЫ РАЗВИТИЯ КОМПЬЮТЕРОВ И ОС, ОХАРАКТЕРИЗОВАТЬ КАЖДЫЙ ЭТАП

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

1. Первое поколение (1945-55гг)

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

С выпуском перфокарт стало возможно записывать и считывать программы.

2. Второе поколение (1955-65гг)

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



Программирование на языках Фортран и Ассембрер

3. Третье поколение (1965-80гг)

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

4. Четвертое поколение (1980-наши дни)

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

РАЗДЕЛ I АРХИТЕКТУРА ЭВМ

1 Общая структурная схема ЭВМ. Типы и классы ЭВМ. Устройство персональных ЭВМ.

2 Понятие о многомашинных и многопроцессорных вычислительных системах.

3 Виды накопителей информации. Виртуальная память. Резервное копирование.

4 Системное программное обеспечение.

5 Типы операционных систем. Операционные системы для персональных компьютеров.

6 Типы дисковых накопителей. Физические и логические ошибки.

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

8 Периферийные устройства для персональных компьютеров.

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

10 Программные сетевые протоколы. Модель OSI (hardware level, transport level, user level). Подробности о протоколах транспортного уровня на примере NetBEUI, IPX/SPX и TCP/IP.

11 Основные услуги сети Интернет. Web-страницы (HTTP), передача файлов (FTP), электронная почта (SMTP, POP3), удаленное управление ресурсами (Telnet, SSH). Система доменных имен (DNS).

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

13 Сетевые атаки на отказ в обслуживании (DOS, DDOS),

14 Атаки на «срыв стэка».

15 Компьютерные вирусы, программы типа “троянский конь”

ОПЕРАЦИОННЫЕ СИСТЕМЫ

16 ОС реального времени, описание и назначение.

17 Основные функции ОС, дать описание.

18 Определение планирования. Основные задачи

19 Описание алгоритма, основанного на приоритетах. Привести граф

20 Понятие процесса и потока. Виртуальное адресное пространство

21 Описание алгоритма, основанного на квантовании. Привести граф

22 Определение диспетчеризации. Основные задачи

23 Вытесняющие и невытесняющие алгоритмы планирования. Перечислить достоинства и недостатки

24 Определение свопинга и виртуальной памяти. Достоинства и недостатки

25 Понятия конфиденциальности, целостности и доступности данных

26 Основы симметричного алгоритма шифрования. Пример

27 Основы не симметричного шифрования. Пример

28 Основные подходы к созданию резервной копии реестра

29 Функции ОС по управлению памятью

30 Этапы развития компьютеров и ОС, охаракт-ать каждый этап

ФЕДЕРАЛЬНОЕ АГЕНТСТВО ПО ОБРАЗОВАНИЮ

ГОСУДАРСТВЕННОЕ ОБРАЗОВАТЕЛЬНОЕ УЧРЕЖДЕНИЕ

ВЫСШЕГО ПРОФЕССИОНАЛЬНОГО ОБРАЗОВАНИЯ

ДОНСКОЙ ГОСУДАРСТВЕННЫЙ ТЕХНИЧЕСКИЙ УНИВЕРСИТЕТ

(ДГТУ)

Кафедра ______ИНФОРМАТИКА_________

УТВЕРЖДАЮ

Зав. кафедрой

Соболь Б.В.

"______"________2010 г.

ПОЯСНИТЕЛЬНАЯ ЗАПИСКА

К курсовой работе __________по «Информатике»_ ______________________________

(наименование учебной дисциплины)

на тему:__________________________________________________________________

_________________________________________________________________________

Специальность____________________________________________________________

Обозначение курсовой работы ____________________Группа_____________________

Руководитель проекта____________________ _______________________________

(подпись) (Ф.И.О.)

Работа защищена _______________________ _______________________________

(дата) (оценка)

Члены комиссии ________________________ _______________________________

(подпись) (Ф.И.О)

____________________________ ______________________________

(подпись) (Ф.И.О)

Ростов-на-Дону

Тема: «Операционные системы. Управление памятью. Ввод-вывод»

Введение………………………………………………………………………………3

1. Операционные системы………………………………………………………….4

1.1 Файловая система……………………………………………………………….5

1.1.1 Классификация файловых систем………………………………………….6

1.1.2 Задачи файловой системы…………………………………………………..7

1.2 Структура и состав операционной системы………………………………..11

1.3 Защищенные подсистемы……………………………………………………..12

2. Управление памятью…………………………………………………………….14

3. Ввод-вывод………………………………………………………………………...17

Заключение……………………………………………………………………………20

Список литературы…………………………………………………………………..21

Введение

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

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

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

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

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

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

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

1. Операционные системы

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

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

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

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

1.1 Файловая система

Файловая система (англ. file system) - регламент, определяющий способ организации, хранения и именования данных на носителях информации. Она определяет формат физического хранения информации, которую принято группировать в виде файлов. Конкретная файловая система определяет размер имени файла (папки), максимальный возможный размер файла и раздела, набор атрибутов файла. Некоторые файловые системы предоставляют сервисные возможности, например, разграничение доступа или шифрование файлов.

Файловая система связывает носитель информации с одной стороны и API для доступа к файлам - с другой. Когда прикладная программа обращается к файлу, она не имеет никакого представления о том, каким образом расположена информация в конкретном файле, так же, как и на каком физическом типе носителя (CD, жёстком диске, магнитной ленте или блоке флеш-памяти) он записан. Всё, что знает программа - это имя файла, его размер и атрибуты. Эти данные она получает от драйвера файловой системы. Именно файловая система устанавливает, где и как будет записан файл на физическом носителе (например, жёстком диске).

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

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

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

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

Рис. 1 Дерево каталогов

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

Каждый файл в иерархии каталогов можно определить, задав его имя пути, называемое также полным именем файла. Путь начинает­ся из вершины структуры каталогов, называемой корневым катало­гом. Такое абсолютное имя пути состоит из списка каталогов, кото­рые нужно пройти от корневого каталога к файлу, с разделением отдельных компонентов. Отдельные компоненты в ОС UNIX разде­ляются косой чертой /, а в MS-DOS и Windows - обратной косой чертой \.

1.1.1 Классификация файловых систем

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

Для носителей с произвольным доступом (например, жёсткий диск): FAT32, HPFS, ext2 и др. Поскольку доступ к дискам в разы медленнее, чем доступ к оперативной памяти, для прироста производительности во многих файловых системах применяется асинхронная запись изменений на диск. Для этого применяется либо журналирование, например в ext3, ReiserFS, JFS, NTFS, XFS, либо механизм soft updates и др. Журналирование широко распространено в Linux, применяется в NTFS. Soft updates - в BSD системах.

Для носителей с последовательным доступом (например, магнитные ленты): QIC и др.

Для оптических носителей - CD и DVD: ISO9660, ISO9690, HFS, UDF и др.

Виртуальные файловые системы: AEFS и др.

Сетевые файловые системы: NFS, CIFS, SSHFS, GmailFS и др.

Для флэш-памяти: YAFFS, ExtremeFFS.

1.1.2 Задачи файловой системы

Основные функции любой файловой системы нацелены на решение следующих задач:

Именование файлов;

Программный интерфейс работы с файлами для приложений;

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

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

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

Основным понятием, связанным с операционными системами, является процесс - абстрактное понятие, описывающее работу про­граммы.

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

Рассмотрим содержание и применение этой модели.

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

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

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

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

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

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

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

Рис. 2 Нижний уровень ОС, отвечающий за прерывание и планирование

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

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

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

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

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

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

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

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

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

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

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

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

Представим, что пользователь удалил предложение на первой странице, а затем исправил предложение на 350-й странице докумен­та, в котором 400 страниц. Он дает команду программе перейти на страницу с номером 350. Текстовому процессору придется перефор­матировать весь документ вплоть до 350-й страницы, поскольку он не знает, где начинается эта страница. Это может занять довольно много времени и вряд ли обрадует пользователя.

В данном случае помогут потоки. Пусть текстовый процессор на­писан в виде двухпоточной программы. Один поток взаимодейству­ет с пользователем, а второй переформатирует документ в фоновом режиме. Как только предложение на первой странице было удалено, интерактивный поток дает команду фоновому потоку переформати­ровать весь документ. В то время как первый поток продолжает вы­полнять команды с клавиатуры или мыши, второй поток быстро пе­реформатирует документ. Может случиться, что форматирование будет закончено раньше, чем пользователь захочет перейти к 350-й странице, и тогда команда будет выполнена мгновенно. Можно до­бавить третий поток. Большинство текстовых процессоров автома­тически сохраняет редактируемый текст один раз в несколько минут (время устанавливается пользователем), чтобы в случае аварийного завершения программы, отказа системы или перебоев с питанием пользователь не лишился результатов своей работы. Этим может за­ниматься третий поток, не отвлекая два оставшихся.

1.2 Структура и состав операционной системы

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

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

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

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

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

Архитектура операционных систем Windows является модульной. Структурно ее можно разделить на две части:

Первая часть работает в режиме ядра (kernel mode) и называется исполнительной системой Windows (Windows executive). Компоненты режима ядра обладают следующими функциональными возможностями:

Имеют доступ к оборудованию;

Имеют прямой доступ ко всем видам памяти компьютера;

Не выгружаются на жесткий диск в файл подкачки;

Имеют более высокий приоритет, нежели процессы режима пользователя.

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

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

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

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

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

1.3 Защищенные подсистемы

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

В Windows два типа защищенных подсистем:

1. Подсистемы среды. Под такими подсистемами понимаются программы-серверы пользовательского режима, реализующие программный интерфейс некоторой операционной системы. Главнейшей подсистемой этого типа является Win32. К ее функциям относятся:

Предоставление приложениям стандартного программного интерфейса к функциям ОС;

Реализация графического пользовательского интерфейса;

Управление пользовательским вводом/выводом.

К подсистемам среды относятся также подсистемы POSIX и OS/2.

2. Внутренние подсистемы. К этому типу относятся подсистемы, выполняющие важные функции ОС. Вот основные:

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

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

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

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

Справочный монитор защиты (Security Reference Monitor, SRM). Гарантирует выполнение политики защиты на локальном компьютере. Оберегает ресурсы ОС, обеспечивая защиту объектов и аудит доступа к ним.

Диспетчер процессов (Process Manager). Создает и завершает процессы и потоки. Кроме того, приостанавливает и возобновляет исполнение потоков, хранит и выдает информацию о процессах и потоках NT.

Диспетчер межпроцессного взаимодействия (Interprocess Communication Manager, IPC Manager). Обеспечивает взаимодействие между подсистемами режима пользователя и исполнительной подсистемы.

Диспетчер виртуальной памяти (Virtual memory manager, VMM). Реализует виртуальную память - схему управления памятью, которая предоставляет каждому процессу большое собственное адресное пространство и защищает это пространство от других процессов.

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

Подсистема ввода/вывода (I/O Subsystem). Состоит из группы компонентов, отвечающих за выполнение ввода/вывода на разнообразные устройства. Подробнее подсистема ввода/вывода рассматривается в следующих разделах.

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

Диспетчер электропитания (Advanced Configuration and Power Interface Manager, ACPI-manager). Управляет электропитанием устройств, координирует запросы устройств, связанные с изменением режима электропитания.

Диспетчер Plug and Play (PnP-manager). Обеспечивает распознавание PnP-устройств после процесса загрузки ОС, управляет их драйверами, предоставляет интерфейс средствам пользовательского режима для поиска устройств, их установки и удаления, а также остановки и возобновления их работы.

Диспетчер окон и интерфейс графических устройств (Graphic Device Interface, GDI). Управляет отображением окон, обеспечивает прием ввода от клавиатуры и мыши, распределяя информацию приложениям.

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

Уровень абстрагирования от оборудования (Hardware Abstract Level, HAL). Представляет собой программную прослойку между исполнительной системой Windows и аппаратной платформой, на которой работает ОС. HAL скрывает аппаратно-зависимые детали, такие как интерфейсы ввода/вывода, контроллеры прерываний и механизмы межпроцессорных связей. Вместо того чтобы обращаться к аппаратуре непосредственно, исполнительная система Windows вызывает функции HAL.

2. Управление памятью

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

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

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

Системы управления памятью делят на два класса. К первому классу относятся системы, перемещающие процессы между опера­тивной памятью и диском во время их выполнения, т.е. осуществля­ющие подкачку процессов целиком (swapping) или постранично (paging). Обычный и постраничный варианты подкачки являются искусственными процессами, вызванными отсутствием достаточно­го количества оперативной памяти для одновременного хранения всех программ. Ко второму - те, которые этого не делают. Второй класс систем проще. Поскольку ПО растет еще быстрее, чем память, то, вероятно, потребность в эффективном управлении памятью бу­дет существовать всегда. В 80-е гг. использовали системы разделения времени для работы десятков пользователей на машинах VAX с объе­мом памяти 4 Мбайт. Сейчас рекомендуется для индивидуальной работы в системе Windows 2000 устанавливать на компьютер не ме­нее 64 Мбайт оперативной памяти. Дальнейшее развитие в сторону мультимедийных систем накладывает еще большие требования на размер оперативной памяти.

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

Большинство современных систем позволяет одновременный запуск нескольких процессов. Наличие нескольких процессов, рабо­тающих в один и тот же момент времени, означает, что когда один процесс приостановлен в ожидании завершения операции ввода-вы­вода, другой может использовать центральный процессор. Таким об­разом, многозадачность увеличивает загрузку процессора. На сетевых серверах всегда одновременно работают несколько процессов (для разных клиентов), но и большинство клиентских машин в наши дни также имеют эту возможность. Самый простой способ достижения многозадачности состоит в разбиении памяти на n , возможно, не равных, разделов. Когда задание поступает в память, оно располага­ется во входной очереди к наименьшему разделу, достаточно боль­шому для того, чтобы вместить это задание. Так как размер разделов неизменен, то все неиспользуемое работающим процессом простран­ство в разделе пропадает. Недостаток этого способа заключается в том, что к большому разделу очереди почти не бывает, а к малень­ким разделам выстраивается довольно много задач. Небольшие за­дания должны ждать своей очереди, чтобы попасть в память, несмот­ря на то, что свободна основная часть памяти. Усовершенствованный способ заключается в организации одной общей очереди для всех разделов. Как только раздел освобождается, задачу, находящуюся ближе к началу очереди и подходящую для выполнения в этом раз­деле, можно загрузить в него и начать ее обработку. С другой сторо­ны, нежелательно тратить большие разделы на маленькие задачи, поэтому существует другая стратегия. Она заключается в том, что каждый раз после освобождения раздела происходит поиск в очере­ди наибольшего для этого раздела задания, и именно оно выбирает­ся для обработки. Однако этот алгоритм отстраняет от обработки небольшие задачи, хотя необходимо предоставить для мелких задач лучшее обслуживание. Выходом из положения служит создание хотя бы одного маленького раздела, который позволит выполнять мелкие задания без долгого ожидания освобождения больших разделов. Дру­гой подход предусматривает следующий алгоритм: задачу, которая имеет право быть выбранной для обработки, можно пропустить не более k раз. Когда задача пропускается, к счетчику добавляется еди­ница. Если значение счетчика стало равным k , игнорировать задачу больше нельзя.

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

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

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

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

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

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

3. Ввод-Вывод

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

Устройства ввода-вывода можно разделить на две категории: блочные устройства и символьные устройства. Блочные устройства хранят информацию в виде блоков фиксированного размера, причем у каждого блока имеется свой адрес. Размеры блоков колеблются от 521 до 32 768 байт. Важное свойство блочного устройства состоит в том, что каждый его блок может быть прочитан независимо от ос­тальных блоков. Наиболее распространенными блочными устрой­ствами являются диски.

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

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

Устройства ввода-вывода обычно состоят из механической и электронной частей. Механический компонент находится в самом устройстве. Электронный компонент устройства называется контрол­лером или адаптером. В современных компьютерах контроллеры встраиваются в материнскую плату или располагаются на самом ус­тройстве ввода-вывода. Многие контроллеры способны управлять несколькими идентичными устройствами. Если интерфейс между контроллером и устройством является официальным стандартом ANSI, IEEE или ISO либо фактическим стандартом, то различные производители могут выпускать отдельно устройства и контроллеры, удовлетворяющие данному интерфейсу. Так производятся жесткие диски, соответствующие интерфейсу IDE (Integrated Drive Electronics - встроенный интерфейс накопителей) или SCSI (Small Computer System Interface - системный интерфейс малых компьютеров).

Часто интерфейс между устройством и контроллером является интерфейсом низкого уровня. С диска в контроллер поступает по­следовательный поток битов, начинающийся с заголовка сектора (преамбулы), за которым следует 4096 бит в секторе, и контрольная сумма, называемая кодом исправления ошибок ЕСС (Error Correcting Code). Заголовок сектора записывается на диск во время формати­рования. Он содержит номера цилиндра и сектора, размер сектора, коды синхронизации и другую служебную информацию.

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

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

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

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

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

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

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

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

Существуют три различных способа осуществления операций ввода-вывода. Простейший вид ввода-вывода состоит в том, что всю работу выполняет центральный процессор. Этот метод называется программным вводом-выводом. ЦП вводит или выводит каждый байт или слово, находясь в цикле ожидания готовности устройства вво­да-вывода. Второй способ представляет собой управляемый прерыва­ниями ввод-вывод, при котором ЦП начинает передачу ввода-выво­да для символа или слова, после чего переключается на другой процесс, пока прерывание от устройства не сообщит ему об оконча­нии операции ввода-вывода. Третий способ заключается в исполь­зовании прямого доступа к памяти (DMA - Direct Memory Access), при котором отдельная микросхема управляет переносом целого бло­ка данных и инициирует прерывание только после окончания опе­рации переноса блока.

Заключение

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

Список литературы

1. Соболь Б.В., Галин А.Б. и др. Информатика. Ростов н/Д, Феникс, 2007. -446с.

2. Сергеева И.И., Музалевская Н.В. и др. Информатика: Учебник. - М.: ФОРУМ: ИНФРА-М, 2006. -336с.

3. Степанов А.Н. Информатика: Учебник для вузов. 4-е изд.-СПБ.: Питер, 2006. -684с.

4. Симонович С.В. Информатика - базовый курс. 2-ое издание, - СПб: Питер, 2004. -640с.