Достъп до апаратната част и периферията
Съществуват 2 основни начина: чрез заявка за прекъсване и чрез директен достъп до паметта (DMA) – контролерът управлява достъпа до паметта до запълване на буфера. Има 4 паралелно действащи канала (един е зает за системни нужди). Нулевият канал се използва за опресняване на динамичната памет.Периферно устройство -> Заявки -> Контролер за управление на заявки за прекъсване -> Драйвер
заявка за прекъсване: програмни (генерират се чрез инструкция), апаратни (от контролерите или интегралните схеми по дънната платка). Апаратни: маскируеми (могат да бъдат блокирани), немаскируеми.
Контролер на прекъсванията:
1) засичане на заявка за прекъсване (по ниво);
2) буфериране;
3) подреждане на заявка за прекъсване по приоритет (чрез предварително зададен апаратен приоритет на контролера); предаване към процесора
Опростен алгоритъм за обработка на апаратните маскируеми заявки за прекъсване.
1. Процесорът, след като засече заряд по вход Interrupt, проверява дали в момента заявката може да бъде обслужена или не. За целта се проверява флаг IF (Interrupt Flag) от флаговия регистър на процесора. Ако е 0 – забранява и продължава с текущия процес, ако е 1 – разрешава заявките и ги обслужва. 2. Процесорът трябва да разпознае кой е източника на заявка за прекъсване и да предаде управлението на програмата, която го обслужва. За тази цел се извиква инструкцията “int n” (n – номер на прекъсването - байт).
k -> n
реален защитен
I k. n=k+8
II k. n=k+70h
3. ISR (Interrupt Service Routine) – при обслужване на апаратна заявка ISR е драйвер.
IRQ0 (int 8) – системен часовник
BIOS или ОС зареждат драйверите.
Адресът на драйвера, обслужващ съответната заявка, се получава от IVT (Interrupt Vector Table), като всеки елемент от нея е един адрес, който се зарежда в IP (Instruction Pointer).
int n -> stack: IP, FLAGS
CPU
Controller
dbus
IRQ
Технология S.M.A.R.T. Технологията SMART е създадена за следене на състоянието на твърдите дискове чрез съставяне на множество параметри. Един от тези параметри (номер 197 — Current Pending Sector Count) показва колко сектори са маркирани като лоши от диска.
