Охарактеризовать и перечислить операционные системы. Характеристики операционной системы

Существует несколько видов операционных систем: DOS, Windows, UNIX, Macintosh OS, Linux. У других современных ОС, например Linux, UNIX, OS/2, имеют свои преимущества и недостатки. Linux предоставляет наиболее совершенную защиту, чем Windows, и имеет более продуманный интерфейс; UNIX применяется там, где требуется высокая надежность систем. Большим недостатком OS/2 и UNIX является довольно скудный выбор программных средств, и здесь Windows выигрывает у остальных операционных систем.

Наиболее распространенной является операционная система Windows. Существует несколько версий Windows: Windows-3.1, Windows-95, Windows-98, Windows-2000, Windows NT. Все они близки между собой по содержанию. По-этому рассмотрим такие ОС как DOS и Windows-95.

MS-DOS - одна из первых операционных систем и одна из самых известных. Пик популярности этой операционной системы приходится на 90-е годы, сейчас эта операционная система используется редко. Наибольшей популярностью в мире на данный момент пользуются операционные системы фирмы Microsoft. Их доля составляет около 90% среди всех операционных систем. Наиболее устойчивые системы этой фирмы основаны на технологии NT.

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

Операционная система DOS состоит из следующих частей:

1) Базовая система ввода-вывода (ВIOS), находящаяся в постоянной памяти (постоянном запоминающем устройстве, ПЗУ) компьютера. Эта часть операционной системы является «встроенной» в компьютер. Ее назначение состоит в выполнении наиболее простых и универсальных услуг операционной системы, связанных с осуществлением ввода-вывода. Базовая система ввода-вывода содержит также тест функционирования компьютера, проверяющий работу памяти и устройств компьютера при включении его электропитания. Кроме того, базовая система ввода-вывода содержит программу вызова загрузчика операционной системы.

2) Загрузчик операционной системы - это очень короткая программа, находящаяся в первом секторе каждой дискеты с операционной системой DOS. Функция этой программы заключается в считывании в память еще двух модулей операционной системы, которые и завершают процесс загрузки DOS.

3) Командный процессор DOS обрабатывает команды, вводимые пользователем. Командный процессор находится в дисковом файле! COMMAND.COM на диске, с которого загружается операционная система. Некоторые команды пользователя, например Туре, Dir или Сор) командный процессор выполняет сам. Такие команды называются внутренними. Для выполнения остальных (внешних) команд пользователя командный процессор ищет на дисках программу с соответствующим именем и если находит ее, то загружает в память и передает ей управление. По окончании работы программы командный процессор удаляет программу из памяти и выводит сообщение о готовности к выполнению команд (приглашение DOS).

Внешние команды DOS - это программы, поставляемые вместе с операционной системой в виде отдельных файлов. Эти программы выполняют действия обслуживающего характера, например форматирование дискет, проверку дисков и т.д.

Драйверы устройств - это специальные программы, которые дополняют систему ввода-вывода DOS и обеспечивают обслуживание новых или нестандартное использование имеющихся устройств. Например, с помощью драйверов возможна работа с «электронным диском» т.е. частью памяти компьютера, с которой можно работать так же, как с диском. Драйверы загружаются в память компьютера при загрузке операционной системы, их имена указываются в специальном файл CONFIG.SYS. Такая схема облегчает добавление новых устройств позволяет делать это, не затрагивая системные файлы DOS.

Window-95 превратились из графической надстройки для DOS в полноценную операционную систему. По крайней мере, так заявляли ее разработчики. На самом же деле все было сложнее: в качестве основы в Windows-95 по-прежнему использовалась добрая старая DOS. Чуть модернизированная, конечно, и не заявленная в качестве отдельного продукта. Впрочем, большинство потребителей такой вариант устраивал. Ведь у них оставалась возможность работать в привычном DOS-режиме, не загружая графическую оболочку Windows, и, следовательно, не расставаться с привычными DOS-программами.

Так же операционная система Window-95 сталf 32-разрядной. Все предыдущие версии DOS и Windows были 16-разрядными и, стало быть, не могли в полной мере использовать возможности даже процессоров семейства 386 и уж тем более новых процессоров Pentium. Конечно, в этом достоинстве крылись и некоторые неудобства. Специально под Windows пользователям пришлось заменять все свои Windows-программы на новые 32-разрядные версии. Однако на практике переход оказался сравнительно легким. Уже в течение года были выпущены новые версии всех популярных программных продуктов. Но и старые 16-разрядные версии могли работать с новой ОС без всяких проблем.

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

  • Архитектура микроядра.
  • Многопоточность.
  • Симметричная многопроцессорность.
  • Распределенные операционные системы.
  • Объектно-ориентированный дизайн.

Отличительной особенностью большинства операционных систем на сегодняшний день является большое монолитное ядро. Ядро операционной системы обеспечивает большинство ее возможностей, включая планирование, работу с файловой системой, сетевые функции, работу драйверов различных устройств, управление памятью и многие другие. Обычно монолитное ядро реализуется как единый процесс, все элементы которого используют одно и то же адресное пространство. В архитектуре микроядра ядру отводится лишь несколько самых важных функций, в число которых входят работа с адресными пространствами, обеспечение взаимодействия между процессами (interprocess communication - IPC) и основное планирование. Работу других сервисов операционной системы обеспечивают процессы, которые иногда называют серверами. Эти процессы запускаются в пользовательском режиме и микроядро работает с ними так же, как и с другими приложениями.

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

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

Многопоточность (multithreading) - это технология, при которой процесс, выполняющий приложение, разделяется на несколько одновременно выполняемых потоков. Ниже приведены основные различия между потоком и процессом.

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

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

Для повышения эффективности и надежности используется технология симметричной многопроцессорности (symmetric multiprocessing - SMP).

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

  1. В системе имеется несколько процессоров.
  2. Эти процессоры, соединенные между собой коммуникационной шиной или какой-нибудь другой схемой, совместно используют одну и ту же основную память и одни и те же устройства ввода-вывода.
  3. Все процессоры могут выполнять одни и те же функции (отсюда название симметричная обработка).

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

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

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

Наращивание. Добавляя в систему дополнительные процессоры, пользователь может повысить ее производительность.

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

Заблокирован
- Выполняется
Рис. 2.12. Многозадачность и многопроцессорность

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

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

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

Операционная система (ОС) – это комплекс программ, обеспечивающий управление ресурсами ЭВМ и процессами, которые используют эти ресурсы при вычислениях. Процесс – это последовательность действий, предписанных программой. Ресурс – это любой логический или аппаратный компонент ЭВМ. Основными ресурсами являются процессорное время и оперативная память. Ресурсы могут принадлежать одной или нескольким внешним ЭВМ, к которым операционная система обращается, используя вычислительную сеть.

Управление ресурсом состоит из двух функций: упрощение доступа к ресурсу и распределение ресурсов между конкурирующими за них процессами. Для решения первой задачи операционные системы поддерживают пользовательский и программный интерфейсы . Для решения второй операционные системы используют различные алгоритмы управления виртуальной памятью и процессором.

Операционные системы характеризуются основными признаками:

· количеством пользователей, одновременно обслуживаемых системой (однопользовательские и многопользовательские);

· числом одновременно выполняемых процессов (однозадачные и многозадачные);

· типом используемой вычислительной системы (однопроцессорные, многопроцессорные, сетевые, распределённые).

Пример. Операционная система Windows98 является многозадачной, ОС Linux – многопользовательской, MS-DOS однозадачной и, следовательно, однопользовательской. Операционные системы Windows NT и Linux могут поддерживать многопроцессорные ЭВМ. Операционная система Novell NetWare является сетевой, встроенные сетевые средства имеют также Windows NT и Linux.

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


Рис. 1. Интерфейсы операционной системы

Пример. ОС Windows предоставляет пользователю графический интерфейс, который представляет собой (с точки зрения пользователя) набор правил для наглядного управления ЭВМ. Кроме основного графического интерфейса пользователю предоставляется также командный интерфейс, то есть набор команд определённого формата. Для этого в системном меню имеется пункт «Выполнить». Набор системных функций в Windows носит название API (Application Programming Interface). В этом наборе имеются более тысячи процедур для решения разных системных задач. В операционной системе Linux также имеются две возможности для управления ЭВМ, но, как правило, предпочтение отдаётся командам.

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

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

Пример. Операционные системы Windows и Linux используют линейную адресацию виртуальной памяти. В операционной системе MS-DOS использовалась нелинейная адресация основной памяти. Основная память имела сложную структуру, которую приходилось учитывать при программировании. Файлы подкачки системой MS-DOS не поддерживались.

Структура операционной системы. Современные ОС, как правило, имеют многоуровневое строение. Непосредственно с аппаратурой работает ядро операционной системы. Ядро – это программа или совокупность связанных программ, которые используют аппаратные особенности ЭВМ. Таким образом, ядро является машинно-зависимой частью операционной системы. Ядро определяет программный интерфейс. На втором уровне находятся стандартные программы операционной системы и оболочка, которые работают с ядром и предоставляют пользовательский интерфейс. Программы второго уровня стараются делать машинно-независимыми. В идеале замена ядра равнозначна замене версии операционной системы.


Рис. 2. Уровни операционной системы Linux

Файловая система. Любые данные хранятся во внешней памяти ЭВМ в виде файлов. Файлами нужно управлять: создавать, удалять, копировать, изменять и др. Такие средства пользователю в виде пользовательского и программного интерфейсов предоставляет ОС. Способ организации файлов и управления ими называется файловой системой . Файловая система определяет, например, какие символы могут использоваться для имени файла, каков максимальный размер файла, каково имя корневого каталога и др. Способ организации файлов влияет на скорость доступа к нужному файлу, на безопасность хранения файлов и др.

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

Пример. Для ПЭВМ используется несколько видов файловых систем:

FAT16 – используется в ОС Windows95, OS\2, MS-DOS;

FAT32 и VFAT – используется в ОС Windows95;

NTFS – используется в ОС Windows NT;

HPFS – используется в ОС OS\2;

Linux Native, Linux Swap – используются в ОС Linux.

Файловая система FAT наиболее просто устроена. Имя корневого каталога имеет всегда вид: А:\, В:\, С:\ и т.д. Имя файла состоит из трёх частей: путь, собственно имя, расширение. Путь – это имя каталога, в котором файл расположен. Расширение указывает на тип файла. Например, полное имя файла 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. Роль операционной среды

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

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

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

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

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

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

Утилиты имеют узкоспециализированное назначение и выполняют каждая свою функцию. Утилиты выполняются в среде соответствующих оболочек и предоставляют пользователям дополнительные услуги (в основном по обслуживанию дисков и файлов). Чаще всего это:

Обслуживание дисков (форматирование, обеспечение сохранности информации, возможности ее восстановления в случае сбоя и т. д.);

Обслуживание файлов и каталогов (поиск, просмотр и т.д.);

Создание и обновление архивов;

Предоставление информации о ресурсах компьютера, о занятости дискового пространства, о распределении оперативной памяти между программами;

Печать текстовых и других файлов в различных режимах и форматах;

Защита от компьютерных вирусов.



Рис. 4. Роль оболочки ОС

Инструментальные системы – это программный продукт, обеспечивающий разработку информационно-программного обеспечения. К инструментальным системам относятся: системы программирования, системы быстрой разработки приложений и системы управления базами данных (СУБД).

Система программирования предназначена для разработки прикладных программ с помощью некоторого языка программирования. В её состав включаются:

· компилятор и/или интерпретатор;

· редактор связей;

· среда разработки;

· библиотека стандартных подпрограмм;

· документация.

Компилятор – это программа, выполняющая преобразование исходной программы в объектный модуль, то есть файл, состоящий из машинных команд. Интерпретатор – программа, непосредственно выполняющая инструкции языка программирования.

Редактор связей – это программа, которая собирает несколько объектных файлов в один исполняемый файл.

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

Библиотека стандартных подпрограмм – набор объектных модулей, организованных в специальные файлы, которые предоставляются производителем системы программирования. В таких библиотеках имеются обычно подпрограммы ввода-вывода текста, стандартные математические функции, программы управления файлами. Объектные модули из стандартной библиотеки обычно автоматически подключаются редактором связей к пользовательским объектным модулям.



Рис. 5. Этапы разработки программ

Системы быстрой разработки приложений представляют собой развитие обычных систем программирования. В 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, но и с другими ОС - и готовиться к этому надо заранее.

Машинно-зависимыми свойствами ОС являются:

· обработка прерываний;

· планирование процессов;

· управление вводом-выводом;

· управление реальной памятью;

· управление виртуальной памятью.

Машинно-независимыми свойствами ОС являются:

· работа с файлами;

· способы планирования заданий пользователей;

· организация параллельной работы программ;

· распределение ресурсов;

· защита.

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

· на каких аппаратных платформах и с какой скоростью работает ОС;

· какое периферийное аппаратное обеспечение ОС поддерживает;

· как полно удовлетворяет ОС потребности пользователя, т.е. каковы функции системы;

· каков способ взаимодействия ОС с пользователем, т.е. насколько нагляден, удобен, понятен и привычен пользователю интерфейс;

· существуют ли информативные подсказки, встроенные справочники и т.д.;

· какова надежность системы, т.е. ее устойчивость к ошибкам пользователя, отказам оборудования и т.д.;

· какие возможности предоставляет ОС для организации сетей;

· обеспечивает ли ОС совместимость с другими ОС;

· какие инструментальные средства имеет ОС для разработки прикладных программ;

· осуществляется ли в ОС поддержка различных национальных языков;

· какие известные пакеты прикладных программ можно использовать при работе с данной системой;

· как осуществляется в ОС защита информации и самой системы.

Сегодня огромная часть населения земли на постоянной основе взаимодействует с компьютерами, кого-то обязывает работа, кто-то ищет информацию в Сети, а кто-то просто проводит время в играх. У каждого свои потребности, а значит, компьютер должен им соответствовать. И если речь идет о “железе” (технической составляющей компьютера), то тут все более менее ясно: чем новее, тем лучше. Но вот “софтовая” (программное обеспечение) часть, требует особого внимания.

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

Существует достаточно массивный список операционных систем, но в данном материале речь пойдет о трех столпах, сильно повлиявших на индустрию и занимающих основную долю среди всех операционных систем: Windows, MacOS и Linux.

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

Для начала стоит уточнить, что есть ОС проприетарные, те, что распространяются по лицензии производителя. К таковым относятся Windows, список которых изложен ниже, и MacOS. Несмотря на то что обе системы можно загрузить в Сети (украсть), правильным будет приобрести лицензию у компании-распространителя и активировать ее.

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

“Свободные” операционные системы

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

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

Windows

Абсолютно все, кто хоть раз имел дело с компьютером, знают об этом продукте компании Microsoft. В частности это касается сверхуспешного релиза Windows 7. Список операционных систем Microsoft насчитывает уже десяток поколений. Они крайне популярны во всем мире и занимают почти 90% рынка. Что говорит о беспрецедентном лидерстве.

  • Windows XP;
  • Windows Vista;
  • Windows 7;
  • Windows 8;
  • Windows 10;

Список намеренно начинается с Windows XP, так как это самая старая версия, оставшаяся в употреблении до сегодняшнего дня.

Chrome OS

Слаборазвитый продукт от компании Google, который ограничен лишь веб-приложениями и одноименным браузером. Это система не является конкуретоспособной в сравнении с Windows и Mac, но сделана с прицелом на будущее, когда веб-интерфейсы смогут заменить “реальное” программное обеспечение. По умолчанию установлена на всех компьютерах Chromebook.

Установка нескольких систем и использование виртуальных машин

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

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

На компьютерах Apple имеется специальная утилита - BootCamp, которая разработана для простой и бесшовной установки Windows рядом с MacOS.

Существует и другой способ - установка виртуальной системы внутри реальной. Для этого используются программы: VmWare и VirtualBox, способные эмулировать работу полноценного компьютера и запускать операционные системы.

Вместо заключения

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

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

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

  • - Архитектура микроядра.
  • - Многопоточность.
  • - Симметричная многопроцессорность.
  • - Распределенные операционные системы.
  • - Объектно-ориентированный дизайн.

Отличительной особенностью большинства операционных систем на сегодняшний день является большое монолитное ядро. Ядро операционной системы обеспечивает большинство ее возможностей, включая планирование, работу с файловой системой, сетевые функции, работу драйверов различных устройств, управление памятью и многие другие. Обычно монолитное ядро реализуется как единый процесс, все элементы которого используют одно и то же адресное пространство. В архитектуре микроядра ядру отводится лишь несколько самых важных функций, в число которых входят работа с адресными пространствами, обеспечение взаимодействия между процессами (interprocesscommunication -- IPC) и основное планирование. Работу других сервисов операционной системы обеспечивают процессы, которые иногда называют серверами. Эти процессы запускаются в пользовательском режиме и микроядро работает с ними так же, как и с другими приложениями.

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

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

Многопоточность (multithreading) -- это технология, при которой процесс, выполняющий приложение, разделяется на несколько одновременно выполняемых потоков. Ниже приведены основные различия между потоком и процессом.

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

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

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

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

Для повышения эффективности и надежности используется технология симметричной многопроцессорности (symmetricmultiprocessing -- SMP).

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

  • - В системе имеется несколько процессоров.
  • - Эти процессоры, соединенные между собой коммуникационной шиной или какой-нибудь другой схемой, совместно используют одну и ту же основную память и одни и те же устройства ввода-вывода.
  • - Все процессоры могут выполнять одни и те же функции (отсюда название симметричная обработка).

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

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

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

Наращивание. Добавляя в систему дополнительные процессоры, пользователь может повысить ее производительность.

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

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

Рисунок 4 Многозадачность и многопроцессорность

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

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

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