Архитектура Операционной системы

Содержание

  • Введение ……………………………………………………2
  • Глава 1. Понятие операционной системы………………4
  • 1.1. Функции операционной системы……………………6
  • 1.2. Требования предъявляемые к ОС………………….11
  • 1.3. Виды современных ОС……………………………..12
  • Глава 2 Основные концепции ОС. Назначение ОС…..18.
  • 2.1. ОС как виртуальная машина………………………18
  • 2.2. ОС как менеджер ресурсов…………………………19
  • Глава 3. Архитектура Операционной системы……….20
  • 3.1.Структурирование ОС………………………………21
  • 3.2. Пост UNIX архитектуры……………………………22
  • Заключение……………………………………………….24
  • Список литературы………………………………………30

 

 

 

 

 

 

 

 

 

Введение

Компьютерный мир за последние десятилетия достиг ошеломляющих результатов. Не одна отрасль не достигла таких результатов в техническом прогрессе, как компьютерная. Изменения, которые за 15 лет привели к появлению такого компьютерного продукта, как Windows, поистине впечатляют.

Некоторые (в том числе судебная система США) считают, что ведущее положение корпорации Microsoft на рынке операционных систем ПК было завоевано с помощью неэтичных средств, за счет монополизации. Так это или нет, но нам кажется, что система Windows завоевала свои сегодняшние позиции не только потому, что рынок "брали за горло". Ведь если Windows NT 3.1 опирается на 5 миллионов строк программного кода, a Windows 2000 -- более чем на 29 миллионов. Бесспорно, это огромный объем работы. Кто мог предвидеть в 1985 году, что через полтора десятка лет любая приличная операционная система должна будет поддерживать технологии, которые вообще не существовали в то время: CD-ROM, DVD, CD-R, CD-RW, Internet и intranet, USB, АРМ, ACPI, USB, RAID, Web средства обеспечения отказоустойчивой работы, шифрование и сжатие диска?.. И этот перечень продолжает пополняться. Могли ли мы себе представить, что сертификат специалиста MCSE (Microsoft Certified System Engineer) будет иметь такой же вес, как диплом врача или юриста?!

В результате совместной деятельности компаний Microsoft, IBM и Intel ситуация изменилась. Сегодня каждый желающий может купить себе компьютер, принтер, сканер, устройство резервного копирования, клавиатуру, модем, монитор и видеоадаптер, затем подключиться к Internet. Нравится вам это или нет, но разработка и принятие (под некоторым нажимом) стандартов оборудования и программного обеспечения, которые превратили персональный компьютер в предмет бытовой техники, осуществлялись часто благодаря усилиям Microsoft. Объединяющим звеном этой революции в мире ПК стала система Windows.

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

Глава 1. Понятие операционной системы

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

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

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

Операционные системы, в свою очередь, нужны, если:

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

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

 использующие файловые системы (с универсальным механизмом доступа к данным),

многопользовательские (с разделением полномочий),

многозадачные (с разделением времени).

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

Большинство программ, как системных (входящих в ОС), так и прикладных, исполняются в непривилегированном ("пользовательском") режиме работы процессора и получают доступ к оборудованию (и, при необходимости, к другим ядерным ресурсам, а также ресурсам иных программ) только посредством системных вызовов. Ядро исполняется в привилегированном режиме: именно в этом смысле говорят, что ОС (точнее, её ядро) управляет оборудованием.

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

1.1Функции ОС

Операцио́нная систе́ма, сокр. ОС (англ. Operating system, OS) - комплекс управляющих и обрабатывающих программ, которые, с одной стороны, выступают как интерфейс между устройствами вычислительной системы и прикладными программами, а с другой стороны - предназначены для управления устройствами, управления вычислительными процессами, эффективного распределения вычислительных ресурсов между вычислительными процессами и организации надёжных вычислений. Это определение применимо к большинству современных операционных систем общего назначения.

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

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

В большинстве вычислительных систем операционная система является основной, наиболее важной (а иногда и единственной) частью системного программного обеспечения. С 1990-х годов наиболее распространёнными операционными системами являются системы семейства Windows и системы класса UNIX (особенно Linux и Mac OS).

 

Прикладные программы

 

Программное обеспечение

 

Системное программное обеспечение

 

Дополнительное системное ПО

 

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

Пользовательское окружение

 

Ядро операционной системы

 
 

Встроенное программное обеспечение

 

Архитектура системы команд

Аппартная платформа (архитектура компьютера)

Микрограмма

 

Микроархитектура

 

Цифровой логический уровень


Физические устройства


 

Схема, иллюстрирующая место операционной системы в многоуровневой структуре компьютера


Основные функции:

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

Дополнительные функции:

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

Компоненты операционной системы:

  • Загрузчик
  • Ядро
  • Командный процессор (интерпретатор)
  • Драйверы устройств
  • Интерфейс

1.2. Требования, предъявляемые к Операционным системам

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

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

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

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

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

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

Безопасность. ОС должна обладать средствами защиты ресурсов одних пользователей от других.

Производительность. Система должна обладать настолько хорошим быстродействием и временем реакции, насколько это позволяет аппаратная платформа. [1],[2]

1.3. Виды современных операционных систем

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

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

- по числу процессов, которые могут одновременно выполняться под управлением ОС;

- по типу доступа пользователя  к компьютеру;

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

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

Второй признак делит ОС на однозадачные и многозадачные. Заметим, что если система многопользовательская, то обычно она и многозадачная, но не наоборот.

В соответствии с третьим признаком ОС делятся на:

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

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

- системы реального времени, которые должны обеспечивать  гарантированное время ответа  на внешние события. Такие ОС  служат для управления внешними  по отношению к компьютеру  процессами и объектами.

По четвертому признаку ОС делятся на однопроцессорные, многопроцессорные, сетевые и распределенные.

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

В настоящее время ПЭВМ поддерживают спектр режимов работы, среди которых:

- однопрограммный режим;

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

- многопользовательский  многопрограммный, или просто многопрограммный  режим;

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

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

Для поддержки перечисленных режимов работы ПЭВМ существуют следующие типы ОС:

- однопользовательские однозадачные, или просто однозадачные;

- однопользовательские многозадачные, или просто многозадачные;

- многопользовательские  многозадачные, или просто многопользовательские.

Для обеспечения работы ПЭВМ в режиме системы виртуальных машин необходим монитор виртуальных машин.

При рассмотрении режимов работы ПЭВМ и ОС не случайно использовались различные термины - соответственно "программа" и "задача". Без дополнительных пояснений здесь не обойтись, что мы сейчас и сделаем.

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

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

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

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

При вытесняющей организации выделением задачам процессорного времени занимается исключительно ОС. Примерами такого режима являются квантование, когда каждой задаче процессор выделяется по очереди, причем на фиксированный промежуток времени, и приоритетное обслуживание. Вытеснение поддерживают ОС OS/2 и UNIX, а также интерфейсная система DESQview.

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

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

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

Для IBM - совместимых ПЭВМ разработаны и используются следующие классы ОС:

- ОС семейства DOS;

- ОС семейства MS WINDOWS (WINDOWS 95 и WINDOWS 98);

- ОС семейства NT;

- ОС семейства OS/2;

- ОС семейства UNIX.

Наибольшее распространение в настоящее время имеют представители семейства интерфейсных многооконных операционных систем MS WINDOWS (WINDOWS 95 и WINDOWS 98). Применяются операционные системы семейства DOS. Многие пользователи применяют операционные системы семейства UNIX и сетевые операционные системы Windows NT. Операционная система OS/2 не получила широкого распространения. Данное соотношение в ближайшие годы сохранится. Сделаем относительно нее следующие замечания:

некоторые UNIX - подобные системы являются менее требовательными к ресурсам ПЭВМ и способны функционировать на ПЭВМ менее мощных классов;

можно использовать и меньший, чем указано, объем ОЗУ, однако при этом некоторые программы могут оказаться неработоспособными, а эффективность ОС снизится.

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

Операционная система — это комплекс взаимосвязанных программ, который действует как интерфейс между приложениями и пользователями с одной стороны и аппаратурой компьютера с другой стороны. В соответствии с этим определением операционная система выполняет две основные функции:

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

 2.1. Операционная система как виртуальная машина

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

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

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

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

2.2.Операционная система как менеджер ресурсов

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

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

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

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

Глава 3 . Архитектура операционной системы

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

Наиболее общим подходом к структуризации операционной системы является её разделение всех её модулей на две группы:

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

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

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

 

 

3.1.. Структурирование операционных систем

Монолитная операционная система

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

 

Микроядерная операционная система

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

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

3.2. Пост-UNIX-архитектуры

Коллектив, создавший UNIX, развил концепцию унификации объектов операционной системы, включив в исходную концепцию UNIX «устройство - это тоже файл» также и процессы, и любые другие системные, сетевые и прикладные сервисы, создав новую концепцию: «что угодно - это файл». Эта концепция стала одним из основных принципов системы Plan 9 (название было позаимствовано из фантастического триллера «План 9 из открытого космоса» Эдварда Вуда-младшего), призванной преодолеть принципиальные недостатки дизайна UNIX и сменившей «рабочую лошадку» UNIX System V на компьютерах сети Bell Labs в 1992 году.

Архитектура Операционной системы