1 Виртуальная память
Виртуа́льная па́мять (англ. Virtual
memory) —
технология управления памятью ЭВМ, разработанная
для многозадачных операционных систем.
При использовании данной технологии
для каждой программы используются независимые
схемы адресации памяти, отображающиеся
тем или иным способом на физические
адреса в памяти ЭВМ. Позволяет увеличить эффективность
использования памяти несколькими одновременно
работающими программами, организовав
множество независимых адресных пространств, и обеспечить защиту памяти между различными
приложениями. Также позволяет программисту
использовать больше памяти, чем установлено
в компьютере, за счет откачки неиспользуемых страниц на вторичное
хранилище.
Виртуальная память - это сочетание
памяти ОЗУ и временного хранилища
на жестком диске. Если памяти ОЗУ
недостаточно, данные из оперативной
памяти помещаются в хранилище, которое
называется файлом подкачки. Перемещение
данных в файл подкачки и из него
освобождает достаточно оперативной
памяти для выполнения операции.
При использовании виртуальной
памяти упрощается программирование,
так как программисту больше не нужно
учитывать ограниченность памяти, или
согласовывать использование памяти
с другими приложениями. Для программы
выглядит доступным и непрерывным
все допустимое адресное пространство,
вне зависимости от наличия в
ЭВМ соответствующего объёма ОЗУ.
Применение
механизма виртуальной памяти позволяет:
- упростить адресацию памяти клиентским программным обеспечением;
- рационально управлять оперативной памятью компьютера (хранить в ней только активно используемые области памяти);
- изолировать процессы друг от друга (процесс полагает, что монопольно владеет всей памятью).
В настоящее
время эта технология имеет аппаратную
поддержку на всех современных бытовых
процессорах. В то же время во встраиваемых
системах и в системах специального
назначения, где требуется либо очень
быстрая работа, либо есть ограничения
на длительность отклика (системы реального
времени) виртуальная память используется относительно
редко. Также в таких системах реже встречается
многозадачность и сложные иерархии памяти.
Существует
несколько видов организации
виртуальной памяти:
1 Страничная организация виртуальной
памяти;
2 Сегментная организация виртуальной
памяти.
Рассмотрим виды организации виртуальной
памяти подробнее.
Страничная
организация виртуальной памяти.
В большинстве современных операционных
систем виртуальная память организуется
с помощью страничной адресации. Оперативная
память делится на страницы: области памяти
фиксированной длины (например, 4096 байт),
которые являются минимальной единицей
выделяемой памяти (то есть даже запрос
на 1 байт от приложения приведёт к выделению
ему страницы памяти). Процесс обращается
к памяти с помощью адреса виртуальной
памяти, который содержит в себе номер
страницы и смещение внутри страницы.
Процессор преобразует номер виртуальной
страницы в адрес соответствующей ей физической
страницы при помощи буфера ассоциативной трансляции. Если ему
не удалось это сделать, то требуется обращение
к таблице страниц (так называемый Page Walk), что может сделать либо сам процессор,
либо операционная система (в зависимости
от архитектуры). Если страница выгружена
из оперативной памяти, то операционная
система подкачивает страницу с жёсткого
диска. При запросе на выделение памяти
операционная система может «сбросить»
на жёсткий диск страницы, к которым давно
не было обращений. Критические данные
(например, код запущенных и работающих
программ, код и память ядра системы) обычно находятся в оперативной
памяти (исключения существуют, однако
они не касаются тех частей, которые отвечают
за обработку аппаратных прерываний, работу
с таблицей страниц и использование файла
подкачки).
Сегментная организация виртуальной
памяти, представляет собой механизм
организации виртуальной памяти, при котором
виртуальное пространство делится на
части произвольного размера — сегменты.
Этот механизм позволяет, к примеру, разбить
данные процесса на логические блоки.
Для каждого сегмента, как и для страницы,
могут быть назначены права доступа к
нему пользователя и его процессов. При
загрузке процесса часть сегментов помещается
в оперативную память (при этом для каждого
из этих сегментов операционная система
подыскивает подходящий участок свободной
памяти), а часть сегментов размещается
в дисковой памяти. Сегменты одной программы
могут занимать в оперативной памяти несмежные
участки. Во время загрузки система создает
таблицу сегментов процесса (аналогичную
таблице страниц), в которой для каждого
сегмента указывается начальный физический
адрес сегмента в оперативной памяти,
размер сегмента, правила доступа, признак
модификации, признак обращения к данному
сегменту за последний интервал времени
и некоторая другая информация. Если виртуальные
адресные пространства нескольких процессов
включают один и тот же сегмент, то в таблицах
сегментов этих процессов делаются ссылки
на один и тот же участок оперативной памяти,
в который данный сегмент загружается
в единственном экземпляре. Система с
сегментной организацией функционирует
аналогично системе со страничной организацией:
время от времени происходят прерывания,
связанные с отсутствием нужных сегментов
в памяти, при необходимости освобождения
памяти некоторые сегменты выгружаются,
при каждом обращении к оперативной памяти
выполняется преобразование виртуального
адреса в физический. Кроме того, при обращении
к памяти проверяется, разрешен ли доступ
требуемого типа к данному сегменту.
Виртуальный адрес при сегментной
организации памяти может быть представлен
парой (g, s), где g — номер сегмента, а s —
смещение в сегменте. Физический адрес
получается путем сложения начального
физического адреса сегмента, найденного
в таблице сегментов по номеру g, и смещения
s.
Недостатком данного метода распределения
памяти является фрагментация на уровне
сегментов и более медленное
по сравнению со страничной организацией
преобразование адреса.
2 История развития операционных
систем
Важный период развития ОС относится
к 1965-1975 годам. В это время в
технической базе вычислительных машин
произошёл переход от отдельных
полупроводниковых элементов типа
транзисторов к интегральным микросхемам,
что открыло путь к появлению
следующего поколения компьютеров.
В этот период были реализованы практически
все основные механизмы, присутствующие
современным ОС: мультипрограммирование,
мультипроцессирование, поддержка многотерминального
много-пользовательского режима, виртуальная
память, файловые системы, разграничение
доступа и сетевая работа. В эти годы начинается
расцвет системного программирования.
Революционным событием данного этапа
явилась промышленная реализация мультипрограммирования.
В условиях резко возросших возможностей
компьютера по обработке и хранению данных
выполнение только одной программы в каждый
момент времени оказалось крайне неэффективным.
Решением стало мультипрограммирование
- способ организации вычислительного
процесса, при котором в памяти компьютера
находилось одновременно несколько программ,
попеременно выполняющихся на одном процессоре.
Эти усовершенствования значительно улучшили
эффективность вычислительной системы.
Мультипрограммирование было реализовано
в двух вариантах - в системах пакетной
обработки и разделения времени. Мультипрограммные
системы пакетной обработки так же, как
и их однопрограммные предшественники,
имели своей целью обеспечение максимальной
загрузки аппаратуры компьютера, однако
решали эту задачу более эффективно. В
мультипрограммном пакетном режиме процессор
не простаивал, пока одна программа выполняла
операцию ввода-вывода (как это происходило
при последовательном выполнении программ
в системах ранней пакетной обработки),
а переключался на другую готовую к выполнению
программу. В результате достигалась сбалансированная
загрузка всех устройств компьютера, а
следовательно, увеличивалось число задач,
решаемых в единицу времени.
В мультипрограммных системах пакетной
обработки пользователь по-прежнему
был лишен возможности интерактивного
взаимодействия со своими программами.
Для того, чтобы хотя бы частично
вернуть пользователям ощущение
непосредственного взаимодействия
с компьютером, был разработан другой
вариант мультипрограммных систем
- системы разделения времени. Этот
вариант рассчитан на многотерминальные
системы, когда каждый пользователь
работает за своим терминалом. В
числе первых операционных систем разделения
времени, разработанных в середине
60-х годов, были TSS/360 (компания IBM), CTSS
и MULTICS (Массачусетский технологический
институт совместно с Bell Labs и компанией
General Electric). Вариант мультипрограммирования,
применяемый в системах разделения
времени, был нацелен на создание
для каждого отдельного пользователя
иллюзии единоличного владения вычислительной
машиной за счёт периодического выделения
каждой программе своей доли процессорного
времени. В системах разделения времени
эффективность использования оборудования
ниже, чем в системах пакетной обработки,
что явилось платой за удобства работы
пользователей. Многотерминальный
режим использовался не только в
системах разделения времени, но и в
системах пакетной обработки. При этом
не только оператор, но и все пользователи
получали возможность формировать свои
задания и управлять их выполнением со
своего терминала. Такие ОС получили название
систем удалённого ввода заданий. Терминальные
комплексы могли располагаться на большом
расстоянии от процессорных стоек, соединяясь
с ними с помощью различных глобальных
связей - модемных соединений телефонных
сетей или выделенных каналов. Для поддержания
удалённой работы терминалов в операционных
системах появились специальные программные
модули, реализующие различные (в то время,
как правило, нестандартные) протоколы
связи. Такие вычислительные системы с
удалёнными терминалами, сохраняя централизованный
характер обработки данных, в какой-то
степени являлись прообразом современных
сетей, а соответствующее системное программное
обеспечение - прообразом сетевых операционных
систем.
В компьютерах 60-х годов большую
часть действий по организации вычислительного
процесса взяла на себя операционная
система. Реализация мультипрограммирования
потребовала внесения очень важных
изменений в аппаратуру компьютера,
непосредственно направленных на поддержку
нового способа организации вычислительного
процесса. При разделении ресурсов
компьютера между программами необходимо
обеспечить быстрое переключение процессора
с одной программы на другую, а
также надёжно защитить коды и
данные одной программы от непреднамеренной
или преднамеренной порчи другой
программы. В процессорах появился
привилегированный и пользовательский
режим работы, специальные регистры
для быстрого переключения с одной
программы на другую, средства защиты
областей памяти, а также развитая
система прерываний.
В привилегированном режиме, предназначенном
для работы программных модулей
операционной системы, процессор мог
выполнять все команды, в том
числе и те из них, которые позволяли
осуществлять распределение и защиту
ресурсов компьютера. Программам, работающим
в пользовательском режиме, некоторые
команды процессора были недоступны.
Таким образом, только ОС могла управлять
аппаратными средствами и исполнять
роль арбитра для пользовательских
программ, которые выполнялись в
непривилегированном, пользовательском
режиме.
Система прерываний позволяла синхронизировать
работу различных устройств компьютера,
работающих параллельно и асинхронно,
таких как каналы ввода-вывода, диски,
принтеры и т.п.
Ещё одной важной тенденцией этого
периода является создание семейств
программно - совместимых машин и
операционных систем для них. Примерами
семейств программно - совместимых
машин, построенных на интегральных
микросхемах, являются серии машин IBM/360,
IBM/370 и PDP-11.
Программная совместимость требовала
и совместимости операционных систем.
Однако такая совместимость подразумевает
возможность работы на больших и
малых вычислительных системах, с
большим и малым количеством
разнообразной периферии, в коммерческой
области и в области научных
исследований. Операционные системы, построенные
с намерением удовлетворить всем
этим противоречивым требованиям, оказались
чрезвычайно сложными. Они состояли
из многих миллионов ассемблерных строк,
написанных тысячами программистов, и
содержали тысячи ошибок, вызывающих
нескончаемый поток исправлений. Операционные
системы этого поколения были
очень дорогими. Так, например, разработка
OS/360, объём кода для которой составил
8 Мбайт, стоила компании IBM 80 миллионов
долларов.
Однако, несмотря на необозримые размеры
и множество проблем, OS/3600 и другие
ей подобные операционные системы этого
поколения действительно удовлетворяли
большинству требований потребителей.
За это десятилетие был сделан
огромный шаг вперёд и заложен
прочный фундамент для создания
современных операционных систем.
3.
Создание файлов в Windows
Файл —
это элемент, содержащий данные, например
текст, изображения или музыку. Открытый
файл очень похож на содержащий текст
или изображение документ, который
можно найти на чьем-либо столе
или в канцелярском шкафу. На компьютере
файлы отображаются в виде значков,
которые помогают легко определить
тип файла. Ниже показано(рис.1), как
выглядят некоторые значки обычных файлов.
Рисунок 1.Значки для некоторых типов
файлов
Можно создать новые файлы
в любой программе и дать каждому
из них подходящее имя, чтобы лучше
организовать работу. В большинстве
программ файлы открываются, сохраняются
и создаются в меню «Файл».
- В меню Файл программы выберите команду Создать.
Если в программе можно
создать более одного вида файлов,
возможно, потребуется выбрать из
списка такой объект, как шаблон.
- По завершении работы с новым файлом в меню Файл выберите команду Сохранить как, чтобы дать файлу имя и сохранить его на компьютере.
Добавление свойств файла—, таких
как метки, имена авторов и
оценки — осуществляется при сохранении
файла или с помощью области
сведений; это зависит от типа файла.
Это облегчит поиск файла, когда
он снова потребуется.
Чтобы создать новый файл на рабочем
столе или в открытой папке, щелкните
правой кнопкой мыши пустую область,
наведите указатель мыши на пункт Создать, а затем выберите
имя программы для нужного вида файла.
После появления значка дважды щелкните
его, чтобы открыть файл и приступить к
работе.
Список использованных литературных
источников
- Советов, Б.Я. Информационная технология: Учебник для вузов по спец.
"Автоматизир. системы обработки информ. и упр." / Б.Я. Советов. – М.: Высш. шк., 1994. – 560 с.
- Шафрин, Ю.А. Информационные технологии / Ю.А. Шафрин. – М.: Финансы и статистика, 1999. - 316 с.
- Амосов, Н.М. Моделирование сложных систем / Н.М. Амосов. – Киев: Наукова думка, 1968. - 88 с.