- •Понятие и назначение ос. Проблемы, pешаемые ос.
- •Понятие пpоцесса. Понятие pесуpса. Виды pесуpсов ос.
- •Состав опеpационных систем. Назначение компонент.
- •Типы ос. Назначение, цели, отличия.
- •Основная идея, положенная в основу мультипpогpаммиpования Сpавнение однопpогpаммной и мультипpогpаммной обpаботки заданий.
- •Пpеимущества и недостатки мультипpогpаммиpования.
- •Свойства аппаpатуpы, тpебуемые для создания мультипpогpаммной ос.
- •Последовательность пpохождения задания чеpез мультипpогpаммную систему.
- •Основная пpоблема упpавления пpоцессоpами. Состояния пpоцессов, пеpеходы и пpичины пеpеходов.
- •Пpимеp диагpаммы изменения состояний пpоцессов в ос.
- •Введение в планиpование пpоцессов: Когда планиpовать? Категоpии алгоpитмов планиpования, Задачи алгоpитмов планиpования.
- •Планиpование в системах пакетной обpаботки - 4 алгоpитма
- •Планиpование в интеpактивных системах: Циклическое планиpование, Пpиоpитетное планиpование.
- •Планиpование в интеpактивных системах: Несколько очеpедей. Самый коpоткий пpоцесс - следующий. Гаpантиpованное планиpование.
- •Планиpование в интеpактивных системах: Лотеpейное планиpование. Спpаведливое планиpование.
- •Реализация пpоцессов: поля таблицы пpоцессов, обpаботка пpеpывания нижним уpовнем ос.
- •Потоки: Модель потока, Элементы потока.
- •Использование потоков: почему потоки необходимы? Тpи способа констpуиpования Web-сеpвеpа.
- •Реализация потоков в пpостpанстве пользователя.
- •Реализация потоков в ядpе. Активация планиpовщика.
- •Межпpоцессоpное взаимодействие: Тpи части пpоблемы. Состояние состязания.
- •Межпpоцессоpное взаимодействие: Кpитические области и четыpе условия.
- •Взаимное исключение с активным ожиданием: Запpещение пpеpываний, Пеpеменные блокиpовки, Стpогое чеpедование.
- •Взаимное исключение с активным ожиданием: Алгоpитм Петеpсона, Команда tsl.
- •Пpимитивы межпpоцессного взаимодействия. Пpоблема пpоизводителя и потpебителя с неустpанимым состоянием ожидания.
- •Семафоpы. Решение пpоблемы пpоизводителя и потpебителя с помощью семафоpов.
- •Пpимитивы межпpоцессного взаимодействия: Мьютексы, монитоpы.
- •Решение пpоблемы пpоизводителя и потpебителя с пpименением монитоpа.
- •Назначение менеджеpа памяти. Однозадачная система без подкачки на диск. Многозадачность с фиксиpованными pазделами.
- •Моделиpование многозадачности. Настpойка адpесов и защита.
- •Подкачка. Упpавление памятью с помощью битовых массивов.
- •Упpавление памятью с помощью связанных списков. Алгоpитмы выделения памяти - 5 алгоpитмов.
- •Виpтуальная память. Стpаничная оpганизация памяти. Диспетчеp памяти. Виpтуальные и физические адpеса.
- •Стpуктуpа элемента таблицы стpаниц. Буфеp быстpого пpеобpазования.
- •Алгоpитмы замещения стpаниц: Оптимальный алгоpитм, Алгоpитм nru - не использовавшаяся в последнее вpемя стpаница, Алгоpитм fifo - пеpвым пpибыл - пеpвым обслужен.
- •Алгоpитмы замещения стpаниц: Алгоpитм "Втоpая попытка", Алгоpитм "Часы", Алгоpитм lru - стpаница, не использовавшаяся дольше всего.
- •Пpогpаммное моделиpование алгоpитма lru: Алгоpитм nfu - pедко использовавшаяся стpаница, Алгоpитм "стаpение", Замещение стpаниц по запpосу и опеpежающая подкачка, Понятие pабочего набоpа стpаниц.
- •Алгоpитмы замещения стpаниц: Алгоpитм "pабочий набоp", Алгоpитм wsClock.
- •Сpавнение алгоpитмов замещения стpаниц: общая хаpактеpистика и применимость.
- •Политика pаспpеделения памяти: локальная и глобальная. Регулиpование загpузки. Размеp стpаницы.
- •Политика очистки стpаниц. Интеpфейс виpтуальной памяти.
- •Участие ос в пpоцессе подкачки стpаниц.
- •Обpаботка стpаничного пpеpывания. Пеpезапуск пpеpванной команды пpоцессоpа.
- •Блокиpование стpаниц в памяти. Хpанение стpаничной памяти на диске.
-
Потоки: Модель потока, Элементы потока.
Процесс можно рассматривать как поток исполняемых команд или просто поток. У потока есть счетчик команд, отслеживающий порядок выполнения действий. У него есть регистры, в которых хранятся текущие переменные. У него есть стек, содержащий протокол выполнения процесса, где на каждую процедуру, вызванную, но еще не вернувшуюся, отведен отдельный фрейм.
Потоки являются объектами, поочередно исполняющимися на центральном процессоре.
Концепция потоков добавляет к модели процесса возможность одновременного выполнения в одной и той же среде процесса нескольких программ, в достаточной степени независимых.
Несколько потоков, работающих параллельно в одном процессе, аналогичны нескольким процессам, идущим параллельно на одном компьютере. В первом случае потоки разделяют адресное пространство, открытые файлы и другие ресурсы. Во втором случае процессы совместно пользуются физической памятью, дисками, принтерами и другими ресурсами.
На рис а представлены три обычных процесса, у каждого из которых есть собственное адресное пространство и одиночный поток управления. На рис. б представлен один процесс с тремя потоками управления. В обоих случаях мы имеем три потока, но на рис. а каждый из них имеет собственное адресное пространство, а на рис. б потоки разделяют единое адресное пространство.
При запуске многопоточного процесса в системе с одним процессором потоки работают поочередно.
Элементы процесса - совместно используемые всеми потоками процесса: адресное пространство, глобальные переменные, открытые файлы, дочерние процессы, необработанные аварийные сигналы, сигналы и их обработчики, информация об использовании ресурсов
Элементы потока - индивидуальные для каждого потока: счетчик команд, регистры, стек, состояние
Если один поток открывает файл, этот файл тут же становится видимым для остальных потоков, и они могут считывать информацию и записывать ее в файл.
Концепция потоков состоит в возможности совместного использования набора ресурсов несколькими потоками для выполнения некой задачи в тесном взаимодействии. Как и любой обычный процесс (то есть процесс с одним потоком), поток может находиться в одном из нескольких состояний: рабочем, заблокированном, готовности или завершенном. Действующий поток взаимодействует с процессором.
У каждого потока свой собственный стек.
Запуск процесса -> 1 поток: Вызыв.библиотечная проц.:
Thread_create – создать новые потоки.
Thread_wait – ждать прекращения работы другого.
Thread_exit – прекратить работу.
Thread_yield – уступить очередь.
-
Использование потоков: почему потоки необходимы? Тpи способа констpуиpования Web-сеpвеpа.
Если 1.Большие программы-много бит =>м.б блокированы, если несколько || процессов используют одно адресное пространство.
2.Поток можно создать или уничтожить.
3.Увеличивается производительность, когда много вв/выв.
4.когда несколько ЦП, тогда начинается настоящий параллелизм.
Пример:
А. текстовый процессор
Text 300 страниц, 5 стр-> изменили предложение.
1 поток-user-под вв/выв
2 поток-форматирование
3 поток-периодическое сохранение
В. Большая электронная таблица
1. ввод чисел 2. Пересчет 3. AutoSave
C1. сервер Web-сайта Сервер<->запрос->в ком?:с HDD-блок, page, рабочий поток…
Диск while (true)
{get_next_regust(&Buf);
hand_on_work(&Buf);}
рабочий поток
while (true){
wait_for_work(&Buf);
look_for_page_in_cashe(&Buf,page);
if(page_not_in_cache(&page))
renl_page_from_disk(&Buf,&page);
return_page(&page);}
C2. Нет потока->сервер блокир->производ↓
C3. пусть readDisk без блокир. Процедуры должны вызывать рез-т:
-сразу запустила
-что-то произошло.
Сервер записывает следующее состояние потока, затем переходит к next запросу.
Сервер должен хранить состояние всех потоков. Получается конечный автомат.
Преимущества потока:
-Сохраняет модель послед-х процессов
-используются запросы с блокировкой, есть параллелизм(↑производит)
3 способа конструирования сервера:
Потоки - Параллелизм, системные запросы с блокировкой
Процесс с одним потоком - Нет параллелизма, системные запросы с блокировкой
Конечный автомат - Параллелизм, системные запросы без блокировки, прерывания
D. процес., которые обрабатывают много данных: чт, зп, обраб.
1 поток-читает
2 поток-cal_обраб.
3 поток-запись.
R/W блокир поток, а не процесс. Общение ч/з буфера.