Добавлен: 29.10.2018
Просмотров: 47957
Скачиваний: 190
13.1. Дополнительная литература
1111
на версиях системы UNIX System V Release 4 и 4.4BSD. Подробно описано отно-
шение этих реализаций к стандарту POSIX.
13.1.2. Процессы и потоки
1. Arpaci-Dusseau and Arpaci-Dusseau, Operating Systems: Three Easy Pieces.
2. Вся первая часть этой книги посвящена вопросам виртуализации центрального
процессора и совместному использованию. Приятной особенностью этой книги
(кроме того, что в сети можно найти ее бесплатную версию) является то, что в ней
не только дается представление о концепциях технологий обработки и планирова-
ния, но и довольно подробно рассматриваются API-функции и такие системные
вызовы, как fork и exec.
3. Andrews and Schneider, Concepts and Notations for Concurrent Programming.
Учебный и обзорный материал по процессам и межпроцессному взаимодействию,
в котором среди прочего описываются активное ожидание, семафоры, мониторы,
передача сообщений и другие технологии. В этой статье также показывается, как
эти понятия встроены в различные языки программирования.
4. Ben-Ari, Principles of Concurrent Programming.
Эта небольшая книга полностью посвящена проблемам межпроцессного взаимо-
действия. Среди прочих тем в отдельных главах обсуждаются взаимные исключе-
ния, семафоры, мониторы и задача обедающих философов, актуальность которой
с годами не снижается.
5. Zhuravlev et al., Survey of Scheduling Techniques for Addressing Shared Resources in
Multicore Processors.
Мультиядерные системы начинают доминировать в области универсальных вы-
числений. Одной из наиболее важных проблем является конкуренция за обладание
совместно используемыми ресурсами. В этом исследовании авторы представляют
иную технологию планирования, призванную справиться с этой конкуренцией.
6. Silberschatz et al., Applied Operating System Concepts, 9th ed.
Главы с 3-й по 6-ю посвящены процессам и межпроцессному взаимодействию,
включая планирование, критические области, семафоры, мониторы и классические
проблемы межпроцессного взаимодействия.
7. Stratton et al., Algorithm and Data Optimization Techniques for Scaling to Massively
Threaded Systems.
Запрограммировать систему с шестью потоками довольно трудно. А что делать,
кoгда у вас тысячи таких потоков? Сказать, что это сложно, — значит ничего не
сказать. Эта статья посвящена подходам к решению данной проблемы.
13.1.3. Управление памятью
1. Denning, Virtual Memory.
Классическая статья, затрагивающая многие вопросы виртуальной памяти. Петер
Деннинг был одним из пионеров в этой области. Он же является автором концеп-
ции рабочего набора.
1112
Глава 13. Библиография
2. Denning, Working Sets Past and Present.
Хороший обзор многочисленных алгоритмов управления памятью и страничной
подкачкой. Включена всеобъемлющая библиография.
3. Knuth, The Art of Computer Programming. Vol. 1.
В этой книге обсуждаются и сравниваются различные алгоритмы управления
памятью, такие как «первый подходящий», «лучший подходящий» и т. д.
4. Arpaci-Dusseau and Arpaci-Dusseaum, Operating Systems: Three Easy Pieces.
В главах 12–23 можно прочитать про виртуальную память, а в саму книгу включен
весьма неплохой обзор политик замены страниц.
13.1.4. Файловые системы
1. McKusick et al., A Fast File System for UNIX.
Файловая система для UNIX была полностью переделана для версии 4.2 BSD.
В этой статье описывается новая файловая система, сделан дополнительный ак-
цент на производительности.
2. Silberschatz et al., Operating System Concepts, 9th ed.
Главы 10–12 посвящены аппаратуре хранения информации и файловым системам.
В них среди прочего можно найти описания операций с файлами, методов доступа,
каталогов и вопросов реализации.
3. Stallings, Operating Systems, 7th еd.
В главе 12 содержится довольно много информации о файловых системах и есть
упоминание об их безопасности.
4. Cornwell, Anatomy of a Solid-state Drive.
Если вас интересуют твердотельные диски, то хорошей стартовой точкой может
стать введение Майкла Корнвелла. В частности, автор дает лаконичное описание
различий традиционных жестких дисков и дисков SSD.
13.1.5. Ввод-вывод
1. Geist and Daniel, A Continuum of Disk Scheduling Algorithms.
В данной книге обсуждается обобщенный алгоритм планирования перемещений
блока головок диска. Приводятся результаты всесторонних экспериментов и мо-
делирования.
2. Scheible, A Survey of Storage Options.
В настоящее время существует довольно много способов хранения информации:
DRAM, SRAM, SDRAM, флеш-память, жесткий диск, дискета, CD-ROM, DVD...
В этой статье проанализированы разнообразные технологии, рассмотрены их до-
стоинства и недостатки.
3. Stan and Skadron, Power-Aware Computing.
Пока кому-нибудь не удастся воплотить в жизнь закон Мура для батарей, энер-
гопотребление будет оставаться главной проблемой мобильных устройств. Энер-
13.1. Дополнительная литература
1113
гопотребление и температурный режим настолько важны в наше время, что
операционные системы осведомляются о температуре центрального процессора
и подстраивают под нее свое поведение. В этой статье приводится вводный обзор
существующих проблем, она предваряет пять следующих далее статей в этом
специальном выпуске журнала Computer, посвященном вопросам оптимизации
вычислений с учетом потребляемой мощности.
4. Swanson and Caulfield, Refactor, Reduce, Recycle: Restructuring the I/O Stack for the
Future of Storage.
Диски нужны по двум причинам: когда отключается электропитание, оперативная
память теряет свое содержимое. Кроме того, диски имеют очень большую емкость.
А что, если оперативная память не утратит своего содержимого при отключении пи-
тания? Как это повлияет на стек ввода-вывода? Энергонезависимая память уже су-
ществует, и в этой статье рассматриваются вопросы ее влияние на изменение систем.
5. Ion, From Touch Displays to the Surface: A Brief History of Touchscreen Technology.
Сенсорные экраны в короткие сроки приобрели повсеместное распространение.
В этой статье просто и доходчиво отслеживается история сенсорных экранов и по-
казаны весьма интересные старые картинки и снимки. Восхитительный материал!
6. Walker and Cragon, Interrupt Processing in Concurrent Processors.
Реализация точных прерываний на суперскалярных компьютерах представляет
собой чрезвычайно перспективную область исследований. Хитрость заключает-
ся в том, чтобы преобразовать состояние процессора в последовательную форму
и сделать это быстро. В данной статье обсуждаются различные вопросы устройства
компьютеров и возможные компромиссные решения.
13.1.6. Взаимоблокировка
1. Coffman et al., System Deadlocks.
Эта книга представляет собой краткое введение во взаимоблокировки. В ней
рассказывается о причинах их возникновения и способах предотвращения или
обнаружения.
2. Holt, Some Deadlock Properties of Computer Systems.
Обсуждение взаимоблокировок. Холт вводит модель направленных графов, кото-
рую можно использовать для анализа некоторых тупиковых ситуаций.
3. Isloor and Marsland, The Deadlock Problem: An Overview.
Учебное пособие по взаимоблокировкам, в котором особое внимание уделяется
системам баз данных. Описывается множество моделей и алгоритмов.
4. Levine, Defining Deadlock.
В главе 6 данной книги основное внимание уделялось взаимной блокировке
ресурсов, а ее другие виды рассматривались весьма поверхностно. В этой статье
указывается на то, что в литературе используются различные определения, кото-
рые немного отличаются друг от друга. Затем авторы рассматривают взаимные
блокировки при обмене данными, планировании и чередующиеся взаимные
блокировки и предлагают новую модель, которая претендует на защиту от всех
данных разновидностей взаимных блокировок.
1114
Глава 13. Библиография
5. Shub, A Unified Treatment of Deadlock.
Этот краткий учебный курс сводит воедино причины возникновения взаимобло-
кировок и пути решения этих проблем.
13.1.7. Виртуализация и облако
1. Portnoy, Virtualization Essentials.
2. Легкое введение в виртуализацию. В книге рассматриваются контекст (включая
взаимоотношения между виртуализацией и облаком) и различные решения
(с уклоном в сторону VMware).
3. Erl et al., Cloud Computing: Concepts, Technology & Architecture.
4. Книга посвящена облачным вычислениям в широком смысле. Авторы дают под-
робные объяснения того, что скрывается за акронимами IAAS, PAAS, SAAS, и по-
добными акронимами с «X», входящими в семью облачной службы.
5. Rosenblum and Garfinkel, Virtual Machine Monitors: Current Technology and Future
Trends.
6. Эта статья начинается с истории мониторов виртуальных машин, после чего рас-
сматривается современное состояние виртуализации центральных процессоров,
памяти и ввода-вывода. В частности, в статье рассматриваются проблемные об-
ласти, относящиеся ко всем трем компонентам, и то, как будущее оборудование
сможет смягчить эти проблемы.
7. Whitaker et al., Rethinking the Design of Virtual Machine Monitors.
8. У большинства компьютеров есть ряд странных и трудно поддающихся виртуали-
зации особенностей. В данной статье авторы системы Denali обсуждают паравир-
туализацию — изменение гостевой операционной системы, позволяющее избежать
использования странных особенностей и их эмуляции.
13.1.8. Многопроцессорные системы
1. Ahmad, Gigantic Clusters: Where Are They and What Are They Doing?
Чтобы понять, что лежит в основе современных больших многокомпьютерных си-
стем, стоит прочитать эту статью. В ней описывается основная концепция, а также
рассматриваются некоторые наиболее крупные из работающих сегодня систем.
Учитывая действие закона Мура, можно смело предполагать, что упоминаемые
в этой статье числа будут удваиваться примерно каждые 2 года.
2. Dubois et al., Synchronization, Coherence, and Event Ordering in Multiprocessors.
Учебная статья по вопросам синхронизации в мультипроцессорных системах
с общей памятью. Однако некоторые идеи в равной степени применимы также
к однопроцессорным системам и системам с распределенной памятью.
3. Geer, For Programmers, Multicore Chips Mean Multiple Challenges.
Многопроцессорные чипы являются реальностью, и этот факт не зависит от
желания программистов. Поскольку они к этому не готовы, программирование
таких чипов ставит множество проблем, от выбора правильного инструментария
до разбиения задач на этапы и тестирования результатов.
13.1. Дополнительная литература
1115
4. Kant and Mohapatra, Internet Data Centers.
Системы, занимающиеся обработкой данных в Интернете, — пример откорм-
ленных стероидами огромных многокомпьютерных комплексов. Обычно они
состоят из десятков или сотен тысяч компьютеров, работающих над одной
задачей. Эта статья является хорошим обзором и предваряет еще 4 статьи по
данной тематике.
5. Kumar et al., Heterogeneous Chip Multiprocessors.
Многоядерные процессоры персональных компьютеров «симметричны», то есть
ядра в них идентичны. Однако существуют задачи, требующие разнотипных ядер,
например, ядер, используемых для расчетов, обработки видео- и аудиоинформации
и т. п. Эта статья рассматривает некоторые аспекты, связанные с «несимметрич-
ными» чипами.
6. Kwok and Ahmad, Static Scheduling Algorithms for Allocating Directed Task Graphs to
Multiprocessors.
Оптимальное планирование заданий на многомашинной системе или мультипро-
цессоре возможно, когда характеристики всех заданий известны заранее. Проблема
заключается в том, что оптимальное планирование занимает слишком много вре-
мени. В данной статье авторы обсуждают и сравнивают 27 известных алгоритмов
для различных способов решения этой проблемы.
7. Zhuravlev et al., Survey of Scheduling Techniques for Addressing Shared Resources in
Multicore Processors.
Как уже упоминалось, наиболее важная задача, относящаяся к многопроцес-
сорным системам, касается конкуренции в борьбе за совместно используемые
ресурсы. В этом исследовании представлены различные методы планирования
для разрешения подобной конкуренции.
13.1.9. Безопасность
1. Anderson, Security Engineering, 2nd ed.
Замечательная книга, в которой одним из широко известных исследователей
в этой области очень четко объясняется, как создавать надежные и безопасные
системы. Это не только завораживающий взгляд на многие аспекты безопасно-
сти (включая технологии, приложения и организационные вопросы), но и книга,
имеющаяся в свободном доступе в сети. Если вы ее не читали, то вам не помогут
никакие оправдания.
2. Van der Veen et al., Memory Errors: the Past, the Present, and the Future.
Исторический взгляд на ошибки, связанные с памятью (переполнение буфера,
атаки, использующие форматирующую строку, указатели на несуществующие объ-
екты и многое другое), в том числе атаки и средства обороны, атаки, обходящие эти
средства обороны, новые средства обороны, останавливающие атаки, обходящие
прежнюю оборону, и... В общем, в любом случае без идей вы не останетесь. Авторы
показывают, что, несмотря на преклонный возраст рассматриваемых ошибок и по-
явление новых видов атак, ошибки, связанные с памятью, остаются исключительно
значимыми. Более того, авторы готовы поспорить, что сложившаяся ситуация
в ближайшее время вряд ли претерпит изменения.