Внутренний кэш процессора класса Pentium, он же первичный кэш, или кэш первого уровня (Level I Cache), находится на том же кристалле, что и процессор. Основное назначение – хранение команд и данных, которые в текущий момент обрабатываются в процессоре. Главное отличие от всех остальных видов памяти у внутреннего кэша процессора в том, что доступ к ячейкам памяти происходит на тактовой частоте ядра процессора. Появление такого типа кэша было вызвано тем, что ядро процессора, начиная с 486, работает на частоте, которая превышает частоту внешней синхронизации. В старых процессорах внутреннего кэша не было, а термин «кэш-память» относился к микросхемам внешнего кэша. Кроме того, для кэша первого уровня у современных процессоров используют ассоциативную или наборно-ассоциативную память, в которой выбор данных из памяти происходит не по абсолютным адресам ячеек памяти, а по их содержимому, что значительно ускоряет работу системы процессор - кэш.
Вторичный кэш, или кэш второго уровня (Level 2 Cache) - это или внешний кэш, который устанавливается на системной плате, или кэш-память значительного объема, которая находится на том же кристалле, что и процессор. Возможен вариант как в процессоре Pentium II, где кэш второго уровня находится на отдельном кристалле внутри картриджа процессора.
Кэш третьего уровня (Level 3 Cache) имеют некоторые процессоры, которые предназначены для серверных приложений.
Современные магнитные диски могут хранить десятки тысяч разнообразных файлов. Чтобы не запутаться в этом море файлов, их классифицируют, объединяют по группам. Все файлы, хранимые на магнитных дисках любых типов, операционные системы позволяют разбивать на отдельные группы. Внутри группы файлы объединяются по какому-либо признаку (например, все файлы некоторого пользователя). Такая группа файлов называется каталогом (directory). Фактически, каталог - это специальный файл, в котором хранится информация об объединенных в нем файлах. Каталогу присваивается имя. Правила именования каталогов совпадают с правилами для файлов, за исключением того, что расширение имени для каталогов обычно не используется. Кроме файлов, любой каталог может содержать подчиненные каталоги, называемые подкаталогами. В свою очередь, любой подкаталог может содержать файлы и свои подчиненные подкаталоги. Тем самым каталоги и файлы образуют так называемое дерево каталогов. Корень дерева называется главным или корневым каталогом. Начиная с корневого каталога, можно спуститься по ветвям дерева до необходимого файла или подкаталога. В итоге, каждый каталог может содержать:
1. только файлы
2. только подкаталоги
3. файлы и подкаталоги
4. ничего не содержать, т.е. может быть пустым
Имя корневого каталога совпадает с именем используемого дискового устройства. Если жесткий диск разбит на несколько разделов (C:, D:, ... ), то в каждом из них создается своя собственная файловая структура, никак не связанная с другими. В подобной древовидной структуре для определения местоположения файла надо задать путь, т.е. последовательность подкаталогов, начиная с корневого, которые должны проходиться для достижения данного файла. При описании этого пути подкаталоги отделяются друг от друга обратной косой чертой (\). Тогда полное имя файла в операционных системах MS DOS/Windows можно описать следующим образом:
1. устр: \ каталог1 \ подкаталог2 \ ... \ имя.расширение
2. Здесь устр: - имя дискового накопителя ( А:, B:, C:,...)
3. ... \ ... - путь по древовидной структуре
Если в полном имени файла опущены устройство и путь, то они выбираются по умолчанию. Используемые в данный момент устройство и подкаталог называются текущими или рабочими. В каждый момент времени ОС отслеживает текущее устройство и подкаталог, поэтому для работы с файлами текущего подкаталога можно не указывать имя устройства и путь. Примеры полных имен файлов:
· С: \ DOS \ RAB \ PROG1.exe - файл prog1.exe записан на жестком диске( раздел C: ) в подкаталоге RAB, входящем в каталог DOS
· D: \ DOKUMENT \ tablica.txt - файл tablica.txt храниться на жестком диске (раздел D: ) в каталоге DOKUMENT
· A: \ file1.txt - файл file1.txt в корневом каталоге дискеты, находящейся в данный момент в соответствующем устройстве
Поскольку файлы распознаются операционной системой по полным именам, то файлы в разных подкаталогах могут иметь одинаковые имена, оставаясь тем не менее разными файлами для ОС, поскольку их полные имена будут различными. Например, файлы C: \ RAB \ file1.txt и C: \ DOKUM \ file1.txt являются для ОС разными, хотя и имеют одинаковые имена.
Загрузчик - программа, которая подготавливает объектную программу к выполнению и инициирует ее выполнение.
Более детально функции Загрузчика следующие:
· выделение места для программ в памяти (распределение);
· фактическое размещение команд и данных в памяти (загрузка);
· разрешение символических ссылок между объектами (связывание);
· настройка всех величин в модуле, зависящих от физических адресов в соответствии с выделенной памятью (перемещение);
· передача управления на входную точку программы (инициализация).
Не обязательно функции Загрузчика должны выполняться именно в той последовательности, в какой они описаны. Опишем эти функции более подробно.
Функция распределения, по-видимому понятна из ее названия. Для размещения программы в оперативной памяти должно быть найдено и выделено свободное место в памяти. Для выполнения этой функции Загрузчик обычно обращается к операционной системы, которая выполняет его запрос на выделение памяти в рамках общего механизма управления памятью.
Функция загрузки сводится к считыванию образа программы с диска (или другого внешнего носителя) в оперативную память.
Функция связывания состоит в компоновки программы из многих объектных модулей. Поскольку каждый из объектных модулей в составе программы был получен в результате отдельного процесса трансляции, который работает только с одним конкретным модулем, обращения к процедурам и данным, расположенным в других модулях, в объектных модулях не содержат актуальных адресов. Загрузчик же "видит" все объектные модули, входящие в состав программы, и он может вставить в обращения к внешним точкам правильные адреса. Загрузчики, которые выполняют функцию связывания вместе с другими функциями, называются Связывающими Загрузчиками. Выполнение функции связывания может быть переложено на отдельную программу, называемую Редактором связей или Компоновщиком. Редактор связей выполняет только функцию связывания - сборки программы из многих объектных модулей и формирование адресов в обращениях к внешним точкам. На выходе Редактора связей мы получаем загрузочный модуль.
Функция перемещения необходимо потому, что программа на любом языке разрабатывается в некотором виртуальном адресном пространстве, в котором адресация ведется относительно начала программной секции. При написании программы и при ее трансляции, как правило, неизвестно, по какому адресу памяти будет размещена программа (где система найдет свободный участок памяти для ее размещения). Поэтому в большинстве случаев в командах используется именно адреса меток и данных. Однако, в некоторых случаях в программе возникает необходимость использовать реальные адреса, которые определяться только после загрузки. Все величины в программе, которые должны быть привязаны к реальным адресам, должны быть настроены с учетом адреса, по которому программа загружена.
Существуют программы, которые при написании рассчитываются на размещение в определенных адресах памяти, так называемые,абсолютные программы. Подготовка таких программ к выполнению значительно проще и выполняется она Абсолютным Загрузчиком. Функции такого Загрузчика гораздо проще:
· функция распределения не выполняется, так как реальное адресное пространство, в котором размещается программа предполагается свободным;
· функция загрузки, конечно, выполняется, но она предельно проста;
· функция связывания может быть исключена из Абсолютного Загрузчика: поскольку все адреса программы известны заранее, адреса, по которым происходят обращения к внешним точкам, могут быть определены заранее;
· функция перемещения исключается;
· функция инициализации остается.
Доля абсолютных программ в общей массе программного обеспечения ничтожно мала. Абсолютными могут быть системные программы самого низкого уровня, программы, записываемые в ПЗУ, программы для встраиваемых устройств и т.п. Подавляющее же большинство системных и все прикладные программы являютсяперемещаемыми, то есть, они могут загружаться для выполнения в любую область памяти, и Загрузчик для таких программ выполняет перечисленные функции в полном объеме.
Графическим пользовательским интерфейсом (ГИП) (graphical user interface – GUI) называется пользовательский интерфейс, основанный на визуализации объектов, с которыми взаимодействует пользователь в процессе работы.
Первой особенностью ГИП являются, то что в основе его разработки лежат принципы:
· "рабочего стола", обозначающий создание для пользователя его единой рабочей среды, в которой для него доступны не только определенные источники информации (текст, таблицы, графики рисунки и т.д.), но и средства обработки этой информации (приложения);