RC 4000 Жүйесі: Алғашқы Микроядролық Операциялық Жүйе
RC 4000 multiprogramming system
RC 4000 жүйесі – 1969 ж. жасалған, хабар алмасу ядросы арқылы өзара әрекеттесетін бағдарламаларға негізделген алғашқы операциялық жүйе. Микроядро тұжырымына әсер етті.
Ағылшыншамен салыстырыңыз: абзацты басыңыз — түпнұсқа терезеде ашылады. Абзац астындағы EN түймесі оны мәтін ішінде көрсетеді.
Кіріспе
Технологиялық жүйе (тоқтатылды)
Technological System (Discontinued)
RC 4000 Көп бағдарламалау жүйесі (кейде анықтамаға байланысты Монитор немесе RC 4000 деп аталады) – 1969 жылы RC 4000 миникомпьютері үшін жасалған, қолданыстан тоқтатылған операциялық жүйе. Мақаланың түсінікті болуы үшін, бұл жерде көбінесе Монитор термині қолданылады.
The RC 4000 Multiprogramming System (also termed Monitor or RC 4000 depending on reference) is a discontinued operating system developed for the RC 4000 minicomputer in 1969. For clarity, this article mostly uses the term Monitor.
Шолу
RC 4000 Көп бағдарламалау жүйесі операциялық жүйені хабар алмасу ядросы арқылы байланысатын өзара әрекеттесетін бағдарламалар тобына бөлудің алғашқы талпынысы болып табылады. RC 4000 кеңінен қолданылмаған, бірақ өте ықпалды болды, 1970 және 1980 жылдары операциялық жүйелерді зерттеуге үстемдік еткен микроядро тұжырымын тудырды. Мониторды негізінен RC 4000 жобаланған Regnecentralen-де жұмыс істеген Пер Бринч Хансен бағдарламашы жасаған. Лейф Свальгаард Monitor-ді іске асыруға және сынауға қатысты. Бринч Хансен жаңа машинаға ешбір қолданыстағы операциялық жүйе сәйкес келмейтінін анықтады және қолданыстағы жүйелерді бейімдеуден шаршады. Ол бір-бірімен әрекеттесетін бағдарламалардан операциялық жүйені құрастыру үшін ядро деп аталатын ядроны жасауды жақсы шешім деп санады. Мысалы, Unix көптеген тапсырмалар үшін шағын өзара әрекеттесетін бағдарламаларды қолданады, олар деректерді құбыржолдар немесе құбырлар деп аталатын жүйе арқылы жібереді. Алайда, ядроға негізгі кодтың үлкен бөлігі, атап айтқанда файлдық жүйелер мен бағдарламаны басқару сияқты нәрселер кіріктірілген. Монитор мұндай кодты да көшіріп, жүйенің дерлік барлық бөлігін өзара әрекеттесетін бағдарламалар жиынтығына айналдырады, ядроны (ядроны) тек байланыс және қолдау жүйесіне дейін азайтады. Монитор процестер арасындағы байланыс (IPC) негізі ретінде ортақ жадтың құбыр тәрізді жүйесін қолданды. Бір процестен екіншісіне жіберілетін деректер бос жад буферіне көшіріліп, қабылдаушы бағдарлама дайын болған кезде қайтадан шығарылады. Содан соң буфер жиынтыққа қайтарылды. Бағдарламалар деректерді беру үшін төрт әдістің асинхронды жиынтығын пайдалана отырып, өте қарапайым қолданбалы бағдарламалау интерфейсін (API) қолданды. Клиенттік қолданбалар деректерді жіберу хабарламасымен жібереді және күту жауабын пайдалану арқылы қажет болса тоқтата алады. Серверлер шақырулардың айналысуын, хабар күтуді және жауап жіберуді қолданды. Ескерту: хабарламалардың әрбір жіберілген хабарлама үшін жасырын «қайтару жолы» бар, бұл семантиканы Mach-тың толық кіріс/шығыс (I/O) негізделген жүйесіне қарағанда қашықтан процедура шақыруына ұқсатады. Монитор қолданба кеңістігін екіге бөліп отырды: ішкі процестер – бұл сұраныс бойынша басталатын дәстүрлі бағдарламаларды орындау, ал сыртқы процестер – құрылғы драйверлері. Сыртқы процестер пайдаланушы кеңістігінен тыс ядромен басқарылатын, бірақ оларды кез келген басқа бағдарлама сияқты бастау және тоқтату мүмкін. Ішкі процестер оларды іске қосқан ата-ананың контекстінде басталды, сондықтан әрбір пайдаланушы өз контекстінде бағдарламаларды бастау және тоқтату арқылы өз операциялық жүйесін тиімді құрастыра алады. Жоспарлау, қажет болса, бағдарламаларға толықтай қалдырылды (1960 жылдары компьютерлік көп тапсырмалылық талқыланатын құндылық болды). Бір пайдаланушы сеансты алдын ала көп тапсырмалы ортада бастауы мүмкін, ал екіншісі топтық өңдеуді жоғары жылдамдықпен орындау үшін бір пайдаланушы режимінде бастауы мүмкін. Нақты уақыт кестесін тек тиісті уақытта қайтарылатын таймер процесіне хабарлама жіберу арқылы қолдауға болады. Бұл екі сала Monitor шығарылғаннан бері дамудың басым бөлігін құрады, жаңа дизайндарды хабарлауды қолдау үшін аппаратты пайдалануға және іске қосу уақытын қысқарту үшін қосымшалар ішіндегі жіптерді қолдауға итермеледі. Мысалы, Mach протоколды жазуға көшірмелеуді және процесстен процеске деректерді көшірудің орнына (картаға түсіру) пайдалану арқылы хабарлауды жақсарту үшін жад басқару блогын қажет етті. Mach сондай-ақ кеңінен жіктеуді қолданды, сыртқы бағдарламаларға немесе серверлерге, қазіргі заманғы терминдерде, кіретін сұраныстар үшін жаңа өңдеушілерді оңай іске қосуға мүмкіндік берді. Дегенмен, Mach IPC микроядролық тәсілді практикалық тұрғыда пайдалы ету үшін тым баяу болды. Бұл тек Джохен Лидтке-нің L4 микроядросы IPC-нің жалпы шығындарын шамамен азайғанын көрсеткенде ғана өзгерді.
The RC 4000 Multiprogramming System is historically notable for being the first attempt to break down an operating system into a group of interacting programs communicating via a message passing kernel. RC 4000 was not widely used, but was highly influential, sparking the microkernel concept that dominated operating system research through the 1970s and 1980s. Monitor was created largely by one programmer, Per Brinch Hansen, who worked at Regnecentralen where the RC 4000 was being designed. Leif Svalgaard participated in implementing and testing Monitor. Brinch Hansen found that no existing operating system was suited to the new machine, and was tired of having to adapt existing systems. He felt that a better solution was to build an underlying kernel, which he referred to as the nucleus, that could be used to build up an operating system from interacting programs. Unix, for instance, uses small interacting programs for many tasks, transferring data through a system called pipelines or pipes. However, a large amount of fundamental code is integrated into the kernel, notably things like file systems and program control. Monitor would relocate such code also, making almost the entire system a set of interacting programs, reducing the kernel (nucleus) to a communications and support system only. Monitor used a pipe like system of shared memory as the basis of its inter process communication (IPC). Data to be sent from one process to another was copied into an empty memory data buffer, and when the receiving program was ready, back out again. The buffer was then returned to the pool. Programs had a very simple application programming interface (API) for passing data, using an asynchronous set of four methods. Client applications send data with send message and could optionally block using wait answer. Servers used a mirroring set of calls, wait message and send answer. Note that messages had an implicit "return path" for every message sent, making the semantics more like a remote procedure call than Mach's completely input/output (I/O) based system. Monitor divided the application space in two: internal processes were the execution of traditional programs, started on request, while external processes were effectively device drivers. External processes were handled outside of user space by the nucleus, although they could be started and stopped just like any other program. Internal processes were started in the context of the parent that launched them, so each user could effectively build up their own operating system by starting and stopping programs in their own context. Scheduling was left entirely to the programs, if required at all (in the 1960s, computer multitasking was a feature of debatable value). One user could start a session in a pre emptive multitasking environment, while another might start in a single user mode to run batch processing at higher speed. Real time scheduling could be supported by sending messages to a timer process that would only return at the appropriate time. These two areas have seen the vast majority of development since Monitor's release, driving newer designs to use hardware to support messaging, and supporting threads within applications to reduce launch times. For instance, Mach required a memory management unit to improve messaging by using the copy on write protocol and mapping (instead of copying) data from process to process. Mach also used threading extensively, allowing the external programs, or servers in more modern terms, to easily start up new handlers for incoming requests. Still, Mach IPC was too slow to make the microkernel approach practically useful. This only changed when Jochen Liedtke's L4 microkernel demonstrated IPC overheads reduced by an order of magnitude.