
- •1.Управление процессами
- •2.Управление памятью
- •4.Защита данных и администрирование
- •5.Интерфейс прикладного программирования
- •7.Сетевые и распределенные ос
- •8.Два значения термина «сетевая ос»
- •9.Функциональные компоненты сетевой ос
- •10. Сетевые службы и сетевые сервисы
- •11.Встроенные сетевые службы и сетевые оболочки
- •12. Требования к современным ос
- •13.Ядро и вспомогательные модули ос
- •14. Ядро и привилегированный режим
- •15. Многослойная структура ос
- •16. Аппаратная зависимость и переносимость ос. Типовые средства аппарат-ной поддержки ос.
- •18. Совместимость и множественные прикладные среды
- •19. Двоичная совместимость и совместимость исходных текстов
- •20. Мультипрограммирование
- •21. Мультипрограммирование в системах пакетной обработки
- •22. Мультипрограммирование в системах разделения времени
- •23. Мультипрограммирование в системах реального времени
- •24. Мультипроцессорная обработка
- •25. Планирование процессов и потоков
- •26. Понятия «процесс» и «поток»
- •27. Создание процессов и потоков
- •28. Планирование и диспетчеризация потоков
- •29. Состояния потока
- •30. Алгоритмы планирования
- •31. Функции ос по управлению памятью
- •32. Алгоритмы распределения памяти
- •33. Задачи ос по управлению файлами и устройствами
- •34..Логическая организация файловой системы
- •35. Физическая организация фс
32. Алгоритмы распределения памяти
Алгоритмы делятся на 2 класса: 1.С использованием внешней памяти 2.Без использования внешней памяти Алгоритмы без использования внешней памяти: 1.Распределение динамическими разделами 2.Распределение перемещаемыми разделами При загрузке нового процесса фрагменты памяти могут перемещаться с изменением содержащихся в них адресов.Следует ли назначать каждому процессу одну непрерывную область физической памяти или можно выделять память «кусками»? Должны ли сегменты программы, загруженные в память, находиться на одном месте в течение всего периода выполнения процесса или можно ее время от времени сдвигать? Что делать, если сегменты программы не помещаются в имеющуюся память? Разные ОС по-разному отвечают на эти и другие базовые вопросы управления памятью. Далее будут рассмотрены наиболее общие подходы к распределению памяти, которые были характерны для разных периодов развития операционных систем. Некоторые из них сохранили актуальность и широко используются в современных ОС, другие же представляют в основном только познавательный интерес, хотя их и сегодня можно встретить в специализированных системах. На рис. все алгоритмы распределения памяти разделены на два класса: алгоритмы, в которых используется перемещение сегментов процессов между оперативной памятью и диском, и алгоритмы, в которых внешняя память не привлекается.
33. Задачи ос по управлению файлами и устройствами
Подсистема ввода-вывода (Input-Output Subsystem) мультипрограммной ОС при обмене данными с внешними устройствами компьютера должна решать ряд общих задач, из которых наиболее важными являются следующие: 1) организация параллельной работа устройств ввода-вывода и процессора(Каждое устройство ввода-вывода вычислительной системы — диск, принтер, терминал и т. п. — снабжено специализированным блоком управления, называемым контроллером. Контроллер взаимодействует с драйвером — системным программным модулем, предназначенным для управления данным устройством. Контроллер периодически принимает от драйвера выводимую на устройство информацию, а также команды управления, которые говорят о том, что с этой информацией нужно сделать. Под управлением контроллера устройство может некоторое время выполнять свои операции автономно, не требуя внимания со стороны центрального процессора. Процессы, происходящие в контроллерах, протекают в периоды между выдачами команд независимо от ОС. Данная задача является классической задачей планирования систем реального времени и обычно решается на основе многоуровневой приоритетной схемы обслуживания по прерываниям. ); 2) согласование скоростей обмена и кэширование данных(Согласование скорости обычно достигается за счет буферизации данных в оперативной памяти и синхронизации доступа процессов к буферу. Часто в качестве буфера используется дисковый файл, называемый также спул-файлом (от spool — шпулька, тоже буфер, только для ниток). Типичный пример применения спулинга дает организация вывода данных на принтер.);3) разделение устройств и данных между процессами; 4) обеспечение удобного логического интерфейса между устройствами и остальной частью системы(Практически все современные операционные системы поддерживают в качестве основы такого интерфейса файловую модель периферийных устройств, когда любое устройство выглядит для прикладного программиста последовательным набором байт, с которым можно работать с помощью унифицированных системных вызовов (например, read и write), задавая имя файла-устройства и смещение от начала последовательности байт.); 5) поддержка широкого спектра драйверов с возможностью простого включения в систему нового драйвера; 6)динамическая загрузка и выгрузка драйверов; 7) поддержка нескольких файловых систем;8) поддержка синхронных и асинхронных операций ввода-вывода.