Огляд операційних систем і ядер

Через неухильного зростання можливостей і не дуже якісного побудови деяких сучасних операційних систем, поняття операційної системи стало кілька невизначеним Багато користувачів вважають, що те, що вони бачать на екрані, – і є операційна система Зазвичай, і в цій книзі теж, підопераційною системою розуміється частина компютерної системи, яка відповідає за основні функції використання та адміністрування Це […]

Синхронізація та паралелізм

Ядро схильне станам конкуренції за ресурси (race condition) На відміну від однопоточному користувальницької програми, ряд властивостей ядра дозволяє здійснювати паралельні звернення до ресурсів загального доступу, і тому потрібно виконувати синхронізацію для запобігання станів конкуренції за ресурси Зокрема, можливі такі ситуації

Предметний покажчик

А Application Programing Interface,  API, 96 E Exception, 99 110 G gec, 40 анотація розгалужень, 41 вбудований асемблер, 41 функції з підстановкою тіла, 40 Granularity,  174 L

Оброблювач переривань таймера

Тепер, коли ми розібралися, що таке jiffie s і HZ, а також яка роль системного таймера, розглянемо реалізацію обробника переривань системного таймера розбитий на дві частини: частина, залежну від апаратної платформи, і незалежну частину Підпрограма, яка залежить від апаратної платформи, реєструється як обробника переривань системного таймера і виконується, коли спрацьовує системний таймер Конкретна робота, звичайно, […]

Програмування переривань Bascom-8051

Система переривань процесора 8051 забезпечує ефективну обробку зовнішніх подій і процесів з тимчасовим поділом За допомогою програм переривань вирішується широке коло завдань, в основі яких лежить паралельна відпрацювання кількох процесів, і звязок дій і подій з відмітками реального часу Bascom дозволяє повністю використовувати можливості системи переривань як стандартних, так і більш старших моделей При програмуванні […]

Нижні половини

Завдання обробки нижніх половин – це виконати всю повязану з перериваннями роботу, яку не виконав обробник переривання В ідеальній ситуації – це майже вся робота, так як необхідно, щоб обробник переривання виконав по можливості меншу частину роботи (тобто виконався максимально швидко) і швидше повернув управління

Сигнали та переривання в системі UNIX

У цьому розділі поетапно розглянемо процес обробки сигналів (таких як переривання), що надходять із зовнішнього світу, а також помилок програми Помилки програм виникають в основному через непра- Вільних звернень до памяті, при виконанні специфічних інстр рукцій або через операцій з плаваючою крапкою Найбільш поширені сигнали, що надходять із зовнішнього світу:переривання (interrupt) – Цей сигнал посилається, […]

Взаємне блокування

Якщо ви маєте справу з двома потоками і з двома блокуємими обєктами, може виникнути ситуація взаємного блокування (deadlock), При якій кожен обєкт чекає зняття блокування з іншого обєкта Уявімо собі, що обєкт X містить синхронізований метод, усередині якого викликається синхронізований метод обєкту Y, який, у свою чергу, також містить синхронізований метод для виклику синхронізованого методу […]

Обробники переривань

Функція, яку виконує ядро ​​у відповідь на певне переривання, називаєтьсяобробником переривання (interrupt handler)мул іпідпрограмою обслуговування переривання (interrupt service routine) Кожному пристрою, яке генерує переривання, відповідає свій обробник переривання Наприклад, одна функція обробляє переривання від системного таймера, а інша – переривання, згенеровані клавіатурою Обробник переривання для якого-небудь пристрою є частиною драйвера цього пристрою – коду ядра, […]

Написання обробника переривання

Наступне опис є типовим для обробника переривання static irqreturn_t intr_handler (int irq, void *dev_id, struct pt_regs *regs) Зауважимо, що воно має відповідати аргументу, який передається у функцію request_ir q () Перший параметр, irq, – це чисельне значення номера переривання, яке обслуговується обробником Зараз цей параметр практично не використовується, крім хіба що при друку повідомлень Для […]