Системаҳои оператсионӣ: Се дона осон. Қисми 1: Муқаддима (тарҷума)

Муқаддима ба системаҳои оператсионӣ

Салом, Хабр! Мехохам ба диццати шумо як катор макола-тарчимахои як адабиётро пешкаш намоям, ки ба назари ман — ОСТЕП. Дар ин мавод кори системаҳои оператсионии ба unix монанд, яъне кор бо равандҳо, графикҳои гуногун, хотира ва дигар ҷузъҳои шабеҳ, ки ОС-и муосирро ташкил медиҳанд, хеле амиқ омӯхта мешавад. Шумо метавонед асли ҳамаи маводҳоро дар ин ҷо бубинед дар ин ҷо. Лутфан қайд кунед, ки тарҷума ғайрикасбӣ (хеле озодона) анҷом дода шудааст, аммо ман умедворам, ки ман маънои умумиро нигоҳ доштам.

Корҳои лабораторӣ дар ин мавзӯъро дар ин ҷо пайдо кардан мумкин аст:
- аслӣ: pages.cs.wisc.edu/~remzi/OSTEP/Homework/homework.html
- аслӣ: github.com/remzi-arpacidusseau/ostep-code
- мутобиқсозии шахсии ман: github.com/bykvaadm/OS/tree/master/ostep

Шумо инчунин метавонед канали маро дар ин ҷо санҷед телеграмма =)

Амалиёти барнома

Вақте ки барнома кор мекунад, чӣ мешавад? Барномаи иҷрошаванда як кори оддиро иҷро мекунад - он дастурҳоро иҷро мекунад. Ҳар сония миллионҳо ва ҳатто эҳтимол миллиардҳо дастурҳоро протсессор аз хотираи оперативӣ гирифта, дар навбати худ онҳоро рамзкушоӣ мекунад (масалан, эътироф мекунад, ки ин дастурҳо ба кадом навъи дастурҳо мансубанд) ва онҳоро иҷро мекунанд. Ин метавонад илова кардани ду рақам, дастрасӣ ба хотира, санҷиши шарт, гузариш ба функсия ва ғайра бошад. Пас аз ба итмом расонидани як дастур, протсессор ба иҷрои дигараш мегузарад. Ҳамин тариқ, дастур пас аз дастур, онҳо то анҷоми барнома иҷро карда мешаванд.
Ин мисол табиатан ба таври содда баррасӣ карда мешавад - дар асл, барои суръат бахшидан ба протсессор, сахтафзорҳои муосир ба шумо имкон медиҳанд, ки дастурҳоро аз рӯи пайдарпай иҷро кунед, натиҷаҳои имконпазирро ҳисоб кунед, дастурҳоро дар як вақт иҷро кунед ва ҳилаҳои шабеҳ.

Модели ҳисобкунии Фон Нейман

Шакли соддашудаи амалиёте, ки мо тавсиф кардем, ба модели ҳисоббарории Фон Нейман монанд аст. Фон Нейман яке аз пешравони системаҳои компютерӣ буда, инчунин яке аз муаллифони назарияи бозӣ мебошад.. Ҳангоми кор кардани барнома, як қатор ҳодисаҳои дигар рух медиҳанд, бисёр равандҳои дигар ва мантиқи тарафи сеюм иҷро мешаванд, ки ҳадафи асосии онҳо содда кардани оғоз, истифода ва нигоҳдории система мебошад.
Маҷмӯи нармафзоре вуҷуд дорад, ки барои осон кардани иҷроиши барномаҳо масъул аст (ё ҳатто имкон медиҳад, ки якчанд барнома дар як вақт кор кунанд), ба барномаҳо имкон медиҳанд, ки хотираи якхеларо мубодила кунанд ва инчунин бо дастгоҳҳои гуногун муошират кунанд. Чунин маҷмӯаи нармафзор (нармафзор) аслан системаи оператсионӣ номида мешавад ва вазифаҳои он назорат кардани кори дуруст ва самараноки система, инчунин таъмини осонии идоракунии ин системаро дар бар мегирад.

системаи пардозанда

Системаи оператсионӣ, ки ихтисораш ОС аст, маҷмӯи барномаҳои ба ҳам алоқаманд аст, ки барои идоракунии захираҳои компютерӣ ва ташкили ҳамкории корбарон бо компютер пешбинӣ шудаанд..
ОС самаранокии худро пеш аз ҳама ба воситаи техникаи муҳимтарин - технология ба даст меорад виртуализатсия. ОС бо манбаи физикӣ (протсессор, хотира, диск ва ғ.) ҳамкорӣ карда, онро ба шакли умумӣ, қобили истифода ва осонтар аз худ табдил медиҳад. Аз ин рӯ, барои фаҳмиши умумӣ, шумо метавонед як системаи амалиётиро бо мошини виртуалӣ муқоиса кунед.
Барои он ки корбарон ба системаи оператсионӣ фармон диҳанд ва ба ин васила имкониятҳои мошини виртуалиро истифода баранд (масалан: иҷро кардани барнома, ҷудо кардани хотира, дастрасӣ ба файл ва ғайра), системаи оператсионӣ интерфейсеро пешниҳод мекунад, ки бо номи API (интерфейси барномасозии барнома) ва ба кадоме занг задан мумкин аст. Системаи маъмулии амалиётӣ ба шумо имкон медиҳад, ки садҳо зангҳои системавӣ кунед.
Ниҳоят, азбаски виртуализатсия ба якчанд барномаҳо имкон медиҳад, ки кор кунанд (бо ҳамин мубодилаи CPU) ва ҳамзамон дастрасии дастурҳо ва додаҳои онҳо (бо ҳамин мубодилаи хотира) ва дастрасӣ ба дискҳо (бо ҳамин тариқ мубодилаи дастгоҳҳои I/O)), системаи пардозандаро низ захира номида мешавад. мудири. Ҳар як протсессор, диск ва хотира як манбаи система мебошанд ва аз ин рӯ, яке аз нақшҳои системаи оператсионӣ вазифаи идоракунии ин захираҳо, самаранок, одилона иҷро кардани он ё баръакс, вобаста ба вазифае, ки системаи оператсионӣ иҷро мекунад, мегардад. тарҳрезӣ шудааст.

виртуализатсияи CPU

Барномаи зеринро баррасӣ кунед:
(https://www.youtube.com/watch?v=zDwT5fUcki4&feature=youtu.be)

Системаҳои оператсионӣ: Се дона осон. Қисми 1: Муқаддима (тарҷума)

Он ягон амали махсусро иҷро намекунад; дар асл, танҳо он чизе, ки функсияро даъват мекунад ьунбидан(), ки вазифаи он ба таври даврӣ санҷидани вақт ва пас аз гузаштани як сония баргаштан аст. Ҳамин тариқ, он сатри беохирро такрор мекунад, ки корбар ҳамчун далел интиқол додааст.
Биёед ин барномаро иҷро кунем ва ба он рамзи «А»-ро ҳамчун аргумент гузорем. Натиҷа он қадар ҷолиб нест - система танҳо барномаеро иҷро мекунад, ки давра ба давра дар экран аломати "А" -ро нишон медиҳад.
Акнун биёед вариантро санҷем, вақте ки бисёр мисолҳои як барнома оғоз мешаванд, аммо ҳарфҳои гуногунро нишон медиҳанд, то равшантар шавад. Дар ин ҳолат, натиҷа каме фарқ мекунад. Сарфи назар аз он, ки мо як протсессор дорем, барнома дар як вақт кор мекунад. Ин чӣ гуна рӯй медиҳад? Аммо маълум мешавад, ки системаи оператсионӣ на бе кӯмаки қобилиятҳои сахтафзор, як иллюзия эҷод мекунад. Хаёли он, ки дар система якчанд протсессори виртуалӣ мавҷуд аст, ки як протсессори физикиро ба адади беохири назариявӣ табдил медиҳад ва ба ин васила имкон медиҳад, ки барномаҳо дар як вақт кор кунанд. Ин иллюзия номида мешавад Виртуализатсияи CPU.
Ин расм саволҳои зиёдеро ба миён меорад, масалан, агар якчанд барнома дар як вақт кор кардан мехоҳанд, пас кадоме аз онҳо оғоз мешавад? Барои ин масъала "сиёсатҳои" OS масъуланд. Сиёсатҳо дар бисёр ҷойҳо дар OS истифода мешаванд ва ба саволҳои ба ин монанд ҷавоб медиҳанд ва инчунин механизмҳои асосии OS амалӣ мекунанд. Аз ин рӯ, нақши ОС ҳамчун менеҷери захираҳо.

Виртуализатсияи хотира

Акнун биёед ба хотира назар андозем. Модели физикии хотира дар системаҳои муосир ҳамчун массиви байтӣ муаррифӣ карда мешавад. Барои аз хотира хондан шумо бояд муайян кунед суроғаи ҳуҷайрабарои дастрасӣ ба он. Барои навиштан ё нав кардани маълумот, шумо инчунин бояд маълумот ва суроғаи ячейкаеро, ки дар куҷо навиштед, муайян кунед.
Дастрасӣ ба хотира пайваста ҳангоми иҷрои барнома сурат мегирад. Барнома тамоми сохтори додаҳои худро дар хотира нигоҳ медорад ва тавассути иҷрои дастурҳои гуногун ба он дастрасӣ пайдо мекунад. Дар ҳамин ҳол, дастурҳо инчунин дар хотира нигоҳ дошта мешаванд, аз ин рӯ ба он инчунин барои ҳар як дархост барои дастури навбатӣ дастрасӣ пайдо мекунанд.

Занг задан malloc()

Барномаи зеринро баррасӣ кунед, ки майдони хотираро бо истифода аз занг ҷудо мекунад malloc () (https://youtu.be/jnlKRnoT1m0):

Системаҳои оператсионӣ: Се дона осон. Қисми 1: Муқаддима (тарҷума)

Барнома якчанд корҳоро иҷро мекунад. Аввалан, он каме хотира ҷудо мекунад (сатри 7), баъд суроғаи ячейкаи ҷудошударо чоп мекунад (сатри 9), ба ковокии якуми хотираи ҷудошуда сифр менависад. Баъдан, барнома ба ҳалқае ворид мешавад, ки дар он арзиши дар хотира дар суроғаи тағирёбандаи "p" нигоҳ дошташударо зиёд мекунад. Он инчунин ID-и раванди худро нишон медиҳад. ID-и раванд барои ҳар як раванди иҷрошаванда беназир аст. Пас аз ба кор андохтани якчанд нусхаҳо, мо ба натиҷаи ҷолиб дучор мешавем: Дар ҳолати аввал, агар мо ҳеҷ коре накунем ва танҳо якчанд нусхаро оғоз кунем, суроғаҳо гуногун хоҳанд буд. Аммо ин ба назарияи мо дохил намешавад! Дуруст, зеро тақсимоти муосир тасодуфии хотираро бо нобаёнӣ фаъол мекунанд. Агар шумо онро ғайрифаъол кунед, мо натиҷаи интизорӣ мегирем - суроғаҳои хотираи ду барномаи ҳамзамон иҷрошаванда мувофиқат мекунанд.

Системаҳои оператсионӣ: Се дона осон. Қисми 1: Муқаддима (тарҷума)

Натиҷа ин аст, ки ду барномаи мустақил бо фазои суроғаҳои хусусии худ кор мекунанд, ки дар навбати худ аз ҷониби системаи оператсионӣ дар хотираи ҷисмонӣ харита карда мешаванд.. Аз ин рӯ, истифодаи суроғаҳои хотира дар дохили як барнома ба дигарон ба ҳеҷ ваҷҳ таъсир намерасонад ва ба назар чунин менамояд, ки ҳар як барнома қисмати хотираи ҷисмонии худро дорад, ки комилан дар ихтиёри худ аст. Аммо воқеият ин аст, ки хотираи ҷисмонӣ як манбаи муштаракест, ки аз ҷониби системаи оператсионӣ идора карда мешавад.

Мутобиқати

Мавзӯи дигари муҳим дар системаҳои оператсионӣ ин аст мувофиқат. Ин истилоҳ ҳангоми суханронӣ дар бораи мушкилоти система истифода мешавад, ки ҳангоми кор бо бисёр чизҳо якбора дар як барномаи ягона ба вуҷуд омада метавонанд. Мушкилоти мувофиқат ҳатто дар дохили худи системаи оператсионӣ ба вуҷуд меоянд. Дар мисолҳои қаблӣ бо виртуализатсияи хотира ва протсессор, мо фаҳмидем, ки ОС дар як вақт бисёр чизҳоро идора мекунад - раванди аввалро оғоз мекунад, баъд дуюм ва ғайра. Тавре маълум мешавад, ин рафтор метавонад боиси баъзе мушкилот гардад. Масалан, барномаҳои муосири бисёрҷабҳа чунин мушкилотро аз сар мегузаронанд.

Барномаи зеринро баррасӣ кунед:

Системаҳои оператсионӣ: Се дона осон. Қисми 1: Муқаддима (тарҷума)

Барнома дар функсияи асосӣ бо истифода аз занг ду ришта эҷод мекунад Pthread_create(). Дар ин мисол, риштаро ҳамчун функсияе баррасӣ кардан мумкин аст, ки дар як фазои хотира дар паҳлӯи дигар функсияҳо кор мекунад ва беш аз як функсия дар як вақт кор мекунад. Дар ин мисол, ҳар як ришта функсияро оғоз мекунад ва иҷро мекунад worker() ки дар навбати худ тағирёбандаро афзоиш медиҳад,.

Биёед ин барномаро бо аргументи 1000 иҷро кунем. Тавре ки шумо тахмин кардаед, натиҷа бояд 2000 бошад, зеро ҳар як ришта тағирёбандаро 1000 маротиба зиёд кардааст. Бо вуҷуди ин, ҳама чиз он қадар оддӣ нест. Биёед кӯшиш кунем, ки барномаро бо тартиби такрори бештар иҷро кунем.

Системаҳои оператсионӣ: Се дона осон. Қисми 1: Муқаддима (тарҷума)

Бо ворид кардани рақам, масалан, 100000, мо интизорем, ки дар баромад рақами 200000-ро мебинем.Аммо бо якчанд маротиба иҷро кардани рақами 100000 мо на танҳо ҷавоби дурустро намебинем, балки ҷавобҳои гуногуни нодуруст низ мегирем. Ҷавоб дар он аст, ки зиёд кардани адад се амалро талаб мекунад - гирифтани адад аз хотира, зиёд кардани он ва баъд навиштани рақам. Азбаски ҳамаи ин дастурҳо ба таври атомӣ иҷро намешаванд (ҳама дар як вақт), чунин чизҳои аҷибе рӯй дода метавонанд. Ин мушкилот дар барномасозӣ номида мешавад шарти мусобика — шарти мусобика. Вақте ки қувваҳои номаълум дар лаҳзаи номаълум метавонанд ба иҷрои ягон амалиёти шумо таъсир расонанд.

Манбаъ: will.com

Илова Эзоҳ