Студопедия

КАТЕГОРИИ:


Архитектура-(3434)Астрономия-(809)Биология-(7483)Биотехнологии-(1457)Военное дело-(14632)Высокие технологии-(1363)География-(913)Геология-(1438)Государство-(451)Демография-(1065)Дом-(47672)Журналистика и СМИ-(912)Изобретательство-(14524)Иностранные языки-(4268)Информатика-(17799)Искусство-(1338)История-(13644)Компьютеры-(11121)Косметика-(55)Кулинария-(373)Культура-(8427)Лингвистика-(374)Литература-(1642)Маркетинг-(23702)Математика-(16968)Машиностроение-(1700)Медицина-(12668)Менеджмент-(24684)Механика-(15423)Науковедение-(506)Образование-(11852)Охрана труда-(3308)Педагогика-(5571)Полиграфия-(1312)Политика-(7869)Право-(5454)Приборостроение-(1369)Программирование-(2801)Производство-(97182)Промышленность-(8706)Психология-(18388)Религия-(3217)Связь-(10668)Сельское хозяйство-(299)Социология-(6455)Спорт-(42831)Строительство-(4793)Торговля-(5050)Транспорт-(2929)Туризм-(1568)Физика-(3942)Философия-(17015)Финансы-(26596)Химия-(22929)Экология-(12095)Экономика-(9961)Электроника-(8441)Электротехника-(4623)Энергетика-(12629)Юриспруденция-(1492)Ядерная техника-(1748)

Механизмы переключения контекстов




 
 

 

 


активная задача знает более сложные механизм,

в какой момент осуществляется чем у синхронных

переключение, т.е. это переключение генерирует сама задача

       
   
 

 


Замечания: любая задача, попадая на уровень ядра приобретает статус процесса; каждому процессу сопоставляется стек, в который записываются данные, соответствующие контексту этого процесса; далее при работе процесса поддерживается обновление стека информацией; это позволяет заморозить/разморозить задачу.

 

Существуют 2 пути:

1) полностью написать эту систему;

2) использовать программный трюк, который позволял бы использовать возможности однопользовательской ОС для создания многопользовательской ОС.

 

Вызов подпрограммы:

В однопользовательских ОС имеется всего один стек для выполнения программ.

2 требования к организации подпрограммы:

1) параметры процедуры передаются по значению, а обратно передается результат;

2) процедуры могут вызываться рекурсивно в явном виде или неявном.

 

Пусть есть 2 подпрограммы:

 

P (основная программа) Q (вызываемая программа)

 

Для программы P:

- подготавливаются параметры для передачи;

- сохраняется контекст программы для возвращения;

- замена контекста P на контекст Q.

 

Для программы Q:

- подготавливаются параметры для ее контекста;

- замена контекста Q на контекст P.

 

Примечание: параметры передаются через стек.

 

           
     
В SS:SP ® CS:IP
 
Состояние стека
 
 

 


Попрограмма(x, y), например, Pascal, а в Си – наоборот

 

При дальнем вызове до y в Pascal’e:

mov ax, [bp+6]; 4 байта – дальний вызов (сегмент и смещение)

bp+2 – первый адрес

Замечание:

1) не всегда удобно использовать переменные (лучше использовать указатель на эту переменную); если используется указатель на переменную, то необходимо помнить:

 

les si, ук_х; ES:SI – CS и ES:[SI+2] - IP

 

2) a) Pascal запоминает все РОНы (РОН – Регистр Общего Назначения);

б) Си запоминает только те регистры, которые участвуют в подпрограмме;

в) Assembler вообще ничего не запоминает.

 

Используя язык Си, следует запоминать дополнительно значения всех регистров в той технологии, которая будет использована в переключении контекстов.

 

Вызов сопрограммы:

 

2 сложности (проблемы):

1) окончание подпрограммы, имеющей статус сопрограммы;

 

           
   
     
(схема окончания работы подпрограммы в стеке на языке Assembler)
 
ENDP
 
 

 

 


2) сохранение контекста каждой сопрограммы (где-нибудь в ядре) и развитие изменения контекста каждой сопрограммы;

 

                       
 
Задача 1
 
Задача 2
 
Задача 3
 
       

 

 


CS:IP

Пусть мы написали 2 функции:

1) создание нового процесса;

 

Дескриптор – указатель на область памяти, где хранятся данные о контексте.

 

2) переключение от “старого” процесса к “новому” (дескр_стар, дескр_нов);

ее подфункции:

а) модернизация точки возврата “старого” процесса;

б) переключение на “новый” процесс;

 

@ - точка возврата

 

@ находится по адресу SS:SP

 

       
 
 
 
1 дескриптор
 
2 дескриптор

 

 





Поделиться с друзьями:


Дата добавления: 2013-12-13; Просмотров: 302; Нарушение авторских прав?; Мы поможем в написании вашей работы!


Нам важно ваше мнение! Был ли полезен опубликованный материал? Да | Нет



studopedia.su - Студопедия (2013 - 2024) год. Все материалы представленные на сайте исключительно с целью ознакомления читателями и не преследуют коммерческих целей или нарушение авторских прав! Последнее добавление




Генерация страницы за: 0.008 сек.