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

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

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

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

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

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

Какво е системно повикване?

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

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

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

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

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

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

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