в багатозадачного операційної системи, що це означає?

G

Guest

Guest
Я намагаюся створити багатозадачності модуля.хто-небудь може пояснити мені, що насправді
станеться, коли створюється завдання в строк внутрішній регістр процесора таких як покажчик стека або інший регістр.Я використовую 8051 мікроконтроллер.

 
Мій любий друже

На 1-м я буду вибачитися за моє бідне Enghish.
Я сподіваюся, що ви розумієте, що я маю на увазі.

Тепер я буду використовувати AT89C51 (чіпа сумісні з MCS-51 продуктів), щоб пояснити:

Припустимо, що існує два завдання: Task1 і Task2

Коли працюють Task1, значення покажчика стека ОС ---- це 00H SP (SP == 00h), і стек діапазоні від 00H до 1FH.Цей покажчик стека також дані Task1 стек покажчика.
Перш ніж перейти з ОС Task1 до Task2, програма буде виконувати перерви (перерв може бути T1 переповнення буферу або т0, або інші else.But це переривання повинно бути стругані, коли ви пишете програми, це означає, що ви хочете з'являтися на переривання того часу), це приведе до переривання 4 речі:

1.
Push цінність деяких регістрів в стек, таких, як АКК, B, R0, R1 .... PSW ....Реєстрація будь-якого ви використовуєте в Task1, але змінити його значення в Task2.

2.
Дайте нове значення С.П., це значення має бути Task2 стек покажчика ---- СП є 20H, і стек діапазоні від 20H до 3FH.This покажчика стека також дані Task2 стек покажчика.

3
Поп дані Task2's з стека.

4.
Експлуатація Task2.Я сподіваюся, вище, є відповіддю вам потрібно.
Якщо який-небудь питання, пісок мені по електронній пошті, і я буду намагатися з усіх
aaaaaaaaaalyl (AT) 163.com

 
Для розуміння основних багатозадачності, ви можете прочитати книгу ЦС / OS II від Жана Лабросса глава 2, я знайшов посилання для скачування на цьому форумі десь.
Це дуже добре для отримання базового розуміння RTOS.

з повагою,

 

Welcome to EDABoard.com

Sponsor

Back
Top