6 список литературыД.Цикритзис, Ф.Бернстайн. Операционные системы. Москва, Мир, 1977. Э.С.Таненбаум. Современные операционные системы, 2-е издание. Санкт-Петербург, Издательский дом Питер, 2002. П.Кейлингер. Элементы операционных систем. Москва, Мир, 1985. Ч.Хоар. Взаимодействующие последовательные процессы. Москва , Мир, 1989. Pate S.D. UNIX Internals. A Practical Approach. Addison-Wesley Longman, 1997. К.Кристиан. Введение в операционную систему UNIX. Москва, Финансы и статистика. 1985. Б.К.Керниган, Р.Пайк. UNIX – универсальная среда программирования. Москва, Финансы и статистика, 1992. М.Дансмур, Г.Дейвис. Операционная система UNIX и программирование на языке Си. Москва, Радио и связь, 1989. Т.Чан. Системное программирование на С++ для UNIX. Киев, Издательская группа BHV, 1997. М.Устюгов. Введение в TCP/IP. Москва, .МГУ, 1997. Б.Керниган, Д.Ритчи. Язык программирования Си. Издание 3-е, исправленное. Санкт-Петербург, Невский Диалект, 2001. И.В.Машечкин, М.И.Петровский, П.Д.Скулачев, А.Н.Терехин. Системное Программное Обеспечение: файловые системы ОС Unix и Windows NT. Москва, Диалог-МГУ,1997. А.Робачевский Операционная система UNIX. Санкт-Петербург, BHV-Санкт-Петербург, 1998 К.Хэвиленд, Д.Грей, Б.Салама. Системное программирование в UNIX. Москва, ДМК, 2000. Н.Д.Васюкова, И.В.Машечкин, В.В.Тюляева, Е.М.Шляховая. Краткий конспект семинарских занятий по языку Си. Москва, МГУ, 1999. В.Столлингс. Операционные системы. 4-ое издание. Москва, Издательский дом Вильямс, 2002. [1] Отметим, что детальное рассмотрение многих конкретных алгоритмов планирования выходит за рамки данного пособия. [2] Оригинальные обозначения P и V, данные Дейкстрой и получившие широкое распространение в литературе, являются сокращениями голландских слов proberen – проверить и verhogen – увеличить [3] Под сегментом здесь мы понимаем область памяти, которой система управляет как единым целым [4] Существуют и исключения из этого правила. Далее в этом пособии, рассказывая о системных вызовах, мы будем оговаривать такие исключения особо. [5] Эти процессы создаются во время начальной загрузки системы, механизм которой будет подробно рассмотрен ниже [6] Существует шесть различных системных вызовов exec(), отличающихся параметрами, которые будут описаны ниже. [7] при условии, разумеется, что у данного процесса имеются достаточные права для доступа к конкретному ресурсу, через который осуществляется взаимодействие [8] Следует заметить, что в разных версиях UNIX имена сигналов могут различаться. [9] Несмотря на это, как уже говорилось, сами сигналы, ожидающие своей обработки родительским процессом на момент порождения потомка, в том числе и блокированные, не наследуются потомком [10] это правило не является обязательным, но для корректной организации двустороннего обмена через один канал требуется дополнительная синхронизация [11] аббревиатура IPC – это сокращение от английского interprocess communication [12] Заметим, что данный аргумент может принимать не только указанные два значения, например, тип сокета SOCK_SEQPACKET обозначает соединение с установлением виртуального канала со всеми вытекающими отсюда свойствами, но при этом сохраняются границы сообщений; однако данный тип сокетов не поддерживается ни в домене AF_UNIX, ни в домене AF_INET, поэтому мы его здесь рассматривать не будем [13] Отметим, что, как уже говорилось, при использовании сокетов с установлением виртуального соединения границы сообщений не сохраняются, поэтому приложение, принимающее сообщения, может принимать данные совсем не теми же порциями, какими они были посланы. Вся работа по интерпретации сообщений возлагается на приложение. [14] MPI – сокращение от Message Passing Interface, т.е. «Механизм (или интерфейс) передачи сообщений» [15] Аббревиатура MPP представляет собой сокращение от «Massive Parallel Processing» [16] Аббревиатура SMP является сокращением фразы «Symmetric Multi Processing» [17] Аббревиатура NUMA расшифровывается как «Non-Unified Memory Access», что в буквальном переводе и означает «неоднородный доступ к памяти». Часто используется также обозначение «ccNUMA», что означает «cache-coherent NUMA», или система с неоднородным доступом к памяти с поддержкой когерентности (т.е. согласованности) кэшей [18] Заметим, что в версии стандарта MPI-2 описывается возможность динамического порождения ветвей, однако на момент написания данного пособия нам неизвестно ни об одной реализации MPI, в которой поддерживалось бы динамическое порождение ветвей, поэтому далее мы будем рассматривать только модель со статическим порождением ветвей в момент запуска приложения. |