
- •Понятие операционная система
- •Дескрипторы процессов и потоков
- •Операции над процессами и потоками
- •Создание процесса
- •Алгоритм -Первым пришёл первым обслужен (fcfs)
- •Алгоритм- кратчайшая задача первая (sjf)
- •Приоритетное планирование
- •Алгоритм- самый короткий следующий
- •Алгоритм- гарантированного планирования
- •Планирование с использованием многоуровневых очередей с обратной связью
- •Алгоритм планирования в Windows 2000-2003
- •Алгоритм планирования Unix
- •Алгоритм планирования в Linux
- •Управление памятью
- •Оверлейная структура
- •Свопинг
- •Логическая и физическая организация файлов
- •Физическая организация и адрес файла
- •Модель файловой системы
- •Отображение в память файлов
- •Физическая структура ntfs
- •Журналирование ntfs
- •Особенности дефрагментации ntfs
- •Сравнение файловых систем различны ос
Алгоритм планирования Unix
Многозадачный алгоритм планирования разработан в интерактивных системах. У алгоритма планирования имеются 2 уровня: 1-Низкоуровневый 2-Высокоуровневый. У разных разновидностей Unix-систем несколько отличающиеся системы. В низкоуровневых используется несколько очередей, с каждой очередью определён приоритет или диапазон приоритетов. Процессы разделены на пользовательские и системные. Отрицательные приоритеты выше положительных.
Принцип работы: Низкоуровневый планировщик просматривает очередь с высокого приоритета. Из этой очереди он выбирает и выполняет первый процесс. Размер кванта равен 100 мл секунд или пока не заблокируется. Если выполняется весь квант то задача помещается в конец очереди. Раз в секунду приоритеты пересчитываются в очереди. Приоритет = использованию центра процессора + показатель любезности + некоторая жестоко зашитая база. Использование центрального процессора в таких таймерах в секунду которую процессор отработал в последнее время. Показатель любезности в диапазоне от -20 до +19. Высокоприоритетные могут назначать приоритеты от -20 до -10
Алгоритм планирования в Linux
В операционной системе Linuks 3 класса потоков: 1-Классы реального времени- обслуживаются по алгоритму fi for. 2-Потоки реального времени, но обслуживаются в порядке циклической очереди. 3-Потоки разделения времени пользовательские, системные. Потоки реального времени могут прерываться приоритетными. У каждого потока есть приоритет по умолчанию +20. Квант времени 10 мл секунд. Порядок пересчета приоритетов следующий:1 -Если класс реального времени в некоторую переменную вписывается 1000+приоритет. 2-Если время кванта оставшегося до его работы больше 0, то присваивается приоритет + квант времени.
Взаимодействие потоков и проблемы синхронизации
Задачи взаимного исключения
Семафоры
Тупики
Синхронизирующие объекты ОС
Задача «читатели-писатели»
Определить ее можно следующим образом. Имеются данные, совместно используемые рядом процессов. Данные могут находиться в файле, в блоке основной памяти или даже в регистрах процессора. Имеется несколько процессов, которые только читают эти данные (читатели), и несколько других, которые только записывают данные (писатели). При этом должны удовлетворяться следующие условия.
Любое число читателей могут одновременно читать файл.
Записывать информацию в файл в определенный момент времени может только один писатель.
Когда писатель записывает данные в файл, ни один читатель не может его читать.
Перед тем как приступить к работе, разделим эту задачу на две: обычную задачу взаимоисключений и задачу производителя/потребителя. В задаче читателей/писателей читатели не записывают данные, а писатели их не читают. Более общей является ситуация, когда каждый процесс может как читать, так и писать данные (и которая включает рассматриваемую задачу как частный случай). В таком случае мы можем объявить любую часть процесса, которая обращается к данным, критическим разделом и использовать простейшее решение на основе взаимоисключений. Причина, по которой мы рассматриваем частный случай более общей задачи, заключается в том, что общее решение значительно замедляет работу, в то время как для частного случая имеется гораздо более эффективное решение. Представим себе библиотечный каталог, в котором читатели могут искать нужную им литературу, а один или несколько работников библиотеки могут этот каталог обновлять. При общем решении читатели будут вынуждены входить в каталог по одному, что, конечно, приведет к неоправданным задержкам и очередям. Кроме того, работники библиотеки при внесении изменений не должны мешать друг другу, а также не должны допускать читателей к данным в момент их изменения, чтобы предотвратить получение читателем недостоверной информации.
Можно ли рассматривать задачу производителя/потребителя как частный случай задачи читателей/писателей с единственным писателем (производитель) и единственным читателем (потребитель)? Оказывается, нет. Производитель — не просто писатель. Он должен считывать значение указателя очереди, чтобы определять, куда следует вносить очередную порцию информации, и выяснять, не заполнен ли буфер. Аналогично и потребитель является не просто читателем, так как он изменяет значение указателя очереди, указывая, что элемент удален из буфера.