Операциялық жүйелер

Коммерциялық емес акционерлік қоғам

Aлматы энергетика және байланыс университеті

Инженерлік кибернетика кафедрасы

 

Операциялық жүйелер

5В070200 - Автоматтандыру және басқару мамандығының студенттері үшін
зертханалық жұмыстарды орындауға арналған әдістемелік нұсқаулар

 

Алматы 2013

 

ҚҰРАСТЫРУШЫЛАР: Ешпанова М.Д., Ибрашева А.Т. Операциялық жүйелер: 5В070200 - Автоматтандыру және басқару мамандығының студенттері үшін зертханалық жұмыстарды орындауға арналған әдістемелік нұсқаулар. - Алматы: АЭжБУ, 2013. -49 б.

 

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

Без.- 16, кесте – 7,  әдебиет көрсеткіші - 17 атау.

 

Пікір беруші: доцент Қалиева С.А.

 

“Алматы энергетика және байланыс университеті” коммерциялық емес акционерлік қоғамының 2011 ж. баспа жоспары бойынша басылады.

 

©  “Алматы энергетика және байланыс университеті ” КЕАҚ, 2013 ж.

Мазмұны

 

Кіріспе

4

1 Зертханалық жұмыс №1. Windows операциялық жүйесі. Командалық жол режимі

5

 

2 Зертханалық жұмыс №2. Windows операциялық жүйесі. Файлдық жүйенің командаларын зерттеу

8

3 Зертханалық жұмыс №3. Windows операциялық жүйесі. Пакеттік  файлдар командалары

11

4 Зертханалық жұмыс №4. Есептеуіш процестер және ресурстары, компоненттері

16

5 Зертханалық жұмыс №5. Құрылғылар бақылаушысы

19

6 Зертханалық жұмыс №6. Ресурстар, олардың процестер арасында бөлінуі

22

7 Зертханалық жұмыс №7. Ағымдардың өзара блокталуы және оларды табу

24

8 Зертханалық жұмыс №8. Ағындарды синхрондау  құралдары, критикалық секциялар және тығырықтар. Есептеуіш ағындарды MatLab ортасында құру

31

9 Зертханалық жұмыс №9. Операциялық жүйеде процессорлық уақытты тарату әдістері

35

10 Зертханалық жұмыс №10. Жадыны басқару

37

А қосымшасы

42

Б қосымшасы

44

В қосымшасы

46

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

48

Кіріспе

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

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

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

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

Ұсынылған әдістемелік нұсқауларда тапсырмаларды орындауда командалық жол интерфейсімен жұмыс істеу,  С++ программалау тілдерін,  Delphi, MathLab программалау ортасын қолдану қарастырылған. Delphi ортасы ағындарды құруға мүмкіндік береді және де онда ағындарды (процестерді)  синхрондау құралдары бар: критикалық секция, семафор, synchronize. MathLab ортасында да ағындарды құруға және параллель есептеулерді орындауға болады.

1 Зертханалық жұмыс №1. Windows операциялық жүйесі. Командалық  жол режимі

Жұмыс мақсаты - Windows операциялық жүйесі, командалық жол режимінде жұмыс істеп үйрену; басқару командаларымен танысу және оларды функционалдық мүмкіншіліктерін білу.

1.1 Зерханалық жұмыс тапсырмасы

Тапсырманы орындар алдында 1.2 тармақтағы әдістемелік нұсқауларды оқыңыз.

1.1.1 Анықтама  жүйесі және ОЖ жұмысын басқаратын  командалар файлдық жүйенің командаларын қолданып келесі жұмыстарды орындаңыз:

1)    Ағымдағы уақытты анықтау.

2)    Өз туған күніне байланысты жаңа уақытты енгізу.

3)    Команда жолынан шығар кезде, ағымдағы уақытты енгізу.

4)    Қолданушыны «шақыру» хабарламасын енгізу.

5)    Шығарда стандартты қарсы алу түрін енгізіп шығу.

6)    Әртүрлі мәтін түстері мен өңдерін енгізу керек.

 

1.1.2    Файлдық жүйе командаларын қолданып келесі жұмыстарды орындаңыз:

1)      Ағымдық каталог үшін бірнеше ішкі каталог құру.

2)    Dir командасын қолданып ішкі каталогтің құрылғанын тексеру.

3)    Ішкі каталогты ағымдық каталог қылу.

4)    Dir командасын орындау, пайда болған хабарламаларды түсіндіру.

5)    Түбірлік каталогке шығу.

6)    Алғашқы ішкі каталогке өту.

7)    Мәтін фрагменті бар бірнеше мәтіндік файл құру.

8)    Құрылған файлдарды басқа каталогке көшіру және олардың бірнешеуінің орнын ауыстыру.

9)    Папка немесе файлдардың аттарын өзгерту.

10)     Dir/w және Tree командаларының жұмысын көру.

1.1.3 Жоғарыда көрсетілген 1.2.2 тармақтағы тапсырмаларды белгілі визуалды немесе нысанды-бағытталған программалау орталарында қатар орындау керек (Delphi, C++ Builder, Visual C++ және т.б.).

1.2  Жалпы мәлімет

Windows операциялық жүйесімен  басқарылатын  командалық  жол  режимі  екі  тәсіл  арқылы  іске  асырылады:

1)    «Пуск – Выполнить», содан  кейін  cmd  теру қажет (cmd windows командасы – commander сөзінің  қысқарған түрі).

2)    «Пуск – Программы – Стандартные – Командная строка».

Режимді  өшіру үшін команданы шақыру  жолында  exit  командасын теріп, оны орындау үшін  Enter батырмасын басу керек.

1.2.1 Windows ішкі командаларының құрамы.

Windows операциялық  жүйесінің  ішкі  командасының  құрамында саны жетпіске жуық  команда  бар (Unix жүйесінде  – үш жүзден аса). Егер команда  жолында help командасын орындасақ, онда командалардың  барлық  тізімін қарауға болады. Тізімдегі әр элементпен танысу үшін екі команда конвейерінен тұратын help | more  күрделі  командасын  қолдану  қажет.

Командалар тізімі өте үлкен болғандықтан  оларды топтайды:

1)     Анықтама жүйесінің  командалары.

2)      Файлдық  жүйенің командалары.

3)      ОЖ жұмысын басқаратын  командалар.

4)      Пакеттік (командалық) файлдар командалары.

5)      Компьютерлік желіде істеуге арналған командалар.

1.2.2 Анықтама  жүйесінің командалары.

Анықтама жүйесін қосу үшін және керекті команда туралы мәлімет алу үшін команда жолында келесі командаларды теру қажет:

help барлық командалар туралы мәлімет табуға болады;

help команда аты  немесе команда  аты / ?аталған команда туралы анықтама шығады.

1.2.3 ОЖ жұмысын басқаратын  командалар.

Компьютерді басқаратын жиі қолданылатын командалар:

Сls - экранды тазалау;

Data - ағымдық күнді анықтау және өзгерту;

Time - нақты уақытты анықтау және өзгерту;

Mem - жүктелген программаларға оперативті жадыны үлестіру туралы мәліметтерді көрсетеді;

Сolor - командасы фон және мәтіндік терезелердің түстерін таңдауға және орнатуға мүмкіндік береді. Мәтіннің және фонның түстері 16 түстен таңдалады және екі 16-лық  жүйедегі санмен беріледі;

Prompt - командасы қолданушының өз еркі бойынша шақырудың көрінісін өзгертуге мүмкіндік береді. Команданың бірнеше көрсеткіштері болуы мүмкін. Шақырудың стандартты түрін орнату үшін – prompt $p$g теру керек, яғни ол шақыруда ағымдық каталогтің атын және < белгісін шығаруды білдіреді (мысалы, С:\Document and Settings\Admin>);

PromptString командасы «өзгертілген шақыруға» дейінгі «болған шақырудың» түрін көрсетеді. PromptString таза болуы мүмкін.

1.2.4 Файлдық жүйенің командалары.

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

Келісім бойынша (по умолчанию) нәтижелер экранға шығарылады, бірақ оны басқа жаққа да жіберуге болады.  < белгісі басқа жаққа енгізу үшін қолданылады, ал > және >> белгілері – шығару үшін. < - мәліметтердің файлдан енгізілетінін білдіреді, ал > және >> белгілері – мәліметтің файлға шығарылатынын білдіреді. Мысалы dir > asрm.txt – командасы ағымдағы каталогтің құрылымын  asрm файлына шығарады.

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

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

Dir – көрсеткішсіз,  директориялардың ішіндегісін көрсетеді;

Dir/р – директорияның ішіндегі нысандар саны экран жолының санынан асып кетсе қолданады, сонда мәлімет бетпен көрсетіледі. Келесі бетке көшу үшін кез келген батырманы басуға болады;

Dir/w – бұл жағдайда экранға директорияның құрамы бойынша бес бағанға  қысқаша мәлімет  шығады;

Tree – берілген каталогтің  немесе берілген дискінің, каталогтердің құрылымы графикалық түрде көрсетіледі;

Md, mkdir – жаңа каталог (папканы) құру. Команданың форматы md  (немесе mkdir) диск:\каталог аты;

Cd, chdir – ағымдағы папканы ауыстыру. Команданың форматы Cd диск:\жолы. Ішкі каталогтен (дочерний) жоғары (родительский) каталогке ауысу үшін Cd.. командасын қолданады. Түбірлік (корневой) каталогке ауысу үшін Cd\ командасын қолдану керек;

Copy – бір немесе бірнеше файлды басқа жерге көшіру;

Copy con файл аты.кеңейту – файлды құру. Пернетақтадан терілген мәтін жаңадан құрылған файлға жазылады. Файлды теріп болғаннан кейін  Ctrl+Z немесе F6 пернелері (файл соңының белгісі) басылады;

Файлды құру үшін сонымен бірге edit dick:path\file_name.ext. командалық сыртқы редакторды пайдалануға болады.

Chkdsk  – дискіні тексеру және статистикасын шығару;

Del – бір немесе бірнеше файлды жою;

Move  – бір немесе бірнеше файлды басқа папкаға көшіру;

Rd, rmdir – папканы жою;

Ren – папкалардың, файлдардың аттарын өзгерту;

Type – мәтіндік файлдардың құрылымын экранға шығару.

Файлдық жүйе командаларының қалғаны файл атрибуттарын өзгертуге, файлдағы мәтіндерді іздеуге арналған.

1.3 Есептемеге қойылатын талаптар

Есептеме қағазға шығарылып, келесі тізімнен тұруы керек:

-        жұмысқа тапсырма;

-        орындалу ретінің сипаттамасы;

-        программалар листингі мен түсініктемелері;

-        нәтижелері көрсетілген экран түсірмесі;

-        әрбір тапсырма бойынша қорытынды.

Бұл тармақтағы есептемеге қойылатын талаптар барлық зертханалық жұмыстарға да қойылады.

1.4           Бақылау сұрақтары

1.4.1    Команда жолын қалай қосуға және өшіруге болады?

1.4.2    Windows-тің ішкі командалары қалай топталған?

1.4.3    Windows командалары туралы мәліметті қалай көруге болады?

1.4.4    ОЖ жұмысын басқаратын бірнеше команданы атау.

1.4.5    Қандай команда арқылы шақырудың түрін өзгертуге болады?

1.4.6    Экранды қандай командамен тазалауға болады?

1.4.7     Dir командасының түрлерін және қызметтерін атау.

1.4.8    dick:path\file_name.ext. нені білдіреді?

2 Зертханалық  жұмыс №2. Windows операциялық жүйесі. Файлдық жүйенің командаларын зерттеу

Жұмыс мақсаты – файлдық жүйе командаларымен танысу  және оларды зерттеу, қолданып үйрену.

2.1 Зертханалық жұмыс тапсырмасы

Тапсырманы орындар алдында 2.2 тармақтағы әдістемелік нұсқауларды оқыңыз.

2.1.1 Windows файлдық жүйесінің командаларын қолданып келесі әрекеттерді орындау керек:

1)    №1 зертханалық жұмыста құрылған каталогтерді тауып, ішіндегі файлдарға кейбір сөздер қайталанатын мәтін жазыңыз;

2)    файлдың сол ағымдық  каталогте орналасқанын тексеріңіз;

3)    find командасын әртүрлі кілттері мен осы мәтін элементтерін іздеудің үлгілерін қолдана отырып орындаңыз;

4)    dir|find командасының жұмысын әртүрлі нұсқада тексеріңіз;

5)    анықтама жүйесін қолданып attrib командасының функционалдық мүмкіншілігімен танысып келесі әрекеттерді орындаңыз:

- алдында құрастырылған бір файлдың атрибуттарын жасырын, жүйелік, архивтік етіп кезекпен өзгертіңіз;

- жүйе қойылған атрибуттарды қабылдағанын не қабылдамағанын тексеріңіз;

    -  mode командасын өздігіңізше оқып үйреніңіз.

          6) start және set командаларының жұмысын тексеріңіз. Арифметикалық амалдарды орындаңыз.

2.1.2 Жоғарыда көрсетілген тапсырмаларды белгілі визуалды немесе нысанды-бағытталған программалау орталарында қатар орындау керек (Delphi, C++ Builder, Visual C++ және т.б.).

2.1.3 Есептемеге қойылатын талаптарды №1 зертханалық жұмыстан қараңыз. Есептемеге әр команда жұмысының суретін көрсетіңіз.

2.2 Жалпы мәлімет

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

2.2.1 Attrib + диск:\маршрут\файл аты/s -  файл атрибуттарын өзгерту бұйрығы. Файл атрибуттары:

R – тек оқуға арналған, файлды өзгертуге, жоюға болмайды;

A – архивтік файл;

H – жасырын (скрытый) файл; dir бұйрығын қолданғанда жасырын файлдар көрінбейді;

S – жүйелік (системный) файл;

Командадан кейінгі «+» белгісін атрибутты орнатқанда, ал атрибутты алып тастағанда «–» белгісін қолданады;

Форматтың соңында тұрған  /s кілті жалғыз каталогте емес, ішіндегі барлық каталогте атрибуттың өзгеретінінің белгісі.

2.2.2 find командасы мәтіндік жол үзіндісін іздеуде қолданылады. find командасының форматы:

[/v] [/c] [/n] [/i] “символдар жолы” [[диск:][жол] файлдың аты […]].

Мысалы, C:\Documents and Settings\bista\Рабочий стол> find /c "get" 888.txt.

Нәтижесі: 888.TXT: 11 болады.

/с – іздеу фрагменті орналасқан файлдағы жолдардың жалпы санын анықтау;

/i – іздеу фрагменті орналасқан жолдардан символдар регистрін ескермей іздеу;

/n – реттік саны көрсетілген жолдардан іздеу;

/v – іздеу фрагменті орналаспаған жолдарды экран бетіне шығару.

2.2.3 Контейнерде басқа командамен бірге орналасқан find командасы каталогтердің қорытынды сипаттамаларын алу үшін қолданылады.

dir|find "файлдар" – каталогтегі файлдар саны мен олардың қосынды көлемін көрсетеді;

dir|find "папкалар"каталогтегі папкалардың саны және дискінің бос кеңістігінің көлемін көрсетеді;

dir|find ".doc”кеңейтілуі бар файлдарды сипаттайтын жолдардың бүкіл тізімі;

dir|find /c ".doc"кеңейтілуі бар файлдардың жалпы санын санау.

Бұл командалардың ерекшелігі – аталған конвейерлер арқылы алынған ақпараттар Windows мәзірі арқылы алынбайды.

2.2.4 start командасы басқа терезедегі командалар мен программаларды параметр ретінде көрсетуге арналған. Start программаның артықшылықтарын басқаруға мүмкіндік береді, бұл – команданың маңызды ерекшелігі болып табылады. Бұл команда программаларды орындау ретін басқаруға мүмкіндік береді.

2.1 сурет - start командасының жұмысы

 

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

set [айнымалы=[жол]]

set «/а»  кілті бар командасы теңдіктің оң жақ бөлігінде берілген арифметикалық және алгебралық өрнектерді жазуға мүмкіндік береді. Мысалы:

C:\Documents and Settings\bista\Рабочий стол>set /a d=2.

Нәтижесі: 2

C:\Documents and Settings\bista\Рабочий стол>set /a d= d+3

Нәтижесі: 5.

2.3 Бақылау сұрақтары

2.3.1    Файлды жасыру үшін қандай команда қолданады?

2.3.2    /s нені көрсетеді?

2.3.3    Каталогтегі файл санын көрсететін команда қандай?

2.3.4    start командасының ерекшелігі қандай?

2.3.5    set командасын қолдану ерекшеліктері қандай?

2.3.6    mode командасының қызметі қандай?

2.3.7    find командасының кілттері қандай?

2.3.8    аttrib командасының кілттері қандай?

 

3 Зертханалық жұмыс №3. Windows операциялық жүйесі. Пакеттік  файлдар командалары

Жұмыс мақсаты – пакеттік (командалық) файлдарды құруда қолданылатын командаларды зерттеу, пакеттік файлдарды құруға дағдылану.

3.1 Зертханалық жұмыс тапсырмасы

Тапсырманы орындар алдында 3.2 тармақтағы әдістемелік нұсқауларды оқыңыз.

3.1.1 Командалық жолда еcho off командасын теріп, оны орындап, сол жолда болып жатқан өзгерістерді бақылаңыз.

3.1.2 dir командасын теріп, оны орындаңыз. Шақыру жолында тек жанып-өшіп тұрған меңзер қалатынын бақылаңыз, ал команда орындалуы тоқтамайды.

3.1.3 еcho on командасының көмегімен шақыруды өз қалпына келтіріңіз.

3.1.4 Келесі мазмұнда болатын t1.bat мәтіндік файлын құрыңыз:

еcho off

cls

еcho we are students of AIPET!

echo:

еcho Hello!

а) t1.bat шақырып, оны орындаңыз. Экранда пайда болған мәліметтер фрагментін түсіндіріңіз.

б) еcho off командасын еcho on командасына ауыстырыңыз, тағы да t1.bat файлын шақырыңыз. Экранда пайда болған мәліметтерді түсіндіріңіз.

3.1.5 Келесі мазмұнда болатын t2.bat мәтіндік файлын құрыңыз:

еcho off

rem it is first comment

cls

rem it is second comment

еchogood morning!

rem it is third comment

echo:

еcho Hello!

rem it is last comment

а) файлды орындау керек;

б) еcho off командасын еcho on командасына ауыстырыңыз да файлды тағы орындаңыз;

в) нәтижелерін салыстырып, шығарылған ақпараттың айырмашылығын түсіндіріңіз.

3.1.6 Қандай да бір мәтіндік файлдың ішіндегісін экранға шығаратын f1.bat пакеттік файл құрыңыз. f1.bat  пакеттік файлды шақыратын f2.bat командалық файлын құрыңыз. Еcho қолданып файлдарды әртүрлі режимдерде шығарыңыз. @ қолданып пакеттік файл командалары шығарылмайтындай етіңіз.

3.1.7 Бірнеше хабарлама шығарғаннан кейін пауза жасап, содан кейін келесі хабарлама шығаратын пакеттік файл құрыңыз.

3.1.8 Қажет кезде орындалуын үзуге болатын пакеттік файл құрыңыз.

3.1.9 Екі санды бөлгеннен шыққан қалдықты және бүтін бөлігін табатын орта айнымалысын құрыңыз.

3.1.10 Мәні “aipet” болатын орта айнымалысын құрыңыз.

3.1.11 Екі жолдық айнымалы сейкес келген жағдайда бүтін айнымалыға 2 мәнін беретін, ал кері жағдайда ‘no equal” жолын шығаратын пакеттік файл құрыңыз.

3.1.12 Ағымдық каталогте берілген файл бар екенін тексеретін пакеттік файл құрыңыз (формал параметрлерді қолданыңыз).

3.1.13 Каталог құрыңыз. Оның ішінде әртүрлі мазмұнда болатын бірнеше мәтіндік файл құрыңыз. Командалық жол режимінде осы файлдардың мәнін экранға шығару командасын орындаңыз. Файлдарды экранға шығаратын пакеттік файл құрыңыз.

3.2 Жалпы мәлімет

Пакеттік файл – компьютерді нақты бір режимге орнататын  немесе нақты бір операциялар орындайтын тізбектелген командалар тобы.

Пакеттік файл әдеттегі ережелер бойынша құрылады, бірақ кеңейтілуі тек  .bat болуы керек (batch – «пачка» сөзінен қысқартылған).

Пакеттік файлдарды орындауды тоқтату Ctrl+Break немесе Ctrl+C командаларымен орындалады. Мұнда файлды командалық процессор рет-ретімен орындайды.

Ол файлдарды құру үшін операциялық жүйенің арнайы ішкі командалары және сыртқы find, sort, mode, more командалары қолданылады (3.1 кестені қараңыз).

3.1 кесте - Пакеттік (командалық) файл командалары

Команда

Қызметі

сall

бір пакеттік файлды басқа пакеттік файлдан шақыру

еcho

хабарлама шығару және командаларды экранда көрсету режимдерін ауыстыру

exit

cmd.exe (командалық жол интерпретаторы) программасын аяқтау

for

жиындағы файлдар үшін көрсетілген команданы орындауға жіберу

goto

басқаруды пакеттік файлдың көрсетілген жолына беру

if

пакеттік файлда команданы шартты орындау операторы

pause

пакеттік файлды тоқтата тұру және хабарлама шығару

rem

түсініктемелерді пакеттік файлға жазу

set local

пакеттік файл ортасы үшін ішкі өзгертулердің басы

shift

пакеттік файлға баратын көрсеткіштердің мәнін өзгерту (жылжыту)

Пакеттік файлдан басқа пакеттік файлды Call (қайтаруымен) командасы немесе әдеттегі шақыру командасымен (қайтарусыз) шақыруға болады.

Пакеттік файлдың командасын орындар алдында сол ортаның мәні экранға шығарылады. Пакеттік файлдың әрбір жолын экранға шығаруды болдырмау үшін жолды @ символынан бастау керек.

3.2.1 еcho командасының жалпы түрі: ЕCHO [ON|OFF].

Команданы келесі форматтарда қолдануға болады:

еcho off – экранға шығаруға тыйым салу;

еcho on – экранға шығаруға рұқсат беру;

еcho (параметрсіз) – команданың ағымдық мәнін (on немесе off) анықтау үшін сұраныс беру;

еcho+мәтіндік хабарлама – экранға мәтіндік хабарлама шығару;

еcho+% орта айнымалысының аты% – орта айнымалысының мәнін шығару;

3.2.2 Пакеттік файлды орындауды тоқтата тұру үшін pause командасын қолданғанда экранға келесі хабарлама шығады:

Для продолжения нажмите любую клавишу…

Бұл команданы дисплейге үлкен көлемдегі ақпарат бет бойынша порциямен шыққанда қолдану ыңғайлы, яғни оқып алып, содан кейін келесі форматқа көшуге болады. Оны пакеттік файлды басқару үшін де қолдануға болады. Егер pause командасына жауап ретінде Ctrl+C басатын болсақ, онда келесі сұрақ пайда болады:

Завершить выполнение задания?

Жауабы: Y-пакеттік файлды орындауды тоқтату, ал N-жалғастыру.

3.2.3 find командасының мысалында командалардағы формалды көрсеткіштер мен ауыстырылатын параметрлерді қолдануды қарастыру.

Мысал 1.

tt1.txt мәтіндік файлын құрайық:

what country are you from?

what is you name?

cf1.txt  пакеттік файлын құрайық:

          find /%1”%2”%3

Құрылған пакеттік файлда келесі ауыстырылатын параметрлер жатыр: %1- іздеу режимін көрсетеді, %2-іздеуге арналған символдар жолы, %3- «what» сөзі ізделетін жерді, яғни файл атын сұрайды.

Келесідей орындалады:

          С:\DOCUME~1\bista\0016~1\ooo\cf1.bat n what tt1.txt

          С:\DOCUME~1\bista\0016~1\ooo\find /n “what” tt1.txt

Бұл кезде іздеу нәтижесі келесідей:

-------------- tt1.txt

[2] what country are you from?

[3] what is you name?

Іздеудің басқа нұсқасын  келесідей іске асыруға болады:

С:\DOCUME~1\bista\0016~1\ooo\cf1.bat n what tt1.txt

С:\DOCUME~1\bista\0016~1\ooo\find /с “what” tt1.txt

3.2.4 goto командасы пакеттік файл операторларының тізбекті орындалуын өзгеруге мүмкіндік береді. Командалық процессор goto орналасқан жолды кездестіргенде ол файлдың барлық жолдарын қарап, сәйкес: белгісі бар жолды іздейді. Белгі идентификаторы сегіз символға дейін бола алады. Команда өздігінше немесе if командасымен бірге жүруі мүмкін.

3.2.5 Пакеттік файлды орындағанда if командасы тармақталуды ұйымдастырады, яғни команданы шартты орындауды іске асырады. Оның форматы:

if шарт команда

Шарт ретінде әдетте қоданылатындар:

а)    файлдың болуын тексеру. Бұл жағдайда шарт ретінде келесі фраза жазылады:

                    exist диск:\жолы\файл аты.кеңейтілуі

б)    екі символдық жолдың бірдейлігін тексеру. Шарт келесі түрде беріледі:

str1==str2

Мысал 2. Екі символдық жолдың бірдейлігін тексеру.

echo off

set /p s=str

set /p s1=str

if %s%==%s1% goto m1

echo all right

:m1

begin

set /a n=2

echo on

echo %n%

end

Not  командасын қолданып кері шартты тексеруге болады.

Мысал 3. i2.bat пакеттік файлы ағымдық каталогте aaa.txt файлының бар екенін тексереді.

if exist aaa.txt goto m1

echo aaa.txt no exist

go end

:m1

type aaa.txt

:end

Терістеуді қолданумен:

if not exist aaa.txt goto err1

type aaa.txt

goto end

:err1

echo it is bad

:end

Мысал 4. i5any.bat пакеттік файлы кез келген файлды іздеп, ішін қарап шығады.

echo off

if /%1==/ goto r1

if not exist %1 goto r2

type %1|more

goto end

:r1

echo there_is_not_name_of file_%1

goto end

:r2

echo there_is_not_this_file_%1

goto end

:end

Файлды шақыру: i5any.bat aaa.txt

3.2.6 Командаларды бірнеше рет қайталау үшін for командасы қолданылады. Команда форматы келесідей:

а)    командалық файл жолдары үшін:

               for %% айнымалы in (жиын) do команда

б)    командалық жолдың режимдері үшін:

          for % айнымалы in (саны) do команда

Параметр ретінде  айнымалы қолданылады, ол бір әріптік айнымалы,  (жиын) параметрінде көрсетілген сөздердің немесе файл атының мәнін рет-ретімен қабылдайды. Жиын – бір немесе бірнеше символдық жолдар немесе файл көрсеткіштері. Файл көрсеткіштері келесідей:

диск:\жолы\файл_аты.кеңейтілуі

Топпен жұмыс істеу үшін шаблондарды қолдануға болады:

диск:\жолы\*.кеңейтілуі

3.3 Бақылау сұрақтары

3.3.1 echo командасын қолдану ерекшеліктері қандай?

3.3.2 pause командасы қандай мақсатта қолданылады?

3.3.3 if командасын қолданғанда шарт ретінде не қолданылуы мүмкін?

3.3.4 Екі символдық жолдың теңдігін қалай тексеруге болады?

3.3.5 Пакеттік файлдың операторларын орындайтын командалардың әдеттегі орындалу ретін  қай команда өзгертуге мүмкіндік береді?

3.3.6 if және goto командаларын бірге қолдануға бола ма?

3.3.7 «Орта» айнымалысы қалай құрылады?

3.3.8 Пакеттік файлдардың жолдары үшін for-дың қай форматы қажет?

3.3.9 Файлдың болуын тексеру үшін қандай шарт қолданылады?

4 Зертханалық жұмыс №4. Есептеуіш процестер және ресурстары, компоненттері

 

Жұмыс мақсаты -  есептеуіш процестің компоненттері туралы жалпыланған ақпаратты беретін құралдарды қолдануға дағдылану.

4.1 Зертханалық жұмыс тапсырмасы

Word қосымшасының процестерін қарастыру. Тапсырманы орындар алдында 4.2, 4.3 тармақтардағы әдістемелік нұсқауларды оқыңыз да келесі әрекеттерді орындаңыз:

1)    Word-ты іске қосу. Қосымшаның атын тінтуірдің оң жағымен шертіп, контекстік мәзірдің «Перейти к процессам» жолын таңдау. «Процессы» бүктемесінде ағынның санын және процестің басқа да сипаттамаларын бақылау керек;

2)    Процестің басымдылығын (приоритетін) өзгерту. Қосымшаның атын тінтуірдің оң жағымен шертіп, контекстік мәзірдің «Приоритет» жолын таңдау. Сонда «Базовый приоритет» бағанасында оның жаңа атын көруге болады (ондағы ескертуге мән беріңіз).

3)    Мәліметтерді жаңарту жылдамдығын (скорость обновления) өзгерту, ол үшін «Вид» мәзіріне кіріп, «скорость обновления» командасын таңдау керек. Керекті жылдамдықты орнатыңыз (жоғарғы - әр жарты секунд сайын, әдеттегі - әр секунд сайын, төменгі  - әр 4 секунд сайын, тоқтату - жаңарту жоқ). Келесіні еске алған жөн, мониторинг жылдамдығын жоғарылатқанда компьютердің операциялық жүйе жұмысына жұмсайтын ресурстары өседі, ол өз ретінде мониторинг нәтижесіне қателік алып келеді.

4)    Бір есептеуіш процесс таңдап, оны тиянақты зерттеу.

 

4.2 Жалпы мәлімет

 

Тізбекті есептеуіш процесс – бұл мәліметтері бар бөлек программа. Тізбектік процессорда орындалады (ағымдық команда алдыңғы команда біткеннен кейін орындалатын процессор). Мысал ретінде қолданушының қолданбалы программаларын, утилиталар және басқа жүйелік өңдегіш программаларды келтіруге болады. Процесс ретінде мәтінді жөндеу, программаны көрсету, оны сығу, орындау болуы мүмкін. Қандай да бір алғашқы программаны көрсету бір процесс, ал басқа программаны көрсету басқа процесс, өйткені көрсеткіш программа бір, ал оның өңдейтін мәліметтері әртүрлі.

Процесс тұжырымдамасы келесі мақсатты қадағалайды – бірнеше рет қолданылатын, тұрақты, босайтын, сұраныста болатын ресурстарды бөлу және басқару механизмдерін жасау.

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

Тапсырмалар қадағалаушысын қосу және есептеуіш процестің компоненттерін қарау үшін келесі әрекеттерді орындау қажет:

1)    Тапсырмалар панелінде тінтуірдің оң жақ батырмасын басып, тапсырмалар қадағалаушысы жолын таңдау немесе Пускті басып, орындау жолына taskmgr командасын енгізу керек.

2)    Қосымшаларды қарау үшін «Приложения» бүктемесіне өту қажет. Бұл жерде қосымшаны аяқтауға, басқа тапсырмаға ауысуға, жаңа тапсырма құруға болады.

3)    Процестерді қарау «Процессы» бүктемесінде. Кесте жеке адрестік кеңістікте қосылған процестер, барлық қосымшалар мен жүйелік сервистерден тұрады. «Бездейтвие системы» – процесін қарасаңыз, бұл жалған процесс, жүйе іссіз тұрғанда процессорда орындалып тұрады.

4)    16-разрядты процесті қарау үшін «Параметры» мәзірінен 16-разрядты тапсырмаларды көрсету командасын таңдау қажет.

5)    Көргіміз келетін көрсеткіштерді таңдау үшін «Выбрать столбы» командасының көмегімен (Вид мәзірі) шығаруға міндетті көрсеткіштердің жанына жалауша (флаг) орнату керек.

Тапсырмалар қадағалаушысы компьютердің негізгі ресурстарын қолдану жөнінде жалпыланған ақпарат алуға мүмкіндік береді. Ол үшін келесілерді орындау қажет:

1)    «Быстродействие» бүктемесіне көшу. Жоғарғы екі терезе процессордың интегралды жүктемесін және жүктемелер хронологиясын көрсетеді. Төменгі екі терезеде тура сол көрсеткіштерді көрсетеді, бірақ жадыны қолдану жайлы.

2)    Ядро режимінде (қызыл түс) процессордің қолданылуын көрсету үшін «Вид» мәзіріне өтіп, «Вывод времени ядра» жолын шерту керек.

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

Есептеуіш процесті тиянақты зерттеу үшін «Оповещения», «Системный монитор» және «Журнал производительности» қызметтері қарастырылған.

          4.3 Жадыны қолдану туралы толық мәлімет

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

Бірінші бөлім виртуалды жадының 3 статикалық көрсеткіштерін құрайды. «Всего» – бұл қосымшалардың немесе ОЖ-нің қолданатын виртуалды жадысының жалпы көлемі. «Предел»– қол жекізілетін виртуалды жады көлемі. «Пик» – соңғы жүктеу мезетінен бастап, сессия кезінде қолданылатын жадының ең үлкен көлемі.  

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

Тапсырмалар бақылаушысы арқылы процестердің қолданған жадысының көлемін білуге болады. Ол үшін орындалып жатқан процестер тізімі мен олардың алып тұрған жады көлемі көрсетілген (соның ішінде физикалық жады, жадының шектік, максимал қолданылуы мен виртуалды жады) «Процессы» бүктемесіне кіру керек.

Тапсырмалар бақылаушысындағы мәліметтер толық емес:

1)     Тапсырмалар бақылаушысы терезесінде Windows-қа тіркелген  процестер көрсетілген. Онда кейбір жүйелік қызметтер және құрылғылардың драйверлері енгізілмеген.

2)     Жадыға қойылатын талаптар процестің ағымдағы күйін бейнелейді. Тізімде ағымдық уақытта қосымшалардың орын алып тұрған жады көлемі көрсетілген.

3)     Дегенмен уақыттық сипаттамалары шығарылмаған, сол себептен оның өзгеруін бақылауға мүмкіндік жоқ. 

 

4.1 сурет - Жады туралы  мәлімет

4.4 Бақылау сұрақтары

4.4.1 Есетпеуіш процесс дегеніміз не?

4.4.2 «Орындау ағымы» түсінігі қандай мақсатта енгізілген?

4.4.3 Ресурстардың қандай түрлері бар?

4.4.4 Есетпеуіш процестің компоненттерін атаңыз.

4.4.5 Қандай құралдар процесс компоненттері жайлы ақпарат береді?

4.4.6 Тапсырмалар бақылаушысы не үшін қажет?

4.4.7 ОЖ-нің жұмысын тиімдірек қылуға мүмкіндік беретін қандай қызметтік программаларды білесіз?

 4.4.8 «Журнал производительности» қандай ақпарат береді?

 

5 Зертханалық жұмыс №5. Құрылғылар бақылаушысы

 

Жұмыс мақсаты – құрылғылар бақылаушысының негіздерімен танысу және оны пайдалануды үйрену.

5.1  Зертханалық жұмысқа тапсырма

Тапсырманы орындау үшін 5.2 тармақтағы әдістемелік нұсқауларды оқыңыз.

5.1.1    «Диспетчер устройств» көмегімен компьютерге орнатылған жабдықтармен және оларға тағайындалған жүйелік ресурстармен танысу.

Келесі бүктемелерді зерттеңіз:

а)      ЕСР принтер портының (LPT1) «Драйвер» бүктемесі.

б)     ЕСР принтер портының (LPT1) «Сведения» бүктемесі.

в)      ЕСР принтер портының (LPT1) «Ресурсы» бүктемесі.

г)      Кезекті портының «Общие» бүктемесі.

д)     Кезекті портының «Параметры порта» бүктемесі.

е)      Кезекті портының «Драйвер» бүктемесі.

ж)    Кезекті портының «Сведения» бүктемесі.

5.1.2    «Сведения о системе» программасының көмегімен нақты бір есептеуіш жүйенің барлық жүйелік ресурстары жайлы ақпараттарды алу.

5.1.3    Қондырылған принтер туралы ақпарат құру

а)      қондырылған принтер туралы ақпаратты көрсету үшін  uses бөліміне Printers модулін қосу керек;

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

в)      формаға Dialog бүктемесінен PrinterSetupDialog компонентін орнату керек, жаңартуға, принтерді ауыстыруға және жабуға ListBox, Edit, Button компоненттерін қолдану;

г)       батырманың аттары – жаңарту, принтерді ауыстыру, жабу;

д)      жаңарту батырмасының оқиғасы үшін келесі код қолданылады (ListBox компонентіне барлық принтерлердің тізімін шығарады және ағымдағы принтерді  Edit-ке шығарады);

е)      рrinter.Printers.Count – жүйедегі принтерлердің саны;

ж)    printer.Printers.Strings[i] – аты, i-нші принтердің индексі; 

и)  printer.printerindex – ағымдағы принтердің индексі;

к)   printer.Printers.Strings[printer.printerindex] – ағымдық принтердің аты.

5.2 Жалпы ақпарат

Құрылғылар бақылаушысы жабдықтың драйверлерін жаңарту, жабдыққа жөндеу жүргізу және келеңсіз жағдайларды болдырмау үшін немесе бағдарламалық қамтасыз етуде қолданылады. Құрылғылар бақылаушысы терезесінде компьютерге орнатылған жабдықтардың графикалық бейнесі көрсетілген. Құрылғыны орнату кезінде оған жүйелік ресурстар бөлінеді. Әрбір ресурс құрылғының дұрыс жұмыс жасауы үшін қолайлы болуы керек. Windows жүйесінде «Сведения о системе» қызметтік бағдарламасы бар, оның көмегімен жүйелік ресуртар туралы мәліметтерді алуға болады. 

 «Мой компьютер» - «Свойства» контекстік мәзірінің «Свойства системы»-«Оборудование» қатарында «Диспетчер устройств» орналасқан.

5.1 сурет – «Свойства системы» терезесі

 

5.2    сурет - Құрылғылар бақылаушысының терезесі

Белгіленген құрылғыда ресурстық жүйелерді қарау үшін (мысалы, COM  және LPT порттары тобында) топты ашып, контекстік мәзірде «Свойство» командасын таңдаймыз, мысалы, бастапқыда Принтер портын таңдап, содан соң ашылған терезеде «Ресурс» бүктемесіне кіру, содан кейін «Параметры порта» бүктемесіне кіру керек.

5.3 сурет - ЕСР принтер портының (LPT1) «Общие», «Драйвер»  бүктемесі

5.3 Бақылау сұрақтары

5.3.1 Құрылғылар бақылаушысы не үшін арналған?

5.3.2 «Сведения о системе» қызметтік бағдарламасының көмегімен не істеуге болады?

5.3.3 Жүйелік ресурстар бөлінуі қай жерде көрсетілген?

5.3.4 LPT портының «Сведения» бүктемесіне түсініктеме беріңіз.

5.3.5 LPT портының «Ресурсы» бүктемесін түсіндіріңіз.

5.3.6 СОМ портының «Параметры порта» бүктемесін түсіндіріңіз.

5.3.7 printer.Printers.Strings[printer.printerindex] нені көрсетеді?

5.3.8 Ағымдағы принтердің нөмірін қалай алуға болады?

6 Зертханалық жұмыс №6. Ресурстар, олардың процестер арасында бөлінуі

Жұмыстың мақсаты – есептегіш жүйенің ресурстарын процестер арасында бөлуге дағдылану.

6.1 Зертханалық жұмысқа тапсырма

Тапсырманы орындар алдында 6.2 тармақтағы әдістемелік нұсқауларды оқыңыз.

          6.1.1 Жүйеде 5 процесс (A, B, C, D, E) және осы процестерге бөлінетін 4 ресурс (р1, р2, р3, р4) бар. Орындалып жатқан ресурстарды бөлу және олардың қажет максимал саны 6.1 кестеде келтірілген. «Қажет» және «Қол жетімді» бағандарын толтыру керек. С процесінің (0,1,0,0) сұранысын лезде қанағаттандыру қауіпсіз екенін анықтаңыз.

6.1 кесте – Ресурстарды бөлу және олардың саны

Процесс       

р1, р2, р3, р4 беріледі

Максимал қажеттілік

Қажет р1, р2, р3, р4

Қол жетімді 

р1, р2, р3, р4

А

0 0 1 2

0 0 1 2

 

2 1 0 0

В

2 0 0 0

2 7 5 0

 

 

С

0 0 3 4

6 6 5 6

 

 

D

2 3 5 4

4 3 5 6

 

 

Е

0 3 3 2

0 6 5 2

 

 

6.1.2 A, B, C, D атты 4 процесс бар және 3 ресурс. Таратылған ресурстар матрицасы және сұраныстар матрицасы белгілі (6.2, 6.3 кестелерді қараңыз). Бар ресурстар векторы Е=(9,3,6). Бар ресурстарды тиімді бөлу жолын қарастырыңыз.

6.2 кесте – Бөлінген ресурстар матрицасы

Процесс

Ресурс 1

Ресурс 2

Ресурс 3

А

1

0

0

В

6

1

2

С

2

1

1

D

0

0

2

6.3 кесте – Сұраныстар матрицасы

Процесс

Ресурс 1

Ресурс 2

Ресурс 3

А

3

2

2

В

6

1

3

С

3

1

4

D

4

2

2

6.1.3 Жүйеде әр типтен бір ғана ресурс бар. Жүйе 6 процестен (A, B, C, D, E, F) және 5 ресурстан R, S, T, V, U тұрады. Бір моментте жүйе келесі тізімге сәйкес:

1)    А процесі S ресурсын алып жатыр және U  ресурсын алғысы келеді;

2)    В процесі ешқандай ресурсты қолданбайды, бірақ R ресурсын алғысы келеді;

3)    С процесі ешқандай ресурсты қолданбайды, бірақ V ресурсын алғысы келеді;

4)    D процесі U ресурсын алып жатыр және және R және T ресурсын алғысы келеді;

5)    E процесі T ресурсын алып жатыр және V ресурсын алғысы келеді;

6)    F процесі R ресурсын алып жатыр және Т ресурсын алғысы келеді;

Барлық процестерді бірдей қанағаттандыру мүмкін бе? Процестерді орындауды бітіру үшін сұраныстарды қандай ретпен орындау керек?

6.1.4 Жоғарыдағы 6.1.1-6.1.3 тапсырмаларын программалау тілдерінің мүмкіндіктерін қолданып қолданушы интерфейсін жасап орындаңыз.

6.2 Жалпы ақпарат

Есептегіш жүйенің ресурстарының негізгі түріне жататындар:

а)  процессордың өзі, тура айтқанда процессорлық уақыт;

б)  жады;

в)  сыртқы құрылғылар;

г)   программалық модульдер;

д)  ақпараттық ресурстар.

Ресурстарды таратудың жалпы сұлбасы. Қандай да бір ресурс (ОП, ЕШҚ, мәліметтер массиві және т.б.) қажет болғанда бұл есеп ОЖ супервизорына арнайы сұраныстар (командалар, директивалар) көмегімен   хабарласу арқылы орындалады. Сол кезде ресурс түрі, егер қажет болса оның көлемі де көрсетіледі. ОЖ-ге хабарласу арқылы басқаруды оған береді, процессор артықшылығы бар режимге өтеді (егер ондай бар болса).

Көптеген компьютерлер екі және одан да көп режимнен тұрады: артықшалығы бар режим және қолданушы режимі.

ОЖ-ге сұраныс арқылы хабарласқан есепке ресурс бөлінеді, егер:

-      ресурс бос болса және жүйеде сол ресурсқа басқа басымдылығы (приоритеті) жоғары есептерден сұраныс болмаса;

-      ағымдық сұраныс және алдында берілген сұраныстардың ресурстарды ортақ қолдана алса;

-      ресурсті басымдылығы төмен есеп қолданып тұрса, оны уақытша тартып алуға болады (бөлінетін ресурс).

Сұраныс қабылдағаннан кейін ОЖ оны қанағаттандырады да, басқаруды есепке береді, егер ресурс бос болмаса, онда есепті ресурсқа деп арналған тізімге қояды, яғни оны тосу режиміне ауыстырады (блокта).

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

Ресурсқа сұраныс бергенде есеп ресурсты монопольді (өзі жалғыз) немесе басқа есептермен ортақ қолданатынын көрсете алады. Егер жүйеде біріккен ресурстар бар болса, онда оларды қолдануды басқару бір амалдар негізінде жүргізілуі керек.

6.3 Бақылау сұрақтары

6.3.1 «Ресурс» термині нені білдіреді?

6.3.2 Ресурстарды бөлудің қандай тәсілдері бар?

6.3.3 Қандай ресурстарды маңызды деуге болады?

6.3.4 Программалық модульдердің қандай типтері бар? Оларды бөлу мүмкін бе?

6.3.5 Қай құрылғыларды тура және тізбекті қол жеткізу құрылғыларына жатқызуға болады?

6.3.6 Ақпараттық ресурстарға не жатады?

6.3.7 Ресурстарды бөлудің жалпы сұлбасы қандай?

6.3.8 Қандай жағдайда ресурс процестен мәжбүрлеп алынады?

6.3.9 Процесс басымдылығы ресурс бөлуге қалай әсер етеді?

7 Зертханалық жұмыс №7. Ағымдардың өзара блокталуы және оларды табу

Жұмыстың мақсаты – ағымдардың өзара блокталуын табуға дағдылану.

7.1 Зертханалық жұмысқа тапсырма

Тапсырманы орындар алдында 7.2, 7.3 тармақтардағы әдістемелік нұсқауларды оқыңыз.

7.1.1 Бөлінбейтін ресурстар кезіндегі өзара блокталуды табу. Жүйеде әрбір типтен бір ресурс қана бар. Жүйе мынадай жеті процесс пен алты ресурстан тұрады: A, B, C, D, E, F, G  және R, S, T, V, W,U. Бір моментте жүйе келесі тізімге сәйкес:

1)      А процесіне R жіберіледі және  S ресурсын алғысы келеді;

2)      В процесі ешқандай ресурсты қолданбайды, бірақ Т ресурсын алғысы келеді;

3)      С процесі ешқандай ресурсты қолданбайды, бірақ S ресурсын алғысы келеді;

4)      D процесіне U жіберіледі және  S және T ресурсын алғысы келеді;

5)      E процесіне T жіберіледі және  V ресурсын алғысы келеді;

6)      F процесіне W жіберіледі және  S ресурсын алғысы келеді;

7)      G процесіне V жіберіледі және  U ресурсын алғысы келеді.

Келесіні орындау қажет:

1)  Жүйе блокта тұр ма? Иә болса, онда қандай процестер қатысады?

Біздің жағдай үшін тығырық келесі L=[B,T,E,V,G,U,D,T] тізімде анықталады.

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

3)  Көрсетілген тізімге сәйкес ресурстарды процестер бойынша бөлу керек.

4)  Тығырықтық күйге түскен процестерді анықтауға мүмкіндік беретін процестер мен ресурстардың графын салыңыз.

Визуалды түрде өзара блокталу жақсы көрінеді, бірақ бізге оны ОЖ-нің өзі тапқаны қажет. Ол үшін келесі алгоритмдердің бірін қарастырайық:

Әрбір N түйін үшін графта 5 қадам орындалады:

1)  Бастапқы шарттар: L-бос тізім, барлық жолдар белгіленбеген.

2)   Ағымдық түйінді L тізімінің соңына енгіземіз де түйіннің тізімде пайда болуларын санаймыз. Егер ол екі рет кездессе, яғни цикл және өзара блокталу бар.

3)   Берілген түйінде кем дегенде бір белгіленбеген жол шығатынын бақылаймыз.  Егер болса, онда 4 қадамға өтеміз, егер жоқ болса, онда 5 қадамға өтеміз.

4)    Жаңа белгіленбеген жолды табамыз да белгілейміз. Сол бойынша жаңа түйінге өтеміз де 3 қадамға қайтамыз.

5)   Тығырыққа тірелдік. Соңғы түйінді жоямыз да, алдыңғы түйінге қайта ораламыз, 3 қадамға қайтамыз. Егер бұл алғашқы түйін болса, яғни циклдер жоқ, алгоритм аяқталады.

7.1 сурет – Өзара блокталуды табудың алгоритмі

 

7.2 сурет - Тығырықтық күйге түскен процестер мен ресурстардың сұлбасы

 

7.1.2  Жүйеде 5 процесс (A, B, C, D, E) және процестерге берілетін 4 ресурс (р1, р2, р3, р4) бар. Берілген ресурстар және процестерге қажетті максимал саны 7.1 кестеде келтірілген. «Қажет» және «Қол жетімді» бағандарын толтыру керек. Ресурстарды тиімді бөлу жолын анықтаңыз. Жүйеде тығырықтық жағдай болуы мүмкін бе?

7.1 кесте - Ресурстарды бөлу және олардың саны

Процесс       

р1, р2, р3, р4 беріледі

Максимал қажеттілік

Қажет р1, р2, р3, р4

Қол жетімді 

р1, р2, р3, р4

А

0 0 1 3

1 0 1 5

 

 3 0 1 1

В

1 3 0 0

2 6 5 0

 

 

С

0 0 3 1

2 6 5 6

 

 

D

2 3 4 1

4 3 5 6

 

 

E

0 3 3 1

0 5 5 1

 

 

 

7.1.3 Бірағындық және көпағындық файлдық серверлер арқылы файлды оқуды салыстыру. Сұранысты алу, оны қадағалау және өңдеуге 15 мс кетеді (егер блоктық кэште мәліметтер болса). Әрбір үшінші жағдайда  дискіге хабарласу қажет (75 мс), бұл уақытта ағын күту күйінде болады. Бірағындық сервер минутына қанша сұраныс өңдейді. Ал көпағындық ше?

7.1.4 Жіберуді 5 есеп күтіп отыр. Олардың жобаланған орындалу уақыты 9, 6, 3, 5 және х мс. Жауап беру уақыты минимал болу үшін оларды қандай ретпен жіберу керек  (жауап х-ке байланысты болу керек)?

7.1.5 Реалды уақыт жүйесіне 4 периодтық сигнал 50, 100, 200 және 250 мс аралықпен түседі. Әрбір сигналды өңдеуге орталық процессордан 35, 20, 10 және х мс уақыт кетеді. Жүйе жоспарлауға бейім болатындай максимал х уақытын табу керек.

7.1.6 Қолданушы процесі принтерге шығару үшін 70 символдан тұратын жол құрады, оған 5 мс жұмсайды. Буфер көлемі 1 жолға тең. Мәтін парағы 50 жолдан тұрады. Принтердің минутына 10 парақ шығаруға мүмкіндігі бар. Қолданушы процесінің тоқтаулары бола ма? Бұл жағдайды екі жерде буферлеу жақсарта ма?

7.1.7 Ақпарат модемнен 50 Кбит/с жылдамдықпен түседі, ауыстырылатын екі жүйелік буферде орналасады (әрбірінің көлемі 1 Кбайт). Мәліметтерді буферден қолданушы процесіне ауыстыру 7 мс алады. Қолданушы процесі 1 мәліметтер блогына 50 мс жұмсайды. Бұл шарттарға сәйкес модемнен келетін мәліметтерді жоғалтулар бола ма?

7.1.8 А программасы монопольді режимде 10 минут орындалатыны белгілі, ал В программасы 20 минутта, яғни тізбектей орындалғанда 30 минут алады. Егер екі есептің орындалу уақыты мультипрограммалау режимінде Т-уақыт болса, көрсетілген  теңсіздіктердің қайсысы дұрыс? Жауапты сұлбамен түсіндіріңіз.

a) T<10;

б) 10<T<20;

в) 20<T<30;

г) T>30.

7.2 Жалпы ақпарат

ОЖ-де ағымдар есептеулердi параллельдерге бөлу құралы ретінде  пайда болды.

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

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

P={P1, Р2, ... , Рn } процестер және Е={Е1 Е2, ... , Еm} ресурстар жиыны болсын делік, мұнда n және m-сәйкесінше процестер және ресурстар жиыны. Кез келген уақыт мезетінде кейбір  ресурстар бос болмауы мүмкін, сәйкесінше қол жетімсіз.

А=(А1 А2, ... , Аm) векторы - қол жетімді ресурстар векторы болсын.  Сонымен қатар Аj<=Ej қатынасы орындалсын, мұнда j=l, 2, ..., m.

Сонымен қатар екі матрица қарастырылады:

C={cij}, i=1,2,…,n; j=1,2,…,m – бір мезеттегі ресурстарды бөлу матрицасы, мұнда cij – Pі процесін алатын j-нші кластағы ресурстардың саны;

R={rij}, i=1,2,…,n; j=1,2,…,m – сұралатын ресурстар матрицасы, мұнда rij – Pі процесін алғысы келетін j-нші кластағы ресурстардың саны;

Ресурстар бойынша m қатынас айқын:

, мұнда j=1,2,…,m.                              (7.1)

Өзара блокталуды анықтау алгоритмі қол жетімді және қажетті ресурстар векторын салыстыруға негізделген. Бастапқы күйде барлық процестер белгіленбеген. Алгоритмді іске асыру барысында процестерге «жұмысын бітіреді» деген белгі қойылады, яғни олар тығырықта емес. Алгоритмді бітіргеннен кейін кез келген белгіленбеген процесс тығырықтық күйде болады.

Тығырықты анықтау алгоритмі келесі қадамдардан тұрады:

1)  R матрицасының і-нші жолы А векторынан кіші болатындай Pі процесі ізделеді, яғни Rі<=Aj  немесе rij<Aj, мұнда j=1,2,…,m.

2)  Егер ондай процесс табылса, бұл оның аяқталатындығын және ол ресурстарды босататынын білдіреді. Табылған процесс белгіленеді, С матрицасының і-ші жолы А векторына қосылады, яғни  Аj= Аjij, мұнда j=1,2,…,m және 1-ші қадамға қайту орындалады.

3)  Егер ондай процесс болмаса, онда алгорим жұмысы аяқталады, ал белгіленбеген процестер тығырыққа түседі.

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

7.3 Бөлінетін ресурстар. Қауіпсіз және қауіпті күйлер

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

7.3.1 Мысалы, келесі жүйеде ресурстың 10 данасы және 3 процесс бар.

7.3 сурет – Ресурстардың таралуы 1

А процесі 3 дана алып жатыр, бірақ оған 9 қажет. Бұл жағдайда В процесін жіберіп, содан кейін С, содан кейін А процесін жіберу керек деп жоспарлауға болады. Сонда процестер тығырықтық жағдайға тап болмай жұмысын аяқтайды.

Басқа жағдайды қарастырайық. А процесі 4 дана алып жатыр.

7.4 сурет – Ресурстардың таралуы 2

 Суреттен көрінгендей қауіпті жағдай туындайды. Бірақ А процесі қандай да бір моментте ресурсты босатса тығырық болмайды.

Бұл жағдайда А процесіне ресурс бермеген жөн еді.

 7.3.2 Ресурстың бір түріне арналған банкир алгоритмі.

Клиенттер-процесс, ал кредиттер-ресурс ұқсастығы болғандықтан "Банкир алгоритмі " деп аталады. Жүйені қарастырайық:

Банкир 10 кредит (ресурс) бере алады. Оған ретімен 4 клиент сұраныс береді.

7.5 сурет – Ресурстардың таралуы 3

Банкир алгоритмі:

1)    Банкирге клиенттен кредит алуға сұраныс түседі.

2)    Банкир бұл сұраныстың қауіпті жағдайда әкелетіндігін тексереді.

3)    Осыған байланысты кредит бермейді не береді.

7.6 сурет – Банкир алгоритмі

7.3.2 Ресурстың бірнеше түріне арналған банкир алгоритмі.

Келесі жүйені қарастырайық:

Векторлар:
E=(6342) – бар ресурстар.
P=(5322) – бос емес ресурстар.
A=(1020) – қол жетімді ресурстар.

7.7 сурет – Ресурстарды тарату матрицасы

7.3.3 Қауіпсіз немесе қауіпті күйді іздеу алгоритмі. Егер күй қауіпсіз болса, онда ресурсты беруге болады, егер қауіпті болса, онда беруге болмайды.

Тәжірибе жүзіде бұл алгоритмдерді іске асыру қиын.

7.8 сурет – Ресурстың бірнеше түріне арналған банкир алгоритмі

 

7.4 Бақылау сұрақтары

7.4.1 «Ағын» дегеніміз не?

7.4.2 Ағын және процестің айырмашылығы неде?

7.4.3 Қандай жағдайда өзара блокталу пайда болады?

7.4.4 Өзара блокталуды анықтау алгоритмі неге негізделген?

7.4.5 Пассивті және активті процестерге мысал келтіріңіз.

7.4.6 Мультипрограммалау деген не?

7.4.7 Есептеуіш процестерді жоспарлауды қалай түсінесіз?

7.4.8 Банкир алгоритмін қалай түсінесіз?

8 Зертханалық жұмыс №8. Ағындарды синхрондау  құралдары, критикалық секциялар және тығырықтар. Есептеуіш ағындарды MatLab ортасында құру

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

          8.1  Зертханалық жұмысқа тапсырма

Тапсырманы орындар алдында 8.3 тармақтағы әдістемелік нұсқауларды оқыңыз.

8.1.1  Delphi - программасын қолданып қарапайым ағын құру.

Формада  Label1: TLabel; Button1: TButton; Button2: TButton; компоненттерін орналастыру керек.

Бір батырма іске қосу үшін, екіншісі тоқтату үшін болсын. Ағынға модуль құрастыру үшін жаңа модульді құрудың терезесін шығару file – new–other new  арқылы орындалады. New бүктемесінде ThreadObject табыңыз. Шыққан терезеде құрылатын ағынның атын енгізіп, оны TcountObj деп атау керек. Негізгі форманы Main атымен сақтап, ал ағынды MyThread атымен сақтаңыз. Негізгі формада uses бөліміне MyThread ағынын енгізу керек. Тапсырма програмасы А қосымшасында келтірілген.

8.1.2 Әр цикл сайын Global айнымалысының бастапқы 100 мәнінен 1 ге өсіріп отыратын екі ағыны бар қосымша құру. Әрбір ағынның циклының қайталану саны 12, Global айнымалысының мәнінің өсуі ListBox екі тізім түрінде экранға шығарылсын. 

Қосымша дұрыс жұмыс істесе айнымалының соңғы мәні 100+12+12=124 болу керек. Бірақ жалпы жағдайда арнайы шарасыз мұндай мән алынбайды, өйткені ағындар бір-біріне «кедергі»  жасайды.

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

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

8.1.4    Delphi-дегі Thread класын қолданып 8.1.2 тармағына ұқсас қосымша құрып жұмысын тексеріңіз. Алынған нәтижелерді 8.1.2 нәтижелерімен салыстырыңыз.

8.1.5    №8.1.1 тармақта жасалған тармақтардың біріне 5 цикл өткеннен кейін бітетін оператор қосыңыз. Қосымшаны жүктеп, жұмысын тексеріңіз.

8.1.6    Жасалған қосымшаларды семафор және оқиғаларды қолданып қайта жазыңыз. Қосымшаларды жүктеп, жұмысын тексеріңіз.

8.1.7    Бір және екі ағынды қолданып екі матрицаны көбейтіңіз. Орындалу ұзақтығын салыстырыңыз. Матрица өлшемдерін өзгертіп тура сол әрекеттерді орындаңыз. Екі нұсқаны қолданып  уақыт ұзақтығының матрица өлшемдеріне  тәуелділігінің графигін тұрғызыңыз. Ұзақтықтың алынған мәндерін MS Excel кестесіне енгізіңіз.

8.1.8    sin x функциясының 0-2pi интервалында әртүрлі қадамдармен есептеңіз, бір және бірнеше ағынды қолданыңыз. Уақыт ұзақтығының салыстырыңыз, графигін тұрғызыңыз. Ұзақтықтың алынған мәндерін MS Excel кестесіне енгізіңіз.

8.2 Тапсырмаларды орындау реті

          8.2.1 Жоғарғы 8.1.2 тармақтағы есепті орындау реті.

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

Қосымша 1 Button, 2 ListBox , 1 CheckBox қолданады. Критикалық секцияларды қосқанда қосымшаның соңғы нәтижесі болып глобалды айнымалының 124 мәні болуы керек.

          Ағындар басымдылығын (приоритетін) өзгерту мүмкіндігін қарастыру керек. Қосымшаны әртүрлі приоритеттерді орнатып жүктеу керек. Келесі сұрақтарға жауап күтілуде: ағындар басымдылығын өзгерту қосымшаны орындау нәтижесіне қалай әсер етеді?

8.2.2  Жоғарғы 8.1.3 тармақтағы есепті орындау реті.

MatLab қосымшасы есептеулерді бір уақытта бірнеше ағындарда орындауға мүмкіндік береді. Бірнеше ағындарда қосу үшін келесі жұмыстарды орындау қажет: File > Preferences > General > Multithreading таңдап ағындар санын таңдау.

          Мысал: екі ағынды қолданып екі матрицаны көбейту.  Егер жүйеде екі СPU-дан жоғары болса, онда ағындар санын азайтуға болады. Ағындар санын анықтайтын айнымалы numThreads.

А және В матрицасының элементтерінің мәні кездейсоқ сандар генераторымен беріледі.

maxNumCompThreads(N) функциясы есептеуіш ағындардың максимал санын N орнатады

N = maxNumCompThreads есептеуіш ағындардың  болып тұрған максимал санын N береді.

          Төменде матрицаны құру және кейбір көрсеткіштері көрсетілген.

Командалық жолда терілетіндер:

numThreads=2;                   % Number of threads to test

dataSize=500;                      % Data size to test

A=rand(dataSize,dataSize); % Random square matrix

B=rand(dataSize,dataSize); % Random square matrix

Есептеуіш ағындардың  максимал саны 1 және операцияны орындау уақыты орнатылады.

oldstate = maxNumCompThreads(1);

C=A*B;       % Do not perform timing comparison with the first run

tic;

C=A*B;

time1=toc;

fprintf('Time for 1 thread  = %3.3f sec\n', time1);

Time for 1 thread  = 0.074 sec

Матрицалар бір ағынды қолданып көбейтілді және орындалу уақыты анықталды.

Енді есептеуіш ағынның numThreads-ке тең саны және орындалу уақыты орнатылады

maxNumCompThreads(numThreads);

tic;

C=A*B;

timeN=toc;

fprintf('Time for %d threads = %3.3f sec\n', numThreads, timeN);

Time for 2 threads = 0.040 sec

Программада көрінгендей орындалу уақыты жуықтап екі есеге азайды.

Excel қосымшасы офистік программалардың арасында ерекше орыналады.  Matlab пакетіне жақын, өйткені Excel-де  құрылымдарды кесте/матрица түрінде іске асыруға мүмкіндік бар. Excel және Matlab мүмкіндіктерін біріктіруге болады. Оны Matlab құрамына кіретін автоматтандыру серверінің «надстройки» Spreadsheet Link EX көмегімен орындайды. Бұл Excel мәліметтерін Matlab жұмыс кеңістігіне импорттауға немесе керісінше экспорттауға мүмкіндік береді.

М матрицасын Excel - filename – файлына жазу үшін келесі функциялар қолданылады:

xlswrite(filename, M)

xlswrite(filename, M, sheet)

xlswrite(filename, M, range)

xlswrite(filename, M, sheet, range)

Файл аты бірлік тырнақшаға жазылады.

Excel-файлынан М матрицасы үшін келесі қолданылады:

num = xlsread(filename)

num = xlsread(filename, -1)

num = xlsread(filename, sheet)

num = xlsread(filename, 'range')

num = xlsread(filename, sheet, 'range')

num = xlsread(filename, sheet, 'range', 'basic')

8.2  Жалпы ақпарат

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

Тек бір процестің ғана глобалды айнымалылардың мәндерін жазу және өзгерту мүмкіндігі болуы керек.

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

8.2.1 Ағымдар.

Windows ОЖ көп есепті (многозадачный) болып табылады, яғни бір уақытта бірнеше есептерді орындайды.

Бір бағдарлама кодтары бір уақытта орындалатын бірнеше тәуелсіз блоктарынан тұра алады. Әрбір блок ағын деп аталады.

Жаңа қосымша қосылғанда ол үшін бағдарлама коды орындалатын негізгі 1 ағым пайда болады. Сонымен бірге кез келген уақытта негізгі ағыммен параллель орындалатын қосымша ағымдар құруға болады.

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

8.2.2 Ағымдар синхронизациясы.

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

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

8.3  Бақылау сұрақтары

8.3.1 Синхрондау не үшін керек?

8.3.2 Семафор және оқиғалар дегеніміз не?

8.3.3 Мьютекс қандай қызмет атқарады?

8.3.4 Критикалық секциялармен қалай жұмыс істелінеді?

8.3.5 ThreadObject не үшін арналған?

8.3.6 Матрицамен жұмыс істейтін функциялар тізімі қандай?

8.3.7 Матрицаны Excel файлына жазу үшін қандай функциялар қажет?

8.3.8 numThreads нені көрсетеді?

9 Зертханалық жұмыс №9. Операциялық жүйеде процессорлық уақытты тарату әдістері

Жұмыстың мақсаты – қадағалау (диспетчеризация) тәртіптерімен танысу және оларды процессорлық уақытты таратуда қолдануға дағдылану.

9.1 Зертханалық жұмысқа тапсырма

Тапсырмаларды орындамас бұрын 9.2 тармақта көрсетілген әдістемелік нұсқауларды оқыңыз.

9.1.1 0-2pi интервалында cos(x) функциясының мәндерін МАТЛАБ бір немесе бірнеше ағымын қолданып әртүрлі қадамдарда есептеңіз. Орындалу ұзақтықтарын салыстырыңыз, графиктерін тұрғызыңыз, уақыт мәндерін MS Excel кестесініне жазыңыз.

9.1.2 0-2pi интервалында sin(2x)+cos(x) функциясының мәндерін МАТЛАБ бір немесе бірнеше ағымын қолданып әртүрлі қадамдарда есептеңіз. Орындалу ұзақтықтарын салыстырыңыз, графиктерін тұрғызыңыз, уақыт мәндерін MS Excel кестесініне жазыңыз.

9.1.3 №8.1.1 тапсырманы қолданып уақыт санаңыз. Gettickcount функциясын қолдану керек.

9.1.4 А, В,С үш есеп жуықпен бір уақытта компьютерлік орталыққа келіп түседі. Оларды орындау уақыты 1, 2, 4 минут деп болжануда. Процестердің арасында ауысу уақыты (контексті ауыстыру уақыты) – 2 мс, ал процессордың квант уақыты 20 мс деп санап, есептерді орындаудың орташа уақытын табу керек. Циклдық жоспарлау (RR) - әрбір есепке өзіне тиісті уақыт бөлігі беріледі.

9.1.4 A, B, C, D төрт пакеттік есеп екіпроцессорлық компьютерге жуықпен бір уақытта келіп түседі. Оларды орындау уақыты 7, 4, 6, 2 минут деп болжануда. Орнатылған басымдылық реті (приоритет) 3, 2, 1, 4, жоғарғысы 4. «Бірінші келді, бірінші кетті» алгоритмі үшін орташа уақытты анықтаңыз, жіберілген есеп соңына дейін орындалады. Процестер арасындағы ауысуларға кеткен уақыт ескерілмесін.

9.2 Жалпы ақпарат

Қадағалау (қызмет көрсету) тәртіптері – бұл орындалуға дайын есептерді кезекке қою ережелері.

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

Жиірек пайдаланылатын қызмет  көрсету тәртіптері келесі:

а) FCFS (First Come First Served - бірінші келді, бірінші қызмет көрсетілді) осыған сәйкес есептерге «кезекке сәйкес» қызмет көрсетіледі, яғни олардың пайда болуына байланысты. Жұмыс барысында  блокталған есептер дайындық күйіне түскеннен кейін осы дайындық кезегіне қойылады. Бұл қызмет көрсету тәртібі есептеулер барысына сыртқы көмекші әсерді қажет етпейді, онда процессорлық уақытты қайта тарату орын алмайды;

б) SJN (Shortest Job Next - келесі болып ең қысқа есеп орындалады) әрбір есеп үшін машиналық уақытқа деген қажеттілігі бағаланғанын қалайды. SJN қызмет көрсету тәртіптері орындауға дайын есептердің тек бір ғана кезегі бар деп болжайды. Жұмыс барысында уақытша блокталған есептер орындауға дайын есептер кезегінің соңына түскеннен кейін ол басқа жаңа түскен есептермен бір деңгейде болады;

в) SRT (Shortest Remaining Time) - процессорда ең қысқа уақыты қалған тапсырма «келесі» болып орындалады;

г) RR (Roun Robin) – кең тараған тәртіптердің бірі, әрбір есеп процессорлық уақытты порциямен немесе q уақыт квантымен (time slice) алады деп болжайды. q уақыт кванты біткеннен кейін есеп процессордан алып тасталынады, процессор келесі есепке беріледі. Алынған есеп орындауға дайын есептер кезегінің соңына қойылады. Жүйе тиімді жұмыс істеу үшін есептерге уақыт квантын бөлетін заңды дұрыс таңдау керек.

Ығыстырмайтын (кооперативті) көпесептілік (FCFS, SJN, SRT тәртіптері) және ығыстыратын көп есептіліктер (RR және оның негізінде құрылған басқалар) бар.

 

9.3 Бақылау сұрақтары

9.3.1 ОЖ қандай мақсатта қызмет  көрсету тәртібін қолданады?

9.3.2 FCFS тәртібі қандай ОЖ-лерде қолданылады?

9.3.3 Қарастырылған қызмет көрсету тәртібінің артықшылығы қандай?

9.3.4 RR тәртібінің көмегімен ығыстырмайтын тәртіптердің қандай  кемшіліктері жойылды?

9.3.5 Басымдылықты ескеру RR қолдану нәтижесіне қалай әсер етеді?

9.3.6 Блокталған процестің орындалу жиілігі дегеніміз не?

9.3.7 SJN және SRT тәртіптерінің жұмысына мысал келтіріңіз.

9.3.8 Екі кезек орнына бір кезек қолданса, FCFS жұмыс істеу сұлбасы қалай өзгереді?

9.3.9 Unix жүйелерінде қызмет көрсету жолы қандай?

10 Зертханалық жұмыс №10. Жадыны басқару

Жұмыстың мақсаты – жадыны қолдануға дағдылану.

10.1 Зертханалық жұмысқа тапсырма

Тапсырманы орындар алдында 10.2 тармақтағы әдістемелік нұсқауларды оқыңыз.

10.1.1    C++ тілінде есептеуге арналған екі өзіндік программа құрастыру, мысалы 0-ден 3,14 интервалындағы  y=sinx, y=cosx функцияларының мәндері үшін. Осы программалардың біреуін шақыратын басқа бір программа құру. Программаны орындау, басқа программаларды жүктеу кезінде <process.h>-тегі exec... функциясы қолданылады. Тапсырма В қосымшасында қарастырылған.

10.1.2    Delphі ортасындағы Shellexecute функциясын қолданып файлдардың бірін ашыңыз. Тапсырмалар қадағалаушысының көмегімен процесс қолданатын жады көлемін анықтау керек.

10.1.3    Бірөлшемді динамикалық массивті құрыңыз және оның элементтерін енгізіп, іріктеу жасаңыз.

10.1.4    А(n,m) матрицасының әрбір баған элементтерінің қосындысын тауып, нәтижесін бірөлшемді массивке жазыңыз. Ол үшін екіөлшемді динамикалық массив құрып, оның элементтерін кездейсоқ сандар генераторының көмегімен енгізіп, бірөлшемді динамикалық массив құрыңыз.

10.1.5    Жүйе жадының бос бөліктерін тығыздау көмегімен жояды. Мәліметтердің сегменттерінің бос кеңістігінің көпшілігі кездейсоқ таралған деп есептейік, ал 32-разрядты сөзді жадыға жазу үшін немесе оқу үшін жұмсалатын уақыт шамасы 10 нс болсын. 128 Мбайт жадыны тығыздау қанша уақыт жүреді? Тығыздалу уақытының бос емес жады көлеміне тәуелділігінің графигін құрыңыз.

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

10.1.7    Командалық жолды қолданып Mem командасы арқылы жүйедегі жадының таратылуы туралы есептеме алыңыз. Mem командасы (команда жолында) – жүктелген программалар  арасында  оперативті жадыны тарату туралы ақпаратты шығаратын команда. Команданы параметрсіз орындау бос және бос емес жады туралы ақпаратты шығарады. /programm кілті программаға жүктелген барлық программалар және жүйелік программа жайлы, ал/debug кілті ішкі жүйелік драйверлер жайлы ақпаратты есептемеге шығарады.

10.1.8    Жады ресурстары және оның күйі жайлы ақпаратты төменгі функция көмегімен алуға болады:

GlobalMemorystatus (var meminfo: TmemoryStatus)

мұнда meminfo – «структуралық» типтегі айнымалы.

Формаға memo компонентін орнатып, ресурс атын көрсетіп сілтемелерді шығару керек. Әрбір уақыт моментінде көрсетілген жады көлемдерін анықтау керек. Жадының өзгеру графигін тұрғызыңыздар.

В қосымшасында «подкачка» файлына мысал келтірілген.

8.1 кесте– «Структура» өрістері

Өріс

Қызметі

dwLength

«Структура» өлшемі. Бұл өріс GlobalMemorystatus функциясын шақыруға дейін толтырылуы керек

dwMemoryLoad

Жадының бос емес жады пайызы (0-ден 100)

dwTotalPhys

Физикалық жады көлемі, байт

dwAvialPhys

Бір уақыттағы бос физикалық жады көлемі, байт

dwTotalPageFile

«Подкачка» файлының көлемі, байт

dwAvialPageFile

Бір уақыттағы бос «подкачка» файлының бос көлемі

dwTotalVirtual

Ағымдық адрестік кеңістіктің көлемі, байт

dwAvialVirtual

Ағымдық адрестік кеңістіктің бос көлемі, байт

10.2 Жалпы ақпарат

Windows ОЖ-сі жадымен жұмыс істеу механизмдерін келесідей іске асырады:

1)    виртуал жады үлкен массивтер және «структуралармен» жұмыс үшін;

2)    проекциаланатын файлдар үлкен мәліметтер ағынымен (әдетте) жұмыс үшін және бір компьютерде мәліметтерді бірнеше процестердің бірге қолдануы үшін;

3)    «куча» – кіші объектілер жиынымен жұмыс үшін.

10.2.1 Динамикалық таратылатын жады. «Куча».

Виртуалды жадыны қолдану барлық кезде ыңғайлы емес. Мысалы, байланысқан тізімдер мен ағаштарды «кучаны» қолданып өңдеген жеңілірек. Динамикалық таратылатын жадының артықшылығы – ол жадыны бөлу ұсақтығын, парақтар көлемін елемеу. Ал кемшілігі жады блоктарын босату, бөлу аз жылдамдықпен орындалады.

«Куча» – адрестік кеңістіктен орын алып қойған (резервтелген) бөлім. Программаның мәліметтер үшін жады облысын алу барысына қарай «кучаны» басқаратын арнайы қадағалаушы (heap manager) парақтық файлдан парақ-парақпен оған физикалық жадыны беріп отырады. Блоктар босағанда кучаны қадағалаушы жүйеге физикалық жадының сәйкес беттерін қайтарып береді.

С++ үшін негізгі жадыда ақпаратты сақтаудың екі әдісі бар:

1)  айнымалыларды қолдану. Айнымалыларға берілетін жады облысы «компиляция» кезінде соларға тіркеледі де программаны орындау кезінде өзгертілмейді;

2)  жадыны динамикалық тарату жүйесін қолдану. Бұл жағдайда біздің программа және стек арасында орналасқан бос жадыдан мәліметтерге жады қажеттілік туындағанда ғана беріледі. Бұл бөлім «куча» деп аталады.

Жадыны динамикалық тарату жүйесі – бұл программа орындалу кезінде қандай да бір жады облысын алу құралы.

Жадыны динамикалық беру дегеніміз – жадыны программа орындалуы кезінде алу, яғни оның орындалуы кезінде айнымалылар құруға болады. Жадыны динамикалық түрде беруге келген сұранысты қанағаттандыру үшін «куча» қолданылады.

адрестердің жоғарғы облысы

Стек

 

Куча

 

Глобалды мәліметтер

адрестердің төменгі облысы

Программа коды

10.1 сурет – Жады облыстарындағы бөлімдердің орналасуы

С++ тілінде жадыны бөлетін және босататын екі оператор бар new  және deleteNew операторы жады облысын динамикалық бөледі. Delete операторы бұрын бөлінген динамикалық жадыны босатады.

айнымалы-сілтеуіш = new  айнымалы типі;

delete айнымалы-сілтеуіш;

Мысал 10.1 – Программада new  және delete операторын қолдану.

#include<iostream.h>

void main()

{int *p;

p=new int;                  // жадыны бөлу

*p=55;                        // сол облысқа 55 орнату

cout<<*p<<endl;       // экранға шығару

delete p;}                    // жадыны босату

 

Мысал 10.2 – Динамикалық беретін жадыны инициализациялау.

#include<iostream.h>

void main()

{int *p;

p=new int (345);             // жадыны инициализациялау                  

cout<<*p<<endl;

delete p;}

Мысал 10.3 – Жадыны массивтерге ерекшелеп беру.

//dinamic memory for odnomerny massiv

#include<iostream.h>

void main()

{int *p; int i;

p=new int [10];                                   // массивтің 10-элементіне жады

for(i=0;i<10;i++) p[i]=10+i;               // массивті толтыру

for(i=0;i<10;i++) cout<<p[i]<<"  ";    // массивті экранға шығару

cout<<endl;

delete []p;}                                          // массивті жою

                                                                              

Динамикалық массивті құрудың бірнеше түрі бар. Ең ыңғайлысы – массивтің екі өлшемі де программаны орындау барысында берілгені.

Мысал 10.4 – Екіөлшемді динамикалық массивті құрудың бір түрі.

 //dinamic memory for 2-merny massiv

 #include<iostream.h>

 void main()

 { int nrow, ncol, i,j;

 cout<<"enter count rows and columns"<<endl;

 cin>>nrow>>ncol;

 int**a=new int *[nrow];

 for(i=0;i<nrow;i++)

 a[i]=new int[ncol];

for(i=0;i<nrow;i++)

 for(j=0;j<ncol;j++)

 cin>>a[i][j];

 for(i=0;i<nrow;i++){

 for(j=0;j<ncol;j++)

 cout<<a[i][j]<<" ";

 cout<<endl;}

 cout<<endl; }

 

10.3 Бақылау сұрақтары

10.3.1 Windows ОЖ-нің жадыны қолдану механизмдері қандай?

10.3.2 Виртуалды программа қандай мақсатта қолданылады?

10.3.3 Проекциялық файлдарды қолдану ерекшеліктері қандай?

10.3.4 ехе файлды жүктеу, орындау процесіне қандай функция қатысады?

10.3.5 CreateProcess, GlobalMemoryStatus функциялары не істейді?

10.3.6 «Куча» дегеніміз не?

10.3.7 Жадыны ерекшелеп, босататын С++ операторларын атаңыз?

10.3.8 Динамикалық массив үшін жады қалай бөлінеді?

 

А қосымшасы

8.1.1 тапсырмасының программасының листингі

Маin программасы:

unit main;

interface

 

uses

  Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,

  Dialogs, StdCtrls, ComCtrls, mythread;

type

  TForm1 = class(TForm)

    RichEdit1: TRichEdit;

    Label1: TLabel;

    Button1: TButton;

    Button2: TButton;

    procedure Button1Click(Sender: TObject);

    procedure Button2Click(Sender: TObject);

  private

    { Private declarations }

    co:TCountObj;

  public

    { Public declarations }

  end;

 

var

  Form1: TForm1;

implementation

{$R *.dfm}

procedure TForm1.Button1Click(Sender: TObject);

begin

co:=TCountObj.create(true);

co.resume;

co.priority:=tpLower;

end;

procedure TForm1.Button2Click(Sender: TObject);

begin

co.terminate;

end;

end.

My Thread ағынның  программасы:

unit myThread;

interface

uses

  Classes,sysutils ;

type

  TCountObj = class(TThread)

  private

    { Private declarations }

     index:integer;

     procedure Updatelabel;

  protected

    procedure Execute; override;

  end;

implementation

  uses main;

{ Important: Methods and properties of objects in visual components can only be

  used in a method called using Synchronize, for example,

      Synchronize(UpdateCaption);

  and UpdateCaption could look like,

    procedure TCountObj.UpdateCaption;

    begin

      Form1.Caption := 'Updated in a thread';

    end;   }

{ TCountObj }

 procedure TCountObj.Updatelabel;

    begin

      Form1.label1.Caption := IntToStr(index);

    end;

procedure TCountObj.Execute;

begin

  { Place thread code here }

  index:=1;

  while index>0 do

  begin

  Synchronize(UpdateLabel);

inc(index);

if index>100000 then

index:=0;

if terminated then exit

end;

end;

end.

 

 

 

Б қосымшасы

8.1.2 тапсырмасының программасының листингі

unit Critsec;

interface

uses

  Windows, Messages, SysUtils, Classes, Graphics, Controls, Forms, Dialogs,

  StdCtrls;

type

  TForm1 = class(TForm)

    Button1: TButton;    ListBox1: TListBox;    ListBox2: TListBox;

    CheckBox1: TCheckBox;

    procedure FormCreate(Sender: TObject);

    procedure FormDestroy(Sender: TObject);

    procedure Button1Click(Sender: TObject);

  end;

var

  Form1 : TForm1;

  crits : boolean;

  sect1 : TRTLCriticalSection;

  global: word;

  // 2 // hmut : thandle;

implementation

{$R *.DFM}

procedure TForm1.FormCreate(Sender: TObject);

begin

    initializeCriticalSection(sect1);

 // 2 //  hmut := createmutex(nil,true,nil);

end;

procedure TForm1.FormDestroy(Sender: TObject);

begin

   DeleteCriticalSection(sect1);

 //2//    closehandle(hmut);

end;

 function Thr1 (p:pointer):longint; stdcall;

 var i,j : integer;

  begin

   form1.listbox1.items.clear;

   for j:=1 to 12 do

    begin

     if crits then

      EnterCriticalSection (sect1);

 //2//  waitforsingleobject(hmut,infinite);

      sleep(10);

      i:=global; i:=i+1;

      form1.listbox1.items.add(intToStr(i));

      global:=i;

     if  crits then

   LeaveCriticalSection(sect1);

 //2//  releasemutex(hmut);

  end;

  end;

  function Thr2 (p:pointer):longint; stdcall;

 var i,j : integer;

  begin

   form1.listbox2.items.clear;

   for j:=1 to 12 do

    begin

     if crits then

   EnterCriticalSection (sect1);

 //2//  waitforsingleobject(hmut,infinite);

     sleep(7);

     i:=global; i:=i+1;

     form1.listbox2.items.add(intToStr(i));

     global:=i;

     if  crits then

   LeaveCriticalSection(sect1);

 //2//   releasemutex(hmut);

   end;

  end;

procedure TForm1.Button1Click(Sender: TObject);

 var thrid : dword;

     thrh1,thrh2: thandle;

begin

  global:= 100;

  if CheckBox1.Checked then crits:= true

                       else crits:= false ;

  thrh1:=CreateThread(nil,0,@Thr1,nil,0,thrid);

  thrh2:=CreateThread(nil,0,@Thr2,nil,0,thrid);

end;

end.

 

В қосымшасы 

10.1.1 тапсырмаға арналған программа листингі

#include<process.h>

#include<iostream.h>

#include<errno.h>

#include<string.h>

#include<conio.h>

int main(char*argv[])

{clrscr();

char ch;

cout<<"to zadach1 - 1"<<endl;

cout<<"to zadach2 - 2"<<endl;

cout<<"to zadach3 - 3"<<endl;

cout<<"to quit - q"<<endl;

cin>>ch;

while(ch!='q')

{switch(ch)

{case '1':execv("task1.exe",argv);

case '2':execv("task2.exe",argv);

case '3':execv("3.exe",argv);

case 'q':exit(1);

default:cout<<"net"<<endl;break;}}

//execv(@rever/exe@?argv)$

return 0; }

 

#include<iostream.h>

#include<math.h>

void main()

{float x,y;int i;

for(i=0;i<=20;i++)

{x=i*0.157;

y=sin(x);

cout<<x<<"   "<<y<<endl;}

cout<<endl;

}

#include<iostream.h>

#include<math.h>

#include<iomanip.h>

void main()

{float x,y; int i;

for(i=0;i<=20;i++)

{x=i*0.157;

y=cos(x);

cout<<setw(5)<<setprecision(3)<<x<<setw(8)<<setprecision(3)<<y<<endl;}

cout<<endl;

}

10.1.8 тапсырмасына программа листингі

procedure TForm1.Button4Click(Sender: TObject);

var meminfo: TmemoryStatus;

begin

meminfo.dwLength:=sizeof(meminfo);

globalmemorystatus(meminfo);

...

memo1.Lines.Add(inttostr(meminfo.dwTotalPageFile));

memo1.Lines.Add(inttostr(meminfo.dwAvailPageFile));

...

end;

end.

 

 

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

1.    Бэкон Д. Операционные системы. - СПб., 2004.

2.    Гордеев В.А. Операционные системы. - СПб., 2007.

3.    Дейтель М.Х. Операционные системы. Основы и принципы. - М., 2006.

4.    Илюшечкин В.М. Операционные системы. - М., 2009,

5.    Иртегов Д.В. Введение в операционные системы. - СПб., 2008.

6.    Карпов В.Е. Основы операционных систем. - М., 2005.

7.    Колесниченко Д. Секреты реестра Windows XP/Vista. - СПб., 2008.

8.    Коньков К.А. Устройство и функционирование ОС Windows. - М., 2008.

9.    Назаров С.В. Операционные среды, системы и оболочки. Основы структурной и функциональной организации. -М., 2007.

10. Олифер В.Г. Сетевые операционные системы. - СПб., 2008.

11. Таненбаум Э. Современные операционные системы. - СПб., 2005.

12. Цилькер Б.Я. Организация ЭВМ и систем. - СПб., 2007.

13. Гордеев А.В., Молчанов А.Ю. Системное программное обеспечение. - СПб., 2002.

14. Финогенов К.Г. Самоучитель по системным функциям MS-DOS. - М., 2001.

15. Желонкин А. В. Основы программирования в интегрированной среде DELPHI. Практикум. – М.: БИНОМ, 2006.

16. Фленов М. Библия Delphi.- СПб.: БХВ – Петербург, 2008.

17. Культин Н. С++ Builder  в задачах и примерах.- СПб.: БХВ-Петербург, 2005.

 

2011ж. жиынтық жоспары, реті 35