Спонсор: Microsoft
Опубликован: 13.11.2010 | Уровень: для всех | Доступ: платный | ВУЗ: Санкт-Петербургский государственный университет
Лекция 6:

Обзор функций ОС: управление памятью, файлами, процессами, сетями, командными интерпретаторами, сервисы ОС, системные вызовы. Уровни абстракции ОС. Архитектура UNIX и MS-DOS

< Лекция 5 || Лекция 6: 12345 || Лекция 7 >

Структура системы UNIX

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

Система UNIX состоит из двух частей: системные программы и ядро.

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

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

Архитектура UNIX изображена на рис. 6.6.

Структура системы UNIX

Рис. 6.6. Структура системы UNIX

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

Уровни абстракции

В конце 1960-х гг., при разработке операционной системы THE (название – аббревиатура, означающая "Технический университет Эйндховена"), Э. Дейкстра предложил для своего времени весьма новый и прогрессивный принцип уровней абстракции, полезный при разработке любой сложной программной системы, в том числе – столь сложной, как операционная система. Согласно этому принципу, ОС (или другая сложная программа) реализуется в виде набора (иерархии) уровней абстракции (abstraction layers),каждый из которых реализован на основе предыдущего уровня. Уровень 0 (layer 0) образует аппаратура ( hardware ); самый высокий уровень N (layer N) является пользовательским интерфейсом с операционной системой. Каждый уровень абстракции N > 0 – это группа модулей, при реализации которого, согласно принципам модульного программирования, используются только модули предшествующего уровня (N-1).

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

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

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

Ключевые термины

Big endian архитектура памяти компьютера, при которой нумерация байтов в каждом слове памяти начинается слева, т.е. начиная со старших битов.

Little endian архитектура памяти компьютера, при которой нумерация байтов в каждом слове памяти начинается справа, т.е. начиная с младших битов.

ROM BIOS (Read-Only Memory of the Basic Input-Output System) постоянная память, входящая в состав BIOS, системного модуля компьютера, которому передается управление непосредственно после его включения; содержит часть драйверов для модулей аппаратуры.

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

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

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

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

Директория (directory) – каталог ссылок на группу файлов или других директорий, каждый (каждая) из которых имеет в данной директории свое уникальное символьное имя.

Заглушка для исполнения (execution stub) – область файла исполняемого двоичного кода, содержащая ссылку на код головного метода (процедуры), обычно – main.

Заголовок файла – начальная часть файла, в которой хранятся его атрибуты.

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

Защита (protection) - механизм управления доступом программ, процессов и пользователей к системным и пользовательским ресурсам.

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

Набор данных (data set) – то же, что и файл (в терминологии фирмы IBM).

Неустойчивое ( volatile ) - устройство памяти, типичное для основной памяти компьютеров, при котором ее содержимое теряется при сбое системы или при выключении питания.

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

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

Память файла – совокупность его элементов, хранящихся во внешней памяти (например, на диске).

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

Протокол интерфейс, набор операций (например, для работы в локальной сети).

Путь ( path ) – символьная строка для поиска файла по имени в иерархии директорий.

Раздел (partition) – смежная область внешней памяти, имеющая в ОС определенное символьное обозначение (например, D: ).

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

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

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

Сокет (socket) – системная структура для обмена информацией клиента с сервером через TCP/IPсеть.

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

Уплотнение (компактировка) памяти – сдвиг всех используемых фрагментов по меньшим адресам, с корректировкой всех адресов, при сборке мусора.

Уровень абстракции (abstraction layer) - группа модулей, при реализации которых используются только модули предшествующего уровня.

Файл (file) – совокупность логически взаимосвязанной информации, расположенная во внешней памяти.

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

< Лекция 5 || Лекция 6: 12345 || Лекция 7 >
Василий Четвертаков
Василий Четвертаков
Владислав Нагорный
Владислав Нагорный

Подскажите, пожалуйста, планируете ли вы возобновление программ высшего образования? Если да, есть ли какие-то примерные сроки?

Спасибо!

Константин Леденев
Константин Леденев
Россия
Олег Равков
Олег Равков
Россия