«Ғ.ДӘУКЕЕВ АТЫНДАҒЫ АЛМАТЫ ЭНЕРГЕТИКА ЖӘНЕ БАЙЛАНЫС УНИВЕРСИТЕТІ»
коммерциялық емес акционерлік қоғамы
«Автоматтандыру және басқару» кафедрасы
№ 6 Зертханалық жұмыс
Пәні: «Жүйелік программалық жабдықтау және программалау»
Тақырыбы: Зертхана: C++ тілінде динамикалық жадты бөлу және ерекшеліктер
Мамандығы: 6B07108 – «Автоматтандыру және басқару»
Орындаған Екпинов Мухаммед
Тобы: АИСУ 20 - 10
Қабылдаған: Абдилдаева А.
_____________ __________ «______» __________2021ж.
(бағасы) (қолы)
Алматы, 2021
Жұмыстың мақсаты: Windows ОЖ-де ағындарды құру және басқару негіздерін үйрену.
Зерттелетін сұрақтар
1. Ағындардың түрлері, ағын күйлері.
2. CONTEXT құрылымы.
3. Ағынды құру.
4. Ағынның салыстырмалы приоритет.
5. Ағындық функция.
6. Ағындарды басқаруға арналған WinAPI функциялары.
7. Ағынның соңы.
8. Ағынның орындалу уақыты.
Міндет қою
Процесс ағындарын басқару үшін диалогтық терезені қолданатын Win32 көп ағынды қосымшаны жасаңыз. Тілқатысу терезесінің дизайны опциямен, оқытушымен немесе өздігінен орнатылады. Ағындардың жұмысын визуализациялау үшін диалогтың, графиканың тиісті басқару элементтерін қолданыңыз. Қосымшада үш ағын болуы керек. Ағындар туралы жүйелік ақпараттың шығуын қамтамасыз етіңіз (мысалы, CONTEXT өрістері, уақыт параметрлері және т.б.). Есепте ағын күйінің диаграммасын, терезелердің көшірмелерін келтіріңіз.
Теориялық мәліметтер
Ағындардың түрлері
Ағын-CPU өңдейтін командалар тізбегі. Бір процесс аясында бір немесе бірнеше ағын болуы мүмкін. Процесс ресурстарды, ағынды командаларды және өңдеуге арналған деректерді ұсынады. Бір ағынды қамтитын Процесс бір ағынды деп аталады, әйтпесе көп ағынды деп аталады.
Көп ағынды модель ағындардың 2 санатын және олардың комбинациясын қамтиды:
ULT пайдаланушы деңгейіндегі ағындар (User Level Thread);
KLT (Kernel Level Thread) ядро деңгейіндегі ағындар;
UKLT аралас моделі.
ULT бағдарламаның өзімен басқарылады. KLT ядросының өзі ОЖ ядросының қолданбалы бағдарламалау интерфейсі арқылы басқарылады.
Тапсырма бойынша мен класс арқылы үш поток құрдым:Яғни бірінші ағын менде массивтер шығарса,екінші ағын менде белгілі бір сан қайтарады, ал үшінші ағын ол бізде екі санның қосындысын шығарады:
#include
#include
#include
#ifdef _WIN32
#include
#else
#include
#endif
using namespace std; // чтобы работали cout & cin
int main()
{
setlocale(LC_ALL, "Russian"); // русский язык на русском
int a, b;
cout << "Введите два числа" << endl;
cin >> a >> b;
if (a%b != 0) {
cout << "Делится с остатка" << endl;
cout << "Остаток к рассмотрению:";
cout << a%b << endl;
}
else
cout << "Делится без остатком" << endl;
system("pause");// чтоб консоль не закрылась сразу
getch();
}
Программаның алгоритм коды:
1 сурет − Программа
Жауабы:
4 сурет − Программа
Қорытынды
Ағын дегеніміз –бұл с++ ортасындағы параллель орындалатын программисттын орнатткан жүйесі.Бұл қолданушыға бір уакытта бірнеше операциялар жасауға көмек теседі.Ағынның библиотекасы #include болып табылады
Do'stlaringiz bilan baham: |