Авангард (микро ядро) - Vanguard (microkernel)

Авангард
ӘзірлеушіРосс Финлейсон, Apple Computer
ОЖ отбасыV-жүйе
Жұмыс жағдайыТоқтатылды
Дереккөз моделіЖабық көзі
Бастапқы шығарылым1993; 27 жыл бұрын (1993)
Маркетингтің мақсатыҮстелдік компьютерлер
Қол жетімдіАғылшын
ПлатформаларMotorola 68000 сериясы
Ядро түріМикро ядролы
АлдыңғыV-жүйе

Авангард тоқтатылған эксперименттік болып табылады микро ядро дамыған Apple Computer,[1] зерттеуге бағытталған Apple Advanced Technology Group (ATG) 1990 жылдардың басында. Негізінде V-жүйе, Vanguard стандартталған енгізді объект идентификаторлар және бірегей хабарламалар тізбегі жақсартылған өнімділік жүйесі. Vanguard Apple компаниясының кез-келген коммерциялық өнімінде қолданылмаған. Даму 1993 жылы Росс Финлайсон, жобаның басты тергеушісі Apple-ден кеткен кезде аяқталды.

Негізгі түсініктер

Vanguard әдетте V-жүйесіне өте ұқсас болды, бірақ шындыққа қолдау көрсетті объектіге бағытталған бағдарламалау туралы операциялық жүйе. Бұл дегеніміз ядро және сервер болуы мүмкін интерфейстер объект ретінде экспортталды мұрагерлік және жаңа кодта кеңейтілген. Бұл өзгерістің жүйеге көрінетін әсері жоқ, бұл негізінен бастапқы код бұл бағдарламалауды жеңілдетеді.

Мысалы, Авангардта ан кіріс шығыс (Енгізу-шығару) сынып оны бірнеше түрлі серверлер қолдады, мысалы, желілік және файл серверлері, жаңа қолданбалар енгізу-шығару импорты арқылы өзара әрекеттесуі мүмкін интерфейс және шақыру әдістері. Бұл сонымен қатар жаңа серверлерді жазуды едәуір жеңілдетті, өйткені оларда бағдарламалау стандарты болды және кодты оңай бөлісе алды.

V хабар алмасу семантикасы

Барлық дерлік микро ядролардың негізгі тұжырымдамасы - бір үлкен ядроны байланыс жиынтығына бөлу серверлер. Компьютерлік жүйенің барлық жабдықтарын басқаратын бір үлкен бағдарламаның орнына әртүрлі міндеттер машинаның әртүрлі бөліктерін басқару құқығын беретін кішігірім бағдарламалар арасында бөлінеді. Мысалы, бір серверге желілік аппаратураны басқару мүмкіндігі берілуі мүмкін, ал екіншісінде басқару функциясы бар қатты диск жетектері. Басқа сервер жұмыс істей алады файлдық жүйе, осы екі деңгейлі серверлердің екеуіне де қоңырау шалу. Пайдаланушының қосымшалары жіберу арқылы қызмет сұрайды хабарламалар формаларын қолдана отырып, осы серверлерге процесаралық байланыс (IPC), керісінше, бұл жұмысты a арқылы жасауды сұрағаннан айырмашылығы жүйелік қоңырау (syscall) немесе тұзақ.

V астында IPC жүйесі тұжырымдамалық модельденген сияқты қашықтағы процедуралар (RPC) клиент қолдану перспективасы. Клиент ан импорттады интерфейсті анықтау файлы ядро немесе басқа қосымшалар қолдайтын қоңыраулар туралы ақпаратты қамтиды, содан кейін осы анықтаманы сұраныстарды орау үшін қолданды. Шақырылған кезде ядро ​​дереу иемденіп, нәтижелерді тексеріп, ақпаратты оң жақ өңдеушіге, мүмкін ядро ​​ішінде жібереді. Содан кейін кез-келген нәтиже ядро ​​арқылы клиентке қайтарылды.

Тұтастай алғанда, жүйенің клиенттің қосымшасында көрінуі қалыпты жұмыспен өте ұқсас монолитті ядро. Берілген нәтижелер үшінші тарап өңдеушісінен шыққанымен, бұл клиент үшін көрінбейтін болды. Бұл сұраныстармен жұмыс істейтін серверлер клиенттерге ұқсас жұмыс істеді, деректерді жіберу үшін ядросымен байланыс ашты. Алайда, серверлер ұзақ уақытқа созылатын сұраныстарды орындау үшін қажет болған жағдайда жаңа ағындарды тудырды. Оларды өңдеп, жауаптар орналастырылған кезде, ағын бөлінбеуі мүмкін және серверлер а-ға кіре алады қабылдау режимі қосымша сұраныстар күтілуде.

Керісінше, көптеген микро ядролық жүйелер модельге негізделген асинхронды байланыс, синхронды орнына рәсім қоңыраулар. Канондық микро ядро ​​жүйесі, Мах, бірнеше маңызды жанама әсерлері бар хабарламалар енгізу-шығару ретінде модельденді. Олардың ішіндегі бастысы - бұл қалыпты міндет жоспарлаушылар астында Unix тәрізді жүйелер, әдетте, енгізу-шығару сұранысын күткен клиентті бұғаттайды, сондықтан осылайша хабарламаларда күтудегі қосымшаларды кідірту және қайта қосу әрекеттері базалық жүйеге енгізілген болатын. Бұл тәсілдің минусы - жоспарлаушы әділетті ауыр салмақжәне оны атауға болатын күрделі тосқауыл болды және оның өнімділігін жақсарту үшін кең ауқымды күш-жігер әкелді. V-System моделі бойынша хабарлама жіберу үстеме шығындар азаяды, өйткені процесс жоспарлаушымен кеңес алу қажет емес, келесіде не шақырылуы керек, ол сервер деп аталады. V тәсілінің минусы, егер серверде жауап өңдеу үшін біраз уақыт кетуі мүмкін болса, сервер үшін көп жұмыс қажет.

Тізбек

Vanguard-қа қарасты IPC жүйесіне V-ден айырмашылығы, оның негізгі концепциясы болды хабарлама тізбектері, бір рейске бірнеше өзара әрекеттесетін серверлер арасында бір хабарлама жіберуге мүмкіндік береді. Теория бойынша, тізбектеу көп сатылы операциялардың өнімділігін жақсарта алады.

Клиенттің қосымшасы файлды оқуы керек жағдайды қарастырыңыз. Әдетте бұл үшін файл серверін табу үшін ядроға бір хабарлама, содан кейін файл серверіне тағы үш хабарлама қажет болады: біреуі файл атауын объект идентификаторына айналдыру үшін, екіншісі бұл идентификаторды ашу үшін, содан кейін тағы біреуі файлды оқу үшін. Vanguard тізбегін қолдана отырып, клиент осы сұраныстардың барлығынан бір хабарлама құрастыра алады. Хабар ядроға жіберіліп, содан кейін деректерді қайтармас бұрын барлық үш сұранысты өңдейтін файлдық серверге жіберіледі.

Әдетте микро ядролық жүйелермен байланысты өнімділік проблемаларының көп бөлігі байланысты контексттік қосқыштар өйткені хабарламалар қосымшалар арасында алға және артқа беріледі. V жүйесінде жұмыс жасайтын жоғарыдағы мысалда барлығы сегіз контексттік қосқыш болуы керек; Клиент ядроға ауысқан кездегі әрбір сұраныс үшін екі. Авангардта тізбекті қолдану оны тек үш қосқышқа дейін азайтуға мүмкіндік береді; біреуі клиенттен ядроға, екіншісі ядродан файл серверіне, соңында серверден клиентке қайта оралады. Кейбір жағдайларда контексттік қосқыштың үстіңгі жағы сұранысты іске қосу уақытына қарағанда көбірек болады, сондықтан Vanguard тізбегі механизмі нақты жұмыс нәтижелерін жақсартуы мүмкін.

Нысан атауы

V сонымен қатар қарапайым таратылғанды ​​енгізді атау қызметі. Қызмет сақталды жақсы белгілі таратылған V жүйесінде әр түрлі объектілерді білдіретін таңбалардың атаулары, мысалы, 2 қабат лазерлік принтер. Өтініштер сұрай алады атау сервері объектілерге арналған және оларға осы объектімен өзара әрекеттесуге мүмкіндік беретін идентификатор беріледі. Атау қызметі жеке сервер болған жоқ және оны ядродағы код арқылы басқарды. Мұны толығымен салыстырыңыз атау сервері амалдық жүйенің астында Көктем, ол тек жүйенің ішіндегі объектілер туралы біліп қана қоймай, сонымен қатар жүйенің басқа серверлерінде олардың жеке аттарын, мысалы, файл атаулары мен IP мекенжайларын аудару үшін қолданылған.

V-жүйеде серверлердегі нысандар an осы жағдай үшін жеке кілт қандай-да бір, дейді а 32 бит бүтін. Клиенттер белгілі бір тапсырма туралы сөйлесуді сақтау үшін бұл кілттерді серверлерге жібереді. Мысалы, қосымша ядродан сұрауы мүмкін файлдық жүйе бағдарламаның идентификаторын білдіретін 32 биттік кілт беріліп, содан кейін осы кілт арқылы файлдық жүйеге файлды ашуды сұрайтын хабарлама жіберіңіз менің мекен-жайларымнәтижесі а 64 бит кілт тапсырылды. Бұл мысалдағы кілттер серверлерге тиесілі, жүйеде жалпы кілт форматтары қолданылмаған.

V атауының бұлай шешілуі соншалықты кең болды, сондықтан авторлар бұл кілттерді Авангардтың басқаруымен бірінші дәрежелі азаматтарға айналдыруға шешім қабылдады. Серверлер кез-келген объект идентификаторын пайдаланудың орнына, Vanguard астында барлық серверлер түсініп, жаһандық бірегей қайтаруы керек еді 128 бит кілт, бірінші сервер идентификаторы бар бірінші 64 бит, екіншісі сол сервердегі нысанды анықтайды. Сервердің идентификаторы ядрода сақталды, егер ол сілтеме жасалынған сервер қашықтағы машинада болса, оған хабарламаны желі арқылы беруге мүмкіндік береді. Клиент үшін бұл көрінбейтін болды. Сәтті болдырмау үшін идентификаторлардың кездейсоқ тағайындалғандығы түсініксіз болжау мақсатсыз бағдарламалық жасақтама арқылы.

Әдебиеттер тізімі

  1. ^ Финлэйсон, Росс С .; Хеннек, Марк Д .; Голдберг, Стивен Л. (20-23 қыркүйек 1993). V-ден Авангардқа: Таратылған, нысанға бағытталған микрожүйелі интерфейстің эволюциясы. USENIX микро ядроларының және басқа ядролық архитектуралар симпозиумының материалдары. USENIX. Сан-Диего, Калифорния.