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

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

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

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

Àíàëîãè÷íîå ðåøåíèå âîçìîæíî è äëÿ íàøåãî ïðîöåññà. Ìîæíî ñ ïîìîùüþ âûçîâà fcntl() ïåðåâåñòè âñå ñîêåòû (è ñëóøàþùèé, è êëèåíòñêèå) â íåáëîêèðóþùèé ðåæèì, ïðè êîòîðîì âûçîâû read() èaccept() âñåãäà âîçâðàùàþò óïðàâëåíèå íåìåäëåííî, íè÷åãî íå îæèäàÿ (åñëè íå áûëî äàííûõ èëè âõîäÿùåãî ñîåäèíåíèÿ, âîçâðàùàåòñÿ îøèáêà). Ïîñëåýòîãî ìîæíî íà÷àòü èõ îïðàøèâàòü ïî î÷åðåäè â áåñêîíå÷íîì öèêëå. Ýòîíàçûâàåòñÿ àêòèâíûì îæèäàíèåì.Ñëåäóåò îòìåòèòü, ÷òî òàêîé âàðèàíò ñ÷èòàåòñÿ ñîâåðøåííî íåïðèåìëåìûì â ìíîãîçàäà÷íûõ ñèñòåìàõ. Àíàëîãè÷íî òîìó, êàê îôèöèàíò áóäåò ïîïóñòó óñòàâàòü, âõîëîñòóþ íàðåçàÿ êðóãè ïî ðåñòîðàíó (âïîëíå âîçìîæíî, ÷òîçà íåñêîëüêî òàêèõ êðóãîâ îò íåãî íè÷åãî íèêîìó òàê è íå ïîíàäîáèòñÿ) èâ èòîãå, ñêîðåå âñåãî, ïîïðîñòó óïàäåò îò ïåðåóòîìëåíèÿ, ïðîöåññ, áåñêîíå÷íî îïðàøèâàþùèé íàáîð ñîêåòîâ ñ ïîìîùüþ ñèñòåìíûõ âûçîâîâ, òîæå áóäåòâõîëîñòóþ òðàòèòü ðåñóðñû.

Êîíå÷íî, â îòëè÷èå îò îôèöèàíòà ïðîöåññ íåóñòàíåò, íî îí ïðè ýòîì áóäåò ïðîíàïðàñíó ðàñõîäîâàòü ïðîöåññîðíîå âðåìÿ,êîòîðîå ìîãëî áû ïðèãîäèòüñÿ äðóãèì çàäà÷àì.  íåêîòîðûõ ñèñòåìàõ ïðîöåññ ìîæåò èñ÷åðïàòü ñâîé ëèìèò ïðîöåññîðíîãî âðåìåíè è áóäåò ïîïðîñòóóíè÷òîæåí ÿäðîì. Ïðîáëåìà äåéñòâèòåëüíî ñåðüåçíà: íåêîòîðûå ñåðâåðà ìîãóò ñóòêàìè íàõîäèòüñÿ â áåçäåéñòâèè, è áûëî áû î÷åíü ñòðàííî, åñëè áûâñå ýòî âðåìÿ ïðîãðàììà, êîòîðàÿ ñîâåðøåííî íè÷åãî íå äåëàåò, çàíèìàëà áûïðîöåññîð.133Äðóãîå ðåøåíèå (äëÿ ðåñòîðàíà) ñîñòîèò â òîì, ÷òîáû íàíÿòü â ðåñòîðàíàäåêâàòíîå êîëè÷åñòâî ïåðñîíàëà. Âî-ïåðâûõ, ðàçóìååòñÿ, ó äâåðåé äîëæåíñòîÿòü ìåòðîäîòåëü, íåìåäëåííî âñòðå÷àÿ êàæäûõ ïðèõîäÿùèõ êëèåíòîâ èïðîâîäÿ èõ ê ñâîáîäíîìó ñòîëèêó.

Âî-âòîðûõ, äîðîãîé ðåñòîðàí âïîëíå ìîæåò ñåáå ïîçâîëèòü ïðèêðåïèòü ê êàæäîìó ñòîëèêó ñâîåãî îôèöèàíòà. Àíàëîãè÷íûì îáðàçîì ïðè íàïèñàíèè ñåðâåðíîé ïðîãðàììû ìû ìîæåì ñîçäàòüîòäåëüíûé ïðîöåññ äëÿ îáñëóæèâàíèÿ êàæäîãî ïðèøåäøåãî êëèåíòà.Åñëè æå ýòîò âàðèàíò íåïðèåìëåì (íàïðèìåð, åñëè áîëüøóþ ÷àñòü âðåìåíè âåñü ïåðñîíàë âñå ðàâíî ïðîñòàèâàåò), ìîæíî ñäåëàòü è èíà÷å. Îôèöèàíòìîæåò, íàðåçàâ ïàðî÷êó êðóãîâ, ñîîáðàçèòü, ÷òî òàê äåëî íå ïîéäåò è, íàïðèìåð, ïîäâåñèòü êîëîêîëü÷èê ê âõîäíûì äâåðÿì, à êàæäûé ñòîëèê ñíàáäèòüêíîïêîé çâîíêà.

Ïîñëå ýòîãî ìîæíî áóäåò ñïîêîéíî óñåñüòüñÿ â óêðîìíûéóãîë è ñïàòü (èëè, íàïðèìåð, ðàçãàäûâàòü êðîññâîðä), ïîêà îäèí èç êîëîêîëü÷èêîâ èëè çâîíêîâ íå çàçâîíèò. Ïîñêîëüêó ðåñòîðàí èìååò ñâîéñòâî âíåêèé ìîìåíò çàêðûâàòüñÿ, â äîïîëíåíèå ê ýòèì çâîíêàì ñëåäóåò, âèäèìî,çàâåñòè åùå è áóäèëüíèê íà îïðåäåëåííîå âðåìÿ. Àíàëîãè÷íûé âàðèàíò âïðîãðàììèðîâàíèè íàçûâàåòñÿ ìóëüòèïëåêñèðîâàíèåì ââîäà-âûâîäà.Ðàññìîòðèì äâà ïîñëåäíèõ âàðèàíòà ïîäðîáíåå.24.2Ðåøåíèå íà îñíîâå îáñëóæèâàþùèõ ïðîöåññîâ ýòîì âàðèàíòå íàø ãëàâíûé ïðîöåññ âûïîëíÿåò îáÿçàííîñòè ìåòðîäîòåëÿ, íàõîäÿñü áîëüøóþ ÷àñòü âðåìåíè â âûçîâå accept().

Ïðèíÿâ î÷åðåäíîå ñîåäèíåíèå, ìåòðîäîòåëü ïîðîæäàåò äî÷åðíèé ïðîöåññ (îôèöèàíòà)äëÿ îáñëóæèâàíèÿ äàííîãî ñîåäèíåíèÿ. Ïîñëå ïîðîæäåíèÿ ðîäèòåëüñêèé ïðîöåññ çàêðûâàåò ñîêåò êëèåíòñêîãî ñîåäèíåíèÿ, à äî÷åðíèé ïðîöåññ çàêðûâàåòñëóøàþùèé ñîêåò. Ñîîòâåòñòâåííî, âñå îáÿçàííîñòè ïî îáñëóæèâàíèþ ïðèøåäøåãî êëèåíòà âîçëàãàþòñÿ íà äî÷åðíèé ïðîöåññ; ïîñëå çàâåðøåíèÿ ñåàíñàñâÿçè ñ êëèåíòîì äî÷åðíèé ïðîöåññ çàâåðøàåòñÿ.

Âñå ýòî âðåìÿ ðîäèòåëüñêèé ïðîöåññ áåñïðåïÿòñòâåííî ïðîäîëæàåò èñïîëíÿòü îáÿçàííîñòè ìåòðîäîòåëÿ, âûçûâàÿ accept().Ñîîòâåòñòâóþùèé êîä áóäåò âûãëÿäåòü ïðèìåðíî òàê:int ls;struct sockaddr_in addr;ls = socket(AF_INET, SOCK_STREAM, 0);if(ls == -1){ /* ...

îøèáêà ... */ }addr.sin_family = AF_INET;addr.sin_port = htons(port);134addr.sin_addr.s_addr = INADDR_ANY;if(-1 == bind(ls, &addr, sizeof(addr)){ /* ... îøèáêà ... */ }for(;;) {socklen_t slen = sizeof(addr);int cls = accept(ls, &addr, &slen);if(fork() == 0) { /* äî÷åðíèé ïðîöåññ */close(ls);/* ...ðàáîòàåì ñ êëèåíòîì ÷åðåç ñîêåò clsÊëèåíò ïðèøåë ñ àäðåñà, õðàíÿùåãîñÿòåïåðü â ñòðóêòóðå addr...*/exit(0);}/* ðîäèòåëüñêèé ïðîöåññ */close(cls);/* ïðîâåðèòü, íå çàâåðøèëèñü ëè êàêèå-ëèáîäî÷åðíèå ïðîöåññû (óáðàòü çîìáè) */while(wait4(-1, NULL, WNOHANG, NULL)>0);/* òåëî öèêëà ïóñòîå */}24.3Ìóëüòèïëåêñèðîâàíèå ââîäà-âûâîäà.

Ñîáûòèéíîóïðàâëÿåìîå ïðîãðàììèðîâàíèåÐàññìîòðèì òåïåðü ñëó÷àé, êîãäà ïîðîæäåíèå îòäåëüíîãî ïðîöåññà íàêàæäîå êëèåíòñêîå ñîåäèíåíèå íåïðèåìëåìî. Ýòî ìîæåò ïîëó÷èòüñÿ â ñëó÷àå, åñëè ñåðâåð äîñòàòî÷íî ñåðüåçíî çàãðóæåí: îïåðàöèÿ ïîðîæäåíèÿ ïðîöåññà ñðàâíèòåëüíî äîðîãà, òàê ÷òî ïðè çàãðóçêàõ ïîðÿäêà òûñÿ÷ ñîåäèíåíèéâ ñåêóíäó çàòðàòû íà ïîðîæäåíèå ïðîöåññîâ ìîãóò îêàçàòüñÿ íåïðèåìëåìûìè.Êðîìå òîãî, ìîæåò îêàçàòüñÿ, ÷òî ìåæäó ñåàíñàìè îáñëóæèâàíèÿ ðàçíûõ êëèåíòîâ ïðîèñõîäèò àêòèâíîå âçàèìîäåéñòâèå.

Íàïðèìåð, ñåðâåð ìîæåòïîääåðæèâàòü êîìïüþòåðíóþ èãðó ïî ñåòè, òàê ÷òî äåéñòâèÿ êàæäîãî èãðîêàâëèÿþò íà ñèòóàöèþ â îäíîì èãðîâîì ïðîñòðàíñòâå è ñêàçûâàþòñÿ íà äðóãèõ èãðîêàõ.  ýòîì ñëó÷àå ðàçäåëåíèå ñåðâåðíîé ïðîãðàììû íà îòäåëüíûåïðîöåññû ïîòðåáóåò âûñîêèõ íàêëàäíûõ ðàñõîäîâ íà âçàèìîäåéñòâèå ìåæäóýòèìè ïðîöåññàìè; ê òîìó æå ïðîáëåìà î÷åðåäíîñòè äåéñòâèé âñòàíåò ñíîâà,135òîëüêî óæå â êàæäîì èç ïðîöåññîâ: äåéñòâèòåëüíî, ñëåäóåò ëè ïðîöåññó â êîíêðåòíûé ìîìåíò âðåìåíè àíàëèçèðîâàòü èçìåíåíèÿ â èãðå èëè æå ïðèíèìàòüäàííûå ñ êëèåíòñêîãî ñîêåòà?Èòàê, íåîáõîäèìî îñòàâèòü îáñëóæèâàíèå âñåõ êëèåíòîâ â ðàìêàõ îäíîãîïðîöåññà, ïðè÷åì àêòèâíîå îæèäàíèå, åñòåñòâåííî, ïðèåìëåìûì íå ñ÷èòàåòñÿ.Íà ïðîáëåìó ìîæíî âçãëÿíóòü è øèðå.

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

Íàñòóïëåíèå ñîáûòèÿ îïåðàöèîííàÿ ñèñòåìà äîëæíà îòñëåäèòü ñàìà è âåðíóòü óïðàâëåíèå ïðîöåññó,ïðè ýòîì, æåëàòåëüíî, ñîîáùèâ åìó î òîì, êàêîå èìåííî ñîáûòèå íàñòóïèëî. ÎÑ Unix òàêîé ìåõàíèçì ïðåäîñòàâëÿþò ñèñòåìíûå âûçîâû select()è poll()1 . Ìû áóäåì ðàññìàòðèâàòü âûçîâ select() êàê áîëåå ïðîñòîé; èçó÷èòü âûçîâ poll() ÷èòàòåëü ïðè æåëàíèè ìîæåò ñàìîñòîÿòåëüíî, ïðèáåãíóâê òåõíè÷åñêîé äîêóìåíòàöèè.Âûçîâ select() ïîçâîëÿåò îáðàáàòûâàòü ñîáûòèÿ òðåõ òèïîâ:• èçìåíåíèå ñîñòîÿíèÿ ôàéëîâîãî äåñêðèïòîðà (ïîÿâëåíèå äàííûõ, äîñòóïíûõ íà ÷òåíèå, èëè âõîäÿùåãî çàïðîñà íà ñîåäèíåíèå; îñâîáîæäåíèåìåñòà â áóôåðå èñõîäÿùåé èíôîðìàöèè; èñêëþ÷èòåëüíàÿ ñèòóàöèÿ);• èñòå÷åíèå çàäàííîãî êîëè÷åñòâà âðåìåíè ñ ìîìåíòà âõîäà â âûçîâ;• ïîëó÷åíèå ïðîöåññîì íåèãíîðèðóåìîãî ñèãíàëà.Ïðîôèëü âûçîâà âûãëÿäèò ñëåäóþùèì îáðàçîì:int select(int n, fd_setfd_setfd_setstruct*readfds,*writefds,*exceptfds,timeval *timeout);Ïàðàìåòðû readfds, writefds è exceptfds îáîçíà÷àþò ìíîæåñòâà ôàéëî1 Âîîáùåãîâîðÿ, select() è poll() ïðåäíàçíà÷åíû äëÿ îäíèõ è òåõ æå äåéñòâèé.

select() íåñêîëüêîïðîùå â ðàáîòå, poll() íåñêîëüêî áîëåå óíèâåðñàëåí.  íåêîòîðûõ ñèñòåìàõ ÿäðî ðåàëèçóåò òîëüêî îäèíâàðèàíò èíòåðôåéñà, ïðè ýòîì âòîðîé ýìóëèðóåòñÿ ÷åðåç íåãî â âèäå áèáëèîòå÷íîé ôóíêöèè. Òàê, â ñèñòåìå Solaris ïðèñóòñòâóåò ñèñòåìíûé âûçîâ poll(), à select() ÿâëÿåòñÿ áèáëèîòå÷íîé ôóíêöèåé. Êðîìåòîãî, â íåêîòîðûõ ñîâðåìåííûõ ñèñòåìàõ ïðèñóòñòâóåò òàêæå âûçîâ kqueue(), ðåàëèçóþùèé àëüòåðíàòèâíûé ïîäõîä ê âûáîðêå ñîáûòèÿ.136âûõ äåñêðèïòîðîâ, äëÿ êîòîðûõ íàñ èíòåðåñóåò, ñîîòâåòñòâåííî, âîçìîæíîñòüíåìåäëåííîãî ÷òåíèÿ, âîçìîæíîñòü íåìåäëåííîé çàïèñè è íàëè÷èå èñêëþ÷èòåëüíîé ñèòóàöèè. Ïàðàìåòð n óêàçûâàåò, êàêîå êîëè÷åñòâî ýëåìåíòîâ â ýòèõìíîæåñòâàõ ÿâëÿåòñÿ çíà÷àùèì. Ýòîò ïàðàìåòð íåîáõîäèìî óñòàíîâèòü ðàâíûì max_d+1, ãäå max_d − ìàêñèìàëüíûé íîìåð äåñêðèïòîðà ñðåäè ïîäëåæèùèõ îáðàáîòêå. Íàêîíåö, ïàðàìåòð timeout çàäàåò ïðîìåæóòîê âðåìåíè,ñïóñòÿ êîòîðûé ñëåäóåò âåðíóòü óïðàâëåíèå, äàæå åñëè íèêàêèõ ñîáûòèé,ñâÿçàííûõ ñ äåñêðèïòîðàìè, íå ïðîèçîøëî.Îáúåêò ìíîæåñòâî äåñêðèïòîðîâ çàäàåòñÿ ïåðåìåííîé òèïà fd_set.Âíóòðåííÿÿ ðåàëèçàöèÿ ïåðåìåííûõ ýòîãî òèïà, âîîáùå ãîâîðÿ, äëÿ ðàçëè÷íûõ ñèñòåì ìîæåò îêàçàòüñÿ ðàçíîé, íî ïðîùå âñåãî åå ïðåäñòàâëÿòü ñåáå êàêáèòîâóþ ñòðîêó, ãäå êàæäîìó äåñêðèïòîðó ñîîòâåòñòâóåò îäèí áèò.

Äëÿ ðàáîòû ñ ïåðåìåííûìè ýòîãî òèïà ñèñòåìà ïðåäîñòàâëÿåò â íàøå ðàñïîðÿæåíèåñëåäóþùèå ìàêðîñû:FD_ZERO(fd_set *set);/*FD_CLR(int fd, fd_set *set);/*FD_SET(int fd, fd_set *set);/*FD_ISSET(int fd, fd_set *set);/*î÷èñòèòü ìíîæåñòâî */óáðàòü äåñêðèïòîð èç ìí-âà */äîáàâèòü äåñêðèïòîð ê ìí-âó */âõîäèò ëè äåñêð-ð â ìí-âî? */Ñòðóêòóðà timeval, ñëóæàùàÿ äëÿ çàäàíèÿ ïîñëåäíåãî ïàðàìåòðà, èìååòäâà ïîëÿ òèïà long. Ïîëå tv_sec çàäàåò êîëè÷åñòâî ñåêóíä, ïîëå tv_usec −êîëè÷åñòâî ìèêðîñåêóíä (ìèëëèîííûõ äîëåé ñåêóíäû). Òàêèì îáðàçîì, íàïðèìåð, çàäàòü òàéì-àóò â 5.3 ñåêóíäû ìîæíî ñëåäóþùèì îáðàçîì:struct timeval t;t.tv_sec = 5;t.tv_usec = 300000; êà÷åñòâå ëþáîãî èç ïàðàìåòðîâ, êðîìå ïåðâîãî (êîëè÷åñòâà äåñêðèïòîðîâ), ìîæíî óêàçûâàòü íóëåâîé óêàçàòåëü, åñëè çàäàíèå äàííîãî ïàðàìåòðàíàì íå òðåáóåòñÿ.

Òàê, åñëè íóæíî ïðîñòî íåêîòîðîå âðåìÿ ïîäîæäàòü, ìîæíîóêàçàòü NULL âìåñòî âñåõ òðåõ ìíîæåñòâ äåñêðèïòîðîâ.Âûçîâ select() âîçâðàùàåò óïðàâëåíèå â ñëåäóþùèõ ñëó÷àÿõ:•  ñëó÷àå, åñëè ïðîèçîøëà îøèáêà (â ÷àñòíîñòè, â îäíîì èç ìíîæåñòâäåñêðèïòîðîâ îêàçàëîñü ÷èñëî, íå ñîîòâåòñòâóþùåå íè îäíîìó èç îòêðûòûõ äåñêðèïòîðîâ); â ýòîì ñëó÷àå âûçîâ âîçâðàùàåò -1.•  ñëó÷àå, åñëè ïðîãðàììà ïîëó÷èëà íåèãíîðèðóåìûé ñèãíàë.  ýòîìñëó÷àå òàêæå âîçâðàùàåòñÿ -1; îòëè÷èòü ýòó ñèòóàöèþ îò îøèáî÷íîéìîæíî ïî çíà÷åíèþ ãëîáàëüíîé ïåðåìåííîé errno, êîòîðàÿ â ýòîì ñëó÷àå áóäåò ðàâíà êîíñòàíòå EINTR.137• Èñòåê òàéì-àóò, òî åñòü ñ ìîìåíòà âõîäà â âûçîâ ïðîøëî áîëüøå âðåìåíè, ÷åì óêàçàíî â ïàðàìåòðå timeout (åñëè, êîíå÷íî, ýòîò ïàðàìåòð íåáûë íóëåâûì óêàçàòåëåì).

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

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

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

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