os2016-24-03-dist
.pdfIntel Core
•Intel Core Duo(2006)
•Количество ядер – 2
•Тактовая частота – 1,66 – 2,33 ГГц
•Количество транзисторов – 151 млн.
•Техпроцесс – 65 нм
•Векторные команды SSE3
•Кеш
•L1: 16 Кбайт (8 Kb Data + 8 Kb Code)
•L2: разделяемый 2 Мбайт
•Тепловыделение 31 Вт
|
Архитектура Intel от i386 до Xeon Phi: |
|
Нижний Новгород 2014 |
процессоры, производительность, |
61 из 66 |
|
энергопотребление |
|
More cores. Wider vectors. Co-Processors.
Images do not reflect actual die sizes
|
Intel® Xeon® |
Intel® Xeon® |
Intel® Xeon® |
Intel® Xeon® |
|
Intel® Xeon® |
Intel® Xeon® |
Intel® Xeon® |
|
Intel® Xeon |
|
processor |
processor |
processor |
processor |
|
processor |
processor |
processor |
Phi co- |
|
|
64-bit |
5100 |
5500 |
5600 |
|
code-named |
code-named |
code-named |
processor |
|
|
|
Sandy |
Ivy |
|||||||
|
|
series |
series |
series |
|
Haswell |
Knights |
|||
|
|
|
Bridge |
Bridge |
|
|
Corner |
|||
|
|
|
|
|
|
|
|
|||
|
|
|
|
|
|
|
|
|
|
|
Core(s) |
1 |
2 |
4 |
6 |
|
8 |
|
|
|
60 |
|
|
|
|
|
|
|
|
|
|
|
Threads |
2 |
2 |
8 |
12 |
16 |
|
|
|
240 |
|
|
|
|
|
|
|
|
|
|
|
|
SIMD Width |
128 |
128 |
128 |
128 |
|
256 |
256 |
256 |
|
512 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
AVX2 |
|
|
|
SSE2 |
SSSE3 |
SSE4.2 |
SSE4.2 |
|
AVX |
AVX |
FMA3 |
|
|
|
|
|
|
|
|
|
|
TSX |
|
Геннадий Федоров. Intel® Xeon Phi. Курс “молодого” бойца.
|
Архитектура Intel от i386 до Xeon Phi: |
|
Нижний Новгород 2014 |
процессоры, производительность, |
62 из 66 |
|
энергопотребление |
|
Процессы (а также их надсистемы и подсистемы)
Большие задачи
Параллелизм и параллельное программирование
Аппаратная поддержка процессов
Процессы: определение, разновидности, состояния, многопоточность
Модели функционирования процессов
Планирование и диспетчеризация процессов
63
Несколько определений процесса
•Процесс — это абстракция, описывающая выполняющуюся программу
•Процесс — это исполнение последовательности действий в среде, включающей собственно выполняющуюся программу, а также связанные с ней данные и состояния (открытые файлы, текущий каталог и т. п.)
•С точки зрения операционной системы, процесс — это единица работы, заявка на потребление системных ресурсов
•С точки зрения аппаратной платформы, процесс — объект, которому выделяется процессор
•Процесс — это живая душа программы
• ... |
64 |
Некоторые сведения о процессах
•Первое упоминание о процессе появилось в 60-е годы XX века в операционной системе MULTICS
•Если говорить о соотношении между процессом и программой (несмотря на то, что это понятия из разных областей), то справедливы следующие два утверждения:
•программа — это часть состояния процесса. С этой точки зрения процесс — нечто большее, чем просто программа
•программа может вызывать более чем один процесс для выполнения работы. С этой точки зрения программа — нечто большее, чем процесс
•Во многих операционных системах процессы образуют иерархию. Соответственно, будем называть порожденные процессы — потомками данного процесса, а родителя порожденного процесса — предком
65
Основные состояния процесса
•На процессоре — активное состояние, в котором процесс обладает всеми необходимыми ресурсами, в том числе самим процессором
•Готовность — процесс находится в очереди на выполнение
•Ожидание — процесс ожидает завершения события (например, освобождения ресурса)
•Остановлен — процесс остановлен, как правило, в отладочном режиме
•Создание — выполнение действий, необходимых для создания процесса
•Завершение — выполнение действий, связанных с успешным завершением процесса
• Зомби — процесс закончен, но предок не принял его завершения |
66 |
Действия выполняемые при создании процесса
•Присвоение процессу уникального номера
(ID)
•Добавление процесса в список процессов, известных системе
•Определение начального приоритета
•Формирование блока управления процессом
•Выделение необходимых ресурсов
•…
67
Адресное пространство процесса
•С каждым процессом связывается его адресное пространство, из которого он может читать и в которое он может писать данные
•Адресное пространство содержит:
•саму программу
•данные к программе
•стек программы
•С каждым процессом также связывается набор регистров, например:
•счетчика команд (в процессоре) – регистр в котором содержится адрес следующей, стоящей в очереди на выполнение команды. После того как команда выбрана из памяти, счетчик команд корректируется и указатель переходит к следующей команде
•указатель стека
•…
68
Простейшая программа на языке C, порождающая процесс в ОС Windows
void main() { STARTUPINFO si;
PROCESS_INFORMATION pi; ZeroMemory(&si, sizeof(si)); si.cb = sizeof(si); ZeroMemory(&pi, sizeof(pi));
if ( !CreateProcess(NULL, "c:\\windows\\notepad.exe",
NULL, NULL, FALSE, 0, NULL, NULL, &si, &pi) ) {
ErrorExit("Не удалось создать процесс.");
}
WaitForSingleObject(pi.hProcess, INFINITE); // ждем завершения CloseHandle(pi.hProcess); // освобождаем ресурсы CloseHandle(pi.hThread);
}
69
Простейшая программа на языке C, порождающая процесс в ОС Unix
void main() { int status;
int child_pid, child_status;
child_pid = fork();
if ( child_pid == 0 ) { /* находимся в потомке */ execlp("ls", "ls", (char*)0);
exit(1); /* оказываемся здесь только в случае неудачного исполнения вызова execlp */
}
else if ( child_pid != -1 ) { /* находимся в предке */ status = wait(&child_status);
printf(" %d %d \n", status, child_status);
}
}
70