А.В. Столяров - Введение в операционные системы (1152218), страница 16
Текст из файла (страница 16)
Ïðè èõ ïåðåïîëíåíèè î÷åðåäíàÿ îïåðàöèÿ âûâîäà áóäåò áëîêèðîâàíà äî òåõ ïîð, ïîêà â áóôåðå íå îñâîáîäèòñÿ ìåñòî.Íàèáîëåå òÿæåëîé ÿâëÿåòñÿ ñèòóàöèÿ ïåðåïîëíåíèÿ áóôåðà ïîñëåäîâàòåëüíîãî ââîäà. Òàêîå ìîæåò ïðîèçîéòè, íàïðèìåð, åñëè ïî êàíàëó ñâÿçè ïîñòóïàþò äàííûå, à ïðîöåññ, îòâå÷àþùèé çà èõ ïîëó÷åíèå è îáðàáîòêó, ïîêàêèì-ëèáî ïðè÷èíàì ÷òåíèÿ äàííûõ íå ïðîèçâîäèò (íàïðèìåð, ïðîñòî íåóñïåâàåò).  ýòîì ñëó÷àå âîçìîæíà ïîòåðÿ âõîäÿùèõ äàííûõ, ðàçðûâ ñîåäèíåíèÿ ïî êàíàëó ñâÿçè è ò.ï.
ßñíî, ÷òî òàêèõ ñèòóàöèé ñëåäóåò ïî âîçìîæíîñòèíå äîïóñêàòü.11.7.5Ñèíõðîííûé è àñèíõðîííûé ââîä-âûâîäÈíîãäà íåîáõîäèìî òî÷íî óäîñòîâåðèòüñÿ â òîì, ÷òî èíôîðìàöèÿ, ïåðåäàííàÿ â îïåðàöèè âûâîäà, áûëà ôèçè÷åñêè çàïèñàíà íà äèñê.  êà÷åñòâåïðîñòåéøåãî ïðèìåðà ìîæíî íàçâàòü îïåðàöèþ âûâîäà íà ñúåìíûé äèñê (äèñêåòó) ïåðåä ôèçè÷åñêèì óäàëåíèåì ýòîãî äèñêà èç ñèñòåìû. Áîëåå ñëîæíûì69ÿâëÿåòñÿ ïðèìåð ñ áàíêîìàòîì, âûäàþùèì äåíüãè: ïðåæäå ÷åì âûäàòü ïà÷êóáàíêíîò, íåîáõîäèìî óäîñòîâåðèòüñÿ â òîì, ÷òî ýòà îïåðàöèÿ ðåàëüíî çàôèêñèðîâàíà â äîëãîâðåìåííîé ïàìÿòè, òî åñòü ÷òî ñî ñ÷åòà êëèåíòà ñîîòâåòñòâóþùàÿ ñóììà ñïèñàíà.Ýòî ëîãè÷íî ïðèâîäèò íàñ ê âîïðîñó î òîì, â êàêîé ìîìåíò ñëåäóåò âåðíóòü óïðàâëåíèå ïðîöåññó, çàïðîñèâøåìó îïåðàöèþ âûâîäà.Äâà ïðîòèâîïîëîæíûõ ïîäõîäà ñîñòîÿò â òîì, ÷òî óïðàâëåíèå ìîæíî âåðíóòü ñðàçó æå, çàïèñàâ äàííûå â áóôåð è íå äîæèäàÿñü êàêèõ-ëèáî ðåçóëüòàòîâ, ëèáî, íàïðîòèâ, çàïèñàòü èíôîðìàöèþ â áóôåð, íî óïðàâëåíèå ïîëüçîâàòåëüñêîìó ïðîöåññó íå âîçâðàùàòü, ïîêà îïåðàöèÿ íå áóäåò ôèçè÷åñêèïðîèçâåäåíà.Ýòè äâà ïîäõîäà íàçûâàþòñÿ, ñîîòâåòñòâåííî, àñèíõðîííûì è ñèíõðîííûì.Àñèíõðîííûé ïîäõîä ýôôåêòèâåí ïî âðåìåíè, ïîñêîëüêó ïîçâîëÿåò ïðîöåññó ïðîäîëæàòü ðàáîòó, íå äîæèäàÿñü îêîí÷àíèÿ ìåäëåííîé ôèçè÷åñêîéîïåðàöèè.
Ñ äðóãîé ñòîðîíû, ñèíõðîííûé ïîäõîä áîëåå íàäåæåí, ò.ê. åñëèâî âðåìÿ âûïîëíåíèÿ ôèçè÷åñêèõ äåéñòâèé ñ óñòðîéñòâîì ïðîèçîéäåò êàêàÿëèáî îøèáêà, îá ýòîì ìîæíî áóäåò ñðàçó æå ñîîáùèòü ïðîöåññó, òîãäà êàê ïðèàñèíõðîííîì ïîñòðîåíèè âûâîäà ïðîöåññ ìîæåò äàæå óñïåòü çàâåðøèòüñÿ äîòîãî, êàê ðåçóëüòàòû îïåðàöèè ñòàíóò èçâåñòíû.Âûáîð òîãî èëè èíîãî ïîäõîäà çàâèñèò îò ñòîÿùèé ïåðåä íàìè êîíêðåòíûõçàäà÷. Ê ïðèìåðó, ôàéëîâûå ñèñòåìû ìîæíî èñïîëüçîâàòü êàê â ñèíõðîííîì,òàê è â àñèíõðîííîì ðåæèìå. ×àñòî èñïîëüçóåòñÿ ïîäõîä, ïðè êîòîðîì ôèêñèðîâàííûå äèñêè ðàáîòàþò â àñèíõðîííîì ðåæèìå, à ñúåìíûå äèñêè (äèñêåòû,ôëåø-êàðòû è ïð.) − â ñèíõðîííîì.Îòìåòèì, ÷òî èìåííî ïðèìåíåíèåì àñèíõðîííîãî ðåæèìà îáóñëîâëåíà êðàéíÿÿ íåæåëàòåëüíîñòü âûêëþ÷åíèÿ ïèòàíèÿ êîìïüþòåðà áåç ïîäãîòîâêè ñèñòåìû ê òàêîìó âûêëþ÷åíèþ.
Ðåçóëüòàòîìíåîæèäàííîãî îòêëþ÷åíèÿ ïèòàíèÿ ìîæåò ñòàòü, êàê èçâåñòíî, íàðóøåíèåöåëîñòíîñòè ôàéëîâîé ñèñòåìû è ïîòåðÿ äàííûõ, à èíîãäà è ïîëíîå ðàçðóøåíèå ôàéëîâîé ñèñòåìû íà ëîãè÷åñêîì óðîâíå, íåñìîòðÿ íà òî, ÷òî ôèçè÷åñêèàïïàðàòóðà ìîæåò ïðè ýòîì íèñêîëüêî íå ïîñòðàäàòü.Ïðè ðàáîòå â àñèíõðîííîì ðåæèìå îïåðàöèîííàÿ ñèñòåìà îáû÷íî ïðåäîñòàâëÿåò âîçìîæíîñòü ïðèíóäèòåëüíîãî ñáðîñà ñîäåðæèìîãî áóôåðîâ íàäèñê. Ýòî íàçûâàåòñÿ ïðèíóäèòåëüíîé ñèíõðîíèçàöèåé.70Ëåêöèÿ 61212.1Ôàéëîâûé ââîä-âûâîäÎáùèå ïîíÿòèÿ ôàéëîâûõ ñèñòåìÏîä ôàéëîì â òåðìèíîëîãèè, ñâÿçàííîé ñ êîìïüþòåðàìè, îáû÷íî ïîíèìàåòñÿ íåêèé íàáîð õðàíèìûõ íà âíåøíåì çàïîìèíàþùåì óñòðîéñòâå äàííûõ,èìåþùèé èìÿ1 .Ïîäñèñòåìà îïåðàöèîííîé ñèñòåìû, îòâå÷àþùàÿ çà õðàíåíèå èíôîðìàöèèíà âíåøíèõ çàïîìèíàþùèõ óñòðîéñòâàõ â âèäå èìåíîâàííûõ ôàéëîâ, íàçûâàåòñÿ ôàéëîâîé ñèñòåìîé.Òåðìèí ôàéëîâàÿ ñèñòåìà èíîãäà èñïîëüçóåòñÿ â ñîâåðøåííî èíîì çíà÷åíèè, à èìåííî, äëÿ îáîçíà÷åíèÿ ñòðóêòóð äàííûõ, ñîçäàâàåìûõ íà âíåøíåìçàïîìèíàþùåì óñòðîéñòâå ñ öåëüþ îðãàíèçàöèè õðàíåíèÿ íà ýòîì óñòðîéñòâåäàííûõ â âèäå èìåíîâàííûõ ôàéëîâ.
Îáû÷íî èç êîíòåêñòà ìîæíî îäíîçíà÷íî îïðåäåëèòü, êàêàÿ èç äâóõ ôàéëîâûõ ñèñòåì èìååòñÿ â âèäó, òàê ÷òîïóòàíèöû òàêàÿ ïåðåãðóçêà òåðìèíà íå ñîçäàåò.Ðàííèå ôàéëîâûå ñèñòåìû ïîçâîëÿëè äàâàòü ôàéëàì èìåíà òîëüêî îãðàíè÷åííîé äëèíû, ïðè÷åì ýòè èìåíà íàõîäèëèñü â îäíîì îáùåì ïðîñòðàíñòâåèìåí; åñòåñòâåííî, îò èìåí òðåáîâàëàñü óíèêàëüíîñòü. ßñíî, ÷òî òàêîé ïîäõîä ìîæåò ðàáîòàòü ëèøü äî òåõ ïîð, ïîêà ôàéëîâ íà îäíîì óñòðîéñòâå ñðàâíèòåëüíî íåìíîãî. Ñ ðîñòîì îáúåìîâ äèñêîâûõ íàêîïèòåëåé ïîòðåáîâàëàñüáîëåå ãèáêàÿ ñõåìà èìåíîâàíèÿ.×òîáû ñîçäàòü òàêóþ ãèáêîñòü, ââåëè ïîíÿòèå äèðåêòîðèè, èëè êàòàëî2ãà .
Êàòàëîã ïðåäñòàâëÿåò ñîáîé îñîáûé òèï ôàéëà, õðàíÿùèé èìåíà ôàéëîâ(íåêîòîðûå èç êîòîðûõ, âîçìîæíî, ñàìè ÿâëÿþòñÿ êàòàëîãàìè). Ïðè ñîçäàíèèíà äèñêå ôàéëîâîé ñèñòåìû ñîçäàåòñÿ îäèí êàòàëîã, íàçûâàåìûé êîðíåâûìêàòàëîãîì. Ïðè íåîáõîäèìîñòè ìîæíî ñîçäàòü äîïîëíèòåëüíûå êàòàëîãè, àèõ èìåíà çàïèñàòü â êîðíåâîé. Òàêèå êàòàëîãè èíîãäà íàçûâàþò êàòàëîãàìèïåðâîãî óðîâíÿ (âëîæåííîñòè).  íèõ, â ñâîþ î÷åðåäü, òîæå ìîæíî ñîçäàâàòü1 ßñíî,÷òî ýòà ôðàçà íå ìîæåò ïðåòåíäîâàòü íà ðîëü ñòðîãîãî îïðåäåëåíèÿ; îíà äàíà ëèøü äëÿ òîãî,÷òîáû çàôèêñèðîâàòü îñíîâíûå íóæíûå íàì ñâîéñòâà ôàéëîâ2  àíãëîÿçû÷íîé ëèòåðàòóðå èñïîëüçóåòñÿ òåðìèí directory ; ñëîâî êàòàëîã ïðåäñòàâëÿåò ñîáîé áîëååìåíåå òî÷íûé ïåðåâîä ýòîãî òåðìèíà íà ðóññêèé, îäíàêî â ïîñëåäíèå ãîäû ñëîâî äèðåêòîðèÿ âîøëîâ äåéñòâóþùèé ñëîâàðíûé ñîñòàâ ðóññêîãî ÿçûêà, ïåðåñòàâ áûòü æàðãîííûì.
Îòìåòèì, ÷òî ñëîâî êàòàëîã òîæå èìååò èíîñòðàííîå ïðîèñõîæäåíèå, ïðîñòî áûëî çàèìñòâîâàíî ðàíüøå.  ïîñëåäíèå ãîäûìàðêåòèíãîâàÿ ïîëèòèêà îòäåëüíûõ êîìïàíèé áûëà íàïðàâëåíà íà çàìåíó òåðìèíà directory ñëîâîì folder(ñîîòâåòñòâóþùèé ðóññêèé ïåðåâîä − ïàïêà). Äëÿ ïðîôåññèîíàëüíûõ ïðîãðàììèñòîâ òàêàÿ ëåêñèêàíåïðèåìëåìà õîòÿ áû ïî òîé ïðè÷èíå, ÷òî äëÿ ñìåíû èñïîëüçóåìîãî (è óñòîÿâøåãîñÿ) òåðìèíà íóæíû,ïî-âèäèìîìó, áîëåå âåñêèå ïðè÷èíû, íåæåëè ìíåíèå äàëåêèõ îò ïðîãðàììèðîâàíèÿ ñîòðóäíèêîâ îòäåëüíîâçÿòîé êîììåð÷åñêîé êîìïàíèè.71êàòàëîãè (âòîðîãî óðîâíÿ ), è ò.ä.Ïðè èñïîëüçîâàíèè êàòàëîãîâ ìîæíî ãîâîðèòü îòäåëüíî î êðàòêîì èëèëîêàëüíîì èìåíè ôàéëà (òî èìÿ, êîòîðîå ôàéë èìååò â ñâîåì êàòàëîãå) è îïîëíîì èìåíè ôàéëà èëè ïîëíîì ïóòè ê ôàéëó (ñòðîêà ñèìâîëîâ, âêëþ÷àþùàÿ ïîñëåäîâàòåëüíî èìåíà êàòàëîãîâ ïåðâîãî, âòîðîãî è ò.ä.
óðîâíåé, à çàòåìèìÿ ñàìîãî ôàéëà â ïîñëåäíåì èç êàòàëîãîâ). Èìåíà êàòàëîãîâ è ôàéëà îáû÷íî ðàçäåëÿþòñÿ ñïåöèàëüíûì ñèìâîëîì; â ñèñòåìàõ MS-DOS è Windows ýòîîáðàòíàÿ êîñàÿ ÷åðòà (\), â ñèñòåìå Unix − ïðÿìàÿ êîñàÿ ÷åðòà (/). Òàê,åñëè ìû ñîçäàäèì êàòàëîã ïåðâîãî óðîâíÿ work, â íåì ñîçäàäèì êàòàëîã âòîðîãî óðîâíÿ project, â êîòîðîì ðàçìåñòèì ôàéë program.c, òî ïîëíûé ïóòüê ýòîìó ôàéëó â ÎÑ Unix áóäåò âûãëÿäåòü òàê: /work/project/program.c.Îáû÷íî â êàæäîì êàòàëîãå ñóùåñòâóåò ôàéë ñî ñïåöèàëüíûì èìåíåì, îáîçíà÷àþùèé êàòàëîã áîëåå âûñîêîãî óðîâíÿ, ñîäåðæàùèé äàííûé êàòàëîã (òàêíàçûâàåìûé ðîäèòåëüñêèé êàòàëîã ).
 ÎÑ Unix, à ïîçäíåå è â MS-DOS èWindows, â êà÷åñòâå òàêîãî ñïåöèàëüíîãî èìåíè èñïîëüçóåòñÿ .. (äâå òî÷êè).Ïðè ðàáîòå ñ ôàéëàìè îáû÷íî íåêîòîðûé êàòàëîã íà äèñêå òåì èëè èíûìñïîñîáîì îáúÿâëÿåòñÿ òåêóùèì. Ê ôàéëàì, íàõîäÿùèìñÿ â òåêóùåì êàòàëîãå, ìîæíî îáðàùàòüñÿ áåç óêàçàíèÿ ïóòè, èñïîëüçóÿ òîëüêî êðàòêîå èìÿ.Äëÿ îáðàùåíèÿ ê ôàéëàì, íàõîäÿùèìñÿ âíå òåêóùåãî êàòàëîãà, ìîæíîèñïîëüçîâàòü êàê ïîëíûé ïóòü, òàê è îòíîñèòåëüíûé ïóòü, ñîñòîÿùèé èçèìåí êàòàëîãîâ, ïåðâûé èç êîòîðûõ íàõîäèòñÿ â òåêóùåì, âòîðîé − â ïåðâîì,è ò.ä.
Ïðè íåîáõîäèìîñòè ìîæíî èñïîëüçîâàòü ñïåöèàëüíîå èìÿ, ññûëàþùååñÿíà ðîäèòåëüñêèé êàòàëîã.Ïóñòü,êïðèìåðó,âôàéëîâîéñèñòåìååñòüôàéëû/home/work/projects/task/prog.c è /home/fun/books/alice.txt. Ïóñòüòåïåðü êàòàëîã /home/work/projects îáúÿâëåí òåêóùèì. Îòíîñèòåëüíûìèïóòÿìè íàøèõ ôàéëîâ áóäóò â ýòîì ñëó÷àå, ñîîòâåòñòâåííî, task/prog.c è../../fun/books/alice.txt.Îïåðàöèîííûå ñèñòåìû îòëè÷àþò ïîëíûå ïóòè îò îòíîñèòåëüíûõ íàëè÷èþ ñèìâîëà-ðàçäåëèòåëÿ ïåðåä ïåðâûì èìåíåì â ïóòè. Åñëè ýòîò ñèìâîë(ïðÿìàÿ èëè îáðàòíàÿ êîñàÿ ÷åðòà, â çàâèñèìîñòè îò ÎÑ) â íà÷àëå ïóòè ïðèñóòñòâóåò, òî ìû èìååì äåëî ñ ïîëíûì ïóòåì, åñëè íåò − òî ñ îòíîñèòåëüíûì.12.212.2.1Ôàéëîâàÿ ñèñòåìà ÎÑ UnixÌîíòèðîâàíèå îòëè÷èå îò ìíîãèõ äðóãèõ îïåðàöèîííûõ ñèñòåì, â ÎÑ Unix ôàéëîâàÿñèñòåìà ïðåäñòàâëÿåò ñîáîé åäèíîå äåðåâî êàòàëîãîâ.
 èìÿ ôàéëà íè â êàêîì72âèäå íå âõîäèò èìÿ óñòðîéñòâà, íà êîòîðîì ýòîò ôàéë íàõîäèòñÿ (òî åñòüíè÷åãî àíàëîãè÷íîãî ïðèâû÷íûì äëÿ ïîëüçîâàòåëåé Windows îáîçíà÷åíèÿìA:, C: è ò.ï. â ÎÑ Unix íåò). ñëó÷àå, åñëè â ñèñòåìå èìååòñÿ íåñêîëüêî äèñêîâ, îäèí èç íèõ îáúÿâëÿåòñÿ êîðíåâûì, à îñòàëüíûå ìîíòèðóþòñÿ â òîò èëè èíîé êàòàëîã, íàçûâàåìûéòî÷êîé ìîíòèðîâàíèÿ (àíãë.
mount point ), ïðè ýòîì äëÿ óêàçàíèÿ ïîëíûõïóòåé ê ôàéëàì íà ýòîì äèñêå íåîáõîäèìî ê ïîëíîìó èìåíè ôàéëà â ðàìêàõäèñêà äîáàâèòü ñïåðåäè ïîëíûé ïóòü òî÷êè ìîíòèðîâàíèÿ. Ê ïðèìåðó, åñëèó íàñ åñòü äèñêåòà, íà íåé ñîçäàí êàòàëîã work, â íåì − ôàéë prog.c, à ñàìà äèñêåòà ñìîíòèðîâàíà ïîä êàòàëîã /mnt/floppy, ïîëíûé ïóòü ê íàøåìóôàéëó áóäåò âûãëÿäåòü òàê: /mnt/floppy/work/prog.c.12.2.2Èìåíà ôàéëîâ è èíäåêñíûå äåñêðèïòîðû ÎÑ Unix êàòàëîãè õðàíÿò òîëüêî èìÿ ôàéëà è íåêîòîðûé íîìåð, ïîçâîëÿþùèé èäåíòèôèöèðîâàòü ñîîòâåòñòâóþùèé ôàéë.