Жұмыс уақыты жүйесі - Runtime system

Жылы компьютерлік бағдарламалау, а жұмыс уақыты жүйесі, деп те аталады жұмыс уақыты ортасы, ең алдымен, ан бөліктерін жүзеге асырады орындау моделі[түсіндіру қажет ]. Мұнымен шатастыруға болмайды жұмыс уақыты жұмыс уақыты жұмыс істейтін бағдарламаның өмірлік циклінің фазасы.

Көпшілігі бағдарламалау тілдері бағдарламалар жұмыс істейтін ортаны қамтамасыз ететін кейбір жұмыс уақыты жүйесінің болуы. Бұл орта бірқатар мәселелерді шешуі мүмкін, соның ішінде басқару қолдану жады, бағдарлама қалай кіреді айнымалылар, арасындағы параметрлерді беру механизмдері рәсімдер, интерфейсімен операциялық жүйе және басқаша. The құрастырушы дұрыс код жасау үшін нақты жұмыс уақытының жүйесіне байланысты болжамдар жасайды. Әдетте, жұмыс уақыты жүйесі орнату және басқару үшін біраз жауапкершілік алады стек және үйінді сияқты мүмкіндіктерді қамтуы мүмкін қоқыс шығару, жіптер немесе басқа динамикалық тілге кіріктірілген ерекшеліктер.[1]

Шолу

Кез-келген бағдарламалау тілі орындау моделін көрсетеді, ал көбісі жұмыс уақытының жүйесінде осы модельдің ең болмағанда бір бөлігін енгізеді. Орындалатын жүйенің мінез-құлқының мүмкін болатын анықтамаларының бірі, басқалармен қатар, бағдарламаның өзіне тікелей байланысты емес кез-келген мінез-құлық. Бұл анықтама жұмыс уақыты жүйесінің бір бөлігі ретінде функцияларды шақыру алдында стекке параметрлерді қою, дискінің әрекеті сияқты заттарды қамтиды Енгізу / шығару, және байланысты мінез-құлықты қатар орындау.

Бұл анықтама бойынша, кез келген тілде жұмыс уақыты жүйесі бар, оның ішінде жинақталған тілдер, аударылған тілдер, және ендірілген доменге арналған тілдер. Тіпті API сияқты жеке орындалу модельдері шақырылды Жіптер (POSIX жіптер ) орындау моделінің мінез-құлқын жүзеге асыратын жұмыс уақыты жүйесі болуы керек.

Жұмыс уақытының жүйелеріне арналған көптеген ғылыми жұмыстар параллель жұмыс уақытының жүйелерін енгізуге арналған. Параллель жұмыс уақыты жүйесінің көрнекті мысалы болып табылады Цилк, танымал параллель бағдарламалау моделі.[2]Сонымен қатар, жұмыс уақытының параллель жүйелерін құруды жеңілдету үшін прототиптік жұмыс құралы құрылды.[3]

Орындау үлгісінің мінез-құлқынан басқа жұмыс уақыты жүйесі қолдау қызметтерін де орындай алады типті тексеру, түзету, немесе кодты құру және оңтайландыру.[4]

Орындалу уақыты жүйесі де жұмыс істеп тұрған бағдарламаның жұмыс уақыты ортасы, онда бағдарламаның орындалуы кезінде қол жетімді болатын мемлекеттік мәндер ғана емес, сонымен қатар бағдарламалық жасақтама кезінде диск жетектері және пернетақта арқылы адамдар сияқты өзара әрекеттесуге болатын белсенді нысандар бар. Мысалға, қоршаған ортаның айнымалылары көптеген операциялық жүйелердің ерекшеліктері болып табылады және жұмыс уақыты ортасының бөлігі болып табылады; жұмыс істеп тұрған бағдарлама оларға жұмыс уақыты жүйесі арқылы қол жеткізе алады. Сол сияқты, DVD диск жетегі сияқты аппараттық құрылғылар - бұл бағдарлама жұмыс уақыты жүйесі арқылы өзара әрекеттесе алатын белсенді нысандар.

Орындау ортасының бірегей қосымшасы (RTE) амалдық жүйеде (ОЖ) бар тек RTE-ді іске қосуға мүмкіндік береді, яғни жүктелуден бастап бүкіл ОЖ-ны өшіргенге дейін тек сол RTE ішінде жұмыс істейтін қолданбаларға арналған. Іске қосуға тырысатын кез-келген басқа код немесе қосымшалардағы кез-келген сәтсіздіктер барлық өңдеулерді тоқтататын және қайта жүктеуді қажет ететін ОЖ-ны бұзатын RTE бұзады. Егер жүктеу тек оқуға болатын жадтан болса, өте қауіпсіз, қарапайым, бір миссиялы жүйе құрылады.

Тікелей жинақталған жұмыс уақытының жүйелеріне мысалдар:

  • 1983-1984 жылдар аралығында Сандық зерттеулер бірге жүктелетін иілгіш дискеттерде IBM PC үшін бірнеше бизнес және білім беру қосымшаларын ұсынды SpeedStart CP / M-86, жұмыс уақыты ортасы ретінде CP / M-86 қысқартылған нұсқасы.[5][6][7][8][9]
  • Кейбір жеке нұсқалары Ventura баспасы (1986–1993),[10] Artline (1988–1991),[10] Timeworks Publisher (1988–1991) және ViewMAX (1990–1992)[11][12][13] сандық зерттеулердің жұмыс уақытының арнайы нұсқаларын қамтыды GEM олардың жұмыс ортасы ретінде.[10]
  • 1990 жылдардың аяғында JP бағдарламалық жасақтамасы командалық жол процессоры 4DOS байланыстырылатын арнайы жұмыс уақытының нұсқасында міндетті түрде қол жетімді болды BATCOMP алдын-ала құрастырылған және шифрланған партиялық жұмыс өзгертілмейтін жасау үшін орындалатын файлдар пакеттік сценарийлерден және оларды 4DOS орнатылмаған жүйелерде іске қосыңыз.[14]

Мысалдар

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

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

Тағы бір мысал: қолданбалы бағдарламалау интерфейсі (API) жұмыс уақыты жүйесімен өзара әрекеттесу үшін. Бұл API қоңыраулары кәдімгіге қоңырау сияқты көрінеді бағдарламалық кітапхана, бірақ қоңырау кезінде белгілі бір уақытта орындау моделі өзгереді. Орындалу уақыты кітапхана тілге қарағанда орындалу моделін жүзеге асырады. Кәдімгі кітапхананың кодын оқитын адам кітапханада жазылған тілді білу арқылы кітапхананың мінез-құлқын түсіне алады. Алайда жұмыс істеу жүйесін шақыратын API кодын оқыған адам түсінбейді. қоңырау жазылған тілді біле отырып, API қоңырауының әрекеті. Бір сәтте қандай да бір механизм арқылы орындау моделі қоңырау жазылған тілдікін тоқтатады және орындалу моделі болып орындалады. жүйе. Мысалы, тұзаққа нұсқау - бұл орындау модельдерін ауыстырудың бір әдісі. Бұл айырмашылық әдеттегі бағдарламалық кітапханадан Pthreads сияқты API-шақырылған орындау моделін ажыратады. Pthreads қоңыраулары да, бағдарламалық кітапхананың қоңыраулары да API арқылы шақырылады, бірақ Pthreads әрекетін қоңырау тілі тұрғысынан түсіну мүмкін емес. Керісінше, Pthreads қоңыраулары Pthreads жұмыс уақыты жүйесімен жүзеге асырылатын сыртқы орындау моделін іске қосады (бұл жұмыс уақыты көбінесе ОЖ ядросы болып табылады).

Экстремалды мысал ретінде физикалық процессордың өзін белгілі бір ассемблер тілінің жұмыс уақыты жүйесінің орындалуы ретінде қарастыруға болады. Осыған байланысты орындау моделін физикалық процессор мен жад жүйелері жүзеге асырады. Ұқсастық ретінде жоғары деңгейлі тілдерге арналған жұмыс уақыты жүйелері кейбір басқа тілдердің көмегімен жүзеге асырылады. Бұл процессордың өзі немесе оның логикасы орындалатын жүйенің иерархиясын жасайды микрокод қабат немесе одан төмен - ең төменгі деңгейдегі жұмыс уақыты жүйесі ретінде әрекет етеді.

Қосымша мүмкіндіктер

Кейбір компиляцияланған немесе түсіндірілген тілдер қолданба кодының жұмыс уақытының жүйесімен тікелей әрекеттесуіне мүмкіндік беретін интерфейсті ұсынады. Мысал ретінде Жіп сынып Java тілі. Класс кодқа (бір ағынмен анимацияланған) басқа ағындарды бастау және тоқтату сияқты әрекеттерді жасауға мүмкіндік береді. Әдетте, тілдің мінез-құлқының негізгі аспектілері тапсырмаларды жоспарлау және ресурстарды басқару қол жетімді емес.

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

Шектеулі уақытта жұмыс жүйесі а. Сияқты қызметтерді ұсына алады P-код машинасы немесе виртуалды машина, бұл тіпті процессорды жасырады нұсқаулар жинағы. Бұл көптеген ұстанатын тәсіл аударылған тілдер сияқты ОҚЫ және кейбір тілдер сияқты Java, олар машинадан тәуелсіз түрде құрастыруға арналған аралық өкілдік код (мысалы байт коды ). Бұл келісім тілді енгізу және оны әр түрлі машиналарға бейімдеу міндеттерін жеңілдетеді және сияқты күрделі тілдік мүмкіндіктердің тиімділігін арттырады. шағылысу. Сонымен қатар, дәл сол бағдарламаны кез-келген машинада нақты қайта компиляциясыз орындауға мүмкіндік береді, бұл функция көбейген кезден бастап өте маңызды болды. Дүниежүзілік өрмек. Орындауды тездету үшін кейбір жұмыс уақытының жүйелері жұмыс істейді дәл қазір жинау машиналық кодқа.

Орындау жүйелерінің заманауи аспектісі - параллель орындалу әрекеттері, мысалы, Мутекс құрылымдары көрсеткен мінез-құлық. Жіптер және параллель қиманың конструкциялары OpenMP. Осындай параллель орындау мінез-құлықтары бар жұмыс уақыты жүйесі болуы мүмкін модульденген proto-runtime тәсілі бойынша.

Тарих

Орындау жүйелерінің маңызды алғашқы мысалдары - аудармашылар НЕГІЗГІ және Лисп. Бұл орталарға а қоқыс жинаушы. Төртінші аралық ұсыну кодына құрастыруға арналған тілдің алғашқы мысалы; оның жұмыс уақыты бұл кодты түсіндіретін виртуалды машина болды. Тағы бір танымал, мысалы, теориялық болса Дональд Кнут Келіңіздер MIX компьютер.

Жылы C жадыны динамикалық бөлуді қолдайтын кейінгі тілдер, жұмыс уақыты жүйесінде бағдарламаның жад пулын басқаратын кітапхана да болды.

Ішінде объектіге бағытталған бағдарламалау тілдері, жұмыс уақыты жүйесі көбінесе динамикалық типті тексеру және әдіс сілтемелерін шешуге жауапты болды.

Сондай-ақ қараңыз

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

  1. ^ Ахо, Альфред В.; Лам, Моника Син-Линг; Сети, Рави; Ульман, Джеффри Дэвид (2007). Құрастырушылар: принциптері, әдістері мен құралдары (2-ші басылым). Бостон, MA, АҚШ: Pearson білімі. б.427. ISBN  978-0-321-48681-3.
  2. ^ Блумофе, Роберт Дэвид; Джоерг, Кристофер Ф .; Кусмаул, Брэдли С .; Лейзерсон, Чарльз Е .; Рэндалл, Кит Х .; Чжоу, Юли (1995 ж. Тамыз). «Cilk: тиімді көпжіптелген жұмыс уақыты жүйесі». PPOPP '95: параллель бағдарламалаудың принциптері мен практикасына арналған ACM SIGPLAN бесінші симпозиумының материалдары.. Есептеу техникасы қауымдастығы (ACM): 207-216. дои:10.1145/209936.209958. S2CID  221936412. Мұрағатталды түпнұсқасынан 2020-02-11. Алынған 2020-01-11.
  3. ^ Ашық көзді зерттеу институты (2011). «Proto-Runtime Toolkit басты бетіне қош келдіңіз». Proto-Runtime Toolkit (PRT). Мұрағатталды түпнұсқасынан 2020-02-11. Алынған 2020-01-11.
  4. ^ Аппел, Эндрю Уилсон (Мамыр 1989). «Жұмыс уақыты жүйесі» (PDF). Принстон университеті. Архивтелген түпнұсқа (PDF) 2013-12-30. Алынған 2013-12-30.
  5. ^ «IBM PC үшін CP / M қосымшалар кітапханасында қандай жаңалықтар бар екенін қараңыз - уақытты үнемдеуге арналған ұсыныс - CP / M бір уақытта ақысыз алыңыз» (PDF) (Өнім парағы). Тынық мұхиты, Калифорния, АҚШ: Digital Research, Inc. 1983. Мұрағатталды (PDF) түпнұсқасынан 2020-02-11. Алынған 2020-02-11. […] SpeedStart бағдарламалық жасақтаманы пайдалануды жеңілдетеді. CP / M қосымшалар кітапханасындағы барлық бағдарламалық жасақтаманың жаңа SpeedStart нұсқасы бар CP / M Бағдарлама дискісіне дәл енгізілген амалдық жүйе. Бұл қосымшаларды пайдалану үшін сізге дискіні өзіңіздің ішіңізге енгізу қажет IBM PC, жүйені қосыңыз, және сіз дайынсыз. Бұл жеке операциялық жүйені жүктеу, дискілерді ауыстыру және бағдарламаларды жүктеу қажеттілігін жояды. CP / M қосымшалар кітапханасындағы SpeedStart бағдарламалық жасақтамасы: […] Сізге CP / M жұмыс уақытының ақысыз нұсқасын ұсынады […] Әрбір жаңа қолданбалы бағдарламаны орнату қажеттілігін жояды […] Сандық зерттеулер қуатты 16-биттік операциялық жүйе, CP / M-86, және ең заманауи, көп міндет Бір уақытта CP / M Операциялық жүйе. […]
  6. ^ «DRI доктор Логотиптің 128K нұсқасын жібереді» (PDF). Микро жазбалар - Digital Research өнімдері туралы техникалық ақпарат. 2 (2). Pacific Grove, Калифорния, АҚШ: Digital Research, Inc. Мамыр 1984. б. 4. NWS-106-002. Мұрағатталды (PDF) түпнұсқасынан 2020-02-11. Алынған 2020-02-11. […] Доктор Логотип бөлшек сауда нарығында алғаш рет 1983 жылдың күзінде пайда болды IBM PC және шыңына көтерілді Softsel ыстық тізімі. Бөлшек сауда шығарылымы кіреді SpeedStart CP / M, қысқартылған нұсқасы CP / M бұл автоматты түрде етік жүйе қосылған кезде. […] [1]
  7. ^ Digital Research Inc. (Ақпан 1984). «IBM PC үшін 350 доллар бонусы бар бағдарламалық жасақтаманы ұсынамыз!». БАЙТ (Жарнама). Том. 9 жоқ. 2. 216–217 беттер. Алынған 2013-10-22. [2][3]
  8. ^ Digital Research Inc. (1984-02-07). «IBM PC үшін 350 доллар бонусы бар бағдарламалық жасақтаманы ұсынамыз!». PC журналы (Жарнама). Том. 3 жоқ. 2018-04-21 121 2. PC Communications Corp. 50-51 бет. ISSN  0745-2500. Архивтелген түпнұсқа 2020-02-11. Алынған 2020-02-11.
  9. ^ Digital Research Inc. (Желтоқсан 1983). «IBM PC үшін 350 доллар бонусы бар бағдарламалық жасақтаманы ұсынамыз!». PC журналы (Жарнама). Том. 2 жоқ. 7. PC Communications Corp. 306–307 бет. ISSN  0745-2500. Архивтелген түпнұсқа 2020-02-11. […] Таныстыру SpeedStart - эксклюзивті жүктеме - бағдарламалық қамтамасыз ету жүйесі. CP / M қосымшаларының кітапханасы тек үздік брендтен гөрі көбірек ұсынады IBM PC бизнестегі бағдарламалық жасақтама. Біздің қосымшалардың әрқайсысы біздің эксклюзивті SpeedStart бір дискілі жүйенің теңдесі жоқ ыңғайлылығын ұсынады. SpeedStart - бұл қуаттылардың ерекше нұсқасы CP / M-86 бағдарламалық жасақтама дискілерінің әрқайсысына салынған операциялық жүйе. Жұмысқа дайын болған кезде дискіні жүктеп, IBM ДК-ні қосып, жүріңіз! SpeedStart жеке операциялық дискіні жүктеу, содан кейін бағдарламалық жасақтаманы «орнату» уақытты қажет ететін тапсырманы жояды. Шын мәнінде, SpeedStart жүйесі сізді қазіргі уақытта қол жетімді кез-келген бағдарламалық жасақтамаға қарағанда тезірек және жеңілірек жұмыс істеуге мәжбүр етеді. Ең жақсысы, бұл сізге қосымша ақысыз. Сонымен қатар, SpeedStart бағдарламасын болашақтағы IBM PC операциялық жүйесінде бағдарламалық жасақтаманы іске қосуға болады - бұл керемет, көп міндеттер. Бір уақытта CP / M. […]
  10. ^ а б c Крауттер, Томас; Барнс, Крис Дж. (2006-06-14) [1999-12-29]. «GEM / 4». GEM дамыту. Мұрағатталды түпнұсқасынан 2013-03-16. Алынған 2020-01-12. […] The Artline 2 Операциялық жүйе болды GEM / 4 […] GEM / 4-ке барлық өзгерістер ынтымақтастық аясында енгізілді Ли Лоренсен және Дон Хейскелл үйлесімділікті сақтау ventura баспагері. […]
  11. ^ Эллиотт, Джон С. (1999-05-09). «GEM пен ViewMAX арасындағы салыстыру». Seasip.info. Мұрағатталды түпнұсқасынан 2016-11-07 ж. Алынған 2016-11-07.
  12. ^ Пол, Матиас Р. (1997-04-13) [1993]. DRDOS6UN.TXT - DR DOS 6.0 құжатымен және құжаттан тыс құжаттармен қамтамасыз етілуі. MPDOSTIP (неміс тілінде) (60 басылым). Мұрағатталды түпнұсқасынан 2016-11-07 ж. Алынған 2016-11-07.
  13. ^ Пол, Матиас Р. (1997-06-07) [1994]. NWDOS7UN.TXT - Documentierten und undumentationerten құжатқа арналған Novell DOS 7. MPDOSTIP (неміс тілінде) (85 ред.) Мұрағатталды түпнұсқасынан 2016-11-07 ж. Алынған 2016-11-07.
  14. ^ Георгиев, Лучезар И. (2008-11-02). «4DOS, BATCOMP және файлдық пакеттік шифрлаудың жұмыс уақыты нұсқасы». Narkive Newsgroup архиві. Жаңалықтар тобыcomp.os.msdos.4dos. Мұрағатталды түпнұсқасынан 2020-01-11. Алынған 2020-01-11.

Әрі қарай оқу