Разлика между системно обаждане и прекъсване

Разлика между системно обаждане и прекъсване
Разлика между системно обаждане и прекъсване

Видео: Разлика между системно обаждане и прекъсване

Видео: Разлика между системно обаждане и прекъсване
Видео: 7 способов психологического насилия 😡 Нелогичность. Неизвестность. Неопределенность. Анна Богинская 2024, Ноември
Anonim

Системно обаждане срещу прекъсване

Типичният процесор изпълнява инструкции една по една. Но може да има случаи, когато процесорът трябва да спре временно и да задържи текущата инструкция и да изпълни някаква друга програма или кодов сегмент (пребиваващ на друго място). След като направи това, процесорът се връща към нормалното изпълнение и продължава от мястото, където е спрял. Системно обаждане и прекъсване са такива случаи. Системно повикване е повикване към подпрограма, вградена в системата. Прекъсването е прекъсване на управлението на програма, причинено от външни хардуерни събития.

Какво е системно обаждане?

Системните обаждания осигуряват програми, работещи на компютъра, интерфейс за разговор с операционната система. Когато дадена програма трябва да поиска услуга (за която сама няма разрешение) от ядрото на операционната система, тя използва системно повикване. Процесите на потребителско ниво нямат същите разрешения като процесите, които взаимодействат директно с операционната система. Например, за да комуникира с и външно I / O устройство или да взаимодейства с други процеси, програмата трябва да използва системни повиквания.

Какво е прекъсване?

По време на нормалното изпълнение на компютърна програма може да има събития, които могат да доведат до временно спиране на процесора. Събития като това се наричат прекъсвания. Прекъсванията могат да бъдат причинени от софтуерни или хардуерни грешки. Хардуерните прекъсвания се наричат (просто) Прекъсвания, докато софтуерните прекъсвания се наричат Изключения или Капани. След като се повдигне прекъсване (софтуер или хардуер), управлението се прехвърля към специална подпрограма, наречена ISR (Interrupt Service Rutine), която може да се справи с условията, които са повдигнати от прекъсването.

Както бе споменато по-горе, терминът Прекъсване обикновено е запазен за хардуерни прекъсвания. Те са прекъсвания на програмния контрол, причинени от външни хардуерни събития. Тук външни означава външни за процесора. Хардуерните прекъсвания обикновено идват от много различни източници като таймер чип, периферни устройства (клавиатури, мишка и т.н.), I / O портове (серийни, паралелни и т.н.), дискови устройства, CMOS часовник, разширителни карти (звукова карта, видео карта и т.н.). Това означава, че хардуерните прекъсвания почти никога не възникват поради някакво събитие, свързано с изпълняващата програма. Например събитие като натискане на клавиш от клавиатурата от потребителя или изчакване на вътрешния хардуерен таймер може да доведе до този вид прекъсване и може да информира процесора, че определено устройство се нуждае от известно внимание. В ситуация като тази процесорът ще спре каквото и да е правил (т.е. поставя на пауза текущата програма),осигурява услугата, изисквана от устройството, и ще се върне към нормалната програма.

Каква е разликата между System Call и Interrupt?

Системното повикване е повикване към подпрограма, вградена в системата, докато Прекъсването е събитие, което кара процесора временно да задържи текущото изпълнение. Една от основните разлики обаче е, че системните повиквания са синхронни, докато прекъсванията не са. Това означава, че системните повиквания се извършват в определен час (обикновено се определя от програмиста), но прекъсвания могат да възникнат по всяко време поради неочаквано събитие, като натискане на клавиш от клавиатурата от потребителя. Следователно, когато някога се появи системно повикване, процесорът трябва само да запомни къде да се върне, но в случай на прекъсване, процесорът трябва да запомни както мястото, към което да се върне, така и състоянието на системата. За разлика от системното повикване, прекъсването обикновено няма нищо общо с текущата програма.

Препоръчано: