КОММЕРЦИЯЛЫҚ ЕМЕС АКЦИОНЕРЛІК ҚОҒАМЫ
«ӘБІЛҚАС САҒЫНОВ АТЫНДАҒЫ ҚАРАҒАНДЫ ТЕХНИКАЛЫҚ УНИВЕРСИТЕТІ»
Ақпараттық технологиялар және қауіпсіздік кафедрасы
Аубакирова А.Е.
“ Жүйелік бағдарламалау ”
ПӘНІ БОЙЫНША
ДӘРІСТЕРГЕ
ӘДІСТЕМЕЛІК НҰСҚАУЛАР
Қарағанды 2022
КОММЕРЦИЯЛЫҚ ЕМЕС АКЦИОНЕРЛІК ҚОҒАМЫ
«ӘБІЛҚАС САҒЫНОВ АТЫНДАҒЫ ҚАРАҒАНДЫ ТЕХНИКАЛЫҚ УНИВЕРСИТЕТІ»
«Ақпараттық технологиялар және қауіпсіздік» кафедрасы
Аубакирова А.Е.
“ Жүйелік бағдарламалау ”
ПӘНІ БОЙЫНША
ДӘРІСТЕРГЕ
ӘДІСТЕМЕЛІК НҰСҚАУЛАР
ZhB 3218 Жүйелік бағдарламалау пәні
Bag 06 Бағдарламалау модулі
6B06301 Ақпараттық қауіпсіздік жүйелері білім беру бағдарламасы
Қарағанды 2022
АТҚ кафедрасының отырысында ИТФ сапасын қамтамасыз ету қарастырылған комитетімен мақұлданған
« » ____ _____2022ж. « » _____ ____2022ж.
№_ __ хаттама №_ _ хаттама
АТҚ кафедрасының меңгерушісі ИТФ сапаны қамтамасыз ету
комитетінің төрағасы ______М.М.Коккоз __ _
“ Жүйелік бағдарламалау ”
”
ПӘНІ БОЙЫНША
ДӘРІСТЕРГЕ
ӘДІСТЕМЕЛІК НҰСҚАУЛАР
Бағдарламалау модулі
6B06301 Ақпараттық қауіпсіздік жүйелері білім беру бағдарламасы
ДӘРІС КОНСПЕКТІЛЕРІ
Тақырып 1
Операциялық жүйелер және олардың интерфейстері. Ағындар (Поток) мен процестерді басқару (2 сағат)
Дәріс жоспары
1. Операциялық жүйелердің мақсаты мен түрлері
2. Win32 API санаттары (категориялары)
3. Windows-тағы нысандар (объектілер)
4. Ағындарды диспетчерлеу
5. Процестер мен ағындарды құру
6. Процестер мен ағындарды басқару
Операциялық жүйенің мақсаты пайдаланушыны компьютерлік ресурстарды пайдалану үшін бағдарламалық жасақтамамен қамтамасыз ету және осы ресурстарды пайдаланушылар арасында тиімді бөлу болып табылады. Бұдан шығатыны, операциялық жүйенің негізгі функциялары-компьютер ресурстарын басқару және осы ресурстарды басқару немесе жоспарлау.
Негізгі қызметтердің функциялары қосымшаларға компьютер ресурстарына қол жетімділікті қамтамасыз етеді. Жалпы басқару кітапханасы Common Control Library категориясында қосымшаларда жиі қолданылатын терезелері бар. Графикалық құрылғылардың интерфейсі графиканы дисплейге, принтерге және басқа графикалық құрылғыларға шығаруға мүмкіндік береді. Желілік қызметтер компьютерлік желілерде компьютерлердің жұмысында қолданылады. Пайдаланушы интерфейсі ақпаратты енгізу-шығару терезелерін қолдана отырып, пайдаланушының қосымшамен өзара әрекеттесуіне мүмкіндік береді. Операциялық жүйенің санаттары (категориялары) және ол жұмыс істейтін компьютердің жабдықтарының мақсатына байланысты операциялық жүйелердің бірнеше түрін анықтауға болады.
Операциялық жүйенің және ол жұмыс істейтін компьютердің жабдықтарының мақсатына байланысты операциялық жүйелердің бірнеше түрін анықтауға болады. Егер амалдық жүйе тек бір процессоры бар компьютерде жұмыс істей алатын болса, онда мұндай операциялық жүйе бірпроцессорлы деп аталады. Егер амалдық жүйе бірнеше процессоры бар компьютерде де жұмыс істей алатын болса, онда мұндай Операциялық жүйе мультипроцессор деп аталады.
Win32 API қолданбалы бағдарламалау интерфейсі - бұл Microsoft операциялық жүйелерінде жұмыс істейтін қосымшаларды бағдарламалау үшін қолданылатын функциялар мен класстардың жиынтығы.
Функционалды түрде Win32 API келесі санаттарға бөлінеді:
Base Services базалық сервистер (базовые сервисы);
Common Control Library жалпы басқару кітапханасы (библиотека общих элементов управления);
Graphics Device Interface (графикалық құрылғы интерфейсі);
Network Services желілік қызметтер (сетевые сервисы);
User Interface пайдаланушы интерфейсі (интерфейс пользователя);
Windows NT Access Control (Windows NT үшін қол жеткізуді басқару);
Windows Shell - Windows қабығы (Windows оболочка);
Windows System Information (Windows жүйесі туралы ақпарат).
Windows NT Access Control қорғалған объектілерге кіруді бақылау және шектеу арқылы ақпаратты қорғау үшін қолданылатын функцияларды қамтиды. Windows Shell және Windows System Information санаттары сәйкесінше Windows амалдық жүйесінің қабығымен және конфигурациясымен жұмыс істеуге арналған функцияларды қамтиды.
Windows жүйесіндегі объект-бұл жүйелік ресурсты білдіретін деректер құрылымы. 2Windows операциялық жүйелері қолданбаға үш санаттағы нысандарды ұсынады:
* User (Пайдаланушының интерфейс (объектісі) нысандары);
* Graphics Device Interface (графикалық құрылғылар интерфейсі нысандары);
* Kernel (ядро нысандары).
User нысаны (категориясы)қолданушымен интерфейс үшін пайдаланатын нысандарды қамтиды. Мұндай нысандарға, мысалы, терезелер мен курсорлар кіреді. Graphics Device Interface санаты ақпаратты графикалық құрылғыларға шығару үшін қолданылатын нысандарды қамтиды. Мұндай нысандарға, мысалы, щеткалар мен қауырсындар жатады. Ядро санатына Windows амалдық жүйесінің ядро нысандары кіреді. Мұндай нысандарға, мысалы, файлдар мен арналар кіреді.
Қосымшаның объектілерге тікелей қолжетімділігі жоқ, керісінше оларға жанама түрде жүгінеді. Нысан дескрипторы - бұл жүйеде сақталатын және объектінің мекен-жайы мен объектінің түрін анықтайтын құралдары бар кестедегі жазба. Нысан дескрипторлары операциялық жүйемен жасалады және объектілерді құратын Win32 API функцияларымен қайтарылады.
Бағдарлама нұсқауларының орындалу реті Бағдарлама ішіндегі басқару ағыны деп аталады. Орындау кезінде ағынға қол жетімді жадтың мазмұны ағын контексті деп аталады.
Мультипрограммалық операциялық жүйелердегі ағындарға қызмет көрсетудің жалпы тәсілі келесідей. Процессордың жұмыс уақыты жұмыс үшін ағындарға бөлінетін кванттарға (интервалдарға) бөлінеді. Уақыт квантынан кейін ағынның орындалуы үзіліп, процессор басқа ағынға тағайындалады. Ағындар арасында уақыт кванттарын бөлу ағындарды басқару деп аталатын арнайы бағдарламамен айналысады.
Ағын менеджері процессорды басқа ағынның орындалуына ауыстырған кезде, ол келесі әрекеттерді орындауы керек:
* үзілген ағын мәнмәтінін (контекстін) сақтау;
* үзіліс кезінде іске қосылған ағынның мәнмәтінін қалпына келтіріңіз;
* басқаруды іске қосылған ағынға өткізіңіз.
Процесс немесе тапсырма - бұл компьютерде орындалатын қосымша, оны орындау үшін қажет барлық ресурстармен бірге. Процесті орындау үшін қажет барлық ресурстар процестің контексті деп те аталады. Процесс міндетті түрде келесі ресурстарға жатады:
* процестің адрестік кеңістігі;
* процесс контекстінде орындалатын ағындар.
Сондай-ақ, Windows-тағы ағын-бұл операциялық жүйе қосымшаны орындау үшін процессор уақытын бөлетін ядро нысаны.
Windows операциялық жүйелерінде екі түрлі ағындар бар:
* жүйелік ағындар;
* пайдаланушы ағындары.
Жүйелік ағындар операциялық жүйенің әртүрлі қызметтерін орындайды және операциялық жүйенің өзегімен іске қосылады.
Пайдаланушы ағындары пайдаланушының мәселелерін шешуге қызмет етеді және Қолданба арқылы іске қосылады.
Жұмыс істейтін қосымшада екі түрлі ағындар бар:
* жұмыс ағындары (working threads);
* пайдаланушы интерфейсінің ағындары (user interface threads).
Жұмыс ағындары қолданбада әртүрлі фондық тапсырмаларды орындайды. Пайдаланушы интерфейсінің ағындары терезелермен байланысты және сол терезелерге келетін хабарламаларды өңдейді. Әрбір бағдарламада кем дегенде бір ағын бар, ол бастапқы (primary) немесе негізгі (main) ағын деп аталады. Консольдік қосымшаларда бұл негізгі функцияны орындайтын main. Графикалық қосымшаларында бұл WinMain функциясын орындайтын ағын.
Ағын CreateThread функциясы арқылы жасалады. Ағын ExitThread функциясын шақырумен аяқталады. Бұл функция ағын функциясынан мәнді қайтарған кезде анық немесе анық шақырылуы мүмкін. Бір ағын TerminateThread функциясын шақыру арқылы басқа ағынды аяқтай алады. Әр ағынның орындалуын SuspendThread функциясын шақыру арқылы тоқтатуға болады. Бұл функция тоқтата тұру есептегішінің мәнін 1-ге арттырады. Ағынның орындалуын қалпына келтіру үшін resumethread функциясы қолданылады, ол тоқтата тұру есептегішінің мәнін 1-ге төмендетеді. Ағын тоқтата тұру есептегішінің мәні нөлге тең болған жағдайда ғана орындалуы мүмкін. Ағын Sleep функциясын белгілі бір уақытқа шақыру арқылы оның орындалуын кешіктіруі мүмкін.
Сондай-ақ, Windows-та процесс орындалатын қолданба пайдаланатын жүйелік ресурстарға ие ядро нысанын білдіреді. Windows жүйесіндегі жаңа процесс CreateProcess функциясын шақыру арқылы жасалады. Процесс барлық процесс ағындары аяқталған кезде ExitProcess функциясын шақыру арқылы жұмысын аяқтай алады. TerminateProcess функциясын шақыру арқылы бір процесті басқасымен аяқтауға болады.
Процестердің басымдылығы оларды CreateProcess функциясы жасаған кезде орнатылады.
* IDLE_PRIORITY_CLASS - фондық процестер клаcсы;
* BELOW_NORMAL_PRIORITY_CLASS - процесс класcы қалыптыдан төмен;
* NORMAL_PRTORITY_CLASS-қалыпты процестер клаcсы;
* ABOVE_NORMAL_PRIORITY_CLASS-процесс класcы қалыптыдан жоғары;
* HIGH_PRIORITY_CLASS-жоғары басымдықты процестер класcы;
* REAL_TIME_PRIORITY_CLASS - нақты уақыт процестерінің класcы.
Процестің басымдылығын SetPriorityClass функциясы арқылы өзгертуге болады, процестің басымдылығын GetPriorityClass функциясы арқылы білуге болады.
Процессорға уақытты бөлу кезінде жүйе ескеретін ағынның басымдылығы негізгі базалық (base) немесе ағынның негізгі басымдығы деп аталады. Барлығы 32 базалық негізгі басымдық бар — 0-ден 31-ге дейін. Әрбір негізгі басымдық үшін ағындардың кезегі бар. Ағынның негізгі басымдылығы процестің басымдылығы мен ағынның басымдық деңгейінің қосындысы ретінде анықталады. Соңғысы мәндерді қабылдауы мүмкін:
* THREAD_PRIORITY_LOWEST-төменгі басымдық;
* THREAD_PRIORITY_BELOW_NORMAL-қалыптыдан төмен басымдық;
* THREAD_PRIORITY_NORMAL-қалыпты басымдық;
* Thread_priority_above_normal-қалыптыдан жоғары басымдық;
* THREAD_PRIORITY_HIGHEST-жоғары басымдық.
* THREAD_PRIORTTY_TDLE - фондық ағынның басымдығы;
* THREAD_PRIORITY_TIME_CRITICAL-нақты уақыт ағынының басымдығы.
Ағынның басымдылығын өзгерту үшін Getthreadpriority функциясын шақыру арқылы ағынның басымдық деңгейін білу үшін SetThreadPriority функциясы қолданылады.
Достарыңызбен бөлісу: |