Russian Qt Forum

Компиляторы и платформы => Visual C++ => Тема начата: Evgn от Сентябрь 26, 2004, 18:28



Название: Поток
Отправлено: Evgn от Сентябрь 26, 2004, 18:28
Немогу создать поток.  Делаю так. Создаю в текущем проекте класс, типа CDialog и добавляю(руками) клас CWinTread, с именем CWithClient. Потом делаю следующие
CRuntimeClass *ptr = RUNTIME_CLASS (CWithClient);
   ASSERT (lstrcmp (ptr ->m_lpszClassName, "CWithClient") == 0);
   
   theApp.HideApplication();
   AfxBeginThread(ptr, THREAD_PRIORITY_NORMAL, 0, 0, NULL);
Компилирую. Запускаю. Пробую создать поток. Выводит
      Debug Assertion Faild!
      Путь к файлу.exe
      File: thrdcore.cpp
      Line: 342
   Прервать Повтор Пропустить
Выбираю «Пропустить». Выводит
      Out of memory!
Помогите. Заранее благодарен.


Название: Поток
Отправлено: malor от Июль 22, 2007, 14:12
Э.Таненбаум "Современные операционные системы" 2-е издание, Питер, 2006.

 Стр. 98:
Цитировать
Когда время, отведенное текущему запросу, заканчивается, физический счетчик команда сохраняется в логическом счетчике команд процесса в памяти
Физический - это регистр в процессоре, а что за "логический счетчик"?

 Стр. 100:
Цитировать
Когда на UNIX работает X Window, новый процесс получает то окно, в котором был запущен.
Что значит "процесс получает окно"?

 Стр. 100-101:
Цитировать
После выполнения запроса fork двум процессам - родительскому и дочернему - соответствуют одинаковые образы памяти, строки окружения и одни и те же открытые файлы. Обычно дочерний процесс выполняет системный вызов execve(или похожий) для изменения своего образа памяти и запуска новой программы. Так, когда пользователь наберет на клавиатуре команду sort, оболочка создаст путем ветвления дочерний процесс, который и выполняет программу sort. Смысл этого двухступенчатого процесса заключается в том, что дочерний процесс успевает обработать описания файлов после fork, но до execve, чтобы выполнить перенаправление стандартных устройств ввода и вывода и потока сообщений об ошибках
Что за "описания файлов"?

 Стр.113:
Цитировать
"На рис. 2.7 показан один из способов организации web-сервера. Один поток, называемый диспетчером, считывает приходящие по сети запросы. После этого он находит свободный(т.е. блокированный) рабочий поток и передает ему запрос, скажем,записывая указатель сообщения в специальное слово, связанное с каждым потоком."
Что такое "указатель сообщения"? Что за "специальное слово"?

 Стр.114:
Цитировать
"После активации рабочий поток проверяет возможность удовлетворения запроса в кэше web-сервера, к которому имеют доступ все потоки. В случае отрицательного ответа поток начинает операцию чтения read, чтобы считать страницу с диска, и блокируется до завершения этой операции"
Как он 'блокированный' занимается считыванием данных с диска?