понеділок, 11 липня 2011 р.

Уроки захищеного режиму x86. Урок 7

Сьомий урок захищеного режиму. 

Попередні : 
  1. "Уроки захищеного режиму x86. Урок 0 та 1". 
  2. "Уроки захищеного режиму x86. Урок 2". 
  3. "Уроки захищеного режиму x86. Урок 3". 
  4. "Уроки захищеного режиму x86. Урок 4".
  5.  "Уроки захищеного режиму x86. Урок 5".
  6.  "Уроки захищеного режиму x86. Урок 6".
Базою для цих матеріалів служать уроки уроки захищеного режиму Алексея Фрунзе
Ліцензія на код -- GPL2+, ліцензія на тексти -- GFDL.
Довідкова інформація взята з відкритих джерел на просторах Інтернету, зокрема з офіційних мануалів Intel.
Традиційне і очевидне -- жодних гарантій.

Урок номер 7
Продовження теми багатозадачності. Три задачі рівня привілей 0: main(), task1(), task2(). Переключення здійснює планувальник, який викликається з обробника переривань таймера, IRQ0. Багатозадачність із примусовим виштовхуванням (preemptive multitasking) у всій красі.

Нових елементів захищеного режиму не розглядається, на конкретному прикладі в деталях описано процес переключення задачі.
Реалізація поки тільки змішана, C-asm. Якщо буде зацікавленість, можна написати і чисто асемблерну.
 
Архів з файлами уроку: pm_07.zip.

Незначні зміни, доповнення та виправлення будуть вноситися прямо в цей файл, про що я старатимуся повідомляти.

На сьогодні все. Наступний урок буде присвячений сторінковій організації пам'яті.

Дякую за увагу

Якщо є запитання, виправлення, пропозиції - пишіть! Багато часу цьому приділяти, на жаль, не можу, але якщо з того буде комусь користь - спробуємо щось придумати.