Главная страница  Межпроцессное взаимодействие (состязание) 

1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 133 134 135 136 137 138 139 140 141 142 143 144 145 146 147 148 149 150 151 152 153 154 155 156 157 158 159 160 161 162 163 164 165 166 167 168 169 170 171 172 173 174 175 176 177 178 179 180 [ 181 ] 182 183 184 185 186 187

Глава 6

Библиография

в предыдущих пяти главах был рассмотрен широкий спектр вопросов. Цель последней главы заключается в том, чтобы помочь заинтересованным читателям продолжить изучение операционных систем. Первый раздел представляет собой список книг, рекомендованных для дальнейшего чтения. Второй раздел является алфавитным перечнем всех изданий, на которые мы ссылались в данной книге.

Помимо этих списков литературы, в поисках новых статей по вопросам принципов операционных систем стоит заглянуть в материалы симпозиумов Ассоциации по вычислительной технике (АСМ, Association for Computing Machinery), проводимых раз в год, а также в отчеты ежегодной международной конференции по распределенным вычислительным системам от IEEE. Представляют интерес и материалы симпозиума USENIX по проектированию и реализации операционных систем. Кроме того, интересные статьи об операционных системах печатаются в журналах АСМ Transactions on Computer Systems и Operating Systems Review.

6.1. Литература, рекомендуемая для дальнейшего чтения

6.1.1. Введение и общие труды

1. Brooks, The Mythical Man Month: Essays on Software Engineering*.

Фред Брукс был одним из разработчиков операционной системы OS/360. Он на собственном опыте научился отличать то, что работает, от того, что не работает.

2. Comer, D.: Operating System Design. The Xinu Approach, Upper Saddle River*, NJ, Prentice Hall, 1984.

Книга об операционной системе Xinu, работавшей на LSI-11. Содержит детальный обзор исходных кодов и полный листинг на языке С.

3. Corbat6, Оп Building Systems That Will Faib.

В своей лекции по поводу получения премии Тьюринга основатель системы разделения времени высказывает примерно те же соображения, что и Брукс в упомянутой выше книге. Он приходит к выводу, что все сложные системы в конце концов ждет крах, и чтобы иметь хоть какой-то шанс на успех, необходимо избегать любой сложности и придерживаться простоты и элегантности проекта.

4. Deitel, Operating Systems*, 2nd Ed.



Базовая книга об операционных системах. В дополнение к стандартным материалам, содержит обзоры операционных систем UNIX, MS-DOS, MVS, VM, OS/2 и ОС для Macintosh.

5. Finkel, Ап operating Systems Vade Месит .

Еще одна общая книга об операционных системах. Она ориентирована на практические задачи и неплохо написана. Содержимое охватывает многие рассматриваемые здесь вопросы, предоставляя тем самым хорошую возможность взглянуть на них под новым углом.

6. IEEE, Information Technology - Portable Operating System Interface (POSIX), Part 1: System Application Program Interface (API) [C Language]*.

Это не беллетристика, a стандарт. Некоторые разделы вполне удобочитаемы, особенно дополнение В, Rationale and Notes* (обоснования и примечания), благодаря которому часто становится понятно, почему то или иное сделано именно так, а не иначе. Одно из преимуществ ссылки на стандарт заключается в том, что в этом документе по определению нет ошибок. Если какой-либо типографской опечатке в макросе удается преодолеть процесс редактирования, то после этого она уже не ошибка, а официальный факт.

7. Lampson, Hints for Computer System Design*.

Батлер Лэмпсон, один из ведущих в мире разработчиков передовых операционных систем, за годы собрал множество подсказок, предложений и руководящих указаний и поместил их в эту увлекательную и информативную статью. Как и книга Брукса, эта статья является обязательным чтением для каждого честолюбивого разработчика операционных систем.

8. Lewine, POSIX Programmers Guide*.

Эта книга описывает требования POSIX более подробно, чем документы стандарта, а также включает обсуждения с примерами преобразования старых программ в стандарт POSIX и описывает методы разработки новых программ для среды POSIX.

9. Silberschatz and Galvin, Operating System Concepts*, 4th Ed.

Еще один учебник по операционным системам. Тематика: процессы, управление накопителями, файлы и распределенные системы. Рассматриваются два конкретных случая: UNIX и Mach. На обложке полно динозавров. Какое отношение они имеют к операционным системам 1990-го года, непонятно.

10. Stallings, Operating Systems*, 4th Ed.

Опять-таки учебник, и опять-таки по операционным системам. В нем затрагиваются все традиционные темы, а также включено небольшое количество материала по распределенным средам.

И. Stevens, Advanced Programming in the UNIX Environment*.

Руководство, как написать программы на языке С с помощью интерфейса системных вызовов UNIX и стандартной библиотеки С. Примеры основа-



6.1.3. Ввод/вывод

1. Chen et al., RAID: High Performance Reliable Secondary Storage*.

Параллельное использование нескольких жестких дисков для ускорения ввода/вывода является современной тенденцией в профессиональных сис-

ны на версиях системы UNIX System V Release 4 и 4.4BSD. Подробное описание этих реализаций строится относительно стандарта POSIX.

12. Switzer, Operating Systems, A Practical Approach*.

В основе книги лежит подход, аналогичный этому тексту. Теоретические понятия иллюстрируются примерами псевдокода и исходными кодами модельной операционной системы TUNIX. В отличие от MINIX TUNIX не рассчитана на работу с реальными машинами и выполняется на виртуальной. Она не столь реалистична, как MINIX, в плане драйверов устройств, но превосходит ее в некоторых других областях, в частности в организации виртуальной памяти.

6.1.2. Процессы

1. Andrews and Schneider, Concepts and Notations for Concurrent Programming*.

Учебный и обзорный материал по процессам и межпроцессному взаимодействию, в котором, среди прочего, описываются активное ожидание, семафоры, мониторы, передача сообщений и другие технологии. В этой статье также показывается, как эти понятия встроены в различные языки профаммирования.

2. Ben-Ari, Principles of Concurrent Programming*.

Эта небольшая книга полностью посвящена проблемам межпроцессного взаимодействия. Среди прочих тем в отдельных главах обсуждаются взаимные исключения, семафоры, мониторы и вопросы кормления философов.

3. Dubois et al., Synchronization, Coherence, and Event Ordering in Multiprocessors*.

Учебная статья по вопросам синхронизации в мультипроцессорных системах с общей памятью. Однако некоторые идеи в равной мере применимы также к однопроцессорным системам и системам с распределенной памятью.

4. Silberschatz and Galvin, Operating System Concepts*, 4th Ed.

В главах с 4-й по 6-ю рассматриваются семафоры и взаимодействие между процессами, включая планирование, критические секции, семафоры, мониторы и классические проблемы взаимодействия между процессами.



1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 133 134 135 136 137 138 139 140 141 142 143 144 145 146 147 148 149 150 151 152 153 154 155 156 157 158 159 160 161 162 163 164 165 166 167 168 169 170 171 172 173 174 175 176 177 178 179 180 [ 181 ] 182 183 184 185 186 187

© 2000 - 2018 ULTRASONEX-AMFODENT.RU.
Копирование материалов разрешено исключительно при условии цититирования.