Оқулық «Федералдық білім беруді дамыту институты»



Pdf көрінісі
бет60/158
Дата01.07.2023
өлшемі3.83 Mb.
#475485
түріОқулық
1   ...   56   57   58   59   60   61   62   63   ...   158
операциялық жуйелер

84 
 
pid_t childPID; 
pid_t retPID = 0; 
int status;
if ( (childPID = fork()) == 0)
{
/* Топ денесі */
execl("/bin/ls", "/bin/ls", "-l", 0);
}
while (!retPID) /* Аталық денесінің жалғасы */
{
retPID = waitpid(childPID, &status, WNOHANG);
}
printf("Child return code %d", WEXITSTATUS(status));
}
Бағдарлама келесі ақпаратты шығарады 

total 17
-rwxr-xr-x 1 nick users 9763 Oct 11 15:41 a.out -
rwxrwxrwx 1 nick users 986 Oct 11 15:20 fork1.c -
rwxrwxrwx 1 nick users 321 Oct 11 15:40 fork2.c 
Child return code 0 
ПРОЦЕСТІҢ КҮЙІ. ПРОЦЕСТІҢ ӨМІРЛІК АЙНАЛЫМЫ 
Процестің жасалуы және аяқталуының уақыты арасында процес 
операциялық жүйеден бірнеше оқиғалардан шабуыл жасалса, соған 
байланысты бірнеше күйге түседі. 
fork() атқарымының көмегімен пайда болғаннан кейін бірден 
процес «құрылу» күйінде болады — процестер кестесінде жазба ол 
үшін әлдеқашан бар, дегенмен процес деректерінің ішкі құрылымы әлі 
инициализацияланбаған. 
Процестің 
алғашқы 
инициализациясы 


85
 
аяқталған бойда, ол «Іске қосуға дайын» күйіне ауысады. Бұл күйде 
процеске барлық қажетті ресурстар қолжетімді, тек процессорлық 
уақыт қолжетімді емес, ол орындалуды күтіп тұрған тапсырмалар 
кезегінде орналасады. Жоспарлағыш процесті таңдаған бойда, ол 
«Ядро режимінде орындалады» күйіне ауысады, яғни операциялық 
жүйе ядросының процестің соңғы өзгерген күйін өңдейтін 
бағдарламалық кодын орындайды. Осы күйден ол «Тапсырма 
режимінде орындалуда» күйіне ауыса алады, ол күйге ауысқанда ол 
өзінің бағдарламалық кодын орындайды. Әр жүйелік шақыртуда 
процес «Ядро режимінде орындалуда» күйіне ауысып отырады (сурет-
4.1).
Жүйелік шақыртулар белгілі бір ресурстарға рұқсат алу үшін 
орындалуы мүмкін, ал ресурстар қолжетімді болмаған жағдайда «Ядро 
режимінде орындалуда» күйінен шығып, «Күту» күйіне түседі. Ол 
күйде процессорлық уақытты босатады және ресурстың босауын 
күтеді. Ресурс қолжетімді болған кезде процес оны ұстап алады, «Іске 
қосуға дайын» күйіне ауысады да, тағы да процес жоспарлағышының 
таңдауын күтеді.
«Ядро режимінде орындалуда» және «Тапсырма режимінде 
орындалуда» күйлерінде жоспарлағыш басқаруды басқа процеске бере 
алады. Бұл ретте басқаруды алып кеткен процес «Іске қосуға дайын» 
күйіне ауысады.
Сурет-4.1. Процестің өмірлік айналымы




Достарыңызбен бөлісу:
1   ...   56   57   58   59   60   61   62   63   ...   158




©dereksiz.org 2024
әкімшілігінің қараңыз

    Басты бет