Text
                    Введение
в операционные
системы
Том 2


An Introduction to Operating Systems Revised First Edition Harvey M. Dei tel Boston College 1984 Addison-Wesley Publishing Company Reading, Massachusetts • Menlo Park, California London • Amsterdam • Don Mills, Ontario • Sydney
Г Дейтел Введение в операционные системы В двух томах Том 2 Перевод с английского Л. А. Теплицкого, А. Б. Ходу лева, Вс. С. Штаркмана под редакцией Вс. С. Штаркмана Москва «Мир» 1987
ББК 32.973 Д27 УДК 681.325.5 Дейтел Г. Д27 Введение в операционные системы: В 2-х т. Т. 2. Пер. с англ.— М.: Мир, 1987.— 398 с., ил. Монография учебного характера, написанная американским спе¬ циалистом и охватывающая современные проблемы операционных систем: управление процессами, работу с памятью, мультипроцессор¬ ные средства, сетевые операционные системы, защиту системы. В ней описаны пять основных операционных систем, используемых в мире в настоящее время. Изложение методически продумано, снабжено большим числом упражнений, диаграмм, рисунков. В русском переводе книга выходит в двух томах. Во второй том включены гл. 12—22 и приложения. Для разработчиков операционных систем, программистов, препо« давателей и студентов вузов. „ 1702070000-290 А 041 (01)-87 35’87' Ч> 1 ББК 32.973 Редакция литературы по математическим, наукам © 1984 by Addison-Wesley Publishing Company, Inc. © перевод на русский язык, «Мир», 1987
ЧАСТЬ 5 Управление внешней памятью Глава 12 Планирование работы с магнитными дисками Колесо судьбы свершило свой оборот.1' Король Лир, действие 5, сцена 3, 176 Вильям Шекспир Природу следует изображать при помощи простей¬ ших объемных элементов — куба, цилиндра, шара, конуса — и все это в перспективе. Поль Сезанн Просите, и дано будет вам; ищите, и найдете; стучите, и отворят вам. Евангелие от Матфея 2,5—7 12.1 Введение 12.2 Работа накопителя на магнитных дисках с перемещаемыми го¬ ловками 12.3 Почему необходимо планирование 12.4 Целевые характеристики принципов планирования 12.5 Оптимизация поиска цилиндра 12.5.1 Планирование по принципу FCFS («первый пришед¬ ший обслуживается первым») 12.5.2 Планирование по принципу SSTF («с наименьшим временем поиска — первым») 12.5.3 Планирование по принципу SCAN 12.5.4 Планирование по принципу N-Step SCAN 12.5.5 Планирование по принципу C-SCAN 12.5.6 Схема Эшенбаха 12.6 Оптимизация по времени ожидания записи 12.7 Системные соображения 12.7.1 Дисковая память как критический ресурс 12.7.2 Уровень мультипрограммирования 12.7.3 Многодисковые подсистемы 12.7.4 Неравномерное распределение запросов 12.7.5 Методы организации файлов 12.1 Введение Неэффективность мультипрограммных вычислительных систем часто обусловливается неправильным использованием устройств внешней памяти с вращающимся носителем, таких, как магнитные диски и барабаны. В этой главе мы сделаем краткий обзор литера¬ туры по управлению такими устройствами. Мы объясним, как работают дисковые накопители с перемещае¬ мыми головками, обсудим причины неэффективной работы, рассмот- х) В переводе Б. Пастернака»
6 Часть 5 Управление внешней памятью рим различные способы повышения эффективности, а также отметим сходства и различия этих способов, их достоинства и недостатки с точки зрения нескольких критериев, определяющих скоростные характеристики. Мы рассмотрим различные системные соображения, которые могут повлиять на решение разработчика о том, включать или не включать в конкретную систему специальные средства планирова¬ ния работы устройств внешней памяти с вращающимся носителем, а также покажем, в каких ситуациях планирование не имеет смысла. 12.2 Работа накопителя на магнитных дисках с перемещаемыми головками На рис. 12.1 схематически изображен накопитель на магнитных дисках с перемещаемыми головками (вид сбоку). Данные записы¬ ваются на поверхностях ряда магнитных дисков, в данном случае —• головками (вид сбоку). жестких магнитных дисков. Эти диски жестко соединены общим шпинделем, который вращается с очень высокой скоростью (в неко¬ торых накопителях скорость вращения составляет 3600 оборотов в минуту).
Гл. 12 Планирование работы с магнитными дисками 7 Доступ к данным (т. е. операции чтения или записи) осуществля¬ ется при помощи ряда магнитных головок чтения-записи, по одной головке на дисковую поверхность. Головке доступны только те дан¬ ные, которые находятся на участке дисковой поверхности непосред¬ ственно под (над) ней. Поэтому для обеспечения возможности досту¬ па к данным тот участок дисковой поверхности, с которого данные будут считываться (или записываться), должен вначале переместить¬ ся в процессе вращения дисков так, чтобы оказаться непосредственно под головкой. Время, затрачиваемое на перемещение участка по¬ верхности из текущего положения в положение под головкой чте¬ ния-записи, называется временем ожидания. Каждая из ряда магнитных головок, если она не перемещается в данный момент, описывает на дисковой поверхности круговую Рис. 12.2 Компоненты процедуры доступа к информации, хранящейся на диске. дорожку, на которой могут размещаться данные. Все головки зак¬ реплены на одной каретке, или блоке позиционера. Каретка с го¬ ловками может перемещаться по радиусу дисков в том или другом направлении. Перемещая каретку с головками в новую позицию, можно получить доступ к другой группе дорожек. Группа дорожек, находящихся под всеми головками чтения-записи в каком-то кон¬ кретном положении каретки, образует вертикальный цилиндр. Процесс перемещения каретки с головками на новый цилиндр на¬ зывается операцией поиска цилиндра, или подвода. Таким образом, чтобы получить возможность доступа к кон¬ кретной записи данных, расположенной на диске с перемещаемыми
8 Часть 5 Управление внешней памятью головками, в общем случае необходимо выполнить несколько опера¬ ций (рис. 12.2). Прежде всего каретку необходимо установить на соответствующий цилиндр (это поиск цилиндра). Затем нужно до¬ ждаться, когда под головкой окажется точка на вращающемся дис¬ ке, с которой начинается запись (это поиск записи, или поиск на до¬ рожке, с которььм связано время ожидания). Затем сама запись* которая в принципе может иметь произвольный размер (вплоть до полного размера круговой дорожки), должна пройти под головкой чтения-записи (это так называемое время передачи). Поскольку каждая из перечисленных операций связана с механическим дви¬ жением, общее время, требуемое для доступа к конкретной записи, зачастую составляет заметную долю секунды (от 0.01 до 0.1 секун¬ ды). Это очень много по сравнению с весьма высокими скоростными показателями работы центральных устройств вычислительной ма¬ шины. 12.3 Почему необходимо планирование В мультипрограммных вычислительных системах одновременно выполняется много процессов, которые могут генерировать запросы на обращения к дискам. Поскольку эти процессы чаще всего дела¬ ют запросы гораздо быстрее, чем их обслуживают дисковые устрой¬ ства с перемещающимися головками, то для каждого устройства фор¬ мируется очередь запросов. В некоторых вычислительных системах эти запросы обслуживаются в порядке поступления, т. е. по прин¬ ципу «первый пришедший обслуживается первым» (JFCFS — first- come-fir si-served). Принцип FCFS является справедливым методом предоставления услуг, однако при повышении частоты запросов (т. е. нагрузки) он может приводить к очень большим задержкам. Метод FCFS характеризуется случайностью поиска, при котором последовательно поступающие запросы могут вызывать длительные по времени подводы от самых внутренних к самым наружным ци¬ линдрам (рис. 12.3). Чтобы свести к минимуму время, затрачивае¬ мое на поиск нужных записей, целесообразно упорядочить запросы по какому-то другому принципу, отличному от FCFS. Этот процесс и называется планированием работы с диском. Планирование требует тщательного анализа ожидающих своей очереди запросов, чтобы определить наиболее эффективный порядок их обслуживания. Планировщик дисковой памяти анализирует позиционные взаимосвязи между ожидающими запросами. После этого очередь запросов перестраивается таким образом, чтобы их выполнение обеспечивалось при минимальных механических пере¬ мещениях. В литературе рассматриваются два наиболее распространенных вида планирования: это оптимизация по времени поиска цилиндра и оптимизация по времени ожидания записи. Поскольку времена поиска цилиндров превышают времена ожидания записи, как права-
Гл. 12 Планирование работы с магнитными дисками о ло, на порядок величины, большинство алгоритмов планирования ставит своей целью минимизацию времен поиска цилиндров для не¬ которого множества запросов. Минимизация времени ожидания записи оказывает обычно весьма незначительный эффект на общие Рис. 12.3 Случайная картина поисков цилиндров при обслуживании запросов по принципу FCFS. Номера указывают порядок, в котором поступали запросы. скоростные характеристики системы, если не считать режимов очень больших нагрузок. В условиях малых нагрузок (т. е. при небольшой средней длине очереди запросов) принцип FCFS можно считать вполне приемле¬ мой дисциплиной обслуживания запросов. Однако при средних и больших нагрузках планирование может обеспечить гораздо лучшие скоростные характеристики, чем простой метод FCFS. 12.4 Целевые характеристики принципов планирования Мы уже упомянули, что FCFS является относительно справед¬ ливым методом обслуживания запросов. Для разделения принципов планирования на категории существуют и некоторые другие крите¬ рии: • пропускная способность, • среднее время ответа, • разброс, или дисперсия времен ответа (т. е. предсказуемость).
10 Часть 5 Управление внешней памятью Очевидно, что каждая стратегия планирования должна быть направлена на увеличение пропускной способности системы, т. е. количества запросов, обслуживаемых в единицу времени. Посколь¬ ку стратегии планирования позволяют минимизировать время, за¬ трачиваемое на выполнение длительных поисков, они безусловно могут повысить пропускную способность по сравнению с обслужи¬ ванием по принципу FCFS. Кроме того, стратегия планирования должна стремиться к минимизации среднего времени ответа. И опять- таки, поскольку рациональное планирование уменьшает время по¬ иска цилиндров, оно безусловно дает возможность сократить сред¬ нее время ответа по сравнению с FCFS. Перечисленные выше критерии направлены на улучшение об¬ щих скоростных характеристик, быть может, за счет некоторых индивидуальных запросов. Планирование зачастую улучшает об¬ щую картину, хотя и несколько снижает скорость обслуживания определенных запросов. Одним из важных количественных показателей для оценки этого явления может служить разброс, или дисперсия времен ответа. Дисперсия—это термин из области статистики, имеющий четкое математическое определение. Это мера того, насколько далеко зна¬ чения индивидуальных элементов могут отклоняться от среднего зна¬ чения для этих элементов. В связи с этим мы используем дисперсию как показатель предсказуемости — чем меньше дисперсия, тем боль¬ ше предсказуемость. На^м необходима такая стратегия планирова¬ ния, которая бы минимизировала дисперсию. В противном случае может оказаться так, что время обслуживания определенных запро¬ сов просто нельзя будет предсказать. А это недопустимо, например, для системы резервирования авиационных билетов, где быстрый ответ может содействовать продаже билета или гарантировать, что пассажир успеет на нужный самолет. Если бы стратегия планиро¬ вания была направлена только на достижение максимальной про¬ пускной способности без одновременной минимизации дисперсии, она могла бы обрабатывать только удобные для обслуживания запро¬ сы, а какие-то полностью игнорировать. Разработчик должен учи¬ тывать, что подобная ситуация возможна. 12.5 Оптимизация поиска цилиндра Сводка наиболее распространенных стратегий оптимизации поиска цилиндров приведена на рис. 12.4 (Те72). Подробно эти стратегии рассматриваются в нескольких следующих разделах. 12.5.1 Планирование по принципу FCFS («первый пришедший обслуживается первым» ) При планировании по принципу FCFS первый поступивший запрос будет первым и обслуживаться. Принцип FCFS справедлив в том смысле, что после поступления некоторого запроса его место
Гл. 12 Планирование работы с магнитными дисками 11 • FCFS («первый пришедший обслуживается первым»). В этой стратегии запросы обслуживаются в порядке поступления. • SSTF («с наименьшим временем поиска — первым»). При по¬ зиционировании каретки с магнитными головками следующим выбирается запрос, для которого необходимо минимальное пе¬ ремещение каретки. ® SCAN («сканирование»). Каретка с головками совершает дви¬ жения туда и обратно над поверхностью, обслуживая все запросы, встречающиеся по пути. Каретка меняет направле¬ ние движения только в случае, если в текущем направлении больше нет запросов для обслуживания. © C-SCAN («циклическое сканирование»). Обслуживая запросы, каретка с головками движется в одном направлении, а именно в направлении к внутренней дорожке. Если впереди больше нет запросов для обслуживания, каретка скачком возвраща¬ ется к началу, обслуживая запрос, ближайший к наружной дорожке, а затем продолжает движение внутрь. ® N-Step SCAN («N-шаговое сканирование»). Каретка с голов¬ ками совершает движения туда и обратно, как и в случае SCAN, однако все запросы, поступающие во время хода в одном направлении, группируются и перестраиваются таким образом, чтобы их можно было наиболее эффективно обслу¬ живать во время обратного хода. © Схема Эшенбаха. Каретка с головками движется циклически, как в способе C-SCAN, однако данная схема отличается не¬ сколькими важными особенностями. При обслуживании каж¬ дого цилиндра осуществляется доступ точно к одной полной дорожке информации независимо от наличия еще запроса для этого цилиндра. Предусматривается переупорядочение запро¬ сов для обслуживания в рамках одного цилиндра с учетом углового положения записей, однако если два запроса отно¬ сятся к перекрывающимся секторам одного цилиндра, то только один из них обслуживается при текущем ходе каретки. Рис. 12.4 Основные стратегии планирования работы дисковой памяти (1. J.Teorey, «Properties of Disk Scheduling Policies in Multiprogrammed Computer Systems», Proceedings, 1972. FJCC, Vol. 41, Part 1, p. 2; AFIPS Press). в очереди фиксируется. Обслуживание этого запроса никогда не откладывается из-за поступления запроса более высокого приори¬ тета.
12 Часть 5 Управление внешней памятью Если запросы равномерно распределяются по поверхностям дисков, то планирование по принципу FCFS приводит к картине случайного поиска. Здесь игнорируются позиционные взаимосвязи между запросами, ожидающими своего обслуживания в очереди, и не делается никаких попыток оптимизировать схему поиска. Стратегия FCFS приемлема, если дисковая память работает с малой нагрузкой. Однако при возрастании нагрузки быстро насту¬ пает насыщение, и времена ответа становятся слишком большими. Стратегия FCFS обеспечивает небольшую дисперсию, однако это служит слабым утешением для запроса, находящегося в конце оче¬ реди к диску, в то время как головки лихорадочно перескакивают с цилиндра на цилиндр в жарком «танце в стиле диско». 12.5.2 Планирование по принципу SSTF («с наименьшим временем поиска — первым» ) При планировании по принципу SSTF (shortest-seek-time-first') первым обслуживается запрос, который характеризуется минималь¬ ным расстоянием подвода (и тем самым наименьшим временем поис¬ ка цилиндра), если даже этот запрос не является первым в очереди. Рис. 12.5 Концентрация поисков при планировании по принципу SSTF, Для стратегии SSTF характерна резкая дискриминация опреде¬ ленных запросов. Обращения к диску проявляют тенденцию кон¬ центрироваться, в результате чего запросы на обращение к самым внутренним и к самым наружным дорожкам могут обслуживаться гораздо хуже, чем запросы к средним дорожкам (рис. 12.5).
Гл. 12 Планирование работы с магнитными дисками 13 Стратегия SSTF обеспечивает лучшую пропускную способность, чем FCFS, и лучшие средние времена ответа при умеренных нагруз¬ ках. Одним из существенных недостатков этой стратегии является увеличение дисперсии времен ответа в связи с дискриминацией на¬ ружных и внутренних дорожек. Это увеличение может быть допу¬ стимо в случаях, когда основное значение имеют повышение про¬ пускной способности и уменьшение средних времен ответа. Страте¬ гия SSTF приемлема для систем пакетной обработки, где главное —• это пропускная способность, однако большая дисперсия времен от¬ вета (т. е. плохая предсказуемость) делает ее мало пригодной для интерактивных систем. 12.5.3 Планирование по принципу SCAN Чтобы уменьшить дискриминацию крайних дорожек и улучшить дисперсию времен ответа, Деннинг (De67) разработал стратегию планирования SCAN («сканирование»). Стратегия SCAN в общем аналогична SSTF, если не считать того, что она выбирает для обслуживания тот запрос, для которого харак- . Обратный ход j каретки V Прямой ход J каретки Рис. 12.6 Планирование по принципу SCAN с привилегированными направ¬ лениями. г терно минимальное расстояние поиска в привилегированном направ¬ лении (рис. 12.6), Если в текущий момент привилегированное на- явление это от внутренних дорожек к наружным, то стратегия SCAN выоирает запрос с минимальным расстоянием подвода в на”
14 Часть 5 Управление внешней памятью ружном направлении. При реализации стратегии SCAN каретка с головками не меняет направления своего движения до тех пор, пока она не достигнет самого наружного цилиндра или пока не вы¬ яснится, что больше нет запросов, ожидающих обслуживания при движении в текущем привилегированном направлении. Принцип SCAN является основой большинства практически реализованных стратегий планирования работы с дисковой памятью. Стратегия SCAN очень похожа на SSTF с точки зрения повыше¬ ния пропускной способности и уменьшения средних времен ответа, но она значительно снижает дискриминацию крайних дорожек, присущую схемам SSTF, и обеспечивает гораздо меньшую дисперсию. Поскольку при стратегии SCAN головки сканируют диск, со¬ вершая движения туда и обратно, на крайних дорожках они бывают реже, чем на средних, однако это не столь серьезный недостаток, как дискриминация, свойственная методу SSTF. 12.5.4 Планирование по принципу N-Step SCAN Описанная выше базовая стратегия SCAN имеет одну интерес¬ ную модификацию под названием N-Step SCAN (N-шаговое скани¬ рование). В ней головки также совершают движения туда и обрат- j Прямой ход Рис. 12.7 Планирование по принципу /V-Step SCAN. но, как в случае SCAN, но на каждом проходе обслуживаются только те запросы, которые существовали в момент начала прохода. За¬ просы, поступающие во время прохода, группируются и упорядо¬
Гл. 12 Планирование работы с магнитными дисками 15 чиваются таким образом, чтобы их можно было оптимально обслу¬ жить на обратном ходу (рис. 12.7). Стратегия N-Step SCAN обеспечивает хорошие показатели как по пропускной способности, так и по среднему времени ответа. Од¬ нако самой важной ее чертой является небольшая дисперсия времен ответа по сравнению с принципом SSTF или обычным вариантом планирования SCAN. Стратегия N-Step SCAN исключает возмож¬ ность бесконечного откладывания, которое обычно возникает в слу¬ чае поступления большого количества запросов на обращение к те¬ кущему цилиндру. Эта стратегия предусматривает запоминание та¬ ких запросов для обслуживания при обратном ходе каретки. 12.5.5 Планирование по принципу C-SCAN Еще одна интересная модификация базовой стратегии SCAN носит название C-SCAN («циклическое сканирование»). Стратегия C-SCAN исключает свойственное предыдущим стратегиям дискри¬ минационное отношение к внутренним и наружным цилиндрам. Прямой ход у Скачкообразный ? переход на запрос, относящийся к \ самому наружному цилиндру. Следующий прямой ход Рис. 12.8 Планирование по принципу C-SCAN. Согласно стратегии C-SCAN, магнитные головки перемещаются от наружного цилиндра к внутреннему, причем обслуживание зап¬ росов производится по наикратчайшему времени поиска. Когда каретка завершает свой прямой ход, она скачком возвращается на обслуживание запроса, ближайшего к самому внешнему цилиндру, а затем возобновляет обслуживание запросов на прямом ходе, к
16 Часть 5 Управление внешней памятью внутреннему цилиндру. Стратегию C-SCAN можно реализовать та¬ ким образом, чтобы запросы, поступающие во время текущего пря¬ мого хода, обслуживались при следующем ходе (рис. 12.8). Благо¬ даря этому стратегия C-SCAN полностью исключает дискримина¬ цию запросов к внутренним или наружным цилиндрам. Она харак¬ теризуется очень малой дисперсией времен ответа. Результаты моделирования, приведенные в литературе (Те72а), показывают, что наиболее эффективная стратегия планирования работы дисковой памяти могла бы иметь два режима. В режиме ма¬ лых нагрузок наилучшие результаты дает стратегия SCAN, в то вре¬ мя как при средних и больших нагрузках — стратегия C-SCAN. Стратегия C-SCAN с оптимизацией по временам ожидания записи дает эффективные результаты в условиях очень больших нагрузок. 12.5.6 Схема Эшенбаха Эта стратегия, описанная на рис. 12.4, была первоначально разработана для системы продажи авиационных билетов, рассчи¬ танной на очень большие нагрузки. Схема Эшенбаха стала одной из первых схем, где была сделана попытка оптимизации с учетом не только времени поиска цилиндра, но также и времени поиска запи¬ си на дорожке (We66). Впоследствии оказалось, что стратегия C-SCAN с оптимизацией поиска записи при всех нагрузках является более эффективной, чем схема Эшенбаха (Те72). 12.6 Оптимизация по времени ожидания записи В условиях больших нагрузок вероятность нескольких одно¬ временных обращений к конкретному цилиндру возрастает, так что становится целесообразным осуществлять оптимизацию не только по поиску цилиндров, но и по времени ожидания записи. Оптимиза¬ ция по времени ожидания записи уже в течение многих лет приме¬ няется при работе с такими накопителями, имеющими фиксирован¬ ные головки, как магнитные барабаны (Fu74, St73). Аналогом стратегии SSTF, применяемой при оптимизации по времени поиска цилиндра, является стратегия SLTF (shortest-laten¬ cy-time-first — «с наименьшим временем ожидания — первым») для оптимизации по времени ожидания записи. Когда каретка позицио¬ нера с магнитными головками подводится на конкретный цилиндр, может оказаться, что много запросов ожидают обращения к раз¬ личным дорожкам этого цилиндра. Стратегия SLTF анализирует все эти запросы и первым обслуживает запрос с минимальным ожидани¬ ем записи (рис. 12.9). Показано (St73), что эта стратегия весьма близка к теоретически оптимальной, причем ее относительно легко реализовать.
Гл. 12 Планирование работы с магнитными лисками 17 Рис. 12.9 Планирование по принципу SLTF. Запросы будут обслуживаться в указанной последовательности независимо от порядка их поступления. 12.7 Системные соображения Когда целесообразно планирование работы с дисковой памятью? Когда оно может привести только к снижению скоростных характе¬ ристик? На эти вопросы необходимо отвечать с учетом особенностей системы в целом, где предполагается использовать дисковую память. В последующих разделах будет рассмотрено несколько соображений, которые могут повлиять на выбор разработчиком тех или иных реше¬ ний. 12.7.1 Дисковая память как критический ресурс Когда выясняется, что критическим ресурсом (узким местом) системы является дисковая память, некоторые разработчики реко¬ мендуют увеличивать количество дисковых накопителей системы. Это не всегда решает проблему, поскольку критическая ситуация здесь может создаваться из-за большой частоты запросов на обраще¬ ние к относительно малому количеству дисков. Если обнаруживает¬ ся^ что имеет место именно эта ситуация, можно воспользоваться той или иной стратегией планирования работы дисковой памяти как средством повышения скоростных характеристик и ликвидации этого узкого места.
18 Часть 5 Управление внешней памятью 12.7.2 Уровень мультипрограммирования Нагрузка на диски и случайность запросов^ как правило, воз¬ растают с увеличением степени мультипрограммирования. Введение средств планирования работы дисков может оказаться нецелесооб- разнььм в системе пакетной обработки с относительно низким уров¬ нем мультипрограммирования. Планирование зачастую оказывается эффективным в системе разделения времени со средним уровнем мультипрограммирования и может дать особенно заметные резуль¬ таты в системе коммутации сообщений, где производится обработка тысяч запросов. 12.7.3 Многодисковые подсистемы Из соображений экономичности и модульности аппаратные сред¬ ства дисковой памяти часто строятся таким образом, что несколько физических дисковых устройств работают под управлением одного Диск Диск Диск Диск Диск Диск Рис. 12.10 Многодисковые подсистемы. дискового контроллера. Этот контроллер в свою очередь подключа¬ ется к каналу ввода-вывода, который, собственно, и обеспечивает передачу информации от дисковых устройств к центральному компь¬ ютеру. Один канал может обслуживать несколько дисковых контрол¬ леров, каждый из которых может в свою очередь обслуживать не¬ сколько дисковых устройств (рис. 12.10).
Гл. 12 Планирование работы с магнитными лисками 19 Каналы ввода-вывода не подключаются непосредственно к ди¬ сковым устройствам, которые они обслуживают. Этот факт застав¬ ляет разработчика более тщательно анализировать характер узкого места, прежде чем принять решение о включении в систему средств планирования работы дисковой памяти. Узкое место может возни¬ кать из-за недостаточной мощности контроллера или недостаточной пропускной способности канала. Эти ситуации удается, как прави¬ ло, обнаружить при помощи специальных программных и аппарат¬ ных мониторов, предназначенных для определения количественных показателей активности работы каналов и контроллеров (см. гл. 14). Если оказывается недостаточной мощность контроллера, разработ¬ чик может пойти по пути изменения конфигурации системы, умень¬ шая количество дисковых устройств, подключенных к данному контроллеру. Если оказывается недостаточной пропускная способ¬ ность канала, то некоторые из устройств и контроллеров, подклю¬ ченные к этому каналу, можно переключить на другой канал или, быть может, следует приобрести дополнительный канал. Таким об¬ разом, чтобы исключить те или иные узкие места, может потребовать¬ ся реконфигурация аппаратных средств. Чтобы уменьшить вероятность перегрузки каналов, во многие системы дисковой памяти (1Ь74) включаются специальные средства слежения за текущим угловым положением дисков (RPS —rota¬ tional position sensing). Эти средства позволяют уменьшить время занятости канала при поиске нужной записи в дисковой памяти. Когда поступает запрос на обращение к некоторой записи, средства RPS освобождают канал для выполнения других операций вплоть до момента, непосредственно предшествующего прохождению нуж¬ ной записи под магнитной головкой. Механизм RPS позволяет од¬ ному каналу обрабатывать одновременно несколько запросов на обращение к дисковой памяти, повышая тем самым коэффициент использования оборудования. 12.7.4 Неравномерное распределение запросов Авторы большинства опубликованных теоретических работ, относящихся к дисковой памяти, исходят из предположения, что запросы на обращение к памяти распределяются равномерно. Вы¬ воды, сделанные на основе такого предположения, могут оказаться неверными для многих систем, которым свойственно неравномерное распределение запросов по дисковым поверхностям. Неравномер¬ ное распределение запросов в определенных ситуациях является весьма обычным, причем результаты исследований подобных ситуа¬ ций также опубликованы в литературе (Wi76, Ly72). Одной из наиболее распространенных причин, приводящих к не¬ равномерному распределению запросов, являются большие последо¬ вательные файлы, располагаемые на специально выделенных для них дисках. Когда операционная система выбирает место для разме¬
Часть 5 Управление внешней памятью ьО щения соседних записей последовательного файла пользователя, она обычно помещает их на одну и ту же дорожку. Когда дорожка заполняется, дополнительные записи помещаются на соседние до¬ рожки того же самого цилиндра, а когда заполняется цилиндр — на соседние цилиндры. Таким образом, при работе с последовательным файлом вполне обычна ситуация, когда запросы на обращение к записям, следующим друг за другом, вообще не будут вызывать по¬ иска цилиндра. И если даже поиск потребуется, он будет коротким, поскольку, как правило, будет связан с переходом лишь на ближай¬ шие соседние цилиндры. Очевидно, что в подобной ситуации плани¬ рование работы с дисковой памятью практически не даст никаких выгод. Более того, затраты на планирование могут фактически при¬ вести к снижению скоростных характеристик системы, поскольку планирование здесь совершенно нецелесообразно. Некоторые системы предусматривают контроль качества доро¬ жек и использование дорожек замены вместо дефектных. Эти до¬ рожки замены могут располагаться в самых различных местах ди¬ сковых поверхностей и вызывать дополнительные подводы головок в самые неожиданные моменты. 12.7.5 Методы организации файлов Реализация файлов сложной структуры, например индексно¬ последовательных (1Ь74), может вызывать появление большого ко¬ личества запросов с длительными временами поиска. Обслуживание каждого из запросов при индексно-последовательном методе досту¬ па (ISAM) может быть связано с выполнением нескольких обраще¬ ний к дисковой памяти. В некоторых случаях выборка записи может потребовать обращения к главному индексу, обращения к индексу цилиндров, а затем уже определения местонахождения конкретной записи, а этот процесс может быть связан с несколькими поисками цилиндров. Поскольку главный индекс и индекс цилиндров, как правило, хранятся на диске (однако вне области хранения основных данных), задержки поиска могут быть достаточно большими. Метод доступа ISAM удобен для разработчика прикладных программ, од¬ нако его реализация, причем с обеспечением приемлемых скорост¬ ных характеристик системы, может представлять исключительно сложную проблему. Заключение Обеспечение эффективного использования дисковой памяти является важной задачей современных операционных систем и, по всей вероятности, сохранит важную роль еще в течение нескольких следующих десятилетий. В данной главе обсуждалась работа маг¬ нитных дисков с перемещаемыми головками и рассматривались ме¬
Гл. 12 Планирование работы с магнитными дисками 21 тоды оптимизации использования дисковых устройств, реализуемые в операционных системах. Доступ к диску (для выполнения операций чтения или записи) включает три существенных элемента, а именно поиск цилиндра, поиск записи (время ожидания) и передачу данных конкретной записи. Из этих элементов наибольшую длительность обычно имеет поиск цилиндра. Поэтому применяемые методы оптимизации, как правило, направлены на то, чтобы свести к минимуму как количест¬ во, так и длительность поисков цилиндров. Упорядочение очереди ожидающих запросов с целью минимиза¬ ции поисков цилиндров называется планированием работы с диско¬ вой памятью. Запросы могут обслуживаться по принципу FCFS («первый пришедший обслуживается первым»), который, вообще говоря, даже не рассматривается как стратегия планирования, или они могут обслуживаться в соответствии с некой стратегией, пред¬ назначенной для минимизации поисков. Наибольшее распростране¬ ние получили следующие стратегии: • Стратегия SSTF, при которой запросы обслуживаются в порядке; определяемом их близостью к последнему обслуженному запро¬ су. Следующим для обслуживания будет выбираться запрос, ближайший к последнему запросу, независимо от направления, в котором должны при этом двигаться магнитные головки. • Стратегия SCAN, которая действует подобно SSTF, с той разни¬ цей, что каретка движется в одном направлении до тех пор, пока не будут обслужены все запросы данного направления; после чего направление меняется на противоположное. • Стратегия N-Step SCAN исключает возможность бесконечного откладывания, группируя запросы, поступающие после начала очередного хода, для обслуживания во время обратного хода го¬ ловок. • Стратегия C-SCAN исключает свойственную стратегии SCAN излишнюю «благосклонность» к средним дорожкам, обслуживая запросы только при прямом ходе каретки; после завершения пря¬ мого хода каретка скачком возвращается к начальным дорожкам диска, и возобновляется сканирование в прямом направлении. • Схема Эшенбаха позволяет справляться с очень большими на¬ грузками, однако оказалось, что стратегия C-SCAN с оптимиза¬ цией по времени ожидания записи является более эффективной при всех режимах нагрузки. Все указанные стратегии планирования преследуют достиже¬ ние следующих целей: • максимизации пропускной способности, • минимизации времен ответа, • минимизации дисперсии времен ответа.
22 Часть 5 Управление внешней памятью Оптимизация по времени .ожидания записи целесообразна при режимах больших нагрузок, когда велика вероятность того, что в каждый конкретный момент времени может быть несколько запро¬ сов на обращение к одному и тому же цилиндру. При планировании обслуживания запросов на обращение к магнитному барабану опти¬ мизация по времени ожидания записи применяется традиционно. Введение средств планирования работы с дисковой памятью в систему не всегда целесообразно, поскольку недостаточные скорост¬ ные характеристики могут определяться другими компонентами аппаратных или программных средств. Узкие места могут быть свя¬ заны с самими дисками, с контроллерами или с каналами. Но они могут возникать и из-за неравномерного распределения запросов, например при работе с файлами последовательной организации. Та¬ кие методы доступа, как ISAM, удобны для разработчика приклад¬ ных программ, однако их реализация может потребовать большого количества длительных поисков, связанных с дополнительными задержками. Терминология барабан магнитный (drum) время доступа (access time) время ожидания (latency) время передачи (обмена) (transmission time) время поиска (цилиндра) (seek time) главный индекс (master index) диск магнитный, дисковое устройство (disk) дисковая поверхность (disk surface) дисковое устройство с перемещаемыми головками (moving-head magnetic disk) дисковый контроллер (disk controller) дисперсия (разброс) времен ответа (variance in response times) дорожка (track) задержка на поиск записи на дорожке (rotational delay) индексно-последовательный метод доступа (Index Sequential Access Method, ISAM) индекс цилиндров (cylinder index) канал (channel) канал ввода-вывода (input-output channel) каретка (магнитных головок) (boom) многодисковая подсистема (multiple-disk subsystem) нагрузка (load) неравномерное распределение запросов (nonuniform request distri¬ bution) неравномерное распределение поисков (localized seek pattern) обслуживание по принципу FCFS («первый пришедший обслужи¬ вается первым») (first-come-first-served)
Гл. 12 Планирование работы с магнитными дисками 23 оптимизация по времени ожидания записи (latency optimization) оптимизация по времени поиска (подвода) цилиндра (seek optimi¬ zation) оптимизация по угловому положению при вращении (rotational optimization) основная (первичная, оперативная) память (primary storage) планирование по принципу SLTF («с наименьшим временем ожида¬ ния — первым») (shortest-latency-time-first) планирование по принципу SSTF («с наименьшим временем поиска (цилиндра) — первым») (shortest-seek-time-first) планирование работы с дисковой памятью (disk scheduling) поиск цилиндра (seek) предсказуемость, прогнозируемость (predictability) привилегированное (предпочтительное) направление (preferred di¬ rection) пропускная способность (throughput) равномерное распределение запросов (uniform request distribution) равномерное распределение поисков (random seek pattern) слежение за угловым положением диска (RPS) (rotational position sensing) среднее время ответа (mean response time) стратегия C-SCAN стратегия N-Step SCAN стратегия SCAN схема (способ) Эшенбаха (Eschenbach scheme) узкое место, критический ресурс (bottleneck) цилиндр (cylinder) шпиндель (spindle) C-SCAN FCFS ISAM N-Step SCAN RPS SCAN SLTF SSTF Упражнения 12.1 Каковы главные цели планирования работы с дисковой памятью? В чем важность каждой из них? 12.2 Предположим, что в конкретной модели дискового устройства время поиска цилиндров приблизительно равно времени поиска записи на дорожке. Каким образом это могло бы повлиять на решение разработчика о включении средств планирования работы дисковой памяти в вычислительную машину, содержащую накопители этого типа? 12.3 Что делает данную дисциплину планирования работы дисковой памяти справедливой, недискриминационной? Насколько важное значение имеет справед¬
24 Часть 5 Управление внешней памятью ливость обслуживания по сравнению с другими целями планирования работы дисковой памяти? 12.4 Дискриминационные дисциплины планирования дисковой памяти характе¬ ризуются, как правило, увеличенной дисперсией времени ответа по сравнению с дисциплиной FCFS. Почему это так? 12.5 В условиях очень малых нагрузок практически все дисциплины планирова¬ ния работы дисковой памяти, обсужденные в настоящей главе, по сути вырож¬ даются в одну схему. Какую? Почему? 12.6 Одним из критериев, определяющих целесообразность реализации плани¬ рования работы дисковой памяти, является величина затрат машинного времени,- связанных с самим механизмом планирования. Какие факторы определяют эти затраты? Предположим, что t — среднее время поиска цилиндра в системе с об¬ служиванием дисковых запросов по принципу FCFS. Предположим, что s — это ориентировочное время, которое потребовалось бы затратить на планирование для среднего запроса, если бы использовалась другая стратегия планирования работы дисковой памяти. Предположим, что все остальные факторы говорят в пользу включения средств планирования работы дисковой памяти в систему. Прокомментируйте потенциальные выгоды от включения средств планирования дисковой памяти в систему для каждого из следующих случаев: а) s=0.01/; б) s=0.1/; в) s=/; г) s= 10/; д) s= 100/. 12.7 Оптимизация по времени ожидания записи (по углу поворота) обычно оказывает малое влияние на общие скоростные характеристики системы, если не считать режимов очень больших нагрузок. Почему? 12.8 В интерактивных системах весьма важно гарантировать приемлемые вре¬ мена ответа для пользователей. Минимизация дисперсии времен ответа также остается важной целью, однако она не гарантирует, что какой-то из пользователей тле пострадает от бесконечного откладывания. Какой дополнительный механизм могли бы вы предложить для включения в дисциплину планирования дисковой памяти для интерактивной системы, чтобы способствовать обеспечению приемлемых времен ответа и исключить бесконечное откладывание. 12.9 Почему принцип FCFS часто вообще не считается дисциплиной планирова¬ ния? Существует ли какая-либо схема обслуживания дисковых запросов, которую мы могли бы еще в меньшей степени называть дисциплиной планирования диско¬ вой памяти, чем FCFS? 12.10 В каком смысле стратегия SCAN является более справедливой, чем SSTF? В каком смысле стратегия C-SCAN является более справедливой, чем SCAN? 12.11 Приведите статистический аргумент, объясняющий, почему принцип FCFS характеризуется малой дисперсией времен ответа. 12.12 Объясните, почему стратегия SSTF оказывает предпочтение средним до¬ рожкам за счет внутренних и наружных. 12.13 Возможно, что во время обслуживания запроса на обращение к конкрет¬ ному цилиндру диска поступит другой запрос на обращение к этому же цилиндру. Некоторые дисциплины планирования работы дисковой памяти обслуживают этот новый запрос немедленно после обработки текущего запроса. Другие дисциплины откладывают обслуживание нового запроса до обратного хода каретки с магнит-
Гл. 12 Планирование работы с магнитными дисками 25 ними головками. Какая опасная ситуация может возникнуть при немедленном обслуживании нового запроса на тот же самый цилиндр? 12.14 Почему стратегия SCAN характеризуется меньшей дисперсией времени ответа, чем SSTF? 12.15 Сравните стратегию N-Step SCAN со стратегией SCAN с точки зрения п р о и з в одител ь ности. 12.16 Сравните стратегию C-SCAN со стратегией SCAN с точки зрения произ¬ водительности. 12.17 Каким образом работает схема оптимизации по времени ожидания записи? 12.18 Узкое место дисковой памяти не всегда удается разгрузить благодаря увеличению числа дисковых устройств. Почему? 12.19 Каким образом уровень мультипрограммирования влияет на необходи¬ мость планирования работы дисковой памяти? 12.20 Предположим, вы выяснили, что дисковые контроллеры имеют недостаточ¬ ную мощность. Может ли планирование работы дисковой памяти помочь решению этой проблемы? Какие другие меры следует предпринять в этом случае? 12.21 Какие меры следует предпринять для повышения скоростных характери¬ стик системы в случае, когда выявляется перегрузка каналов? 12.22 Почему при рассмотрении различных дисциплин планирования работы дисковой памяти необходимо исходить из предположения о равномерном распре¬ делении запросов? В системах каких типов можно ожидать относительно нерав¬ номерного распределения запросов? 12.23 Обеспечит ли планирование работы дисковой памяти повышение эффектив* ности выполнения прикладной программы, связанной с обработкой последователь¬ ного файла, который хранится на диске, выделенном одному пользователю? По¬ чему? 12.24 При каких обстоятельствах планирование работы дисковой памяти может фактически привести к снижению скоростных характеристик по сравнению с принципом FCFS? 12.25 Сравните основные цели стратегий планирования работы дисковой памяти со стратегиями планирования загрузки центрального процессора. В чем сходство этих стратегий? В чем различия? 12.26 В настоящей главе основное внимание уделялось программным способам решения проблемы повышения скоростных характеристик внешней памяти на дисках с перемещаемыми головками. Разработчики операционных систем редко привлекаются к модернизации аппаратных средств; предположим, однако, что вам предоставлена возможность предложить определенные аппаратные измене¬ ния, принципиальные с точки зрения функционирования дисков с перемещаемыми головками (на благо разработчикам будущих операционных систем). Какие из¬ менения вы предложили бы? Каким образом эти изменения отразились бы на не¬ обходимости планирования работы дисковой памяти? Если для ваших новых дисковых накопителей планирование по-прежнему необходимо, то сохранят ли свою эффективность те стратегии планирования работы дисковой памяти, которые обсуждались в настоящей главе?
26 Часть 5 Управление внешней памятно 12.27 Широкое внедрение дисков большой емкости с перемещаемыми головками в значительной мере определило успехи современных вычислительных систем. Диски обеспечивают относительно быстрый и прямой доступ к громадным объемам информации. Промышленные обозреватели в своих прогнозах указывают на благоприятные перспективы систем внешней памяти, строящихся на основе диско¬ вых устройств, и поэтому научные сотрудники продолжают разрабатывать новые и усовершенствованные дисциплины планирования работы дисковой памяти. Предложите несколько новых схем планирования работы дисков. Сравните свои схемы со схемами, представленными в настоящей главе. Литература (АЬ68) Abate J., Dubner Н., Weinberg S. В., «Queueing Analysis of the IBM 2314 Disk Storage Facility», J ACM, Vol. 15, No. 4, 1968, pp. 557—589. {Ab69) Abate J., Dubner H., «Optimizing the Performance of a Drumlike Stor¬ age», IEEE Trans, on Computers, Vol. C-18, No. 11, 1969, pp. 992—996. (Co68) Coffman E. G., Jr., McKeller A. C., «On the Motion of an Unbounded Markov Queue in Random Access Storage», IEEE Trans, on Computers, Vol. C-17, No. 6, 1968, pp. 600-603. (Co69) Coffman E. G., Jr., «Analysis of a Drum Input/Output Queue under Sche¬ duling Operation in a Paged Computer System», J ACM, Vol. 16, No. 1, January 1969, pp. 73—90. (De67) Denning P. J., «Effects of Scheduling on File Memory Operations», Proc. AFIPS, SJCC, Vol. 30, 1967, pp. 9—21. (Fi65) Fife D. W., Smith J. L., «Transmission Capacity of Disk Storage Systems with Concurrent Arm Positioning», IEEE Trans, on Computers, Vol. EC-14, No. 8, August 1965, pp. 575—582. (Fr69) Frank H., «Analysis and Optimization of Disk Storage Devices for Time- Sharing Systems», J ACM, Vol. 16, No. 4, 1969, pp. 602—620. (Fu72) FullerS. H., «An Optimal Drum Scheduling Algorithm», IEEE Trans, on Computers, Vol.C-21, No. 11, 1972, pp. 1153—1165. (Fu74) Fuller S. H., «Minimal-Total-Processing-Time Drum and Disk, Scheduling Disciplines», CACM, Vol. 17, No. 7, July 1974, pp. 376—381. (Go73) GotliebC. C., MacEwen G. H., «Performance of Movable-Head Disk Storage Devices», J ACM, Vol. 20, No. 4, 1973, pp. 604—623. (Ha74) Haughton K-, «Design Considerations of the IBM 3340 Disk File», Proc. IEEE Comp. Sci. Conf., 1974, pp. 281—283. (Ho80) Hofri M., «Disk Scheduling: FCFS vs. SSTF Revisited», CACM, Vol. 23, No. 11, November 1980, pp. 645—653. (Ib74) Introduction to IBM!360 Direct Access Storage Devices and Organization Methods, White Plains, N. Y.: GC20-1649-8 IBM Data Processing Divi¬ sion, 1974. (Ko78) Kollias J. G., «An Estimate of Seek Time for Batched Searching of Ran¬ dom or Indexed Sequential Structured Files», Comp. Jour., Vol. 21, No. 2, 1978, pp. 132—133. (Ly72) Lynch W. L., «Do Disk Arms Move?» Performance Evaluation Review, ACM Sigmetrics Newsletter, Vol. 1, December 1972, pp. 3—16. (Pe80) Perros H. G., «А Regression Model for Predicting the Response Time of a Disc I/O System», Comp. Jour., Vol. 23, No. 1, 1980, pp. 34—36. (Se69) Seaman P. H., Lind R. A., Wilson T. L., «An Analysis of Auxiliary-Stor¬ age Activity», IBM Systems Journal, Vol. 5, No. 3, 1969, pp. 158—170. (Sm73) Smith А., «А Performance Analysis of Multiple Channel Controllers», Proc. First Annual SIGME Symposium of Measurement and Evaluation, February 1973, pp. 37—46. (Sm75) Smith А., «А Locality Model for Disk Reference Patterns», Proc. Tenth IEEE Comp. Science Conf., 1975, pp. 109—112. (Stn78) Smith A., «On the Effectiveness of Buffered and Multiple Arm Disks», Proc. Fifth Symp. on Computer Architecture, 1978, pp. 242—248,
Гл. 12 Планирование работы с магнитными дисками 27 (St73) Stone Н. S., Fuller S. Н., «On the Near Optimality of the Shorlest-Lat- ency-Time-First Drum Scheduling Discipline», САСЛ4, Vol. 16, No. 6,’ 1973, pp. 352—353. (Te72) Teorey T. J., «Properties of Disk Scheduling Policies in Multiprogrammed Computer Systems», Proc. AFIPS, FJCC, Vol. 41, 1972, pp. 1 —11. (Te72a) Teorey T. J., Pinkerton T. В., «А Comparative Analysis of Disk Schedul¬ ing Policies», CACM, Vol. 15, No. 3, 1972, pp. 177—184. (To80) Tokunaga T., Hirai Y., YamamotoS., «Integrated Disk Cache System with File Adaptive Control», Proc. Distributed Computing Compcon< Fall 1980, pp. 412—416. (Wa73) Waters S. J., «Estimating Magnetic Disc Seeks» Comp.. Jour., Vol. 18,• No. 1, 1973, pp. 12—18. (We66) Weingarten A., «The Eschenbach Drum Scheme», CACM, Vol. 9, No. 7, 1966, pp. 509—512. (WeG8) Weingarten A., «The Analytical Design of Real-Time Disk Systems»,. Proc. IFIPS Congr., 1968, pp. D131—D137. (We79) Welch T. A.,- «Analysis of Memory Hierarchies for Sequential Data Ac¬ cess», IEEE Computer, Vol. 12, No. 5, May 1979, pp. 19—26. (Wi76) Wilhelm N. C., «An Anomaly in Disk Scheduling: A Comparison of FCFS and SSTF Seek Scheduling Using an Empirical Modei for Disk Accesses»,- CACM, Vol. 19, No. 1, January 1976, pp. 13—17. (Wo80) Wong С. K., «Minimizing Expected Head Movement in One-Dimensional and Two-Dimensional Mass Storage Systems», ACM Computing Surveys Vol. 12, No. 2, 1980, pp. 167—178.
Глава 13 Системы файлов и базы данных Помнить о тебе? Да, бедный дух, пока есть память в шаре Разбитом этом. Помнить о тебе? И с памятной доски сотру все знаки Чувствительности, все слова из книг, Все образы, всех былей отпечатки, Что с детства наблюденье занесло, И лишь твоим единственным веленьем Весь том, всю книгу мозга испишу... Гамлет, действие 1, сцена 5, 95 х) Вильям Шекспир Я могу только предполагать, что документ с над¬ писью «В архив не сдавать» хранится в архиве в папке с надписью «В архив не сдавать». Сенатор Фрэнк Черч Слушание подкомитета сената по делам разведки, 1975 13.1 13.2 13.3 13.4 13.5 13.6 13.7 13.8 13.9 13.10 13.11 13.12 13.13 13.14 13.15 Введение Функции файловой системы Иерархия данных Объединение в блоки и буферизация Организация файлов Методы доступа с очередями и базисные методы доступа Характеристики файлов Файловая система Выделение и освобождение места в памяти 13.9.1 Связное распределение памяти 13.9.2 Несвязное распределение памяти 13.9.2.1 Распределение при помощи связанных спи¬ сков секторов 13.9.2.2 Поблочное распределение Дескриптор файла Матрица управления доступом Управление доступом в зависимости от классов пользователей Копирование и восстановление информации Системы баз данных 13.14.1 Преимущества систем баз данных 13.14.2 Независимость от данных 13.14.3 Языки баз данных 13.14.4 Администратор базы данных 13.14.5 Распределенная база данных 13.14.6 Словарь данных Модели баз данных 13.15.1 Иерархическая модель базы данных 13.15.2 Сетевая модель базы данных 13.15.3 Реляционная модель базы данных х) В переводе Б, Пастернака,
Гл. 13 Системы файлов и базы данных 29 13.1 Введение Файл — это поименованная совокупность данных. Обычно раз¬ мещается на устройстве внешней памяти, например на магнитном диске или ленте. С файлом можно производить манипуляции как с единым целым при помощи таких операторов, как ® открыть (open) — подготавливает файл к обращениям; ® закрыть (close) — запрещает дальнейшее обращение к файлу< пока он не будет вновь открыт; ® создать (create) — обеспечивает формирование нового файла; @ уничтожить (destroy) — разрушает файл; © копировать (сору) — создает еще один экземпляр существующего файла с новым именем; © переименовать (rename) — изменяет имя файла; @ вывести (list) — обеспечивает распечатку листинга или воспроиз¬ ведение содержимого файла на экране. Манипуляции с индивидуальными элементами данных в рамках файла можно производить при помощи таких операторов, как @ прочитать (read) — обеспечивает ввод элемента данных из файла в процесс; © записать (write) — обеспечивает вывод элемента данных из про¬ цесса в файл; ® обновить (update) — обеспечивает модификацию существующего элемента данных; © вставить (insert) — обеспечивает добавление нового элемента данных; @ исключить (delete) — обеспечивает исключение элемента данных из файла. Файловая система — это часть общей системы управления па¬ мятью, ответственная преимущественно за управление файлами, которые хранятся во внешней памяти. Она отвечает также за обес¬ печение возможности хранить частную, или личную, информацию и за контролируемое разделение информации между многими пользо¬ вателями. 13.2 Функции файловой системы Перечислим некоторые из функций, которые, как обычно счи¬ тается, должны реализовать файловые системы: (1) Пользователям должна предоставляться возможность создавать^ модифицировать и уничтожать файлы. (2) Пользователям должна предоставляться возможность разде¬ лять файлы друг друга под тщательным контролем, с тем чтобы они могли эффективно взаимодействовать при выполнении общей работы. (3) Механизм для разделения (коллективного использования) фай¬
30 Часть 5 Управление внешней памятью лов должен предусматривать различные варианты контролируемого Доступа, например доступ для чтения, доступ для записи, доступ для выполнения или различные сочетания этих видов доступа. (4) Пользователям должна предоставляться возможность задавать удобные для прикладной программы структуры файлов. (5) Пользователям должна быть предоставлена возможность управ¬ лять передачами информации между файлами. (6) В системе должны быть предусмотрены средства сохранности и восстановления, предотвращающие либо случайную потерю, либо злоумышленное разрушение информации. (7) Пользователям должна быть предоставлена возможность обра¬ щаться к своим файлам с помощью символических имен, а не через имена физических устройств (т. е. файлы должны быть независимыми от устройств). (8) В системах, связанных с обработкой личной, конфиденциальной и секретной информации, которую необходимо защищать от несанк¬ ционированного доступа (например, в системах электронной пере¬ дачи денежных средств, системах хранения досье уголовной поли¬ ции, медицинских системах, хранящих истории болезни, и т. д.), файловая система может также предусматривать шифрование и дешифрование данных. Благодаря этому секретная информация бу¬ дет доступной только тем, для кого она предназначается (т. е. тем, у кого имеются ключи дешифрования). (9) И самое важное, файловая система должна иметь «дружествен¬ ный» интерфейс с пользователем. Она должна позволять пользовате¬ лям работать только с логическим представлением своих данных и тех операций, которые должны с ними выполняться, а не с физическим представлением. Необходимо, чтобы пользователю не приходилось задумываться о конкретных физических устройствах, на которых хранятся его данные, о форматах данных или о физических средствах обмена данными с этими устройствами. 13.3 Иерархия данных Все данные, обрабатываемые вычислительными машинами, со¬ стоят из битов, двоичных цифр 0 и 1. Один бит может принимать значение 0 или 1 и, таким образом, позволяет представлять только два различных состояния, например «истина» или «ложь», либо, быть может, «зеленый» или «голубой». Объединяя отдельные биты в группы, мы получаем возможность задавать битовые комбинации и с их помощью представить практически любые элементы данных, обрабатываемых в вычислительных системах. Для последователь¬ ности, содержащей п бит, существует 2" возможных битовых комби¬ наций. На следующем уровне в иерархии данных находятся байты, или символы, имеющие фиксированную длину в битах. В большин¬ стве вычислительных систем в настоящее время используются бай¬
Гл. 13 Системы файлов и базы данных 31 ты по 8 бит, так что их наборы символов могут содержать 28, или 255 различных символов. Цифровой символ может быть любой циф¬ рой от 0 до 9. Алфавитный символ может быть любой буквой алфа¬ вита: от А до Z (прописные буквы) или от а до z (строчные буквы). Пробелы обычно рассматриваются как алфавитные символы. Спе¬ циальные символы — это практически все прочие символы символь¬ ного набора компьютера, например к ним относится знак доллара ($), двоеточие (:), косая черта (/), звездочка (*) и т. д. В некоторых случаях необходимо раздельно обрабатывать ле¬ вую и правую части байта. Левая часть байта называется, левым сло¬ гом, а правая — правым слогом (кто бы мог подумать!). Распределение битовых комбинаций по символам, ими представ¬ ляемым, называется символьным набором. В настоящее время исполь¬ зуются два наиболее распространенных символьных набора: ASCII (Американский стандартный код для обмена информацией) и EBCDIC (Расширенный двоично-кодированный десятичный код для обмена информацией). Код ASCII более популярен в системах пере¬ дачи данных, а код EBCDIC — для внутреннего представления дан¬ ных в вычислительных системах. Оба кода получили сейчас столь широкое распространение, что во многих системах содержатся меха¬ низмы, обеспечивающие использование обоих кодов и взаимные преобразования одного кода в другой. Группа взаимосвязанных символов называется полем. Числовое поле содержит только цифры. Алфавитное поле содержит только буквы и пробелы (причем пробел является равноправным символом символьного набора). Алфавитно-цифровое поле содержит только цифры, буквы и пробелы. Поле, содержащее какие-либо специаль¬ ные символы, называется просто символьным полем. Например, «365» — это числовое поле, «SAM JONES» — алфавитное поле, «15 WINDSOR DRIVE» — алфавитно-цифровое поле, а «$367.19» — символьное поле. Группа взаимосвязанных полей носит название записи. Запись, относящаяся к студенту, может, например, содержать отдельные по¬ ля, где будут указаны идентификационный номер, фамилия, адрес, номер телефона, среднее количество набранных очков за выполнен¬ ные работы и задания, профилирующие учебные дисциплины, пред¬ полагаемая дата окончания учебного заведения и т. д. Ключ запи¬ си — это управляющее поле, которое однозначно идентифицирует данную запись. Например, при решении прикладной задачи состав¬ ления платежной ведомости в качестве ключа записи может исполь¬ зоваться табельный номер служащего. Группа взаимосвязанных записей — это файл. Например, файл студентов может содержать по одной записи для каждого студента университета, инвентарный файл может содержать по одной записи Для каждого из различных наименований автомобильных частей, проданных торговцем, а файл счетов дебиторов — по одной записи Для каждого из заказчиков фирмы.
32 Часть 5 Управление внешней памятью Самый высокий уровень иерархии данных часто называется ба¬ зой данных. База данных состоит из группы взаимосвязанных фай¬ лов. Системы баз данных будут подробно рассмотрены в конце на¬ стоящей главы. 13.4 Объединение в блоки и буферизация Физическая запись, или блок,— это единица информации, кото¬ рая реально считывается с устройства или записывается на него. Логическая запись — это совокупность данных, которая рассматри¬ вается как единое целое с точки зрения пользователя. Если каждая физическая запись содержит точно одну логическую запись, то го¬ ворят, что файл состоит из несблокированных записей. Если каждая Фиксированной длины, несблокированная | | [а Аа| | Запись aaa Счетчик Ключ Данные Фиксированной длины, сблокированная | | |fff| |ААА Счетчик Ключ Записьааа ССС Запись ссс FFF Запись fff Данные Переменной длины, несблокированная | [ |аАа| |"вГ Счетчик Ключ □ И Счетчик Ключ RL Запись aaa Данные Переменной длины,сблокированная BL RL AAA Запись aaa^ RL ссс Запись ссс RL FFF Запись f ff Данные Рис. 31.1 Форматы записей. BL—длина блока, RL — длина записи. Поля счетчиков содержат различную управляющую информацию, например номер цилиндра, номер головки, номер записи, длину поля данных записи и контроль¬ ные байты. (Печатается с разрешения фирмы IBM.) физическая запись может содержать несколько логических, то го¬ ворят, что файл состоит из записей, объединенных в блоки, или сбло¬ кированных записей. В файле с записями фиксированной длины все записи имеют одинаковую длину, а размер блока обычно представ¬ ляет целое кратное размера записи. В файле с записями переменной длины записи могут меняться по размеру, вплоть до размера блока. Некоторые распространенные форматы записей приведены на рис. 13.1. Буферизация позволяет производить вычисления одновременно с операциями ввода-вывода. В основной памяти выделяются опреде¬ ленные участки, где можно расположить несколько физических бло¬ ков файла сразу; каждый из этих участков называется буфером.
Гл. 13 Системы файлов и базы данных 33 Наиболее распространенная схема буферизации носит название двойной буферизации и работает следующим образом (рассмотрим ее на примере вывода данных). Существуют два буфера. Сначала за¬ писи, формируемые работающим процессом, помещаются в первый буфер, пока он не будет заполнен. После этого инициируется переда¬ ча блока данных из первого буфера во внешнюю память. Во время выполнения этой передачи процесс продолжает формировать запи¬ си, которые теперь помещаются во второй буфер. Когда второй бу¬ фер заполнится и завершится передача данных из первого буфера, инициируется передача данных из второго буфера. Процесс продол¬ жает работу и формирует записи, которые теперь снова помещаются в первый буфер. Такое переключение с буфера на буфер позволяет выполнять операции ввода-вывода параллельно с вычислениями. 13.5 Организация файлов Под организацией файлов имеется в виду способ расположения записей файла во внешней памяти. В настоящее время наиболее из¬ вестны следующие виды организации файлов! • Последовательная. Записи располагаются в физическом порядке. «Следующая» запись — это запись, которая физически следует за предыдущей. Такая организация применяется для файлов, хранящихся на магнитной ленте, выводящихся на перфоленту, перфокарты и на печать, поскольку все это в принципе последо- Рис. 13.2 Библиотечный (секционированный) набор данных. (Печатается с разрешения фирмы IBM.) вательные носители данных. Дисковые файлы могут также иметь последовательную организацию. • Индексно-последовательная. Записи располагаются в логической последовательности в соответствии со значениями ключей, содер¬ жащихся в каждой записи. В системе имеется специальный ин- 2 №
34 Часть 5 Управление внешней памятью деке, где указываются физические адреса определенных главных записей. Доступ к индексно-последовательным записям может осуществляться последовательно, в порядке возрастания (убы¬ вания) значений ключа, либо прямо по ключу путем поиска по системному индексу. Индексно-последовательные файлы обычно хранятся на дисках. ® Прямая. Доступ к записям осуществляется прямо (произвольно) по их физическим адресам на запоминающем устройстве прямого доступа (ЗУПД). Прикладная программа помещает записи на ЗУПД в любом удобном ей порядке. Файлы прямой организации требуют, чтобы пользователь имел достаточно детальное представ¬ ление о физических особенностях внешних запоминающих устройств, на которых хранятся его файлы. О Библиотечная. Это по сути файл, состоящий из последователь¬ ных подфайлов (рис. 13.2). Каждый последовательный подфайл называется элементом, или членом файла. Начальный адрес каж¬ дого такого элемента хранится в директории файла. Библиотеч¬ ные (секционированные) файлы часто используются для хранения программных библиотек или библиотек макросов. Перечисленные виды организации файлов имеют много вариан¬ тов, применяемых в реальных системах. Для обозначения носителя записей, используемого в каждом кон¬ кретном внешнем запоминающем устройстве, применяется термин том. Для магнитных лент том — это кассета с магнитной лентой, а для дисков — дисковый пакет. 13.6 Методы доступа с очередями и базисные методы доступа Крупные операционные системы реализуют, как правило, много различных методов доступа, которые иногда группируются в две категории, а именно методы доступа с очередями и базисные методы доступа. Методы доступа с очередями характеризуются более ши¬ рокими возможностями, чем базисные методы. Методы доступа с очередями применяются в тех случаях, когда последовательность обработки записей можно предвидеть, напри¬ мер, при последовательной и индексно-последовательной организа¬ циях. В этих методах предусматривается упреждающая буфериза¬ ция и планирование операций ввода-вывода, т. е. приемы, направ¬ ленные на то, чтобы по возможности к концу обработки одной запи¬ си следующая была готова для обработки. В основной памяти в каждый конкретный момент времени находится более одной записи; это позволяет совмещать обработку записей и выполнение операций ввода-вывода. Методы доступа с очередями обеспечивают также авто¬ матическое блокирование и деблокирование записей, так что поль¬ зователю не приходится об этом беспокоиться.
Гл. 13 Системы файлов и базы данных 35 Базисные методы доступа применяются обычно в случаях, когда последовательность обработки записей предвидеть нельзя, в част¬ ности при прямом или произвольном доступе. Кроме того, сущест¬ вует много ситуаций, когда прикладным программам пользователя нужно управлять доступом к записям, но без нежелательных наклад¬ ных расходов, свойственных методам доступа с очередями. Базис¬ ными методами доступа читаются и записываются физические бло¬ ки; блокирование и деблокирование (если они необходимы для конк¬ ретного приложения) выполняет сам пользователь. 13.7 Характеристики файлов Для файлов могут указываться следующие характеристики: • Изменчивость, Эта характеристика связана с частотой внесения в файл новых записей и удаления старых. Когда эта частота мала, файл называют статичным, а когда велика,— динамичным, или изменчивым файлом. • Активность. Определяется процентом записей файла, обрабаты¬ ваемых в течение данного прогона. • Размер. Определяет количество информации, хранящейся в фай¬ ле. 13.8 Файловая система Файловая система является важной компонентой операционной системы. Файловые системы содержат, как правило, следующие сред¬ ства: • Методы доступа. Определяют конкретную организацию доступа к данным, хранящимся в файлах. • Средства управления файлами. Обеспечивают хранение файлов, обращение к ним, коллективное использование и защиту. • Средства управления внешней памятью. Обеспечивают распреде¬ ление пространства внешней памяти для размещения файлов. • Средства обеспечения целостности файлов. Призваны гаранти¬ ровать сохранность информации файла. Гарантированная це¬ лостность файла означает, что в файле всегда будет храниться та информация, которая в нем должна быть, и не будет инфор¬ мации, которой в нем быть не должно. Главная функция файловой системы — это распределение про¬ странства внешней памяти и управление ее работой, в частности работой дисковой памяти. Для наших рассуждений возьмем в каче¬ стве примера крупную вычислительную систему, работающую в ре¬ жиме разделения времени и обслуживающую приблизительно 100 ак¬ тивных терминалов, к которым могут иметь доступ несколько ты- 2*
36 Часть 5 Управление внешней памятью сяч пользователей. Каждый из этих пользователей может иметь в вычислительной машине несколько счетов, при помощи которых учитываются, например, работы, выполняемые по различным проек¬ там. С каждой из этих работ может быть связано много файлов. При этом некоторые файлы могут быть очень маленькими, такими, как письмо, посылаемое по электронной почте, а другие — весьма Рис. 13.3 Двухуровневая файловая система. большими, такими, как сводный перечень деталей и узлов в при¬ кладной системе управления запасами. В крупных вычислительных системах разделения времени на каждую работу приходится, как правило, от 10 до 100 файлов. Та¬ ким образом, в дисковой памяти системы, обслуживающей несколь¬ ко тысяч пользователей, вполне могут содержаться от 50 тысяч до 100 тысяч или даже более отдельных файлов. Необходимо иметь воз¬ можность быстрого доступа к этим файлам, чтобы обеспечить малые времена ответа на запросы пользователей. Файловая система при этом может быть организована следую¬ щим образом (рис. 13.3). Корневой узел показывает, в каком месте дисковой памяти начинается корневой директорий, в котором в свою очередь содержатся адреса различных директориев пользователей. Директорий пользователя содержит по одной статье для каждого из файлов пользователя, причем каждая статья указывает, в каком месте дисковой памяти хранится соответствующий файл.
Гл. 13 Системы файлов и базы данных 37 Имена файлов должны быть уникальными только в рамках дан¬ ного директория пользователя. В то же время системное имя фай¬ ла должно быть уникальным в рамках файловой системы. В файло¬ вых системах с иерархической структурой системное имя файла обычно формируется как имя пути от корневого директория к дан¬ ному файлу. Например, в двухуровневой файловой системе, в ко¬ торой обслуживаются пользователи СМИТ, ДЖОНС и ДОУ и в ко¬ торой ДЖОНС имеет файлы ПЛАТЕЖНАЯ-ВЕДОМОСТЬ и СЧЕТА_ФАКТУРЫ, имя пути для файла ПЛАТЕЖНАЯ-ВЕ¬ ДОМОСТЬ может быть сформировано как ДЖОНС: ПЛАТЕЖ¬ НАЯ-ВЕДОМОСТЬ. Некоторые виды структур файловых систем подробно рассматриваются при описании конкретных операционных систехМ в конце книги (гл. 18—22). 13.9 Выделение и освобождение места в памяти Проблема выделения и освобождения места в дисковой памяти в определенной степени напоминает проблему распределения основ¬ ной памяти при мультипрограммировании с переменными раздела¬ ми. Если желательно размещать файлы в соседних областях диско¬ вой памяти, то эти области необходимо собрать вместе. Однако, по¬ скольку в процессе работы системы файлы создаются и уничтожа¬ ются, со временем пространство дисковой памяти обычно становится все более фрагментированным. В связи с этим при размещении по¬ следующих файлов их приходится распределять по разбросанным блокам. Один из возможных способов решения этой проблемы заключа¬ ется в том, чтобы периодически производить уплотнение содержи¬ мого памяти, или «сборку мусора». Файлы можно реорганизовать такИхМ образом, чтобы они занимали соседние участки дисковой памяти, а свободные участки можно собрать в единый блок или группу больших блоков. «Сборка мусора» обычно производится в нерабочее время, когда систему можно закрыть для пользовате¬ лей. Некоторые системы предусматривают динамическую сборку мусора без прекращения работы. Система может выбирать для ре¬ организации файлы тех пользователей, которые в данный момент не работают, или файлы, к которым не было обращений в течение длительного времени. В некоторых вычислительных системах, в частности в системах, в которых файлы сотен пользователей размещаются на одном диско¬ вом устройстве, сборка мусора может быть нецелесообразной. Каж¬ дый раз, когда некоторый процесс пользователя выдает запрос на ввод-вывод, этот процесс уступает процессор другому процессу, который в свою очередь может выдать запрос ввода-вывода, требую¬ щий поиска удаленной дорожки этого же диска. Поэтому, даже если последовательные обращения одного процесса к данным файла будут относиться к соседним областям диска, это не исключит не¬
38 Часть 5 Управление внешней памятью обходимости длительных поисков в случае, когда система переклю¬ чается с процесса на процесс. Для разработки эффективной файловой системы необходимо четко представлять себе, какой контингент пользователей она долж¬ на будет обслуживать; в частности, нужно знать количество поль¬ зователей, среднее количество файлов, приходящихся на одного пользователя, среднюю длительность сеансов работы пользовате¬ ля, характер прикладных задач, решаемых на машине, а также мно¬ гие другие факторы. Эти факторы необходимо тщательно анализи¬ ровать, чтобы определить наиболее рациональные формы органи¬ зации файлов и их директориев. Та же самая концепция локальности, которую мы рассматрива¬ ли в главе, посвященной системам виртуальной памяти, заставляет нас, однако, стремиться к тому, чтобы все данные файла хранились компактно. Пользователи, просматривающие файл в поисках необ¬ ходимой информации, зачастую применяют средства сканирования файла для нахождения следующей или предыдущей записи. Такие операции сканирования должны вызывать лишь минимальные поис¬ ки-подводы. В системах со страничной организацией минимальный объем информации, передаваемый между внешней и основной памятью,— это страница, поэтому имеет смысл распределять внешнюю память блоками страничного размера или кратными страничному размеру. Свойство локальности говорит о том, что процесс, обратившийся к некоторому элементу данных некоторой страницы, с большой вероятностью будет вскоре обращаться к другим элементам данных этой же страницы; существует также большая вероятность того, что обращения будут производиться к элементам данных, которые находятся на страницах, смежных с этой в виртуальном адресном пространстве пользователя. Поэтому желательно хранить логически смежные страницы виртуальной памяти пользователя как физиче¬ ски смежные во внешней памяти. 13.9.1 Связное распределение памяти При связном распределении памяти каждому файлу отводится одна непрерывная область внешней памяти. Пользователь заранее указывает размер области, необходимой для размещения создавае¬ мого файла. Если нужной по размеру непрерывной свободной об¬ ласти нет, файл создать невозможно. Одним из достоинств связного распределения является то, что последовательные логические записи размещаются, как правило, физически рядом. Это позволяет повысить скорости доступа по срав¬ нению с системами, в которых последовательные логические записи разбросаны по диску. Директории файлов в системах со связным распределением реа¬ лизовать относительно просто. Для каждого файла необходимо хра¬ нить только начальный адрес и длину файла,
Гл. 13 Системы файлов и базы данных 39 Связное распределение имеет и определенные недостатки. Когда файлы уничтожаются, занимаемое ими пространство возвращается в список свободных ресурсов. Это пространство предоставляется для размещения новых файлов, которые при этом, однако, должны укладываться в существующие свободные области. Таким образом, этим схемам распределения свойственны те же самые виды проблем фрагментации, которые присущи системам мультипрограммирова¬ ния с переменными разделами,— соседние свободные области внеш¬ ней памяти необходимо объединять, а также может потребоваться периодическое уплотнение памяти, чтобы образовались достаточно большие свободные участки для размещения новых файлов. В условиях, когда размеры файлов со временем меняются, связ¬ ное распределение может оказаться нерациональным. Чтобы обеспе¬ чить предполагаемое расширение своих файлов, пользователи часто завышают размеры требуемых для них областей. Когда какой-либо файл увеличивается настолько, что он перестает умещаться в выде¬ ленной ему области, этот файл необходимо переносить в новую доста точно большую область. 13.9.2 Несвязное распределение памяти Поскольку файлы все-таки, как правило, с течением времени либо увеличиваются, либо уменьшаются, и поскольку пользователи редко знают заранее, какого размера будут их файлы, системы связ¬ ного распределения памяти сейчас уступают место более динамич¬ ным системам несвязного распределения. Имеется несколько спо¬ собов несвязного распределения памяти. 13.9,2.1 Распределение при помощи списков секторов Дисковая память рассматривается как набор индивидуальных секторов. Файлы состоят из секторов, которые могут находиться в различных местах дисковой памяти. Секторы, принадлежащие од¬ ному файлу, содержат ссылки-указатели друг на друга, образующие список. В списке свободного пространства содержатся все свободные секторы дисковой памяти. Когда появляется необходимость увеличить размер файла, соот¬ ветствующий процесс запрашивает дополнительное количество сек¬ торов из числа свободных. Файлы, размеры которых уменьшаются, возвращают освободившиеся секторы в список свободного простран¬ ства. Проблемы уплотнения памяти не возникает. Несвязное распределение памяти решает некоторые из проблем, присущих схемам связного распределения, однако имеет свои соб¬ ственные недостатки. Поскольку записи файла могут размещаться в различных местах дисковой памяти, выборка логически смежных записей может быть сопряжена с длительными поисками-подвода¬ ми. Приходится также идти на накладные расходы машинного вре¬
40 Часть 5 Управление внешней памятью мени для обработки ссылок-указателей. Хранение указателей в эле¬ ментах списков приводит к уменьшению объема памяти, предостав¬ ляемого для хранения данных. 13.9.2.2 Поблочное распределение Существует схема, обеспечивающая более эффективное управле¬ ние внешней памятью и при этом уменьшающая затраты машинного времени; она носит название поблочного распределения и сочетает в себе методы связного и несвязного распределения. В этой схеме память распределяется не индивидуальными секто¬ рами, а блоками смежных секторов (иногда эти блоки называют Директории пользователя Рис. 13.4 Цепочка блоков. экстентами). При выделении новых блоков система стремится выбирать свободные блоки, как можно ближе к уже существующим блокам файла. При каждом обращении к файлу вначале определяет¬ ся соответствующий блок, а затем соответствующий сектор в рам¬ ках этого блока. Существует несколько распространенных способов реализации систем поблочного распределения: при помощи цепочек блоков, це¬ почек индексных блоков и таблиц отображения. В схеме с цепочками блоков (рис. 13.4) строка в директории пользователя указывает на первый блок файла. Каждый из блоков
Гл. 13 Системы файлов и базы данных 41 Рис. 13.5 Цепочка индексных блоков. фиксированной длины, входящих в состав файла, содержит две час¬ ти: блок данных и указатель следующего блока. Минимальная еди¬ ница выделяемой памяти — это блок фиксированного размера, вклю¬ чающий, как правило, много секторов. Обычно принято размер бло¬ ка выбирать равным полной дорожке дискового накопителя. Для нахождения конкретной записи необходимо просмотреть цепочку
42 Часть 5 Управление внешней памятью блоков, найти соответствующий блок, а затем просмотреть этот блок, пока не будет найдена соответствующая запись. Просмотр цепочки блоков необходимо начинать с самого начала, так что если блоки разбросаны по всему диску (как обычно и быва¬ ет), то процесс просмотра может занимать много времени, затрачи¬ ваемого на перемещения головок. Однако здесь производить встав¬ ки и исключения блоков довольно легко — это делается путем моди¬ фикации указателей предыдущего блока. В некоторых системах для ускорения просмотра и поиска нужных записей в списках приме¬ няется двойное связывание, т. е. формируются как прямые, так и обратные ссылки между блоками, так что просмотр может произ¬ водиться в любом направлении. В схеме с цепочками индексов (рис. 13.5) указатели помещаются в отдельные индексные блоки. Каждый индексный блок содержит фиксированное количество элементов. Каждая строка-статья со¬ держит идентификатор записи и указатель на эту запись. Если для описания файла требуется более чем один индексный блок, то орга¬ низуется цепочка индексных блоков. Главное преимущество цепо¬ чек индексных блоков по сравнению с простыми цепочками блоков заключается в том, что при поиске нужного блока достаточно про¬ смотреть только сами индексные блоки. Для сокращения времени поиска индексные блоки можно размещать рядом друг с другом во внешней памяти. В некоторых системах, где требуется очень быст¬ рый поиск, индексные блоки могут храниться в основной памяти. После того как при помощи индексных блоков обнаружено место¬ нахождение соответствующей записи, блок данных, содержащий эту запись, считывается в основную память. Главный недостаток этой схемы состоит в том, что для вставления дополнительных записей может потребоваться полная перестройка структуры индексных бло¬ ков. В некоторых системах определенная часть индексных блоков оставляется пустой в предвидении будущих вставок, однако, после того как этот резерв оказывается исчерпанным, приходится произ¬ водить серьезную перестройку структуры индексных блоков. В схеме с таблицами поблочного отображения (рис. 13.6) вместо указателей используются номера блоков. Обычно эти номера легко преобразуются в фактически адреса блоков с учетом геометрии ди¬ ска. Имеется таблица отображения файлов, в которой содержатся по одной строке на каждый блок диска. Строка в директории пользо¬ вателя указывает на строку таблицы отображения, соответствующую первому блоку данного файла. Каждая строка таблицы отображения содержит номер следующего блока данного файла. Таким образом, все блоки файла можно находить, последовательно просматривая строки таблицы отображения файлов. В тех строках таблицы отображения файлов, которые соответст¬ вуют последним блокам файлов, обычно записывается некоторое граничное значение, например «Nil», обозначающее, что этим бло¬ ком заканчивается данный файл. В некоторых строках таблицы-ото-
Гл. 13 Системы файлов и базы данных 43 Директорий пользователя Файл Местопо¬ ложение А 8 В 6 С 2 ©- Таблица Отображения файлов Физические блоки внешней памяти Блок 0 В(4) Блок 1 В (10) Блок 2 С(1) Блок 3 А(4) Блок 4 В(8) Блок 5 0(2) Блок 6 В(1) //Блок 7% /Свободен/ ////////а Блок 8 А(1) Блок 9 В(9) блок 10 В(2) '%У////////// ббБлок УУ// /а/ W//////7A Блок 12 А(3) Блок 13 В(7) Блок 14 В(3) бСвободен/6, У///////Ш. ///"///"А /Блок 16Й W///////A блок 17 А(2) Блок 18 В (6) блок 19 С(5) блок 20 С(3) ^Блок21% а//7/7/// /Свободен//, 'шш Блок 22 В(5) Блок 23 С(4) ////АА/А/ /а/. /Свободен/ //////Ш WWW /Блок 25^ /а/ '///А////А/, блок 26 А'(5) WWW /Блок 27/ »/м//М Рис. 13.6 Таблица поблочного отображения файлов.
44 Часть 5 Управление внешней памятью бражения записывается признак «Свободен», обозначающий, что данный блок может быть выделен по очередному запросу. Система может либо просматривать таблицу отображения файлов, чтобы найти свободный блок, либо может просто вести список свободных блоков. Показанную таблицу отображения файлов можно модифи¬ цировать, включив в нее идентификаторы записей, с тем чтобы при поиске нужной записи в большинстве случаев можно было ограни¬ чиваться просмотром лишь таблицы отображения файлов. Главное достоинство этой схемы заключается в том, что по таблице отображе¬ ния можно судить о физическом соседстве блоков, располагаемых на диске. Когда появляется необходимость выделения нового блока, относительно легко найти свободный блок памяти, находящийся достаточно близко от остальных блоков данного файла. Эта схема упрощает операции по вставлению и удалению записей. 13.10 Дескриптор файла Дескриптор файла, или блок управления файлом,— это управ¬ ляющий блок, который содержит информацию, необходимую системе для выполнения различных операций с файлом. Это структура, в высшей степени зависимая от конкретной системы. Типичный де¬ скриптор файла может включать следующую информацию: © символическое имя файла, • размещение файла во внешней памяти, • тип организации файла (последовательная, индексно-последо¬ вательная и т. д.), О тип устройства, © данные для управления доступом, © тип файла (данные, объектная программа, исходная программа на Бейсике и т. д.), © диспозицию (постоянный или временный, рабочий файл), © дату и время создания, • дату уничтожения, • дату и время последней модификации, • счетчики активности доступа (например, количество обращений по чтению). Как правило, дескрипторы файлов хранятся во внешней памяти. Они передаются в основную память только после открытия соответ¬ ствующего файла. Дескриптором файла управляет файловая систе¬ ма — пользователь не может непосредственно к нему обращаться. 13.11 Матрица управления доступом Один из возможных способов управления доступом к файла^м заключается в том, чтобы создать двумерную матрицу управления доступом (рис. 13.7), в которой указываются все пользователи и все
Гл. 13 Системы файлов и базы данных 45 файлы системы. Элемент А/у- принимает значение 1, если пользова¬ телю i разрешается доступ к файлу j; в противном случае Ai;—0. В системе с большим количеством пользователей и файлов эта мат¬ рица может оказаться очень крупной — и при этом очень разре¬ женной. Предоставление одному пользователю права доступа к фай¬ лам другого пользователя здесь скорее исключение, чем правило. Рис. 13.7 Матрица управления доступом. Чтобы сделать концепцию подобной матрицы управления досту¬ пом приемлемой для реальных систем, целесообразно было бы ис¬ пользовать специальные коды для указания различных прав досту¬ па, таких, как «только для чтения», «только для записи», «только для выполнения», «для чтения-записи» и т. д. 13.12 Управление доступом в зависимости от классов пользователей Матрица управления доступом может стать настолько большой, что реализовать ее в системе будет практически невозможно. Су¬ ществует способ, требующий значительно меньше места в памяти системы,— это управление доступом к файлам в зависимости от классов пользователей. Обычная классификация предусматривает следующие категории: • «Владелец». Как правило, это пользователь, который создал данный файл. • «Указанный, допущенный пользователь». Владелец файла ука¬ зывает, что с его файлом может работать другой человек. • «Группа», или «проект». Пользователи часто являются членами группы, совместно работающими над конкретным проектом.
46 Часть 5 Управление внешней памятью В этом случае всем членам данной группы может быть предостав¬ лен доступ к связанным с этим проектом файлам. ф «Общедоступный». Большинство систем предусматривает воз¬ можность указывать, что некоторый файл является общедоступ¬ ным, т. е. доступ к нему разрешается для любого члена сообщест¬ ва пользователей данной системы. Понятие общедоступности, как правило, означает, что пользователям разрешается читать или выполнять файл, а производить запись запрещается. В гл. 17 рассматриваются механизмы полномочий и объектно- ориентированные системы. Эти средства представляют дополни¬ тельные способы решения проблемы управления доступом. 13.13 Копирование и восстановление информации Жизнь полна неприятных неожиданностей — случаются аварии дисковых устройств, бывают удары молний, возникают скачки на¬ пряжения, происходят пожары и наводнения, воровство встреча¬ ется гораздо чаще, чем большинство фирм хотели бы признавать, а кроме того, нельзя игнорировать опасность хулиганства, ванда¬ лизма (и даже терроризма). Все это говорит о том, что разрушение информации, либо случайное, либо злоумышленное, все же проис¬ ходит. Поэтому операционные системы в общем и файловые системы в частности должны разрабатываться с учетом подобной возможно¬ сти. Для предотвращения несанкционированного доступа в машин¬ ный зал вычислительного центра, для фильтрации скачков напря¬ жения и для включения автоматической спринклерной системы по¬ жаротушения в случае возникновения пожара можно использовать физические средства защиты. Однако простая авария дискового на¬ копителя, при которой магнитная головка приходит в соприкосно¬ вение с поверхностью диска и прочерчивает на ней царапину, может испортить целый дисковый пакет. Наиболее распространенный способ, применяемый для обеспе¬ чения сохранности данных, заключается в периодическом копиро¬ вании, т. е. в регулярном изготовлении одной или большего числа копий системных файлов и помещении их в безопасное место. Одна¬ ко даже периодическое копирование может оказаться недостаточ¬ ным, поскольку это не исключает возможности потери всех измене¬ ний файла за период с момента его последнего копирования. Еще один способ, направленный на достижение той же самой цели, состоит в том, чтобы регистрировать (протоколировать) все транзакции файла путем копирования их на другой диск. Подобная избыточность может стоить довольно дорого, однако она оправды¬ вается тем, что в случае отказа позволяет реконструировать всю потерянную было работу (предполагается, естественно, что регист¬
Гл. 13 Системы файлов и базы данных 47 рирующий (журнальный) диск не оказался также испорчен¬ ным). Не существует никаких средств, гарантирующих абсолютную безопасность файлов (так же, собственно говоря, как и абсолютную безопасность в любом другом вопросе). Разработчики должны пре¬ дусматривать в своих системах лишь необходимые и обоснованные средства дублирования, которые не приводили бы к снижению про¬ изводительности системы и стоимость которых находилась бы в пре¬ делах разумного с точки зрения экономических характеристик уста¬ новки. В ситуациях, когда целостность данных необходимо гаран¬ тировать с очень высокой степенью надежности, у разработчиков может не оказаться другого выбора, кроме как использовать дорого¬ стоящие и отнимающие много времени процедуры дублирования информации. При таком подходе пользователям в худшем случае может потребоваться лишь реконструирование всех транзакций за период с момента последнего копирования. Схема периодического копирования имеет несколько недо¬ статков: • На время копирования информации может возникнуть необхо¬ димость закрыть систему для обычных пользователей. • Размеры файловых систем могут быть очень велики, и полное дублирование может потребовать многих часов машинного вре¬ мени. • Если происходит отказ, то на восстановление информации мо¬ жет потребоваться много времени, причем восстановить ее можно только к состоянию последней копии. Все транзакции, имевшие место после последнего копирования, теряются. Преимущество периодического копирования информации заклю¬ чается в том, что оно позволяет реорганизовать файловую систему таким образом, чтобы различные блоки файлов пользователей, разбросанные по всей дисковой памяти, можно было разместить более компактно, рядом друг с другом. Это обычно дает возможность гораздо более быстрого доступа к файлам пользователей после пере¬ запуска системы. . Периодического копирования всей файловой системы недоста¬ точно в тех случаях, когда восстановление необходимо произво¬ дить быстро, причем по самому последнему состоянию системы. Для этого применяется более эффективный способ под названием «инкрементный, или пошаговый, дампингъ. Все файлы, содержимое которых обновляется во время сеанса работы с терминалом, поме¬ чаются специальными признаками. Когда пользователь отключает¬ ся от системы, список всех этих файлов передается определенному системному процессу, который осуществляет их копирование. Инкрементный дампинг не слишком поможет пользователю, ко¬ торый в момент отказа системы находится в середине или в конце
48 Часть 5 Управление внешней памятью длительного сеанса работы за терминалом. С точки зрения такого пользователя было бы лучше, если бы система просматривала ди¬ ректории файлов даже во время сеансов работы пользователя и чаще сохраняла модифицированные файлы. Главным недостатком всех методов, рассмотренных выше, яв¬ ляется тот факт, что между моментом последнего дублирования-дам- пинга и моментом возникновения отказа в системе может быть вы¬ полнено значительное количество работ. Поэтому для систем, для которых потеря результатов даже минимального количества работ является неприемлемой, более подходящим может быть способ про¬ токолирования (занесения в журнал) транзакций. Здесь каждая транзакция дублируется немедленно, как только она произошла. Такую интенсивность дублирования несколько легче обеспечить для интерактивных систем, в которых общий объем выполняемых работ ограничивается относительно низкими скоростями ответа, свойственными человеку. Даже системы, обслуживающие сотни пользователей, работающих в режиме оперативного диалога, могут легко регистрировать каждую строку, вводимую с терминалов, так что в подобных системах предположительно можно организовать дублирование, обеспечивающее довольно высокую оперативность восстановления в случае отказа. Однако диалоговые команды могут инициировать большие объемы вычислений, поэтому для выполне¬ ния необходимых процедур восстановления в подобных случаях может все же потребоваться значительное время. 13.14 Системы баз данных Появление недорогих устройств внешней памяти большой ем¬ кости с прямым доступом вызвало проведение большого числа на¬ учно-исследовательских и опытно-конструкторских работ, связан¬ ных с системами баз данных. Информация является одним из наи¬ более ценных видов собственности любой организации или пред¬ приятия. База данных — это интегральная совокупность данных с централизованным управлением; система базы данных включает сами данные, аппаратные средства, на которых эти данные хранят¬ ся, программные средства, управляющие запоминанием и выборкой данных (называемые системой управления базы данных, СУБД), а также самих пользователей. 13.14.1 Преимущества систем баз данных В работе (Da81) перечисляются следующие важные достоинства систем баз данных. Эти системы позволяют • уменьшить избыточность информации, • исключить несогласованность различных записей и файлов, • обеспечить разделение данных.
Гл. 13 Системы файлов и базы данных 49 О обеспечить стандартизацию, О вводить ограничения, обеспечивающие защиту и безопасность данных, • обеспечить целостность данных, 9 лучше сбалансировать противоречивые требования. В традиционных системах, без баз данных, каждая отдельно взятая прикладная программа ведет свои собственные файлы, при¬ чем зачастую со значительной избыточностью и с использованием различных физических форматов. В системах баз данных благодаря интеграции отдельных файлов степень избыточности значительно уменьшается. А за счет этого можно также уменьшить или исклю¬ чить несогласованности, присущие системам, в которых использу¬ ются многие копии одних и тех же данных. В системе баз данных гораздо меньше вероятность того, что какие-либо две ее компоненты будут не соответствовать друг другу. Одним из наиболее важных достоинств систем баз данных явля¬ ется эффективное разделение, или коллективное использование данных. Существующие прикладные программы могут свободно обращаться к одним и тем же данным, а новые прикладные програм¬ мы могут обращаться к уже существующим данным. Централизованное управление обеспечивает возможность жест¬ кой стандартизации. А это становится особенно важным для вычис¬ лительных сетей (см. гл. 16), в которых происходят активные обмены данными между машинами. Важной проблемой для систем баз данных является защита и безопасность данных. Фактически опасность несанкционированно¬ го доступа к данным может в принципе увеличиваться, поскольку данные собираются и хранятся в одном центральном пункте, вместо того чтобы распределяться по физически разнесенным файлам и находиться, быть может, во многих различных местах. Чтобы успеш¬ но противостоять этой опасности, системы баз данных должны раз¬ рабатываться с включением эффективных средств защиты от не¬ санкционированного доступа. Целостность данных, хранящихся в базе данных, может обес¬ печиваться с большей надежностью, причем в действительности здесь это просто обязательно; поскольку данные, как правило, ис¬ пользуются коллективно, их неточность или неполнота будет при¬ водить к быстрому распространению ошибок по программам поль¬ зователей организации или предприятия. Централизованное управление, присущее системам баз данных, обеспечивает возможность в определенной степени удовлетворять и примирять противоречивые требования. Конкретные системы баз данных строятся с ориентацией на нужды целой организации или предприятия. Поэтому противоречивые требования различных прикладных программ обычно удается урегулировать с учетом всей картины в целом.
50 Часть 5 Управление внешней памятью 13.14.2 Независимость от данных Одним из самых важных аспектов систем баз данных является независимость от данных, обеспечиваемая для прикладных про¬ грамм, т. е. прикладным программам не требуется знать, каким об¬ разом организуется физическое хранение и доступ к данным. Гово¬ рят, что прикладная программа является зависимой от данных, если структуры хранящихся в памяти данных и стратегию доступа нельзя менять, не затрагивая самой сути этой прикладной прог¬ раммы. В системах баз данных независимость от данных удобна тем, что позволяет различным прикладным программам иметь различные представления одних и тех же данных. Если говорить с точки зре¬ ния системы, то независимость от данных обеспечивает возможность менять структуру памяти и стратегию доступа в соответствии с из¬ меняющимися требованиями вычислительного комплекса, причем без модификации функционирующих прикладных программ. 13.14.3 Языки баз данных Пользователи обращаются к базе данных при помощи операторов, представляющих ту или иную форму языка базы данных. При этом прикладные программы могут использовать традиционный проце¬ дурно-ориентированный язык высокого уровня, например Кобол, ПЛ/1 или Паскаль; а пользователь, работающий на терминале, может применять специально разработанный язык запросов, который позволяет легко формулировать вопросы (обычно на простом есте¬ ственном английском языке) в рамках контекста конкретного при¬ ложения. Эти языки называются включающими языками. Каждый включаю¬ щий язык обычно содержит подъязык данных (DSL), предназначен¬ ный для указания конкретных объектов базы данных и операций. Каждый подъязык данных представляет собой, как правило, соче¬ тание двух языков, а именно языка описания данных (DDL), содер¬ жащего средства для описания объектов базы данных, и языка манипулирования данными (DML), содержащего средства указания операций обработки, выполняемых над объектами базы данных. 13.14.4 Администратор базы данных Администратор базы данных — это человек, который управля¬ ет работой и использованием системы базы данных. Администратор базы данных решает, какая информация будет записываться в базу данных, каким образом будет организовано хранение и доступ для этих данных, какие процедуры контроля полномочий и предоставле¬ ния права на доступ будут выполняться, какие процедуры копиро¬ вания и восстановления будут использоваться и каким образом си¬ стема будет приспосабливаться к меняющимся требованиям с точки зрения скоростных характеристик.
Гл. 13 Системы файлов и базы данных 13.14.5 Распределенная база данных 51 Распределенная база данных — это база данных, которая раз¬ несена по вычислительным машинам сети. Как правило, в подоб¬ ных системах каждый элемент данных хранится в том месте, в той машине, где он наиболее часто используется, однако он доступен и для других пользователей сети. Распределенные вычислительные системы сочетают в себе эффек¬ тивность управления и экономичность, свойственные локальным вычислениям, с теми преимуществами, которые предоставляет возможность доступа к информации, находящейся в различных тер¬ риториально разнесенных пунктах организации или предприятия. Построение и эксплуатация распределенных систем может, однако, обходиться весьма дорого, причем они могут быть в большей степени подвержены опасностям несанкционированного доступа. Эти проб¬ лемы подробно рассматриваются в гл. 16. 13.14.6 Словарь данных Индекс всех элементов базы данных организации или предприя¬ тия носит название словаря данных. Словарь данных фактически сам является некой базой данных, он содержит информацию отно¬ сительно базы данных, в состав которой он входит. Он перечисляет типы данных этой базы данных, указывает, какие программы ис¬ пользуют какие данные, какие отчеты каким группам пользовате¬ лей требуются, какие объекты каждого типа существуют в системе И т. д. 13.15 Модели баз данных Широкое распространение получили три различные модели баз данных: (1) иерархическая, (2) сетевая и (3) реляционная. 13.15.1 Иерархическая модель базы данных Ценность метода баз данных определяется преимущественно тем, что он позволяет явным образом указывать отношения между эле¬ ментами данных. В иерархической модели (рис. 13.8) элементы дан¬ ных связываются отношением «отец—сын»; каждый отец может иметь много сыновей, однако каждый сын может иметь только одного отца. Иерархическая организация не предусматривает выражения отношений, в которых сыновья связываются более чем с одним от¬ цом. Такая негибкость заставляет многих разработчиков выбирать другую модель базы данных. Если, однако, отношения между дан¬ ными в действительности являются иерархическими, то иерархиче¬ ская модель вполне приемлема, так как ее легко реализовать, мо¬ дифицировать и производить в ней поиск нужных данных.
52 Часть 5 Управление внешней памятью Рис. 13.8 Иерархическая организация базы данных. 13.15.2 Сетевая модель базы данных Сетевая модель (рис. 13.9) является более гибкой, чем иерархи¬ ческая. Она позволяет сыновьям иметь связь с многими отцами, а также предусматривает возможность выражения достаточно произ¬ вольных взаимозависимостей. Недостаток сетевой модели заклю¬ чается в том, что некоторые сетевые структуры в определенных слу¬ чаях начинают походить на «крысиное гнездо», где указатели смот¬ рят в самых различных направлениях. С подобной структурой слож- Рис. 13.9 Возможная сетевая организация базы данных. Отметим, что некоторые люди добровольно работают в более чем одной благотворительной организации.
Гл. 13 Системы файлов и базы данных 53 но разбираться, ее трудно модифицировать или реконструировать в случае отказа. Сетевая структура полезна для стабильных усло¬ вий работы, когда необходимо иметь возможность выражать слож¬ ные взаимозависимости данных, чтобы обеспечить эффективное ис¬ пользование базы данных. В более динамичных условиях, когда следует ожидать значительного роста базы данных или когда с боль¬ шой вероятностью в базу данных будут вводиться новые параметры и отношения, сетевой моделью лучше не пользоваться. 13.15.3 Реляционная модель базы данных В последнее время большой интерес среди специалистов вызы¬ вает реляционная модель базы данных, которую предложил Кодд (Со70, Со72). Реляционная модель обладает многими преимущест¬ вами по сравнению с иерархической и сетевой моделями. Реляционная модель — это структура скорее логическая, чем физическая; принципы управления реляционной базой данных мож¬ но рассматривать, и это будет вполне правомерно, не касаясь физи¬ ческой реализации соответствующих структур данных. Реляционная база данных состоит из так называемых отношений (relations}. На рис. 13.10 показан пример отношения, которое может Отношение: СЛУЖАЩИЙ Номер Имя Отдел Зарабо- Местоположение ток 23603 Джонс А. 24668 Кервин Р. 413 413 1100 Ныо-Джерси 2000 Ныо-Джерси 34589 Ларсон П. 642 1800 Лос-Анджелес 35761 Майерс Б. i 611 : 1400 Орландо 47132 Нейман К. i 413 i 9000 Ныо-Джерси 78321 Стивенс Т. 611 8500 Орландо Первич¬ ный ключ Домен Рис. 13.10 Структура реляционной базы данных. использоваться в информационной системе отдела кадров. Это от¬ ношение носит имя СЛУЖАЩИЙ и его основная цель заключается в том, чтобы продемонстрировать взаимосвязи различных атрибу¬ тов каждого служащего с этим служащим. Каждая конкретная стро¬ ка данного отношения называется кортежем. Показанное отноше¬ ние включает шесть кортежей. Первое поле каждого кортежа, но¬ мер служащего, используется в качестве первичного ключа при об¬ ращении к данным, входящим в отношение. Кортежи отношения упорядочиваются по первичному ключу.
54 Часть 5 Управление внешней памятью Каждый столбец отношения представляет собой домен. Корте¬ жи, входящие в отношение, должны быть уникальными (они долж¬ ны различаться по первичному ключу), однако конкретные значения доменов могут быть одинаковыми для различных кортежей. Напри¬ мер, три различных кортежа в показанном отношении содержат но¬ мер отдела 413. Число доменов в отношении определяет степень данного отношения. Отношения 2-й степени — это бинарные отно¬ шения, отношения 3-й степени — тернарные, или тройные, а отно¬ шения степени п — п-арные отношения. Различных пользователей базы данных будут интересовать раз¬ личные элементы базы данных и различные взаимосвязи между этими элементами данных. Некоторым пользователям потребуются только определенные поднаборы столбцов таблицы. Другим поль¬ зователям захочется объединить небольшие таблицы в большие, Отношение: МЕСТОПОЛОЖЕНИЕ —ОТДЕЛОВ Отдел Местоположение 413 Нью-Джерси 611 Орландо 642 Лос-Анджелес Рис. 13.11 Отношение, образованное при помощи операции проекции. чтобы сформировать более сложные отношения. Кодд называет опе¬ рацию по выделению поднабора столбцов проекцией, а операцию комбинирования таблиц — соединением. Обрабатывая отношение, показанное на рис. 13.10, мы можем, например, при помощи операции проекции создать новое отноше¬ ние под названием МЕСТОПОЛОЖЕНИЕ—ОТДЕЛОВ, чтобы по¬ казать, в каких местах находятся различные отделы. Это новое от¬ ношение приведено на рис. 13.11. По сравнению с иерархической и сетевой моделями реляцион¬ ная модель базы данных обладает многими преимуществами: 1. Табличное представление данных, применяемое в реляционной модели, делает ее простой для понимания пользователями и для реализации в физической системе базы данных. 2. Практически любой другой тип структуры базы данных относи¬ тельно легко превратить в реляционную схему. Таким образом, эту схему можно рассматривать как один из видов универсального представления данных. 3. Операции проекции и соединения (в числе других) легко реали¬ зовать, и они позволяют легко создавать новые отношения, необ¬ ходимые для конкретных приложений. 4. Управление доступом к секретным и конфиденциальным данным реализуется без всяких сложностей. Такие данные просто помеща¬ ются в отдельные отношения, а доступ к этим отношениям контро¬ лируется при помощи тех или иных средств проверки полномочий или защиты от несанкционированного доступа.
Гл. 13 Системы файлов и базы данных 55 5. Поиск необходимых данных может осуществляться гораздо быст¬ рее, чем в схемах, требующих следования по цепочке указателей. 6. Реляционные структуры гораздо проще модифицировать, чем иерархические или сетевые. Для условий, где гибкость является обязательным требованием, это может стать решающим фактором. 7. Реляционная структура делает базу данных гораздо более на¬ глядной и удобной для поисков. Гораздо проще разбираться в таб¬ личных данных, чем «раскручивать», быть может, произвольно слож¬ ные связи элементов данных в механизме с указателями. Системы баз данных безусловно будут встраиваться как стан¬ дартные в будущие операционные системы, предоставляя пользо¬ вателям гораздо более широкие возможности, чем традиционные файловые системы. Это направление уже сейчас активно развивает¬ ся; доказательство тому — обширные возможности работы с базами данных, предусматриваемые как в аппаратных средствах, так и в операционной системе компьютера System/38 корпорации IBM (Wa80a, Wa80b) и многих других недавних вычислительных машин. Заключение Файл — это поименованная совокупность данных, обычно раз¬ мещаемая во внешней памяти. Для выполнения операций с целыми файлами предусматриваются такие команды, как «открыть», «за¬ крыть», «создать», «уничтожить», «скопировать», «переименовать» и «вывести» (распечатать). Операции с индивидуальными элемента¬ ми файла (обычно записями) можно выполнять при помощи таких команд, как «прочитать», «записать», «обновить», «вставить» и «уда¬ лить». Управление файлами осуществляет файловая система. Она обес¬ печивает возможности разделения (коллективного использования), секретность и доступ к информации, копирование, восстановление, независимость от устройства, а также шифрование—дешифрование, Структуры данных строятся из элементов возрастающей слож- ности: битов, байтов, полей, записей, файлов и баз данных. Записи могут быть несблокированными (одна логическая запись на физический блок) или сблокированными (несколько логических записей на физический блок). Объединение в блоки минимизирует количество физических передач данных при обмене с внешней па¬ мятью в процессе обработки файлов. Буферизация обеспечивает возможность совмещать выполнение операций ввода-вывода с рабо¬ той процессора. Наибольшее распространение получили такие схемы организа¬ ции файлов, как последовательные, индексно-последовательные, прямые и библиотечные. Доступ к файлам обеспечивается средства¬ ми операционных систем, называемых методами доступа. При рабо¬ те с файлами последовательной организации применяются методы
Е6 Часть 5 Управление внешней памятью доступа с очередями; они предусматривают буферизацию с упрежде¬ нием и планирование операций ввода-вывода, а также обеспечивают автоматическое блокирование и деблокирование. Базисные методы доступа обеспечивают только выполнение операций чтения и записи для физических блоков. При связном распределении памяти для размещения файла вы¬ деляется единая область внешней памяти; при несвязном распреде¬ лении памяти файл может занимать несколько разнесённых участ¬ ков внешней памяти. Связное распределение обеспечивает быстрый доступ, однако характеризуется серьезными проблемами фрагмен¬ тации. Несвязное распределение является более гибким, однако в этом случае доступ может быть сопряжен с частыми поисками-под¬ водами. Поблочное распределение сочетает гибкость несвязного рас¬ пределения с высокой скоростью доступа, свойственной связному распределению (по крайней мере при последовательном доступе к записям одного и того же блока). При поблочном распределении при помощи таблиц отображения файла в таблице отражается физи¬ ческое соседство блоков, располагаемых в дисковой памяти. Дескриптор файла содержит информацию, которая необходима системе для управления файлом. Пользователь не может непосред¬ ственно обращаться к дескрипторам файлов, доступ к ним контро¬ лируется файловой системой. Управление доступом к файлам можно организовать при помощи матрицы управления доступом, в которой указывается, каким поль¬ зователям к каким файлам разрешается доступ. Чаще управление доступом организуется с учетом классов пользователей, например к определенным файлам право доступа может предоставляться «Вла¬ дельцу», «Указанному, или допущенному пользователю», «Поль¬ зователю — члену группы» или «Любому пользователю». Важные функции любой файловой системы — это дублирование и восстановление информации. Наиболее распространенный спо¬ соб — это периодическое копирование всей файловой системы. Спо¬ соб инкрементного, или пошагового, дампинга предусматривает копирование тех файлов, которые пользователь модифицировал во время сеанса работы на терминале, после того как этот пользова¬ тель выйдет из системы. Способ протоколирования (журнализации) транзакций предусматривает копирование каждой строки, введен¬ ной пользователем с терминала, в специальный регистрационный файл (журнал); восстановление в этом случае может осуществляться путем буквального повторного выполнения всех транзакций, заре¬ гистрированных в журнале за период с момента последнего копи¬ рования. База данных — это интегральная совокупность данных с цент¬ рализованным управлением. Во многих современных вычислитель¬ ных машинах как аппаратные средства, так и операционные систе¬ мы сейчас предусматривают реализацию специальных функций, необходимых для работы с базами данных. Благодаря этому поль¬
Гл. 13 Системы файлов и базы данных 57 зователь получает в свое распоряжение гораздо более широкие возможности манипулирования данными, чем те, которые обычно предусматривались в традиционных файловых системах. Независимость от данных означает, что существующие при¬ кладные программы можно менять, а новые прикладные программы разрабатывать, не модифицируя структуру хранения данных и стра¬ тегию доступа к данным. Распределенная база данных — это база данных, которая разнесена по различным вычислительным маши¬ нам сети. Словарь данных описывает данные, содержащиеся в базе данных. Существуют три наиболее популярные организации баз данных: иерархическая, сетевая и реляционная. Иерархическая модель пре- дусматривает организацию данных в соответствии с отношениями типа «отец — сын»; каждый сын может иметь только одного отца, однако каждый отец может иметь много сыновей. Иерархическая база данных удобна для ведения и поисков нужных данных, однако она ограничивает возможности пользователя с точки зрения гиб¬ кого определения сложных взаимозависимостей между данными. Сетевая модель позволяет достаточно удобно выражать взаимо¬ зависимости весьма общего вида. Однако получающиеся при этом структуры данных могут оказаться сложными для понимания, моди¬ фикации или реконструирования в случае отказа. Реляционная модель базы данных обладает многими преимущест¬ вами по сравнению с иерархической и сетевой моделями. Табличное представление данных удобнее для понимания и реализации. Базы данных, построенные в соответствии с другими моделями, легко можно преобразовать в реляционную структуру. Такие удобные операции, как проекция и соединение, позволяют без всяких слож¬ ностей создавать новые отношения. Защиту секретных и конфиден¬ циальных данных от несанкционированного доступа можно обеспе¬ чивать, помещая их в отдельные отношения. Реляционная база данных характеризуется тем, что поиск в ней осуществляется, как правило, гораздо быстрее, чем при других моделях, модификация данных упрощается, а наглядность и четкость структуры базы дан¬ ных существенно улучшаются. Терминология администратор базы данных (database administrator) аппаратная независимость, независимость от устройств (device independence) база данных (database) библиотечная организация файла (partitioned file organization) блок управления файлом (file control block) включающий язык (host language) восстановление (recovery) дампинг, разгрузка (dumping)
58 Часть 5 Управление внешней памятью дескриптор файла (file descriptor) дешифрование (decryption) домен (domain) дублирование, копирование (backup) журнальный диск (logging disk) зависимость (от) данных (data dependent) защита файла (file protection) закрыть файл (close a file) иерархия памяти (storage hierarchy) иерархическая база данных (hierarchical database) иерархическая структура директориев (hierarchical directory stru¬ cture) избыточность (redundancy) изменчивость, динамичность файла (volatility of a file) имя пути (pathname) имя файла (file name) индекс (index) индексно-последовательная организация файла (indexed sequential file organization) инкрементный или пошаговый дампинг (incremental dumping) ключ (key) ключ шифрования (encryption key) контролируемое разделение (коллективное использование) инфор¬ мации (controlled information sharing) корневой директорий (root directory) корневой узел (root node) кортеж (tuple) логическое представление (logical view) матрица управления доступом (access control matrix) метод доступа (access method) независимость (от) данных (data independence) открыть файл (open a file) отношение (relation) отношение бинарное (binary relation) отношение тернарное (тройное) (ternary relation) отношение n-арное (n-ary relation) память для хранения личной, частной информации (private storage of information) первичный, главный ключ (primary key) периодическое копирование (periodic backups) поблочное распределение (block allocation) подфайл (член, элемент набора) (member) подъязык данных (data sublanguage, DSL) последовательная организация файла (sequential file organization) права доступа к файлу (file access rights) проекция, проецирование (projection) прямая организация файла (direct file organization)
Гл. 13 Системы файлов и базы данных 59 распределение при помощи таблицы отображения (mapped allocation) распределение при помощи связанных списков (linked allocation) распределенная база данных (distributed database) регистрация, протоколирование, журнализация транзакций (tran¬ saction logging) реляционная база данных (relational database) «сборка мусора» (garbage collection) сетевая база данных (network database) система управления базой данных, СУБД (database management system, DBMS) словарь данных (data dictionary) соединение (join) список свободных участков, областей памяти (free space list) директорий пользователя (user directory) директорий файлов (file directory) степень отношения (degree of a relation) таблица отображения файлов (file map(ping)) том (volume) уплотнение, сжатие памяти (compaction) управление доступом к файлу (file access control) файл (file) файловая система (file system) файловая система с двухуровневой древовидной структурой (two-le¬ vel, tree-structured file system) физическое представление (physical view) фрагментация внешней памяти (fragmentation of secondary storage) цепочки, формирование цепочек (chaining) цепочки блоков, формирование цепочек блоков (block chaining) цепочки индексных блоков, формирование цепочек индексных бло¬ ков (index block chaining) шифрование (encryption) экстент (extent) язык базы данных (database language, DBL) язык запросов (query language) язык манипулирования данными (data manipulation language, DML) язык описания данных (data definition language, DDL) Упражнения 13.1 В одной конкретной файловой системе применяются «глобальные» имена в масштабах системы, т. е., после того как один из пользователей занял некоторое имя, это имя нельзя присваивать новым файлам. В то же время большинство круп¬ ных файловых систем требуют только, чтобы имена были уникальными лишь для данного пользователя, т. е. два различных пользователя могут давать файлам одно и то же имя, и это не приведет к возникновению конфликтных ситуаций. Обсудите относительные достоинства этих двух подходов с учетом как реализа¬ ции, так и последующей эксплуатации,
60 Часть 5 Управление внешней памятью 13.2 Некоторые системы требуют, чтобы файлы открывались явным образом. В других системах файлы открываются неявно при первом обращении к файлу. Почему более желательно открывать файлы явно? 13.3 В некоторых системах разделение файлов реализуется путем предоставле¬ ния возможности чтения одной копии файла нескольким пользователям одновре¬ менно. Другие системы предусматривают предоставление отдельной копии разде¬ ляемого файла каждому пользователю. Обсудите относительные достоинства каж¬ дого из этих подходов. 13.4 Разработчики прикладных программ часто используют индексно-последо¬ вательные файлы. Однако опыт показывает, что прямой доступ к индексно-после¬ довательным файлам может оказаться связанным с очень большими потерями вре¬ мени. Чем это объясняется? При каких обстоятельствах целесообразнее обращать¬ ся к подобным файлам последовательно? При каких обстоятельствах разработчик прикладной программы должен использовать файлы с прямой (произвольной) организацией, а не с индексно-последовательной? 13.5 Проблемы надежности и целостности данных приобретают все более важное значение, поскольку сейчас сама наша жизнь становится все в большей степени зависимой от компьютеров. Когда происходит отказ вычислительной машины, очень важно иметь возможность быстро и точно восстановить файловую систему. Предположим, что файловая система предусматривает сложные структуры ука¬ зателей и механизмы перекрестных ссылок между директориями. Какие меры мог бы предусмотреть разработчик подобной файловой системы, чтобы гарантировать ее надежность и целостность? 13.6 Некоторые файловые системы рассчитаны на очень большое количество классов доступа, в то время как другие — лишь на небольшое их число. Обсу¬ дите относительные достоинства каждого подхода. Какой из них более целесооб¬ разен для работы с особо секретной информацией? Почему? 13.7 Чем выделение места для размещения файлов во внешней памяти похоже на распределение физической основной памяти при мультипрограммировании с переменными разделами? 13.8 При каких обстоятельствах целесообразно осуществлять уплотнение внешней памяти? Какие опасности присущи подобному уплотнению? Каким образом их можно избежать? 13.9 Какие имеются мотивы для иерархического построения файловых систем? 13.10 Одна из проблем, свойственных индексно-последовательным файлам, за¬ ключается в том, что записи, добавляемые в эти файлы, могут попадать в области переполнения. Каким образом это может повлиять на скорость доступа к файлу? Что можно сделать для повышения скорости доступа в этих обстоятельствах? 13.11 В иерархической файловой системе имя пути может быть очень длинным. Учитывая, что подавляющее большинство обращений программа пользователя делает к своим собственным файлам, какие соглашения можно было бы реализо¬ вать в файловой системе, чтобы свести к минимуму необходимость использования длинных имен пути? 13.12 Некоторые файловые системы хранят информацию точно в том формате, который задает пользователь. В других системах делается попытка оптимизации использования памяти путем сжатия данных. Например, существуют системы, в которых программы пользователя хранятся как образы 80-колонных перфокарт, а значительные части каждой перфокарты содержат только пробелы. Опишите,
Гл. 13 Системы файлов и базы данных 61 каким образом вы реализовали бы здесь механизм упаковки-распаковки данных. Подобный механизм обязательно представляет некое компромиссное решение — он позволяет уменьшить объем памяти, требуемый для размещения файлов, но за счет определенных затрат машинного времени. При каких обстоятельствах такой компромисс приемлем? 13.13 Предположим, что сделано крупнейшее открытие^ относящееся к техно¬ логии изготовления устройств основной памяти и обеспечившее возможность создания памяти столь большой емкости, столь быстродействующей и столь недо¬ рогой, что все программы и данные вычислительной системы удается разместить на одном кристалле. Чем структура файловой системы для подобной одноуровне¬ вой памяти должна была бы отличаться от структуры сегодняшних традиционных систем иерархической памяти? 13.14 Предположим, что вас попросили произвести расследование, связаннее с несанкционированным доступом к вычислительной системе. Администратор системы подозревает, что структура указателей файловой системы была модифи¬ цирована, чтобы обеспечить определенным пользователям, не имеющим на то пол¬ номочий, доступ к закрытой системной информации. Опишите, каким образом вы попытались бы определить, кто ответствен за нарушение безопасности системы и каким образом им удалось модифицировать указатели. 13.15 В большинстве систем обработки данных лишь незначительная часть ко¬ пий файлов обычно используется для восстановления, реконструирования того или иного файла. В связи с этим правомерно поставить вопрос о том, следует ли периодически копировать файлы, а если следует, то как? Будет ли приводить отсутствие необходимой копии файла к столь серьезным последствиям, что все усилия по периодическому копированию файлов окажутся вполне оправданными? Какие факторы указывают на то, что гораздо целесообразнее периодически копи¬ ровать файлы, чем не копировать? Какие факторы обусловливают частоту, с ко¬ торой следует производить копирование? 13.16 Последовательный доступ при работе с последовательно организованными файлами осуществляется гораздо быстрее, чем при работе с индекс но-последова¬ тельными файлами. Почему тогда многие разработчики прикладных систем соз¬ дают системы с индексно-последовательными файлами, предусматривающими по¬ следовательный доступ? 13.17 Каким образом в университетском вычислительном центре можно было бы организовать управление доступом к файлам для таких категорий пользователей, как «владелец», «указанный пользователь», «пользователь — член группы» и «обычный пользователь»? Рассмотрите случаи, когда вычислительная система при¬ меняется для решения административных, а также научных задач. Кроме того, рассмотрите случаи применения вычислительной системы при выполнении суб¬ сидируемых научно-исследовательских работ, а также при прохождении учебных курсов. 13.18 Файловые системы обеспечивают доступ к постоянно установленным фай¬ лам, а также к сменным файлам. Сменные файлы хранятся, например, на таких томах, как сменные дисковые пакеты или записываются автономно от вычисли» тельной машины. Какие типы файлов наиболее целесообразно было бы иметь как постоянные? Как сменные? Какие особые проблемы характерны для обращения со сменными файлами? 13.19 Каким способом и с какой частотой наиболее целесообразно производить копирование файлов в каждой из следующих систем? а) В системе пакетной обработки, которая каждый четверг решает задачу составления платежной ведомости,
62 Часть 5 Управление внешней памятью б) В банковской системе, предназначенной для оперативной обработки тран¬ закций, выполняемых кассирами. в) В системе для оформления счетов пациентов госпиталя. г) В системе предварительной продажи авиационных билетов, которая предоставляет пассажирам возможность заказывать по телефону билеты в срок до одного года до даты рейса. д) В системе разделения времени, предназначенной для проектирования программ и обслуживающей группу из 100 программистов. 13.20 В настоящее время в большинстве банков применяются системы оператив¬ ной обработки транзакций (операций) кассиров. Каждая транзакция немедленно находит отражение в счетах клиентов, что позволяет четко и своевременно под¬ водить баланс. Ошибки здесь недопустимы. Однако, поскольку отказы компью¬ тера и отключения сетевого питания все же происходят, эти системы иногда «останавливаются». Опишите, каким образом вы реализовали бы механизм дубли¬ рования-восстановления информации, гарантирующий, что каждая законченная транзакция найдет отражение в счете соответствующего клиента. Кроме того, транзакции, которые не были завершены в момент отказа системы, не должны находить отражения в счетах. 13.21 Почему целесообразно периодически производить реорганизацию индекс¬ но-последовательных файлов? Какими критериями могла бы руководствоваться файловая система, чтобы определять, когда необходима реорганизация? 13.22 Укажите различия между методами доступа с очередями и базисными методами доступа. 13.23 Что такое база данных? Что такое система базы данных? Перечислите некоторые из преимуществ систем баз данных по сравнению с файловыми сис¬ темами (без баз данных). 13.24 Каким образом избыточность программ и данных может способствовать построению систем высокой надежности? Системы баз данных позволяют значи¬ тельно уменьшить степень избыточности при хранении данных. Можно ли на этом основании считать, что системы баз данных могут оказаться в действительности менее надежными, чем системы без баз данных? Объясните свой ответ. 13.25 Приведите определения каждого из следующих языков применительно к системам баз данных: а) язык базы данных, б) язык запросов, в) включающий язык, г) подъязык данных (подмножество языка данных), д) язык описания данных, е) язык манипулирования данными, 13.26 Что такое словарь данных? 13.27 Укажите сходства и различия иерархической и сетевой моделей построе¬ ния баз данных. 13.28 Дайте определение каждого из следующих понятий, относящихся к реля¬ ционной организации базы данных: а) отношение, б) кортеж, в) первичный ключ, г) домен, д) степень отношения, е) n-арное отношение, отношение п-й фгеоеци,
Гл. 13 Системы файлов и базы данных 63 ж) проекция, з) соединение. 13.29 Перечислите несколько преимуществ реляционной организации базы данных по сравнению с иерархической и сетевой моделями. Литература (Ва78) Barnett J. К. R., «А Highly Reliable File System Which Supports Multi¬ processing», Software—Practice & Experience, Vol. 8, No. 6, November- December 1978, pp. 645—667. (Co70) Ccdd E. F., «А Relational Model of Data for Large Shared Data Banks», CACM, June 1970. (Co72) Ccdd E. F., «Further Normalization of the Data Base Relational Model», In Courant Computer Science Symposia, Vol. 6, Data Base Systems, Eng¬ lewood Cliffs, N. J.: Prentice-Hall, 1972. (Da81) Date C. J., An Introduction to Database Systems, Reading, Mass.: Addison- Wesley, 1981. (De79) Denning D., Denning P., «Data Security», ACM Computing Surveys, Vol. 11, No. 3, September 1979, pp. 227—249. (Di78a) Digital Equipment Corporation, Introduction to VAX-11 Record Managem¬ ent Services, Maynard, Mass.: 1978. (Di78b) Digital Equipment Corporation, VAX-11 Record Management Services User's Guide, Maynard, Mass.: 1978. (Di80) Dion Jeremy, «The Cambridge File Server», Operating Systems Review, Vol. 14, No. 4, October 1980, pp. 26—35. (Fr81) Fritzon Richard, «Data on Disk: Implementing File Systems», Kilobaud Microcomputing, Vol. 5, No. 1, January 1981, pp. Ill—115. (Ha80) Hansen David, «А Portable File Directory System», Software—Practice & Experience, Vol. 10, No. 8, August 1980, pp. 623—636. (K179a) Klein M., «Files on Parade I: Types of Files», Byte, Vol. 4, No. 2, Febru¬ ary 1979. (K179b) Klein M., «Files on Parade II: Using Files», Byte, Vol. 4, No. 3, March 1979. (Ma81) Madsen Johannes, «А Computer System Supporting Data Abstraction», Operating Systems Review, Vol. 15, No. 1, January 1981, pp. 45—72. (Me79) Mendelson H., PliskinJ.S., Yechiali U., «Optimal Storage Allocation for Serial Files», ACM, Vol. 22, No. 2, February 1979. (A\i81) Miller Barton, «XOS: An Operating System for the X-Tree Architecture», Operating Systems Review, Vol. 15, No. 2, April 1981, pp. 21—32. (Pi75) Pirkola GaryC., «А File System for a General-Purpose, Time-Sharing Environment», Proc, of the IEEE, Vol. 63, No. 6, June 1975, pp. 918—925. (Po77) Powell Michael, «The Demos File System», Proc, of the Sixth ACM SymP9 on Operating System Principles, November 1977, pp. 33—42. (Re80) Redell David, «PILOT: An Operating System for a Personal Computer», Communications of the ACM, Vol. 23, No. 2, February 1980, pp. 81—92. (Sa79) Saltzer J. H., «Naming and Binding of Objects», In Operating Systems-. An Advanced Course, New York: Springer-Verlag, 1979, pp. 100—208. (S118I) Stonebracker Michael, «Operating Systems Support for Data Base Manage¬ ment», ACM, Vol. 24, No. 7, July 1981, pp. 412—418. (St80) Sturgis H., Mitchell J., Israel J., «Issues in the Design and Use of a Distributed File System», Operating Systems Review, Vol. 14, No. 13, July 1980, pp. 55—69. (Wa80a) Watson С. T., AberleC. F., «System/38 Machine Data Base Support», IBM Systeml33 Technical Developments, G580-0237-1, IBM Corporation, 1980, pp. 59—62. (Wa80b) Watson С. T., Benson F. E., Taylor P.T., «System/38 Data Base Con¬ cepts», IBM System!33 Technical Developments, G580-0237-1, IBM Cor¬ poration, 1980, pp. 78—80,
ЧАСТЬ 6 Производительность Глава 14 Измерение, контроль и оценка производительности Ясно, что решения, принимаемые человеком, не мо¬ гут превзойти ту информацию, на которой они осно¬ вываются. Расскажите человеку всю правду, и он все равно может пойти по неверному пути, хотя у него и будет шанс сделать все правильно. Но если вы утаите сведения или предоставите лишь неполную и искажен¬ ную информацию, испорченную невежественностью, не¬ ряшливостью или пристрастностью сообщающего, про¬ пагандой или преднамеренной ложью, то весь строй его рассуждений будет нарушен и человек превратится в нечто, не достойное называться человеком. Артур Хейс Сулзбергер Во всяком настоящем деле, во всякой профессии есть своя элита, своя аристократия, выделяющаяся превос¬ ходством в производительности труда. Джеймс Брайант Конант Вы можете немало узнать, всего лишь наблюдая. Йог Берра 14.1 14.2 14.3 14.4 14.5 14.6 14.7 Введение Важнейшие тенденции в области исследования производитель¬ ности Зачем нужны контроль и оценка производительности Показатели производительности Методы оценки производительности 14.5.1 Элементарные времена 14.5.2 Смеси команд 14.5.3 Образцовые программы 14.5.4 Аналитические модели 14.5.5 Измерительные программы 14.5.6 Синтетические программы 14.5.7 /Моделирование 14.5.8 Контроль производительности Узкие места и насыщение Обратная связь 14.7.1 Отрицательная обратная связь 14.7.2 Положительная обратная связь 14.1 Введение Поскольку операционная система — это в первую очередь си¬ стема управления ресурсами, то для разработчиков операционных систем важно уметь определять, насколько эффективно конкретная
Гл 14 Измерение, контроль и оценка производительности 6а операционная система распоряжается вверенными ей ресурсами. В этой главе рассматриваются многие из применяемых сейчас мето¬ дов контроля и оценки производительности вычислительных си¬ стем. Один из этих методов — аналитическое моделирование — де¬ тально обсуждается в следующей главе. Потенциальные возможности по улучшению использования су¬ ществующих ресурсов весьма велики, даже несмотря на то, что на многих вычислительных установках контролю и оценке производи¬ тельности уделяется крайне мало внимания, а то и вовсе никакого. Если же измерения и выполняются, то зачастую при этом генери¬ руются огромные объемы информации, которую непонятно как ин¬ терпретировать. Значительная часть вычислительной техники и программного обеспечения работает в системах обработки коммерческих данных. Для коммерческих установок высокая производительность — нема¬ ловажная цель, но среди их обслуживающего персонала редко встре¬ чаются специалисты по анализу производительности. По этой при¬ чине на свет появилось немало компаний, цель которых — прове¬ дение необходимых оценок на установках такого типа. Среди иссле¬ довательских проектов в конце этой главы приведен список не¬ которых из этих компаний. На начальных стадиях развития вычислительной техники стои¬ мость вычислительной системы определялась в основном стоимостью аппаратуры, поэтому и исследования в области производительности касались большей частью аппаратных вопросов. Сейчас аппаратура относительно дешева и все более дешевеет в сравнении с программным обеспечением, которое пожирает все большую часть ассигнований на вычислительную технику. Сегодня вычислительные системы постав¬ ляются вместе с огромным объемом программного обеспечения, включающим мультипрограммные/мультипроцессорные операцион¬ ные системы, системы передачи данных, системы управления база¬ ми данных и разнообразные прикладные системы. Часто програм¬ мное обеспечение полностью скрывает аппаратуру от пользовате¬ ля, предоставляя ему виртуальную машину, которая определяется операционными характеристиками программного обеспечения. Гро¬ моздкое программное обеспечение, как правило, является причиной низкой производительности даже в системах с мощной аппарату¬ рой. Поэтому очень важно при исследовании производительности учитывать не только аппаратуру, но и программное обеспечение вычислительных систем. 14.2 Важнейшие тенденции в области исследования производительности Двадцать лет назад большая часть расходов на вычислительную технику была связана с аппаратурой. По мере прогресса в техноло¬ гии производства вычислительных машин цены на аппаратуру быст- 3 №5И
66 Часть 6 Производительность ро падали. Однако стоимость труда неуклонно росла из-за инфля¬ ции и экономического застоя, в результате чего стоимость челове¬ ческого труда стала составлять значительную часть общей стоимос¬ ти расчетов на ЭВМ. Следовательно, мы должны перенести упор с измерения производительности голой аппаратуры на такие мето¬ ды, которые учитывали бы и производительность человека. С появлением в 70-е годы микропроцессоров стоимость «опера¬ ции ЦП в секунду» стала чисто номинальной. Соответственно иссле¬ дование производительности переключилось на другие области, та¬ кие, как использование устройств ввода-вывода, цены на которые оставались высокими. Микропроцессоры создали основу для разработки в 70-х годах персональных компьютеров. Использование персонального компью¬ тера подчинено исключительно интересам одного человека. Поэтому вопросы загрузки ЦП или эффективного использования внешних устройств становятся не столь важными в сравнении с требованием обеспечить готовность компьютера к работе в любой момент, когда он понадобился пользователю. Конечно, на наш подход к оценке производительности должно сильно повлиять появление вычислительных сетей и распределенной обработки. Теперь, когда персональные компьютеры широко ис¬ пользуются в быту, а в организациях повсеместно распространи¬ лись индивидуальные компьютеризованные рабочие места, пользо¬ ватели часто работают не с конкретным компьютером, а с вычисли¬ тельной сетью. Эти сети могут включать сотни или даже тысячи вы¬ числительных систем, а также сложные управляемые компьютера¬ ми средства связи. 14.3 Зачем нужны контроль и оценка производительности Лукас (Lu71) отмечает три цели, во имя которых обычно пред¬ принимают исследование производительности. ® Оценка для выбора системы — Исследование производительности выполняется для того, чтобы решить, стоит ли покупать вычис¬ лительную систему у какого-то конкретного поставщика. '© Плакирование производительности — Задача исследования про¬ изводительности состоит в том, чтобы оценить производитель¬ ность еще несуществующей системы. Это может быть совсем но¬ вая вычислительная система или же новые аппаратные или программные компоненты. ® Контроль производительности — Производится сбор и накопле¬ ние данных об имеющейся системе или ее компоненте с целью удостовериться, что система удовлетворяет требованиям к ее производительности, помочь в оценке влияния, которое окажут планируемые изменения, и предоставить руководству данные,
Гл. 14 Измерение, контроль и оценка производительности 67 необходимые для принятия стратегических решений, таких, как изменение существующей системы приоритетов заданий. Оценка и предсказание производительности необходимы с само¬ го первого момента, когда новая система еще только задумывается, в течение повседневной работы системы после ее установки и при принятии решения о модификации системы или ее окончательной замене на лучшую. На ранних стадиях разработки новой системы ее изготовитель пытается предсказать ® характер прикладных задач, которые будут решаться с по¬ мощью этой системы; ® ожидаемую рабочую нагрузку, связанную с этими прикладными задачами. После начала разработки и реализации новой системы оценка и предсказание производительности используются, чтобы опреде¬ лить • наилучшую организацию аппаратуры, ® стратегии управления ресурсами, которые должны быть реали¬ зованы в операционной системе, • удовлетворяет ли разработанная система предъявляемым к ней требованиям по производительности. Когда система уже готова и поступила на рынок, ее поставщик должен быть готов ответить на разнообразные вопросы потенциаль¬ ных пользователей относительно способности системы обслуживать определенную область приложений, обеспечивая заданный уровень производительности. Пользователей часто интересует выбор под¬ ходящей для их нужд конфигурации системы. Иногда об этом гово¬ рят как о процессе выбора конфигурации. Когда система установлена у пользователя, и сам пользователь и поставщик заинтересованы в достижении оптимальной произво¬ дительности. Чтобы добиться от системы наилучшей работы в опе¬ рационной обстановке конкретного пользователя, в нее вносятся небольшие «подгоночные» изменения. Этот процесс настройки систе¬ мы может зачастую давать огромный выигрыш в производительности, если система настроена с учетом особенностей установки пользова¬ теля. 14.4 Показатели производительности Под производительностью мы понимаем эффективность вычисли¬ тельной системы с точки зрения достижения поставленных перед ней целей, причем с учетом характера реализованных в ней для этого функций. Таким образом, производительность есть скорее относи¬ тельная величина, чем абсолютная, хотя мы будем часто говорить о единицах измерения абсолютной производительности, таких, как число заданий, обрабатываемых данной ЭВМ за час. Однако, выбрав з*
Часть 6 Производительность какую-либо единицу измерения производительности, мы, как пра¬ вило, будем использовать ее для сравнения систем. Оценка производительности системы часто зависит от точки зре¬ ния. Так, оценивая исполнение Пятой симфонии Бетховена (качест¬ во, «производительность» оркестра), молодой студент консерватории, возможно, найдет его весьма вдохновляющим, тогда как дирижер почувствует малейшую фальшь, допущенную второй скрипкой в оп¬ ределенном пассаже. Точно так же владелец большой системы с раз¬ делением времени может быть очень доволен высоким процентом использования системы, что отражается в большой сумме счетов за услуги, тогда как индивидуальные пользователи такой загруженной системы будут, возможно, страдать от чрезмерных ожиданий. Некоторые показатели производительности, такие, как просто¬ та использования, трудно выразить количественно. Другие показа¬ тели, например число обращений к диску в минуту, по своей сути являются количественными. Занимаясь оценкой производительнос¬ ти и эффективности, следует учитывать оба типа показателей, даже несмотря на то, что собрать аккуратную статистику будет можно, скорее всего, лишь по показателям последнего типа. Ряд показателей производительности, такие, как время ответа, называют ориентированными на пользователя. Другие показатели, такие, как загрузка ЦП, называют системно-ориентированными. Ниже перечислены некоторые часто используемые показатели производительности © Цикл прохождения заданий — В системах пакетной обработки этот показатель определяется как промежуток времени от момен¬ та поступления задания до момента, когда задание выполнено и возвращается пользователю. • Время ответа — Этот показатель есть время цикла для диало¬ говых систем. Время ответа часто определяют как время, про¬ текшее от момента нажатия на клавишу ВВОД до момента, ког¬ да система начинает выдавать ответ на терминал. © Время реакции системы — В диалоговых системах этот показа¬ тель часто определяется как время, протекшее от момента нажа¬ тия на клавишу ВВОД до момента выделения системой первого временного кванта для обслуживания данного запроса пользо¬ вателя. Все указанные показатели имеют вероятностную природу и при моделировании систем я имитации различных режимов их рассмат¬ ривают как случайные величины. Рассмотрим для примера закон распределения времени ответа, поскольку время ответа какой-либо одной определенной диалоговой системы на некотором отрезке ее работы меняется в очень широких пределах, и эти изменения доста¬ точно точно описываются распределением вероятностей. Говоря об ожидаемом значении случайной величины, мы обыч¬ но имеем в виду ее среднее значение или математическое ожидание.
Гл. 14 Измерение, контроль и оценка производительности С9 Но характеристика величины только ее средним значением может ввести нас в заблуждение, поскольку одно и то же значение может получаться усреднением как равных или почти равных величин, так и резко отличающихся величин, одни из которых много больше, а другие много меньше вычисленного среднего. Поэтому часто ис¬ пользуются и другие показатели производительности. © Дисперсия времени ответа (или любой другой случайной вели¬ чины) — Дисперсия времени ответа является мерой его разброса. Небольшая величина дисперсии указывает на близость различ¬ ных времен ответа к среднему значению. Если же значение дис¬ персии велико, то для некоторых пользователей время ответа может сильно отклоняться от среднего. Часть пользователей, быть может, будут обслужены относительно быстро, тогда как на долю других выпадет длительное ожидание. Итак, дисперсия времени ответа является мерой его предсказуемости, и, с точки зрения человека, этот показатель производительности может иметь большое значение в диалоговых системах. © Пропускная способность — Это величина измеряет производи¬ тельность с помощью числа заданий в единицу времени. © Поток заданий — Это мера количества работы, которую система может нормально выполнить, обеспечивая приемлемое функцио¬ нирование. • Предельная пропускная способность показывает максимальную пропускную способность системы при условии, что всякий раз, когда система готова принять новое задание, это задание ей не¬ медленно предоставляется. • Загрузка — это доля времени, в течение которого некоторый ре¬ сурс находится в работе. Следует иметь в виду, что загрузка в ка¬ честве показателя производительности может вести к заблужде¬ ниям. Хотя высокий процент использования представляется же¬ лательным, увеличение загрузки может быть следствием неэф¬ фективной работы. Так, можно обеспечить высокую загрузку ЦП, если, например, начать выполнять несколько процессов, каждый из которых работает в бесконечном цикле! Можно ина¬ че определить загрузку ЦП, и это даст нам новую интересную точку зрения. В каждый момент времени ЦП может пребывать в одном из следующих состояний: а) простаивать, б) работать в программном режиме (режиме задачи), в) работать в режиме супервизора. Когда процессор находится в программном режиме, он выпол¬ няет нужную для некоторого пользователя работу и время ра¬ боты в программном режиме, скорее всего, должно быть оплаче¬ но этим пользователем. Однако при работе в режиме супервизо¬ ра ЦП находится в подчинении операционной системы. Часть этого времени может быть отнесена на счет пользователей, но
70 Часть 6 Производительность некоторая часть времени представляет собой чистые накладные расходы, как, например, время, затрачиваемое в мультипрограм¬ мных системах на переключение между процессами. В некоторых системах эти издержки могут оказываться большими. Таким об¬ разом, измеряя загрузку ЦП, следует обращать внимание и на то, какая доля времени работы ЦП тратится на продуктивную работу по заказу пользователей, за которую может быть предъ¬ явлен счет, и какая доля идет на системные накладные расходы. 14.5 Методы оценки производительности На рис. 14.1 собраны наиболее важные методы оценки произво¬ дительности, взятые из исследования Лукаса (Lu71). В таблице представлены сами методы и указана их применимость для различ- Метод оценки Цель оценки Оценка для выбора (система уже где-то сущест¬ вует) Проектирование производитель¬ ности (система еще не сущест¬ вует ) Контроль произ¬ водительности (система в экс¬ плуатации ) новая аппа¬ ратура новое про¬ граммное обеспечение разработка новой аппа¬ ратуры разработка нового про¬ граммного обеспечения изменение конфигура¬ ции аппара¬ туры замена про¬ граммного обеспечения Элементарные времена 1 1 Смеси 1 —- 1 — — — Образцовые программы 2 1 2 1 — — Аналитические модели 2 1 2 1 2 — Измерительные програм¬ 3 3 — 2 2 2 мы Синтетические программы 3 3 2 2 2 2 Моделирование 3 3 3 3 3 3 Мониторы (программные 2 2 2 2 3 3 и аппаратные) —: Метод неприменим 1: Был использован, но не дал адекватных результатов 2: Дает некоторую информацию, но неполон; следует использовать совместно с другими методами 3: Удовлетворителен Перепечатано из Н. Lucas, ’’Performance Evaluation and Monitoring”, ACM Computing Surveys, September 1971, pp. 79—91. Copyright ©1971, Associ¬ ation for Computing Machinery, Inc. Разрешение на перепечатку имеется. Рис. 14.1 Применимость различных методов оценки производительности.
Гл. 14 Измерение, контроль и оценка производительности 71 пых целей оценки производительности. Польза каждого метода исследована отдельно для случая оценки производительности ап¬ паратуры и математического обеспечения. 14.5.1 Элементарные времена Измерение элементарных времен дает нам возможность быстро сравнивать аппаратуры различных ЭВМ. Ранние вычислительные системы часто характеризовались своим временем сложения или длительностью цикла памяти. Элементарные времена показывают голую «механическую» мощность вычислительной системы. Сейчас стало общепринятым характеризовать компьютер по числу выпол¬ няемых им MIPS {миллионов команд в секунду). В последние годы мощность вычислительных машин попадает в диапазон BIPS {мил¬ лиард команд в секунду). С появлением семейств компьютеров, таких, как впервые пред¬ ставленная в 1964 г. серия машин IBM 360, на рынке аппаратуры стало обычным предлагать компьютеры, допускающие переход к бо¬ лее быстрым процессорам по мере роста потребностей пользовате¬ ля. Все компьютеры семейства совместимы между собой в том смыс¬ ле, что они могут выполнять одни и те же программы, но со все боль¬ шей скоростью по мере перехода к более мощным моделям семейст¬ ва. Элементарные времена позволяют легко сравнивать разные ком¬ пьютеры одного семейства. Элементарные времена применяются, как правило, для быстрых прикидочных сравнений. Для более содержательной оценки совре¬ менных сложных аппаратных и программных систем следует исполь¬ зовать другие методы. Сравнение по элементарным временам обычно проводится для нескольких основных аппаратных операций. Основой для сравне¬ ния повсеместно стала операция сложения. Таким образом, скорость компьютера характеризуется тем, что он выполняет, скажем, 500 000 сложений в секунду. Однако вычислительная система мо¬ жет иметь набор команд, включающий сотни различных операций. Поэтому сравнение процессоров по элементарным временам дает слишком мало информации относительно их возможностей в кон¬ кретном приложении. 14.5.2 Смеси команд В методе смеси команд используется взвешенное среднее времен выполнения различных команд, более отвечающее конкретному применению. Так, даже если некоторая вычислительная система может очень быстро умножать числа двойной точности с плаваю¬ щей точкой, тем не менее она может плохо работать в задачах обра¬ ботки коммерческой информации, где основную массу выполняемых
72 Часть 6 Производительность команд составляют операции перемещения, редактирования и ввода-вывода данных. Для оценки производительности исследователь изучает задачи, выполняемые на данной установке, и пытается образовать взвешен¬ ное среднее из времен выполнения чаще всего используемых команд. Это позволяет провести более показательное сравнение работы ма¬ шин, чем используя только элементарные времена. Однако смеси команд тоже пригодны в основнОхМ для прикидоч- ных сравнений; следует иметь в виду, что для принятия важных ре¬ шений относительно приобретения новых систем следует восполь¬ зоваться другими методами. Выбор весов, необходимый для рассмат¬ риваемого метода, оказывается обычно крайне субъективным, кроме того, метод требует тщательного учета всех нюансов в системах ко¬ манд различных ЭВМ. Смеси команд практически не дают никакой полезной информации для оценки программного обеспечения. При сегодняшней сложно устроенной аппаратуре доказательство корректности выбора смеси становится все более трудным делом. Если в ЭВМ используется сверхоперативная память и конвейерная обработка, то выполнение одной и той же команды может занимать разное время в зависимости от контекста, в котором она встрети¬ лась. 14.5.3 Образцовые программы Как элементарные времена, так и смеси команд имеют следую* щий недостаток: они учитывают лишь некоторые аспекты набора команд ЭВМ. Образцовая программа — это типичная программа, которая могла бы выполняться на данной установке. Время выпол¬ нения образцовой программы для данной машины подсчитывается па основе оценок времени выполнения команд, даваемых изготови¬ телем. Затем для сравнения ЭВМ используются различия в ожидае¬ мом времени выполнения на них образцовой программы. Таким об¬ разом, образцовая программа выполняется не на машине, а «на бу¬ маге». Метод образцовых программ дает лучшие результаты, чем эле¬ ментарные времена или смеси команд, однако для составления об¬ разцовых программ и оценки времени их работы требуется значи¬ тельный объем ручного труда. Одно из важнейших преимуществ образцовых программ — то, что они все-таки законченные програм¬ мы, а в конечном итоге именно такие программы будут фактически выполняться в рассматриваемой вычислительной системе. Образцовые программы могут быть полезны и при оценке опре¬ деленных компонент программного обеспечения системы. Так, на¬ пример, два разных компилятора могут порождать в корне различ¬ ные готовые программы, и с помощью образцовых программ можно решить, какой из компиляторов генерирует более эффективную программу. Но здесь опять-таки требуется много ручной работы, и поэтому предпочтение обычно отдается другим методам.
Гл. 14 Измерение, контроль и оценка производительности 73 14.5.4 Аналитические модели Аналитическая модель — это математическое представление вы¬ числительной системы или ее компонент. Находят применение мо¬ дели многих видов, однако наиболее «гибкими» и полезными пред¬ ставляются модели, созданные с помощью теории очередей и марков¬ ских процессов. В следующей главе мы рассмотрим модели теории очередей и марковские модели применительно к оценкам произво¬ дительности ЭВМ. Для исследователей, обладающих хорошей математической под¬ готовкой, создание и модификация аналитических моделей не пред¬ ставляют большого труда. Имеется богатый арсенал математических результатов, воспользовавшись которыми, можно быстро и сравни¬ тельно точно оценить производительность данной вычислительной системы или ее компоненты. Однако у аналитических моделей немало и недостатков. Прежде всего применять их могут только квалифицированные математики, а они не часто встречаются среди людей, занимающихся коммерче¬ ской обработкой данных. Кроме того, точные математические реше¬ ния возможны лишь для простейших моделей. Чем сложнее стано¬ вится модель, тем менее вероятно, что удастся отыскать математи¬ ческое решение, точно описывающее ее поведение. Современные системы настолько сложны, что исследователю приходится делать ряд упрощающих предположений, а это может обесценить выгоду от применения таких моделей. Чтобы всерьез исследовать производительность, следует владеть разнообразными методами и применять их в совокупности. Иногда оценка производительности с помощью одного метода опровергает результаты применения другого. Чаще, однако, оценки, полученные различными путями, подтверждают друг друга, и этот факт убежда¬ ет исследователя в справедливости сделанных им выводов. 14.5.5 Измерительные программы Измерительная программа — это реальная программа, которую выполняют на исследуемой машине с целью оценки производитель¬ ности. Обычно в качестве измерительных берут производственные программы (у. е. регулярно работающие), которые типичны для клас¬ са задач, решаемых на данной установке. Исследователь детально знаком с выполнением измерительной программы на существующей установке и может сделать содержательные выводы по результатам ее выполнения на новой установке. Одно из преимуществ измерительных программ—то, что они уже существуют и нужно лишь выбрать на роль измерительных некото¬ рые из известных производственных программ. Никаких ручных подсчетов времен выполнения команд не делается. Вместо этого вся программа с реальными исходными данными выполняется на
74 Часть 6 Производительность реальной машине, так что основная часть работы падает на компью¬ тер. Вероятность ошибки, совершенной человеком, уменьшается в сравнении с методами смеси команд или образцовой программы, поскольку измерительная программа реально выполняется на ЭВМ и измерение времени осуществляется самой ЭВМ, секундомером и т, п. Основная цель вычислительной системы — выполнять реальные программы с реальными данными. Измерительные программы как раз и являются такими реальными, а не выдуманными на бумаге объектами, и это — их привлекательная сторона. Конечно, подробное исследование с использованием измеритель¬ ных программ должно опираться на тщательный выбор ряда измери¬ тельных программ, представляющих характеристики решаемых на установке задач. Этот выбор субъективен и является слабым местом рассматриваемого метода. Измерительные программы особенно ценны в сложной опера¬ ционной среде — в мультипрограммных и мультипроцессорных си¬ стемах, системах разделения времени, системах управления базами данных, системах передачи данных и системах реального времени, поскольку измерительные программы выполняются на машине в реальной обстановке. Влияние программного обеспечения непо¬ средственно проявляется и его не нужно вычислять на бумаге. Измерительные программы пригодны для оценки производитель¬ ности как аппаратуры, так и программного обеспечения, причем даже в сложной операционной среде. Они особенно полезны для сравнения характеристик системы до и после внесения каких-либо изменений. Измерительные программы, однако, не в состоянии по¬ мочь нам в предсказании эффекта от предполагаемых изменений, если только не найдется системы с уже внесенными изменениями, на которой можно было бы выполнить измерительные программы. Метод измерительных программ, вероятно, самый популярный ме¬ тод, применяемый солидными концернами при решении вопроса о приобретении установок у различных поставщиков. Поставщики часто предоставляют машинное время для выполнения измеритель¬ ных программ, чтобы покупатель смог решить, подходит ли ему пред¬ лагаемая система. 14.5.6 Синтетические программы Синтетические программы совмещают в себе черты образцовых и измерительных программ. Это реальные программы, которые спе¬ циально составлены так, чтобы испытать определенные возможнос¬ ти машины. Измерительной программы, пригодной для проверки какой-то одной конкретной возможности машины, может и не ока¬ заться, и в этом одна из сильных сторон синтетических программ в сравнении с измерительными.
Гл. 14 Измерение, контроль и оценка производительности 75 Синтетические программы полезны также для оценки развиваю¬ щихся систем. При появлении новых функциональных средств мож¬ но использовать синтетические программы для проверки их работо¬ способности. К сожалению, у тех, кто,занимается оценкой производительнос¬ ти, часто не хватает времени, чтобы кодировать и отлаживать синте¬ тические программы, и тогда они просто отыскивают существующую измерительную программу, которая наиболее полно соответствует требуемым характеристикам синтетической программы. 14.5.7 Моделирование Метод моделирования подразумевает разработку машинной моде¬ ли оцениваемой системы. Разработанная модель затем ставится на машину, способную быстро и точно выполнить миллионы точно описанных операций, причем поведение модели за некоторый проме¬ жуток модельного времени отражает функционирование оцениваемой системы. Применяя рассматриваемый метод, мы можем построить модель еще не существующей системы и, опробовав эту модель, увидеть, как система будет вести себя в определенной обстановке. Конечно, система в конце концов должна быть реализована по-настоящему, что позволит проверить корректность построенной модели. Модели¬ рование выявляет проблемы, с которыми столкнется новая система, еще до ее построения и тем самым может предохранить нас от построе¬ ния плохо сконструированных систем. Машинное моделирование приобрело особую популярность в космической п транспортной промышленности в частности из-за серьезности последствий, кото¬ рые имела бы реализация плохой системы. Программы моделирования бывают двух типов. Э С управлением по событиям — Эти программы отталкиваются от событий, наступление которых вычисляется в программе в соот¬ ветствии с законом распределения вероятностей. О С управлением по данным — В этих программах главную роль играет эмпирический набор величин, закон преобразования ко¬ торых тщательно подбирается, с тем чтобы отразить ожидаемое поведение моделируемой системы. Моделирование требует высокой квалификации исследователя и, возможно, большого расхода машинного времени. Программы моделирования обычно порождают выходные данные гигантского объема, которые следует затем проанализировать вручную пли на ЭВМ. В любом случае нужно затратить значительные усилия, чтобы доказать корректность принятой модели, т. е. продемонстрировать, что модель в действительности адекватно представляет исследуемую реальную систему. Однако если уж программа моделирования раз¬ работана, то ее дальнейшее многократное использование может ока¬ заться весьма полезным и экономически выгодным.
76 Часть 6 Производительность 14.5.8 Контроль производительности Контроль производительности включает в себя сбор и анализ информации, касающейся производительности существующих си¬ стем. Результаты используются, чтобы определить производитель¬ ность системы в терминах пропускной способности, времен ответа, предсказуемости и т. д. Контроль производительности способен быстро обнаружить узкие места системы, а также помочь руководст¬ ву определить меры, необходимые для повышения производительнос¬ ти. Контроль производительности можно использовать для выясне¬ ния распределения заданий различных типов. Если обнаружится, что большинство выполняемых заданий являются рабочшм прого¬ ном готовых программ (т. е. производственными программами), то для получения более эффективных вариантов программ можно ис¬ пользовать оптимизирующие компиляторы. Если же большое число заданий связано с тестированием, отладкой или модификацией прог¬ рамм, следует приобрести быстрый компилятор без оптимизации, но с хорошими диагностическими возможностями. Контроль производительности может выполняться аппаратными или программными средствами. Программы для контроля произво¬ дительности (программные мониторы) можно за небольшую цену приобрести или разработать самим, но они могут вносить погреш¬ ность в измерения производительности, поскольку для их работы требуются системные ресурсы. Использование специальных аппарат¬ ных мониторов обычно обходится дороже, но преимущество аппарат¬ ного метода — минимальное влияние на работу системы. В ходе контроля производительности порождаются огромные объемы информации, которую надо проанализировать, возможно, израсходовав немало средств на оплату машинного времени. Одна¬ ко полученные данные содержат точное описание функционирова¬ ния системы, а такая информация может оказаться чрезвычайно полезной, особенно в процессе разработки системы, когда возника¬ ет необходимость принятия или модификации ключевых проектных решений на основе наблюдаемого поведения системы. Узкие места в системе часто можно выявить с помощью трасси¬ ровки выполняемых команд или трассировки выполняемых модулей. Трассировка выполняемых модулей может, например, показать, что небольшая группа модулей используется в течение значительной доли всего времени работы. Если теперь разработчики сконцентри¬ руют усилия на оптимизации именно этих модулей, то они смогут добиться значительного повышения производительности системы, не растрачивая свои силы и ресурсы ЭВМ на редко используемые части системы.
Гл. 14 Измерение, контроль и оценка производительности 77 14.6 Узкие места и насыщение Операционная система управляет совокупностью ресурсов. Слож¬ ные взаимодействия их между собой оказывают влияние на всю ра¬ боту системы. Иногда один или несколько из этих ресурсов стано¬ вятся узкими местами, ограничивающими производительность всей системы, поскольку они не могут справиться с выпадающей на них работой. Остальные ресурсы системы могут иметь очень вы¬ сокую пропускную способность, однако задачи или процессы не будут проходить через узкие места настолько быстро, чтобы обеспе¬ чить занятость этих других ресурсов. Узкие места обычно возникают, когда интенсивность потока за¬ даний или процессов, требующих некоторого ресурса, начинает приближаться к его предельной пропускной способности. В этом случае говорят о насыщении ресурса. Это означает, что процессы, конкурирующие за право получения данного ресурса, начинают ме¬ шать друг другу. Классический пример насыщения в операционных системах — трешинг, имеющий место в системах со страничной ор¬ ганизацией, когда основная память перегружается и рабочие мно¬ жества страниц различных процессов не помещаются в ней одновре¬ менно. Как обнаружить узкие места? Очень просто, надо лишь просле¬ дить за всеми очередями запросов на ресурсы. Если некоторая оче¬ редь начинает быстро расти, это означает, что интенсивность поступ¬ ления запросов на соответствующий ресурс стала больше интенсив¬ ности обслуживания и этот ресурс насыщается. Локализация узких мест — важная составная часть точной на¬ стройки системы. Для устранения узких мест можно увеличить про¬ пускную способность соответствующих ресурсов или добавить ре¬ сурсы того же типа в нужные места системы. Однако устранение одного узкого места не обязательно повысит пропускную способ¬ ность, поскольку в системе могут быть и другие узкие места. Точная настройка, возможно, потребует неоднократной локализации и уст¬ ранения узких мест, прежде чем производительность системы дейст¬ вительно возрастет. 14.7 Обратная связь Производительность операционной системы может зависеть от ее текущего состояния. Обратная связь подразумевает, что инфор¬ мация о текущем состоянии системы делается доступной для посту¬ пающих требований. Если эта информация покажет, что обслужива¬ ние поступивших требований столкнется с трудностями, то эти тре¬ бования могут быть направлены по другому пути. Обратная связь может быть отрицательной, если ее действие ведет к уменьшению интенсивности поступления требований, или положительной, если она ведет к росту интенсивности поступления требований. В сле¬ дующих разделах мы рассмотрим примеры обеих этих возможностей.
Часть 6 Производительность 73 П.7.1 Отрицательная обратная связь В случае отрицательной обратной связи передача информации по обратной связи может приводить к уменьшению интенсивности поступления новых требований. Если, например, водитель авто¬ машины, приехав на заправочную станцию, обнаруживает, что воз¬ ле каждой колонки ждут заправки несколько машин, то он может предпочесть не заправляться здесь, а проехать к другой, менее за¬ груженной заправочной станции. В операционных системах накопленные выдачи могут печататься на любом из нескольких эквивалентных печатающих устройств. Если очередь к одному из устройств слишком велика, то поступив¬ шее задание можно поместить в другую, менее заполненную очередь. Отрицательная обратная связь способствует стабилизации систем с очередями. Если бы поступающие задания без всяких огра¬ ничений попадали в очередь к загруженному устройству, то эта очередь могла бы расти до бесконечности. При использовании от¬ рицательной обратной связи длины очередей остаются вблизи своих средних значений. 14.7.2 Положительная обратная связь В случае положительной обратной связи передача информации приводит не к уменьшению, а к увеличению какого-либо параметра. Классическим примером положительной обратной связи и вызывае¬ мых ею проблем является ситуация в мультипрограммных системах со страничной виртуальной памятью. Допустим, что операционная система обнаружила недозагрузку ЦП. Она может проинформировать планировщик заданий о необхо¬ димости включения в мультипрограммную смесь еще нескольких заданий в расчете на то, что дополнительная работа увеличит за¬ грузку ЦП. Когда в мультипрограммную смесь будут добавлены новые задания, сразу уменьшится объем памяти, который может быть выделен каждому заданию, и возрастет число обращений к от¬ сутствующим в памяти страницам. Таким образом, в результате добавления заданий загрузка ЦП может даже уменьшиться. Не¬ удачно сконструированная операционная система может решить, что для увеличения плохой загрузки ЦП следует еще увеличить мульти¬ программную смесь. Это, конечно, приведет лишь к дальнейшему ухудшению использования ЦП. Действительно серьезной проблемой в связи с положительной обратной связью является вызываемая ей возможная нестабиль¬ ность. Как показано в предыдущем примере, положительная обрат¬ ная связь может привести систему в очень неустойчивый режим. Разработчики операционных систем, создавая механизмы с положи¬ тельной обратной связью, должны позаботиться о том, чтобы не допустить развития нестабильности. Справиться с этой проблемой
Гл. 14 Измерение, контроль и оценка производительности 79 можно, если, например, при каждом изменении некоторого пара¬ метра в сторону увеличения следить за результатом этого изменения и проверять, привело ли оно к желаемому улучшению. Если увели¬ чение параметра вызвало ухудшение производительности, это сиг¬ нал операционной системы о том, что она, возможно* попала в область нестабильности и следует временно изменить стратегию рас¬ пределения ресурсов, пока не восстановится стабильный режим работы. Заключение В этой главе рассматриваются многие распространенные методы контроля и оценки производительности вычислительных систем. Обычными целями оценки производительности являются следующие три: оценка для выбора системы, проектирование системы с нужной производительностью и контроль производительности. Производительность — это способ, с помощью которого система достигает своих целей или эффективность достижения этих целей. В качестве показателей производительности часто используются время цикла, время ответа, время реакции системы, дисперсия вре¬ мен ответа, пропускная способность, предельная пропускная спо¬ собность и загрузка. Для прикидочного сравнения аппаратуры применяются элемен¬ тарные времена. Компьютеры часто сравниваются по времени вы¬ полнения операции сложения или по числу сложений в секунду. В методе смеси команд используется взвешенное среднее времен выполнения команд, которое лучше отвечает конкретному прило¬ жению. Образцовая программа — это типичная программа, которая могла бы выполняться. Время ее работы на данной машине вычис¬ ляется на основе оценок времен выполнения команд, данных изго¬ товителем. Для сравнения разных машин можно использовать ожи¬ даемое время выполнения образцовой программы. Аналитическая модель — это математическое представление вы¬ числительной системы или ее компонент. Модели теории очередей и марковских процессов наиболее полезны; они обсуждаются в сле¬ дующей главе. Имеется немало математических результатов, с по¬ мощью которых можно быстро получить довольно точные оценки производительности данной вычислительной системы или компо¬ нент. Измерительные программы являются реальными программами* которые на самом деле выполняются на оцениваемой вычислитель¬ ной системе. Исследователю известны характеристики производи¬ тельности измерительной программы на существующем оборудова¬ нии, поэтому по результатам работы на новой установке он может сделать содержательные выводы.
80 Часть 6 Производительность Синтетические программы — это реальные программы, специаль¬ но сконструированные с целью проверки определенных возможно¬ стей вычислительной системы. Они особенно полезны в тех случаях, когда еще не существует измерительных программ для проверки этих возможностей. Метод моделирования подразумевает создание машинной модели анализируемой системы. Эта модель затем просчитывается на ЭВМ, способной быстро и точно выполнить миллионы точно описанных операций. Рассчитанное поведение модели за некоторый промежу¬ ток модельного времени отражает функционирование оцениваемой системы. Программы моделирования с управлением по событиям отталкиваются от событий, наступление которых вычисляется в программе в соответствии с законом распределения вероятностей. В программах моделирования с управлением по данным главную роль играет эмпирический набор величин, закон преобразования которых тщательно подбирается, с тем чтобы отразить ожидаемое поведение моделируемой системы. Контроль производительности включает в себя сбор и анализ информации, касающейся производительности существующих си¬ стем. Некоторый ресурс становится узким местом, ограничивающим производительность всей системы, когда он не способен справиться с предназначенной для него работой. Ресурсы, работающие вблизи своей предельной пропускной способности, имеют тенденцию к на¬ сыщению; при этом процессы, конкурирующие за эти ресурсы, на¬ чинают влиять друг на друга. Трешинг в страничных системах — классический пример насыщения в операционных системах. В случае обратной связи информация о текущем состоянии систе¬ мы делается доступной для поступающих требований. В случае от¬ рицательной обратной связи передача информации может приводить к уменьшению интенсивности поступления новых требований. От¬ рицательная обратная связь способствует стабилизации систем с очередями. В системах с положительной обратной связью передаваемая ин¬ формация вызывает увеличение какого-либо параметра. Положи¬ тельная обратная связь может приводить к нестабильности систем с очередями, и разработчику следует позаботиться о контроле над механизмами с положительной обратной связью, чтобы предотвра¬ тить работу в неустойчивом режиме. Терминология аналитическая модель (analytic model) аппаратный монитор (hardware monitor) время ответа (response time) время реакции системы (system reaction time) дисперсия времен ответа (variance of responce times)
Гл. 14 Измерение, контроль и оценка производительности 81 загрузка (utilization) измерение производительности (performance measurement) измерительная программа (benchmark) контроль производительности (perfomance monitoring) миллиарды команд в секунду (ВIPS) миллионы команд в секунду (MIPS) моделирование (simulation) настройка системы (system tuning) насыщение (saturation) нестабильность, неустойчивость (instability) обоснование модели (model validation) образцовая программа (kernel program) обратная связь (feedback loop) отрицательная обратная связь (negative feedback) оценка для выбора (системы) (selection evaluation) оценка производительности (performance evaluation) положительная обратная связь (positive feedback) поток заданий, рабочая нагрузка (work load) предельная пропускная способность (capacity) предсказуемость (predictability) программа моделирования с управлением по данным (script-driven simulator) программа моделирования с управлением по событиям (event-dri¬ ven simulator) программный монитор (software monitor) проектирование производительности (performance projection) производственная программа (production program) пропускная способность (throughput) процесс выбора конфигурации (configuration process) синтетическая программа (synthetic program) смесь команд (instruction mix) трешинг (thrashing) узкое место (bottleneck) цикл прохождения задания (turnaround time) элементарные времена (timings) Упражнения 14.1 Объясните, почему для программного обеспечения системы контроль и оценка производительности столь же важны, как и для аппаратуры. 14.2 Как следует понимать то, что системное программное обеспечение скрывает аппаратуру от пользователя? 14.3 Одним из факторов, затрудняющих измерение и оценку производитель¬ ности, является то, что загрузка вычислительной системы меняется со временем. Изучите загрузку доступной вам вычислительной системы. Документируйте ее изменение со временем.
82 Часть 6 Производительность 14.4 Как меняется наш взгляд на оценку производительности в связи с появле¬ нием микропроцессоров и персональных компьютеров? 14.5 В момент начала работы пользователя некоторые системы разделения вре¬ мени печатают общее число работающих в данный момент пользователей. а) Зачем это нужно пользователю? б) В каких условиях эта информация может не являться разумным показа¬ телем загрузки? в) Какие факторы делают число пользователей надежным показателем за¬ грузки системы в системах разделения времени, обслуживающих много пользователей? 14.6 Охарактеризуйте кратко каждую из следующих целей оценки произво¬ дительности: а) оценка выбора, б) планирование производительности, в) контроль производительности. 14.7 Что такое процесс выбора конфигурации? Почему контроль и оценка про¬ изводительности критичны для его успеха? 14.8 Что такое настройка системы? Почему она важна? 14.9 Приведите примеры, подтверждающие, что производительность действи¬ тельно зависит от точки зрения. 14.10 Укажите различия между показателями производительности, ориентиро¬ ванными на пользователя и системно-ориентированными. 14.11 Что такое время реакции системы? Для каких задач оно более критично — для тех, где ограничительной является скорость ЦП или для ограниченных по вводу-выводу? 14.12 Почему среднее значение случайной величины может иногда вводить нас в заблуждение? Какие показатели производительности позволяют описать, насколько тесно значения случайной величины группируются вокруг ее среднего значения, 14.13 Почему в вычислительных системах так важна предсказуемость? В систе¬ мах какого вида предсказуемость особенно критична? 14.14 Ниже приведены часто используемые показатели производительности; @ время цикла, @ пропускная способность, @ время ответа, @ поток заданий, © время реакции системы,- © предельная пропускная способ¬ ность, © дисперсия времен ответа, © загрузка. Укажите для каждого из следующих пунктов, какой показатель производитель¬ ности его характеризует: а) предсказуемость системы, б) текущая интенсивность запросов к системе, в) максимальные возможности системы, г) процент использования ресурса, д) число заданий, обрабатываемых за единицу времени, е) время цикла в диалоговых системах. 14.15 Какие показатели производительности представляют наибольший инте¬ рес для
Гл. 14 Измерение, контроль и оценка производительности 8< а) пользователя, работающего в режиме диалога, б) пользователя, работающего в пакетном режиме, в) разработчика системы управления процессами в реальном времени, г) администратора вычислительной машины, заинтересованного в получении денег за использование ресурсов; ц) руководства вычислительной машины, планирующего загрузку системы на следующий финансовый год; е) руководства вычислительной машины, желающего узнать, насколько улуч¬ шится производительность, если установить дополнительно (I) память; (II) более быстрый ЦП; (III) дисководы; (IV) каналы. 14.16 Если пользователи должны будут оплачивать только полезную работу, выполняемую вычислительной системой по их заказу, то- нам следует отделить расход ресурсов на полезную работу от издержек системы: а) перечислите несколько составных частей расхода ресурсов на издержки системы, б) с помощью каких измерений можно было бы определить каждую из состав¬ ных частей издержек, перечисленных вами в ответе на пункт (а)? 14.17 Существует предел количества измерений, которые следует делать на одной системе. Какие соображения могут заставить вас отказаться от выполнения некоторых измерений? 14.18 Согласно Лукасу (Lu71), моделирование — самый распространенный сейчас метод оценки производительности. а) Приведите несколько причин этого. б) А1оделирование широко применяется, но все же не настолько широко, как можно было бы ожидать. Приведите несколько объяснений, почему это так. 14.19 Ниже приведены некоторые популярные методы оценки и контроля про¬ изводительности О элементарные времена, @ смеси команд, ® образцовые программы, © аналитические модели, @ измерительные программы. @ синтетические программы, © моделирование, © аппаратные мониторы, © программные мониторы, Укажите, какие из этих методов лучше всего отвечают каждому из следующих определений. (Некоторые пункты могут иметь несколько ответов.) а) Их правомерность может нарушаться из-за упрощающих предположений; б) взвешенное среднее времен выполнения команд; в) поле деятельности искушенных математиков; г) модели выполняются на ЭВМ; д) полезны для прикидочных сравнений «голой» мощности; е) особенно ценны в случае сложного программного обеспечения; ж) реальная программа, выполняемая на реальной машине; з) специально сконструированная программа для проверки определенных возможностей ЭВМ; и) реальная программа, выполняемая «на бумаге»; к) производственная программа; л) разрабатывают чаще всего методами теории очередей и марковских про¬ цессов; м) часто используется, если разработка синтетической программы требует слишком больших затрат денег или машинного времени. 14.20 Какие методы оценки производительности наиболее применимы в каждой из следующих ситуаций? Обоснуйте ответы,
84 Часть G Производительность а) Некая страховая компания равномерно загружает вычислительную сис¬ тему, выполняя на ней большое число производственных заданий. В ре¬ зультате слияния компании придется увеличить пропускную способность системы на 50 %. Компания желает заменить имеющуюся вычислительную систему на новую. б) Описанная в (а) страховая компания желает увеличить пропускную способность, приобретя дополнительную память и каналы. в) Компания по разработке вычислительных машин работает над новой, сверхскоростной вычислительной системой и желает оценить несколько альтернативных вариантов системы. г) Консультантская фирма, специализирующаяся в области обработки коммерческой информации, заключила большой военный контракт, тре¬ бующий обширных математических вычислений. Компания хочет опреде¬ лить, справится ли имеющаяся у нее вычислительная техника с предпола¬ гаемым объемом математических расчетов? д) Руководству многомашинной вычислительной сети необходимо определять узкие места, как только они возникают и перераспределять соответствую¬ щим образом потоки информации. е) Системный программист подозревает, что один из программных модулей вызывается чаще, чем первоначально предполагалось. Программист хочет убедиться в этом, прежде чем затрачивать значительные усилия на пере¬ программирование модуля в целях повышения его эффективности. 14.21 В одной компьютерной системе центральный процессор снабжен MIPS-мет- ром, который в любой момент времени показывает, сколько миллионов команд в секунду выполняет ЦП. Шкала этого измерителя проградуирована от 0 до 4 MIPS через 0.1 MIPS. В настоящий момент все терминалы, подключенные к ком¬ пьютеру, находятся в работе. Объясните, каким образом могла произойти каждая из следующих ситуаций. а) Измеритель показывает 3.8 MIPS, время ответа пользователям хорошее, б) Измеритель показывает 0.5 MIPS, время ответа пользователям хорошее.. в) Измеритель показывает 3.8 MIPS, время ответа пользователям плохое, г) Измеритель показывает 0.5 MIPS, время ответа пользователям плохое, 14.22 Вы входите в группу, занятую оценкой производительности для изгото¬ вителя ЭВМ. Вам дали задание разработать универсальную синтетическую про¬ грамму для упрощения оценки совершенно новой вычислительной системы с ори¬ гинальной системой команд. а) Каким образом ваша программа могла бы помочь в этом? б) Какие возможности вы бы включили в программу, чтобы сделать ее дейст¬ вительно универсальным инструментом для оценки производительности? 14.23 На вас возложена ответственность за возможно более быстрый расчет на вашей установке определенной прикладной задачи. Вы решили приобрести пакет программ у одного из пользующихся хорошей репутацией поставщиков. Ваша аппаратура уже на месте. Опишите, как вы будете выбирать наилучший для ваших приложений пакет программ. 14.24 Укажите различия между программами .моделирования с управлением по событиям и с управлением по данным. 14.25 Что значит проверить достоверность машинной модели? Как бы вы обос¬ новали модель небольшой (уже существующей) системы с разделением времени, включающей дисковую память, несколько дисплеев и печатающее устройство с быстродействием 100 строк в минуту? 14.26 При каких условиях вы используете программные мониторы? Аппаратные мониторы?
Гл. 14 Измерение, контроль и оценка производительности 85 14.27 Какую информацию можно извлечь из трассировки выполнения команд? Из трассировки выполнения модулей? Какой вид трассировки более полезен для анализа работы индивидуальных программ? Для анализа работы системы? 14.28 Как можно обнаруживать узкие места? Как их можно устранять? Если узкое место устранено, то следует ли ожидать увеличения производительности системы? Объясните, почему. 14.29 Что такое обратная связь? Укажите различие между отрицательной и по¬ ложительной обратными связями. Какой вид обратной связи способствует стаби¬ лизации системы? 14.30 Характеристика потока заданий — важная часть любого исследования производительности. Действительно, сначала надо узнать, что предполагается делать на ЭВМ, а уж потом можно говорить о том, насколько хорошо машина справится с работой. Какие измерения помогли бы вам охарактеризовать поток заданий в каждой из следующих систем: а) система с разделением времени, предназначенная для разработки программ; б) система пакетной обработки, используемая для подготовки ежемесячных счетов за электроэнергию для полумиллиона потребителей; в) персональный компьютер, используемый только одним инженером; г) микропроцессор, имплантированный в грудную клетку с целью регули¬ рования ритма сердечных сокращений; д) локальная вычислительная сеть, лежащая в основе интенсивно исполь¬ зуемой электронной почтовой системы внутри большого учреждения; е) система управления воздушным транспортом, разработанная для пред¬ отвращения столкновений; ж) сеть ЭВМ для предсказания погоды, получающая по линиям связи данные о температуре, влажности, барометрическом давлении и другие показа¬ ния из 10 000 пунктов, разбросанных по территории страны; з) медицинская система управления базами данных, отвечающая врачам всего мира на всевозможные медицинские вопросы; и) сеть ЭВМ для управления транспортом, которая контролирует и управ¬ ляет потоками транспорта в большом городе, 14.31 У изготовителя вычислительных систем находится в стадии разработки новая модель, поддерживающая мультипроцессорную работу. Система спроекти¬ рована по модульному принципу, так что пользователи могут по мере необходи¬ мости подключать новые процессоры, однако такое подключение стоит дорого. Средства для подключения новых процессоров должны быть предусмотрены в исходной ЭВМ, поскольку добавлять их па эксплуатируемую установку было бы слишком дорого. Изготовителю нужно решить, па какое оптимальное число подключаемых процессоров следует ориентироваться. Главный конструктор говорит, что оптимальное число — три. Он полагает, что включение в систему более трех процессоров не оправдает себя из-за слишком большой конкуренции за память. Какие методы оценки производительности вы порекомендовали бы, чтобы определить оптимальное число подключаемых процессоров на стадии разработки проекта? Объясните ваш ответ. 14.32 На некоторой установке имеется канал, обеспечивающий обмены в обоих направлениях с группой дисковых накопителей. К каналу присоединены т контроллеров дисков, а каждый контроллер имеет п дисковых устройств. Аппа¬ ратура для контроля производительности показывает, что канал используется с малой нагрузкой. Однако известно, что в системе происходят большие задержки в обслуживании запросов к дискам. а) В чем может быть причина? Перечислите несколько возможностей. б) Какие измерения вы предприняли бы для локализации источника труд¬ ностей? Какой метод контроля наиболее подходящий — аппаратный или программный?
£б Часть 6 Производительность 14.33 Руководство вычислительной системы с разделением времени, успешно обслуживающей 100 пользовательских терминалов, решило увеличить число терминалов до 130, Новые терминалы были установлены, и тотчас от пользова¬ телей начали поступать жалобы на плохое время ответа. К вам обратились с прось¬ бой провести оценку производительности и выяснить, каким образом можно достичь удовлетворительного времени ответа. а) Перечислите проблемы как в аппаратуре,так и в программном обеспечении, которые могли бы быть причиной плохого времени ответа. б) Для каждой проблемы, перечисленной в (а), укажите, какие методы проверки и оценки производительности, вы использовали ’бы, чтобы ее локализовать. в) Для каждой проблемы, перечисленной в (а), укажите, каким наиболее экономным путем можно было бы улучшить производительность системы,' если бы оказалось, что причина низкой производительности именно в этом. 14.34 На одной большой мультипрограммной установке с пакетным режимом работы счета за выполнение заданий составляются исключительно на основе показаний обычных часов. В момент запуска каждого пакетного задания оператор засекает по часам время начала обработки, а по завершении задания — время конца. Один из пользователей в течение нескольких месяцев регулярно выполнял опре¬ деленное задание, и оплата за каждый пуск была примерно постоянна. Но однаж¬ ды то же задание было выполнено, когда загрузка системы была очень велика, и сумма счета оказалась вдвое больше, чем ожидал пользователь. Он пожаловался руководству на такой счет и попросил уменьшить вдвое оплату. Должен ли пользователь платить большую сумму, даже если известно, что систе¬ ма в этот день была сильно загружена? Оцените достоинства следующих рассуж¬ дений. а) Да. Пользователь согласился платить за истекшее время, и счет должен всегда составляться по показаниям часов. б) Нет. Руководству не хотелось бы обижать хорошего пользователя. в) Да. Иногда то же задание выполняется на слабо загруженной системе и тогда оплата меньше ожидаемой, так что в среднем все скомпенсируется, г) Нет. Пользователь должен платить только за полезную работу, выполняе¬ мую компьютером, а она зависит только от выполняемого задания, но не от загрузки системы. д) Да. Вполне возможно, что большее время выполнения этого задания было вызвано не загрузкой системы, а тем, что само задание оказалось длиннее, чем обычно. 14.35 Ниже перечислены организации, рапространяющие программное обеспе¬ чение, и предлагаемые ими популярные коммерческие пакеты, предназначенные для моделирования систем. Advanced Computer Techniques Corporation 1501 Wilson Blvd. Arlington, VA 22209 Fast/Master — этот пакет анализирует и выдает отчет о загрузке системы. Это типичный представитель коммерческого программного обеспечения для проверки производительности. BGS System Inc. 470 Totten Pond Road Waltham, MA 02254 Best/1 — пакет общего назначения для предсказания производительности, предназначенный для применений в области планирования производи¬ тельности. Это диалоговая система, она помогает оценить эффект от из¬ менения параметров потока заданий, аппаратуры и операционной системы,
Гл'14 Измерение, контроль и оценка производительности 87 CACI 12011 San Vicente Blvd. Los Angeles, CA 90049 Simscript II.5—Simscript — это один из наиболее широко применяемых языков моделирования общего назначения. Он особенно полезен для разработки моделей вычислительных систем. COSMIC 112 Barrow Hall University of Georgia Athens. GA 30602 Multi-Purpose System Simulator — система моделирования для оценки производительности существующих и планируемых вычислительных систем. Information Systems Consultants, Inc. 311 Maple Avenue West Vienna, VA 22180 Load Generator System II — программная система для имитации потока заданий от терминалов в диалоговой системе. Пользователь задает «сце¬ нарий» типичных сеансов работы с терминалом, которые затем «выпол¬ няются» моделирующей программой, порождая поток заданий, сравнимый с тем, что получился бы при работе различного числа терминалов» Performance • Systems 30 Courthouse Square Rockville, MD 20850 Scert II — обширный пакет для предсказания производительности. Поль¬ зователь определяет характеристики аппаратуры и программного обес¬ печения, на которых будет выполняться определенный поток заданий, и пакет Scert рассчитывает затраты на выполнение данного потока за¬ даний в указанной обстановке и происходящие при этом эффекты, System Development 2500 Colorado Ave. Santa Monica, CA 90406 IMSIM—пакет программ моделирования, предназначенный для анализа производительности вычислительных систем и сетей при различных нагрузках. 14.36 Ниже перечислены некоторые поставщики вычислительной техники и предлагаемые ими аппаратные мониторы. Computer Resourses 4650 W. 160th Street Cleveland, OH 44135 Micromeasure — этот аппаратный программируемый монитор, основанный на микропроцессоре, накапливает и выдает на печать статистические данные о временах ответа терминалов, NCR Comten Inc. 2700 Snelling Avenue St. Paul, MN 55113 Dynaprobe — это на самом деле серия аппаратных мониторов и соответствую¬ щих программ для анализа результатов работы аппаратуры. Программ¬ ное обеспечение выдает результаты как в виде статистического отчета, так и в графической форме,
Часть 6 Производительность Questronics, Inc* 3565 SW. Tempe =)t5 Salt Lake City, UT 84115 Эта компания производит широкий набор аппаратных средств и соответст¬ вующего программного обеспечения для измерения времен ответа терми¬ налов и интенсивности работы сетей передачи данных, Tesdata Systems Corp. 7921 Jones Branch Drive P. O. Box 1056 McLean, VA 22102 Эта компания производит мощные мииикомпыотерные системы для про¬ верки производительности вычислительной аппаратуры и сетей. Неко¬ торые из этих систем позволяют получать отчеты в реальном времени, так что можно немедленно обнаруживать узкие места и источники труд¬ ностей. 14.37 Для решения этого упражнения вам придется осуществить достаточно детальное моделирование. Вам надо будет написать программу моделирования, используя для определения моментов событий генератор случайных чисел, т. е. ваша программа будет иметь управление по событиям. Руководство одной большой вычислительной установки с пакетным режимом ра¬ боты хочет определить, какая стратегия распределения памяти приведет к наилуч¬ шей производительности. Используемый компьютер не имеет виртуальной памяти и работает в мультипрограммном режиме с переменными разделами. Каждая поль¬ зовательская программа занимает одну группу смежных ячеек памяти. Пользо¬ ватели заранее сообщают потребность в памяти, и операционная система при запуске задания выделяет для него требуемую память. Всего для заданий поль¬ зователей отводится 100Кбайт физической памяти. Потребности заданий в памяти распределяются следующим образом: ЮК — 30 процентов заданий, 20К — 20 процентов заданий, 30К — 25 процентов заданий, 40К — 15 процентов заданий, 50К — Ю процентов заданий. Времена выполнения заданий на этой установке не зависят от потребности в па¬ мяти и распределяются следующим образом: 1 минута — 30 процентов заданий, 2 минуты — 20 процентов заданий, 5 минут — 20 процентов заданий, 10 минут — 10 процентов заданий, 30 минут— 10 процентов заданий, 60 минут — 10 процентов заданий. Система сильно загружена. В частности, всегда имеется хотя бы одно задание, ожидающее запуска. Задания обрабатываются строго в порядке их поступления. Напишите программу моделирования, которая поможет вам решить, какую стратегию распределения памяти нужно использовать на этой установке. Ваша программа должна использовать генератор случайных чисел, чтобы определять потребность в памяти и время выполнения заданий в соответствии с приведенными выше законами распределения. Исследуйте производительность установки на протяжении восьми часов, измерив пропускную способность, загрузку памяти и другие представляющие для вас интерес показатели для каждой из следующих трех стратегий распределения памяти: а) стратегия первого подходящего,
Гл. 14 Измерение, контроль и оценка производительности 89 б) стратегия наиболее подходящего, в) стратегия наименее подходящего. 14.38 Руководство установки, описанной в предыдущем упражнении, подозре¬ вает, что дисциплина обслуживания заданий в порядке их поступления может не быть оптимальной. В частности, руководство обеспокоено тем, что короткие (по времени выполнения) задания часто бывают вынуждены ожидать более длинных. Изучение ожидающих заданий показало, что всегда имеется по крайней мере десять заданий, ожидающих запуска (таким образом, если ожидают десять заданий и одно из них запускается, то сразу же поступает еще одно задание). Измените вашу программу моделирования из предыдущего упражнения так, чтобы выбор заданий для запуска выполнялся на основе правила «сначала кратчайшие задания». Как это повлияет на производительность для каждой из стратегий рас¬ пределения памяти? 14.39 Руководство установки, описанной в упр. 14.37, предполагает, что в слу¬ чае обработки заданий в порядке поступления задания с большой потребностью в памяти резко снижают производительность системы. Измените вашу программу моделирования из упр. 14.37 так, чтобы вся память 100К была разбита на две области по 50К. В первой из этих областей будут выполняться задания по ЮК, 20К и ЗОК в количестве, ограниченном только памятью. Вторая область будет использоваться исключительно для заданий по 40К и 50К. Как повлияет на производительность системы такой режим? Предполагается, что существует оче¬ редь заданий, всегда содержащая очередные десять заданий, и что задания для выполнения в каждой из областей памяти выбираются, как и ранее, в порядке поступления. 14.40 Предложите и реализуйте какие-либо еще изменения в программе моде¬ лирования, чтобы исследовать влияние других дисциплин обработки заданий. Литература (Bu69) Bucholz W., «А Synthetic Job for Measuring System Performance», IBM Journal of R&D, Vol. 8, No. 4, 1969, pp. 309—318. (Ca67) Calingaert P., «System Performance Evaluation: Survey and Appraisal», CACM, Vol. 10, No. 1, 1967, pp. 12—18. (Co75) Courtois P. J., «Decomposability, Instability, and Saturation in Multi¬ programming Systems», CACM, Vol. 18, No. 7, 1975, pp. 371—376. (Co77) Cohen J., Carpenter N., «А Language in Inquire about the Run-Time Behavior of Programs», Software—Practice & Experience, Vol. 7, No. 4, July/August 1977, pp. 445—460. (De68) Denning P. J., «Thrashing; Its Causes and Prevention», AFIPS Conf. Proc., FJCC 33, Part 1, Montvale, N. J.: AFIPS Press, 1968, pp. 915— 922. (Dr73) Drummond M. E., Jr., Evaluation and Measurement Techniques for Digital Computer Systems, Englewood Cliffs, N. J.: Prentice-Hall, 1973. [Имеется перевод: Драммонд M. Методы оценки и измерений дискретных вычис¬ лительных систем.— М.: Мир, 1977.] (Fe78) Ferrari D., Computer Systems Performance Evaluation, Englewood Cliffs^ N. J.: Prentice-Hall, 1978. (Fu75) Fuller S. H., «Performance Evaluation». In H. S. Stone (ed.), Introduction to Computer Architecture, Chicago: SRA, 1975, pp. 474—545. (He75) Hellerman H., Conroy T. F.^ Computer System Performance, New York: McGraw-Hill, 1975. (Kn71) Knuth D. E., «An Empirical Study of FORTPAN Programs», Software— Practice & Esperience, Vol. 1, No. 2, 1971, pp. 105—133. (Ko78) Kobayashi H., Modeling and Analysis: An Introduction to System Perform* ance Evaluation Methodology, Reading, Mass.: Addison-Wesley, 1978»
90 Часть 6 Производительность (La72) (La79) (Lu71) (Ly72) (Mi74) (Pe77) (Sa81) (Se72) (Sv77) Lassettre E., Scherr A., «Modeling the Performance of the OS/360 Time¬ sharing Option (TSO)». In W. Freiberger (ed.), Statistical Computer Per¬ formance Evaluation, New York: Academic Press, 1973, pp. 57—72, Lazowska E. D., «The Benchmarking, Tuning and Analytic Modeling of VAX/VMS», Conference on Simulation, Measurement and Modeling of Computer Systems, Boulder, Colorado, August 1979, pp. 57—64, Lucas H. «Performance Evaluation and Monitoring», ACM Computing Surveys, Vol. 3, No. 3, September 1971, pp? 79-91, Lynch W. C., «Operating System Performance», CACM, Vol. 15, No. 7,- 1972, pp. 579—585. Miller E. F., «Bibliography on Techniques of Computer Performance Analysis», IEEE Computer, Vol. 5, No, 5, September/October 1974,- pp. 39—47. Perrot R. H., Raja A. K., «Quasi-parallel Tracing», Software—Practice & Experience, Vol. 4, July/August 1977, pp. 483—492. Sauer С. H., Chandy К. M., Computer Systems Performance Modelings Englewood Cliffs, N. J.: Prentice-Hall, 1981. SekinoA., Performance Evaluation of Multi programmed Time-Shared Computer Systems, Ph. D. Dissertation, Electrical Engineering Depart¬ ment, M. I. Т.^ Cambridge, Mass. June, 1972. Svobodova L.-, Computer Performance Measurements and Evaluation Meth¬ ods: Analysis and Applications, New York: Elsevier, 1977e
Глдва 15 Аналитическое моделирование 0 Ты, «Аналитика», меня пленила!* 2) . Доктор Фауст Кристофер Марло 15.1 Введение 15.2 Теория очередей 15.2.1 Источник 15.2.2 Входящий поток 15.2.3 Пуассоновский входящий поток 15.2.4 Время обслуживания 15.2.5 Вместимость очереди 15.2.6 Количество обслуживающих единиц в системе 15.2.7 Дисциплина выбора из очереди 15.2.8 Приведенная интенсивность 15.2.9 Нагрузка 15.2.10 Установившийся и переходный режим 15.2.11 Результат Литтла 15.2.12 Краткие сведения о пуассоновских процессах 15.2.13 Задача 1: анализ M/W1-системы с очередью 15.2.14 Задача 2: анализ М/М/с-системы с очередью 15.3 Марковские процессы 15.3.1 Несколько определений 15.3.2 Процессы размножения и гибели 15.3.3 Задача 3: анализ производительности дисковой сис¬ темы 15.1 Введение В этой главе рассматриваются некоторые хорошо известные ме¬ тоды аналитического моделирования, а именно теория очередей и теория марковских процессов. Аналитические модели мы вкратце рассматривали в предыдущей главе. Аналитические модели — это математическое представление систем; с их помощью поведение ка¬ кой-либо системы можно оценивать быстро и с высокой точностью. Квалифицированный исследователь может применить здесь бога¬ тый арсенал математических результатов. Прежде всего мы крайне упростили математическую сторону. Хо¬ рошо известные результаты зачастую приводятся без доказательств. Наша цель — всего лишь познакомить читателя с кругом идей ма¬ тематического моделирования. Читателям, желающим глубже изу¬ чить эту область, следует обратиться к прекрасным учебникам и об¬ зорам (Sa81), (An78), (К176), (Ко78), (Mu75), (Pr76), (Re76). Эту главу можно совсем пропустить без ущерба для цельности х) Изложение теории очередей частично опирается на материал гл. 5 книги Arnold О. Allen. Probability, Statistics and Quereing Theory with Computer Science Applications. Copyright 1978 by Academic Press, Inc,, New York. Материал ис¬ пользован с разрешения издательства, 2) В переводе Е. Бируковой,
92 Часть 6 Производительность восприятия, однако мы рекомендуем хотя бы бегло просмотреть ее. Для того чтобы понять большинство математических разделов этой главы, необходимо знание основ теории вероятностей. Мы предла¬ гаем здесь несколько аналитических моделей. В приложениях 15.1 и 15.2 на с. 121 и 122 приведены таблицы математических функций, используемых для этих моделей. 15.2 Теория очередей Любому из нас приходилось чего-нибудь дожидаться, заняв свое место в веренице людей. Платишь пошлину на заставе — стоишь в очереди. Нужен бензин — стоишь в очереди. Даже зайдя в булоч¬ ную, мы становимся в очередь. В математике термин очередь означа¬ ет линейную последовательность ожидающих элементов, и в этой главе мы рассмотрим теорию очередей или теорию обслуживания. Почему возникают очереди? Если бы очередей не было, то нас обслуживали бы немедленно. Конечно, мы бы предпочли такой вариант или, может быть, нет? Решающий момент здесь — учет издержек. Наличие достаточно больших обслуживающих возмож- 1 Г Рис. 15.1 Состав использован рис. типичной системы с 5.1.1, Ап78.) Обслуживающее устройство с идентичными обслуживающими единицами очередью. (С разрешения издательства ностей, позволяющих нам никогда не ждать, повлекло бы очень боль¬ шие расходы. Вот в чем причина того множества очередей, в которых мы обычно стоим. Мы расплачиваемся временем, выигрывая деньги. Мы затрачиваем некоторое время, дожидаясь обслуживания в оче¬ реди, зато стоимость такого обслуживания ниже из-за более полной загрузки обслуживающих мощностей. Показательным примером
Гл. 15 Аналитическое моделирование 93 здесь служит медицинское учреждение, в котором к высококвали¬ фицированному врачу должна быть достаточно большая очередь, обеспечивающая постоянное наличие пациентов, с тем чтобы врач не оставался без дела. На рис. 15.1 показана типичная структура систем с очередью. Существует большое число потребителей, которые могут иногда обращаться к системе, запрашивая обслуживание. Обслуживанием может быть ответ продавца в булочной, получение бензина на бензоколонке или, в случае ЭВМ, обработка запроса на ввод-вы¬ вод и т. п. Мы рассмотрим обслуживающую систему, состоящую из Средняя интенсивность ‘входящего потока & * Т J Интервал между 1 требованиями Общее число требовании Я в ' Время, проводимое в очереди . Время обслуживания Н—5——н « W J Общее время нахождения требования в системе Рис. 15.2 Некоторые случайные величины в моделях теории очередей. (С разре¬ шения издательства использован рис. 5.1.2, Ап78.) нескольких идентичных обслуживающих единиц, каждая из кото¬ рых может удовлетворить требование на обслуживание. Если при поступлении нового требования все обслуживающие единицы заня¬ ты, то требование должно ждать, пока обслуживающая единица освободится, и это ожидание проходит в очереди. Очереди бывают неограниченными', такие очереди могут как угодно расти, чтобы вместить все ожидающие требования. В других системах очереди
94 Часть 6 Производительность ограничены-, они вмещают некоторое фиксированное число требова¬ ний (быть может, ни одного). Обсуждая проблемы теории очередей, нам не обойтись без анали¬ за случайных величин. Случайные величины могут быть описаны свои¬ ми распределениями вероятностей. На рис. 15.2 показаны неко¬ торые случайные величины, применяемые в моделях теории очере¬ дей. На рис. 15.3 приведена более детальная сводка обозначений, которыми мы будем пользоваться при изложении теории очередей. Для обозначения времени, которое требование проводит в оче¬ реди в ожидании обслуживания, мы используем случайную величи¬ ну q. Случайная величина s описывает время, затрачиваемое на об¬ служивание требования. Случайная величина w представляет собой общее время нахождения требования в системе обслуживания с оче¬ редью. Таким образом, w=q-vs. В следующих разделах мы рассмотрим несколько моментов, на кото¬ рые следует обращать внимание при анализе систем с очередью. 15.2.1 Источник Требования поступают в систему с очередью из некоторого источ¬ ника, который может быть бесконечным или конечным. В случае бесконечного источника очередь на обслуживание может быть сколь угодно длинной. В системах с конечным источником очередь, разу¬ меется, тоже конечна. Если источник требований конечен, но очень велик, его обычно считают бесконечным. Такое приближение целесообразно, и оно существенно упрощает математические выкладки. Вопрос о выборе конечной или бесконечной модели рассмотрен Бьюзеном и Голдбер¬ гом (В u74). 15.2.2 Входящий поток Мы будем считать, что требования поступают в систему в случай¬ ные моменты времени Они поступают по одному и не существует таких ситуаций, когда два требования пытаются одновременно попасть в систему. Случай¬ ные величины xk = h (^^1) соответствуют промежуткам времени между поступлениями двух последовательных требований; они называются интервалами между требованиями. Мы будем считать, что эти величины независимы и одинаково распределены. Символом т будем обозначать произвольный интервал между требованиями.
Гл. 15 Аналитическое моделирование 95 Символ Определение N я s w T Число требований в системе в установившемся режиме Число требований в очереди в установившемся режиме Число обслуживаемых требований в установившемся режиме Время, проводимое требованием в очереди Время обслуживания требования Время нахождения требования в системе, &j = 74-s. Интервал между требованиями — промежуток времени между двумя последовательными поступлениями требований на обслуживание Л Средняя интенсивность поступления требований в систему,- Л= 1/Е (т) Средняя пропускная способность вычислительной системы (рав- E ($) E (t) няется числу заданий или взаимодействий в единицу времени) Ожидаемое время обслуживания одного требования Ожидаемый интервал между требованиями, Е (т) — 1/Л (Л = средняя интенсивность поступления требований) Средняя интенсивность обслуживания одной обслуживающей еди¬ L ницей, |i= l/£(.s) L = Е (/V) = ожидаемое число требований в системе в установив¬ шемся режиме 4 Lq = Е (N= ожидаемое число требований в очереди в установив¬ nq (r) шемся режиме Время ожидания в очереди, не превышаемое для г процентов тре¬ бований Яда (г) Общее время ожидания, не превышаемое для г процентов требо¬ ваний Pn Вероятность нахождения п требований в системе в установив¬ шемся режиме U P Приведенная интенсивность = Е (s)/E (т) = Л£ (s) = Л/р, Нагрузка = приведенная интенсивность/с = Л£ (s)/e= (Л/р)/с = ве¬ роятность того, что конкретная обслуживающая единица нахо¬ дится в работе Wq = E(q) = ожидаемое время пребывания требования в очереди w в установившемся режиме (Wq=W — Е (s)) W = Е (ш) — ожидаемое время, в течение которого требование про¬ C(ct u) ходит систему в установившемся режиме, W=Wq-]-E(s) Вероятность того, что все с обслуживающих единиц в М/М/с-си- стеме находятся в работе. (М/М/с-системы будут определены в этой главе позже.) Рис. 15.3 Сводка величин, используемых в теории очередей. (С разрешения издательства использована Табл. 1 из приложения С, Ап78.)
D6 Часть 6 Производительность 15.2.3 Пуассоновский входящий поток Поступление требований может подчиняться практически лю¬ бому закону распределения. Однако в элементарной теории очере¬ дей обычно предполагается, что поступающие требования образуют пауссоновский процесс. Пауссоновский процесс характеризуется тем, что интервалы меж¬ ду требованиями распределены по показательному закону: Р(тС0 = 1— и вероятность поступления ровно п требований за произвольный интервал времени длины t равна („_0, !, 2, п\ Здесь X — постоянная средняя частота поступления (интенсивность потока), измеряемая «числом требований за единицу времени», при этом распределение числа требований, поступивших за единичное время, называется распределением Пауссона с параметром X. 15.2.4 Время обслуживания В теории очередей время обслуживания, равно как и время по¬ ступления требования, обычно полагают случайным. Обозначим через sk время обслуживания й-го поступившего требования. Про¬ извольное время обслуживания будем обозначать s, а распределение времен обслуживания обозначим как В частности, для случайного обслуживания со средней интенсив¬ ностью р Ws (/) = р (s< t) = 1 —е~ 1 Часто встречаются и многие другие законы распределения времени обслуживания. Читателям, интересующимся их изучением, следу¬ ет обратиться к одному из учебников по теории вероятностей, на¬ пример (Ап78). 15.2.5 Вместимость очереди Очереди могут иметь ® Бесконечную вместимость — так что любое поступившее требо¬ вание может быть принято в систему и ждать вне зависимости от того, сколько ожидающих требований уже имеется. ® Нулевую вместимость — в этом случае система отвергает все требования, поступающие в моменты, когда обслуживающее
Гл. 15 Аналитическое моделирование 97 устройство занято. (Такие системы иногда называют системами с отказами.) ® Положительную вместимость — в этом случае поступающие требования могут ждать обслуживания, только если в очереди еще осталось место. 15.2.6 Количество обслуживающих единиц в системе По количеству обслуживающих единиц системы с очередью мож- но разбить на следующие классы: О Системы с одной обслуживающей единицей — содержат только одну обслуживающую единицу и могут обслуживать в любой момент времени только одно требование. ® Системы со многими обслуживающими единицами — содержат с одинаковых обслуживающих единиц и могут, таким образом, одновременно обслуживать с требований. 15.2.7 Дисциплина выбора из очереди Дисциплина выбора из очереди — это правило, определяющее, какое требование из очереди выбрать для обслуживания. В опера¬ ционных системах применяются самые разные дисциплины, нонаи- А; BidKjml'Z. А закон распределения интервалов между требованиями В закон распределения времени обслужива¬ ния с число обслуживающих единиц /< вместимость очереди т число требований в источнике Z дисциплина выбора из очереди Рис. 15.4 Обозначения Кендалла (С разрешения издательства использован материал из Ап78, с. 157.) более распространенной, безусловно, является дисциплина «первый пришедший обслуживается первым» (FCFS). На рис. 15.4 приведены известные обозначения, используемые Кендаллом для описания ряда распространенных систем с очередью; их сокращенная форма представлена на рис. 15.5. 15.2.8 Приведенная интенсивность Приведенная интенсивность входящего потока характеризует возможности системы по эффективному обслуживанию требований. Приведенная интенсивность определяется как отношение среднего 4 581
98 Часть 6 Производительность Можно использовать обозначение AjB/c, если ф на длину очереди не накладывается ограничений ф источник требований бесконечен Ф дисциплина выбора из очереди — FCFS В качестве А и В может быть ф GI в случае произвольных независимых интервалов между требо¬ ваниями © G в случае произвольного времени обслуживания ф E# в случае распределения времени обслуживания или интервала между требованиями по закону Эрланга k-ro порядка ф М в случае показательного распределения времени обслуживания или интервала между требованиями ф D в случае детерминированного распределения времени обслужива¬ ния или интервала между требованиями Ф Щ в случае гиперэкспоненциального (/г-го порядка) распределения времени обслуживания или интервала между требованиями Рис. 15.5 Сокращенные обозначения Кендалла (С разрешения издательства использован материал из Ап78, с. 157.) времени обслуживания Е (s) к среднему интервалу между требова¬ ниями £(т). ТакихМ образом, приведенная интенсивность и есть u = OH-£(s) = 7’ где X — интенсивность поступления требований, а р, — интенсивность обслуживания. Приведенная интенсивность полезна при определе¬ нии минимального числа одинаковых обслуживающих единиц, ко¬ торые следует включить в систему, чтобы не допустить беспредель¬ ного роста очереди или же отказа в обслуживании. Если, например, Е (s) равно 17 с, а £(т) — 5 с, то и= 17/5 или 3.4 и, следовательно, в системе должно быть по крайней мере 4 обслуживающих единицы. Если их будет меньше, то требования будут прибывать быстрее, чем система в состоянии обрабатывать. Имея дело со случайными величинами, нужно проявлять неко¬ торую осмотрительность. Так, в приведенном выше примере темп поступления требований равен одному требованию за пять секунд, однако эта цифра — лишь среднее значение. Вполне может случить¬ ся, что и за более длительный период не поступит вообще ни одного требования. Еще хуже то, что несколько требований могут быстро поступить одно за другим, и это приведет к превышению фиксиро¬ ванного размера очереди и, как следствие, к отказу в обслуживании. При использовании очередей фиксированного размера разработчи¬ ку следует позаботиться о достаточной их вместимости, с тем чтобы система могла справиться со случайными пиками в скорости поступ¬ ления требований. Разумеется, эта резервная вместимость будет нужна лишь изредка, поэтому в условиях нехватки памяти лучше, вероятно, воспользоваться связанным списком для реализации оче¬ реди переменной длины.
Гл. 15 Аналитическое моделирование 99 15.2.9 Нагрузка Приведенная интенсивность — это параметр, характеризую¬ щий всю систему в целом. С ним связан параметр р — нагрузка на обслуживающую единицу, определяемая как приведенная интен¬ сивность, приходящаяся на одну обслуживающую единицу: и X Р с цс Нагрузка есть вероятность того, что конкретная обслуживающая единица окажется занятой. Закон больших чисел утверждает, что эта вероятность примерно равна доле времени, в течение которого обслу¬ живающая единица занята. Заметим, что для системы с одной обслу¬ живающей единицей нагрузка совпадает с приведенной интен¬ сивностью. 15.2.10 Установившийся и переходный режимы Нас в основном интересует функционирование системы с оче¬ редью, когда она уже «успокоилась» и работает, как говорят, в уста¬ новившемся режиме. Любая система, начиная работу, проходит через некоторый начальный период, который обычно не отражает ее даль¬ нейшее постоянное поведение. Так, например, автомобиль, на кото¬ ром нам предстоит проехать несколько сотен миль по скоростной автостраде с ограничением скорости до 55 миль в час, должен снача¬ ла набрать эту скорость. Начальный период разгона не показате¬ лен для режима движения со скоростью 55 миль в час — значитель¬ но больше расход бензина и от водителя требуется большее внима¬ ние. Как только автомобиль достигнет желаемой скорости, т. е. войдет в установившийся режим, водитель может слегка расслабить¬ ся, а расход бензина упадет. Точно так же и система с очередью должна пройти через началь¬ ный период работы, прежде чем ее поведение станет гладким и пред¬ сказуемым. Изучение систем с очередями существенно упрощается, если известно, что система работает в установившемся режиме. В этом случае многие важные параметры не меняются во времени и описа¬ ние действий системы оказывается сравнительно простым. Завися¬ щий от времени, или переходный режим значительно сложнее для анализа и выходит за рамки этой книги. Джиффин (Gi78) рассмат¬ ривает переходный режим для ряда простых систем с очередью. 15.2.11 Результат Литтла Результат Литтла очень прост; вместе с тем он очень полезен при измерении характеристик системы с очередью. Результат Литтла устанавливает связь между следующими величинами: 4*
ICO Часть 6 Производительность Q Wq = среднее время, которое требование ожидает в очереди, Q л = интенсивность входящего потока. © Lq = число требований в очереди. © w = среднее время пребывания требования в системе. О L =число требований в системе. Точная формулировка результата Литтла такова: и L=XW. Утверждается, таким образом, что число требований в очереди рав¬ но произведению интенсивности входящего потока на среднее время пребывания требования в очереди, а число требований в системе равно произведению интенсивности входящего потока на среднее время пребывания требования в системе. 15.2.12 Краткие сведения о пуассоновских процессах Допустим, что требования поступают в некоторые моменты не¬ прерывной временной шкалы. Определи?.* величину Р (k, t) как вероятность поступления ровно k требований в течение интервала времени длины t. Случайный процесс является пуассоновским тогда и только тогда, когда 1. Для достаточно малых интервалов А/ < Wt, для k = 1 (X, таким образом, есть средняя I интенсивность поступления требований), A/) j | — ZA/, дЛЯ для k > 1. 2. Любые события, происходящие на непересекающихся временных интервалах, взаимно независимы. Другими словами, случайный процесс является пуассоновским, если интервалы между последовательными поступлениями требо¬ ваний, т. е. интервалы первого порядка между требованиями явля¬ ются случайными величинами с одинаковым показательным распре¬ делением. Приведенные ниже сведения показаны графически на рис. 15.6. Для обозначения числа поступивших требований используем слу¬ чайную величину k\ вероятность поступления за время t ровно k требований равна />0, 6 = 0, 1, 2, ... ?
Гл. 15 Аналитическое моделирование 101 Математическое ожидание (среднее значение') случайной величины k есть E(k)=M, а дисперсия k равна afz=Kt. Рисунок 15.7 иллюстрирует возможность объединения пуассонов¬ ских процессов. Сумма двух независимых пуассоновских случайных Рис. 15.8 Графики распределения Пуассона для различных значений М (Ы. Kobayashi, Modeling and Analysis, © 1978, Addison-Wesley, Reading, Mass. Рис. 3.4. перепечатан с разрешения издательства.) величин х и у с математическими ожиданиями £ = и £(x) = |ii=M также описывает некоторый пуассоновский процесс. Вероятность k событий в этом процессе за время t(t^O, k=0, 1, 2, ...) равна plh » (?-iN-W)fte~(V+V> . (щ-|-М2)йе~(Ц1 + Цг) . Ч— k\ k\ ~~ ~ kl kl ’ где Н5=|-11 + И2 и Ч=^1+^2- Имея пуассоновский процесс с интенсивностью %, мы можем об¬ разовать новый пуассоновский процесс, воспользовавшись проце¬ дурой независимого случайного исключения. Каждое событие, проис¬ ходящее в исходном процессе, мы допускаем в новый процесс с ве¬ роятностью р, а с вероятностью (1—р) отбрасываем это событие. Полученный таким образом процесс будет пуассоновским с интен¬ сивностью Кр. Обобщение этого результата представлено на рис. 15.8.
102 Часть 6 Производительность Пуассоновский процесс,являющийся суммой п независимых пуассоновских процессов I J Рис. 15.7 Сумма п независимых пуассоновских процессов. Механизм случайного распределения lpi=l И 4=1 п п п Ы " i=l Рис. 15.8 Разложение пуассоновского процесса на п независимых процессов.
Гл. 15 Аналитическое моделирование 103 Вероятность того, что в пуассоновском процессе за время t не произойдет ни одного события (не поступит ни одного требования), равна Р(0, о = а вероятность одного или более событий (требований) за время t есть 1— Р (0, #) = 1— е~и. Функция плотности вероятности интервала первого порядка меж* ду требованиями (или времени до поступления первого требования) есть для Математическое ожидание t равно а дисперсия равна Функция плотности вероятности интервала порядка г между тре* бованиями (или времени до поступления r-го требования) есть /г (О (г-1)! ’ />0, r= 1, 2, ... с математическим ожиданием и стандартным отклонением г хГ • Обслуживающие устройства могут иметь показательно распре¬ деленное время обслуживания. В этом случае вероятность того, что время обслуживания не превысит Z, есть В этой формуле р, — средняя интенсивность обслуживания, а сред¬ нее время обслуживания равно 1/р. Функция плотности распределе¬ ния для времени обслуживания t есть Среднее время обслуживания Е (s) = l/p, а дисперсия времени обслу¬ живания равна 1/pt2. Обслуживающая единица, работающая в соот¬ ветствии с этими законами, называется показательной обслуживаю¬ щей единицей.
104 Часть 6 Производительность 15.2.13 Задача 1: анализ М/М/1 -системы с очередью В некоторой компьютерной консультационной фирме програм¬ мисты отлаживают свои программы с помощью одного терминала, подключенного.к центральной вычислительной системе фирмы. Фир¬ ма работает 24 часа в сутки, и каждые сутки в среднем у 48 програм¬ мистов возникает необходимость по одному разу поработать за тер¬ миналом. Программисты приходят к терминалу случайным образом (т. е. по пуассоновскому закону). Время, проводимое каждым прог¬ раммистом за терминалом, распределено показательно и в среднем равно 20 минутам. В дирекцию фирмы ежедневно поступают жалобы от программи¬ стов на то, что время ожидания у терминала слишком велико и это снижает производительность труда. Программисты доказывают, что и = — — \Е (s). и v 7 и 13 с С (с, и) ~сГ Приведенная интенсивность Нагрузка Вероятность того, что Есе обслужи¬ вающие единицы заняты, и, следова¬ тельно, вновь поступающая заявка должна ждать w/ _ С (с, и) Е (s) W =--- Wq + E(s). n9(90) = F^ln(10C(c, и)). Среднее время в очереди Среднее время в системе Максимальное время в очереди для 90 % требований Рис. 15.9 Формулы для установившегося режима М/М/с-системы с очередью. (С разрешения издательства использована табл. 5 из приложения С, Ап78.) необходимы еще несколько терминалов. Дирекция же обеспокоена тем, что имеющийся терминал используется только две трети всего времени, и поэтому, по мнению дирекции, установка дополнительных терминалов — пустая трата денег. Проанализируйте положение в этой фирме с позиций теории оче¬ редей и определите, оправдана ли на самом деле установка допол¬ нительных терминалов. Решение. Для моделирования работы терминала в этой фирме воспользуемся системой типа М/М/1. На рис. 15.9 приведены уравнения для М/М/с-системы. Читате¬ лей, интересующихся выводом этих уравнений, мы отсылаем к учеб¬ никам по теории вероятностей, таким, как (Лп78), (Ко78).
Гл. 15 Аналитическое моделирование 105 Уравнения, описывающие М/М/1-систему, получим из уравнений для М/М/с-системы. Во-первых, находим, что u = A = X£ (s) И Далее, “)НгЙ+(1-р)У^) 4 tl=Q 7 преобразуется в со. 4 п-0 7 Таким образом, C(l, u) = C(l, p) = w = p = X£(s) теперь, W7 _ С W) £ (*) С 0 ’ ") Е (s) * 1-Р т. е. W = РЕ (S) Среднее время пребывания в системе составит W = Wq + E(s) = РЕ (s) . Е (s) (1—р) (1_р) > т. е. E(s) 1 —р И последнее, л9(Э0) = ln(lo'c(g> «))> т. е ^(90) = -^-1п(10р) = Г In (Юр) Окончательные результаты собраны вместе на рис, 15.10,
106 Часть 6 Производительность Нагрузка терминала действительно составляет 2/3, так как XE(s) —24« з — з • Итак, р=2/3 и £(s)=20 мин. Среднее время, в течение которого программист должен дожидаться освобождения терминала, равно W = _p^(s) = (2.^)_29 = 40 мин. <7 1 —р (1/3) п Общее время, которое программист проводит за терминалом и в ожи¬ дании его равно W=Wq+E (s) = 40+20=60 мин. Время ожидания для 90 % программистов не превышает nq (90) = IFln (Юр)=601п (6.667) = 113.826 мин. Таким образом, для 10 процентов программистов (примерно для пятерых каждый день) ожидание становится воистину докучливым. С (с, и) = р = 'кЕ (s). 4 1 —р 1-р (90) = Fin (Юр). Рис. 15.10 Формулы для установившегося режима М/М/1-системы с очередью. Эти программисты, прежде чем поработать с терминалом, дожидают¬ ся своей очереди почти два часа. Результат Литтла дает нам некоторую дополнительную инфор¬ мацию. Интенсивность работы программистов . 48 1 /v= 2+бб = 30 пР0ГРаммиста в минуту, поэтому Lq = i ’ 40 = 1.33 ожидающих программистов и Л = go-60 = 2 программиста в терминальной комнате. На этом наш анализ задачи 1 завершен. Он подтверждает, что одного терминала недостаточно для обеспечения потребностей прог¬ раммистов без чрезмерных задержек.
Гл. 15 Аналитическое моделирование 107 15.2.14 Задача 2: анализ М/М/с-системы с очередью Рассмотрев предыдущее исследование, фирма решила приобрести дополнительные терминалы. Сколько терминалов надо заказать, чтобы время ожидания для 90 % программистов не превышало 10 минут? Следует ли собрать эти терминалы в одном месте или же их нужно рассредоточить по всему зданию? (Указание: не учитывай¬ те время, которое требуется программисту, чтобы дойти до термина¬ ла.) Решение. Рассмотрим сначала вариант рассредоточения терми¬ налов. Каждый из терминалов можно считать М/М/1-системой с оче¬ редью, а нагрузка распределяется между терминалами поровну. На рис. 15.11 показаны результаты для случая двух, трех, четырех и пяти терминалов в разных местах. Обратите внимание, что, как только мы добавляем второй М/М/1-терминал, время ожидания резко сокращается. Вместе с тем На один терминал Один Два Три Четыре Пять терминал терминала терминала терминала терминалов 2 1 2 1 2 Нагрузка р 3 3 9 6 15 Среднее время об- служивания Е («) 20 мин 20 мин 20 мин 20 мин 20 мин Среднее время в Wg 40 мин 10 мин 3.1 мин очереди 5.7 мин 4 мин Среднее время в 60 мин 25.7 мин системе W 30 мин 24 мин 23 мин Время в очере ди для 90% про- граммистов Лд (90) 113.8 мин 36.1 мин 20.5 мин 12.3 мин 6.6 мин Рис. 15.11 Результаты использования М/М/1-систем для решения задачи 2, максимальное время ожидания для 90 % программистов становится меньше 10 мин лишь с добавлением пятого терминала. Чтобы удов¬ летворить требованию снижения этого времени до 10 мин, при усло¬ вии использования систем типа М/М/1 мы должны остановиться на пяти терминалах. Теперь попробуем сгруппировать все терминалы в каком-либо центральном месте. Рассмотрим одну систему типа М/М/2 и приме¬ ним для ее анализа формулы для М/М/с-системы, приведенные на
108 Часть 6 Производительность рис. 15.9. Получим W = Wq Е (s) = 2.5 -I- 20 = 22.5 мин, л (90) = . In (ЮС (с, «)) = -Д- In (1.667) = 7.66 мин. 1 с 9 р) о “ Z 3 Удивительно, что уже для М/М/2-системы 90-процентное время ожидания удовлетворяет критерию 10 мин. Таким образом, с по¬ мощью всего двух централизованных терминалов фирма может раз¬ решить серьезную проблему ожидания, возникающую для системы с одним терминалом. Итак, чтобы время ожидания для 90 % прог¬ раммистов было менее 10 мин, нам потребуется пять распределен¬ ных терминалов типа М/М/1 или два терминала, объединенных в М/М/2-систему. Поскольку время ходьбы по зданию предполагает¬ ся пренебрежимо малым, то фирма, конечно, предпочтет М/М/2-си- стему. 15.3 Марковские процессы Часто оказывается, что для описания системы можно исполь¬ зовать множество взаимоисключающих и в сумме исчерпывающих дискретных состояний So, Slf S2, ..., Sn, в одном из которых на¬ ходится система. Удобной моделью для описания таких систем явля¬ ются марковские процессы. Поведение марковского процесса в будущем определяется теку¬ щим состоянием системы и переходными вероятностями (вероят¬ ностями перехода из одного состояния в другое). При условии что марковский процесс находится в некотором конкретном состоянии, его будущее поведение не зависит от истории, предшествующей до¬ стижению этого состояния. Многим марковским процессам свойствен стационарный режим, когда вероятность пребывания процесса в каждом определенном со¬ стоянии не зависит от времени. Мы будем рассматривать только мар¬ ковские процессы, обладающие этим приятным свойством.
Гл. 15 Аналитическое моделирование 109 15.3.1 Несколько определений Состояние S, марковского процесса называется несущественным, если существует состояние S/e, которое достижимо из состояния SJt но из которого система не может вернуться в S7. Состояние Sj называется существенным, если для любого состоя¬ ния Sk, достижимого из Sp возможен возврат обратно в Sf. Неразложимый класс — это такое множество существенных со¬ стояний, что для любых двух состояний из этого множества система может перейти из одного в другое. В марковском процессе с непрерывным временем смена состояний может происходить в любые моменты непрерывной временной шка¬ лы. 15.3.2 Процессы размножения и гибели В моделировании компьютерных систем особенно часто приме¬ няются процессы размножения и гибели — важный частный случай марковских процессов. Исследование этого класса процессов су¬ щественно проще, чем общих процессов Маркова. Рис. 15.12 Процессы размножения и гибели. Рис. 15.13 Обозначения в процессах размножения и гибели. Непрерывный марковский процесс размножения и гибели облада¬ ет следующим свойством: Х(7=0, если (/=/=/+1 и 1), где Az,- есть интенсивность переходов из состояния St в состояние Sj (рис. 15.12). Для этих процессов мы будем использовать следующие обозначе¬ ния (рис. 15.13): интенсивность размножения в состоянии средняя интенсивность гибели в состоянии Sz.
110 Часть 6 Производительность Пусть Р{ — вероятность того, что процесс находится в состоянии Sz в установившемся режиме. Тогда в произвольный случайно вы¬ бранный интервал А/ переход Sz->S/+i (осуществляемый с вероят¬ ностью Pfii) столь же вероятен, как и переход S/+1->SZ (вероятность Pl+1di+1). Следовательно, Р fi^P i+idi+i. Используя соотношения мы можем найти решение непрерывного процесса размножения и гибели, т. е. определить все вероятности Рассмотрим теперь при¬ мер, иллюстрирующий применение процессов этого вида в модели¬ ровании вычислительных систем. 15.3.3 Задача 3: анализ производительности дисковой подсистемы Предположим, что требования на доступ к диску поступают по пуассоновскому закону со средней интенсивностью X требований в минуту. Если диск занят работой, то поступившее требование поме¬ щается в очередь, где оно ждет обслуживания в соответствии с дис¬ циплиной «первый пришедший обслуживается первым». Когда диск освобождается, начинается обслуживание первого требования из очереди. Время обслуживания есть показательно распределенная случайная величина с математическим ожиданием 1/|ш мин. Средняя интенсивность обслуживания составляет р требований в минуту. Определите для каждого из следующих случаев среднее число необслуженных требований (находящихся в очереди или на обслу¬ живании) и предельные вероятности состояний. СЛУЧАЙ I: Дисковое устройство содержит только один держатель магнитных головок и может обслуживать за один раз только одно требование. Интенсивность обслужива¬ ния равна р. СЛУЧАЙ II: Дисковое устройство содержит очень много держате¬ лей головок, каждый из которых может обслуживать запрос к диску с одной и той же интенсивностью р (таким образом, допускается параллельное обслужи¬ вание бесконечного числа требований). Решение (случай I). Обозначим через St состояние системы, когда в ней находится i требований. Интенсивность поступления требова¬ ний не зависит от состояния системы, так что вероятность перехода в очередной интервал времени А/ равна 7iA£,
Гл. 15 Аналитическое моделирование 111 Рассмотрим нашу систему как непрерывный процесс размноже* ния и гибели с бесконечным числом состояний. Параметры этого процесса равны &(.=х, 1=0, 1, 2, ... и 0, 1 = 0, р, i = 1, 2, 3 поскольку одновременно может обслуживаться только одно требо¬ вание и интенсивность его обслуживания равна р. Рис. 15.14 Модель в виде марковского процесса размножения и гибели для случая I. Мы используем диаграмму переходов, изображенную на рис. 15.14. Будем считать, что (в противном случае очередь ожидающих требований будет неограниченно расти). Воспользуемся соотноше- ниями Р — ь‘ Р ; _ о 1 9 а1+1 и Получаем и в общел! случае Таким образом, вероятность незагруженности системы равна
112 Часть 6 Производительность а вероятность того, что в системе имеется i необслуженных требова¬ ний, есть Среднее число необслуженных требований равно следовательно, Результаты исследования случая 1 показаны на рис. 15.15. Решение (случай II). Если в настоящий момент обслуживаются I требований, то вероятность завершения обслуживания какого-то конкретного требования в интервале AZ равна рД/, а вероятность того, что закончится обслуживание ровно одного (любого) требова¬ ния, составляет грД/ (в приближении первого порядка). Справед¬ ливость этого соотношения вытекает из того, что изменение состоя¬ ния может быть вызвано завершением обслуживания любого из i требований. Как и в предыдущем случае, мы рассматриваем систему как непрерывный процесс размножения и гибели с бесконечным числом состояний и параметрами i=0, 1, 2, ..., но теперь _ (0, i = О, z_ Up, г = 1, 2, з, .... Поскольку имеется бесконечно много параллельно работающих обслуживающих единиц, то ни одному требованию не приходится ожидать обслуживания. Мы используем диаграмму переходов, изображенную на рис. 15.16. Как и ранее, применим соотношения 1 = 0, 1,2, ...
Гл. 15 Аналитическое моделирование 13 о X _ О Д — о ® =Г ± 2 о 0.25 0.43 .0.67 00'1 1.50 2.33 о о тВ 9.00 о 1 11.50 13.29 15.67 19.00 24.00 32.33 49.00 99.00 о я С' »=С Z о о £ Q. 0.0 н О в систе о О о сч о о оо в- ио оо тВ ТВ UO в- оо- в- о о о о тВ сч СО оо оо со ТВ в- см СО СП о о о о о со сч со со со со со со сч сч о о о о о о о о о о о о о со о о со о о о о о тВ о ь- СО СО со со сч со О] СИ ио со см о о о о сч со со со сч СИ со со оо со г- СП я (3. о о о о о СП со ТВ ТВ ТВ со со со сч О] о о о о о о со о о о о о о о о со со о о ю г> О, Н х о о О) о СП сч СП оо ио со СП СП сч ТВ со о о о со тВ г^. СО ТВ сч оо ТВ со ТВ В^ СИ 3 & о о о о о сч ТВ ТВ ТВ ТВ ТВ со со со сч со 2 о о о о о о о о о о о со о о о о о о tr * о о ио ю оо г~- со ТВ и0 со тВ 00 со со в- ТВ я о о о сч Г-- оо U0 сч со оо ио СО иэ г- СИ ч & о о СП о о со ио ио ио ТВ ТВ ТВ со со сч со о S О' о о о о о о о о со о со со со со о о о о О о в о со ь- СО тВ ио о О1 в- в- со в- со 00 ио о о ио ио о ио СИ СО сч ОО тВ оо сч ио оо СП я Сц о о о о со ио СО ио ио ио ТВ ТВ со со сч о 2 о о о о о о о о о со о о со о со со о со в о со г- ТВ со 00 о СИ СО п- со ТВ оо в^ со со тВ со о LO LO сч ио в- сч СО о ТВ со оо СП в си о о о со ио ь- оо СО СО U0 ио тВ ТВ со см о о о о о о о о о о со о о со о со со со о сп ТВ СП ТВ ио тв СП ТВ СП оо со со 00 СИ ТВ ТВ 00 в- о о со оо оо сч со сч сч сч г- сч со СП сч ио г- 00 СП си о о со ио со о о г- СО со ио ТВ ТВ со сч со в в о о о о о о о со со о со о со со со со и о о о о о о о о о о ио г- ио о СП см сч оо СИ СЧ со ио Ю тв в- ОО ТВ В- о со ио СО ОО СИ СИ Ct, о со со СП сч тВ тВ сч со СО СО ио тВ СО сч со о. о о о о 1 о со о о о со о о о о 23 о о о о о о о о о 2 СО ТВ ю ТВ со СП о о о о о о о о о со ио со г^. 00 СИ СП СП рГ со со тВ ио тВ СО СП 00 в- СО ио ТВ со сч о о сч сч сч сч сч со со о о о со о о о СО н о о о о о о о о со со со о со со о о со о о в о о о о о о о со о со со о о о со со со со о си о о о о о о о о о СП оо в- со ио ТВ со сч & 00 ио ио тв со сч со со о о со со со со о f—< в К о сч со ТВ ио со в^ оо СП в. ~< сч со ТВ ио со в- 00 СП СП СП СИ СП оп СП СИ СП СП о о о о о о со о о о о о о со о о со со Рис. 15.15 Сводка результатов для случая
114 Часть 6 Производительность Рис. 15.16 Модель в виде марковского процесса размножения и гибели для случая II. И Тогда и в общем виде Поскольку имеем 2^ = 1. 1=0 /1=0 и, следовательно,
Гл. 15 Аналитическое моделирование 115 Среднее число ожидающих требований в системе ООООООООО СО Ю О N оо Ст) У—1 (N со 'Ф Ю СО оо О) 0)0)00)0)00)00) ООООООООО 000000)000 Вероятность нахождения в системе данного числа ожидающих требований Р. Рг Рз Р. Р5 Р» Рз Р. Р» .0905 .0045 .0002 .0000 .0000 .0000 .0000 .0000 .0000 .1637 .0164 .000 .0001 .0000 .0000 .0000 .0000 .0000 .2222 .0333 .0333 .0003 .0000 .0000 .0000 .0000 .0000 .2681 .0536 .0072 .0007 .0001 .0000 .0000 .0000 .0000 .3033 .0758 .0126 .0016 .0002 .0000 .0000 .0000 .0000 .3293 .0988 .0198 .0030 .0004 .0000 .0000 .0000 .0000 .3476 .1217 .0284 .0050 .0007 .0001 .0000 .0000 .0000 .3595 .1438 .0383 .0077 .0012 .0002 .0000 .0000 .0000 .3659 .1647 .0494 .0111 .0020 .0003 .0000 .0000 .0000 .3663 .1667 .0506 .0115 .0021 .0003 .0000 .0000 .0000 .3666 .1687 .0517 .0119 .0022 .0003 .0000 .0000 .0000 .3669 .1706 .0529 .0123 .0023 .0004 .0000 .0000 .0000 .3672 .1726 .0541 .0127 .0024 .0004 .0001 .0000 .0000 .3674 .1745 .0553 .0131 .0025 .0004 .0001 .0000 .0000 .3676 .1764 .0565 .0136 .0026 .0004 .0001 .0000 .0000 .3677 .1783 .0577 .0140 .0027 .0004 .0001 .0000 • .0000 .3678 .1802 .0589 .0144 .0028 .0005 .0001 .0000 .0000 .3679 .1821 .0601 .0149 .0029 .0005 .0001 .0000 .0000 Простои системы Ро СО СО со О со О со СО 0 Ю О О N 0 0 0 ■^fOOOOOOOCOOCO CNOOxf'OCOCMOlO’—< О’— N С --Т4 0 о ocnoooooot^t^.r>. О СО (.х. СО СО О xf xf xf xf'COCOCOCOCOCOCOCO Л — 00^0 01x000 — 0 СО Ю О S ОО 0 ООООООООО ООООООООО ООООООООО Рис. 15.17 Сводка результатов для случая II.
116 Часть 6 Производительность Таким образом, £(0=А Результаты исследования случая II приведены на рис. 15.17. Мы рекомендуем тщательно изучить рис. 15.15 и 15.17, тогда вы ощу¬ тите разницу между системами с одной ‘и с бесконечным числом об¬ служивающих единиц. В системе с одной обслуживающей единицей поступающее тре¬ бование должно ожидать, если в момент поступления дисковое устройство оказалось занятым. В системе с бесконечным числом об¬ служивающих единиц все поступающие требования сразу же при¬ нимаются на обслуживание. В системе с одной обслуживающей единицей по мере приближе¬ ния X к р вероятность простоя системы быстро падает, и поэтому по¬ ступающие требования ожидают. Число требований в системе быст¬ ро растет. В системе с бесконечным числом обслуживающих единиц среднее число требований в системе при тех же условиях стремится к 1. Заключение Аналитические модели — это математическое представление си¬ стем. Они позволяют быстро и с высокой точностью характеризовать поведение систем. Модели теории очередей полезны при исследова¬ нии систем, в которых требования ожидают обслуживания в оче¬ реди. Очереди могут быть ограниченными или неограниченными. Тре¬ бования поступают в систему из некоторого источника, который может быть конечным или бесконечным. Мы рассматривали случай¬ ный входящий поток и не допускали столкновений. Время, прошед¬ шее между последовательными поступлениями требований, называ¬ ется интервалом между требованиями. Пуассоновский входящий поток характеризуется тем, что интервалы между требованиями имеют показательное распределение. Поступающие требования об¬ служиваются, как мы считали, устройствами с показательным рас¬ пределением времени обслуживания. Очереди могут иметь бесконечную, нулевую или положитель¬ ную вместимость. Очереди имеют нулевую вместимость в системах с отказами. По количеству обслуживающих единиц системы можно классифи¬ цировать на системы с одной обслуживающей единицей и с несколь¬ кими. Приведенная интенсивность равна отношению среднего вре¬ мени обслуживания к среднему интервалу между требованиями. Этот параметр показывает возможности системы эффективно обслуживать поступающие требования. Нагрузка есть приведенная интенсив-
Гл. 15 Аналитическое моделирование 117 пость, приходящаяся на одну обслуживающую единицу. Она равна вероятности занятости конкретной обслуживающей единицы. В элементарном аналитическом моделировании обычно имеют дело с установившимся режимом работы системы. Промоделировать переходные процессы гораздо сложнее. Результат Литтла утверждает, что число требований в очереди равно интенсивности входящего потока, умноженной на среднее время пребывания требования в очереди, а число требований в си¬ стеме равно интенсивности входящего потока, умноженной на сред¬ нее время пребывания требования в системе. Случайный процесс является пуассоновским, если промежуток времени между последовательными событиями, т. е. интервалы пер¬ вого порядка являются случайными величинами с одинаковым пока¬ зательным распределением. Сумма двух независимых пуассонов¬ ских случайных величин также описывает пуассоновский процесс. Если к пуассоновскому процессу применить процедуру независимого случайного исключения, то полученный процесс снова будет пуассо¬ новским. Марковские процессы применяются для моделирования систем, способных находиться в одном из взаимоисключающих дискретных состояний. Если известно текущее состояние марковского процесса, то его будущее поведение не зависит от его предыстории, предшест¬ вующей попаданию в это состояние. Мы рассматривали только мар¬ ковские процессы, выходящие на установившийся режим. В моделировании компьютерных систем особенно полезен важ¬ ный частный случай марковских процессов, а именно процессы размножения и гибели. Эти процессы значительно легче поддают¬ ся анализу, чем марковские процессы общего вида. Терминология аналитическая модель (analytic model) бесконечный источник (infinite source) вместимость очереди (queue capacity) время обслуживания (service time) входящий поток (arrivals) дисциплина выбора из очереди (queue discipline) закон больших чисел (Law of Large Numbers) интенсивность входящего потока (arrival rate) интервал между требованиями (interarrival time) источник (требований) (source) конечный источник (finite source) марковский процесс (Markov process) множество потребителей (требований) (customer population) нагрузка (utilization) нагрузка обслуживающей единицы (server utilization) неогоаниченная очередь (unbounded queue)
118 Часть 6 Производительность обозначения Кендалла (Kendall notation) обслуживающая единица (server) обслуживающее устройство (service facility) ограниченная очередь (bounded queue) очередь (queue, waiting line) очередь бесконечной вместимости (infinite capacity queue) очередь нулевой вместимости (zero capacity queue) очередь положительной вместимости (positive capacity queue) переходный режим (transient solution) приведенная интенсивность (traffic intensity) пуассоновский входящий поток (Poisson arrivals) распределение вероятностей (probability distribution) результат Литтла (Little’s result) решение установившегося режима (steady state solution) система с одной обслуживающей единицей (single server system) система с отказами (loss system) система с очередью типа M/M/1 (M/M/1 queueing system) система с очередью типа М/М/с (М/М/с queueing system) система с несколькими обслуживающими единицами (multiple ser¬ ver system) случайная величина (random variable) теория очередей (queueing theory) установившийся режим (steady state) устройство организации очереди (queueing network) Упражнения 15.1 Что такое аналитические модели? Почему они представляют интерес при оценке производительности вычислительных систем? 15.2 Почему модели теории очередей так хорошо применимы к операционным системам? Приведите несколько примеров очередей в операционных системах. 15.3 Реально используемые механизмы работы с очередями могут обеспечить только ограниченные очереди. Выпишите несколько проблем, которые могут воз¬ никнуть, если при работе операционной системы ограниченная очередь заполнится до конца. 15.4 Большая часть элементарной теории очередей опирается на предположение о случайности моментов поступления требований и времен обслуживания. Приве¬ дите несколько примеров в операционных системах, когда это предположение оправдано. Приведите несколько примеров, когда это предположение не оправ¬ дано. 15.5 Приведите пример системы с отказами, используемой при обработке преры¬ ваний, в частности, в системах реального времени, 15.6 Приведите несколько примеров из операционных систем, когда для моде¬ лирования можно применить а) системы с одной обслуживающей единицей, б) системы с несколькими обслуживающими единицами,
Гл. 15 Аналитическое моделирование 119 15.7 Перечислите все рассмотренные выше дисциплины выбора из очереди. Для каждой из них приведите пример ее применимости. 15.8 Почему следует проявлять осторожность при использовании случайных величин для моделирования каких-либо количественных характеристик. 15.9 Приведите несколько примеров ситуаций, когда можно ожидать, что опе¬ рационная система будет работать а) в переходном режиме, б) в установившемся режиме, 15.10 Приведите интуитивные доводы в пользу результата Литтла. Замечание. В упражнениях 15.11—15.16 считайте входящий поток пуассоновским, а закон распределения времени обслуживания — показательным, 15.11 Пусть запросы к диску поступают с интенсивностью Л=10 запросов в се^ кунду. С помощью калькулятора или специально написанной программы запол¬ ните табл. 15.1. Таблица 15.1 1=. количество /г = количество запросов секунд 01 23456789 10 1 2 3 Вероятность поступления ровно k запро¬ 4 сов за t секунд 5 6 7 8 9 10 15.12 Два небольших телекоммуникационных компьютера получают запросы на обслуживание с интенсивностью Х= 15 запросов в секунду для каждого компью¬ тера. Две эти системы должны быть заменены одной, более производительной. Охарактеризуйте входящий поток новой системы. 15.13 В сеть вычислительных машин требования поступают с интенсивностью Л. Они направляются к одной из п различных хост-машин (т. е. машин, способных выполнять вычисления для пользователей сети) случайным образом с вероятно¬ стями Р1? Р2, ..., Рп. а) Какова интенсивность входящего потока для каждой из главных машин? б) В чем преимущества такого вероятностного механизма маршрутизации в сравнении с маршрутизацией (распределением) запросов просто по кру¬ говому алгоритму? в) В чем преимущества вероятностного механизма маршрутизации в сравне¬ нии со способом, когда очередной запрос направляется первой свободней главной машине? г) Какие потенциальные проблемы могут быть вызваны вероятностным меха¬ низмом маршрутизации? Серьезны ли эти проблемы в случае обслужива¬
120 Часть 6 Производительность ния большого числа запросов большим числом главных машин? Объяс¬ ните ваш ответ. 15.14 В вычислительный центр с пакетной обработкой задания поступают с ин¬ тенсивностью 24 задания в час. Будем отсчитывать время от момента открытия центра утром. а) Через сколько времени оператор может ожидать поступления первого задания? б) За какой промежуток времени оператор может ожидать поступления г заданий? 15.15 Вычислительная система с пакетной обработкой выполняет аналогичные задания, включающие трансляцию и счет. Время обслуживания имеет показа¬ тельное распределение со средним значением 15 мин. Какова вероятность того, что данное задание потребует а) 5 мин. или меньше? б) 15 мин. или меньше? в) 1 час или меньше? г) больше 2 часов? 15.16 Одна из новых областей, где ощущается спрос на компьютерные системы,— это так называемые «производственные предприятия будущего». Высокоавтома¬ тизированные заводы, оснащенные роботами и компьютеризованными станками, будут работать 24 ч в сутки при минимальном контроле со стороны человека. Работа станков и роботов будет планироваться и направляться системами управ¬ ления процессами реального времени. Разработчик одного из таких заводов рассматривает вопрос об использова¬ нии четырех малых управляющих систем или же одной централизованной мульти¬ процессорной системы, каждый из процессоров которой эквивалентен по возмож¬ ностям малой системе. В этом упражнении вам потребуется, применив теорию очередей, помочь разработчику выбрать наилучший вариант. Входящий поток — пуассоновский с интенсивностью 960 требований в минуту. Время обслуживания на каждом процессоре считайте показательно распределенным со средним 0.05 се¬ кунды. . а) Исследуйте сначала вариант четырех малых систем. Рассматривая их как М/Л1/1-системы с очередями, охарактеризуйте поведение этих систем со всей полнотой, которая может быть достигнута на основе результатов этой главы. Исходите из предположения, что каждая из систем восприни¬ мает входящий поток с интенсивностью 240 требований в минуту. б) Затем исследуйте случай одной симметричной мультипроцессорной систе¬ мы из двух процессоров, имеющих равные возможности с процессорами малых систем. Проанализируйте эту М/М/2-систему со всей возможной полнотой. в) Сравните результаты проделанных исследований. Какой способ действий вы порекомендуете разработчику? Какая еще информация была бы вам нужна для принятия решения? 15.17 Почему марковские модели столь хорошо применимы к исследованию операционных систем? Приведите несколько примеров процессов в операционных системах, для моделирования которых были бы полезны марковские процессы. 15.18 Конструктор вычислительных машин должен выбрать архитектуру ма¬ шины либо с одним мощным процессором, либо с использованием мультипроцес¬ сорной схемы, но на менее мощных процессорах. Разрабатываемая вычислительная система предназначена для обработки требований, поступивших по закону пуассоновского процесса с интенсивностью X требований в секунду. В однопроцессорной системе требование, поступившее, когда система занята, ожидает обслуживания в очереди с дисциплиной «первый пришедший обслуживается первым». В случае мультипроцессорной архитектуры подразумевается сильный параллелизм; число процессоров значительно больше
Приложение 15.1 Таблица натуральных логарифмов и log,n n log,n n log,n 0.0 ♦ 4.5 1.5041 9.0 2.1972 0.1 7.6974 4.6 1.5261 9.1 2.2083 0.2 8.3906 4.7 1.5476 9.2 2.2192 0.3 8.7960 4.8 1.5686 9.3 2.2300 0.4 9.0837 4.9 1.5892 9.4 2.2407 0.5 9.3069 5.0 1.6094 9.5 2.2513 0.6 9.4892 5.1 1.6292 9.6 2.2618 . 0.7 9.6433 5.2 1.6487 9.7 2.2721 0.8 9.7769 5.3 1.6677 9.8 2.2824 0.9 9.8946 5.4 1.6864 9.9 2.2925 1.0 0.0000 5.5 1.7047 10 2.3026 1.1 0.0953 5.6 1.7228 11 2.3979 1.2 0.1823 5.7 1.7405 12 2.4849 1.3 0.2624 5.8 1.7579 13 2.5649 1.4 0.3365 5.9 1.7750 14 2.6391 1.5 0.4055 6.0 1.7918 15 2.7081 1.6 0.4700 6.1 1.8083 16 2.7726 1.7 0.5306 6.2 1.8245 17 2.8332 1.8 0.5878 6.3 1.8405 18 2.8904 1.9 0.6419 6.4 1.8563 19 2.9444 2.0 0.6931 6.5 1.8718 20 2.9957 2.1 0.7419 6.6 1.8871 25 3.2189 2.2 0.7885 6.7 1.9021 30 3.4012 2.3 0.8329 6.8 1.9169 35 3.5553 2.4 0.8755 6.9 1.9315 40 3.6889 2.5 0.9163 7.0 1.9459 45 3.8067 2.6 0.9555 7.1 1.9601 50 3.9120 2.7 0.9933 7.2 1.9741 55 4,0073 2.8 1.0296 7.3 1.9879 60 4.0943 2.9 1.0647 •7.4 2.0015 65 4.1744 3.0 1.0986s 7.5 2.0149 70 4.2485 3.1 1.1314 7.6 2.0281 75 4.3175 3.2 1.1632 7.7 2.0412 80 4.3820 3.3 1.1939 7.8 2.0541 85 4.4427 3.4 1.2238 7.9 2.0669 90 4.4998 3.5 1.2528 8.0 2.0794 95 4.5539 3.6 1.2809 8.1 2.0919 100 4.6052 3.7 1.3083 8.2 2.1041 3.8 1.3350 8.3 2.1163 3.9 1.3610 8.4 2.1282 4.0 1.3863 8.5 2.1401 4.1 1.4110 8.6 2.1518 4.2 1.4351 8.7 2.1633 4.3 1.4586 8.8 2.1748 4.4 1.4816 8.9 2.1861 Вычесть 10 из loge/z для п<1.0
122 Часть 6. Производительность Приложение 15.2 Таблица экспоненциальной функции X е' е х X ех е. х 0.00 1.0000 1.0000 2.5 12.182 0.0821 0.05 1.0513 0.9512 2.6 ' 13.464 0.0743 0.10 1.1052 0.9048 2.7 14.880 0.0672 0.15 1.1618 0.8607 2.8 16.445 0,0608 0.20 1.2214 0.8187 2.9 18.174 0.0550 0.25 1.2840 0.7788 3.0 20.086 0.0498 0.30 1.3499 0.7408 3.1 22.198 0.0450 0.35 1.4191 0.7047 3.2 24.533 0.0408 0.40 1.4918 0.6703 3.3 27.113 0.0369 0.45 1.5683 0.6376 3.4 29.964 0.0334 0.50 1.6487 0.6065 3.5 33.115 0.0302 0.55 1.7333 0.5769 3.6 36.598 0.0273 0.60 1.8221 0.5488 3.7 40.447 0.0247 0.65 1.9155 0.5220 3.8 44.701 0.0224 0.70 2.0138 0.4966 3.9 49.402 0.0202 0.75 2.1170 0.4724 4.0 54.598 0.0183 0.80 2.2255 0.4493 4.1 60.340 0.0166 0.85 2,3396 0.4274 4.2 66.686 0.0150 0.90 2.4596 0.4066 4.3 73.700 0.0136 0.95 2.5857 0.3867 4.4 81.451 0.0123. 1.0 2.7183 0.3679 4.5 . 90.017 0.0111 1.1 3.0042 0.3329 4.6 99.484 0.0101 1.2 3.3201 0.3012 4.7 109.95 0.0091 1.3 3.6693 0.2725 4.8 121.51 0.0082 1.4 4.0552 0.2466 4.9 134.29 0.0074 1.5 4.4817 0.2231 5 148.41 0.0067 1.6 4.9530 0.2019 6 403.43 0.0025 1.7 5.4739 0.1827 7 1096.6 0.0009 1.8 6.0496 0.1653 8 2981.0 . 0.0003 1.9 6.6859 0.1496 9 8103.1 0.0001 2.0 7.3891 0.1353 10 22026 0.00005 2.1 8.1662 0.1225 2.2 9.0250 0.1108 2.3 9.9742 0.1003 2.4 11.023 0.0907
Гл. 15 Аналитическое моделирование 123 числа процессов, так что ни один из процессов, требующих обслуживания, никогда не ждет. Процессор в однопроцессорной системе имеет показательно распределенное время обслуживания со средней интенсивностью обслуживания р, требований в секунду. Мощность процессоров, используемых в параллельной архитектуре, составляет лишь одну десятую от указанной. а) Определите для однопроцессорной системы и для системы с сильным параллелизмом ожидаемое суммарное число требований в системе (т. е. ждущих в очереди или находящихся в обслуживании) и предельные вероятности состояний (состояния соответствуют числу требований в сис¬ теме). О) Какую архитектуру вы посоветовали бы избрать конструктору на основе результатов вашего анализа? Какая дополнительная информация нужна вам для принятия решения? Зависит ли правильный выбор от интенсив¬ ностей поступления и обслуживания? Если да, то каким образом? Если нет, об1эясните, почему. Литература (Ап78) Allen А. О., Probability, Statistics, and Queueing Theory with Computer Science Applications, New York: Academic Press, 1978. (An80) Allen A. O., «Queueing Models of Computer Systems», Computer, Vol. 13, No. 4, April 1980, pp. 13—24. (Bu71) Buzen J. P., Queueing Network Models of Multiprogramming, Ph. D. The¬ sis, Cambridge, Mass.: Harvard University Press, 1971. (Bu73) Buzen J. P., «Computational Algorithms for Closed Queueing Networks with Exponential Servers», CACM, Vol. 16, No. 9, September 1973, pp. 527—531. (Bu74) Buzen J. P., Goldberg P. S., «Guidelines for the Use of Infinite Source Queueing Models in the Analysis of Computer System Performance», AFIPS Conf. Proc. NCC, 1974, pp. 371—374. (Bu76) Buzen J. P., «Modeling Computer System Performance», CMGVII Conf. Proc. Atlanta, November 1976. (Bu78) Buzen J. P., «А Queueing Network Model of MVS», ACM Computing Surveys, Vol. 10, No. 3, September 1978, pp. 319—331. (Gi78) Giffin W. C., Queueing, Columbus, Ohio: Grid, Inc., 1978. (K176) Kleinrock L., Queueing Systems, Volume 2: Computer Applications, New York: Wiley, 1976. (Ko78) Kobayashi H., Modeling and Analysis'. An Introduction to System Perform¬ ance Evaluation Methodology, Reading, Mass.: Addison-Wesley, 1978. (Ku79) Kuehn P. J., «Approximate Analysis of General Queueing Networks, by Decomposition», IEEE Trans. Comm., Vol. COM-27, No. 1, January 1979, 113—126. (Lu71) Lucas H. C., Jr., «Performance Evaluation and Monitoring», ACM Com¬ puting Surveys, Vol. 3, No. 3, September 1971, pp. 79—91. (Mu75) Muntz R., «Analytic Modeling of Interactive Systems», Proc. IEEE. Vol. 63, No. 6, June 1975, pp. 946—953. (Pr76) Price T. G., Jr., «А Comparison of Queueing Network Models and Measur¬ ements of a Multiprogrammed Computer System», ACM Perf. Eval. Rev., Vol. 5, No. 4, Fall 1976, pp. 39—62. (Re76) Reiser M., «Interactive Modeling of Computer Systems», IBM Systems Journal, Vol. 15, No. 4, 1976, pp. 309—327. (Sa81) Sauer C.H., Chandy К. M., Computer Systems Performance Modeling, Englewood Cliffs, N. J.: Prentice-Hall, 1981. (Sc79) Schardt R. M., «An MVS Tuning Perspective», IBM Washington Systems Center Technical Bulletin, GG22-9023, March 1979. (Sp79) Spragins J., «Approximate Techniques for Modeling the Performance of Complex Systems», Computer Languages y Vol, 4, No, 2, 1979, pp, 99—129,
ЧАСТЬ 7 Компьютерные сети и их безопасность Глава 16 Операционные системы в компьютерных сетях Если наличие электричества можно сделать види¬ мым в любой точке цепи, я не вижу причин, почему было бы нельзя при помощи электричества мгновенно переда¬ вать сведения. Самуэл Ф. Б. Морзе М-р Уотсон, идите сюда, Вы мне нужны. Александр Грэхем Белл Текущая задача — это получить доступ к гигаби¬ там через «хилободы»1). Дж. К. Р. Ликлайдер 16.1 Введение 16.2 Элементы компьютерных сетей 16.3 Типы сетей 16.3.1 Сети с разделением ресурсов 16.3.2 Сети распределенных вычислений 16.3.3 Сети с удаленным доступом 16.4 Коммутация пакетов 16.4.1 Семиуровневая архитектура ISO OS1 16.4.2 Дейтаграммы и виртуальные цепи 16.4.3 Х.25 16.5 Сетевые операционные системы (NOS) 16.6 Примитивы NOS 16.6.1 Примитивы взаимодействия с пользователями 16.6.2 Примитивы миграции заданий 16.6.3 Примитивы миграции данных 16.6.4 Управляющие примитивы 16.7 Топология сетей 16.7.1 Звезда 16.7.2 Кольцо 16.7.3 Произвольный граф 16.8 Сетевые операционные системы и распределенные операцион¬ ные системы 16.9 Безопасность, секретность, шифрование и идентификация 16.10 Локальные сети 16.10.1 CSMA/CD — множественный доступ с контролем не¬ сущей и обнаружением конфликтов 16.10.2 Передача права 16.10.3 Метод окон 16.11 Пример для изучения: сеть Ethernet х) В оригинале стоит слово punybaud, где puny, если справиться по словарю, тщедушный, маленький, слабый, незначительный.— Прим, перев,
Гл. 16 Операционные системы в компьютерных сетях 125 16.12 Пример для изучения: сеть DECnet 16.12.1 Сете&ая архитектура DNA 16.12.2 Возможности сети DECnet-VAX 16.12.3 Работа с файлами 16.12.4 Взаимодействие процессов: пример на Фортране 16.12.5 Запрашиваемые и незапрашиваемые сообщения 16.1 Введение Начавшись с чисто академических исследовательских проектов, компьютерные сети быстро стали эффективным операционным инструментом. Создание сетей началось в 1968 г. с сети Arpanet, прародительницы современных компьютерных сетей (Wa79). Сегод¬ ня сеть Arpanet связывает более 100 компьютерных систем; тысячи пользователей находятся в зависимости от ее надежной работы. Несколько коммерческих сетей предлагают свои услуги для об¬ щественного пользования. К ним относится сеть Telenet (Du77) в США и сеть Datapac (С176) в Канаде. Эти сети предоставляют сво¬ им пользователям доступ к разнообразным вычислительным ресур¬ сам, как аппаратным, так и программным, рассредоточенным по множеству вычислительных систем, соединенных линиями связи. 16.2 Элементы компьютерных сетей В типичной компьютерной сети (рис. 16.1) друг с другом связы¬ вается большое число компьютеров, называемых хост-компьютера¬ ми (ведущими, главными компьютерами), или хост-машинами (ве¬ дущими, главными машинами); каждая из которых в состоянии пре¬ доставить услуги пользователям сети. Сеть объединяет коммуника¬ ционная подсистема, состоящая из коммуникационных процессоров и множества различных каналов связи — телефонных, спутниковых, кабельных, микроволновых и т. п. Коммуникационные процессоры — это компьютерные системы, обладающие тремя главными функциями. • Они осуществляют связь между хост-машинами. 0 Они снимают с хост-машин заботы по связям. 9 Они определяют интерфейс, при помощи которого хост-машины получают доступ к сетевьгм средствам связи. В каждом хост-компьютере находится своя операционная систе¬ ма, поддерживающая прикладные процессы. Данная глава посвя¬ щена операционным системам, которые управляют сетями. Эти си¬ стемы выполняют множество функций, в том числе: • доступ е терминалов к удаленным хост-машинам, 9 передача файлов между хост-машинами, @ связь между пользователями (например, электронная почта).
126 Часть 7 Компьютерные сети и их безопасность Рис. 16.1 Компьютерная сеть. Исходная цель компьютерных сетей — это разделение ресурсов, однако масса факторов препятствует тому, чтобы разделение достигло своего максимума. © Чтобы воспользоваться сетью, пользователь сегодня в большин¬ стве случаев должен быть знаком не только с механизмами до¬ ступа к сети, но и с конкретными операционными системами, реализованными на хост-компьютерах. @ В одной сети могут присутствовать компьютеры разных изгото¬ вителей. Их операционные системы могут разительно отличаться друг от друга.
Гл. 16 Операционные системы в компьютерных сетях 127 ® Учет используемых ресурсов зачастую ведет хост-компьютер. Лицо, желающее воспользоваться ресурсами конкретного хост- компьютера, должно сначала завести счет в той организации, которой принадлежит хост-компьютер. Таким образом, одному пользователю для эффективной работы с сетью приходится заво¬ дить много счетов в различных организациях. ® Довольно трудно получить документацию о различных хост- машинах и их ресурсах, и она достаточно дорога. Все эти проблемы могла бы разрешать интегрированная опера¬ ционная система, в которой хост-компьютеры были бы «прозрачны» для пользователя и которая находилась бы в ведении одной органи¬ зации. Пользователи сети при этом становились бы абонентами этой организации. 16.3 Типы сетей Области, в которых используются сети, весьма разнообразны. Характер приложений влияет и на то, как сеть проектируется, и на то, как она создается и эксплуатируется. Общепринято делить сети на три типа: (1) сети с разделением ресурсов, (общего использова¬ ния) (2) сети распределенных вычислений и (3) сети с удаленным до¬ ступом. 16.3.1 Сети с разделением ресурсов В сетях с разделением ресурсов (рис. 16.2) ресурсы одних хост- компьютеров становятся доступны другим хост-компьютерам. В ка¬ честве ресурсов могут выступать реальные устройства типа прин¬ теров и устройств ввода перфокарт или же виртуальные устройства типа дисковых файлов. Благодаря сетевым механизмам возникает иллюзия того, что удаленные устройства доступны так же, как ло¬ кальные. В сетях разделения ресурсов обычно выполняются сле¬ дующие операции: ® доступ к удаленным файлам, ® пересылка файлов между хост-компьютерами, О доступ к элементам данных в распределенной по многим хост- компьютерам базе данных, @ удаленная печать. В сетях разделения ресурсов взаимодействие обычно происходит между процессом в одном хост-компьютере и процессом-менедже¬ ром ресурсов в другом хост-компьютере. Пересылка файлов свя¬ зана с передачей больших потоков данных. При обращениях же к распределенной базе данных информация, как правило, передается короткими порциями.
128 Часть 7 Компьютерные сети и их безопасность Рис. 16.2 Сеть разделения ресурсов. 16.3.2 Сети распределенных вычислений Вообще говоря, средства мультизадачное™ даже на одной изо¬ лированной вычислительной установке позволяют выполнять одну общую работу параллельно с помощью нескольких взаимодействую¬ щих процессов в том случае, если она допускает разбиение на под¬ работы. В сетях распределенных вычислений (рис. 16.3) идея муль¬ тизадачное™ получает дальнейшее развитие, причем отдельные за¬ дачи одновременно выполняются на нескольких хост-компьютерах сети. Примерами таких сетей являются системы управления про¬ цессами в реальном времени, распределенные базы данных и но которые системы со встроенным структурным параллелизмом. Обычно такие сети компонуются из ресурсов хост-машин, рас¬ положенных вблизи мест, где находятся предполагаемые пользо¬ ватели этих ресурсов. Прикладные программы и базы данных при этом распределены по сети. 16.3.3 Сети с удаленным доступом Основная цель сетей удаленного доступа (рис. 16.4) — это пре¬ доставление средств, с помощью которых можно было бы экономиче¬ ски эффективно воспользоваться удаленными вычислительными ре¬ сурсами. Подобные сети применяются, как правило, для реализа¬ ции удаленной пакетной обработки, при которой описания заданий и входные данные поступают в хост-компьютеры из удаленных пунк-
Гл. 16 Операционные системы в компьютерных сетях 129 Рис. 16.4 Сеть удаленного доступа. (Заимствовано из «VAX Software Handbook» р. 264. Copyright 1981, Digital Equipment Corporation, iMaynard, Мазь.) 5 № 58!
130 Часть 7 Компьютерные сети и их безопасность тов, а результаты обработки возвращаются по сети обратно в эти удаленные пункты. Зачастую базы данных и прикладные программы в таких сетях сосредоточиваются в одном-двух больших хост-ком¬ пьютерах. 16.4 Коммутация пакетов В конце 60-х годов фактически все передачи данных шли по се¬ тям с коммутацией каналов аналогично тому, как это делается в си¬ стемах телефонной связи. В таких сетях полоса частот (пропускная способность) выделяется на все время передачи — и если нет пере¬ дачи, то пропускная способность не используется. При коммутации пакетов пропускная способность выделяется динамически по мере необходимости нескольким пользователям, ко¬ торые разделяют одну и ту же линию. Фактически все новые сети передачи данных, создаваемые сейчас,— это сети пакетной комму¬ тации. В таких сетях сообщения разбиваются на пакеты, или блоки символов фиксированной длины. Собственно передаваемые данные окружаются контрольной информацией, идентифицирующей ин¬ формацией о маршруте, информацией об оплате и т. п. Ключевой момент в этой схеме заключается в том, что компьютеры вдоль всего пути следования пакета столь быстры и могут выполнить так много работы по обнаружению и исправлению ошибок, что можно обеспе¬ чить безошибочную передачу даже по неабсолютно надежным кана¬ лам. Первые опубликованные материалы по тому, что мы сегодня называем коммутацией пакетов, относятся к 1964 г. и были подго¬ товлены сотрудником фирмы Rand Corporation Полом Бэраном (Paul Baran, On Distributed Communications, Rand Corporation^ 1964). Исследование было предпринято по заказу ВВС США и было рассчитано на создание средств связи, способных сохранить работо¬ способность в случае военного нападения. Термин пакет был предложен Дональдом Дейвисом в 1966 г. в документе, где описывались 128-байтовые блоки данных, которые транспортируются через систему передачи с промежуточным запо¬ минанием. В 1967 г. Управление перспективных исследовательских про¬ грамм (Advanced Research Project Agency, ARPA) министерства обороны США запланировало создание сети Arpanet, намереваясь соединить вычислительные средства ведущих университетов и науч¬ но-исследовательских организаций США. Сеть рассчитывалась на пакетную коммутацию по выделенным линиям связи со скоростью свыше 50 Кбит/с. Функции коммутаторов пакетов должны были вы¬ полнять миникомпьютеры. Реализованная Arpanet представляет собой полностью распре¬ деленную систему. С помощью алгоритма динамической маршрути¬ зации в ней непрерывно проверяется нагрузка на каждый узел сети
Гл. 16 Операционные системы в компьютерных сетях 131 и определяется наилучший путь передачи. Были скептики, которые утверждали, что некоторые пакеты в такой сети могут вечно ходить по кругу, но вскоре удалось показать необоснованность таких опасе¬ ний. В 1975 г. компания В. В. N. (Bolt, Beranek and Newman, Inc.) предложила пользователям сеть Telenet — первую сеть передачи данных с пакетной коммутацией, созданную для общественного пользования. К 1978 г. сеть объединяла 180 хост-компьютеров в США и была связана с 14 другими странами. 16.4.1 Семиуровневая архитектура Подход к архитектуре сети как к многоуровневой слоистой систе¬ ме рассматривается в Международной организации по стандартиза¬ ции (ISO). В проекте OSI (Open System Interconnection) (Z180) описа¬ ны семь различных уровней протокола. 1. Прикладной уровень — Это самый верхний уровень, на котором предоставляются услуги пользователю. На этом уровне работают с данными в том виде, как они поступают от пользовательского процесса и доставляются в пользовательский процесс. 2. Уровень представлений — На этом уровне решаются проблемы различий в форматах компьютеров, терминалов, баз данных и языков, употребляемых в сети. 3. Уровень сеанса — На этом уровне предоставляются средства, с помощью которых взаимодействующие стороны организуют и синхронизируют свой диалог и управляют обменом данными. 4. Транспортный уровень — На этом уровне обеспечивается сквоз¬ ная передача сообщений между конечными пользователями. Поль¬ зователю нет необходимости касаться методов, какими обеспе¬ чивается надежность и экономическая эффективность передачи данных. 5. Сетевой уровень — Этот уровень управляет коммутацией п марш¬ рутизацией сообщений между станциями сети. 6. Уровень звена связи — Этот уровень управляет работой с паке¬ тами данных. На нем производится обработка адресов исходя¬ щих и входящих пакетов» На этом уровне обнаруживаются и, если можно, исправляются ошибки, которые происходят на физиче¬ ском уровне. 7. Физический уровень — Этот уровень имеет дело с механическими и электрическими элементами реальной физической линии связи при передаче по ней последовательности битов. Помимо этих семи уровней модель OSI содержит набор функций, называемых сетевым менеджментом (сетевым управлением) (Net¬ work /Management), которые проходят сквозь все уровни. Эти функ¬ ции служат для управления и обслуживания сети. Обнаружение и нейтрализация ошибок являются частью сетевого менеджмента. 5*
132 Часть 7 Компьютерные сети и их безопасность Миогоуровневость, слоистость архитектуры, типична для таких широкоизвестных схем, как SNA (Systems Network Architecture) (Cy79) фирмы IBM и DNA (Digital Network Architecture) фирмы DEC (описываемой в конце этой главы). В структуре DNA присутст¬ вует лишь шесть уровней. Читателю будет интересно сравнить опи¬ санные в этой главе схемы OSI и DNA. 16.4.2 Дейтаграммы и виртуальные цепи Пакеты обычно передаются при помощи дейтаграмм или вир¬ туальных цепей. В модели с виртуальными цепями сеть предостав¬ ляет совершенный канал, по которому пакеты безошибочно и в пра¬ вильном порядке достигают точки назначения. Этот способ передачи в значительной степени аналогичен принятому в телефонных сетях, где у абонента возникает иллюзия, что ему предоставлена выделен¬ ная двухточечная линия, несмотря на то что его вызов прошел через множество коммутаторов. В дейтаграммной модели пакеты транспортируются как незави¬ симые единицы, каждая из которых содержит адрес пункта назна¬ чения. Сеть не контролирует ошибок — это возлагается на хост- компьютеры. Сообщение, состоящее из нескольких пакетов, отправ¬ ленных в некотором порядке, может прибыть в пункт назначения в другом порядке — собрать правильное сообщение должен хост- компьютер. Этот способ передачи ближе к работе почты. Несколько писем, посланных одним человеком другому, могут прибыть в про¬ извольном порядке. Если письмо пропадает или повреждается, поч¬ та не посылает его новую копию. Каждый из описанных способов передачи имеет достоинства и недостатки. Преимущество метода виртуальных цепей — в большем объеме функций по обеспечению правильности передачи, в умень¬ шении нагрузки на хост-компьютеры. Сообщения поступают в пра¬ вильном порядке. Если поступает сообщение, нарушающее порядок, оно задерживается до прибытия пакетов, которые были отправлены раньше. Но существуют ситуации, когда порядок прибытия не столь важен, как быстрая доставка. Предположим, например, что пере¬ дается большое число записей, каждая со своим уникальным клю¬ чом. При дейтаграммном способе передача, скорее всего, займет мень¬ ше времени, поскольку нарушившие порядок записи не будут задер¬ живаться. Автоматическое исправление ошибок иногда тоже нежелательно. Например, при передаче речи в реальном времени может оказаться, что лучше передавать искаженный пакет как есть, чем вносить за¬ держку, повторяя передачу пакета — слушатель, вероятно, поймет, о чем идет речь, и, возможно, искажения его будут раздражать мень¬ ше, чем паузы в речи.
Гл. 16 Операционные системы в компьютерных сетях 133 16.4.3 Х.25 В 1975 г. были начаты работы по созданию международного стан¬ дарта на интерфейс между пользователем и многочисленными сетя¬ ми, разрабатывавшимися в то время по всему миру. Результатом этих работ стала Рекомендация Х.25 CCITT (Международного кон¬ сультативного комитета по телеграфной и телефонной связи), при¬ нятая в 1976 г. (Wa79). С 1976 г. вокруг Х.25 выросла целая группа стандартов. Среди них Х.29, Х.75 и много других. На сегодня стан¬ дарт на пакетную коммутацию (часто именуемый как Х.25) включа¬ ет их все. Принятие этих стандартов открыло возможности для создания сетей общественного пользования для передачи данных (PDN — pub¬ lic data network). Такие сети подобны телефонным сетям; они обеспе¬ чивают связь между пользователями, которые не располагают собст¬ венной сетью, но хотят взаимодействовать друг с другом. Протокол Х.25 определяет, как устройства подключаются к сети общественного пользования коммутацией пакетов и как они взаимо¬ действуют через нее. За годы, прошедшие с момента принятия Х.25 в МККТТ (CCITT), этот стандарт стал почти всеобщим. В нем описа¬ ны форматы пакетов и управляющие процедуры в терминах вирту¬ альных цепей. Для того чтобы установить соединение (вызов), посы¬ лаются управляющие пакеты; пакеты с данными посылаются после того, как соединение установлено. Если сеть приняла пакет, на ней лежит ответственность доставить его без искажений в пункт назна¬ чения с сохранением очередности по отношению к другим пакетам, посылаемым по этой же виртуальной цепи. Как и при разработке любых стандартов, были большие дискус¬ сии о самом подходе, о том, должны ли быть положены в основу Х.25 именно виртуальные цепи. Многие пользователи для своих приложений отдавали предпочтение дейтаграммному подходу; они хотели, чтобы просто передавались битовые комбинации, непосред¬ ственно задаваемые пользователями. К настоящему времени прове¬ дены серьезные исследования для того, чтобы дополнить Х.25 сред¬ ствами использования дейтаграмм х). 16.5 Сетевые операционные системы (NOS) Форсдик, Шантц и Томас (Ео78) предлагают следующее опреде¬ ление: Сетевая операционная система (NOS — network operating sys¬ tem) — это совокупность программного обеспечения и прото¬ колов, которые дают возможность использовать множество авто¬ номных компьютеров, связанных компьютерной сетью, удобным и экономически эффективным способом. х) В следующих версиях Х.25 дейтаграммы то появлялись, то исчезали,— Прим, pedt
134 Часть 7 Компьютерные сети и их безопасность Сетевые операционные системы выполняют много различных функций, в том числе О обеспечивают доступ к разнообразным ресурсам сетевых хост- компьютеров; * следят за тем, чтобы только пользователи с соответствующими правами действительно могли получить доступ к тем или иным конкретным ресурсам; ® обеспечивают, чтобы сама сеть и специфика хост-компьютеров были по возможности прозрачны для пользователя; Э обеспечивают, чтобы использование удаленных ресурсов выгля¬ дело так же, как использование локальных; @ унифицируют по всей сети процедуру расчетов за оказываемые услуги; ® позволяют непосредственно за терминалом получить самую све¬ жую, с точностью до минут, документацию по сети; © позволяют добиться более надежной работы, чем может обеспе¬ чить одиночный компьютер, особенно для группы эквивалент¬ ных хост-компьютеров. 16.6 Примитивы NOS Сети открывают для пользователей доступ к разнообразным ре¬ сурсам. Программы и данные — это, несомненно, важные ресурсы, с которыми имеют дело сети. Движение программ и данных между хост-компьютерами называется миграцией. Миграция поддерживает¬ ся (Ki75) примитивами взаимодействия с пользователями, прими¬ тивами миграции заданий, примитивами миграции данных и уп¬ равляющими примитивами. 16.6.1 Примитивы взаимодействия с пользователями Примитивы этого типа обеспечивают взаимодействия пользова¬ тель — пользователь, пользователь —система, система — пользова¬ тель, а также позволяют опрашивать состояния. Межпользователь¬ ские взаимодействия очень популярны и стали одной из самых широко применяемых возможностей в сетях. Пользователи могут посылать друг другу электронную почту, могут обмениваться сооб¬ щениями в непосредственном диалоге, подобно беседе по телефону, и даже могут проводить интерактивные конференции при довольно большом числе участников. Опрос состояния крайне полезен для определения «состояния здоровья» сети, доступности конкретных систем или временной недо¬ груженное™ хост-компьютеров. 16.6.2 Примитивы миграции заданий Примитивы миграции заданий применяются для управления мно¬ гошаговыми заданиями, когда допустимо отдельные шаги выпол¬ нять на различных хост-компьютерах и добиваться более сбаланси¬
Гл. 16 Операционные системы в компьютерных сетях 135 рованной загрузки, перемещая задания на недогруженные или луч¬ ше соответствующие заданию хост-компьютеры. Функции миграции заданий удобнее всего выполнять централизованно управляющему механизму сети. 16.6.3 Примитивы миграции данных Примитивы миграции данных служат для дистанционного до¬ ступа к информации. Если речь идет о разнородных хост-машинах, то возникает проблема преобразования данных — типы данных должны сохраняться при переходе через границы между хост-ком¬ пьютерами, и может потребоваться перекодировка символов, по¬ скольку коды символов в разных хост-компьютерах могут оказать¬ ся разными. Различают два подхода к миграции данных. • Передачу запроса в удаленный хост-компьютер с последующей обратной передачей запрошенного элемента данных в местный хост-компьютер. 9 Пересылку файла, содержащего нужный элемент данных, цели¬ ком из удаленного хост-компьютера в местный с последующим обращением к нужному элементу локальными средствами. Первый подход предпочтительнее при относительно редких за< просах, второй — когда ожидается высокая плотность запросов к одному файлу. Одна из опасностей второго подхода — это размно¬ жение копий одного и того же файла. При модификации файла возни¬ кают определенные проблемы, поскольку нужно гарантировать, что подновлены все копии. Существует два общеизвестных подхода к передаче данных меж¬ ду хост-компьютерами, а именно прямая передача и передача с пре¬ образованием. Прямая передача—это передача «сырых» данных между системами. Передача с преобразованием включает реструк¬ туризацию данных, с тем чтобы они поступили в новый хост-ком¬ пьютер в форме, более удобной для работы с ними на прикладном уровне или для хранения их в новом хост-компьютере. 16.6.4 Управляющие примитивы Управляющие примитивы служат для управления подсетями, для управления распределением коммуникационных ресурсов и для управления взаимодействием между сетью и хост-компьютерами. 16.7 Топология сетей Вид физической структуры устройств и линий связи в сети на¬ зывают топологией сети. Реализованы сети многих топологий (рис. 16.5), каждая со своими достоинствами и недостатками. Две
136 Часть. 7 Компьютерные сети и их безопасность Произвольный граф Рис. 16.5 Общеизвестные топологии сетей. топологии получили наибольшее распространение — это звезда и кольцо. 16.7.1 Звезда В сетях типа звезды центральный компьютер связан с множест¬ вом терминалов и других компьютеров двухточечными линиями. Все терминалы и компьютеры непосредственно связаны только с цент¬ ральным компьютером и не имеют связи друг с другом. Поэтому взаимодействия между ними должны проходить через центральный компьютер, выполняющий функции сетевого контроллера. При по¬ ломке центрального компьютера из строя выходит вся сеть.
Гл. 16 Операционные системы в компьютерных сетях 137 Главное достоинство топологии типа звезды — это простота. Управление централизовано. Функционированием всей сети управ¬ ляет один центральный компьютер. Поскольку в сети всего один сетевой контроллер, не возникает проблем с маршрутизацией и оче¬ редностью поступления сообщений. 16.7.2 Кольцо В сети с кольцевой топологией нет центрального компьютера, управляющего всей сетью. Компьютеры связаны друг с другом по¬ следовательно и образуют кольцо. Компьютеры.в кольце могут вза¬ имодействовать каждый с каждым. Сообщение от одного компьютер/а другому должно содержать адрес получателя. Поскольку все сооб¬ щения доступны всем компьютерам, возникают определенные проб¬ лемы с обеспечением безопасности. 16.7.3 Произвольный граф В сети, имеющей топологию произвольного графа, каждый ком¬ пьютер (или коммуникационный процессор) соединен по крайней мере с одним другим процессором сети. Функции управления и марш¬ рутизации могут быть централизованными или распределенными. Пакетная коммутация, как правило, применяется в сетях именно этой топологии. 16.8 Сетевые операционные системы и распределенные операционные системы Операционные системы для сетей обычно делят (Та81) на сете¬ вые операционные системы и распределенные операционные системы. В них заложены совершенно различные подходы. В случае сетевых операционных систем на каждом хост-компь¬ ютере работает своя несетевая операционная система. Сетевыми функциями управляют пользовательские программы на хост-компь¬ ютерах. Такой подход напрашивается сам собой, и его достоинство в том, что на машинах используется уже имеющийся задел програм¬ много обеспечения. Однако у него есть недостаток — отсутствие однородности. В случае распределенной операционной системы от индивидуаль¬ ных операционных систем отказываются и создают одну операцион¬ ную систему для сети в целом. Этот подход требует значительно больших усилий, но в итоге позволяет получить концептуальное единство, т. е. то свойство, которое упрощает понимание сети, ее обслуживание, модификацию и т. д. Для сетей с сильно отличающимися архитектурно и разбросан¬ ными географически большими машинами обычно принимается под¬ ход сетевых операционных систем. Локальные сети из мини- и ми к-
138 Часть 7 Компьютерные сети и их безопасность рокомпьютеров тяготеют к распределенным операционным систе¬ мам. Сетевую операционную систему для группы разнородных хост- машин можно реализовать различными путями. Общеизвестный ме¬ тод — это связать с каждым пользователем процесс-агент, который предоставит ему общий интерфейс со всеми хост-машинами сети. Процесс-агент можно спроектировать так, чтобы сеть была проз¬ рачной для пользователя или же видимой. Когда сеть видима, поль¬ зователь выдает команды типа ВЫПОЛНИ КОМАНДУ А НА ХОСТ-МАШИНЕ В Если же сеть прозрачна, пользователь выдает команды типа ВЫПОЛНИ КОМАНДУ А и агент под свою ответственность выбирает хост-машину, на кото¬ рой эта команда выполняется. В каждом агенте есть база данных с информацией о хост-компью¬ терах сети и программах и данных, принадлежащих пользователю. В информацию в базе данных включается учетная информация, указывающая номера расчетных счетов, на которые должна посту¬ пать оплата за каждый хост-компьютер, а также выделенные поль¬ зователю лимиты. База данных агента организована либо так, чтобы пользователь мог обратиться к файлам конкретного хост-компьютера непосредственно по правилам именования файлов, принятым на этом компьютере, либо так, чтобы в базе содержались имена виртуаль¬ ных файлов и соответствующие им имена реальных файлов. В одной из простых существующих сетей агенты действуют как посредники между пользователвхМ и хост-машинами. Агенты при¬ водят команды пользователей к формату, принятому на соответст¬ вующей хост-машине, и приводят выходные результаты хост-маши¬ ны к формату, нужному пользователю. Агент посылает хост-маши¬ не все команды, необходимые для доступа к нужным файлам. 16.9 Безопасность, секретность, шифрование и идентификация Как учреждения, так и частные лица возлагают на компьютеры все больше и больше функций. Важная корреспонденция постоянно передается между компьютерными системами по незащищенным линиям связи. Секретная информация хранится в машинах и переда¬ ется между ними. Функционирование электронных банков связано с обращениями по линиям связи к информации о наших финансах. Компьютеризация юридической и правовой сфер связана с обраще¬ ниями к информации о преступниках. Врачи компьютеризуют наши истории болезни. Короче, мы достигли момента, когда дальнейшая передача информации без защиты от несанкционированного досту¬ па продолжаться не может.
Гл. 16 Операционные системы в компьютерных сетях 139 Традиционным средством защиты при открытых каналах явля¬ ется шифрование. В этой области в настоящее время прорабатывает¬ ся несколько проблем политического характера. Принятый сейчас «официальный» стандарт на шифрование —• это стандарт DES (Data Encryption Standard). Выпускаются инте¬ гральные схемы, осуществляющие зашифровывание и расшифро¬ вывание в соответствии с этим стандартом по секретным ключам, выбираемым на прикладном уровне. Этот стандарт настойчиво «про¬ талкивается» правительством Соединенных Штатов. Реальная проблема, связанная со стандартом DES,— это про¬ блема передачи ключей. Защищенность зашифрованной информации не может быть выше защищенности ключа. Эта проблема привела к разработке алгоритмов шифрования с открытыми ключами. В одной из схем с открытым ключом — коде RSA Массачусет¬ ского технологического института — применяются два ключа. По одному из них данные зашифровываются, по другому — расшиф¬ ровываются. Алгоритм симметричный; любой из ключей позволяет расшифровать данные, если они были зашифрованы по другому клю¬ чу. Реальное достоинство кода RSA в том, что по одному ключу вычислить другой можно лишь за миллионы лет даже на очень мощ¬ ном процессоре. Двухключевая схема RSA обладает несколькими важными достоинствами. © Некое лицо может один ключ сделать общеизвестным (открытым), и тогда кто угодно может с его помощью зашифровать сообще¬ ние и послать его этому лицу. Только само это лицо будет в со¬ стоянии расшифровать сообщение, поскольку оно знает второй ключ, естественно, хранящийся в секрете. © Схема позволяет идентифицировать сообщения в следующем смысле. Лицо может зашифровать сообщение по секретному ключу. Любой обладатель открытого ключа, расшифровавший сообщение, будет иметь гарантию, что оно поступило именно от определенного лица. Код RSA предлагает до неправдоподобия мощное решение проб¬ лемы шифрования. Однако он требует огромного объема вычисле¬ ний — примерно в 1000 раз большего, чем стандарт DES. Шифрование сообщений — это только часть общей проблемы обе¬ спечения безопасности. Необходимо также хранить в тайне, кому это сообщение предназначается. В сетях пакетной коммутации эта информация входит в конверт, обрамляющий сообщение, и анали¬ зируется сетевым системным программным обеспечением. Таким об¬ разом, мы видим, что необходимость шифрования возникает на мно¬ гих уровнях. Другим полезным приемом могла бы стать маркировка всех со¬ общений «штемпелями» со временем отправления и временем при¬ бытия. Неплохо было бы подтверждать отправление и доставку со¬ общения, создав тем самым заказную электронную почту.
140 Часть 7 Компьютерные сети и их безопасность В системах электронной почты обычно возникает вопрос: хра¬ нить или не хранить какое-то время Есе сообщения для гарантии в архивной памяти. Сильные аргументы против хранения заключены в аналогии, которую можно провести с почтовой службой Соединен¬ ных Штатов, хранящей машинную копию каждого доставляемого ею письма! Эта.информация может быть защищена (например, за¬ шифрована и защищена физически), но сам факт ее существования для некоторых людей будет стимулом попытаться ее заполучить, возможно, нелегальными путями. 16.10 Локальные сети Локальными сетями называют сети, рассчитанные на географи¬ чески ограниченные области. Локальные сети часто создаются в пре¬ делах одного или нескольких соседних зданий. Иногда этот же тер¬ мин относят к сетям, где здания удалены на десятки миль друг от друга, но это уже другое употребление термина «локальная сеть». Член группы разработки конторской технологии (Office Techno¬ logy Research Group) Джон Коннелл, которого цитируют в Office Products News за сентябрь 1981 г., так говорит о локальных сетях. В прошлом при создании технологии конторской работы пре¬ обладала тенденция переноса этой работы из обычной конторы в технологический центр типа центра обработки данных или цент¬ ра обработки текстов. Поступая так, компании неминуемо отда¬ ляли нетехнический персонал от технологических достижений, способных увеличить производительность его труда. Благодаря сетям современные технологические возможности оказываются буквально на «кончиках пальцев» каждого менеджера. Целесообразность создания локальных сетей следует из того факта, что около 90 % всей деловой информации распространяется в пределах полумили. Перечислим некоторые преимущества локальных сетей. 9 более высокие скорости передачи, чем в телефонных сетях; ® меньшая вероятность ошибок, чем в телефонных сетях; © большая гибкость управления (поскольку локальная сеть, как правило, принадлежит самой компании); ® независимость от ограничений коммунальных телефонных систем, которые в силу низких пропускных способностей просто не могут работать со скоростями, необходимыми для передачи видеоин¬ формации и других высокоскоростных взаимодействий. Локальные сети (LANs — Local Area Networks) часто описывают¬ ся в терминах топологии, среды передачи (или носителя) и процедур доступа к среде. Две чаще всего встречающиеся топологии — это широковещательная и последовательная. При широковещательной топологии все подключенные к сети устройства получают все сооб¬ щения примерно одновременно. Примерами широковещательной
Гл. 16 Операционные системы в компьютерных сетях (41 топологии являются звездообразные сети и сети с общей шиной. При последовательной топологии сообщения про,ходят от одного устрой¬ ства к другому. Примером последовательной топологии является кольцо. Наибольшее распространение в локальных сетях получили сле¬ дующие четыре среды передачи: витая пара, коаксиальный кабель с передачей на частоте исходного сигнала (одноканальная работа), коаксиальный широкополосный кабель (многоканальная работа) и волоконнооптический кабель. Витая пара ограничивает скорость передачи; она лежит в основе большинства распространенных ло¬ кальных сетей с местными телефонными узлами. Два вида среды передачи с коаксиальным кабелем отличаются только способами использования среды. В одном случае по кабелю в каждый момент времени может передаваться без интерференции только один сиг¬ нал, а в другом — допускается несколько одновременных сигна¬ лов. Две наиболее распространенные процедуры доступа к среде пе¬ редачи — это множественный (коллективный) доступ с контролем несущей и обнаружением конфликтов (CSMA/CD — Carrier Sense* Multiple Access with Collision Detection) и передача права (Token Passing) x) В сетях типа CSMA/CD устройство, желающее передать данные, «слушает», не занята ли среда передачей других сообщений (контроль несущей). Если оно не слышит ничего, то может начать передачу. В процессе передачи устройство продолжает слушать сре¬ ду с тем, чтобы обнаружить, если какое-то другое устройство также начнет передачу (обнаружение конфликта). Если такое происходит, устройство обрывает передачу, выдерживает некоторую паузу и за¬ тем пытается повторить передачу своего сообщения. В сетях с пере¬ дачей права только одному устройству в каждый конкретный момент разрешается вести передачу. Управляет этим специальный логиче¬ ский признак (право), передаваемый от устройства к устройству. Заметим, что, хотя среда передачи, топология и процедура до¬ ступа являются независимыми параметрами, среди всего множества их комбинаций одни комбинации встречаются значительно чаще дру¬ гих. Наиболее распространенными оказались следующие комбина¬ ции: широковещательная топология (шина) плюс передача на часто¬ те исходного сигнала плюс CSMA/CD и последовательная топология (кольцо) передача на частоте исходного сигнала плюс передача права. В локальных сетях шинной архитектуры можно подключать узлы к коаксиальному кабелю при помощи кабельных ответвителей. Устанавливая повторители на концах кабеля, можно увеличить протяженность сети, а в промежуточных точках — разветвить ее. Шинная архитектура сети дает возможность подключать узлы к кабельным ответвителям, не останавливая работы. *) Иногда token passing переводят как маркерный метод доступа,— Прим. pedt
142 Часть 7 Компьютерные сети и их безопасность 16.10.1 CSMA/CD — множественный доступ с контролем несущей и обнаружением конфликтов Узлы в сетях с процедурой CSMA/CD соревнуются за право до¬ ступа к среде. Прежде чем начать передачу, узел проверяет, не за¬ нят ли канал (осуществляет контроль несущей). Пока канал не осво¬ бодится, узел не может начинать передачу. Начав передачу, узел слушает, не начнут ли передачу другие узлы. Если передаваемые сообщения вступают в конфликт друг о другом (произошло обнаруоюение конфликта), передачи обрываются, и каждый узел будет ждать некоторое случайно выбираемое время, прежде чем повторить попытку передачи. Процедура CSMA/CD достаточно проста, так что ее можно реали¬ зовать в простых микросхемах. При низкой загруженности канала она работает очень хорошо — частота конфликтов не превышает 1 %. Однако с ростом нагрузки вероятность конфликтов быстро растет. Конфликты приводят к непредсказуемым задержкам. Еще одним недостатком CSMA/CD следует считать сложность вве¬ дения приоритетных механизмов — как правило, все узлы и сооб¬ щения имеют равные права в соревновании за доступ к среде. 16.10.2 Передача права В сетях с передачей права от узла к узлу передается сообщение- право. Для каждого узла существует строго определенный момент, когда он может передать его дальше и либо добавить в него сообще¬ ние, либо взять из него сообщение. Все остальные узлы в это время лишь слушают. Передача права может быть реализована как в ши¬ не, так и в кольце. Передача права позволяет получить предсказуемые времена пе¬ редачи сообщений. Чтобы обеспечить подтверждение в кольце, по¬ сылающий узел является также и принимающим. Это особенно важ¬ но в приложениях, связанных с управлением процессами, где нуж¬ на высокая надежность. Однако применение процедур доступа с пе¬ редачей права не ограничивается кольцевыми сетями. Недостаток передачи права как метода доступа для кольцевой сети в том, что при разрыве кольца сообщение не возвращается к свое¬ му отправителю. Кроме того, этот метод сложнее, чем CSMA/CD, и его реализация обходится дороже. Метод передачи права может ока¬ заться очень неэффективным при несбалансированных потоках меж¬ ду узлами. В сетях шинного типа приходится прибегать к сложным алгоритмам организации виртуального кольца и его восстановления в случае пропадания сообщения-права. На это затрачиваются опре¬ деленные вычислительные ресурсы.
Гл. 16 Операционные системы в компьютерных сетях 143 16.10.3 Метод окон Другая удобная для кольцевых структур стратегия — это непре¬ рывная циркуляция по кольцу окон (кадров) ддя сообщений. Окна — это последовательности битов, достаточно большие для того, чтобы вместить сообщение. Каждое окно может быть либо пустым, либо заполненным. Если узел желает послать сообщение, он ждет, когда до него дойдет пустое окно, помечает его как полное и помещает в него сообщение. Узел также помещает в окно управляющую инфор¬ мацию, в том числе свой собственный адрес и адрес предполагаемого получателя. 16.11 Пример для изучения: сеть Ethernet Сеть Ethernet (Sh80, Ме76) — это некоторая схема построения локальных сетей, позволяющая связать различные конторские .ма¬ шины в единую систему (рис. 16.6). Связь между различными еди¬ ницами оборудования осуществляется по коаксиальному кабелю. Информация передается в виде пакетов, посылаемых от одной маши¬ ны к другой. Архитектура представляет собой шину с множествен¬ ным доступом CSMA/CD с распределенным управлением. Рис. 16.6 Локальная сеть Ethernet, (С разрешения Xerox Corporation.)
144 Часть 7 Компьютерные сети и их безопасность Решение о том, какая единица оборудования в сети пошлет сле¬ дующее сообщение, принимается с использованием понятия конфлик¬ та. Когда идет передача, все другие единицы оборудования ждут. Как только передача прекратилась, любая единица может предпри¬ нять попытку передачи. Если происходит конфликт, т. е. если два устройства пытаются вести передачу одновременно, они оба ее пре¬ кращают, ждут некоторое время и повторяют попытку. В конце кон- Терминатор Рис. 16.7 Сеть Ethernet с двумя сегментами. (Перепечатывается из статьи R. Metcalfe and D. Boggs, «Ethernet: Distributed Packet Switching for Local Com¬ puter Networks», Communications of the ACM, Vol. 19, No. 7, July 1976. Copyright J976, Association for Computing Machinery, Inc. Перепечатывается с разрешения.) цов одному из устройств удается начать передачу без конфликта и благополучно завершить ее. Понятие конфликта позволяет сети Ethernet функционировать без централизованного управления, и благодаря этому очень просто решать проблему добавления новых устройств в сеть после ее изна¬ чальной установки. Основные компоненты, из которых состоит сеть Ethernet, пока¬ заны на рис. 16.7.
Гл. 16 Операционные системы в компьютерных сетях 145 © Среда передачи «эфир» (Ether) — коаксиальный кабель, надежный и недорогой. ® 11 риемопередатчики — небольшие блоки, которые могут пос¬ лать сигнал в кабель и принять сигнал, распространяющийся по кабелю. @ Контроллеры — большие интегральные схемы, обеспечивающие подключение к сети Ethernet всевозможного оборудования. © Ответвители — устройства для физического подключения к среде передачи («эфиру»), минимально возможным образом иска¬ жающие ее характеристики. Получающаяся в результате система работает быстро, надежно и легко дополняется новым оборудованием. Применение механизма конфликтов для разделения ресурсов сети на первый взгляд может показаться неэффективным. Но ско¬ рость передачи настолько высока (примерно десять миллионов бит в секунду), а пакеты настолько коротки (максимальная длина пакета 1500 байт), что передача, как правило, занимает меньше тысячной доли секунды. Поэтому число конфликтов мало (если только сеть не перегружена слишком большим числом активных устройств). Поскольку сетью управляет каждое индивидуальное устройство (каждый узел), надежность сети очень высока. Отказ одного из уз¬ лов не препятствует функционированию остальных узлов сети. К недостаткам Ethernet можно отнести низкий процент исполь¬ зуемой пропускной способности коаксиального кабеля. Широкопо¬ лосные системы обладают много большей пропускной способностью и способны обеспечить передачу сразу по нескольким каналам. Они более перспективны с точки зрения будущих многорежимных сис¬ тем, где ожидается одновременная передача речи, данных и изобра¬ жений. Такой широкополосной системой является сеть Wangnet фирмы Wang. Возможно, Ethernet должна будет пройти эволюцию в этом направлении. 16.12 Пример для изучения: сеть DECnet В этом разделе мы достаточно детально рассмотрим систему DECnet (De80) фирмы Digital Equipment Corporation для того, чтобы показать возможности, которые предлагает в сетевой операционной системе ведущая в этой области фирма. DECnet позволяет машинам фирмы DEC взаимодействовать друг с другом. Кроме того, фирма поставляет несколько эмуляторов протоколов, которые дают возможность подключить к сети DECnet машины других фирм. Через сеть могут взаимодействовать разные машины, управляе¬ мые разными операционными системами. Соседние узлы сети связы¬ ваются физическими звеньями связи. Через одно физическое звено могут работать в режиме разделения несколько задач. Каждый
146 Часть 7 Компьютерные сети и их безопасность индивидуальный путь данных через разделяемое физическое звено называется логическим звеном, или логическим соединением. Пользователям системы DECnet предоставляются разнообразные сетевые возможности, среди них в межсистемная пересылка файлов — файл можно переслать из одного компьютера в другой; • межсистемное разделение ресурсов — процесс, выполняющийся на одной системе, может обращаться к файлам и устройствам других систем; ® межпроцессные взаимодействия — процессы, выполняющиеся на различных компьютерах сети, могут взаимодействовать друг с Другом; ® маршрутизация (транзиты) — если между двумя узлами нет общего физического звена связи, то информация от одного к другому направляется через промежуточные узлы; ® сетевой терминал — можно сделать так, что терминал одного компьютера будет казаться как бы подключенным к другому компьютеру; @ загрузка командных файлов по сети — пользователь может по¬ слать командный файл в другой узел сети, где он и будет выпол¬ нен. 16.12.1 Сетевая архитектура DNA Сетевая архитектура фирмы DEC (DNA — Digital Network Architecture) состоит из протоколов (правил), в которых определены форматы, управление и очередность передачи сообщений в сети DECnet. DNA управляет потоками данных через сеть DECnet. Это слоистая (многоуровневая) архитектура, в которой каждый уровень-слой выполняет определенные функции. Перечислим слои и их функции: ® пользовательский — это самый верхний слой. Он содержит раз¬ личные функции, разработанные пользователем; * сетевой прикладной — функции, предоставляемые данным слоем, доступны вышележащему слою. Данный слой содержит модули доступа к удаленным файлам, средства пересылки файлов и мо¬ дуль удаленной загрузки систем; • сетевой служебный — этот слой предоставляет пользовательско¬ му и сетевому прикладному слоям единый, не привязанный к конкретным адресам механизм связи. На нем устанавливаются логические звенья связи; ® транспортный — этот слой предоставляет сетевому служебному слою все необходимые средства для передачи пакетов между уз¬ лами;
Гл. 16 Операционные системы в компьютерных сетях 147 • звеньевой — этот слой предоставляет транспортному слою сред¬ ства для свободной от ошибок передачи данных между соседними узлами; • физический — это самый нижний слой в структуре DNA. Он предоставляет необходимые средства звеньевому уровню для передачи сообщений между соседними узлами. Этот уровень содержит модули, зависящие от конкретных применяемых типов устройств в сети. 16.12.2 Возможности сети DECnet-VAX С помощью командного языка DCL (Digital Command Language) пользователь может передавать командные файлы в удаленные узлы, выполнять командные файлы в удаленных узлах, копировать файлы из одного узла в другой и уничтожать файлы в удаленных узлах. Над файлами в удаленных узлах можно выполнять общеприня¬ тые команды: открыть, закрыть, создать, уничтожить и обновить. Можно также выполнять удаленно операции на уровне работы с записями: читать, писать, обновить и уничтожить. Программист может явно задать межпроцессное взаимодействие для процессов в разных узлах. Это взаимодействие может быть либо прозрачным, либо непрозрачным. При прозрачном взаимодействии применяются те же вызовы, с помощью которых работают с файлами на языках высокого уровня. Это вызовы: открыть, закрыть, читать, писать и т. д. Непрозрачный доступ предоставляется на языке макроассембле¬ ра фирмы DEC. В этом случае вызываются непосредственно служеб¬ ные процедуры операционной системы. Непрозрачный доступ от¬ крывает для программ возможность следить за состояниями сети и более детально (на более близком к аппаратуре уровне) управлять взаимодействием между процессами. Обслуживаются следующие запросы: © CONNECT — установить логическое звено связи (аналог коман¬ ды OPEN); © CONNECT REJECT — отклонить попытку установить соедине¬ ние; ® RECEIVE — принять сообщение от другого процесса (аналог READ); © SEND — послать сообщение другому процессу (аналог WRITE); @ SEND INTERRUPT MESSAGE — послать другому процессу сообщение с высоким приоритетом; © DISCONNECT — разъединить логическое звено (аналог CLOSE). Интересное свойство DECnet — возможность посылать и прини¬ мать незапрашиваемые (внеплановые) сообщения. Почтовые ящики
из Часть 7 Компьютерные сети и их безопасность для трафика незапрашиваемых сообщений ассоциируются скорее с логическими звеньями связи, чем с процессами. Каждое логическое звено содержит два подканала — один для трафика обычных сообщений, другой — для высокоприоритетных. Высокоприоритетные сообщения попадают в почтовые ящики, пре¬ доставляемые принимающим процессом специально для этой цели. 16.12.3 Работа с файлами Пользователь DECnet-VAX для работы с удаленными файлами может воспользоваться следующими командами на языке DCL- APPEND, ASSIGN, COPY, DEASSIGN, DEFINE, DIRECTORY и SUBMIT. Спецификация файла задается следующим образомз имя-узла «строка-входа-в-систему» :: имя-файла. тип-файла; версия Имя-узла — это имя удаленного узла, где находится файл. Стро- ка-входа-в-систему используется, чтобы осуществить вход в систему (login) в удаленном узле. Если она опущена, то автоматически берет¬ ся из локальной конфигурационной базы данных строка по умолча¬ нию для входа в данный удаленный узел. Пара двоеточий (::) отделяет имя узла от спецификатора файла. Имя-файла, тип-файла и версия должны задаваться по правилам операционной системы в удаленном узле. Рассмотрим следующую команду COPY: $COPY DALLAS::DBA1 iTEST.DAT MIAMI::DMA2: Эта команда приведет к тому, что файл TEST.DAT будет передан с диска (DBA1:) в узле DALLAS на диск (DMA2:) в узле MIAMI. Если пользователю нужно выполнить командный файл в удален¬ ном узле, ему следует сначала скопировать этот файл в удаленный узел, а затем выдать команду типа $SUBMIT/REMOTE BOSTON:.TNITIAL.COM (Предполагается, что нужно выполнить файл INITIAL.COM в узле BOSTON.) 16.12.4 Взаимодействие процессов: пример на Фортране В этом разделе мы рассмотрим, как можно организовать взаимо¬ действие процессов с помощью обычных инструкций ввода-вывода на Фортране. Взаимодействие должно включать (1) установление логического соединения между процессами, (2) посылку сообщения одним процессом и прием другим и (3) разрыв соединения после за¬ вершения обмена сообщениями. Логическое соединение может быть установлено между процес¬ сами, если они согласны взаимодействовать. Один процесс запраши¬
Гл. 16 Операционные системы в компьютерных сетях 149 вает установление соединения; другой принимает этот запрос. За¬ прашивающий процесс называется процессом-источником, а при¬ нимающий процесс (задача) — целевым. Запрос на установление соединения выдается процессом-источ¬ ником и содержит спецификатор процесса в команде OPEN. Этот спецификатор задает целевой процесс (задачу) и узел, где он нахо¬ дится. Например, команда OPEN (UNIT = 7,NAME = 'DALLAS::"TASI\ = SAM'",ERR=300) запрашивает соединение с целевой задачей SAM в узле DALLAS. После установления соединения процессы переходят к диалогу через это соединение. Каждый раз, когда посылающий процесс дает команду WRITE(nHcaTb) сообщение, получающий процесс должен дать команду READ (читать) сообщение. Ответственность за выделе¬ ние необходимых буферов под сообщения, за определение, когда взаимодействие должно быть прекращено, и за разрыв соединения лежит на процессах. Любой из взаимодействующих процессов может выдать команду CLOSE — и соединение будет разорвано. Все сооб¬ щения, находящиеся «в пути», при этом будут отброшены. 16.12.5 Запрашиваемые и незапрашиваемые сообщения Сообщения между взаимодействующими процессами делятся на запрашиваемые и незапрашиваемые. Запрашиваемое сообщение, посланное одним процессом, ожидается процессом-партнером по взаимодействию. Незапрашиваемые сообщения — это сообщения следующих ти¬ пов. • Запрос логического соединения — Сообщение этого типа посыла¬ ется целевому процессу. В нем содержится запрос на установле¬ ние соединения с процессом-источником. О Запрос соединения принят —Сообщение этого типа подтвержда¬ ет, что целевой процесс принял запрос на установление соедине¬ ния. Сообщение поступает в процесс-источник. © Запрос соединения отвергнут — Сообщение этого типа говорит о том, что целевой процесс отказался принять запрос на установ¬ ление соединения. Сообщение поступает в процесс-источник. ® Сообщение-прерывание — Любой из взаимодействующих процес¬ сов может получить от своего партнера сообщение-прерывание. Такое сообщение поступает в почтовый ящик процесса-получа¬ теля. © Синхронное разъединение — Процесс-получатель информируется о том, что его партнер синхронно разъединяет логическое сое¬ динение. © Аварийное разъединение — Процесс-получатель информируется партнером о преждевременном разъединении логического соеди¬ нения.
150 Часть 7 Компьютерные сети и их безопасность • Сообщение о статусе сети — Процесс-получатель информирует* ся о некотором, происшедшем в сети событии, например о рестарт те соединения. Заключение Компьютерная сеть состоит из хост-компьютеров (ведущих ком- пьютеров) и коммуникационной подсистемы, образованной комму¬ никационными процессорами и линиями (звеньями) связи. Наиболее распространены сети трех типов — сети с разделением^ ресурсов* сети распределенных вычислений и сети с удаленным доступом. В большинстве сетей при передаче данных используется комму¬ тация пакетов. Пакет—это блок информации, в котором содер¬ жатся пользовательские данные, а также адресная, маршрутная, учетная, контрольно-диагностическая и некоторая другая информа¬ ция. Прародителем современных сетей с коммутацией пакетов явля¬ ется сеть Arpanet, спроектированная еще в 1967 г. и до сих пор широко применяемая. Первой сетью общественного пользования с пакетной коммутацией была сеть Telenet фирмы B.B.N., введенная в строй в 1975 г. Сетевая операционная система в соответствии с определением, данным в (Fo78), представляет собой «совокупность программного обеспечения и протоколов, которые дают возможность использовать множество автономных компьютеров, связанных компьютерной се¬ тью, удобным и экономически эффективным способом». Движение программ и данных между хост-машинами поддержива¬ ется примитивами взаимодействия с пользователями, примитивами миграции заданий, примитивами миграции данных и примитивами управления. Общеизвестны два подхода к передаче данных между разнотип¬ ными хост-машинами —это прямая передача, при которой данные передаются «как есть», и передача с преобразованием, при которой данные реструктурируются в более удобные для новой хост-машины форматы. Характер физической структуры из устройств и связывающих их линий определяет так называемую топологию сети. Наиболее известные топологии—это звезда, кольцо, иерархическое дерево, шина, объединение звезд, полносвязный граф и произвольный граф. Чаще других используется звезда и произвольный граф для геогра¬ фически протяженных сетей, шина и кольцо — для сетей локаль¬ ных. Операционные системы для сетей обычно делят на сетевые и распределенные. В первом случае хост-компьютер в каждом узле работает под своей собственной несетевой операционной системой. Управление сетью обеспечивают пользовательские программы, вы¬ полняемые на различных хост-компьютерах. Во втором случае от
Гл. 16 Операционные системы в компьютерных сетях 151 использования имеющихся на машинах операционных систем отка¬ зываются и создают одну единообразную операционную систему для сети в целом. Шифрование является важным методом защиты передаваемых по открытым линиям данных. Действующий в настоящее время стан¬ дарт DES использует одноключевую схему. Рассматриваются во¬ просы реализации в сетевой обстановке более мощных схем защиты, таких, как код RSA Массачусетского технологического института с двумя ключами. Локальная сеть (LAN) — это сеть, рассчитанная на обслужива¬ ние небольшой территории. В большинстве локальных сетей приме¬ няют шинную архитектуру с узлами, подключаемыми к коаксиаль¬ ному кабелю при помощи ответвителей. С помощью повторителей можно разветвить сеть или увеличить ее протяженность. Три наиболее распространенных вида доступа к среде — это множественный доступ с контролем несущей и обнаружением конф¬ ликтов (CSMA/CD), передача права и метод окон (кадров). В методе CSMA/CD узлы соревнуются за доступ к среде. При конфликтах передача сообщений обрывается — новую попытку передать сооб¬ щение узел делает после задержки, определяемой с помощью датчи¬ ка случайных чисел. В схеме с передачей права право передается от узла к узлу. Получив право, узел может начать передачу. Времена обслужива¬ ния при этом оказываются более предсказуемыми, чем в схеме CSMA/ CD, но эффективность может оказаться низкой, если трафик между различными узлами не сбалансирован. В схеме с окнами (кадрами) по сети непрерывно циркулирует цепочка окон (достаточно больших последовательностей битов, что¬ бы в них помещались сообщения). Каждый кадр может быть либо пустым, либо заполненным. Когда кадр прибывает в узел, узел может либо положить в него сообщение, либо взять из него сообще¬ ние, либо продвинуть кадр к следующему узлу. Ethernet — это схема создания локальных сетей, рассчитанная на соединение различных конторских машин. Архитектурно — это шина с коаксиальным кабелем в качестве среды передачи. Процедура доступа — CSA1A/CD. Информация между узлами передается в ви¬ де пакетов. Сеть состоит из «эфира» (коаксиального кабеля), приемо¬ передатчиков, которые передают и принимают биты из кабеля, конт¬ роллеров, которые обеспечивают подключение машин к кабелю, и ответвителей, через которые осуществляется физическое подключе¬ ние к кабелю. На сегодня Ethernet — одна из наиболее распространенных схем локальных сетей. В ней по кабелю передается исходный сигнал, что удобно для передачи данных, но неудобно для передачи речи в ре¬ альном времени и передачи изображений. Можно расширить Ether¬ net, включив в качестве необязательной возможность работать в широкополосной многоканальной системе передачи. Это может ока¬
152 Часть 7 Компьютерные сети и их безопасность заться необходимым, если Ethernet будет принята как общий стан¬ дарт на локальные сети. DECnet — это сеть фирмы Digital Equipment Corporation с се¬ тевой операционной системой. Эмуляторы протоколов позволяют подключать к DECnet оборудование других фирм. Физические звенья связи—’это реальные линии между соседними узлами сети. По физическим звеньям в режиме разделения могут проходить несколько путей передачи, называемых логическими звеньями или логическими соединениями. Наряду с другими функция DECnet поддерживает пересылку файлов, разделение ресурсов, взаимодействие между процессами в разных узлах, маршрутизацию, сетевые командные терминалы и уда¬ ленную загрузку командных файлов. Сетевая архитектура фирмы DEC (DNA) состоит из протоколов, в которых определены форматы, способы управления, очередность передачи сообщений в сети DECnet. DNА — это многоуровневая, слоистая архитектура, в которой выделены пользовательский, сетевой прикладной, сетевой служебный, транспортный, звеньевой и физический слои. Обмен информацией между процессами может быть прозрачным или непрозрачным. При прозрачном обмене используются обычные команды обращения к файлам в языках высокого уровня. При не¬ прозрачном обмене непосредственно вызываются служебные про¬ цедуры операционной системы. Процессам предоставлена возможность посылать и принимать незапрашиваемые сообщения. Почтовые ящики для незапрашивае¬ мых сообщений больше связаны с логическим соединением, чем с самим процессом. DECnet позволяет пользователю, находящемуся в одном узле, манипулировать файлами другого узла. При этом допускаются как операции с файлом в целом (копирование, уничтожение и т. п.), так и операции над отдельными записями. Запрашиваемое сообщение — это сообщение, ожидая прихода которого, принимающий процесс дает соответствующую команду приема. К незапрашиваемым относятся сообщения следующих ти¬ пов: запрос на установление логического соединения, запрос соеди¬ нения принят, запрос соединения отвергнут, сообщение-прерывание, синхронное разъединение, аварийное разъединение и сообщение о статусе сети. Терминология видимая сеть (visible network) виртуальная цепь (virtual circuit) дейтаграмма (datagram) заказная электронная почта (registered electronic mail) запрашиваемое (запланированное) сообщение (solicited message)
Гл. 16 Операционные системы в компьютерных сетях 153 звеньевой уровень (в DNA) (data link layer (in DNA)) иерархическая древовидная сеть (hierarhical network) имена виртуальных файлов (virtual file names) код RSA (RSA code) кольцевая сеть (ring network) команда CONNECT (установить соединение) (CONNECT) команда CONNECT REJECT (запрос соединения отвергнут) (CON¬ NECT REJECT) команда DISCONNECT (разъединить) (DISCONNECT) команда RECEIVE (принять) (RECEIVE) команда SEND (послать) (SEND) команда SEND INTERRUPT MESSAGE (послать сообщение-преры¬ вание) (SEND INTERRUPT MESSAGE) коммуникационный процессор (communications processor) коммутация пакетов (packet switching) контроллер (в Ethernet) (controller (in Ethernet)) концентрация данных (data concentration) логическое звено связи (логическое соединение) (logical link) локальная сеть (local network) маркировка сообщений по времени (time-stamping of messages) миграция (migration) незапрашиваемое сообщение (unsolicited message) непрозрачный обмен между процессами (в DNA) (nontransparent interprocess communication (in DNA)) ответвитель (в Ethernet) (tap (in Ethernet)) пакет (packet) передача на частоте исходного сигнала (одноканальная) (baseband) передача с промежуточным хранением (store-and-forward trans¬ mission) передача широкополосная, многоканальная (broadband) полносвязная сеть (fully connected network) пользовательский уровень (в DNA) (user layer (in DNA)) понятие конфликта (collision concept) преобразование данных (data transformation) приемопередатчик (в Ethernet) (tranceiver (in Ethernet)) прикладной уровень (application layer) прикладной уровень, слой (в DNA) (network application layer) примитивы взаимодействия пользователей (user communication primitives) примитивы миграции заданий (job migration primitives) примитивы миграции данных (data migration primitives) прозрачная сеть (transparent network) прозрачный обмен между процессами (в DNA) (transparent inter¬ process communication (in DNA)) процесс-агент (посредник) (agent process) процесс-источник (source process)
154 Часть 7 Компьютерные сети и их безопасность прямая (непосредственная) передача (direct transmission) распределенная операционная система (distributed operating system) сетевая архитектура DNA фирмы DEC (DNA, Digital Network Arc¬ hitecture) сетевая архитектура SNA фирмы IBM (SNA, System Network Archi¬ tecture) сетевая операционная система (NOS) (network operating system, NOS) сетевой служебный уровень (в DNA) (network service layer (in DNA)) сетевой уровень (в OSI) (network layer (in OSI)) Сеть с разделением ресурсов (resource sharing network) сеть распределенных вычислений (distributed computation network) сеть с топологией звезды (star network) сеть с «многозвездной» топологией (объединение звезд) (connected star network) сеть с топологией «произвольный граф» (mesh network) сеть с удаленным доступом (remote communication network) сеть Arpanet (Arpanet) сеть DECnet (DECnet) сеть Datapac (Datapac) сеть Ethernet (Ethernet) сеть Telenet (Telenet) сеть Wangnet (Wangnet) Стандарт на шифровку данных (DES) (Data Encryption Standard, DES) территориально протяженная сеть (long-haul network) топология сети (network topology) транспортный уровень (в DNA) (transport layer (in DNA)) управляющие примитивы (control primitives) уровень представлений (presentation layer) уровень сеанса (session layer) физический уровень (physical layer) физическое звено связи (physical link) хост-компьютер (ведущий, главный компьютер), хост-машина (ве¬ дущая, главная машина) (host) целевой процесс (target process) шинная сеть (bus network) шифрование (encryption) электронная почта (electronic mail) эмулятор протоколов (internet) «эфир» (среда передачи) (Ether) Х.25 (Х.25) Упражнения 16.1 Что таксе компьютерная сеть? 16.2 Какие факторы препятствуют разделению ресурсов в сетях? 16.3 Коротко сопоставьте сети разделения ресурсов, распределенных вычисле¬ нии и удаленного доступа,
Гл. 16 Операционные системы в компьютерных сетях 155 16.4 Назовите наиболее важные функции сетевых операционных систем. 16.5 Коротко рассмотрите каждый из следующих типов сетевых примитивов* взаимодействия с пользователем, миграции заданий, миграции данных, управ¬ ления. 16.6 Каковы два подхода к миграции данных? Обсудите достоинства каждого из них, 16.7 Каковы наиболее распространенные сетевые топологии? В каких из них обеспечивается наибольшая надежность? В каких — наибольшая безопасность? 16.8 Сопоставьте подходы, развиваемые в сетевой операционной системе и в распределенной операционной системе. 16.9 Что такое процесс-агент? 16.10 Что такое локальная сеть? В чем проблемы локальных сетей отличаются от проблем сетей протяженных. 16.11 Объясните понятие конфликта, применяемое в сети Ethernet. 16.12 Сеть может быть либо прозрачна, либо видима для пользователя. Со¬ поставьте эти два подхода к проектированию интерфейса между пользователем и сетью. 16.13 Сопоставьте сетевые и мультипроцессорные операционные системы, 16.14 Перечислите основные возможности DECnet. 16.15 Архитектура большинства сетей содержит много уровней-слоев, как DNA. Каковы достоинства такого расслоения? 16.16 Проведите различие между прозрачным и непрозрачным межпроцессным обменом в DNA. 16.17 Одна из интересных возможностей DECnet — это возможность передавать незапрашиваемые сообщения. При каких обстоятельствах такие сообщения бывают нужны? Какие дополнительные проблемы встают при поступлении в процесс незапрашиваемого сообщения по сравнению с запрашиваемым. 16.18 Сравните семиуровневую архитектуру OSI с шестиуровневой архитекту¬ рой DNA. В чем главные отличия? Литература (Ва80) Barak А. В., Shapir A., «UNIX with Satellite Processors», Software^ Practice and Experience, Vol. 10, 1980, pp. 383—392. (C176) Clipsham W. W., Glave F. E., Narraway M. L., «Datapac Network Over¬ view», Proc, Third International Conf, on Computer Communications* Toronto, August 1976, pp. 131 — 136. (Cr75) Crocker S. D., «The National Software Works: A New Method for Providing Software Development Tools Using the Arpanet», Presented at Meeting on 20 Years of Computer Science, Pisa, Italy, June 1975. (Cy79) Cypser R., Communications Architecture for Distributed Systems, Readingj Mass.: Addison-Wesley, 1979. (Da79) Davies D. W., Barber D, Ls A., Price W. L., Solomonides Ct M., Сотри-
156 Часть 7 Компьютерные сети и их безопасность ter Networks and Their Protocols, New York: Wiley, 1979.'[Русский пере¬ вод: Дэвис Д., Барбер Д., Прайс У., Сол ом он идее С, Вычислитель¬ ные сети и сетевые протоколы.— М.: Мир, 1982.] (Dc80) Digital Equipment Corporation, VAX Software Handbook, 1980, pp. 228— 253. (Do79) Donnelley J. E., «Components of a Network Operating System, Computer Networks, Vol. 3, December 1979, pp. 389—399. (Dv77) Davidson J., Mimno N., Thomas R., Walden D., Hathaway W., Po¬ stel J., «The Arpanet Telenet Protocol: Its Purpose, Principles, Implemen¬ tation, and Impact on Host Operating System Design», Proc. Fifth Data Communications Symposium, Snowbird, Utah, September 1977, pp. 4.10— 4.18. (Fo78) Forsdick H. C., Schantz R. E., Thomas R. H., «Operating Systems for Computer Networks», IEEE Computer, January 1978, pp. 48—57. (Gr79) Green P. E., «An Introduction to Network Architectures and Protocols», IBM Systems Journal, Vol. 18, No. 2, 1979, pp. 202—222. (Ha79) Halsey J. R., Hardy L. E., Powning L. F., «Public Data Networks: Their Evolution, Interfaces, and Status», IBM Systems Journal, Vol. 18, No. 2, 1979, pp. 223—243. (IE78) Proc. IEEE, Vol. 66, No. 11, November 1978, special issue on packet communications. (Ki75) Kimbleton S. R., Schneider G. M., «Computer Communication Networks», ACM Computing Surveys, Vol. 7, No. 3, September 1975. (Ki76) Kimbleton S. R., Mandell R. L., «А Perspective on Network Operating Systems», AFIPS Conf. Proc., Vol. 45, Montvale, N. J.: AFIPS Press, pp. 551—558. (Ma81) Martin J., Design and Strategy for Distributed Data Processing, Englewood Cliffs, N. J.: Prentice-Hall, 1981. (Me76) Metcalfe R., Boggs D., «Ethernet: Distributed Packet Switching for Local Computer Networks», CACM, Vol. 19, No. 7, July 1976. (Ne81) Nelson T., «Mail Chauvinism: The Magicians, the Snark, and the Camel», Creative Computing November 1981, pp. 128—156. (Ri76) Rinde J., «Tymnet I: An Alternative to Packet Technology», ICCC 76, Toronto, 1976. (Ro70) Roberts L. G., Wessler B. D., «Computer Network Development to Achieve Resourse Sharing», AFIPS Conf. Proc. 1970, Spring Joint Conf,, Vol. 3G, Montvale, N.J.: AFIPS Press, 1970. (Sa78) Sanders R. W., «Comparing Networking Technologies», Datamation, July 1978, pp. 88—93. (Sc77) Schwartz M., Computer Communication Network Design and Analysis Englewood Cliffs, N. J.: Prentice-Hall, 1977. (Sh80) ShochJ.F., Hupp J. A., «Measured Performance of an Ethernet Local Network», CACM, Vol. 23, No. 12, December 1980, pp. 711—721. (Ta81) Tanenbaum A. S., Computer Networks'. Englewood Cliffs, N. J.: Prentice- Hall, 1981. (Wa79) Walden D. C., McKenzie A. A., «The Evolution of Host-to-Host Protocol Technology», IEEE Computer, September, 1979, pp. 29—38. (We79) Wecker S., «Computer Network, Architectures», IEEE Computer, Septem¬ ber 1979, pp. 58—72. (Wr80) Ward A. A., «TRIX: A Network-Oriented Operating System», Compcon. Spring 1980, pp. 344—349. (Wt80) Watson R. W., Fletcher J. G., «An Architecture for Support of Network Operating System Services», Computer Networks, Vol. 4, February 1980, pp. 33—49. (Zi80) Zimmerman H., «OS1 Reference Model—The ISO Model of Architecture for Open Systems Interconnection», IEEE Trans. Cornmun., Vol. COM-28, April 1980, pp. 425—432.
Глава 17 Защита операционных систем Валено отметить, что, вероятно, ни одна, большая операционная система, разработанная на нынешнем уровне технологии, не способна противостоять реши¬ тельной и хорошо организованной атаке и что большая часть зафиксированных документально попыток пре¬ одоления защиты на удивление легко приводила к успеху, Б. Хеббард и др. (Не80) Где тонко, там и рвется. Пословица Право — это не то, что кем-то вам дано, а то> чего у вас никто не отнимет. Рамсей Кларк Ценой, которую мы платим за овладение любой профессией, является близкое знакомство с ее теневыми сторонами. Джеймс Болдуин 17.1 Введение 17.2 Требования по безопасности 17.3 Общий подход к безопасности 17.4 Внешняя безопасность 17.5 Операционная безопасность 17.6 Надзор 17.7 Профилактический контроль 17.8 Расширение прав доступа 17.9 Защита с помощью паролей 17.10 Ревизия 17.11 Контроль доступа 17.12 Безопасные ядра 17.13 Аппаратная защита 17.14 Живучие системы 17.15 Полномочия и объектно-ориентированные системы 17.15.1 Перемещение и хранение полномочий 17.15.2 Отме на п о л но моч и й 17.16 Пример для изучения: объектно-ориентированная архитек¬ тура IBM System/38 17.17 Криптография 17.17.1 Криптографические секретные системы 17.17.2 Анализ шифра 17.17.3 Системы с открытыми ключами 17.17.4 Цифровые подписи 17.17.5 Схемы шифрования (дешифрования) DES и RSA 17.17.6 Применения 17.18 Преодоление защиты операционной системы 17.18.1 Типовые функциональные дефекты 17.18.2 Типовые «атаки» на операционные системы 17.19 Пример: преодоление защиты одной операционной системы
158 Часть 7 Компьютерные сети и их безопасность 17о1 Введение По мере развития вычислительной техники в течение последних нескольких десятилетий она становилась все более доступной. За этот период в огромной степени возросло количество вычислительных установок. Однокомпьютерные системы с разделением времени и системы с удаленным доступом выдвинули на первый план среди вопросов защиты ЭВМ уязвимость передаваемых данных. Сегодня эта проблема становится еще более серьезной в связи с распростра¬ нением сетей ЭВМ (гл, 16). Кроме того, в течение этого периода мы переложили на ЭВМ большую часть повседневной работы по управлению нашими делами в быту и на службе. Компьютеры проводят рутинную обработку самой секретной корреспонденции. Электронные системы для де¬ нежных операций переводят наши деньги в разные места в виде потоков битов. Системы по предотвращению столкновений самолетов взяли на себя основную долю тяжелой работы, прежде выполняв¬ шейся диспетчерами. Микропроцессоры, встроенные в самые разно¬ образные устройства, обеспечивают интеллектуальное управление ими. Широко используются компьютерные устройства, импланти¬ руемые человеку, такие, как кардиостимуляторы. Очень важно принять меры безопасности, обеспечивающие рабо¬ ту этих систем без искажений и постороннего вмешательства. В этой главе мы рассмотрим вопросы защиты операционных систем. Столь же важна безопасность и защита аппаратуры; эта тема рас¬ сматривается в других главах книги. Обычно операционная система составляет лишь небольшую часть общего объема программного обеспечения, работающего на вычис¬ лительной установке. Однако операционная система контролирует доступ к системным ресурсам; остальные программы, как правило, получают доступ к этим ресурсам через операционную систему. Поэтому обсуждение вопросов безопасности программного обеспе¬ чения фокусируется обычно на обеспечении защиты операционных систем. Защита операционных систем — лишь малая часть общей проб¬ лемы защиты ЭВМ, но в настоящее время она приобретает все боль¬ шее значение. Тщательно разработанная программа защиты должна вписываться в общую картину; защита операционной системы мало чего стоит, если кто-либо может незаметно вынести всю вычисли¬ тельную установку! Есть несколько причин тому большому вниманию, которое уде¬ ляется сейчас защите ЭВМ. Доступность персональных ЭВМ при¬ вела к распространению компьютерной грамотности в широких слоях населения. Миллионы людей прослушали курсы программи¬ рования в университетах, прочитали книги об ЭВМ, купили персо¬ нальные компьютеры или же использовали вычислительные системы на службе. Сегодня даже для того, чтобы совершить мошенничество,
Гл. 17 Защита операционных систем 159 часто оказывается необходимым преодолеть систему защиты ЭВМ. Миллионы компьютерных систем объединены посредством сетей связи, чаще всего по телефонным каналам. Там, где раньше для за¬ щиты компьютера от вторжения извне было достаточно простой фи¬ зической охраны, теперь приходится вводить изощренный контроль за попытками входа в систему с удаленных терминалов. Много раз в тексте мы упоминали понятие «дружественной» (для пользователя) системы; если нужно обеспечить эффективное использование компьютера широким кругом людей, то систему сле¬ дует сделать более доступной и простой в работе. Но по самой своей природе «дружественность» системы по отношению к пользователю может повлечь большую ее уязвимость. Первым пунктом в программе обеспечения безопасности стоит идентификация потенциальных угроз. Угрозы безопасности могут быть преднамеренными или непреднамеренными. Самое лучшее, на что можно здесь рассчитывать,— это определение большей части возможных угроз, однако всегда найдутся такие потенциальные опасности, которые мы не предвидели. Цели защиты вступают в противоречие с совместным использо¬ ванием ресурсов. Можно совсем изолировать программы друг от друга, если выполнять их на отдельных, не связанных между собой ЭВМ, но это исключает какое бы то ни было совместное использова¬ ние. Программы, выполняющиеся на одной ЭВМ, имеют много воз¬ можностей совместного использования ресурсов, но в этом случае возможная степень защиты уменьшается. Кое-кто может сказать, что высокая сложность системы сдер¬ живает попытки вторжения в нее, тогда как простые системы силь¬ но уязвимы, поскольку их легко понять. На самом деле для простых систем легче удостовериться в их безопасности; в средствах защиты сложных систем зачастую остается множество «прорех». Необходимый уровень безопасности системы в очень сильной степени зависит от значимости защищаемых ресурсов. Информация в банковской системе может иметь очень большую финансовую цен¬ ность. Информация в медицинской системе может быть вопросом жизни и смерти. Не следует игнорировать даже пустяковые наруше¬ ния защиты; для злоумышленников получаемая ими информация может представлять незначительную ценность, но сам факт может повлечь большие неприятности для администратора системы. 17.2 Требования по безопасности Требования по безопасности какой-либо системы определяют, что подразумевается под безопасностью этой системы. На основе этих требований решается вопрос о том, является ли безопасной реализованная система; бессмысленно обсуждать этот вопрос, не имея точного списка требований по безопасности. Точно так же нежестко сформулированные требования (даже если система удов¬
160 Часть 7 Компьютерные сети и их безопасность летворяет им) мало что говорят о действительной безопасности системы. Формулировка требований по безопасности — вопрос первосте¬ пенной важности для правительства и вооруженных сил США. В приведенных ниже документах рассматриваются требования по безопасности. ® DOD Directive 5200,28 — Определяет, как в системах обработки данных следует работать с информацией, имеющей грифы секрет¬ ности. ® Computer Security Technology Reference Manual — Определяет, как оценивать безопасность вычислительных систем вооруженных сил. • The Privacy Act of 1974 — Требует от федеральных ведомств обес¬ печить целостность и защищенность информации о частных лицах, особенно в связи с широким использованием компьютеров пра¬ вительством. 17.3 Общий подход к безопасности Глобальный подход к безопасности имеет важное значение, по¬ этому мы рассмотрим не только защиту операционных систем, но и некоторые другие аспекты безопасности ЭВМ. Внешняя безопас¬ ность связана с защитой вычислительных устройств от злоумышлен¬ ников и стихийных бедствий, таких, как пожар или наводнение. Пусть пользователь имеет физический доступ к компьютеру, тогда, прежде чем он сможет обратиться к хранимым в системе программам и данным, операционная система должна идентифицировать (уста¬ новить личность) этого пользователя; эту область можно назвать безопасностью интерфейса с пользователем. Предметом внутренней безопасности являются всевозможные проверки, встроенные в ап¬ паратуру и операционную систему, чтобы обеспечить надежную и неискаженную работу вычислительной системы и целостность про¬ грамм и данных. 17Л Внешняя безопасность Составными частями внешней безопасности являются физическая безопасность и операционная безопасность. Внешняя безопасность включает защиту от стихийных бедствий и защиту от злоумышлен¬ ников. Важное значение для обеспечения физической безопасности имеют устройства обнаружения} детекторы дыма и датчики тепла позволяют подать сигнал тревоги в самом начале пожара; детекторы движения способны обнаружить злоумышленника, проникнувшего в помещение, где установлена ЭВМ в то время, когда там никого не должно быть. Стоимость защиты от бедствий может быть весьма высокой, и ее важностью часто неоправданно пренебрегают. Целесообразность
Гл. 17 Защита операционных систем 161 защиты от бедствий сильно зависит от последствий возможных по¬ терь, но многие организации просто не могут позволить себе расхо¬ ды на реализацию достаточно совершенной защиты от бедствий. Большинство усилий по физической безопасности направляется на защиту от злоумышленников. Для этой цели используются различ¬ ные системы физической идентификации, как, например, пластико¬ вые карточки с подписью и фотографией. Популярны также системы идентификации по отпечаткам пальцев или по голосу. 17.5 Операционная безопасность Операционная безопасность включает различные меры и проце¬ дуры, предпринимаемые руководством вычислительной установки. Определение того, кому, к чему и какой доступ позволен, называется авторизацией (предоставлением права на доступ). Разбить проблему на подвопросы позволяет классификация^ данные в системе и пользователи разбиваются на классы, обладаю¬ щие разными правами доступа. Эта процедура напоминает схему классификации военных документов по степени секретности, при которой только очень секретные документы получают гриф «Совер¬ шенно секретно» и доступ к ним разрешается лишь тем лицам, кото¬ рые имеют разрешение на работу с совершенно секретной инфор¬ мацией. Важное значение имеет подбор персонала и распределение долж¬ ностей. Но все равно неизвестно, можно ли доверять выбранным людям. В таких случаях часто используют метод разделения обязан¬ ностей] разным людям поручают разные работы, для выполнения которых не нужно знание системы в целом. Таким образом, каждый человек сам по себе не сможет увидеть всю картину. Для того чтобы нарушить работу системы, потребуется взаимодействие сразу многих исполнителей; это резко снижает вероятность преодоления защиты. Так, например, на больших вычислительных установках только операторам позволен доступ к вычислительной системе и только программистам позволено писать программы. Операторы не долж¬ ны знать программирование, а программисты не должны быть де¬ тально знакомы с работой вычислительной системы. Аналогично, контроль исходных данных в производственных системах выпол¬ няется отдельной группой людей, тогда как проверкой результата занята еще одна, другая группа. Чтобы обнаружить любое нарушение защиты, в системе нужно предусмотреть большое число проверок. Работающие на вычисли¬ тельной установке не должны знать, какие проверки предусмотрены, и это уменьшает вероятность их успешного обхода. Однако тот факт, что в системе делается тщательная проверка, должен быть доведен до сведения персонала; для многих людей этого достаточно, чтобы удержать их от попыток преодоления защиты. 6 № 58 I
162 Часть 7 Компьютерные сети и их безопасность Невозможно разработать эффективные защитные меры, не по* пытавшись сначала перечислить и понять потенциальные угрозы безопасности. Для этого может потребоваться тщательный и об¬ ширный анализ. Каковы возможные контрмеры? Какой степени безопасности нам желательно достичь? 17.6 Надзор В задачи надзора входит наблюдение за работой системы и ее ревизия, а также идентификация (подтверждение права доступа) пользователей. Существуют весьма изощренные варианты таких систем; их, конечно, можно обойти, но от злоумышленника потре¬ буются значительные усилия. Такие системы сталкиваются с инте¬ ресной проблемой — они могут отвергнуть законного пользователя. Так, система идентификации по голосу может отвергнуть простудив¬ шегося пользователя, а отказ системы, проверяющей отпечатки пальцев, может быть вызван порезом или ожогом. 17.7 Профилактический контроль Один из способов уменьшить риск нарушения защиты состоит в том, чтобы не разрешать пользователю непосредственно выполнять критические операции, а передать их под контроль операционной системы. Если пользователь хочет, например, обратиться к крити¬ ческому файлу, то в некоторых системах ему разрешается непосред¬ ственно работать с этим файлом. Управление при этом в руках поль¬ зователя, и если он предпримет какие-либо действия, направленные на разрушение файла, то у системы не будет возможности просле¬ дить за ними. Метод профилактического контроля обеспечивает большую безопасность. В этом случае пользователи не имеют непосредственного доступа к ресурсам. Работать с ресурсами могут только программы опера¬ ционной системы, называемые безопасными программами. Пользо¬ ватель, желающий получить доступ к ресурсу, запрашивает его у операционной системы. Операционная система либо разрешает нужный доступ, либо нет. Затем безопасная программа выполняет реальные действия с файлом и передает результаты программе поль¬ зователя. Описанная схема напоминает понятие монитора из гл. 5. Профилактический контроль ведется непрерывно — попытки про¬ никновения в систему обнаруживаются сразу же, как только они происходят, и информация об этом немедленно сообщается админист¬ ратору системы. 17.8 Расширение прав доступа Иногда, для того чтобы эффективно выполнить определенные запросы пользователей, безопасным программам необходимо иметь большие, чем у пользователей, права доступа. Так, чтобы вычис¬
Гл. 17 Защита операционных систем 163 лить средний доход всех налогоплательщиков города, безопасной программе следует иметь доступ к индивидуальным записям о каж¬ дом налогоплательщике. Это явление называется расширением прав. Умные пользователи, возможно, все же сумеют логически вывести информацию об индивидуальных налогоплательщиках, выдав не¬ сколько различных запросов и проанализировав совпадения в ре¬ зультатах; однако можно так построить безопасные программы, чтобы они обнаруживали подобные попытки и извещали о них администратора системы. 17.9 Защита с помощью паролей Для идентификации личности можно использовать три типа объ¬ ектов (Рг75) • Некоторая информация о данном человеке — Сюда входят отпе¬ чатки пальцев, записи голоса, фотографии и подписи. • Нечто, имеющееся у данного человека — Это специальные значки, идентификационные карточки, ключи и т. п. • Нечто, известное данному человеку — Это, например, пароли, коды замков и девичья фамилия тещи. В настоящее время чаще всего используется простая схема удос¬ товерения личности с помощью паролей. Пользователь выбирает кодовую комбинацию из нескольких литер, записывает ее в память ЭВМ и затем вводит ее с клавиатуры, чтобы получить доступ к вы¬ числительной системе. Многие системы при этом выключают «пе¬ чатающую головку», так что вводимый пароль не отображается на бумаге или экране дисплея. Защита с помощью паролей имеет немало слабых сторон. Поль¬ зователи стремятся выбрать легко запоминающиеся пароли, напри¬ мер имена друзей или родственников. Тот, кто знает пользователя, может попытаться войти в систему, испробовав несколько различных имен знакомых пользователя; с помощью такого способа, известного как повторные пробы, можно иногда преодолеть защиту. В некото¬ рых из ранних систем использовались короткие пароли; в такие системы можно легко проникнуть, просто перепробовав все возмож¬ ные пароли. Чтобы воспрепятствовать подобным попыткам, в боль¬ шинстве современных систем применяются более длинные пароли. Однако длинные пароли не всегда оправданы. Если пароли труд¬ но запомнить, то пользователи, скорее всего, будут записывать их, и это, конечно, может облегчить задачу отыскания пароля. Таким образом, при разработке схемы защиты пароли следует выбирать достаточно длинными, чтобы сделать бесполезными повторные про¬ бы, но вместе с тем достаточно короткими, чтобы их можно было легко запомнить. Преодоление защиты операционной системы не обязательно ведет к существенному урону для безопасности. Пусть, например. 6*
164 Часть 7 Компьютерные сети и их безопасность кто-нибудь умеет извлекать главный список паролей системы. Обыч¬ но это означает, что злоумышленник сможет получить доступ прак¬ тически к любой информации в системе. Однако список паролей мож¬ но сделать бесполезным для злоумышленника, если применить шиф¬ рование. В этом случае обладание паролями практически ничего не дает, если только мы не знаем заодно и ключ расшифровки. Во многих системах пользователям рекомендуется часто менять пароли; даже если злоумышленник узнает пароль, он может не ус¬ петь нанести реальный ущерб до смены пароля. Простой способ защиты от повторных проб — ограничение числа возможных попыток входа в систему за какой-то период времени с одного терминала (или с одним учетным номером). Конечно, входя в систему, человек может допустить опечатку. Но, для того кто зна¬ ет правильный пароль, явно бессмысленно делать десятки, сотни или тысячи попыток. Таким образом, система может разрешать три или четыре попытки входа, а затем автоматически отключать данный терминал на несколько минут. После некоторого периода ожидания терминал может быть вновь подключен к системе. Если снова последует серия безуспешных попыток входа, то операцион¬ ная система может послать на этот терминал предупреждение о том, что она вызовет полицию или о том, что на данном терминале вот-вот зазвенит сигнал тревоги! 17.10 Ревизия В немашинных системах ревизия обычно выполняется постфак¬ тум. Ревизоры периодически проверяют операции какой-либо ор¬ ганизации за последнее время и определяют, не было ли мошенни¬ честв. В вычислительных системах с помощью ЭВМ возможна не¬ медленная ревизия только что совершенных операций. В журнал ревизии постоянно вносятся записи о важных событиях в системе. Всякий раз, как происходит событие, создается запись о нем, которая помещается в область системы с усиленной защитой; даже в случае вмешательства в систему журнал ревизии должен ос¬ таться нетронутым. Журнал ревизии — важный механизм обнаружения происшест¬ вий. Даже если систему защиты и можно преодолеть, то опасение последующего раскрытия способно удержать людей от таких по¬ пыток. Занесение информации в журнал ревизии само по себе еще не обеспечивает высокой безопасности. Необходимо еще часто и тща¬ тельно просматривать журнал. Эти просмотры должны выполняться периодически и, кроме того, в случайные моменты времени. Периоди¬ ческие ревизии поддерживают постоянное внимание к проблеме безопасности; случайные ревизии помогают поймать недостаточно бдительных взломщиков.
Гл. 17 Защита операционных систем 165 17.11 Контроль доступа Ключевым моментом внутренней безопасности является контроль за доступом к хранимым данным. Права доступа определяют, ка¬ кой доступ различные субъекты имеют к различным объектам. Субъекты осуществляют доступ к объектам. Объекты — это эле¬ менты, содержащие информацию. Это могут быть вполне реальные объекты, соответствующие дискам, лентам, процессорам, ячейкам памяти, или абстрактные объекты, соответствующие структурам данных или процессам. Объекты имеют защиту от субъектов. Для субъектов в вычисли¬ тельной системе обеспечивается авторизация (распределение полно¬ мочий). Субъекты могут быть многих типов, включая пользователей, процессы, программы и др. Возможные права доступа — это чаще всего доступ для чтения, доступ для записи и доступ для выполнения. Непосредственный спо¬ соб реализации прав доступа дается матрицей прав доступа. В этой двумерной матрице по строкам выписаны всевозможные субъек¬ ты, а по столбцам— объекты, к которым нужен доступ. В каждой клетке матрицы записаны права доступа данного субъекта к дан¬ ному объекту. Разумеется, матрица доступа должна быть одним из наиболее охраняемых элементов операционной системы. 17.12 Безопасные ядра Гораздо проще гарантировать безопасность системы, если защит¬ ные меры разрабатывать с самого начала, а не встраивать в готовую систему. Меры безопасности должны быть предусмотрены повсе¬ местно в вычислительной системе, однако если мы хотим разработать хорошо защищенную систему, то лучше всего сконцентрировать усилия на обеспечении безопасности ядра операционной системы. Было разработано много безопасных ядер (Мс79), (Wa79), (Ро78), (Sc77), (Sc77a) и (Mi76). Наиболее критичные защитные меры реа¬ лизованы в ядре. Основная цель была сделать ядро как можно мень¬ ше. В результате можно осмысленно выполнить тщательную про¬ верку ядра на предмет отсутствия дефектов и формально продемон¬ стрировать его корректность. В выполненных до сих пор проектах исследователи обычно при¬ ходили к выводу, что выделение всевозможных требующих защиты функций в универсальных операционных системах широкого при¬ менения порождает большое ядро. Безопасность системы особенно зависит от защищенности функций для контроля доступа, записи в журнал, текущего контроля, а также функций управления физи¬ ческой памятью, виртуальной памятью и файловой системой. Эти функции, как правило, занимают значительную часть всего объема программ операционной системы, что затрудняет получение малого размера ядра. Как нам кажется, для уменьшения размера безопас¬
166 Часть 7 Компьютерные сети и их безопасность ных ядер до такой степени, чтобы сделать возможным построение действительно безопасных систем, понадобятся совершенно новые подходы к разработке операционных систем. 17.13 Аппаратная защита По мере непрерывного уменьшения стоимости и размеров аппа¬ ратуры все более желательным становится включение . функций операционной системы в аппаратуру. Эти функции станут тогда существенно более безопасными, чем когда они реализованы в виде машинных программ, которые можно легко изменить. Аппаратно реализованные функции могут выполняться гораздо быстрее про¬ грамм, кроме того, можно чаще выполнять различные действия по контролю за работой. 17.14 Живучие системы Одна из причин разработки надежно защищенных вычислитель¬ ных систем заключается в стремлении обеспечить постоянное и на¬ дежное их функционирование и доступность. Живучей вычислитель¬ ной системой называется такая система, которая продолжает рабо¬ тать даже после отказа одной или нескольких ее компонент. Для вычислительных систем, предназначенных для деловых операций, живучесть становится все более важным критерием. Авиалиния мо¬ жет понести значительные убытки, если откажет ее система резерви¬ рования мест; отказ банковской системы, даже на короткое время, может пошатнуть репутацию банка. В живучих системах принимаются меры для обеспечения плав¬ ной деградации} система с отказавшими компонентами продолжает обслуживать пользователей, но на более низком уровне. Живучие системы строятся таким образом, чтобы отказавшую компоненту можно было отсоединить от системы, отремонтировать и вновь при¬ соединить, а система все это время работала бы без всяких переры¬ вов. Одним из ключевых моментов для обеспечения живучести явля¬ ется избыточность. Когда какая-нибудь компонента выходит из строя, ее функции сразу же берет на себя эквивалентная компонен¬ та. Некоторые системы используют пул идентичных ресурсов, ра¬ ботающих параллельно. В других системах избыточные ресурсы активизируются только в случае отказа. В последние годы архитектура микропроцессоров непрерывно эволюционировала в сторону большей устойчивости к отказам. Сейчас во многих микропроцессорах для связи применяется двой¬ ная шина. Для любой живучей системы важна мультипроцессор¬ ность. Ниже перечислены некоторые элементы живучести. 9 Включение механизмов защиты от отказов в аппаратуру, а не в программное обеспечение.
Гл. 17 Защита операционных систем 167 • Использование прозрачного мультипроцессорного режима; это позволяет, не меняя программ, работать на аппаратуре с умень¬ шившейся производительностью. • Использование нескольких подсистем ввода-вывода. • Включение в аппаратуру значительной части операционной си¬ стемы. • Включение в аппаратуру и программное обеспечение.механизмов обнаружения сбоев. По мере все более широкого распространения вычислительных машин пользователи будут надеяться, что их персональные ЭВМ будут работать так же безотказно, как работают холодильники. 17/15 Полномочия и объектно-ориентированные системы В этом разделе мы рассмотрим полномочия и объектно-ориен¬ тированные системы. Сейчас они привлекают большой интерес как средства обеспечения безопасности вычислительных систем. Понятие полномочия было впервые предложено в классической статье Ден¬ ниса и Ван Хорна (Dn 66). Права доступа разрешают некоторому субъекту вполне опреде¬ ленный доступ к некоторому объекту. Субъекты — это пользова¬ тели системы или нечто, действующее от имени пользователей или системы. Объектами являются ресурсы системы. Субъектами могут быть, например, задания, процессы и процедуры. Объектами — файлы, программы, семафоры, директории, терминалы, каналы, контроллеры, устройства, дорожки диска, блоки основной памяти и т. д. Субъекты одновременно рассматриваются и как объекты, поэтому у одного субъекта могут быть права на доступ к другому субъекту. Субъекты — это активные элементы, объекты — пассив¬ ные. В ходе развития системы могут понадобиться новые типы субъ¬ ектов и объектов; мы должны иметь возможность создать их. Полномочие есть некий символ; обладание шм дает субъекту определенные права доступа к объекту. Полномочия напоминают билеты, по которым можно попасть на спортивные зрелища. Обычно полномочия нельзя изменять, но их можно размножать в несколь¬ ких экземплярах. Область защиты определяет права доступа неко¬ торого субъекта ко всевозможным объектам системы. Она представ¬ ляет собой совокупность всех полномочий данного субъекта. Если мы хотим строго следовать принципу наименьших привиле¬ гий, то размер области защиты должен быть небольшим. Однако в этом случае матрица прав доступа будет большой и разреженной. В качестве средства для поддержания малых областей защиты при¬ обретает популярность метод адресации по полномочиям. Полномочие является защищенным именем объекта в системе. Это имя уникально во всей системе. Чтобы субъект мог работать с
168 Часть 7 Компьютерные сети и их безопасность определенным объектом, он должен иметь на это полномочие. В полномочии содержится указание на конкретные права доступа к именуемому объекту, которые это полномочие дает своему облада¬ телю. Создание полномочий является прерогативой тщательно за¬ щищаемых программ операционной системы. Полномочия, как правило, не могут быть изменены, кроме как в сторону сужения прав доступа. Субъект, обладающий полномочием, может все же выполнять определенные операции над ним, включая копирование и передачу полномочия в качестве параметра. При создании объекта одновременно создается и полномочие для этого объекта. Это полномочие с самого начала включает все права доступа к вновь созданному объекту. Субъект, создавший полномочие, может воспользоваться им (для осуществления ука¬ занного доступа к объекту) или же может создать еще несколько копий для передачи другим субъектам. Когда один субъект передает полномочие другому субъекту, он может сузить указанные в полно¬ мочии права доступа. Таким образом, по мере распространения пол¬ номочий по системе, указанные в них права доступа могут оставать¬ ся неизменными или сужаться; расширяться они не могут. В некоторых системах работа с полномочиями встроена в аппара¬ туру обращения к памяти. В этих системах каждое обращение к па¬ мяти использует полномочия. Такой способ действий называется адресацией по полномочиям. В системах с сегментацией памяти используется двумерный адрес v=(s, d), где s — имя сегмента, ad — адрес внутри сегмента. В команде указывается адрес памяти внутри сегмента и полномочие для сегмента. Типичное полномочие может включать идентификатор объекта (или указатель на объект), тип объекта и права доступа к нему, предоставляемые владельцу полномочия. Пользователям должно быть запрещено создание произвольных полномочий. Этого можно достичь путем размещения полномочий в специальных сегментах полномочий, которые недоступны пользо¬ вателям. Другой метод состоит в том, чтобы добавить к каждой ячейке основной памяти однобитовый тег. Этот тег, недоступный пользователю, устанавливается в положение «включено», если в ячейке содержится полномочие, и в этом случае аппаратура разре¬ шает работу с содержимым ячейки только соответствующим систем¬ ным программам. Входящий в полномочия идентификатор может быть реализован в виде указателя на нужный объект или в виде некоторого уникаль¬ ного кода. Указатели упрощают поиск объекта, но их нужно ме¬ нять, если объект перемещается. При использовании уникального кода полномочия менять не надо. Однако этот метод требует опре¬ деления адреса объекта при каждом обращении к нему. Здесь можно эффективно применить хеширование; для уменьшения издержек при повторных обращениях к одному объекту можно использовать ассоциативную память (или кэш-память),
Гл. 17 Защита операционных систем 169 В системах, основанных на полномочиях, часто возникает проб¬ лема потери объектов; если уничтожается последнее полномочие для некоторого объекта, то воспользоваться этим объектом уже невозможно. Поэтому в таких системах всегда должно сохраняться по крайней мере по одному полномочию для каждого объекта. 17.15.1 Перемещение и хранение полномочий Контроль за копированием и перемещением полномочий пред¬ ставляет собой трудную задачу. Обычно системы не разрешают пользователям непосредственно манипулировать полномочиями; вместо этого всевозможные действия с полномочиями выполняются операционной системой по запросам пользователей. Важной задачей операционной системы является учет всех су¬ ществующих полномочий. Задача эта усложняется тем, что в много¬ абонентских системах число полномочий может быть очень боль¬ шим. Операционная система должна охранять полномочия, но так¬ же должна обеспечивать быстрый доступ к ним. Часто для этого все полномочия в системе организуются в структуру директория. 17.15.2 Отмена полномочий Иногда возникает необходимость отменить полномочия, передан¬ ные другому субъекту. Если работа с полномочиями реализуется с помощью системы директорией, то отмена делается сравнительно просто. Однако без такого централизованного управления отмена полномочия может оказаться сложным делом, поскольку полномо¬ чие, возможно, было много раз скопировано. В чрезвычайной ситуации можно, конечно, скопировать объект и уничтожить исходный экземпляр, аннулируя тем самым сомни¬ тельное полномочие. Но такие действия окажут влияние на многие другие субъекты, имеющие полномочия на этот объект. Иногда желательно отменить полномочие вполне определенного субъекта, а также тех, что получили полномочие от данного субъек¬ та. Чтобы иметь возможность выборочной отмены полномочий, мож¬ но сделать так, чтобы все полномочия, созданные из некоторого первичного полномочия на объект, указывали на объект косвенно, через это первичное полномочие. Тогда можно будет отменить кон¬ кретное полномочие, не затрагивая владельцев первичного полномо¬ чия или его копий. Полномочия на доступ к устройствам ввода-вывода, возможно, потребуют различной интерпретации в зависимости от типа устрой¬ ства. Так, полномочие на объект-лентопротяжное устройство могло бы разрешать перемотку, тогда как в случае устройства ввода с пер¬ фокарт перемотки нет.
170 Часть 7 Компьютерные сети и их безопасность 17.16 Пример для изучения: объектно- ориентированная архитектура IBM SYSTEM/38 В ЭВМ IBM System/38(IB80) функции операционной системы выполняются управляющей программой (Control Program Facility, CPF). Архитектура этой ЭВМ имеет высокий уровень и обеспечи¬ вает многие действия по управлению ресурсами и функции супер¬ визора, которые в предыдущих системах обычно включались в про¬ граммное обеспечение. Архитектурой предусмотрена объектно-ориентированная, еди¬ нообразно адресуемая память очень большого объема. Все объекты системы размещаются в памяти. Механизм адресации позволяет единым, не зависящим от устройств образом, адресовать всю па¬ мять с выполнением динамических проверок сохранности и автори¬ зации. В системе команд ЭВМ имеются команды высокого уровня, ра¬ ботающие непосредственно с объектами. Команда создать строит новый объект в соответствии с его атрибутами, заданными в шаблоне. Атрибуты объекта — это, в частности, его имя, его владелец и условия существования (последний атрибут показывает, можно ли неявно уничтожить объект). Типовые операции применимы ко всем объектам, единичные (уникальные) операции — только к объектам определенного типа. Все машинные объекты архитектуры System/38 покрыты оболоч¬ кой — внутренняя структура объекта, порожденного командой «создать», известна только машине. На рис. 17.1 представлены объ¬ екты, с которыми работают команды IBM System/38. Управляющая программа CPF предоставляет пользователю объектно-ориентированный интерфейс. Все данные в системе хра¬ нятся в виде объектов и обрабатываются объектно-ориентированны¬ ми командами. Имеются родовые функции для выполнения автори¬ зации объектов, их пересылки, переименования, вывода на печать, блокировки, сохранения и восстановления. Единичные операции диктуют способ использования конкретного объекта. При создании объекта CPF помещает его имя в некоторый машин¬ ный объект, называемый контекстом. Контексты предстают перед пользователем в виде библиотек или каталогов объектов. Управляющая программа использует машинные объекты в ка¬ честве «строительных блоков» при конструировании объектов для пользователей. Чтобы, например, создать пользовательский объект, называемый файлом базы данных, CPF объединяет память данных, индекс данных, курсор и память. Пользователь видит перед собой фактически единый объект, а именно файл базы данных. Объект высокого уровня, построенный из машинных и других объектов, называется составным объектом. Каждый объект состоит из функциональной части и присоединен¬ ной памяти. Функциональной частью может быть программа. При-
Гл. 17 Защита операционных систем 171 Объект Объяснение Группа доступа Access group Позволяет объединять другие объекты в целях более эффективной пересылки между основной и вторичной памятью Индекс Index Служит для хранения и упорядочения данных Индекс данных Data space index Устанавливает логическую упорядоченность записей, хранящихся в области данных Контекст Context Содержит имя, тип и подтип других объектов для обеспечения адресации Курсор Cursor Обеспечивает адресацию внутри области данных Описание логического устройства Logical unit descrip¬ tion Представляет физическое устройство ввода-вывода Описание контроллера Controller description Представляет контроллер ввода-вывода для группы устройств ввода-вывода Описание сети Network description Представляет один из физических сетевых портов си¬ стемы Очередь Queue Служит для связи между процессами, а также между устройствами и процессами Область памяти Space Хранит указатели и скаляры Область данных Data Space Хранит записи базы данных одного определенного формата Область управления процессом Process control space Содержит исполнение процесса Профиль пользова¬ теля User profile Идентифицирует законного пользователя системы Программа Program Выбирает и упорядочивает машинные команды Рис. 17.1 Объекты в ЭВМ IBM System/38. (Сведения любезно предоставлены фир- мой International Business Machines.) соединенная память — это массив байтов, с которым пользователь машины может непосредственно работать. Объект-память не имеет функциональной части, он обеспечивает память для буферов, ука¬ зателей, управляющих блоков и различных других данных. В System/38 реализован основанный на полномочиях механизм адресации, использующий системные указатели. В системном ука¬ зателе запоминается расположение объекта и права доступа. Соз¬ дание и преобразование системных указателей выполняются только
172 Часть 7 Компьютерные сети и их безопасность специальными командами; пользователь не может создать систем¬ ный указатель с помощью операций над битами. Неразрешенный системный указатель определяет имя объекта, но не его расположение. Как только к этому объекту произойдет обращение и он будет найден, его расположение будет занесено в указатель; системный указатель после этого становится разрешен¬ ным. Расположение объектов отыскивается путем просмотра кон¬ текстов. Система строго следит за безопасностью; при любом обращении к объекту проверяется, имеет ли пользователь права на тот доступ, который он намеревается выполнить, и если нет, то обращение от¬ клоняется и делается запись о попытке нарушения защиты. В механизм доступа к объектам включена неявная синхрониза¬ ция, чтобы предотвратить одновременные доступы. Если один про¬ цесс ведет запись в объект, а другой процесс пытается прочитать объект, то все обращения автоматически выстраиваются в очередь и выполняются последовательно. Однако при попытке одновремен¬ ного чтения обоим процессам разрешается продолжать работу. Пользователи могут выполнять явную синхронизацию посредст¬ вом захватов (замков). При обращении к базе данных можно ис¬ пользовать захват на уровне записей; это резко уменьшает задерж¬ ки, которые могли бы происходить в случае захвата всей базы данных. В CPF для одного из пользователей предусмотрена роль адми¬ нистратора по безопасности. Этому пользователю предоставлен доступ ко всем объектам системы. Фирма IBM поставляет вместе с CPF стандартный набор пользовательских профилей; профиль администратора по безопасности включает разрешение на доступ ко всем объекталМ и разрешение на создание новых пользовательских профилей и изменение существующих. 17.17 Криптография Прежде криптография представляла интерес почти исключи¬ тельно для военных и дипломатов. Ныне она приобрела особую важность для вычислительных систем. Подслушивание сейчас не представляет проблемы. Большое количество деловых операций выполняется с помощью телефона. Быстро растут сети ЭВМ (гл. 16). Все большее применение находит электронная почта и элект¬ ронная пересылка денег. Национальное бюро стандартов (National Bureau of Standards, NBS) приняло стандарт на шифровку данных (Data Encryption Standard, DES) для передачи секретной правительственной инфор¬ мации. Предметом криптографии является преобразование данных та¬ ким образом, чтобы они стали непонятными для всех, кроме тех, кому эти данные предназначены. Проблема сохранения тайны состо¬
Гл. 17 Защита операционных систем 173 ит в том, чтобы предотвратить извлечение информации из канала связи- людьми, не имеющими на то прав. Проблема достоверности имеет дело с защитой передаваемых данных от искажения или до¬ бавления в передачу ложной информации. Проблема подтверждения отправителя состоит в том, чтобы тот, кому направлено сообщение, мог удостовериться в личности отправителя, т. е. требуется создать электронный аналог личной подписи. 17.17.1 Криптографические секретные системы В криптографической секретной системе отправитель желает передать некоторое незашифрованное сообщение (называемое от¬ крытым текстом) определенному «законному» получателю] переда¬ ча происходит по незащищенному каналу, который предположи¬ тельно прослушивается перехватчиком. Отправитель направляет открытый текст в шифровальное уст¬ ройство, которое преобразует открытый текст в зашифрованный текст, или криптограмму, непонятную перехватчику. Зашифро¬ ванный текст затем передается по незащищенному каналу. На при¬ емном конце зашифрованный текст проходит через устройство рас¬ шифровки, и по нему восстанавливается открытый текст. 17.17.2 Анализ шифра Анализ шифра (криптоанализ) — это процесс восстановления открытого текста по зашифрованному без знания ключа расшифров¬ ки; анализ шифра — обычная задача перехватчика. Если перехват¬ чик или криптоаналитик не может восстановить открытый текст по зашифрованному (не зная ключа), то криптографическая система безопасна. 17.17.3 Системы с открытыми ключами Любая криптографическая система не более секретна, чем ее ключи. Передача ключей должна выполняться по особо секретным каналам; эта процедура может занять много времени, не говоря уже о том, что каналов с нужной степенью секретности может попросту не оказаться. Системы с открытыми ключами обходят проблему передачи ключей. В традиционных криптографических системах процессы шифрования и дешифрования тесно связаны. Некто, владеющий единственным ключом для шифрования сообщений, может также и дешифровывать их. В системах с открытыми ключами функции шифрования и дешифрования разделены; ключ шифрования не может быть использован для дешифрования сообщений. В этих системах применяется ключ шифрования Е и ключ дешифрования
174 Часть 7 Компьютерные сети и их безопасность D, причем с вычислительной точки зрения по Е невозможно (за разумное время) определить D. Таким образом, ключ Е можно сделать открытым и это не нару¬ шит секретности D. Тем самым проблема передачи ключей упроща¬ ется. Каждый пользователь порождает ключ шифрования и ключ дешифрования. Ключ шифрования просто обнародуется; ключ де¬ шифрования держится в тайне. Таким образом, послать данному пользователю зашифрованное сообщение может кто угодно (посколь¬ ку ключ шифрования общедоступен), но дешифровать сообщение может только этот пользователь (поскольку ключ дешифрования известен только ему). Часто Е называют открытым ключом, a D — секретным ключом. 17Л1А Цифровые подписи Мы привыкли к тому, что для подтверждения своего согласия с условиями контракта, изложенными на бумаге, или для подтверж¬ дения согласия на передачу денежной суммы, указанной на чеке, человек ставит собственноручную подпись. Однако использование подписей предполагает физическую пересылку бумажного документа и это оказывается непрактичным, если мы хотим обеспечить более широкое применение электронной связи для деловых операций. Поставить подпись может только один человек (хотя, конечно, не исключается возможность подделки), а распознать, что подпись Принадлежит ее автору, могут многие люди. Цифровая подпись, чтобы заменить рукописную, должна позволять любому человеку легко убедиться в ее подлинности, тогда как возможность создать подпись должна быть только у автора. Системы шифрования с открытыми ключами предоставляют нам способ реализации цифровых подписей. Отправитель, чтобы «подписать» свое сообщение, зашифровывает его своим секретным ключом. Получатель с помощью открытого ключа отправителя расшифровывает сообщение. На случай возможных споров получатель сохраняет подписанное сообщение. Если впоследствии отправитель станет отрицать факт посылки данного сообщения, то получатель может представить под¬ писанное сообщение в суд, с тем чтобы судьи могли убедиться, вос¬ пользовавшись открытым ключом отправителя, что зашифрованное сообщение соответствует осмысленному тексту, содержащему фами¬ лию отправителя, время отправки и т. д. Только отправитель мог создать такое сообщение, поэтому суд решит спор в пользу получа¬ теля. Серьезный недостаток описанного метода состоит в том, что он позволяет перехватчику, знающему открытый ключ отправителя, дешифровать сообщение. Дело, однако, легко поправить: отправи¬ тель может к уже зашифрованному тексту добавить еще один уро¬ вень шифрования по открытому ключу получателя, который вое-
Гл. 17 Защита операционных систем 175 становит подписанное сообщение с помощью своего секретного ключа, а затем исходный открытый текст с помощью открытого ключа отправителя. 17.17.5 Схемы шифрования (дешифрования) DES и RSA Внимание читателей, интересующихся криптографией, могут привлечь две схемы шифрования — Стандарт на шифровку данных (Data Encryption Standard, DES) (Na77) и схема Райвеста, Шамира и Эдлемана (RSA) (Ri78). Схема DES симметричная, в ней для шиф¬ рования и дешифрования используется один и тот же ключ. Схема RSA асимметричная, ключи шифрования и дешифрования в ней различаются. В то время, когда писалась эта книга, схема DES была единственной широко распространенной и стандартизованной схемой шифрования. Однако, чтобы продлить ее жизнь за пределы этого десятилетия, потребуется исправить ряд слабых мест этой схемы. Публикация по стандарту DES (Na77) воспроизведена в приложении, начинающемся на с. 357. 17.17.6 Применения Криптография наиболее полезна в системах разделения времени и сетях ЭВМ. В зашифрованнОхМ виде следует хранить пароли, так чтобы даже в случае проникновения в операционную систему список паролей оказался бы бесполезным. В современных вычислительных системах это — самое распространенное применение криптографии. Можно также использовать шифрование для защиты всей хра¬ нимой в вычислительной системе информации. Однако очень боль¬ шие накладные расходы на шифрование и дешифрование делают такой способ действий неприемлемым. Разработка специальной шиф¬ ровальной аппаратуры, безусловно, сделает такую практику повсе¬ местной. Шифрование файлов решило бы одну очень серьезную проблему нынешних распределенных систем: в каждой такой систе¬ ме по крайней мере один человек наделен правом доступа ко всем файлам системы и поэтому пользователи не склонны записывать в систему конфиденциальные сведения. В случае шифрования фай¬ лов пользователи могли бы доверить компьютеру свою самую сек¬ ретную информацию. Если зашифрованная магнитная лента или пакет дисков будут украдены, то шифрование не позволит использовать их. Зашифро¬ ванные копии нет необходимости охранять столь же тщательно, как незашифрованные. Сети ЭВМ привели к появлению у вычислительных систем еще нескольких уязвимых мест. Многоуровневые сетевые протоколы, рассмотренные в гл. 16, допускают шифрование на разных уровнях. При шифровании передач по линиям связи ответственность за шиф¬ рование (дешифрование) возложена на каждый узел; данные пере¬
176 Часть 7 Компьютерные сети и их безопасность даются между узлами в зашифрованном виде, в каждом узле они дешифруются, чтобы определить, куда их следует передавать даль¬ ше, и затем вновь зашифровываются. В методе сквозного шифрования сообщение шифруется в источ¬ нике, а дешифруется только один раз — у получателя. Таким обра¬ зом, информация защищена на всем пути следования, даже если защита одного из узлов нарушена. В сети с коммутацией пакетов и промежуточным хранением, оснащенной средствами сквозного шифрования, адрес получателя, связанный с пакетом, не может быть зашифрован, в каждом узле должна быть возможность прочесть его для определения маршрута следования. Подтверждение пароля при входе в систему также может быть зашифровано. Здесь может оказаться полезной процедура запроса и подтверждения. Пользователь выдает заявку на вход в открытую (т. е. без шифрования). Система, чтобы опознать пользователя, посылает ему в открытом виде строку-запрос. Система должна га¬ рантировать, что строки-запросы не повторяются; можно, например, использовать дату и время, взятое с точностью до миллионных долей секунды. Терминал пользователя зашифровывает этот запрос с помощью введенного пользователем (и известного системе) ключа и посылает результат системе. Система удостоверяется в личности пользователя, сравнивая принятый ключ с тем, что получилось в результате шифрования внутри системы. Все дальнейшие сообщения в этом сеансе шифруются по ключу пользователя. Поскольку ключ никогда не передается, перехватчик будет вынужден выполнить анализ шифра для того, чтобы понять сообщение или же чтобы под¬ менить подлинного пользователя. 17.18 Преодоление защиты операционной системы Вне всякого сомнения, имеется немало людей, в особенности среди студентов университетов, чье любимое времяпрепровожде¬ ние — войти в систему разделения времени, преодолеть ее защитные механизмы и затем с радостью рассказывать всем окружающим о своих достижениях. Преподаватель вдруг замечает, что файлы, где он хранит оценки своих студентов, подверглись корректировке, а системный администратор в ужасе обнаруживает вывешенный на доске объявлений список паролей всех пользователей! Студенты, изучающие операционные системы, получают истинное наслаждение, объясняя сложные случаи успешного преодоления защиты. В одном крупном университете (как гласит молва) преподаватели курса опе¬ рационных систем пообещали наивысшую оценку любому студен¬ ту, кто сможет преодолеть защиту университетской операционной системы; в этом семестре было поставлено непропорционально много наивысших оценок. В некоторых системах для полного преодоления защиты доста¬ точно переустановить бит режима машины и переключить машину
Гл. 17 Защита операционных систем 177 из режима задачи в режим супервизора. Добившись этого, злоумыш¬ ленник сможет выполнять привилегированные команды, получая таким образом доступ ко всем данным, защищаемым операционной системой. Чтобы установить, обладает ли система адекватной защитой от «атак» непривилегированных пользователей, выполняется иссле¬ дование преодоления защиты. Цель этого исследования — выявить проектные просчеты, с тем чтобы они могли быть затем исправлены. Любимый объект для злоумышленников — это управление вво¬ дом-выводом. Программы обслуживания ввода-вывода обычно весь¬ ма сложны; при детальном рассмотрении в них часто выявляются многочисленные ошибки и пробелы. Поскольку каналы ввода-вы¬ вода имеют доступ к главной памяти, то они в принципе могут из¬ менить критическую системную информацию. Канал можно ввести в бесконечный цикл, тем самым лишив систему возможности осу¬ ществлять ввод-вывод; последствия этого для систем, обязанных работать надежно, могут быть самыми катастрофичными. Одной из задач исследования преодоления защиты является оценка объема работы по преодолению защиты, показывающего, как много усилий и ресурсов потребуется приложить потенциаль¬ ному злоумышленнику, чтобы получить несанкционированный доступ к системе. Главная цель механизмов защиты — сделать не¬ обходимый объем работы очень большим; исследование преодоления защиты может показать, что этот объем не столь велик, как предпо¬ лагали разработчики. Линде (Ы75) описывает результаты ряда исследований преодо¬ ления защиты, предпринятых компанией System Development Cor¬ poration. В его статье имеются два основательно выполненных до¬ бавления, в которых суммируются типичные изъяны защиты и способы преодоления защиты. Материал следующих двух разделов взят из этих добавлений. 17.18.1 Типовые функциональные дефекты х) Как оказывается, ряд дефектов кочуют из одной системы в дру¬ гую. В их число входят 9 Идентификация — Во многих системах пользователи не в состоя¬ нии удостовериться, что аппаратура и программы, с которыми они работают, действительно те, что им нужны. В такой ситуации злоумышленник может легко подменить программу втайне от пользователей. В результате пользователь, например, может услужливо сообщить свой пароль подложной программе входа. • Шифрование — Основной список паролей должен храниться в зашифрованном виде. Это зачастую не так. х) Linde R. R., «Operating System Penetration», Proceeding, 1975. National Computer Conference, Vol. 44, AFIPS Presss
178 Часть 7 Компьютерные сети и их безопасность О Реализация — Прекрасно задуманная конструкция защитного механизма может быть неадекватно реализована. 9 Подразумеваемое доверие — Это общая проблема; одна подпро¬ грамма считает, что другая работает правильно, в то время как на самом деле ей следовало бы тщательно проверять параметры, поступающие от второй подпрограммы. @ Общая память — Система может нечаянно оставить критическую информацию в адресном пространстве пользователя. ® Обмен информацией между процессами — Злоумышленник может предпринять различные попытки использовать механизм SEND/ RECEIVE (ПОСЛАТЬ/ПРИНЯТЬ). Например, он может запро¬ сить ресурс системы и предъявить какой-то пароль; возвращае¬ мая информация может содержать признак правильности паро¬ ля, подтверждая догадку злоумышленника. 9 Проверка законности — Система может просто недостаточно строго контролировать параметры пользователя. ® Разрыв связи — В системах разделения времени или сетевых в случае разрыва связи (по какой бы причине он ни произошел) операционная система должна немедленно окончить сеанс работы с пользователем или же сделать так, чтобы пользователю, преж¬ де чем продолжить работу с системой, требовалось бы вновь подтвердить себя. Некоторые системы после разрыва связи пус¬ кают выполняющийся процесс «на произвол судьбы». Злоумыш¬ ленник, возможно, сумеет завладеть управлением над этим про¬ цессом и использовать любые доступные процессу ресурсы. • Беспечность оператора — Злоумышленник может обманным пу¬ тем вынудить оператора поставить на машину поддельный си¬ стемный пакет дисков. • Передача параметров по ссылке, а не по значению — Передавать параметры непосредственно в регистрах более безопасно, чем иметь в регистрах указатели на ячейки памяти, занятые парамет¬ рами. При передаче по ссылке может случиться так, что парамет¬ ры остаются в пространстве памяти пользователя после проверки их корректности. Следовательно, пользователь может предъявить допустимые параметры, дождаться их проверки и затем изменить параметры, прежде чем система использует их. в Пароли — Часто оказывается возможным легко угадать пароли или определить их с помощью повторных проб. • Ловушки для злоумышленников — Системы должны содержать некоторые механизмы, выполняющие роль «приманки» для не¬ опытных злоумышленников. Эти приманки могут составить хо¬ рошую первую линию обнаружения злоумышленников, но в большинстве систем механизмов подобного рода нет. в Привилегии — В некоторых системах слишком много программ имеют слишком большие привилегии. Это противоречит принципу наименьших привилегий. 9 Изоляция программ — Программа, взятая у другого пользова¬
Гл. 17 Защита операционных систем 179 теля, может действовать подобно «троянскому коню»; она может красть или изменять файлы того, кто ею пользуется. 9 Запреты — Пользователей часто предупреждают, что некоторые возможности нельзя использовать, поскольку могут получиться «непредсказуемые» результаты, но в действительности эти воз¬ можности остаются доступными для пользователей. • Отходы — Зачастую, чтобы найти список паролей, злоумышлен¬ нику требуется всего лишь покопаться в корзинке для бумаг. Иногда после работы системных программ остаются «отходы» в памяти. Прежде чем выбрасывать или освобождать носитель (память, бумагу и т. д.), хранящий секретные сведения, следует обязательно забить или иным способом уничтожить записанную информацию. Для этой цели часто применяют бумагоизмельчи- тели. 9 Экранирование — Ток, текущий по проводнику, порождает вокруг него магнитное поле; злоумышленник может фактически подключиться к линии связи вычислительной машины, не имея с ней физического контакта. Для предотвращения такого «неви¬ димого вторжения» можно использовать электрическое экрани¬ рование. 9 Пороговые значения — Этот механизм предназначен для предот¬ вращения таких действий, как, например, повторные попытки входа в систему. После определенного числа некорректных попы¬ ток входа следует заблокировать данного пользователя (или терминал, с которого пытались войти в систему) и сообщить об этом администратору системы. Многие системы не используют это средство. 17.18.2 Типовые «атаки» на операционные системы Против многих систем были успешно применены перечисленные ниже методы преодоления защиты. 9 Асинхронность — При наличии нескольких асинхронно выпол¬ няющихся процессов у процесса появляется возможность изме¬ нить параметры, которые другой процесс проверил на допусти¬ мость, но еще не использовал; таким образом, один процесс мо¬ жет передать другому плохие значения, даже если второй про¬ цесс выполняет тщательную проверку. 9 Просмотр — Пользователь путем просмотра пытается опреде¬ лить, где в системе хранится привилегированная информация. О Подключение к линии — С помощью специального терминала выполняется подключение к линии связи, принадлежащей поль¬ зователю, который вошел в систему, но в данный момент не ра¬ ботает. • Подпольные команды — В операционную систему под видом исправления ошибки вставляются некоторые дополнительные
180 Часть 7 Компьютерные сети и их безопасность команды; эти команды открывают двери для последующего не¬ санкционированного доступа в систему. © Лишение доступа — Пользователь составляет программу, кото¬ рая разрушает систему, вводит ее в бесконечный цикл или моно¬ полизирует системные ресурсы. Цель в данном случае — лишить законных пользователей услуг операционной системы. © Взаимодействующие синхронизированные процессы — Процессы используют системные примитивы синхронизации, чтобы сов¬ местно использовать и передавать друг другу информацию. © Разрыв связи — Злоумышленник пытается получить доступ к задаче пользователя после разрыва связи, но до того, как система узнает о разрыве. © Маскарад — Злоумышленник принимает облик законного поль¬ зователя, узнав с помощью подпольных средств соответствующий опознавательный знак. ® N АК-атака — Во многих системах у пользователя есть возмож¬ ность прервать выполняющийся процесс (например, путем нажа¬ тия клавиши NAK (отрицание) на телетайпе), выполнить неко¬ торые действия и затем продолжить выполнение процесса. Та¬ кие прерывания могут производиться в любой момент. В некото¬ рых случаях злоумышленник может «поймать» систему в неза¬ щищенном состоянии и легко получить в свои руки управление. © Обман оператора — Умный злоумышленник часто может путем обмана заставить оператора совершить действия, ведущие к нарушению секретности системы. 0 Паразитирование — Злоумышленник с помощью специального терминала подключается к линии связи. Злоумышленник пере¬ хватывает сообщения, которыми обменивается пользователь и процессор, и подправляет их либо вовсе заменяет. ® «Троянский конь» — Злоумышленник вставляет в систему про¬ грамму, позволяющую в дальнейшем получить несанкциониро¬ ванный доступ. «Троянский конь» может быть оставлен в системе на все время или же он может после вхождения стереть все свои следы. ® Непредусмотренные параметры — Злоумышленник передает су¬ первизору при вызове непредусмотренные параметры, извлекая выгоду из слабости системного механизма проверки коррект¬ ности. 17.19 Пример для изучения: преодоление защиты одной операционной системы Студенческая группа заключительного курса по информатике Мичиганского университета в Анн-Арборе успешно «проникла» в операционную систему MTS (Michigan Terminal System) (Не80). Исследование касалось только защиты программного обеспечения. Цель состояла в том, чтобы законный и обладающий достаточными
Гл. 17 Защита операционных систем 181 знаниями, но непривилегированный пользователь получил доступ к файлам (к которым у него не было доступа) и вызвал отказ системы. Система MTS — это операционная система общего назначения для вычислительных машин, совместимых с моделями IBM 360/370. Она поддерживает как пакетные, так и диалоговые задачи. Файловая система имеет обширные возможности разделения ресурсов. Система обслуживает около 25 000 пользователей, причем одновременно в режиме диалога могут работать до 250 человек. Члены бригады «взломщиков» были постоянными пользователями MTS. Им была доступна внутренняя документация по системе. Они проделали широкий анализ системы и подготовили отчеты с перечислением всех подозреваемых дефектов. В своей работе сту¬ денты придерживались методологии гипотез о дефектах, разработан¬ ной компанией System Development Corporation. Эта методология включает ® Порождение гипотез о дефектах — Бригада исследует хорошо известные слабости системы и, воспользовавшись своими коллек¬ тивными знаниями о системе, составляет список возможных дефектов. • Подтверждение гипотез о дефектах — Чтобы проверить, дейст¬ вительно ли имеют место подозреваемые дефекты, запускаются специальные тесты. • Обобщение дефектов— Подтвержденные дефекты тщательно изу¬ чаются на предмет того, не влекут ли они другие дефекты или сла¬ бости в конструкции системы. Если это так, то весь цикл вновь повторяется, начиная с порождения гипотез. Бригада, о которой идет речь, обнаружила дефект в некоторых системных программах. Механизмы проверки параметров были недостаточно строги; пользователь мог осуществить запись произ¬ вольных последовательностей битов в системный сегмент, содержа¬ щий большую часть системной информации о задании. Этот дефект позволял пользователю модифицировать системную учетную инфор¬ мацию и менять свой уровень привилегий. Могла быть изменена и информация, касающаяся системы защиты MTS, которая также хранилась в этом системном сегменте, что полностью выводило из строя механизмы защиты. Пользователь мог затем переключить систему из пользовательского режима в режим супервизора и вы¬ полнить привилегированные вызовы супервизора. Один из этих вызовов позволял снять аппаратную защиту памяти, что давало пользователю возможность изменить общие сегменты памяти. Ядро супервизора MTS располагается в таких общих сегментах, так что пользователь, переключив машину в режим супервизора, получал свободный доступ к любой части супервизора и другого программно¬ го обеспечения. Цель достигнута! Система защиты полностью прео¬ долена.
182 Часть 7 Компьютерные сети и их безопасность Ключевым дефектом в механизме проверки параметров было то, что пользователь мог изменить параметры после того, как система проверила их, но до того, как она их использовала. «Взломщики» воспользовались этим дефектом и изменили параметр-адрес так^ чтобы он указывал в системный сегмент, а не в память пользователя. Этот случай еще раз напоминает, как важна тщательная синхрониза¬ ция между программами проверки параметров и программами, кото¬ рые эти параметры используют. Бригада студентов нашла аналогич¬ ные дефекты еще во многих частях MTS. Были обнаружены и другие типы дефектов. Так, можно было заставить некоторые компоненты системы записать критическую информацию в сегменты, доступные пользователю. Студенты могли весьма интересным способом получить бесплатное машинное время: они завершали задание аварийно, но так, что системные программы учета не срабатывали. Тщательное изучение доступной пользовате¬ лям общей памяти показало, что в ней бывает записана крайне сек¬ ретная информация (скажем, пароли). Студенты смогли также ис¬ портить систему; они обнаружили, что определенная последователь¬ ность команд вводит супервизор в бесконечный цикл. Было найдено, что механизмы защиты операционной системы опираются на правильность работы друг друга. После того как группа преодолела один из механизмов, ей сравнительно легко дались и другие, даже на более высоком уровне привилегий. Заключение В условиях возрастающей доступности вычислений все более серьезной становится проблема безопасности. Передача данных и объединение компьютеров в сети сильно увеличивают уязвимость компьютерных систем. Концепция дружественности к пользователю тоже ведет к большей уязвимости. Цели совместного использования ресурсов и защиты противоре¬ чат друг другу. Для простой системы гораздо легче определить сте¬ пень ее защищенности, чем для сложной. Требования по безопасно¬ сти заданной системы говорят нам, какой смысл вкладывается в по¬ нятие защищенности этой системы. Весьма важен комплексный подход к вопросам защиты. В задачи обеспечения внешней безопасности входят защита вычислительной системы от злоумышленников и от стихийных бедствий. Безопас¬ ность интерфейса пользователя подразумевает установление лич¬ ности пользователя, прежде чем ему будет позволено работать с системой. Внутренняя безопасность имеет дело с обеспечением на¬ дежной и неискаженной работы вычислительной системы и защитой программ и данных от разрушения. Авторизация (распределение полномочий) — это определение того, у кого и какие имеются права доступа. С помощью разделения обязанностей между людьми мы достигаем того2 что ни один исполни¬
Гл. 17 Защита операционных систем 183 тель работы не имеет дела со значительной частью всех действий системы и, следовательно, попытка^нарушения защиты потребует привлечения нескольких работников. В задачи надзора входит наблюдение за работой системы и ее ревизия, а также идентификация пользователей. В методе профилак¬ тического контроля критические операции могут выполняться толь¬ ко операционной системой, но не непосредственно пользователями. Для выполнения этих операций служат безопасные программы. В тех случаях, когда безопасная программа должна иметь большие права доступа, чем имеются у пользовательской программы, го¬ ворят о расширении прав. В настоящее время чаще всего используется простая схема удо¬ стоверения личности с помощью паролей. Короткие пароли часто бывает возможно определить путем повторных проб. Шифрование основного списка паролей помогает сохранить пароли в тайне даже в случае проникновения в систему. Пароли следует часто менять. Журнал ревизии содержит постоянно обновляемый список собы¬ тий, происшедших в вычислительной системе; он хорошо защищен. Журнал ревизии — сдерживающий фактор для тех, кто мог бы попытаться нарушить защиту. Права доступа определяют, какой доступ имеют различные субъекты к различным объектам. Наиболее критичные защитные меры реализуются в безопасных ядрах. Живучей вычислительной системой называется такая система, которая продолжает работать даже после отказа одной или нескольких ее компонент. Одним из ключевых моментов для обеспечения живучести является избыточ¬ ность. Для повышения живучести следует включать в аппаратуру механизмы защиты от отказов, использовать прозрачную мульти¬ процессорную обработку, использовать многочисленные подсистемы ввода-вывода, встраивать значительную часть операционной систе¬ мы в аппаратуру и включать в аппаратуру механизмы обнаружения сбоев. Системы, основанные на полномочиях, и объектно-ориентирован¬ ные системы исследуются в настоящее время как средство достиже¬ ния безопасности вычислительных систем. Права доступа некоторого субъекта ко всевозможным объектам системы определяются его областью защиты. Маленький размер области защиты существен для соблюдения принципа наименьших привилегий. Чтобы субъект мог работать с определенным объектом, он должен иметь полномо¬ чие на это. Проблема утери объектов касается ситуации, когда по¬ следнее полномочие к некоторому объекту исчезает. Сложным де¬ лом может оказаться отмена полномочия, поскольку оно могло быть много раз скопировано. ЭВМ IBM System/38 обеспечивает объектно-ориентированную среду работы, основанную на полномочиях. В ее системе команд имеются команды высокого уровня, работающие непосредственно с объектами. Машинные объекты этой ЭВМ покрыты оболочкой; их
184 Часть 7 Компьютерные сети и их безопасность внутренняя структура известна только машине. Все имена объектов помещаются в объекты, подобные каталогам, которые называются контекстами. В этой главе приведена сводка машинных объектов архитектуры System/38. Полномочия в System/38 реализованы посредством системных указателей. Система строго следит за безопасностью; при любом обращении к объекту проверяется, имеет ли пользователь права на тот доступ, который он намеревается выполнить. МеханиЗхМ неявной синхронизации предотвращает одновременные доступы. Админист¬ ратор по безопасности имеет доступ ко всем объектам системы. Большую роль в обеспечении безопасности нынешних вычисли¬ тельных систем играет криптография. Национальное бюро стандар¬ тов приняло Стандарт на шифровку данных (DES) для передачи секретной правительственной информации. В криптографии вызы¬ вает интерес проблема сохранения тайны, проблема достоверности и проблема идентификации отправителя. Отправитель зашифровывает исходный открытый текст и полу¬ чает шифрованный текст, который он посылает получателю по не¬ защищенному каналу, прослушиваемому перехватчиком. Получа¬ тель дешифрует зашифрованный текст и восстанавливает первона¬ чальный открытый текст. Анализ шифра (криптоанализ) — это процесс восстановления открытого текста по зашифрованному без знания ключа расшифровки. В системах с открытыми ключами функции шифрования и дешиф¬ рования разделены; каждая из них требует своего ключа. Один из этих ключей, открытый, не засекречивается, другой сохраняется в тайне. Сообщение, зашифрованное посредствОхМ открытого ключа пользователя, может быть дешифровано только этим пользователем. Системы с открытыми ключами дают возможность реализовать циф¬ ровые подписи, удостоверяющие личность отправителя сообщения. Две наиболее важные схемы шифрования — это Стандарт на шифровку данных (DES) и схема Райвеста, Шамира и Эдлемана (RSA). Схема DES симметрична, в ней для шифрования и дешифро¬ вания используется один и тот же ключ; в асимметричной схеме RSA для этих целей служат различные ключи. В современных операционных системах шифрование чаще всего используется для защиты основного системного списка паролей. Можно также применить шифрование и для защиты данных, запи¬ санных в файлах; при этом файлы пользователя станут бесполезными для всех остальных, включая даже системного администратора, которому доступны все данные в системе. Зашифрованные копии лент и дисков нет необходимости охра¬ нять столь же тщательно, как незашифрованные. При шифровании передач по линии связей операции шифрования и дешифрования выполняются в каждом узле компьютерной сети. В методе сквозного шифрования сообщения зашифровываются только в их источнике, а расшифровываются только в получателе. Процедура запроса и
Гл. 17 Защита операционных систем 185 подтверждения позволяет системе опознать пользователя при входе, и для этого не требуется передавать ключ. Системы защиты операционных систем должны противостоять попыткам проникновения со стороны непривилегированных поль¬ зователей; однако обеспечение абсолютной защиты операционной системы — невыполнимая задача. Лучшее, на что можно рассчиты¬ вать, это высокая сопротивляемость системы попыткам проникнове¬ ния. Исследование преодоления защиты ставит своей целью оце¬ нить объем работы по преодолению защиты системы, т. е. величину усилий и ресурсов, которые придется затратить для проникновения в систему. Исследования различных групп обнаружили большое число типовых функциональных дефектов, которые позволяют успешно проникнуть в систему. Они перечислены в этой главе. Разработчикам операционных систем надлежит тщательно изучить этот список, чтобы не допустить появления таких дефектов в разрабатываемых системах. В главе также представлен список типовых «атак» на опе¬ рационные системы. Если разработчик операционных систем хочет создать защищенную систему, то ему следует познакомиться с ме¬ тодами работы злоумышленников. Завершает главу обсуждение исследования по преодолению защиты, предпринятого в Мичиганском университете. Защита опе¬ рационной системы MTS была успешно преодолена несколькими способами бригадой студентов, которым были доступны системная документация и листинги с исходными текстами; с системой они могли работать только на правах обычных непривилегированных пользователей. Студенты использовали методологию гипотез о де¬ фектах, разработанную компанией System Development Corporati¬ on; предполагаемые дефекты были выписаны, проверены и затем обобщены с целью выявления новых дефектов и слабых мест систе¬ мы. Ключевым дефектом, позволившим полностью завладеть систе¬ мой, оказался изъян в механизме проверки параметров. Пользова¬ тель имел возможность изменить параметры после их проверки, но до фактического использования их операционной системой. Терминология абстрактные объекты (abstract objects) авторизация (распределение полномочий) (authorization) администратор по безопасности (security administrator) адресация по полномочиям (capability-based addressing) анализ шифра, криптоанализ (cryptanalysis) асимметричное шифрование (asymmetric encryption) асинхронная «атака» (asynchronous attack) безопасность, защита (security) безопасность интерфейса пользователя (user interface security)
186 Часть 7 Компьютерные сети и их безопасность безопасные программы (surveillance programs) внешняя безопасность, защита (external security) внутренняя безопасность, защита (internal security) дешифрование (decryption) живучие системы (survivable systems) журнал ревизии (audit log) зашифрованный текст (ciphertext) защита от бедствий (protection against disasters) защита от злоумышленников (protection against intruders) защита паролями (password protection) идентификация пользователя (user autentification) избыточность (redundancy) изоляция (confinement) исследование по преодолению защиты (penetration study) классификация (classification) команда «создать» (create instruction) контекст (context) Криптографическая система (cryptosystem) кр и птогр афи я (сг ур togrа р h у) лишение доступа (denial-of-access) ловушка для злоумышленников (penetrator entrapment) методология гипотез о дефектах (flaw hypothesis methodology) незащищенный канал (insecure channel) неразрешенная системная ссылка (unresolved system pointer) область защиты (protection domain) обман оператора (operator spoof) обобщение дефектов (flaw generalization) объект-память (space object) объектно-ориентированная система (object-oriented system) объекты (objects) объем работы по преодолению защиты (penetration work factor) операционная безопасность, защита (operational security) открытый ключ (public key) открытый текст (plaintext) отмена полномочий (revocation of capabilities) паразитирование (piggyback) перехватчик (eavesdropper) плавная деградация (graceful degradation) повторные пробы (repeated trials) подтверждение гипотез о дефектах (flaw hypothesis confirmation) покрытие оболочкой (encapsulation) полномочие, мандат (capability) порождение гипотез о дефектах (flaw hypothesis generation) права доступа (access rights) преодоление защиты операционной системы (operating system penet¬ ration) принцип наименьших привилегий (principle of least privilege)
Гл. 17 Защита операционных систем 187 проблема достоверности (authentication problem) проблема подтверждения отправителя (problem of dispute) проблема сохранения тайны (privacy problem) проблема утери объектов (lost object problem) проверка, контроль (monitoring) проверка законности (legality checking) прозрачная мультипроцессорная обработка (transparent multiproces- sing) просмотр (browsing) профилактический контроль (threat monitoring) процедура запроса и подтверждения (challenge and response proce¬ dure) разделение обязанностей (division of responsibilities) разрешенная системная ссылка (resolved system pointer) ревизия (auditing) секретный ключ (private key) симметричное шифрование (symmetric encryption) система с открытыми ключами (public key system) системный указатель, ссылка (system pointer) сквозное шифрование (end-to-end encryption) составной объект (composite object) список полномочий (мандатов) (capabilities list) Стандарт на шифрование данных (Data Encryption Standard, DES) субъекты (subjects) типовые «атаки» на операционные системы (generic operating system attacks) типовые (родовые) операции (generic operations) типовые функциональные дефекты (generic system functional flaws) требования по безопасности (security requirements) «Троянский конь» (Trojan Horse) расширение прав (amplification) управляющая программа (Control Program Facility, CPF) устройства обнаружения (detection mechanisms) физическая безопасность, защита (physical security) цифровая подпись (digital signature) шифрование (encryption) шифрование передач по линиям связи (link encryption) NAK-атака (NAK attack) Упражнения 17.1 Почему точная формулировка требований по безопасности критична для ответа на вопрос, является ли безопасной данная система? 17.2 Дружественность по отношению к пользователю может повышать уязви¬ мость системы. Почему? 17.3 Цели совместного использования ресурсов и цели защиты противоречат друг другу. Приведите пять существенных примеров совместного использования в операционных системах. Для каждого из них объясните, какие механизмы защиты необходимы, чтобы контролировать совместное использование,
188 Часть 7 Компьютерные сети и их безопасность 17.4 Как используются при профилактическом контроле безопасные программы? Опишите несколько проверок, которые могла бы выполнять безопасная программа с целью обнаружения попыток пользователя испортить важный файл. 17.5 Приведите несколько причин того, что в современных системах для иден¬ тификации чаще всего используется простая схема защиты паролями. Рассмотрите слабые места этой схемы. 17.6 Что такое журнал ревизии? Какую информацию операционная система могла бы хранить в журнале ревизии? Каким образом журнал ревизии сдержи¬ вает попытки потенциальных нарушителей защиты? 17.7 Некий вольный эксперт по защите операционных систем предложил сле¬ дующий экономный способ достижения достаточно высокого уровня безопасности. Нужно всего лишь рассказать всем работающим на установке, что операционная система включает самые новейшие достижения по части защиты. Не разрабаты¬ вайте эти механизмы на самом деле, сказал эксперт, просто сообщите всем, что они есть! Кого такая схема могла бы удержать от попыток преодоления защиты? Кого она не остановит? Рассмотрите достоинства и недостатки этой схемы. На установках какого типа она была бы полезна? Предложите простую модификацию, в результате которой эта схема стала бы значительно более эффективной, оставаясь по-прежнему много экономичной, чем защита, реализованная по полной программе. 17.8 В чем заключается принцип наименьших привилегий? Приведите несколько доводов в его пользу. Для того чтобы подход к защите на основе принципа наи¬ меньших привилегий оказался эффективным, необходимо иметь маленькие области защиты; почему это так? Почему для обеспечения малости областей защиты осо¬ бенно полезно применить полномочия? 17.9 В чем разница между списком полномочий и списком доступа? 17.10 Почему разработчикам операционных систем важно знать криптографию? Перечислите несколько мест в операционных системах, где применение крипто¬ графии позволило бы резко повысить безопасность. 17.11 Что такое безопасное ядро? Какой тип функций контролируется безопас¬ ным ядром? Приведите несколько обоснований необходимости делать безопасное ядро но возможности малым. Какие факторы влияют па то, что размеры безопас¬ ного ядра оказываются больше, чем того хотели разработчики. 17.12 Почему определенные функции по защите операционных систем желатель¬ но встроить непосредственно в аппаратуру? Почему некоторые функции защиты полезно реализовать на микропрограммном уровне? 17.13 Что такое живучая вычислительная система? Почему интерес к таким системам быстро растет? Перечислите несколько методов повышения живучести вычислительных систем. 17.14 Дайте краткие определения каждого из следующих терминов: а) Криптография; б) Стандарт на шифрование данных (DES); в) проблема сохранения тайны; г) проблема идентификации; д) проблема идентификации отправителя; е) открытый текст; ж) зашифрованный текст; з) незащищенный капал; и) перехватчик; к) анализ шифра (криптоанализ). 17.15 Дайте краткие определения каждого из следующих терминов: а) система с открытыми ключами; б) открытый ключ; в) секретный ключ; г) цифровая подпись; д) шифрование передач по линиям связи; е) сквозное шифрование; ж) процедура запроса и подтверждения,
Гл. 17 Защита операционных систем 189 17.16 Почему ввод-вывод предоставляет так много возможностей по преодоле¬ нию защиты? 17.17 Что такое объем работы по преодолению защиты? Почему его так трудно определить? 17.18 Приведите доводы за и против включения в операционные системы лову¬ шек для злоумышленников. 17.19 Асинхронные «атаки» на операционную систему могут быть осуществлены и в однопроцессорной системе, но они представляют гораздо более серьезную проблему в мультипроцессорных системах и сетях. Объясните причины этого, 17.20 Почему «атаки» с целью лишения доступа столь сильно заботят разработ¬ чиков операционных систем? Перечислите как можно больше программных спо¬ собов, которые могли бы быть использованы для лишения доступа полноправных пользователей. 17.21 Объясните, каким образом система шифрования с открытыми ключами дает нам эффективный способ реализации цифровых подписей. 17.22 Объясните, какую пользу может принести криптография в каждой из следующих областей: а) защита главного системного списка паролей; б) защита хранимых файлов; в) защита уязвимых передач в компьютерных сетях; г) идентификация пользователей при входе в систему. 17.23 Резюмируйте результаты исследования по преодолению защиты операци¬ онной системы MTS. Семестровый проект 17.24 Выполните исследование по преодолению защиты какой-либо знакомой вам большой вычислительной системы. Примите во внимание следующее: а) Исследование выполняйте только в сотрудничестве с администрацией и персоналом вычислительного центра. б) Договоритесь о свободном доступе ко всей имеющейся документации по системе и листингам с текстами программ и микропрограмм. в) Дайте слово, что вы не будете разглашать любой обнаруженный вами дефект до тех пор, пока он не будет исправлен. г) Подготовьте детальный отчет, описывающий ваши находки и содержащий предложения по исправлению дефектов. з) Вашими основными целями должны быть: (I) полное преодоление защиты системы; (II) лишение полноправных пользователей доступа к системе; (III) нарушение работы системы. г) Вы можете работать с системой только посредством обычных механизмов^ доступных непривилегированным пользователям. ж) Ваши «атаки» должны быть направлены на программное и (или) микро¬ программное обеспечения. Литература (Ап75) Andrews G., «Partitions and Principles for a Secure Operating System»^ Proc. ACM, October 1975. (At76) Attanasio C. R., Markstein P. W., Phillips R. J., «Penetrating an Opera¬ ting System: A Study of VM/370 Integrity», IBM Systems Journal, VoL 11, No. 1, 1976, pp. 102—118. (Ba80) Bahad M., Hopper J. A., «Data Element Security and its Effects on File Segmentation», IEEE Trans, on Soft. Eng., Vol. SE-6, No. 5, September 1980, pp. 402—410. (Bi74) Bisbey R., Popek G., «Encapsulation: An Approach to Operating System Security», Proc, ACM, November 1974, Vol, 2,
190 Часть 7 Компьютерные сети и их безопасность (С181) (Сг81) (De77) (De79) (De81) (De81a) (Dn66) (Di79) (Do75) (Fe81) (Ga78) (Gt78) (Go78) (Gu80) (Ha76) (He80) (H08O) (Hs79) (IB80) (J08O) (Kr79) (Kr80) (La81) (Le79) (Li75) (Li76) (Mc79) CheheylM. H., et al., «Verifying Security», ACM Computing Surveys i Vol. 13, No. 3, September 1981, pp. 279—339. «Report of the Public Cryptology Group», CACM, Vol. 24, No. 7, July 1981, pp. 434—450. Denning D. E., Denning P. J., «Certification of Programs for Secure In¬ formation Flow», CACM, July 1977, pp. 504—513. Denning D. E., Denning P. J., «Data Security», ACM Computing Surveys, Vol. 11, No. 3, September 1979, pp. 227—249. Denning D., «Secure Personal Computing in an Insecure Network», CACM, Vol. 22, No. 8, August 1981, pp. 476—482. Denning D. E., Sacco G. M., «Timestamps in Key Distribution Proto¬ cols», CACM, Vol. 24, No. 8, August 1981, pp. 533—536. Dennis J. B., Van Horn E. C., «Programming Semantics for Multipro¬ grammed Computations», CACM, Vol. 9, No. 3, March 1966, pp. 143—155. Diffie W., Hellman M. E., «Privacy and Authentication: An Introduction to Cryptography», Proc. IEEE, Vol. 67, No. 3, March 1979, pp. 397—427. Donovan J. J., Madnick S. E.s «Hierarchical Approach to Computer Sys¬ tem Integrity», IBM Systems Journal, Vol. 14, No. 2, 1975, pp. 88—202. Fernandez E. B., Summers R. C., Wood C., Database Security and Integ¬ rity, Reading, Mass.: Addison-Wesley, 1981. Gaines R. S., Shapiro N. Z., «Some Security Principles and Their Appli¬ cation to Computer Security», Operating Systems Review, Vol. 12, No. 3, July 1978, pp. 19—28. Gait J., «Easy Entry: The Password Encryption Problem», Operating Systems Review, Vol. 12, No. 3, July 1978, pp. 54—59. Gorski J., «А Modular Representation of the Access Control System»,- Operating Systems Review, Vol. 12, No. 3, July 1978, pp. 61—78. Gudes E., «The Design of a Cryptography-Based Secure File System», IEEE Trans, on Soft. Eng., Vol. SE-6, No. 5, September 1980, pp. 411 — 420. Harrison M., Ruzzo W., Ullman J., «Protection in Operating Systems», CACM, Vol. 19, No. 8, August 1976. Hebbard B., et al., «А Penetration Analysis of the Michigan Terminal System», Operating Systems Review, Vol. 14, No. 1, June 1980, pp. 7—20. HochC., Browne J. C., «An Implementation of Capabilities on the PDP-11/45», Operating Systems Review, Vol. 13, No. 3, July 1980, pp. 22— 32. Hsiao D. K., Kerr D. S., Madnick S, E., Computer Security, Academic Press, 1979, IBM Systemic Technical Developments, IBM Corporation, General Sys¬ tems Division, Atlanta, Ga.: G580-0237-1, July 1980. Jones A. K., «Capability Architecture Revisited», Operating Systems Review, Vol. 14, No. 3, July 1980, pp. 33—35. Krause L.. MacGahan A., Computer Fraud and Counter measures, Engle¬ wood Cliffs, N.J.: Prentice-Hall, 1979. Krieger M. M., «Current and Proposed Computer Crime Legislation», Computer Law Journal, Vol. 2, No. 3, 1980, pp. 721—771. Landwehr Carl E., «Formal .Models for Computer Security», ACM Comput¬ ing Surveys, Vol. 13, No. 3, September 1981, pp. 247—278. Lempel A., «Cryptology in Transition», ACM Computing Surveys, Vol. 11, No. 4, December 1979, pp. 286—301. Linde R. R., «Operating System Penetration», AFIPS Conf. Proc,, Vol. 44, 1975. Linden T. A., «Operating System Structures to Support Security and Reliable Software», ACM Computing Surveys, Vol. 8, No. 4, December 1976, pp. 409—445. McCauley E. J., «KSOS: The Design of a Secure Operating System». AFIPS Conf. Proc., Vol. 48, 1979, pp. 345—353,
Гл. 17 Защита операционных систем 191 (Мс74) (Ме81) (М176) (Мо79) (Му80) (Na77) (Ог72) (Р180) (Ро74) (Ро78) (Ро79) (Рг75) (Ri78) (Sa74) (Sr77) (Sc77) (Sc77a) (Sh77) (Si79) (Sy76) (Wa79) (Wa80) (Wi81) (Yo81) McPhee J., «Operating System Integrity», IBM Systems Journal, Vol. 13, No. 3, 1974. Merkle, R. C., and M. E. Hellman «On the Security of Multiple En¬ cryption», CACM, Vol. 24, No. 7, July 1981, pp. 465—467. Millen, J., «Security Kernel Validation in Practice,» CACM, Vol. 19, No. 5. May 1976. Morris, R., and K. Thompson, «Password Security: A Case History», CACM, Vol. 22, No. 11, November 1979. Myers, G. J., and B. R. S. Buckingham, «Л Hardware Implementa¬ tion of Capability-Based Addressing», Operating Systems Review, Vol. 14, No. 4, October 1980, pp. 13—25. National Bureau of Standards, «Data Encryption Standard», January 1977, NTIS NBS-FIPS PUB 46. Organick, E. I., The Multics System: An Examination of Its Struc¬ ture, Cambridge, Mass.: M.I.T. Press, 1972. Pinnow, K. W., J. G. Ranweiler; and J. F. Miller, «System/38 Object- Oriented Architecture», IBM Systemf38 Technical Developments, IBM Corporation, General Systems Division, Atlanta, Ga.: G580-0237-1, July 1980, pp. 55—58. Popek, J., and C. Kline, «Verifiable Secure Operating System Softwa¬ re», AFIPS Conference Proc., Vol. 43, 1974. Popek, G. J., and C. S. Kline, «Issues in Kernel Design», AFIPS Conf. Proc., 1978 NCC, Vol. 47, pp. 1079—1086. Popek, G. J., and C. S* Kline, «Encryption and Secur Computer Net¬ works», ACM Computing Surveys, Vol. 11, No. 4, December 1979, pp< 331-356. «Computer Security Guidelines for Implementing the Privacy Act of 1974», NBC FIPS Pub. 41, May 1975. Rivest, R. L.; A. Shamir; and L. Adleman, «On Digital Signatures and Public Key Cryptosystems», CACM, Vol. 21, No. 2, February 1978,. pp. 120—126. Saltzer, J. H., «Protection and the Control of Information Sharing in Multics», CACM, Vol 17, No. 7, July 1974, pp. 388—402. Schiller, W. L., «The Design and Abstract Specification of a Multics Security Kernel», Bedford, Mass.: The Corp,, November 1977, MTR-3 294. Vol. I. EST-TR-77-259, Vol I (NTIS AD A04876). Schroeder, M. D.; D. D. Clark; and J. H. Saltzer, «The Multics Ker¬ nel Design Project», Proc. Sixth ACM Symposium on Operating Systems Principles, in Operating Systems Review, Vol. 11, No. 5, 1977, pp. 43—56. Schroeder, M. D.; D. D. Clark; J; H. Saltzer; and D. H. Wells, Final Report of the Multics Kernel Design Project, MIT-LCS-TR-96, 1977. Shankar, K. S., «The Total Computer Security Problem: An Overview»# IEEE Computer, June 1967, pp. 50—65. Simmons, G. J., «Symmetric and Asymmetric Encryption», ACM Com¬ puting Surveys, Vol. 11, No. 4, December 1979, pp. 305—330. Sykes, D., «Protecting Data by Encryption», Datamation, Vol. 22,- No. 8, August 1976. Walker B., Kemmerer R., Popek G., «Specification and Verification of the UCLA UNIX Security Kernel», Proc. Seventh ACM Symposium on Operating Systems Principles, December 1979. Walker S. T., «The Advent of Trusted Computer Operating Systems»,- AFIPS Conf. Proc., NCC 1980, Vol. 49, pp. 655—665. Wilkinson A. L., et al., «А Penetration Analysis of a Burroughs Large Systems», Operating Systems Review, Vol. 15, No. 1, January 1981, pp. 14— 25. Young C. R., «А Security Policy for a Prefile-Oriented Operating System», AFIPS Conf, Proc., NCC, 1981, pp5 273-282..
ЧАСТЬ 8 Примеры для изучения Глава 18 Пример для изучения: система UNIX1’ В малости красота. Афоризм Шумахера ...повышение эффективности работы за счет «дру¬ жественной обстановки'» и качественного инструмен¬ тария — самое существенное для удовлетворения посто¬ янно растущих запросов на программное обеспечение. М. Д. Мак-Илрой, Е. Пинсон, Б. Таг 18.1 18.2 18.3 18.4 18.5 18.6 18.7 18.8 18.9 18.10 Введение История Версии системы UNIX 18.3.1 Стандартные системы UNIX 18.3.2 Система PWB/UNIX — рабочее место программиста 18.3.3 Система MINI-UNIX 18.3.4 UNIX/V7 — седьмое издание системы Цели проекта Управление процессами 18.5.1 Создание процессов 18.5.2 Примитив ехес 18.5.3 Синхронизация процессов 18.5.4 Планирование процессов 18.5.5 Вталкивания-выталкивания 18.5.6 Завершение процессов Система ввода-вывода 18.6.1 Ввод-вывод потока и ввод-вывод записей Файловая система Оболочка 18.8.1 Транспортеры и фильтры 18.8.2 Мультизадачное^ Производительность против удобства XENIX — коммерческий стандарт системы UNIX 18.10.1 Об истории системы XENIX 18.10.2 Система XENIX 18.1 Введение В области разработки операционных систем известно много неудач и дорогостоящих провалов, однако можно привести примеры и исключительно успешных разработок. Одна из них — операцион¬ ная система UNIX, созданная фирмой Bell Laboratories (Ri78). Система UNIX проектировалась как инструментальная система для разработки программного обеспечения. Она располагает простым, х) UNIX — торговая марка фирмы Bell Laboratories.
Гл. 18 Пример для изучения: Система UNIX 193 но мощным командным языком и независимой от устройств файло¬ вой системой. Системы UNIX работают на сотнях машин корпорации Bell System, они также пользуются популярностью в университетах и промышленных предприятиях. Есть версии, предназначенные для персональных компьютеров. Минимальная конфигурация, доста¬ точная для работы в режиме разделения времени со многими поль¬ зователями, включает 16-битовый процессор, основную память ем¬ костью 256 Кбайт и магнитный диск с быстрым доступом. 18.2 История С 1965 по 1969 год фирма Bell Laboratories, совместно с компанией General Electric (впоследствии с Honeywell) и исследовательской группой Project МАС Массачусетского технологического института участвовала в создании системы Multics. Предназначенная изна¬ чально для работы на большой и мощной машине GE-645, Multics представляла собой гигантскую сложную систему. Она была уни¬ версальным средством, созданным для удовлетворения разнообраз¬ ных запросов больших коллективов пользователей. В 1969 г. фирма Bell Labs вышла из числа участников работы над системой Multics. Часть освободившихся сотрудников начала работать над много менее амбициозной системой, получившей назва¬ ние UNIX. Группа разработчиков во главе с сотрудником фирмы Кеном Томпсоном поставила своей целью создать удобную опера¬ ционную обстановку для проведения исследовательских работ в области программирования. Первая версия системы UNIX пред¬ назначалась для машины PDP-7 фирмы DEC и была написана на языке ассемблера. Работы над системой UNIX привлекли Денниса Ритчи, благо¬ даря которому к 1972 г. система была переписана на языке высокого уровня Си (Jo78), (Ке78), (Ri78b). В результате программы системы UNIX стали более мобильными и понятными. Объем готовых про¬ грамм системы (машинный код) вырос на одну треть по сравнению с ассемблерной версией, но частично этот рост объяснился добавле¬ нием режима мультипрограммирования и возможности использо¬ вать общие реентерабельные процедуры. В то время, когда стала распространяться информация о системе UNIX, разработанной Томпсоном и Ритчи, машина PDP-11 уже была довольно популярной в университетах. В 1973 г. фирма Western Electric согласилась дать разрешение на использование системы в некоммерческих организациях. Тем самым система UNIX стала доступной в десятках учебных институтов. К 1975 г. система UNIX стала очень популярной в университе¬ тах, и возникла организация пользователей, в процессе развития которой сформировалась группа, называемая USENIX. Первым «изданием» системы UNIX для широкого круга потребителей была 7 № 581
194 Часть 8 Примеры для изучения версия пять. Она была больше похожа на результат научно-иссле¬ довательской работы, чем на законченное изделие. Версия шесть появилась в 1975 г. и до сих пор работает во многих местах. В седь¬ мой версии системы, выпущенной в 1979 г., в основном завершена доводка и наведен «лоск», сделавший систему UNIX пригодной к поступлению на рынок. 18.3 Версии системы UNIX Созданная первоначально для компьютеров семейства PDP-11, система UNIX была перенесена и на многие другие вычислительные системы. В 1977 г. появилась реализация системы для Interdata 8/32. Сейчас существуют версии для многих больших компьютеров и для разнообразных микропроцессоров. Первой версией для боль¬ шой машины была версия для UNIVAC 1100. В системе UNIX можно работать на машинах VAX компании DEC (см. гл. 19) х). Сейчас реально используются несколько версий системы. В бли¬ жайших следующих разделах мы рассмотрим наиболее распростра¬ ненные из них. Затем в этой главе мы опишем некоторые специали¬ зированные версии системы UNIX. 18.3.1 Стандартные системы UNIX Стандартные системы UNIX—это операционные системы с мультипрограммированием и разделением времени, предназначен¬ ные в основном для компьютеров DEC PDP-11/34, 40, 45 и 70. Они обеспечивают операционную обстановку для небольшого вы¬ числительного центра с числом пользователей, не превышающим 40. На данный момент — это самые популярные системы. В них зало¬ жена иерархическая файловая система с полной защитой, работа со съемными томами, независимость от устройств и инструментальные средства, упрощающие создание программных систем. Любая про¬ грамма или группа программ без каких-либо изменений может быть исполнена асинхронно, как программа переднего плана (интерак¬ тивно) и как фоновая программа (не требующая внимания). В системе UNIX пользовательские программы ничем не отлича¬ ются от системных программ, за исключением ограничений, налагае¬ мых защитой файлов. Буферизация ввода-вывода, выделение прост¬ ранства в основной памяти и на дисках осуществляется системой ав¬ томатически и невидимо для пользователя. Компилятор с языка Си для всех оттранслированных программ дает реентерабельный и разделяемый код. Система UNIX предоставляет пользователю возможность напра¬ вить выход одной программы непосредственно на вход другой. Ч Существует версия системы UNIX, работающая под управлением VM/370, описываемой в гл. 22.— Прим, перев.
Гл. 18 Пример для изучения: Система UNIX 195 В результате большие программные системы можно создавать путем композиции имеющихся небольших программ, а не путем написания новых, и это существенно упрощает разработку. Стандартные системы UNIX поставляются с набором приклад¬ ных пакетов программ, включающим редактор текстов, программи¬ руемый интерпретатор командного языка, компиляторы нескольких распространенных языков, ассемблер, редактор межпрограммных связей, отладчики, программу форматирования документов (с мате¬ матическими возможностями) и обработки текстов, средства сорти¬ ровки, средства опроса состояния, средства межпользовательского общения, административные и обслуживающие, программы, стан¬ дартные библиотеки системных и пользовательских программ и пакет с машинными играми. Для всех программ, кроме игровых, вместе с системой постав¬ ляются исходные тексты программ. Описание и документация в большей части доступны пользователю непосредственно за экраном в интерактивном режиме. 18.3.2 Система PWB/UNIX — рабочее место программиста Система PWB/UNIX (Programmer's Workbench) представляет собой расширение стандартной версии системы. Ее специализация направлена на облегчение разработки программного обеспечения. В ней предусмотрен набор инструментальных средств поддержки программных проектов, размеры которых варьируются в широких пределах (от одного до нескольких сотен участников). Развитая система обработки текстов (word processing system) позволяет редактировать тексты, форматировать их, контролировать правописание, устранять опечатки и управлять фотонаборными устройствами. Средства удаленного ввода заданий (RJE) дают возможность посылать задания различным большим компьютерам и получать результаты их выполнения. С точки зрения основного компьютера средства RJE в UNIX’e выглядят как станция с устройствами вво¬ да-вывода перфокарт и принтером. Когда результаты выполнения задания поступают от основного компьютера, они помещаются в системные файлы UNIX’а, а пользователь извещается об их поступ¬ лении. Одним из наиболее важных средств в системе PWB/UNIX явля¬ ется система SCCS (Source Code Control System) управления исход¬ ными программами, предназначенная для организации работы с текстами программ на исходных языках и текстовыми файлами (описаниями, руководствами, отчетами), связанными с программ¬ ным проектом. Система SCCS позволяет хранить, корректировать и запрашивать данные по номеру версии или дате для всех программ¬ ных модулей и других документов. Система регистрирует каждое изменение в программном обеспечении с указанием, кем, когда и по какой причине оно было сделано. 7*
196 Часть 8 Примеры для изучения 28.3.3 Система MINI-UNIX Операционная система MINI-UNIX —это сильно сокращенный вариант стандартной системы. Ее назначение — предоставить боль¬ шую часть возможностей, заложенных в стандартной системе, поль¬ зователям малых машин типа DEC PDP-11/10, 20, 30 и 40. Система MINI-UNIX обеспечивает поддержку до четырех пользователей и до 13 параллельных процессов. 18.3.4 UNIX/V7 — седьмое издание системы Система UNIX/V7 предназначена для машин DEC PDP-11/45 или 11/70 и содержит много усовершенствований по сравнению с более ранними версиями. Размеры файлов могут достигать одного миллиона байтов. Повышена мобильность системы. Расширен язык Си. Существенное развитие получило программное обеспечение для управления фотонабором (отражая возросший интерес пользовате¬ лей к обработке текста). Разработан более мощный интерпретатор shell («оболочка» — интерпретатор командного языка), включающий строковые переменные, конструкции структурного программирова¬ ния, обработку ловушек и другие возможности. Добавлены новые средства для пересылки файлов между машинами. В системе UNIX/V7 нашли отражение усилия, предпринятые корпорацией Bell с целью откликнуться на разнообразные запросы, возникшие у множества пользователей. Постоянный ввод усовер¬ шенствований и новых версий делают UNIX все более товарным из¬ делием и все менее любительской домашней разработкой, предназ¬ наченной для нужд частной группы программистов. В практической работе находятся не только названные, но и другие версии системы UNIX. Некоторые из них мы затронем в конце этой главы после того, как опишем механизмы работы операционной системы UNIX. 18.4 Цели проекта Своей уникальностью система UNIX обязана двум обстоятельст¬ вам, характеризовавшим ее появление: @ Первая версия системы была создана всего двумя разработчиками за небольшое число человеко-лет. ® Люди, создавшие систему, были ее главными пользователями. Внутренняя согласованность и стройность системы являются следствием этих факторов настолько же, насколько уникальная стройность языка Паскаль среди языков программирования явля¬ ется следствием того, что его разрабатывал один человек, а именно Никлаус Вирт. Опытному системному программисту для овладения всей систе¬ мой UNIX хватает недель, тогда как на изучение некоторых совре¬
Гл. 18 Пример для изучения: Система UNIX 197 менных операционных систем на больших машинах уходят месяцы и годы. Первой целью при разработке системы было стремление сохра¬ нить простоту и обойтись минимальным количеством функций. Все реальные сложности оставлялись пользовательским программам. Второй целью была общность. Одни и те же механизмы и методы должны использоваться во многих случаях. Общность в системе UNIX проявляется во многих аспектах. В частности: • Обращения к файлам, устройствам и буферам межпроцессорных сообщений выполняются с помощью одних и тех же примитивов. 9 Одни и те же механизмы именования, присвоения альтернатив¬ ных имен и защиты от несанкционированного доступа применя¬ ются к файлам с данными, директориями и устройствами. • Одни и те же механизмы ловушек работают в отношении програм¬ мно и аппаратно возбуждаемых прерываний. Третья цель заключалась в создании операционной обстановки, в которой большие задачи можно было бы решать, комбинируя су¬ ществующие небольшие программы, а не разрабатывая программы заново. 18.5 Управление процессами Центральной частью системы UNIX является ядро. Оно состоит примерно из 10 000 строк на языке Си и еще 1000 строк на языке ассемблера. Большая часть ассемблерного текста относится к аппа¬ ратным функциям, которые трудно или нецелесообразно программи¬ ровать на языке Си. Оставшаяся часть, связанная с часто выполняе¬ мыми программами, написана на языке ассемблера для повышения эффективности работы. Ядро включает лишь небольшую часть всей операционной системы (от 5 до 10% программного кода). Текущее состояние псевдокомпьютера, предоставляемого кон¬ кретному пользователю, называется образом. Процесс — это выпол¬ нение образа. Образ состоит из 9 образа памяти, О значений общих регистров, О состояния открытых файлов, О текущего директория (оглавления, справочника) и другой информации. Образ процесса во время его выполнения раз¬ мещается в основной памяти. Образ может быть откачан на диск, если какому-либо более приоритетному процессу потребуется место в основной памяти. Образ памяти делится на три логических сегмента (рис. 18.1): 9 сегмент реентерабельных процедур (начинается с нулевого ад¬ реса в виртуальном адресном пространстве),
198 Част! 8 Примеры д;;я изучения 0 сегмент данных, О сегмент стека. Сегмент реентерабельных процедур может совместно использо¬ ваться несколькими процессами — в первичной памяти такие раз¬ деляемые сегменты представляются единственной копией. Сегмент О Сегмент реентерабельных процедур Сегмент данных —4— Сегмент стека Рис. 18.1 Образ памяти. данных располагается следом за сегментом процедур и может расти вниз (в сторону больших адресов). Сегмент стека начинается со старшего адреса в виртуальном адресном пространстве и растет вверх по мере занесения в него информации при вызовах подпро¬ грамм и при прерываниях. Сегментами процедур, которые только считываются, система управляет централизованно при помощи таблицы процедур (рис. 18.2). Каждый элемент таблицы содержит адреса сегмента как в первичной, так и во вторичной памяти. Когда процесс первый раз обращается к разделяемому сегменту, этот сегмент помещается во вторичную память и заводится элемент в таблице процедур с соот¬ ветствующими адресами и счетчиком, указывающим число процес¬ сов, совместно использующих этот сегмент. Когда в счетчике ока¬ зывается нуль, освобождается элемент таблицы и области первичной и вторичной памяти, занятые сегментом. Сегмент данных в образе памяти содержит данные, записываемые и считываемые только одним конкретным процессом. Системные данные, относящиеся к процессу, хранятся в отдельном сегменте фиксированного размера. Этот системный сегмент данных откачи¬ вается вместе с процессом. Он содержит такие данные об активном процессе, как
Гл. 18 Пример для изучения: Система UNIX 199 ® состояние регистров, Ф дескрипторы (описатели) открытых файлов, ® данные для расчетов за использование машины, ® область рабочих данных, ® стек для системной фазы выполнения процесса. Процесс, которому принадлежит системный сегмент данных, непосредственно к этому сегменту адресоваться не может. Рис. 18.2 Таблицы управления процессом. (Приводится G разрешения The Bell System Technical Journal. Copyright 1978, AT&T.) Когда процесс неактивен, система хранит нужную ей информа¬ цию о процессе в таблице процесса. В ней содержится имя процесса, расположение его сегментов и информация для планировщика. Таб¬ лица процесса существует на протяжении всей жизни процесса. Адресуется она из ядра системы.
200 Часть 8 Примеры для изучения 18.5.1 Создание процессов Новые процессы создаются с помощью системного примитива fork (разветвление). Вызов этого примитива приводит к тому, что текущий процесс расщепляется на два независимых параллельных процесса, называемых родительским процессом и дочерним процес¬ сом. Эти два процесса не имеют общей первичной памяти, но сов¬ местно используют все открытые файлы. Для дочернего процесса заводятся копии всех сегментов данных, в которые разрешена за¬ пись. Примитив fork возвращает значение, позволяющее процессу узнать, является ли он родительским или дочерним. 18.5.2 Примитив ехес Примитив ехес дает возможность процессу выполнять файл. Он приводит к замене текущего программного сегмента и текущего сегмента данных на новые соответствующие сегменты, заданные в файле. Прежние сегменты теряются. Это эффективный метод смены выполняемой процессом программы, но не самого процесса. Файлы, уже открытые до выполнения примитива ехес, остаются открытыми после его выполнения. 18.5.3 Синхронизация процессов Синхронизация процессов осуществляется при помощи меха¬ низма событий. Процессы ожидают событий. Таблицы процессов ассоциированы с событиями. События представляются адресами соответствующих таблиц. Родительский процесс, ожидающий завер¬ шения одного из своих дочерних процессов, ожидает события, пред¬ ставленного адресом его собственного элемента таблицы процессов. Завершившийся процесс сигнализирует событием, представляющим собой адрес элемента таблицы своего родительского процесса. Собы¬ тие, которого не ожидает ни один процесс, не приводит ни к каким действиям. В любой момент времени все процессы, кроме одного, стоят на примитиве event-wait (ожидание-события) в ядре. Единственный не принадлежащий к ним процесс — это выполняемый процесс. Когда в нем встречается примитив event-wait, выполняемым становится другой процесс, который дождался своего события. 18.5.4 Планирование процессов Процесс может выполняться в одном из двух состояний, а именно пользовательском или системном. В пользовательском состоянии процесс выполняет пользовательскую программу и имеет доступ к пользовательскому сегменту данных. В системном состоянии про¬ цесс выполняет программы ядра и имеет доступ к системному сег¬ менту данных.
Гл 18 Пример для изучения: Система UNIX 231 Главной целью планирования процессов в системе является обес¬ печение высокой реактивности для интерактивных пользователей. Планирование процессов проводится в соответствии с приоритетами процессов. Высший приоритет отдан процессу, который обрабаты¬ вает события и ожидания. События, связанные с работой дисков, получают следующий по старшинству приоритет. События, связан¬ ные с терминалами, временем суток и пользовательскими процессами, получают соответствующие более низкие приоритеты. Пользовательским процессам приписываются приоритеты в за¬ висимости от количества получаемого ими процессорного времени. Процессы, которые получили большое количество процессорного времени, получают низкие приоритеты. Процессы, которые получили лишь небольшое количество процессорного времени, получают вы¬ сокие приоритеты. Такой метод планирования обеспечивает хоро¬ шее время реакции во время диалога. Все системные процессы име¬ ют более высокий приоритет по сравнению с пользовательскими и поэтому всегда обслуживаются первыми. Время центрального про¬ цессора выделяется процессу в виде кванта длительностью в типич¬ ном случае в одну секунду. Либо процесс завершается сам до исте¬ чения кванта, либо он откладывается по истечении кванта. Равно¬ приоритетные процессы обслуживаются «по кругу». Механизм пла¬ нирования отличается достаточно справедливым распределением времени между всеми процессами. 18.5.5 Вталкивания-выталкивания Процесс может выталкиваться (выкачиваться) во вторичную память и вталкиваться (подкачиваться) обратно. Как в первичной, так и во вторичной памяти применяется стратегия выделения прост¬ ранства, известная под названием «первый подходящий». Если про¬ цессу требуется дополнительная память, он ее запрашивает. Ему выделяется новая секция памяти, достаточно большая, чтобы его вместить, и все содержимое старой памяти копируется в эту новую область. Старая память при этом освобождается. Если в момент расширения процесса в первичной памяти не оказывается в наличии достаточного свободного куска, процессу отводится нужное место во вторичной памяти, он выталкивается и будет втолкнут снова в первичную память (уже учитывая его новый размер), когда в ней появится достаточный по размерам свободный кусок. Специальный процесс подкачек управляет выталкиванием всех других процес¬ сов из первичной памяти во вторичную и вталкиванием их обратно. Когда процесс подкачек решает втолкнуть готовый к исполнению вытолкнутый процесс, он отводит ему место в первичной памяти и считывает в нее его сегменты. После этого процесс конкурирует за время ЦП со всеми другими загруженными процессами. Если налич¬ ной свободной первичной памяти недостаточно, процесс подкачек просматривает таблицу процессов и выбирает процесс, вытолкнув который, можно освободить место для входящего процесса. Готовые
202 Часть 8 Примеры для изучения к исполнению вытолкнутые процессы обслуживаются по принципу «первый-вытолкнутый-первый-вталкивается», т. е. первым вталки¬ вается процесс, дольше других находящийся во вторичной памяти. Среди процессов в первичной памяти кандидаты на выталкивание выбираются по их времени пребывания в первичной памяти, а также в зависимости от того, насколько медленны ожидаемые ими события, например события ввода-вывода. 18.5.6 Завершение процессов Завершение процессов может происходить преднамеренно, при помощи примитива exit (выход) или непреднамеренно как результат запрещенных действий, сигналов или ловушек, заданных пользова¬ телем. Ловушки, как правило, связаны с ошибками в программе типа обращений по некорректным адресам или попытками выполнить команду с несуществующим кодом операции. Непреднамеренное завершение приводит к записи образа процесса в файл. Впоследст¬ вии этот образ можно проанализировать с помощью программы отладки и определить причину завершения процесса. Для завершения программы можно воспользоваться примитивом interrupt (прерывание). Примитив quit (увольнение) действует так же, как и interrupt, с той лишь разницей, что образ процесса запи¬ сывается в файл. 18.6 Система ввода-вывода Система ввода-вывода состоит из двух частей: О блочный ввод-вывод или система структурированного ввода- вывода, О посимвольный ввод-вывод или система неструктурированного ввода-вывода. Функции ввода-вывода в системе UNIX задаются в основном с помощью пяти системных вызовов, а именно: open (открыть), close (закрыть), read (читать), write (писать) и seek (найти). (Еще три при¬ митива gtty, stty, stat позволяют получать и задавать информацию о файлах и терминалах.) Открыть файл можно командой дф = open (имя файла, режим), где режим указывает, разрешено ли чтение, запись или и то и дру¬ гое, «дф» представляет собой дескриптор файла и служит для по¬ следующих ссылок на данный файл. Чтение и запись осуществляются командами следующего вида: числосчитанныхбайтов = read (дф, буфер, желаемоечислобайтов) числозаписанныхбайтов = write (дф, буфер, желаемоечислобайтов)
Гл. 18 Пример для изучения: Система UNIX 203 При чтении возможны три ситуации, в каждой из которых чте¬ ние происходит последовательно. • Если это первое чтение, тогда оно осуществляется последова¬ тельно с начала файла. • Если чтению предшествовало другое чтение, то текущее чтение получит данные, непосредственно следующие за предыдущими. ® Если предшествовала операция поиска seek (см. ниже), то чтение осуществляется последовательно от точки смещения, указанной в операции seek. Это же справедливо и в отношении операции записи. Все чтения и записи выполняются последовательно, начиная с текущей позиции файла, а эффект прямой адресации достигается с помощью команды seek, смещающей текущую позицию файла seek (дф, смещение, типсмещения) Тип смещения в команде определяет © является ли смещение абсолютным или относительным, © задано ли оно числом байтов или числом блоков по 512 байт. Команда seek исполняется для магнитных лент так же, как и для магнитных дисков. Но, конечно, программы «прямого доступа» с лентами работают существенно медленнее. Чтобы закрыть файл, достаточно написать close (дф) На основании того, что было изложено, у человека, знакомого с большими операционными системами, может сложиться мнение, что система UNIX — игрушечная. Тем не менее на базе описанных возможностей реализованы как малые, так и большие системы уп¬ равления данными. Реальные проблемы — не столько в функцио¬ нальных возможностях, сколько в производительности. Системы обработки коммерческих данных, обеспечивающие хранение и пере¬ дачу огромных объемов информации, зачастую действительно тре¬ буют более широких возможностей по сравнению с имеющимися в системах UNIX. Те же самые команды ввода-вывода строго в том же смысле, как было описано, применяются к физическим устройствам. В системе UNIX физические устройства представлены специальными файлами в единой структуре файловой системы. Это означает, что пользова¬ тель не может написать зависящую от устройств программу, если только эта зависимость не отражена в самом потоке передаваемых данных. Стандартные файлы ввода и вывода, приписываемые пользова¬ тельскому терминалу, открывать обычным путем не требуется. Тер¬ минал открывается автоматически командой входа в систему login.
204 Часть 8 Примеры для изучения 18.6.1 Ввод-вывод потока и ввод-вывод записей Система ввода-вывода UNIX в отличие от большинства других систем ориентирована скорее на работу с потоком, чем с записями. Поток — это последовательность байтов, заканчивающаяся разделителем (т. е. символом конца потока end-of stream). Понятие потока позволяет проще добиться независимости от устройств и уни¬ фикации файлов с физическими устройствами и транспортерами (кратко мы их рассмотрим ниже.) Тем самым пользователь получает гибкость в работе с группами данных, но на него ложатся и допол¬ нительные заботы, поскольку ему приходится самому писать про¬ граммы управления данными. Пользователь при необходимости может легко реализовать ввод- вывод записей. Чтобы работать с записями фиксированной длины, достаточно просто задавать постоянную длину во всех командах чтения и записи. Прямой доступ при фиксированной длине записей получается путем умножения длины записи на номер записи и вы¬ полнения команды seek для нахождения позиции нужной записи. Работу с записями переменной длины легко организовать, если раз¬ местить в начале каждой записи поле фиксированного размера, со¬ держащее длину записи. Если, например, остановиться на двухбай¬ товом поле длины, то прочитать запись переменной длины можно будет следующей парой команд: read (дф, длина, 2); read (дф, буфер, длина); 18.7 Файловая система Файл в системе UNIX представляет собой множество символов с произвольным доступом. Его размер — число содержащихся в нехМ символов — может достигать примерно одного миллиарда. В файле содержатся произвольные данные, помещенные туда пользо¬ вателем, и файл не имеет никакой другой структуры, кроме той, какую налагает на него пользователь. Информация (рис. 18.3) размещается в основном на дисках по¬ блочно по 512 байт в каждОхМ блоке. Диск разбивается на четыре об¬ ласти (рис. 18.4). О Неиспользуемый блок. в Управляющий блок, или супер-блок, в котором содержится размер диска и границы других областей. О i-список, состоящий из описаний файлов, называемых i-узлами. 9 Область для хранения содержимого файлов. Каждый i-узел содержит • идентификацию владельца, 9 идентификацию группы владельца,
Гл. 18 Пример для изучения- Снгг^мл UNIX 205 Рис. 18.3 Структура файловой системы. (Приводится с разрешения The Bell System Technical Journal. Copyright 1978, AT&T.) @ биты защиты, © физические адреса на диске или ленте, где находится содержи¬ мое файла, ® размер файла, ® время создания, ® время последнего использования, ® время последнего изменения, © число связей-ссылок, указывающих на файл, @ индикацию, является ли файл директорией,, обычным файлом или специальным файлом. Следом за /-списком идут блоки памяти, предназначенные для хранения содержимого файлов.Пространство на диске, оставшееся свободным от файлов, образует связанный список свободных блоков. Таким образом, файловая система UNIX представляет собой структуру данных, размещенную на диске и содержащую управ¬ ляющий суперблок, в котором определена файловая система в це¬ лом; массив /-узлов, в котором определены все файлы в файловой
206 Часть 8 Примеры для изучения системе; сами файлы и, наконец, совокупность свободных блоков. Выделение пространства осуществляется блоками фиксированного размера. Каждый файл однозначно идентифицируется старшим номером устройства, младшим номером устройства и i-номером (индексом /-узла данного файла в массиве /-узлов). Когда вызывается драйвер устройства, по старшему номеру индексируется массив входных точек в драйверы. По младшему номеру драйвер выбирает одно устройство из группы идентичных физических устройств. Файл-директорий, в котором перечислены имена файлов, по¬ зволяет установить соответствие между именами и самими файлами. Директории образуют древовидную структуру. На каждый обыч¬ ный файл или файл устройства могут иметься ссылки в различных узлах этой структуры. В непривилегированных программах запись в директории не разрешена, но при наличии соответствующих раз-
Гл. 18 Пример для изучения: Система UNIX 207 решений они могут читать их. Дополнительных связей между дирек¬ ториями нет. Большое число системных директориев система UNIX исполь¬ зует для своих собственных нужд. Один из них, корневой директо¬ рий, является базой для всей структуры директориев, и, отталкива¬ ясь от него, можно найти размещение всех файлов. В других си¬ стемных директориях содержатся программы и команды, предостав¬ ляемые пользователям, и файлы устройств. Имена файлов задаются последовательностью имен директо¬ риев, разделенных косой чертой («/») и приводящих к концевому уз¬ лу (листу) некоторого дерева. Если имя файла начинается с косой черты, то поиск по дереву начинается в корневом директории. Если же имя файла не имеет в начале косой черты, то поиск начинается с текущего директория. Имена файлов, начинающиеся с «../», подра¬ зумевают начало поиска в директории, родительском по отношению к текущему. Имя файла stuff (персонал) указывает на элемент stuff в текущем директории. Имя файла / userl / joe / stuff приводит к поиску директория userl в корневом директории. Затем к поиску директория joe в директории userl и, наконец, к поиску элемента stuff в директории joe. Сама по себе косая черта / обозначает кор¬ невой директорий. В приведенном примере нашла отражение типич¬ ная иерархическая структура файловой системы, например userl может обозначать диск (устанавливаемый при работе пользователя), joe может быть директорием пользователя, a stuff может принадле¬ жать joe. Файл, не являющийся директорием, может встречаться в раз¬ личных директориях, возможно под разными именами. Это назы¬ вается связыванием. Элемент в директории, относящийся к одному файлу, называется связью. В системе UNIX все такие связи имеют равный статус. Файлы не принадлежат директориям. Скорее, фай¬ лы существуют независимо ют элементов директориев, а связи в директориях указывают действительно на физические файлы. Файл «исчезает», когда удаляется последняя связь, указывающая на него. Биты защиты, заданные в связях, могут отличаться от битов в исход¬ ном файле. Таким образом решается проблема избирательного огра¬ ничения доступа к файлам. С каждым поддерживаемым системой устройством ассоциирует¬ ся один или большее число специальных файлов. Операции ввода- вывода для специальных файлов осуществляются так же, как и для обычных дисковых файлов, стой лишь разницей, что эти опера¬ ции активизируют соответствующие устройства. Специальные файлы обычно находятся в справочнике /dev. На специальные файлы могут указывать связи точно так же, как на обычные файлы. От файловой системы не требуется, чтобы она вся целиком раз¬ мещалась на том устройстве, где находится корень. Запрос от си¬ стемы mount (на установку носителей нт. п.) позволяет встраивать в иерархию файлов файлы на сменных томах.
208 Часть 8 Примеры для изучения Защита файлов осуществляется при помощи номера, иденти¬ фицирующего пользователя, и установки десяти битов защиты. Девять из этих битов управляют защитой по чтению, записи и испол¬ нению для владельца файла, других членов группы, в которую вхо¬ дит владелец, и всех других пользователей. 18.8 Оболочка Оболочкой в системе UNIX называют механизм взаимодействия между пользователями и системой. По сути дела — это интерпрета¬ тор команд, который считывает набираемые пользователем строки и запускает выполнение запрошенных системных функций. В отличие от ядра оболочка не располагается резидентно в основной памяти, а подкачивается, когда это необходимо. Она является прикладной программой, и зачастую потребители пишут свою оболочку (напри¬ мер, миниоболочку для «наивного» пользователя). Полный командный язык, интерпретируемый оболочкой, богат по возможностям и достаточно сложен, однако большинство команд просты в использовании и запомнить их не составляет труда. Командная строка состоит из имени команды (а именно, имени выполняемого файла), за которым следует список аргументов, раз¬ деленных пробелами. Оболочка разбивает командную строку на компоненты. Указанный в команде файл загружается, и ему обес¬ печивается доступ к заданным в команде аргументам. С помощью операции fork (разветвление) создается дочерний процесс для вы¬ полнения оболочки. Дочерний процесс выполняет команду, а роди¬ тельский процесс ждет его завершения. По завершению дочернего процесса оболочка выдает свое приглашение (prompt) на терминал, чтобы показать, что пользователь может набирать следующую команду. Оболочка выделяет каждой выполняемой программе три файла: один для ввода, один для вывода и один для аварийного вывода при ошибках. Эти три файла, как правило, приписаны терминалу, но их можно легко подменить следующим образом. Если в команде перед аргументом поставить префикс «<», то именуемый этим аргумен¬ том файл станет файлом ввода в этой команде. Файл с префиксом «>*» станет файлом для приема стандартного вывода в команде. Префикс «>>» говорит о том, что вывод должен добавиться к со¬ держимому файла, а не заместить его. Имена файлов, снабженные такими префиксами, интерпретируются оболочкой и не передаются командам. Это обстоятельство имеет важное значение, поскольку позволяет изменять направление потоков ввода и вывода с одних файлов на другие, не модифицируя программу. В командный язык оболочки включены средства управления по¬ током команд. В программе на командном языке можно применять конструкции if / then / else, case, while и for.
Гл. 18 Пример для изучения: Система UNIX 209 Для конструирования имен файлов или групп имен файлов пре¬ доставляются возможности задания шаблонов (образцов). Звездоч¬ ка (*) обозначает любую последовательность литер, а знак вопро¬ са (?) — любую одиночную литеру. Таким образом, по команде Is f* (Is означает list — список) будет выдан список имен файлов, начи¬ нающихся с буквы f. По команде Is f? будут перечислены двухлитерные имена, начинающиеся с буквы L Предоставляются и другие полезные возможности отождествления по шаблону. 18.8.1 Транспортеры и фильтры Одним из наиболее существенных вкладов системы UNIX яв¬ ляется понятие транспортера1). Транспортер — это открытый файл, соединяющий два процесса. Информация, записываемая на транспортер на одном конце, может считываться на другом (рис. 18.5). Рис. 18.5 Транспортер. Процесс 1 пишет на транспортер. Процесс 2 считьк вает с транспортера. Синхронизация, диспетчеризация и буферизация обеспечивают¬ ся системой автоматически. Воспользовавшись транспортерами между парами процессов, можно организовать конвейер, связав процессы друг с другом в линию. Пользователь дает указание обо¬ лочке о наличии конвейера, задавая цепочку имен, разделенных вертикальной чертой. Выход файла с именем слева от вертикальной черты поступает на вход файла с именем справа от вертикальной черты. Оболочка обеспечивает конвейеры линейной структуры. Процессы могут быть взаимосвязаны более сложным образом. Фильтр в системе UNIX —это программа с одним входным и одним выходным потоком. С системой UNIX поставляется большое число фильтров. Например, языковые процессоры в системе UNIX не выводят листингов. Их выход направляется фильтру, который печатает все выходные листинги в едином унифицированном форма¬ те. С помощью фильтров и конвейеров можно получить много инте¬ ресных выдач. Рассмотрим несколько примеров. Иногда употребляется термин «канал».— Прим, иерее,
210 Часть 8 Примеры для изучения Предположим нам нужно узнать, сколько пользователей обслу¬ живаются системой в данный момент. Для этого достаточно подать выход системной команды who (кто) на вход служебной программы, которая определяет число строк в ее входном потоке. Задание командной строки who ! wc —1 приведет к тому, что выход системной команды who, который, на- пример, мог бы иметь следующий вид: zack console Aug 27 18 : 40 samp ttyOO Aug 27 02 : 14 bobp ttyOl Aug- 26 23 • 14 suem tty02 Aug 27 19 : 20 billy tty05 Aug 27 17 : 19 направляется на вход программы wc, называемой word count (счетчик слов). Параметр —1 говорит о том, что отпечатать следует только число строк. Таким образом, по заданной выше команде будет на¬ печатано число пользователей в системе в таком виде: >who ! wc —1 5 > Пользователь может создать файл, содержащий эту командную строку, и назвать его, например, users (пользователи). Набирая пос¬ ле этого слово users, можно в любой момент определить число рабо¬ тающих в системе людей. Один из часто приводимых примеров на применение фильтров и конвейеров — это контроль орфографии. Начинаем с программы, которая помещает каждое слово в отдельную строку файла. Подаем выход этой программы (по конвейеру) на вход программы, сорти¬ рующей строки в алфавитном порядке. Выход этой программы — упорядоченный список всех слов исходного файла. Этот список подается в программу, которая убирает дубликаты соседних строк. Ее выход будет содержать по одной строке на каждое встречающееся в исходном файле слово. Наконец, выход подается в программу, которая формирует список слов входного потока, которые не встре¬ чаются в другом файле (словаре). Набрав команду prep file I sort I uniq ! comm wdlist где четыре программы prep, sort, uniq и comm осуществляют перечис¬ ленные выше функции, можно сформировать список слов, которые есть в файле file, но отсутствуют в файле wdlist. Изящество решения здесь в том, что благодаря фильтрам и конвейерам мы получили простую программу контроля орфографии на нескольких существу¬ ющих служебных программах, не написав ни одной новой програм¬ мы. Создав теперь файл spell, содержащий командную строку prep ! sort ! uniq ! comm /usr/dict/words
Гл 18 Пример для изучения: Система UNIX 211 мы создали новую команду spell. Вместо обозначения будет подставляться имя файла, которое укажет пользователь, набрав на клавиатуре spell samsfile и желая проверить орфографические ошибки в файле с именем samsfile. 18.8.2 Мультизадачное^ Пользователь может указать мультизадачностъ, сопроводив команду знаком амперсанд (&). В этом случае оболочка не ожидает завершения выполняемой команды. Она немедленно дает приглаше¬ ние на ввод следующей команды, продолжая выполнять предыдущую команду в фоновом режиме. Вновь задаваемая команда может быть Рис. 18.6 Иерархия процессов. (Перепечатывается с разрешения компании Microsoft Corporation.)
212 Часть 8 Примеры лля изучения файлом, содержащим другие команды, и тем самым пользователь, работающий в интерактивном режиме, может запустить в качестве фона последовательность пакетных работ. Например, команда (сс source; a.out) & вызовет выполнение в фоновом режиме последовательности из двух команд (компиляция и исполнение). Точка с запятой (;) является разделителем предложений. Она говорит о том, что разделяемые ею команды нужно выполнить последовательно. Скобки объединяют группу команд, так что знак & относится ко всей группе. На рис. 18.6 показана типичная иерархия создаваемых оболочкой процессов, как интерактивных, так и пакетных. Подоболочка, показанная на рисунке, образована для пользователя, который временно вышел из системы BASIC, чтобы выполнить несколько системных команд. 18.9 Производительность против удобства Здесь читатель, знакомый с проблемами, которые встают перед крупными промышленными установками по обработке данных, мо¬ жет подумать, что системы UNIX малопригодны для использова¬ ния в условиях вычислительных центров с большими машинами. Ее создатели не ставили перед собой таких целей, так что их трудно критиковать за создание системы, в определенном смысле уступаю¬ щей различным операционным системам для крупных установок. «Выжимание» максимальной производительности из аппаратуры просто не ставилось целью при создании системы UNIX. С обеспечением производительности тесно связаны такие понятия, как защита (обеспечение безопасности), надежность, восстановле¬ ние и некоторые другие, также не выдвигавшиеся на первый план в системе UNIX. В то же время для больших промышленных систем они играют критическую роль. Здесь важно отметить, что системы UNIX поставляются вместе с текстами программ на исходном языке^ и поэтому случаи адаптации к конкретным условиям чрезвычайно многочисленны. На многих установках работающие системы UNIX лишь слегка напоминают исходный поставляемый код. Успех системы UNIX на самом деле феноменальный успех, свя¬ зан с удобствами ее использования при разработке программ. Она отвечает нуждам создателей программного обеспечения и админи¬ страторов, которые должны управлять процессом его создания. Она предоставляет пользователю, работающему в интерактивном режи¬ ме, широкий набор легкодоступных и полезных возможностей. 18.10 XENIX — коммерческий стандарт системы UNIX Операционную систему XENIX на базе системы UNIX разрабо¬ тала компания Microsoft — поставщик программного обеспечения для микрокомпьютерной промышленности. Система XENIX рассчи-
Гл. 18 Пример для изучения: Система UNIX 213 Операционное окружение XENIX j —5 ]—= —j— ОС UNIX V7 Программ¬ ное сбеспеч. UNIX V7 Поддержка Microsoft Языки Microsoft Созданное пользователями прогр. обеспеч. ШШ ж Т^обол/Т, Фортран/ Паскаль!77уя5еисикл* ж» / Расчетная 7 / 7, контора / Z '7Л ^77Ш7В747. шШ/ ^//^//// безопас 4 77/7////7s \ ность 7 477777777' 7 777'777/ /'Меньше wb У44/4/1447777///44/4444/444'14/1/////////////////111///11////////А//7/. /. Г.и 1/ Япнрнр? ^Быстрее! ^Надежнее, 7 Си и другие? 'библиоТ, J / 'языки 7 \ теки 7', / высокого % подл рог у; ‘л^раммту; 7 'Языки 7 777ШШ77 7 Обслужи- '■ 7 7 ' вание и б/ | 'XmcTi /Л/ 1S% '< 'средства 77 \ разработки# < систем / //////'////I Отладчика Ассемблер' YACC.^ Тб -Редактор / Ту >рование/ шш 77777777777777^ \ Средства! 77777 -обработки 7/// '< тестов / 77777 7444447777777777 % $Л 2? '^ровтие/^^/- 77 Командный TTTTTTTTTTTTTTTi 77язык ' 777777777 77' оболочки ^7777777i7 77 Передний. ' 'Зацепле- ! Переклкк' Пакетное. 4/' план ХА - *-м 771// фон// Ш/ >// //''77/ 77747777777777777777777777777777777777777777777/ уизличнь/еЙЙ [сервисные 7777 трограммык// 7777 "йие ' / / чение В/В ' управление / 4Игры ZZ'/ команд/' 7" """М- тпиплми YYsss,'/ ^файлами у лртировкаУ Обучение'/ //'///A//////// /у OUtTIU IIUJ IUJU . 7: ват елями/ Я4Г 7 древовидная ТТЛревосидные- /. '/Sa°7 7 ’' диРект°Рии; . Лайлов Л ■/7//////7//Л//77 '/////////////////////// /7777777777// 'Подкачка 1/ /ц планироу '■Ш&, ,0^,л je у 77 ’' директории #/// <£ъе/иныа; 2 '4777 у/ '7/ Рис. 18.7 Операционная система XENIX компании Microsoft. Показаны пять уровней в структуре программного обеспечения XENIX. Каждый уровень зависит от нижележащих уровней. Нижние два уровня соответствуют позднейшим версиям системы UNIX. Остальные три уровня — это доработки, совокупность которых и образует систему XENIX. (Перепечатывается с разрешения Microsoft Corpora¬ tion. XENIX является торговой маркой компании Microsoft Corporation. UNIX — торговая марка компании Bell Laboratories.)
214 Часть 8 Примеры для изучения тана на 16-битовые микрокомпьютеры. Она, по-видимому, будет основным конкурентом операционным системам на базе СР/М, ко¬ торые сейчас многими считаются стандартом де-факто для микро¬ компьютеров. Мы рассмотрим СР/М (для 8-битовых микрокомпью¬ теров) и МР/М (для 16-битовых) детально в гл. 20. Система XENIX предоставляет широкий набор средств, прису¬ щих системе UNIX, многим пользователям в режиме коллективного пользования. Кроме того, в дополнение к этому базису система XENIX предоставляет большинство языков высокого уровня, став¬ ших общепринятыми в мире микрокомпьютеров (рис. 18.7). 18.10.1 Об истории системы XENIX По мере все более широкого распространения системы UNIX в 70-е годы благодаря обратным связям с пользователями, находя¬ щимися в сотнях мест, где была испытана система, возникли идеи провести ряд усовершенствований. Система славилась своей мобиль¬ ностью. Ее разработчики в Bell Laboratories сделали систему столь удобной при настройке для конкретного заказчика, что рассчиты¬ вать на стандартизацию системы UNIX было нереально. Множество несовместимых версий существовало даже в самой компании Wes¬ tern Electric х). Компании AT&T, по самому ее статусу (в связи с мерами про¬ тив монополий) правительством было запрещено заниматься де¬ ятельностью в области компьютерной промышленности. В соответст¬ вии с юридическими требованиями компании Western Electric запрещалось выходить на рынок с программным обеспечением UNIX по крайней мере как с конкурирующим изделием. Разреше¬ ния на продажу системы UNIX сопровождались некоторыми не¬ приятными условиями. Потребители были вынуждены принимать систему UNIX «как есть», без гарантий, без сопровождения и ка¬ кого-либо обслуживания со стороны Western Electric. Осознав как ценность системы UNIX, так и то, что Western Electric не может выйти с ней на рынок как с товарным изделием, компания Microsoft объявила в августе 1980 г., что она будет пос¬ тавлять XENIX, коммерческую версию системы UNIX для 16- битовых микропроцессоров. С тех пор компания Microsoft в тесном сотрудничестве с компанией Western Electric и различными коммер¬ ческими пользователями работает над созданием промышленной стандартной версии системы UNIX. J) Компания Bell Laboratories является одной из дочерних компаний Western Electric, входящих в концерн AT&T.— Прим, перев^
Гл. 18 Пример для изучения*. Система UNIX 215 18.10.2 Система XENIX Компания Microsoft разработала систему XENIX для разно¬ образных 16-битовых микропроцессоров. Чтобы улучшить свойства системы UNIX как товарного изделия, компания Microsoft включи¬ ла в XENIX следующие дополнительные возможности: • средства восстановления при ошибках аппаратуры; О средства восстановления файлов, разрушенных при авариях системы; • обнаружение нарушений в энергопитании и четности; • разделяемые сегменты с данными; • улучшенные средства взаимодействия между процессами; • фирменные версии языков Бейсик, Кобол, Фортран и Паскаль. Система XENIX, по-видимому, будет иметь такой же успех для 16-битовых микропроцессоров, какой имеет система СР/М для 8-битовых. Компания Microsoft создала центральную расчетную контору, с тем чтобы распространение программного обеспечения, работающего под управлением системы XENIX, стало коммер¬ чески выгодным. Заключение Система UNIX — небольшая операционная система, разрабо¬ танная фирмой Bell Laboratories в начале 70-х годов. В настоящее время она находит широкое применение для решения как научных, так и коммерческих задач. Система UNIX написана на языке высокого уровня Си, что дает ей высокую мобильность. Пользователь может направить выход одной программы на вход другой и благодаря этому создавать боль¬ шие программы, компонуя их из уже существующих частей. Системы PWB/UNIX специально ориентированы на разработку программного обеспечения. В них содержится система управления текстами исходных программ, предназначенная для развития и со¬ провождения программ и соответствующей документации в режиме «он-лайн». Своей гармоничностью система UNIX обязана тому факту, что первая версия была создана двумя разработчиками всего за несколь¬ ко лет, и эти люди были ее главными пользователями. Процессы, потребляющие много процессорного времени, полу¬ чают низкий приоритет, а процессы, потребляющие мало процессор¬ ного времени,— высокий. Этим обеспечивается хорошее время ответа при работе в интерактивном режиме. Как первичная, так и вторичная память распределяются в со¬ ответствии со стратегией «первый подходящий». Процессу, которо¬ му потребовалась дополнительная память, предоставляется единый новый блок памяти достаточно большого размера. Процесс подкач¬
216 Часть -ч Примеры для изучения ки управляет перемещением всех других процессов между первич- ной и вторичной памятью (вталкиванием и выталкиванием). Особо компактной является система ввода-вывода, содержащая всего пять основных примитивов, а именно open, close, read, write и seek. Весь ввод-вывод больше ориентирован на потоки, чем на записи, и доступ осуществляется последовательно. Однако с помощью ос¬ новных примитивов ввода-вывода пользователь может моделиро¬ вать работу с записями либо фиксированной, либо переменной длины. Прямой доступ моделируется с помощью примитива seek как для файлов, находящихся на ленте, так и для файлов надиске (хотя, конечно, с разными скоростями). В системе UNIX файловая система имеет иерархическую струк¬ туру. Расположение любого файла можно определить, пройдя путь от корневого директория. С каждым поддерживаемым операцион¬ ной системой устройством связывается один или несколько спе¬ циальных файлов. Работа с этими специальными файлами осущест¬ вляется точно так же, как и с обычными файлами на диске, хотя фак¬ тически в работу при этом вовлекаются соответствующие устрой¬ ства. Оболочка — это механизм в системе UNIX, обеспечивающий взаимодействие пользователя и системы. Он представляет собой интерпретатор команд. Для «наивного» пользователя часто создает¬ ся оболочка, настроенная на конкретную ситуацию. Транспортер — это открытый файл, связывающий два процесса. Информация, записываемая на одном конце транспортера, может быть прочитана на другом его конце. Фильтр — это программа, обрабатывающая один входной поток и порождающая один выход¬ ной поток. Фильтры и конвейеры облегчают компоновку больших программных систем из существующих программ. Можно задать мультизадачность, сопроводив команду знаком амперсанд (&). Благодаря этому пользователь, работающий в интерактивном ре¬ жиме, может легко запустить нужную ему последовательность па¬ кетных работ для выполнения в фоновом режиме. XENIX—это версия системы UNIX, поставляемая фирмой Microsoft для 16-битовых микропроцессоров. Она — главный кон¬ курент систем типа МР/М, базирующихся на СР/М и предназна¬ ченных для 16-битовых микрокомпьютеров. Многие возможности, отсутствовавшие в первоначальной версии системы UNIX фирмы Bell Laboratories, были добавлены фирмой в систему Microsoft, чтобы сделать ее качественным товарным изделием. Терминология ввод-вывод с прямым доступом (direct access I/O) дескриптор, описатель файла (file descriptor) директорий, справочник, оглавление (directory)
Гл. 18 Пример для изучения: Система UNIX 217 дочерний процесс (child process) ждать (wait) запрос на установку носителя (mount system request) команда ввода-вывода close (закрыть) (close I/O call) команда ввода-вывода open (открыть) (open I/O call) команда ввода-вывода read (читать) (read I/O call) команда ввода-вывода seek (искать) (seek I/O call) команда ввода-вывода write (писать) (write I/O call) конвейер (pipeline) корневой директорий (справочник, оглавление) (root directory) ловушка (trap) оболочка (shell) образ (image) образ памяти (storage image) обычные файлы (ordinary files) ожидание события (event-wait) передний план (foreground) переносимость, мобильность (portability) подкачка (swapping) посимвольная система ввода-вывода (character I/O system) поток (stream) поток ввода-вывода (stream I/O) примитив прерывания (interrupt primitive) примитив exec (выполнить) (exec) примитив exit (выйти) (exit primitive) псевдокомпьютер (pseudocomputer) путь в файловой системе (file system path) рабочее место программиста (Programmer’s Workbench) разветвление (fork) реентерабельная, повторно-входимая процедура (reentrant proce¬ dure segment) родительский процесс (parent process) связь (link) связывание (linking) сегмент данных (data segment) сегмент памяти с программой (program text segment) сегмент стека (stack segment) сигнализировать о событии (signal) система управления исходными текстами программ (Source Code Control System, SCCS) система MINI-UNIX (MINI-UNIX system) система PWB/UNIX (PWB/UNIX system) система UNIX (UNIX system) система UNIX/V7 (UNIX/V7 system) системный директорий (справочник, оглавление) (system directory) системный сегмент данных (system data segment) событие (event)
218 Часть 8 Примеры для изучения таблица процедур (text table) таблица процесса (process table) транспортер (pipe) удаленный ввод заданий в системе UNIX (UNIX system RJE facility) управляющий блок, суперблок (super block) файл устройства (device files) файловая система, независимая от устройств (device-independent system) фильтр (filter) фирма Bell Laboratories (Bell Laboratories) фирма Microsoft (Microsoft) фон (background) шаблон (образец) (pattern) язык Си (C language) /-номер (/-number) /-список (/-list) /-узел (/-node) XENIX (XENIX) Упражнения 18.1 Чем система UNIX разительно отличается от многих других многорежимных систем конца 60-х и начала 70-х годов? 18.2 Мы говорили о важности технологии создания программных систем. Какие черты системы UNIX особенно полезны с этой точки зрения? 18.3 Системы UNIX развились из системы для внутреннего пользования. Сегодня они широко поставляются как товарное изделие. Какие наиболее примечательные отличия вы надеялись бы обнаружить в ранней версии системы по сравнению с вер¬ сиями, находящими промышленное применение сегодня? 18.4 Каковы те аспекты, которые внесли наибольший вклад в своеобразие системы UNIX? 18.5 В системе UNIX одни и те же команды применяются для обращений к фай¬ лам, устройствам и буферам межпроцессорных сообщений. Какие это дает преиму¬ щества? 18.6 Система UNIX предоставляет операционную обстановку, в которой можно решать большие задачи, комбинируя существующие небольшие программы, а не составляя новые. Насколько это важно? 18.7 Большая часть ядра в системе UNIX написана на языке Си, но есть части, написанные на языке ассемблера. Почему? Какие части, вы думаете, написаны на языке ассемблера? 18.8 Предположим, процесс запрашивает дополнительную память. Опишите точно, как система UNIX удовлетворяет такой запрос. Рассмотрите каждый из следующих случаев: а) Есть свободная область нужного размера, расположенная сразу вслед за текущей занимаемой процессом областью,.
Гл. 1р Пример для изучения: Система UNIX 219 б) Нужного размера блок есть в некоторой части первичной памяти. в) В первичной памяти нет свободного блока нужного размера. 18.9 По каким критериям процесс подкачки определяет, какой процесс следует втолкнуть? Какой вытолкнуть? 18.10 Перечислите команды системы ввода-вывода UNIX и коротко опишите их функции. 18.11 Вся организация ввода-вывода в системе UNIX ориентирована на работу с потоками, а не с записями. Рассмотрите достоинства и недостатки такого подхода, 18.12 Опишите, как реализуется в системе UNIX работа с записями фиксирован¬ ной и переменной длины, 18.13 Предположим, некоторая операционная система обеспечивает ввод-вывод для работы с записями и не обеспечивает для работы с потоками. Можно ли смо¬ делировать поток ввода-вывода в такой системе? Если да, опишите, как это сде¬ лать. Если нет, обоснуйте, почему, 18.14 Опишите структуру директориев в файловой системе UNIX. 18.15 Каковы наиболее примечательные свойства оболочки в системе UNIX? 18.16 Что представляют собой транспортеры и фильтры? Что такое конвейер? 18.17 Перечислите некоторые фильтры, которые могли бы быть полезны при обработке текстов. Приведите примеры того, как, образуя конвейеры, связываю¬ щие несколько фильтров, можно решить сложную задачу обработки текста. 18.18 Перечислите те свойства системы UNIX, благодаря которым она оказалась такой феноменально удачной операционной системой. 18.19 В системе UNIX не контролируются попытки со стороны процессов «за¬ хватить» лишние ресурсы. Однако на многих установках соответствующие сред¬ ства контроля добавляются. Опишите средства, которые вы считали бы целесооб¬ разным добавить в системе UNIX для этой цели. 18.20 Какие обстоятельства подтолкнули компанию Microsoft к созданию сис¬ темы XENIX? Какие возможности XENIX отсутствуют в базовой системе UNIX? Литература (Ва80) ВагасА. В., Shapir A. «UNIX with Satellite Processors», Software— Practice and Experience, Vol. 10, pp. 383—392. (Bo78) Bourne S. R. «The UNIX Shell», Bell System Technical Journal, Vol. 57, No. 6, Part 2, July—August 1978, pp. 1971 — 1990. (Do78) Dolotta T. A., Haight R. C., Mashey J. R., «The Programmer’s Work¬ bench», Bell System Technical Journal, Vol. 57, No. 6, Part 2, July—August 1978, pp. 2177—2200. (Gr81) Greenberg R. B., «The Unix Operating System and the Xenix Standart Operating Environment», Byte Magazine, June 1981, pp. 248—264. (Ha80) Harland D. M., «High-Speed Data Acquisition: Running a Realtime Process and a Time-Shared System (UNIX) Concurrently», Software— Practice and Experience, Vol. 10, pp. 273—281. (Jo78) Johnson S. C., Ritchie D. M. «Portability of C Programs and the UNIX System», Bell System Technical Journal, Vol. 57, No. 6, Part 2, July— August 1978, pp. 2021—2048.
220 Часть 8 Примеры для изучения (Ке78) Kernighan В. W.-, Ritchie D. М. The С Programming Language, Engle¬ wood Cliffs, N. J.: Prentice-Hall, 1978. [Имеется перевод: Керниган Б., Ритчи Д. Язык программирования Си.— М.: Финансы и статистика, 1986.] (Ке76) Kernighan В. W., Plauger Р. J. Software Tools, Reading Mass.: Addison- Wesley, 1976. (Ke79) Kernighan B. W., MasheyJ. «The UNIX Programming Environment»,' Software—Practice avd Experience, Vol. 9, pp. 1—15, January 1979, New York: Wiley. (Lu78) Luderer G. W. R., Maranzano J. F., Tague B. A. «The UNIX Operating System as a Base for Application», Bell System Technical Journal, Vol. 57, No. 6, Part 2, July—August 1978, pp. 2201—2208. (Ly78) Lyckiama H., Bayer D. L., «The MERT Operating System», Bell System Technical Journal, Vol. 57, Part 2, July—August 1978, pp. 2049—2086. (Ly78a) Lyckiama H. «UNIX on a Microprocessor», Bell System Technical Journal, Vol. 57, No. 6, Part 2, July—August 1978, pp. 2087—2102. (Ly78b) Lyckiama H. , Christensen С; «А Minicomputer Satellite Processor Sys¬ tem», Bell System Technical Journal, Vol. 57, No. 6, Part 2, pp. 2103— 2114. (Mc78) McIlroy M., Pinson E., Tague В. «The UNIX Time-Sharing System», Bell System Technical Journal, Vol. 57, No. 6, Part 2, July—August 1978, pp. 1899—1904. (Ma81) Marsh B., Munsey G., Forny C. «The UNIX Operating System». В сб. ZarellaJ. (ed.) Microprocessor Operating, Systems, Suisun City, Calif.: Microcomputer Applications, 1981, pp. 8.1—8.15. (No81) Norman D. A. «The Trouble with UNIX», Datamation, November 1981, pp. 139—150. (P181) Plauger P. J., Krieger M. S. «UNIX-Like Software Runs on Mini- and Microcomputers», Electronics, New York: McGraw-Hill, March 24, 1981. [Имеется перевод: Плаугер П., Кригер М. Версия операционной систе¬ мы «Унике» для мини- и микрокомпьютеров. Электроника, №6, 1981, с. 39] (Ri78) Ritchie D. М., Thompson К. «The UNIX Time-Sharing System», Bell System Technical Journal, Vol. 57, No. 6, Part 2, July—August 1978, pp. 1905—1930. (Ri78a) Ritchie D. M., «А retrospective», Bell System Technical Journal, Vol. 57, No. 6, Part 2, July—August 1978, pp. 1947—1970. (Ri78b) Ritchie D. M., «The C Programming Language», Bell System Technical Journal, Vol. 57, No. 6, Part 2, July—August 1978, 1991—2020.
Глаза 19 Пример для изучения: VAX 0 Не меняй лошадей, когда пересекаешь реку. Авраам Линкольн Прежде чем создать изображение, зеркала должны чуть-чуть поразмышлять. Жан Кокто 19.1 Введение 19.2 Цели проекта системы VAX 19.3 Совместимость с PDP-11 19.4 Команды и память 19.5 VAX-11/780 19.6 Управление памятью 19.6.1 Подкачка страниц 19.6.2 Переключение процессов 19.7 Планирование процессов 19.7.1 Планирование 19.7.2 Очередь готовых к выполнению процессов 19.7.3 Переходы между состояниями процессов 19.7.4 Выбор на выполнение 19.7.5 Управление квантами 19.8 Ввод-вывод в системе VAX/VMS 19.8.1 Компоненты системы ввода-вывода VMS 19.8.2 Последовательность управления вводом-выводом 19.9 Программы работы с записями 19.9.1 Последовательная организация файла 19.9.2 Относительная организация файла 19.9.3 Индексная организация файла 19.9.4 Последовательный режим доступа 19.9.5 Режим прямого доступа 19.9.6 Режим доступа по адресу записи в файле 19.10 Взаимодействие процессов и синхронизация 19.10.1 Общие флаги событий 19.10.2 Почтовые ящики 19.10.3 Общая память 19.10.4 Общие файлы х) Изложение системы VAX в значительной степени основано на книгах! Computer Programming and. Architecture'. The VAX-ll by H.M. Levy and R. H. Eck- house, Jr., Digital Press, 1980 и VAX-ll Software Handbook, Digital Equipment Corporation, 1981; автор благодарен за предоставленное разрешение на исполь¬ зование этих материалов. Ниже перечислены торговые знаки фирмы Digital Equipment Corporations VAX, VMS, PDP, DEC, RSX, RMS, UN I BUS, LSI-11, MASSBUS,
222 Часть 8 Примеры для изучения 19.1 Введение VAX — это семейство 32-битовых микропрограммируемых вычислительных систем с виртуальной памятью, которые выпус¬ каются фирмой Digital Equipment Corporation (DEC). Системы VAX являются развитием популярной серии 16-битовых миникомпью¬ теров PDP-11 фирмы DEC в направлении более мощных вычисли¬ тельных систем с виртуальной памятью. По мере снижения цен на аппаратуру и усиления тенденции к децентрализации на рынке все больше предлагаются системы, пре¬ доставляющие за миникомпьютерную цену возможности больших ЭВМ. В результате изменилась сама природа миникомпьютеров: это теперь не простые, урезанные системы, а сложные ЭВМ, способ¬ ные работать в самых разнообразных режимах. Современные опе¬ рационные системы, используемые на миникомпьютерах, предостав¬ ляют возможности, которые всего несколько лет назад были до¬ ступны только на больших компьютерах. Многие операционные си¬ стемы на миникомпьютерах поддерживают одновременно пакетные задания, работу в реальном времени, интерактивную и отладочную работу и предоставляют обширный набор языков высокого уровня и вспомогательных программ. Увеличение функциональных возможностей миникомпьютеров создало потребность в более мощной поддержке виртуальной памяти в таких системах. Реакцией на эту потребность явилась разработка фирмой DEC архитектуры VAX-П. Семейство VAX (Virtual Ad¬ dress extension) представляет собой расширение PDP-11 средствами виртуальной памяти. Главная цель разработки VAX-11 — существенное увеличение объема виртуальной памяти, доступной на PDP-11 (даже старшие модели PDP-11 ограничены размером виртуального пространства в 128К). Рассматривалась возможность увеличения длины слова PDP-11 (с сохранением архитектуры в остальном). Однако размер машинного слова тесно переплетен со всем машинным языком, так что в случае расширения виртуального адреса было бы трудно из¬ влечь из этого выгоду без существенной модификации старых про- грамм. Поэтому разработчики системы VAX пошли по пути создания новой архитектуры. 19.2 Цели проекта системы VAX На разработку семейства VAX оказал влияние целый ряд су¬ щественных требований. © Разрабатываемая архитектура должна быть жизнеспособной в течение длительного времени, поскольку средства, которые при¬ дется вложить производителям и пользователям в разработку аппаратуры и программного обеспечения для новой архитектуры, будут значительными.
Гл. 19 Пример для изучения: VAX 223 ф Архитектура должна обеспечить очень большое виртуальное адресное пространство. Ф Архитектура должна обеспечить возможность эффективной ком¬ пиляции и выполнения программ на языках высокого уровня. ® Архитектура должна быть похожей на PDP-11, чтобы упростить переход к системе VAX для основной массы клиентов DEC. Ф Архитектура должна поддерживать полное семейство машин, сильно отличающихся по производительности, но совместимых. Ф В целях более эффективной работы операционных систем архи¬ тектура должна включать команды, облегчающие выполнение наиболее частых функций операционной системы. (Разработчики включили в архитектуру команды для аппаратной поддержки очередей, полей битов переменной длины и для записи и восста¬ новления программных контекстов.) 19.3 Совместимость с PDP-11 Совместимость VAX и PDP-11 была достигнута несколькими способами. В обеих машинах используется один и тот же формат данных и формат хранения информации на устройствах ввода-вы¬ вода. Таким образом, файлы, записанные на одной ЭВМ, могут быть прочитаны на другой. Синтаксис и мнемоника языков ассемблера на обеих машинах, в основном, совпадают. Следовательно, компиляторы, генерирующие программу на ассемблере для PDP-11, могут быть легко переделаны на порождение программы для VAX-11. Языки высокого уровня на VAX-11 были спроектированы совместимыми сверху с соответству¬ ющими версиями на PDP-11. Операционная система VAX/VMS (Virtual Memory System- система с виртуальной памятью) весьма похожа по структуре на операционную систему RSX на PDP-11. Многие ключевые разделы, такие, как файловая система и средства работы с записями, идентич¬ ны в обеих операционных системах. В системе VAX-11 имеется режим аппаратной совместимости с PDP-W, позволяющий непосредственно выполнять многие про¬ граммы для PDP-11, работающие в пользовательском, режиме. Пакет подпрограмм, называемый «исполнитель для миграции при¬ кладных систем» (Applications Migration Executive) обеспечивает эмуляцию операционной системы RSX, помогая пользователям переходить на VAX. 19.4 Команды и память Семейство VAX имеет уникальную и мощную систему команд. Команда может иметь длину до 37 байт и определять до шести опе¬ рандов. Для арифметических операций используются шесть различ¬ ных форматов команд. Имеются команды для эффективных манипу¬
224 Часть 8 Примеры для изучения ляций с цепочками битов длиной до 32 бит и с цепочками литер до 64 Кбайт длиной. Ряд команд выполняют действия, редко имеющиеся на аналогич¬ ных машинах. • Команда EMOD выполняет приведение вещественных чисел к заданному диапазону с очень высокой точностью. Она полезна для нормализации аргументов тригонометрических функций. ПОЛЬЗОВАТЕЛЬ ЯДРО Рис. 19.1 Режимы защиты в системе VAX. Система управления запи¬ сями (и др.) Управление страницами, планирование ввода - вывода СУПЕРВИЗОР ИСПОЛНИТЕЛЬ и драйверы / Интерпретация команд (и др.) Программа пользовательского уровня, утилиты,компиляторы,отло#^Изнутри любого круга доступно чики (и др.) все, что лежит во внешних кругах ® Команда POLY вычисляет значение многочлена anxn+an - iX” "1+...+х+х0, позволяя значительно ускорить вычисление математических функций. О Команда INDEX проверяет значение индекса и вычисляет по¬ ложение соответствующего элемента массива. 9 Команда CASE непосредственно реализует инструкцию вычис¬ ляемого перехода Фортрана с автоматической проверкой диапа¬ зона.
Гл. 19 Пример для изучения: VAX 225 • Команда CRC выполняет проверку данных по методу цикличес¬ кой контрольной суммы (полезна в системах передачи данных для обнаружения ошибок в принятой информации). Управление виртуальной памятью осуществляется как аппара¬ турой, так и операционной системой VAX/VMS. Одновременно мо¬ гут выполняться несколько пользовательских программ, причем у каждой будет свое виртуальное адресное пространство. Половина виртуального адресного пространства автоматически является об¬ щей для всех программ. Имеется четыре иерархических уровня защиты. Это (рис. 19.1) уровни ядра, исполнителя, супервизора и пользователя. Защита и совместное использование памяти реализуются на страничном уровне. Каждая страница состоит из 512 байт, и это значительно меньше, чем во многих других страничных системах. Для отобра¬ жения виртуальных адресов в физические служат таблицы страниц; они, кроме того, определяют для каждого из четырех уровней защи¬ ты разрешенный доступ к странице (доступ запрещен, только чте¬ ние, чтение-запись). 19.5 VAX-11/780 ЭВМ VAX-11/780 была первым объявленным членом семейства VAX. Она состоит из центрального процессора, подсистемы основ¬ ной памяти, подсистемы ввода-вывода и консольной подсистемы (рис. 19.2). Процессор, подсистема памяти и подсистема ввода-вы¬ вода связаны посредством шаны SBI (Synchronous Backplane In¬ terconnect), и эта высокоскоростная шина является основным кана¬ лом для передачи в системе управляющей информации и данных. Шина Unibus (общая шина) обеспечивает пропускную способность 1.5 мегабайта (Мбайт) в секунду для работы с разнообразными пери¬ ферийными устройствами. Для обмена блоками данных с лентами и дисками могут использоваться до четырех адаптеров шины Mass¬ bus с пропускной способностью 2 Мбайт/с. Система команд реализована с помощью микропрограмм. Для увеличения производительности используются кэш-буферы. Кэш¬ память объемом 8К обеспечивает сверхбыстрый доступ к часто ис¬ пользуемым данным и значительно снижает интенсивность потока через шину SBI. Для обеспечения быстрого динамического преоб¬ разования адресов используется кэш-память на 128 элементов. Бу¬ фер команд позволяет процессору в ходе выполнения очередной команды выбирать и дешифровывать следующую. Буфер исполь¬ зуется и в интерфейсе центрального процессора с шиной SBI. При этом процессор может отправить в буфер данные, предназначенные для записи в память, инициировать их пересылку в память и затем продолжить работу, не дожидаясь завершения записи. 8 № 534
22G Часть 8 Примеры для изучения Консольная подсистема Рис. 19.2 VAX-11/780,
Гл. 19 Пример для изучения: VAX 227 Для повышения надежности и легкости сопровождения в систе¬ му включены значительные возможности для обнаружения и ис¬ правления ошибок. Операционная система даже может исключить дефектные области памяти и затем продолжить работу. Программируемая консоль содержит микрокомпьютер LSI-11 с оперативной и постоянной памятью и гибкий магнитный диск. Гибкий диск используется как для загрузки системы, так и для вне¬ сения изменений в программное обеспечение. 19.6 Управление памятью Управление памятью в операционной системе VMS осуществля¬ ется с помощью двух программ: программы подкачки страниц и программы переключения процессов. Программа подкачки страниц отвечает за считывание страницы, к которой произошло обращение, в случае ее отсутствия в памяти и за запись измененной страницы из оперативной памяти, когда требуется место для новой страницы. Программа подкачки страниц выполняется в контексте вызвавшего ее процесса, причем эта программа общая для всех процессов в сис¬ теме. Программа переключения процессов работает с целым процес¬ сом — загружает его в основную память или удаляет из памяти. Эта программа в тесном взаимодействии с планировщиком определяет, какие процессы следует переместить из памяти на диск и наоборот. 19.6.1 Подкачка страниц Каждому процессу приписывается так называемый предельный размер резидентного множества — число, показывающее макси¬ мальное количество страниц памяти, которые может занимать этот процесс. Страницы процесса, одновременно находящиеся в памяти, составляют резидентное множество процесса (в документации по VMS называемое также рабочим множеством). Указатели на эти страницы хранятся в списке резидентного множества. Когда случается страничный отказ (обращение к отсутствующей странице), управление передается программе подкачки страниц. Она находит по виртуальному адресу элемент таблицы страниц, отвечающий требуемой странице. В этом элементе хранится инфор¬ мация, позволяющая программе подкачки найти страницу на диске. Программа подкачки отыскивает свободную страницу в памяти и запускает чтение нужной страницы с диска. Элемент таблицы стра¬ ниц изменяется так, чтобы отразить расположение страницы в па¬ мяти. По завершении чтения страницы программа подкачки воз¬ вращает управление той команде пользовательской программы, кото¬ рая вызвала отказ. В ходе выполнения процесса страничные отказы порождаются всякий раз, когда процесс обращается к странице, не лежащей в его резидентном множестве, Если в момент страничного отказа про' 8*
228 Часть 8 Примеры для изучения цесс еще не достиг предельного размера резидентного множества, то новая страница считывается в какую-либо из доступных страниц памяти. Если же предел был достигнут, то процесс должен отказать¬ ся от одной из своих резидентных страниц, с тем чтобы освободить место для новой страницы. Интересноу что в системе VAX не используются какие-либо сложные стратегии замещения страниц из тех, что мы рассматри¬ вали. Страницы для замещения выбираются в порядке «первым при¬ шел— первым ушел» (FIFO). Однако, как вскоре станет ясно, из¬ держки, вызванные выталкиванием страниц, к которым вот-вот произойдет обращение (а это — вполне реальный случай с дисцип¬ линой FIFO), поддерживаются на невысоком уровне посредством других включенных в VMS механизмов. Операционная система ведет два списка физических страниц: список свободных страниц и список измененных страниц. Когда какому-либо процессу требуется новая физическая страница для подкачки, эта страница берется из головы списка свободных стра¬ ниц. Система старается всегда иметь несколько свободных страниц, но время от времени все физические страницы оказываются заня¬ тыми. Когда процессу приходится освобождать страницу из-за превы¬ шения предельного размера резидентного множества, эта страница помещается в хвост либо списка свободных страниц, либо списка измененных страниц в зависимости от того, осталась ли страница неизменной или была изменена. Измененные страницы не записы¬ ваются на диск, пока список измененных страниц не достигнет оп¬ ределенного размера. Неизмененные страницы из списка свободных страниц остаются в нем до тех пор, пока не понадобятся свободные страницы. Страница, находящаяся в списке свободных или изме¬ ненных страниц, может быть вновь запрошена процессом, обратив¬ шимся к ней. В случае такого повторного запроса страницы она воз¬ вращается в резидентное множество за относительно небольшую цену, что также помогает уменьшить объем ввода-вывода для под¬ качки страниц. Такой способ действий в какой-то степени неспра¬ ведлив по отношению к процессам со стабильным резидентным мно¬ жеством. Он ведет к тому, что процессы, постоянно вызывающие страничные отказы, по существу, распространяют свои резидентные множества на списки свободных и измененных страниц. Для минимизации объема ввода-вывода, требуемого для подкач¬ ки, страницы записываются на диск кластерами. Еще более умень¬ шают объем ввода-вывода повторные запросы, изымающие многие страницы из списка измененных страниц. Имея одновременно несколько страниц в списке измененных страниц, система может пытаться записывать последовательные страницы процесса в последовательные позиции на диске. Это поз¬ воляет в будущем, если потребуется, прочитать сразу кластер из последовательных страниц.
Гл. 19 Пример для изучения: VAX 229 Процесс в начале своего выполнения, как правило, порождает частую последовательность страничных отказов, пока накапливает¬ ся его рабочее множество. Операционная система VMS пытается минимизировать эту начальную деятельность, выполняя для но¬ вых процессов чтение кластера из многих страниц. Система VMS динамически подстраивает размер резидентного множества процесса в зависимости от частоты порождаемых процес¬ сом страничных отказов. Размер резидентного множества увеличи¬ вается для процессов с высокой частотой страничных отказов и уменьшается для процессов с низкой частотой. Такая стратегия ведет к выравниванию частот страничных отказов всех процессов. 19.6.2 Переключение процессов Кроме вталкивания и выталкивания индивидуальных страниц VMS перемещает целиком резидентные множества процессов из балансного множества (т. е. множества процессов, размещенных в основной памяти) на диск и наоборот. Такое перемещение целиком резидентных множеств называется переключением процессов и вы¬ полняется оно некоторым процессом, называемым программой пе¬ реключения процессов. Программа переключения процессов выталкивает целиком ре¬ зидентные множества из балансного множества в основной памяти на диск, чтобы освободить место для вталкивания резидентных мно¬ жеств других процессов. В этом отношении VMS отличается от многих других систем с виртуальной памятью, которые требуют, чтобы нерезидентные процессы сами запрашивали в основную память свои страницы по одной. Вместо этого VMS загружает сразу все ре¬ зидентное множество процесса, которое было в памяти в момент последнего выталкивания этого процесса. Это резко уменьшает объехМ дискового ввода-вывода для подкачки, поскольку резидентные множества записываются на диск и считываются с него в виде клас¬ теров. Для процесса, только что подкаченного в основную память, VMS гарантирует выделение хотя бы одного кванта, прежде чем он будет снова вытолкнут. Очередной процесс для вталкивания оп¬ ределяется прямолинейно — программа переключения . процессов просто выбирает наиболее приоритетный нерезидентный готовый к выполнению процесс. В момент вталкивания программе переключе¬ ния процессов нужно найти достаточное количество свободных стра¬ ниц, чтобы разместить новое резидентное множество. Имеется не¬ сколько источников свободных страниц. • Их можно взять из списка свободных страниц. 9 Можно записать на диск страницы из списка измененных стра¬ ниц, создав дополнительные свободные страницы. • Можно вытолкнуть какой-либо процесс меньшего или равного приоритета.
230 Часть 8 Примеры для изучения Когда нужно втолкнуть большое резидентное множество, часто бывает необходимо вытолкнуть несколько процессов, чтобы освобо¬ дить место. 19.7 Планирование процессов Планирование выполнения процессов в балансном множестве операционная система VAX/VMS осуществляет в соответствии с приоритетной схемой. Процессы реального времени будут иногда называться критичными по времени, нормальные процессы — это процессы с разделением времени или фоновые. Для планирования в VAX/VMS имеется 32 уровня приоритета (рис. 19.3). Уровни приоритета 0—15 отведены для нормальных Приоритет 31 Приоритетные процессы реального времени Выбираются диспетчером системы Выбираются автоматически > „плавающим" \ алгоритмом Приоритет 0 Процессы реального времени низкого приоритета Программа переключения процессов г Сильно интерактивные или лимитируемые вводом-выводом процессы Процессы, до некоторой степени лимитируемые вводом-выводом У Процессы, лимитируемые вычислениями Рис, 19.3 Приоритеты процессов. процессов; уровни 16—31—для процессов реального времени. Большие числа означают более высокий приоритет. Планирование процессов реального времени выполняется в строгом соответствии с приоритетами- готовый к выполнению процесс с более высоким прио¬ ритетом вытесняет выполняющийся низкоприоритетный процесс. Приоритеты нормальных процессов изменяются динамически так, чтобы обеспечить максимальное совмещение работы ЦП и устройств ввода-вывода. С каждым событием в системе связывается соответст¬ вующее приращение приоритета. Когда происходит событие, после которого процесс становится готовым к выполнению, планировщик устанавливает приоритет процесса равным его базовому приоритету плюс приращение, отвечающее происшедшему событию. Каждый раз при обработке планировщиком нормального процесса его прио¬
Гл. 19 Пример для изучения: VAX 231 ритет уменьшается, но он не становится ниже базового приоритета этого процесса (рис. 19.4). Программа переключения процессов или рабочих множеств — это системный процесс, перемещающий целиком рабочие множества между основной и вторичной памятью в обе стороны. Перемещение Планирование «о о Qj ZJ* Cl В С В с Приращение . приоритета из-за 7 системного события Планирование Планирование с. с> —] Планирование 4 Базовый приоритет с_ сг Системное Время событие Рис. 19.4 Динамическая настройка приоритетов для нормальных процессов. процесса из основной во вторичную память называется выталкива¬ нием', перемещение из вторичной памяти в основную называется вталкиванием. Переключение процессов необходимо, чтобы 9 заместить выполняемые процессы низкого приоритета на процес¬ сы более высокого приоритета; 9 заместить невыполняемые процессы в основной памяти на про¬ цессы, находящиеся во вторичной памяти и готовые к выполне¬ нию; 9 создать у планировщика запас готовых к выполнению процессов в конфигурации, где основной памяти не хватает для размещения рабочих множеств всех активных процессов. 19.7.1 Планирование Для процессов реального времени VAX гарантирует малое время ответа, присваивая им заведомо более высокий приоритет, чем нор¬ мальным процессам. Очередной выбираемый для выполнения про¬ цесс — это всегда процесс с наивысшим приоритетом из очереди готовых к выполнению резидентных процессов. Системные события вызывают изменение состояния процесса. События могут происходить синхронно с процессом (например, ис¬ полнение процессом команды ожидания) или асинхронно (напри¬ мер, завершение ввода-вывода).
232 Часть 8 Примеры для изучения В любой момент процесс может находиться в одном из нескольких взаимоисключающих состояний. Переходы между состояниями происходят в результате системных событий. Состояние процесса указывается в управляющем блоке процесса (РСВ), поддерживаемом программным образом. Система для каждого состояния хранит свою очередь процессов. Заголовок каждой очереди содержит счетчик числа процессов в ней. 19.7.2 Очередь готовых к выполнению процессов На рис. 19.5 показана структура типичной очереди готовых к выполнению процессов в балансном множестве. В итоговом длинном слове содержится по одному биту на каждую подочередь. Если этот Бит О Бит 1 Бит 29 Бит 30 Бит 31 -Итоговое длинное слово Готовые к выполнению процессы в балансном множестве 1 Заголовок подочереди приоритета 31 0 Заголовок подочереди- приоритета 30 1 Заголовок, подочереди приоритета 2 1 Заголовок, подочереди приоритета 1 0 Заголовок подочереди приоритета 0 А РСВ РСВ 0 рсв Z В Рис. 19.5 Очередь готовых к выполнению процессов. бит нулевой, то в соответствующей подочереди нет процессов; бит в единичном состоянии означает, что в подочереди есть ожидающие процессы. Процессы из очереди выбираются в приоритетном порядке! первым выбирается процесс с наивысшим приоритетом. Процессы равного приоритета выбираются из своей подочереди по правилу «первый пришедший обслуживается первым».
233 Гл. 19 Пример для изучения: VAX 19.7.3 Переходы между состояниями процессов Состояние процесса меняется, когда планировщик получает сообщение о системном событии. Возможные переходы показаны на рис. 19.6. Выполняющийся процесс, исчерпавший свой квант про¬ цессорного времени, ставится планировщиком в очередь готовых Рис. 19.6 Переходы между состояниями процессов. к выполнению резидентных процессов. Различные операции, вы¬ нуждающие выполняющийся процесс дожидаться наступления ка¬ кого-либо события, переводят процесс в одно из состояний ожида¬ ния. Вновь созданный процесс оказывается в состоянии «нерези¬ дентный, готовый к выполнению». 19.7.4 Выбор на выполнение Выбор на выполнение готового процесса осуществляется прямо¬ линейно с минимальным числом логических проверок. Программа- диспетчер просто выбирает на выполнение процесс из головы самой приоритетной непустой подочереди готовых к выполнению процессов
234 Часть 8 Примеры для изучения в балансном множестве. Решения планировщика (в отличие от дис¬ петчера) принимаются вследствие системных событий, делающих процессы готовыми к выполнению. 19.7.5 Управление квантами Каждому процессу выделяется некоторый квант времени выпол¬ нения. Квантование времени ® гарантирует процессу минимальное количество времени, в те¬ чение которого он может выполнять работу, до того как будет вытолкнут из балансного множества; ® для процессов, ограниченных временем выполнения, обеспечи¬ вает получение разумной доли времени ЦП. Работа процессов реального времени не подлежит квантовому дроблению. Важно отметить, что квант в системе VAX определяет время нахождения процесса в основной памяти, а не время работы процессора. Процессы в течение своего кванта могут быть много раз прерва¬ ны. Однако процесс остается в балансном множестве до тех пор, пока не истечет его первый квант или пока какой-либо нерезидентный процесс более высокого приоритета не потребует обслуживания, или же пока сам процесс не перейдет в состояние ожидания. 19.8 Ввод-вывод в системе VAX/VMS Система ввода-вывода в VMS разбита на несколько уровней, как показано на рис. 19.7. При переходе от верхних к нижним уровням выполняемые операции ввода-вывода превращаются из большей частью логических в преимущественно физические. На верхних уровнях VMS имеет дело с файлами, записями и полями. На ниж¬ них уровнях работа идет с физическими операциями и организацией различных устройств ввода-вывода. Ввод-вывод в VN1S обычно асинхронен — выдав запрос на ввод- вывод, процесс может продолжать работу во время обслуживания его запроса. У процесса имеется возможность самому проверить завершение ввода-вывода или же он может получить извещение от системы. Процессы, желающие дожидаться завершения ввода-вы¬ вода, вызывают системную подпрограмму, которая приостанавли¬ вает процесс. Важно отметить, что в VMS такая приостановка не является автоматическим следствием запроса на ввод-вывод. Для описания состояния системы ввода-вывода в произвольный момент используются структуры данных. Специальные управляю¬ щие блоки описывают каждый ® адаптер шины, • контроллер,
Гл. 19 Пример для изучения: VAX 235 { Открыть файл Закрыть файл Получить запись Поместить запись в файд { Прочитить&ок файла Записать блок файла Прочитать дисковый блок Записать дисковый блок { Операции с томом / Детальные операции по ] физ и че с ком у доступу 5 к устройству и I получение информации о состоянии Рис. 19.7 Слои системы ввода-вывода. © устройство, © запрос на ввод-вывод. Различные управляющие блоки связаны указателями и вместе образуют структуру данных, представляющую топологию аппара¬ туры ввода-вывода. В качестве примера на рис. 19.8(a) показана возможная конфигурация аппаратуры VAX. Состояние этой аппа¬ ратуры и ожидающих запросов на ввод-вывод отражается структу¬
236 Часть 8 Примеры для изучения рой данных, представленной на рис. 19.8 (б). Стрелками показаны указатели между управляющими блоками. На рисунке изображены управляющие блоки шести различных типов. Их функции вкратце следующие. © Блок данных группы устройств (DDB — Device Data Block) — содержит информацию, общую для различных устройств данного типа, подключенных к одному контроллеру (это, например, имя устройства, такое, как ТТА для терминалов, подключенных к контроллеру А). ® Управляющий блок устройства (UCB — Unit Control Block) — содержит характеристики и состояние отдельного устройства и контекст процесса-драйвера этого устройства. • Пакет запроса на ввод-вывод (IRP — I/O Request Packet) — содержит всю информацию, описывающую отдельный запрос на ввод-вывод (например, идентификатор процесса, запросившего ввод-вывод, подлежащую выполнению операцию, а также адрес и длину буфера пользователя в памяти). • Блок запроса канала (CRB — Channal Request Block) — со¬ держит информацию, описывающую состояние контроллера. Сюда входит идентификатор устройства, передающего или при¬ нимающего данные, и идентификаторы устройств, ожидающих освобождения контроллера. • Блок сообщений о прерываниях (IDB — Interrupt Dispatch Block) — расширение блока запроса канала указывает, что де¬ лает контроллер в настоящий момент, и используется для вы¬ яснения того, какое устройство вызвало данное прерывание. • Управляющий блок адаптера (АСВ — Adaptor Control Block) — содержит информацию о характеристиках и состоянии адаптера шины Massbus или Unibus. Содержимое этих блоков описывает состояние всей аппаратуры ввода-вывода в любой момент времени. а
Гл. 19 Пример для изучения: VAX 237 Рис. 19.8 (а) Пример конфигурации аппаратуры VAX и (б) соответствующая структура данных.
238 Часть 8 Примеры для изучения 19.8.1 Компоненты системы ввода-вывода VMS Система ввода-вывода в VMS включает три компоненты, а именно: Ф обслуживание очередей системы ввода-вывода (QIO); @ драйверы устройств; ф постпроцессоры ввода-вывода. Процедура QIO вызывается пользовательской программой при любом запросе на операцию ввода-вывода. Она проверяет коррект¬ ность аргументов, переданных пользователем, и строит пакет запро¬ са ввода-вывода (IRP), который описывает требуемую операцию ввода-вывода. Пакет IRP содержит данные, необходимые драйверу устройства для выполнения реального физического ввода-вывода. Процедура QIO проверяет, разрешено ли вызывающему процессу выполнять указанную операцию с устройством. Управляющий блок устройства содержит указатель на список неудовлетворенных запросов на ввод-вывод. Процедура QIO встав¬ ляет новые пакеты IRP в соответствующие очереди к нужным уст¬ ройствам и затем возвращает управление вызвавшему процессу. Далее этот процесс выбирает, продолжить ли ему выполнение или попросить приостановить себя до завершения операции ввода-вы¬ вода. Процесс-драйвер устройства управляет работой отдельного уст¬ ройства. Драйверы устройств выполняются с высоким приоритетом, чтобы обеспечить высокую загрузку устройств. Управляющий блок устройства определяет процесс-драйвер таким же образом, как лю¬ бой процесс определяется управляющим блоком процесса. С каж¬ дым устройством связан свой управляющий блок устройства, опи¬ сывающий состояние устройства и процесса-драйвера этого устрой¬ ства. Постпроцессоры ввода-вывода завершают операции ввода-вы¬ вода. Они передают окончательное состояние и данные в память пользовательского процесса. 19.8.2 Последовательность управления вводом-выводом В этом разделе детально прослеживается прохождение через VMS одного запроса на ввод-вывод. Инициация любого запроса на ввод-вывод происходит, когда процесс вызывает процедуру QIO. Процедура QIO проверяет корректность запроса, строит пакет запроса на ввод-вывод (IRР), помещает его в очередь, начинающую¬ ся от управляющего блока соответствующего устройства, и затем возвращает управление пользователю. Пакет запроса IRP опреде¬ ляет запрос к системе на ввод-вывод. В частности, в нем содержится вся информация, необходимая для асинхронного (по отношению к вызывающему процессу) обслуживания этого запроса и для после¬ дующего завершения ввода-вывода в контексте вызывающего про¬ цесса.
Гл. 19 Пример для изучения: VAX 239 Контекст процесса ( Режим доступа к процессору Процесс- драйвер > Процесс , пользователях Процесс пользователя} Рис. 19.9 Последовательность обработки запроса на ввод-вывод в VMS (Le80, с. 310). ч z В точности последовательность событий начиная с этого момента показана на рис. 19.9. Пользователь вызывает служебную процедуру QIO, которая работает в пользовательском процессе, но в режиме ядра. Она находит управляющий блок нужного устройства и прове¬
240 Часть 8 Примеры для изучения ряет корректность всех не зависящих от устройства параметров вызова. Затем QIO строит пакет запроса на ввод-вывод и присоеди¬ няет его к очереди запросов управляющего блока устройства, где этот пакет находится до тех пор, пока процесс-драйвер не сможет его обработать. В конце концов процесс-драйвер выбирает запрос из очереди и инициирует выполнение указанной операции ввода-вывода на уст¬ ройстве. Затем драйвер приостанавливает сам себя, помещая свой управляющий блок устройства в очередь и позволяя тем самым про¬ должать другую работу, в то время как устройство будет выполнять операцию ввода-вывода. Когда устройство завершит ввод-вывод, оно возбуждает прерывание, по которому операционная система возобновляет процесс-драйвер. Драйвер считывает с регистров уст¬ ройства и контроллера информацию о состоянии, описывающую результат операции ввода-вывода, и помещает ее в IRP. Пакет IRP затем помещается в очередь, где он ожидает обработки програм¬ мой-постпроцессором ввода-вывода. Постпроцессор анализирует IRP, определяя, как следует за¬ вершать ввод-вывод. Постпроцессор копирует информацию о сос¬ тоянии из пакета IRP в память пользователя и затем извещает процесс пользователя о завершении операции ввода-вывода. 19.9 Программы работы с записями Программы работы с записями (RMS — Record Management Services) в системе VAX-11 используются обычно для ввода-вывода на устройствах массовой памяти. Более сложная процедура QIO служит для выполнения ввода-вывода в случае терминалов и раз¬ личных специальных устройств, например графических. Программы RMS облегчают работу с логическими записями; они автоматически осуществляют объединение записей в блоки и обратную процедуру. Программы RMS могут создавать файлы трех типов: последова¬ тельные > относительные и индексные. Обеспечиваются три режима доступа: последовательный, по ключу и по адресу записи в файле. 19.9.1 Последовательная организация файла Последовательные файлы, вероятно, имеют простейшую струк¬ туру из всех типов файлов VAX/VMS. Записи в файле располага¬ ются подряд> одна за другой. Последовательность записей опреде¬ ляется порядком, в котором они помещались в файл. Последова¬ тельный файл показан на рис. 19.10. Конец файла V Запись Запись Запись Запись • • • Запись Запись Рис. 19.10 Последовательная организация файла.
Гл. 19 Пример для изучения: VAX 241 19.9.2 Относительная организация файла Относительный файл (рис. 19.11) состоит из ряда ячеек фикси¬ рованного размера. Размер ячеек определяется пользователем. Ячейки пронумерованы от 1 для первой записи до некоторого мак¬ симального номера для последней. Каждая ячейка может содержать Ячейка 1 Ячейка 2 Ячейка 3 Ячейка 4 Ячейка 5 Запись Запись У<Пусто% . Z • У'У-У Запись 1 2 4 Рис. 19.11 Относительная организация файла. • • • Ячейка Ячейка 2499 2500 Запись Запись 2499 2500 одну запись или быть пустой. Пустые ячейки могут находиться в произвольных местах файла, они не обязаны располагаться подряд. Номера ячеек уникальны и могут, следовательно, использоваться Рис. 19.12 Индексная организация файла.
242 Часть 8 Примеры для изучения для идентификации записей в ячейках, а также самих ячеек. Номер ячейки, используемый для указания записи, называется относи¬ тельным номером записи. 19.9.3 Индексная организация файла С точки зрения пользователя, индексные файлы (рис. 19.12) облегчают разработку прикладных систем, ориентированных на выборку информации. Индексная организация файла уникальна Организация файла Достоинства Недостатки Последователь¬ ная Эффективно используются диск и память: Минимальное дополнительное пространство на диске, минимальное число переходов через границы блоков. Обеспечивается оптимальная работа, если программа при каждом выполнении последо¬ вательно обращается ко всем записям. Формат записи наиболее гибок. Данные можно записывать В некоторых языках про¬ граммирования высокого уровня допускается только последовательный доступ. Записи можно добавлять только к концу файла. Несколько параллельно ра¬ ботающих пользователей мо¬ гут писать в файл, но толь¬ ко на свой страх и риск. на многих различных типах устройств в виде, не завися¬ щем от устройства. Относительная Для всех языков возможен как последовательный, так и прямой доступ. Допускаются произвольные удаления и вставки записей. Допускается параллельная запись в файл. Индексная Для всех языков возможен последовательный доступ и прямой по значению ключа. Допускаются произвольные удаления и вставки. Допускается параллельное чтение из файла и запись в него. При изменении записи мож¬ но сменить и ее длину. Файл легко может быть рас¬ ширен. Данные хранятся только на диске. Необходимо наличие в файле ячейки для каждого относи¬ тельного номера записи, сле¬ довательно, файл может быть заполнен неплотно. Ячейки для записей должны быть все одного размера. Данные можно хранить только на диске. Требуется большое прост¬ ранство на диске. Для обработки записей не¬ обходим большой объем ра¬ боты ЦП. Для обработки одной записи требуется, вообще говоря, несколько обращений к дис¬ ку. Рис. 19.13 Способы организации файлов — достоинства и недостатки. (С любез¬ ного разрешения Digital Equipment Corporation.)
Гл. 19 Пример для изучения: VAX 243 в том отношении, что поиск записей возможен не только по их рас¬ положению в файле, но и по данным, хранящимся в самих записях. Каждая запись индексного файла имеет поле ключа. Длина ключа и его положение внутри каждой записи фиксированы. В RMS ис¬ пользуются поля ключей шести различных типов: цепочка литер, 15-битовое целое со знаком, 16-битовое двоичное число без знака, 31-битовое целое со знаком, 32-битовое двоичное число без знака и упакованное десятичное число. При добавлении любой записи к индексному файлу RMS строит древовидную структуру, называемую индексом. Индекс состоит из элементов, содержащих значения ключей находящихся в файле записей. Каждый элемент индекса кроме значения ключа содержит указатель на то место в файле, где может быть размещена запись с данным ключом. Можно построить несколько индексов для доступа к одному файлу. На рис. 19.13 приведен список преимуществ и недостатков последовательных, относительных и индексных файлов. 19.9.4 Последовательный режим доступа Способ доступа к записям файла и реальная организация фай¬ ла — это два отдельных вопроса. Обычно метод доступа указывает¬ ся при открытии файла. В некоторых случаях программа может сменить метод доступа в ходе работы с файлом. При последовательном режиме доступа записи выбираются по¬ следовательно, одна за другой. В случае последовательного файла порядок выборки записей совпадает с порядком, в котором они за¬ писывались в файл. При последовательном доступе к относитель¬ ному файлу пустые ячейки игнорируются. При очередном чтении из файла будет выбираться запись из следующей занятой ячейки. Последовательный доступ к индексному файлу осуществляется в порядке, задаваемом индексом. 19.9.5 Режим прямого доступа Прямой доступ употребляется в интерактивных приложениях, где необходимо ускорить доступ к отдельным записям. Очередной запрос может не иметь никакой связи с предыдущим: требуемые записи часто бывают разбросаны по всему файлу. Прямой доступ к последовательному файлу возможен, если файл состоит из записей фиксированной длины и в запросе указывается относительный номер записи. При прямом доступе к относительному файлу указывается относительный номер требуемой записи. В слу¬ чае попытки чтения пустой ячейки RMS возвращает ответ «запись отсутствует». В случае попытки занесения информации в занятую ячейку ответ RMS — «запись уже есть». Прямой доступ к индекс¬ ному файлу осуществляется по ключу. RMS отыскивает в индексе элемент, соответствующий ключу поиска и, в случае успеха, возвра¬ щает запись, на которую указывает элемент индекса.
244 Часть 8 Примеры для изучения 19.9.6 Режим доступа по адресу записи в файле Этот метод доступа применим к файлу любой организации, если только известен точный адрес записи на диске. После любой успеш¬ ной операции чтения или записи RMS возвращает программе, вы¬ давшей запрос, адрес записи в файле. Программа может сохранить этот адрес для последующего использования. Этот метод доступа значительно ускоряет доступ к записям, но требует от пользователя дополнительных усилий. 19.10 Взаимодействие процессов и синхронизация Операционная система VAX/VMS предоставляет большой набор средств взаимодействия процессов, предназначенных для синхрони¬ зации выполнения процессов, обмена сообщениями между ними и совместного использования общих данных. Обеспечиваются четыре различных метода взаимодействия: ® общие флаги событий, ® почтовые ящики, ® общие области памяти, ® общие файлы. Эти методы различаются по скорости и степени общности. 19.10.1 Общие флаги событий Флаги событий — это простейший механизм взаимодействия процессов в VMS. Флаг события — это бит для записи состояния, который можно устанавливать и сбрасывать, сообщая тем самым о наступлении какого-либо события. Имеются различные средства обслуживания флагов событий; можно ® установить или сбросить определенный флаг; • проверить текущее состояние флага; 9 перевести программу в состояние ожидания, где она будет на¬ ходиться до тех пор, пока не будет установлен определенный флаг или группа флагов. Каждый флаг события входит в состав 32-битового кластера фла¬ гов событий. Каждому процессу доступны четыре кластера с номе¬ рами от 0 до 3. Флагу события можно приписать любой смысл. Два из четырех кластеров предназначены для локального использова¬ ния внутри процесса; два других служат для взаимодействия про¬ цессов. Кластеры с номерами 2 и 3 называются кластерами общих флагов событий. Они создаются динамически с помощью запроса к системе и могут использоваться совместно несколькими процессами. Про¬ цессы должны присоединяться к кластеру общих флагов событий;
Гл. 19 Пример для изучения: VAX 245 первый присоединившийся процесс вызывает создание кластера; остальные процессы, присоединяясь, получают возможность доступа к созданным флагам. Система VMS обеспечивает шесть типов операций над флагами событий, применимых как к локальным, так и к общим флагам. • Установить флаг события. • Сбросить флаг события. • Прочитать флаг события. • Ждать одного флага события. • Ждать логической функции ИЛИ от нескольких флагов событий. • Ждать логической функции И от нескольких флагов событий. Следующие три операции применимы только к кластерам общих флагов событий. © Присоединиться к кластеру общих флагов событий. © Отсоединиться от кластера общих флагов событий. • Удалить кластер общих флагов событий. На рис. 19.14 показана синхронизация процессов при помощи флагов событий. Процесс, первым вызвавший функцию $ASCEFC (Associate with Common Event Flag Cluster — присоединиться к клас- Процесс 1 ASCEFC_S EFN=^#64, NAME = имя.кластера ; создать или при¬ соединиться к . . . клас- ; теру 2 SETEF_S EFN = #65 ; известить процесс 2 WAITFR.S EFN = #66 ; ждать сигнала от процесса 2 Процесс 2 ASCEFC_S EFN = #64, NAME = имя .кластера ; создать или при- ; соединить к . . . кластеру 2 SETEF.S EFN = #66 ; известить процесс 1 WAITFR.S EFN = #65 ; ждать сигнала от процесса 1 Рис. 19.14 Синхронизация процессов при помощи флагов событий. теру флагов событий), создает этот кластер, а другой процесс при¬ соединяется к нему. Каждый из двух процессов сначала устанав¬ ливает флаг, сообщая другому процессу о своей готовности; затем оба процесса ожидают установки каждый своего флага, Параметр EFN определяет номер флага события.
24G Часть 8 Примеры для изучения 19.10.2 Почтовые ящики Флаги событий полезны для ожидания событий и определения момента, когда они происходят, но флаги событий не позволяют передавать данные между процессами. Для этого в VAX имеется более общий механизм, называемый почтовой связью. Почтовый ящик — это виртуальное устройство, ориентированное на работу с записями, которое может быть использовано для организации взаимодействия процессов. Можно читать данные с этого устройства и записывать на него таким же образом, как для обычных файлов и устройств. Сообщения помещаются в почтовый ящик с одной стороны, а извлекаются — с противоположной; таким образом, сообщения считываются в порядке «первый пришедший обслуживается пер¬ вым». Процесс, читающий из почтового ящика, получает либо самое старое из содержащихся в нем сообщений, либо указание, что ящик пуст. Процесс может попросить извещать его всякий раз, когда в почтовый ящик помещается сообщение. При создании почтового ящика задается максимальный размер сообщения и максимальное число сообщений, которые могут нахо¬ диться в ящике. Можно также указать при создании почтового ящи¬ ка, каким процессам разрешается помещать в него сообщения. Почтовые ящики могут быть защищены таким же образом, как файлы VMS. Когда один процесс создает другой, он может определить некото¬ рый почтовый ящик, в который будет помещено сообщение о завер¬ шении при удалении созданного процесса. 19.10.3 Общая память Наиболее универсальный из механизмов взаимодействия про¬ цессов — это общая память. Совместное использование памяти в частях адресного пространства, отведенных процессам, обеспечи¬ вается при помощи глобальных секций. Глобальная секция — это именованная область памяти, которая может быть отображена в адресные пространства нескольких процессов. Процессы, осуществляющие взаимодействие при помощи общей памяти, используют для синхронизации свои собственные согласо¬ ванные друг с другом протоколы, и это делает общую память весьма универсальным механизмом взаимодействия. Процессы, использую¬ щие общие области памяти, часто используют кроме них и флаги событий. Некоторые глобальные секции постоянно находятся в системе, другие создаются процессами динамически. Когда процесс обращает¬ ся к динамически созданной глобальной секции, она отображается в память этого процесса; глобальная секция удаляется, когда не остается ни одной ссылки на нее.
Гл. 19 Пример для изучения: VAX 247 19.10.4 Общие файлы Процессы могут взаимодействовать при помощи общих файлов. Дисковые файлы могут совместно использоваться любым числом программ, если они только читают файл (но не пишут в него). По¬ следовательный дисковый файл может быть доступен только одной программе, записывающей в файл, или совместно нескольким про¬ граммам, читающим его. Однако относительные и индексные файлы могут совместно использоваться несколькими программами чтения и записи. Заключение Система VAX представляет собой расширение семейства PDP-11 средствами виртуальной памяти. При разработке системы VAX преследовалась цель обеспечить совместимость с PDP-11. В обеих машинах используется один и тот же формат данных и формат хра¬ нения информации на устройствах ввода-вывода. Языки ассембле¬ ра на обеих машинах в основном совпадают. Операционная система VAX/VMS весьма похожа на опеоационную систему RSX на PDP-11. В системе VAX-11 имеется режим аппаратной совмести¬ мости с PDP-11. Существуют четыре иерархических уровня защиты — уровни ядра, исполнителя, супервизора и уровень пользователя. Система команд реализована с помощью микропрограмм. Для ускорения преобразования адресов и доступа к часто используемым данным применена кэш-память. Управление памятью включает две основные компоненты: про¬ грамму подкачки страниц и программу переключения процессов. Программа подкачки страниц перемещает отдельные страницы из основной во вторичную память и наоборот; программа переключе¬ ния процессов перемещает процессы целиком. С каждым процессом связан предельный размер резидентного множества, т. е. максималь¬ ное число страниц, которые он может иметь одновременно в основной памяти. Если процесс достиг предельного размера своего резидент¬ ного множества и пытается втолкнуть еще одну страницу, он дол¬ жен изгнать из основной памяти одну из своих текущих страниц. Это — локальная стратегия замещения страниц. Страницы для замещения выбираются в порядке «первым пришел — первым ушел». Замещаемая страница добавляется к списку измененных страниц, если в ней были сделаны изменения, или к списку свободных стра¬ ниц в противном случае. Измененные страницы записываются во вторичную память только при необходимости. Часто измененные страницы еще до выталкивания повторно запрашиваются своими процессами. Свободные страницы часто запрашиваются повторно до своего переназначения. VMS динамически подстраивает размер резидентного множества процесса в зависимости от частоты поро¬
248 Часть 8 Примеры для изучения ждаемых процессом страничных отказов. VMS пытается выровнять частоты страничных отказов всех процессов. Объем ввода-вывода, требуемого для подкачки, уменьшается путем записи на диск и чте¬ ния с диска резидентных множеств в виде кластеров. Для планирования выполнения процессов в VMS используется 32 уровня приоритета. Планирование процессов реального времени выполняется в строгом соответствии с приоритетами. Каждый раз при обработке планировщиком нормального процесса его приоритет уменьшается, но не становится ниже определенного базового прио¬ ритета. За время своего существования процесс многократно переходит из одних состояний в другие. Большое значение в VMS имеет втал¬ кивание и выталкивание; состояния процесса в основной памяти и вытолкнутого являются как бы зеркальными отражениями друг друга. Ввод-вывод в VMS обычно асинхронен — выдав запрос на ввод- вывод, процесс может продолжать работу во время обслуживания его запроса. Состояние системы ввода-вывода в произвольный мо¬ мент описывается некоторой структурой данных. Эта структура дан¬ ных состоит из блоков данных группы устройств, управляющих блоков устройства, пакетов запроса на ввод-вывод, блоков запроса канала, блоков сообщений о прерываниях и управляющих блоков адаптера. В этой главе содержится детальное описание последова¬ тельности управления вводом-выводом. Программы работы с записями (RMS) в системе VMS исполь¬ зуются обычно для ввода-вывода на устройствах массовой памяти. Система RMS может создавать последовательные, относительные и индексные файлы. Обеспечиваются три режима доступа: последова¬ тельный доступ, доступ по ключу и доступ по адресу записи в файле. Операционная система VMS предоставляет большой набор средств взаимодействия процессов, предназначенных для синхро¬ низации выполнения процессов, обмена сообщениями между ними и совместного использования общих данных. Это общие флаги собы¬ тий, почтовые ящики, общие области памяти и общие файлы. Терминология балансное множество (balance set) блок данных группы устройств (Device Data Block, DDB) блок запроса канала (Channel Request Block, CRB) блок сообщений о прерываниях (Interrupt Dispatch Block, IDB). взаимодействие процессов (interprocess communication) вталкивание процесса (inswapping) выталкивание процесса (outswapping) глобальная секция (global section) доступ по адресу записи в файле (Record’s File Address access) доступ по ключу (keyed access)
Гл- 19 Пример для изучения: VAX 249 драйвер устройства (device driver) индекс (index) индексный файл (indexed file) исполнитель для миграции прикладных систем (Applications Mig¬ ration Executive) итоговое длинное слово (summary longword) кластер флагов событий (event flag cluster) кластеры страниц (page clusters) критичный по времени процесс (time-critical process) нерезидентный готовый к выполнению процесс (nonresident execu¬ table process) обслуживание очередей системы ввода-вывода (Queue I/O (QIO) system service) общий флаг события (common event flag) относительный номер записи (relative record number) относительный файл (relative file) очередь сообщений (message queue) пакет запроса на ввод-вывод (I/O Request Packet, IRP) переключение процессов (swapping) повторный запрос страницы (page reclamation) поле ключа (key field) пользовательский режим (user protection mode) последовательный доступ (sequential access) последовательный файл (sequential file) постпроцессор ввода-вывода (I/O postprocessing routine) почтовый ящик (mailbox) предельный размер резидентного множества (resident set limit) присоединение к кластеру флагов событий (associate with an event flag cluster) программа переключения процессов (swapper) программа подкачки страниц (pager) программы работы с записями (Record Management Services, RMS) процесс реального времени (real-time process) процесс с разделением времени (timeshared process) прямой доступ (random access) режим аппаратной совместимости с PDP-11 (PDP-11 hardware compatibility mode) режим исполнителя (executive protection mode) режим супервизора (supervisor protection mode) режим ядра (kernel protection mode) резидентное множество (resident set) системное событие (system event) список измененных страниц (modified page list) список свободных страниц (free page list) управляющий блок адаптера (Adaptor Control Block, ACB) управляющий блок процесса (Process Control Block, PCB) управляющий блок устройства (Unit Control Block, UCB)
250 Часть 8 Примеры для изучения' уровни приоритета (priority levels) флаг события (event flag) фоновый процесс (background process) частота страничных отказов (page fault rate) шина Massbus шина SB I (Synchronous Backplane Interconnect) шина Unibus ячейка (cell) PDP-11 RSX VAX-11/780 VAX/VMS Упражнения 19.1 В системах VAX страницы имеют размер по 512 байт, что значительно меньше, чем в других системах. Укажите преимущества столь малого размера страниц. Укажите недостатки. 19.2 Система VAIS гарантирует для процесса, только что втолкнутого в основную память, выделение хотя бы одного кванта, прежде чем он будет снова вытолкнут. Почему? 19.3 Квант в системах VAX определяет время нахождения в основной памяти# а не время работы процессора. Сравните эти два подхода, 19.4 Ввод-вывод в VMS обычно асинхронен — выдав запрос на ввод-вывод, процесс может продолжать работу во время обслуживания его запроса. У про¬ цесса имеется возможность проверить завершение ввода-вывода или же он может получить извещение от системы. Процессы, желающие дожидаться завершения ввода-вывода, вызывают системную подпрограмму, которая приостанавливает процесс. Важно отметить, что в VMS такая приостановка не является автома¬ тическим следствием запроса на ввод-вывод. Сопоставьте этот подход с таким, где запрос на ввод-вывод приостанавливает выдавший его процесс. 19.5 Как достигается совместимость систем VAX и PDP-11? Почему эта совмес¬ тимость важна для успеха системы VAX? 19.6 Какая стратегия замещения страниц используется в системе VAX — гло¬ бальная или локальная? 19.7 Объясните процесс повторного запроса страниц. Обсудите использование двух списков страниц — свободных и измененных. 19.8 Хотя повторный запрос страниц может значительно уменьшить объем ввода- вывода, требуемого для подкачки, такой способ действий может быть несправед¬ лив по отношению к процессам со стабильными резидентными множествами. Объ¬ ясните, почему это так. 19.9 Система VAX/VMS записывает страницы на диск кластерами для миними¬ зации объема ввода-вывода, требуемого для подкачки. Однако это может умень¬ шить эффективность механизма повторного запроса страниц. Объясните, каким образом. 19.10 Операционная система VMS динамически подстраивает размер резидент¬ ного множества процесса в зависимости от частоты порождаемых процессом
Гл. 19 Пример для изучения: VAX 251 страничных отказов. Размер резидентного множества увеличивается для процес¬ сов с высокой частотой страничных отказов и уменьшается для процессов с низкойг частотой. Такая стратегия ведет к выравниванию частот страничных отказов всех процессов. Локальна или глобальна эта стратегия? Почему поначалу процессы имеют различную частоту страничных отказов? Почему, по вашему мнению, разработчики VAX выбрали стратегию, стремящуюся выровнять частоты стра¬ ничных отказов всех процессов? Приведите примеры, когда такая стратегия неэф¬ фективна. 19.11 В системе VAX/VMS состояние системы ввода-вывода описывается струк¬ турой данных, состоящей из управляющих блоков. Объясните назначение каж¬ дого из следующих блоков: а) блок данных группы устройств (DDB); б) управляющий блок устройства (UCB); в) пакет запроса на ввод-вывод (IRP); г) блок запроса канала (CRB); д) блок сообщений о прерываниях (IDB); е) управляющий блок адаптера (АСВ). 19.12 Разберите функции каждой из следующих компонент системы ввода-вы-* вода VMS: а) компоненты по обслужйванию очередей системы ввода-вывода; б) драйверы устройств; в) постпроцессоры ввода-вывода. 19.13 Проследите как можно точнее прохождение через VMS одного запроса на ввод-вывод. 19.14 Сопоставьте следующие средства VMS для взаимодействия и синхрони¬ зации процессов. а) общие флаги событий; б) почтовые ящики; в) общие области памяти; г) общие файлы. 19.15 Любая из трех организаций файлов, предоставляемых VMS, допускает последовательный и прямой доступ. Файлы какой организации (организаций) а) обеспечивают наиболее эффективный последовательный доступ в случае, если в данном запуске должны быть обработаны все записи? б) требуют в общем случае нескольких обращений к диску для доступа к записи? в) позволяют добавлять записи только к концу файла? г) допускают произвольные удаления и включения записей? д) обеспечивают наиболее удобный с точки зрения пользователя прямой доступ? Литература (ВИ79) Bhandarkar D. Р., Rothman S.^ «The VAX-11, DEC’S 32-Bit Version c' the PDP-11», Datamation, February 1979. (Bu77) Burr W. E., Smith W. R., «Comparing Computer Architectures», Data¬ mation, Vol. 23, February 1977, pp. 48—52. (Le80) Levy H., Eckhouse R. H., !Jr.-, Computer Programming and Architectures The VAX-11, Bedford, Mass.: Digital Press, 1980. (Sa81) Satyanarayanan M.-, Bhandarkar D., «Design Trade-offs in VAX-ll Translation Buffer Organization»,- Computer-, Vol. 14, No. 12, December 1981, pp. 103—111. (St76) Strecker W. Do «Cache Memories for the PDP-11 Family Computers», Proc, 3rd Annual Symposium on Computer Architecture, ACM, January 1976, pp. 155—158.
252 Часть 8 Примеры для изучения (St78) Strecker W. D., «VAX-11/780—A Virtual Address Extension to the DEG PDP-11 Family», Proceedings of the NCC, Montvale, N. J.: AFIPS Press, 1978. Публикации DEC В приведенных ниже документах описываются вычислительные системы PDP-11 и VAX-11. О Introduction to VAX-11 Concepts 0 PDP-11 Peripherals Handbook 9 PDP-11/04/34/45/55/60 Processor Handbook О Translation Buffer, Cache and SBI Control Technical Description О VAX-11 Architecture Handbook О VAX-11 Command Language User’s Guide A VAX-11/780 Hardware Handbook 0 VAX-11 Linker Reference Manual 0 VAX-11 Macro Language Reference Manual 0 VAX-11 Primer 0 VAX-11 Software Handbook 0 VAX-11 Symbolic Debugger Reference Manual 0 VAX-11/780 System Maintenance Guide 0 VAX-11 Technical Summary
Глава 20 Пример для изучения: СР/М R Допустим на мгновение, что автомобилестроение развивалось в течение того же периода и с той же скоростью, что и компьютеры. Насколько дешевле и лучше были бы современные автомобили? Если вы еще не слышали такого сопоставления, то ответ на¬ верняка потрясет вас. Сегодня вы могли бы купить «Роллс-Ройс» за 2.75 доллара, он проходил бы три миллиона миль на одном галлоне бензина, мощности его двигателя хватило бы для такого океанского лайнера, как Queen Elizabeth II. Если бы вас, кроме этого, ин¬ тересовало уменьшение размеров машин, то сегодня вы смогли бы разместить полдюжины машин на була¬ вочной головке. Кристофер Ивенс Вы хотите в будущем получать компьютеры в ка¬ честве бесплатного приложения к пачке овсяных хлопьев.. Вы будете выбрасывать их, чтобы не замусорить квар¬ тиру. Роберт Лакки Чем больше недвижимого имущества, тем лучшех); «Большие надежды» Чарльз Диккенс 20.1 20.2 20.3 20.4 20.5 20.6 20.7 20.8 20.9 20.10 20.11 20.12 Введение История PL/M Семейство СР/М 20.4.1 Мобильность 20.4.2 Таблично-управляемые системы Структура СР/М Распределение памяти Отображение логических устройств на физические Процессор команд консоли (ССР) Базовая система ввода-вывода (BIOS) Базовая дисковая операционная система (BDOS) Файловая система 20.11.1 Структура физического диска 20.11.2 Структура файла 20.11.3 Битовая карта распределения диска Работа СР/М «Части из руководства по операционной системе СР/М использованы с пись¬ менного разрешения компании Digital Research Inc», *) В переводе Лорие М,
254 Часть 8 Примеры для изучения 20.13 МР/М 20.13.1 Структура МР/М 20.13.2 Планирование процессов 20.13.3 Синхронизация процессов 20.13.4 Типы команд 20.13.5 Мультизадачность 20.13.6 Память с переключением банков 20.14 CP/NET 20.14.1 Команды CP/NET 20.14.2 Пример: контора будущего 20.14.3 Поток программного обеспечения 20.15 PL/1 Subset G — язык прикладного программирования в СР/М 20.16 Эволюция архитектур процессоров 20.17 Программное обеспечение на базе СР/М 20.18 Персональный компьютер фирмы IBM 20.19 Будущее СР/М 20.1 Введение СР!М (Control Program for Microcomputers — управляющая программа для микрокомпьютеров) — это операционная система, разработанная первоначально для 8-битовых микропроцессоров. В процессе развития микропроцессорной промышленности эта сис¬ тема превратилась в целое семейство операционных систем с высокой степенью совместимости, с программным инструментарием, приклад¬ ными пакетами и языками х). Связанная с микрокомпьютерами революция в вычислительной технике стала возможной благодаря следующим факторам: • освоению дешевой технологии производства интегральных схем; • освоению дешевых, очень надежных гибких дисков; • постоянно возрастающей стоимости рабочей силы, что в свою очередь требовало совершенствования технологии для увеличе¬ ния производительности труда. 20.2 История Когда был создан микропроцессор Intel 8080, компания Shu- gart Associates и ряд других были заняты разработкой высоконадеж¬ ных гибких магнитных дисков. Кассетные ленточные механизмы, употреблявшиеся до этого времени, работали медленно и ненадеж¬ но. Первые устройства на гибких магнитных дисках поступили в розничную продажу примерно по 500 долларов за штуку, и эта цена сохраняется относительно постоянной, несмотря на инфляцию. Объединение памяти на интегральных схемах микропроцессоров и гибких магнитных дисков дало возможность скомпоновать эффек¬ х) ASM, СР/М-86, МР/М и МР/М-86 — торговые марки фирмы Digital Rese¬ arch Inc,
Гл. 20 Пример для изучения: СР/М 255 тивный в работе микрокомпьютер всего за несколько тысяч долла¬ ров, т. е. за сумму, в сотни раз меньшую, чем он стоил два десятиле¬ тия тому назад, и в тысячу раз меньшую в пересчете на «реальные» доллары с учетом инфляции. Система СР/М была разработана Гари Килдаллом. Килдалл напи¬ сал первый компилятор для языка PL/М, работая консультантом в фирме Intel; PL/M (Programming Language for Microcomputers — язык программирования для микрокомпьютеров) стал инструмен¬ тальным языком программного обеспечения фирмы Intel и сыграл ключевую роль в отходе фирмы от применения языков ассемблерного типа при разработке системного программного обеспечения для микрокомпьютеров. В 1974 г. Килдалл написал первую версию файловой системы СР/М, на которую, как он рассчитывал, дол¬ жен был опираться резидентный компилятор PL/M. Разрешение на коммерческое распространение СР/М было полу¬ чено в 1975 г. Примерно к тому времени были разработаны ранние версии ассемблера, редактора и отладчика. Первым важным ком¬ мерческим пользователем СР,'М оказалась IMSAI — пионер раз¬ работки микрокомпьютерных систем. Система СР/М приобрела огромную популярность средн пользо¬ вателей персональных компьютеров и в процессе развития прошла через серию все более сложных версий. Создание технологии жест¬ ких дисков для микрокомпьютеров открыло значительно большие возможности по объемам памяти и позволило опирающимся на СР/М микрокомпьютерам конкурировать с представителями нижнего ря¬ да миникомпьютеров. Была разработана совместимая с СР/М систе¬ ма Л4Р/Л1™ для 16-битовых микрокомпьютеров; она обеспечивала работу многих пользователей в режиме разделения времени и воз¬ можности обработки в реальном времени. В 1980 г. была создана CP/NET^ с целью предоставить сетевые средства для взаимодейст¬ вия узлов-заказчиков, базирующихся на СР/М, с узлами-исполните¬ лями, базирующимися на МР/М. 20.3 PL/M Язык PL/М была разработан в 1972 г. компанией МАА (Micro¬ computer Applications Associates), предшественницей Digital Re¬ search, как язык системного программирования для 8-битовых мик¬ ропроцессоров фирмы Intel. Родоначальником PL/М был язык для написания компиляторов XPL, в свою очередь происходящий от Алгола фирмы Burroughs и полного языка PL/1. Компания МАА разработала на PL/М перфоленточный редак¬ тор для микропроцессора Intel 8080, и эта программа в результате дальнейшего развития превратилась в редактор ED. Фирма Intel с успехом реализовала PL/М на нескольких микропроцессорах и приняла его как язык системного программирования.
256 Часть 8 Примеры для изучения Компания МАА поняла, что микрокомпьютер фирмы Intel с 16К памяти на базе микропроцессора 8080 можно оснастить гибкими дисками фирмы Shugart. Новая система должна была стать специа¬ лизированной системой для создания программ на PL/М. Однако со временем идея была оставлена, поскольку большие инструменталь¬ ные системы с разделением времени оказались достаточно эффек¬ тивными. 20.4 Семейство СР/М Так или иначе, компания МАА приняла решение разрабатывать систему СР/М и в 1974 г. создала ее. Система была рассчитана на одного пользователя и обладала очень надежной файловой системой. Доступ к файлам на гибких дисках требовал значительно меньше времени по сравнению с распространенными в то время кассетными лентопротяжками, и пользователь получил возможность распреде¬ лить свои файлы среди большого числа гибких дисков, устанавливая и снимая их по мере необходимости. 20.4.1 Мобильность Система СР/М оказалась надежной, мощной, удобной, и в ре¬ зультате на нее возник огромный спрос. К середине 70-х годов она была реализована на многих различных компьютерах, причем ос¬ новные характерные свойства системы сохранялись в каждой реа¬ лизации. Затем разработчики системы, чтобы упростить перенос на раз¬ личные микрокомпьютеры, разбили ее на две составные части: по¬ стоянную и переменную. Постоянную часть составила дисковая операционная система, написанная на PL/М. В переменную часть, написанную на языке ассемблера конкретного компьютера, для которого она предназначалась, входили драйверы устройств ввода- вывода, необходимые для данной конкретной конфигурации аппарат¬ ных средств. Такое разбиение позволило СР/М стать одной из двух наиболее мобильных в мире операционных систем. Другой такой системой является UNIX. 20.4.2 Таблично-управляемые системы Популярность микрокомпьютеров привела к росту требова¬ ний, предъявляемых к мощности периферийных устройств. Про¬ мышленность откликнулась на это выпуском устройств с гибкими дисками различной емкости и устройств с жесткими винчестерскими дисками. Возникшая потребность обеспечить эту разнообразную аппаратную базу соответствующей программной поддержкой в СР/М привела к тому, что Digital Research в 1979 г. полностью перепроек¬ тировала систему, сделав ее таблично-управляемой. В частности,
Гл. 20 Пример для изучения: СР/М 257 все зависящие от дисков параметры, ранее разбросанные по постоял- ной части системы, были собраны в переменной части. Теперь при реализации вариантов системы для конкретного оборудования не¬ обходимо было лишь соответствующим образом заполнить эти таб¬ лицы. В таблично-управляемых системах параметры, управляющие работой системы, размещаются в таблицах, а не в «жестком програм¬ мном коде». При работе система обращается к этим таблицам. Таб¬ лично-управляемые системы, как правило, значительно легче моди¬ фицировать, чем «жестко запрограммированные». Таким образом, СР/М стала системой с весьма высокой степенью общности, многие функции которой определяются содержимым таблиц и подпрограммами ввода-вывода, написанными для конкрет¬ ной реализации системы. В настоящее время система применяется во всем мире на нескольких сотнях тысяч установок, разнообразие аппаратных конфигураций которых исчисляется тысячами. 20.5 Структура СР/М Система СР/М состоит из трех главных подсистем (рис. 20.1): 9 процессора команд консоли (ССР), • базовой системы ввода-вывода (BIOS), 9 базовой дисковой операционной системы (BDOS). Подсистема ССР интерпретирует вводимые пользователем коман¬ ды и выдает на них ответы. Она создает «образ» микрокомпьютера для пользователя — удобный (дружественный) интерфейс с пользо¬ вателем (по крайней мере если иметь в виду компьютерного люби¬ теля), освобождающий его от необходимости помнить тонкости внутренней работы СР/М и самого компьютера. Для того чтобы вы¬ полнить реальные операции ввода-вывода и операции над файлами, ССР обращается к подсистемам BIOS и BDOS. Подсистема BIOS содержит различные драйверы устройств, которые посылают данные на устройства и принимают данные от них, а также получают информацию об их состоянии, об успешном или неуспешном завершении операций ввода-вывода. К подсистеме В DOS относятся всевозможные служебные про¬ граммы для работы с дисками. Благодаря им обслуживание дисковых файлов становится «прозрачным» (невидимым) для пользователя. Это действительно ключевой момент для любой операционной сис¬ темы, определяющий ее успех или неуспех, поскольку работа с дис¬ ками на физическом уровне действительно сложна и трудоемка. Дисковые файлы часто бывают разбросаны малыми блоками по дис¬ ку, и это осложняет хранение информации и ее поиск. Подсистема В DOS управляет всеми такими блоками, динамически выделяя и освобождая для них место. 9 № 531
258 Часть 8 Примеры для изучения Рис. 20.1 Структура СР/М. 20.6 Распределение памяти СР/М — это система с реальной памятью. Определенные об¬ ласти в первичной памяти зарезервированы за операционной сис¬ темой, но большая ее часть отводится для пользовательских про¬ грамм, особенно в больших системах. На рис. 20.2 приводится типичное распределение памяти в систе¬ ме СР/М. Первые 256 байт (страница 0) отведены под различные системные параметры. Операционная система размещается в стар¬ ших адресах. Остальная часть — так называемая область ТРА (Transient Program Area — область транзитных программ) — поступает в распоряжение пользовательской программы. В соот¬ ветствии с терминологией СР/М совокупность подсистем BIOS и BDOS принято называть функциональной дисковой операционной системой FDOS (Functional Disk Operating System) .Системы FDOS
Гл. 20 Пример для изучения: СР/М 259 Рис. 20.2 Базовая система свода-вывода (BIOS) Базовая дисковая операционная система (BDOS) процессор команд консоли (ССР) Область транзитных программ (ТРА) Зарезервирована для системных параметров Распределение памяти в СР/М. Л FDOS 100 FF 0 и ССР вместе составляют СР/М. В компьютерах с шиной S-1OO типа North Star или Cromemco область ТРА размещается сразу вслед за страницей 0. В других системах, например в TRS-80, фирмы Radio Shack, где постоянной программной памяти (ROM) отведены млад¬ шие адреса, область ТРА начинается вслед за ячейками ROM. Пользователь, которому не хватит места в области ТРА# может оверлейно (с перекрытием) использовать большую часть области самой операционной системы. Однако перед выходОхМ пользователь¬ ская программа должна перезагрузить СР/М. 20.7 Отображение логических устройств на физические В системе СР/М устройства рассматриваются либо как логические, либо как физические. Физическое устройство — это реальное устройство, способное выполнять ввод-вывод. Логическое 9*
260 Часть 8 Примеры для изучения устройство — это артефакт операционной системы, имеющий целью сделать интерфейс более удобным для человека; оно не существует в виде реального устройства. Для пользователя ввод-вывод выпол¬ няется через логические устройства. Распределяя логические уст¬ ройства по физическим соответствующим образом, пользователь получает возможность с помощью операционной системы удовлет¬ ворить свои самые разнообразные запросы на операции ввода-вы¬ вода. В СР/М поддерживаются четыре логических устройства, а имен¬ но CON:, RDR:, PUN:, LST: (двоеточие является составной частью имени). @ CON:—это медленное устройство для общения (взаимодейст¬ вия) пользователя и СР/М. С ним связаны три драйвера логи¬ ческих устройств: CON IN вводит символы по одному с устройст¬ ва ввода консоли, CONOUT выводит символы по одному на устройство вывода консоли, CONST проверяет, находится ли ус¬ тройство ввода в состоянии «символ готов» или «символ не готов». ® RDR: — логическое устройство чтения, используемое для ввода с устройств массовой памяти. Его логический драйвер называет¬ ся READER. © PUN: — логическое устройство-перфоратор, используемое для вывода на устройства массовой памяти. Его логический драйвер называется PUNCH. © LST: —логическое устройство для вывода листинга. Как пра¬ вило, результаты работы программы направляются на принтер, но в некоторых случаях вывод происходит на устройство массо¬ вой памяти, не являющееся диском. Его логический драйвер называется LIST. Логические устройства упрощают программирование. Однако операционная система должна работать с физическими устройства¬ ми, поскольку именно они в конечнОхМ счете выполняют для пользо- ТТУ: Устройство типа телетайпа CRT: Устройство с электронно-лучевой трубкой ВАТ: Устройство пакетного режима работы (RDR —для ввода, L ST — дл я в ы в ода) UC1: Консоль, определяемая пользователем PTR: Высокоскоростное считывающее устройство UR1: Считыватель ikl, определяемый пользователем UR2: Считыватель зф2, определяемый пользователем РТР: Высокоскоростной перфоратор UP1: Перфоратор 4U, определяемый пользователем UP2: Перфоратор фЬ2, определяемый пользователем LPT: Построчное печатающее устройство UL1: Устройство печати, определяемое пользователем Рис. 20.3 Физические устройства в СР/М.
Гл. 20 Пример для изучения: СР/М 261 вателя все операции ввода-вывода. Список физических устройств, поддерживаемых системой СР/М, приведен на рис. 20.3. В поставляемых версиях системы СР/М каждое логическое уст¬ ройство постоянно закреплено за конкретным физическим устройст¬ вом. Однако, если в системе реализована функция IOBYTE, каждое логическое устройство можно в различные моменты закреплять за одним из четырех физических устройств. Отображением логических устройств на физические управляет содержимое байта IOBYTE Комбинация битов (Печать) LST: биты 7 и 6 (Перфоратор) PUN: биты 5 и 4 (Считыватель) RDR: биты 3 и 2 (Консоль) CON: биты 1 и 9 00 TTY: TTY: TTY: TTY: 01 CRT: РТР: PTR: CRT; 10 LPT: UP1: UR1: ВАТ: 11 ULI: UP2: UR2: UC1: Рис. 20.4 Отображение логических устройств на физические, задаваемые байтом IOBYTE. (одного байта, выделенного в фиксированном месте памяти СР/М), как показано на рис. 20.4. Например, если в битах 7 и 6 находится комбинация «10», то логическое устройство LST будет направлять свой выводной поток на построчный принтер. При комбинации «00» вывод будет происходить на телетайп, а при комбинации «01» — на экран электронно-лучевой трубки. 20.8 Процессор команд консоли (ССР) Процессор команд консоли (пульта) анализирует набираемые пользователем строчки команд, выполняет некоторые простые про¬ верки их правильности и вызывает соответствующие функции в BDOS или в BIOS для выполнения требуемых действий. Сводка команд СР/М приведена на рис. 20.5. 20.9 Базовая система ввода-вывода (BIOS) Система BIOS реализует ввод-вывод на периферийные устройст¬ ва. Первоначально эта система не поставлялась ни компанией Digital Research, ни другими поставщиками СР/М. Вместо нее мест¬ ные отделения поставщиков предлагали наборы подпрограмм для того, чтобы из них на установке самого заказчика можно было ском¬ поновать BIOS для работы с конкретным комплектом периферий¬ ного оборудованияг
262 Часть 8 Примеры для изучения Команда Описание ASM DDT Трансляция программы на языке ассемблера (Dynamic Debugging Tool — средства динамической отладки). По этой команде загружается отладчик DDT и интерпретируются вводимые пользователем команды отладки. DDT, в частности, позволяет: ввести предложение на языке ассемблера, показать содержимое памяти, расписать область памяти шестнадцатеричной константой, начать выполнение программы с указанного адреса, установить контрольную точку (точку прерывания) по заданному адресу, дисассемблировать объективный код в ассемблерный, переписать содержимое памяти в другую область, прочитать файл с диска в память, изменить содержимое памяти, выполнить заданное число команд и показать содержимое регист¬ ров, показать содержимое регистров, DIR DUMP ED изменить содержимое регистров Показать директорий Показать содержимое файла в шестнадцатеричном коде Редактировать файл. В числе возможностей: дополнить файл, позиционироваться в начало файла, позиционироваться в конец файла, переместить символы, удалить символы, кончить редактирование и вернуться в СР/М, найти цепочку символов, вставить текст, удалить строки, прекратить редактирование (без изменения файла), получить копию библиотечного файла, заменить цепочку символов, напечатать заданное число строк, ERA LOAD MOVCPM PIP переместить блок строк Очистить файл Загрузить программу Создать новую копию СРМ Выполнить разнообразные операции с файлами. PIP позволяет: скопировать файл, объединить два файла (конкатенация), выдать эхо-копию на консоль, преобразовать символы верхнего регистра в символы нижнего или наоборот, добавить номера к строкам текста, вставить символы перехода на новую страницу после каждых п строк, REN SAVE STAT установить интервалы табуляции Переименовать файл Сохранить файл Показать состояние дискетт, файлов, устройств и т. д.
Гл. 20 Пример для изучения: СР/М 263 Команда П р одолжение Описание SUBMIT Дать указание СР ДМ выполнять команды из файла,, а не с кон¬ соли SYSGEN Создать версию СР/М TYPE Показать содержимое файла на консоли USER Установить номер пользователя х: Изменить текущий дисковод на х Рис. 20.5 Команды СР/М. Система BIOS позволяет принимать символы с консоли (как правило, с клавиатуры), выдавать символы на консоль (обычно на экран или принтер), читать символы с логического устройства счи¬ тывания, писать символы на логический перфоратор, писать сим¬ волы на принтер, опрашивать или устанавливать различные состоя¬ ния, выдавать цепочку символов на консоль, принимать цепочку символов с консоли и определять готовность консоли. Таким образом, BIOS отрабатывает только самые простые опе¬ рации ввода-вывода. В частности, ей ничего не известно о существо¬ вании файлов. 20.10 Базовая дисковая операционная система (BDOS) Система BDOS реализует все операции ввода-вывода с дисками. Непосредственно на командном языке функции BDOS недоступны; обращения к ним происходят либо из ССР, либо из транзитных про¬ грамм. Система BDOS может поднять головку на диске, сбросить дисковую систему, выбрать диск, открыть файл, закрыть файл, най¬ ти имя файла в директории, найти следующий экстент файла, уда¬ лить файл, прочитать файл последовательно, записать файл после¬ довательно, создать файл, переименовать файл, определить исполь¬ зуемые дисковые устройства, определить текущее дисковое устройст¬ во, установить адрес прямого доступа к памяти (адрес DMA — Direct Memory Access), запросить адрес вектора распределения про¬ странства на диске, защитить диск по записи, определить, какие диски защищены по записи, установить атрибуты файла, получить адрес массива с параметрами диска, опросить или установить код пользова¬ теля, читать с диска по прямому адресу, писать на диск по прямому адресу, вычислить размер дискового файла, установить диск по прямому адресу.
264 Часть 8 Примеры для изучения Постоянная (фирменная) метка-наклейка Сменная наклейка для идентификации -г Маркерное отверстие 8,003 (200 мм) v Отверстие для шпинделя дисковода Щель для _ магнитной головки -А. -<—6,25 3 {159ММ) >| 8,00 3 (200 мм) > Q Прорезь для ; контакта блокировки U записи? I а JtiL Рис. 20.6 Стандартные 8- и 5-^-дюймовые диски (с разрешения фирмы Shugart). Рис. 20.7 Формат IBM 3740 для гибких 8-дюймовых дисков.
Гл. 20 Пример для изучения: СР/М 265 20.11 Файловая система Файлы в СР/М обрабатываются подсистемами ССР и BDOS. Подсистема BIOS выполняет функции гораздо более низкого уров¬ ня. Система СР/М преобразует пользовательское логическое пред¬ ставление файла в системное физическое представление; преобразо¬ вание зависит от конкретного применяемого носителя информации. Существуют реализации СР/М для работы с различными типами гиб¬ ких дисков, включая 8- и 5-^--дюймовые диски (рис. 20.6), диски с одинарной и двойной плотностью, диски с жесткими и мягкими сек¬ торами. Последнее время гибкие диски начали вытесняться эконо¬ мичными жесткими винчестерскими дисками. (Элементарные опе¬ рации, выполняемые этими устройствами, различаются весьма су¬ щественно, поэтому, чтобы упростить дальнейшее изложение, мы будем рассматривать только версию 1.4 СР/М, работающую на 8-дюймовых гибких дисках одинарной плотности с мягкими сектора¬ ми в формате IBM 3740, как показано на рис. 20.7.) 20.11.1 Структура физического диска Диск состоит из 77 дорожек, пронумерованных от 0 до 76. На каждой дорожке находится 26 секторов. В каждом секторе — по 128 байт. Перемножая эти числа, мы получим емкость диска, рав¬ ную 256 256 байт. Как используется пространство на диске, показа¬ но на рис. 20.8. Дорожки 0 и 1 отведены самой системе СР/М, не¬ большому начальному загрузчику. Шестнадцать секторов на дорож¬ ке 2 содержат директорий (оглавление), в котором перечислены все хранимые на диске файлы. Оставшаяся часть дорожки 2 и все осталь¬ ные дорожки (с 3 по 76) содержат пользовательские файлы. 20.11.2 Структура файла Каждый сектор содержит по 128 байт, называемых в СР/М за¬ писью. Каждый файл — это совокупность записей и, скорее всего, записей несмежных, т. е., как правило, разбросанных по поверхности диска. В некоторых системах списковая структура применяется для отслеживания отношений между записями. В СР/М вместо этого в дескрипторе файла, или в управляющем блоке файла (FCB — File Control Block) хранится список принадлежащих файлу секторов. Коротко структуру FCB мы опишем ниже. Каждый файл может включать до 16 частей (units), в каждой из которых может содержаться от 0 до 128 записей (от 0 до 16 К байт). Таким образом, в СР/М файлы могут достигать таких разме¬ ров, как 16х 16К, или, другими словами, 256 Кбайт, что несколько больше емкости 8-дюймового гибкого диска в формате IBM 3740. Каждый FCB представляет до 16 Кбайт файла. Чтобы описать файл
266 Часть 8 Примеры для изучения Рис. 20.8 Пользовательские файлы 10 секторов на дорожке Z и дорожки 6-76 Директорий файлов У 1 16 секторов ) на дорожке 2 Система ср/м Начальный загрузчик Дорожки Q и 1 > Использование 8-дюймового гибкого диска. размером в 256 Кбайт, нужно объединить связями 16 управляющих блоков. Длина FCB равна 33 байтам. Управляющие блоки файлов хра¬ нятся в области директория на диске. Когда происходит работа с файлом, его FCB переносится в ТРА (транзитную область), так что обращения к FCB происходят быстро. При закрытии файла его FCB снова копируются на диск. Пользователь СР/М ссылается на файлы при помощи символи¬ ческих имен. Эти символические имена должны преобразоваться в точные физические адреса файлов и описателей. Соответствие между логическими именами и физическими файлами устанавливается при помощи управляющих блоков файлов (FCB), содержащихся в дирек¬ тории. Структура FCB показана на рис. 20.9. Описание полей FCB приведено на рис. 20.10. 0 12 3 4 5 6 7 8 9 10 7/ 72 73 74 15 17 18 19 20 21 22 23 2^ 25 26 2128 29 30 31 32 1 | 1 j г лj I I I пj j j m j r~i j—i—i—j—i—пч — ET FN FD £X RC DM | F' Имя файла— ■ >|<Ты/7-»| | Корта распределения диска— |' Типi входа (неиспольз.в СР/М 7Л) Экстент Счетчик записей Следующая Коо драйва в СР/М 2.2 u МР/м файла (или размер теку записи щего экстента) Рис. 20.9 Управляющий блок файла FCB в СР/М.
Гл. 20 Пример для изучения: СР/М 267 Поле Разряды Значение ЕТ 0 тип входа (не используется в СР/М 1.4) код драйва в СР/М 2.2 и МР/М FN 1-8 имя файла FD 9—19 расширение имени ЕХ 12 экстент, нормально 0 13—14 не используется RC 15 счетчик записей (число записей в текущем экстенте файла) DM 16—31 карта pacпpeдeлeни^^ диска NR 32 должна ли следующая запись считываться или записываться Рис. 20.10 Поля в управляющем блоке файла FCB. Логическая запись в СР/М — это один сектор из 128 байт. Один файл может занимать от нуля секторов до полного диска. Логически смежные записи, как правило, физической смежностью не обла- дают. Если стремиться к физической смежности, то обработка фай¬ ла сильно замедлится. Поясним, в чем здесь дело. На диске после каждого сектора помещается несколько байтов для контроля. После чтения или записи сектора нужно произвести определенную обработку этих байтов, чтобы подтвердить правиль- Логические номера секторов Фазические номера секторов 01 02 03 04 05 06 07 08 09 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 Доступна первом обороте I 01 02 03 04 05 Доступно втором обороте 0 6 0 7 0 8 0 9 Доступна третьем обороте 1 0 1 1 1 2 1 3 Доступна четвертом обороте 1 4 1 5 1 б 1 7 1, 8 Доступна 'пятом обороте 1 9 2 0 2 1 2 2 Доступна шестом обороте 2 .3 2 4 2 5 2 6 Рис. 20.11 Отображение логических секторов на физические при шаге равном G
268 Часть 8 Примеры для изучения ность операции чтения или записи и упростить операции поддержки и сопровождения файлов. Если бы следующая логическая запись располагалась действительно вслед за предыдущей, то она могла бы проскочить под головками чтения-записи до завершения упомя¬ нутых вспомогательных операций. Таким образом, пришлось бы терять целый оборот диска, прежде чем нужная запись оказалась бы снова под головками. Запись или считывание последовательного файла происходили бы неприемлемо медленно. В СР/М эта проблема решается следующим образом: соседние логические записи поме¬ щаются на расстоянии нескольких физических секторов друг от друга; стандартное расстояние (или шаг) в СР/М составляет шесть секторов. На рис. 20.11 показано типичное отображение логических секторов на физические сектора диска при шаге, равном шести. 20.11.3 Битовая карта распределения диска В СР/М пространство на диске распределяется динамически. Пользователь не должен задавать заранее, сколько места нужно зарезервировать под файл. Для определенности мы снова рассмотрим только 8-дюймовые диски с 77 дорожками, 26 секторами на дорожке и 128 байт в секторе, т. е. формат IBM 3740. Рис. 20.12 Битовая карта распределения диска.
Гл. 20 Пример для изучения: СР/М 269 Для каждого дискового устройства BDOS заводит карту рас¬ пределения диска из 243 бит, чтобы зарегистрировать, какие части диска уже отведены файлам, а какие свободны. Каждый бит в карте соответствует группе из восьми логически смежных секторов, на¬ зываемых кластером. На рис. 20.12 приведена типичная карта рас¬ пределения. Все 243 бита нумеруются (в шестнадцатеричной сис¬ теме) от 00 до F2. Карта говорит о том, что кластеры от 00 до 74 в настоящее время заняты файлами, а кластеры с 75 по F2 свободны. Проследим, как карта распределения используется для управ¬ ления пространством на диске. Запрос на создание файла побуждает В DOS просмотреть содержимое карты распределения в поисках первого нулевого бита. Он соответствует первому свободному клас¬ теру. Подсистема BDOS устанавливает этот бит в 1, а затем две шест¬ надцатеричные цифры номера кластера заносит в область отобра¬ жения в FCB нового файла. Только в связи с операциями записи BDOS может изменить со¬ держимое карты распределения. После того как произведена запись во все восемь секторов кластера, очередная попытка записи побудит BDOS искать в карте распределения новый свободный кластер. И снова его шестнадцатеричный номер будет помещен в FCB, а бит в карте распределения установлен в 1. 20.12 Работа СР/М В этом разделе кратко описывается функционирование СР/М. Подсистема ССР выдает свое приглашение на экран и ждет, пока пользователь введет команду. Для физической передачи приглаше¬ ния и получения набираемой пользователем команды ССР пользует¬ ся подсистемой BIOS. BIOS помещает команду в принадлежащий ССР буфер. Одни команды встроены в СР/М, другие — нет. Встроенные команды размещаются в той части памяти, которая выделена систе¬ ме. Если поступила встроенная команда, то ССР выполняет ее не¬ медленно. Если поступившая команда не является встроенной, ССР предполагает, что пользователь запросил транзитную программу из файла, имя которого совпадает с именем команды и имеет расшире¬ ние СОМ. (Расширения, аналогичные СОМ, добавляются к именам файлов и характеризуют типы файлов.) Подсистема ССР дает ука¬ зание BDOS найти этот файл и прочитать его в область ТРА. После этого ССР формирует FCB для тех файлов, которые должны обраба¬ тываться, и завершает свою работу, освобождая занимаемую ею память. Файлы, которые должны обрабатываться, либо явно зада¬ ются в командной строке, либо же для некоторых команд подразу¬ меваются. Подсистема BDOS отыскивает подлежащий обработке файл сле¬ дующим образом. Она находит имя файла в FCB, сформированном подсистемой ССР. Затем просматривает диск, где каждый файл имеет
270 Часть 8 Примеры для изучения оформленный FCB (сформированный подсистемой ССР, когда к файлу обращались последний раз). Если файл есть на диске, то BDOS обнаружит FCB с соответствующим именем. Найдя FCB подходящего файла на диске, подсистема BDOS переносит определенную информацию из этого FCB в FCB, сформи¬ рованный подсистемой ССР в памяти (например, информацию о раз¬ мещении файла на диске). Каждое обращение к файлу может сопро¬ вождаться соответствующими изменениями в FCB. Когда в конце файл будет закрываться, BDOS внесет последние изменения в FCB (например, откорректирует итоговое число записей) и затем скопи¬ рует FCB из памяти на диск. Если набранное пользователем имя команды не является ни име¬ нем встроенной, пи именем транзитной команды, ССР высвечивает это имя и сопровождает его знаком вопроса. Если пользователь соз¬ дает файл с расширением СОМ и если пользователь наберет имя это¬ го файла в команде, ССР попытается выполнить этот файл, даже если он содержит не программу, а данные. Имена файлов, набираемые пользователем, проходят этап про¬ верки в подсистеме ССР, которая передает их затем соответствую¬ щему командному процессору. Некоторые команды работают с фай¬ лами, имеющими только специфические расширения. Например, ASM™ работает только с файлами типа ASM, a LOAD требует расширения HEX. Если расширение оказывается некорректным, то ССР выдает пользователю приглашение на ввод новой команды. 20.13 МР/М Фирма Digital Research разработала систему МР/М (Multipro¬ gramming monitor for Microcomputers) для обработки информации в реальном времени. В МР/М входит ядро, поддерживающее множест¬ во последовательных взаимодействующих процессов, и совместимое с СР/М устройство управления файлами с набором функций для ра¬ боты с терминалом. Система МР/М хорошо работает и как много¬ пользовательская система, и как система с разделением времени, и как мультипрограммная система. В МР/М есть выводная система спулинга для печати файлов, порождаемых множеством пользователей. При наличии на многих системах только одного принтера в каждый конкретный момент печатается только один файл. Все прочие выводные файлы направ¬ ляются на диск для печати по мере освобождения принтера. 20.13.1 Структура МР/М Структура МР/М аналогична СР/М и содержит следующие ком¬ поненты: • XIOS (BIOS и расширенная IOS); • XDOS (BDOS и расширенная дисковая операционная система);
Гл. 20 Пример для изучения: СР/Л4 271 ® CLI (Command Line Interpreter интерпретатор командной строки); ® ТМР (Terminal Message Processor — процессор терминальных сообщений). В системе СР/М все ресурсы отданы одному пользователю. Сис¬ тема МР/М — многопользовательская; она обслуживает одновре¬ менно многих пользователей, разделяющих системные ресурсы. 20.13.2 Планирование процессов В МР/М процессам присвоены приоритеты; процессор предо¬ ставляется очередному готовому к работе процессу с наивысшшм при¬ оритетом. Процесс владеет процессором до тех пор: © пока он не освободит процессор добровольно; ® пока он не вызовет системной функции; © пока не произойдет прерывание; ® пока не «тикнут» часы реального времени. Системный диспетчер находит приоритет процесса в дескрипто¬ ре процесса. Диспетчер использует дескриптор процесса для запо¬ минания текущей информации о процессе, а также для сохранения информации о состоянии, когда процесс прерван. Процессы равных приоритетов диспетчеризуются по правилу «первый пришедший об¬ служивается первым». Часы реального времени позволяют упрос¬ тить планирование процессов и реализовать автоматические вре¬ менные задержки. 20.13.3 Синхронизация процессов Для синхронизации процессов применяются очереди сообщений. Процесс, ожидающий сообщения, приостанавливается до поступле¬ ния сообщения от посылающего процесса. В МР/М очереди сообще¬ ний представляют собой специальные файлы, которые могут откры¬ ваться и закрываться. Очереди работают по принципу «первый на входе — первый на выходе». С помощью очередей сообщений легко организовать спулинг и взаимоисключающий доступ к разделяемым ресурсам. Например, чтобы синхронизовать доступ к построчному принтеру, процессы могут взаимодействовать следующим образом: некоторый процесс (а именно, процесс управления принтером) создает очередь сообще¬ ний и помещает в нее сообщение, только если принтер свободен; процесс, желающий воспользоваться принтером, запрашивает чте¬ ние сообщения из очереди перед обращением к устройству. Когда принтер занят, очередь оказывается пустой. Таким образом, про¬ цесс, желающий воспользоваться принтером, приостанавливается, пока принтер не освободится и процесс управления принтером не направит сообщение в очередь сообщений.
272 Часть 8 Примеры для изучения 20.13.4 Типы команд В МР/М нет встроенных команд. Команды могут быть О транзитными (расширение СОМ), • странично перемещаемыми (расширение PRL) или, • резидентными системными процессами (расширение RSP). Транзитные программы используют абсолютную область ТРА. Их можно загружать и исполнять только строго на тех местах, для которых они были скомпилированы. По мере возможности програм¬ мы следует делать перемещаемыми, чтобы их можно было загружать и исполнять в любом доступном месте памяти. 20.13.5 Мультизадачное™ В МР/М пользователь может запустить с одного терминала сразу несколько программ. Пользователь может отсоединить программу от терминала, и в этом случае выходная информация программы не DIRS ERAQ CONSOLE DSKRESET GENHEX PRLCOM GENMOD SPOOL STOPSPLR TOD SHED ABORT ATTACH MPMLDR MPMSTAT USER XSUB показать системный директорий файлов стереть файлы в режиме дозапроса показать номер консоли заменить диск, если он не используется другим пользователем создать файл HEX из файла СОМ создать файл СОМ из файла PRL создать файл PRL из файла HEX направить вывод для печати в файл спулинга прекратить вывод спулера показать или установить время и дату внести программу в график для последующего вы¬ полнения оборвать исполнение программы подсоединить консоль к программе загрузить, переместить и выполнить МР/М показать системный статус МР/М показать и/или изменить текущую пользователь¬ скую область предоставить ввод для программ, выполняемых из командного файла Рис. 20.13 Команды МР/М. будет попадать на терминал. Программу можно снова подсоединить к терминалу (к тому, от которого она была отсоединена) при помощи команды ATTACH. Команды МР/М приведены на рис. 20.13.
Гл. 20 Пример для изучения: СР/М 273 20.13.6 Память с переключением банков Микропроцессоры 8080, 8085 и Z80 способны непосредственно адресовать только 64 Кбайт памяти. В МР/М пользователю предо¬ ставлена возможность адресовать более одного банка памяти. При двух банках памяти каждый пользователь может запустить боль¬ шую занимающую почти всю память программу. В МР/М такая ситуация будет обрабатываться путем переключения с одного банка памяти на другой и обратно. Различная трактовка одних и тех же адресов, принадлежащих разным пользователям, обеспечивается механизмом переключения банков памяти, который активизирует в каждый конкретный момент только один банк. 20.14 CP/NET Система СР/NET была выпущена фирмой Digital Research в 1980 г. как сетевая операционная система, в которой операционные функции распределены по сети разнотипных процессоров. Система СР/NET соединяет многих заказчиков, работающих под управле¬ нием СР/М, возможно, на процессорах разных типов, со многими Рис. 20.14 Сеть без главного узла. исполнителями, работающими под управлением МР/М, возможно, также на процессорах разных типов. Система СР/NET проектировалась, исходя из тех же принципов, что и СР/М и МР/М, с ориентацией на легкую переносимость. Систе¬
274 Часть 8 Примеры для изучения ма обладает весьма высокой степенью общности и не зависит от среды передачи в той или иной конкретной сети. Система СР/NET может работать как с простым медленным протоколом типа RS-232C, так и с быстрым протоколом типа Ethernet. В ней могут применяться сети наиболее общих топологий типа звезды, кольца или общей шины. Постоянные части СР/NET работают под управлением СР/М и направляют системные вызовы по сети к конкретному МР/М-ис- полнителю. МР/М-исполнитель моделирует действия СР/М. Модели¬ рование происходит прозрачно для прикладных программ, выпол¬ няемых на любых СР/М-компьютерах. Система СР/М обслуживает одного пользователя на одной маши¬ не; МР/М обслуживает много пользователей на одной машине; СР/NET обслуживает много пользователей на множестве машин.
Гл. 20 Пример для изучения: СР/М 275 Некоторые сети объединяют вместе много относительно незави¬ симых узлов (рис. 20.14). Подобные сети предназначены в основном, чтобы улучшить взаимодействие между пользователями. Каждый пользователь может работать независимо от сети или же может подключиться к сети для взаимодействия с другими пользователями. При выходе из строя одной из пользовательских станций возмож¬ ность для сети сохранить работоспособность зависит от схемы вза¬ имных соединений. При работе СР/NET по крайней мере один узел выделяется в ка¬ честве главного узла, отвечающего за функционирование сети в це¬ лом (рис. 20.15). В главном узле работает СР/NET и МР/М, и он же обычно располагает существенным объемом памяти на дисках. Ос¬ тальные узлы при этом могут иметь в своем составе только процессор с 16 Кбайт памяти или несколько большую память и более развитую локальную периферию. Система СР/NET позволяет разделять ре¬ сурсы, рассредоточенные по многим узлам сети, и в определенных случаях увеличить скорость работы узлов. Часто организации устанавливают СР/NET как средство, поз¬ воляющее пользователям из многих узлов получить доступ к цент¬ ральной разделяемой базе данных, располагающейся на дисковых устройствах большой емкости. В учреждениях часто связывают ра¬ бочие места пользователей таким образом, чтобы они могли совмест¬ но использовать дорогое периферийное оборудование типа высоко¬ качественных печатающих устройств, быстрых принтеров и различ¬ ного факсимильного оборудования. Так или иначе, с помощью сетей осуществляется разделение ресурсов независимо от того, яв¬ ляются ли эти ресурсы аппаратными, программными или информа¬ ционными. 20.14.1 Команды CP/NET В узлах сети СР/NET можно воспользоваться всеми возмож¬ ностями СР/М и МР/М и, кроме того, выдавать команды самой СР/ NET. Их сводка приведена на рис. 20.16. 20.14.2 Пример: контора будущего Многими компаниями разрабатываются операционные системы для так называемых контор будущего (Office-of-the-future), в кото¬ рых большая часть «бумажной работы», присущей сегодняшним конторам, устраняется за счет применения рабочих мест, оснащен¬ ных дисплеями, связанными через локальную сеть с разнообраз¬ ными устройствами быстрой печати, передачи факсимильных изоб¬ ражений, массовой памяти и т. д. Рассмотрим, как могла бы помочь СР/NET в такой прикладной области, как обработка текстов. В большой юридической конторе контракты зачастую составляют¬ ся из стандартных параграфов с внесением лишь небольших изме¬ нений в момент печати контракта. В сети СР/NET стандартные пара-
276 Часть 8 Примеры для изучения Команда Описание LOGIN LOGOFF SNDMA1L подключает пользователя к главному узлу отсоединяет пользователя от сети позволяет одному пользователю послать сообщение другому пользователю сети RCVMAIL показывает все сообщения (и. их источники), поступившие после предыдущей команды RCVMAIL BROADCST позволяет главному узлу послать сообщение сразу всем узлам сети MRCVMAIL с помощью этой команды главный узел получает направ¬ ленную ему почту NETWORK LOCAL позволяет узлу воспользоваться сетевыми устройствами позволяет локальному узлу прекратить свою связь с сете¬ выми устройствами DSKRESET SPOOL работает аналогично команде DSKRESET в МР/М позволяет индивидуальному пользователю воспользоваться ENDLIST спулером в главном узле (см. команду SPOOL в МР/М) заканчивает выдачу листинга в сеть Рис. 20.16 Команды CP/NET. графы можно было бы хранить в центральной базе данных под уп¬ равлением МР/М с доступом любого из многих, управляемых СР/М, сетевых текстовых процессоров. С помощью предоставляемого CP/NET интерфейса одно локальное дисковое устройство выделяется МР/М-исполнителю. Управляемый СР/М текстовый процессор счи¬ тывает стандартный параграф с выделенного устройства. Факти¬ чески это приводит к тому, что параграф должен быть получен от МР/М-исполнителя, поскольку на локальном диске его нет. Затем контракт формируется локально в управляемом СР/М текстовом процессоре. Законченный контракт можно напечатать либо на ло¬ кальном принтере, либо на сетевом устройстве выдачи листинга, и в этом случае печать осуществит МР/М-исполнитель. 20.14.3 Поток программного обеспечения Популярность систем СР/М и МР/М привела к разработке (в ос¬ новном независимыми поставщиками) огромного количества рас¬ считанного на эти системы программного обеспечения. Сеть CP/NET открывает возможность для каждого пользователя получить доступ к этому программному обеспечению, кооперируясь с другими поль¬ зователями на базе СР/М. Распределение и распространение про¬ граммного обеспечения по сети взаимодействующих микрокомпьюте¬ ров окажут огромное влияние на дальнейшее развитие персональ¬ ных вычислений.
Гл. 20 Пример для изучения: СР/М 277 20.15 PL/1 SUBSET G — язык прикладного программирования в СР/М В конце 70-х годов в промышленности и в научно-исследователь¬ ских кругах стали все шире применять Паскаль, язык с продуман¬ ной структурой, разработанный Никлаусом Виртом в 1969 г. Не¬ которые технические школы отказались от Фортрана, Некоторые пользователи в промышленности и многие научные коллективы отка¬ зались от PL/1. В среде коммерческих пользователей сохранил свои позиции Кобол; он остается самым распространенным языком для обработки файлов. Но тенденция в направлении языка Паскаль, по-видимому, ос¬ лабевает. Научные школы по информатике стали постепенно ос¬ вобождаться от чар «изворотливой смекалистости», заложенной в обученных Паскалю студентов. Для некоторых приложений язык настолько скуден, что пользователи вынуждены встраивать возмож¬ ности, общедоступные на других языках. Это, конечно, ухудшает мобильность программ. В конце 60-х и на протяжении 70-х годов университеты и многие промышленные фирмы предлагали пользователям вычислительные ресурсы в виде систем разделения времени. Сегодня большая часть таких же возможностей при лучших экономических показателях может быть обеспечена персональными вычислительными система¬ ми, часто объединенными в вычислительные сети. Влияние СР/М и совместимых с ней систем стало доминирующим фактором в рас¬ пределении вычислительных возможностей среди пользователей персональных компьютеров. В 1981 г. фирмы IBM и Xerox выш¬ ли на рынок персональных машин с совместимой с СР/М аппара¬ турой. Это еще больше подчеркнуло важность СР/М как стандарта де-факто на микропроцессорные операционные системы. Фирма Digital Research должна была остановиться на каком-то языке прикладного программирования, поддерживаемого в систе¬ мах, базирующихся на СР/М. Это был критический момент — по¬ пулярность СР/М была настолько велика, что язык, на который пал бы выбор, имел все шансы стать международным стандартом для микропроцессорных систем. На самом деле с каждой микрокомпьютерной системой разработ¬ чик поставляет язык Бейсик. Однако язык беден и неструктурен. Немногие возьмутся пропагандировать Бейсик как «язык будуще¬ го». Фирма Digital Research внимательно исследовала вопрос о под¬ держке стандартного языка Паскаль как языка прикладного про¬ граммирования. Но она отвергла его, поскольку в языке отсутствуют важные для коммерческих приложений свойства, такие, как деся¬ тичная арифметика, развитые средства обработки файлов, операции с цепочками символов, обработка ошибочных ситуаций. В популярности языка Паскаль сомнений не возникало — сом¬ нения были лишь в достаточности его свойств для удовлетворения
т Часть 8 Примеры для изучения реальных вычислительных потребностей. Широко обсуждались воз¬ можности расширения Паскаля. Но эта линия шла вразрез с жела¬ нием фирмы Digital Research остановиться на проверенном, широко принятом, стандартном языке. Выбор Digital Research оказался довольно неожиданным, осо¬ бенно в свете настроений, распространенных среди специалистов в области технологии создания программного обеспечения. Фирма выбрала в качестве языка прикладного программирования PL/1 Subset G. Полный PL/1 слишком большой язык и считается неприем¬ лемым в кругах специалистов; язык предлагает слишком много воз¬ можностей программистам и слишком легко ошибиться в их исполь¬ зовании. Язык PL/1 Subset G содержит мощные средства как для коммер¬ ческих, так и для научных приложений. Это довольно «цельное» подмножество полного языка PL/1, последовательное и легкое в ис¬ пользовании. Фирма Digital Research начала работы по реализации Subset G в 1978 г., а завершила их в 1980 г. Компиляция проводится в три прохода. После первых двух проходов порождается таблица символов и программа на промежуточном языке, пригодном для большинства целевых машин. Последний проход — машинно-зависи¬ мый. Он порождает машинный код и выполняет оптимизацию кода. Интересно было бы отследить реакцию рынка на PL/1 Subset G. Обращение фирмы Digital Research к этому языку определенно вы¬ зовет новую волну интереса к PL/1. Однако, видимо, Паскаль уже слишком прочно закрепился на своих рубежах, чтобы его можно было бы с них вытеснить. На это указывает хотя бы решение фирмы IBM поставлять Бейсик и Паскаль (а не PL/1) со своими пер¬ сональными компьютерами. 20.16 Эволюция архитектур процессоров Одна из проблем, стоящих сегодня перед поставщиками микро¬ компьютеров и уж наверняка перед поставщиками программного обеспечения,— это проблема выбора в качестве основной 8-, 16- или 32-битовой архитектуры. Текущие системы в основном базиро¬ вались на 8-битовую архитектуру, хотя популярность 16-битовых машин непрерывно возрастала. Сейчас поставщики микропроцес¬ соров перед серьезным вопросом: сосредоточить усилия на 16-би¬ товых машинах или вместо этого разрабатывать программное обес¬ печение для более новых 32-битовых архитектур. Здесь ключевым моментом, видимо, окажется то обстоятельство, что поставщики микрокомпьютеров попадают в область конкуренции с миникомпью- терной промышленностью. Но 16-битовые миникомпьютеры уходят в прошлое. Большинство производителей миникомпьютеров выпус¬ кают 32-битовые компьютеры. Кажется очевидным, что будущее микропроцессоров, уж по крайней мере в следующем десятилетии, будет связано с 32-битовыми архитектурами.
279 Гл. 20 Пример для изучения: СР/М 20.17 Программное обеспечение на базе СР/М Нет сомнения в том, что популярность СР/М в значительной сте¬ пени связана с наличием огромного количества компонент приклад¬ ного программного обеспечения. В настоящее время для работы под управлением СР/М существует почти 1000 коммерческих приклад¬ ных пакетов. Многочисленность пользователей СР/М позволяет поставщикам программного обеспечения предлагать довольно круп¬ ные изделия по умеренным ценам, а это содействует росту спроса. Возникает самоподдерживающийся цикл. В выигрыше в первую очередь оказывается пользователь. 20.18 Персональный компьютер фирмы IBM После того как мы рассмотрели и UNIX, и СР/М, интересно проследить, что же сейчас происходит в сфере промышленности, за¬ нятой созданием программного обеспечения для микрокомпьютеров. Система UNIX была разработана для миникомпьютеров и в на¬ стоящее время «спускается» к микрокомпьютерам через XENIX и другие базирующиеся на UNIX системы. Система СР/М была соз¬ дана для 8-битовых микрокомпьютеров и в настоящее время «под¬ нимается» в сферу 16-битовых микрокомпьютеров через такие сис¬ темы, как СР/М-86 (одноабонентская система для 16-битовых микро¬ компьютеров) и МР/М-86™ (многоабонентская система для 16-би¬ товых микрокомпьютеров). Складывается впечатление, что основное сражение за первенство развернется в сфере 16-битовых микромашин. В центре событий, скорее всего, окажется персональный компью¬ тер фирмы IBM (IBM PC), объявленный в 1981 г. «Сердцем» машины является 16-битовый микропроцессор Intel 8088, тот самый, который является целевым в системах, базирующихся на СР/М. Однако для разработки операционной системы для PC фирма IBM выбрала Micro¬ soft и назвала систему PC DOS. Эта система внешне во многих чер¬ тах напоминает СР/М, но на самом деле представляет собой сокра¬ щенную версию системы XENIX фирмы Microsoft, системы, базирую¬ щейся на UNIX и рассмотренной нами в гл. 19. Фирма IBM заклю¬ чила контракт с Digital Research на создание для IBM PC системы СР/М-86 как альтернативной операционной системы. Интересно, на какой из систем остановят свой выбор пользователи IBM PC. Фирма Digital Research приблизительно в 1981 г. объявила о наличии 300 000 установок СР/М и тогда же сообщила, что предпо¬ лагается к 1986 г. установить 2 800 000 СР/М-86, включая большое число IBM PC. В момент написания этой книги было невозможно предсказать с уверенностью, что будет доминировать на рынке 16-битовых операционных систем. Однако можно сказать наверня¬ ка, что это будет либо СР/М-86, либо базирующаяся на UNIX сис¬ тема XENIX, и именно поэтому обе эти системы рассмотрены в кни¬ ге в качестве практических примеров.
280 Часть 8 Примеры для изучения 20.19 Будущее СР/М На сегодня СР/М и совместимые с ней системы — самые распро¬ страненные операционные системы в мире, и их число быстро рас¬ тет. Новейшие персональные машины основных компьютерострои¬ тельных фирм в большинстве своем включают совместимые с СР/М системы. Поскольку системы разрабатываются переносимыми, СР/М сейчас используется на самых разнообразных компьютерных систе¬ мах и их конфигурациях. Благодаря такой популярности примене¬ ние СР/М (и ее производных), вероятно, продлится еще несколько десятилетий. Эта система несомненно занимает ведущие позиции для 8-битовых микропроцессоров. Но остается вопрос: сохранит ли она популярность среди пользователей 16- и 32-битовых систем. Здесь она столкнется с жесткой конкуренцией со стороны систем, базирующихся на UNIX, и других более мощных операционных систем. Заключение Система СР/М стала стандартом де-факто для 8-битовых микро¬ процессоров. Производными от СР/М являются системы МР/М и СР/NET. Система МР/М — это многоабонентская система с разделе¬ нием времени, a CP/NET — сетевая операционная система для пер¬ сональных машин, базирующихся на СР/М. Система СР/М состоит из переменной и постоянной частей. По¬ стоянная часть содержит дисковую операционную систему, написан¬ ную на языке PL/М. Переменная часть обычно пишется на языке ассемблера для поставляемого в системе микропроцессора; она со¬ держит драйверы локальных устройств ввода-вывода. Для обеспечения лучшей переносимости и расширяемости систе¬ ма сделана таблично-управляемой. Она состоит из трех главных подсистем, а именно: процессора команд консоли (ССР), базовой системы ввода-вывода (BIOS) и базовой дисковой операционной сис¬ темы (BDOS). Подсистема ССР обеспечивает «дружественный» ин¬ терфейс с пользователем; BIOS содержит драйверы устройств; BDOS — программы управления файлами на дисках. Система СР/М рассчитана на работу с реальной памятью. Опе¬ рационная система и пользователь совместно используют первичную память. Пользовательские программы транзитно вызываются в па¬ мять с диска по мере необходимости. Для такой маленькой системы командный язык СР/М обладает вполне достаточной мощностью. Пользователям предоставляется ассемблер, отладчик, редактор, загрузчик, служебные программы для работы с файлами и набор команд для выполнения общеупотре¬ бительных функций. Подсистема BIOS обслуживает ввод-вывод для всех периферий¬ ных устройств, кроме дисков, в первую очередь для консоли поль¬
Гл. 20 Пример для изучения: СР/М 281 зователя (как правило, для клавиатуры, дисплея и алфавитно-циф¬ ровой печати). Подсистема BDOS обслуживает дисковый ввод-вывод. Она уп¬ равляет файлами, предоставляя такие операции, как «открыть», «закрыть», «читать», «писать», «создать», «уничтожить», «переиме¬ новать» и т. д. Описателями файлов служат управляющие блоки файлов (FCB), которые хранятся в области директория на диске. Чтобы ускорить обращения к файлу, когда он находится в работе, его FCB перено¬ сится в транзитную область памяти (ТРА). Логически соседние записи в файле на диске не являются смеж¬ ными. Благодаря этому последовательный доступ к файлу уско¬ ряется. Команды бывают встроенными или транзитными. Встроенные команды размещаются постоянно в системной области первичной памяти. Транзитные могут считываться в память с диска. Подсистема BDOS отыскивает файлы путем поиска FCB в дирек¬ тории файлов. Найдя соответствующий FCB, она переносит нужную информацию в FCB в оперативной памяти. При закрытии файла FCB снова копируется на диск. Расширение имени файла исполь¬ зуется для задания типа файла. Система МР/М содержит ядро, поддерживающее множество вза¬ имодействующих последовательных процессов, и совместимый с СР/М менеджер файлов, включающий средства обслуживания терми¬ нала. Система МР/М прекрасно функционирует как многоабонент¬ ская с разделением времени мультипрограммная система. В МР/М каждый процесс описывается дескриптором процесса. Когда процесс прерывается, информация о его состоянии сохраня¬ ется в дескрипторе. Диспетчеризация процессов осуществляется на приоритетной основе; процессы с равными приоритетами диспет¬ черизуются в порядке «первым вошел — первым обслуживается». Синхронизация процессов осуществляется при помощи очередей сообщений. Процесс, ожидающий сообщение, приостанавливается до прибытия сообщения от посылающего процесса. Мультизадачные возможности в МР/М позволяют пользователю запустить на исполнение несколько программ с одного терминала. Пользователь может отсоединить программу от терминала и при необходимости подсоединить ее снова. В МР/М можно работать более чем с одним банком памяти. Это позволяет выполнять очень большие программы, занимающие почти всю память. Конфликты между общими адресами различных банков не возникают, поскольку механизм переключения банков активизи¬ рует в каждый конкретный момент только один банк. Система CP/NET является операционной системой сети персо¬ нальных компьютеров, в которой функции распределены на множест¬ ве разнотипных процессоров сети. Она объединяет управляемых СР/М заказчиков с управляемыми МР/М исполнителями. Управляет
282 Часть 8 Примеры для изучения сетью главный узел. В СР/NET есть несколько собственных команд, в основном предназначенных для отправления и приема электрон¬ ной почты. Система СР/NET удобна в такой области приложений, как ав¬ томатизация учрежденческой деятельности (контора будущего). Индивидуальные рабочие места объединяются в сеть и коллективно обращаются к общей базе данных. Фирма Digital Research отвергла Паскаль и Бейсик и выбрала в качестве языка прикладного программирования PL/1 Subset G для систем, базирующихся на СР/М. Это в высшей степени дискус¬ сионное решение — даже фирма IBM, создатель языка PL/1, не предлагала его (или версию Subset G) с первыми выпусками своих персональных компьютеров. В силу популярности СР/М возникла огромная база програм¬ много обеспечения, работающего с этой системой. Производители персональных компьютеров склоняются к выпуску совместимого с СР/М оборудования, чтобы продавцы их машин могли воспользо¬ ваться имеющимся программным обеспечением. Первоначально СР/М была реализована для 8-битовых микро¬ компьютеров и затем для 16-битовых. Система UNIX сначала была реализована на 32-битовых миникомпьютерах и затем стала доступ¬ на на 16-битовых микрокомпьютерах, в частности в версии XENIX, поставляемой фирмой Microsoft. В течение следующих нескольких лет эти две системы будут основными конкурентами на рынке опера¬ ционных систем персональных компьютеров. Фирма IBM, выбрав в качестве поставщика операционной системы для своего персональ¬ ного компьютера фирму Microsoft, заключила контракт и с фирмой Digital Research на поставку СР/М-86 в качестве альтернативной системы. Будет очень интересно узнать, какая же операционная система действительно станет более популярной у пользователей IBM PC. Терминология базовая дисковая операционная система (Basic Disc Operating Sys¬ tem, BDOS) базовая система ввода-вывода (Basic Input/Output System, BIOS) битовая карта распределения диска (allocation bit map) 8-битовый микрокомпьютер (8-bit microcomputer) 16-битовый микрокомпьютер (16-bit microcomputer) 32-битовый микрокомпьютер (32-bit microcomputer) винчестерский диск (winschester disk) встроенные команды (builtin commands) гибкий диск (floppy disc) главный узел (master node)
Гл. 20 Пример для изучения: СР/М 283 дескриптор процесса (process descriptor) драйверы устройств (devise drivers) заказчик (requestor) исполнитель (server) кластер (cluster) контора будущего (office-of-the-future) логическое устройство (logical device) микропроцессор Intel 8080 (Intel 8080) микропроцессор Intel 8088 (Intel 8088) мобильность, переносимость (portability) очередь сообщений (message queue) переключение банков памяти (bank switching) переносимость, мобильность (portability) переменная часть (variant part) персональный компьютер фирмы IBM (IBM PC) (IBM Personal Computer) постоянная часть (invariant part) процессор команд консоли (ССР) (consol command processor (ССР)) расширение имени файла (filename extension) резидентный системный процесс (resident system process) системы, совместимые с СР/М (CP/M-compatible systems) странично-перемещаемый (page relocatable) таблично-управляемая система (table-driven system) транзитная команда (transient command) транзитная область памяти (Transient Program Area, TRA) управляющий блок файла (File Control Block, FCB) физическое устройство (physical device) фирма Digital Research (Digital Research) фирма Shugart Associates (Shugart Associates) функции байта IOBYTE (IOBYTE function) функциональная дисковая операционная система (Functional Disa Operating System, FDOS) шаг по секторам (sector skew) экстент (extent) СР/М (CP/M) CP/M-86 (CP/M-86) СР/NET (CP/NET) IOBYTE (IOBYTE) MP/M (мультипрограммный монитор для микропроцессоров) (Mui* tiprogramming monitor for Microprocessors, MP/M) MP/M-86 (MP/M-86) PL/1 Subset G (PL/1 Subset G) PL/M (PL/M)
284 Часть 8 Примеры для изучения Упражнения 20.1 Какие факторы сделали возможной революцию в вычислениях, привнесен¬ ную м и кр окомп ыотер а ми? 20.2 Почему разработчики СР/М разбили систему на постоянную и переменные части? Рассмотрите достоинства и недостатки такого подхода. 20.3 Что означает, что операционная система является таблично-управляемой? В чем состоит табличная управляемость СР/М? 20.4 Каковы основные функции каждой из следующих подсистем в СР/М: а) Процессора команд консоли (ССР). в) Базовой системы ввода-вывода (BIOS). с) Базовой дисковой операционной системы (BDOS). 20.5 Первоначально BIOS не поставлялась фирмой Digital Research или другими поставщиками СР/М. Почему? Обсудите достоинства и недостатки такого подхода к поставкам операционных систем. Рассмотрите точки зрения пользователей и поставщиков. 20.6 Опишите, каким образом в СР/М осуществляется управление первичной памятью. 20.7 Рассмотрите работу файловой системы в СР/М. 20.8 Логически соседние записи обычно не являются физически соседними на дисках СР/М. Если бы они были соседними, обработка файлов замедлилась бы. Объясните почему? 20.9 Что такое МР/М? В чем ее отличия от СР/М? В чем сходство? 20.10 Опишите планирование процессов в МР/М. Сравните его с планированием процессов в СР/М. 20.11 Как осуществляется синхронизация процессов в МР/М? 20.12 Поясните операцию переключения банков памяти в МР/М. 20.13 Объясните, как работает СР/NET. 20.14 Поясните важность сети, подобной СР/NET, для малого бизнеса. 20.15 Рассмотрим фирму, торгующую книгами. Фирма получает заказы на книги по телефону или по почте. Фирма имеет склад, на котором хранятся запасы наи¬ более ходовых книг. Когда поступает заказ на книгу, отсутствующую на складе, фирма запрашивает ее у соответствующего издательства. Счета на оплату клиен¬ там выписываются одновременно с высылкой книги. Счета от издательств опла¬ чиваются в момент поступления книги на склад. Рассмотрите, как можно было бы использовать многомашинную сеть под управлением СР/NET в подобной фирме. 20.16 Объясните, какое влияние сети персональных компьютеров, по-видимому,' окажут на персональные вычисления. 20.17 Из каких соображений фирма Digital Research выбрала PL/1 Subset G в качестве языка прикладного программирования для базирующихся на СР/М систем? Почему был отвергнут Бейсик? Почему был отвергнут Паскаль?
Гл. 20 Пример для изучения: СР/М 285 20.18 Какие операционные системы, скорее всего будут главными конкурентами на рынке 16-битовых микрокомпьютеров в ближайшие годы? 20.19 Какое влияние окажет персональный компьютер фирмы IBM на конку¬ рентную борьбу среди операционных систем для 16-битовых микрокомпьютеров? 20.20 Каковы преимущества применения механизма отображения логических устройств на физические в малых системах, подобных СР/М? Как такое отображе¬ ние реализуется в СР/М? 20.21 Нужно создать файл, который будет занимать около 10 Кбайт. Объясните точно, когда и где BDOS будет отводить пространство для этого файла. Вклю¬ чите в ваше объяснение, как BDOS будет пользоваться битовой картой распреде¬ ления в блоке FCB на диске и картой распределения диска в FCB в первичной памяти. Л итература (Ва80) Ballinger С., «HDOS or СР/М?» Interface Age, September 1980, pp. 88—91. (Bb80) Barbier К., «СР/М for Single-Drive Systems», Kilobaud Microcomputing, September 1980, pp. 94—98. (Br80) Brigham В., CP/M Summary Guide, Glastonbury, Conn.: The Rosetta Stone, 1980. (Ep80a) Epstein J., «An Introduction to СР/М», S-100 Microsystems, January— February 1980, pp. 6—10; March—April 1980, pp. 28—33; May—June 1980, pp. 12—17. (Ep80b) Epstein J., Terry C., «Introduction to CP/M: The CP/M Connection»^ S-100 Microsystems, September—October 1980, pp. 10—32. (Fe80) Fernandez J., Ashley R., Using CPfM, New York: Wiley, 1980. (Fr79) Frantz J. J., «Turn-Key CP/M Systems», Creative Computing, December 1979, pp. 104—114. (Fr81) Friedman H. «Demystifying CP/М», Computers and Programming, Sep¬ tember—October, 1981, pp. 57—74. (Fz80) Fritzon R., «The New CP/M: Is It Worth It?» Kilobaud Microcomputings July 1980, pp. 66. (Ho81) Hogan T., «Osborne CP/M User Guide», Berkeley, Calif.: Osborne/McGraw- Hill, 1981. (Ki81) Kildall G., «CP/М: A Family of 8- and 16-Bit Operating Systems», Bytes June 1981, pp. 216—231. (La81) Larson J., «The Ins and Outs of CP/М», Byte Magazine, June 1981, pp. 268—298. (Le81) Lettieri L., «Digital Research and CP/M Move into the Big Time», Mini¬ Mucro Systems, November 1981, pp. 228—230. (A\i78) Miller A., «CP/М Part 2—A Macro Assembler and Other Goodies», Inter¬ face Age, December 1978, pp. 130—135. (Mi79) Miller A., «CBASIC: A Business-Oriented Language for CP/М», Interface Age, August 1979, pp. 116—119. (Mi80a) Miller A., «Diagnostics Package for CP/М», Interface Age, October 1980, pp. 104. (Mi80b) Miller A., «CP/М for the TRS-80 Model II: Lifeboat and FMG Corp. Versions», Interface Age, November 1980, pp. 94—98. (Mk81) Miastkowski S., «А Close Look at the IBM Personal Computer», Popular Computing, December 1981, pp. 52—58. (No78) North S., «The CP/M Disk Operating System», Creative Computing, No¬ vember—December 1978, pp. 52—53. (St78) Stewart J. F., «CP/М Primer: A Most Sophisticated Operating System»,- Kilobaud Microcomputing, April 1978, pp. 30—34,
286 Часть 8 Примеры для изучения (Те80) Terry С.5 «The СР/М Connection», S-100 Microsystems, July—August 1980, pp. 32—35. (Va80) Van Buer D., «А Table-Driven Assembler on СР/М», Dr, Dobb's Journal, February 1980, pp. 18—25. (Va81) Vaughn W. R., «Getting Compatible with CP/M»j Mini-Micro Systems-, August 1981, pp. 173—179. (Wa76a) Warren J., «First Word on a Floppy Disk Operating System», Dr, Dobb's Journal, April 1976,- p. 5. (Wa76b) Warren J., «The Time for Floppies Is Just about Now!» Dr, Dobb’s Journal; August, 1976, p. 5. (Wi80) Willoughby S., «Hardcopy Device Driver Programs for СР/М», Dr, Dobb's Journal; September 1980, pp, 34—37, (Wm82) Williams G., «А Closer Look at the IBM Personal Computer», Byte, Vol. 75 No. 1? January 1982, pp. 36—68. Za80) Zaks R., The CP/M Handbook with MPIM, Syhex, 1980,
Глава 21 MVS В одной большой конфигурации MVS в США семь связанных процессоров установлены в одном зале. Конфи¬ гурация включает более 450 устройств прямого доступа и обслуживает примерно 15 000 терминалов более чем в 50 пунктах. Суммарная производительность превы¬ шает 40 миллионов команд в секунду. М. А. Аусландер й др. (Аи81) Общий подход к проблеме надежности системы (ее готовности к работе) заключается в том, чтобы предпринять усилия по двум взаимодополняющим ли¬ ниям'. во-первых, уменьшить число ошибок в программ¬ ном обеспечении путем тщательного тестирования системы в работе, во-вторых, уменьшить влияние ос¬ тавшихся невыявленными ошибок путем их нейтра¬ лизации. Интересное подстрочное замечание к такому подходу — теперь отказ системы можно рассматри¬ вать как результат двух программных ошибок', первой — в программе, являющейся первопричиной ошибки, вто¬ рой — в процедуре восстановления, которая должна была бы защитить систему. А. Л. Шерр (Sc73) В 1956 г, было редкостью, когда созданное фирмой IBM программное обеспечение занимало заметную часть в общем объеме выполняемых системой вычислений. Сегодня нет ничего необычного в том, что в поставляе¬ мое фирмой IBM программное обеспечение закладывается 90% всех возможностей системы или более, а в приклад¬ ные пользовательские программы лишь остальное. М. А, Аусландер и др. (Аи81) 21.1 История MVS 21.2 Цели, поставленные при проектировании MVS 21.3 Аппаратура System/370 21.3.1 Преобразование виртуального адреса 21.3.2 Защита памяти 21.3.3 Механизм прерываний 21.4 Функции MVS 21.5 Супервизор 21.6 Главный планировщик 21.7 Подсистема ввода заданий 21.8 Системный менеджмент и измерения 21.9 TSO 21.10 Управление данными 21.11 Менеджер реальной памяти 21.12 Менеджер вспомогательной памяти 21.13 Менеджер виртуальной памяти
288 Часть 8 Примеры для изучения 21.14 Менеджер системных ресурсов 21.15 Организация памяти 21.16 Управление ресурсами 21.17 Замки 21.18 ENQUEUE — поставить в очередь 21.19 RESERVE — захватить 21.20 Задачи и запросы обслуживания 21.21 Диспетчер 21.22 /Мультипроцессорная работа 21.23 Вопросы производительности 21.24 Мониторинг 21.25 Выводы 21.1 История MVS Операционную систему MVS (Multiple Virtual Storage — сис¬ тема с несколькими виртуальными памятями) фирма IBM предло¬ жила потребителям в середине 1974 г. как приемника системы MVT (Multiprogramming with a Variable number of Task — мультипрог¬ раммирование c переменным числом задач). Эта операционная систе¬ ма предназначена для самых крупных машин. MVT вошла в строй в 1967 г. и переросла свои возможности. Хотя первоначально она была спроектирована для пакетной обработки данных, тем не менее сей¬ час она включает системы TSO (Timesharing Option — средства раз¬ деления времени), IMS (Information Management System—система управления информацией), HASP (Houston Automatic Spooling Pri¬ ority system — хьюстоновская автоматическая приоритетная спу- линговая система) и ASP (Asymmetric Multiprocessing System — асимметричная многомашинная система), «привитые» к ней, чтобы дополнить большинством возможностей, необходимых вычислитель¬ ному сообществу. В MVT одновременно может выполняться не более 15 заданий. Операционная система OS/SVS (Single Virtual Storage — система с одной виртуальной памятью) была предложена потребителям в 1972 г. как переходная система, которая позволяла воспользовать¬ ся преимуществами архитектуры IBM/370 и виртуальной адреса¬ цией. По существу, SVS — это MVT с подкачкой страниц. На рис. 21.1 прослеживается эволюция операционных систем фирмы IBM, приведшая к MVS. С вводом в строй MVS многие функции, бывшие ранее в разряде дополнительных в MVT, стали стандартными. Это относится к TSO, JES (Job Entry Subsystem — подсистема ввода заданий), мульти¬ процессорному режиму (до 16 процессоров) и, что самое важное, менеджеру ресурсов. Благодаря виртуальной адресации в MVS каждому пользователю предлагается адресное пространство до 16 миллионов байт. На некоторых моделях адресное пространство расширено до 2 миллиардов байт (до 2 гигабайт). По-видимому, MVS будет оставаться главной операционной системой для старших моде¬ лей IBM по крайней мере на протяжении текущего десятилетия, хотя она встречает серьезную конкуренцию со стороны VM (см. гл. 22).
ние при спулинге Многозадачность MFT-I DOS/MP Телеобработка Разделение TS0 времени — Базы данных Виртуальная память Виртуальные машины SVS VS1 DOS/VS 1964 1965 1966 1967 1968 1969 1970 1971 1972 VM 1973 МУЗ | 1974 1975 v у у v Рис. 21.1 Эволюция OS/360. РСР= primary control program (первичная управля¬ ющая программа). MFT==multiprogramming with fixed number of tasks (мульти¬ программирование с фиксированным числом задач). MVT=multiprogramming with variable number of tasks (мультипрограммирование с перем, числом задач). TSO=timesharing option (разделение времени). SVS=single virtual storage (сис¬ тема с одной виртуальной памятью). MVS=multiple virtual storage (система с не¬ сколькими виртуальными памятями). DOS=disk operating system (дисковая опе¬ рационная система). VM= virtual machine facility (операционная система вирту¬ альных машин). (Copyright 1981, International Business Machines Corporation; перепечатывается с разрешения.) 10 584
290 Часть 8 Примеры для изучения сх с Ж <и я я <U О я о X Л
Гл. 21 MVS 291 H ЭЖ eg ж Cl¬ ж eg ж Ж ж Ж eg eg Ж »ж e- ж о o VO ж ф > eg сх со ex ж ж н- VO о О VO ж 3 о ж сх >> ж S ж з ед СХ н ед ед eg О СХ сх h о ж ж ж 1=[ Ж Оч ед Ж Ж ед U о сх с eg Ж CX 03 co aS Ж О Д Ж О CX Ж ж cr eg co X Ж ж н ж 1=3 >> 2 ж ж ж ж (=3 ж ж ж ж ж ь о ед ж ед ж со X ед ед IX ед ж ед Ж СП ж ф ж н ф сх н со Ж in СХ >Э с СП Рис. 21.2 Возможности MVS и предшествующих систем. (Copyright 1981 i International Business Machines Corporation; пере¬ печатывается с разрешения.) 10*
292 Часть 8 Примеры для изучения Логически в MVS одновременно поддерживается до 9999 заданий, однако практически предел наступает где-то при 300—400 одновре¬ менно работающих интерактивных пользователях, у каждого из которых имеется свое адресное пространство. Число пользователей, которые одновременно могли бы войти в систему для работы с не¬ которой прикладной системой с одним адресным пространством, лежит где-то между 500 и 700. MVS — это кульминационная точка 25-летнего периода разви¬ тия операционных систем. На рис. 21.2 показана эволюция функций операционных систем за этот период. 21.2 Цели, поставленные при проектировании MVS Разработчики MVS стремились достичь высоких показателей по производительности, надежности, доступности, готовности к работе и совместимости, имея в виду крупные вычислительные установки. MVS создает более стабильную операционную обстановку по срав¬ нению с предыдущими системами. Она делает попытки нейтрализо¬ вать ошибки не только аппаратные, но и программные. Имеется множество программ восстановления функционирования (FRR — Functional Recovery Routines), на которые передается управление при ошибках, возникающих в операционной системе. Система пы¬ тается восстановить цепочку управляющих блоков, если она нару¬ шена. Она пытается нейтрализовать ошибки аппаратуры. Если, например, лентопротяжный механизм генерирует слишком много прерываний, система сообщает об этом оператору и предлагает ему возможные варианты действий для выхода из сложившейся ситуа¬ ции. При наличии нескольких процессоров на установке отказ одного из них не приводит к отказу всей системы. Операционная система фиксирует неработоспособность процессора и старается пе¬ редать его функции другим процессорам. Переход с DOS (дисковой операционной системы) на OS/360 проходил довольно болезненно для фирмы IBM и ее пользователей. Пришлось переписывать большое число программ, переработать файлы, переписать задания на JCL. Многим вычислительным цент¬ рам такой переход обошелся довольно дорого. Некоторые пользова¬ тели вовсе не стали переходить на OS/360 — IBM до сих пор поддер¬ живает DOS и DOS/YSE. Едва ли фирма IBM когда-нибудь снова решится на столь радикальную ломку. Скорее всего, она будет стре¬ миться в своих будущих системах обеспечить поддержку существую¬ щих прикладных программ. 21.3 Аппаратура System/370 Перед тем как рассматривать саму операционную систему, полез¬ но сделать несколько замечаний об аппаратуре, на которой она ра¬ ботает.
Гл. 21 MVS 293 21.3.1 Преобразование виртуального адреса В старших моделях System/370 адресное пространство составляет 16 777 216 байт (с 24-битовым адресом, как показано на рис. 21.3). Из них примерно 8 миллионов байт поступают в распоряжение прикладной программы, остальное использует операционная систе¬ ма. Реальная адресуемая из операционной системы память может Виртуальная память на 16 777 216 байт (16 384 Кбайт) Сегменты по б^к,страницы по ЬК Рис. 21.3 Адресация виртуальной памяти при адресном пространстве в 16Мбайъ (С разрешения корпорации IBM.) достигать 32 Мбайт для мультипроцессорных установок и 24 Мбайт— для однопроцессорных. Преобразование адреса осуществляется следующим образом. Прежде всего просматривается TLB (Translation Lookaside Buffer) — специальная ассоциативная память, которая позволяет выяснить, находятся ли нужный сегмент и нужная страница в оперативной памяти. Если поиск в TLB не дал положительного результата, он продолжается по таблицам сегментов и таблицам страниц, которым отведено место в основной памяти. Если просмотр снова не дает положительного результата, то происходит страничный отказ и вызывается менеджер вспомогательной памяти ASM (Auxiliary Storage Manager), задача которого найти страницу и подкачать ее в первичную память. TLB содержит 128 преобразуемых адресов и обновляется по алгоритму LRU. Из таблицы сегментов идут ссылки на таблицы страниц, а из таблицы страниц — на реальные страниц-
294 Часть 8 Примеры для изучения ные кадры, к адресам которых добавляются в качестве смещений адреса байтов внутри страницы. Таким образом получаются резуль¬ тирующие реальные адреса (рис. 21.4). В системе IBM/370 мы сталкиваемся с адресами трех типов: абсолютными, реальными и виртуальными. Различия между ними Виртуальный адрес | Сегмент|Страница[Смещение вбайтах\ (Регистр начала таблицы сегментов) ^Начало таблицы сегментов | (Умножение на 2, I" 2 I на длину элемента I—Z' I в таблице страниц) I Таблица страниц SAR (Регистр адреса памяти) | Реальный адрес памяти - Таблица сегментов • , У / на длину элемента в таблице сегментов) Рис. 21.4 Динамическое преобразование адресов. (С разрешения корпорации IBM.) связаны с механизмами преобразования адресов. Механизмы дина¬ мического преобразования адресов виртуальной памяти превращают виртуальные адреса в реальные, а префиксация превращает реаль¬ ные адреса в абсолютные. Пространство виртуальных адресов лежит в диапазоне до 16 Мбайт (при 24-битовом адресе). Реальные и абсо¬ лютные адреса — это адреса, которым соответствуют ячейки физи¬ ческой первичной памяти. Как правило, реальные адреса не отличаются от абсолютных, за исключением мультипроцессорных установок. Если же к первич¬ ной памяти обращается более одного процессора, используется спе¬ циальный механизм префиксации. Префиксация позволяет присво¬ ить реальным адресам из диапазона 0 до 4095 абсолютные адреса, не совпадающие с реальными. Для этого к ним добавляется префикс, находящийся в управляющем регистре. В результате каждый про¬ цессор получает возможность по адресам 0 — 4095 обращаться в свою префиксируемую область PSA (Prefixed Storage Area) и в ней содержать информацию, которую нельзя использовать совместно с другими процессорами, в частности старые и новые слова состояния программы (PSW) для различных типов прерываний.
Гл. 21 MVS 295 21.3.2 Защита памяти В System/370 существует защита памяти трех видов: защита по ключу, защита сегментов и защита младших адресов. Ключи за¬ щиты могут принимать 16 различных значений. Операция записи при защите по ключу разрешается только в том случае, когда ключ в PSW и ключ области памяти, в которую обращаются, соответствуют друг другу. Выборка разрешается, если либо ключи соответствуют друг другу, либо бит выборки установлен в нуль. Защита сегментов позволяет разрешать или запрещать запись в сегмент в зависимости от значения бита в элементе таблицы сегментов. Защита младших адресов защищает байты 0—511, и управляет ею один из системных управляющих регистров. 21.3.3 Механизм прерываний Когда происходит прерывание, текущее слово состояния про¬ граммы (PSW) запоминается в качестве старого PSW, сохраняется вся необходимая информация, чтобы можно было декодировать пре¬ рывание, загружается новое PSW, после чего работа продолжается с точки, указанной в новом PSW. Эта точка есть входной адрес про¬ граммы обработки прерывания соответствующего типа. Управление после обработки прерывания может либо вернуться на продолжение прерванной единицы работы, либо не возвращаться на нее. Если эта единица оперативно не переключаема, то она будет продолжена, в противном случае диспетчер может переключить процессор на об¬ служивание другого, более приоритетного запроса или задачи, гото¬ вой к выполнению (см. гл. 3). 21.4 Функции MVS MVS — большая операционная система и как таковая выполня¬ ет на установке много различных функций, и в частности: • Супервизор — обеспечивает управление мультипрограммирова¬ нием. Он создает диспетчеризуемую единицу работы, осущест¬ вляет переключения (диспетчеризация), обеспечивает последова¬ тельное использование ресурсов (например, предоставляет средст¬ ва, обеспечивающие взаимоисключение). • Главный планировщик — отвечает за запуск системы и взаимо¬ действие с оператором. • Подсистема ввода заданий — позволяет вводить работы в сис¬ тему и возвращать отпечатанные результаты пользователю. • Средства системного менеджмента — собирают информацию для учета использования ресурсов в системе, для анализа про¬ изводительности системы и для расчетов с пользователями ре¬ сурсов.
296 Часть 8 Примеры для изучений • Системные измерительные средства — регистрируют определен¬ ные события в системе для составления отчетов. • Система разделения времени TSO — предоставляет пользовате¬ лям средства интерактивного редактирования, тестирования и отладки. • Управление данными—обеспечивает выполнение всех функ¬ ций по вводу-выводу и работе с файлами. • Телекоммуникации — предоставляют доступ к MVS .пользова¬ телям за удаленными терминалами. в Система поддержки программ — обеспечивает редактирование связей, загрузку и другие служебные функции. • Программы-утилиты — обеспечивают такие функции, как копи¬ рование файлов и обновление каталогов. • Вспомогательный сервис — обеспечивает форматированный дамп, трассировку и другие нужные системным программистам функции. В минимальном варианте система MVS занимает 2 Мбайт памяти. Реальная система, включающая TSO, пакетную обработку и управ¬ ление базами данных, требует примерно 6 Мбайт. 21.5 Супервизор В супервизоре принимаются решения по использованию ресур¬ сов, необходимых для выполнения его многочисленных функций. В него входят менеджер реальной памяти, менеджер виртуальной памяти, менеджер ресурсов и менеджер вспомогательной памяти. В нем также содержатся программы, управляющие мультипрограм¬ мной работой. 21.6 Главный планировщик На главном планировщике лежит ответственность за инициали¬ зацию системы и ответы на команды, поступающие от оператора сис¬ темы. Планировщик считывает параметры инициализации во время запуска системы (в стартовое время) и формирует среду, в которой функционирует MVS. К таким параметрам относятся имена странич¬ ных наборов данных (для подкачки), имя главного каталога, имена томов, которые нужно установить на устройства, список общедоступ¬ ных библиотек программ и принимаемые по умолчанию параметры системных областей памяти. Задача связи принимает команды от оператора системы, направляет их соответствующей системной под¬ задаче для выполнения и возвращает ответ оператору. Если задача связи завершится аварийно, то связь оператора с системой будет потеряна, и для ее восстановления скорее всего придется перевызы- вать систему.
Гл. 21 MVS 297 21.7 Подсистема ввода заданий Подсистема ввода заданий принимает подлежащие выполнению задания и печатает и/или перфорирует выходную информацию. Вообще говоря, существует две подсистемы ввода заданий JES2 и JES3. Их предшественниками являются спулинговые системы HASP и ASP соответственно. В основном функции JES.2 и JES3 совпадают, но JES3 позволяет дополнительно при планировании Рис. 21.5 Работа подсистемы JES. (С разрешения корпорации IBM.)
298 Часть 8 Примеры для изучения учитывать параметры самих заданий (например, требования на ленты и диски) и планировочные критерии на вычислительной установке. Работа JES показана на рис. 21.5. Задания поступают в систему со считывателей карт, с терминалов или их могут сформировать программы и передать системе. Каждое задание проходит провер¬ ку на корректность и помещается в нужную очередь. Порядок пла¬ нирования, которому следует JES, базируется на структуре прио¬ ритетов и классов. Конвертер преобразует предложения на языке управления заданиями во внутреннее представление, воспринимае¬ мое MVS. Здесь же выполняются и другие проверки. При обнару¬ жении ошибки задание отклоняется, и выдается соответствующее сообщение пользователю. Далее, задание направляется MVS для исполнения снова с уче¬ том класса и приоритета. Здесь JES теряет контроль над зада¬ нием, если не считать того, что поток выводимой на печать инфор¬ мации перехватывается подсистемой JES и записывается на диск спулинга. Когда выполнение задания заканчивается, MVS сообщает об этом подсистеме JES и задание продвигается к следующему эта¬ пу — этапу вывода. Выводимые данные печатаются или перфори¬ руются, и задание покидает систему. Пространство, которое было занято заданием в системе спулинга, освобождается. В JES3 можно планировать запуск задания по предельному сроку, т. е. можно задать время суток, не позднее которого задание должно быть выбрано для исполнения. Как в JES2, так и в JES3 приоритет задания зависит от времени ожидания. Чем дольше не запускается задание на счет, тем выше становится его приоритет (старение задания). 21.8 Системный менеджмент и измерения Средства системного менеджмента (SMF — System Management Facility) и измерительные средства (MF/1 — System Activity Mea¬ surement Facility) служат для сбора статистики о работе системы. SMF регистрирует важную информацию о каждой задаче, проходя¬ щей через систему, в частности затраченное процессором время, число выполненных операций ввода-вывода, число используемых файлов, число напечатанных строк, размер рабочего множества. По этой информации определяется взимаемая с пользователей пла¬ та, среднее время прохождения заданий и т. п. MF/1 регистрирует сведения о самой операционной системе, в частности интенсивность подкачек страниц, загрузку процессора и других устройств. По этой информации можно обнаружить узкие места в системе и наме¬ тить способы их устранения.
Гл. 21 MVS 299 21.9 TSO Средства TSO позволяют пользователю получить немедленный доступ к машине, возможно, из удаленной точки. Пользователь мо¬ жет редактировать файлы, компилировать и тестировать програм¬ мы. После того как компиляция прошла без ошибок, программу мож¬ но запустить в диалоговом режиме для отладки. С помощью TSO можно также просмотреть результаты счета пакетного задания и запустить пакетное задание на счет. 21.10 Управление данными С помощью средств управления данными осуществляется доступ к наборам данных (файлам) на устройствах ввода-вывода. Эти сред¬ ства обеспечивают буферизацию, планирование и выполнение опе¬ раций ввода-вывода. В MVS поддерживается много методов доступа и структур файлов. Возможна работа с файлами следующих структур: © Последовательная — записи следуют друг за другом; читаются и пишутся они в порядке размещения на носителе. @ Индексно-последовательная — записи логически упорядочены по ключам; для облегчения доступа по ключам заводятся индексы. ® С прямым (произвольным) доступом — для доступа к записи на устройстве прямого доступа пользователь должен задать адрес; запись может иметь любую нужную пользователю структуру. ® Библиотечная — несколько подфайлов размещаются в одном файле вместе с директорием, описывающим расположение под¬ файлов. Набор данных состоит из членов. Каждый член — это независимый последовательный подфайл. В файлах такой струк¬ туры обычно хранятся библиотеки программ, макроопределений и т. п. Для обращений к отдельным записям программы используют либо доступ с очередями, либо базисный доступ. При доступе с оче¬ редями для передачи данных в программе задаются макрокоманды GET и PUT. Мы говорим сейчас о последовательном доступе. Запи¬ си автоматически объединяются в группы в расчете на прогнозируе¬ мые запросы. Управление возвращается в выдавшую запрос про¬ грамму только после завершения операции ввода-вывода. При базисном доступе используются макрокоманды READ и WRITE. В любой момент можно обратиться к любой записи. Ника¬ ких прогнозов относительно будущих запросов не делается. Управ¬ ление возвращается в программу до завершения операции ввода- вывода. Программа с помощью явного опроса может проверить, за¬ вершена ли операция. Для обращения к файлам перечисленных выше структур приме¬ няются следующие методы доступа.
3G0 Часть 8 Примеры для изучения • BDAM (Basic Direct Access Method), базисный прямой метод доступа — записи считываются и записываются по их адресам на дисковых томах. • BSAM (Basic Sequential Access Method), базисный последователь¬ ный метод доступа — метод применим к последовательным или библиотечным файлам. Записи выстроены в последовательность, и единицей обмена является физический блок. • ВРАМ (Basic Partitioned Access Method), базисный библиотеч¬ ный метод доступа — с помощью этого метода в библиотечных файлах обновляются директории (для работы с данными приме¬ няют BSAM или QSAM). • QSAM (Queued Sequential Access Method), последовательный метод доступа с очередями — применим к последовательным и библиотечным файлам. Обеспечивает работу с логическими запи¬ сями и буферизацией. • ISAM (Indexed Sequential Access Method), индексно-последова¬ тельный метод доступа — этот метод применим только к индекс¬ но-последовательным файлам. Доступ может быть как последо¬ вательным (QISAM), так и прямым (BISAM). • VSAM (Virtual Storage Access Method), виртуальный метод до¬ ступа — метод применим только к файлам виртуальной памяти. Первые четыре метода доступа были разработаны для более ран¬ них операционных систем (MFT и MVT) и перенесены в MVS для совместимости. VSAM — это совершенно новый метод для систем с виртуальной памятью. В большинстве операционных систем фирмы IBM, разработанных специально для машин семейства 370,— это единственный метод доступа. Работая только с ним, пользователь получает возможность не перепрограммировать свои программы в связи с развитием операционной системы. Мы еще остановимся на методе VSAM. Телекоммуникационные средства позволяют операционной сис¬ теме взаимодействовать с удаленным пользователем. В MVS предо¬ ставляются следующие телекоммуникационные методы доступа. • ВТАМ (Basic Telecommunication Access Method), базисный теле¬ коммуникационный метод доступа — обеспечивает поддержку основных телекоммуникационных приложений. В нем исполь¬ зуются макрокоманды READ и WRITE. • ТСАМ (Telecommunication Access Method), телекоммуникацион¬ ный метод доступа — этот метод используется практически только в TSO. Он работает с очередями и образует интерфейс для написанных пользователями прикладных программ. Позволяет каждой прикладной программе иметь свою собственную обработ¬ ку ошибок, маршрутизацию сообщений и их редактирование. • VTAM (Virtual Telecommunication Access Method), виртуальный телекоммуникационный метод доступа — это, по сути, основной рабочий метод в системе SNA (System Network Architecture —
Гл. 21 MVS 301 архитектура сетевых систем) фирмы IBM, по крайней мере, в той ее части, которая касается хост-машин. Данные передаются либо макрокомандами SEND и RECEIVE (в режиме работы а либо макрокомандами READ и WRITE (в базисном режиме). Во VTAM функции, обычно выполнявшиеся хост- процессорами, перенесены в коммуникационные контроллеры. Например, для того, чтобы получить хорошее время ответа, нуж¬ но достаточно часто опрашивать терминалы. Опрос занимает значительную часть процессорного времени. Перенося опрос в контроллер, мы тем самым разгружаем процессор для другой работы. Во VTAM используются логические адреса термина¬ лов, что важно для больших сетей. К одному каналу может под¬ ключаться до 256 устройств. Во VTAM единственный адрес, который нужно задавать (не считая адресов локальных термина¬ лов) — это адрес самого коммуникационного контроллера. На рис. 21.6 показаны основные этапы, через которые проходит обработка запроса на ввод-вывод. Операция, которую нужно выпол¬ нить, задается в пользовательской программе. Система выполняет эту операцию, обрабатывает прерывания, возникающие при ее за¬ вершении, и передает соответствующую информацию о состоянии. Виртуальный метод доступа VSAM был разработан специально, как высокоэффективный метод для систем с виртуальной памятью. Он может работать с наборами данных следующих трех типов. • Упорядоченные по ключам записей — каждая запись имеет ключ. Загружаются записи в соответствии с упорядоченностью клю¬ чей. Новые записи вставляются на «свои» места. • Упорядоченные по поступлению записей—записи загружаются в набор данных последовательно по мере поступления. Новые записи попадают в конец набора данных. При занесении записи в набор данных VSAM возвращает относительный адрес байта этой записи. Пользователь в своей программе при этом может создать любой индекс, который обеспечит прямой доступ к записям. • С относительными номерами записей — записи загружаются в соответствии с их относительными номерами. Если относитель¬ ные номера присваивает VSAM, то новая запись попадает в ко¬ нец набора данных. Если же номера обрабатывает программа^ то новую запись можно добавить на свое место в соответствии с номером. Записи с относительными номерами занимают кадры фиксиро¬ ванной длины. Эти кадры нумеруются с 1 до числа записей в наборе данных. Занесение и выборка записей осуществляются по номерам кадров. Доступ к записям либо последовательный, либо прямой, но только по относительным номерам. Прямой доступ по относитель-
Прикладная программа Метод доступа Компоненты системы 1. Описывает набор дан¬ ных 2. Выдает макрокоманду OPEN для подготовки набора данных к работе 3. Обращается к методу доступа с запросами на ввод-вывод 9. Продолжает обработку после завершения опера¬ ции ввода-вывода 10. Выдает макрокоманду CLOSE, после окончания работы с набором данных 4. Формирует управ¬ ляющие блоки и ка¬ нальные программы 5. Выдает макро¬ команду ЕХСР для обращения к систем¬ ной компоненте 7. Ожидает заверше¬ ния операции. Поль¬ зовательская програм¬ ма ожидает заверше¬ ния, если использует¬ ся метод доступа с очередями 6. Формирует управляю¬ щие блоки, фиксирует страницы и транслирует канальные программы, планирует или запускает операции командой SIO и возвращает управление 8. Обрабатывает преры¬ вание по вводу-выводу, которое говорит о завер¬ шении операции, анали¬ зирует и передает инфор¬ мацию о состоянии опе¬ рации, возвращает управ¬ ление диспетчеру Рис. 21.6 Основные этапы, через которые проходит операция ввода-вывода. (С разрешения корпорации IBM.)
Гл. 21 MVS 303 ным номерам выполняется много быстрее прямого доступа по клю¬ чам. VSAM позволяет конструировать альтернативные индексы для наборов данных как упорядоченных по ключам, так и по поступле¬ нию записей. С помощью альтернативных индексов можно органи¬ зовать к одному набору данных доступ по нескольким путям и тем самым избавиться от необходимости хранить отдельные копии тех же данных для каждой прикладной задачи. 21.11 Менеджер реальной памяти Менеджер реальной памяти (RSM — Real Storage Manager) управляет использованием реальной памяти и отвечает за то, какие страницы переносятся между первичной памятью и устройствами хранения страниц. RSM получает указания от системного менеджера ресурсов. В первичной памяти находятся только используемые в данный момент страницы — все остальные хранятся на устройствах с прямььм доступом, и ими заведует менеджер вспомогательной па¬ мяти (ASM — Auxiliary Storage Manager). Чтобы переслать страни¬ цу из первичной памяти во вспомогательную или обратно, RSM обращается к ASM. Менеджер RSM выделяет страницам страничные кадры, беря их из пула свободных кадров, и соответственно преоб¬ разует адреса. Он также поддерживает пул путем выталкивания стра¬ ниц, а также путем использования страниц, освободившихся от за¬ кончившихся задач или освобожденных пользователем. Выполняя подкачки, RSM следит за размерами рабочих множеств. При необ¬ ходимости RSM позволяет выполнять задание на реальной памяти. В состав RSM входят служебные системные программы. Они обра¬ батывают прерывания по страничным отказам, операции виртуаль¬ ного ввода-вывода и включения (выключения) реальной памяти. 21.12 Менеджер вспомогательной памяти Менеджер вспомогательной памяти (ASM) отвечает за обмен стра¬ ницами между первичной памятью и устройствами прямого доступа. Передачи могут происходить постранично (и это страничные под¬ качки) или сразу для всей задачи (это подкачки по переключению задач, или свопинговые подкачки). ASIA работает со страничными наборами данных. В них нахо¬ дятся виртуальные страницы, не занимающие в данный момент страничных кадров в реальной памяти. В свопинговых наборах данных находятся страницы вытолкнутых задач. ASM ведет таблицу внешних страниц. Если требуется подкачать страницу в первичную память, то RSM находит свободный странич¬ ный кадр, a ASM по таблице внешних страниц отыскивает нужную страницу во внешней памяти. Если происходит обратный процесс
304 Часть 8 Примеры для изучения выталкивания, то ASM находит свободный кадр во внешней памяти, передает в него страницу из первичной памяти и заносит соответст¬ вующие элементы в таблицу внешних страниц. 21.13 Менеджер виртуальной памяти Менеджер виртуальной памяти (VSM — Virtual Storage Ma¬ nager) управляет использованием виртуальной памяти в рамках задачи. Каждая задача погружается в то, что называется адресным пространством и что создается во время инициализации управляю¬ щих блоков задачи. VSM управляет виртуальной памятью в преде¬ лах адресного пространства. На VSM лежит ответственность за удов¬ летворение запросов на память и за ее освобождение. С этой целью VSM, просматривая управляющие блоки в адресном пространстве, определяет, есть ли доступная виртуальная память, и, если есть, делает соответствующие пометки в управляющих блоках. Для удов¬ летворения запросов на реальную память менеджер виртуальной памяти обращается к RSM. 21.14 Менеджер системных ресурсов Менеджер системных ресурсов (SRM — System Resources Ma¬ nager) определяет, какая задача из всего множества активных задач получит доступ к ресурсам системы и с какой интенсивностью будет позволено задаче эти ресурсы потреблять. Принимая реше¬ ние, SRM преследует две основные цели: во-первых, он стремится распределять ресурсы в соответствии с требованиями в данном вы¬ числительном центре к времени отклика и к времени оборота (т. е. к параметрам IPS—Installation Performance Specification), во- вторых, он стремится оптимизировать использование ресурсов. Требования к производительности в вычислительном центре (ВЦ) сообщаются SRM через параметры инициализации, считываемые при запуске системы. SRM достигает сбалансированной загрузки ре¬ сурсов, либо увеличивая число выполняемых работ, либо выталки¬ вая работы (давая соответствующие рекомендации менеджеру реаль¬ ной памяти). Если, например, некоторая задача потребляет слишком много процессорного времени, ее можно вытолкнуть — и доступ¬ ность процессора для других задач возрастет. То же самое может случиться с задачей, которая слишком интен¬ сивно использует память или канал. SRM пытается сбалансировать нагрузку на каналы и устройства, рассредотачивая поступающие запросы. SRM ведет счетчики обращений к устройствам и при по¬ ступлении запросов на ресурсы выделяет устройства с минималь¬ ными значениями счетчиков. Проблему нехватки страничных кад¬ ров SRM решает тем, что выталкивает задачи из первичной памяти и приостанавливает запуск новых задач. Чтобы удовлетворить за¬ прос на память, SRM может «украсть» страницу у задачи. «Укра¬
Гл. 21 MVS 305 денная» страница исчезает из всех адресных пространств, пока не будет удовлетворен запрос. Кража страниц возможна только при поступлении запроса. Таким образом, в SRM принимаются решения по следующим вопросам. • Какие адресные пространства (задачи) следует втолкнуть в пер¬ вичную память и разрешить им конкурировать за ресурсы сис¬ темы. • Какие страницы и в какие моменты следует украсть. • Когда следует скорректировать приоритет задачи для диспетче¬ ризации. • Какие устройства следует выделить задаче. • Когда нужно приостановить инициализацию новых задач. В состав SRM входит • Управление SRM (SRM Control), которое определяет, какая функция должна выполняться, и передает управление соответст¬ вующей программе SRM. ® Менеджер рабочей нагрузки (Work-load Manager), который сле¬ дит за тем, как задачи используют ресурсы. От него поступают рекомендации, помогающие управлению SRM ограничить пот¬ ребление ресурсов пределами, заданными в IPS. • Менеджер ресурсов (Resourse Manager), который следит в мас¬ штабах всей системы за использованием каждого ресурса и оп¬ ределяет, какие ресурсы перегружены, а какие недогружены. Менеджер рабочей нагрузки измеряет интенсивность использо¬ вания ресурсов задачами в единицах обслуживания в секунду. Еди¬ ницы обслуживания вычисляются с учетом затраченного процессор¬ ного времени, активности ввода-вывода и занятых кадров реальной памяти. Скорость обслуживания — это число единиц обслуживания в единицу времени. Менеджер ресурсов состоит из следующих ос¬ новных компонент. • Управление памятью — эта компонента имеет дело с «кражей» страниц и предотвращением создания новых адресных прост¬ ранств. • Управление вводом-выводом — имеет дело со свопингом и рас¬ пределением устройств. • Управление процессором — имеет отношение к свопингу и кор¬ ректировке приоритетов диспетчеризации. • Управление ресурсами — связано с определением оптимального уровня мультипрограммирования. 21.15 Организация памяти После инициализации MVS структура памяти для всех задач выглядит одинаково (рис. 21.7). В памяти содержится программный код операционной системы, системные управляющие блоки, общие
306 Часть 8 Примеры для изучения области, управляющие блоки задач и код прикладных программ. В следующих ниже абзацах говорится о структуре и функциях этих областей. В области ядра располагаются некоторые из наиболее важных управляющих блоков системы. К ним относится системный вектор Л Индивидуальные адресные < пространства Локальная область сис¬ темных очередей и рабочих область планировщика Системная общая область Область системных очередей Подкачиваемая программная общая область Ядро Память прикладной программы Фиксированная програм¬ мная общая область Рис. 21.7 Распределение памяти в MVS. (С разрешения корпорации IBM.) связей (CVT — Communication Vector Table), в котором содержится адрес текущей задачи, адреса входов всех важных программ ядра и указатели на другие важные управляющие блоки. В области ядра находится значительная часть программного кода самой операцион¬ ной системы, например наиболее часто используемые программы- обработчики команд SVC. Над областью ядра лежит фиксированная программная общая область (FLPA — Fixed Link Pack Area), где содержатся все те мо¬ дули, которые нормально должны находиться в программной общей области (LPA), но не должны выталкиваться. В эту область следует помещать модули, постоянное присутствие которых в памяти су¬ щественно повышает производительность системы. Далее следует область пользовательских программ, рабочая область планировщика (SWA — Scheduler Work Area) и локальная область системных очередей (LSQA — Local System Queue Area). В SWA располагаются все относящиеся к заданию управляющие блоки. В LSQA содержатся те управляющие блоки, которые необ¬ ходимы для выполнения задачи, в частности таблицы сегментов и страниц, а также управляющий блок задачи (ТСВ —Task Control Block).
Гл. 21 MVS 307 В системной общей области (CSA — Common System Area) хра¬ нятся данные, которые нужны всем задачам. Это единственная об¬ ласть, доступная всем задачам в системе. Она используется для пе¬ редачи данных между задачами, выполняемыми в разных адресных пространствах. В области системных очередей (SQA — System Queue Area) находятся нужные самой системе очереди и таблицы. Эта область фиксирована в памяти и никогда не выталкивается. В ней хранят¬ ся таблицы страниц, относящиеся к областям самой системы и об¬ щей области. В подкачиваемой программной общей области (PLPA — Page¬ able Link Pack Area) располагаются всеобщесистемные программы и некоторые программы-обработчики SVC. Это реентерабельные программы, и их не нужно записывать во внешнюю память, когда приходится отдавать занятые ими страничные кадры другим про¬ граммам. В системах с памятью малого объема это заметно улучшает время ответа. На многих установках существуют специальные спис¬ ки самых употребимых программ, которые нужно хранить группой, с тем чтобы уменьшить подкачки в PLPA. Эти программы являются общими (разделяемыми) для всех задач в системе. Поиск модуля начинается в области FLPA, а затем продолжается в PLPA, если пользователь не задал другого пути поиска. Чем больше общих программ, тем меньше реальной памяти необходимо решаемым за¬ дачам. Популярный прием, применяемый на многих вычислитель¬ ных установках для снижения общих требований к памяти, состоит в размещении всех програМхМ TSO в PLPA. 21.16 Управление ресурсами Управление ресурсами является важным аспектом MVS, осо¬ бенно в тех случаях, когда задействуются мультипроцессорные ре¬ жимы. В MVT для защиты ресурсов от одновременного использова¬ ния задачами служит примитив ENQUEUE (поставить в очередь). Это, по существу, программный метод. И мы коротко на нем оста¬ новимся. 21.17 Замки Взаимоисключение корректировок информации одновременно по нескольким запросам достигается в системе за счет иерархии замков. Эта проблема встает в мультипроцессорных системах, в ко¬ торых две задачи — и даже две подзадачи одной задачи — могут выполняться одновременно. Замки в порядке старшинства перечис¬ лены на рис. 21.8. Задаче, захватившей замок, разрешается запраши¬ вать замок более высокого приоритета, но не более низкого по срав¬ нению с текущим замком — таким образом предотвращаются ту¬ пики в соответствии со стандартным способом выделения ресурсов по
308 Часть 8 Примеры для изучения Хавендеру. Глобальный замок распространяется на всю систему; локальный замок влияет только на одно адресное пространство. Зам¬ ки бывают двух типов: зацикливающие и откладывающие, Если про¬ цессор тестирует зацикливающий замок и обнаруживает, что он Класс замка Имя замка * Защищаемый ресурс •Тип замка Глобальный DISP ASM SALLOC IOSYNCH IOSCAT IOSUCB IOSLCH TPNCB TPDNCB TPACBDEB SRM Управляющие блоки диспетчера Управляющие блоки ASM Программы RSM и VSM Глобальные функции ввода-вывода Таблицы доступности каналов Управляющие блоки устройств Очереди логических каналов Управляющие блоки узлов VTAM Управляющие блоки узлов назначе¬ ния VTAM Блоки экстентов данных VTAM Алгоритмы и управляющие блоки SRM Зациклива¬ ющий CMS CMSEQDQ CMSSMF Средства межпространственных связей Средства межпространственных связей (ENQ/DEQ) Средства межпространственных связей (SMF) Отклады¬ вающий Локальный LOCAL Память адресного пространства и управляющие блоки * Замки перечислены в порядке старшинства от старших к младшим. Рис. 21.8 Иерархия системных замков в MVS. (С разрешения корпорации IBM.) закрыт, то единица работы, запросившая замок, приостанавливает¬ ся и непрерывно опрашивает замок, пока его не откроет другой про¬ цессор. После этого опрашивающий процессор получает управление над связанным с замком ресурсом. Если закрыт откладывающий за¬ мок, то запросивший его процессор переключается на другую еди¬ ницу работы.
Гл. 21 MVS 309 21.18 ENQUEUE — поставить в очередь Обеспечить последовательное использование ресурсов можно также при помощи примитива ENQUEUE. С его помощью програм¬ ма может запросить ресурс, и на время обладания этим ресурсом стать непрерываемой, в том смысле, что другие задачи, запросившие тот же ресурс, будут недиспетчеризуемыми. Это может приводить к тупикам, если выполняющимся задачам понадобятся услуги не- диспетчеризуемых задач. 21.19 RESERVE — захватить Примитив RESERVE аналогичен ENQUEUE, но применяется исключительно к общим (для нескольких машин) дискам. По этому примитиву включается аппаратный замок на весь том, так что ни один другой процессор не сможет к нему обратиться. В процессоре, выдавшем RESERVE, происходит то же, что и при выдаче ENQUEUE. Здесь снова возможны тупики. Если два процессора захватят каждый по тому, а затем каждый выдаст запрос на том, уже захваченный другим процессором, то оба будут ждать, пока одна из задач не будет выброшена. 21.20 Задачи и запросы обслуживания В MVS существует два вида диспетчеризуемых единиц работыл запрос обслуживания и задача. Запрос обслуживания — это едини¬ ца работы, специфичная именно для MVS. Она позволяет увеличить параллелизм в мультипроцессорных установках и снизить пусковые затраты для малых работ. Большой выигрыш от этого может полу¬ чить программа с независимыми единицами работы. Запрос обслу¬ живания— это меньшая, чем задача, единица работы, и ее прио¬ ритет при диспетчеризации более высок. Она может быть запущена на любом адресном пространстве — следовательно, может служить средством взаимодействия между задачами. Примером использова¬ ния запросов обслуживания может служить обработчик прерыва¬ ний ввода-вывода; когда собрана достаточная информация, он пла¬ нирует запрос обслуживания и тем самым освобождается для обра¬ ботки новых прерываний. Это увеличивает интенсивность исполь¬ зования каналов и устройств ввода-вывода. Другим видом единиц работы является задача. Создание задачи в системе связано со значительно большими накладными расходами, и это, собственно, и было причиной введения запросов обслужива¬ ния. На самом деле все задачи являются подзадачами главного пла¬ нировщика и подсоединяются к нему при помощи соответствующих структур управляющих блоков. Пакетные работы подсоединяет 'инициатор — задача, которая запускает задания. Есть главная задача (mother task) над инициатором, так же как и над задачей дам¬
310 Часть 8 Примеры для изучения па и пакетной задачей, —это управляющая задача раздела (Region Control Task). Число подзадач в прикладной программе может быть любым. Программа может увеличивать и уменьшать приоритеты диспетчеризации своих подзадач в пределах адресного пространст¬ ва. Очень удобны подзадачи, если они не зависят от главной задачи, поскольку в этом случае они могут выполняться в то время, пока главная задача находится в состоянии ожидания. В мультипроцес¬ сорной машине несколько задач могут выполняться одновременно. 21.21 Диспетчер Диспетчер — это часть супервизора, которая предназначена следить за тем, чтобы процессоры были заняты выполнением наибо¬ лее приоритетных единиц работы из числа имеющихся. Очередь диспетчеризации формируется в SRM на основе требований, предъяв¬ ляемых в данном ВЦ ко времени ответа для различных видов работ. Высший приоритет диспетчер предоставляет так называемым «спе¬ циальным выходам» типа сменить процессор (изменить состояние процессора с доступен на недоступен или наоборот) или восстано¬ вить процессор (вывести логически процессор из состава системы или попытаться нейтрализовать случайный сбой). После специаль¬ ных выходов диспетчер предоставляет приоритет глобальным за¬ просам обслуживания, затем локальным запросам обслуживания, а затем самым приоритетным задачам. 21.22 Мультипроцессорная работа Мультипроцессорность позволяет увеличить производитель¬ ность, надежность, готовность системы к работе и простоту обслу¬ живания вычислительной установки. Мультипроцессоры (МР) и присоединенные процессоры (АР — процессоры без каналов) расширяют память и вычислительные воз¬ можности существующих установок. При наличии нескольких про¬ цессоров MVS получает возможность запускать несколько работ одновременно. При этом либо можно запустить несколько разных задач, либо несколько подзадач одной задачи. Операционная си¬ стема при этом остается одной. Для двухпроцессорных систем коэффициент ускорения обычно лежит между 1.8 и 1.9. Для взаимодействия процессоров друг с другом служит коман¬ да SIGP (signal processor — сигнал процессору), С их помощью один процессор информирут другой о необходимости выполнить некото¬ рое действие. Процессор, которому адресована такая команда, декодирует ее и выполняет указанное в ней действие. Естественно, что при мультипроцессорной работе появляется опасность обновления одного и того же слова в памяти несколькими программами сразу. Поэтому существуют две команды, Compare and Swap (сравнение с обменом) и Compare Double and Swap (срав-
Гл. 21 MVS 311 некие с обменом двойное), позволяющие этой опасности избежать. Применяя эти команды, программист может быть уверен, что не¬ которое обновляемое поле не обновляется в тот же момент какой-то другой программой. Это обеспечивается за счет устранения парал¬ лелизма при обращениях к слову (или двойному слову) в памяти. Если команда начала выполняться, и выборка из ячейки памяти произведена, ее содержимое не сможет изменить другой процессор, пока команда не завершится. Для правильного применения этой команды программа сначала должна сохранить изменяемое значе¬ ние в регистре, а затем дать команду Compare and Swap. Если сох¬ раненное значение окажется равным тому, что в ячейке, значение в ячейке будет обновлено. Если же сравниваемые значения окажут¬ ся различными, то значение в ячейке загружается в регистр сохране¬ ния и не изменяется в памяти. Поскольку при этом регистр сохра¬ нения перезагружается, пробу изменения можно зациклить. Свод¬ ка различных приказов, которые можно задать в команде SIGP, приведена на рис. 21.9. Процессоры вступают во взаимодействие, когда • производится инициализация системы, • диспетчеризуется единица работы, • запускается операция ввода-вывода, • дается стоп и рестарт процессорам при реконфигурации, • делается попытка восстановления на альтернативном процес¬ соре. При инициализации системы с тесно связанными процессорами MVS может определить при помощи команды «SIGP опрос состоя¬ ния», подключен ли процессор к системе или нет. Если он подклю¬ чен (online), то MVS может запустить его командой «SIGP старт» (которая вызывает те же действия, что и нажатие кнопки «старт» на операторской консоли). Когда один процессор не имеет работы и находится в состоянии ожидания, то другой процессор может «потрясти его за плечо», информируя о поступлении новой работы. Один процессор может «потрясти за плечо» другой процессор и в том случае, когда процессу в первом процессоре нужно иницииро¬ вать операцию ввода-вывода на устройстве, подсоединенном ко вто¬ рому процессору. При этом первый процессор может адресовать второму процессору команду «SIGP внешний вызов». При реконфигурации системы один процессор может остановить другой процессор при помощи команды «SIGP стоп». Остановлен¬ ному процессору можно дать рестарт из другого процесса командой «SIGP рестарт». Эти команды эквивалентны последовательному на¬ жатию на кнопки «стоп» и «рестарт» на консоли соответствующего процессора. Межпроцессорные взаимодействия играют особо важную роль при операциях восстановления. Один процессор может заставить
Шести, код Приказ Пояснение 01 Опрос СОСТОЯНИЯ CPU, которому адресована команда, предо¬ ставляет свое состояние запросившему CPU 02 Внешний вызов В CPU, которому адресована команда, воз¬ буждается внешнее прерывание «внешний вы¬ зов» 03 Экстренный сигнал В CPU, которому адресована команда, воз¬ буждается внешнее прерывание «экстренный сигнал» 04 Старт CPU, которому адресована команда, перево¬ дится в состояние «работа» 05 Стоп CPU, которому адресована команда, выпол¬ няет функцию «стоп» 06 Рестарт CPU, которому адресована команда, выпол¬ няет функцию «рестарт» 07 Начальный про¬ граммный сброс CPU, которому адресована команда, выпол¬ няет начальный программный сброс 08 Программный сброс CPU, которому адресована команда, выпол¬ няет программный сброс 09 Стоп с сохранением состояния CPU, которому адресована команда, выпол¬ няет функцию «стоп», а затем функцию со¬ хранения состояния 0А Загрузка начальной микропрограммы CPU, которому адресована команда, выпол¬ няет сброс начальной программы, а затем инициирует функцию загрузки начальной ми¬ кропрограммы, (т. е. выполняются те же дей¬ ствия, что и при ручной загрузке начальной микропрограммы) ОВ Начальный сброс CPU В CPU, которому адресована команда, выпол¬ няется начальный сброс CPU ОС Сброс CPU В CPU, которому адресована команда, выпол¬ няется сброс CPU Рис. 21.9 Приказы в команде SIGP (сигнал процессору). (С разрешения кор¬ порации IBM.)
Гл. 21 MVS 313 другой процессор выполнить некоторое действие немедленно, если адресует ему команду «SIGP экстренный сигнал». Такую команду может выдать сбившийся процессор, чтобы заставить другой про¬ цессор провести действия по восстановлению с помощью альтерна¬ тивного CPU. Работающий процессор может сбросить зависшие в другом процессоре операции ввода-вывода. Он также может выдать сбившемуся процессору команду остановиться и записать состоя¬ ние. 21.23 Вопросы производительности Наличие лишних, неиспользуемых, скрытых ресурсов может приводить к бессмысленным дополнительным закупкам оборудова¬ ния. Реально, не все задания, интерактивные пользователи и сис¬ темные задачи должны получать равную долю вычислительных ре¬ сурсов. Пользователи хотят, чтобы система в рамках своих возмож¬ ностей отвечала им быстро. Например, пользователь TSO хотел бы, чтобы ему отвечали быстро при тривиальных транзакциях, однако, если пользователь интерактивно выполняет задание, которое лучше было бы запустить в пакет, его транзакции следовало бы произво¬ дить со скоростью выполнения пакетных заданий. Время ответа на запросы интерактивных пользователей обычно бывает самым корот¬ ким в системе (не говоря о запросах самой операционной системы) по крайней для тривиальных транзакций. Система MVS при помо¬ щи SRM может гарантировать хорошее время ответа для данного типа транзакций, задавая пользователю определенный приоритет в очереди диспетчера. Однако, если пользователь TSO поглощает больше причитающейся ему доли ресурсов, SRM снижает его приоритет, уменьшает его ресурсы и увеличивает время ответа. Ре¬ сурсы, поглощаемые каждым конкретным пользователем, находят¬ ся под полным контролем SRM. Он может даже задерживать ответ, чтобы пользователь не привыкал к быстрому ответу на слабо загру¬ женной системе. Таким образом, гарантируется определенная ста¬ бильность времен ответа. 21.24 Мониторинг В MVS встроено несколько механизмов мониторинга над рабо¬ чими единицами в системе. Эти механизмы облегчают отладку, собирают полезную информацию для оценки производительности системы и регистрируют использование ресурсов. Некоторые из средств мониторинга в MVS мы уже затрагивали. В этом разделе мы остановимся на не упоминавшихся ранее средствах. Развитые средства дампинга в MVS позволяют сделать «момен¬ тальный снимок» ячеек виртуальной памяти системы. Так называе¬ мый SNAP-дамп делает «снимок» виртуальной памяти по запросу самого работающего процесса. Так называемый ABEND-дамп запрашивается процессом в том
314 Часть 8 Примеры для изучения случае, когда процесс хочет кончить обработку в связи с появлением неисправимой ошибки. SVC-дамп представляет собой эквивалент SNAP-дампа, но при¬ меняется к системным программам. Автономный дамп запускается оператором при отказах самой MVS. Он выводит всю реальную память и части виртуальной памяти. В MVS встроены гибкие средства трассировки событий в системе. К ним относятся системная трасса, главная трасса и универсаль¬ ные средства трассировки (Generalized Trace Facility — GTF). Все они перехватывают системные события с помощью крючков. Крю¬ чок — это последовательность команд, которая информирует ме¬ ханизм трассирования о факте события, перехватывает относящиеся к событию данные и делает их доступными для механизма трассиро¬ вания. Системная трасса записывает внешние прерывания, запуски ввода-вывода, прерывания по завершению ввода-вывода, SVC- прерывания и события диспетчеризации. Универсальные средства трассировки (GTF) трассируют все события, входящие в системную трассу, и дополнительно большое число других событий. GTF может работать в режиме внутренней регистрации, регистрируя события в виртуальной памяти, либо же — в режиме внешней регистрации, при котором события записы¬ ваются также на ленту или диск. Главная трасса отслеживает трафик консоли и другие внешние системные действия типа установки томов, выдачи состояний, за¬ просов со стороны оператора и ответов системы на эти запросы. Эта информация бывает очень полезна при поиске неисправностей, осо¬ бенно связанных с устройствами ввода-вывода. Дампы регистрируют состояние памяти на момент ошибки. Трас¬ сы предоставляют хронологию событий в системе. В MVS оба эти диагностические средства используются в механизме локализации ошибок SLIP (Serviceability Level Indication Processing). Система SLIP обеспечивает конкретные диагностические действия, такие, как дампинг или трассировка, выполняемые при определенных со¬ бытиях типа программных прерываний или обращений к памяти. По терминологии SLIP спецификация события, которое должно от¬ слеживаться, вместе с действием, которое нужно будет выполнить, когда событие произойдет, называется ловушкой. Если ловушка включена, действие на самом деле осуществляется при наступлении события. Если же ловушка выключена, то система даже не следит за событием. Ловушки могут включаться и выключаться при изме¬ нениях состояния системы. Помимо всех упомянутых средств мониторинга, MVS ведет ре¬ гистрацию ошибок. Она фиксирует полную историю (от запуска до закрытия системы), все аппаратные ошибки, ошибки в системном программном обеспечении и некоторые другие события в системе. Эта история записывается в резидентные журнальные наборы данных.
Гл. 21 MVS 315 21.25 Выводы MVS — это большая и сложная операционная система. С момен¬ та выпуска первых версий MVS фирма IBM вносила в систему мно- го усовершенствований, в основном, повышая производительность и надежность. Как правило усовершенствования заключались в сок¬ ращении длины пути для часто выполняемых функций, в переносе часто работающих програМхМ в микрокод и в улучшении алгоритмов обработки. Вычислительные центры испытывают трудности с отслежива¬ нием новых версий MVS. Хорошие системные программисты и опе¬ раторы с опытом работы на MVS крайне дефицитны. Смягчить остро¬ ту этих проблем может идея машины-Hydra. Машина-Hydra — это процессор, расположенный в удаленном пункте, которым управляет оператор, находящийся в некотором центральном пункте. Оператор управляет удаленным процессором так, как будто этот процессор находится в центральном пункте. С одной консоли в центральном пункте можно управлять несколькими удаленными процессорами. Из-за нехватки квалифицированного персонала и сложности операционной системы MVS будет все больше функций переноситься в микропрограммы. Системные программисты для внесения изме¬ нений в систему будут пользоваться выходными точками. Выход¬ ные точки — это уже проверенный способ внесения изменений в JES2. Более или менее очевидно, что фирма IBM отказалась от ре¬ волюционных переходов (от 1401 к 360, от DOS к OS) в пользу эво¬ люционного пути развития. Необходимость в эффективной пакетной обработке будет сохра¬ няться всегда. Поэтому MVS будет в течение многих лет находить применение как операционная система для мощных процессоров фирмы IBM. Вообще говоря, фирма IBM могла бы слить MVS и VM. Но, скорее всего, две операционные системы будут сосущество¬ вать как независимые, поскольку вычислительные центры не склон¬ ны переходить с одной на другую. Система VM — прекрасный ин¬ струмент и для тестирования новых версий операционных систем, и для перехода на новые операционные системы, поскольку позволя¬ ет одновременно работать как на новых, так и на старых системах. MVS позволяет получить высокую пропускную способность при сосуществовании диалоговой и пакетной обработки. Следующая гла¬ ва посвящена детальному рассмотрению VM. Заключение MVS — вершина в ряду операционных систем фирмы IBM для мощных машин. Ее родоначальницей является OS/360, анонсирован¬ ная в 1964 г. MVS — это рассчитанный на виртуальную память преемник мультипрограммной системы MVT с переменным числом
316 Часть 8 Примеры для изучения разделов и реальной памятью. При создании MVS ставились цели получить высокую производительность, надежность, готовность и совместимость для крупных вычислительных установок. MVS работает на машинах фирмы IBM и совместимых сними ма¬ шинах с виртуальной адресацией. В моделях с 24-битовым адресом адресное пространство составляет 16 777 216 байт. При 31-битовом адресе пространство увеличивается до двух гигабайт. Адреса бывают абсолютные, реальные и виртуальные. Механизм динамического преобразования адресов превращает виртуальные адреса в реальные. Префиксация, преобразующая реальные адреса в абсолютные, используется в мультипроцессорных конфигурациях. Процессоры и каналы работают с физической памятью по абсолют¬ ным адресам. При защите по ключам с помощью ключей памяти идентифици¬ руются блоки памяти, к которым может обращаться выполняемый процесс. Сегментная защита управляется информацией в таблицах сегментов. Защита младших адресов держит под охраной важную информацию в ячейках 0—511. В механизме прерываний используется текущее, старое и новое слово состояния программы (PSW). Когда происходит прерывание, текущее PSW сохраняется в качестве старого PSW для данного ти¬ па прерываний и загружается новое PSW, содержащее адрес про¬ граммы обработки прерываний данного типа. После завершения обработки прерывания текущее PSW снова загружается из старого PSW, и управление возвращается в прерванную единицу работы, если она оперативно не переключаема; в противном случае диспетчер переключает CPU на следующий готовый к работе процесс. Супервизор создает диспетчеризуемые единицы работы, осущест¬ вляет диспетчеризацию и обеспечивает последовательное использо¬ вание ресурсов. Главный планировщик ответствен за инициализа¬ цию системы и ответы на команды, поступающие от оператора. Под¬ система ввода заданий получает поступающие задания и печатает и/или перфорирует результаты. Она обеспечивает планирование по предельному сроку и при определении приоритетов учитывает ста¬ рение заданий. Средства системного менеджмента и измерений позволяют со¬ бирать статистические данные о работе системы. TSO предоставляет пользователю средства интерактивной разработки программ. Управление данными обеспечивает работу с наборами данных на устройствах ввода-вывода. Оно буферизует, планирует и выпол¬ няет операции ввода-вывода. В MVS поддерживаются файлы раз¬ личных структур, в частности последовательные, в которых записи заносятся и выбираются в соответствии с физической упорядочен¬ ностью на носителе; индексно-последовательные, в которых записи упорядочены по возрастанию ключей (для упрощения доступа по ключам система формирует индексы); прямые, в которых пользо¬ ватель обращается к записи, задавая непосредственно ее адрес на
Гл. 21 MVS 317 диске; библиотечные, в которых несколько последовательных под¬ файлов в пределах файла описываются директорием. В методах доступа с очередями применяются макрокоманды GET и PUT; записи выбираются последовательно, прогнозируются будущие обращения. В базисных методах доступа применяются макрокоманды READ и WRITE, обращение к записи может проис¬ ходить в любой момент, будущие обращения не прогнозируются. В MVS предоставляются следующие методы доступа: BDAM —• базисный прямой, BSAM — базисный последовательный, ВРАМ — базисный библиотечный, QSAM — последовательный с очередями, ISAM — индексно-последовательный, QISAM — индексно-последо¬ вательный с очередями, BISAM — базисный индексно-последова¬ тельный, VSAM — виртуальный. Предоставляются также три теле¬ коммуникационных метода доступа, а именно ВТАМ — базисный телекоммуникационный, ТСАМ — телекоммуникационный и VTAM — виртуальный телекоммуникационный, который исполь¬ зуется в сети SNA фирмы IBM. VSAM — это метод доступа с богатыми возможностями, в кото¬ ром допускается работа с файлами трех типов: упорядоченными по ключам записей, упорядоченными по поступлению записей и упоря¬ доченными по относительным номерам записей. Менеджер реальной памяти (RSM) управляет использованием реальной памяти и формирует заказы на перемещение страниц меж¬ ду первичной и вспомогательной памятью. Перемещение страниц осуществляет менеджер вспомогательной памяти (ASM). Страницы могут перемещаться по одной (страничная подкачка) или сразу для всей задачи (свопинг). Менеджер виртуальной памяти (VSM) управ¬ ляет виртуальной памятью каждой задачи. Менеджер системных ресурсов (SRM) определяет, какая задача из всего множества активных задач получит доступ к ресурсам сис¬ темы и с какой интенсивностью будет разрешено задаче эти ресур¬ сы потреблять. SRM преследует две главные цели: оптимальное ис¬ пользование ресурсов и распределение ресурсов в соответствии с требованиями ко времени ответа и времени оборота задач. Память в MVS разделена на области, в которых содержится код операционной системы, системные управляющие блоки, общая ин¬ формация, управляющие блоки задач и код прикладных программ. В ядре находятся самые важные системные управляющие блоки и большинство часто выполняемых программ операционной системы, в частности большинство обработчиков SVC. В фиксированной общей области размещаются неподкачиваемые модули. Рабочую область планировщика занимают управляющие блоки, связанные с задания¬ ми. В локальной области системных очередей хранятся управляю¬ щие блоки задач и их таблицы сегментов и страниц. Системная об¬ щая область служит для передачи данных между задачами, работаю¬ щими на разных адресных пространствах. В области системных очередей содержатся очереди и таблицы самой системы; они не подка¬
318 Часть 8 Примеры для изучения чиваются. Подкачиваемая общая программная область — это об¬ ласть, где размещаются общесистемные программы. Поскольку все они реентерабельные, их не нужно выталкивать во внешнюю память, если тот или иной страничный кадр приходится занять другой про¬ граммой. В MVS защиту различных системных страниц от одновременного обновления обеспечивают замки. Наличие большого числа замков позволяет достичь более высокой степени параллелизма. Замки об¬ разуют иерархию. Задачам разрешается захватывать замки и за¬ прашивать замки, более старшие по иерархии. Это предотвращает тупики в соответствии с методохм Хавендера. Замки бывают глобаль¬ ные (распространяющиеся на всю систему) и локальные (относящие¬ ся к одному адресному пространству). На зацикливающем замке, если он занят, процесс зацикливается в ожидании, когда замок будет освобожден; на откладывающем замке, если он занят, процесс теряет CPU. В MVS существует два вида диспетчеризуемых единиц работы. Задачи соответствуют процессам в других, не «IBM-овских», сис¬ темах. Создание задачи связано с большими накладными расходами. Чтобы достичь более глубокого параллелизма работы без чрезмер¬ ных накладных расходов, разработчики MVS ввели запросы обслу¬ живания. Запросы обслуживания соответствуют меньшим единицам работы и при диспетчеризации получают более высокий приоритет по сравнению с задачами. В MVS поддерживается мультипроцессорная работа с мульти¬ процессорами (МР) и присоединенными процессорами (АР). Для вза¬ имодействий между процессорами служит команда SIGP (сигнал процессору). Команда Compare and Swap (сравнение с обменом) позволяет избежать одновременного обновления ячейки двумя процессорами. Межпроцессорные взаимодействия возникают по многим различным поводам, в частности при инициализации систе¬ мы, диспетчеризации, вводе-выводе, реконфигурации и восстанов¬ лении. В MVS предусмотрены разнообразные возможности выдачи дам¬ па. Это SNAP-дамп, ABEND-дамп, SVC-дамп и автономный дамп. Средства трассирования включают системную трассу, главную трассу и универсальные средства трассировки. Для перехвата ин¬ формации о системе применяются так называемые крючки. Крю¬ чок — это последовательность команд, которая сигнализирует ме¬ ханизму трассирования о факте события, перехватывает относящие¬ ся к событию данные и передает их механизму трассирования. Возможности дампа и трассирования используются в системе локализации ошибок SLIP, пользующейся ловушками. Ловушка — это спецификация события, за которым нужно следить, вместе с действием, которое нужно выполнить, если событие произойдет. Созданная ловушка может включаться и выключаться в соответст¬ вии с изменениями тех или иных условий.
Гл. 21 MVS 319 Персонал с опытом работы на MVS крайне дефицитен. Идея машины-Hydra может снизить остроту этой проблемы, позволяя уп¬ равлять удаленными системами из центрального пункта. Есть некоторые сомнения в том, что MVS останется вершиной в линии операционных систем фирмы IBM. Сильную конкуренцию ей оказывает VM — другая большая операционная система той же фирмы. Поскольку каждой из этих систем присущи свои достоинст¬ ва, маловероятно, что пользователи пожелают перейти с одной на другую. VM рассматривается в следующей главе. Терминология абсолютный адрес (absolute address) аварийный останов (abend) автономный дамп (stand-alone dump) адресное пространство (address space) альтернативный индекс (alternate index) архитектура сетевых систем (System Network Architecture SNA) асимметричная многомашинная система (Asimmetric Multiproces¬ sing System ASP) базисный библиотечный метод доступа (Basic Partitioned Access Method В PAM) базисный индексно-последовательный метод доступа (Basic Indexed Sequential Access Method BISAM) базисный метод доступа (basic access technique) базисный последовательный метод доступа (Basic Sequential Ac¬ cess Method BSAM) базисный прямой метод доступа (Basic Direct Access Method BDAM) базисный телекоммуникационный метод доступа (Basic Telecommu¬ nications Access Method BTAM) библиотечный файл (Partitioned file organization) буфер быстрого преобразования адресов (Translation Lookaside Buffer TLB) вектор связи (Communication Vector Table CVT) виртуальные адреса (virtual addresses) виртуальный последовательный метод доступа (Virtual Sequential Access Method VSAM) виртуальный телекоммуникационный метод доступа (Virtual Te¬ lecommunications Access Method VTAM) включение ловушки (enable a trap) выключение ловушки (disable a trap) главная трасса (Master Trace) главный планировщик (Master Scheduler) глобальный замок (global lock) динамическое преобразование адресов (Dynamic Address Trans¬ lation DAT)
320 Часть 8 Примеры для изучения дисковая операционная система DOS (Disk Operating System DOS) диспетчер (dispatcher) единица обслуживания (service unit) загрузка начальной программы (Initial Program Load IPL) задача (task) задача связи (Communication Task) замок (lock) запрос обслуживания (service request) захватить (reserve) зацикливающий замок (spin lock) защита младших адресов (low-address protection) защита по ключу (key protection) защита сегментов (segment protection) иерархия замков (hierarchy of locks) индексно-последовательный метод доступа (Indexed Sequential Ac¬ cess Method ISAM) индексно-последовательный метод доступа с очередями (Queued In¬ dexed Sequential Access Method QISAM) индексно-последовательный файл (index sequential file organization) инициатор (initiator) ключевой последовательный набор данных (key-sequenced data set) команда «сигнал процессору» SIGP (Signal Processor instruction) команда «сравнение с обменом» (Compare and Swap instruc¬ tion) команда ENQUEUE (поставить в очередь) (Enqueue) кража страницы (page stealing) ловушка (trap) локальная область системных очередей LSQA (Local System Queue Area LSQA) локальный замок (local lock) менеджер виртуальной памяти (Virtual Storage Manager VSM) менеджер вспомогательной памяти (Auxiliary Storage Manager ASM) менеджер рабочей нагрузки (work-load manager) менеджер ресурсов (resource manager) менеджер реальной памяти (Real Storage Manager RSM) менеджер системных ресурсов (System Resources Manager SRAI) метод доступа (access methods) методы доступа с очередями (queued access techniques) мультипрограммирование с переменным числом задач (Multipro¬ gramming with a Variable number of Tasks MVT) мультипроцессор (Multiprocessor MP) набор данных (data set) набор данных для свопинга (swap data set) набор данных с номерами записей (relative record data set) набор данных, упорядоченный по поступлению записей (entry-se¬ quenced data set) область системных очередей (System Queue Area SQA)
Гл. 21 MVS 321 общая системная область (Common System Area CSA) оперативно непереключаемая единица работы (nonpreemptive unit of work) оперативно переключаемая единица работы (preemptive unit of work) операция свопинга (swapping operation) организация (структура) файла (file organization) откладывающий замок (suspend lock) относительный адрес байта (relative byte address) параметры производительности вычислительной установки IPS (Installation Performance Specification) планирование по предельному сроку (deadline scheduling) планировщик (scheduler) подкачка (paging operation) подкачиваемая программная общая область PLPA (Pageable Link Pack Area) последовательный метод доступа с очередями QSAM (Queued Se¬ quential Access Method) последовательный файл (sequential file organization) потрясти за плечо (shoulder tap) префиксация (prefixing) префиксируемая область памяти (Prefixed Storage Area PSA) присоединенный процессор (Attached Processor AP) программы восстановления функционирования (Functional Reco¬ very Routines FRR) рабочая область планировщика (Scheduler Work Area SWA) разделение времени (Timesharing Option TSO) реальный адрес (real address) система ввода заданий 2 (Job Entry Subsystem 2 JES2) система ввода заданий 3 (Job Entry Subsystem 3 JES3) система виртуальных последовательных файлов (virtual sequential file system) система с несколькими виртуальными памятями (Multiple Virtual Storage MVS) система управления базами данных (Information Management Sys¬ tem IMS) системная трасса (System Trace) системные измерительные средства (System Activity Measurement Facility) системный менеджмент (System Management Facility) скорость обслуживания (service rate) средства локализации ошибок (Serviceability Level Indication Processing SLIP) старение (priority aging) страничное множество данных (page data set) страничный кадр (page slot) супервизор (supervisor) •1 L K? 584
322 Часть 8 Примеры для изучения счетчики обращений (use counts) телекоммуникационный метод доступа (Telecommunication Access Method ТСАМ) точки выхода (exit points) универсальные средства трассировки (Generalized Trace Facility) управление данными (Data Management) управление SRM (SRM Control) управляющая задача раздела (Region Control Task) файл с прямым доступом (direct access file organization)’ фиксированная общая программная область FLPA (Fixed Link Pack Area) хьюстоновская автоматическая приоритетная спулинговая система HASP (Houston Automatic Spooling Priority system) ядро (nucleus) ABEND-дамп (ABEND dump) OS/360 OS/SVS (система с одной виртуальной памятью) (Single Virtual Sto¬ rage OS/SVS) SNAP-дамп (SNAP dump) SVC-дамп (SVC dump) Упражнения 21.1 Система MVS предназначена для очень больших компьютеров, Чем она в связи с этим отличается от систем типа UNIX и VAX? 21.2 Перечислите черты MVS, способствующие повышению надежности, готов¬ ности и простоте обслуживания. 21.3 Почему различные системные замки в MVS образуют иерархию? Чем отли¬ чаются зацикливающие и откладывающие замки? Ресурсы какого типа выгоднее защищать зацикливающими замками, а какого — откладывающими? 21.4 В чем разница между абсолютными, реальными и виртуальными адресами? 21.5 Рассмотрите каждую из следующих схем защиты памяти: а) по ключу s б) сегментов, в) младших адресов. 21.6 Система MVS спроектирована в расчете на большие вычислительные уста¬ новки, отвечающие высоким требованиям к обработке данных. Назовите те черты MVS, которые особенно полезны в таких условиях. 21.7 В чем различие между методами доступа с очередями и базисными мето¬ дами доступа? 21.8 Опишите главные этапы обработки операций ввода-вывода в MVS. 21.9 Назовите типы наборов данных, которые можно обрабатывать методом VSAM. 21.10 В приложениях каких типов лучше всего обращаться к записям по их относительным номерам? 21.11 Опишите, как происходит преобразование виртуальных адресов под уп¬ равлением MVS.
Гл. 21 MVS 323 21.12 Кратко опишите структуры файлов, которые поддерживаются в MVS. 21.13 Какие телекоммуникационные методы доступа поддерживаются в MVS? 21.14 Сравните две диспетчеризуемые единицы работы в MVS, а именно запрос обслуживания и задачу. В большинстве других операционных систем применяется только одна единица. Почему разработчики MVS избрали такой уникальный подход? 21.15 Какого типа решения принимает SRM? 21.16 Опишите функции, выполняемые каждой из следующих компонент SRM: а) управление SRM, б) менеджер рабочей нагрузки, в) менеджер ресурсов. 21.17 Какого типа программы и данные хранятся в каждой из следующих об¬ ластей памяти MVS: а) ядро, б) фиксированная общая программная область^ в) рабочая область планировщика, г) локальная область системных очередей, д) общая системная область, е) область системных очередей, ж) подкачиваемая общая программная область? 21.18 Как используется в MVS команда сигнал процессору (SIGP) в каждой из следующих встречающихся при мультипроцессорной работе ситуаций: а) инициализация системы, б) диспетчеризация единицы работы, в) запуск операции ввода-вывода, г) реконфигурация системы, д) попытка восстановления на альтернативном CPU? 21.19 Каковы функции каждого из следующих средств трассировки а) системная трасса, б) главная трасса, в) универсальное средство трассировки? 21.20 Как применяется каждый из следующих видов дампа: а) SNAP-дамп, б) АВ EN D-дамп, в) SVC-дамп, г) автономный дамп. 21.21 Каково назначение механизма локализации ошибок SLIP в MVS? Что такое ловушка? Что дает нам возможность включать и выключать ловушки? 21.22 При каких обстоятельствах инженер по ремонту оборудования может при¬ бегнуть к файлам регистрации ошибок? 21.23 Поясните идею Hydra. Литература (Au81) Auslander М. A., Larkin D. С., Scherr A. L.,- «The Evolution of the MVS Operating System», IBM Journal of Research and Development, Vol. 25, No, 5, 1981, pp, 471—482, 11*
324 Часть 8 Примеры для изучения ()3е78) Beretvas Т., «Performance Timing in OS/VS2 MVS», IBM Systems Journal^ Voi. 17, No. 3, 1978-, pp. 290—313. (Co77) Considine J. P.; Myers J. J., «MARC: MVS Archival Storage and Recovery Program»^ IBM Systems Journal, Vol. 16, No. 4; 1977, pp. 378—397. (Ly74) Lynch H. W., PageJ.B.; «The OS/VS2 Release 2 System Resources Manager», IBM Systems Journal, Vol. 13, No. 4, 1974, pp. 274—291. (Sc73) Scherr A. L., «Functional Structure of IBM Virtual Storage Operating Systems, Part II: OS/VS2-2 Concepts and Philosophies», IBM Systems Journal, Vol. 12; No. 4, 1973, pp. 382—400. (Si78) Simpson R. O., Phillins G. H., «Network Job Entry Facility for JES2»; IBM Systems Journal, Vol. 17, No. 3, 1978, pp. 221—r240. (Wi78) Withington F. C.; «IBM’s Future Large Computers» Datamation, July 1978, pp. 115—120. Публикации IBM В приведенных ниже работах описываются различные аспекты системы MVS. © OS/VS2 Systems Logic Library; Volumes 1—7, SY28—0713 to SY28—0720. © OS/VS2 MVS System Programming Library: Initialization and Tuning Guide, GC28—0681. © OS/VS2 Systems Programming Library: Supervizor, GC28—0628. © OS/VS2 MVS Performance Notebook, GC28—0886. О OS/VS2 MVS System Programming Library: JES2, GC23—0002. О OS/VS2 MVS JES2 Logic, SY24—6000. IBM System/370 Principles of Operation, GA22—7000. О A Guide to the IBM 3033 Processor Complex, Attached Processor Complex, and Multiprocessor Complex of System/370, GC20—1859. © Introduction to IBM Direct-Access Storage Devices and Organization Methode, GC20—1649. • OS/VS2 MVS JES3 Overview, GC23—0038.
ГЛАВА 22 VM: операционная система виртуальных машин Разговор — раздел жаркого, Режьте всем — себе ни слова. Чтобы гость желанный мог Переваривать кусок, Подносить ему филейку Нужно в срок, но на копейку. Режьте, чтоб свести на-нет Голод или переед. Долг исполни перед другом — Он воздаст вам по заслугам.1) «Эпистола к леди, пожелавшей, чтобы автор написал ей стихи в героическом стиле» Джонатан Свифт 22.1 Введение 22.2 История 22.3 Управляющая программа (СР) 22.3.1 Подкачка страниц 22.3.2 Минидиски 22.3.3 Консоль управления 22.3.4 Классы привилегированности пользователей в СР 22.3.5 Директорий VM 22.4 Диалоговая мониторная система (CMS) 22.5 Система RSCS 22.6 Широта спектра возможностей VM 22.7 Эволюция VM/370 22.8 Вопросы производительности 22.8.1 Специальные средства поддержки виртуальных машин 22.8.2 Микропрограммные поддержки 22.8.3 Измерение и анализ производительности 22.9 Надежность, готовность к работе и простота обслуживания 22.10 VM — большая операционная система фирмы IBM на 80-е годы 22.1 Введение Виртуальная машина — это нечто, воспринимаемое нами как реальная машина. В качестве «иллюзиониста» здесь выступает операционная система виртуальных машин, которая единственную реальную машину представляет в виде нескольких реальных машин (рис. 22.1). Можно сделать так, что с пользовательской точки зрения виртуальная машина будет казаться очень близкой к реально су¬ ществующей машине или же радикально отличной от нее. Ценность самой концепции виртуальной машины не вызывает сомнения, и уже х) В переводе А. Солянова.
32G Часть 8 Примеры для изучения разработано несколько операционных систем виртуальных машин. Наиболее широко известна из них VA1/370. Поскольку эта система сейчас применяется и на многих машинах, разработанных после IBM/370, мы в дальнейшем будем называть ее просто VM. Рис. 22.1 Несколько виртуальных машин, образованных в одной реальной машине. Под управлением VM работают компьютеры IBM System 370 (или аналогичные), и она создает для каждого пользователя, рабо¬ тающего за одним из многих терминалов, иллюзию, что в его рас¬
Гл. 22 VM: Операционная система виртуальных машин 327 поряжении находится вся вычислительная машина со всем разно¬ образием ее устройств ввода-вывода. Каждый пользователь может выбрать для себя свою, отличную от других, операционную систе* му — под управлением VM фактически может выполняться несколь¬ ко операционных систем сразу, каждая на своей собственной вирту* Пакетные системы или интерактивные системы с одним пользователем DOS DOS/VS (DOS/VSE) OS/PCP OS/MFT OS/MVT OS/VS1 OS/VS2 (MVS) OS-ASP PS44 RSCS Системы коллективного пользования VM/370 TSO/OS (Timesharing Option of OS) Диалоговая система CMS Рис. 22.2 Операционные системы виртуальных машин. альной машине. Пользователь может избрать одну из фирменных систем IBM или систему собственной разработки. Чаще всего поль¬ зователи запускают версии систем IBM, перечисленные на рис. 22.2. В общепринятых мультипрограммных системах (рис. 22.3) ре¬ сурсы машины разделяются между несколькими процессами. Каж¬ дому из этих процессов отводится часть реальных (физических) ма¬ шинных ресурсов. Каждый из них «видит» машину, меньшую по размерам и возможностям по сравнению с реальной машиной. В мультипрограммных системах с виртуальными машинами (рис. 22.4) разделение ресурсов осуществляется несколько иначе. В них создается видимость, что одна реальная машина представля¬ ет собой несколько машин. В этих машинах в свою очередь создают¬ ся виртуальные процессоры, память и устройства ввода-вывода, может быть, с много большими возможностями, чем у лежащей в основе реальной машины.
328 Часть 8 Примеры для изучения Рис. 22.3 Общепринятое мультипрограммирование. Мультипрограммная операционная система виртуальных машин Рис. 22.4 Мультипрограммирование в системе виртуальных машин. Система VM состоит из следующих основных компонент: • управляющая программа (Control Program — СР); • диалоговая мониторная система (Conversational Monitor Sys¬ tem — CMS); • подсистема связи с удаленным спулингом (Remote Spooling Communications Subsystem — RSCS); • интерактивная система управления задачами (Interactive Prob¬ lem Control System — I PCS); • пакетное средство CMS (CMS Batch Facility),
Гл. 22 VM: Операционная система виртуальных машин 329 СР формирует окружение, среду, в которой выполняются вир¬ туальные машины (рис. 22.5). Она обеспечивает поддержку различ¬ ных операционных систем, обычно применяемых для управления машинами IBM/360, IBM/370 и другими, совместимыми с ними. CMS — прикладная система с мощными диалоговыми средства¬ ми разработки программ. Она включает редакторы, трансляторы Несколько пакетных разделов Несколько I Несколько пакетных I пакетных f Один / Один пользова- /пользова¬ тель / тель несколько / пакетных / разделов Один пользова¬ тель 1 1 разделов I I I I I I I I Пакетная обработка D05/VS Пакетная обработка POS/VS, ранние версии 0S/MVT CMS CMS CMS Виртуальная машина 370 Виртуальная машина 370 Виртуальная машина 37Q Виртуальная машина 370 Виртуальная машина 370 Виртуальная машина 370 [Виртуальная Гаппаратура System 370 Рис. 22.5 СР создает среду для множества виртуальных машин. 1Реальная Jаппаратура различных языков, различные прикладные пакеты и средства от¬ ладки. СР управляет реальной машиной, являющейся средой для вир¬ туальных машин. Она предоставляет каждому пользователю доступ к ресурсам реальной машины, таким, как процессор, память и уст¬ ройства ввода-вывода. В СР в мультипрограммном режиме выполня¬ ются целые виртуальные машины, а не отдельные задачи или про¬ цессы. Подсистема связи RSCS дает возможность VM передавать и при¬ нимать файлы через сеть телеобработки. Интерактивная система управления IPCS применяется для оперативного анализа и устра¬ нения неполадок, возникающих с программным обеспечением VM. Она также позволяет прослеживать некоторые события, собирать статистику и формировать отчеты об ошибках различного типа. При помощи пакетного средства CMS пользователь терминала может запустить задание для выполнения в пакетном режиме, про.
330 Часть 8 Примеры для изучения должая диалоговое общение с виртуальной CMS-машиной. Пакет CMS выполняется на своей собственной виртуальной машине, под управлением оператора системы. Команды языка управления зада¬ ниями определяют ход процесса обработки. Задания вводятся в виде образов перфокарт; их можно действительно отперфорировать на картах или же ввести в виде записей-образов карт из файла CMS. Выходной поток задания можно направить либо на реальное уст¬ ройство системного вывода или на выводное устройство, виртуаль¬ ной машины, на которой работает пользователь, представивший за- 1 1 1 I ;1 1 I | Bupmy-l |альнаяI 1 370 | DOS/VS MVS 1 Bupmy-\ < а ль паяj Вирту¬ альная 370 Вирту¬ альная 370 Вирту¬ альная 370 • * о вирту¬ альная 370 \виртуальная Г аппаратура СР Реальная 1 Реальная Ъ70 | аппаратура Рис. 22.6 Работа VM на виртуальной машине, созданной VM. дание. Пакетное средство CMS сообщает пользователю о начале вы¬ полнения представленного им задания и о его завершении. Виртуальные машины под управлением СР функционируют в основном так, как если бы они были реальными машинами, посколь¬ ку VM, вообще говоря, обслуживает многих пользователей одно¬ временно. Одно из применений концепции виртуальной машины — отлад¬ ка новой или развитие имеющейся операционной системы одновре¬ менно с производственной работой на машине. В СР есть средства, дающие системному программисту возможности управлять вирту¬ альной машиной точно так же, как управляет реальной машиной программист за ее консолью. Например, командами СР можно осу¬ ществить дампинг области виртуальной памяти, расставить команды остановов, отслеживать изменения значений в заданных ячейках и
Гл. 22 VM: Операционная система виртуальных машин 331 выполнять другие функции, которые обычно выполняются за кон¬ солью реальной машины. Программы на виртуальной машине работают практически так же, как они работали бы на машине реальной. Виртуальная машина взаимодействует со своим оператором через назначенную консоль, обычно являющуюся терминалом. Сообщения, поступающие на консоль, идентичны тем, которые печатались бы на консоли соот¬ ветствующей реальной машины. Программа СР не управляет прохождением процессов на вирту¬ альной машине, это является функцией операционной системы дан¬ ной виртуальной машины. Виртуальные машины работают незави¬ симо друг от друга; возникающие конфликты разрешает СР. Опе¬ рационные системы виртуальных машин выполняют полный спектр своих функций, включая управление памятью, планирование про¬ цессора, управление вводом-выводом, защиту пользователей друг от друга, защиту операционной системы от пользователей, спулинг, мультипрограммирование, управление заданиями и процессами, об¬ работку ошибок и т. д. Система VM сама может работать на любой из созданных ею виртуальных машин (рис. 22.6). Эта экзотическая возможность весь¬ ма полезна. Она, например, позволяет тестировать саму СР. 22.2 История В конце 40-х годов и в 50-е годы большинство компьютеров пред¬ ставляли собой системы одного пользователя. Пользователь сидел за консолью реальной машины, которая была отдана полностью в его распоряжение. Выполнение задания походило на взаимодей¬ ствие с современным персональным компьютером — если машина выдавала запрос и если пользователь размышлял над ответом, то машина все это время простаивала. Единственное отличие — это отличие в стоимости, причем стоимость в те времена в тысячи раз превышала стоимость сейчас. Концепция предоставления одному пользователю целиком всей машины, по сути, моделируется системой VM. Пользователь за вир¬ туальной машиной, работающей под VM, фактически видит перед собой эквивалент полной реальной машины, и картина здесь сильно отличается от той, которая предстает перед пользователями обще¬ принятых интерактивных систем. Мультипрограммные системы пакетной обработки были разрабо¬ таны для лучшего использования дорогостоящих машинных ресур¬ сов; благодаря этому оказалось нецелесообразно позволять одному пользователю командовать целой машиной. Все реже можно было видеть программиста, отлаживающего программу за консолью ма¬ шины. В начале 60-х годов группа в Массачусетском технологическом институте разработала систему разделения времени CTSS, которая
332 Часть 8 Примеры для изучения позволяла пользователю, сидящему за терминалом типа пишущей машинки, распоряжаться вычислительной мощностью машины (Со62). Чтобы поддерживать компьютер в загруженном состоянии, система CTSS пропускала стандартный пакетный поток, одновре¬ менно обеспечивая быстрый отклик диалоговым пользователям, редактирующим и отлаживающим программы. В целом вычисли¬ тельные возможности, предоставлявшиеся в CTSS, напоминали те, какими располагают сегодня пользователи VM и персональных компьютеров, а именно им предлагалась диалоговая среда, в кото¬ рой компьютер быстро отвечает на большое число относительно три¬ виальных запросов. Со времени выпуска CTSS интерактивные вычисления приобрели огромную популярность среди миллионов людей. Они применяли интерактивные вычисления повседневно на работе, в организации домашних дел и семейных финансов и даже для отдыха. Современные персональные компьютеры в полном своем объеме в любой момент готовы к услугам для своих владельцев в значи¬ тельной степени как их предшественники 30-летней давности. Од¬ нако важное отличие заключается в том, что персональные компью¬ теры могут подключаться к национальной или мировой информаци¬ онным сетям, поскольку общество, в котором мы живем, становится все более и более зависимым от информации. Работы над СР/CMS как над экспериментальной системой были начаты в 1964 г. Она должна была стать вторым поколением систем разделения времени для машин IBM/370 (Ad66). Первоначально планировавшаяся для применения только в научном центре фирмы IBM в Кембридже, она быстро приобрела известность как инстру¬ мент оценки производительности других операционных систем. Первая работающая версия, появившаяся в 1966 г., состояла из СР-40 и CMS. Эти компоненты были рассчитаны на модернизиро¬ ванную модель 360/40 со встроенной аппаратурой динамического преобразования адресов. Примерно в это же время IBM объявила о дальнейшем развитии верхней модели ряда 360— модели 360/65. Новая система 360/67 содержала аппаратуру динамического преоб¬ разования адресов и по замыслу должна была стать базовой моделью для системы TSS/360 — универсальной мультипрограммной систе¬ мы с разделением времени. Разработка TSS, проводившаяся неза¬ висимо от работ над СР/CMS, столкнулась с большими трудностями (характерными для крупных программных проектов середины 60-х годов). Тем временем СР/CMS была успешно перенесена на 360/67 и фактически вытеснила TSS. Система VM/370 начала поставляться в 1972 г. для моделей IBM/370 с виртуальной памятью. В 1981 г. работали более 2500 крупных систем VM, и их число быстро росло (Сг81). Система CTSS, успешно применявшаяся в Массачусетском тех¬ нологическом институте вплоть до 1974 г., оказала наибольшее влия¬ ние на разработку СР/CMS. Примечательно, что группа создателей
Гл. 22 VM: Операционная система виртуальных машин 333 CTSS в дальнейшем работала над системой Mui tics, которая так и не имела заметного коммерческого успеха. Разработчики СР/CMS по¬ няли, что чрезмерная сложность CTSS затрудняет ее разработку и развитие. Они пришли к выводу, что система должна обладать большей модульностью. Поэтому они выделили в операционной сис¬ теме две части, из которых одна управляет ресурсами, а другая поддерживает пользователей, и оформили их как СР и CMS, со¬ ответственно. Управляющая программа СР создает изолированную «вычислительную среду», в которой в распоряжении каждого поль¬ зователя оказывается полная машина, a CMS работает на созданной СР виртуальной машине как однопользовательская интерактивная система. Вне всякого сомнения, самое важное решение в проекте СР —• это решение о том, что каждая виртуальная машина повторяет реальную машину. Было очевидно, что сама концепция семейства машин 360 предопределяет долгую жизнь программ для этих ма¬ шин; пользователи по мере роста запросов просто переходят на сов¬ местимые модели семейства с большей памятью, с большим набором устройств и большей скоростью процессора. Решение порождать виртуальные машины, отличные от реальной 360, по-видимому, при¬ вело бы к провалу системы СР/CMS. Однако система оказалась удач¬ ной и, как мы увидим далее, VM может стать основной операцион¬ ной системой фирмы IBM на 80-е годы. 22.3 Управляющая программа (СР) СР — это компонента системы VM/370, создающая виртуальные машины, на которых работают различные операционные системы. Поскольку СР выполняется на реальной машине в реальном супер- визорном режиме, ей доступны все привилегированные команды. Когда диспетчер СР переключается на очередную виртуальную ма¬ шину, эта виртуальная машина выполняется на реальной машине, но в пользовательском режиме (в режиме «задача»). Предполагает¬ ся, что имеется только один реальный процессор (установка считает¬ ся однопроцессорной), и он может быть в режиме либо супервизора, либо задачи. Однако виртуальных машин много. Для каждой из них СР хранит главный управляющий блок, содержащий виртуальные регистры и виртуальное слово состояния. В виртуальном слове сос¬ тояния (помимо прочего) указаны текущее состояние (режим) вир¬ туальной машины и текущий счетчик команд. Виртуальная машина может находиться либо в виртуальном режиме супервизора, либо в виртуальном режиме задачи. Состояние реальной машины в процессе работы переключается между реальными режимами супервизора и задачи, и случайный наблюдатель, глядя на консоль реальной машины, никаких осо¬ бенностей по сравнению с машиной, работающей под управлением обычной операционной системы, не заметит. И тем не менее СР
334 Часть 8 Примеры для изучения исполняет каждую виртуальную машину в реальном режиме задачи. Программа СР отслеживает состояние, в котором виртуальная ма¬ шина считает себя находящейся, а именно, в виртуальном состоя¬ нии «супервизор» или в виртуальном состоянии «задача». Она дела¬ ет это настолько эффективно, что операционная система на виртуаль¬ ной машине не может никакими командами определить, действи¬ тельно ли СР выполняет виртуальную машину в реальном режиме задачи. Когда диспетчер СР переключается на конкретную виртуаль¬ ную машину, эта виртуальная машина выполняет реальные команды на реальной машине; СР сохраняет контроль над машиной из-за прерываний различных типов. Многие прерывания происходят, поскольку виртуальная машина пытается выполнить привилегиро¬ ванные команды, обычно доступные для операционных систем. Однако на виртуальную машину наложено ограничение работать только в реальном режиме задачи; прерывания происходят при каждой попытке выполнить привилегированную команду. Таким образом, прерывания программы — ключевая точка интерфейса между выполняемой виртуальной машиной и СР. Когда в виртуальной машине возникает прерывание по особой ситуации в программе, СР получает управление и определяет при¬ чину прерывания. Возможно, что виртуальная машина была вир¬ туальна в состоянии задачи. Если это действительно так, СР пере¬ дает реальное программное прерывание виртуальной машине, кото¬ рая обрабатывает его своими обычными процедурами обработки прерываний. Если же виртуальная машина была виртуальна в состоянии су¬ первизора, то СР моделирует выполнение привилегированной коман¬ ды. Прежде всего она определяет, что пыталась сделать виртуаль¬ ная машина. Если это была попытка выполнить ввод-вывод, тогда СР осуществляет соответствующее отображение между виртуаль¬ ными и реальными устройствами. Если операция относилась к дис¬ кам, СР преобразует адрес виртуальной дорожки в адрес реальной дорожки. Затем СР планирует реальную операцию ввода-вывода, соответствующую виртуальному запросу, и возвращает управление операционной системе виртуальной машины, которая продолжает работать так, как будто она сама инициировала ввод-вывод. Когда ввод-вывод завершится, СР получит соответствующее прерывание и передаст управление операционной системе виртуаль¬ ной машины, заказавшей операцию ввода-вывода. Операционной системе виртуальной машины будет казаться, что указание о за¬ вершении ввода-вывода поступило от реальной аппаратуры. 22.3.1 Подкачка страниц Управляющая программа СР спроектирована для исполнения на машинах, снабженных аппаратурой для динамической подкачки страниц и динамического преобразования адресов. Подкачки за¬
Гл. 22 VM: Операционная система виртуальных машин 335 трагивают всю физическую память, кроме небольшого ядра, оста* ющегося в физической памяти постоянно. На рис. 22.7 показано, как может выглядеть физическая память в системе VM с тремя CMS- Неподкачцваемая часть ср VS1A ■Ядро CMSB CMSC VS1A Раздел 2 VS1B Раздел 1 CMSA VS1A Ядро CMSC VS1B Ядро VS1B Ядро VS1A Ядро CMSB CMSC VS1 в 5!Эро CMSA • CMSC CMSC VS1B Раздел 2 CMSA CMSB VS1A Раздел 1 VS1B Раздел 2 CMSB CMSA VS1A Раздел 1 VS1B Раздел 1 Рис. 22.7 Использование физической памяти под VM. пользователями, а именно CMSA, CMSB и CMSC, и двумя виртуаль¬ ными машинами OS/VS1, а именно VS1A и VS1B. Здесь возникает очень интересная картина. Производительность обычных операционных систем типа OS/MFT или OS/MVT с реаль¬ ной памятью, работающих под VM, может резко отличаться от про¬ изводительности на реальной машине. Программа СР подкачивает страницы реальной памяти этих операционных систем. Эти подкач¬ ки логически прозрачны (невидимы) для операционной системы на
336 Часть 8 Примеры для изучения виртуальной машине. Однако временные задержки, присущие сис¬ темам с подкачками, могут не дать возможности выполнять под VM некоторые работы, рассчитанные на реальную память, в част¬ ности работы со строгими временными ограничителями. Еще более интересные проблемы возникают, когда под VM пу¬ скаются операционные системы типа DOS/VS или MVS с виртуаль¬ ной памятью. При этохМ возникает два уровня подкачки: © подкачки, инициируемые виртуальной машиной; • подкачки, инициируемые самой СР. Подкачки, инициируемые виртуальной машиной, обрабатыва¬ ются в СР как обычный ввод-вывод. Подкачки, инициируемые СР, логически прозрачны для виртуальной машины. В системах динамической памяти вопрос производительности (эффективности) важен всегда, но особенно он остро стоит в VM из- за многоуровневой подкачки. Чтобы снизить накладные расходы от подкачек, можно воспользоваться следующими методами: • Можно предписать виртуальной машине работать в режиме «вир¬ туальный равен реальному». • Отдельные страницы можно фиксировать в физической памяти. • Подкачки можно сократить в некоторых виртуальных машинах за счет методики рукопожатий (handshaking), методики, поз¬ воляющей виртуальной машине тесно взаимодействовать с СР и воспользоваться преимуществами ее механизмов. Вариант рукопожатий привлекателен тем, что открывает воз¬ можность с помощью обычных механизмов распределения ресурсов учесть суммарные интересы всех пользователей. Первые два вариан¬ та могут сильно затруднить работу системы и существенно снизить ее емкость. При применении любого варианта следует проявлять осм отр и тел ь н ость. 22.3.2 Минидиски Том на запоминающем устройстве с прямым доступом (например, дисковый пакет) либо весь отдается одной виртуальной машине, либо распределяется между несколькими виртуальными машинами. Управляющая программа позволяет разделить одиночный том на много минидисков (рис. 22.8), каждый из которых может отво¬ диться отдельной виртуальной машине. Минидиски — это подмно¬ жества полных дисков. Каждый из них представляет собой диапазон цилиндров и трактуется операционной системой виртуальной маши¬ ны как отдельное дисковое устройство с той лишь разницей, что его емкость меньше емкости полного диска. Функцией СР является отоб¬ ражение минидисков на реальные диски, распределение же прост¬ ранства в пределах минидиска остается за операционной системой той виртуальной машины, которой принадлежит минидиск. Управ¬
Гл. 22 VM: Операционная система виртуальных машин 337 ляющая программа обеспечивает защиту от обращений со стороны виртуальной машины всех областей, лежащих вне границ ее мини¬ дисков. Могут существовать минидиски, принадлежащие несколь¬ ким виртуальным машинам, но такие случаи должны рассматри¬ ваться особо. Номера физических цилиндров Минидиск СЗ Рис. 22.8 Размещение минидисков на физическом диске. Каждый минидиск начинается с нулевого виртуального цилиндра. (С разрешения фирмы IBM.) Устройство прямого доступа может быть все целиком отдано не¬ которой виртуальной машине или же разделено между несколькими виртуальными машинами. Каждый минидиск на данном томе может принадлежать своей виртуальной машине. 22.3.3 Консоль управления СР предоставляет виртуальную консоль каждой виртуальной машине. Таким образом, в VM пользователи за терминалами могут управлять своими виртуальными машинами так, как будто им пре¬ доставлена физическая консоль соответствующей реальной машины.
338 Часть 8 Примеры для изучения ADSTOP определяет адрес команды в виртуальной памяти, на которой сле¬ дует остановиться BEGIN возобновляет работу виртуальной машины (функционально эквива¬ лентна кнопке пуск реальной машины) DETACH исключает указанное устройство из конфигурации виртуальной ма¬ шины DISPLAY показывает заданные регистры или содержимое памяти виртуальной машины EXTERNAL вызывает внешнее прерывание LINK вводит заданное виртуальное устройство с прямым доступом в конфи¬ гурацию виртуальной машины, если устройство определено как разделяемое и пользователь может предъявить соответствующий пароль QUERY показывает некоторую системную информацию, такую, как например, записи в журнал регистраций данных о файлах, находящихся в системе поль¬ зователей, файлы в системе спулинга или конфигурацию виртуальной машины READY имитирует прерывание «устройство кончило» ог виртуального уст¬ ройства SET устанавливает системные переменные, управляющие различными функ¬ циями: уровнем печатаемых сообщений об ошибках, редактированием вводи¬ мых с терминала строк и т. п. SPOOL изменяет управляющие параметры (например, число копий) одного или большего числа виртуальных устройств, используемых для спулинга. Передает файлы между пользователями и удаленными станциями, пускает и останавливает спулинг на консоль STORE заносит данные в регистры виртуальной машины или в виртуальную память TERMINAL дает возможность пользователю определить логические редакти¬ рующие символы и логический размер строки при вводе-выводе с терминала Рис. 22.9 Команды СР. Следовательно, пользователь VM располагает значительно боль¬ шими возможностями, чем пользователь обычных систем разделения времени. Некоторые из команд СР, которые пользователь может задавать с терминала, приведены на рис. 22.9.
Гл. 22 VM: Операционная система виртуальных машин 339 22.3.4 Классы привилегированности пользователей в СР Характерная черта операционной обстановки на больших компь¬ ютерах (а именно, на них используется VM) — это наличие различ¬ ных групп лиц, взаимодействующих с системой в ходе ее работы. Одни решают прикладные задачи, другие отвечают за функциониро¬ вание самой системы и ее развитие. Третьи связаны с ремонтом оборудования. Не всем этим группам нужен доступ к средствам и возможностям операционной системы; более того, некоторым группам должно быть строго запрещено пользоваться средствами, которые могли бы вывести систему из строя. В VM для определения таких групп существуют классы привилегированности пользователей. Ко¬ манды СР соотнесены с этими классами. Попытка пользователя вы¬ полнить команду, не соответствующую его классу, системой отвер¬ гается. Сводка классов привилегированности пользователей в СР приведена на рис. 22.10. Класс Пользователь Функции А Главный системный оператор Отвечает за работоспособность VM, за учет выполняемых работ, за рассылку общих сооб¬ щений, за настройку параметров, влияющих на производительность, и многое другое Управляет всеми физическими ресурсами VM, за исключением находящихся под контролем классов А и D (пользователь класса В, на¬ пример, может отсоединить (DETACH) канал от конкретного пользователя) В Оператор системных ресурсов С Системный програм¬ мист Может совершенствовать некоторые функции, не являющиеся прерогативой пользователей других классов (например, изменить временно содержимое физической памяти, не разрушая системы VM целиком) D Оператор спулинга Управляет спулингом данных и функциони¬ рованием соответствующих устройств (напри¬ мер, задает на принтере режим печати: в каж¬ дой строке или через строчку) Е Системный аналитик Может анализировать и сохранять данные из различных областей памяти VM F Представитель служ¬ бы технического об¬ служивания Может запрашивать данные, относящиеся к физическим устройствам ввода-вывода. Поль¬ зователь класса F может извлекать данные из журнала системных сбоев и отказов G Обычный пользова¬ тель Может выполнять различные управляющие функции, связанные с работой его виртуаль¬ ной машины (например, дать пуск виртуаль¬ ной машине) Н Резерв Зарезервировано для нужд IBM Any Любой пользователь Может «войти» и «выйти» из VM Рис. 22.10 Классы привилегированности пользователей в СР,
340 Часть 8 Примеры для изучения 22.3.5 Директорий VM Доступ к VM управляется информацией в ее директории — фай¬ ле. содержащем описания всех потенциально допустимых виртуаль¬ ных машин в данной конкретной системе VM. Для каждого пользо¬ вателя в директории содержится идентификация пользователя, па¬ роль, класс привилегированности и другая информация, характери¬ зующая виртуальную машину пользователя. USER VIRT1 VIRT1 512К IM G ACCOUNT S5 SYSPRG CONSOLE 009 3215 SPOOL ООО 2540 READER А SPOOL OOD 2540 PUNCH А SPOOL 00Е 1403 А MDISK 191 3330 001 001 CPR6L1 R LINK MAINT 194 194 RR Рис. 22.11 Образец записи в директории VM. VM/370 online logon smith ENTER PASSWORD: LOGON AT 10:07:36 ON FRIDAY 05/27/83 ipl cms Рис. 22.12 Вход в систему и загрузка CMS. Пример записи в директории VM приведен на рис. 22.11. Иден¬ тификатор пользователя — VIRT1, причем пароль с ним совпадает. Виртуальной машине выделено 512 Кбайт виртуальной памяти; максимально допустимый для нее объем виртуальной памяти — 1М (или 1024 Кбайт). Учетный номер — S5. Консолью служит уст¬ ройство с виртуальным адресом физического устройства 009 и ти¬ пом 3215. В системе спулинга виртуальной машины участвуют счи¬ тыватель карт 2540 с виртуальным адресом физического устройства 00С, перфоратор карт 2540 с адресом 00 D и принтер 1403 с адресом 00Е; каждое из этих устройств имеет класс вывода А. Один мини¬ диск 3330 заведен по виртуальному адресу физического устройства 191. Строка LINK говорит о том, что данной виртуальной машине
Гл. 22 VM: Операционная система виртуальных машин 341 предоставлен доступ на считывание к мини-диску, принадлежащему другой виртуальной машине. Если пользователь зарегистрирован в директории VM, то он может войти в систему, как показано на рис. 22.12. Пользователь набирает свой идентификатор. Система проверяет его наличие в директории и дает приглашение на ввод пароля. Пользователь на¬ бирает пароль (который система в целях секретности маскирует). Правильность пароля проверяется по директорию. Войдя в систему, пользователь может запустить любую поддерживаемую операцион¬ ную систему. Система VM может вести журнал для обеспечения безопасности (задается при генерации системы). В этом случае регистрируются все неудачные попытки входа в систему и посылаются сообщения администратору системы с указанием даты и времени суток, терми¬ нала, идентификатора пользователя и набранного пароля. Подав¬ ляющее большинство некорректных попыток войти в систему свя¬ зано с ошибками в процессе набора на клавиатуре. На их фоне много¬ кратные попытки проникнуть в систему, задавая «сходные» пароли, как правило, бывают заметны. 22.4 Диалоговая мониторная система (CMS) Первоначально сокращение CMS расшифровывалось как Cam¬ bridge Monitor System (кембриджская мониторная система), однако позднее стало расшифровываться как Conversational Monitor System (диалоговая мониторная система). Операционная система CMS ориентирована на диски и предоставляет в распоряжение пользо¬ вателя нечто, кажущееся отдельной реальной машиной, но что на самом деле является виртуальной машиной, созданной СР. Сис¬ тема CMS является однопользовательской и по функциям довольно близка к CTSS. Первая работоспособная версия CMS запускалась на реальной машине 360 и обслуживала пользователя, управляю¬ щего машиной с системной консоли. В некоторый момент в строй вошла СР, тогда CMS была перепрограммирована для работы с соз¬ данной СР виртуальной машиной. Современные версии CMS на «голой» машине работать не могут. Управляющая программа СР управляет совместным использова¬ нием несколькими виртуальными машинами общих данных, поз¬ воляя этим машинам обращаться к общим дискам. Работа с общими данными на дисках дополняется возможностью передавать файлы между виртуальными машинами через моделируемые устройства, работающие с записями (типа считывателей/перфораторов и прин¬ теров). Все доступные пользователю команды CMS хранятся в файлах на дисках', они фактически не являются частью системы. Благода¬ ря этому пользователь, добавляя, удаляя и изменяя командные фай¬
342 Часть 8 Примеры для изучения лы, может без труда привести набор команд своей виртуальной ма¬ шины в соответствии со своими специфическими нуждами. Система CMS предоставляет пользователю мощные средства разработки программ. Пользователь CMS работает на виртуальной машине, находящейся в его полном распоряжении (рис. 22.13). Операционная обстановка коллективного пользования возникает Рис. 22.13 Индивидуальная виртуальная машина, как ее видит пользователь CMS.
Гл. 22 VM: Операционная система виртуальных машин 343 благодаря тому, что VM поддерживает много самостоятельных вир¬ туальных CMS-машин. Пользователь взаимодействует с CMS не при помощи языка управления заданиями, а при помощи команд, задаваемых с терминала. Они образуют элементы «дружественного» интерфейса CMS с пользователем. Особенно важную роль играют выдаваемые в процессе диалога диагностические сообщения; благо¬ даря им удается сразу же исправлять допущенные ошибки. 22.5 Система RSCS Система RSCS (Remote Spooling and Communication System) (He 79) позволяет передавать файлы между компьютерами и уда¬ ленными рабочими станциями через сеть связи (рис. 22.14). Она ра- СР Виртуальные машины ум Удаленные станции Рис. 22.14 Сеть телеобработки RSCS в системе VM. ботает на образуемой СР виртуальной машине и для передачи файлов использует линии связи и устройства, работающие с запи¬ сями. Тем самым пользователи получают как средство передачи файлов между виртуальными машинами в пределах одной реальной
344 Часть 8 Примеры для изучения машины, так и более привычное средство передачи файлов между вычислительными системами и удаленными рабочими станциями. Сама СР передает файлы между виртуальными машинами в од¬ ной реальной машине. Она функционирует как центральный узел звездообразной сети, в которой на концах лучей находятся вирту¬ альные машины. Виртуальная машина, желающая послать файл другой виртуальной машине, посылает его СР, которая в свою оче¬ редь передает его машине-получателю. Файлы передаются с исполь¬ зованием виртуальных перфораторов и считывателей соответствую¬ щих виртуальных машин. Система RSCS работает на виртуальной машине, подключенной к коммуникационному оборудованию. У каждого реального компью¬ тера свой уникальный идентификатор. Чтобы передать файл дру¬ гому компьютеру, система RSCS посылает этот файл системе RSCS соседнего компьютера, та следующему соседу и т. д.^ пока файл не достигнет точки назначения. Внутри фирмы IBM система RSCS используется для адресации более 50 000 пользователей на 400 компьютерах, разбросанных по пяти континентам (Сг 81). 22.6 Широта спектра возможностей VM Система VM обеспечивает поддержку широкого спектра прило¬ жений. Один реальный компьютер выглядит как несколько вирту¬ альных компьютеров, на каждом из которых может работать своя, отличная от других, операционная система. Таким образом, VM создает видимость, что работает не одна, а много самостоятельных машин с различными операционными системами, оптимизирующими различные возможности. Она позволяет тестировать новую операционную систему, не прерывая производственной работы.Перевод программ в новый фор¬ мат представления и тестирование этих новых программ можно вести, также не прерывая нормальной работы. В CMS заложены средства, облегчающие преобразование форматов. На интенсивно эксплуатирующихся вычислительных машинах операционная обстановка характеризуется высокой степенью ди¬ намичности: постоянно какие-то изменения обсуждаются, отлажи¬ ваются и вводятся в эксплуатацию, VM позволяет всю эту деятель¬ ность проводить параллельно с нормальной эксплуатацией вычисли¬ тельной системы. Иногда какая-то одна прикладная задача требует операционной системы, отличной от обычно применяемой на данной установке; VM дает возможность запустить эту задачу с нужной операционной системой, не останавливая других работ на машине. Одно из любопытных применений VM — это запуск нескольких копий одной и той же операционной системы. В некоторых опера¬ ционных системах ограничено число одновременно работающих пользователей. Воспользовавшись VM, можно запустить несколько
Гл. 22 VM: Операционная система виртуальных машин 345 копий операционной системы и тем самым удвоить, утроить и т. д. допустимое число одновременно работающих пользователей. Операционная обстановка, которую создает VM/370, обладает высокой надежностью и не требует непрерывного внимания со сто¬ роны персонала. Естественно, здесь не имеются в виду случаи, когда требуется установка дисковых или ленточных томов. В феврале 1978 г. в Новой Англии разразился жестокий снежный буран. Весь штат Массачусетс оказался буквально блокированным. Только спецмашинам разрешалось передвижение по дорогам штата. В этот период система VM/370 в Кембриджском научном центре в течение недели продолжала функционировать в закрытом помещении без оператора. Управление системой осуществлялось с удаленного тер¬ минала с операторскими привилегиями. 22.7 Эволюция VM/370 Система VM/370 продолжает развиваться с момента своего появ¬ ления. Все более популярными становятся взаимодействия между виртуальными машинами, и все большее число прикладных систем существенно опираются на архитектурные свойства операционной обстановки с виртуальными машинами. Холли и др. (Но79) рас¬ сматривают мультипроцессорную работу в VM/370. 22.8 Вопросы производительности На производительность VM/370 оказывает влияние множество факторов, в том числе • применяемая вычислительная установка; ® общее число работающих виртуальных машин; Ф конкретные операционные системы на каждой виртуальной ма¬ шине; • характер рабочей нагрузки на каждой виртуальной машине; @ рабочие характеристики каждого из устройств для подкачки страниц, а также каналов, по которым передаются страницы; О число наличных каналов; ® типы каналов (блок мультиплексные или селекторные); Ф емкость физической памяти; • наличие специальных средств поддержки виртуальных машин (virtual machine assist feature); @ наличие средств поддержки расширенной СР (VM Extended Control Program Support). Система CMS эффективно работает на образуемой СР виртуаль¬ ной машине. Число работающих в системе VM виртуальных CMS- машин существенно больше числа виртуальных MVS-машин, поэ¬ тому довольно трудно судить о конкретной аппаратной конфигу¬ рации просто по числу допустимых виртуальных машин.
346 Часть 8 Примеры для изучения 22.8.1 Специальные средства поддержки виртуальных машин Специальные средства поддержки виртуальных машин увеличи¬ вают производительность вычислительной системы и включаются в VM-установку по желанию заказчика. Они содержат как аппарат¬ ные, так и программные компоненты. Такие операционные системы с виртуальной памятью, как OS/VS1 и DOS/VS, под управлением VM/370 выполняются в режиме программы. В них встречается боль¬ шое число привилегированных команд и команд вызова супервизо¬ ра SVC, которые вызывают прерывания и требуют внимания со стороны VM. Обычно эти прерывания обрабатываются программно. При наличии же специальных средств, так называемых микропро¬ граммных поддержек виртуальных машин, аппаратура перехваты¬ вает и обрабатывает многие из этих прерываний, значительно повы¬ шая производительность. 22.8.2 Микропрограммные поддержки Микропрограммные поддержки распадаются на три категории в зависимости от тех функций, реализацию которых они делают бо¬ лее простой и эффективной. Микропрограммные поддержки виртуальной машины представ¬ лены аппаратной эмуляцией большого числа привилегированных команд. Они позволяют поднять процент прерываний, обрабатывае¬ мых не методами программного моделирования, а методами аппарат¬ ной эмуляции. Микропрограммные поддержки СР включают аппаратные средст¬ ва для ускорения наиболее часто выполняемых действий в СР, в их число входит обработка ввода-вывода виртуальных машин, управ¬ ление памятью, управление подкачками, обработка привилегиро¬ ванных команд, диспетчеризация. Микропрограммные поддержки виртуальных интервальных тай¬ меров — это средства продвижения таймеров на каждой виртуальной машине. Если этих средств нет, то таймеры продвигаются програм¬ мно. Их «точность хода» при этом оказывается ниже. 22.8.3 Измерение и анализ производительности В управляющей программе VM есть две команды, предназна¬ ченные для сбора и выдачи информации о производительности ма¬ шины. В том, что эти команды встроены в систему, отразилось как понимание разработчиками важности контроля за производитель¬ ностью, так и желание пользователей знать, насколько хорошо ра¬ ботает их система. Команда MONITOR собирает на ленте данные по производи¬ тельности для последующего анализа. Команда INDICATE вы¬ дает текущие значения параметров производительности пользова¬ телю на терминал.
Гл. 22 VM: Операционная система виртуальных машин 347 Соответствующие мониторные средства для слежения за произ¬ водительностью встроены в VM, Система CMS спроектирована так, чтобы работать непосредственно под СР с малыми накладными расходами. Однако при работе других виртуальных машин под СР потери могут быть весьма ощутимы, и это обстоятельство разра¬ ботчики не упускали из поля зрения. Чтобы снизить накладные расходы, в VM на протяжении многих лет вносились различные усовершенствования. В СР работают подкачки страниц даже для таких систем без подкачек, как OS/MFT и OS/MVT. Для некоторых программ, рас¬ считанных на работу без подкачек, высокая скорость работы явля¬ ется обязательным условием, и затраты, привносимые подкачками, недопустимы. Одна из возможностей, имеющихся в VM, это воз¬ можность одну виртуальную машину запустить в режиме «виртуаль¬ ный равен реальному», тем самым запрещая подкачку реальной па¬ мяти данной виртуальной машины. Для того чтобы свести к минимуму дублирование часто употреб¬ ляемых страниц в реальной памяти, есть возможность разделения (совместного использования) несколькими машинами программного кода. Это позволяет лучше использовать память. Тецлафф (Те79) анализирует программу-монитор VM и приводит ряд интересных соображений о производительности VM/370. Мак¬ Киннон (Ма79) рассматривает понятие «рукопожатия» и изменения, которые можно внести в работающие под VM/370 операционные сис¬ темы, чтобы они «знали», что работают в виртуальной обстановке. При этом устраняются многие лишние операции, выполняемые обыч¬ но из-за вложенности операционных систем друг в друга. В част¬ ности, DOS/VS и VS/1 были модифицированы так, чтобы они вы¬ ходили непосредственно на интерфейс с VM. Производительность при этом значительно возросла. 22.9 Надежность, готовность к работе и простота обслуживания Из самой концепции виртуальных машин вытекает изолирован¬ ность пользователей друг от друга, причем с более четко очерчен¬ ными границами, чем в обычной мультипрограммной обстановке. Эта изолированность оказывает важное влияние на такие характе¬ ристики системы, как надежность, готовность к работе и простота обслуживания. • СР исключает саму возможность для виртуальной машины об¬ ратиться к чужим областям памяти. • Чтобы получить доступ к системе и к разделяемым файлам на дисках, необходимо предъявить пароль. • В целях защиты файла на диске может быть разрешено только чтение.
348 Часть 8 Примеры для изучения ® СР распознает все случаи ненормального завершения работы виртуальной машины и устраняет нежелательные последствия таких событий для виртуальной машины и ее пользователя. • Гибкость операционной обстановки с виртуальными машинами позволяет тестировать и отлаживать новые версии операцион¬ ных систем параллельно с обычной производственной работой на машине. Совсем не обязательно всю реальную машину выде¬ лять для тестирования новой системы и останавливать другие работы. • Поскольку можно одновременно запустить несколько версий одной и той же операционной системы, можно параллельно вы¬ полнять программы, уже переведенные на новую систему, с программами, еще не переведенными на нее. ® Можно запустить на одной машине несколько копий одной и той же операционной системы. Эта возможность особенно привле¬ кательна для пользователей, привязанных к некоторой операци¬ онной системе, с которой они привыкли работать на менее мощной машине. Переходя на более мощную установку, пользователь таким путем может ускорить работу. • VM/370 обладает развитыми командами для трассирования, ана¬ лиза и изменения выполняемых виртуальной машиной программ. Эти команды упрощают и ускоряют отладку. ® VM/370 обладает рядом черт, которые позволяют обслуживаю¬ щему инженерному персоналу проверять машину и устройства ввода-вывода, запуская диагностические программы на одной виртуальной машине, тогда как на других продолжается обыч¬ ная работа. 22.10 VM — большая операционная система фирмы IBM на 80-е годы В этом разделе мы приведем соображения в пользу роста роли VM в ближайшем десятилетии. Существует много причин того, что, видимо, так и будет. Мы уже привыкли к тому, что большие компании испытывают многолетний дефицит программистов. Ожидается, что с середины 80-х годов выпуск специалистов по программированию будет на 50% отставать от потребностей. Ясно, что для удовлетворения запросов необходимо повысить производительность труда программистов. То, что диалоговые методы разработки программ увеличивают про¬ изводительность программистов, стало открытием 60-х годов. В 80-е годы важную роль для ускорения диалогового создания программ должны играть операционные системы. В IBM есть два конкурента на роль главной интерактивной опе¬ рационной системы для крупных машин фирмы — это система TSO (the Timesharing Option) в MVS и система VM. Несомненно, VM превосходит MVS как по составу предоставляемых возможное-
Гл. 22 VM: Операционная система виртуальных машин 349 тей* так и по реальной производительности. Зачастую на одной и той же установке VM удается обслужить вдвое большее число ин¬ терактивных пользователей по сравнению с MVS. MVS была в течение многих лет и остается сейчас наиболее мощ¬ ной системой в ряду операционных систем для пакетной обработки фирмы IBM. Привязанность пользователей IBM к системе MVS весьма существенна, и это нельзя игнорировать. Просто нереально заставить всю огромную массу пользователей IBM, работающих на MVS, перейти на совершенно другую операционную систему. Здесь опять-таки гибкость VM позволяет справиться с проблемой, по¬ скольку MVS может работа;.> под VM. Таким образом, приверженцы MVS могут запускать ее под VM и заодно пользоваться богатыми интерактивными возможностями VM. На машине запускается VM# а под VM запускается MVS и много виртуальных CMS-машин. Для небольших своих машин фирма IBM создала дисковую опе¬ рационную систему DOS. Она много проще MVS, обладает развиты¬ ми средствами пакетной обработки, но не имеет интерактивных воз¬ можностей. На протяжении многих лет пользователи DOS в общем были противниками перехода на MVS с ее более широкими возмож¬ ностями. Вместо этого они настаивали на том, чтобы IBM добавила соответствующие возможности в DOS. Однако, чем мощнее стано¬ вятся машины, тем больше проявляется ограниченность DOS, по¬ этому многие пользователи, переключаемые, вопреки желаниям, на MVS, длительное время испытывают трудности. Здесь снова выручает присущая VM гибкость. Пользователям DOS ничто не мешает перейти на более мощную машину с операци¬ онной системой VM. Пользователь может запустить DOS под VM и сразу получить два важных преимущества: VM предоставляет луч¬ ший диалог, а на более мощном процессоре быстрее выполняются задания для DOS. Дополнительное преимущество — это возмож¬ ность запустить под VM несколько копий DOS одновременно, сняв тем самым некоторые ограничения, свойственные DOS, например малое число разделов. CMS создавалась как мощная интерактивная система. Тем не менее ее разработчики решили, что в ней должны поддерживаться стандартные компиляторы и ассемблеры, работавшие в больших па¬ кетных операционных системах того времени. Поэтому программисту предоставлена возможность писать и отлаживать программу в CMS, а затем транслировать и выполнять ее в пакетных системах DOS и OS. На раннем этапе развития VM произошла примерно следующая история. Фирма IBM должна была принять решение: либо «убить» VM, либо сопровождать и поставлять ее как программный продукт. Бывший в то время президентом компании IBM Т. Винсент Пирсон присутствовал на докладе, подготовленном группой MVS, в кото¬ ром приходили к выводу, что VM следует «убить». На экскурсии после доклада Пирсон заметил, что группа MVS сама работает с
350 Часть 8 Примеры для изучения MVS, запуская ее под VM. В этот момент v него и созрело решение; если VM достаточно хороша для самой IBM, она, должно быть, хо¬ роша и для ее клиентов. И VM была выпущена как сопровождае¬ мое фирменное изделие. Некоторым пользователям DOS система VM позволяет получить интересный выигрыш в производительности. Казалось естествен¬ ным ожидать, что DOS непосредственно на какой-то конкретной машине будет работать эффективнее, чем DOS под VM на той же ма¬ шине. Однако зачастую верным оказывается обратное. Чем это мож¬ но объяснить? Дело в том, что механизм управления виртуальной памятью в VM работает много более эффективно, чем в DOS/VS. Это еще один плюс для VM. Популярность VM все время росла, и есть все основания пола¬ гать, что так будет и в дальнейшем. Фирма IBM и другие фирмы по¬ стоянно совершенствуют систему. Эффективность самой концепции операционной системы виртуальных машин не вызывает сомнения. Система VM, так же как системы СР/М и UNIX, была разработана небольшим коллективом разработчиков на основе одной главной концепции. Едва ли разработчики каждой из названных систем могли предвидеть, что системы окажутся столь удачными. Заключение Виртуальная машина — это нечто, кажущееся реальной маши¬ ной. Ее создает операционная система виртуальных машин. В обще¬ принятых мультипрограммных системах ресурсы одной реальной машины совместно используются (разделяются) несколькими про¬ цессами. В операционной системе виртуальных машин ресурсы ре¬ альной машины разделяются несколькими виртуальными маши¬ нами. Основными компонентами VM являются управляющая програм¬ ма (СР), диалоговая мониторная система (CMS), подсистема удален¬ ного спулинга и коммуникаций (RSCS), система управления интер¬ активными задачами (IPCS) и пакетное средство CMS. СР создает среду, в которой работают виртуальные машины. Система CMS представляет собой однопользовательскую интерак¬ тивную систему. Система RSCS позволяет посылать и получать фай¬ лы по сети телеобработки. Система IPCS служит для интерактивно¬ го анализа и отладки программ. Пакетное средство CMS позволяет пользователю за терминалом запустить длинную задачу для выпол¬ нения в пакетном режиме, продолжая тем временем интерактивную работу с виртуальной CMS-машиной. СР формирует изолированную вычислительную среду для каждо¬ го пользователя, предоставляя ему полный спектр машинных воз¬ можностей; CMS работает на образованной СР машине как однополь¬ зовательская интерактивная система.
Гл. 22 VM: Операционная система виртуальных машин 351 СР работает на реальной машине в реальном режиме «суперви¬ зор». Виртуальные машины, диспетчеризуемые СР, работают в ре¬ жиме «задача» реальной машины; СР следит за тем, в каком состоя¬ нии считает себя находящейся каждая виртуальная машина: в виртуальном состоянии «супервизор» или в виртуальном состоянии «задача». Ключевой точкой интерфейса между выполняемыми виртуаль¬ ными машинами и СР являются прерывания. При прерываниях управление получает СР. Если виртуальная машина при этом на¬ ходится в виртуальном состоянии «задача», СР передает прерывание самой виртуальной машине для обработки ее собственными проце¬ дурами обработки прерываний. Если же виртуальная машина на¬ ходится в состоянии «супервизор», то СР моделирует выполнение привилегированной команды. СР может работать только в том случае, если на машине есть ап¬ паратура, связанная с динамическим преобразованием адресов и подкачками. Подкачки распространяются практически на всю реальную память, за исключением небольшого ядра, постоянно на¬ ходящегося в памяти. Когда СР создает виртуальную машину с опе¬ рационной системой, которая работает с реальной, а не виртуальной памятью, например с системой OS/MFT или OS/MVT, механизм под¬ качек в СР подкачивает страницы реальной памяти соответствую¬ щей операционной системы. Когда на созданной СР виртуальной машине работает операционная система, имеющая свой механизм виртуальной памяти, то возникают подкачки на двух уровнях, и это может приводить к снижению производительности. Устройства прямого доступа в СР можно разбивать на минидис¬ ки, являющиеся подмножествами полных дисков. Отображение ми¬ нидисков на реальные диски осуществляет СР, распределение же пространства в пределах минидиска остается за операционной сис¬ темой той виртуальной машины, которой приписан минидиск. В VM пользователь за терминалом управляет своей виртуаль¬ ной машиной так, как будто в его распоряжении находится физи¬ ческая консоль реальной машины. В СР применена схема, согласно которой пользователи разбива¬ ются на классы привилегированности, и им доступны только коман¬ ды, соответствующие их классу. Доступ к VM контролируется по информации в директории VM, который представляет собой файл, содержащий описания всех за¬ регистрированных на установке виртуальных машин. CMS — это однопользовательская, ориентированная на диски операционная система, предоставляющая пользователю все средства для работы как бы на ему одному выделенной машине; CMS содер¬ жит мощные инструментальные средства разработки программ. RSCS обеспечивает передачу файлов между компьютерами и удаленными рабочими станциями через сеть связи. Один компьютер под VM выглядит как множество виртуальных
352 Часть 8 Примеры для изучения компьютеров, на которых могут работать разные операционные системы. В частности, можно отлаживать новую операционную сис¬ тему, не останавливая текущей производственной работы. Можно запустить несколько копий одной и той же операционной системы. VM может работать, не требуя внимания со стороны персонала в те¬ чение долгого времени. Важную роль в обстановке виртуальных машин начинают иг¬ рать вопросы эффективности, особенно из-за нескольких уровней подкачек. В связи с этим поставляются микропрограммные под¬ держки, ускоряющие работу VM за счет обработки прерываний на уровне аппаратной эмуляции, а не программного моделирования. В VM встроены мониторные средства динамического слежения за производительностью системы. Многие черты VM оказывают влияние на надежность, готовность к работе и простоту обслуживания системы. Все адреса обращений со стороны виртуальных машин строго контролируются. Для входа в систему и для обращений к разделяемым дискам необходимо предъ¬ являть пароли. Дисковый файл можно сделать доступным только на чтение. Последствия аварийных завершений ограничены рамками тех виртуальных машин, где они произошли. Тестировать и отла¬ живать новую операционную систему можно, не прекращая нормаль¬ ной работы на машине. Сильно развиты отладочные средства. Пред¬ ставители служб инженерного обслуживания могут пускать диаг¬ ностические программы на одной виртуальной машине параллельно с обычной работой других виртуальных машин. По всей видимости, популярность VM в этом десятилетии будет расти. Она предоставляет более развитые и более эффективные средства диалога, чем MVS; открывает перспективы развития для пользователей, которые, сохраняя приверженность DOS, хотели бы воспользоваться преимуществами более мощных компьютеров и ин¬ терактивных средств. Поскольку под VM работает и система MVS, пользователи MVS могут при помощи VM расширить свои диалого¬ вые возможности по сравнению с теми, какие предоставляет TSO. Терминология блокирование страничного кадра в реальной памяти (lock a page frame into real storage) виртуальная консоль (virtual console) виртуальная машина (virtual machine) виртуальное слово состояния (virtual state word) виртуальное состояние «задача» (virtual problem state) виртуальное состояние «супервизор» (virtual supervisor state) виртуальные регистры (virtual registers) «виртуальный как реальный» (virtual equals real) диалоговая мониторная система (CMS) (CMS Conversational Monitor System)
Гл. 22 VM: Операционная система виртуальных машин 353 запись в журнал для обеспечения безопасности (security journaling option) изоляция адресного пространства (isolation of address spaces) минидиск (minidisk) многоуровневые подкачки (multiple levels of paging) привилегированные команды (privileged instructions) реальная машина (real machine) реальное состояние «задача» (real problem state) реальное слово состояния (real state word) реальное состояние «супервизор» (real supervisor state), рукопожатие (handshaking) состояние «задача» (problem state) состояние «супервизор» (supervisor state) средства поддержки CP (Extended Control Program Support) управляющая программа (CP) (Control Program, CP) ядро CP (CP nucleus) VM/370 Упражнения 22.1 Что такое виртуальная машина? Что такое операционная система виртуаль¬ ных машин? 22.2 Перечислите достоинства и недостатки, заложенные в самом понятии вир¬ туальной машины. 22.3 Опишите различия в том, как обслуживаются пользователи в обычных мультипрограммных системах и в операционных системах виртуальных машин. 22.4 Назовите главные компоненты VM. Каковы их основные функции? 22.5 В режиме разделения времени пользователи VM работают в CMS. Но CMS — однопользовательская система. Объясните, каким образом в VM дости¬ гается работа многих пользователей в режиме разделения времени. В чем отличие от традиционных систем разделения времени? 22.6 (Аномальная производительность виртуальных машин). Работа операци¬ онной системы на «голой» машине связана с определенными накладными расхо¬ дами. При работе операционной системы под VM появляются дополнительные накладные расходы. Однако часто оказывается, что операционная система под VM работает более эффективно, чем па той же машине без VM. Почему такое возможно? 22.7 Виртуальные машины работают независимо, и конфликты между ними раз¬ решает СР. Что собой представляют некоторые из таких конфликтов? Как их разрешает СР? 22.8 VM сама может работать на одной из ею же созданных виртуальных машин. Какие экзотические применения может найти такая возможность? 22.9 (Рекурсия виртуальных машин). Предположим, что операционная система виртуальных машин может создать виртуальную машину, в которой в свою очередь запущена другая копия операционной системы виртуальных машин, в которой в свою очередь запущена новая операционная система и т. д. 12 Зак. 5 84
354 Часть 8 Примеры для изучения а) Предложите полезные применения такого подхода. б) С какими проблемами при ее реализации придется здесь столкнуться? Как бы вы разрешили их? в) Какие проблемы эффективности могут здесь возникнуть? Как бы вы спра¬ вились с ними? 22.10 VM — это операционная система с динамической подкачкой страниц. Многие операционные системы, запускаемые под VM, работают с реальной па¬ мятью. Каковы достоинства и недостатки работы таких систем под VM? 22.11 Где ключевая точка интерфейса между работающими виртуальными машинами и СР? 22.12 Предположим, что работающая на виртуальной машине программа выдала запрос на считывание записи с диска. Опишите детально, как в процессе обработ¬ ки запрос будет проходить через операционную систему пользователя, СР и ап¬ паратуру. 22.13 Подкачка, инициированная виртуальной машиной, обрабатывается в СР как нормальная операция ввода-вывода. Подкачка, инициированная СР, логи¬ чески прозрачна для виртуальной машины. Объясните, что это означает. 22.14 Какие средства по выбору предусмотрены в VM для уменьшения потерь производительности из-за нескольких уровней подкачек? 22.15 Что такое минидиск? Как СР работает с минидисками? 22.16 Почему пользователи VM разбиты на классы привилегированности? 22.17 Все команды CMS, доступные пользователю, хранятся в виде файлов на диске; они фактически не являются частью системы. Каковы достоинства и недо¬ статки такой схемы? 22.18 Почему иногда бывает удобно запустить несколько идентичных копий одной операционной системы под VM? Какова здесь альтернатива, если на уста¬ новке нельзя запустить VM? 22.19 Опишите черты VM, имеющие отношение к обеспечению безопасности. 22.20 От каких ключевых факторов зависит производительность системы VM? 22.21 Объясните, каким образом каждое из следующих средств может увеличить производительность VM: а) микропрограммные поддержки расширенной управляющей программы; б) микропрограммные поддержки виртуальных машин; в) микропрограммные поддержки СР; г) микропрограммные поддержки виртуальных интервальных таймеров. Литература (Ad66) Adair R.J., Bayles R. U., Ccmeau L. W., Creasy R. J., «А Virtual Machine System for the 360/40», Cambridge, Mass.: IBM Scientific Center Report 320—2007, May 1966. (At79) Attanasio C. R., «Virtual Control Storage-Security Measures in VM/370», IBM Systems Journal, Vol. 18, No. 1, 1979, pp. 93—110. (BU73a) Buzen J. P., Chen P. P., Goldberg R. P., «Virtual Machine Techniques for Improving System Reliability», IEEE Symposium on Computer Soft¬ ware Reliability, 1973, pp. 12—17.
Гл. 22 VM: Операционная система виртуальных машин 355 (BU73b) Buzen J. Р., Gagliardi U. О., «The Evolution of Virtual Machine Archi¬ tecture», Proceedings of AFIPS National Computer Conference, Vol. 42, 1973, pp. 291—299. (BU73c) Buzen J. P., Gagliardi U. O., «Introduction to Virtual Machines», Honey- well Computer Journal, Vol. 7, No. 4, 1973, pp. 245—250. (Ca75) Callaway P. H., «Performance Measurement Tools for VM/370», IВ NX Systems Journal, Vol. 14, No. 2, 1975, pp. 135—160. (Ca80) Canon M. D., Fritze D. H., Howard J. H., Howell T. D., Mitoma M. F., Rodriguez-Rosell J., «А Virtual Machine Emulator for. Performance Evaluation», Communications of the ACM, Vol. 23, No. 2, February 1980, pp. 71—80. (Ca78) Canon M. D., Howard J. H., Howell T. D., Mitoma M. F., Rodriguez- Rosell J., «Virtual Machine Emulation Facility for Performance Evalu¬ ation», IBM Technical Disclosure Bulletin, Vol. 21, No. 7, December 1978, pp. 3004—3005. (Co62) Corbato F. J., Merwin-Daggett M., Daley R. C., «An Experimental Time- Sharing System», Proc. Spring Joint Computer Conference (AFIPS), Vol. 21, 1962, pp. 335—344. (Cr81) Creasy R. J., «The Origin of the VM/370 Time-Sharing System», IBM Journal of R&D., Vol. 25, No. 5, September 1981, pp. 483—490. (Do79) Doherty W. J., Kelisky R. P., «Managing VM/CMS System for User Effec¬ tiveness», IBM Systems Journal, Vol. 18, No. 1, 1979, pp. 143—163. (Fo76) Forbes B., Weidner T., Yoder R., Pitchford T., «Realizing a Virtual Machine», Ninth Annual Workshop on Microprogramming, 1976, pp. 42—46. (Go71a) Goldberg R. P., «Hardware Requirements for Virtual Machine Systems», Proceedings of the 4th Hawaii International Conference on Systems Sciences, 1971, pp. 449—451. (Go71b) Goldberg R. P., «Virtual Machines: Semantics and Examples», IEEE Computer Society Conference, Boston, September 1971, pp. 141—142. (Go73) Goldberg R. P., «Architecture of Virtual Machines», Proceedingsof AFIPS Conference, Vol. 42, 1973, pp. 309—318. (Go74) Goldberg R. P., «Survey of Virtual Machine Research», Computer, Vol. 7, No. 6, June 1974, pp. 34—45. (He79) Hendricks E. C., Hartmann T. C., «Evolution of a Virtual Machine Subsystem», IBM Systems Journal, Vol. 18, No. 1, 1979, pp. Ill —142. (Ho79) Holley L. H., Parmelee R. P., Salisbury C. A., Saul D. N., «VM/370 Asymmetric Multiprocessing», IBM Systems Journal, Vol. 18, No. 1, 1979, pp. 47—70. (Je79) Jensen R. M., «А Formal Approach for Communication between Logically Isolated Virtual Machines», IBM Systems Journal, Vol. 18, No. 1, 1979, pp. 71—92. (Ke78) Kemen H., Nagel H. H., «Experiments with a Virtual Network Machine Concept for an Inhomogeneous Local Computer Network», Proceedings of Compcon Fall 78: Computer Communication Networks, IEEE, 1978, pp. 280—286. (Ma79) MacKinnon R. A., «The Changing Virtual Machine Environment: Inter¬ faces to Real Hardware, Virtual Hardware, and Other Virtual Machines», IBM Systems Journal, Vol. 18, No. 1, 1979, pp. 18—46. (Md69) Madnick S. E., «Time-Sharing Systems: Virtual Machine Comcept vs. Conventional Approach», Modern Data, Vol. 2, No. 3, March 1969, pp. 34— 36. (Md74) Madnick S. E., Donovan J. J., «Virtual Machine/370 (VM/370)», Operating Systems, New York: McGraw-Hill, 1974, pp. 549—563. (Mu79) Murphy M., «VM: A Basic Ingredient in Emergency Planning», Datamation} December, 1979, pp. 167—170. (Pa71) Parmelee R. P., «Virtual Machines: Some Unexpected Applications»* Proceedings of IEEE International Computer Society Conference, 1971» pp. 145—146. 12*
356 Часть 8 Примеры для изучения (Ра72) Parmelee R. Р., Peterson Т. I., Tillman С. С., Hatfield D. J., «Virtual Storage and Virtual Machine Concepts», IBM Systems Journal, Vol. 11,- No. 2, 1972, pp. 99—130. (Se79) Seawright L. H., MacKinnon R. A., «VM/370—A Study of Multiplicity and Usefulness», IBM Systems Journal, Vol. 18, No. 1, 1979, pp. 4—17. (Sh77) Shriver B. D., Anderson J. W., Hyams D. M., «Virtual Machine Monitor for a Distributed Minicomputer System», Microprocessors, Microprogramm¬ ing and Minicomputers, 1977, pp. 66—83. (Sr73) Srowdawa R. J., Bates Lee A., «An Efficient Virtual Machine Implemen¬ tation», Proceedings of AFIPS Conference, Vol, 42, 1973, pp. 301—308. (Ta78) TangT., O’Flaherty K., «Virtual Machines and the NCR Criterion», Datamation, Vol. 24, No.4, April 1978, pp. 129—134. (Te79) Tetzlaff W. H., «State Sampling of Interactive VM/370 Users», IBM Systems Journal, Vol. 18, No. 1, 1979, pp. 164—180. (Ve81) Verity J. W., «Goodbye 360, Hello VM», Datamation, December 1981, pp. 36—42. (We78) Weegenaar H. J., «Virtuality and Other Things Like That», Proceedings of Compcon Fall 78: Computer Communications Networks, IEEE, 1978, pp. 287—293. (Wi71) WinettJ.M., «Virtual Machines for Developing Systems Software», Proceedings of IEEE International Computer Conference, 1971, pp. 143— 144. Публикации IBM @ Concepts of a Virtual Machine, (Independent Study Program), IBM, Poughkeepsie, N. Y., 12602, 1979. ф IBM Virtual Machine Facility/370 Introduction, IBM Systems Library order number GC20—1800, IBM Corporation, Department D58, P. O. Box 390, Poughkeepsie, N. Y., 12602.
ПРИЛОЖЕНИЕ 1 Государственные стандарты по обработке информации Публикация 46 (FIPS PUB 46) 15 января 1977 г. Правительственный документ, не имеет авторских прав в США. Анонс Стандарт на шифрование данных Государственные стандарты по обработке информации издаются Национальным бюро стандартов (NBS) в соответствии со следующими документами: Federal Property and Administrative Services Act of 1949 с поправками, Public Law 89— 306 (79 Stat 1127), Executive Order 11717 (38 FR 12315, датирован 11 мая 1973) и Part 6 of Title 15 Code of Federal Regulations (CFR). Название стандарта: Стандарт на шифровку данных (DES). Категория стандарта: Финансовые операции, защита ЭВМ. Пояснение: Стандарт на шифровку данных (DES) определяет алгоритм, ко¬ торый надлежит реализовать в виде электронных устройств и использовать для криптографической защиты данных в ЭВМ. Настоящая публикация содержит полное описание математического алгоритма для зашифровки и расшифровки информации, представленной двоичным кодом. Зашифровка данных преобразует их в непонятную непосредственно форму, называемую зашифрованным сообще¬ нием (криптограммой). Расшифровка зашифрованного сообщения восстанавли¬ вает данные в первоначальном виде. Описанный в стандарте алгоритм опреде¬ ляет обе операции — шифрования и дешифрования. Эти операции опираются на некоторое двоичное число, называемое ключом. Ключ состоит из 64 двоичных цифр (нулей или единиц), из которых 56 битов используются самим алгоритмом, а остальные 8 битов служат для обнаружения ошибок. Криптографическая защита двоичных данных достигается при помощи алгоритма DES в совокупности с ключом. При генерации ключа 56 используемых в алгоритме битов выбираются случайным образом, а 8 контрольных битов уста¬ навливаются так, чтобы каждый 8-битовый байт ключа был нечетным, т. е. со¬ держал нечетное число единиц. Для того чтобы использовать зашифрованные данные, каждый член группы законных пользователей должен иметь при себе ключ, с помощью которого данные были зашифрованы. Этот ключ, общий для всех членов группы, используется для расшифровки данных, поступающих в виде криптограммы от остальных членов. Сам алгоритм шифрования, специфицирован¬ ный в настоящем стандарте, известен всем его пользователям. Выбор для каждого приложения уникального ключа делает уникальными и зашифрованные сообще¬ ния, получаемые по данному алгоритму. Различные ключи обеспечивают различие результатов шифрования для любого набора исходных данных. Криптографиче¬ ская защищенность информации определяется степенью защиты ключа, исполь¬ зуемого для зашифровки и расшифровки. Данные могут быть восстановлены из зашифрованного сообщения только при помощи того же ключа, по которому они были зашифрованы. Незаконный
358 Приложение 1 получатель зашифрованного сообщения, который знает алгоритм шифрования* но не имеет верного ключа, не сможет с помощью какого-либо алгоритма восста¬ новить исходное сообщение. Вместе с тем любой, кто знает и ключ, и алгоритм, сможет легко расшифровать зашифрованное сообщение и получить первоначаль¬ ные данные. Таким образом, стандартный алгоритм, основанный на использовании секретных ключей, позволяет организовать обмен зашифрованной машинной ин¬ формацией, при этом ключ шифрования сообщается лишь тем пользователям, которым разрешен доступ к этой информации. В настоящее время разрабатывают¬ ся новые Государственные стандарты по реализации и использованию DES, они будут опубликованы Национальным бюро стандартов. Стандарт утвержден министром торговли. Организации, выполняющие сопровождение: Institute for Computer Sciences and Technology (Институт информатики и технологии), National Bureau of Standards (Национальное бюро стандартов). Применимость: Настоящий стандарт будет использоваться государственными учреждениями и организациями для криптографической защиты компьютерных данных при выполнении следующих условий: 1. Должностное лицо или распорядитель, ответственные за сохранность ин¬ формации или защиту вычислительной системы, примут решение о необходимости криптографической защиты. 2. Защищаемая информация не имеет грифа секретности в соответствии с National Security Act of 1947 с поправками и Atomic Energy Act of 1954 с по¬ правками. Тем не менее государственные учреждения и организации, использующие шифровальные устройства для защиты информации, имеющей гриф по одному из перечисленных актов, могут для защиты информации без грифа применять вместо настоящего стандарта свои шифровальные устройства. Кроме того, настоящий стандарт может быть принят и использован в него¬ сударственных организациях. Такие применения одобряются, если они обеспе¬ чивают для коммерческих и частных организаций требуемую степень защиты. Данные, требующие защиты по мнению ответственного лица, и данные, имею¬ щие высокую стоимость или содержащие ценную информацию, должны под¬ вергаться шифрованию, если существует опасность их перехвата или незамечен¬ ной модификации в процессе передачи или во время хранения. Для определения потенциальных угроз должен выполняться анализ факторов риска под руковод¬ ством ответственного лица. Руководствами по такому анализу являются докумен¬ ты FIPS PUB 31 (Guidelines for Automatic Data Processing Physical Security and Risk Management) и FIPS PUB 41 (Computer Security Guidelines for Implementing the Privacy Act of 1974). Должны быть спланированы расходы на осуществление криптографической защиты с использованием настоящего стандарта; следует также проанализировать альтернативные методы обеспечения защиты и расходы на их осуществление. Ответственное лицо должно затем на основе проделанного анализа принять решение о том, следует ли использовать криптографическую защиту и настоящий стандарт. Приложения: Шифровка данных (криптография) может быть применена в самой разной обстановке для различных приложений. Конкретное приложение шифров¬ ки и реализация DES будут зависеть от многих факторов и в особенности от вы¬ числительной системы и связанных с ней компонент. В общих словах, крипто¬ графия используется для защиты данных в процессе их передачи между двумя пунктами или во время их хранения на носителе, допускающем физическую кражу. Защита передаваемых данных обеспечивается путем зашифровки их в пе¬ редающем пункте и расшифровке — в приемном. Защита файлов состоит в зашиф¬ ровке данных при записи их на носитель и расшифровке — при считывании»
Приложение 1 359 В первом случае во время передачи на обоих концах — передающем и приемном — необходимо одновременно иметь ключ. Во втором случае ключ должен хранить¬ ся и использоваться в течение всего периода хранения файла. Аппаратная реализация: Описанный в настоящем стандарте алгоритм должен реализовываться в компьютерах или связанных с ними устройствах передачи данных с использованием аппаратной (не программной) технологии. Конкретная реализация может зависеть от ряда факторов, таких, как приложение, среда работы, используемая технология и т. д. Данному стандарту удовлетворяют реализации в виде отдельного «чипа» на больших интегральных схемах (БИС), устройства, построенные из микросхем средней степени интеграции, или другие электронные устройства, предназначенные для выполнения операций алгоритма. Примерами последних являются микропроцессоры, использующие постоянные запоминающие устройства (ПЗУ), или микропрограммируемые устройства, ис¬ пользующие микрокод для выполнения аппаратных команд. Аппаратная реали¬ зация алгоритма, проверенная и утвержденная NBS, считается соответствующей стандарту. Процедуры для проверки и утверждения аппаратуры на соответствие стандарту могут быть получены в Systems and Software Division, National Bureau of Standards, Washington, D. C., 20234. Программные реализации на универсаль¬ ных ЭВМ не удовлетворяют стандарту. Информация о проверенных и удосто¬ веренных устройствах будет доступна всем организациям, имеющим связи с FIPS. Контроль экспорта: Шифровальные устройства и относящаяся к ним техническая информация подлежат правительственному экспортному контролю в соответствии с документами Title 22, Code of Federal Regulations, разд. 121 —128. Шифроваль¬ ные устройства, реализующие настоящий стандарт, и техническая информация о них должны удовлетворять вышеуказанным инструкциям. Патенты: Шифровальные устройства, реализующие настоящий стандарт, могут быть защищены патентами США и других стран от имени фирмы International Business Machines Corporation.. Однако фирма IBM обязуется выдавать всем без исключения бесплатные лицензии по своим патентам на производство, исполь¬ зование и продажу устройств, согласующихся со стандартом. Сроки, условия и область действия лицензий оговорены в заметках, опубликованных в Official Gazette of the United States Patent and Trademark Office, 13 мая 1975 г. и 31 ав¬ густа 1976 г. (934 О. G. 452 и 949 О. G. 1717). Альтернативные способы использования DES: В документе «Guidelines for Im¬ plementing and Using the Data Encryption Standard» описаны два режима исполь¬ зования описанного в настоящем стандарте алгоритма. Можно непосредственно вводить в устройство блоки данных длиной 64 бита, из которых под управлением ключа будут порождаться зашифрованные блоки. Такой способ работы назы¬ вается режимом электронной шифровальной книги. С другой стороны, шифро¬ вальное устройство можно использовать в качестве генератора потока битов, порождающего статистически случайные двоичные цифры, которые затем комби¬ нируются с исходными (незашифрованными) данными (от 1 до 64 битов) посред¬ ством логической операции «исключающее или». Чтобы обеспечить синхронизацию устройств зашифровки и расшифровки, на их вход всегда подаются предшествую¬ щие 64 бита переданного или принятого зашифрованного сообщения. Этот второй режим использования алгоритма называется режимом шифрования с обратной связью (CFB). В режиме электронной шифровальной книги порождаются за¬ шифрованные блоки по 64 бита. В режиме с обратной связью зашифрованное сообщение имеет столько же битов, что и исходное. В случае применения режима электронной шифровальной книги блоки зашифрованного сообщения не зависят друг от друга, тогда как в режиме с обратной связью каждый байт (группа битов) шифрованного сообщения зависит от предыдущих 64 битов. Дальнейшие разъяс¬ нения относительно двух режимов шифрования, кратко описанных здесь, содер¬ жатся в документе FIPS «Guidelines for Implementing and Using the Data Encryp¬ tion Standard»,
360 Приложение 1 Выполнение стандарта: Стандарт вступает в силу спустя шесть месяцев после опубликования данного документа. Ои применяется ко всем разрабатываемым правительственным системам автоматической обработки данных и соответствую¬ щим телекоммуникационным сетям, а также к уже функционирующим системам, если будет обнаружена необходимость в криптографической защите. Каждое правительственное учреждение или организация на основе своих требований по защите данных выпускает свои внутренние директивы об использовании на¬ стоящего стандарта в своих подразделениях. Национальное бюро стандартов NBS будет оказывать поддержку прави¬ тельственным организациям, подготавливая и издавая дополнительные руковод¬ ства по защите ЭВМ и помогая им в технических вопросах использования шиф¬ ровки данных. Для оказания такой технической помощи в NBS создана соот¬ ветствующая испытательная аппаратура. Агентство национальной безопасности поможет правительственным организациям в защите коммуникаций и в опреде¬ лении специфических требований! по безопасности. Генеральная служебная адми¬ нистрация (General Services Administration) обеспечит инструкции и правила по приобретению аппаратуры обработки данных, использующей настоящий стандарт. Спецификации: Federal Information Processing Standard (FIPS 46), стандарт на шифровку данных (DES) (прилагается). Указатель ссылок: a. FIPS PUB 31, «Guidelines to ADP Physical Security and Risk Management», b. FIPS PUB 39, «Glossary for Computer Systems Security», c. FIPS PUB 41, «Computer Security Guidelines for Implementing the Privacy Act of 1974», d. FIPS PUB — «Guidelines for Implementing and Using the Data Encryption Standard» (будет опубликовано). e. К реализации и использованию настоящего стандарта применимы и другие правительственные стандарты и стандарты FIPS. В частности, в совокупности с настоящим стандартом следует использовать Американский стандартный код для передачи информации (ASCII, FIPS PUB1) и другие связанные с ним стан¬ дарты на запоминающие устройства и передачу данных. Список принятых в на¬ стоящее время стандартов FIPS можно получить в Office of ADP Standards Mana¬ gement, Institute for Computer Sciences and Technology, National Bureau of Stan¬ dards, Washington, D. C. 20234. Качество: Определенный в настоящем стандарте алгоритм шифровки прообразует 64-битовое двоичное значение в единственное 64-битовое значение, основываясь на 56-битовой переменной. Если используются полные 64-битовые входные дан¬ ные (т. е. никакие из входных битов не являются заранее определенными) и если 56-битовая переменная выбирается случайно, то ни один метод, за исключением перебора всех возможных ключей при известных входных и выходных данных DES, не может гарантировань отыскания выбранного ключа. Поскольку имеется свыше 70 000 000 000 000 000 (семьдесят квадриллионов) ключей из 56 битов, вероятность подбора этим методом правильного ключа крайне мала. Более того, частые смены ключа в еще большей степени уменьшают риск. Тем не менее поль¬ зователям следует отдавать себе отчет в том, что теоретически возможно подобрать ключ за меньшее число попыток (с соответственно меньшей вероятностью успеха, зависящей от числа испытанных ключей), и поэтому нужно позаботиться о воз¬ можно более частой (в пределах возможностей) смене ключей. Чтобы минимизи¬ ровать риск перехвата или вычисления ключа посторонними, пользователи должны менять ключи и обеспечивать для них высокую степень защиты. Воз¬ можность вычисления правильного ключа может выявиться с развитием техноло¬ гии. Более полное рассмотрение способности данного алгоритма противостоять различным опасностям будет включено в Guidelines for Implementing and Using the DES,
Приложение 1 361 При корректной реализации и надлежащем использовании настоящий стан¬ дарт обеспечит высокую степень криптографической защиты компьютерных данных. Национальное бюро стандартов (NBS) при технической поддержке правительственных агентств, ответственных за защиту коммуникаций, опреде¬ лило, что алгоритм, описанный в настоящем стандарте, будет обеспечивать вы¬ сокую степень защиты в течение периода времени, превышающего обычный жиз¬ ненный цикл соответствующей аппаратуры обработки данных. Степень защиты, обеспечиваемая алгоритмом по отношению к новым потенциальным методам вскрытия шифров, будет рассмотрена в течение пяти лет с целью оценить адек¬ ватность алгоритма. Кроме того, как сам стандарт, так и возможные методы вскры¬ тия шифров, снижающие степень защиты при использовании стандарта, будут постоянно анализироваться NBS и другими компетентными правительственными организациями. Доступная к тому времени новая технология будет рассматри¬ ваться на предмет оценки ее влияния на стандарт. И наконец, если станет из¬ вестно о новых достижениях технологии или о математических изъянах алгорит¬ ма, то стандарт будет пересмотрен и NBS обеспечит необходимые изменения. Комментарии: Комментарии и предложения, касающиеся настоящего стандарта и его использования, просьба присылать помощнику директора по стандартам на автоматическую обработку данных (Associate Director for ADP Standards, Insti¬ tute for Computer Sciences and Technology, National Bureau of Standards, Washing¬ ton, D. C. 20234). Процедура отказа: Руководство любой правительственной организации может отказаться от принятия этого документа после согласования условий и обоснова¬ ний отказа с Национальным бюро стандартов. Отказ необходим, если в органи¬ зации для данных, подлежащих шифровке в соответствии с настоящим стандартом, должны применяться устройства, реализующие алгоритм, отличный от описан¬ ного в стандарте. Отказ не требуется, если используется аппаратура секретной передачи. Программная реализация настоящего алгоритма для производственной эксплуатации в вычислительных системах общего назначения не удовлетворяет настоящему стандарту, и в каждом случае такой реализации необходимо получить разрешение на отказ от стандарта. Программная реализация алгоритма для целей тестирования и оценки не требует согласования отказа. Не требует отказа про¬ граммная реализация других криптографических алгоритмов специального назначения для ограниченного использования в вычислительной системе (напри¬ мер, для шифровки файла паролей), а также программная реализация криптогра¬ фических алгоритмов, которые уже использовались в вычислительных системах до вступления в силу настоящего стандарта. Однако эти ограниченно используе¬ мые алгоритмы должны быть заменены на настоящий стандарт в случае совер¬ шенствования или пересмотра системы или аппаратуры с целью включения общей криптографической защиты компьютерных данных. Письма с объяснением харак¬ тера и причин отказа от стандарта следует направлять помощнику директора по стандартам на автоматическую обработку данных по указанному выше адресу. Национальное бюро стандартов рассмотрит письмо и ответит в течение 60 дней. Отказ не считается принятым до получения ответа из NBS; однако окончательное решение по принятию отказа остается за руководством конкретной организации. Где получить копии стандарта: Копии этого документа продаются Национальной службой технической информации (National Technical Information Service, U. S. Department of Com¬ merce, 5285 Port Royal Road, Springfield, Virginia 22161). В заказе указывать номер FIPS PUB и заголовок. Цены опубликованы в периодических каталогах и других изданиях. Оплата может выполняться посредством чека, денежного поручения, депозитного счета или кредитной карточки, принимаемой Нацио¬ нальной службой технической информации.
362 Приложение I Государственные стандарты по обработке информации Публикация 46 (FIPS PUB 46) 15 января 1977 г. Спецификации стандарта на шифровку данных Стандарт на шифровку данных (DES) включает описанный ниже алгоритм шифровки данных,.предназначенный для реализации в виде специализированных электронных устройств. Эти устройства должны проектироваться в расчете на их использование в вычислительных системах или сетях для обеспечения крипто¬ графической защиты данных, представленных в двоичном виде. Метод реализации зависит от применения и обстановки.^Устройства должны выполняться так, чтобы можно было проверить, что они точно осуществляют предписанные алгоритмом преобразования. АЛГОРИТМ ШИФРОВКИ ДАННЫХ Введение Алгоритм предназначен для зашифровки и расшифровки блоков данных длиной по 64 бита под управлением 64-битового ключа. Расшифровка должна выполняться с использованием того же ключа, что при зашифровке, но с обраще¬ нием порядка адресации битов ключа, так что процесс расшифровки обратен процессу зашифровки. К блоку, подлежащему зашифровке, применяется началь¬ ная перестановка IP, затем сложная, зависящая от ключа вычислительная про¬ цедура и, наконец, перестановка, обратная начальной, ГР"1. Зависящая от ключа вычислительная процедура легко выражается через некоторую функцию f, на¬ зываемую функцией шифровки, и функцию A'S, называемую функцией выбора ключей. Сначала дается описание вычислительной процедуры и объясняется, как использовать алгоритм для зашифровки. Затем описывается использование алго¬ ритма для расшифровки. В конце дается определение функции f в терминах примитивных функций Sf, называемых функциями выбора, и функции пере¬ становки Р. Функции S/, Р и A'S, используемые в алгоритме, приведены в при¬ ложении 1(a). Будем использовать следующие общепринятые обозначения: Если даны два блока битов L и R, то LR будет обозначать блок, состоящий из битов L, за которыми следуют биты R. Эта операция конкатенации ассоциативна, поэтому ВГВ2...В8 будет обозначать блок, составленный из битов В1г вслед за ними — битов В2, ... , в конце — битов В8. Зашифровка Общая схема процесса зашифровки приведена на рис. 1. 64 бита входного блока, подлежащего зашифровке, первоначально подвер¬ гаются следующей перестановке, называемой начальной перестановкой IP. IP 58 50 42 34 26 18 10 2 60 52 44 36 28 20 12 4 62 54 46 38 30 22 14 6 64 56 48 40 32 24 16 8 57 49 41 33 25 17 9 1 59 51 43 35 27 19 11 3 61 53 45 37 29 21 13 5 63 55 47 39 31 23 15 7
Приложение 1 363 Рис. 1 Зашифровка. Таким образом, первым битом переставленных входных данных является бит 58 входного блока, вторым битом — бит 50 входного блока и т. д., последним битом переставленных входных данных является бит 7 входного блока. Переставленный входной блок передается затем в качестве входных данных сложной, зависящей
.364 Приложение 1 от ключа вычислительной процедуре, которая описана ниже. Ее результат, назы¬ ваемый предварительным результатом алгоритма, подвергается следующей пере- становке, которая обратна начальной перестановке: IP-1 40 8 48 16 56 24 64 32 39 7 47 15 55 23 63 31 38 6 46 14 54 22 62 30 37 5 45 13 53 21 61 29 36 4 44 12 52 20 60 28 35 3 43 11 51 19 59 27 34 2 42 10 50 18 58 26 33 1 41 9 49 17 57 25 Таким образом, первым битом результата алгоритма является бит 40 предвари¬ тельного результата, вторым битом — бит 8 предварительного результата и т. д., последним битом результата является бит 25 предварительного результата. Вычислительная процедура, использующая в качестве входных данных переставленный входной блок и получающая предварительный результат, со¬ стоит, за исключением заключительной перестановки блоков, из 16 итераций, которые описаны ниже в терминах функции шифровки f. Эта функция работает над двумя блоками — один из 32 битов и другой из 48, и порождает блок из 32 битов. Пусть 64-битовый входной блок какой-нибудь итерации состоит из двух последо¬ вательных 32-битовых блоков L и R. С использованием описанных во введении обозначений входной блок запишется как LR. Пусть К будет 48-битовым блоком, выбранным из 64-битового ключа. Тогда результат итерации L'R' в применении к блоку определяется следующим образом: (1) L'=R, /?'=£©/ (R, /Q, где ф обозначает операцию поразрядного сложения по модулю 2, Как отмечено выше, входным для первой итерации вычислительной процедуры является переставленный входной блок. Если L-R' есть результат 16-й итерации, то R'L' будет предварительным результатом алгоритма. На всех итерациях ис¬ пользуются различные блоки К, выбираемые из 64-битового ключа, который будет обозначаться KEY. Введя дополнительные обозначения, мы можем более детально описать итерации вычислительной процедуры. Пусть KS есть функция, воспринимающая в качестве входных данных целое число п в диапазоне от 1 до 16 и 64-битовый блок KEY и порождающая 48-битовый блок Кп, который является перестановкой некоторого подмножества битов из KEY. Таким образом, (2) Kn=KS(n, KEY), где Кп определяется значениями разрядов в 48 различных позициях KEY. Функ¬ ция KS называется функцией выбора ключей, поскольку в качестве блока К на п-й итерации (1) используется блок Кп, определяемый (2). Запишем, как и раньше, переставленный входной блок в виде LR. Кроме того, пусть Lo и Rq обозначают L и R, a Ln и Rn соответственно, L' и R' в (1), .где вместо L и R подставляются Ln-i и Rn-if а вместо К~~Кп\ таким образом,
Приложение 1 365 для п в диапазоне от 1 до 16 (3) Ln = Rn_i, Rn — ^n-i ф f (Rn-i> Rn)- Тогда предварительным результатом алгоритма будет блок Функция выбора ключей RS, используемая в алгоритме, детально описана в приложении 1 (а). Эта функция порождает 16 ключей Кп, требуемых алгоритмом. Расшифровка Перестановка 1Р~г, применяемая к блоку предварительного результата, яв¬ ляется обратной к перестановке IP, применяемой к входному блоку. Далее, из (1) следует, что (4) R = L', L = R'Q)f(L', /(). Следовательно, для расшифровки нужно лишь применить к зашифрованному блоку точно тот же алгоритм, обеспечив использование на каждой итерации расшифровки того же блока битов ключа К, что был использован при зашифровке блока. В обозначениях предыдущего раздела эти действия могут быть записаны в виде следующих уравнений: (5) Rn-\ = Ln, Ln-i = Rn®f(L„, Кп)> где на сей раз /?i6T1G— переставленный входной расшифровываемый блок, а £о^о— блок предварительного результата. Таким образом, для процесса расшиф¬ ровки с переставленным входным блоком Ri6L16 на первой итерации исполь¬ зуется /С16, /<15 — на второй ит. д., используется на 16-й итерации. Функция шифровки f Общая схема вычисления f (R, К) приведена на рис. 2. Пусть Е обозначает функцию, принимающую блок из 32 битов и порождаю¬ щую блок из 48 битов. Пусть Е такова, что 48 битов ее результата, записанные в виде восьми блоков по 6 бигов, получаются путем выбора битов из входных данных в соответствии со следующей таблицей: Таблица выбора битов для Е 32 1 2 3 4 5 4 5 6 7 8 9 8 9 10 11 12 13 12 13 14 15 16 17 16 17 18 19. 20 21 20 21 22 23 24 25 24 25 26 27 28 29 28 29 30 31 32 1 Таким образом, первыми тремя битами Е (R) будут биты, стоящие в позициях 32, 1 и 2 блока R, а последними двумя битами Е (Я)—биты из позиций 32 и 1е
366 Приложение I Рис. 2 Вычисление f (R, К). Каждая из функций выбора Sj, S2, ... , S8 принимает в качестве входных дан¬ ных 6-битовый блок и порождает 4-битовый блок. Для иллюстрации ниже приво¬ дится таблица рекомендуемой функции из 6 битов. Первый и последний биты В представляют в двоичной системе некото¬ рое число от 0 до 3. Обозначим это число i. Средние 4 бита В представляют в дво¬ ичной системе число от 0 до 15. Обозначим это число /. Следует найти в таблице число в f-й строке и /-м столбце. Это число лежит в диапазоне от 0 до 15 и одно¬ значно записывается в виде блока из 4-х битов. Этот блок и будет результатом Si(5) применения функции к входному блоку В. Например, для входного блока 011011 строка есть 01, т. е. 1, а столбец определяется записью 1101, это столбец 13. В строке 1 и столбце 13 находится число 5, гак что результатом будет
Приложение 1 367 0101. Функции выбора , S2, ... j S8, используемые в алгоритме, приведены в приложении 1(a). Перестановочная функция Р порождает 32-битовый результат из 32-битовых входных данных путем перестановки входных битов. Эта функция определяется следующей таблицей: Р 16 7 20 21 29 12 28 17 1 15 23 26 5 18 31 10 2 8 24 14 32 27 3 9 19 13 30 6 22 11 4 25 Результат Р (L) функции Р в соответствии с таблицей получается из входных данных L путем выбора 16-го бита L в качестве первого бита Р (Л), 7-го бита — в качестве второго бита Р (L) и т. д., и, наконец, 25-й бит L принимается в ка¬ честве 32-го бита Р (L). Перестановочная функция Р алгоритма воспроизведена также в приложении 1(a). Пусть теперь Sj, ... , S8 — восемь различных функций выбора, Р — пере¬ становочная функция и Е — функция, описанная выше. Чтобы определить f (R, К), определим сначала блоки ... , В8. Это такие блоки длиной по 6 битов каждый, для которых (6) в152...в8=ке^(/?). Блок f (R, К) теперь определяется как (7) Р (S1(B1)S2(B2)...S8(Bq)). Таким образом, /СфЕ(Р) сначала разбивается на 8 блоков в соответствии с (6). Затем каждый блок В; используется в качестве входных данных для функции Sz-, и 8 блоков SifZy, S2(B2), ... , S8(P8) по 4 бита каждый объединяются в единый блок из 32 битов, являющийся входным для функции Р. Ее результат (7) и яв¬ ляется результатом функции /, примененной к R и К. Приложение 1(a) Примитивные функции для алгоритма шифровки данных Выбор примитивных функций KS, Sx, ... , S8 и Р решающим образом влияет на надежность шифровки, обеспечиваемую алгоритмом. Ниже определен реко¬ мендуемый набор функций, описывающих Sx, ... , S8 и Р таким же способом, как они описывались в алгоритме. Интерпретацию таблиц этих функций см. в тексте спецификации алгоритма. Примитивные функции Sx, ... , S8 следующие:
3 68 Приложение I ! 14 4 13 1 2 15 11 8 3 10 6 12 5 9 0 7 0 15 7 4 14 2 13 1 10 6 12 11 9 5 3 8 4 1 14 8 13 6 2 11 15 12 9 7 3 10 5 0 15 12 8 2 4 9 1 7 5 11 3 14 10 0 6 13 15 1 8 14 6 11 3 4 9 7 2 13 12 0 5 10 3 13 4 7 15 2 8 14 12 0 1 10 6 9 11 5 0 14 7 11 10 4 13 1 5 8 12 6 9 3 2 15 13 8 10 1 3 15 4 2 11 6 7 12 0 5 14 9 S3 10 0 9 14 6 3 15 5 1 13 12 7 11 4 2 8 13 7 0 9 3 4 6 10 2 8 5 14 12 11 15 1 13 6 4 9 8 15 3 0 11 1 2 12 5 10 14 7 1 10 13 0 6 9 8 7 4 15 14 3 11 5 2 12 S< 7 13 14 3 0 6 9 10 1 2 8 5 11 12 4 15 13 8 11 5 6 15 0 3 4 7 2 12 1 10 14 9 10 6 9 0 12 11 7 13 15 1 3 14 5 2 8 4 3 15 0 6 10 1 13 8 9 4 5 11 12 7 2 14 Ss 2 12 4 1 7 10 11 6 8 5 3 15 13 0 14 9 14 11 2 12 4 7 13 1 5 0 15 10 3 9 8 6 4 2 1 11 10 13 7 8 15 9 12 5 6 3 0 14 11 8 12 7 1 14 2 13 6 15 0 9 10 4 5 3 Se 12 1 10 15 9 2 6 8 0 13 3 4 14 7 5 11 10 15 4 2 7 12 9 5 6 1 13 14 0 11 3 8 9 14 15 5 2 8 12 3 7 0 4 10 1 13 11 6 4 3 2 12 9 5 15 10 11 14 1 7 6 0 8 13 4 11 2 14 15 0 8 13 3 12 9 7 5 10 6 1 13 0 11 7 4 9 1 10 14 3 5 12 2 15 8 6 1 4 11 13 12 3 7 14 10 15 6 8 0 5 9 2 6 11 13 8 1 4 10 7 9 5 0 15 14 2 3 12 S« 13 2 8 4 6 15 11 1 10 9 3 14 5 0 12 7 1 15 13 8 10 3 7 4 12 5 6 11 0 14 9 2 7 11 4 Г 9 12 14 2 0 6 10 13 15 3 5 8 2 1 14 7 4 10 8 13 15 12 9 0 3 5 6 11
Приложение 1 369 Примитивная функция Р такова: 16 7 20 21 29 12 38 17 1 15 23 26 5 18 31 10 2 8 24 14 32 27 3 9 ?9 13 30 6 22 11 4 25 Напомним, что Кп для 1^/г^16 — блок из 48 битов в формуле (2) в алгоритме. Следовательно, для определения /<£ достаточно описать вычисление Кп по* KEY для п=1, 2, ... , 16. Это вычисление иллюстрируется рис. 3. Чтобы завершить определение KS достаточно, следовательно, описать две переставленные выборки, а также правила для сдвигов влево. В каждом 8-битовом байте ключа KEY один бит может быть использован для обнаружения ошибок при порождении, рас¬ пространении и хранении ключей. Биты 8, 16, , 64 служат для обеспечения нечетной суммы битов каждого байта. Переставленная выборка 1 определяется следующей таблицей; РС-1 57 49 41 33 25 17 9 1 58 50 42 34 26 18 10 2 59 51 43 35 27 19 11 3 60 52 44 36 63 55 47 39 31 23 15 7 62 54 46 38 30 22 14 6 61 53 45 37 29 21 13 5 28 20 12 4 Таблица разделена на две части. , первая из которых определяет выбор битов, образующих Со, а вторая — выбор битов для Z)o. Биты ключа KEY занумерованы от 1 до 64. Биты Со — это соответственно биты 57, 49, 41,- , 44 и 36 ключа KEY, a Dq образуется из битов 63, 55, 47, , 12 и 4 ключа. Описав Со и Do, мы теперь определим способ получения блоков Сп и Dn из блоков и Dfl_i соответственно для п=1,2,... 16. Этот способ состоит в выполнении сдвигов влево каждого блока согласно следующей таблице: Номер итерации Число сдвигов влево 1 1 2 1 3 2 4 2 5 2 6 2 7 2 8 2 9 1 10 2 И 2 12 2 13 2 14 2 15 2 16 1 13 № 58'|
370 Приложение 1 т С, ■ d С Сдвиги влево J т 1 Сп Dn . I С Сдвиги Л влево у Т ' hJ Рис. 3 Выбор ключей. 'Переставленная} ^ выборка 2 J г Переставленная} . „ ч выборка 2 п //7ересшабленная\_^ к - А. выборка 1) Например, С3 и D3 получаются из С2 и D2 соответственно посредством двух сдви¬ гов влево, а С16 и D1G получаются из С15 и D15 посредством одного сдвига влево. Во всех случаях под сдвигом влево понимается циклическое перемещение битов па одну позицию влево, так что после одного сдвига влево в 28 позициях резуль¬ тата будут исходные биты, прежде занимавшие позиции 2, 3, , 28, 1.,
Приложение 1 371 Переставленная выборка 2 определяется следующей таблицей; РС-2 14 17 11 24 1 5 3 28 15 6 21 10 23 19 12 4 26 8 16 7 27 20 13 2 41 52 31 37 47 55 30 40 51 45 33 48 44 49 39 56 34 53 46 42 50 36 29 32 Таким образом, первым битом Кп будет 14-й бит CnDn, вторым — 17-й 47-м битом Кп будет 29-й бит CnDni 48-м битом — 32-й бит CriDn. 13*
ПРИЛОЖЕНИЕ 2 Операционная система OS/VS2 MVS . ВВОД-ВЫВОД УДАЛЕННЫХ ЗАДАНИИ Локальный выводзаданий Локальныйвводзаданий | Центральная консоль оператора аннье алравляю- -Фцнкции, Главный// Каталогизир роиедиры I I I I J анные /Ш% Управляю' функциональ¬ ные консоли ///////// Создание; /памяти/ Сист. вывод ///С////, - рист.ввод/ => ■заданий/ '*<///////' /Пббсйст'/ очереди/- /заданий// 11 II Щелевмё| I ill параметры II III 11 производительности событие Менеджер! 'I всаомогат. |ooccmoHOJJl J1J Системн. событие ATTACH^ DETACH lllllllllllllllllllllll |ШеИ ЕЯ 1™^р] 1^ёамр Ut-VAI-'JI пстАгиПАило Г1лп9плмм1 [таймера! Hiuuhuiil программы восстоновл.
Приложение 2 373 ПОЛЬЗОВАТЕЛИ Удаленные терминальГ wj/imkjh память гт|ГГ'—imn lAeniOMU/nuMj ^Ki/рналЫ' Локальные терминалы Статус системы программы СР Общая область памяти Рабочая{(шасть. 'планировщики/^ j Нользователь Ядро Биртуальнпя намять Обработчик, прерываний, t [ f j; Пользователь Пользователь Пользователь I I • I 1 I ' Поддержка! мен ’ еосс Менеджеру Лростравспь ви на дисках" Б— xKunia/162 ■hnl ХсХХ „ ЕГ Ц_| Лрогриммы^ □ tcPj внешняя (вспомогательная) стрцнцчная память Системные множества данных База данных и библиотеки программ Процессоршроцессор \ ЕХСР \\K\ySAM А Процессор Процессор Процессор $Х\$^<ХХХСисгпема ;|ч;,П Очередь запросов j '/| i на обслуживание i i ii|iihiiNiHhJijij!!!!! ; ;;| Диспетчер J1 ■i.|. ср 1
Именной указатель Ауслепдер (Auslender) 2: 287 Адамс (Adams) 1: 63 Белл (Bell) 2: 124 Билейди (Belady) 1: 262 Быозен (Buzen) 2: 94 Бэран (Baran) 2: 130 Ван Хорн (Van Horn) 2: 167 Вирт (Wirth) 1: 99, 2: 196 Лукас (Lucas) 2: 66, 70, 83 Лэмпорт (Lamport) 1: 114 Макгайр (Me Guire) 1: 114 Мак-Киннон (Me Kinnon) 2: 347 Парнас (Parnas) 1: 137 Прайс (Price) 2: 155 Райвест (Rivest) 2: 175, 184 Ритчи (Ritchie) 2: 193 Pome (Rauscer) 1: 63 Сулзбергер (Sulzberger) 2: 64 Гольдберг (Goldberg) 2: 94 Гурман (Gorman) 1: 137 Томас (Thomas) 2: 133 Томпсон (Thompson) 2: 193 Тецлафф (Tetzlaff) 2: 347 Дейвис (Davies) 2: 130 Дейкстра (Dijkstra) Г. 101, 106; 114, 117 Дейтел (Deitel) 1: 90 Деккер (Dekker) 1: 106, 113, 122 Деннинг (Denning) 1: 267, 269, 281, 2: 13 Деннис (Dennis) 2: 167 Джиффин (Giffin) 2: 99 Кендалл (Kendall) 2: 97, 98 Кнут (Knuth) 1: 114 Конант (Connant) 2: 64 Коннели (Connely) 2: 140 Коффман (Coffman) 1: 165 Куртуа (Courtois) 1: 137 Линде (Linde) 2: 177 Ликлайдер (Licklider) 2: 124 Лирсон (Learson) 2: 349 Литтл (Little) 2: 91, 99, 100, 106 Лорин (Lorin) 1: 90 Уилкс (Wilkes) 1: 60 Форсдик (Forsdick) 2: 133 Хавендер (Havender) 1: 166 Хансен (Hansen) 1: 99, 115, 132 Хеймане (Heymans) 1: 137 Холт (Holt) 1: 72, 189 Хоор (Hoare) 1: 132, 137 Шамир (Shamir) 2: 175, 184 Шантц (Schantz) 2: 133 Шедлер (Shudler) 1: 262 Шекспир Шерр (Scherr) 2: 282 Эдлеман (Adleman) 2: 175, 184 Эйзенберг (Eisenberg) 1: 114 Элфик (Elphick) 1: 165
Предметный указатель Абсолютный загрузчик (absolute loader) 1: 59 Аварийный останов (abend) 2: 313 Автономный контроллер (off-line control units) 1: 49 — режИлМ (off-line operation) 1: 49 Авторизация (представление права на доступ) (autorization) 2: 161, 182 Администратор базы данных (data base administrator) 2: 50 — ресурсов (resource manager) Г. 163 — системы (systems administrator) 1: 22 Адрес абсолютный (absolute address) 2: 294, 316 — базовый (base address) 1: 228, 232 — виртуальный (virtual address) 1: 52, 222, 230, 239, 2: 293, 294, 316 — реальный (real address) 1: 222, 2: 294, 316 Адресация относительная (типа ба¬ за + смещение) (base-plus-displa¬ cement addressing) 1: 51, 68 — трехкомпонентная, трехмерная (three dimensional addressing) 1: 246, 247 Адресное пространство (address spa¬ ce) 1: 54, 2: 293, 305 Активизация процесса (activation of process) 1: 293 Активное ожидание (в цикле) (busy wait) 1: 122 — состояние (active state) 1: 83 Алгоритм банкира (Banker’s algo¬ rithm) 1: 170, 174, 175, 183 — Деккера (Dekker’s algorithm) 1: 106, 112, 113, 122, 131 — Лэмпорта, алгоритм кондитера (Lamport’s bakery algorithm) 1: 114, 115 Альтернативный индекс (alternate index) 2: 303 Анализ шифра (cryptanalysis) 2: 173, 176, 189 Аналитическая модель (analytic model) 2: 70, 73, 79, 91, 116 Аномалия FIFO (FIFO anomaly) 1: 263 Аппаратура (hardware) 1: 45, 62, 67 Архитектура мультипроцессорная (multiprocessor architecture) 1: 320, 321, 346 Асимметричная многомашинная сис¬ тема (Asimmetric Multiprocessing System, AMS) 2: 288 Асинхронность (asynchronism) 1: 99 Асинхронные процессы (asynchro¬ nous processes) 1: 99, 100 — — параллельные (asynchronous concurrent processes) 1: 106 Ассемблер (assembler) 1: 55, 69 Ассоциативная память (associative storage) 1: 233 База данных (database) 2: 32, 48, 56 — — иерархическая (hierarchical) 2: 51, 57 — — распределенная (distributed database) 2: 51, 53, 57 — — реляционная (relational) 2: 51, 54, 55, 57 — — сетевая (network database) 2: 51, 52, 57 Базовая дисковая операционная си¬ стема (Basic Disk Operating System, В DOS) 2: 257, 263, 280 — система ввода-вывода (Basic Input Output System, BIOS) 2: 257, 261, 263, 280 Байт-мультиплексный канал (byte multiplexor channel) 1: 50, 68 Балансное множество (balance set) 2: 229, 230, 232, 234 Барабан магнитный (drum) 2: 5 Безопасная система (secure system) 2: 173 Безопасное, защищенное ядро (securi¬ ty kernel) 2: 165, 166, 183, 188
376 Предметный указатель Безопасность, защита (security) 2: 138, 139, 159—161, 182 — внешняя (external) 2: 160 — внутренняя (internal) 2: 160 — интерфейса с пользователем (user interface security) 2: 160 — операционная (operational) 2: 160 — требования (security require¬ ments) 2: 159 — физическая (physical) 2: 160 Безопасные программы (surveillance programs) 2: 162, 188 Бесконечное откладывание (indefini¬ te postponement) 1: 159, 163 Библиотеки подпрограмм (subrouti¬ ne libraries) 1: 59 Бит-признак модификации (modified bit) 1: 264 — — защиты (protection bit) 1: 244 — — обращения (referenced bit) 1: 264 — — присутствия (residence bit) 1: 231, 244 Битовая карта распределения диска (allocation bit map) 2: 268, 269 Блок (block) 1: 227 — данных группы устройств (Device Data Block, DDB) 2: 225, 248, 251 — запроса канала (Channel Request Block, CRB) 2: 251 — мультиплексный канал (block multiphexor channel) 1: 50, 68 — сообщений о прерываниях (Inter¬ rupt Dispatch Block, IDB) 2: 248, 251 — управления процессом (Process Control Block, PCB) 1: 80, 81, 92, 122, 2: 248 файлом (file control block) 2: 44 — управляющий адаптера (Adaptor Control Block, ACB) 2: 248, 251 — — устройства (Unit Control Block, UCB) 2: 248 Блокирование / возобновление (block/wakeup) 1: 119 — процесса (block process) 1: 81, 85 Блокировка (защитная) памяти (sto¬ rage interlock) 1: 106 Буфер (buffer) 1: 47 — быстрого преобразования адре¬ сов (Translation Lookaside Buffer, TLB) 2: 293 — кольцевой (ring) 1: 135, 137, 148 Буферизация (buffering) 2: 32, 34, 55 двойная (double-buffering) 1: 47, 2: 33 — простая (single buffering) 1: 47 — с переключением, триггерная (flip-flop buffering) 1: 47 Ввод-вывод записей (record I/O) 2: 204 — — потока (flow I/O) 2: 204 с прямым доступом (direct access I/O) 2: 203, 204 Вектор связи (Communication Vec¬ tor Table, CVT) 2: 306 Версии систем IBM (IBM Systems versions) 2: 327, 332 Вертикальный микрокод (microcode vertical) 1: 61, 70 Взаимодействие процессов (Interpro¬ cess communication) 2: 246 Взаимоисключение (mutual exclu¬ sion) 1: 103, 115, 117, 167, 339 Видимая сеть (visible network) 2: 138 Виртуальная консоль (virtual conso¬ le) 2: 331, 337 — машина (virtual machine) 1: 26, 2: 325—330, 342 — память (virtual storage) 1: 34, 52, 54 221 — цепь (virtual circuit) 2: 132, 133 Виртуальное слово состояния (vir¬ tual state word) 2: 333 — состояние (виртуальный режим) «задача» (virtual problem state) 2: 333, 334 — — «супервизор» (virtual supervi¬ sor state) 2: 333, 334 Виртуальные регистры (virtual re¬ gisters) 2: 333 Виртуальный последовательный ме¬ тод доступа (Virtual Sequential Access Method, VSAM) 2: 300 — равен реальному (virtual equals real) 2: 336, 347 — телекоммуникационный метод до¬ ступа (Virtual Telecommunication Access Method, VTAM) 2: 200, 301 Включающий язык (host language) 2: 50 Возобновление процесса (resume, ac¬ tivate a process) 1: 81 Восстановление (recovery) 2: 30, 47, 56 — после тупика (deadlock recovery) 1: 159, 166, 179, 180 Время доступа (accesstime) 2: 7, 21 — загрузки (load time) 1: 59 — заключительное (teardown time) 1: 27 — обслуживания (service time) 2: 95, 103, 116
Предметный указатель 377 — ожидания (latency) 2: 7 — ответа (responce time) 2: 68, 79 — передачи (обмена) (transmission time) 2: 8 — подготовительное (setup) 1: 27, 199 — поиска (цилиндра) (seek time) 2: 7, 21 — реакции системы (system reaction time) 2: 68, 79 — реальное календарное (wall clock) 1: 49 Временная локальность (temporal locality) 1: 266 Встроенные команды (builtin com¬ mands) 2: 269 Вталкивание процесса (inswapping) 2: 201, 229—231, 247 Вход в монитор (monitor entry) 1: 132 — взаимоисключения (entermutua¬ lexclusion) 1: 104, 105, 118 Входящий поток (arrivals) 2: 94 — — пуассоновский (Poisson ar¬ rivals) 2: 96, 100, 116 Вызов монитора (monitor calls) 1: 22 — супервизора (supervisor calls) 1:22 Вызывающая задача (Ada) (Caller task (Ada)) 1: 142 Выталкивание дольше всего не ис¬ пользовавшейся страницы (least recenty used (LRU) page replace¬ ment) 1: 263 — не использовавшейся в последнее время страницы (not used recently (NUR) page replacement) 1: 264 — первой пришедшей страницы (FIFO) first in first out page rep¬ lacement) 1: 261 — процесса (outswapping) 2: 201, 228—231, 247 — реже всего используемой страни¬ цы (least frequently used (LFU) page replacement) 1: 264 — случайной страницы (random page replacement) 1: 261 Выход взаимоисключения (exitmu¬ tualexclusion) 1: 104—106, 114, 118 Выходные точки (exit points) 2: 315 Вычисления параллельные (paral¬ lel processing) 1: 100, 102 Вычислительные сети (computer net¬ working) 1: 25 Гипотеза о дефектах, методология (flaw hypothesis methodology) 2: 177—179, 185 подтверждение (confirma¬ tion) 2: 176, 181 — — порождение (generation) 2: 181 Главная трасса (master trace) 2: 314, 318 — управляющая программа (main control program) 1: 30 Главный индекс (master index) 2: 20 — планировщик (master scheduler) 2: 295, 296 — подчиненный (master — slave) 1: 335, 337 — процессор (master processor) 1: 335, 337 — узел (master node) 2: 275 Глобальная секция (global section) 2: 246 Головки чтения-записи (read write heads) 2: 7, 8 Горизонтальный микрокод (microco¬ de horizontal) 1: 61, 70 Граничный регистр (bound register, boundary register) 1: 48, 198, 203 Граф запросов (query graph) 1: 177 — распределения ресурсов (resour¬ ce allocation graph) 1: 161, 177 Дамп автономный (stand-alone dump) 2: 314, 318 — ABEND (ABEND dump) 2: 313, 318 — SVC (SVC dump) 2: 313, 314, 318 Дампинг (разгрузка) инкрементный или пошаговый (incremental dum¬ ping) 2: 47, 56 Двоичный семафор (binary semapho¬ re) 1: 117, 143 Дейтаграмма (datagram) 2: 132, 133 Дескриптор процесса (process des¬ criptor) 2: 265, 271, 281 — файла (file descriptor) 2: 44, 56, 199, 202 Деспулер (despooler) 1: 137 Дешифрование (decryption) 2: 173— 175, 184, 185 Диалоговая мониторная система (conversational Monitor System, CMS) 2: 328, 329, 341 Диалоговый режим (conversational mode) 1: 23 Динамические приоритеты (dynamic priorities) 1: 299, 306 Динамическое микропрограммирова¬ ние (dynamic microprogramming) 1: 60 — преобразование адресов (dyna¬ mic address translation, DAT) 1: 223, 231, 240, 247, 249
378 Предметный указатель Директорий (справочник, оглавле¬ ние) (directory) 2: 197, 205 — корневой (root directory) 2: 207, 216 — пользователя (user directory) 2: 37 — системный (system directory) 2: 207 — файла (file directory) 2: 37 — VM (VM directory) 2: 340, 341 Диск винчестерский (жесткий) (winc¬ hester disk) 2: 256 — гибкий (floppy disk) 2: 227, 256, — магнитный, дисковое устройство (disk) 2: 5 Дисковая поверхность (disk surface) 2: 7 Дисковое устройство с перемещаю¬ щимися головками (moving head magnetic disk) 2: 6, 7 Дисковый контроллер (disk contro¬ ller) 2: 18, 19 Дисперсия времени ответа (variance in responce times) 2: 9, 10, 69 Диспетчер (dispatcher) 1: 79, 293, 2: 295, 310 Диспетчерование (dispatching) 1: 293 Дисциплина планирования (schedu¬ ling discipline) 1: 294 — FIFO (первый пришедший обслу¬ живается первым) (first-in-first- out-discipline) 1: 117, 122, 134, 143 Домен (domain) 2: 54 Дорожка (track) 2: 17 Доступ для выполнения (excute ac¬ cess) 1: 241, 242, 2: 30, 165 — — дополнения (append access) 1: 241, 242 — — записи (write access) 1: 241, 242, 2: 30, 165 — — чтения (read access) 1: 241, 242, 2: 30, 165 — по адресу записи в файле (re- cord’s file address access) 2: 240, 244 — — ключу (key access) 2: 243 — последовательный (sequential access) 2: 240 — прямой (random access) 2: 243 Дочерний процесс (child process) 1: 82, 2: 200 Драйвер устройства (device driver) 2: 238, 251, 260 Дружественная система (user fren- dly system) 1: 26 Единица обслуживания (service unit) 2: 305 — работы оперативно не переключае¬ мая (nonpreemptive unit of work) 2: 295 — — — переключаемая (preempti¬ ve unit of work) 2: 295 Ждать (wait) 2: 200 Жесткая (пошаговая) синхронизация (lockstep synchronization) 1: 108 Живучие системы (survivable sys¬ tems) 2: 166, 183, 189 Журнальный диск (logging disk) 2: 47 Зависимость (от) данных (data de¬ pendence) 2: 50, 57 Загрузка (utilization) 2: 69 — командных файлов по сети (down line command file loading) 2: 146 Загрузочный модуль (load image) 1: 59, 60 Загрузчик (loader) 1: 58, 59 — перемещающий (relocating loa¬ der) 1: 59, 70 — связывающий (linking loader) 1: 59 Задача (task) 2: 309 — обслуживающая (Ада) (server task (Ada)) 1: 142 — связи (communication task) 2: 309 Задержка (pending) 1: 88 — на поиск записи на дорожке (ro¬ tational delay) 2: 8 Заказчик (requestor) 2: 255, 273 Закон больших чисел (law of large numbers) 2: 99 Закрыть файл (close a file) 2: 29, 55 Замок (lock) 2: 307, 308 — глобальный (global lock) 2: 308 — зацикливающий (spin lock) 2: 308 — локальный (local lock) 2: 308 — откладывающий (suspend lock) 2: 308 Запись (record) 2: 31 — в журнал для обеспечения безо¬ пасности (security journaling op¬ tion) 2: 341 — логическая (logical record) 2: 32 — физическая (блок) (physical re¬ cord) 2: 32 Запрещенные прерывания (disabled interrupts) 1: 88 Запрос исполнительной программы (executive request) 1: 22 — на установку носителя (mount system request) 2: 207
Предметный указатель 379 — обслуживания (service request) 2: 309 Запуск (выбор) процесса (dispatch) 1: 81 Захват цикла памяти (cycle stealing) 1: 50 Захватить (reserve) 2: 307, 309 Защита аппаратная (hardware se¬ curity) 2: 166 — данных (data protection) 2: 49, 57 — младших адресов (low-address protection) 2: 295 — операционных систем (operating systems security) 2: 158 — от бедствий (protection against disaster) 2: 160, 182 — — злоумышленников (protection against intruders) 2: 160, 182 — памяти (storage protection) 1: 48, 2: 295 — паролями (password protection) 2: 163 — по ключу (key protection) 2: 295 — сегментов (segment protection) 2: 295 — файла (file protection) 2: 47, 57 Защищенная переменная (protected variable) 1: 117 Звеньевой уровень (в DNA) (data link layer (in DNA) 2: 147 Идентификация (authentication) 2: 138, 139 — пользователя (user authenticati¬ on) 2: 160—162, 177, 189 — потенциальных угроз (identify¬ ing the potential threats) 2: 159 Иерархия замков (hierarchy of locks) 2: 307, 308 — памяти (storage hierarchy) 1: 54, 193, 2: 31 Иерархическая база данных (hierar¬ chical database) 2: 51, 52 — структура директориев (hierar¬ chical directory structure) 2: 37 процессов (hierarchical process structure) 1: 82 Избыточность (redundancy) 2: 46, 166 Измерение производительности (per¬ formance measurement) 2: 64, 65 Изоляция (confinement) 2: 178 — адресного пространства (isolation of address space) 2: 347, 350 Имена виртуальных файлов (virtu¬ al file names) 2: 138 — системных файлов (system file names) 1: 27 Имитатор (simulator) 1: 31 Имя пути (pathname) 2: 37 — файла (file name) 2: 37 Индекс (index) 2: 243 — цилиндров (cylinder index) 2: 20 Инициатор (initiator) 2: 309 Интенсивность входящего потока (по¬ ступления требований) (arrival rate) 2: 95, 97, 98, 100 — приведенная (traffic intensitv) 2: 97—99 Интерактивная система управления задачами (Interactive Problem Control System, IPCS) 2: 328, 329 Интерактивный режим (interactive mode) 1: 23 . Интервал между требованиями (in¬ terarrival time) 2: 94, 98, 103, 116 Интервальный таймер (interval ti¬ mer) 1: 48, 298 Интерпретатор (interpreter) 1: 58, 69 Интерфейс пользователя (user in¬ terface) 1: 21 — RS-232C (RS-232C) 2: 280 Исполнитель (server) 2: 255, 273 — для миграции прикладных систем (application migration executive) 2: 223 Источник (требований) (source) 2: 94 — бесконечный (infinite source) 2: 94 — конечный (finite source) 2: 94 Исходная программа (source pro¬ gram) 1: 56, 58 Капал (channel) 1: 50, 68, 2: 18 — (тракт) (communication path) 1: 330 — байт-мультиплексный (byte mul¬ tiplexor) 1: 68 — блок-мультиплексный (block-mul¬ tiplexor) 1: 68 — ввода-вывода (input/output chan¬ nel) 1: 49, 2: 18 — мультиплексный (multiplexor channel) 1: 50 прямого доступа к памяти (DMA channel) 1: 53 — селекторный (selector) 1: 68 Каретка (магнитных головок) (boom) 2: 6, 7 Катастрофический отказ (catastro¬ phic failure) 1: 331 Квант времени (временной интервал) (quantum) 1: 80, 301, 308 Классификация (classification) 2: 161 Классы привилегированности поль¬ зователей в СР (User Privilege Classes) 2; 339, 340
380 Предметный указатель Кластер (cluster) 1: 345, 346, 2: 269 — флагов событий (event flag clus¬ ter) 2: 244 Кластеры страниц (page clusters) 2: 228 Ключ дешифрования (decryption, decyphering key) 1: 26, 2: 30, 173, 174 — записи (record key) 2: 31 — защиты памяти (storage protection key) 1: 48 — открытый (public key) 2: 173— 175, 184, 189 — первичный, главный (primary key) 2: 31 — секретный (private key) 2: 173, 175, 184, 189 — шифрования (encyphering key) 2: 30, 173, 174 Код входа взаимоисключения (mu¬ tual exclusion entry code) 1: 105 — выхода взаимоисключения (mu¬ tual exclusion exit code) 1: 105 — последовательного (многократно¬ го) использования (serially reu¬ sable code) 1: 164 — ASCII (Американский стандарт¬ ный код для обмена информацией) 2: 31 — RSA (RSA code) 2: 151 Команда ввода-вывода close (закрыть) (close I/O call) 2: 202, 203, 216 — — — open (открыть) (open I/O call) 2: 202, 216 — — — read (читать) (read I/O call) 2: 202, 216 — — — seek (искать) (seek I/O call) 2: 202, 216 — — — write (писать) (write I/O call) 2: 202, 216 — выбора SELECT (Ада) (select statement (Ada)) 1: 144, 152 — вызова супервизора SVC (super¬ visor call (SVC) instruction) 1: 199, 204 — оповещений SIGNAL Г. 133 — приема открытая (Ада) (open ac¬ cept statement (Ada)) 1: 146 ACCEPT (Ада) accept state¬ ment (Ada)) 1: 142, 143, 152 — привилегированная (privileged instruction) 1: 52 — рестарта SIGP (restart SIGP in¬ struction) 1: 87 — «сигнал процессору» SIGP (Sig¬ nal Processor Instruction) 2: 311 — «сравнение с обменом» (Compare and Swap instruction) 2; 311 — CONNECT (установить соедине¬ ния) 2: 147 — CONNECT REJECT 2: 147 — DISCONNECT 2: 147 — ENQUEUE (поставить в очередь) 2: 319 — RECEIVE 2: 147 — SEND 2: 147 — SEND INTERRUPT MESSAGE 2: 147 — restandset (проверить-и-устано- вить) (testandset Instruction) 1: 115, 117, 122 Команды CP/M 2: 262, 263 — CP/NET 2: 275, 276 — MP/M 2: 272 Коммуникационный процессор (com¬ munication processor) 2: 125 Коммутация пакетов (packet swit¬ ching) 2: 130, 133 Компилятор (compiler) 1: 56, 69 Комплекс мультипроцессорный (mul¬ tiprocessor) 1: 329, 330 Компьютерный модуль (computer module) 1: 345 Конвейер (pipeline) 1: 69, 2: 209, 216 Конвейеризация (pipelining) 1: 53 Конвертер (converter) 2: 298 Конкатенация (concatenating) 1: 231, 232 Контекст (context) 2: 170, 184 Контекстное переключение (con¬ text preemption) 1: 298 Контора будущего (office of the fu¬ ture) 2: 275 Контроллер (в Ethernet) (controller (in Ethernet)) 2: 145 Контроль доступа (access control) 2: 165 — производительности (performance monitoring) 2: 65, 66, 70, 76, 80 Конфликт (collision) 2: 144, 145 Концепция семейства совместимых компьютеров (family concept of computers) 1: 31 Копирование (дублирование) (bac¬ kup) 2: 29, 46, 47, 55 — периодическое (periodic backup) 2: 46 Корневой директорий (root directo¬ ry) 2: 36 — узел (root node) 2: 36 Корректность (программы) (correct¬ ness) 1: 141 Кортеж (tuple) 2: 53 Кража страницы (page stealing) 2: 304, 305 Криптографическая система (crypto¬ system) 2: 173
Предметный указатель 381 Криптография (cryptography) 2: 172—175, 184, 188, 189 Критерии планирования (scheduling criteria) 1: 296 Критический участок (critical re¬ gion) 1: 103, 104, 108 Критичный по времени процесс (time critical process) 2: 230 Кэш-память (cache storage) 1: 54, 69, 194, 233, 243, 249 Лишение доступа (denial of access) 2: 180 Ловушка (trap) 2: 196, 318 — включение (enable a trap) 2: 318 — выключение (disable a trap) 2: 318 — для злоумышленников (penetra- tor entrapment) 2: 178, 198 Логическое звено связи (логическое соединение) (logical link) 2: 146 — представление (logical view) 2: 30 — устройство (logical device) 2: 259, 260 Локальная область системных оче¬ редей LSQA (Local System Queue Area, LSQA) 2: 306, 317 Локальность (locality) 1: 236, 266 — временная (temporal locality) 1: 266 — пространственная (spatial loca¬ lity) 1: 266 Макрокоманда (macro instruction) 1: 55 Макропроцессоры (macroprocessors) 1: 55 Макрорасширение (macro expansion) 1: 55 Максимальное распараллеливание (massive parallelism) 1: 323 Маршрутизация (транзиты) (routing) 2: 146 Матрица координатной коммутации (crossbar switch matrix) 1: 331, 332 — управления доступом (access con¬ trol matrix) 2: 44, 45, 56, 165 Машина виртуальная (virtual mac¬ hine) 1: 26 — общего назначения (general pur¬ pose system) 1: 24 — расширенная (extended) 1: 91 Машинно-зависимый язык (machine dependent language) 1: 55 Машин но-независимые программы (machine independent programs) 1: 56 Машинный язык (machine language) 1: 54 Межкластерная шина (intercluster bus) 1: 345 Межпроцессные взаимодействия (in¬ terprocess communications) 2: 146 Межсистемная пересылка файлов (in¬ tersystem file transfer) 2: 146 Межсистемное разделение ресурсов (intersystem resource sharing) 2: 146 Менеджер виртуальной памяти (vir¬ tual storage manager) 2: 296, 304 — вспомогательной памяти (vir¬ tual storage manager) 2: 293, 296, 303 — рабочей нагрузки (work load ma¬ nager) 2: 305 — реальной памяти (real storage ma¬ nager) 2: 296, 303, 317 — ресурсов (resource manager) 2: 296, 305 — системных ресурсов (System Re¬ source Manager, SRM) 2: 304, 305, 317 Метод доступа (access method) 2: 34, 35, 55 — — базисный (basic) 2: 34, 35, 299, 300 — библиотечный (Basic Par¬ titioned Access Method, BPAM) 2: 299, 300 — — — индексно-последователь¬ ный (Basic Indexed Sequential Ac¬ cess Method, BISAM) 2: 20, 22, 299, 300 — — индексно- последовательный (Basic Indexed Sequential Access Method, BISAM) 2: 299 — — с очередями (Queued In¬ dexed Sequential Access Method) 2: 299 — — последовательный с очередями (Queued Sequential Acces Method QSAM) 2: 299, 317 — — прямой (Direct Access Method DAM) 1: 69, 2: 299, 300, 317 — — телекоммуникационный с оче¬ редями (Queued Telecommunica¬ tion Access Method, QTAM) 2: 300 — расслоения памяти (интерливинг) (storage interleaving) 1: 46 Механизм планирования (planning mechanism) 1: 293, 307 — прерываний (interrupt mechanism) 2: 296, 316 Миграция (migration) 2: 134 Микродиагностика (microdiagno'» sties) 1: 62, 70
382 Предметный указатель Микрокод (microcode) 1: 20, 61—63, 65—67, 70, 91 Микрокоманда (microinstruction) 1: 66, 67 Микрокомпьютер 8-битовый (8-bit microcomputer) 2: 278, 280, 282 — 32-битовый (32-bit) 2: 278, 280, 282 — 16-битовый (16-bit) 2: 255, 278, 280, 282 Микропрограммирование (micropro¬ gramming) 1: 60, 63, 70 — динамическое (dynamic) 1: 60 Микропрограммная поддержка (mic¬ rocode assists) 1: 62, 70 Микропрограммы (микропрограмм¬ ное обеспечение) (firmware) 1: 20, 46, 60, 91 Микропроцессор (microprocessor 1: 321 — Intel 8080 (Intel 8080) 2: 254, 255 8088 (Intel 8088) 2: 255 Миллиарды команд в секунду (BIPS) 2: 71 Миллионы команд в секунду (MIPS) 2: 71 Минидиск (minidisk) 2: 336, 337 Многодисковая подсистема (multip¬ le-disk subsystem) 2: 18 Многозадачный режим (multitas¬ king) 1: 140 Многопортовая память (multiport storage) 1: 332 Многорежимные системы (multimo¬ de systems) 1: 24 Многоуровневые очереди с обратны¬ ми связями (multilevel feedback queues) 1: 307, 309 Множество рабочее (working set) 1: 269, 272, 274 Мобильность, переносимость (por¬ tability) 2: 256 Моделирование (simulation) 2: 68, 70, 75 Модуль загрузочный (load image) 1: 59, 60 — компьютерный (computer module) 1: 345 Монитор (monitor) 1: 132—135 — аппаратный (hardware monitor) 2: 70 — программный (software monitor) 2: 70 Мониторинг (monitoring) 2: 313, 314 Мультизадачное™ (multitasking) 2: 272, 281 Мультиплексирование (multiple¬ xed) 1: 164 Мультипрограммирование с пере¬ менным числом задач (multipro¬ gramming with a variable number of tasks) 2: 288, 289 — — переменными разделами (va¬ riable partition multiprogramming) 1: 195, 205, 229 — — фиксированным числом задач (with fixed number of tasks) 2: 289 — — фиксированными разделами (fixed partition multiprogramming) 1: 200—203 Мультипрограммный режим работ (multiprogramming) 1: 23, 2: 310 Мультипрограммные системы (mul¬ tiprogrammingsystems) 1: 164, 201, 336 Мультипроцессор (multiprocessor, MP) 2: 307, 310 — симметричный (simmetrical mul¬ tiprocessing, SMP) 1: 342, 343 Мультипроцессорная система co сла¬ бо связанными процессорами (loo¬ sely coupled multiprocessing) 1: 334 — — с сильно связанными про¬ цессорами (tightly coupled mul¬ tiprocessing) 1: 335 Мультипроцессорные операционные системы (multiprocessor operating systems) 1: 336, 340, 341 Мульти процессорный комплекс (mul¬ tiprocessor) 1: 329, 330 Набор данных (data set) 2: 299 — — для свопинга (swapdata set) 2: 303 — — с номерами записей (relative¬ record data set) 2: 301 — — упорядоченный по поступле¬ нию записей (entry sequenced data set) 2: 301 — — — — ключам записей (key sequenced data set) 2: 301 Нагрузка (utilization) 2: 99, 106 — обслуживающей единицы (server utilization) 2: 99 Надежное состояние (safe state) 1: 171 — 173 Надежность (reliability) 1: 321 Надзор (surveillance) 2: 162, 183 Надстройка системы (system tuning) 2: 67 Насыщение (saturation) 2: 77, 80 Неделимые операции (indivisible operations) 1: 106 Независимость (от) данных (data idependence) 2: 50, 57 — программирования от внешних: устройств (device independence) 1: 23
Предметный указатель 383 Незащищенный канал (insecure chan¬ nel) 2: 173, 189 Ненадежное состояние (unsafe state) 1: 171, 173 Неравномерное распределение за¬ просов (nonuniform request dis¬ tribution) 2: 19 Нередуцируемый процесс (irreducib¬ le process) 1: 178 Нестабильность, неустойчивость (in¬ stability) 2: 78, 79, 80 Новое PSW (new PSW) 1: 87, 88 Область защиты (protection domain) 2: 167 — общая системная (Common Sys¬ tem Area, CSA) 2: 307 — системных очередей (System Que¬ ue Area, SQA) 2: 306, 307 Обман оператора (operators spoof) 2: 180 Обмен (взаимодействие) между про¬ цессами непрозрачный (в DNA)) (nontransparent interprocess com¬ munication (in DNA)) 2: 147, 152 — — прозрачный (в DNA) (transpa¬ rent interprocess communication (in DNA)) 2: 147, 152 Обнаружение тупиков (deadlock de¬ tection) 1: 159, 166, 176 Обобщение дефектов (flow generali¬ zation) 2: 181 Обозначения Кендалла (Kendall no¬ tation) 2: 97 Оболочка (shell) 2: 208, 216 Обоснование модели (model valida¬ tion) 2: 73 Обработка данных распределения (distributed data processing) 1: 26 — прерывания (interrupt processing) 1: 89, 90 Обработчик прерываний (interrupt handler, IH) 1: 87 Образ (image) 2: 197 — памяти (storage image) 2: 197 Обратная связь (feedback loop) 2: 77, 80 — — отрицательная (negative feed¬ back) 2: 78, 80 — — положительная (positive feed¬ back) 2: 78, 80 Обслуживание очередей системы вво¬ да-вывода (queue I/O (QIO) sys¬ tem service) 2: 234 — по принципу FCFS («первый при¬ шедший обслуживается первым») (first-come-first-served) 2: 8—12 Обслуживающая единица (server) 2: 103 — — показательная (exponential server) 2: 103 — задача (Ада) (server task (Ada)) 1: 142 Обслуживающее устройство (service facility) 2: 103 Обход тупиков (deadlock avoidance) 1: 159, 166 Общая шина (common bus) 1: 330 Общие ресурсы (shared resources) 1: 103 Общий флаг события (common event flag) 2: 244, 246, 248, 251 Объединение программ (program com¬ bination) 1: 59 Объект (object) 2: 165, 167, 168, 171 g 183 — память (space object) 2: 171 — составной (composite object) 2: 170 Объектная (входная, целевая) про¬ грамма (object (target) program) 1: 56, 58 Объектно-ориентированные системы (object oriented systems) 2: 167, 170, 183 Объем работы по преодолению за¬ щиты (penetration work factor) 2: 177, 189 Оверлейный режим (overlay) 1: 197 Однопроцессорные операционные си¬ стемы (uniprocessor operating sys¬ tems) 1: 336 Ожидание события (event wait) 2: 200 Оперативно перераспределяемые ре¬ сурсы (preemptible resources) 1: 163 Оперативный режим (on line) 1: 30 Оператор ЭВМ (computer operator) 1: 21 Операционная система базовая дис¬ ковая (Basic Disc Operating Sys¬ tem) 2: 256, 257 — — дисковая (Disk Operating Sys¬ tem, DOS) 2: 292 — — распределенная (distributed) 2: 137, 150 — — сетевая (network) 2: 137, 150 — — функциональная дисковая (Functional Disk Operating Sys¬ tem, FDOS) 2: 258 — — MVS (MVS operating system) 2: 287—324, 336, 349 — — UNIX (UNIX operating sys¬ tem) 2: 192—220 — — VAX (VAX operating system) 2: 221—252 — — VM (VM operating system) 2: 325—356
384 Предметный указатель Операция свопинга (swaping) 2: 303 — Р (Р operation) 1: 117, 119, 122 — V (V operation) 1: 117, 119, 122 Опрос (Polling) Г. 47 Оптимизация по времени ожидания записи (latency optimization) 2: 8, 16 — — — поиска (подвода) цилиндра (seek optimization) 2: 8, 10 — — угловому положению при вра¬ щении (rotational optimization) 2: 10 Организация файла библиотечная (partitioned file organization) 2: 34, 55, 299 — — индексно-последовательная (indexed sequential file organiza¬ tion) 2: 33, 55 — — последовательная (sequential file organization) 2: 33, 55, 299 — — прямая (direct file organiza¬ tion) 2: 34, 55, 299 Ответвитель (в Ethernet) (tap (in Ethernet)) 2: 145 Открытая команда приема (Ada) (open accept statement (Ada)) 1: 146 Открыть файл (open a file) 2: 29, 55 Относительная адресация (relative addressing) 1: 51, 68 Относительный номер записи (rela¬ tive record number) 2: 242 — файл (relative file) 2: 240—242 Отношение (relation) 2: 53, 57 — бинарное (binary) 2: 54 — степень (degree of a relation) 2: 54 — тернарное (ternary) 2: 54 — и-арное (n-ary) 2: 54 Отображение ассоциативное (asso¬ ciative mapping) 1: 233, 243 — комбинированное ассоциативно/ прямое (combined associative/di- rect mapping) 1: 243, 247 — поблочное (block mapping) 1: 226 — прямое (direct mapping) 1: 232, 243 Отправитель (sender) 2: 173, 184 Охрана, предохранители (guards) 1: 146 Оценка для выбора (системы) (se¬ lection evaluation) 2: 66, 70, 79 — производительности (performance evaluation) 2: 67, 68, 79 Очереди многоуровневые с обратны¬ ми связями (multilevel feedback queues) 1: 307, 309 — сообщений (message queues) 2; 271 Очередь (queue, waiting line) 2: 92 — бесконечной вместимости (infini¬ te capacity queue) 2: 96 — вместимость (queue capacity) 2: 96 — неограниченная (unbounded queue) 2: 93, 116 — нулевой вместимости (zero capa¬ city queue) 2: 96 — ограниченная (bounded queue) 2: 94, 116 — положительной вместимости (po¬ sitive capacity queue) 2: 97 — сообщений (message queue) 2: 246 Пакет (batch) 1: 23 — (packet) 2: 130, 150 — запроса на ввод-вывод (I/O) (Re¬ quest Packet, IRP) 2: 238 Пакетная обработка однопотоковая (single stream bath processing) 1: 200 Пакетное средство (CMS Batch Fa¬ cility) 2: 328—330, 350 Память ассоциативная (associative storage) 1: 233, 247, 249 — виртуальная (virtual) 1: 34, 52, 221 — вторичная, внешняя (secondary) 1: 54, 69, 191, 225 — многопортовая (multiport) 1: 332 — основная, первичная, физическая (primary) 1: 54, 69, 191 — 193, 225 Паразитирование (piggyback) 2: 180 Параллелизм (распараллеливание) (parallelism) Г. 100, 322, 324, 336 — неявный (скрытый) (implicit pa¬ rallelism) 1: 324—326 — явный (explicit parallelism) 1: 324 Параллельное программирование (concurrent programming) 1: 104, 140 Параллельные вычисления (парал¬ лельная обработка) (parallel pro¬ cessing) 1: 100, 102 — программы (parallel programs) 1: 141 Параметры производительности вы¬ числительной установки (Insta¬ llation Performance Specification) 2: 313 Передача ключей (key distribution) 2: 139 — на частоте исходного сигнала (одноканальная) (baseband) 2: 141, 151, 153 — права (token passing) 2: 142, 151 — прямая (непосредственная) (di¬ rect transmission) 2: 135, 150
Предметный указатель 385 — широкополосная, многоканальная (broadband) 2: 141 — с промежуточным запоминанием (храпением) (store and forward transmission) 2: 130 Перезапуск (рестарт) системы (res¬ tart) 1: 162 Переключение контекста (context switching) 1: 87 — контекстное (context preemption) 1: 298 Переменная защищенная (protected variable) 1: 117 — условная (conditional variable) 1: 133 Перемещаемые (позиционно-незави¬ симые) программы (location inde¬ pendent programs) 1: 51 Перемещающаяся система (floating system) 1: 339 Перемещающий загрузчик (reloca¬ ting loader) 1: 59, 70 Перехватчик (eavesdropper) 2: 173, 174, 189 Переход с задания на задание (job- to-job transition) 1: 200 Периферийная машина (сателлит) (satellite computer) 1: 27, 200 Периферийные устройства (periphe¬ ral devices) 1: 48 Персональный компьютер (personal computer) 1: 19, 58 Плавная деградация (graceful de¬ gradation) 1: 33, 2: 166 Планирование (scheduling) 1: 293, 2: 8—10 — без переключения (nonpreempti- ve) 1: 297, 306 — допуска (задания) (admission) Г. 293 — загрузки процессоров 1: 293 — на верхнем уровне (high level) Г. 293 нижнем уровне (intermediate level) 1: 293 — — промежуточном уровне (in¬ termediate level) 1: 293 — по предельному сроку (deadline scheduling) 2: 298 — — принципу FIFO 1: 301 — — — HRN (по наибольшему от¬ носительному времени реакции) (highest-response-ratio-next) 1: 306 — SJF (кратчайшее задание— первым) (shortest-job-first) 1: 304, 305 — — SLTF (с наименьшим временем ожидания (цилиндра) — первым) (shortest-latency-time-first) 2: И, 12, 16 — — — SRT (по наименьшему ос¬ тавшемуся времени) (shortest-re- maining-time) 1: 305, 306 сроку завершения 1: 300 — работы с дисковой памятью (disk scheduling) 2: 5—27 —процессов (process scheduling) 2: 200, 201 — с переключением (preemptive) 1: 297 — циклическое, круговое (robin-ro¬ und) 1: 301 Планировщик (scheduler) 2: 199 — ресурсов системы 1: 163 Плотность записи (recording density) 1: 48 Повторные пробы (repeated trials) 2: 163 Повторный запрос страницы (page reclamation) 2: 247, 250 Подканал (subchannel) 1: 50 Подкачиваемая программная общая область PLPA (Pageable Link Pack Area, PLPA) 2: 307 Подкачка (paging operation) 1: 272, 2: 296, 303 — (swapping) 2: 201, 206 — страниц с упреждением (antici¬ patory paging) 1: 273 Подкачки многоуровневые (multiple levels of paging) 2: 352 — страниц (paging) 2: 334—336, 347, 351 Подсистема ввода заданий (Job Ent¬ ry Subsystem) 2: 295, 297, 298 — внешней памяти с прямым досту¬ пом (direct access storage organiza¬ tion) 1: 30 — связи с удаленным спулингом (Remote Spooling Communications Subsystem, RSCS) 2: 328, 329, 343, 344, 350 Подчиненный процессор (slave pro¬ cessor) 1: 335, 337 Подъязык данных (data sublanguage, DSL) 2: 50 Поиск цилиндра (seek) 2: 7 Поколение (generation) 1: 22 Покрытие оболочкой (encapsulation) 2: 170, 183 Поле ключа (key field) 2: 243 Полипроцессорные системы (poly¬ processors) 1: 347 Полномочие (мандат) (capability) 2: 46, 167—169 — отмена (revocation of capability) 2: 169
386 Предметный указатель — — выборочная (selective) 2: 169 — список (capability list) 2: 169 Получатель (receiver) 2: 173, 184 Пользователь (user) 1: 21 — самый полномочный (most tru¬ sted user) Г. 22, 51 Порождение процесса (spawn a pro¬ cess) 1: 81 Порт (канал памяти) (storage port) 1: 332 Посимвольная система ввода-выво¬ да (character I/O system) 2: 202 Постпроцессор ввода-вывода (I/O postprocessing routine) 2: 238 Поток (stream) 2: 204 — ввода-вывода (stream I/O) 2: 204, 208, 216 — заданий, рабочая нагрузка (work load) 2: 69 Потрясти за плечо (shoulder tap) 2: 311 Почтовый ящик (mail box) 2: 246, 251 Права доступа (access rights) 2: 162, 165, 167, 168 — — к файлу (file access rights) 2: 165 — — расширение (amplification) 2: 162, 163 Правило «никогда не ждать» (never wait rule) 1: 329 Предельный размер резидентного множества (resident set limit) 2: 227, 228, 247 Предотвращение тупиков (dead lock prevention) 1: 159, 165, 166, 170 Предсказуемость, прогнозируемость (predictability) 2: 10 Преобразование данных (data tran¬ sformation) 2: 135 Преодоление защиты операционной системы (operating system pene¬ tration) 2: 161, 163, 164, 176, 177, 180, 181, 185 Прерывание (interrupt) 1: 85, 90, 92, 2: 334, 351 — внешнее (external interrupt) 1: 87 — ввода-вывода (I/O interrupt) 1: 87 — запрещенные (disabled) 1: 88 — по выходу за пределы сегмента (segment overflow fault) 1: 248 — по вызову супервизора (SVC- прерывания) (supervisor call SVC) 1: 86 — — защите сегмента (segment pro¬ tection fault) 1: 245 — — контролю машины (machine check) 1: 87 — — отсутствию сегмента (missing segment fault) 1: 244, 247 — — — страницы (missing page fa¬ ult) 1: 248 — — рестарту (restart) 1: 87 Префиксация (prefixing) 2: 294, 316 Префиксируемая область памяти (Prefixed Storage Area, PSA) 2: 294 Привилегированная команда (pri¬ vileged instruction) 1: 52, 2: 333, 334 Привилегированное направление (preferred direction) 2: 13 Привязка памяти (binding) 1: 59 Приемопередатчик (в Ethernet) (tran- ciever (in Ethernet)) 2: 145 Примитив прерывания (interrupt primitive) 2: 202 — ENQUEUE (поставить в очередь) 2: 309 — exec (выполнить) 2: 200 — exit (выйти) 2: 202 — RESERVE (захватить) 2: 309 Примитивы (primitives) 1: 91 — взаимодействия пользователей (user communication primitives) 2: 134 — взаимоисключения (mutual exc¬ lusion primitives) 1: 104, 105, 107, 109, 110 — миграции данных (data migration primitives) 2: 134, 135 заданий (job migration primi¬ tives) 2: 134 — управляющие (control) 2: 134, 135 Принцип минимума (наименьших) привилегий (principle of least pri¬ vilege) 1: 51, 2: 167, 178, 183, 188 — предсказуемости платы за ресур¬ сы (predictability of resource char¬ ges) 1: 168 — приоритетный 1: 163 — Хавендера 1: 166—170 Приоритеты (priorities) 1: 299 — динамические 1: 299, 306 — покупаемые 1: 300 — статические 1: 299 Приостановка процесса (suspend а process) 1: 82, 83, 299 Проблема достоверности (authenti¬ cation problem) 2: 173 — останова (halting problem) 1: 272 — подтверждения отправителя (pro¬ blem of dispute) 2: 173 — сохранения тайны (privacy prob¬ lem) 2: 172 — утери объектов (lost object pro¬ blem) 2: 172
Предметный указатель 387 Пробуждение процесса (wakeup а process) 1: 81 Проверка, контроль (monitoring) 2: 161 — законности (legality checking) 2: 178 Программа главная управляющая (main control program) 1: 30 — измерительная (benchmark) 2: 70, 73, 74, 79 — исходная (source program) 1: 56, 58 — машинно-независимая (machine independent program) 1: 56 — моделирования с управлением no данным (script driven simulator) 2: 80 — — — — — событиям (event dri¬ ven simulator) 2: 80 — образцовая (kernel program) 2: 70, 72 — объектная, входная, целевая — (object, target) 1: 56, 58 — переключения процессов (swap¬ per) 2: 227, 229, 247 — перемещаемая, позиционно-неза¬ висимая (location independent) 1: 51 — подкачки страниц (pager) 2: 227, 247 — производственная (production program) 2: 73 — работы с записями (Record Mana¬ gement Services, RMS) 2: 240 — синтетическая (syntetic program) 2: 70, 74, 75, 80 — утилита (utility program) 1: 31 Программная прослойка (software layer) 1: 25 Программное обеспечение (software) 1: 45, 54, 69 Программный звонок в дверь (sof¬ tware doorbell) 1: 345 Проектирование (планирование) про¬ изводительности (performance pro¬ jection) 2: 66, 70 Проекция, проецирование (pro¬ jection) 2: 54, 57 Производитель-потребитель (proce¬ dure consumer) 1: 120, 121, 135 Производительность (performance) 2: 67, 345—348 Пропускная способность (throughput) 1: 29, 2: 9, 10, 69 предельная (capacity) 2: 69 Просмотр (browsing) 2: 164, 179 Пространство виртуальных адресов (virtual address space) 1: 222, 223 — реальных адресов (real address space) 2: 222, 223 Протокол блокирования/пробужде- ния (block/wakup protocol) 1: 118, 119 Профилактический контроль (threat monitoring) 2: 162 Профиль (profile) 2: 172 Процедура запроса и подтверждения (challenge and responce procedure) 2: 176, 189 Процесс (process) 1: 77—79, 81, 91 — агент (посредник) (agent process) 2: 138 — выбора конфигурации (configu¬ ration process) 2: 67 — дочерний (child) 1: 82 — источник (source process) 2: 149 — родительский (parent) 1: 82 Процессор ввода-вывода (satellite) 1: 49, 68 — главный (master processor) 1: 335, 337 — владелец (owning processor) 1: 343 — исполнитель (executing proces¬ sor) 1: 343 — подчиненный (slave) 1: 335, 337 — потока заданий 1: 200 Процессы асинхронные (asynchro¬ nous processes) 1: 99, 100 — — параллельные (asynchronous concurrent processes) 1: 106 — параллельные (concurrent) 1: 99 — размножения и гибели (birth and death processes) 2: 109—112, 114 — прямой доступ к памяти пдп (direct memory access) 1: 53 Псевдокомпыотер (pseudocomputer) 2: 197 Рабочая область планировщика (Scheduler working area) 2: 306 Рабочее место программиста (Pro¬ grammer’s Workbench) 2: 195 Разветвление (fork) 2: 208 Разделение времени (timesharing) 1* 23 333 — — (Timesharing Option, TSO) 2: 288, 289, 296 — обязанностей (division of respon- sabilities) 2: 161 — ресурсов (resources sharing) 1: 159 Разделы (partitions) 1: 192 — фиксированного размера Г. 202 Раздельные мониторы (исполнитель¬
388 Предметный указатель ные программы) (separate executi¬ ves) 1: 338 Размер окна рабочего множества (working set window size) 1: 270 Разрешенные прерывания (enabled interrupts) 1: 88 Рандеву (rendervous) 1: 142, 152 Распараллеливание автоматическое (automatic detection of parallelism) 1: 324, 336 — максимальное (massive paralle¬ lism) 1: 323 Распределение вероятностей (pro¬ bability distribution) 2: 94 — запросов равномерное (uniform request distribution) 2: 19 — памяти несвязное (noncontiguous storage allocation) 1: 195 — — связное (contiguous storage al¬ location) 1: 195, 196 — поисков равномерное (random se¬ ek pattern) 2: 19 — поблочное (block allocation) 2: 40 — при помощи связанных списков (linked allocation) 2: 39 — таблицы отображения (map¬ ped allocation) 2: 42, 43 — связное (contiguous allocation) 2: 39, 56 Расширение имени файла (filename extension) 2: 269 Расщепление цикла (loop distribu¬ tion) 1: 325 Реальная машина (real machine) 2: 325, 327, 329, 335, 337 Реальное рабочее множество проце¬ сса (real working set of a process) 1: 270 Ревизия (audit) 2: 164 — журнал (audit log) 2: 164, 165, 183, 188 Регистр базовый (base register) 1: 51, 68 — граничный (boundary) 1: 48, 198, 203 — начального адреса таблицы бло¬ ков (blocktable origin) 1: 228 — перемещения (relocation) 1: 46, 47 Регистрация, протоколирование, журнализация транзакций (tran¬ saction logging) 2: 46, 48, 56 Редактор связей (linkage editor) 1: 59, 60 Редукция высоты дерева (tree height reduction) 1: 325, 326 — графа (reduction of graph) 1: 178 Реентерабельная, повторно входи- мая процедура (reenterant proce¬ dure segment) 1: 236, 2: 197 Реентерабельный (многократно вхо- димый) код (reenterant code) 1: 164, 339 Режим автономный (оф-лайн) (off¬ line operation) 1: 49 — аппаратной совместимости с PDP-11 (PDP-11 Hardware com¬ patibility mode) 2: 223 — диалоговый (conversational mode) 1: 23 — задачи (problem state) P. 68 — интерактивный (interactive) 1: 23 — исполнителя (executive protecti¬ on mode) 2: 224, 225, 247 — многозадачный (multitasking) 1: 140 — мультипрограммный (multipro¬ gramming) 1: 23 — оверлейный (overlay) 1: 197 — он-лайн (on-line) 1: 25, 30, 49 — оперативный (он-лайн) (on-line) 1: 25, 30, 49 — переходный (transient solution) 2: 99 — пользовательский (user protecti¬ on mode) 2: 224, 225, 247 — работы (execution) 1: 51 — супервизора (supervisor) 1: 51, 68, 2: 224, 225, 247 — управления доступом (access con¬ trol) 1: 242 — установившийся (steady state) 2: 99 — ядра (kernel protection mode) 2: 224, 225, 239 Резидентное множество (resident set) 2: 227, 228, 247 Резидентный системный процесс (re¬ sident system process) 2: 272 Результат Литтла (Little’s result) 2: 99, 100 Рестарт (restrat) 1: 181 Ресурсы закрепленные (dedicated re¬ sources) 1: 167 — общие, разделимые, совместно ис¬ пользуемые (shared) 1: 103 — оперативно перераспределяемые (preemptive) 1: 163 — последовательного использова¬ ния (serially reusable) 1: 160 Родительский процесс (parent pro¬ cess) 2: 200 Рукопожатие (handshaking) 2: 336, 347 Сборка мусора (garbage collection) 1: 208, 2: 37
Предметный указатель 389 Свободные участки памяти, «дыры» (holes) 1: 192, 193, 205 Свопинг (swapping) 1: 211, 212 Связь (link) 2: 207 Связывание (linking) 2: 207 Сегмент (segment) 1: 195, 227, 240 Сегмент данных (data segment) 2: 198 — — системный 2: 198 — памяти с программой (program text segment) 2: 197 — реентерабельных процедур 2: 197, 198 — стека (stack segment) 2: 198 Сегментация (segmentation) Г. 52 Сегментная организация памяти (seg¬ mentation) 1: 221, 227, 238 системы (segmentation) 1: 245 Секретность (privacy) 2: 138, 139 Селекторный канал (selector channel) 1: 50, 68 Семафор (semaphor) Г. 117, 118, 122 — двоичный (binary) 1: 117, 143 — считающий (counting) 1: 117, 121 Сетевая архитектура DNA фирмы DEC (DNA) 2: 146 — — SNA фирмы IBM 2: 146 — операционная система (NOS) (network operation system) 2: 133, 134 Сетевой служебный уровень в DNA (network service layer in DNA) 2: 146 — протокол (network protocole) 2: 175 — терминал (network command ter¬ minal) 2: 146 — уровень (в OSI) (network layer (in OSI)) 2: 146 Сеть древовидная (hierarchical net¬ work) 2: 136 — кольцевая (ring network) 2: 173 — компьютерная (computer network) 2: 124—156 — локальная (local network) 2: 140 — полносвязная (fully connected net¬ work) 2: 136 — прозрачная (transparent) 2: 138, 147 — распределенных вычислений (di¬ stributed commutation network) 2: 127—129 — с «многозвездной» топологией (объединение звезд) (connected star network) 2: 150 — — разделением ресурсов (reso¬ urce sharing) 2: 127, 150 топологией звезды (star net¬ work) 2: 136, 141, 150, 344 — — — «произвольный граф» (mesh network) 2: 137, 150 — — удаленным доступом (remote communication network) 2: 127— 129 — шинная (bus network) 2: 136 — Arpanet 2: 125, 130 — DECnet 2: 145, 152 — Datapac 2: 125 — Ethernet 2: 143—145, 151 — Telnet 2: 125, 131 — Wangnet 2: 145 Сигнал прерывания по завершению операции ввода-вывода (I/O comp¬ letion interrupt) 1: 50 Синхронизация (synchronization) 1: 142, 144 — жесткая (пошаговая) (lockstep synchronization) Г. 108 — процессов (process synchroniza¬ tion) 1: 90, 118, 119 Система ввода заданий JES2 (Job Entry Subsystem 2) 2: 288, 297, 298 JES3 2: 297, 298 — виртуальных последовательных файлов (virtual sequential file sys¬ tem) 2: 299 — поддержки программ (System Sup¬ port Program) 2: 296 — с несколькими (многими) обслу¬ живающими единицами (server system) 2: 93, 97, 117 — — — виртуальными памятями MVS (Multiple Virtual Storage) 2: 288 — — одной обслуживающей едини¬ цей (single server system) 2: 97, 99, 116 — — отказами (loss system) 2: 97 — — очередью типа M/M/1 (M/M/1 queueing system) 2: 104, 105, 107 M/M/C 2: 107, 108 — — открытыми ключами (public key system) 2: 173, 189 — управления базой данных СУБД (database management system) 2: 48 исходными текстами программ (Source Code Control System, SCCS) 2: 195 — MINI-UNIX 2: 196 — PWB/UN1X 2: 195 — UNIX 2: 195, 279 — UNIX/V7 2: 196 Системное событие (system event) 2: 232, 234 Системные программисты (system programmers) 1: 22 — средства измерительные (System
390 Предметный указатель Activity Measurement Facility) 2: 296 Системный менеджмент (System Ma¬ nagement Facility) 2: 295, 298, 316 Скорость обслуживания (service rate) 2: 305 Слежение за угловым положением диска (RPS) (rotational position sensing) 2: 19 Словарь данных (data dictionary) 2: 51, 57 Слово состояния программы (PSW) (Program status word) 1: 87, 93, 2: 294, 295, 316 Случайная величина (random vari¬ able) 2: 94 дисперсия (variance) 2: 101 — — математическое ожидание (среднее значение) (expectation (mean value)) 2: 101 О^чайный процесс (random process) 2: 100 — — марковский (Marcov pro¬ cess) 2: 73, 91, 108 пуассоновский (Poisson pro¬ cess) 2: 100—103 Смена состояния процесса (state tran¬ sition) 1: 79 Смесь команд (instruction mix) 2: 71 Смещение (displacement) 1: 227, 228, 230, 232 Событие (event) 2: 200 Соединение (join) 2: 54 Создание процесса (create a process) 1: 81, 90 Сообщение запрашиваемое (заплани¬ рованное) (solicited message) 2: 149, 152 — незапрашиваемое (unsolicited message) 2: 149, 152 Состояние (state) 1: 47 — активное (active) 1: 83 — блокировки (blocked) 1: 78, 80, 92 — выполнения (running) 1: 78—80, 91 — готовности (ready) 1: 78—80, 91 — (режим) «задача» (problem state) 2: 177 — надежное (safe) 1: 171, 173 — ненадежное (unsafe) 1: 171, 173 — приостановки (suspended) 1: 83, 91 — «приостановленблокирован» (su- spendedblocked) 1: 83, 85 — «приостановленготов» (suspende- dready) 1: 83, 84 — процесса (process) 1: 77, 78, 83, 91 — (режим) «супервизор» (supervisor state) 2: 177 Список готовых к выполнению про¬ цессов (ready list of ready proces¬ ses) 1: 78 — заблокированных процессов (blo¬ cked list of blocked processes) 1: 78 — измененных страниц (modified page list) 2: 228 — свободных страниц (free page list) 2: 228 Спрятанпость информации (informa¬ tion hinding) 1: 132 Спулер (spooler) 1: 137 Спулинг (spooling) 1: 57, 68, 137, 161 Среднее время ответа (mean responce time) 2: 9 Средства локализации ошибок (Ser¬ viceability Level Indication Pro¬ cessing, SLIP) 2: 314 — поддержки расширенной CP (Ex¬ tended Control Program Support) 2: 345 Ссылки (указатель) системная не¬ разрешенная (unresolved system pointer) 2: 172 — — разрешенная (resolved) 2: 172 Стандарт на шифрование данных (Data Encryption Standard, DES) 2: 172, 184, 189 Стандартный системный файл ввода (standard system input file) 1: 27 вывода (standard system out¬ put file) 1: 27 Старение (aging, priority aging) 1: 163, 295, 2: 298 Старое (PSW (old PSW)) 1: 87, 88, 93 Статические приоритеты (static pri¬ ority) 1: 299 Степень параллелизма (level of pa¬ rallelism) 1: 100 Страница (page) 1: 227, 230 Страничная организация (paging) 1: 277 памяти (paging) 1: 52, 221, 227, 230 Странично- перемещаемые команды (page relocable commands) 2: 272 Странично-сегментная организация системы (paging/segmentation) 1: 246, 247, 249, 251 Страничный кадр (page frame, slot) 1: 230, 231, 275, 278, 279, 2: 304 — набор данных (page data set) 2: 303 Стратегия выборки (вталкивания) (fetch strategy) 1: 195, 260 — — по запросу (demand fetch) 1: 195 — замещения (выталкивания) (rep¬ lacement) 1: 195, 260
Предметный указатель 391 — занятия «наиболее подходящего» участка (best fit storage placement) 1: 195, 209, 238 — — «наименее подходящего» учас¬ тка (worst fit storage placement) 1: 195, 209, 238 — — «первого подходящего» участ¬ ка (first fit storage placement) 1: 195, 209, 238 — размещения (placement) 1: 195, 260 — управления памятью (storage management) 1: 192, 194 — — — по рабочим множествам (working set storage management) 1: 269, 270, 272 — упреждающей выборки (antici¬ patory fetch) 1: 195 — C-SCAN 2: .15 — N-step SCAN 2: 14 — SCAN 2: 13—14 Субъекты (subjects) 2: 165, 167, 168, 183 Супервизор (supervisor) 2: 295, 296, 316 Супер-ЭВМ (mainframe) 1: 19 Схема (способ) Эшенбаха (Eschen- bach scheme) 2: 11, 16 Счетчики обращений (use counts) 2: 304 Считающий семафор (counting se- maphor) 1: 117, 121 Таблица ассоциативная полная (com¬ plete associative page map) 1: 235 — — частичная (partial associative page map) 1: 235 — отображения блоков (block map table) 1: 227 — — страниц (page map table) 1: 231, 232 — — файлов (file map (ping)) 2: 54, 55, 57 — процессов (process table) 1: 249, 2: 199, 201 Табличная фрагментация (table fragmentation) 1: 275 Таблично-управляемая система (tab¬ le driven system) 2: 256 : 257 : 284 Таймер интервальный (interrupting clock) 1: 48, 298 — прерываний (interrupting clock) 1: 80 Текст зашифрованный (криптограм¬ ма) 2: 173, 189 — открытый (plaintext) 2: 175, 189 Текущее (PSW (current)) PSW 1: 87, 88 Телекоммуникации (telecommunica¬ tions) 2: 296 Тело цикла (loop body) 1: 325 Теория массового обслуживания, теория очередей (queueing theory) 1: 341, 2: 73, 91, 92 — поведения программы с рабочим множеством (working set theory of program behavior) 1: 267 Терминал (terminal) 1: 23 Технология конструирования' про¬ грамм (software engineering) 1: 34, 35 Типовые «атаки» на операционные системы (generic operating system attacks) 2: 179—180, 182 — (разовые) операции (generic sys¬ tem functional) 2: 170, 185 Том (volume) 2: 34 Топология сетки (network topology) 2: 135, 150 Транзакции (transactions) 1: 63 Транзитная команда (transient com¬ mand) 2: 270, 272 — область памяти (Transient Pro¬ gram Area, TRA) 2: 258, 259 Транслятор (translator) 1: 56—59 Транспортер (pipe) 2: 209, 216 Транспортная пробка (traffic dead¬ lock) 1: 159, 160 Трасса главная (master trace) 2: 314, 318 — системная (system trace) 2: 314, 318 Трассировка, универсальные сред¬ ства (generalized trace facility) 2: 314, 318 Требования по безопасности (se¬ curity requirements) 2: 159, 160 Трешинг, пробуксовывание (thra¬ shing) 1: 269, 2: 77,- 80 «Троянский конь» (Trojan Horse) 2: 180 Тупик, дедлок, клинч (deadlock) 1: 158, 159, 165 — обнаружение (deadlock detection) 1: 159, 160, 176 — обход (avoidance) 1: 159, 166 Тупиковая ситуация (deadlock) 1: 177, 178, 181 Удаленный ввод заданий в системе UNIX (UNIX system RJE facili¬ ty) 2: 195 Узкое место, критический ресурс (bottleneck) 2: 19, 76, 77, 80 Уплотнение памяти (compaction of storage) 1: 208, 209, 2: 37, 39
392 Предметный указатель Уничтожение процесса (destroy а process) 1: 81—83, 90 Управление вводом-выводом (input output management) 2: 305, 316 — данными (data management) 2: 296 — доступом к файлу (file access control) 2: 35, 45, 54 — памятью (storage management) 2: 305, 307 — — по рабочему множеству 1: 274 — процессором (processor manage¬ ment) 2: 305, 307 — при помощи меню (menu driven management) 1: 26 — ресурсами (resource management) 2: 305, 307 Управляющая программа (Control Program Facility, CP) 2: 170—172 — — CP (Control Program, CP) 2: 328—331, 333, 334, 338, 350 Управляющий блок, суперблок (su¬ per block) 2: 204 — — файла (File Control Block, FCB) 2: 265—267 Уровень звена связи (data link layer) 2: 131, 147 — представлений (presentation la¬ yer) 2: 131 — прикладной (application layer) 2: 131, 146 — сеанса (session layer) 2: 131 — сетевой (network layer) 2: 131, 141 — служебный в DNA (network ser¬ vice layer in DNA) 2: 146 — транспортный (в DNA) (transport (in DNA)) 2 : 131 — физический (physical layer) 2: 131, 147 Уровни приоритета (priority levels) 2: 230 Условие взаимоисключения (mutual exclusion condition) 1: 165, 174 — кругового ожидания (circular wa¬ it) 1: 165, 169 — неперераспределяемости (no pre¬ emption) 1: 165, 168, 174 — ожидания (ресурсов) (wait for) 1: 165, 167, 174 Устройства обнаружения (detec¬ tion mechanisms) 2: 160 Устройство последовательного дос¬ тупа (sequential device) 1: 48 — прямого доступа (direct access) 1: 48 чУтряска» памяти («burping» the storage) 1: 208 Файл (file) 2: 29, 31, 55 — индексный (indexed file) 2: 240— 242 — обычный (ordinary file) 2: 205 — устройства (device file) 2: 205 — с прямым доступом (direct access file) 2: 34 Файловая система (file system) 2: 29, 35, 55, 265 с двухуровневой древовидной структурой (two level tree structured file system) 2: 36 Физическое звено связи (physical link) 2: 145 — представление (physical device) 2: 30 — устройство (physical device) 2: 259, 260, 267 Фильтр (filter) 2: 209, 216 Фирма Bell Laboratories 2: 192, 193 — Digital Research 2: 277—279 — Microsoft 2: 212, 213 — Shugart Associates 2: 264 Флаг события (event flag) 2: 244— 245 Фон (background) 2: 194 Фоновый процесс (background pro¬ cess) 2: 230 Фрагментация (fragementation) 1: 205 — внешней памяти (fragmentation of secondary storage) 2: 37 Функции байта IOBYTE (IOBYTE function) 2: 261 Хост-компьютер (ведущий, главный компьютер), хост-машина (host) 2: 125, 134, 150 Хыостоновская автоматическая при¬ оритетная спулинговая система HASP (Houston Automatic Spoo¬ ling Priority System) 2: 288 Целевой процесс (target process) 2: 149 Цепочка управления (thread of con¬ trol) 1: 101 Цепочки, формирование цепочек (chaining) 2: 40 — блоков, формирование цепочек блоков (block chaining) 2: 40— 42 — индексных блоков, формирование цепочек индексных блоков (index block chaining) 2: 41, 42 Центральный процессор ЦП (Central Processor СР) 1: 164 Цикл прохождения задания (turna¬ round time) 2: 68, 79
Предметный указатель 393 Цилиндр (cylinder) 2: 7 Цифровая подпись (digital signature) 2: 174, 187 Частота страничных отказов (page fault rate) 2: 248 Шаг по секторам (sector skew) 2: 268 Шина (bus) Г. 330, 331 — двойная (dual bus structure) 2: 166 — межкластерная (intercluster bus) 1: 345 — общая (common bus) 1: 330 — Massbus 2: 225, 236 SBI (Synchronous Backplane Inter¬ connect) 2: 225 — Unibus 2: 225, 236 Шифрование (encryption) 1: 26,2:30, 138, 139, 150, 162, 177, 184, 185 — асимметричное (asymmetric) 2: 175 — передач по линии связей (link encryption) 2: 175 — с открытыми ключами (public key encryption) 2: 139 — — секретными ключами (private key encryption) 2: 139 — симметричное (symmetric) 2: 175 — сквозное (end-to-end) 2: 176, 189 Шпиндель (spindle) 2: 6 Экстент (extent) 2: 40 Электронная почта (electronic mail) 2: 134, 140 — — заказная (registered electronic mail) 2: 139 Элементарные времена (timing) 2: 71 Эмулятор (emulator) 1: 31 — протоколов (internet) 2: 145 Эмуляция (emulation) 1: 61, 71 «Эфир» (среда передачи) (Ether) 2: 145, 151 — запросов (query language) 2: 50 — манипулирования данными (data manipulation language, DML) 2: 50 — машинно-зависимый (machine de¬ pendent) 1: 55 — машинный (machine language) 1: 54 — описания данных (data defini¬ tion language, DDL) 2: 50 — параллельного программирова¬ ния (concurrent programming lan¬ guage) 1: 140, 141 — проблемно-ориентированный (pro¬ blem oriented) 1: 57, 69 — процедурно-ориентированный (procedure oriented) 1: 57, 69 — Си (C language) 2: 215 — управления заданиями (job con¬ trol language) 1: 25 — PL/1 Subset G 2: 255, 277, 278 — PL/M 2: 255 Ячейка (cell) 2: 241 Atlas 1: 221 C-SCAN 2: 11, 15, 16, 21 CISS 1: 33, 34, 39 CLTF 2: 11, 14 Cm* 1: 345 Cmmp 1: 345 COBEGIN/COEND 1: 101, 324 Computer Security Technology Re¬ ference Manual 2: 160 CP/M 1: 20, 2: 254—257, 280 CP/M-86 2: 257 CP/NET 2: 273, 274, 280, 282 CP-67/CMS 1: 33, 34 DEC 1: 342 DOD Directive 5200 28IBM Syst/38 2: 160 DOS/360 1: 33 Ядро (nucleus, core, kernel) 1: 89, 90, 93, 122, 2: 306, 317 — CP (CP nucleus) 2: 335 Язык Ада (Ada) 1: 131, 140, 141 — ассемблерного типа (assembly language) 1: 55 — базы данных (database language) 2: 50 — высокого уровня (high level lan¬ guage) 1: 56 FIFO 2: 228, 246, 247 IOBYTE 2: 261 ISAM 2: 20 i-номер (r-number) 2: 206 t-список (Mist) 2: 204, 205 t-узел (/-node) 2: 204, 205 ITSIAC 1: 63-66
394 Предметный указатель KRONOS 1: 34 RSX 2: 223, 247 МР/М (мультипрограммный монитор для микропроцессоров) (multipro¬ gramming monitor for Microproces¬ sors) 2: 270, 271 МР/М 2: 271 MULTICS 1: 34, 39, 246 SABRE 1: 29, 33 SHARE 1: 27 SCAN 2: 11, 13, 14, 21 SLTF 2: 11, 14 SSTF 2: 11, 12, 16, 21 System/360 1: 30—33, 60 NAC-атака (NAK attack Privacy Act of 1974) 2: 180 N-Step SCAN 2: 11, 14 OS/MET 1: 33 OS/MVT 1: 33 OS/360 2: 289, 292 OS/SVS (система с одной виртуаль¬ ной памятью) 2: 288, 289 parbegin/parend 1: 101, 106 PDP-11 2: 222, 223, 247 PSW новое (new PSW) 1: 87, 88, 93 TSO 2: 296, 299, 316 VAX 2: 221, 222 VAX-11/780 2: 221—223, 225, 226, 228, 250 VAX/XMS 2: 221, 223, 225; 229, 234, 244, 245, 248, 250 VM/370 2: 325, 326, 332, 345, 348 9. iqo XENIX 2: 212—216, 279
Оглавление Часть 5 Управление внешней памятью Глава 12 Планирование работы с магнитными дисками * 5 12.1 Введение 5 12.2 Работа накопителя на магнитных дисках с перемещаемыми голов¬ ками 6 12.3 Почему необходимо планирование 8 12.4 Целевые характеристики принципов планирования 9 12.5 Оптимизация поиска цилиндра 10 12.6 Оптимизация по времени ожидания записи 16 12.7 Системные соображения 17 Заключение 20 Глава 13 Системы файлов и базы данных 28 13.1 Введение 29 13.2 Функции файловой системы 29 13.3 Иерархия данных 30 13.4 Объединение в блоки й буферизация 32 13.5 Организация файлов 33 13.6 Методы доступа с очередями и базисные методы доступа ... 34 13.7 Характеристики файлов 35 13.8 Файловая система 35 13.9 Выделение и освобождение места в памяти 37 13.10 Дескриптор файла , . 44 13.11 Матрица управления доступом 44 13.12 Управление доступом в зависимости от классов пользователей 45 13.13 Копирование и восстановление информации 46 13.14 Системы баз данных 48 13.15 Модели баз данных 51 Заключение . 55 Часть 6 Производительность Глава 14 Измерение, контроль и оценка производительности 64 14.1 Введение 64 14.2 Важнейшие тенденции в области исследования производитель¬ ности 65 14.3 Зачем нужны контроль и оценка производительности 66 14.4 Показатели производительности 67 14.5 Методы оценки производительности 70 14.6 Узкие места и насыщение 77 14.7 Обратная связь 77 Заключение , , . 79
396 Оглавление Глава 15 Аналитическое моделирование 91 15.1 Введение 91 15.2 Теория очередей ...» 92 15.3 Марковские процессы 108 Заключение 116 Часть 7 Компьютерные сети и их безопасность Глава 16 Операционные системы в компьютерных сетях 124 16.1 Введение 125 16.2 Элементы компьютерных сетей 125 16.3 Типы сетей 127 16.4 Коммутация пакетов 130 16.5 Сетевые операционные системы (NOS) 133 16.6 Примитивы NOS . . 134 16.7 Топология сетей 135 16.8 Сетевые операционные системы и распределенные операцион¬ ные системы 137 16.9 Безопасность, секретность, шифрование и идентификация . . 138 16.10 Локальные сети 140 16.11 Пример для изучения: сеть Ethernet 143 16.12 Пример для изучения: сеть DECnet 145 Заключение . . . 150 Глава 17 Защита операционных систем 157 17.1 Введение 158 17.2 Требования по безопасности 159 17.3 Общий подход к безопасности 160 17.4 Внешняя безопасность 160 17.5 Операционная безопасность 161 17.6 Надзор 162 17.7 Профилактический контроль 162 17.8 Расширение прав доступа 162 17.9 Защита с помощью паролей 163 17.10 Ревизия 164 17.11 Контроль доступа 165 17.12 Безопасные ядра » . 165 17.13 Аппаратная защита 166 17.14 Живучие системы 166 17.15 Полномочия и объектно-ориентированные системы 167 17.16 Пример для изучения: объектно-ориентированная архитектура IBMSYSTEM/38 170 17.17 Криптография 172 17.18 Преодоление защиты операционной системы 176 17.19 Пример для изучения: преодоление защиты одной операционной системы . . 180 Заключение , 182 Глава 18 Пример для изучения: система UNIX . , 192 18.1 Введение . 192 18.2 История . . , 193 18.3 Версия системы UNIX 194 18.4 Цели проекта 196 18.5 Управление процессами , 197 18.6 Система ввода-вывода 202 18.7 Файловая система , е t ...... t }11 . 204
Оглавление 397 18.8 Оболочка * 208 18.9 Производительность против удобства 212 18.10 XENIX — коммерческий стандарт системы UNIX 212 Заключение 215 Глава 19 Пример для изучения: VAX 221 19.1 Введение 222 19.2 Цели проекта системы VAX 222 19.3 Совместимость с PDP-11 223 19.4 Команды и память 224 19.5 VAX-11/780 225 19.6 Управление памятью 227 19.7 Планирование процессов 230 19.8 Ввод-вывод в системе VAX/VMS 214 19.9 Программы работы с записями 240 19.10 Взаимодействие процессов и синхронизация 244 Заключение 247 Глава 20 Пример для изучения: CP/MR 253 20.1 Введение 254 20.2 История 254 20.3 PL/M 255 20.4 Семейство СР/М 256 20.5 Структура СР/М 257 20.6 Распределение памяти 258 20.7 Отображение логических устройств на физические 259 20.8 Процессор команд консоли (ССР) 261 20.9 Базовая система ввода-вывода (BIOS) 261 20.10 Базовая дисковая операционная система (BDOS) 263 20.11 Файловая система 265 20.12 Работа СР/М 269 20.13 МР/М 270 20.14 CP/NET 273 20.15 PL/1 SUBSET G — язык прикладного программирования в СР/М 277 20.16 Эволюция архитектур процессоров 278 20.17 Программное обеспечение на базе СР/М 279 20.18 Персональный компьютер фирмы IBM 279 20.19 Будущее СР/М 280 Заключение 280 Глава 21 MVS 287 21.1 История MVS 288 21.2 Цели, поставленные при проектировании MVS 292 21.3 Аппаратура System/370 292 21.4 Функции MVS . , . . 295 21.5 Супервизор 296 21.6 Главный планировщик 296 21.7 Подсистема ввода заданий 297 21.8 Системный менеджмент и измерения 298 2L9 TSO 299 21.10 Управление данными 299 21.11 Менеджер реальной памяти 303 21.12 Менеджер вспомогательной памяти 303 21.13 Менеджер виртуальной памяти 304 21.14 Менеджер системных ресурсов 304 21.15 Организация памяти 305 21.16 Управление ресурсами 307 21.17 Замки . . . 8 s f • 307
398 Оглавление 21.18 ENQUEUE — поставить в очередь 309 21.19 RESERVE — захватить 309 21.20 Задачи и запросы обслуживания 309 21.21 Диспетчер , 310 21.22 Мультипроцессорная работа . 310 21.23 Вопросы производительности 313 21.24 Мониторинг 313 21.25 Выводы 315 Заключение 315 Глава 22 VM: операционная система виртуальных машин ...... 325 22.1 Введение . , 325 22.2 История 331 22.3 Управляющая программа (СР) 333 22.4 Диалоговая мониторная система (CMS) 341 22.5 Система RSCS 343 22.6 Широта спектра возможностей VM 344 22.7 Эволюция VM/370 345 22.8 Вопросы производительности 345 22.9 Надежность, готовность к работе и простота обслуживания 347 22.10 VM— большая операционная система фирмы IBM на 80-е годы 348 Заключение 350 Приложение 1 Государственные стандарты по обработке информации 357 Приложение 2 Операционная система OS/VS2 MVS 372 Именной указатель 374 Предметный указатель 375
УВАЖАЕМЫЙ ЧИТАТЕЛЬ! Ваши замечания о содержании книги, ее оформ¬ лении, качестве перевода и другие просим при¬ сылать по адресу: 129820, Москва, И-110, ГСП, 1-й Рижский пер., д. 2, издательство «Мир». УЧЕБНОЕ ИЗДАНИЕ Гарви М. Дейтел ВВЕДЕНИЕ В ОПЕРАЦИОННЫЕ СИСТЕМЫ В двух томах Том 2 Научи, редактор М. В. Хатунцева Мл. научи, редактор Т. А. Денисова Художник В. С. Потапов Художественный редактор В. И. Шаповалов Технический редактор М. А. Страшнова Корректор Л. Д, Панова ИБ 6701 Сдано в набор 22.08.86. Подписано к печати 27.02.87. Формат 60Х90’/1б. Бумага книжно-журн. Печать вы¬ сокая. Гарнитура литературная. Объем 12,50 бум. л. Усл. печ. л. 25. Усл. кр.-отт. 25. Уч.-изд. л. 26,84. Изд. № 1/5710. Тираж 30 000 экз. Заказ № 584. Цена 2 р. 20 к. ИЗДАТЕЛЬСТВО «МИР» 129820, ГСП, Москва, И-ИО, 1-й Рижский пер., 2 Набрано и сматрицировано в ордена Октябрьской Революции и ордена Трудового Красного Знамени МПО «Первой Образцовой типографии» имени А. А. Жданова Союзполиграфпрома при Государ¬ ственном комитете СССР по делам издательств, по¬ лиграфии и книжной торговли. 113054, Москва, Вало¬ вая, 28 Отпечатано в Ленинградской типографии № 2 го¬ ловном предприятии ордена Трудового Красного Знамени Ленинградского объединения «Техническая книга» им. Евгении Соколовой Союзполиграфпрома при Государственном комитете СССР по делам изда-* тельств, полиграфии и книжной торговли. 198052. г. Ленинград, Л-52, Измайловский проспект, 29,
Издательство «Мир» предлагает следующие книги по программированию и прикладной математике Блейхут Р. ТЕОРИЯ И ПРАКТИКА КОДОВ, КОНТРОЛИ¬ РУЮЩИХ ОШИБКИ. Пер. с англ. 1986. 2 р. 60 к. Валях И. ПОСЛЕДОВАТЕЛЬНО-ПАРАЛЛЕЛЬНЫЕ ВЫ¬ ЧИСЛЕНИЯ. Пер. с англ. 1985. 2 р. 30 к. Гилман Л., Роуз А. КУРС АПЛ. ДИАЛОГОВЫЙ ПОДХОД. Пер. с англ. 1979. 2 р. 10 к. Гренандер У. ЛЕКЦИИ ПО ТЕОРИИ ОБРАЗОВ. Пер. с англ. В 3-х томах. Т. 1. Синтез образов 1979 . 1 р. 80 к. Т.2. Ана¬ лиз образов. 1981. 2 р. 30 к. Т. 3. Регулярные структуры. 1983. 2 р. 90 к. Джоунс У., Трон У. НЕПРЕРЫВНЫЕ ДРОБИ. Аналити¬ ческая теория и приложения. Пер. с англ. 1985. 3 р. 60 к. Зайлер Э. КАЛИБРОВОЧНЫЕ ТЕОРИИ СВЯЗИ С КОНСТ¬ РУКТИВНОЙ КВАНТОВОЙ ТЕОРИЕЙ ПОЛЯ. Пер. с англ. 1985. 1 р. 90 к. СИСТЕМЫ ПАРАЛЛЕЛЬНОЙ ОБРАБОТКИ. Под редак¬ цией Д. Ивенса. Пер. с англ. 1985 г. 1 р. 90 к. Феррари Д. ОЦЕНКА ПРОИЗВОДИТЕЛЬНОСТИ ВЫЧИС¬ ЛИТЕЛЬНЫХ СИСТЕМ. Пер. с англ. 1981. 3 р. 40 к. Шоу А. ЛОГИЧЕСКОЕ ПРОЕКТИРОВАНИЕ ОПЕРА¬ ЦИОННЫХ СИСТЕМ. Пер, с англ. 1981. 1 р. 70 к. Чисар И., Кёрнер Я. ТЕОРИЯ ИНФОРМАЦИИ: ТЕОРЕМЫ КОДИРОВАНИЯ ДЛЯ ДИСКРЕТНЫХ СИСТЕМ БЕЗ ПАМЯ¬ ТИ. Пер. с англ. 1985. 3 р. Эти книги Вы можете приобрести в магазинах книготоргов, распространяющих научно-техническую литературу. Если в бли¬ жайшем от Вас магазине их не окажется, заказ можно направить по адресу: 121019 Москва, просп. Калинина, 26, п/я 42, магазин № 200 «Московский Дом книги»; 103050 Москва, ул. Петровка, 15, магазин № 8 «Техниче¬ ская книга»; 117334 Москва, Ленинский проспект, 40, магазин №115, «Дом научно-технической книги»; 191040 Ленинград, Пушкинская ул., 2, магазин № 5 «Техни¬ ческая книга». Книги будут высланы наложенным платежом (без задатка).