Системное программное обеспечение
Частью программного обеспечения, наиболее тесно взаимодействующей с аппаратной частью компьютера, является системное программное обеспечение и, прежде всего, операционная система.
Операционная система играет роль посредника между пользователем, аппаратным и программным обеспечением компьютера. Она предоставляет возможность запуска программ, поддерживает работоспособность устройств, предоставляет средства проверки и настройки различных компонентов. Чем большей гибкостью и многофункциональностью обладает операционная система, тем больше возможностей она предоставляет, тем удобнее работать с компьютером.
Операционная система (ОС) — это комплекс (набор) программ, который обеспечивает взаимодействие всех устройств ЭВМ и предоставляет пользователю возможность осуществлять общее управление ЭВМ.
Главное назначение ОС — управление ресурсами, основными из которых является аппаратура компьютера. ОС управляет вычислительным процессом и информационным обменом между процессором, памятью, внешними устройствами. Все устройства компьютера работают одновременно, и ОС предотвращает возникновение конфликтных ситуаций между компонентами вычислительной системы, способных привести к сбою в работе, потере или искажению информации.
Основная причина необходимости ОС состоит в том, что элементарные операции для работы с устройствами компьютера — это операции очень низкого уровня, поэтому действия, которые необходимы пользователю и прикладным программам, состоят из нескольких сотен или тысяч таких элементарных операций.
Пример Имеется около десятка форматов дискет, и ОС должна уметь работать со всеми этими форматами. Для пользователя работа с дискетами различного формата должна осуществляться одинаково.
Файл на дискете занимает определенные участки, причем пользователь не должен ничего знать о том, какие именно. Все функции по обслуживанию таблиц размещения файлов, поиску информации в них, выделению места для файлов на дискетах выполняются ОС. Во время работы программы копирования может возникнуть несколько десятков различных ситуаций (например, сбой при чтении, неготовность дисководов к чтению или записи, отсутствие места для копирования). Для всех этих ситуаций необходимо предусмотреть соответствующие сообщения. ОС скрывает от пользователя эти сложные и ненужные
ему подробности и предоставляет ему удобный интерфейс
(способ взаимодействия) для работы.
ОС реализует много различных функций, в том числе:
• создает рабочую среду и поддерживает пользовательский интерфейс;
• обеспечивает выполнение команд пользователя и программных инструкций;
• управляет аппаратными средствами компьютера;
• обеспечивает разделение аппаратных ресурсов между программами;
• планирует доступ пользователей к общим ресурсам;
• обеспечивает выполнение операций ввода/вывода, хранения информации и управление файловой системой;
• осуществляет восстановление информации в случае аппаратных сбоев и программных ошибок.
Развитие операционных систем всегда следовало за развитием аппаратуры.
Краткий исторический экскурс.
В первых вычислительных машинах (40-е годы) ОС не было. Пользователи имели полный доступ к машинному языку и все программы писали непосредственно в машинных кодах.
Большинство компьютеров второго поколения (50-е годы) работало в пакетном режиме. Программные средства, обслуживающие пакетную обработку программ пользователей можно считать первыми ОС. Их задача сводилась к тому, чтобы, получив от оператора сразу несколько программ пользователей, быстро выполнить их одну за другой, тем самым устранив задержки при переходе от программы к программе.
По мере роста мощности вычислительных систем операционные системы стали создаваться как системы, коллективного пользования с мультипрограммным режимом работы и как системы мультипроцессорного типа («муль-ти» — множественность, многократность). В мультипрограммных системах программы нескольких пользователей находятся в основной памяти компьютера, а центральный процессор быстро переключается с задачи на задачу. В мультипроцессорной системе единый вычислительный комплекс содержит несколько процессоров, что повышает его вычислительную мощность.
Постепенно начали появляться методы, обеспечивающие независимость программирования от устройств конкретной ЭВМ. Были разработаны ОС с разделением времени, которые предоставляли сразу нескольким пользователям возможность взаимодействовать с компьютером в диалоговом (интерактивном) режиме: пользователь печатает запрос компьютеру на своем терминале, компьютер обрабатывает этот запрос с максимально возможной скоростью и выдает (если требуется) ответ на терминал пользователя. Диалоговый режим позволил в значительной степени повысить эффективность процесса разработки и отладки программ, дал возможность пользователю обнаруживать и исправлять ошибки за считанные секунды или минуты вместо того, чтобы ждать, пока будут получены результаты пакетной обработки.
ОС третьего поколения (70-е годы) были многорежимными. Некоторые из них обеспечивали работу сразу во всех известных режимах:
• в режиме пакетной обработки;
• в режиме разделения времени;
• в режиме реального времени и мультипроцессорном режиме.
Названные системы были громоздкими и дорогостоящими; кроме того, они значительно усложняли процедуру использо-
вания ЭВМ, так как пользователю, для того, чтобы заставить такую ОС выполнять простейшие действия, необходимо было изучать сложнейшие языки управления заданиями, чтобы описать задание и требуемые для него ресурсы.
К началу 80-х годов проблема совместимости различных компьютерных систем стала одной из серьезных проблем, которую можно было решить с помощью нового подхода к построению операционных систем. Основу системы должно было составлять микроядро (microkernel), написанное специально для данного процессора. Все её прочие части следовало выделить в отдельные модули, не зависящие от типа процессора, которые взаимодействовали бы с ним и между собой. В результате обеспечивался несложный перенос операционной системы и всего программного обеспечения с одного компьютера на другой. Эта идея быстро приобрела популярность.
Заметим, что в отличие от поколений ЭВМ, когда каждое новое поколение полностью вытесняло предыдущее, каждое следующее поколение ОС улучшало и расширяло возможности предыдущего.
С появлением персональных компьютеров возникли новые проблемы и у разработчиков ОС, так как необходимо было уместить широкую по набору выполняемых функций ОС в гораздо меньший объем памяти ПК. В этих целях функции ОС были разделены. Наиболее часто используемые программы были помещены в ядро системы, постоянно на-ходщееся в оперативной памяти машины. Менее используемые программы или утилиты, предлагалось размещать на внешнем запоминающем устройстве (диске) и вызывать в ОЗУ по мере необходимости.
Большинство современных ОС для ПК являются многозадачными (мультипрограммными). Их преимущество состоит в том, что пользователь может одновременного работать с несколькими приложениями, а также совершать обмен данными между приложениями. Основными недостатками являются большая требовательность к ресурсам компьютера, а также то, что при возникновении неисправимой ошибки в одном из приложений все приложения системы, как правило, заканчивают свою работу, что может повлечь за собой потерю данных.
Пример.Набирая текст реферата в текстовом редакторе, вы, не
прерывая его работы, можете переключиться в электрон
ные таблицы, провести там необходимые расчеты, резу
льтаты которых затем скопировать в реферат, или войти
в Интернет, чтобы найти среди его ресурсов интересные факты. Причем переход от одного приложения к другому осуществляется щелчком мыши.
Операционные системы разделяются на два больших класса:
• ОС общего назначения (стандартные), наиболее известные среди которых: MicroSoft DOS, MicroSoft Winows 95/98, Windows 2000 Professional, AT&T Unix, IBM OS/2, Apple MacOS, SunOS;
• сетевые ОС, которые, наряду с функциями стандартных ОС, реализуют задачи, связанные с аппаратными ресурсами и файлами, находящимися в различных узлах сети. Наиболее известные среди них: Novell NetWare, UNIX, LUNIX, Windows NT, Windows ME (Millenium Edition), OS/2 LAN Server, OS/2 SMP, Solaris. Операционная система создается, как правило, в расчете
на определенные типы компьютеров и часто не может работать на другой аппаратной платформе. В свою очередь, прикладные программы, особенно общего назначения, также создаются для работы под управлением конкретной ОС и часто не могут использоваться с ОС другого типа.
Пример. Фирма IBM устанавливает на своих персональных компьютерах такие ОС, как MS DOS, Windows и их разновидности. Фирма Apple использует преимущественно MacOS для своих Macintosh PowerPC. Фирма Sun предлагает SunOS и Solaris. Система UNIX реализована для различных аппаратных платформ.
Посредниками между пользователем и программным обеспечением компьютера служат так называемые операционные оболочки.
Операционная оболочка делает более удобной работу пользователя с прикладными программами и файловой системой. Эти оболочки предназначены для того, чтобы:
• облегчить пользователю выполнение операций над файлами, таких как быстрый поиск, копирование, удаление и пр.;
• сделать более удобным запуск на выполнение приложений;
• обеспечить возможность быстрого перехода от одного приложения к другому при многозадачном режиме работы и т. п.
Norton Commander — одна из наиболее известных оболочек, работавших под управлением DOS.
Сама MS DOS поддерживает командный пользовательский интерфейс, то есть для выполнения любой операции необходимо ввести с клавиатуры текст команды, состоящий из кода операции, параметров, задающих режим выполнения операции, и операндов, над которыми эта операция должна производиться.
Пример. Для копирования файла primer.txt с диска а: на диск с;
необходимо задать команду: сору a:\primer.txt с: .
Интерфейс Norton Commander можно назвать фиксированным меню. Каждый пункт меню имеет свое строго фиксированное положение на экране. Пользователь не может изменить ни состав, ни названия, ни расположение пунктов. Основные команды задаются с помощью функциональных клавиш (Fl, F2,...), остальные — с помощью ниспадающего меню (когда выбор какого-либо пункта меню приводит к появлению окна с уточняющими параметрами выполнения операции).
Пример На рисунке 2.2.1. представлен образ экрана Norton Commander с активизированным окном ниспадающего меню.
Рис. 2.2.1. Экран Norton Commander
Заметим, что Norton Commander создавался еще в расчете на алфавитно-цифровые дисплеи и обрамление панелей и окон первоначально было сделано с помощью псевдографики. Распространение графических дисплеев привело к появлению графического пользовательского интерфейса. Первыми ПК с графическим пользовательским интерфейсом были компьютеры Macintosh фирмы Apple, оснащеные операци-
онной системой MacOS. Графический интерфейс характерен и для семейства операционных систем Windows.
В графическом интерфейсе информация и команды представляются в виде пиктограмм, и пользователь выполняет те или иные операции, указывая на эти пиктограммы. Причем, пользователь может выбрать только те пиктограммы, которые соответствуют нужным ему операциям, и разместить их на экране дисплея так, как ему удобно.
Пример На рисунке 2.2.2 представлено несколько пиктограмм различного назначения.
Рис. 2.2.2
Примеры пиктограмм
Операционной оболочкой системы Windows является диспетчер программ (Program Manager). Для работы с файлами используются специальные программы: Диспетчер файлов (File Manager), Мой компьютер, Far Manager и др.
К системному программному обеспечению относятся и драйверы устройств (device driver) — программы, обеспечивающие взаимодействие операционной системы с физическими устройствами. Драйвер обрабатывает прерывания обслуживаемого устройства, поддерживает очередь запросов и преобразует запросы в команды управления устройством.
Раньше при подключении нового устройства пользователю самому необходимо было заботиться о том, чтобы драйвер этого устройства был в соответствующем каталоге ОС. Значительная емкость современных винчестеров позволяет хранить драйверы большинства известных устройств и при подключении нового устройства ОС может «подобрать» ему наиболее подходящий драйвер. В этом случае говорят, что ОС поддерживает технологию Plag & Play (подключай и работай).
Операционная система (operating system): • важнейшая часть программного обеспечения компьютера, представляющая собой комплекс управляющих и обслуживающих программ, обеспечивающих максималь-
ную эффективность работы вычислительной системы за счет автоматического управления вычислительными процессами и ресурсами;
• комплекс программ, входящих в общее программное обеспечение компьютера и поддерживающих процесс обработки информации;
• комплекс программ, обеспечивающий в системе выполнение других программ, распределение ресурсов, планирование, ввод-вывод и управление данными;
• комплекс программ, который обеспечивает взаимодействие всех устройств компьютера, предоставляет пользователю средства взаимодействия с аппаратурой компьютера и его программным обеспечением и позволяет осуществлять общее управление ресурсами компьютера.
Функции ОС:
• создание рабочей среды и обеспечение пользовательского интерфейса;
• обеспечение выполнения команд пользователя и программных инструкций;
• управление аппаратными средствами компьютера;
• обеспечение разделения аппаратных ресурсов между программами;
• планирование доступа пользователей к общим ресурсам;
• обеспечение эффективного выполнения операций ввода/вывода;
• восстановление работоспособности системы в случае программных ошибок и аппаратных сбоев;
• для сетевые ОС — реализация задач, связанных с аппаратными ресурсами и файлами, находящимися в различных узлах сети.
ОС управляет следующими основными ресурсами: процессорами, памятью, устройствами ввода/вывода, файловой системой.
Развитие операционных систем тесно связано с развитием аппаратного обеспечения ЭВМ.
Операционные системы разделяются на два больших класса:
• ОС общего назначения (стандартные), наиболее извест
ные среди которых: Microsoft DOS, Microsoft Winows
95/98, Windows 2000 Professional, AT&T Unix, IBM OS/2,
Apple MacOS, SunOS;
• сетевые ОС, наиболее известные среди которых: Novell
NetWare, UNIX, LUNIX, Windows NT, Windows ME (Mil
lenium Edition), OS/2 LAN Server, OS/2 SMP, Solaris.
Программы, созданные для работы с определенными семействами ОС, обычно не работают под управлением ОС другого типа.
ОС скрывает от пользователя сложные и ненужные подробности работы подсистем компьютера и предоставляет ему удобный интерфейс для работы.
Интерфейс— совокупность аппаратных и/или программных средств, обеспечивающих сопряжение различных устройств между собой, а также взаимодействие технических средств с человеком.
Пользовательский интерфейс— способ взаимодействия пользователя с конкретным программным средством. Виды пользовательского интерфейса:
• командный;
• фиксированное меню;
• графический;
• командный речевой (голосовой).
Операционная оболочка— это программное средство (или их совокупность), обеспечивающее работу пользователя с прикладными программами и файловой системой.
Функции операционной оболочки:
• облегчение пользователю выполнения операций над файлами, таких как быстрый поиск, копирование, удаление и пр.;
• обеспечение более удобного запуска на выполнение приложений;
• обеспечение возможности быстрого перехода от одного приложения к другому при многозадачном режиме работы и т. п.
Наиболее популярные операционные оболочки для ОС фирмы Microsoft:
• для DOS — Norton Commander, DOS-Navigator, Windows 3.x;
• для Windows 95 и более поздних версий — Диспетчер программ (Program Manager) и программы управления файлами Far Manager, Мой компьютер и др.
Задание 1
Определите название операционной системы, установленной на вашем компьютере и ответьте на следующие вопросы:
1. К какому семейству ОС она относится?
2. Относится ли она к классу многозадачных ОС?
3. Какой тип пользовательского интерфейса она подерживает?
4. Какой объем занимает на винчестере каталог, в котором хра
нятся модули ОС?
Задание 2
Почему ОС — это информационная система. Обоснуйте.
Задание 3
Пользовательский интерфейс системы Windows поддерживает следующие типы меню: ниспадающее меню, выбор в котором осуществляется по ключевым словам, меню пиктограмм (или панель виртуальных кнопок), меню «горячих клавиш». Сформулируйте, в чем могут состоять преимущества и недостатки использования меню каждого из этих типов.
Задание 4
Объясните, почему прикладное программное обеспечение должно создаваться в расчете на конкретную ОС и, как правило, не может работать под управлением ОС другого семейства.
Задание 5
Перечислите известные вам сетевые ОС (если вам не приходилось работать в сети, обратитесь к специальной литературе). Какие, на ваш взгляд, функции должна обеспечивать операционная система, предназначенная для работы в сети (например, в сети Интернет)? Какие из этих функций наиболее сложны для реализации? Подгототьте доклад на эту тему.
Задание 6
Определите, какие операционные оболочки установлены на вашем компьютере. Если их несколько, сравните, в чем сходство и различие возможностей, предоставляемых ими пользователю, и их пользовательских интерфейсов.
Какая из операционных оболочек самая удобная для вас? Ответ обоснуйте.
На одном компьютере могут быть установлены несколько операционных систем. Можно ли и, если да, то в каком случае использовать одни и те же приложения и одни и те же файлы данных при работе в различных ОС? Какие конфликтные ситуации могут при этом возникнуть?
Принято считать, что первую операционную систему для своего компьютера IBM-701 разработала Исследовательская лаборатория фирмы General Motors в начале 50-х годов. В 1955 году совместно с фирмой North Aviation Исследовательской лабораторией была создана операционная система для компьютера IBM-704.
Считается, что более или менее завершенную форму операционной системы приобрели к середине 60-х годов в компьютерах третьего поколения. К числу исторически первых операционных систем можно отнести системы DOS/360, OS/360, созданные фирмой IBM. Операционная система с разделением времени Compatible Time Sharing System, разработанная в Массачусетском технологическом институте в 1963 году, состояла примерно из 32 тысяч слов памяти по 36 битов каждое. Годом позже фирмой IBM была создана система OS/360, состоящая более чем из миллиона машинных команд.
Разработчики фирмы IBM сделали все компьютеры System/360 совместимыми по архитектуре, предусмотрели возможность применения на всех таких компьютерах одной и той же операционной системы — OS/360, и предусмотрели совместимость программного обеспечения при переходе от менее мощных машин к более мощным. То есть новые версии операционных систем должны были работать и с прикладными программами, созданными для более ранних версий. Таким образом возникла ставшая сегодня практически стандартом концепция семейства совместимых компьюте-
ров. Но появление новых компьютеров определяет появление новых операционных систем.
В 1975 году Г. Килдэл разработал операционную систему СР/М, которая долгое време считалась наиболее универсальной, а её различные версии использовались в 1992 году более чем миллионом пользователей в мире.
Чуть позже Т. Петерсон написал ОС SCP86DOS для микропроцессора 8086. Он слегка усовершенствовал распространенную в то время систему СР/М и назвал свое произведение QDOS — Quick and Diftu Operation System, что можно приблизительно перевести как «операционная система на скорую руку».
В 1980 году фирма IBM приступила к выпуску персональных компьютеров, рассчитанных на пользователей, не подготовленных в области информатики. Предоставить ОС вызвался Билл Гейтс, президент малоизвестной в то время компании Microsoft. Фирма Microsoft купила у Т. Петерсо-на лицензию на QDOS, отбросила в сокращении первую букву Q, а то, что осталось, переименовала в MS DOS (MicroSoft Disk Operating System — дисковая ОС). Операционная система DOS превратилась в стандартное программное обеспечение, а доходы от её продажи заложили основу финансового могущества Microsoft.
К числу основных характеристик операционных систещ относятся:
• разрядность;
• поддержка многопроцессорности;
• многозадачность;
• работа в реальном (все программы и данные располагаются в одной области ОП) или защищенном (программы и данные хранятся раздельно в соответствии с их важностью в системе) режиме;
• поддержка многопользовательского режима;
• переносимость, то есть возможность работать на компьютерах, базирующихся на различных центральных процессорах.
Приведем характеристики некоторых ОС.
СР/М — 8-разрядная, однопользовательская, однопроцессорная ОС. Предоставляет пользователю лишь самый необходимый набор средств для управления ресурсами ПЭВМ, доступа к файловым системам и организации диалога.
MS DOS — 16-разрядная, однопользовательская, однопроцессорная ОС, позволяющая работать только в реальном режиме.
Windows NT — 32-разрядная, многопользовательская, многозадачная, переносимая, многопроцессорная ОС, работающая в защищенном режиме. Имеет встроенные сетевые возможности.
OS/2 — 32-разрядная, многопользовательская, многозадачная ОС, предназначенная для работы с процессорами семейства Intel. Работает в защищенном режиме, имеет встроенные сетевые возможности.
UNIX — 32-разрядная, многопользовательская, многозадачная, переносимая ОС, располагающая встроенными сетевыми возможностями. Ориентирована на эффективную поддержку разработки программного обеспечения. Имеет развитую файловую систему, мощный командный язык, обеспечивает программирование доступа ко всем типам внешних устройств. Реализована для различных аппаратных платформ. Некоторые разновидности этой ОС: LINUX (Intel), AIX (IBM), A/UX (Macintosh), ULTRIX (DEC).