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

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

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

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

Î âûïîëíåíèè ïðîöåññà âðåæèìå ÿäðà ãîâîðèòñÿ ëèøü ïîñòîëüêó, ïîñêîëüêó âðåìÿ, çàòðà÷èâàåìîå ÿäðîì íà ðàáîòó â èíòåðåñàõ äàííîãî ïðîöåññà, ó÷èòûâàåòñÿ êàê ïîòðåáëåííûéïðîöåññîì ðåñóðñ.Ïðîöåññ ìîæåò îêàçàòüñÿ ñíÿò ñ èñïîëíåíèÿ (ïåðåéòè â ñîñòîÿíèå ãîòîâíîñòè), ìèíóÿ ñòàäèþ âûïîëíåíèÿ â ðåæèìå ÿäðà. Ýòî ìîæåò ïðîèçîéòè, åñëèÿäðî ïðèìåò ðåøåíèå î ñìåíå àêòèâíîãî ïðîöåññà âî âðåìÿ îáðàáîòêè àïïàðàòíîãî ïðåðûâàíèÿ (íàïðèìåð, ïðåðûâàíèÿ òàéìåðà). Âîçîáíîâëåíèå âûïîëíåíèÿ ïðîöåññà â ëþáîì ñëó÷àå òðåáóåò ïîäãîòîâèòåëüíûõ äåéñòâèé â ðåæèìåÿäðà.Ñòîèò îáðàòèòü âíèìàíèå íà òî, ÷òî ïðîöåññ, ïîïàâøèé â ðåæèì áëîêèðîâêè (íàïðèìåð, îæèäàþùèé ðåçóëüòàòîâ ââîäà-âûâîäà), ìîæåò êàê áûòüîòêà÷àí, òàê è îñòàâàòüñÿ â ïàìÿòè, åñëè îòêà÷êà ñèñòåìå íå ïîòðåáîâàëàñü.Îäíàêî, åñëè ïðîöåññ âñå æå áûë îòêà÷àí, îáðàòíàÿ ïîäêà÷êà áóäåò îñóùåñòâëåíà íå ðàíüøå, ÷åì ïðîöåññ îêàæåòñÿ ãîòîâ ê âûïîëíåíèþ (òî åñòü èñ÷åçíåòïðè÷èíà áëîêèðîâêè).15Ñèòóàöèÿ ãîíîê (race condition)Ðàññìîòðèì ïðîãðàììó, ïîðîæäàþùóþ äî÷åðíèé ïðîöåññ è âûäàþùóþäâà ñîîáùåíèÿ, îäíî èç ïîðîæäåííîãî ïðîöåññà, âòîðîå èç ðîäèòåëüñêîãî:int main(){if(fork() == 0) { /* äî÷åðíèé ïðîöåññ */printf("I'm the child\n");} else {/* ðîäèòåëüñêèé ïðîöåññ */printf("I'm the parent\n");}return 0;}Âîçìîæíî äâå ñèòóàöèè.

 ïåðâîé ñèòóàöèè äî÷åðíèé ïðîöåññ íå óñïåâàåòïî òåì èëè èíûì ïðè÷èíàì íà÷àòü èñïîëíåíèå äî òîãî, êàê ðîäèòåëüñêèé äîéäåò äî âûçîâà ôóíêöèè printf(). Íàïðèìåð, ñèñòåìå ìîãëî íå õâàòèòü ïàìÿòè è äî÷åðíèé ïðîöåññ áûë ñîçäàí â îòêà÷àííîì ñîñòîÿíèè (â ñâîï-ïàìÿòè). Â96ýòîì ñëó÷àå ñíà÷àëà áóäåò íàïå÷àòàíà ôðàçà I'm the parent, çàòåì − ôðàçàI'm the child.Ìîæåò ïîëó÷èòüñÿ è èíà÷å. Ê ïðèìåðó, ó ðîäèòåëüñêîãî ïðîöåññà ìîæåòñðàçó ïî âûïîëíåíèè âûçîâà fork() èñòå÷ü êâàíò âðåìåíè. Ïðè ýòîì äî÷åðíèé ïðîöåññ, êîòîðîìó íà ñåé ðàç õâàòèëî ïàìÿòè, ìîæåò ïîëó÷èòü óïðàâëåíèå è óñïåòü çà ñâîé êâàíò âðåìåíè ïðîèçâåñòè ïå÷àòü.

Òîãäà ôðàçû ïîÿâÿòñÿíà ýêðàíå â îáðàòíîì ïîðÿäêå.Ñèòóàöèè, â êîòîðûõ ðåçóëüòàò çàâèñèò îò êîíêðåòíîé ïîñëåäîâàòåëüíîñòè íåçàâèñèìûõ ñîáûòèé (îáû÷íî ñîáûòèé èç ðàáîòàþùèõ ïàðàëëåëüíî ïðîöåññîâ) íàçûâàþòñÿ ñèòóàöèÿìè ãîíîê 7 .Ñèòóàöèè ãîíîê ÷àñòî âîçíèêàþò â ïàðàëëåëüíîì ïðîãðàììèðîâàíèè, òîåñòü ïðè íàëè÷èè áîëåå ÷åì îäíîãî ïîòîêà óïðàâëåíèÿ. Îòíîñèòüñÿ ê âîçíèêíîâåíèþ òàêèõ ñèòóàöèé ñëåäóåò êðàéíå âíèìàòåëüíî, ïîñêîëüêó â íåêîòîðûõñëó÷àÿõ íåó÷òåííûå ñèòóàöèè ñîñòÿçàíèé ìîãóò ïðèâîäèòü ê îøèáêàì è äàæåïðîáëåìàì â áåçîïàñíîñòè.Ê ðàññìîòðåíèþ ñèòóàöèé ãîíîê ìû åùå âåðíåìñÿ â îäíîé èç ïîçäíèõëåêöèé.7 Ñîîòâåòñòâóþùèéàíãëîÿçû÷íûé òåðìèí − race condition.

 ðóññêèõ ïåðåâîäàõ âñòðå÷àåòñÿ òàêæåñèòóàöèÿ ñîñòÿçàíèé.97Ëåêöèÿ 816Óïðàâëåíèå ñâîéñòâàìè ïðîöåññà16.1Òåêóùèé è êîðíåâîé êàòàëîãèÒåêóùèé êàòàëîã ìîæíî ñìåíèòü ñ ïîìîùüþ âûçîâàint chdir(const char* path);ïîäàâ â êà÷åñòâå ïàðàìåòðà ïîëíûé ïóòü íîâîãî êàòàëîãà ëèáî ïóòü îòíîñèòåëüíî òåêóùåãî êàòàëîãà. Ñòðîêà ".." îçíà÷àåò êàòàëîã óðîâíåì âûøå îòíîñèòåëüíî çàäàííîãî (íàïðèìåð, /usr/local/share/.. − ýòî òî æå ñàìîå,÷òî /usr/local).Ñìåíà êîðíåâîãî êàòàëîãà îñóùåñòâëÿåòñÿ âûçîâîìint chroot(const char* path);Ïîñëå âûïîëíåíèÿ ýòîãî âûçîâà êàòàëîãè çà ïðåäåëîì íîâîãî êîðíåâîãî ïåðåñòàþò áûòü âèäíû èëè êàêèì-ëèáî îáðàçîì äîñòóïíû ïðîöåññó è âñåì åãîïîòîìêàì. Îïåðàöèÿ ñìåíû êîðíåâîãî êàòàëîãà íåîáðàòèìà.Âûçîâ chroot() ìîãóò âûïîëíÿòü òîëüêî ïðîöåññû, èìåþùèå ïðàâà ïîëüçîâàòåëÿ root.16.2ÎêðóæåíèåÎêðóæåíèå äîñòóïíî â ïðîãðàììàõ íà C ÷åðåç ãëîáàëüíóþ ïåðåìåííóþextern char **environ;Äëÿ ìàíèïóëÿöèè ïåðåìåííûìè îêðóæåíèÿ ñëóæàò ôóíêöèèchar *getenv(const char *name);int setenv(const char *name, const char *value, int overwrite);void unsetenv(const char *name);Ôóíêöèÿ getenv() âîçâðàùàåò ñòðîêó, ÿâëÿþùóþñÿ çíà÷åíèåì ïåðåìåííîé,èìÿ êîòîðîé çàäàåòñÿ àðãóìåíòîì name.

Åñëè òàêîé ïåðåìåííîé â îêðóæåíèèíåò, âîçâðàùàåòñÿ çíà÷åíèå NULL.Î÷åíü âàæíî ïðîèçâåñòè ïðîâåðêó íàNULLïåðåä àíàëèçîì âîçâðàùåííîé ñòðîêè. Íèêòîíå ìîæåò ãàðàíòèðîâàòü íàëè÷èå êàêîé áû òî íè áûëî ïåðåìåííîé â îêðóæåíèè ïðîöåññà, äàæååñëè ðå÷ü èäåò î ñòàíäàðòíûõ ïåðåìåííûõ, âêëþ÷àÿ98PATH.Ôóíêöèÿ setenv() óñòàíàâëèâàåò íîâîå çíà÷åíèå ïåðåìåííîé, ïðè÷åì åñëè òàêîé ïåðåìåííîé íå áûëî, çíà÷åíèå óñòàíàâëèâàåòñÿ â ëþáîì ñëó÷àå, åñëè æå ñîîòâåòñòâóþùàÿ ïåðåìåííàÿ â îêðóæåíèè óæå åñòü, íîâîå çíà÷åíèåóñòàíàâëèâàåòñÿ òîëüêî ïðè íåíóëåâîì çíà÷åíèè ïàðàìåòðà overwrite; òàêèìîáðàçîì, ïàðàìåòð overwrite ðàçðåøàåò èëè çàïðåùàåò èçìåíÿòü çíà÷åíèåïåðåìåííîé îêðóæåíèÿ, åñëè òàêîâàÿ óæå åñòü.Ôóíêöèÿ unsetenv() óäàëÿåò ïåðåìåííóþ ñ çàäàííûì èìåíåì èç îêðóæåíèÿ.16.3Ïàðàìåòð umaskÏàðàìåòð umask ìîæíî èçìåíèòü ñ ïîìîùüþ ñèñòåìíîãî âûçîâàint umask(int mask);Ýòîò ñèñòåìíûé âûçîâ âñåãäà çàâåðøàåòñÿ óñïåøíî è âîçâðàùàåò ïðåäûäóùååçíà÷åíèå ïàðàìåòðà umask.16.4Ìàíèïóëÿöèÿ òàáëèöåé äåñêðèïòîðîâÍîâûå ôàéëîâûå äåñêðèïòîðû ñîçäàþòñÿ ïðè óñïåøíîì âûïîëíåíèè âûçîâà open(), à òàêæå âî ìíîãèõ äðóãèõ ñëó÷àÿõ (êàê ìû óâèäèì íà ñëåäóþùèõ ëåêöèÿõ, äåñêðèïòîðû èñïîëüçóþòñÿ òàêæå äëÿ êàíàëîâ, ñîêåòîâ è ò.ï.)Ïðè ñîçäàíèè íîâîãî ôàéëîâîãî äåñêðèïòîðà ñèñòåìà âñåãäà âûáèðàåò íàèìåíüøèé ñâîáîäíûé íîìåð; òàê, åñëè çàêðûòü íóëåâîé äåñêðèïòîð, ñëåäóþùèé óñïåøíûé âûçîâ open() âåðíåò íîëü.Äëÿ çàêðûòèÿ äåñêðèïòîðà èñïîëüçóåòñÿ óæå ðàññìàòðèâàâøèéñÿ âûçîâclose().Êðîìå ýòîãî, î÷åíü âàæíû åùå äâà ñèñòåìíûõ âûçîâà, ñîçäàþùèå ñèíîíèìû ñóùåñòâóþùèõ äåñêðèïòîðîâ:int dup(int fd);int dup2(int fd, int new_fd);Âûçîâ dup() ñîçäàåò íîâûé ôàéëîâûé äåñêðèïòîð, ñâÿçàííûé ñ òåì æå ñàìûì ïîòîêîì ââîäà-âûâîäà, ÷òî è fd.

Íîâûé è ñòàðûé äåñêðèïòîðû ðàçäåëÿþò, â ÷èñëå ïðî÷åãî, è óêàçàòåëü òåêóùåé ïîçèöèè â ôàéëå: åñëè íà îäíîì èçíèõ ñìåíèòü ïîçèöèþ ñ ïîìîùüþ lseek(), ïîçèöèÿ íà âòîðîì èç íèõ òàêæåèçìåíèòñÿ.Âûçîâ dup2() îòëè÷àåòñÿ òåì, ÷òî íîâûé äåñêðèïòîð ñîçäàåòñÿ ïîä çàäàííûì íîìåðîì (ïàðàìåòð new_fd). Åñëè ýòîò íîìåð áûë ñâÿçàí ñ îòêðûòûìäåñêðèïòîðîì, òîò äåñêðèïòîð çàêðûâàåòñÿ.99Ðàññìîòðèì äëÿ ïðèìåðà ñèòóàöèþ, êîãäà íåêîòîðàÿ áèáëèîòåêà, êîòîðóþ ìû èñïîëüçóåì, ïðîèçâîäèò âûâîä íóæíîé íàì èíôîðìàöèè âñåãäà íàñòàíäàðòíûé ïîòîê âûâîäà, à íàì æåëàòåëüíî ñîîòâåòñòâóþùóþ èíôîðìàöèþ âûâåñòè â ôàéë.

Ýòî ìîæíî ñäåëàòü ñ ïîìîùüþ òàêîãî ôðàãìåíòà êîäà:int save1, fd;fflush(stdout);/* íà âñÿêèé ñëó÷àé î÷èùàåì áóôåðñòàíäàðòíîãî âûâîäà */save1 = dup(1);/* ñîõðàíÿåì íàø ñòàíäàðòíûé âûâîä */int fd = open("file.dat", O_CREAT|O_WRONLY|O_TRUNC, 0666);/* îòêðûëè ôàéë */if(fd == -1) { /* ... îáðàáîòêà îøèáêè ... */ }dup2(fd, 1);/* cäåëàëè îòêðûòûé ôàéëñòàíäàðòíûì ïîòîêîì âûâîäà */close(fd);/* çàêðûëè "ëèøíèé" äåñêðèïòîð *//* ... ïðîèçâîäèì äåéñòâèÿ ñ íàøåé áèáëèîòåêîé ...âñå ýòî âðåìÿ âûçîâû ôóíêöèé, ðàáîòàþùèõ ñî ñòàíäàðòíûìâûâîäîì (òàêèõ êàê printf, puts è ò.ï.), áóäóò âûâîäèòüèíôîðìàöèþ â íàø ôàéë*/dup2(save1, 1);close(save1);/* âîññòàíîâèëè ñòàðûé ñòàíäàðòíûéïîòîê âûâîäà *//* ôàéë ïðè ýòîì çàêðûëñÿ àâòîìàòè÷åñêè *//* ëèøíÿÿ êîïèÿ íàì íå íóæíà */Ðàññìîòðèì åùå îäèí ïðèìåð.

Äîïóñòèì, ó íàñ âîçíèêëà ïîòðåáíîñòü âïðîãðàììå íà C ñìîäåëèðîâàòü ôóíêöèîíèðîâàíèå êîìàíäû Shellls -l -a -R / > filelist(ïîïðîñòó ãîâîðÿ, ñãåíåðèðîâàòü ôàéë filelist, ñîäåðæàùèé ñïèñîê âñåõôàéëîâ â ñèñòåìå). Ýòî ìîæíî ñäåëàòü ñ ïîìîùüþ ñëåäóþùåãî ôðàãìåíòà:int pid, status;pid = fork();if(pid == -1) { /* ... îáðàáîòêà îøèáêè ...

*/ }if(pid == 0) {/* äî÷åðíèé ïðîöåññ */int fd = open("filelist", O_CREAT|O_WRONLY|O_TRUNC, 0666);if(fd == -1) exit(1);dup2(fd, 1);100close(fd);execlp("ls", "ls", "-l", "-a", "-R", "/", NULL);perror("ls");exit(1);}/* ðîäèòåëüñêèé ïðîöåññ */wait(&status);if(!WIFEXITED(status) || WEXITSTATUS(status)!=0) {/* ... îáðàáîòêà îøèáêè ... */}16.5Óïðàâëåíèå ïðî÷èìè ñâîéñòâàìè ïðîöåññàÓçíàòü çíà÷åíèÿ ïàðàìåòðîâ uid, gid, euid, egid, pid, ppid, sid è pgidìîæíî, ñîîòâåòñòâåííî, ñèñòåìíûìè âûçîâàìè getuid(), getgid() è ò.ä.Ïàðàìåòðû pid, ppid (èäåíòèôèêàòîð ïðîöåññà è åãî ïðåäêà) èçìåíåíèòüíåëüçÿ.Ìàíèïóëÿöèÿ ïàðàìåòðàìè sid è pgid áóäåò ðàññìîòðåíà â íàøåì êóðñåïîçæå, íà ëåêöèè, ïîñâÿùåííîé ñåàíñàì è ãðóïïàì ïðîöåññîâ.Ïàðàìåòðû uid, gid, euid, egid, èäåíòèôèöèðóþùèå ïîëíîìî÷èÿ ïðîöåññà, â íåêîòîðûõ ñëó÷àÿõ ìîãóò áûòü èçìåíåíû.

Îá ýòîì ðå÷ü ïîéäåò ïðèðàññìîòðåíèè ïîëíîìî÷èé ïðîöåññîâ.Íàêîíåö, îáðàáîòêà ñèãíàëîâ áóäåò ðàññìîòðåíà ïðè èçó÷åíèè ñèãíàëîâêàê ñðåäñòâà ìåæïðîöåññíîãî âçàèìîäåéñòâèÿ.17Îáùàÿ êëàññèôèêàöèÿ ñðåäñòâ âçàèìîäåéñòâèÿ ïðîöåññîâ â ÎÑ Unix ðàìêàõ îäíîé Unix-ñèñòåìû ïðîöåññû ìîãóò òàê èëè èíà÷å âçàè-ìîäåéñòâîâàòü ìåæäó ñîáîé. Âîîáùå ãîâîðÿ, îäèí ïðîöåññ ìîæåò ïîâëèÿòüíà ðàáîòó äðóãîãî, íå ïðèáåãàÿ ê ñïåöèàëèçèðîâàííûì ñðåäñòâàì; íàïðèìåð, ïðîöåññ ìîæåò ìîäèôèöèðîâàòü ôàéë, ÷èòàåìûé äðóãèì ïðîöåññîì. Òåìíå ìåíåå, äëÿ îðãàíèçàöèè âçàèìîäåéñòâèÿ ïðîöåññîâ óäîáíåé ïîëüçîâàòüñÿñðåäñòâàìè, êîòîðûå äëÿ ýòîãî ñïåöèàëüíî ïðåäíàçíà÷åíû.Íàèáîëåå ïðèìèòèâíûì èç òàêèõ ñðåäñòâ ÿâëÿþòñÿ ñèãíàëû 1 . Ñèãíàë íåíåñåò â ñåáå íèêàêîé èíôîðìàöèè, êðîìå íîìåðà ñèãíàëà − öåëîãî ÷èñëà èç1 Íåñìîòðÿíà ïðîñòîòó ñàìîãî ñðåäñòâà, êîððåêòíîå èñïîëüçîâàíèå ñèãíàëîâ èíîãäà îêàçûâàåòñÿ ÷ðåçâû÷àéíî ñëîæíîé çàäà÷åé; ãîâîðÿ î ïðèìèòèâíîñòè ñèãíàëîâ, ìû íå ïîäðàçóìåâàåì, ÷òî îíè ïðîñòû âèñïîëüçîâàíèè.101средствавзаимодействияпроцессовлокальныесетевыесигналыканалысокетывирт.

терминалименованныетрассировканеименованныеSystem V IPCочереди сообщенийmmapразделяемая памятьсемафорыÐèñ. 21: Êëàññèôèêàöèÿ ñðåäñòâ âçàèìîäåéñòâèÿ ïðîöåññîâïðåäîïðåäåëåííîãî ìíîæåñòâà.Äëÿ ïåðåäà÷è äàííûõ ìåæäó ïðîöåññàìè ìîæíî èñïîëüçîâàòü îäíîíàïðàâëåííûå êàíàëû, ðàçëè÷àþùèåñÿ íà èìåíîâàííûå è íåèìåíîâàííûå.Ñèñòåìíûé âûçîâ mmap() ïîçâîëÿåò ñîçäàòü îáëàñòü ïàìÿòè, äîñòóïíóþíåñêîëüêèì ïðîöåññàì2 . Òàêàÿ îáëàñòü ïàìÿòè íàçûâàåòñÿ ðàçäåëÿåìîé, àïðîöåññû, ðàáîòàþùèå ñ íåé, ñ÷èòàþòñÿ âçàèìîäåéñòâóþùèìè ÷åðåç ðàçäåëÿåìóþ ïàìÿòü.Ïðè îòëàäêå ïðîãðàìì èñïîëüçóåòñÿ ðåæèì òðàññèðîâêè, ïðè êîòîðîéîäèí ïðîöåññ (îáû÷íî îòëàä÷èê) êîíòðîëèðóåò âûïîëíåíèå äðóãîãî (îòëàæèâàåìîé ïðîãðàììû).Êàê óæå ãîâîðèëîñü íà ëåêöèè, ïîñâÿùåííîé ââåäåíèþ â ÎÑ Unix, âàæíóþ ðîëü â ñèñòåìàõ ñåìåéñòâà Unix èãðàåò ïîíÿòèå òåðìèíàëà.

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

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

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

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