Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:

os2016-24-03-dist

.pdf
Скачиваний:
14
Добавлен:
21.03.2016
Размер:
5 Мб
Скачать
☆

Intel 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

Соседние файлы в предмете [НЕСОРТИРОВАННОЕ]