Главная страница
Навигация по странице:

  • Место ОС в структуре вычислительной системы

  • Архитектурные особенности ОС. Монолитное ядро Архитектурные особенности ОС. Многоуровневые системы (Layered systems)

  • Ядро и вспомогательные модули ОС

  • Понятие операционной системы. Классификация ОС Понятие операционной системы. Операционная система (ОС)

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

  • Принципы организации и структура UNIX-подобных ОС. Ядро и основные компоненты ОС. Файловая структура UNIX-подобных ОС

  • Подсистема управления процессами и памятью

  • Модуль межпроцессорного взаимодействия

  • ОС. Вопросы к экзамену по дисциплине Операционные системы 2019 год


    Скачать 0.54 Mb.
    НазваниеВопросы к экзамену по дисциплине Операционные системы 2019 год
    Дата10.01.2020
    Размер0.54 Mb.
    Формат файлаdocx
    Имя файлаVoprosy_k_ekzamenu_po_distsipline_Operatsionnye_sistemy_2019_god.docx
    ТипВопросы к экзамену
    #103408
    страница1 из 6
      1   2   3   4   5   6

    Вопросы к экзамену по дисциплине Операционные системы 2019 год

    1. Структура вычислительной системы. Место операционной системы в этой структуре.

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

    Функции:

    · Предоставление пользователю вместо реальной аппаратуры виртуальной машины (виртуальной аппаратуры);

    · Повышенная эффективность использования аппаратуры путём рационального использования ресурсов.

    Ресурсы: память, процессорное время, устройства ввода\вывода.

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

    Место ОС в структуре вычислительной системы

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



    Рисунок 1. Структура вычислительной системы

     

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

     

     

    Системы программирования

     

     

      Управление логическими устройствами

     

     

      Управление физическими устройствами

     

      Аппаратные средства







     

     

     

     

     

     

     

     

     

    Таблица 1. Вычислительная система

    Аппаратные средства – нижний уровень - это аппаратура, то, что делается из металла, пластика и прочих материалов, используемых для производства «железа» компьютера.

    Управление физическими устройствами осуществляют программы, ориентированные на качества и свойства аппаратуры, взаимодействующие с аппаратными структурами, знающие «язык» аппаратуры.

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

    Система программирования – это комплекс программ для поддержки всего технологического цикла разработки программного обеспечения.

    Прикладные программы предназначены для решения некоторых задач в конкретных областях знаний.

    К ОС относят второй и третий уровень пирамиды.

    1. Архитектурные особенности ОС. Монолитное ядро

    2. Архитектурные особенности ОС. Многоуровневые системы (Layered systems)

    3. Архитектурные особенности ОС. Виртуальные машины

    4. Архитектурные особенности ОС. Микроядерная архитектура

    5. Архитектурные особенности ОС. Экзоядро.

    1.4 Архитектурные особенности ос.

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

    Ядро и вспомогательные модули ОС

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

    1. ядро — модули, выполняющие основные функции ОС; 

    2. модули, выполняющие вспомогательные функции ОС.

    Модули ядра ОС выполняют следующие базовые функции ОС:

    1. управление процессами;

    2. управление памятью;

    3. управление устройствами ввода-вывода и т.п.

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

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

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

    Вспомогательные модули выполняют полезные, но менее обязательные функции. Например:

    1. архивирование информации;

    2. дефрагментация данных на диске;

    3. поиск необходимого файла и т.п.

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

    Вспомогательные модули обычно подразделяются на следующие группы:

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

    2.  системные обрабатывающие программы — текстовые или графические редакторы, компиляторы, компоновщики, отладчики;

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

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

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

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



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

    1.4.1 Монолитное ядро

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

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

    Монолитное ядро старейший способ организации операционных систем. Примером систем с монолитным ядром является большинство Unix-систем.

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

    1.4.2 Слоеные системы (Layered systems)

    Продолжая структуризацию, можно разбить всю вычислительную систему на ряд более мелких уровней с хорошо определенными связями между ними, так чтобы объекты уровня  N могли вызывать только объекты из уровня N-1. Нижним уровнем в таких системах обычно является hardware, верхним уровнем интерфейс пользователя. Чем ниже уровень, тем более привилегированные команды и действия может  выполнять модуль, находящийся на этом уровне. Впервые такой подход был применен при создании системы THE (Technishe Hogeschool Eindhoven) Дейкстрой и его студентами в 1968 г. Эта система имела следующие уровни:



    Рис. 1.2 Структура слоеной системы THE.

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

    1.4.3 Виртуальные машины

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



    Рис. 1.3 Вариант виртуальной машины.

    Первой реальной системой такого рода была система CP/CMS  или VM/370, как ее называют сейчас, для семейства машин IBM/370.

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

    1.4.4 Микроядерная архитектура.

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



    Рис. 1.4  Микроядерная  архитектура операционной системы

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

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

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

    Экзо — приставка, обозначающая нечто внешнее, находящееся снаружи.

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

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

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

    libOS может обеспечивать произвольный набор абстракций, совместимый с той или иной уже существующей операционной системой, например Linux или Windows.


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

    2. Классификация ОС

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

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

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

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

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

    Классификация ОС

    Существует несколько подходов для классификации операционных систем. Можно отметить следующие критерии классификации:

    – реализация многозадачности.

    По числу одновременно выполняемых задач операционные системы могут быть разделены на два класса:

    • многозадачные (Unix,OS/2,Windows), полностью реализует мультипрограммный режим;

    • однозадачные (например, MS-DOS).

    – поддержка многопользовательского режима.

    По числу одновременно работающих пользователей ОС можно разделить на:

    • однопользовательские (MS-DOS,Windows3.x);

    • многопользовательские (WindowsNT,Unix), характеризуются наличием у механизмов защиты персональных данных каждого пользователя.

    – многопроцессорная обработка.

    По этому критерию ОС делятся на:

    • однопроцессорные;

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

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

    Многопроцессорные ОС делятся на:

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

    • асимметричные, в которых процессоры неравноправны, т.е. существует главный процессор (master) и подчиненные (slave), загрузку и характер работы которых определяет главный процессор.

    – работа в режиме реального времени.

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

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

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

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

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

    1. Принципы организации и структура UNIX-подобных ОС. Ядро и основные компоненты ОС.

    2. Файловая структура UNIX-подобных ОС.

    Отличительные черты ос unix

    1. Система написана на языке высокого уровня (Си), что делает её доступной к пониманию, изменению и переносу на другие аппаратные платформы. UNIX является одной из наиболее открытых систем.

    2. UNIX - многозадачная, многопользовательская система с широким спектром услуг. Один сервер может обслуживать запросы большого количества пользователей. При этом необходимо администрирование только одной пользовательской системы.

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

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

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

    6. Достаточно большое количество приложений, в том числе свободно распространяемых.

    Основы архитектуры операционной системы unix Модель системы unix.



    Структура ядра ос unix.



    UNIX представляет собой двухуровневую модель системы: ядро и приложения.

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

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

    Все приложения запрашивают услуги ядра посредством системы вызовов.

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

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

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

    Ядро состоит из основных трех подсистем:

    1) файловая подсистема;

    2) подсистема ввода-вывода;

    3) подсистема управления процессами и памятью.

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

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

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

    С каждым файлом связаны 3 категории пользователей:

    - владелец;

    - группа-владелец;

    - остальные пользователи.

    Файловая подсистема обеспечивает перенаправление запросов, адресованных периферийным устройствам, соответствующим модулям подсистем ввода/вывода.

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

    Драйверы – это специальные модули ядра, непосредственно обслуживающие внешние устройства.

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

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

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

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

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

    1. Методы инсталляции и настройки UNIX-подобных ОС.
      1   2   3   4   5   6


    написать администратору сайта