Операционная система (ОС) [operating system] – это комплекс программ, обеспечивающий управление ресурсами ЭВМ и процессами, которые используют эти ресурсы при вычислениях. Процесс – это последовательность действий, предписанных программой. Ресурс – это любой логический или аппаратный компонент ЭВМ. Основными ресурсами являются процессорное время и оперативная память. Ресурсы могут принадлежать одной или нескольким внешним ЭВМ, к которым операционная система обращается, используя вычислительную сеть.
Управление ресурсом состоит из двух функций: упрощение доступа к ресурсу и распределение ресурсов между конкурирующими за них процессами. Для решения первой задачи операционные системы поддерживают пользовательский и программный интерфейсы. Для решения второй операционные системы используют различные алгоритмы управления виртуальной памятью и процессором.
Операционные системы характеризуются основными признаками:
· количеством пользователей, одновременно обслуживаемых системой (однопользовательские и многопользовательские);
· числом одновременно выполняемых процессов (однозадачные и многозадачные);
· типом используемой вычислительной системы (однопроцессорные, многопроцессорные, сетевые, распределённые).
Пример. Операционная система Windows98 является многозадачной, ОС Linux – многопользовательской, MS-DOS однозадачной и, следовательно, однопользовательской. Операционные системы Windows NT и Linux могут поддерживать многопроцессорные ЭВМ. Операционная система Novell NetWare является сетевой, встроенные сетевые средства имеют также Windows NT и Linux.
Пользовательский и программный интерфейсы. Для упрощения доступа к ресурсам ЭВМ операционные системы поддерживают пользовательский и программный интерфейсы. Пользовательский интерфейс [user interface] – это набор команд и сервисных услуг, которые упрощают пользователю работу с ЭВМ. Программный интерфейс [program interface] – это набор процедур, которые упрощают для программиста управление ЭВМ.
|
Рис. 1. Интерфейсы операционной системы
Пример. ОС Windows предоставляет пользователю графический интерфейс, который представляет собой (с точки зрения пользователя) набор правил для наглядного управления ЭВМ. Кроме основного графического интерфейса пользователю предоставляется также командный интерфейс, то есть набор команд определённого формата. Для этого в системном меню имеется пункт «Выполнить». Набор системных функций в Windows носит название API (Application Programming Interface). В этом наборе имеются более тысячи процедур для решения разных системных задач. В операционной системе Linux также имеются две возможности для управления ЭВМ, но, как правило, предпочтение отдаётся командам.
Процессорное время и организация памяти. Для организации многозадачного режима ОС должна некоторым образом распределять время работы процессора между одновременно работающими программами. Обычно используется так называемый вытесняющий режим многозадачной работы. При вытесняющем режиме каждая программа непрерывно работает в течение строго определённого промежутка времени (кванта времени), по истечении которого процессор переключается на другую программу. Так как квант времени очень небольшой, то при достаточной производительности процессора создаётся иллюзия одновременной работы всех программ.
|
Одной из главных задач операционной системы является управление памятью. Когда основной памяти не хватает, все данные, которые не используются в данный момент, записываются в особый файл подкачки. Память, представленная файлом подкачки, называется внешней страничной памятью [external page storage]. Совокупность основной и внешней страничной памяти называется виртуальной памятью [virtual memory]. Однако для программиста виртуальная память выглядит как единое целое, то есть рассматривается как неупорядоченный набор байтов. В этом случае говорят, что используется линейная адресация памяти.
Пример. Операционные системы Windows и Linux используют линейную адресацию виртуальной памяти. В операционной системе MS-DOS использовалась нелинейная адресация основной памяти. Основная память имела сложную структуру, которую приходилось учитывать при программировании. Файлы подкачки системой MS-DOS не поддерживались.
Структура операционной системы. Современные ОС, как правило, имеют многоуровневое строение. Непосредственно с аппаратурой работает ядро операционной системы. Ядро [kernel] – это программа или совокупность связанных программ, которые используют аппаратные особенности ЭВМ. Таким образом, ядро является машинно-зависимой частью операционной системы. Ядро определяет программный интерфейс. На втором уровне находятся стандартные программы операционной системы и оболочка, которые работают с ядром и предоставляют пользовательский интерфейс. Программы второго уровня стараются делать машинно-независимыми. В идеале замена ядра равнозначна замене версии операционной системы.
|
Рис. 2. Уровни операционной системы Linux
Файловая система. Любые данные хранятся во внешней памяти ЭВМ в виде файлов. Файлами нужно управлять: создавать, удалять, копировать, изменять и др. Такие средства пользователю в виде пользовательского и программного интерфейсов предоставляет ОС. Способ организации файлов и управления ими называется файловой системой [file system]. Файловая система определяет, например, какие символы могут использоваться для имени файла, каков максимальный размер файла, каково имя корневого каталога и др. Способ организации файлов влияет на скорость доступа к нужному файлу, на безопасность хранения файлов и др.
Одна и та же ОС может работать одновременно с несколькими файловыми системами. Как правило, функции файловой системы реализуются средствами ядра операционной системы.
Пример. Для ПЭВМ используется несколько видов файловых систем:
FAT16 [File Allocation Table] – используется в ОС Windows95, OS\2, MS-DOS;
FAT32 и VFAT [Virtual FAT] – используется в ОС Windows95;
NTFS [NT File System] – используется в ОС Windows NT;
HPFS [High Performance File System] – используется в ОС OS\2;
Linux Native, Linux Swap – используются в ОС Linux.
Файловая система FAT наиболее просто устроена. Имя корневого каталога имеет всегда вид: А:\, В:\, С:\ и т.д. Имя файла состоит из трёх частей: путь, собственно имя, расширение. Путь [path] – это имя каталога, в котором файл расположен. Расширение [extension] указывает на тип файла. Например, полное имя файла C:\Windows\System\gdi.exe, путь - C:\Windows\System\, расширение – exe, собственно имя - gdi. Согласно правилам FAT собственно имя файла может содержать от 1 до 8 символов, а расширение имени, отделяемое от имени точкой – до 3-х. При именовании файлов прописные и строчные буквы не различаются. Полное имя файла включает в себя наименование логического устройства, на котором находится файл и имя каталога, в котором файл расположен. Система хранит информацию о размере файла и дате его создания.
По организации данных VFAT напоминает FAT. Однако она позволяет использовать длинные имена файлов: имена до 255 символов, полные имена до 260. Система позволяет хранить также дату последнего доступа к файлу, что создаёт дополнительные возможности для борьбы с вирусами.
Файловая система может быть реализована в виде драйвера, с которым через операционную систему общаются все программы, читающие или записывающие информацию на внешние устройства. Файловая система может включать в себя средства безопасности хранения информации. Например, файловая система NTFS имеет средства автоматического исправления ошибок и замены дефектных секторов. Специальный механизм отслеживает и фиксирует все действия, выполняемые над магнитными дисками, поэтому в случае сбоя целостность информации восстанавливается автоматически. Кроме этого, файловая система может иметь средства защиты информации от несанкционированного доступа.
Модель «клиент-сервер». Важной особенностью современных операционных систем является то, что в основу взаимодействия прикладной программы и ОС заложена модель «клиент-сервер». Все обращения пользовательской программы (клиента) к ОС обрабатываются специальной программой (сервером). При этом используется механизм, аналогичный вызову удаленной процедуры, что позволяет легко перейти от взаимодействия между процессами в пределах одной ЭВМ к распределенной системе.
Технология «plug and play». Под технологией «plug and play» (PnP-технология) понимается способ взаимодействия между ОС и внешними устройствами. Операционная система проводит опрос всех периферийных устройств и должна получить от каждого устройства определённый ответ, из которого можно определить, какое устройство подключено и какой драйвер требуется для его нормальной работы. Цель использования данной технологии заключается в упрощении подключения новых внешних устройств. Пользователь должен быть избавлен от сложной работы по настройке внешнего устройства, требующей высокой квалификации.
Сервисные системы – программный продукт, изменяющий и дополняющий пользовательский и программный интерфейсы ОС. Сервисные системы различаются на операционные среды, оболочки и утилиты.
Операционная среда – система, изменяющая и дополняющая как пользовательский, так и программный интерфейс. Операционная среда создаёт для пользователя и прикладных программ иллюзию работы в полноценной ОС. Появление операционной среды обычно означает, что используемая операционная система не полностью удовлетворяет требованиям практики.
Рис. 3. Роль операционной среды
Защита информации – это очень большая проблема. В рамках работы ОС под защитой информации подразумевается в основном обеспечение целостности информации и защита от несанкционированного доступа. Обеспечение целостности возлагается в основном на файловую систему, а защита от несанкционированного доступа – на ядро. Обычным механизмом такой защиты является использование паролей и уровней привилегий. Для каждого пользователя определяются границы доступа к файлам и приоритетность его программ. Наивысший приоритет имеет системный администратор.
Сетевые средства и распределённые системы. Составной частью современных ОС являются средства, которые позволяют связываться через вычислительную сеть с приложениями, работающими на других ЭВМ. Для этого ОС решает в основном две задачи: обеспечение доступа к файлам на удалённых ЭВМ и возможность запуска программы на удалённой ЭВМ.
Первая задача наиболее естественно решается с помощью использования так называемой сетевой файловой системы [network file system - NFS], которая организует работу пользователя с удалёнными файлами так, как будто эти файлы находятся на магнитном диске самого пользователя.
Вторая задача решается с помощью механизма вызова удалённой процедуры [remote procedure call — RPC], который реализуется средствами ядра и также скрывает от пользователя разницу между локальными и удалёнными программами.
Наличие средств для управления ресурсами удалённых ЭВМ, является основой для создания распределённых вычислительных систем. Распределённая вычислительная система [distributed computer system] – это совокупность нескольких связанных ЭВМ, работающих независимо, но выполняющих общее задание. Такую систему можно рассматривать как многопроцессорную.
Оболочка [shell] – система, изменяющая пользовательский интерфейс. Оболочка создаёт для пользователя интерфейс, отличный от такового самой операционной системы. Задача оболочки – упрощение некоторых общеупотребительных действий с операционной системой. Однако оболочка не заменит ОС, и потому пользователь-профессионал должен изучать также командный интерфейс самой ОС.
Утилиты [utilities] имеют узкоспециализированное назначение и выполняют каждая свою функцию. Утилиты выполняются в среде соответствующих оболочек и предоставляют пользователям дополнительные услуги (в основном по обслуживанию дисков и файлов). Чаще всего это:
• обслуживание дисков (форматирование, обеспечение сохранности информации, возможности ее восстановления в случае сбоя и т. д.);
• обслуживание файлов и каталогов (поиск, просмотр и т.д.);
• создание и обновление архивов;
• предоставление информации о ресурсах компьютера, о занятости дискового пространства, о распределении оперативной памяти между программами;
• печать текстовых и других файлов в различных режимах и форматах;
• защита от компьютерных вирусов.
Рис. 4. Роль оболочки ОС
Инструментальные системы – это программный продукт, обеспечивающий разработку информационно-программного обеспечения. К инструментальным системам относятся: системы программирования, системы быстрой разработки приложений и системы управления базами данных (СУБД).
Система программирования предназначена для разработки прикладных программ с помощью некоторого языка программирования. В её состав включаются:
· компилятор и/или интерпретатор;
· редактор связей;
· среда разработки;
· библиотека стандартных подпрограмм;
· документация.
Компилятор [compiler] – это программа, выполняющая преобразование исходной программы в объектный модуль, то есть файл, состоящий из машинных команд. Интерпретатор [interpreter] – программа, непосредственно выполняющая инструкции языка программирования.
Редактор связей [linker] – это программа, которая собирает несколько объектных файлов в один исполняемый файл.
Интегрированная среда разработки [integrated development environment - IDE] – совокупность программ, включающая в себя текстовый редактор, средства управления файлами программного проекта, отладчик [debugger] программ, которая автоматизирует весь процесс разработки программ.
Библиотека стандартных подпрограмм [standard library] – набор объектных модулей, организованных в специальные файлы, которые предоставляются производителем системы программирования. В таких библиотеках имеются обычно подпрограммы ввода-вывода текста, стандартные математические функции, программы управления файлами. Объектные модули из стандартной библиотеки обычно автоматически подключаются редактором связей к пользовательским объектным модулям.
Рис. 5. Этапы разработки программ
Системы быстрой разработки приложений [rapid application development - RAD] представляют собой развитие обычных систем программирования. В RAD-системах во многом автоматизирован сам процесс программирования. Программист не пишет сам текст программы, а с помощью некоторых наглядных манипуляций указывает системе, какие задачи должны выполняться программой. После чего RAD-система сама генерирует текст программы.
Система управления базами данных — это универсальное программное средство, предназначенное для организации хранения и обработки логически взаимосвязанных данных и обеспечения быстрого доступа к ним. Одной из важных возможностей ЭВМ является хранение и обработка больших объемов информации, причем на современных компьютерах происходит накопление не только текстовых и графических документов (рисунки, чертежи, фотографии, географические карты), но и Web-страниц глобальной сети Internet, звуковых и видео файлов. Создание баз данных обеспечивает интеграцию данных и возможность централизованного управления ими. В базы данных собирается информация, организованная по определённым правилам, которые предусматривают общие принципы описания, хранения и манипулирования данными, для того, чтобы с ними могли работать различные пользователи и программы.
СУБД дают возможность программистам и системным аналитикам быстро разрабатывать более совершенные программные средства обработки данных, а конечным пользователям осуществлять непосредственное управление данными. СУБД должна обеспечивать пользователю поиск, модификацию и сохранность данных, оперативный доступ, защиту целостности данных от аппаратных сбоев и программных ошибок, разграничение прав и защиту от несанкционированного доступа, поддержку совместной работы нескольких пользователей с данными. Существуют универсальные системы управления базами данных, используемые для различных приложений. При настройке универсальных СУБД для конкретных приложений они должны обладать соответствующими средствами. Процесс настройки СУБД на конкретную область применения называется генерацией системы. К универсальным СУБД относятся, например системы Microsoft Access, Microsoft Visual FoxPro, Borland dBase, Borland Paradox, Oracle.
Телекоммуникационные технологии обработки данных. Важной особенностью многих ОС является способность их взаимодействия друг с другом, посредством сети, что позволяет компьютерам взаимодействовать друг с другом, как в рамках локальных вычислительных сетей (ЛВС), так и в глобальной сети Интернет.
Современные операционные системы, как вновь создаваемые, так и обновленные версии существующих, поддерживают полный набор протоколов для работы в локальных и глобальных компьютерных сетях. На данный момент мировая компьютерная индустрия развивается очень стремительно. Производительность систем возрастает, а следовательно возрастают возможности обработки больших объёмов данных. Операционные системы класса MS-DOS уже не справляются с таким потоком данных и не могут целиком использовать ресурсы современных компьютеров. Поэтому она больше нигде широко не используется. Все стараются перейти на более совершенные ОС, какими являются Unix, Windows, Linux или Mac OS.
Если дать определение ОС словами пользователя, то операционную систему можно называть самой главной программой, которая загружается первой при включении компьютера и благодаря которой становится возможным общение между компьютером и человеком. Задача ОС — обеспечить удобство работы с компьютером для человека-пользователя. ОС управляет всеми подключенными к компьютеру устройствами, обеспечивая доступ к ним другим программам. Кроме того, ОС — это своего рода буфер-передатчик между компьютерным железом и остальными программами, она принимает на себя сигналы-команды, которые посылают другие программы, и «переводит» их на понятный машине язык.
Получается, что каждая ОС состоит как минимум из трех обязательных частей:
Первая — ядро, командный интерпретатор, «переводчик» с программного языка на «железный», язык машинных кодов.
Вторая — специализированные программки для управления различными устройствами, входящими в состав компьютера. Такие программки называются драйверами — т. е. «водителями», управляющими. Сюда же относятся так называемые «системные библиотеки», используемые как самой операционной системой, так и входящими в ее состав программами.
И, наконец, третья часть — удобная оболочка, с которой общается пользователь — интерфейс. Своего рода красивая обертка, в которую упаковано скучное и не интересное для пользователя ядро. Сравнение с упаковкой удачно еще и потому, что именно на нее обращают внимание при выборе операционной системы, — о ядре же, главной части ОС, вспоминают уже потом. Поэтому такая нестабильная и ненадежная с точки зрения ядра ОС, как Windows 98/ME, и пользовалась таким сногсшибательным успехом — благодаря красивой обертке-интерфейсу.
Сегодня графический интерфейс — неизменный атрибут любой операционной системы, будь то Windows XP, Windows NT или Mac OS (операционная система для компьютеров Apple Macintosh). Операционные системы первых поколений имели не графический, а текстовый интерфейс, т. е. команды компьютеру отдавались не щелчком мышки по рисунку-пиктограмме, а с помощью введения команд с клавиатуры. Например, сегодня для запуска программы редактирования текстов Microsoft Word достаточно щелкнуть по значку этой программы на Рабочем Столе Windows. А раньше, при работе в ОС предыдущего поколения — DOS, необходимо было вводить команду типа
C:\WORD\word.exe mybook.doc.
ОС классифицируются по:
· количеству одновременно работающих пользователей: однопользовательские (предназначенные для обслуживания одного клиента) и многопользовательские (рассчитанные на работу с группой пользователей одновременно за различными терминалами). Примером первой может служить Windows 95/98, а второй — Windows NT. Для домашнего использования вам понадобится однопользовательская ОС, а для локальной сети офиса или предприятия нужна многопользовательская ОС;
· числу процессов, одновременно выполняемых под управлением системы: однозадачные, многозадачные. Однозадачные операционные системы (DOS) могут выполнять в одно и то же время не более одной задачи, а многозадачные ОС способны поддерживать параллельное выполнение нескольких программ, существующих в рамках одной вычислительной системы, деля между ними мощность компьютера. Например, пользователь может вводить текст в документ Word, слушая музыку с любимого компакт-диска, а компьютер в это же время будет копировать файл из Интернет. В принципе число задач, которое может выполнять ваша ОС, не ограничено ничем, кроме мощности процессора и емкости оперативной памяти;
· количеству поддерживаемых процессоров: однопроцессорные, многопроцессорные (поддерживают режим распределения ресурсов нескольких процессоров для решения той или иной задачи);
· разрядности кода операционной системы:
Ø 16-разрядные (DOS, Windows 3.1),
Ø 32-разрядные (Windows 95 - Windows XP),
Ø 64-разрядные (Windows Vista);
Разрядность ОС не может превышать разрядности процессора;
· типу интерфейса: командные (текстовые) и объектно-ориентированные
(как, правило, графические);
· типу доступа пользователя к ЭВМ:
Ø с пакетной обработкой - из программ, подлежащих выполнению, формируется пакет заданий, вводимых в ЭВМ и выполняемых в порядке очередности с возможным учетом приоритетности),
Ø с разделением времени - обеспечивается одновременный диалоговый (интерактивный) режим доступа к ЭВМ нескольких пользователей на разных терминалах, которым по очереди выделяются ресурсы машины, что координируется ОС в соответствии с заданной дисциплиной обслуживания),
Ø реального времени - обеспечивают определенное гарантированное время ответа машины на запрос пользователя с управлением им какими-либо внешними по отношению к ЭВМ событиями, процессами или объектами. ОС РВ в основном применяется в автоматизации таких областей, как добыча и транспортировка нефти и газа, управление технологическими процессами в металлургии и машиностроении, управление химическими процессами, водоснабжение, энергетика, управление роботами. Из них выгодно выделяется ОС РВ QNX своим полным набором инструментальных средств, к которым пользователь привык, работая с ОС семейства UNIX.
· типу использования ресурсов: сетевые, локальные. Сетевые ОС предназначены для управления ресурсами компьютеров, объединенных в сеть с целью совместного использования данных, и предоставляют мощные средства разграничения доступа к данным в рамках обеспечения их целостности и сохранности, а также множество сервисных возможностей по использованию сетевых ресурсов. В большинстве случаев сетевые ОС устанавливаются на один или более достаточно мощных компьютеров-серверов, выделяемых исключительно для обслуживания сети и совместно используемых ресурсов. Все остальные ОС будут считаться локальными и могут использоваться на любом персональном компьютере, подключенном к сети в качестве рабочей станции или клиента.
Наконец, еще деление — специализация, предназначение той или иной ОС. Ведь что бы там ни говорили отдельные руководители отдельной программной корпорации, универсальных операционных систем не существует. Одна более пригодна для работы в сети, другую выберут программисты, третью — домашние пользователи. Как показывает практика, знания одной ОС в наше время отнюдь не достаточно. В своей профессиональной работе вам наверняка придется столкнуться не только с Windows, но и с другими ОС — и готовиться к этому надо заранее.
Машинно-зависимыми свойствами ОС являются:
· обработка прерываний;
· планирование процессов;
· управление вводом-выводом;
· управление реальной памятью;
· управление виртуальной памятью.
Машинно-независимыми свойствами ОС являются:
· работа с файлами;
· способы планирования заданий пользователей;
· организация параллельной работы программ;
· распределение ресурсов;
· защита.
Основные критерии подхода при выборе операционной системы. Имеется большое количество ОС и пользователь должен определить, какая ОС лучше других (по тем или иным критериям). Чтобы выбрать ту или иную ОС, необходимо знать:
· на каких аппаратных платформах и с какой скоростью работает ОС;
· какое периферийное аппаратное обеспечение ОС поддерживает;
· как полно удовлетворяет ОС потребности пользователя, т.е. каковы функции системы;
· каков способ взаимодействия ОС с пользователем, т.е. насколько нагляден, удобен, понятен и привычен пользователю интерфейс;
· существуют ли информативные подсказки, встроенные справочники и т.д.;
· какова надежность системы, т.е. ее устойчивость к ошибкам пользователя, отказам оборудования и т.д.;
· какие возможности предоставляет ОС для организации сетей;
· обеспечивает ли ОС совместимость с другими ОС;
· какие инструментальные средства имеет ОС для разработки прикладных программ;
· осуществляется ли в ОС поддержка различных национальных языков;
· какие известные пакеты прикладных программ можно использовать при работе с данной системой;
· как осуществляется в ОС защита информации и самой системы.