Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Операционные системы, среды и оболочки.doc
Скачиваний:
19
Добавлен:
19.04.2019
Размер:
2.13 Mб
Скачать

Архитектура операционной системы

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

Программное обеспечение

Начнем обсуждение программного обеспечения с рассмотрения его классифика­ции. Всё программное обеспечение можно разделить на две большие груп­пы: прикладное программное обеспечение (application software) и системное про­граммное обеспечение (system software). К прикладному программному обеспечению относятся программы, выполняющие задачи, касающиеся предмет­ной области применения машины. Компьютер, который используется для состав­ления каталогов в производственной компании, и компьютер, с которым работа­ет инженер, будут содержать разные приложения. К прикладному программному обеспечению также относятся электронные таблицы, базы данных, системы под­готовки публикаций, системы бухгалтерского учета, системы разработки программ и компьютерные игры.

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

Системное программное обеспечение можно разделить на две группы: опера­ционная система и обслуживающее программное обеспечение, или утилиты (utility software). Большая часть обслуживающего программного обеспечения установки состоит из программ, выполняющих действия, которые являются важными для работы вычислительной машины, однако не входят в операционную систему. В некотором смысле обслуживающее программное обеспечение состоит из про­грамм, которые расширяют возможности операционной системы.

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

Компоненты операционной системы

Часть операционной системы, которая определяет интерфейс между операцион­ной системой и пользователем, часто называется оболочкой (shell). Задача обо­лочки состоит в том, чтобы взаимодействовать с пользователем машины. Совре­менные оболочки выполняют эту задачу с помощью графического пользовательского интерфейса (GUI – graphical user interface), в котором объекты, такие как фай­лы и программы, представлены на экране компьютера в виде значков. Эти систе­мы позволяют пользователям отдавать команду одним щелчком мыши на значке. Более ранние оболочки общались с пользователем с помощью текстовых сообще­ний, которые вводились с клавиатуры и отображались на экране. Такой способ общения называется интерфейс командной строки (CLIcommand line interface).

Хотя оболочка операционной системы играет важную роль в обеспечении функциональных возможностей машины, она все же является просто интерфей­сом между пользователем и основным компонентом операционной системы. Разделение на оболочку и внутреннюю часть операционной системы подчеркивается тем фактом, что некоторые системы позволяют пользователю самому выбирать оболочку, с которой ему удобно работать. Например, пользова­тели операционной системы UNIX имеют возможность выбирать среди разных оболочек, таких как оболочки Borne, С и Korne. Ранние версии Microsoft Windows были, в сущности, оболочками замещения для MS-DOS. Во всех этих случаях операционная система остается такой же, меняется только способ общения с поль­зователями.

Главным компонентом современного графического пользовательского интер­фейса является устройство управления окнами (window manager), которое раз­мещает окна на экране компьютера и отслеживает, какому приложению принад­лежит данное окно. Когда приложению нужно что-то вывести на экран, оно извещает об этом программу управления окнами, которая и помещает необходи­мое изображение в окно данного приложения. Точно так же, когда пользователь щелкает кнопкой мыши, именно программа управления окнами вычисляет мес­тоположение указателя на экране и сообщает соответствующему приложению о совершенном действии.

В отличие от оболочки, внутренняя часть операционной системы называется ядром (kernel). Ядро операционной системы содержит программы, обеспечиваю­щие функционирование компьютера. Один из таких элементов называется про­граммой управления файлами (file manager), которая координирует использование запоминающих устройств машины. Точнее говоря, программа управления файлами ведет учет всех файлов, хранящихся в машине, включая информацию о том, где они находятся, каким пользователям разрешено с ними работать, какие участки накопи­теля свободны для записи новых или расширения имеющихся файлов.

Для того чтобы пользователю было удобно работать с файлами, большинство программ управления файлами позволяют группировать файлы в каталоги (directory) или папки (folder). Такой подход помогает пользователям организо­вывать файлы согласно своим собственным целям. Более того, благодаря тому что каталоги могут включать в себя другие каталоги, называемые подкаталогами, можно создавать иерархические структуры файлов.

Доступ к файлу других программ осуществляется с помощью программы управ­ления файлами. Процедура начинается с того, что у программы управления фай­лами запрашивается доступ к файлу с помощью процесса, который называется открытием файла. Если программа управления файлами разрешает доступ, она дает информацию, необходимую для нахождения и обработки файла. Эта инфор­мация хранится в области памяти, которая называется описателем файла (file descriptor). Именно с помощью обращения к описателю файла выполняются от­дельные операции над файлом.

Другим компонентом ядра операционной системы является набор драйверов устройств (device drivers), которые представляют собой программы, взаимодей­ствующие с контроллерами (или иногда непосредственно с периферийными уст­ройствами) для выполнения устройствами заданий, назначенных машине. Каж­дый драйвер разрабатывается специально для определенного устройства (такого как принтер, дисковод или монитор) и преобразует общие запросы в набор более формальных шагов, понятных устройству, подключенному к этому драйверу. Например, драйвер принтера содержит программы для чтения и расшифровыва­ния слова, состояния этого принтера. Поэтому другим элементам программного обеспечения не нужно обладать сведениями о технических формальностях, что­бы распечатать файл. Таким образом, другие программы не зависят от характеристик отдельного устройства. В резуль­тате мы имеем операционную систему, которую можно настроить для работы с разными периферийными устройствами, просто установив соответствующий драйвер.

Еще один компонент ядра операционной системы называется модулем управ­ления памятью (memory manager). Он отвечает за управление тем, как машина использует оперативную память. Эти обязанности сводятся к минимуму в усло­виях, когда от машины требуется выполнение только одного задания единовре­менно. В этих случаях программа текущей задачи помещается в оперативную память, выполняется, а затем заменяется программой, исполняющей следующую задачу. Однако в условиях коллективного использования машины или многоза­дачности, когда машина должна выполнять несколько заданий одновременно, модуль управления памятью имеет более широкий круг обязанностей. В этих случаях программы и совокупности данных должны размещаться в оперативной памяти одновременно, каждая в своей области, выделенной модулем управления памятью. По мере выполнения разных заданий модуль управления памятью дол­жен удовлетворять их требованиям к памяти и отслеживать, какие области памя­ти в данный момент свободны.

Задача модуля управления памятью еще более усложняется, когда область памяти, необходимая для выполнения задачи, превышает пространство, доступ­ное в машине. В этом случае модуль управления памятью может создать иллю­зию дополнительного пространства, перемещая программы между оперативной памятью и запоминающим устройством. Предположим, например, что требуется 256 Мбайт памяти, а доступно только 128 Мбайт. Для того чтобы создать иллюзию области памяти большего размера, модуль управления памятью разбивает требуемое пространство на элементы, которые называются страницами (pages) и сохраняет их содержимое на запоминающем устройстве. (Обычно размер од­ной страницы не превышает нескольких килобайтов.) Поскольку в определен­ный момент времени требуются не все страницы, модуль управления памятью помещает в оперативную память только необходимые страницы; таким образом, задача выполняется, как если бы все 256 Мбайт памяти были доступны. Такая память называется виртуальной (virtual memory). Также в ядро операционной системы входят планировщик (scheduler) и диспетчер (dispatcher), которые мы рассмотрим в следующем разделе. Сейчас же следует заметить, что в системах с разделением времени планировщик определяет, какие действия будут выполнять­ся, а диспетчер распределяет кванты времени между этими действиями.