Назначение, особенности и история развития операционных систем


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

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



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

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

2. 60-е годы. Важнейшим техническим событием этих лет было создание компанией IBM первого семейства универсальных ЭВМ широкого использования – семейства IBM/360. Для этого семейства было разработано несколько версий ОС с общим названием OS/360. В этих ОС были реализованы и впервые широко опробованы многие базовые идеи, используемые и до сих пор. Одной из таких концепций является многозадачность, когда в одной вычислительной системе предпринимается попытка одновременного выполнения нескольких программ. Поскольку разным программам в одно и то же время могут требоваться разные ресурсы, появляется возможность разумного распределения этих ресурсов с целью наиболее эффективной загрузки различных устройств. Это в целом уменьшает суммарное время выполнения набора задач, хотя время выполнения одной конкретной программы может возрасти. Реализация многозадачности потребовала решения ряда важнейших задач, среди которых надо отметить следующие:

  • переключение процессора с выполнения кода одной программы на код другой программы с возможностью возобновления в дальнейшем выполнения прерванного кода без каких-либо последствий;
  • защита кода и данных одной программы от случайного воздействия со стороны другой программы, поскольку разные программы совместно должны использовать одну и ту же основную память;
  • необходимость размещения в ограниченной основной памяти кода и данных нескольких программ, суммарный объем которых больше объема основной памяти, что привело к развитию идеи виртуальной памяти с вытеснением части кода и данных во внешнюю память;
  • разграничение доступа к процессору для системных и прикладных программ, что привело к появлению двух режимов работы процессора: в привилегированном режиме (режим ядра, режим супервизора) могут выполняться абсолютно все команды процессора, тогда как в пользовательском режиме выполнение некоторых команд запрещено;
  • синхронизация работы различных устройств на основе механизма прерываний.
3. 70-е годы характерны следующими моментами:

  • все более широкое распространение «в массах» мини-компьютеров, лидерами среди которых являлась компания DEC со своей серией машин марки PDP/VAX. Для них были созданы свои ОС, более простые по сравнению с OS/360, но обладающие, тем не менее, достаточно серьезными возможностями, включая поддержку многозадачного режима;
  • реализация многопользовательского режима работы, когда с одной вычислительной системой одновременно работает несколько пользователей со своих терминалов;
  • безусловно, важнейшим событием было создание ОС UNIX как основы мобильных ОС, легко переносимых на разные аппаратные платформы. Это свойство системы обеспечивалось написанием практически всего программного кода на языке высокого уровня С и наличием трансляторов с этого языка для всех основных типов процессоров. Исходный код системы UNIX открыто распространялся всем желающим, что сделало данную систему исключительно популярной в мире. Правда, эта популярность имеет и обратную сторону: было создано множество вариантов Unix-подобных систем, которые далеко не всегда могли быть совмещены друг с другом.
4. 80-е годы – это:

  • начало эры персональных компьютеров;
  • начало развития сетевых технологий.
Для ПК потребовалась очень простая и дешевая ОС, реализующая лишь самые необходимые функции для работы одного пользователя с одной-единственной программой в каждый момент времени. Конечно, по сравнению с мощными ОС для «больших» машин появление таких систем для ПК можно рассматривать как шаг назад, но при этом необходимо помнить об очень скромных вычислительных возможностях процессоров ПК тех лет. Поэтому ОС для ПК фактически реализовывали лишь функции управления файлами, простейший ввод/вывод данных, простейшее управление памятью и самый примитивный диалог с пользователем. Базовой ОС для ПК стала простая система DOS (Disk Operating System), созданная малоизвестной компанией Microsoft на основе системы CP/M, весьма популярной в то время на рынке микропроцессоров. Необходимо признать, что эта система свою роль сыграла, приобщив к компьютерам миллионы людей. К концу десятилетия развитие микроэлектронной базы позволило создать для ПК существенно более мощные ОС, приближающиеся по своим возможностям к ОС больших и средних ЭВМ. Пожалуй, одной из первых в этом семействе была система MacOS для ПК Macintosh фирмы Apple, которая еще в середине 80-х годов поддерживала графический оконный пользовательский интерфейс, что прежде всего объясняется использованием более мощного базового процессора фирмы Motorola. Для платформы Intel в конце 80-х совместно компаниями IBM и Microsoft была создана мощная многозадачная и многопользовательская система OS/2, которая, к сожалению, в настоящее время уже не поддерживается компанией IBM, не выдержав конкуренции с системой MS Windows.

Что касается сетевых технологий, то в эти годы наиболее полную свою реализацию они получили в составе различных версий системы Unix, таких как System V, BSD, SunOS/Solaris, IBM AIX. Все эти ОС были многопользовательскими и многозадачными, поддерживали иерархическую организацию файлов на дисках и механизм виртуальной памяти.

5. 90-е годы: следуя все еще действующему предсказанию Гордона Мура, вычислительные мощности процессоров ПК продолжали неуклонно расти, что дало возможность постепенно перейти от простейших ОС типа MS DOS к более мощным и удобным. С середины 90-х начинается «победоносное» распространение по миру ОС семейства Windows – от весьма слабой версии Windows 95 до вполне приличной для повседневной работы Windows МЕ (Millennium Edition). Кроме того, постепенно это семейство распространилось и на сектор сетевых ОС в виде «тяжеловесной» системы NT (т.е. New Technology) и ее более поздней реализации Windows 2000 (версии Professional, Server, Advanced Server, Datacenter). Реальную конкуренцию системам семейства MS Windows составляет лишь старая добрая система UNIX, которая в 90-е годы получила мощное подкрепление в виде своей разновидности Linux, первоначально созданной для процессоров Intel, но потом мигрировавшей и на другие платформы.

6. В первое десятилетие нового века ситуация на рынке ОС складывается следующим образом:

  • Компания Microsoft продолжает развивать свое семейство Windows как в пользовательском, так и серверном варианте. Для массового использования были последовательно выпущены версии XP, Vista и W7. Основные серверные версии – Server 2003 и Server 2008. Одной из важнейших особенностей последних версий является поддержка 64-разрядных процессоров.
  • Мировое сообщество совершенствует ОС Unix, прежде всего – Linux. Успех этой ОС объясняется ее неприхотливостью, надежностью и безопасностью, открытостью исходного кода с возможностью настройки его под свои требования. Наиболее известные версии Linux - это Ubuntu, Mandriva, ASP, OpenSUSE, Debian.
7. Наконец, в начале второго десятилетия наиболее знаковым явлением можно считать бурное развитие ОС для мобильных устройств (смартфонов, планшетов). «Зачинщиком» этого процесса выступили фирма Apple и ее главный идеолог Стив Джобс (увы, уже покинувший наш мир), выпустившие легендарную систему iOS. Основные конкуренты – это Google Android и MS Windows Phone.

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

  1. Универсальные пользовательские системы для массовых ПК, основное назначение которых – создание удобной среды для работы пользователя со множеством приложений в условиях непредсказуемой многозадачности. Здесь около 90% систем составляют ОС семейства Windows, хотя и наблюдается некоторое смещение в сторону Linux-систем.
  2. Серверные системы для управления работой корпоративных сетей с решением таких задач, как взаимодействие с клиентскими системами, управление пользователями с разграничением прав, обеспечение безопасности данных. В этом сегменте наблюдается примерно равное использование систем семейства Windows и систем на основе Unix/Linux.
  3. Системы для мобильных устройств с ограниченными возможностями.
  4. Специализированные системы для управления быстротекущими процессами, где главный критерий – скорость реакции (системы реального времени). Это требование приводит к тому, что внутренняя организация таких систем существенно отличается от универсальных. Наиболее известной ОС данного класса является система QNX.
В дальнейшем основное внимание уделено универсальным системам общего назначения, в качестве основных функций которых можно выделить следующие:

  • рациональное распределение физических и логических ресурсов между работающими приложениями;
  • предоставление разработчикам и приложениям широкого спектра системных функций уровня API (Application Program Interface, Интерфейс прикладного программирования);
  • поддержка сетевых взаимодействий на основе стандартов и протоколов;
  • обеспечение безопасности данных.
В свою очередь, первая функция включает в себя решение следующих задач:

  • распределение процессорного времени между работающими приложениями (управление процессами и потоками);
  • распределение ограниченной по объему основной памяти между выполняющимися программами (управление памятью);.
  • выделение приложениям необходимых внешних устройств и организация взаимодействия приложений с устройствами с обязательным контролем со стороны системы (управление устройствами);.
  • распределение внешней памяти и организация хранения информации с помощью файлов (управление файлами).
Автор этого материала - я - Пахолков Юрий. Я оказываю услуги по написанию программ на языках Java, C++, C# (а также консультирую по ним) и созданию сайтов. Работаю с сайтами на CMS OpenCart, WordPress, ModX и самописными. Кроме этого, работаю напрямую с JavaScript, PHP, CSS, HTML - то есть могу доработать ваш сайт или помочь с веб-программированием. Пишите сюда.

тегистатьи IT, теория программирования, история, операционные системы




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




Очередь в программировании алгоритмов
Программа "Ловим фокус"
Изготовление презентационных фильмов