Искусство программирования на Си (984073), страница 4
Текст из файла (страница 4)
Параллельная обработка ....................... Основные концепции ......................................................................... Компьютеры и параллельная обработка ....................................... Приоритетная многозадачность ................................................ Кооперативная многозадачность ............................................... Межпроцессная коммуникация ................................................. Потоки, многопоточность и синхронизация ....................,.... Параллельная обработка в С ......................................,..................... 690 . 691 .
691 . 692 . 69З . 695 . 695 699 . 70! . 791 . 701 . 762 06 авторах соавтором научных трудов по китам Ва!аепа тузбсегоз для организации 1ЧопЬ Я)оре Вогообй, коРячард Хззфилд (К)сйагд НеагЬВеЫ) — владелец и раз- торая представила его к степени 1%С. Он является работчик программного обеспечения компании Егоп основателем и менеджером международного проекта Сошрогег 5уиешз 1лс).
Когда писал кслы для страховых по шахматному анализу (СЬезз Апа)унз Рго)есг), в компаний, лечебных учреждений, банков и аэрофлота, котором используются компьютерные программы для он всегда задавался вопросом, сможет ли он когда-либо анализа позиций на шахматной доске и каталогизииайти клиента, используя лишь систему С++ ВшЫег.
В рования результатов в базе данных. %еЬ-сайт часто настоящее время он живет недалеко от Потгерспури в задаваемых вопросов (РАО) по проекту СЬезз Апа!уяз городке Нортамптоншир (Великобритания) вместе с Рго)есг можно найти по адресу Ир://38Л68.214.175/ женой, тремя прекрасными детьми, сетью из пяти ком- рвЬ/СЬезз%20Апа)уз!з%20Рго)ес!%20РА(г.Ыш. пьютеров и множеством С-компиляторов, с которыми Как постоянного контрибьютера группы новостей он знает, что делать. Он прекратил избегать пш!пО не- печзжошр.1апй.с Дэна всегда можно найти здесь и по- задолго перед тем как стать регулярным контрибьюте- лучить от него дружественный ответ в его немного эксром в группе новостей сошр.!аай.с; это факт, которому центричном стиле. Длительное время интересуясь маон будет вечно признателен.
Ричард тратит много време- тематикой и другими науками, он занял первое место ни на поисковом %еЬ-сайте салюс! СЬаг, занимаясь про- на научной ярмарке МЫ Со!ошЬ!а Яс!епсе Ра!г и был блемой С Огеашег, и всегда рад использоватьтакую воз- финалистом на междунарожной научной ярмарке можносп, чтобы сказать "Привет!" всем, кто посещает на 1пгегпабопа! бе|енсе Ра~г со своим проектом Ал ллафги йгом сайго.оаззез Ргоашщпипезпош,по ппогоаммп."-":",:,....„:,":..„:....., «хьжхе* ' - .;, Искусство нрограммигнтанин но С Искусство врограммированин на С в добровольную деятельность по такому проекту как Рго)ес! ОшепЬегб (проект Гутенберг по сохранению книг, которые более не защищены авторским правом, и бесплатному распространению нх в электронном виде).
Вы можете встретить Вильяма в (щегле! по адресу чнбвЬЬвгвеЮа(све!.сощ и посетить %еЬ-страничку проекта Гутенберг по алресу Ы(р://иичв.йвтевбегй.ве!. Скот Флурер (8сог! Е!цбгег) программирует на С с !979 г. В настоящее время работает инженером по разработкам компании Сйсо бух!ешь Другие его интересы вкчючают научный вымысел (фикцию) и криптографиюю.
Сэм Хоббс (8апч НоЬЬз) занялся проблемами компьютерной обработки данных еще в 1966 г., и начинал с 25-битовых последовательных компьютеров со !96 словами основной памяти барабанного типа, на которых языком программирования был только машинный язык. С тех пор он работач на Фортране, Бейсике, Фокале, С, С++ и с различными сценарными языками (в основном аранжирует музыку для женского хора, которым руководит Счзстриво женат уже более чем 30 лет, имеет двоих детей, гвинейского поросенка и шиншиллу.
Ян обещает, что он вернется к пробежкам вокруг газона— на следующей неделе. Джек Клейн ()ас)г К!еш) занялся программированием настольных компьютеров и, прежде всего, проектированием и программированием встроенных систем в 1980 г. Он участвовал в разработке продуктов, использующих множество различных 8-, 16- и 32-битовых процессоров, и программировав их на естественном ассемблерном языке, а начиная с !983 г. — на языке программирования С. Специализируясь на процессном контроле,контроле движения и коммуникациях, Джек разрабатывач и программировал встроенные системы для использования в промышленном, медицинском, бытовом и офисном оборудовании. Джек в настоящее время является главным ннжене- включают французский и японский языки, научный вымысел и пучешесиия.
В 1пгегпе! вы часто можете найти его ответы на вопросы в форуме $/зеве! согпр.)апб.с. Бен также сопровождает систему 1)е!Вап О1Ч(3/1!пцх (аичн.гйгбвьогй) и автор программ для Фонда Бесплатного Программного Обеспечения (ичвчн.узв.огй). С Бэном можно связаться по электронной почте РЫ)Ьевт пчзгьеч)в.
Питер Сибеч (Регег беебасЬ) является заядлым любителем языка С. Он научился читать программы на С с принтерных распечаток н, в конечном счете, научился также писать на С. Он состоит в комитете по с:тандартам АЫ$1/180 С, поскольку, как он утверждает, "А)н(81/180 С звучит как музыка". Питер участвует в группе сюнпр.)апй.с.пюдепв!ег). Он обычно программирует, поскольку иэто — лучший способ не поддаться соблазну видеоигр".
Стив Саммит (бйн бцпцп!г) — ветеран среди программистов на С, автор н преподаватель. Вот уже 20 лет он программирует почти исключительно на С. Он со- Стефая Уилмс (бгерйап %!!шз) — профессиональный разработчик программного обеспечения с опытом в области промышленной обработки изображений и медицинских систем ддя кардиологических исследований и лечения. На протяжении своей карьеры он работал с высокопараллельными встроенными системами и разрабатывал сложные приложения для конечных пользователей %Ыочгз. Яи Вудс (1ап %оог)з) занимался профессиональным программированием семь лет, и в настоящее время работает над написанием встроенного программного обеспечения реального времени для одной исследовательской компании.
Он специализируется на С и различных ассемблерных языках. Многие его проекты основглвзнггся на глубоких знаниях дискретной математики и методов обработки сигналов. Сейчас он изучает разговорный язык, называемый Ео)бап — инженерный лопвческий язык с формальной грамматикой, которая существенно облегчает обработку и генерирование "живой" речи. Боль- И«ну«стао нро«рамччрвванир на С Щ- Посвящение — Ричард Хзз(йияд Благодарности Я признателен многим людям.
И соавторам — в первую очередь: без них не было бы этой книги. Но особую благодарность хочу выразить Дэну Корбиту и Бэну Офаффу, которые квалифицированно разобрали мои исходные коды и уничтожили в них немгччо демонов„а также Челу Диксону, оказавшему мне большую гюмощь ™и в часы сомнений, и Яну Келли — несомненно, английскому Дональду Кнуту (ОопаЫ Клцгй). чай Огромная признательность Кэрол Аккерман (Саго1 Асйеппап) из изаательства Ба«пв РцЫ)ьЫпб, которая много сделала для того, чтобы эта книга вообще появилась, затР Гасу Ми)сзасУ,,(бцй М)х)пб)...иейпенной,отде, йелжанс '," «"1.',; ЧАСТЬ " г р):т-'у:ж «х ::,«" ) вб. -", , «) ',« ' З Д«з -", )«.
.,з «::.;;*.;;,, '«у::;" "; л,,«:, л~.",', ь« ',""...'".;. «« ' *' ««'р,;~.: . '"", '.: ° ° . ««'т« Моей Никки ()у(сйу) — самой очаровательной жени«««не в мире. С любовью шем) руль по ну;кному курсу, а также всем другим сотрудникам излательства Басов, которые так тяжело работали, побы довести эту книгу от идеи до ее реализации. Мнох«ество других людей также бескорыстно отдали свое время, энергию„идеи и наработки. Благодарю Олю Энжлелсмарк (О1а Апяе)зщаг(«), Ника Крамера (Бйсй Сгащег), Марка Дэна (Маг1«Оеап), Джонатана Джорджа (Зопагйап Оеогяе), Мэта Гэсснера (Мац апет).
Стэфсна Хэзфилда (Бгерйеп Неагййе!б), ДзкоХнксона ()ойп Н)хзоп), Лейбиш Мэрмелстейн )Ь)зЬ Меппе)вге)п)„Эдмунда Стефен-Смита (Ебщцп«) еп-Бгппб) и Брайана Вильямса (Вгуал 'ччййащв). Наконец, большое спасибо наилучшей в мире брахакеров, жителей тех глубоких, темных и непрохоых джунглей, которые называются сощрЛапа.с, слуно обеспечив мне экспертную техническую помощь ми ответами на вопросы, задаваемые другими людьи таким образом сэкономив мои усилия, которые я атил бы сам, отвечая на такие вопросы. Пересмотренный язык С ' ь.ъ ' ° ",; -;-.„::,;::;...:,,"".""." оц;«.О .) " '';,'»,;: ' ч.
' . «'С,««, иээ) Эиииилиледил С-лГимуаммипна обще принтер любого типа) либо требует частной парадигмы операционной системы (например, концепции структуры директории), вряд ли может быть реализовано на А)чбтр С. В наше время следует обращаться к дополнительным функциям, обеспечиваемым конкретной реализацией. Несмотря на это ограничение, в среле языка С можно выполнять множество таких операций, о которых многие и не подозревают. Для этого придется немного подумать и выполнить определенную работу. Мы попытались, насколько смогли, сами поразмышлять и выполнить черновую работу так, чтобы вы могли наслаждаться ее результатами.
В ЭТОЙ ГЛАВЕ Ричард Хэзфалд Книга "С. Энциклопедия пользователя" предназначена для тех программистов, которые уже приобрели хотя бы самый минимальный опыт программирования на языка.Си тмси.,либо, ежйдневно используют его в свое.„",.р, В,, ,,Тгит, ' с,;:~"., -й"-у;-. '":.,'",",:.и-алгтг-~~2м'е) Энциклопедия С-программиста ° Для кого предназначена эта книга ° Какие знания вы должны иметь ° Как наиболее эффективно использовать книгу ° Для чего нужна еще одна книга по С ° Почему используется стандарт АХ5! С ° Какие платформы охватывает эта книга ° Об исходном коде ° Качество программного кода ° Как организована эта книга ° Проблемы авторских прав ф ...
( „овгцжмимог,кчмпи их чм~;,ми,...,., ( ыг ...,* .; ---,-,, ---,...,,,-:,, *:,.;;,, аэт»ь .. Для кого предназначена зта книга Глава 1 Какие знания вы должны иметь При написании этой книги предполагалось, что читатель имеет представление о ядре языка С. Если вам знакомы такие понятия, как типы, операторы, выражения, управляющие потоки, синтаксис функций, указатели, массивы, структуры, объединения, входной и выходной потоки, обработка строк, область видимости и синтаксис базового препроцессора, то для вас не покажется трудным восприятие материала этой книги. Среди указанных понятий имеется одно, которое можно отнести к разряду особо сложных, речь идет об указателях (ро)пьета).
Учитывая это, в книге дан краткий курс по элементарной ~сории указателей. Указатель является переменной. Это наиболее важная илея, которую следует взять во внимание. Она является отправной точкой лля освоения всего материала. Необходимо срезу же подчеркнуть, что это не просто переменная, а специальный тип переменной, знамем, вя,их;,оопй,,щепка ., 1ви ...Г(евехьечмии хиизмтели д~[н Зициглоьедиг С-прогриммн<ма Пер«мотр<ннмаизык С Часть ) [1ас1иди <ведро.Ь> )1ае1иии <аег1ач.ь> $1ас1ааи <ае61[Ь.Ь> Листинг 1.1. Обеспечение мепа, на которое могут указывать указатели.