Системски позив у ОС: врсте и примери

Шта је системски позив у оперативном систему?

ДО системски позив је механизам који обезбеђује интерфејс између процеса и оперативног система. То је програмска метода у којој рачунарски програм тражи услугу од језгра ОС -а.

Системски позив нуди услуге оперативног система корисничким програмима путем АПИ -ја (Апплицатион Программинг Интерфаце). Системски позиви су једине улазне тачке за систем језгра.

У овом упутству за оперативни систем научићете:

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



Пример системског позива

На пример, ако морамо да напишемо програмски код за читање података из једне датотеке, копирајте те податке у другу датотеку. Први податак који програм захтева је име две датотеке, улазне и излазне датотеке.

У интерактивном систему, ова врста извођења програма захтева неке системске позиве од стране ОС -а.

  • Први позив је да напишете поруку са захтевом на екрану
  • Друго, за читање са тастатуре знакове који дефинишу две датотеке.

Како функционише системски позив?

Ево корака за системски позив:

Архитектура системског позива

Као што можете видети на горе наведеном дијаграму.

Корак 1) Процеси се извршавају у корисничком режиму све док га системски позив не прекине.

Корак 2) Након тога, системски позив се извршава у режиму кернела на основу приоритета.

Корак 3) Када се извршење системског позива заврши, контрола се враћа у кориснички режим.,

Корак 4) Извођење корисничких процеса настављено је у Кернел моду.

Зашто су вам потребни системски позиви у ОС -у?

Следе ситуације у којима су потребни системски позиви у ОС -у:

  • Читање и писање из датотека захтевају системске позиве.
  • Ако датотечни систем жели да креира или брише датотеке, потребни су системски позиви.
  • Системски позиви се користе за креирање и управљање новим процесима.
  • Мрежним везама су потребни системски позиви за слање и пријем пакета.
  • За приступ хардверским уређајима попут скенера, штампача потребан је системски позив.

Врсте системских позива

Ево пет врста системских позива који се користе у ОС -у:

  • Контрола процеса
  • Управљање датотекама
  • Управљање уређајем
  • Одржавање информација
  • Комуникације

Контрола процеса

Ови системски позиви извршавају задатак стварања процеса, прекида процеса итд.

Функције:

  • Крај и прекид
  • Учитај и изврши
  • Креирајте процес и окончајте процес
  • Сачекајте и потписан догађај
  • Доделите и ослободите меморију

Управљање датотекама

Системски позиви за управљање датотекама управљају пословима манипулације датотекама попут стварања датотеке, читања и писања итд.

Функције:

  • Направите датотеку
  • Избришите датотеку
  • Отварање и затварање датотеке
  • Читајте, пишите и мењајте положај
  • Преузмите и подесите атрибуте датотека

Управљање уређајем

Управљање уређајима обавља посао манипулације уређајима попут читања из бафера уређаја, уписивања у бафере уређаја итд.

Функције

  • Затражите и отпустите уређај
  • Логички прикључите/ одвојите уређаје
  • Преузмите и поставите атрибуте уређаја

Одржавање информација

Он обрађује информације и њихов пренос између ОС -а и корисничког програма.

Функције:

  • Преузмите или подесите време и датум
  • Добијте атрибуте процеса и уређаја

Комуникација:

Ове врсте системских позива посебно се користе за међупроцесну комуникацију.

Функције:

  • Креирајте, избришите комуникацијске везе
  • Пошаљи, прими поруку
  • Помозите ОС -у да пренесе информације о статусу
  • Прикључите или одвојите удаљене уређаје

Правила за прослеђивање параметара за системски позив

Ево општих уобичајених правила за прослеђивање параметара у системски позив:

  • Оперативни систем би требао гурнути или избацити параметре из стека.
  • Параметри се могу преносити у регистре.
  • Када има више параметара него регистара, треба их похранити у блок, а адресу блока прослиједити као параметар регистру.

Важни системски позиви који се користе у ОС -у

чекати()

У неким системима процес мора да сачека да други процес доврши извршавање. Ова врста ситуације настаје када надређени процес креира подређени процес, а извршавање надређеног процеса остаје обустављено све док се његов подређени процес не изврши.

До обуставе надређеног процеса долази аутоматски са системским позивом ваит (). Када подређени процес заврши извршавање, контрола се враћа на родитељски процес.

виљушка ()

Процеси користе овај системски позив за креирање процеса који су њихова копија. Уз помоћ овог система, родитељски процес позива креира подређени процес, а извршавање надређеног процеса ће бити обустављено све док се подређени процес не изврши.

екец ()

Овај системски позив се покреће када извршна датотека у контексту већ покренутог процеса који замењује старију извршну датотеку. Међутим, оригинални идентификатор процеса остаје пошто нови процес није изграђен, већ се стек, подаци, глава, подаци итд. Замењују новим процесом.

килл ():

Системски позив килл () користи ОС за слање терминационог сигнала процесу који подстиче процес да изађе. Међутим, системски позив килл не мора нужно значити прекид процеса и може имати различита значења.

екит ():

Системски позив екит () користи се за прекид извршавања програма. Посебно у окружењу са више нити, овај позив дефинише да је извршавање нити завршено. ОС враћа ресурсе које је процес користио након употребе системског позива екит ().

Резиме:

Категорије Виндовс Уник
Контрола процесаЦреатеПроцесс () ЕкитПроцесс () ВаитФорСинглеОбјецт ()форк () екит () ваит ()
Манипулација уређајемСетЦонсолеМоде () РеадЦонсоле () ВритеЦонсоле ()лоцтл () реад () врите ()
Манипулација датотекамаЦреатеФиле () РеадФиле () ВритеФиле () ЦлосеХандле ()Опен () Реад () врите () цлосе!)
Одржавање информацијаГетЦуррентПроцессИД () СетТимер () Слееп ()гетпид () аларм () слееп ()
КомуникацијаЦреатеПипе () ЦреатеФилеМаппинг () МапВиевОфФиле ()Пипе () схм_опен () ммап ()
ЗаштитаСетФилеСецурити () ИнитиализеСецуритиДесцриптор () СетСецуритиДесцрипторГроуп ()Цхмод () Умаск () Цховн ()