Системное программное обеспечение 1 страница

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

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

Системное программное обеспечение 1 страница - student2.ru

Рис. 3.1. Уровни и программы системного программного обеспечения

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

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

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

Вся совокупность программ, образующих ту программную сре­ду, в которой работает компьютер и называется системным программным обеспечением, И чем богаче системное ПО, тем продуктивнее ста­новится работа на компьютере.

Однако в программную среду, наряду с полезными, могут вхо­дить и программы, нарушающие ее работу. Это различные програм­мы для несанкционированного доступа к данным и программам, компьютерные вирусы и другие программные средства, с помощью которых «взламывается» защита программной среды.

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

3.1. Базовое программное обеспечение

Базовое ПО, или BIOS, представляет программа, которая отве­чает за управление всеми компонентами, установленными на мате­ринской плате. Фактически BIOS является неотъемлемой составля­ющей системной платы и поэтому может быть отнесена к особой категории компьютерных компонентов, занимая промежуточное по­ложение между аппаратурой и программным обеспечением.

Аббревиатура BIOS расшифровывается как Basic Input/Output System - базовая .система ввода/вывода. Раньше в системе IВМ РС основным назначением ВIOS была поддержка функций ввода-выво­да за счет предоставления ОС интерфейса для взаимодействия с ап­паратурой. В последнее время ее назначение и функции значитель­но расширились.

Второй важной функцией BIOS является процедура тестирова­ния (POST — Power On Self Test) всего установленного на материн­ской плате оборудования (за исключением дополнительных плат рас­ширения), проводимая после каждого включения компьютера. В процедуру тестирования входят:

• проверка работоспособности системы управления электропитанием;

• инициализация системных ресурсов и регистров микросхем;

• тестирование оперативной памяти;

• подключение клавиатуры;

• тестирование портов;

• инициализация контроллеров, определение и подключение же­стких дисков.

В процессе инициализации и тестирования оборудования BIOS сравнивает данные системной конфигурации с информацией, храня­щейся в CMOS — специальной энергозависимой памяти, расположен­ной на системной плате. Хранение данных в CMOS поддерживается специальной батарейкой, а информация обновляется всякий раз при изменении каких-либо настроек BIOS. Таким образом, именно эта память хранит последние сведения о системных компонентах, теку­щую дату и время, а также пароль на вход в BIOS или загрузку операционной системы (если он установлен). При выходе из строя, повреждении или удалении батарейки все данные в CMOS-памяти обнуляются.

Третьей важной функцией, которую BIOS выполняет со времен IВМ РС, является загрузка ОС. Современные В'ЮЗ позволяют загру­жать операционную систему не только с гибкого или жесткого дис­ка, но и с приводов CD-ROM, ZIP, LS-120, SCSI-контроллеров. Оп­ределив тип устройства загрузки, BIOS приступает к поиску программы - загрузчика ОС на носителе или переадресует запрос на загрузку на BIOS другого устройства. Когда ответ получен, программа загрузки помещается в оперативную память, откуда и происходит загрузка системной конфигурации и драйверов устройств операци­онной системы.

С появлением процессоров Pentium BIOS стала выполнять еще одну функцию - управление потребляемой мощностью, а с появ­лением материнских плат форм-фактора (стандартизированный раз­мер) ATX (Advanced Technology extended - расширенная продвину­тая технология) - и функцию включения и выключения источника питания в соответствии со спецификацией ACPI (Advanced Configu­ration and Power Interface — продвинутый интерфейс конфигури­рования и управления потребляемой мощностью). Существует так­же спецификация АРМ (Advanced Power Management — продвинутое управление потребляемой мощностью). Отличие их состоит в том, что ACPI выполняется в основном средствами ОС, а АРМ — сред­ствами BIOS.

Фирм, занимающихся разработкой программного обеспечения для BIOS, очень мало. Из наиболее известных можно выделить три: Award Software (Award BIOS), American Megatrends, Inc. (AMI BIOS) и Microid Research (MR BIOS). Но на подавляющем большинстве компьютеров сегодня применяются различные версии BIOS компа­нии Award Software. Пользовательский интерфейс разных версий и разных производителей BIOS может сильно отличаться, но систем­ные вызовы строго стандартизированы.

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

3.2. Операционные системы

3.2.1. Назначение операционной системы

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

Системное программное обеспечение 1 страница - student2.ru

Рис. 3.2. Структура аппаратно-программных средств компьютера

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

Машинный язык содержит от 50 до 300 команд, по которым осуществляются преобразование, модификация и перемещения дан­ных между устройствами. Управление устройствами на этом уровне осуществляется с помощью загрузки определенных данных в специ­альные регистры устройств. Например, при программировании вво­да/вывода диску можно дать команду чтения, записав в его регист­ры адрес места на диске, адрес в основной памяти, .число байтов для чтения и направление действия (чтение или запись). В действитель­ности диску следует передавать большее количество параметров, а структура операции, возвращаемой диском, достаточно сложна. При этом очень важную роль играют временные соотношения Операционная система предназначена для того, чтобы скрыть от пользователя все эти сложности. Этот уровень АПС (см. рис. 3.2) из­бавляет его от необходимости непосредственного общения с аппа­ратурой, предоставляя вместо этого более удобную систему команд. Действие чтения файла в этом случае становится намного более про­стым, чем когда нужно заботиться о перемещении головок диска, ждать, пока они установятся на нужное место, и т. д.

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

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

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

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

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

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

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

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

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

3.2.2. Виды операционных систем

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

На самом верхнем уровне находятся ОС для мэйнфреймов. Эти огромные машины еще можно встретить в больших организациях. Мэйнфреймы отличаются от персональных компьютеров по своим возможностям ввода/вывода. Довольно часто встречаются мэйнфрей­мы с тысячью дисков и терабайтами данных. Мэйнфреймы высту­пают в виде мощных web-серверов и серверов крупных предприятий и корпораций. Операционные системы для мэйнфреймов в основ­ном ориентированы на обработку множества одновременных зада­ний, большинству из которых требуется огромное количество опе­раций ввода-вывода. Обычно они выполняют три вида операций: пакетную обработку, обработку транзакций (групповые операции) и разделение времени. При пакетной обработке выполняются стандарт­ные задания пользователей, работающих в интерактивном режиме. Системы обработки транзакций управляют очень большим количе­ством запросов, например бронирование авиабилетов. Каждый от­дельный запрос невелик, но система должна отвечать на сотни и тысячи запросов в секунду. Системы, работающие в режиме разделения времени, позволяют множеству удаленных пользователей од­новременно выполнять свои задания на одной машине, например, работать с большой базой данных. Все эти функции тесно связа­ны между собой, и операционная система мэйнфрейма выполняет их все. Примером операционной системы для мэйнфрейма является OS/390.

Уровнем ниже находятся серверные ОС. Серверы представляют собой или очень большие персональные компьютеры, или даже мэйн­фреймы. Эти ОС одновременно обслуживают множество пользова­телей и позволяют им делить между собой программно-аппаратные ресурсы. Серверы также предоставляют возможность работы с печа­тающими устройствами, файлами или Internet. У Internet-провайде­ров обычно работают несколько серверов для того, чтобы поддержи­вать одновременный доступ к сети множества клиентов. На серверах хранятся страницы web-сайтов и обрабатываются входящие запросы. UNIX и Windows 2000 являются типичными серверными ОС. Теперь для этой цели стала использоваться и операционная система Linux.

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

Следующую категорию составляют ОС для персональных компью­теров. Их работа заключается в предоставлении удобного интерфей­са для одного пользователя. Такие системы широко используются в повседневной работе. Основными ОС в этой категории являются Windows 98, Windows 2000, операционная система компьютера Macintosh и Linux.

Еще один вид ОС - это системы реального времени. Главным па­раметром таких систем является время. Например, в системах управ­ления производством компьютеры, работающие в режиме реального времени, собирают данные о промышленном процессе и использу­ют их для управления оборудованием. Такие процессы должны удов­летворять жестким временным требованиям. Если, например, по конвейеру передвигается автомобиль, то каждое действие должно быть осуществлено в строго определенный момент времени. Если сварочный робот сварит шов слишком рано или слишком поздно, то нанесет непоправимый вред изделию. Системы VxWorks и QNX яв­ляются операционными системами реального времени.

Встроенные операционные системы используются в карманных компьютерах и бытовой технике. Карманный компьютер - это ма­ленький компьютер, помещающийся в кармане и выполняющий не­большой набор функций, например, телефонной книжки и блокно­та. Встроенные системы, управляющие работой устройств бытовой техники, не считаются компьютерами, но обладают теми же харак­теристиками, что и системы реального времени, и при этом имеют особые размер, память и ограничения мощности, что выделяет их в отдельный класс. Примерами таких операционных систем являются PalmOS и Windows CE (Consumer Electronics — бытовая техника).

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

3.2.3. Базовые понятия операционных систем

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

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

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

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

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

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

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

Системное программное обеспечение 1 страница - student2.ru

Рис. 3.3. Дерево каталогов

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

3.2.4. Процессы и потоки

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

Процессы

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

Рассмотрим содержание и применение этой модели.

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

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

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

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

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

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

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

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

Процессы

  п- п-
  Планировщик      

Рис. 3.4. Нижний уровень ОС, отвечающий за прерывание и планирование

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

Потоки

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

Наши рекомендации