Сьомий урок захищеного режиму.
Попередні :
- "Уроки захищеного режиму x86. Урок 0 та 1".
- "Уроки захищеного режиму x86. Урок 2".
- "Уроки захищеного режиму x86. Урок 3".
- "Уроки захищеного режиму x86. Урок 4".
- "Уроки захищеного режиму x86. Урок 5".
- "Уроки захищеного режиму x86. Урок 6".
Базою для цих матеріалів служать уроки уроки захищеного режиму Алексея Фрунзе.
Ліцензія на код -- GPL2+, ліцензія на тексти -- GFDL.
Довідкова інформація взята з відкритих джерел на просторах Інтернету, зокрема з офіційних мануалів Intel.
Традиційне і очевидне -- жодних гарантій.
Довідкова інформація взята з відкритих джерел на просторах Інтернету, зокрема з офіційних мануалів Intel.
Традиційне і очевидне -- жодних гарантій.
Урок номер 7
Продовження теми багатозадачності. Три задачі рівня привілей 0: main(), task1(), task2(). Переключення здійснює планувальник, який викликається з обробника переривань таймера, IRQ0. Багатозадачність із примусовим виштовхуванням (preemptive multitasking) у всій красі.
Нових елементів захищеного режиму не розглядається, на конкретному прикладі в деталях описано процес переключення задачі.
Реалізація поки тільки змішана, C-asm. Якщо буде зацікавленість, можна написати і чисто асемблерну.
Архів з файлами уроку: pm_07.zip.
Незначні зміни, доповнення та виправлення будуть вноситися прямо в цей файл, про що я старатимуся повідомляти.
На сьогодні все. Наступний урок буде присвячений сторінковій організації пам'яті.
На сьогодні все. Наступний урок буде присвячений сторінковій організації пам'яті.
Дякую за увагу
Якщо є запитання, виправлення, пропозиції - пишіть! Багато часу цьому приділяти, на жаль, не можу, але якщо з того буде комусь користь - спробуємо щось придумати.
Немає коментарів:
Дописати коментар