- •Министерство образования и науки Республики Казахстан
- •1.1 Данные о преподавателях:
- •Выписка из учебного плана
- •1.6 Перечень и виды заданий и график их выполнения: Виды заданий и сроки их выполнения
- •1.7 Список литературы
- •2.2 Конспект лекционных занятий
- •Тема 1.Основы операционных систем .( 2 часа)
- •1.1 Назначение и функции операционных систем
- •1.2 Эволюция развития операционных систем
- •1.3 Основные понятия, концепции ос
- •1.4 Классификация ос
- •Тема 2. Архитектура операционных систем. ( 2 часа)
- •2.1 Монолитные системы
- •2.2 Многоуровневые системы
- •Тема 3. Микроядерная архитектура ос(2 часа)
- •3.1 Основные положения архитектуры ос с микроядром
- •3.2 Преимущества и недостатки архитектуры ос с микроядром
- •Тема 4. Совместимость операционных систем( 2 часа)
- •4.1 Виды совместимости
- •4.2 Способы реализации совместимости
- •Тема 5. Представления процесса в операционной системе ( 2 часа)
- •5.1 Понятие процесса
- •5.2 Состояния процесса
- •Тема 6. Операции над процессами и связанные с ними понятия (2 часа)
- •6.1 Process Control Block и контекст процесса
- •6.2 Одноразовые операции
- •6.3 Многоразовые операции
- •Тема 7. Планирование процессов ( 2 часа)
- •7.1 Уровни планирования
- •7.2 Критерии планирования
- •7.3 Параметры планирования
- •7.4 Вытесняющее и невытесняющее планирование
- •Алгоритмы планирования
- •Тема 8. Алгоритмы синхронизации
- •8.1 Программные алгоритмы организации взаимодействия процессов
- •8.2 Алгоритм Петерсона
- •8.3 Алгоритм булочной (Bakery algorithm)
- •8.4 Команда Test-and-Set (проверить и присвоить 1)
- •8.5 Команда Swap (обменять значения)
- •Тема 9. Механизмы синхронизации (2 часа) 9. 1 Семафоры
- •9.2 Мониторы
- •9.3 Сообщения
- •Тема 10. Организация памяти компьютера. Простейшие схемы управления памятью. ( 2 часа)
- •10.1 Физическая организация памяти компьютера
- •10.2 Логическая память
- •10.3 Простейшие схемы управления памятью
- •10.4 Динамическое распределение. Свопинг
- •Тема 11. Управление файлами (2 часа)
- •11.1 Основные понятия файловой системы
- •11.2 Операции над файлами
- •11.3 Директории. Логическая структура файлового архива
- •11.4 Разделы диска. Организация доступа к архиву файлов.
- •Тема 12. Реализация файловой системы
- •12.1 Система хранения
- •12.2 Управление внешней памятью
- •12.3 Управление свободным и занятым дисковым пространством
- •12.4 Монтирование файловых систем
- •12.5 Управление "плохими" блоками
- •12.6 Производительность файловой системы
- •Тема 13. Сети и сетевые операционные системы. ( 2 часа)
- •13.1 Сетевые и распределенные операционные системы
- •13.2 Понятие протокола. Многоуровневая модель построения сетевых вычислительных систем.
- •13.3 Проблемы адресации в сети.
- •Тема 14 . Основные понятия информационной безопасности ( 2 часа)
- •14.1 Угрозы безопасности
- •14.2 Криптография как одна из базовых технологий безопасности ос
- •Тема 15. Защитные механизмы операционных систем
- •2.3 Планы лабораторных занятий
- •Практические задания
- •Практические задания.
- •2.4 Планы занятий в рамках самостоятельной работы студентов под руководством преподавателя (срсп)
- •Рекомендуемая литература: 11 доп. [324-401], 12 доп. [123-143], 13 доп.[76-92]
- •2.5 Планы занятий в рамках самостоятельной работы студентов (срс)
- •2.7 Тестовые задания для самоконтроля с указанием ключей правильных ответов
- •Ключи правильных ответов
- •2.6 Перечень экзаменационных вопросов по пройденному курсу
- •Глоссарий
- •12. Канал- специализированный процессор ввода-вывода в компьютерах класса мэйнфреймов.
- •27. Пропускная способность – количество задач, выполняемых вычислительной системой в единицу времени.
- •Выходные сведения
Тема 4. Совместимость операционных систем( 2 часа)
4.1 Виды совместимости
Конкретные архитектурные и функциональные особенности любой ОС непосредственно должны касаться лишь системных программистов и могут совершенно не быть известны рядовому пользователю. В то время как некоторые идеи (например, объектно-ориентированный подход) находятся в ведении только разработчиков и лишь косвенно влияют на конечного пользователя, концепция множественных прикладных сред приносит пользователю долгожданную возможность выполнять на своей ОС программы, написанные для других ОС и процессоров. Свойство ОС, характеризующее возможность выполнения в ОС приложений, написанных для других ОС, называется совместимостью.
Существует два принципиально отличающихся вида совместимости, которые не следует путать: совместимость на двоичном уровне и совместимость на уровне исходных текстов. Приложения обычно хранятся в компьютере в виде исполняемых файлов, содержащих двоичные образы кодов и данных. Двоичная совместимость достигается в том случае, если можно взять исполняемую программу, работающую в среде одной ОС, и запустить ее на выполнение в среде другой ОС.
Совместимость на уровне исходных текстов требует наличия соответствующих компиляторов в составе программного обеспечения компьютера, на котором предполагается использовать данное приложение, а также совместимости на уровне библиотек и системных вызовов. При этом необходима перекомпиляция исходных текстов программ в новые исполняемые модули.
Таким образом, совместимость на уровне исходных текстов наиболее важное значение имеет для разработчиков приложений, в распоряжении которых находятся эти исходные тексты. Для конечных же пользователей практическое значение имеет только двоичная совместимость, так как только в этом случае они могут без специальных навыков и умений использовать программный продукт, поставляемый в виде двоичного исполняемого кода, в различных операционных средах и на разных компьютерах. Для пользователя, купившего в свое время пакет программ для MS-DOS, важно, чтобы он мог запускать этот привычный ему пакет без каких-либо изменений или ограничений на своей новой машине, работающей, например, под управлением Windows NT. Множественные прикладные среды как раз и обеспечивают совместимость данной ОС с приложениями, написанными для других ОС и процессоров, на двоичном уровне, а не на уровне исходных текстов.
Каким типом совместимости - двоичной или совместимостью исходных текстов обладает ОС, зависит от многих факторов. Самый значительный из них - архитектура процессора, на котором работает ОС. Чтобы достичь двоичной совместимости достаточно соблюсти несколько следующих условий:
вызовы функций API, которые содержит приложение, должны поддерживаться дайной ОС;
внутренняя структура исполняемого файла приложения должна соответствовать структуре исполняемых файлов данной ОС.
Несравнимо сложнее достигнуть двоичной совместимости операционным системам, предназначенным для выполнения на процессорах, имеющих различающиеся архитектуры. Кроме соблюдения приведенных выше условий, необходимо также организовать эмуляцию двоичного кода. Для того, чтобы компьютер смог интерпретировать машинные инструкции, которые ему изначально непонятны, на нем должно быть установлено специальное программное обеспечение -эмулятор.
Назначение эмулятора состоит в том, чтобы последовательно выбирать каждую двоичную инструкцию процессора, например, Intel, программным способом дешифровать ее, чтобы определить, какие действия она задает, а затем выполнять эквивалентную подпрограмму, написанную в инструкциях процессора, например, Motorola.
Тем не менее, существует .несколько другой, гораздо более эффективный выход из описанной ситуации - использование так называемых прикладных программных сред. Одной из составляющих, формирующих программную среду, является набор функций интерфейса прикладного программирования API, которым ОС обеспечивает свои приложения. Для сокращения времени выполнения чужих программ прикладные среды имитируют обращения к библиотечным функциям. Эффективность данного подхода определяется тем, что большинство современных программ работают под управлением графических интерфейсов пользователя (GUI) типа Windows, UNIX при этом приложения, как правило, наибольшую часть времени тратят на выполнение, некоторых хорошо предсказуемых действий. Они непрерывно осуществляют вызовы библиотек GUI для манипулирования окнами и для других, связанных с GUI, действий. Именно эта особенность приложений позволяет прикладным средам компенсировать большие затраты времени, потраченные на покомандное эмулирование программы. Тщательно спроектированная программная среда имеет в своем составе библиотеки, имитирующие внутренние библиотеки GUI, но написанные на "родном" коде данной ОС. Таким образом, достигается существенное ускорение выполнения программ с API другой операционной системы. Для того чтобы отличить такой подход от более медленного процесса эмулирования кода по одной команде за раз, его называют трансляцией.
Однако следует заметить, что для того, чтобы программа, написанная для одной ОС, могла быть выполнена в рамках другой ОС, недостаточно лишь обеспечить совместимость API. Вполне может случиться так, что концепции, положенные в основу разных ОС, войдут в противоречие друг с другом. Например, в одной ОС приложению может быть разрешено непосредственно управлять устройствами ввода-вывода, а в другой действия являются прерогативой ОС. Совершенно естественно, что каждая ОС имеет свои собственные механизмы защиты ресурсов, свои; алгоритмы обработки ошибок и исключительных ситуаций, особую структуру процесса и схему управления памятью, свою семантику доступа к файлам и графический пользовательский интерфейс. Все эти отличия определяются спецификой аппаратной платформы, на которой работает ОС, особенностями ее реализации или заложены разработчиками системы как присущие данной системе свойства. Для обеспечение совместимости необходимо организовать бесконфликтное сосуществование в рамках одной ОС нескольких способов управления ресурсами компьютера.