Системски позив вс Прекид
Типични процесор извршава инструкције једну по једну. Али могу се догодити случајеви да процесор мора привремено да се заустави и задржи тренутну инструкцију и изврши неки други програм или сегмент кода (који борави на неком другом месту). Након тога процесор се враћа у нормално извршавање и наставља се тамо где је стао. Системски позив и прекид су такве прилике. Системски позив је позив на подпрограм уграђен у систем. Прекид је прекид програмске контроле узрокован вањским догађајима хардвера.
Шта је системски позив?
Системски позиви пружају програмима који раде на рачунару интерфејс за разговор са оперативним системом. Када програм треба да затражи услугу (за коју сама нема дозволу) од кернела оперативног система, користи системски позив. Процеси на нивоу корисника немају иста допуштења као и процеси који директно комуницирају са оперативним системом. На пример, за комуникацију са и спољним И / О уређајем или за интеракцију са било којим другим процесима, програм мора да користи системске позиве.
Шта је прекид?
Током нормалног извршавања рачунарског програма, могло би доћи до догађаја који могу узроковати да се ЦПУ привремено заустави. Овакви догађаји се називају прекидима. Прекиди могу бити узроковани или софтверским или хардверским грешкама. Прекиди хардвера називају се (једноставно) Прекиди, док се софтверски прекиди називају Изнимке или Замке. Једном када се прекида (софтверски или хардверски) подигне, контрола се пребацује у посебну потпрограму звану ИСР (Интеррупт Сервице Роутине) која може да поднесе услове које подиже прекид.
Као што је већ споменуто, термин Интеррупт обично је резервисан за хардверске прекиде. Они су прекиди контроле програма узроковани спољним догађајима хардвера. Овде су спољна средства која су спољна за ЦПУ. Прекиди хардвера обично долазе из различитих извора као што су тајмер чип, периферни уређаји (тастатура, миш итд.), И / О портови (серијски, паралелни итд.), Диск јединице, ЦМОС сат, картице за проширење (звучна картица, видео картица итд.). То значи да се прекиди хардвера готово никада не догађају због неког догађаја који се односи на извршни програм. На пример, догађај попут притиска тастера на тастатури од стране корисника или интерног временског одмарача хардвера може довести до таквог прекида и може информисати ЦПУ да је одређеном уређају потребна пажња. У ситуацији попут које ће ЦПУ зауставити све што је радио (тј. Паузира тренутни програм), пружи услугу потребну за уређај и вратиће се у нормалан програм.
Која је разлика између системског позива и прекида?
Системски позив је позив на подпрограму уграђену у систем, док је Интеррупт догађај, који узрокује да процесор привремено задржи тренутно извршење. Међутим, једна велика разлика је што су системски позиви синхрони, док прекиди нису. То значи да се системски позиви догађају у одређено време (обично их одређује програмер), али прекиди се могу догодити у било којем тренутку због неочекиваног догађаја, као што је притискање тастера на тастатури од стране корисника. Стога, када се икад догоди системски позив, процесор мора упамтити где да се врати, али у случају прекида, процесор мора упамтити и место повратка и стање у систему. За разлику од системског позива, прекид обично нема никакве везе са тренутним програмом.