- •Часть 1. Функции, состав и назначение ос
- •Место ос в структуре вычислительной системы
- •Две основные функции, выполняемые операционными системами.
- •Эволюция ос. Многозадачность и режим разделения времени
- •Эволюция ос. Дружественный интерфейс. Сетевые и распределенные ос
- •Классификация ос и краткая характеристика каждого класса
- •Требования, предъявляемые к современным ос. Их краткая характеристика
- •Часть 2. Архитектура ос
- •Монолитные ос
- •Многоуровневые ос. Основные и вспомогательные модули
- •Ядро ос в привилегированном положении
- •Многослойная структура ос и ядра
- •Виртуальные машины и гипервизоры
- •Микроядерная архитектура ос
- •Структура типовой unix-подобной ос
- •Структура ос семейства Windows nt
- •Аппаратная зависимость ос
- •Переносимость ос
- •Часть 3. Управление процессами и потоками
- •Мультипрограммирование или многозадачность. Вытесняющая и невытесняющая многозадачность.
- •Описатели процессов и потоков. Состояния процессов и потоков.
- •Описатели процессов и потоков. Операции над процессами и потоками.
- •20. Планирование и диспетчеризация. Контекст потока
- •Обработка прерываний. Типы прерываний.
- •Системные вызовы. Синхронный и асинхронный режим.
- •Синхронизация процессов и потоков. Блокирующие переменные и семафоры Дийкстры.
- •24. Сигналы. Реакция ос и приложений на сигналы.
- •Часть 4. Управление памятью
- •25. Функции ос по управлению памятью. Организация памяти.
- •26. Иерархия зу. Классификация зу.
- •27. Типы адресов памяти. Способы структурирования вап процесса.
- •28. Алгоритмы распределения памяти без использования внешней памяти. Достоинства и недостатки.
- •29. Виртуальная память и свопинг. Реализация виртуальной памяти.
- •30. Страничное распределение памяти. Преобразование виртуальных адресов в физические.
- •31. Методы выбора страницы для выгрузки ее на диск. Примеры.
- •32. Сегментное и сегментно-страничное распределение памяти. Отличительные особенности.
- •33. Разделяемые и невыгружаемые области памяти.
- •Часть 5. Управление данными
- •34. Основные функции подсистемы управления вводом-выводом.
- •35. Многослойная организация по ввода-вывода.
- •36. Менеджер (диспетчер) ввода-вывода.
- •37. Многоуровневые драйверы.
- •38. Файловая система. Логическая организация. Цели и задачи.
- •39. Типы файлов. Иерархическая структура фс.
- •40. Именование файлов. Типы имен файлов. Примеры.
- •41. Атрибуты файлов. Способы их хранения в конкретных файловых системах.
- •43. Физическая организация и адресация файла. Примеры.
- •Часть 6. Сетевые ос 46. Концепции распределенной обработки данных. Двухзвенные приложения.
- •48. Механизм сокетов. Примитивы передачи сообщений. (лекция 6)
- •Часть 7. Системные программы 49. Понятие и структура систем программирования.
- •50. Интерпретаторы, ассемблеры, макроассемблеры.(лекция 7)
- •51. Отладчики и загрузчики. Функции и назначение (лекция 7)
- •52. Процесс трансляции. Этапы, фазы и проходы.
- •53. Роль рекурсии в грамматике. Примеры. (лекция 7)
- •54. Порождения. Левое и правое порождения. Дерево синтаксического разбора. (лекция7)
Аппаратная зависимость ос
Многие ОС успешно работают на различных аппаратных платформах без существенных изменений в своем составе
• В ОС выделяется слой машинно-зависимых компонентов ядра, а остальные слои делаются общими для
разных платформ
• Практически все современные аппаратные платформы имеют некоторый набор средств аппаратной
поддержки ОС
Средства поддержки привилегированного режима основываются на специальном регистре (часто PSW или MSW), в котором содержатся признаки текущего режима работы ОС
Средства трансляции адресов выполняют операции по преобразованию адресов виртуальной памяти, которые содержатся в программных кодах процесса, в адреса физической памяти.
• Средства переключения процессов предназначены для быстрого сохранения контекста приостанавливаемого процесса и восстановления контекста процесса, который становится активным
• Система прерываний позволяет компьютеру реагировать на внешние события, синхронизировать выполнение процессов и работу устройств ввода-вывода, быстро переключаться с одной программы на другую
Системный таймер, обычно реализуемый в виде регистра-счетчика, необходим ОС для выдержки интервалов времени, прерывания которого используются при планировании процессов
• Средства защиты разделов памяти обеспечивают на аппаратном уровне проверку возможности программы
производить над данными из определенного раздела памяти такие операции как чтение, запись или
выполнение.
Переносимость ос
Если код ОС может быть сравнительно легко перенесен с процессора одного типа на процессор другого типа и с аппаратной платформы одного типа на аппаратную платформу другой типа, то такую ОС называют
переносимой, или мобильной.
Чтобы обеспечить свойство мобильности разработчики должны придерживаться следующих правил:
• Большая часть кода должна быть написана на языке, трансляторы которого имеются на тех вычислительных машинах, куда предполагается переносить систему
• Объем машинно-зависимых частей кода, которые непосредственно взаимодействуют с аппаратными средствами, должен быть по возможности минимизирован
• Аппаратно-зависимый код должен быть изолирован в нескольких модулях
Часть 3. Управление процессами и потоками
Мультипрограммирование или многозадачность. Вытесняющая и невытесняющая многозадачность.
Мультипрограммирование – способ организации вычислительного процесса, при котором на одном процессоре попеременно выполняются сразу несколько программ.
Процессы совместно используют не только процессор, но и другие вычислительные ресурсы
Критерии эффективности вычислительной системы:
пропускная способность
удобство работы пользователей
реактивность системы
В зависимости от критерия, выбранного в качестве основного, системы делятся на:
–Пакетные
–Разделения времени
–Реального времени
• Современные ОС могут поддерживать одновременно несколько режимов работы.
Невытесняющая многозадачность - тип многозадачности, при котором операционная система одновременно загружает в память два или более приложений, но процессорное время предоставляется только основному приложению. Для выполнения фонового приложения оно должно быть активизировано. Подобная многозадачность может быть реализована не только в операционной системе, но и с помощью программ-переключателей задач. В этой категории известна программа DESQview, работавшая под DOS и выпущенная первый раз в 1985 году.
Вытесняющая или приоритетная многозадачность (режим реального времени)
Вид многозадачности, в котором операционная система сама передает управление от одной выполняемой программы другой в случае завершения операций ввода-вывода, возникновения событий в аппаратуре компьютера, истечения таймеров и квантов времени, или же поступлений тех или иных сигналов от одной программы к другой. В этом виде многозадачности процессор может быть переключен с исполнения одной программы на исполнение другой без всякого пожелания первой программы и буквально между любыми двумя инструкциями в её коде. Распределение процессорного времени осуществляется планировщиком процессов. К тому же каждой задаче может быть назначен пользователем или самой операционной системой определенный приоритет, что обеспечивает гибкое управление распределением процессорного времени между задачами (например, можно снизить приоритет ресурсоёмкой программе, снизив тем самым скорость её работы, но повысив производительность фоновых процессов). Этот вид многозадачности обеспечивает более быстрый отклик на действия пользователя.
Преимущества: возможность полной реализации многозадачного ввода-вывода в ядре ОС, когда ожидание завершения ввода-вывода одной программой позволяет процессору тем временем исполнять другую программу. Сильное повышение надежности системы в целом, в сочетании с использованием защиты памяти — идеал в виде «ни одна программа пользовательского режима не может нарушить работу ОС в целом» становится достижимым хотя бы теоретически, вне вытесняющей многозадачности он не достижим даже в теории. Возможность полного использования многопроцессорных и многоядерных систем.
Недостатки: необходимость особой дисциплины при написании кода, особые требования к его реентрантности, к защите всех разделяемых и глобальных данных объектами типа критических секций и mutex’ов.
Реализована в таких ОС, как:
VMS
Linux
в пользовательском режиме (а часто и в режиме ядра) всех UNIX-подобных ОС, включая версии Mac OS X, iOS; Symbian OS
в режиме ядра ОС Windows 3.x — только при исполнении на процессоре 386 или старше, «задачами» являются только все Windows-приложения вместе взятые и каждая отдельная виртуальная машина ДОС, между приложениями Windows вытесняющая многозадачность не использовалась
Windows 95/98/ME — без полноценной защиты памяти, что служило причиной крайне низкой, на одном уровне с MS-DOS, Windows 3.x и Mac OS версий до X — надежности этих ОС
Windows NT/2000/XP/Vista/7 и в режиме ядра, и в пользовательском режиме.
AmigaOS — все версии, до версии 4.0 без полноценной защиты памяти, что на практике для системных программ почти не сказывалось на надёжности из-за высокой стандартизированности, прозрачных API и SDK. Программы ориентированные на «железо» Амиги, наоборот не отличались надёжностью.
