Краткие итоги Набор для практики Вопросы Упражнения





Скачать 148.61 Kb.
НазваниеКраткие итоги Набор для практики Вопросы Упражнения
Дата публикации27.03.2015
Размер148.61 Kb.
ТипРеферат
100-bal.ru > Информатика > Реферат
7. Лекция: Уровни абстракции ОС. ОС с архитектурой микроядра. Виртуальные машины. Цели проектирования и разработки ОС. Генерация ОС
В лекции рассматриваются следующие вопросы: методы проектирования и реализации ОС: уровни абстракции ОС; ОС с архитектурой микроядра; виртуальные машины; цели проектирования и разработки ОС с точки зрения пользователей и разработчиков; генерация ОС для конкретной компьютерной системы при ее инсталляции.
Содержание

  • Введение

  • Уровни абстракции ОС

  • Операционные системы с микроядром

  • Виртуальные машины – другой распространенный подход к разработке операционных систем и их пользовательских интерфейсов

  • Виртуальная машина Java (JVM)

  • Цели проектирования и разработки ОС

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

  • Реализация операционных систем

  • Генерация операционной системы

  • Ключевые термины

  • Краткие итоги

  • Набор для практики

    • Вопросы

    • Упражнения

    • Темы для курсовых работ, рефератов, эссе

Введение

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

Уровни абстракции ОС

Проектирование и реализация операционных систем адекватно соответствуют принципу уровней абстракции, сформулированному Э. Дейкстрой и подробно рассмотренному в "История ОС. Отечественные ОС. Диалекты UNIX. Режимы пакетной обработки, мультипрограммирования, разделения времени ". На рис. 7.1 изображены уровни абстракции при разработке ОС.

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



Рис. 7.1.  Уровни абстракции ОС.

На рис. 7.2 изображены уровни абстракции операционной системы OS/2 – второй ОС (вслед за MS DOS), разработанной фирмой Microsoft (в середине 1980-х гг.) для персональных компьютеров PS/2. OS/2 является значительно более развитой ОС, чем MS DOS, как видно из рисунка.



Рис. 7.2.  Уровни абстракции OS/2

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

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

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

  1. микроядро легче расширять;

  2. легче переносить ОС на новые аппаратные платформы;

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

  4. улучшается безопасность ОС.

По такому принципу разработаны все операционные системы семейства Windows NT. Структура Windows NT изображена на рис. 7.3.




Рис. 7.3.  Клиент –серверная структура Windows NT.

Система Windows NT (от New Technology), разработанная в середине 1990-х гг., воплотила в себе новый подход Microsoft к разработке операционных систем. Его отличительные черты: модульная клиент-серверная архитектура, микроядро, обеспечение совместимости с распространенными видами приложений для других ОС (например, OS/2), расширенные сетевые возможности, повышенная надежность. Windows NT с середины 1990-х гг. широко распространилась как серверная ОС. Для совместимости с приложениями для других ОС, в Windows NT реализованы соответствующие серверы. Взаимодействие клиентских приложений с ними показано на схеме. Аббревиатура Win32 означает "библиотеки (API) ОС Windows для 32-разрядных процессоров". POSIX (Portable Operating Systems of unIX type) – стандарт для библиотек, системных вызовов и системных программ для операционных систем типа UNIX. POSIX-совместимость означает, что приложение, предназначенное для UNIX, использует только стандартные возможности. Все современные ОС (начиная с Windows NT) обеспечивают совместимость с POSIX-приложениями. Заметим, что все серверы для совместимости с другими ОС в Windows NT выполняются в непривилегированном режиме, но обращаются к микроядру.

Виртуальные машины – другой распространенный подход к разработке операционных систем и их пользовательских интерфейсов

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

Пример: система виртуальных машин (SVM) в ОС IBM 360/370, разработанная в конце 1980-х гг. Более современный пример: Microsoft Virtual PC – продукт, эмулирующий виртуальную машину, в которую может быть инсталлирована любая другая ОС, отличная от основной.

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

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




Рис. 7.4.  Модели ОС без использования виртуальных машин и на основе виртуальных машин.

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

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

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

Концепцию виртуальной машины, однако, труднее реализовать, так как трудно адекватно смоделировать используемую машину.

Виртуальная машина Java (JVM)

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

JVM состоит из:

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

  2. верификатора классов (class verifier), выполняющего при загрузке класса проверку корректности его байт-кода, контроль типов и другие необходимые проверки;

  3. интерпретатора (runtime interpreter), выполняющего интерпретацию (эмуляцию) команд байт-кода – абстрактной машины Java;

  4. Just-In-Time (JIT) – компилятора, выполняющего при первом вызове каждого метода его компиляцию в объектный код целевой платформы (native – код), что позволяет повысить суммарную производительность выполнения программ на Java.

Аналогичную архитектуру имеет виртуальная машина VES (Virtual Execution System) платформы Microsoft.NET, однако подход .NET более открытый – поддерживается многоязыковое программирование, и байт-код (в .NET называемый CIL – Common Intermediate Language) играет роль универсального промежуточного языка, в который компилируется исходный код на любом языке, например, на C# или Visual Basic. Подробное рассмотрение этих вопросов выходит за рамки данного курса. В качестве базового учебника по Java-технологии рекомендую книгу "Виртуальные файловые системы (VFS). Реализации файловых систем. Сетевая файловая система NFS".

Архитектура виртуальной машины Java изображена на рис. 7.5.




Рис. 7.5.  Архитектура виртуальной машины Java (JVM).

Цели проектирования и разработки ОС

Точки зрения пользователей и разработчиков ОС в данном отношении несколько различаются.

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

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

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


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

Реализация операционных систем


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

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

  1. может быть разработан быстрее

  2. более компактен

  3. легче для понимания и отладки.

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

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

Близкими автору примерами разработки ОС на языках высокого уровня, помимо UNIX, является разработка на Си ОС Solaris фирмой Sun, а также разработка ОС "Эльбрус" на языке высокого уровня Эль-76 "Системы ввода-вывода ". Поставка ОС "Эльбрус" вместе с ее исходными кодами была весьма полезна для программистов и стимулировала целый ряд работ отраслевых организаций по разработке ОС реального времени на базе ОС "Эльбрус".

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


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

Программа генерации ОС получает информацию о специфической конфигурации компьютерной системы.

После генерации и инсталляции ОС система готова к работе.

Следующий этап - загрузка (booting) – запуск компьютера посредством загрузки ядра ОС. При запуске компьютера первой запускается программа раскрутки (bootstrap program) – код, хранящийся в постоянной памяти (ROM) базовой системы ввода-вывода (BIOS) компьютера. Код программы раскрутки находит ядро ОС, загружает его в память и запускает.

Ключевые термины


Just-In-Time (JIT) – компилятор – компонента JVM, выполняющая при первом вызове каждого метода его компиляцию в объектный код целевой платформы (native – код), что позволяет повысить суммарную производительность выполнения программ на Java.

OS/2 – ОС, разработанная фирмой IBM для персональных компьютеров PS/2.

POSIX (Portable Operating Systems of unIX type) – стандарт для библиотек, системных вызовов и системных программ для операционных систем типа UNIX.

Win32 - Библиотеки (API) ОС Windows для 32-разрядных процессоров.

Байт-код (bytecode) – команды виртуальной Java-машины, построенные на основе постфиксной записи операндов.

Верификатор классов (class verifier) – компонента JVM, выполняющая при загрузке класса проверку корректности его байт-кода, контроль типов и другие необходимые проверки.

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

Виртуальная машина Java (JVM) – виртуальная машина, исполняющая Java байт-код.

Загрузка (booting) – запуск компьютера посредством загрузки ядра ОС.

Загрузчик классов (class loader) – компонента JVM, выполняющая загрузку классов в виртуальную машину во время выполнения программы.

Инсталляция – установка ОС на конкретный компьютер.

Интерфейс прикладного программирования (application programming interface – API) - набор библиотечных функций, реализующий некоторую функциональность, используемую программой.

Механизм - метод реализации некоторой функциональности в ОС.

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

Политика - набор требований, целей, условий для реализации некоторой функциональности в ОС.

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

Программа раскрутки (bootstrap program) – код, запускаемый первым при включении компьютера, хранящийся в постоянной памяти (ROM) базовой системы ввода-вывода (BIOS) компьютера, который находит ядро ОС, загружает его в память и запускает.

Краткие итоги


При разработке ОС широко применяется принцип уровней абстракции. Он применен при разработке OS/2 – второй ОС фирмы Microsoft (после MS DOS), разработанной для персональных компьютеров PS/2. OS/2 имела четыре уровня абстракции.

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

По принципу микроядра разработана ОС Windows NT, в которой имеются серверы для поддержки исполнения Win32- , OS/2 и POSIX-приложений.

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

В настоящее время широко используется виртуальная машина Java (JVM), выполняющая программе на Java байт-коде на реальной аппаратуре. JVM состоит из загрузчика классов, верификатора классов, интерпретатора байт-кода и just-in-time – компилятора.

Цели проектирования и разработки ОС: с точки зрения пользователя – удобство, простота, надежность, безопасность, эффективность; с точки зрения разработчика ОС – простота проектирования, реализации и сопровождения, гибкостью надежность, свобода от ошибок, эффективность.

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

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

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

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

Набор для практики

Вопросы


  1. Что такое уровень абстракции и какие ограничения накладываются на реализацию его операций?

  2. Какие уровни абстракции реализованы в системе OS/2?

  3. Что такое микроядро и как организуются операционные системы по принципу микроядра?

  4. В чем преимущество разработки ОС по принципу микроядра?

  5. По каким принципам организована ОС Windows NT и с приложениями для каких платформ она поддерживает совместимость?

  6. Что такое виртуальная машина и каким образом концепция виртуальной машины используется при разработке ОС?

  7. В чем преимущества для пользователя при работе в персональной виртуальной машине в рамках операционной системы?

  8. Что такое виртуальная машина Java (JVM) и из каких компонент она состоит?

  9. Что такое загрузчик классов в JVM?

  10. Что такое верификатор в JVM?

  11. Что такое интерпретатор в JVM?

  12. Что такое JIT-компилятор в JVM?

  13. Что такое VES в платформе Microsoft.NET и в чем преимущество .NET, по сравнению с Java?

  14. Каковы цели проектирования и разработки ОС, с точки зрения ее пользователей?

  15. Каковы цели проектирования и разработки ОС, с точки зрения ее разработчиков?

  16. Что такое механизм (при разработке ОС)?

  17. Что такое политика (при разработке ОС)?

  18. На каких языках высокого уровня разрабатываются ОС?

  19. Почему разрабатывать ОС на языках высокого уровня удобнее, чем на ассемблере?

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

  21. Что такое раскрутка и программа раскрутки?

  22. Что такое BIOS и ROM BIOS и как они используются при раскрутке системы?

Упражнения


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

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

  3. Предложите архитектуру ОС, реализующей систему виртуальных машин.

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

  5. Инсталлируйте на своем компьютере продукт Microsoft Virtual PC, инсталлируйте в виртуальной машине другую ОС (например, Windows 7, если у Вас на компьютере инсталлирована Windows Vista), поэкспериментируйте с ней и опишите свои впечатления.

  6. Загрузите с сайта http://java.sun.com новую версию Java Development Kit (JDK), Standard Edition, инсталлируйте его и пропустите простейшие примеры с использованием JVM.

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

Темы для курсовых работ, рефератов, эссе


  1. Принцип уровней абстракции и его использование при разработке операционных систем (реферат).

  2. Обзор операционной системы OS/2 и ее архитектуры (реферат).

  3. Обзор операционных систем, разработанных по принципу микроядра (реферат).

  4. Обзор операционной системы Windows NT и ее архитектуры (реферат).

  5. Концепция виртуальной машины и операционные системы, основанные на данной концепции (реферат).

  6. Обзор Java-технологии и виртуальной машины Java (реферат).

  7. Анализ и подробное описание процесса запуска компьютера и загрузки операционной системы (курсовая работа).

  8. Инсталляция Microsoft Virtual PC, инсталляция в ней другой ОС, пропуск в ней простых примеров программ и подробное аналитическое описание результатов работы (курсовая работа).

  9. Инсталляция JDK (включающего JVM), пропуск простых тестов на Java из состава JDK и подробное аналитическое описание результатов (курсовая работа).

Добавить документ в свой блог или на сайт

Похожие:

Краткие итоги Набор для практики Вопросы Упражнения iconКраткие итоги Набор для практики Вопросы Упражнения
Лекция: Обзор функций ос: управление памятью, файлами, процессами, сетями, командными интерпретаторами, сервисы ос, системные вызовы....
Краткие итоги Набор для практики Вопросы Упражнения iconКраткие итоги Набор для практики Вопросы Упражнения
В лекции рассмотрены следующие вопросы: организация ввода-вывода в компьютерной системе и ее поддержка в ос; контроллеры; драйверы;...
Краткие итоги Набор для практики Вопросы Упражнения iconКраткие итоги Набор для практики Вопросы Упражнения
Ос multics и "Эльбрус" от файловых систем в ос для пэвм; файлы последовательного и прямого доступа; директория, способы организации...
Краткие итоги Набор для практики Вопросы Упражнения iconКраткие итоги Набор для практики Вопросы Темы для курсовых работ, рефератов, эссе
Лекция: История ос. Отечественные ос. Диалекты unix. Режимы пакетной обработки, мультипрограммирования, разделения времени
Краткие итоги Набор для практики Вопросы Упражнения iconГлагол to be. Упражнения
Поставьте следующие предложения в вопросительную форму. Запишите краткие ответы к общим вопросам
Краткие итоги Набор для практики Вопросы Упражнения iconПедагогическая практика
Учебно-методическое пособие предназначено для руководителей практики, методистов и студентов. В пособии рассмотрены вопросы, определяющие...
Краткие итоги Набор для практики Вопросы Упражнения iconПрограмма по формированию навыков безопасного поведения на дорогах...
Включает в себя набор заданий для изучения английского языка в младших классах школы, таких, как презентации, упражнения и пр
Краткие итоги Набор для практики Вопросы Упражнения iconМетодические рекомендации по их выполнению. 21 Вопросы для подготовки к зачету. 22
Охватывает основные вопросы сложившейся практики по организации и технике совершения операций финансового лизинга в зависимости от...
Краткие итоги Набор для практики Вопросы Упражнения iconТема Содержание
Краткие биографические сведения. Характеристика деятельности К. Чуковского в области теории и практики детской литературы. Веселые...
Краткие итоги Набор для практики Вопросы Упражнения iconФизика параг. 51 упражнение Краткие итоги главы 2 записать. Английский...
Английский язык 10А (Скороходова Л. И.) Учебник стр. 105-107 Упр. 9 читать, переводить, пересказ
Краткие итоги Набор для практики Вопросы Упражнения iconРобоча програма переддипломної практики для студентів 6-го курсу напряму "Менеджмент"
Керівник підприємства бази практики видає наказ, в якому визначає порядок організації та проведення практики, заходи по створенню...
Краткие итоги Набор для практики Вопросы Упражнения iconКраткие рекомендации по оформлению материалов заявки на официальную...
Внимание! Данные краткие рекомендации не заменяют Правила составления, подачи и рассмотрения заявок на официальную регистрацию программ...
Краткие итоги Набор для практики Вопросы Упражнения iconПрограмма по формированию навыков безопасного поведения на дорогах...
Познакомить учащихся с правилом правописания н-нн в наречиях на –о,-е; научить различать сходные по форме части речи ( краткие отглагольные...
Краткие итоги Набор для практики Вопросы Упражнения iconПрограмма по формированию навыков безопасного поведения на дорогах...
Для уроков технологии: папка для труда, набор цветной бумаги, набор цветного картона, клей – карандаш, клей пва, кисть для клея,...
Краткие итоги Набор для практики Вопросы Упражнения iconПрограмма преддипломной практики для студентов V курса, обучающихся...
Тема урока: «Упражнения на правописание звонких и глухих согласных в корне слова, единообразное написание ударных и безударных гласных,...
Краткие итоги Набор для практики Вопросы Упражнения iconВопросы: Что положено в основу эпохи Возрождения? (Клочинский Костя)
...


Школьные материалы


При копировании материала укажите ссылку © 2013
контакты
100-bal.ru
Поиск