Потоки на уровни пользователя
В ядре есть табл. процессов, к-рыми оно управляет. О потоках ядру ничего не известно. Каждый процесс имеет табл. своих потоков и сам управляет ими. Ядро выделяет процессам кванты процессорного времени, а сами процессы распределяют это время между своими потоками. При чём переключение между потоками одного процесса производится не по таймеру, а в результате выполнения соответствующей инструкции в коде самих потоков. Достоинства: 1) Потоки могут быть реализованы в системе не поддерживающих многопоточность. 2)Минимум переключений контекстов за счёт переключения потоков одного процесса в рамках кванта времени. Недостатки: 1) Если 1 поток узурпирует всё процессорное время выделенное данному процессу, и не выполняет инструкцию передачи управления др. потокам, то др. потоки не выполняются. 2)При блокирующем системном вызове произведенном 1 потоком в состояние блокировки или ожидания переводится весь процесс поскольку ядро знает какой процесс сделал вызов но не знает о его потоках. В результате из-за одного потока не могут выполнятся остальные потоки данного процесса. Потоки на уровни ядра Ядро на ряду с табл. процессов имеет табл. потоков управляя непосредственно потоками каждый поток имеет своё состояние и не зависит от др. потоков одного процесса. Достоинства: 1)переключение между потоками производится по таймеру и каждый поток может получить своё процессорное время. 2)При блокирующем системном вызове в ожидание переводит только этот поток. Недостатки: Значительно большое количество переключений контекстов поскольку потоки планируются независимо от их принадлежности процессам. Смешанная реализация а)Мультиплексирование потоков в процессе выделяется несколько потоков управления ядра каждый из которых делится на потоки управления пользователя. Благодаря этому блокирующие вызовы и зацикливание потоков управления пользователя блокируют только небольшую часть потоков процесса, т.е. к-рые принадлежат 1 потоку ядра. Кроме того на много меньше переключений контекста благодаря наличию мн-ва потоков пользователя б) Потоки работают на уровни пользователя, при блокирующем системном вызове переводятся на уровне ядра. Переключение по таймеру нету.
Планирование и диспетчеризация процессов. Стратегии планирования. 3 уровня планирования: 1)долгосрочный(выбор процесса для поступления в систему) 2)краткосрочный или диспетчеризация(выбор из очереди готовых процессов процесса к-рый поступит на выполнение) 3)среднесрочный(выбор процесса для свопинга) Свопинг – это выгрузка одного из процессов целиком во вторичную память с последующем возвратом его в первичную. Существует вытесняющее и не вытесняющие планирование. Если в системе есть возможность возврата из выполнения непосредственно к готовности это вытесняющее, а при невытесняющем из выполнения только в ожидание на выход. Планирование производится вынужденное и невынужденное: 1)выполняемый процесс завершил работу и покидает с-му 2)выполняемый процесс перешёл в состояние ожидания 3)поступление нового процесса в очередь готовности 4)окончание кванта времени у выполняемого процесса Невытеснянное только в вынужденных случаях.
Планирование в системах пакетной обработки данных. Дисциплины FCFS, SJN, SRN. 1)FCFS(First Come First Served) Недостаток FCFS высокая зависимость от порядка поступления процесса в систему. Если раньше поступает более длительные процессы, то более короткому приходится очень долго ждать тем самым увеличивается время ожидания и полное время оборота. Достоинство дешевизна. 2)SJN(Shortest Job Next) Из очереди готовности на выполнение выбирается тот процесс к-рому необходимо наименьшее время на выполнение. Не реализуем поскольку в момент выбора процесса из очереди неизвестно сколько времени этому процессу в будущем понадобится для выполнения. Алгоритм практически оптимальный. 3)SRN(Shortest Remain Next) Модифицируется предыдущий алгоритм с вытеснением выполняемого процесса в случае поступления в систему нового процесса, к-рому необходимо для выполнения меньше времени чем выполнятся текущему. Недостаток не реализуется по той же причине что и предыдущий. Достоинство за счёт возможности вытеснения короткие процессы не будут ждать долго не зависимо от момента поступления в с-му.
Планирование в интерактивных системах. Дисциплина RR (круговое планирование), дисциплины приоритетного планирования. 1)RR(Round Robin) Вытесняющий алгоритм при котором все процессы поочередно получают кванты процессорного времени по окончанию к-рых становятся в конец очереди. При большом кванте времени RR вырождается в FCFS поскольку процесс успевает завершится за свой квант времени. Чем меньше квант времени тем меньше время оборота, но тем больше накладываются расходы на переключение между процессами поскольку больше самих переключений. 2) Приоритетное планирование Приоритет – это число определяет степень привилегированности процесса относительно других процессов. Приоритет абсолютный если новый более приоритетный процесс может вытеснить с выполнения текущий менее приоритетный. Приоритет относительный новый более приоритетный процесс будет ждать выполнения текущего менее приоритетного. Приоритеты могут изменятся в течении жизни цикла. Например со временем повышаться для того чтобы получить процессорное время.
|