Главная » Просмотр файлов » А.В. Столяров - Введение в операционные системы

А.В. Столяров - Введение в операционные системы (1152218), страница 31

Файл №1152218 А.В. Столяров - Введение в операционные системы (А.В. Столяров - Введение в операционные системы) 31 страницаА.В. Столяров - Введение в операционные системы (1152218) страница 312019-08-01СтудИзба
Просмтор этого файла доступен только зарегистрированным пользователям. Но у нас супер быстрая регистрация: достаточно только электронной почты!

Текст из файла (страница 31)

 ýòîì ñëó÷àå âûçîâ âîçâðàùàåò 0.• Íà êàêîé-ëèáî èç äåñêðèïòîðîâ, âõîäÿùèõ â ìíîæåñòâî readfds, ïðèøëè äàííûå, êîòîðûå ìîæíî ïðî÷èòàòü âûçîâîì read() (òî åñòü âûçîâread() íå çàáëîêèðóåòñÿ); â ñëó÷àå ñëóøàþùåãî ñîêåòà â ðîëè äàííûõâûñòóïàþò çàïðîñû íà ñîåäèíåíèå, òî åñòü, ñîîòâåòñòâåííî, ìîæíî ãàðàíòèðîâàòü, ÷òî âûçîâ accept() íå çàáëîêèðóåòñÿ; â ñëó÷àå íåïîòîêîâûõ ñîêåòîâ ãàðàíòèðóåòñÿ, ÷òî íå áóäåò çàáëîêèðîâàí ñîîòâåòñòâóþùèé âûçîâ recvfrom() è ò.ï. Ñëåäóåò îáðàòèòü âíèìàíèå, ÷òî ñèòóàöèÿêîíåö ôàéëà òàêæå èñòîëêîâûâàåòñÿ êàê ãîòîâíîñòü ñîêåòà íà ÷òåíèå, ïîñêîëüêó â ýòîé ñèòóàöèè âûçîâ read() òàêæå íå áëîêèðóåòñÿ.• Êàêîé-ëèáî èç äåñêðèïòîðîâ, âõîäÿùèõ â writefds, ãîòîâ ê íåìåäëåííîé çàïèñè, òî åñòü, åñëè ïðèìåíèòü ê íåìó âûçîâ write(), send() èëèåùå êàêîé-òî ïîäîáíûé, òî îí íå çàáëîêèðóåò ïðîöåññ.

Ñëåäóåò îòìåòèòü, ÷òî áîëüøèíñòâî äåñêðèïòîðîâ, îòêðûòûõ íà çàïèñü, ê çàïèñèãîòîâû â ëþáîé ìîìåíò, òàê ÷òî, åñëè âíåñòè êàêîé-òî èç íèõ â ìíîæåñòâî writefds, âûçîâ âåðíåò óïðàâëåíèå íåìåäëåííî. Îáû÷íî ïàðàìåòðwritefds èñïîëüçóåòñÿ ïðè ïåðåäà÷å â ñåòü áîëüøèõ îáúåìîâ äàííûõ,êîãäà áóôåð èñõîäÿùåé èíôîðìàöèè ìîæåò ïåðåïîëíèòüñÿ è ñòàòü ïðè÷èíîé áëîêèðîâàíèÿ ïðîöåññà íà âûçîâå write().• Íà êàêîì-ëèáî èç äåñêðèïòîðîâ, âõîäÿùèõ âî ìíîæåñòâî exceptfds,âîçíèêëà èñêëþ÷èòåëüíàÿ ñèòóàöèÿ.

Íà ñàìîì äåëå, ýòî âîçìîæíî òîëüêî íà ñåòåâûõ ñîêåòàõ è òîëüêî â ñëó÷àå èñïîëüçîâàíèÿ ìåõàíèçìà OOB(out-of-band), à îí èñïîëüçóåòñÿ ñðàâíèòåëüíî ðåäêî. Ïîýòîìó è ñàì ïàðàìåòð exceptfds èñïîëüçóåòñÿ ðåäêî, îáû÷íî óêàçûâàåòñÿ NULL. ïîñëåäíèõ òðåõ ñëó÷àÿõ âûçîâ select() âîçâðàùàåò êîëè÷åñòâî äåñêðèïòîðîâ, èçìåíèâøèõ ñòàòóñ.Âñå ìíîæåñòâà äåñêðèïòîðîâ, ïåðåäàííûõ âûçîâó select(), â ýòîì ñëó÷àåèçìåíÿþòñÿ: â íèõ îñòàþòñÿ òîëüêî òå äåñêðèïòîðû, ñòàòóñ êîòîðûõ èçìåíèëñÿ.

Òàêèì îáðàçîì, ïðîâåðèâ ñ ïîìîùüþ ìàêðîñà FD_ISSET èíòåðåñóþùèå íàñäåñêðèïòîðû, ìîæíî óçíàòü, íà êàêîì èç íèõ òðåáóåòñÿ âûïîëíèòü îïåðàöèþ÷òåíèÿ (èëè ïðèíÿòèÿ ñîåäèíåíèÿ, èëè çàïèñè, è ò.ï.)Òàêèì îáðàçîì, ðàáîòó ñ âûçîâîì select() ìîæíî ïîñòðîèòü ïî íèæåïðèâåäåííîé ñõåìå.  ïðèâåäåííîì êîäå ïðåäïîëàãàåòñÿ, ÷òî íîìåð ñëóøàþùåãîñîêåòà õðàíèòñÿ â ïåðåìåííîé ls; îðãàíèçîâàòü õðàíåíèå äåñêðèïòîðîâ êëèåíòñêèõ ñîêåòîâ ìîæíî ñàìûìè ðàçíûìè ñïîñîáàìè, â çàâèñèìîñòè îò çàäà÷è.Êðîìå òîãî, ïðåäïîëàãàåòñÿ, ÷òî out-of-band data íå èñïîëüçóåòñÿ, è ÷òî ïåðåäàâàåìûå â ñåòü îáúåìû äàííûõ íåâåëèêè, òàê ÷òî èñïîëüçóåòñÿ òîëüêîìíîæåñòâî readfds.138for(;;) { /* ãëàâíûé öèêë */int fd;fd_set readfds;int max_d = ls;/* èçíà÷àëüíî ïîëàãàåì, ÷òî ìàêñèìàëüíûì ÿâëÿåòñÿíîìåð ñëóøàþùåãî ñîêåòà */FD_ZERO(&readfds); /* î÷èùàåì ìíîæåñòâî */FD_SET(ls, &readfds);/* ââîäèì â ìíîæåñòâîäåñêðèïòîð ñëóøàþùåãî ñîêåòà *//* îðãàíèçóåì öèêë ïî ñîêåòàì êëèåíòîâ */for(fd=/*äåñêðèïòîð ïåðâîãî êëèåíòà*/ ;/*êëèåíòû åùå íå èñ÷åðïàíû?*/;fd=/*äåñêðèïòîð ñëåäóþùåãî êëèåíòà*/){/* çäåñü fd - î÷åðåäíîé êëèåíòñêèé äåñêðèïòîð *//* âíîñèì åãî â ìíîæåñòâî */FD_SET(fd, &readfds);/* ïðîâåðÿåì, íå áîëüøå ëè îí,íåæåëè òåêóùèé ìàêñèìóì */if(fd > max_d) max_d = fd;}timeout.tv_sec = /*çàïîëíÿåì*/;timeout.tv_usec = /*òàéì-àóò*/;int res = select(max_d+1, &readfds, NULL, NULL, NULL);if(res < 1) {if(errno != EINTR) {/* îáðàáîòêà îøèáêè, ïðîèñøåäøåé â select()'å */} else {/* îáðàáîòêà ñîáûòèÿ "ïðèøåäøèé ñèãíàë */}continue; /* äåñêðèïòîðû ïðîâåðÿòü áåñïîëåçíî */}if(res == 0) {/* îáðàáîòêà ñîáûòèÿ "òàéì-àóò" */continue; /* äåñêðèïòîðû ïðîâåðÿòü áåñïîëåçíî */}if(FD_ISSET(ls, &readfds)) {139}}/* ïðèøåë íîâûé çàïðîñ íà ñîåäèíåíèå *//* çäåñü åãî íåîáõîäèìî ïðèíÿòüâûçîâîì accept() è çàïîìíèòüäåñêðèïòîð íîâîãî êëèåíòà *//* òåïåðü ïåðåáèðàåì âñå êëèåíòñêèå äåñêðèïòîðû */for(fd=/*äåñêðèïòîð ïåðâîãî êëèåíòà*/ ;/*êëèåíòû åùå íå èñ÷åðïàíû?*/;fd=/*äåñêðèïòîð ñëåäóþùåãî êëèåíòà*/){if(FD_ISSET(fd, &readfds)) {/* ïðèøëè äàííûå îò êëèåíòà ñ ñîêåòîì fd *//* ÷èòàåì èõ âûçîâîì read() èëèrecv() è îáðàáàòûâàåì */}}/* êîíåö ãëàâíîãî öèêëà */Ñïîñîá ïîñòðîåíèÿ ïðîãðàìì, ïðè êîòîðîì ïðîãðàììà èìååòãëàâíûé öèêë, îäíà èòåðàöèÿ êîòîðîãî ñîîòâåòñòâóåò íàñòóïëåíèþ íåêîòîðîãî ñîáûòèÿ èç îïðåäåëåííîãî ìíîæåñòâà, à âñå äåéñòâèÿ ïðîãðàììû ïîñòðîåíû êàê ðåàêöèÿ íà ñîáûòèå, íàçûâàåòñÿñîáûòèéíî-óïðàâëÿåìûì ïðîãðàììèðîâàíèåì (àíãë.

event-drivenprogramming)2525.1Ãðóïïû ïðîöåññîâ è ñåàíñû â ÎÑ UnixÎáùèå ñâåäåíèÿÏðîöåññû â ÎÑ Unix îáúåäèíÿþòñÿ â ãðóïïû ïðîöåññîâ è â ñåàíñû.Ñåàíñû èçíà÷àëüíî çàäóìûâàëèñü äëÿ îáúåäèíåíèÿ âñåõ ïðîöåññîâ, çàïóùåííûõ ïîëüçîâàòåëåì ñ îäíîãî êîíêðåòíîãî òåðìèíàëà. Òàêèì îáðàçîì,ñåàíñ ìîæåò èìåòü íå áîëåå îäíîãî óïðàâëÿþùåãî òåðìèíàëà, è òåðìèíàë íåìîæåò áûòü óïðàâëÿþùèì äëÿ áîëåå ÷åì îäíîãî ñåàíñà. Êàê ìîæíî äîãàäàòüñÿ, ñåàíñ îáû÷íî ñîçäàåòñÿ êàê ðàç â òîò ìîìåíò, êîãäà ïîëüçîâàòåëü âîøåë âñèñòåìó ïî òåðìèíàëüíîé ëèíèè èëè, íàïðèìåð, çàïóñòèë ïðîãðàììó xterm. ðàìêàõ îäíîãî ñåàíñà ïðîöåññû ìîãóò áûòü ðàçáèòû íà ãðóïïû.

Ãðóïïàïðîöåññîâ âõîäèò â ñåàíñ öåëèêîì, òî åñòü â îäíó ãðóïïó íå ìîãóò âõîäèòü1402573группа 2573сеанс257325992581426172597нссеа2762582группа 258130772764группа 2617Ðèñ. 24: Ñåàíñû è ãðóïïû ïðîöåññîâïðîöåññû èç ðàçíûõ ñåàíñîâ. Ìèíèìóì îäíà ãðóïïà â ñåàíñå âñåãäà ïðèñóòñòâóåò, îíà ñîçäàåòñÿ ïðè ñîçäàíèè ñåàíñà. êàæäîì ñåàíñå, èìåþùåì óïðàâëÿþùèé òåðìèíàë, îäíà ãðóïïà ïðîöåññîâ íàçûâàåòñÿ îñíîâíîé ãðóïïîé 2 , à âñå îñòàëüíûå ãðóïïû òîãî æå ñåàíñà,åñëè òàêîâûå åñòü, − ôîíîâûìè ãðóïïàìè.Ãðóïïû ïðîöåññîâ èçíà÷àëüíî çàäóìàíû äëÿ îáúåäèíåíèÿ ïðîöåññîâ, ðàáîòàþùèõ íàä îáùåé çàäà÷åé.

Êîìàíäíûé èíòåðïðåòàòîð îáû÷íî ñîçäàåò íîâóþ ãðóïïó ïðîöåññîâ äëÿ âûïîëíåíèÿ êàæäîé ïîäàííîé êîìàíäû, òàê ÷òîâñå ïðîöåññû, ïîðîæäåííûå â îòâåò íà êàæäóþ êîíêðåòíóþ êîìàíäó ïîëüçîâàòåëÿ, îêàçûâàþòñÿ îáúåäèíåíû â îäíó ãðóïïó (â ÷àñòíîñòè, ïðè çàïóñêåêîíâåéåðà âñå åãî ýëåìåíòû îáúåäèíÿþòñÿ â ãðóïïó).Ïðîöåññ íàñëåäóåò ïðèíàäëåæíîñòü ê ñåàíñó è ãðóïïå îò ñâîåãî íåïîñðåäñòâåííîãî ïðåäêà (êàê óæå ãîâîðèëîñü, ïðè âûçîâå fork() ïàðàìåòðû sidè pgid íå èçìåíÿþòñÿ). Îäíàêî ïðîöåññ ìîæåò ïðè æåëàíèè óéòè â íîâóþãðóïïó èëè äàæå â íîâûé ñåàíñ. Ãîâîðÿ êîíêðåòíåå, ïðîöåññ ìîæåò:• ñîçäàòü ñåàíñ (ïðè ýòîì â ýòîì ñåàíñå ñîçäàåòñÿ è ãðóïïà, ïðè÷åì ïðîöåññ, ñîçäàâøèé ñåàíñ, àâòîìàòè÷åñêè ñòàíîâèòñÿ ëèäåðîì è ñåàíñà, èãðóïïû; îòìåòèì, ÷òî èäåíòèôèêàòîð ñåàíñà è èäåíòèôèêàòîð ãðóïïûðàâíû èäåíòèôèêàòîðó ïðîöåññà, èõ ñîçäàâøåãî);• ñîçäàòü ãðóïïó â ðàìêàõ òîãî æå ñåàíñà (ïðè ýòîì ïðîöåññ ñòàíîâèòñÿëèäåðîì ãðóïïû);2 Àíãëèéñêèé îðèãèíàë ýòîãî òåðìèíà − foreground group, ÷òî ìîæíî áóêâàëüíî ïåðåâåñòè êàê ãðóï-ïà ïåðåäíåãî ïëàíà; â ðóññêîÿçû÷íîé ëèòåðàòóðå âñòðå÷àåòñÿ òàêæå òåðìèí141òåêóùàÿ ãðóïïà• ïåðåéòè â äðóãóþ ãðóïïó òîãî æå ñàíñà.Îòìåòèì åùå îäèí ìîìåíò: ïðîöåññ íå ìîæåò ñîçäàòü íîâûé ñåàíñ, åñëè îíóæå ÿâëÿåòñÿ ëèäåðîì ñåàíñà (òî åñòü åãî sid ñîâïàäàåò ñ pid'îì) è íå ìîæåòñîçäàòü íîâóþ ãðóïïó, åñëè óæå ÿâëÿåòñÿ ëèäåðîì ãðóïïû (òî åñòü åãî pgidñîâïàäàåò ñ pid'îì).Âñå ýòè ìåõàíèçìû ââåäåíû â ÎÑ Unix äëÿ îáëåã÷åíèÿ óïðàâëåíèÿ ïðîöåññàìè.

Òàê, åñëè ïîëüçîâàòåëüñêàÿ ñåññèÿ ðàáîòû ñ òåðìèíàëîì ïî òîéèëè èíîé ïðè÷èíå çàâåðøèëàñü (íàïðèìåð, ïîëüçîâàòåëü âûêëþ÷èë òåðìèíàë, ðàçîðâàë ñîåäèíåíèå óäàëåííîãî äîñòóïà èëè çàêðûë îêíî ïðîãðàììûxterm), òî âñåì ïðîöåññàì ñåàíñà, ñâÿçàííîãî ñ äàííûì òåðìèíàëîì, ðàññûëàåòñÿ ñèãíàë SIGHUP.×òî êàñàåòñÿ ãðóïï, òî îíè, íàïðèìåð, èñïîëüçóþòñÿ ïðè ðàññûëêå ñèãíàëà SIGINT ïî íàæàòèþ Ctrl-C: ñèãíàë ïîëó÷àþò òîëüêî ïðîöåññû îñíîâíîéãðóïïû, à ôîíîâûå ïðîäîëæàþò ðàáîòó.Áîëåå òîãî, ñàì ïî ñåáå ââîä ñ òåðìèíàëà ðàçðåøåí òîëüêî ïðîöåññàì îñíîâíîé ãðóïïû. Ôîíîâûé ïðîöåññ ïðè ïîïûòêå ÷òåíèÿ ñ òåðìèíàëà ïðèîñòàíàâëèâàåòñÿ ñèãíàëîì SIGTTIN.Âîîáùå, ìåõàíèçì ñåàíñîâ è ãðóïï ñîçäàí â îñíîâíîì äëÿ òîãî, ÷òîáû ìîæíî áûëî óñòàíîâèòü, êàêèõ ïðîöåññîâ íåïîñðåäñòâåííî êàñàþòñÿ äåéñòâèÿ,âûïîëíÿåìûå ïîëüçîâàòåëåì ñ òåðìèíàëîì. ðàìêàõ îäíîãî è òîãî æå ñåàíñà ïðîöåññ ìîæåò ïåðåéòè â äðóãóþ ãðóïïó. Ëþáàÿ èç ãðóïï ìîæåò áûòü â ëþáîé ìîìåíò íàçíà÷åíà îñíîâíîé, òîãäàáûâøàÿ îñíîâíàÿ ñòàíîâèòñÿ ôîíîâîé.25.2Óïðàâëåíèå ñåàíñàìè è ãðóïïàìèÐàññìîòðèì êðàòêî ñèñòåìíûå âûçîâû è ôóíêöèè, èìåþùèå îòíîøåíèåê óïðàâëåíèþ ñåàíñàìè è ãðóïïàìè.

Óçíàòü äëÿ ïðîöåññà ïàðàìåòðû sid èpgid ìîæíî ñ ïîìîùüþ âûçîâîâint getsid(int pid);int getpgid(int pid);ãäå pid − èäåíòèôèêàòîð èíòåðåñóþùåãî íàñ ïðîöåññà. Ñïåöèàëüíîå çíà÷åíèå 0 îçíà÷àåò âûçûâàþùèé ïðîöåññ. Îòìåòèì, ÷òî èäåíòèôèêàòîð ñåàíñàñîâïàäàåò ñ èäåíòèôèêàòîðîì (pid) ïðîöåññà, ñîçäàâøåãî ýòîò ñåàíñ; îáû÷íîèäåíòèôèêàòîð ãðóïïû òàêæå ñîâïàäàåò ñ pid'îì ñîçäàâøåãî ãðóïïó ïðîöåññà. Ñîîòâåòñòâóþùèå ïðîöåññû íàçûâàþòñÿ ëèäåðàìè, ñîîòâåòñòâåííî, ñåàíñàè ãðóïïû.Ñîçäàíèå íîâîãî ñåàíñà ïðîèçâîäèòñÿ âûçîâîì142int setsid();Âûçîâ íå ïðîõîäèò â ñëó÷àå, åñëè äàííûé ïðîöåññ óæå ÿâëÿåòñÿ ëèäåðîìñåàíñà èëè õîòÿ áû ãðóïïû. ×òîáû ãàðàíòèðîâàòü óñïåøíîå ñîçäàíèå ñåàíñà,ñëåäóåò ñäåëàòü fork() è çàâåðøèòü ðîäèòåëüñêèé ïðîöåññ, ñìåíèâ, òàêèìîáðàçîì, ñâîé pid:if(fork()>0) exit(0);setsid();Ïðè óñïåøíîì âûïîëíåíèè setsid() áóäóò ñîçäàíû îäíîâðåìåííî íîâûé ñåàíñ è íîâàÿ ãðóïïà, èäåíòèôèêàòîðû êîòîðûõ áóäóò ñîâïàäàòü ñ pid'îì ïðîöåññà, âûïîëíèâøåãî setsid(), ïðè÷åì âûçâàâøèé ïðîöåññ îêàæåòñÿ åäèíñòâåííûì ÷ëåíîì è òîãî, è äðóãîãî.Êàê óæå ãîâîðèëîñü, êàæäûé òåðìèíàë ìîæåò áûòü óïðàâëÿþùèì äëÿíå áîëåå ÷åì îäíîãî ñåàíñà, è êàæäûé ñåàíñ ìîæåò èìåòü íå áîëåå îäíîãîóïðàâëÿþùåãî òåðìèíàëà.

Ïðè óñïåøíîì âûïîëíåíèè setsid() ïðîöåññ òåðÿåò óïðàâëÿþùèé òåðìèíàë, äàæå åñëè ïðè ýòîì ó íåãî îñòàþòñÿ ñâÿçàííûåñ òåðìèíàëîì îòêðûòûå äåñêðèïòîðû. ×òîáû ñíîâà ïîëó÷èòü óïðàâëÿþùèéòåðìèíàë, ïðîöåññó ñëåäóåò îòêðûòü âûçîâîì open() ôàéë òåðìèíàëüíîãîóñòðîéñòâà, íå ÿâëÿþùåãîñÿ óïðàâëÿþùèì íè äëÿ êàêîãî ñåàíñà.Äëÿ ñìåíû ãðóïïû ñóùåñòâóåò âûçîâint setpgid(int pid, int pgid);Ïàðàìåòð pid çàäàåò íîìåð ïðîöåññà, êîòîðûé íóæíî ïåðåâåñòè â äðóãóþãðóïïó; pgid − íîìåð ýòîé ãðóïïû.

Ñìåíèòü ãðóïïó ïðîöåññ ìîæåò ëèáîñàìîìó ñåáå, ëèáî ñâîåìó ïðÿìîìó ïîòîìêó, åñëè òîëüêî ýòîò ïîòîìîê åùå íåâûïîëíèë âûçîâ exec. Ãðóïïó ìîæíî ìåíÿòü ëèáî íà óæå ñóùåñòâóþùóþ âðàìêàõ äàííîãî ñåàíñà, ëèáî ìîæíî çàäàòü pgid ðàâíûì pid, â ýòîì ñëó÷àåñîçäàåòñÿ íîâàÿ ãðóïïà, à ïðîöåññ ñòàíîâèòñÿ åå ëèäåðîì.Åñëè ó ñåàíñà åñòü óïðàâëÿþùèé òåðìèíàë, ìîæíî óêàçàòü äðàéâåðó òåðìèíàëà, êàêóþ ãðóïïó ïðîöåññîâ ñ÷èòàòü îñíîâíîé.

Ýòî äåëàåòñÿ ñ ïîìîùüþáèáëèîòå÷íîé ôóíêöèèint tcsetpgrp(int fd, int pgrp);Çäåñü fd − ôàéëîâûé äåñêðèïòîð, êîòîðûé äîëæåí áûòü ñâÿçàí ñ óïðàâëÿþùèì òåðìèíàëîì (îáû÷íî èñïîëüçóåòñÿ 0 èëè 1). Äåñêðèïòîð íåîáõîäèì,ïîòîìó ÷òî ñìåíà îñíîâíîé ãðóïïû ðåàëèçóåòñÿ ÷åðåç âûçîâ ioctl() äëÿòåðìèíàëà êàê ëîãè÷åñêîãî óñòðîéñòâà.14325.3Ïðîöåññû-äåìîíûÏîä äåìîíàìè ïîíèìàþòñÿ ïðîöåññû, íå ïðåäíàçíà÷åííûå äëÿ íåïîñðåäñòâåííîãî âçàèìîäåéñòâèÿ ñ ïîëüçîâàòåëÿìè ñèñòåìû. Ïðèìåðàìè äåìîíîâìîãóò ñëóæèòü ïðîãðàììû-ñåðâåðà, îáñëóæèâàþùèå WWW èëè ýëåêòðîííóþ ïî÷òó. Ñóùåñòâóþò äåìîíû è äëÿ âûïîëíåíèÿ âíóòðèñèñòåìíûõ çàäà÷:òàê, äåìîí crond ïîçâîëÿåò àâòîìàòè÷åñêè çàïóñêàòü ðàçëè÷íûå ïðîãðàììûâ çàäàííûå ìîìåíòû âðåìåíè, à äåìîí ñèñòåìû ïå÷àòè ñîáèðàåò îò ïîëüçîâàòåëåé çàäàíèÿ íà ïå÷àòü è îòïðàâëÿåò èõ íà ïðèíòåðû.Äåìîíû îáû÷íî ðàñ÷èòàíû íà äëèòåëüíîå ôóíêöèîíèðîâàíèå; â íåêîòîðûõ ñèñòåìàõ äåìîíû ìîãóò ðàáîòàòü ãîäàìè áåç ïåðåçàïóñêà.

Ïîýòîìó ïðèñòàðòå äåìîíà ïðèíèìàþòñÿ îïðåäåëåííûå ìåðû ê òîìó, ÷òîáû åãî ôóíêöèîíèðîâàíèå íå ìåøàëî ðàáîòå è àäìèíèñòðèðîâàíèþ ñèñòåìû. Òàê, òåêóùèéêàòàëîã îáû÷íî ìåíÿåòñÿ íà êîðíåâîé, ÷òîáû íå ìåøàòü ñèñòåìíîìó àäìèíèñòðàòîðó ïðè íåîáõîäèìîñòè óäàëÿòü êàòàëîãè, ìîíòèðîâàòü è îòìîíòèðîâàòüäèñêè è ò.ï.ßñíî, ÷òî äåìîíó íå íóæåí óïðàâëÿþùèé òåðìèíàë (è âîîáùå äåñêðèïòîðû ñòàíäàðòíîãî ââîäà, âûâîäà è âûäà÷è ñîîáùåíèé îá îøèáêàõ). Ïðè ýòîì,îäíàêî, æåëàòåëüíî, ÷òîáû äåñêðèïòîðû 0, 1 è 2 îñòàâàëèñü îòêðûòû, ïîòîìó÷òî äåìîíû, åñòåñòâåííî, ðàáîòàþò ñ ôàéëàìè, è åñëè êàêîé-ëèáî ôàéë áóäåò îòêðûò ñ íîìåðîì äåñêðèïòîðà 0, 1 èëè 2 (à ýòî îáÿçàòåëüíî ïðîèçîéäåò,åñëè äåñêðèïòîðû áóäóò çàêðûòû), êàêàÿ-íèáóäü ïðîöåäóðà ìîæåò ñëó÷àéíîèñïîðòèòü ôàéë, ïîïûòàâøèñü îñóùåñòâèòü ââîä/âûâîä íà ñòàíäàðòíûõ äåñêðèïòîðàõ.

Характеристики

Тип файла
PDF-файл
Размер
1,27 Mb
Тип материала
Высшее учебное заведение

Список файлов книги

Свежие статьи
Популярно сейчас
А знаете ли Вы, что из года в год задания практически не меняются? Математика, преподаваемая в учебных заведениях, никак не менялась минимум 30 лет. Найдите нужный учебный материал на СтудИзбе!
Ответы на популярные вопросы
Да! Наши авторы собирают и выкладывают те работы, которые сдаются в Вашем учебном заведении ежегодно и уже проверены преподавателями.
Да! У нас любой человек может выложить любую учебную работу и зарабатывать на её продажах! Но каждый учебный материал публикуется только после тщательной проверки администрацией.
Вернём деньги! А если быть более точными, то автору даётся немного времени на исправление, а если не исправит или выйдет время, то вернём деньги в полном объёме!
Да! На равне с готовыми студенческими работами у нас продаются услуги. Цены на услуги видны сразу, то есть Вам нужно только указать параметры и сразу можно оплачивать.
Отзывы студентов
Ставлю 10/10
Все нравится, очень удобный сайт, помогает в учебе. Кроме этого, можно заработать самому, выставляя готовые учебные материалы на продажу здесь. Рейтинги и отзывы на преподавателей очень помогают сориентироваться в начале нового семестра. Спасибо за такую функцию. Ставлю максимальную оценку.
Лучшая платформа для успешной сдачи сессии
Познакомился со СтудИзбой благодаря своему другу, очень нравится интерфейс, количество доступных файлов, цена, в общем, все прекрасно. Даже сам продаю какие-то свои работы.
Студизба ван лав ❤
Очень офигенный сайт для студентов. Много полезных учебных материалов. Пользуюсь студизбой с октября 2021 года. Серьёзных нареканий нет. Хотелось бы, что бы ввели подписочную модель и сделали материалы дешевле 300 рублей в рамках подписки бесплатными.
Отличный сайт
Лично меня всё устраивает - и покупка, и продажа; и цены, и возможность предпросмотра куска файла, и обилие бесплатных файлов (в подборках по авторам, читай, ВУЗам и факультетам). Есть определённые баги, но всё решаемо, да и администраторы реагируют в течение суток.
Маленький отзыв о большом помощнике!
Студизба спасает в те моменты, когда сроки горят, а работ накопилось достаточно. Довольно удобный сайт с простой навигацией и огромным количеством материалов.
Студ. Изба как крупнейший сборник работ для студентов
Тут дофига бывает всего полезного. Печально, что бывают предметы по которым даже одного бесплатного решения нет, но это скорее вопрос к студентам. В остальном всё здорово.
Спасательный островок
Если уже не успеваешь разобраться или застрял на каком-то задание поможет тебе быстро и недорого решить твою проблему.
Всё и так отлично
Всё очень удобно. Особенно круто, что есть система бонусов и можно выводить остатки денег. Очень много качественных бесплатных файлов.
Отзыв о системе "Студизба"
Отличная платформа для распространения работ, востребованных студентами. Хорошо налаженная и качественная работа сайта, огромная база заданий и аудитория.
Отличный помощник
Отличный сайт с кучей полезных файлов, позволяющий найти много методичек / учебников / отзывов о вузах и преподователях.
Отлично помогает студентам в любой момент для решения трудных и незамедлительных задач
Хотелось бы больше конкретной информации о преподавателях. А так в принципе хороший сайт, всегда им пользуюсь и ни разу не было желания прекратить. Хороший сайт для помощи студентам, удобный и приятный интерфейс. Из недостатков можно выделить только отсутствия небольшого количества файлов.
Спасибо за шикарный сайт
Великолепный сайт на котором студент за не большие деньги может найти помощь с дз, проектами курсовыми, лабораторными, а также узнать отзывы на преподавателей и бесплатно скачать пособия.
Популярные преподаватели
Добавляйте материалы
и зарабатывайте!
Продажи идут автоматически
6430
Авторов
на СтудИзбе
306
Средний доход
с одного платного файла
Обучение Подробнее