Системные программы – разновидность сервисов операционной системы 


Мы поможем в написании ваших работ!



ЗНАЕТЕ ЛИ ВЫ?

Системные программы – разновидность сервисов операционной системы



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

Управления файлами; например, файл -менеджеры типа Norton Commander и Far в MS DOS и Windows Commander – в Windows;

Получения информации о состоянии; например, Task Managerпрограмма в системе Windows для управления процессами и получения информации об их состоянии, загрузке процессора и используемой памяти. Вызывается комбинацией клавиш Ctrl – Alt – Del.

Создания и изменения файлов; например, текстовые редакторы notepad и wordpad и программа paint для создания и редактирования рисунков, поставляемые с ОС Windows.

Поддержки языков программирования; например, компиляторы с языков Си (cc) и Java (javac), поставляемые с большинством операционных систем;

Загрузки и исполнения программ; например, ld – загрузчик и редактор связей UNIX;

Коммуникации; например, Windows Messenger – программа обмена мгновенными сообщениями, часть ОС Windows.

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

Структура системы MS DOS

После краткого обзора возможностей ОС проанализируем теперь особенности их структуры и архитектуры и некоторые полезные методы их разработки. Простейшим примером с этой точки зрения является MS DOS, разработанная по принципу: обеспечить максимум функциональности, используя минимум памяти (напомним об ограничении в 640 K на объем памяти для программы в MS-DOS). В MS DOS нет явного разделения на модули. Поэтому, хотя MS-DOS и имеет некоторую архитектуру, уровни функциональности и интерфейсы в ней не отделены четко друг от друга. Уровни абстракции модулей MS DOS изображены на рис. 4. Подробнее о концепции уровней абстракции, полезной для разработки ОС, которую мы пока используем интуитивно, - в конце данной лекции.

Рис. 4. Уровни абстракции модулей MS DOS.

 

В схеме можно выделить четыре уровня абстракции. Наиболее высокий – уровень пользовательской программы. Более низкий – резидентная системная программа, компонента ядра ОС. Еще ниже – уровень драйверов устройств, являющихся частью ядра MS DOS, и самый низкий – уровень драйверов, хранящихся в ROM BIOS (Read-Only Memory of the Basic Input-Output System) – постоянной памяти BIOS, системного модуля компьютера, которому передается управление непосредственно после его включения. ROM BIOS содержит наиболее важную часть драйверов, например, драйвер материнской платы (motherboard). ОС загружает и использует драйверы других устройств, например, принтера.

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

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

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

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

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

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

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

 

Рис. 5. Структура системы 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) – совокупность логически взаимосвязанной информации, расположенная во внешней памяти.

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

Краткие итоги

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

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

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

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

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

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

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

Дополнительные функции ОС – распределение ресурсов, ведение статистики, защита.

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

MS DOS – однозадачная операционная система. Одновременно система обрабатывает только одну задачу, размер памяти которой не может превышать 640 килобайт.

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

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

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

В архитектуре MS DOS нет явного разделения на модули. Различаются уровень прикладной программы, резидентной системной программы, драйверы устройств MS DOS, драйверы устройств ROM BIOS.

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

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

Вопросы для самопроверки:

1. Что такое основная (оперативная) память?

2. Что такое архитектуры памяти big endian и little endian ми в чем различие между ними?

3. Сохраняется ли состояние основной памяти после завершения программы или при отключении питания?

4. Какие действия по управлению основной памятью выполняет ОС?

5. Что такое файл?

6. Что такое набор данных?

7. Какие действия по управлению файлами и директориями выполняет ОС?

8. Что такое директория?

9. Что такое путь к файлу?

10. Какие действия по управлению вторичной памятью выполняет ОС?

11. Что такое распределенная система?

12. Что такое сетевой протокол?

13. Какие действия по управлению распределенной системой выполняет ОС?

14. Каковы преимущества доступа к общим ресурсам в сети?

15. Что такое защита и какие действия по защите данных, программ и ресурсов выполняет ОС?

16. Что такое авторизация?

17. Что такое командный интерпретатор?

18. Какие виды команд имеются в командном языке ОС?

19. Какие виды сервисов предоставляет ОС?

20. Какие дополнительные функции выполняет ОС?

21. Что такое системный вызов?

22. Какими способами могут передаваться параметры системному вызову?

23. Какие виды системных вызовов Вы знаете?

24. Как организовано распределение памяти в MS DOS?

25. Как организовано распределение памяти для нескольких задач в UNIX?

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

27. Что такое системные программы и какие функции они выполняют?

28. Какова архитектура MS DOS?

29. Какова архитектура UNIX?

30. Что такое уровни абстракции и каким образом облегчается разработка ОС на основе уровней абстракции?

Упражнения

1. Пусть список свободной основной памяти в системе содержит 100 элементов по 1000 слов каждый. От процесса поступило 100 запросов на области памяти по 995 слов. Каково в результате будет состояние памяти? Каким термином обозначается подобная ситуация?

2. Пусть в директории имеется ссылка на файл под именем "F". Пользователь записал под этим же именем в директорию ссылку на другой файл. Что произойдет с первым файлом?

3. Могут ли в одной директории быть две ссылки под одним и тем же именем (например, "A")?

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

5. Предложите систему защиты от нежелательных обращений через сеть: она должна распознавать враждебные IP-адреса и не допускать обращений с этих адресов к Вашей локальной сети.

6. Какой командой UNIX можно защитить Ваш файл f.txt в текущей директории от нежелательного чтения или изменения другими пользователями?

7. Какая команда служит в системе Solaris для удаленного входа на машину aphrodite в Вашей локальной сети?

8. Назовите системные программы, используемые Вами постоянно при работе в Вашей любимой операционной системе на Вашем персональном компьютере.

9. Объясните, почему при использовании уровней абстракции не рекомендуется обращение из модулей уровня N к модулям уровня ниже N-1.



Поделиться:


Последнее изменение этой страницы: 2016-12-30; просмотров: 447; Нарушение авторского права страницы; Мы поможем в написании вашей работы!

infopedia.su Все материалы представленные на сайте исключительно с целью ознакомления читателями и не преследуют коммерческих целей или нарушение авторских прав. Обратная связь - 3.138.114.38 (0.063 с.)