- •Операционные системы: определение, классификация, задачи, основные функции.
- •2) Межпроцессорное взаимодействие
- •Многозадачность: определения; механизмы переключения задач.
- •Кооперативная многозадачность.
- •Вытесняющая многозадачность.
- •Алгоритмы переключения задач.
- •Очереди задач и система приоритетов.
- •Организация памяти: сегментная, страничная.
- •Память приложения: память команд, память данных, стек.
- •Загрузка приложения в память, статическая память.
- •Динамическая память, алгоритмы управления.
- •Виртуальная память, файл подкачки.
- •Многопоточные программы, стандарт posix.
- •Синхронизация потоков.
- •Семафоры, алгоритм Дейкстры.
- •Взаимодействие между потоками.
- •Файловые системы: определение, виды и функции.
- •Архитектура файловых систем на примере fat16.
- •Особенности файловых систем для различных носителей данных.
- •Журналирование и квоты в файловых системах.
- •Параллельные вычисления; закон Амдала.
- •Структуры параллельных вычислительных систем.
- •Семейство операционных систем unix.
- •Основные концепции unix.
Многозадачность: определения; механизмы переключения задач.
Определение
Многозадачность - свойство операционной системы или среды выполнения обеспечивать возможность параллельной (или псевдопараллельной) обработки нескольких задач. Истинная многозадачность операционной системы возможна только в распределённых вычислительных системах.
Виды многозадачности:
Процессная многозадачность (основанная на процессах — одновременно выполняющихся программах). Здесь программа — наименьший элемент управляемого кода, которым может управлять планировщик операционной системы. Более известна большинству пользователей (работа в текстовом редакторе и прослушивание музыки).
Поточная многозадачность (основанная на потоках). Наименьший элемент управляемого кода — поток (одна программа может выполнять 2 и более задачи одновременно).
Многопоточность — специализированная форма многозадачности.
Типы псевдопараллельной многозадачности |
|
Простое переключение |
«+»: можно задействовать уже работающие программы, написанные без учёта многозадачности.
«-»: невозможно в неинтерактивных системах, работающих без участия человека. Взаимодействие между программами крайне ограничено. |
Совместная (кооперативная) многозадачность |
«+»: отсутствие необходимости защищать все разделяемые структуры данных объектами типа критических секций и мьютексов.
«-»:
|
Вытесняющая (приоритетная) многозадачность – «режим реального времени».
Примеры ОС:
|
«+»:
«-»: необходимость особой дисциплины при написании кода, особые требования к его реентерабельности, к защите всех разделяемых и глобальных данных объектами типа критических секций и мьютексов. |