Добавил:
Developerrnrn Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
ОС Нижний.pdf
Скачиваний:
34
Добавлен:
25.03.2023
Размер:
2.75 Mб
Скачать

Лабораторный практикум по курсу "Операционные системы"

static inline void deactivate_task(struct task_struct *p, runqueue_t *rq);

/* обработка завершения задачи */

void scheduler_tick(int user_tick, int system); /* обработка прерывания таймера */

asmlinkage void schedule(void);

/* выбор процесса на исполнение */ asmlinkage long sys_sched_yield(void);

/* добровольное освобождение процессом процессора */ void __init sched_init(void);

/* инициализация планировщика */

При этом для упрощения задачи рекомендуется использовать некоторое подмножество существующих достаточно сложных структур данных.

Например, для реализации алгоритма Round Robin достаточно использовать один из списков в массиве приоритетов.

Компиляция и установка ядра Linux

Вы можете воспользоваться любым способом компиляции и установки ядра. В данном параграфе приведена типичная последовательность действий, которая позволит Вам успешно выполнить рассматриваемую задачу. (Действия приведенной инструкции должны выполняться строго в указанном порядке.)

1.Зарегистрируйтесь под учетной записью root.

2.Проверьте наличие установленных исходных кодов ядра rpm -q kernel-headers kernel-source make dev86

3.Если указанные пакеты установлены, перейдите к Шагу 4. Иначе, смонтируйте Red Hat Linux 7.x CD-ROM и выполните команды rpm -Uvh для инсталляции указанных RPM.

4.Перейдите в каталог исходных текстов

cd /usr/src/linux

5.Выполните настройку параметров компиляции (если это Вам нужно).

"make config" или "make menuconfig"

По окончании настройки не забудьте сохранить результат.

6.Скомпилируйте ядро

make bzImage modules

После выполнения данного шага, в каталоге /usr/src/linux/arch/i386/boot должен появиться файл "bzImage". Если все шаги компиляции были выполнены верно, и все настройки, выполненные в окне команды "make config", корректны, появится данный файл. Если указанного файла нет, вы где-то допустили ошибку, и вам придется остановиться и выполнить все шаги сначала.

7. Скопируйте ядро в то место, где обычно оно лежит, и настройте модули.

108 Учебно-исследовательская лаборатория «Информационные технологии»

Лабораторный практикум по курсу "Операционные системы"

cp /usr/src/linux/arch/i386/boot/bzImage /boot/vmlinuz-my cp /usr/src/linux/System.map /boot/System.map-my make modules_install

8. Обеспечьте ядру возможность загрузиться (предполагается, что в качестве boot-менеджера Вы используете lilo)

mkinitrd /boot/initrd-my.img

Добавьте в файл /etc/lilo.conf следующие строки: image=/boot/vmlinuz-my

label=MyKernel initrd=/boot/initrd-my.img root=/dev/hda1 read-only

Строчка root=/dev/hda1 зависит от конфигурации (hda1 – первый основной раздел IDE

Primary Master жесткого диска) /sbin/lilo –v

Если ошибок нет – все сделано правильно. 9. Перезагрузитесь

/sbin/reboot или /sbin/shutdown -r now.

10. В диалоге начальной загрузки (в ответ на приглашение "Boot:"), нажмите Tab (или Control-X, зависит от вашего загрузчика) и среди прочих ядер в списке вы увидите "MyKernel". Введите: MyKernel и нажмите Enter. Ваше новое ядро начнет загружаться.

Литература по лабораторной работе 1

1.Э. Таненбаум. Современные операционные системы. 2-е издание. СПб: Питер, 2002.

2.А.Я. Архангельский. Интегрированная среда разработки С++Builder 5. М: Бином, 2000.

3.Robert Love. Linux Kernel Development. SAMS, 2003.

4.David Rusling. The Linux Kernel (Электронный источник - www.linuxdoc.org/LDP/tlk/)

5.Cross-Referencing Linux (Электронный источник - lxr.linux.no)

Учебно-исследовательская лаборатория «Информационные технологии» 109

Соседние файлы в предмете Современные операционные системы