- •1.Ос как расширенная машина
- •2.Ос как система управления ресурсами.
- •3.Особенности алгоритмов управления ресурсами.
- •Методы распределения памяти .
- •4.Особенноти аппаратных платформ.
- •5.Особенности областей использования
- •6. Особенности методов построения.
- •Управление процессами. Состояние процессов.
- •Управление процессами. Контекст и дескриптор процесса.
- •Управление процессами. Алгоритмы планирования процессов.
- •Проблема синхронизации процессов.
- •11. Средства синхронизации и взаимодействия процессов. Критическая секция.
- •Средства синхронизации и взаимодействия процессов. Тупики.
- •Средства синхронизации и взаимодействия процессов. Нити.
- •Управление памятью. Типы адресов.
- •Распределение памяти фиксированными разделами.
- •Распределение памяти разделами переменной величины (динамическими).
- •Перемещаемые разделы.
- •Страничное распределение памяти.
- •21. Странично-сегментное распределение.
- •Сегментное распределение памяти.
- •Физическая организация устройств ввода-вывода.
- •Организация программного обеспечения ввода-вывода.
- •Обработка прерываний. Драйверы устройств.
- •Независимый от устройств слой операционной системы. Пользовательский слой по.
- •28. Логическая организация файла.
- •Файловая система. Имена файлов.
- •Типы файлов.
- •Физическая организация и адрес файла.
- •31. Кэширование диска
- •Права доступа к файлу.
- •Общая модель файловой системы.
- •33. Современные архитектуры файловых систем
- •34. Распределенные файловые системы
- •35. Интерфейс файлового сервиса
- •Интерфейс сервиса каталогов.
- •Семантика разделения файлов в распределенных файловых системах.
- •Способы адресации в распределенных системах.
- •Кэширование в распределенных файловых системах.
- •Репликация в распределенных файловых системах.
- •Базовые примитивы передачи сообщений в распределенных системах.
- •Блокирующие и неблокирующие примитивы.
- •Буферизуемые и небуферизуемые примитивы.
- •Надежные и ненадежные примитивы.
- •Вызов удаленных процедур (rpc).
- •Проблемы взаимодействия операционных систем в гетерогенных сетях. Гетерогенность.
- •Основные подходы к реализации взаимодействия сетей.
- •Шлюзы в гетерогенных сетях.
- •Мультиплексирование стеков протоколов.
- •50. Вопросы реализации гетерогенных сетей. Варианты сетевого взаимодействия.
- •51.Вопросы реализации гетерогенных сетей
- •52.Сравнение вариантов организации взаимодействия сетей.
- •53.Службы именования ресурсов.
- •54.Доменный подход.
- •55.Четыре модели организации связи домена.
Средства синхронизации и взаимодействия процессов. Тупики.
Еще одна проблема синхронизации - взаимные блокировки, называемые также дедлоками (deadlocks), клинчами (clinch) или тупиками.
Пусть двум процессам, выполняющимся в режиме мультипрограммирования, для выполнения их работы нужно два ресурса, например, принтер и диск. И пусть после того, как процесс А занял принтер (установил блокирующую переменную), он был прерван. Управление получил процесс В, который сначала занял диск, но при выполнении следующей команды был заблокирован, так как принтер оказался уже занятым процессом А. Управление снова получил процесс А, который в соответствии со своей программой сделал попытку занять диск и был заблокирован: диск уже распределен процессу В. В таком положении процессы А и В могут находиться сколь угодно долго.
В рассмотренном примере тупик был образован двумя процессами, но взаимно блокировать друг друга могут и большее число процессов.
Проблема тупиков включает в себя следующие задачи:
предотвращение тупиков,
распознавание тупиков,
восстановление системы после тупиков.
Тупики могут быть предотвращены на стадии написания программ, то есть программы должны быть написаны таким образом, чтобы тупик не мог возникнуть ни при каком соотношении взаимных скоростей процессов.
Средства синхронизации и взаимодействия процессов. Нити.
Многозадачность является важнейшим свойством ОС. Для поддержки этого свойства ОС определяет и оформляет для себя те внутренние единицы работы, между которыми и будет разделяться процессор и другие ресурсы компьютера.
Эти внутренние единицы работы в разных ОС носят разные названия - задача, задание, процесс, нить. В некоторых случаях сущности, обозначаемые этими понятиями, принципиально отличаются друг от друга.
Нити, относящиеся к одному процессу, не настолько изолированы друг от друга, как процессы в традиционной многозадачной системе, между ними легко организовать тесное взаимодействие. В традиционных ОС понятие "нить" тождественно понятию "процесс". В действительности часто бывает желательно иметь несколько нитей, разделяющих единое адресное пространство, но выполняющихся параллельно, благодаря чему нити становятся подобными процессам (за исключением разделяемого адресного пространства).
Нити иногда называют облегченными процессами или мини-процессами.
Нити имеют собственные: программный счетчик, стек, регистры, нити-потомки, состояние.
Нити разделяют: адресное пространство, глобальные переменные, открытые файлы, таймеры, семафоры, статистическую информацию.
Управление памятью. Типы адресов.
Символьные имена присваивает пользователь при написании программы на алгоритмическом языке или ассемблере.
Виртуальные адреса вырабатывает транслятор, переводящий программу на машинный язык. Так как во время трансляции не известно, в какое место оперативной памяти будет загружена программа, то транслятор присваивает переменным виртуальные (условные) адреса, обычно считая по умолчанию, что программа будет размещена, начиная с нулевого адреса. Совокупность виртуальных адресов процесса называется виртуальным адресным пространством.
Физические адреса соответствуют номерам ячеек оперативной памяти, где в действительности расположены или будут расположены переменные и команды. Переход от виртуальных адресов к физическим может осуществляться двумя способами. В первом случае замену виртуальных адресов на физические делает специальная системная программа - перемещающий загрузчик.