Скачать презентацию
Идет загрузка презентации. Пожалуйста, подождите
Презентация была опубликована 8 лет назад пользователемЛеонид Кашкаров
1 Պրոցեսների ստեղծումը Linux ՕՀ - ում
2 fork fork ֆունկցիան ստեղծում է նոր ( զավակ ) պրոցես : fork ֆունկցիան ստեղծում է նոր ( զավակ ) պրոցես : #include #include unistd.h #include #include sys/types.h pid_t fork(); pid_t fork();
3 Նկարագրությունը fork- ը ստեղծում է նոր պրոցես կրկնօրինակելով իրեն կանչող պրոցեսը : fork- ը ստեղծում է նոր պրոցես կրկնօրինակելով իրեն կանչող պրոցեսը : Զավակ պրոցեսը տարբերվում է ծնողից հետևյալ կետերով. Զավակ պրոցեսը տարբերվում է ծնողից հետևյալ կետերով. Զավակ պրոցեսը ունի իր սեփական ունիկալ ID- ն Զավակ պրոցեսը ունի իր սեփական ունիկալ ID- ն Զավակի սպասող սիգնալների հերթը դատարկ է Զավակի սպասող սիգնալների հերթը դատարկ է
4 Նկարագրությունը Զավակը չի ժառանգում իր ծնող պրոցեսին ուղղված հրահանգները կախված ընթացիկ դիրեկտորիայի փոփոխման մասին : Զավակը չի ժառանգում իր ծնող պրոցեսին ուղղված հրահանգները կախված ընթացիկ դիրեկտորիայի փոփոխման մասին : Ծնող պրոցեսը նման հրահանգ կարող է անել այն դեպքում երբ աշխատում է որպես սերվիս : Ծնող պրոցեսը նման հրահանգ կարող է անել այն դեպքում երբ աշխատում է որպես սերվիս :
5 fork Ֆունկցիայի վերադարձվող արժեքը Վերադարձվող արժեքի տիպը pid_t է : Վերադարձվող արժեքի տիպը pid_t է : Հաջող ավարտի դեպքում ֆունկցիան վերադարձնում է զավակ պրոցեսի համարը : Եթե ֆունկցիան վերադարձնում է 0 ապա աշխատում է զավակ պրոցեսը : Հաջող ավարտի դեպքում ֆունկցիան վերադարձնում է զավակ պրոցեսի համարը : Եթե ֆունկցիան վերադարձնում է 0 ապա աշխատում է զավակ պրոցեսը : -1 արժեքը վերադարձվում է այն դեպքում, երբ fork– ը չի կարողանում ստեղծել զավակ պրոցես : -1 արժեքը վերադարձվում է այն դեպքում, երբ fork– ը չի կարողանում ստեղծել զավակ պրոցես :
6 fork Ֆունկցիայի վերադարձվող արժեքը Զավակ պրոցեսի անհաջող ստեղծման դեպքում բացի -1 արժեքից համապատասխան արժեք է ընդունում նաև errno փոփոխականը : Զավակ պրոցեսի անհաջող ստեղծման դեպքում բացի -1 արժեքից համապատասխան արժեք է ընդունում նաև errno փոփոխականը :
7 errno- ի հնարավոր արժեքները EAGAIN – հնարավոր չի եղել հատկացնել բավականաչափ հիշողություն և պատճենել ծնող պրոցեսի աղյուսյակները … EAGAIN – հնարավոր չի եղել հատկացնել բավականաչափ հիշողություն և պատճենել ծնող պրոցեսի աղյուսյակները … ENOMEM - հնարավոր չէ հատկացնել հիշողություն քանի որ ՕՀ - ի հիշողությունը սպառված է ENOMEM - հնարավոր չէ հատկացնել հիշողություն քանի որ ՕՀ - ի հիշողությունը սպառված է
8 Օրինակ #include #include int main() { pid_t pID = fork(); pid_t pID = fork(); if (pID == 0) { /* Child process */ } else if (pID < 0) { /* Fail */ } else if (pID < 0) { /* Fail */ } else { /* Parent process */ } else { /* Parent process */ }}
9 Հարցեր
Еще похожие презентации в нашем архиве:
© 2024 MyShared Inc.
All rights reserved.