
- •1. Операционная система и ее основные функции
- •2. Основные этапы развития ос Первый период (1945–1955 гг.). Операционных систем нет
- •Второй период (1955 г.–начало 60-х). Пакетные операционные системы
- •Третий период (начало 60-х – 1980 г.). Компьютеры на основе интегральных микросхем. Первые многозадачные ос
- •Четвертый период (с 1980 г. По настоящее время). Персональные компьютеры. Классические, сетевые и распределенные системы
- •3. Классификация операционных систем
- •4. Принцип модульности при построении ос
- •5. Принцип особого режима работы при построении ос
- •6. Принцип виртуализации при построении ос
- •7. Принцип мобильности при построении ос
- •8. Принцип совместимости при построении ос
- •9. Принцип генерируемости при построении ос
- •10. Принцип открытости при построении ос
- •11. Принцип обеспечения безопасности вычислений при построении ос
- •12. Макроядерная структура операционных систем
- •13. Микроядерная структура операционных систем
- •14. Среды и оболочки операционных систем
- •15. Понятие потока, процесса, задачи Понятия «процесс» и «поток»
- •16. Понятие прерывания, исключительной ситуации
- •17. Функции ос по управлению памятью. Простейшие схемы управления памятью.
- •Простейшие схемы управления памятью
- •18. Управление памятью. Схема с фиксированными разделами
- •Один процесс в памяти
- •Оверлейная структура
- •Динамическое распределение. Свопинг
- •19. Управление памятью. Схема с переменными разделами
- •20. Управление памятью. Страничная организация памяти Страничная память
- •21. Управление памятью. Сегментная организация памяти
- •22. Прерывание. Обработка прерываний. Исключительные ситуации
- •Обработка прерываний и ошибок
- •23. Управление вводом-выводом в ос. Разделяемые и неразделяемые ресурсы Структура системы ввода-вывода
- •24. Буферизация и кэширование Буферизация и кэширование
- •25. Понятие спулинга, его назначение Spooling и захват устройств
- •26. Алгоритмы планирования запросов к жесткому диску. Алгоритм fcfs Алгоритмы планирования запросов к жесткому диску
- •Алгоритм First Come First Served (fcfs)
- •27. Алгоритмы планирования запросов к жесткому диску. Алгоритм sstf Алгоритмы планирования запросов к жесткому диску
- •Алгоритм Short Seek Time First (sstf)
- •28. Алгоритмы планирования запросов к жесткому диску. Алгоритм sсan и look Алгоритмы планирования запросов к жесткому диску
- •Алгоритмы сканирования (scan, look)
- •29. Управление процессами. Основные состояния процесса
- •Состояния процесса
- •30. Планирование процессов (задач). Алгоритмы планирования
- •31. Дисциплина диспетчеризации процессов (задач) fcfs
- •32. Дисциплина диспетчеризации процессов (задач) rr
- •33. Проблемы организации параллельных вычислений.
- •34. Тупиковые ситуации и способы их разрешения.
- •Способы предотвращения тупиков
- •Способы предотвращения тупиков путем тщательного распределения ресурсов. Алгоритм банкира
- •Предотвращение тупиков за счет нарушения условий возникновения тупиков Нарушение условия взаимоисключения
- •Нарушение условия ожидания дополнительных ресурсов
- •Нарушение принципа отсутствия перераспределения
- •Hарушение условия кругового ожидания
- •35. Страничная недостаточность («голодание» процессора) и ее обработка
- •36. Файловая система. Основные функции файловой системы
- •37. Простейшая таблица оглавления тома и её элементы
- •38. Логическая структура разделов диска на примере ibm- и ms-совместимых файловых систем
7. Принцип мобильности при построении ос
Мобильность, или переносимость, означает возможность и легкость переноса операционной системы на другую аппаратную платформу. Мобильная операционная
система обычно разрабатывается с помощью специального языка высокого уровня,
предназначенного для создания системного программного обеспечения. Такой язык помимо поддержки высокоуровневых операторов, типов данных и модульных
конструкций должен позволять непосредственно использовать аппаратные возможности и особенности процессора. Этот язык системного программирования должен быть достаточно распространенным и технологичным. Одним из таких языков является язык С. В последние годы язык C++ также стал использоваться для этих целей, поскольку идеи объектно-ориентированного программирования оказались плодотворными не только для прикладного, но и для системного программирования. Большинство современных операционных систем были созданы именно как объектно-ориентированные.
Если при разработке операционной системы сразу не следовать принципу мобильности, то в последующем очень трудно обеспечить перенос на другую платформу как самой операционной системы, так и программного обеспечения, созданного для нее. Например, компания IBM потратила долгие годы на перенос своей операционной системы OS/2, созданной для персональных компьютеров с процессором архитектуры ia32, на платформу PowerPC. Но даже если изначально в спецификации на операционную систему заложить требование легкой переносимости, то не значит, что его в последующем будет просто реализовать. Подтверждением тому является тот же проект OS/2-WindowsNT. Как известно, проект WindowsNT обеспечивал работу этой операционной системы на процессорах с архитектурой ia32, MIPS, Alpha (DEC), PowerPC. Однако в последующем трудности с реализацией этого принципа привели к тому, что нынешние версии операционных систем класса Windows NT (Windows 2000/XP) уже создаются только для процессоров с архитектурой ia32 и не поддерживают MIPS, Alpha и PowerPC.
8. Принцип совместимости при построении ос
Одним из аспектов совместимости является способность операционной системы
выполнять программы, написанные для других систем или для более ранних версий
данной операционной системы, а также для другой аппаратной платформы.
Необходимо разделять вопросы двоичной совместимости и совместимости на уровне
исходных текстов приложений. Двоичная совместимость достигается в том случае,
когда можно взять исполняемую программу и запустить ее на выполнение на
другой операционной системе. Для этого необходимы: совместимость на уровне
команд процессора, совместимость на уровне системных вызовов и даже на уровне
библиотечных вызовов, если они являются динамически связываемыми.
Совместимость на уровне исходных текстов требует наличия соответствующего
транслятора в составе системного программного обеспечения, а также совместимости
на уровне библиотек и системных вызовов. При этом необходима перекомпиляция
имеющихся исходных текстов в новый выполняемый модуль.
Одним из средств обеспечения совместимости программных и пользовательских
интерфейсов является соответствие стандартам POSIX. Эти стандарты позволяют
создавать программы в стиле UNIX, которые впоследствии могут легко переноситься
из одной системы в другую.