Новые книги

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

Для деловых людей, студентов экономических специальностей и всех, кто интересуется современным бизнесом.
«Кибернетика» — известная книга выдающегося американского математика Норберта Винера (1894—1964), сыгравшая большую роль в развитии современной науки и давшая имя одному из важнейших ее направлений. Настоящее русское издание является полным переводом второго американского издания, вышедшего в 1961 г. и содержащего важные дополнения к первому изданию 1948 г. Читатель также найдет в приложениях переводы некоторых статей и интервью Винера, включая последнее, данное им незадолго до смерти для журнала «Юнайтед Стэйтс Ньюс энд Уорлд Рипорт».

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

Книга предназначена для научных работников и инженеров.

7.10 ВЫВОДЫ

 

7.10 ВЫВОДЫ

В данной главе были рассмотрены системные функции, предназначенные для работы с контекстом процесса и для управления выполнением процесса. Системная функция fork создает новый процесс, копируя для него содержимое всех областей, подключенных к родительскому процессу. Особенность реализации функции fork состоит в том, что она выполняет инициализацию сохраненного регистрового контекста порожденного процесса, таким образом этот процесс начинает выполняться, не дожидаясь завершения функции, и уже в теле функции начинает осознавать свою предназначение как потомка. Все процессы завершают свое выполнение вызовом функции exit, которая отсоединяет области процесса и посылает его родителю сигнал "гибель потомка". Процесс-родитель может совместить момент продолжения своего выполнения с моментом завершения процесса-потомка, используя системную функцию wait. Системная функция exec дает процессу возможность запускать на выполнение другие программы, накладывая содержимое исполняемого файла на свое адресное пространство. Ядро отсоединяет области, ранее занимаемые процессом, и назначает процессу новые области в соответствии с потребностями исполняемого файла. Совместное использование областей команд и наличие режима "sticky-bit" дают возможность более рационально использовать память и экономить время, затрачиваемое на подготовку к запуску программ. Простым пользователям предоставляется возможность получать привилегии других пользователей, даже суперпользователя, благодаря обращению к услугам системной функции setuid и setuid-программ. С помощью функции brk процесс может изменять размер своей области данных. Функция signal дает процессам возможность управлять своей реакцией на поступающие сигналы. При получении сигнала производится обращение к специальной функции обработки сигнала с внесением соответствующих изменений в стек задачи и в сохраненный регистровый контекст задачи. Процессы могут сами посылать сигналы, используя системную функцию kill, они могут также контролировать получение сигналов, предназначенных группе процессов, прибегая к услугам функции setpgrp.

Командный процессор shell и процесс начальной загрузки init используют стандартные обращения к системным функциям, производя набор операций, в других системах обычно выполняемых ядром. Shell интерпретирует команды пользователя, переназначает стандартные файлы ввода-вывода данных и выдачи ошибок, порождает процессы, организует каналы между порожденными процессами, синхронизирует свое выполнение с этими процессами и формирует коды, возвращаемые командами. Процесс init тоже порождает различные процессы, в частности, управляющие работой пользователя за терминалом. Когда такой процесс завершается, init может породить для выполнения той же самой функции еще один процесс, если это вытекает из информации файла "/etc/inittab".

Предыдущая глава || Оглавление || Следующая глава