Компоненты операционной системы.
Часть операционной системы, которая определяет интерфейс между операционной системой и пользователем, называется оболочкой. Задача оболочки состоит в том, чтобы взаимодействовать с пользователем машины. Современные оболочки выполняют эту задачу с помощью графического пользовательского интерфейса, в котором объекты, такие как файлы и программы, представлены на экране компьютера в виде значков. Эти системы позволяют пользователям отдавать команду одним щелчком мыши на значке. Более ранние оболочки общались с пользователем с помощью текстовых сообщений, которые вводились с клавиатуры и отображались на экране.
Хотя оболочка операционной системы играет важную роль в обеспечении функциональных возможностей машины, она все же является просто интерфейсом между пользователем и основным компонентом операционной системы. Разделение на оболочку и внутреннюю часть операционной системы (ядро) подчеркивается тем фактом, что некоторые системы позволяют пользователю самому выбирать оболочку, с которой ему удобно работать. Например, пользователи операционной системы UNIX имеют возможность выбирать среди разных оболочек. Ранние версии Мicrosoft Windows были, в сущности, оболочками замещения для MS-DOS.
Графический интерфейс. Главным компонентом современного графического пользовательского интерфейса является программауправления окнами (window manager), которое размещает окна на экране компьютера и отслеживает, какому приложению принадлежит данное окно. Когда приложению нужно что-то вывести на экран, оно извещает об этом программу управления окнами, которая и помещает необходимое изображение в окно данного приложения. Точно так же, когда пользователь щелкает кнопкой мыши, именно программа управления окнами вычисляет местоположение указателя на экране и сообщает соответствующему приложению о совершенном действии.
Ядро операционной системы содержит программы, обеспечивающие функционирование компьютера:
1) программа управления файлами (распределяет доступ к файлам и пространство на диске для создания новых файлов),
2) драйвера устройств (преобразуют общие запросы в запросы понятные конкретным устройствам),
3) модуль управления памятью (распределяет пространство памяти),
4) планировщик (распределяет пространство в таблице процессов),
5) диспетчер (распределяет кванты времени).
Программа управления файлами (file manager) — функциональная часть операционной системы, обеспечивающая хранение данных на дисках и доступ к ним. Программа управления файлами координирует использование запоминающих устройств машины. Точнее говоря, программа управления файлами ведет учет всех файлов, хранящихся в машине, включая информацию о том, где они находятся, каким пользователям разрешено с ними работать, какие участки накопителя свободны для записи новых или расширения имеющихся файлов.
Для того чтобы пользователю было удобно работать с файлами, большинство программ управления файлами позволяют группировать файлы в каталоги (папки). Такой подход помогает пользователям организовывать файлы согласно своим собственным целям. Более того, благодаря тому, что каталоги могут включать в себя другие каталоги, называемые подкаталогами можно создавать иерархические структуры файлов.
Доступ к файлу других программ осуществляется с помощью программы управления файлами. Процедура начинается с того, что у программы управления файлами запрашивается доступ к файлу с помощью процесса, который называется открытием файла. Если программа управления файлами разрешает доступ, она дает информацию необходимую для нахождения и обработки файла. Эта информация хранится в области памяти, которая называется описателем файла (file descriptor). Именно с помощью обращения к описателю файла выполняются отдельные операции над файлом.
Принцип организации файловой системы в семействах операционных систем MS DOS и Windows - табличный. Поверхность диска рассматривается как трехмерная матрица, измерениями которой являются номера поверхности, цилиндра и сектора. Данные о том, в каком месте диска записан тот или иной файл, хранятся в системной области диска в специальных таблицах размещения файлов (FAT-таблицах). Файловая система определяет способы организации и средства обслуживания файловой структуры, преобразуя FAT-таблицы в иерархическую структуру для обеспечения быстрого и удобного доступа к данным, простого и понятного пользователю способа задания адреса данных. Операции, выполняемые операционной системой по обслуживанию файловой структуры: 1) создание файлов и присвоение им имен; 2) создание каталогов и присвоение им имен; 3) переименование файлов и каталогов; 4) копирование и перемещение файлов и каталогов; 5) удаление файлов и каталогов; 6) навигация по файловой структуре с целью доступа к заданному файлу, каталогу; 7) управление атрибутами файлов, которые определяют степень доступа к файлу: R (Read only) — только для чтения, Н (Hidden) — скрытый, S (System) — системный файл, A (Archive) — архивированный файл.
Другим компонентом ядра операционной системы является набор драйверов устройств, которые представляют собой программы, взаимодействующие с контроллерами (или иногда непосредственно с периферийными устройствами) для выполнения устройствами заданий, назначенных машине. Каждый драйвер разрабатывается специально для определенного устройства (такого как принтер, дисковод или монитор) и преобразует общие запросы в набор более формальных шагов, понятных устройству, подключенному к этому драйверу. Например, драйвер принтера содержит программы для чтения и расшифровывания информации о состояния этого принтера. Поэтому другим элементам программного обеспечения не нужно обладать сведениями о технических формальностях, чтобы распечатать файл. Вместо этого другие программы просто просят драйвер распечатать файл и возлагают заботу о формальностях на него. Таким образом, другие программы не зависят от характеристик отдельного устройства. В результате мы имеем операционную систему, которую можно настроить для работы с разными периферийными устройствами, просто установив соответствующий драйвер.
Еще один компонент ядра операционной системы называется модулем управления памятью. Он отвечает за управление тем, как машина использует оперативную память. Эти обязанности сводятся к минимуму в условиях, когда от машины требуется выполнение только одного задания единовременно. В этих случаях программа текущей задачи помещается в оперативную память, выполняется, а затем заменяется программой, исполняющей следующую задачу. Однако в условиях коллективного использования машины или многозадачности, когда машина должна выполнять несколько заданий одновременно, модуль управления памятью имеет более широкий круг обязанностей. В этих случаях программы и совокупности данных должны размещаться в оперативной памяти одновременно, каждая в своей области, выделенной модулем управления памятью. По мере выполнения разных заданий модуль управления памятью должен удовлетворять их требованиям к памяти и отслеживать, какие области памяти в данный момент свободны.
Задача модуля управления памятью еще более усложняется, когда область памяти, необходимая для выполнения задачи, превышает пространство, доступное в машине. В этом случае модуль управления памятью может создать иллюзию дополнительного пространства, перемещая программы между оперативной памятью и запоминающим устройством. Предположим, например, что требуется 256 Мбайт памяти, а доступно только 128 Мбайт оперативной памяти. Для того чтобы создать иллюзию области памяти большего размера, модуль управления памятью разбивает требуемое пространство на элементы, которые называются страницами, и сохраняет их содержимое на запоминающем устройств. (Обычно размер одной страницы не превышает нескольких килобайт.) Поскольку в определенный момент времени требуются не все страницы, модуль управления памятью помещает в оперативную память только необходимые страницы; таким образом, задача выполняется, как если бы все 256 Мбайт памяти были доступны. Такая память называется виртуальной.
Также в ядро операционной системы входят планировщик и диспетчер. Они выполняют задачи, связанные с координацией процессов. В системах с разделением времени планировщик определяет, какие действия будут выполняться, а диспетчер распределяет кванты времени между этими действиями. Планировщик ведет учет процессов, которые протекают в данный момент, записывает новые и удаляет уже законченные.
Запуск операционной системы осуществляется с помощью процедуры, которая называется начальной загрузкой и выполняется машиной каждый раз при включении. Зачем нужна эта процедура?
Центральный процессор устроен таким образом, что счетчик программ при включении машины содержит заранее заданный адрес ячейки памяти. И именно в этой ячейке памяти процессор ожидает найти первую команду, которую нужно выполнить. Для того чтобы обеспечить наличие нужной программы, эта часть памяти построена так, что ее содержимое не изменяется. Такую память называют постоянным запоминающим устройством ПЗУ. Когда код помещается в ПЗУ, он остается там независимо от того, включена ЭВМ или выключена.
Для самозагрузки машины ПЗУ содержит ячейки памяти, в которых центральный процессор ожидает найти команды при включении машины. Небольшая программа, хранящаяся в этой области, называется программой начальной загрузки. Она выполняется автоматически при включении машины и указывает центральному процессору, что необходимо передать данные из заданной области постоянного запоминающего устройства в энергозависимую, т.е. оперативную память. В большинстве случаев этими данными является операционная система. Как только операционная система помещается в оперативную память, программа начальной загрузки предписывает процессору перейти на выполнение программы из этой области памяти. С этого момента действиями машины уже управляет операционная система. В большинстве ПК программа начальной загрузки сначала пытается извлечь операционную систему с гибкого диска.
Координирование действий машины.Выполнение программы – динамическая деятельность, свойства которой меняются во времени. Эта деятельность называется процессом. Текущее состояние деятельности называется состоянием процесса. Это состояние включает участок программа, который выполняется в данный момент (значение в счетчике команд), а также значение других регистров центрального процессора и соответствующих ячеек памяти. Одна и та же программа может быть связана с несколькими процессами (например, в системе коллективного пользования два пользователя одновременно могут редактировать два разных документа).
В обычном ПК с разделением времени множество процессов конкурируют за кванты времени. Операционная система координирует все процессы с помощью планировщика и диспетчера.
Планировщик ведет учет процессов, которые протекают в данный момент, записывает новые и удаляет уже законченные. Для того чтобы следить за процессами планировщик помещает информацию о них в область оперативной памяти, которая называется таблицей процессов. Каждый раз, когда ПК назначается задача, планировщик создает для нее процесс, помещая новые данные в таблицу процессов.
Диспетчер – компонент ядра операционной системы, который управляет выполнением запланированных процессов. В системах с разделением времени эта задача решается разделением времени на короткие интервалы (не более 50мс), которые называются квантами, и переключением центрального процессора с одного процесса на другой. Процедура смены процессов называется переключением процессов. Когда время, отведенное процессу, заканчивается (квант времени), таймер генерирует сигнал, который называется сигналом прерывания. Центральный процессор останавливает выполнение текущего машинного цикла, сохраняет информацию о текущем процессе и начинает выполнение программы, которая называется обработчиком прерываний, которая в системах с разделением времени является частью диспетчера. Затем диспетчер выбирает из таблицы процессов процесс с наивысшим приоритетом, перезапускает таймер и позволяет выбранному процессу начать его временной квант. Если процесс выполнится за время меньшее, чем за квант, то сигнал прерывания будет генерирован ранее. Главным достоинством систем с разделением времени является возможность остановить, а затем возобновить процесс.
Для некоторых процедур устанавливается блокировка прерываний (т.е. процедура не может быть прервана – например, проверка состояния принтера и передача ему данных), а после выполнения процедуры выполняется команда разрешения прерываний. [1, 2]
Дата добавления: 2014-12-20; просмотров: 3745;