Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Konspekt_OS.docx
Скачиваний:
0
Добавлен:
13.01.2020
Размер:
4.16 Mб
Скачать

Лекция 1. Тема: Операционная система. Определение. Уровни операционной системы. Функции операционных систем.

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

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

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

2. Назначение ОС

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

Первая функция свойственна ОС как расширенной машине, вторая – ОС как распределителя аппаратных средств.

2.1 ОС как расширенная машина

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

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

Рисунок 1 – Взаимодействие ОС с аппаратным обеспечением и применениями

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

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

2.2 ОС как распределитель ресурсов

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

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

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

  1. Функциональные компоненты операционных систем

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

Задачи ОС по управлению ресурсами КС: планирование ресурса; удовлетворение запросов на ресурсы; отслеживание состояния ресурса; учет использования ресурса; разрешение конфликтов между процессами.

2.1Управление процессами и потоками

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

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

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

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

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

    1. Управление памятью

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

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

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

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

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

    1. Управление вводом-выводом

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

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

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

    1. Управление файлами и файловыми системами

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

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

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

    1. Сетевая поддержка

Сетевые системы

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

  • предоставлять локальные ресурсы (дисковое пространство, принтеры и т.д.);

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

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

Распределенные системы

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

    1. Безопасность данных

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

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

    1. Интерфейс пользователя

Есть два типа средств взаимодействия пользователя с ОС: командный интерпретатор и графический интерфейс пользователя.

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

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

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

Лекция 2. Тема: История развития операционных систем. Поколения операционных систем

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

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

Поддержка многозадачности требовала реализации в ОС средств координации задач. Можно выделить три составные такой координации.

  1. Защита критичных данных задачи от случайного или намеренного доступа других задач.

  2. Обеспечение обмена данными между задачами.

  3. Выделение задачам справедливой части ресурсов (памяти, процессора, дискового пространства и т.д.).

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

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

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

Поколения операционных систем

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

Первым этапом развития системного программного обеспечения можно считать использование библиотечных программ, стандартных и служебных подпрограмм и макрокоманд. Концепция библиотек подпрограмм является наиболее ранней и восходит к 1949 году [4, 17]. С появлением библиотек получили развитие автоматические средства их сопровождения – программы-загрузчики и редакторы связей. Эти средства применялись в ЭВМ первого поколения, когда операционных систем как таковых еще не существовало.

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

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

Началось интенсивное развитие методов управления данными, возникала такая важная функция ОС, как реализация ввода-вывода без участия центрального процесса – так называемый спулинг (от англ. SPOOL – Simultaneous Peripheral Operation on Line).

Появление новых аппаратных разработок (1959-1963 гг.) – систем прерываний, таймеров, каналов – стимулировало дальнейшее развитие ОС [4, 5, 9]. Возникли исполнительные системы, которые представляли собой набор программ для распределения ресурсов ЭВМ, связей с оператором, управления вычислительным процессом и управления вводом-выводом. Такие исполнительные системы позволили реализовать довольно эффективную по тому времени форму эксплуатации вычислительной системы – однопрограммную пакетную обработку. Эти системы давали пользователю такие средства, как контрольные точки, логические таймеры, возможность построения программ оверлейной структуры, обнаружение нарушений программами ограничений, принятых в системе, управление файлами, сбор учетной информации и др.

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

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

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

мультипрограммирование;

мультипроцессорная обработка;

виртуальная память;

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

написание операционной системы на языке высокого уровня.

Известной системой разделения времени того периода стала система CTSS (Compatible Time Sharing System) – совместимая система разделения времени, разработанная в Массачусетском технологическом институте (1963 год) для компьютера IBM-7094 [37]. Эта система была использована для разработки в этом же институте совместно с Bell Labs и General Electric системы разделения времени следующего поколения MULTICS (Multiplexed Information And Computing Service). Примечательно, что эта ОС была написана в основном на языке высокого уровня EPL (первая версия языка PL/1 фирма IBM).

Одним из важнейших событий в истории операционных систем считается появление в 1964 году семейства компьютеров под названием System/360 фирмы IBM, а позже – System/370 [11]. Это было первой в мире реализацией концепции семейства программно и информационно совместимых компьютеров, ставшей впоследствии стандартной для всех фирм компьютерной отрасли.

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

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

В начале 70-х годов появились первые сетевые ОС, которые позволили не только рассредоточить пользователей, как в системах телеобработки данных, но и организовать распределенное хранение и обработку данных между компьютерами, соединенных электрическими связями. Известен проект ARPANET MO США. В 1974 году IBM объявила о создании собственной сетевой архитектуры SNA для своих мэйнфреймов, обеспечивающей взаимодействие типа "терминал-терминал", "терминал-компьютер", "компьютер-компьютер". В Европе активно разрабатывалась технология построения сетей с коммутацией пакетов на основе протоколов Х.25.

К середине 70-х годов наряду с мэйнфреймами широкое распространение получили мини-компьютеры (PDP-11, Nova, HP). Архитектура мини-компьютеров была значительно проще, многие функции мультипрограммных ОС мэйнфреймов были усечены. Операционные системы мини-ЭВМ стали делать специализированными (RSX-11M – разделение времени, RT-11 – OC реального времени) и не всегда многопользовательскими.

Важной вехой в истории мини-компьютеров и вообще в истории операционных систем явилось создание ОС UNIX. Написал эту систему Кен Томпсон (Ken Thompson), один из специалистов по компьютерам в BELL Labs, работавший над проектом MULTICS. Собственно, его UNIX – это усеченная однопользовательская версия системы MULTICS. Первоначальное название этой системы – UNICS (UNiplexed Information and Computing Service – примитивная информационная и компьютерная служба). Так в шутку была названа эта система, поскольку MULTICS (MULTiplexed Information and Computing Service) – мультиплексная информационная и компьютерная служба. С середины 70-х годов началось массовое использование ОС UNIX, написанной на 90% на языке С. Широкое распространение С-компиляторов сделало UNIX уникальной переносимой OC, а поскольку она поставлялась вместе с исходными кодами, она стала первой открытой операционной системой. Гибкость, элегантность, мощные функциональные возможности и открытость позволили ей занять прочные позиции во всех классах компьютеров – от персональных до супер-ЭВМ.

Доступность мини-компьютеров послужила стимулом для создания локальных сетей. В простейших ЛВС компьютеры соединялись через последовательные порты. Первое сетевое приложение для ОС UNIX – программа UUCP (Unix to Unix Copy Program) – появилось в 1976 году. Дальнейшее развитие сетевых систем со стеком протоколов TCP/IP: в 1983 году он был принят MO США в качестве стандарта и использован в сети ARPANET. В этом же году ARPANET разделилась на MILNET (для военного ведомства США) и новую ARPANET, которую стали называть Internet.

Все восьмидесятые годы характерны появлением все более совершенных версий UNIX: Sun OS, HP-UX, Irix, AIX и др. Для решения проблемы их совместимости были приняты стандарты POSIX и XPG, определяющие интерфейсы этих систем для приложений.

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

Наиболее популярной версией ОС раннего этапа развития персональных компьютеров была MS-DOS компании Microsoft – однопрограммная, однопользовательская ОС с интерфейсом командной строки. Многие функции, обеспечивающие удобство работы пользователю, в этой ОС предоставлялись дополнительными программами – оболочкой Norton Commander, PC Tools и др. Наибольшее влияние на развитие программного обеспечения ПК оказала операционная среда Windows, первая версия которой появилась в 1985 году. Сетевые функции также реализовались с помощью сетевых оболочек и появились в MS-DOS версии 3.1. В это же время появились сетевые продукты Microsoft – MS-NET, а позже – LAN Manager, Windows for Workgroup, а затем и Windows NT.

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

В 1987 году появилась первая многозадачная ОС для ПК – OS/2, разработанная Microsoft совместно с IBM. Эта была хорошо продуманная система с виртуальной памятью, графическим интерфейсом и возможностью выполнять DOS-приложения. Для нее были созданы и получили распространение сетевые оболочки LAN Manager (Microsoft) и LAN Server (IBM). Эти оболочки уступали по производительности файловому серверу NetWare и потребляли больше аппаратных ресурсов, но имели важные достоинства. Они позволяли выполнять на сервере любые программы, разработанные для OS/2, MS-DOS и Windows, кроме того, можно было использовать компьютер, на котором они работали, в качестве рабочей станции. Неудачная рыночная судьба OS/2 не позволила системам LAN-Manager и LAN-Server захватить заметную долю рынка, но принципы работы этих сетевых систем во многом нашли свое воплощение в ОС 90-х годов – MS Windows NT.

В 80-е годы были приняты основные стандарты на коммуникационные технологии для локальных сетей: в 1980 г. – Ethernet, в 1985 г. – Token Ring, в конце 80-х –FDDI (Fiber Distributed Data Interface), распределенный интерфейс передачи данных по волоконно-оптическим каналам, двойное кольцо с маркером. Это позволило обеспечить совместимость сетевых ОС на нижних уровнях, а также стандартизировать операционные системы с драйверами сетевых адаптеров.

Для ПК применялись не только специально разработанные для них ОС (MS-Dos, NetWare, OS/2), но и адаптировались уже существующие ОС, в частности UNIX. Наиболее известной системой этого типа была версия UNIX компании Santa Cruz Operation (SCO UNIX).

В 90-е годы практически все операционные системы, занимающие заметное место на рынке, стали сетевыми. Сетевые функции встраиваются в ядро ОС, являясь ее неотъемлемой частью. В ОС используются средства мультиплексирования нескольких стеков протоколов, за счет которого компьютеры могут поддерживать одновременную работу с разнородными серверами и клиентами. Появились специализированные ОС, например, сетевая ОС IOS компании Cisco System, работающая в маршрутизаторах. Во второй половине 90-х годов все производители ОС усилили поддержку средств работы с интерфейсами. Кроме стека протоколов TCP/IP в комплект поставки начали включать утилиты, реализующие популярные сервисы Интернета: telnet, ftp, DNS, Web и др.

Особое внимание уделялось в последнем десятилетии и уделяется в настоящее время корпоративным сетевым операционным системам. Это одна из наиболее важных задач в обозримом будущем. Корпоративные ОС должны хорошо и устойчиво работать в крупных сетях, которые характерны для крупных организаций (предприятий, банков и т.п.), имеющих отделения во многих городах и, возможно, в разных странах. Корпоративная ОС должна без проблем взаимодействовать с ОС разного типа и работать на различных аппаратных платформах. Сейчас определились лидеры в классе корпоративных ОС – это MS Windows 2000/2003, UNIX и Linux-системы, а также Novell NetWare 6.5.

Лекция 3. Тема: Классификация операционных систем по алгоритмам управления ресурсами, сферами применения и архитектуры.

Классификация ОС в зависимости от области их применения:

ОС больших ЭВМ (мейнфреймов). Основной характеристикой аппаратного обеспечения, для которого их разрабатывают, является производительность ввода-вывода: большие ЭВМ оснащают значительным количеством периферийных устройств (дисплеев, терминалов, принтеров и т.д.). Такие ОС используют для надежной обработки значительных объемов данных, при этом ОС должна эффективно поддерживать эту обработку (в пакетном режиме или в режиме распределения времени). Примером такой ОС может быть OS/390 фирмы IBM.

Серверные ОС. Главная характеристика таких ОС – способность обслуживать большое число запросов пользователей к совместно используемым ресурсам. Для таких систем важна сетевая поддержка. Сейчас для реализации серверов используют универсальные ОС Unix или системы линии Windows XP.

Персональные ОС – самая массовая категория. Некоторые ОС этой категории разрабатыва с расчетом на непрофессионального пользователя (линия Windows 2000/ XP/7), другие являются упрощенными версиями универсальных ОС. Особенностью персональных ОС является поддержка графического интерфейса пользователя и мультимедиа-технологии.

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

Встроенные ОС. К ним относятся управляющие программы для разнообразных микропроцессорных систем, которые используют в военной технике, системах бытовой электроники, смарт-картах и др. устройствах. К таким системам предъявляют особые требования: размещение в малом объеме памяти, поддержка специализированных средств ввода-вывода, возможность прошивки в ПЗУ. Часто встроенные ОС разрабатывают под конкретное устройство. К универсальным встроенным ОС принадлежат Embedded Linux и Windows CE.

Базовые понятия Архитектуры ОС

    1. Механизмы и политика

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

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

    1. Ядро системы. Привилегированный режим и режим пользователя.

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

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

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

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

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

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

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

  1. Системные программы (утилиты), например: командный интерпретатор, программы резервного копирования и восстановления данных, средства диагностики и администрирования.

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

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

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

Соседние файлы в предмете [НЕСОРТИРОВАННОЕ]