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

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

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

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

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

Îïðåäåëÿåò ïîðÿäîê ïðîâåäåíèÿ ñåàíñà ñâÿçè, î÷åðåäíîñòü çàïðîñîâ è ò.ï.Ïðåäñòàâèòåëüíûé. Íà ýòîì óðîâíå îïðåäåëÿþòñÿ ïðàâèëà ïðåäñòàâëåíèÿ äàííûõ, â ÷àñòíîñòè, êîäèðîâêà, ïðàâèëà ïðåäñòàâëåíèÿ äâîè÷íûõ äàííûõ òåêñòîì, è ò.ï.Ïðèêëàäíîé. Ïðîòîêîëû ýòîãî óðîâíÿ îïðåäåëÿþò, êàê êîíå÷íûå ïðèëîæåíèÿ áóäóò èñïîëüçîâàòü ñîåäèíåíèÿ äëÿ ðåøåíèÿ êîíêðåòíûõ çàäà÷, äëÿ êîòîðûõ îíè ïðåäíàçíà÷åíû.Äëÿ óïðîùåíèÿ çàïîìèíàíèÿ íàçâàíèé óðîâíåé ìîäåëè ISO/OSI ñóùåñòâóåò ìíåìîíè÷åñêàÿ ôðàçà All People Seem To Need Data Processing (âñåì ëþäÿì, ïîõîæå, íóæíà îáðàáîòêàäàííûõ). Ïåðâûå áóêâû ñëîâ ýòîé ôðàçû ñîîòâåòñòâóþò ïåðâûì áóêâàì àíãëèéñêèõ íàçâàíèé óðîâíåé ìîäåëè (Application, Presentation, Session, Transport, Network, Datalink è Physical).Àíàëîãè÷íîé ðóññêîé ôðàçû àâòîðó ïîñîáèÿ, ê ñîæàëåíèþ, íå âñòðå÷àëîñü.23.2Ñîêåòû.

Ñåìåéñòâà àäðåñàöèè è òèïû âçàèìîäåéñòâèÿÄàòü ñòðîãîå îïðåäåëåíèå ñîêåòà äîñòàòî÷íî ñëîæíî. Îãðàíè÷èìñÿ çàìå÷àíèåì, ÷òî ñîêåò (àíãë. socket) − ýòî îáúåêò ÿäðà îïåðàöèîííîé ñèñòåìû,÷åðåç êîòîðûé ïðîèñõîäèò ñåòåâîå âçàèìîäåéñòâèå2 .  ÎÑ Unix ñ ñîêåòîì ñâÿçûâàåòñÿ ôàéëîâûé äåñêðèïòîð, òî åñòü, íàïðèìåð, ðàáîòà ñ ñîêåòîì ìîæåòáûòü çàâåðøåíà îáû÷íûì âûçîâîì close().Äëÿ èäåíòèôèêàöèè ñîêåòîâ (èëè, òî÷íåå, àáîíåíòîâ ñâÿçè) â ñåòÿõ èñïîëüçóþòñÿ àäðåñà.

 çàâèñèìîñòè îò èñïîëüçóåìûõ ïðîòîêîëîâ àäðåñà ìîãóò2 Ýòîíåëüçÿ ñ÷èòàòü îïðåäåëåíèåì ñîêåòà õîòÿ áû ïî òîé ïðè÷èíå, ÷òî âçàèìîäåéñòâèå ïî ñåòè áûâàåòîñíîâàíî íå òîëüêî íà ñîêåòàõ, à îñíîâàííîå íà ñîêåòàõ âçàèìîäåéñòâèå íå îáÿçàòåëüíî ïðîèñõîäèò ïîñåòè.121âûãëÿäåòü ñîâåðøåííî ïî-ðàçíîìó. Òàê, â íûíå èñïîëüçóåìîì â ñåòè Internetíàáîðå ïðîòîêîëîâ ïîä îáùèì íàçâàíèåì TCP/IP àäðåñ ñîêåòà ñîñòîèò èçäâóõ ÷àñòåé: ip-àäðåñà (4 áàéòà, çàïèñûâàåòñÿ â âèäå ÷åòûðåõ äåñÿòè÷íûõ ÷èñåë ÷åðåç òî÷êó, íàïðèìåð 192.168.10.12) è ïîðòà (äâóáàéòîâîå öåëîå ÷èñëî). ïåðñïåêòèâå âîçìîæåí ïåðåõîä Internet íà ïðîòîêîë IPv6 (íûíå èñïîëüçóåìûé íàçûâàåòñÿ IPv4), â êîòîðîì ip-àäðåñ áóäåò çàíèìàòü 16 áàéò è çàïèñûâàòüñÿ â âèäå âîñüìè ãðóïï ïî ÷åòûðå øåñòíàäöàòèðè÷íûå öèôðû, íàïðèìåð 12ff:2001:0055:2eab:0767:1212:f1b1:a00a.

ßñíî, ÷òî äëÿ ïðåäñòàâëåíèÿ òàêèõ àäðåñîâ íåîáõîäèìû ñîâåðøåííî èíûå ñòðóêòóðû äàííûõ. ñåòÿõ, ïîñòðîåííûõ ïî òåõíîëîãèè êîìïàíèè Novell, èñïîëüçóåòñÿ ñòåêïðîòîêîëîâ IPX/SPX.  ðàìêàõ ýòèõ ïðîòîêîëîâ àäðåñ ñîêåòà ñîñòîèò èçòðåõ ÷àñòåé: 4õ-áàéòíîãî íîìåðà ñåòè, 6-áàéòíîãî íîìåðà ìàøèíû (õîñòà) è2-áàéòíîãî íîìåðà ñîêåòà.Ñóùåñòâóþò è äðóãèå ñåìåéñòâà ïðîòîêîëîâ. Êðîìå òîãî, îòäåëüíûé ñïåöèàëüíûé âèä ñîêåòîâ ïðåäíàçíà÷åí äëÿ ñâÿçè ïðîöåññîâ â ðàìêàõ îäíîéìàøèíû; â êà÷åñòâå àäðåñîâ òàêèå ñîêåòû èñïîëüçóþò èìåíà ñïåöèàëüíûõôàéëîâ â ôàéëîâîé ñèñòåìå.Íåñìîòðÿ íà òàêèå ðàçëè÷èÿ, ìåæäó ðàçëè÷íûìè âèäàìè âçàèìîäåéñòâèÿî÷åíü ìíîãî îáùåãî.

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

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

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

 ýòîì ñëó÷àå çàáîòó î ïåðåäà÷å ïîäòâåðæäåíèé, îðàññòàíîâêå ïàêåòîâ â èñõîäíîì ïîðÿäêå, î ïîâòîðíîé ïåðåäà÷å ïîòåðÿííûõïàêåòîâ è ò.ï. áåðåò íà ñåáÿ îïåðàöèîííàÿ ñèñòåìà.Ñîêåò â ÎÑ Unix ñîçäàåòñÿ ñ ïîìîùüþ âûçîâàint socket(int address_family, int type, int protocol);Ïàðàìåòð address_family çàäàåò èñïîëüçóåìîå ñåìåéñòâî àäðåñàöèè.

Ìû áóäåì ðàññìàòðèâàòü äâà èç íèõ: AF_INET äëÿ âçàèìîäåéñòâèÿ ïî ñåòè ïîñðåäñòâîì ïðîòîêîëîâ TCP/IP (àäðåñ ñîêåòà â ýòîì ñëó÷àå ïðåäñòàâëÿåò ñîáîéïàðó ip-àäðåñ/ïîðò) è AF_UNIX äëÿ âçàèìîäåéñòâèÿ â ðàìêàõ îäíîé ìàøèíû(â ýòîì ñëó÷àå àäðåñ ñîêåòà ïðåäñòàâëÿåò ñîáîé èìÿ ôàéëà).Ïàðàìåòð type çàäàåò òèï âçàèìîäåéñòâèÿ. Çäåñü ìîæíî èñïîëüçîâàòüêîíñòàíòó SOCK_STREAM äëÿ ïîòîêîâîãî âçàèìîäåéñòâèÿ è SOCK_DGRAM äëÿäåéòàãðàììíîãî. Ñóùåñòâóþò è äðóãèå òèïû, íî èõ ìû ðàññìàòðèâàòü íåáóäåì.Íàêîíåö, ïîñëåäíèé ïàðàìåòð çàäàåò êîíêðåòíûé èñïîëüçóåìûé ïðîòîêîë.

Äëÿ ðàññìàòðèâàåìûõ íàìè äâóõ ñåìåéñòâ àäðåñàöèè è äâóõ òèïîâ âçàèìîäåéñòâèÿ ïðîòîêîë îäíîçíà÷íî îïðåäåëÿåòñÿ çíà÷åíèÿìè ïåðâûõ äâóõ ïàðàìåòðîâ, òàê ÷òî â êà÷åñòâå ýòîãî ïàðàìåòðà âñåãäà ìîæíî óêàçàòü ÷èñëî0.Âûçîâ âîçâðàùàåò -1 â ñëó÷àå îøèáêè; â ñëó÷àå óñïåõà âîçâðàùàåòñÿ íîìåð ôàéëîâîãî äåñêðèïòîðà, ñâÿçàííîãî ñ ñîçäàííûì ñîêåòîì.23.3Ðàáîòà ñ àäðåñàìè ñîêåòîâ. Âûçîâ bind()Ñâÿçûâàíèå ñîêåòà ñ êîíêðåòíûì àäðåñîì ïðîèçâîäèòñÿ âûçîâîì bind():int bind(int sockfd, struct sockaddr *addr, int addrlen);ãäå sockfd − äåñêðèïòîð ñîêåòà, ïîëó÷åííûé â ðåçóëüòàòå âûïîëíåíèÿ âûçîâà socket(); addr − óêàçàòåëü íà ñòðóêòóðó, ñîäåðæàùóþ àäðåñ; íàêîíåö,addrlen − ðàçìåð ñòðóêòóðû àäðåñà â áàéòàõ.Ðåàëüíî â êà÷åñòâå ïàðàìåòðà addr èñïîëüçóåòñÿ íå ñòðóêòóðà òèïàsockaddr, à ñòðóêòóðà äðóãîãî òèïà, êîòîðûé çàâèñèò îò èñïîëüçóåìîãî ñåìåéñòâà àäðåñàöèè.123 ñåìåéñòâå AF_INET èñïîëüçóåòñÿ ñòðóêòóðà struct sockaddr_in, óìåþùàÿ õðàíèòü ïàðó IP-àäðåñ + ïîðò. Ýòà ñòðóêòóðà èìååò ñëåäóþùèå ïîëÿ:• sin_family − îáîçíà÷àåò ñåìåéñòâî àäðåñàöèè (â äàííîì ñëó÷àå çíà÷åíèå ýòîãî ïîëÿ äîëæíî áûòü óñòàíîâëåíî â AF_INET).• sin_port − çàäàåò íîìåð ïîðòà â ñåòåâîì ïîðÿäêå áàéò, êîòîðûé, âîîáùå ãîâîðÿ, ìîæåò îòëè÷àòüñÿ îò ïîðÿäêà áàéò, èñïîëüçóåìîãî íà äàííîé ìàøèíå.

Ñîîòâåòñòâåííî, çíà÷åíèå äëÿ çàíåñåíèÿ â ýòî ïîëå äîëæíîáûòü ïîëó÷åíî èç âûáðàííîãî íîìåðà ïîðòà âûçîâîì ôóíêöèè htons()3 .• sin_addr − çàäàåò IP-àäðåñ. Ïîëå sin_addr ñàìî ÿâëÿåòñÿ ñòðóêòóðîé,èìåþùåé ëèøü îäíî ïîëå ñ èìåíåì s_addr, êîòîðîå õðàíèò ip-àäðåñ ââèäå áåççíàêîâîãî ÷åòûðåõáàéòíîãî öåëîãî. ñåìåéñòâå AF_UNIX èñïîëüçóåòñÿ ñòðóêòóðà struct sockaddr_un, â êîòîðîé ìîæíî õðàíèòü èìÿ ôàéëà. Ýòà ñòðóêòóðà ñîñòîèò èç äâóõ ïîëåé:• sun_family − îáîçíà÷àåò ñåìåéñòâî àäðåñàöèè (â äàííîì ñëó÷àå çíà÷åíèå ýòîãî ïîëÿ äîëæíî áûòü óñòàíîâëåíî â AF_UNIX).• sun_path − ìàññèâ íà 108 ñèìâîëîâ, â êîòîðûé íåïîñðåäñòâåííî çàïèñûâàåòñÿ ñòðîêà èìåíè ôàéëà.Âûçîâ bind() âîçâðàùàåò 0 â ñëó÷àå óñïåõà, -1 â ñëó÷àå îøèáêè.

Ó÷òèòå, ÷òî ñóùåñòâóåò ìíîæåñòâî ñèòóàöèé, â êîòîðûõ âûçîâ bind() ìîæåò íåïðîéòè; íàïðèìåð, îøèáêà ïðîèçîéäåò â ñëó÷àå ïîïûòêè èñïîëüçîâàíèÿ ïðèâèëåãèðîâàííîãî íîìåðà ïîðòà (îò 1 äî 1023) èëè ïîðòà, êîòîðûé íà äàííîéìàøèíå óæå êåì-òî çàíÿò (âîçìîæíî, äðóãîé âàøåé ïðîãðàììîé). Ïîýòîìóîáðàáîòêà îøèáîê ïðè âûçîâå bind() îñîáåííî âàæíà.Êðîìå âûçîâà bind() ñòðóêòóðû òèïîâ sockaddr_XXX èñïîëüçóþòñÿ âîìíîãèõ äðóãèõ ñëó÷àÿõ: âåçäå, ãäå íåîáõîäèìî çàäàòü àäðåñ ñîêåòà.23.4Ïðèåì è ïåðåäà÷à äåéòàãðàììÐàññìîòðèì ðàáîòó ñ ñîêåòàìè äåéòàãðàììíîãî òèïà.Ñîêåò ñîçäàåòñÿ âûçîâîì socket() ñ óêàçàíèåì êîíñòàíòû SOCK_DGRAM âêà÷åñòâå âòîðîãî ïàðàìåòðà.

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

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

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

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