Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
3 Программные средства ИП.doc
Скачиваний:
11
Добавлен:
01.07.2025
Размер:
340.99 Кб
Скачать

Системное программное обеспечение Назначение, определение операционных систем

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

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

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

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

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

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

Как уже упоминалось, архитектура (система команд, организация памяти, ввод/вывод данных и структура шин) традиционных компьютеров на уровне машинного языка неудобна для работы с программами, особенно в процессе ввода/вывода данных. Для примера кратко рассмотрим процедуру ввода/вывода данных с гибкого диска через микросхемы контроллера, используемого на большинстве персональных компьютеров с процессором Intel. Контроллер имеет 16 команд, каждая из которых задается передачей от 1 до 9 байт в регистр устройства. Это команды чтения и записи данных, перемещения головки диска, форматирования дорожек, инициализации, распознавания, установки в исходное положение и калибровки контроллера и приводов.

Основными командами являются команды read и write (чтение и запись). Каждая из них требует 13 параметров, упакованных в 9 байт. Эти параметры определяют адрес блока на диске, который нужно прочитать, количество секторов на дорожке, физический режим записи, расстановку промежутков между секторами. Они же определяют, что делать с меткой адреса данных, которые были удалены. После завершения операции контроллер возвращает упакованные в 7 байт 23 параметра, отражающие наличие и типы ошибок. Кроме этого, программист при работе с гибким диском должен также постоянно знать, включен двигатель или нет. Если двигатель выключен, его следует включить (с длительным ожиданием запуска) прежде, чем данные будут прочитаны или записаны. Двигатель не может оставаться включенным слишком долго, так как гибкий диск изнашивается. Программист вынужден выбирать между длинными задержками во время загрузки и изнашивающимися гибкими дисками (с вероятностью потери данных на них).

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

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

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

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

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

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

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

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

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

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

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