Құрастырушы: ______аға оқытушы Алимова Ж.С.
______аға оқытушы Токжигитова Н.К.
5В060200 «Информатика» мамандығының күндізгі нысанда оқитын студенттеріне арналған «Операциялық жүйелер» пәнінің
БАҒДАРЛАМАСЫ (Syllabus)
Бағдарлама 2014 ж. «___»_________ бекітілген оқу жұмыс бағдарламасының негізінде әзірленді.
Кафедра отырысында ұсынылды 2014 ж. «___»_________, №_____хаттама
Кафедра меңгерушісі ___________________ Джарасова Г.С.
ФМжАТ факультетінің оқу-әдістемелік кеңесімен мақұлданды 2014 ж. «_____»______________ №____хаттама
ОӘК төрағасы __________ Искакова А.Б. 2014 ж. «____»_____________
1 Оқу пәнінің паспорты
Пәннің атауы «Операциялық жүйелер»
Кредиттер саны және оқу мерзімі
Барлығы – 3 кредит
Курс: 3
Семестр: 5
Жалпы сыйымдылық – 135 сағат
Аудиториялық сағаттар – 45 сағат (дәріс -22,5 сағат, практикалық сабақтар –22,5 сағат)
СӨЖ – 90 сағат (оның ішінде СӨОЖ – 22,5 сағат)
Бақылау формасы
Емтихан – 5 семестр
2 Оқытушылар туралы мәліметтер және байланысу ақпараты
Алимова Жанар Сагидуллаевна
Информатика магистрі, аға оқытушы
Математика және информатика кафедрасы А корпуста (Ломов к-сі, 64) орналасқан, ауд. А-408, тел. 67-36-87 (ішкі 11-25)
3 Пәннің мақсаты мен міндеттері
Оқу пәні - «Операциялық жүйелер» курсы қазіргі кездегі информациялық технологиялардың негізгі тенденциялары мен перспективаларының дамуында көрініс табатын теориялық және тәжірибелік мәліметтерден тұрады. Берілген курс қазіргі кездегі компьютерлік жүйенің күрделілігін, яғни бір немесе оданда көп процессордан, жадыдан, дисктерден, желі интерфейстерінен және басқада құрылғылардан тұратынын көрсететін негізгі курстардың бірі болып табылады.
Пәннің мақсаты - «Операциялық жүйелер» пәнін оқытудың мақсаты қазіргі кездегі программалық қамсыздандыруды пайдалануда білімдер мен дағдыларға оқыту, түрлі ғылыми техникалық есептерді шешу үшін тиімді алгоритмдермен танысу.
Пәннің міндеттері
операциялық жүйелердің концепциясын үйрету;
опеарциялық жүйелердің тарихи дамуына шолу жасау;
операциялық жүйелердің функцияларымен таныстыру;
пайдаланушының, администратордың, программистің және жобалаушының көзқарасымен операциялық жүйелерді зерттеу;
4 Пререквизиттер және постреквизиттер
4.1 Пререквизиттер Пәнді оқу барысында келесі пәндер бойынша қалыптасқан білік пен дағды қажет:
Информатика
Алгоритмдер және деректер структурасы
Программалау тілдері.
4.2 Постреквизиттер
Пәнді оқу барысында қалыптасқан білім, білік және дағды алдағы уақытта жүйелік программалау, программалау тілдері және технологиялары
пәндерін меңгеруге қажет.
5. Білім мен дағдыларға қойылатын талаптар
Студент білу керек:
операциялық жүйелердің қасиеттерін және квалификациясын;
қазіргі кездегі информациялық технологиялардың мүмкіндіктерімен олардың даму перспективаларын зерттеуді;
информациялық жүйелер мен компьютерлік желілерді программалық қамсыздандырудың перспективаларын;
қолдана білу:
Қолданбалы программалау интерфейсін,
Свопинг және виртуалды жады, беттерді аударыстыру стратегиялары, жады қорының менеджері, жадыны бөлу стратегиялары.
Setup бағдарламасы, BIOS құралдарын, CMOS микросхемеларын баптаулар,
Файлдық жүйенің базалық функцияларын, Unix ОЖ ядросының ішкі құрылымын, жүйедегі сұраныстарға қызмет көрсететін базалық функцияларды.
тәжірибешілік дағдыларды меңгеру:
Енгізу-шығару жүйесін басқару, синхронды және асинхронды енгізу-шығару, енгізу-шығаруды диспетчерлеу, еркін және тізбекті қатынас құру тәсілдері, енгізу-шығару ағындары, енгізу-шығаруды қорғау тәсілдері,
Жадыны бірігіп қолдану, жадыны қорғау, виртуалды жадыны ұйымдастыру,
Linux ОЖ-де файлдармен және каталогтармен жұмыс жасау, Файлдармен каталогтарды қорғау.
құзыретті болу:
программалық қамсыздандыруларды пайдалану,
Linux ОЖ-де жұмыс жасау.
6 Күндізгі оқу түріне арналған пәннің тақырыптық жоспары
Сабақтардың түрлері бойынша академиялық сағаттарды бөлу
№
|
Тақырыптар атауы
|
сабақтардың түрлері бойынша аудиториялық сағаттардың саны
|
СӨЖ
|
дәрістер
|
тәжірибе
|
барлығы
|
оның ішінде СОӨЖ
|
1
|
Кіріспе.
|
1,5
|
2
|
5
|
1,5
|
2
|
Үрдістер және ағындар (жіптер)
|
4
|
3
|
15
|
4
|
3
|
Енгізу-шығаруды басқару
|
4
|
3
|
15
|
4
|
4
| Файлдық жүйе |
4
|
4,5
|
15
|
4
|
5
|
Жадыны басқару. Бет бойынша ұйымдастырылуы
|
4
|
4
|
15
|
4
|
6
|
Телекоммуникациялық қатынас құруды басқару
|
4
|
4
|
15
|
4
|
7
|
Қорытынды
|
1
|
2
|
10
|
1
|
Барлығы: 135
(3 кредит)
|
22,5
|
25,5
|
90
|
22,5
|
7 Дәрістік сабақтардың мазмұны
1 Тақырып: Кіріспе. Операциялық жүйелердің даму бағыттары.
Мақсаты: Осы лекцияда операциялық жүйе ұғымын түсіну; операциялық жүйелердің даму эволюциясын қарастыру; операциялық жүйелердің функциялары және операциялық жүйелердің құру тәсілдері сипаттау.
Қарастырылатын сұрақтары:
Есептеуіш жүйе құрылымы
Операциялық жүйелердің тарихы.
Операциялық жүйелердің міндеті.
Жүйелік шақырулар.
Операциялық жүйелердің құрылымы.
Маңызды сөздер: операциялық жүйе (ОЖ), виртуалды машина, қорлардың менеджері, шам, транзисторлар, интеграл схемалары, микропроцессорлар, пакетті жүйе , көп мақсатты ОЖ, уақыттарды бөлу ОЖ, көп пайдалынатын ОЖ, желілі ОЖ, таратылған ОЖ, үзу , жүйелік шақыру, ерекше жағдай, бүтін түйін (ядро), микроядерлі сәулет, көп процессорлық ОЖ, нақтылы уақыттардың жүйесі.
Операциялық жүйе - пайдаланушыға компьютер жабдықтауын ыңғайлы түрде, орынды қолдану мүмкіншілігімен қамсыздандыратын программа. Кіріспе лекция қазіргі бағыт рамкаларында оқылатын операциялық жүйе туралы айтып береді. Біз басында операциялық жүйе дегеніміз не? - деген сұраққа жауап беруге талаптанамыз.
Операциялық жүйе
Есептеуіш жүйе құрылымы
Есептеуіш жүйесі неден тұрады? Біріншіден, ағылшын тілдес елдерде hardware сөзімен қабылданған атау, немесе техникалық қамтамасыздандыру: шина деп аталатын, магистральді қосумен біріккен процессор, жады, монитор, диск құрылғылары және т.б.
Екіншіден, есептеуіш жүйе программалық қамтамасыздандырудан тұрады. Барлық программалық қамтамасыздадыруды екі бөлімге бөлу қабылданған: қолданбалы және жүйелік . Қолданбалы программалық қамтамасыздандыруға, ереже сияқты, әр түрлі банкілік және бизнес-бағдарламалар, ойындар, мәтіндік процессорлар және т.б. жатады. Әдетте, жүйелік программалық қамтамасыздандыруды қолданбалы программалардың өңделуіне және іске асырылуына жағдай жасаушы программа деп түсінеміз. Айта кету керек, қолданбалы және жүйелік программалық қамтамасыздандыруға бөлу тәуелді болып келеді және ол осындай бөлуді жүзеге асырушыға байланысты. Дәл осылай, бағдарламалауда ысылмаған әдеттегі пайдаланушы, Microsoft Word программасын жүйелік бағдарлама деп есептеуі мүмкін, ал, программист көзқарасы бойынша бұл - қосымша. Си тілінің құрастырушысы (компилятор) әдеттегі программист үшін - жүйелік бағдарлама, ал жүйелік программист үшін - қолданбалы. Айқынсыз шекарасына қарамай, тап осы жағдайды қабаттардың тізбегі түрінде суреттеуге болады:
Сурет 1.1. Компьютерлік жүйенің программалық қамтамасыздандыруының қабаттары
Операциялық жүйе жүйелік бағдарламалық қамтамасыздандырудың фундаментальды (берік) компоненті болып келеді. Операциялық жүйе қабаттары - қазіргі лекцияның ең басты заты.
Операциялық жүйе дегеніміз не?
Пайдаланушылардың көпшілігінің операциялық жүйемен жұмыс жасау тәжірибесі бар, бірақ олар әйткенмен де осы ұғымға дәл анықтама беруге қиналады. Негізгі көзқарастарды қысқаша қарастырып шығайық.
Операциялық жүйе виртуалды машина ретінде
Операциялық жүйелерді өңдеу кезінде абстракциялау кең қолданылады, ол маңызды, оңайлату әдіс болып келеді және жоғары деңгейлі жүйе компоненттерінің әрекеттестігінің бір жерге топталуына, олардың іске асырылу бөлшектерін елемей, рұқсат етеді. Осы мағынада операциялық жүйе пайдаланушы мен компьютер арасындағы интерфейс болып келеді.
Машиналық командалар деңгейінде, компьютерлердің көпшілігінің сәулетін қолдану қолданбалы бағдарламалар үшін өте ыңғайсыз. Мысалы, дискімен жұмыс жасауда оның электронды компоненттерінің ішкі құрылғылары – диск айналдыру командаларын енгізу контроллерлері, жолдарды іздеу және форматтау, секторларды оқу және жазу және т.б. туралы білімді талап етеді. Бәрімізге анық, орта білімді программист жабдықтаудың жұмыс жасауының барлық ерекшеліктерін ескере алмайды (қазіргі заманғы терминологиядағы - құрылғылардың драйверлерінің өңдеуімен шұғылдану), мысалы айтайық, дискінің ақпараттық кеңістігін файлдар жиынтығы ретінде елестетуі туралы тек қана қарапайым жоғары деңгейлі абстракциясы болуы тиіс. Файлды оқу немесе жазу үшін ашуға, ақпаратты алу немесе тастау үшін қолдануға, ал сонан соң жабуға болады. Бұл дегеніміз дискінің бастиегінің айналдыру бөлшектерін немесе мотор жұмысын ұйымдастыру қамын ойластырғанға қарағанда, концептуалды түрде тіпті оңай. Осы сияқты, қарапайым және анық абстракциялар арқасында, программистен барлығы керек емес - үзулерді ұйымдастыру, таймер жұмыстары, жадымен басқару және тағы басқа нақтылықтар жасырынады. Қазіргі заманғы есептеуіш кешендерінде операциялық жадының шексіз мөлшері және процессорлар саны жайлы қиялдауға болады. Осының бәрімен операциялық жүйе шұғылданады. Сонымен, операциялық жүйе пайдаланушыға өзін виртуалды машина ретінде таныстырады, компьютер жабдықтауына қарағанда онымен жұмыс жасау тіпті оңай болып келеді.
Операциялық жүйе қор менеджері ретінде
Операциялық жүйе сәулеті өте күрделі компьютердің барлық бөліктерін басқаруға арналған. Мысалы, егер бір компьютерде жұмыс жасаған бірнеше бағдарламаларды бір уақытта принтерге шығаратын болсақ, онда не болатынын көрейік. Біз әртүрлі бағдарламалар арқылы шығарылған жолдар мен беттердің қоспасын алар едік. Операциялық жүйе баспаға шығаруға, дискіге және баспаға шығару үшін кезек ұйымдастыруға арналған ақпаратты буферлеу арқылы осындай хаосты қақпайлайды. Көп пайдалынатын компьютерлер үшін қорларды басқару қажеттілігі және оларды қорғау тағы да көбірек айқын.
Демек, операциялық жүйе, қорлардың менеджері сияқты, процессорлардың, жадының және әртүрлі бағдарламалар арасындағы басқа да қорлардың реттелген және бақыланатын таратылуын іске асырады.
Операциялық жүйе пайдаланушылардың және бағдарламалардың қорғаушысы ретінде
Егер есептеуіш жүйе бірнеше пайдаланушының бірге жұмыс жасауын рұқсат етсе, онда олардың қызмет етуінің қауіпсіздігін ұйымдастыру проблемасы туындайды. Ешкім бөтен файлдарды жойып алмауына немесе зақым келтірмеуі үшін дискідегі ақпараттың амандығын қамсыздандыру қажетті. Пайдаланушылардың біреулерінің бағдарламалары басқа пайдаланушылардың бағдарламаларының жұмысына өз бетімен килігуіне рұқсат беруге болмайды. Есептеуіш жүйені бекітілмей(несанкционированный) қолдану әрекеттерін кесіп тастау керек. Барлық осы қызметті операциялық жүйе пайдаланушымен, олардың бағдарламаларының қауіпсіз жұмысын ұйымдастырушысы ретінде жүзеге асырады. Осындай көзқарас бойынша операциялық жүйе өзін мемлекет қауіпсіздігі жүйесі ретінде таныстырады.
Операциялық жүйе тұрақты атқарылымдық түйін (ядро) ретінде
Операциялық жүйеге келесі анықтама беруге болады: операциялық жүйе дегеніміз компьютерде тұрақты жұмыс істеуші және қолданбалы бағдарламалардың бәрімен әрекет етуші программа деп. Бәрімізге осы анықтама абсолютті дұрыс деп көрінер еді, бірақ, ары қарай көретін болсақ, қазіргі заманғы операциялық жүйелердің көптегендерінде, компьютерде операциялық жүйенің түйін деп аталатын тек қана бір бөлімі тұрақты жұмыс істейді.
Біз көріп отырғандай, операциялық жүйеге әртүрлі көзқараспен өте көп анықтама беруге болады. Оған қатаң түрде анықтама беруге болмайды.
Бізге операциялық жүйеге анықтама бергеннен көрі, ол не үшін керек және ол қандай іс атқаратыны туралы айту тіпті оңай. Осы сұрақтарды айқындау үшін есептеуіш жүйелердің дамуының тарихін қарап шығайық.
Есептеуіш жүйелердің эволюциясының қысқаша тарихы
Біз операциялық жүйелердің емес, ал есептеуіш жүйелердің даму тарихын анықтап қараймыз, себебі hardware және бағдарламалық қамтамасыздандыру бірге, бір-біріне өзара ықпалын тигізе отырып дамыған. Жаңа техникалық мүмкіншіліктердің пайда болуы ыңғайлы, нәтижелі және қауіпсіз программалар құру салаларына желпіністер(прорыв) алып келді, ал бағдарламалық салаларға жаңа техникалық шешімдерді іздеу ойлары ынталандырды. Нақ осы белгілер - ыңғайлылық, нәтижелік және қауіпсіздік есептеуіш жүйелердің эволюциясы жанында табиғи сұрыптау факторларының ролін атқарды.
I кезең (1945 – 1955 жж.). Лампалық машиналар.
Операциялық жүйелер жоқ.
Біз компьютерлік кешендердің дамуын электрондық есептеуіш жүйелердің пайда болуынан бастап зерттеуді бастайық.
Екінші дүниежүзілік соғыстың соңында электрондық есептеуіш машиналардың өңдеу саласында алғашқы қадамдар қамданылған болатын. 40- шы жылдардың ортасында бірінші лампалық есептеуіш құрылғылар жасалған болатын және машина жадында сақталынатын бағдарлама принципі пайда болды (John Von Neuman, 1945 ж.). Сол уақытта бірдей адамдардың тобы есептеуіш машиналарды жобалауда, іске асыруда және бағдарламалаудада қатысатын. Компьютерді басқа қолданбалы салалардың әртүрлі тәжірибелік есептерін шешу құралы ретінде жиі қолдану емес, ал мұны есептеуіш техника саласындағы ғылыми - зерттеу жұмысы деуге болады. Бағдарламалау тек қана машиналық тілде жүзеге асырылатын. Операциялық жүйе туралы сөз де болмады, есептеуіш процесті ұйымдастырудың барлық тапсырмалары әрбір бағдарламашымен басқару пультынан қолмен шешілетін. Пультта тек қана бір пайдаланушы ғана отыратын. Бағдарлама ең сәтті жағдайда перфокарталар арқылы, ал әдеттегі жағдайда ауыстырып қосқыштардың панелі арқасында машина жадысына жүктелетін.
Есептеуіш жүйе бір уақытта тек қана бір амалды орындайтын (енгізу - шығару немесе өзіне меншікті есептеу амалдарын). Бағдарламаларды қалыптастыру машина жадысының және регистрлердің қалып - күйін зерттеу арқасында басқару пультынан басқарылды. Осы дәуірдің соңысында бірінші жүйелік бағдарламалық қамтамасыздандыру пайда болды: 1951-1952 жж. бірінші символдық тілдердің компиляларының бейнелері пайда болды (Fortran және т.б.), ал 1954 жылы Nat Rochester IBM-701ге арналған Ассемблер өңдейді.
Уақыттардың маңызды бөлімі бағдарламаны іске қосуға дайындауына кетті, ал жүйелі бағдарламалардың өздері қатал тәртіпте орындалды. Осындай жұмыс тәртібін деректердің жүйелі өңдеуі деп атайды . Бірінші дәуір есептеу жүйелерінің аса биік құнымен, олардың аз санымен және аса төмен пайдалану нәтижелілігімен сипатталды.
II- кезең (1955ж. – 60-шы жылдардың басы). Компьютерлер транзисторлардың негізінде. Пакетті операциялық жүйелер
50-шы жылдардың ортасынан бастап есептеу техникасының эволюциясында жаңа техникалық база - жартылай өткізгіштік элементтердің пайда болуымен келесі дәуір басталды. Жиі жанып кететін электрондық шамдардың орнына транзисторларды қолдану компьютерлердің сенімділігінің жоғарылауына алып келді. Енді машиналар толассыз жеткілікті ұзақ жұмыс істей алды, оларға практикалық маңызды тапсырмалардың орындалуын жүктеуге болатын болды. Есептеуіш машиналарымен электрэнергиясын тұтыну төмендеді, салқындату жүйелері дамытылды. Компьютерлердің мөлшерлері азайды. Қанау құны және есептеу техникаларына қызмет ету төмендеді. ЭЕМ-ді коммерциялық фирмалар қолдана бастады. Бір уақытта алгоритмдік тілдердің (LISP, COBOL, ALGOL-60, PL-1 және т.б.) қарқынды дамуы байқалды. Бірінші құрастырушылар, байланыстардың редакторлары, математикалық және қызметші ішкі программалардың кітапханалары пайда бола бастады. Бағдарламалау процесі оңайлана түсті. Бір адамға өңдеу үрдісін және компьютерлерді пайдалануды аудару қажеттілігі жоқ бола бастады. Нақ осы дәуірде қызметшілерді бағдарламашыларға және операторларға, есептеуіш машиналардың өңдеушілеріне және пайдаға асыру(эксплуатация) мамандарына бөліну басталды.
Бағдарламаларды іске асыру үрдісінің өзі өзгерді. Енді пайдаланушы бағдарламаны барлық кіріс деректерімен перфокарта колодасы түрінде әкеледі және қажетті қорларды көрсетеді. Осындай колода тапсырма деген атқа иеленді. Оператор тапсырманы машина жадысына жүктейді де және оны орындалуға жібереді. Алынатын шығу деректері принтерде басылады, және оны пайдаланушы біраз уақыттан кейін кері қайтып алады.
Сұратылған қорлардың алмастырылуы бағдарламалардың орындалуының тоқтата тұруын шақырады, нәтижесінде процессор жиі тұрып қалады. Компьютерді қолдану тиімділігін арттыру үшін ұқсас қорлары бар тапсырмаларды бірге жинап, тапсырмалар пакетін жасайды .
Пакетті өңдеу жүйелерінің алғашқылары пайда болды, олар пакеттен бағдарламаның бірінен соң бірін жіберілуін автоматтандырады және процессордың тиеу коэффициентін арттырады. Пакетті өңдеу жүйелерін іске қосу үшін тапсырмаларды басқарудың формализацияланған тілі өңделген болатын, оның арқасында бағдарламашы жүйеге және операторға есептеуіш машинада қандай жұмысты орындайтынын хабарлайды. Пакетті өңдеу жүйелері қазіргі заманғы операциялық жүйелердің бейнесі болды, есептеу үрдісін басқаруға арналған алғашқы жүйелік бағдарламалардың бірі болды.
Үшінші кезең (60 жылдардың басы – 1980 ж.). Интегралды микросхемалар негізіндегі компьютерлер. Алғашқы көпміндетті операциялық жүйелер.
Есептеуіш машиналарының дамуының келесі маңызды дәуірі - 60-шы жылдардың басынан бастап – 1980 жылдарға дейін. Осы кезде техникалық базадада өзгерістер басталды - транзистор типті жартылай өткізгіштік элементтерден интегралды микросхемаларға көшу басталды. Есептеуіш техникасы сенімдірек және арзанырақ бола бастады. Компьютерлермен шешілетін тапсырмалардың саны мен күрделілігі өсті. Процессорлар өнімділігі артты.
Процессорлық уақыттарды пайдалану тиімділігін арттыруға енгізу- шығарудың механикалық құрылғыларының жұмысының төмен жылдамдығы кедергі жасады (перфокарталарды ең жылдам оқитын құрылғы минутына 1200 перфокарта өңдесе, принтерлер минутына 600 жол ғана баспаға шығарды). Тапсырмалар пакетін перфокарталардан жадыға тікелей оқылуының орнына, оның алдын ала магниттік лентаға, ал содан соң дискіге жазылуы қолданыла бастады. Егер тапсырманың орындалу барысында деректерді енгізу талап етілсе, онда, олар дискіден оқылады. Дәл осылай алдымен шығарылатын ақпараттың көшірмесі жүйелік буферге жасалады да лентаға немесе дискке жазылады, ал тапсырма аяқталғаннан кейін ғана баспаға шығарылады. Басында енгізу-шығарудың нақты амалдары off-line тәртібінде, яғни басқа, қарапайымдау, жеке тұратын компьютерлерді пайдалану арқылы жүзеге асатын. Арықарай олар есептеу жүргізетін компьютерлерде орындала бастады, яғни on-line тәртібінде. Осындай іс-әрекет spooling (Simultaneous Peripheral Operation On Line қысқартуы) немесе деректерді қосу-алу (орыс.подкачка-откачка) деп аталды. Пакеттік жүйелерге қосу-алу техникасын енгізу бір тапсырманың енгізу-шығару нақты операцияларын басқа тапсырманың орындалуымен үйлестіруге мүмкіндік берді. Бірақ осы операциялардың аяқталғаны жөнінде процессорге хабар беру үшін үзу аппараттарын дайындауды қажет етті.
Магниттік ленталар біртіндеп жол ашатын құрылғылар болғандықтан, яғни олардан мәлімет жазылу реті бойынша ғана оқылатын. Ақпаратты оқу тәртібі маңызды емес, яғни тікелей жол ашатын құрылғының – магниттік дисктің пайда болуы есептеу жүйесінің ары қарай дамуына алып келді. Магниттік лентадағы пакетті өңдеу кезінде тапсырма шығару кезегі олардың енгізу тәртібімен анықталды. Магниттік дисктегі тапсырмалар пакетін өңдеу кезінде кезекті орындалатын тапсырманы таңдау мүмкіндігі пайда болды. Пакеттік жүйелер сұралған қорларға, есептеу жылдамдығына және т.б. байланысты тапсырмаларды жоспарлаумен айналыса бастады.
Процессорды пайдалану тиімділігін арықарай жоғарылатуға мультипрограммалау көмегімен қол жеткізілді. Мультипрограммалау идеясы келесіден көрінді: бір программа енгізу-шығару операциясын орындап жатқан кезде, бірпрограммалық режим кезіндегідей процессор босқа тұрмайды, ол басқа программаны орындайды. Енгізу-шығару аяқталған кезде, процессор бірінші программаны орындауға қайтып оралады. Бұл идея емтихандағы оқытушы мен студенттердің мінез-құлқын еске түсіреді. Бір студент (программа) сұрақ жауабын (енгізу-шығару операциясын) ойланып отырған кезде, оқытушы (процессор) басқа студент (есептеу) жауабын тыңдайды. Әрине бұндай жағдаят бөлмеде бірнеше студент болуын талап етеді. Мультипрограммалау да дәл солай, жадыда бірнеше программа бір мезгілде болуын талап етеді. Бұл кезде әр программа оперативті жадының тарау деп аталатын әр учаскесіне енгізіледі және басқа программаның орындалуына әсер етпеуі керек (студенттер жеке-жеке отырады да бір-біріне көмектеспейді).
Мультипрограммалаудың пайда болуы есептеу жүйесін құруда нағыз революцияны талап етеді. Бұл жерде ең елеулі ерекшеліктері төменде келтірілген аппараттық қолдау маңызды роль атқарады.
Қорғаныс механизмдерін іске асыру. Программаларда қорларды бөлуге дербес жол болмауы керек. Бұл пұрсатты (привилегиялы) және пұрсатты емес командалар пайда болуына әкеледі. Пұрсатты командалар, мысалы енгізу-шығару командаларын операциялық жүйелер ғана орындай алады. Ол пұрсатты режимде жұмыс істейді дейді. Басқарудың қолданбалы программадан операциялық жүйеге өтуі режимнің бақыланатын кезегімен қатар жүреді. Одан басқа бұл – бәсекелес пайдаланушы программаларды бір-бірінен, ал операциялық жүйені пайдаланушылар программасынан оқшауландыруға мүмкіндік беретін жады қорғанысы.
Үзудің орын алуы (болуы). Сыртқы үзулер операциялық жүйені асинхронды жағдай, мысалы енгізу-шығару операциясы аяқталғаны туралы хабардар етеді. Ішкі үзулер (қазір оларды ерекше жағдаяттар деген атау қолданылып жүр) программаны орындау операциялық жүйенің араласуын қажет ететін жағдаятқа әкелгенде пайда болады. Мысалы: нольге бөлу немесе қорғанысты бұзуға қадам жасалу.
Сәулетте параллелизмнің дамуы. Жадыға тікелей жол ашу және енгізу-шығару каналдарын (арналарын) ұйымдастыру орталық процессорды күйбің операциялардан босатуға мүмкіндік берді.
Мультипрограммалауды ұйымдастырудағы операциялық жүйе ролі де маңызды. Ол келесідей операцияларға жауап береді.
Жүйелік шақырулар көмегімен қолданбалы программа мен операциялық жүйе арасында интерфейсті ұйымдастыру.
Жадыдағы тапсырмалардан кезек ұйымдастыру және тапсырмалардың біреуіне процессорды бөлу процессорды пайдалануды жоспарлауды талап етті.
Бір тапсырмадан басқасына өту регистрлер мазмұнын және тапсырманы орындауға қажетті деректер құрылымын, басқаша айтқанда есептеуді дұрыс жалғастыруды қамтамасыз ету үшін контексті сақтауды талап етеді.
Жады шектеулі қор болып табылғандықтан, жадыны басқару стратегиясы қажет, яғни жадыда ақпаратты орналастыру, алмастыру және таңдау үрдістерін тәртіпке келтіруді талап етеді.
Файл түріндегі сыртқы тасымалдауыштарда ақпаратты сақтауды ұйымдастыру және нақты файлға пайдаланушылардың белгілі бір категорияларына ғана жол ашуды қамтамасыз ету қажет.
Программаға деректерді рұқсат етумен алмастыру қажет болатындықтан, оларды коммуникация құралдарымен қамтамасыз ету қажет.
Деректермен дұрыс алмасу үшін түрлі қорлармен жұмыс істеуде туындайтын талас жағдаяттарды шешу қажет және программалардың өз әрекеттерін үйлестіруін болжай білу, яғни жүйені синхронизациялау құралдарымен жабдықтау қажет.
Мультипрограммалық жүйелер жүйелік қорларды тиімдірек пайдалану мүмкіндігін қамтамасыз етті (мысалы, процессорлар, жадылар, перифериялық құрылғылар), бірақ олар ұзақ уақыт пакеттік болып қалып отырды. Пайдаланушы тапсырмамен тікелей өзара әрекет ете алмады да басқарушы карта көмегімен мүмкін болатын барлық жағдаяттарды қарастыруға мәжбүр болды. Программаны жөндеу бұрынғыдай көп уақыт алып отырды және жадылар мен регистрлер мазмұнының көп беттік басылмасын зерттеуді немесе жөндеу терілімін пайдалануды талап етті.
Электрондық-сәулелік дисплейлердің пайда болуы және клавиатураларды пайдалану мүмкіндігін түсіну осы проблеманы шешуді кезекке қойды. Мультипрограммалау жүйесінің логикалық кеңеюі time-sharing жүйесі немесе уақытты бөлу жүйесі болды. Оларда процессор тапсырмалар арасында енгізу-шығару операциясы негізінде ғана емес, белгілі бір уақыт өткеннен-ақ ауыстырылып қосылып отырды. Осы ауыстырылып қосылулар жиі өтетіні сондай, пайдаланушылар өз программаларымен оларды орындау кезінде, яғни интербелсенді өзара әрекет ете алады. Соның нәтижесінде бір компьютерлік жүйеде бірнеше пайдаланушы бір мезгілде жұмыс істей алу мүмкіндігі пайда болды. Бұл үшін жадыда әр пайдаланушының кем дегенде бір программасы болуы керек. Жұмыс істеуші пайдаланушылар санына шектеуді азайту үшін оперативті (жедел) жадыда орындалатын программаны толық емес табу идеясы енгізілді. Программаның негізгі бөлігі дискте орналасқан және сол мезетте орындалауы қажет фрагмент (бөлік) оперативты жадыға енгізіліп, қажет емесі қайтадан дискке көшірілуі мүмкін. Бұл виртуалды жады механизмі көмегімен іске асырылады. Бұндай механизмнің басты жетістігі ЭЕМ-нің шексіз оперативты жадысы бар деген иллюзия құру болып табылады.
Уақытты бөлу жүйелерінде пайдаланушы программаны қалыптастыруды интербелсенді режимде тиімді жүргізу және ақпаратты перфокартаны пайдаланбастан, тікелей клавиатурадан дискке жазу мүмкіндігіне ие болды. On-line файлдарының пайда болуы дамыған файлдық жүйелерді даярлау қажеттілігін тудырды.
Есептеу жүйелерінің ішкі эволюцияларымен параллельді олардың сыртқы эволюциясы да жүрді. Осы кезең басталғанға дейін есептеу кешендері, әдетте сәйкес келмейтін. Әрқайсысының өз операциялық жүйесі, командалардың өз жүйесі және т.б. болды. Нәтижесінде машинаның бір типінде табысты жұмыс істейтін программаны басқа типті компьютерде орындау үшінтолық қайта жазып, қайтадан жөндеу қажет болатын. Үшінші кезең басында бір операциялық жүйенің басқаруымен жұмыс істейтін программалық үйлесімді машиналар жанұясын құру идеясы пайда болды. Интегралды микросхемаларда құрылған, программалық үйлесімді компьютерлердің бірінші жанұясы IBM/360 машиналар сериясы болды. 60-шы жылдардың басында даярланған бұл жанұя баға/өнімділік критериі бойынша екінші буын машиналарынан елеулі түрде басым түсті. Одан кейін IBM желісімен үйлеспейтін PDP компьютерлер желісі шықты және оның ең үздік моделі PDP-11 моделі болды.
«Бір жанұяның» күші сонымен бірге оның әлсіздігі де болды. Осы тұжырымдаманың кең мүмкіндігі (барлық модельдердің болуы: мини-компьютерлерден үлкен машиналарға дейін; сан алуан периферияның көптігі; түрлі қоршаған орта; сан түрлі пайдаланушылар) күрделі және аса үлкен операциялық жүйені тудырды. Мыңдаған программалаушы жазған Ассемблердің миллиондаған жолы қатеге толы болып, оларды түзету қадамы туралы басылымдардың үздіксіз ағынын тудырды. OS/360 операциялық жүйесінің өзінде ғана 1000-нан аса белгілі қателер орын алды. Соған қарамастан операциялық жүйелерді стандарттау идеясы пайдаланушылар санасына кең сіңіп, кейіннен белсенді түрде дамыды.
Төртінші кезең (1980-жылдан қазіргі кезге дейін).
Дербес компьютерлер. Классикалық, желілік және таратылған жүйелер
Есептеу жүйесіндегі эволюцияның келесі кезеңі интегралды сұлбалар (ҮИС) пайда болуына байланысты. Бұл жылдары интеграция дәрежесінің күрт өсуі және микросхемалар құнының төмендеуі болды. Сәулеті бойынша PDP-11-ден ерекшеленбейтін компьютерге бағасы мен пайдалану қарапайымдылығы бойынша кәсіпорын бөлімі немесе университет бөлімі емес, жеке адам қол жеткізе алды. Дербес компьютерлер эрасы басталды. Басында дербес компьютерлер бірпрограммалық режимде бір пайдаланушы пайдалануына арналды. Бұл ЭЕМ сәулеті мен олардың операциялық жүйелерінің құлдырауына әкелді (оның ішінде, файлдар мен жадыларды қорғау, тапсырмаларды қорғау қажеттілігі жойылды және т.б.).
Компьютерлерді мамандардан да басқа адамдар пайдалана бастады. Бұл «достық» программалық қамтамасыз етуді даярлауды талап етті.
Дербес компьютерлерде шешілетін тапсырмалардың күрделілігі мен сан алуандығы, олардың жұмысының сенімділігін арттыру қажеттілігі үлкен есептеу жүйелерінің сәулетіне тән барлық нышандарының қайта пайда болуына әкелді.
80-жылдары компьютерлер желісі, оның ішінде желілік немесе таратылған операциялық жүйелер басқаруымен жұмыс істейтін дербес компьютерлер желісі күрт дами бастады.
Желілік операциялық жүйелерде пайдаланушылар басқа желілік кңомпьютер қорларына қол жеткізе алады. Тек олардың бар-жоқтығы туралы және оны орындай білулері керек. Желідегі әр машина автономды компьютерлердің операциялық жүйесінен қосымша құралдардың барысымен ерекшеленетін өз жергілікті операциялық жүйесі басқаруымен жұмыс істейді (желілік интерфейстік құрылғыларға және алысталған қорларға жол ашуға арналған бағдарламалық сүйеумен), бірақ бұл қосымшалар операциялық жүйе құрылымын өзгертпейді.
Таратылған жүйе, керісінше әдеттегі автономды жүйе сияқты көрінеді. Пайдаланушы файлдарының қай жерде - жергілікті немесе алысталған машинада орналасқанын, программасы қай жерде орындалып жатқанын білмейді және білмеуі тиіс. Ол жалпы компьютердің желіге қосылғанын білмеуі де мүмкін. Таратылған операциялық жүйенің ішкі құрылымы автономды жүйеден маңызды түрде ерекшеленеді.
Бұдан былай біз автономды операциялық жүйелерді классикалық операциялық жүйелер деп атаймыз.
Есептеуіш жүйелері дамуының кезеңдерін қарастырып болып, біз эволюция барысында классикалық операциялық жүйесі орындаған алты негізгі функцияларды бөліп көрсете аламыз.
Тапсырмаларды жоспарлау және процессорды қолдану.
Программаларды коммуникация және синхронизация құралдарымен қамтамасыз ету.
Жадыны басқару.
Файлдық жүйені басқару.
Енгізу – шығаруды басқару.
Қауіпсіздікті қамтамасыз ету.
Келтірілген функциялардың әрқайсысы әдетте операциялық жүйесінің құрылымдық компоненті болып табылатын ішкі жүйе түрінде іске асырылған. Әр операциялық жүйеде осы функциялар, әрине, өзінше, түрлі көлемде іске асырылды. Олар басынан операциялық жүйелердің құрамдас бөлігі ретінде ойлап табылмады. Есептеу жүйелері ыңғайылырақ, тиімдірек және қауіпсіздеу болғанына қарай, даму үрдісінде пайда болды. Адам ойлап тапқан есептеу жүйелерінің эволюциясы осы жолмен кетті. Бірақ әлі ешкім, бұл олардың дамуының жалғыз мүмкін жолы деп дәлелдей қойған жоқ. Операциялық жүйелер, олардың өмір сүруі есептеу жүйелерін пайдаланудың саналы жолы болғандықтан ғана қолданылып келеді.
Қолданбалы программалау интерфейсі
API (Application Programming Interface) – қолданбалы программалау интерфейсі.
Операциялық жүйе мен программалар арасындағы интерфейс жүйелік шақырулардың жиынтығымен анықталады.
Мысалы, егер пайдаланушы үрдісіне мәліметтерді файлдан оқу қажет болса, онда ол жүйелік шақырудың командасын орындауы керек, бұл дегеніміз ядро режиміне ауысатын үзуді орындау және мәліметтерді файлдан оқитын операциялық жүйенің функциясын активтендіру.
POSIX стандартының ең жиі қолданылатын жүйелік шақыруларды қарастырайық. POSIX –те 100-ден аса жүйелік шақырулар бар.
fork – жаңа үрдісті құру
exit – үрдісті аяқтау
open – файлды ашу
close – файлды жабу
read – мәліметтерді файлдан буферге оқу
write - мәліметтерді буферден файлға жазу
stat – файлдың қалып-күйі туралы ақпарат алу
mkdir – жаңа каталог құру
rmdir – каталогты жою
link – сілтеме құру
unlink – сілтемені жою
mount – файлдық жүйені құрастырады
umount - файлдық жүйені демонтирует
chdir – жұмыс каталогын өзгерту
UNIX-тегі шақырулар, жүйелік шақыруларға қатынау үшін қолданылатын кітапханалық процедуралармен бірдей болып келеді.
Windows –қа арналған - Win32 API қолданбалы программалау интерфейсін қарастырайық.
Win32 API жүйелік шақырулардан бөлінген (отделен). Бұл программаны қайта жазбай, әр-түрлі версияларда жүйелік шақыруларды өзгертуге мүмкіндік береді.
Сондықтан түсініксіз: шақыру жүйелік (ядро арқылы орындалатын) болып келеді ме, немесе ол пайдаланушы кеңістігінде өңделеді ме?
Win32 API –де 1000 –нан аса шақыру бар. Шақыру санының көптігін былай түсіндіруге болады: UNIX пайдаланушысының графикалық интерфейсі пайдаланушылық режимде іске қосылады, ал Windows –та ядро ішіне ендірілген. Сондықтан, Win32 API –де терезелерді, мәтіндерді, қаріптерді және т.б. басқаруға арналған көптеген шақырулары бар.
POSIX стандартының шақырулары тәрізді Win32 API –дің шақыруларын қарастырайық.
Достарыңызбен бөлісу: |