Операциялық жүйені жіктеу.

Дәріс. Кіріспе. Операциялық жүйелердің даму бағыттары. Операциялық жүйенің функциялары және міндеттері. Нақты уақыт режимі.

Операциялық жүйе (ОЖ) – дегеніміз компьютер құрылғыларын қолданушы үшін ыңғайлы пайдалану мүмкіншіліктерін қамтамасыздандыруға арналып жазылған программа.

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

Көптеген компьютерлердің архитектурасы машиналар командасы деңгейінде қолданбалы программаларды пайдалануға өте қолайсыз. Мысалы, дискімен жұмыс істеу оның электрондық құрауышының ішкі жабдығын дискіні айналдыру командасын енгізу, жолшықтарды іздеу және форматтау, секторлардан оқу және жазу т.б. үшін – контроллерді біледі деп ұйғарады. Орташа программисттің жабдықтар жұмысының бүкіл ерекшеліктерін ескеруге мүмкіншілігі жоқ екені (қазіргі заманғы терминологиямен айтқанда жабдық драйверін дамытумен шұғылдануға) басқаша айтқанда анық орташа программистің дискінің ақпараттық кеңістігін файлдар жиыны ретінде көрсететін қарапайым жоғарғы деңгейдегі абстракциясы болу керек. Файлды оқу немесе жазу үшін ашуға, ақпаратты алу немесе босату үшін пайдалануға, содан кейін жабуға болады. Дискінің бастиегінің детальдарын жылжыту немесе мотордың жұмысын ұйымдастыруды қамтамасыз етуден, бұл концептиальды жеңіл (оңай). Сол сияқты, қарапайым және анық абстракцияның көмегімен программистен үзуді ұйымдастырудың барлық қажет емес егжей-тегжейі, таймердің жұмысы, жадыны басқару және т.б. жасырылады. Одан басқа, қазіргі заманғы есептеу комплекстеріне операциялық жады көлемі және процессор саны шектеусіз деген иллюзия құруға болады. Осының бәрімен ОЖ айналысады. Сонымен, ОЖ компьютер құрал-жабдықтарымен тікелей жұмыс істейтін виртуалды машина ретінде көрсетіледі.

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

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

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

1946 жылы программаны есте сақтайтын бірінші сандық есептеу машинасы іске қосылғаннан бастап, 1956 жылға дейін есептеу машиналарының құрылысы және іс әрекеттері тұрақты болып қалды. Олардың классикалық фон Нейман архитектурасы, енгізу-шығару операцияларын қоса алғанда, командалардың қатал түрде тізбектеліп орындалуына негізделген. Әдетше қолданушының программасы жүктелгенде және орындалғанда, регистрлердің мәндерін орнату, жады ұяшықтарын тексеру және барлық есептеулермен машиналардың ең төменгі деңгейінде қатынаста болу қызметтері үшін пернетақта арқылы тікелей машинамен жұмыс істелді. Программалар абсолютті машиналар тілі (ондық және сегіздік нотация) жазылды және оны енгізу алдында абсолюттік жүктеме болды. Программаларды автоматтандыру құралдары жоқ болды, немесе өте аз болды. Тек өте күрделі қондырғыларда стандартты программалар кітапханасын аздап пайдаланатын ассемблер мен интерпретаторлар болды.

Символдық программалаудың маңыздылығы мойындалғанда және ассемблерлеу жүйелері кең тараған кезде, стандартты операциялық процедура өндірілді: ассемблер жүктеуішпен оқылады; ассемблер қолданушының стандартты программалар кітапханасы қосылған бастапқы программасын «символикалық колодалар» абсолюттік формасына түрлендіреді; ассемблерленген программа лентаға немесе картаға жазылады, ал жүктегіш осы программаны картадан негізгі жадыға енгізу үшін тағы да қайтадан пайдаланылады; содан кейін абсолютті программа орындалады. Әсіресе, осы қадамда карталарды өңдеу үшін ЭЕМ қажет ететін уақытпен салыстырғанда әрбір қадам оператор жағынан манипуляцияны қажет етеді және көп уақыт алады.

ОЖ-нің «1-ші буыны (ұрпағы)» өмірге жоғарыда айтылған тиімсіздіктермен, сонымен қатар басқа да пікірлемен келтірілген. Бұл қосымша факторларда: құрал-жабдықтарды басқаруға шығатын шығын; басқа тілдердің болуы; кітапханалық программалардың дамуы және құрылғылар, әсіресе, енгізу-шығару операцияларына қатысты ерекшеліктер; абсолюттік программаның орындалуына қажет баолық программалар секциялары және бағыныңқы программаларды аударудың (трансляциялаудың) ыңғайсыздығы, ең басында барлығы бірге және барлық уақытта кез келген программаларға өзгертулер енгізілген кезде таратылуы келтірілген. Алғашқы жүйелік дестелер (пакеттер) стандартты тізбекті «жүктеу/аудару (трансляция)/жүктеу/ орындау» қажетті жүйелік программаларды (ассемблер, компилятор, жүктеуіш немесе кітапханалық бағыныңқы программалар) табатын және жүктейтін, сонымен қатар бірінші тапсырмадан екінші тапсырмаға өтуді басқаратын, орталық басқару программасының көмегімен автоматтандырылады. Тілдік аударулар (трансляторлар) программаларды абсолюттік емес, жылжымалы пішінде (формада) құру үшін қайта көшірілген. Қалыпты (колоданы) араластыруға рұқсат ететін бастапқы және жылжымалы объекті пішінде (формада) программалары бар байланыстырғыш жүктемелер жасалған содан кейін кітапханалық программаларды жылжымалы объекті пішінінде (формасында) сақтау мүмкіндігі пайда болды. Операторға (оператор-аламға) енгізу-шығару дестелеріне (пакеттеріне) арналған, стандартты емес тапсырмаларды күтуші (обслуживание) және қабылданбаған кезде жүйелерді қалпына келтіретін физикалық жабдықтарды басқару қажет. Тапсырма авторының, тапсырманың орындалу процессіне тікелей қатынасы жоқ. Бұл ОЖ-де қауіпсіздік ең қиын және нақтылы проблема: жүйе өздігінен немесе қолданушы арқылы жеңіл бүлінуі мүмкін, одан басқа, кез келген қолданушы өз тапсырмасының ішінен дестедегі (пакеттегі) келесі тапсырманы оңай оқуы мүмкін. Ресурстарды ең бірінші негізгі жадыны және енгізу-шығару құрылысын үлестіру, ОЖ-ге қарағанда, үлкен дәрежелі тіл процессорларының және қолданушылар программасының таныстырмасы болды. Аппаратураның архитектурасы және программалық айқындалушылығына қарағанда, ОЖ-нің болашақта даму көзқарасынан айырмашылық аппараттық қамтамада уақыт периоды шамамен ЭЕМ-нің буындарының (ұрпақтарының) даму периодымен түйіседі.

1959 жылдан 1963 жылдардағы периодта бірнеше маңызды аппараттық зерттеулер кең таралды және ОЖ дамуына себепші болды. Деректер каналы – байланысты басқаратын және деректерді негізгі ЭЕМ-мен және енгізу-шығару құралдары арасында беретін, өзінің жеке жүйелік командаларымен және басқару құрылғыларымен қарапайым ЭЕМ-сы маңызды ақпараттық жаңалық болды. Орталық өңдеуші құрылғыдан (ОӨҚ) енгізу-шығару сұранысын алған кезде, канал енгізу-шығару асинхронды және өз жұмысын жалғастырушы ОӨҚ-мен бірге (параллельно) орындайды; енгізу-шығару операциялары және ОӨҚ-н мезгілде (уақытта, кезде) қиыстыру мүмкіндігі пайда болады. Негізгі жады каналымен және ОӨҚ-мен бөлінеді. Негізгі жады олар үшін программаларды және деректерді сақтайды. Алғашқы кезде ОӨҚ тек каналдың жағдайын ғана сұрай алатын, бірақ жақын арада, егер канал ақпарат берумақсатында ОӨҚ-нің жұмысын көп жағдайда енгізу-щығару операторлары аяқталғанда үзетін болса, тиімділікті жоғарылатуға болатындығы анықталды.

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

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

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

1962 жылдан 1969 жылдар аралығында үлкен ОЖ-лердің тегіс барлығында тапсырмаларды өңдеудің жаңа әдісі – мультипрограммалау қолданыла бастады. Сонымен қатар, дестелік өңдеуге альтернатива ретінде, уақытты бөліктегіш, есептеулерді орындаудың жаңа әдісі жасалды, жүйә үшін нақты басқарылатын жадыны және қолданушылардың кітапханалық программаларын, сол сияқты қолданушының тапсырмаларын өңдеді күтушілер үшін тез қатынасты үлкен дискілік құрылғылар қамтамасыз етті. Көптеген ЭЕМ-на жадыны және командаларды қорғайтын аппараттық құралдар енгізілген. Кейбір үлен машиналарда адрестерді баптайтын аппараттық құралдары бар, үлкен «виртуалды» жадына жүзеге асыруға мүмкіндік берген негізгі жады жүйесі пайда болды. Мультипроцессорлық конфигурациялар көбірек таратылған. Ресурстарды тарату және қорғау мультимедиялық орташа қиын шешілетін және өте қажетті проблема. Онда көп процесстер бір мезгілде бірігіп және жеке (монопольно) жүйе ресурстарын сұрап пайдалануы мүмкін. Көбінесе олар сигналдарды бір-біріне жиі беруі керек және ол сигналдар шамасы (потенциал) «қастандық» немесе қате болуы мүмкін. Тура осы периодта ОЖ-ні зерттеу есептеу техникасы аймағындағы ең басты бағыт болды.

Осы уақытта ЭЕМ-ның үлкен желілері, байланыс тізбегі негізінде салынған, қызмет ұсына бастайды. Желілер жүйелік программалық қамтамаға одан да үлкен талаптар ұсынады. Аппаратық микропрограммаларды қайта жазу мүмкіндігі бар басқару жадысының пайда болуы, ақпаратты автоматты түрде деңгейлер арасында беретін негізгі жадының иерархиялық құрылымы, ассоциотивті есте сақтау құрылғыларының өнімділігі сияқты өзгерістер бар.Сол сияқты өңдеу құрылғыларындағы, оның ішінде программаланатын «параллельизмнің» тереңдеуі, программалық қамтамаға қатысты жаңа талаптар әкелді және ОЖ принциптерін түсіндіреді. Қазіргі заманғы программалық қамтамалар жүзеге асуы мүмкін болатын процесстерді және ресурстарды жобалау үшін, ОЖ қарапайымдылығын анықтау:

- Адам – бағдарланған тілдер, тапсырмаларды басқару;

- параллельизмді қамтамасыз ететін тілдер және жүйелер;

- ОЖ әрекетін өлшейтін бағыныңқы жүйелер;

- Әмбебаптық қорғау схемасы;

Есептеу машинасының дамуының маңызды периоды 1960-1980 жылдарға жатады. Процессор уақытын тиімді пайдалануды жоғарылату ішін деректерді, тербелістен-тербеліс арасында тәсілдерді немесе spooling (Simultaneous Peripheral Operation On Line сөзінен қысқартылған) енгізіледі. Жүйелік дестелерге (пакеттерге) тербелістен-тербеліс астында техникасының енгізілуі бір тапсырманың енгізу-шығару операцияларын нақты басқа тапсырманың орындалуымен бірлестіруге рұқсат етті. Бірақ, бұл операциялардың аяқталғаны туралы процессорға хабар жеткізу үшін үзу аппаратын жетілдіруді (жасауды) талап етті.

Процессорды пайдаланудың тиімділігінің әрі қарай жоғарылауына мультипрограмманаың көмегімен қол жетті. Мультипрограммалау идеясы келесідей қорытындалды: бір програма енгізу-шығару операцияларын орындап жатқан кезде, бір программалық режим кезіндегідей процессор тұрмайды. Енгізу-шығару операциялары аяқталған кезде, процессор, бірінші программаны орындауға қайтады.

Әрбір программалық жасау құрауыштары операциялық жүйенің басқаруымен жұмыс жасайды.

ЭЕМ аппаратурасына операциялық жүйеден басқа программалық жасау құрауыштарының еш қайсысы қатыспайды.

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

1. пайдаланушыдан қабылдайтын командалар және олардың өңдеуі;

2. басқа программаларды іске қосу, тоқтату, кідіру үшін қабылданатын және орындалатын программалық сұраныс;

3.орындалатын программаларды оперативті жадыға жүктеу;

4.программаның иницияциясы(передача ей упр-я в рез-те пр-р исп-т прогр-му)

5.барлық программалар мен деректердің идентификациясы;

6.деректер базасын басқару жүйесінің жұмысын жасау, программалық жасаудың тиімділігін көтереді;

7.мультипрограммалау режимін жасау (екі және оданда көп программалардың бір процессорда орындалуы);

8.барлық енгізу-шығару операцияларын ұйымдастыру және басқару функцияларын жасау;

9.жадыны үлестіру;

10.берілген стратегиялар және қызымет көрсету пән бойынша есептердің жоспарлауы мен диспетчерлеуі;

11.орындалатын программалар арасындағы деректер мен хабарлардың алмасу кетігін ұйымдастыру;

12.деректердің сақтауын жасау; бір программаны басқа программаның қатерінен сақтау;

13.жүйенің бөліктік жаңылысу кезінде берілетін қызымет;

14.программалау жүйесінің жұмысын жасау арқылы пайдаланушылар өз программаларын дайындайды;

Операциялық жүйемен қатынасу қызметін алу үшін программаларға қажет интерфейсті операциялық орта дейміз (енгізу-шығару операциясын орындау, жадының участкесін алу немесе босату).

Әр бір программалау жүйесі өзіне сәйкес операциялық жүйеде жұмыс жасайды. Операциялық жүйені қызыметтеу үшін арнайы жүйелік программалар утилит дейміз.

Операциялық жүйені жіктеу.

Операциялық жүйелер біріншіден жалпы және арнайы тағайындалады. Есептерді өңдеу режимінде операциялық жүйе бір программалы және мультипрограммалы режимдерге бөлінеді.

Бірсанашықтық есептеу жүйесінде бірнеше программаның бір уақытта орындалып жатқандай көріністі біз мультипрограммалық есептеуді ұйымдастыру тәсілі деп атаймыз.

Бұл терминдердің негізгі айырмашылығы.

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

Мультипрограммалауды ұйымдастырған кезде, операциялық жүйенің рөлі мынадай:

1.ОЖ және қолданбалы программа арасындағы интерфейсті ұйымдастыру;

2.Жадыдағы тапсырмалардан кезек ұйымдастыру;

3.Бір тапсырмадан екінші тапсырмаға ауысу;

4.Ақпаратты жадыдан таңдау және ауыстыру, орналастыру процессін реттеу;

5.Файлдар түріндегі сыртқы тасымалдауыштардағы ақпараттардың сақталуын ұйымдастыру және анықталған категориядағы қолданушыға нақты файлмен қатынасты қамтамасыз ету;

6.Коммуникация құралдарымен қамтамасыздандыру;

7.Деректерді мүлтіксіз (корректно) алмастыру үшін әр түрлі ресурстармен жұмыс істеген кезде пайда болатын және өз әрекеттерінің координациясын программамен алдын ала ескеретін жанжалды (конфликт) оқиғаларды шешу керек, яғни: жүйені синхронизациялау құралдарымен жабдықтау керек. Келесі период (1980 жылдан қазірге дейін) дербес компьютерлерде шығарылатын есептердің даму күрделілігі мен әр түрлілігі, олардың жұмыстарының сенімділігін арттыру қажеттілігі, үлкен есептеу машинасы архитектурасына тән барлық қасиеттердің практикада жолдануына әкеледі.

Соңғы операциялық жүйелер дербес компьютерлер үшін мультипрограммалық және мультиесептік режимдерді жүзеге асырады. Негізгі сәулеттік принциптері бойынша операциялық жүйені микроядролық және монолиттіге бөлуге болады. Бір жағынан бұл бөлініс шартты түрде көрсетілген. Мысал келтіретін болсақ микроядролық операциялық жүйеге QNX негізгі уақыт операциялық жүйесін қатынастыруға болады. Ал монолитті операциялық жүйесі WIN 95/98 немесе Linux операциялық жүйесі. Win ядросын біз өзгерте алмаймыз , бізге оны алғашқы кодтары белгісіз және бізде ядроны жинау үшін арналған программалар жоқ. Linux ОЖ-не біз керек программалық модульдермен драйверларды қосып ядроны жинауымызға болады.

Операциялық жүйені қарастырғанда есептеуіш үрдіс түсініктемесі негізгі болып саналады.

Бөлек программаның деректерімен бірге тізбекті санашықта орындалуын тізбекті үрдіс деп атаймыз.Мысал келтіретін болсақ үрдістерге пайдаланушының қолданбалы программаларының орындалуы, утилиттар және басқа жүйелік программалар жатады.

Текстің редакциялауы, программаны аударуы, оның құрастыруы, орындалуы үрдіс болуы мүмкін. Бір программаны аудару ол бір үрдіс, ал келесі программаны аудару – ол басқа үрдіс.

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

Қор түсініктемесі де үрдіс сияқты операциялық жүйесінде негізгі болып саналады. Қорды үлестіру және басқару механизмдерін ұлғартуын процесс концепциясы анықтайды. Жүйе ішінде үлестірілетін әрбір объектті қор деп атайды. Ең бірінші есептеу жүйелерінде орындалып жатқан программаның толық орындалуынан кейін келесі программа орындалатын. Орталық санашық есептерді орындап , деректерді енгізу-шығару операцияларын басқаратын.

Оперативті жады мен сыртқы құрылғы арасында деректермен алмасу орындалған кезде, санашық басқа есептерді орындамайтын.

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

Бұл келісім жадыда бірнеше үрдістің санашықтың босауын күтіп, ал бірнеше үрдістер босаған қорларды қолдануға дайын кезде орындалады. Бір қорды қолдану үшін ( енгізу –шығару құрылғысы, деректер массиві, оперативті жад т.б.) үрдіс операциялық жүйенің супервизорына қатынасады. Супервизор-орталық басқару мөдулінен тұрады, бұл мөдул бірнеше мөдулден тұрады: енгізу-шығару супервизоры, үзу супервизоры, программалар супервизоры, есептер диспетчері т.б. –негізгі шақыру арқылы (командалар ) – өзінің шартын хабарлайды. Бұл кезде қордың түрі көрсетіледі, керек болса оның мөлшемі (мысалы жолшық саны , баспа құрылғысы,шығатын деректердің мөлшемі т.б.)

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