Файл: Функции операционных систем персональных компьютеров.pdf

ВУЗ: Не указан

Категория: Курсовая работа

Дисциплина: Не указана

Добавлен: 28.06.2023

Просмотров: 66

Скачиваний: 2

ВНИМАНИЕ! Если данный файл нарушает Ваши авторские права, то обязательно сообщите нам.

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


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

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

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

3. 70-е годы характерны следующими моментами:

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

4. 80-е годы – это:

  • начало эры персональных компьютеров;
  • начало развития сетевых технологий.

Для ПК потребовалась очень простая и дешевая ОС, реализующая лишь самые необходимые функции для работы одного пользователя с одной-единственной программой в каждый момент времени. Конечно, по сравнению с мощными ОС для «больших» машин, появление таких систем для ПК можно рассматривать как шаг назад, но при этом необходимо помнить об очень скромных вычислительных возможностях процессоров ПК тех лет. Поэтому ОС для ПК фактически реализовывали лишь функции управления файлами, простейший ввод/вывод данных, простейшее управление памятью и самый примитивный диалог с пользователем. [15]

Базовой ОС для ПК стала простая система 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 WindowsPhone.

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

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

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

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

В свою очередь, первая функция включает в себя решение следующих задач:

  • распределение процессорного времени между работающими приложениями (управление процессами и потоками);
  • распределение ограниченной по объему основной памяти между выполняющимися программами (управление памятью);
  • выделение приложениям необходимых внешних устройств и организация взаимодействия приложений с устройствами с обязательным контролем со стороны системы (управление устройствами);
  • распределение внешней памяти и организация хранения информации с помощью файлов (управление файлами) [21]

1.3 Структура операционной системы

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

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

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

Такая организация ОС имеет как преимущества, так и недостатки. Важнейшими преимуществами являются: [5]

  • более надежная работа системы за счет защиты модулей ядра от сбоев в работе модулей надстройки;
  • простота внесения изменений и дополнений в состав надстройки за счет замены соответствующих файлов с последующим подключением на основе механизма динамической компоновки.

Основным недостатком является некоторое замедление выполнения модулей надстройки, т.к. практически каждый вызов системной функции требует переключения процессора в привилегированный режим, а потом – обратно. Для ускорения этих операций они чаще всего выполняются на аппаратном уровне. [2]


К модулям надстройки обычно относятся трансляторы с языков программирования, компоновщики, программы-отладчики, редакторы, вспомогательные утилиты.

Рисунок 2


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

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

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


Рисунок 3

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

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