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

Лекция 5-6. СИСТЕМНОЕ ПРОГРАММНОЕ ОБЕСПЕЧЕНИЕ

План лекции:

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

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

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

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

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

6. Управление памятью

7. Ввод-вывод

8. Файловые системы

9. Рассмотрение конкретных операционных систем UNIX, Linux и Windows

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

Третьей важной функцией, которую BIOS выполняет со времен IBM PC, является начальная загрузка ОС. Современные BIOS позволяют загру­жать операционную систему не только с гибкого или жесткого дис­ка, но и с приводов 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).

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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