Дисп-ция в Novell NetWare.
Сист, в к-рой исп-ся кооперативная мультизадачность, сист дисп-ции без перераспределения вр проц-ра. По мере развития моделей распределенных вычислеий часть прикл вычислений с клиентский комп-ров стали переносить на серверы. Совр пром СУБД кр собственно данных хранят и проц-ры их обработки, т н хранимые проц-ры. Нач с версии 4.1 Novell NetWare исп-ся сист планирования на основе исп-ния очередей 6 ур-нец приоритетов. Есть понятие тек работы, т е приоритетной работы, к-я должна быть вып-на в 1-ю очередь. Квантования нет. Чтобы перевести работу из обычной в тек, нужно вызвать спец ф-ю. Можно огр-ть кол-во тек работ, планируемых подряд. Приоритеты: самый высокий – прерывания; тек работы; обычные работы (или нити); временно-приостановленные нити (приост с пом спец ф-ий орг-ции ожидания – в теч некот вр или на семафоре); перманентно приостановленные нити (мр-во балансировки загрузки проц-ра) – выводятся из конк-ции за вр проц-ра); низкоприоритетные нити – когда делать нечего. Особ-ти управления процессами в Win2000. Введены понятия задание и нить (<>поток). Задание предст собой объект, к-рый исп-ся для управления прцессом или неск процессами как группой. Кажд процесс может входить только в одно задание. Для задания можно задать огр-ния, к-е будут связаны со всеми вход в него процессами: 1)макс кол-во процессов, вход в это задание, к-е могут быть активизированы одновр; 2)общий лимит вр для вып-я всех процессов, вход в зад-е и для кажд отдельно; 3) класс планирования для процессов, вход в зад-е (он опред-ет длит-ть кванта вр для потоков процесса); 4)приоритетные классы процессов; 5)лимит на вирт пам; 6)лимит на рабочую обл пр-ммы (макс и мин); 7)ограничения, связанные с защитой. Нить или волокно – это объект ОС (fiber), к-ый считается облегченным потоком (поток – облегченный процесс). Эта программная ед-ца невидима ядром ОС (для диспетчера). Выполнением нитями может заниматься сам прогр-т. Он сам опр-ет, в какой мом начать вып-е нити. Призапуске ехе-файла порождается процесс. Чтобы вып-ть потоки, ОС запускает первич поток. Для реш-я задач, к-е можно распараллелить, первич поток распарал-ся. Дисп-цей потоков занимается ОС.Из потоков можно породить нити. 1-я нить порождается пробр-ем потока в нить ConvertThreadToFiber. После этого он перестает быть объектом дисп-ции. Чтобы начать вып-е нити, прогр-т должен написать в прогр-мме SwitchToFiber. Для ост-ных нитей – CreateFiberObject. Open – открыть созданную нить. Когда заверш-ся поток, заверш-ся все нити. Проблема взаимного исключения. Эта задача возникает при совместном исп-нии разделяемых рес неск процессами, причем в рез-те совм исп-ния рес могут быть разрушены. Классич мех-м, исп-мый при решении з вз искл-я – кр секции. Кр секц – это фрагмент кода пр-ммы, те п-ть операторов, при вып-нии к-ых происх обращение к разделяемым данным, причем парал-ное вып-е неск процессами своих кр с может привести к разрушению или получению неверного рез-та. Св-ва кр с: 1)В кажд мом вр только 1 процесс может вып-ть свою кр с по отношению к некот рес. По кажд рес создается своя кр с. Одна кр с может быть вложена в др. Может возникнуть тупик; 2)Ни один процесс не должен беск долго ждать входа в кр с; 3)ни один процесс не должен беск долго нах-ся в своей кр с; 4)ни один процесс, к-ый нах-ся вне своей кр с, не должен блокировать вход в кр с другим процессам. Будем считать: а)операии чтения и записи неделимы (реально это не так); б)пр-мма не может быть прервана при вып-нии кр с (ктрл-алт-дел напр); в)относит скорости процессов неизвестны (в каком пор подойдут к кр с?); г)нет приоритетов (при одновр подходе к кр с не знаем, кто в нее войдет).
|