Компьютерные системы : архитектура и программирование
Здесь можно купить книгу "Компьютерные системы : архитектура и программирование" в печатном или электронном виде. Также, Вы можете прочесть аннотацию, цитаты и содержание, ознакомиться и оставить отзывы (комментарии) об этой книге.
Место издания: Москва
ISBN: 978-5-97060-492-2
Страниц: 995
Артикул: 107896
Возрастная маркировка: 16+
Краткая аннотация книги "Компьютерные системы"
В книге описываются стандартные элементы архитектуры, такие как центральный процессор, память, порты ввода-вывода, а также операционная система, компилятор, компоновщик и сетевое окружение. Демонстрируются способы представления данных и программ на машинном уровне, приемы оптимизации программ, особенности управления потоками выполнения и виртуальной памятью, а также методы сетевого и параллельного программирования. Приведенные в книге примеры для процессоров, совместимых с Intel (x86_64), написаны на языке C и выполняются в операционной системе Linux. Издание адресовано студентам и преподавателям по IT-специальностям, а также будет полезно разработчикам, желающим повысить свой профессиональный уровень и писать программы, эффективно использующие возможности компьютерной архитектуры.
Содержание книги "Компьютерные системы : архитектура и программирование"
Предисловие от издательства
Вступление
Об авторах
Глава 1. Экскурс в компьютерные системы
1.1. Информация – это биты+контекст
1.2. Программы, которые переводятся другими программами в различные формы
1.3. Как происходит компиляция
1.4. Процессоры читают и интерпретируют инструкции, хранящиеся в памяти
1.5. Различные виды кеш-памяти
1.6. Устройства памяти образуют иерархию
1.7. Операционная система управляет работой аппаратных средств
1.8. Обмен данными в сетях
1.9. Важные темы
1.10. Итоги
Часть I. Структура программы и ее выполнение
Глава 2. Представление информации и работа с ней
2.1. Хранение информации
2.2. Целочисленные представления
2.3. Целочисленная арифметика
2.4. Числа с плавающей точкой
2.5. Итоги
Глава 3. Представление программ на машинном уровне
3.1. Историческая перспектива
3.2. Программный код
3.3. Форматы данных
3.4. Доступ к информации
3.5. Арифметические и логические операции
3.6. Управление
3.7. Процедуры
3.8. Распределение памяти под массивы и доступ к массивам
3.9. Структуры разнородных данных
3.10. Комбинирование инструкций управления потоком выполнения и передачи данных в машинном коде
3.11. Вычисления с плавающей точкой
3.12. Итоги
Глава 4. Архитектура процессора
4.1. Архитектура системы команд Y86-64
4.2. Логическое проектирование и язык HCL
4.3. Последовательные реализации Y86-64 (SEQ)
4.4. Общие принципы конвейерной обработки
4.5. Конвейерные реализации Y86-64
4.6. Итоги
Глава 5. Оптимизация производительности программ
5.1. Возможности и ограничения оптимизирующих компиляторов
5.2. Выражение производительности программы
5.3. Пример программы
5.4. Устранение неэффективностей в циклах
5.5. Сокращение вызовов процедур
5.6. Устранение избыточных ссылок на память
5.7. Общее описание современных процессоров
5.8. Развертывание циклов
5.9. Увеличение степени параллелизма
5.10. Обобщение результатов оптимизации комбинирующего кода
5.11. Некоторые ограничивающие факторы
5.12. Понятие производительности памяти
5.13. Жизнь в реальном мире: методы повышения производительности
5.14. Выявление и устранение узких мест производительности
5.15. Итоги
Глава 6. Иерархия памяти
6.1. Технологии хранения информации
6.2. Локальность
6.3. Иерархия памяти
6.4. Кеш-память
6.5. Разработка программ, эффективно использующих кеш
6.6. Все вместе: влияние кеша на производительность программ
6.7. Итоги
Часть II. Выполнение программ в системе
Глава 7. Связывание
7.1. Драйверы компиляторов
7.2. Статическое связывание
7.3. Объектные файлы
7.4. Перемещаемые объектные файлы
7.5. Идентификаторы и таблицы имен
7.6. Разрешение ссылок
7.7. Перемещение
7.8. Выполняемые объектные файлы
7.9. Загрузка выполняемых объектных файлов
7.10. Динамическое связывание с разделяемыми библиотеками
7.11. Загрузка и связывание с разделяемыми библиотеками из приложений
7.12. Перемещаемый программный код
7.13. Подмена библиотечных функций
7.14. Инструменты управления объектными файлами
7.15. Итоги
Глава 8. Управление исключениями
8.1. Исключения
8.2. Процессы
8.3. Системные вызовы и обработка ошибок
8.4. Управление процессами
8.5. Сигналы
8.6. Нелокальные переходы
8.7. Инструменты управления процессами
8.8. Итоги
Глава 9. Виртуальная память
9.1. Физическая и виртуальная адресация
9.2. Пространства адресов
9.3. Виртуальная память как средство кеширования
9.4. Виртуальная память как средство управления памятью
9.5. Виртуальная память как средство защиты памяти
9.6. Преобразование адресов
9.7. Практический пример: система памяти Intel Core i7/Linux
9.8. Отображение в память
9.9. Динамическое распределение памяти
9.10. Сборка мусора
9.10.1. Основы сборки мусора
9.10.2. Алгоритм сборки мусора Mark&Sweep
9.10.3. Консервативный алгоритм Mark&Sweep для программ на C
9.11. Часто встречающиеся ошибки
9.12. Итоги
Часть III. Взаимодействие программ
Глава 10. Системный уровень ввода/вывода
10.1. Ввод/вывод в Unix
10.2. Файлы
10.3. Открытие и закрытие файлов
10.4. Чтение и запись файлов
10.5. Надежные чтение и запись с помощью пакета RIO
10.6. Чтение метаданных файла
10.7. Чтение содержимого каталога
10.8. Совместное использование файлов
10.9. Переадресация ввода/вывода
10.10. Стандартный ввод/вывод
10.11. Все вместе: какие функции ввода/вывода использовать?
10.12. Итоги
Глава 11. Сетевое программирование
11.1. Программная модель клиент–сервер
11.2. Компьютерные сети
11.3. Всемирная сеть интернет
11.4. Интерфейс сокетов
11.5. Веб-серверы
11.6. Все вместе: разработка небольшого веб-сервера TINY
11.7. Итоги
Глава 12. Конкурентное программирование
12.1. Конкурентное программирование с процессами
12.2. Конкурентное программирование с мультиплексированием ввода/вывода
12.3. Конкурентное программирование с потоками выполнения
12.4. Совместное использование переменных несколькими потоками выполнения
12.5. Синхронизация потоков выполнения с помощью семафоров
12.6. Использование потоков выполнения для организации параллельной обработки
12.7. Другие вопросы конкурентного выполнения
12.8. Итоги
Приложение А. Обработка ошибок
A.1. Обработка ошибок в системе Unix
A.2. Функции-обертки обработки ошибок
Библиография
Предметный указатель
Все отзывы о книге Компьютерные системы : архитектура и программирование
Внимание!
При обнаружении неточностей или ошибок в описании книги "Компьютерные системы : архитектура и программирование (автор Рэндал Брайант, Дэвид О'Халларон)", просим Вас отправить сообщение на почту help@directmedia.ru. Благодарим!
и мы свяжемся с вами в течение 15 минут
за оставленную заявку