Новые книги

Автор сообщает интересные, зачастую уникальные сведения об организационной структуре Apple, режиме секретности, стратегии и тактике компании, личности и стиле руководства ее основателя Стива Джобса. Рассказывает, как рождаются «яблочные» шедевры. Анализирует, каким образом небольшая фирма, пренебрегающая традиционными методами управления, сумела стать технологическим гигантом и при этом сохранить дух стартапа. Рассуждает, какое будущее ждет Apple без Стива Джобса. Книга адресована поклонникам Apple, бизнесменам, всем, кто мечтает найти свою «формулу успеха».
Книга американского специалиста по системному программированию — уникальный сборник задач по программированию из разных областей: моделирования, точности вычислений, обработки текстов, искусственного интеллекта, конструирования компиляторов. Большинство задач базируется на реальных и игровых ситуациях.

Для всех, кто преподает и изучает программирование.

2.6 УПРАЖНЕНИЯ

 

2.6 УПРАЖНЕНИЯ

1. Рассмотрим следующий набор команд:

    grep main a.c b.c c.c > grepout &
     wc -1 < grepout &
     rm grepout &

Амперсанд (символ "&") в конце каждой командной строки говорит командному процессору shell о том, что команду следует выполнить на фоне, при этом shell может выполнять все командные строки параллельно. Почему это не равноценно следующей командной строке?

    grep main a.c b.c c.c | wc -1

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

    remove(gp)
          struct queue *gp;
     {
          gp - > forp - > backp = gp - > backp;
          gp - > backp - > forp = gp - > forp;
          gp - > forp = gp - > backp = NULL;
     }

Рассмотрим три случая:

  • Процесс убирает из списка с указателями структуру bp1.
  • Процесс убирает из списка с указателями структуру, следующую после структуры bp1.
  • Процесс убирает из списка структуру, которая первоначально следовала за bp1 до того, как структура bp была наполовину включена в указанный список.

В каком состоянии будет список после того, как первый процесс завершит выполнение части программы, расположенной после комментариев?

3. Что произошло бы в том случае, если ядро попыталось бы возобновить выполнение всех процессов, приостановленных по событию, но в системе не было бы к этому моменту ни одного такого процесса?

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