- •Оглавление
- •От редактора перевода
- •Введение
- •Использовать
- •Аргументировано обсуждать
- •IV. Применять знания
- •Модуль 1. Компьютерные системы
- •Обзор компьютерных систем
- •1.1.1. Компоненты компьютерных систем
- •Эволюция компьютерных систем
- •1.2.1. Краткая историческая справка
- •Закон Мура
- •1.2.2. Применение компьютерных систем
- •Представление данных в компьютерных системах
- •1.3.1. Биты и байты
- •1.3.2. Системы счисления
- •Модуль 2. Системы аппаратного обеспечения
- •2.1 Процессор и память
- •2.1.1 Процессор. Основы.
- •2.1.2 Типы памяти
- •2.1.3 Лабораторная работа: Эталонное тестирование (необязательная)
- •2.2 Внешние устройства
- •2.2.1 Присоединяемые внешние устройства
- •2.2.2 Шины
- •2.2.3 Входные/выходные устройства
- •2.3 Запоминающие устройства
- •2.3.1 Интерфейсы дисковых контроллеров
- •2.3.2 Накопитель (запоминающее устройство большой ёмкости)
- •2.4 Соединение компонентов аппаратного обеспечения
- •2.4.1 Как компоненты компьютера работают вместе
- •2.4.2 Лабораторная работа: Изучение компьютерных систем
- •2.4.3 Лабораторная работа: Конфигурация online
- •2.5 Повышение производительности компьютера
- •2.5.1 Закон Мура
- •2.5.2 “Узкие” места (Bottlenecks)
- •2.5.3 Производительность и время ожидания
- •Модуль 1 и Модуль 2 Обзорные материалы
- •Закон Мура
- •Модуль 3. Программное обеспечение операционных систем
- •Структура
- •3.1.1 Уровни программного обеспечения
- •3.1.2 Bios: Жизнь снизу
- •3.1.3 Управление процессами
- •3.1.4 Лабораторная работа: диспетчер задач (Task Manager)
- •3.2 Управление устройствами и конфигурация
- •3.2.1 Управление прерываниями
- •3.2.2 Характеристики аппаратного обеспечения
- •3.2.3 Конфигурация
- •3.2.4 Лабораторная работа: Управление устройствами
- •3.3. Распределение ресурсов
- •3.3.1 Виртуальная память
- •3.3.2 Совместное использование файлов и принтеров
- •3.4. Файловые системы
- •3.4.1 Организация файлов
- •3.4.2 Таблица размещения файлов (File Allocation Table) и файловая система nt
- •Модуль 4. Прикладное программное обеспечение
- •4.1 Основы программного обеспечения
- •4.2 Использование систем программного обеспечения
- •4.2.1 Лабораторная работа: Команды dos
- •4.2.2 Лабораторная работа: Макросы
- •4.2.3 Лабораторная работа: Встроенные объект-приложения
- •4.3 Пакетные файлы сценариев
- •4.3.1 Расширенные функции командной строки
- •4.3.2 Команды пакетного файла
- •4.3.3 Лабораторная работа: Создание пакетного файла
- •4.4 Базы данных
- •4.4.1 Лабораторная работа: Поиск в библиотеке Конгресса
- •4.5 Проектирование программного обеспечения
- •4.5.1 Введение в разработку крупномасштабных программных систем (Large-Scale Software).
- •4.5.2 Модель открытого кода
- •4.5.3 Средства для создания и управления программным обеспечением
- •Модуль 3 и Модуль 4 - Материалы для проверки
- •Базы данных
- •Виртуальная память
- •Модуль 5. Сетевые системы
- •5.1 Основы Интернета
- •5.1.1 Типы mime
- •5.1.2 Языки Интернет
- •5.2 Локальные и глобальные сети
- •5.3 Стратегии коммуникации
- •5.3.1 Структура клиент-сервер (Client-Server Framework)
- •5.3.2 Равноправное соединение
- •5.4 Технологии передачи данных
- •5.5 Архитектура Интернет
- •5.5.1 Роутеры и tcp/ip
- •5.5.2 Сервис доменных имен (Domain Name Service)
- •5.5.3 Способность к подключению
- •5.5.4 Провайдеры Интернет-сервиса (Internet Service Providers)
- •Модуль 6. Безопасность компьютера
- •6.1 Угрозы безопасности
- •6.1.1 Злоумышленники: кто, зачем и как?
- •6.1.2 Кража личности и нарушение конфиденциальности (Identity Theft and Privacy Violation)
- •6.1.3 Вредоносные программные средства
- •6.1.4 Отказ от обслуживания
- •6.2 Технологии безопасности
- •6.2.1 Шифрование
- •6.2.2 Применение шифрования
- •6.2.3 Идентификация
- •6.3 Предотвращение, определение и восстановление
- •6.3.1 Система сетевой защиты (Firewall)
- •6.3.2 Средства определения вторжения
- •6.3.3 Восстановление данных
- •6.3.4 Обзор типов безопасности
- •Модуль 5 и Модуль 6 Обзорный материал
- •Шифрование
- •Приложение а. Выполнение файла Visual Basic
- •Приложение в. Загрузка приложения WinZip
- •Рекомендации по чтению ssd2
2.5.2 “Узкие” места (Bottlenecks)
-
”Узкие” места – замедление процессов
-
Основные “Узкие места” (Bottlenecks)
-
Устранение “Узких мест”
”Узкие” места – замедление процессов
Стаканы с широкими краями опустошаются быстрее, чем бутылки с длинными тонкими формами. Для выполнения любого задания, необходимо сделать множество шагов. Узкое место (бутылочное горлышко –Bottlenecks) – шаг, который требует длительного времени и поэтому сокращает общую производительность. "Цепь настолько же сильна как самое слабое ее звено", – это верно так же для скорости процесса, или производительности, которая ограничена его самым медленным этапом.
Это означает, что нет смысла платить за дорогой и быстрый процессор, если память слишком медленная. Точно также как медленный диск будет снижать общую производительность системы. Если другие части компьютера также медленные, то покупка более быстрого процессора не улучшит ситуацию.
Например, предположим, что вы запускаете программу, а она работает медленно. Что нужно делать? Если вы имеете старую машину типа Pentium II, вы можете попробовать заменить его. Но есть другие варианты. Медленная работа возможна из-за памяти малого объема, или ваша шина не передает данные достаточно быстро.
Время, требуемое для выполнения задания, состоящего из нескольких шагов, будет определяться временем самого длительного шага. Если так, то увеличение скорости на других шагах может дать незначительный эффект. Предположим, что приготовление вашего любимого обеда занимает 10 минут – для нарезания ингредиентов, 2 часа – для жарки и 15 минут – для смешивания соуса. Если покупка кухонного комбайна позволяет нарезать все за одну минуту, то ваше время на кухне можно будет сократить только на 6%. С другой стороны, если вы купите конвекционную печь, которая уменьшит время жарки наполовину, это сохранит час вашего времени и уменьшит общие затраты времени на 41%.
Основные “Узкие места”
Ниже приведены некоторые части аппаратного обеспечения, которые могут стать «бутылочным горлышком»
-
Кэш
-
RAM
-
Ввод/вывод
-
Видеокарта (особенно для 3-d игр)
Кэш тормозит работу системы, если он недостаточного объема. Более скоростные процессоры требующие более быстрого ввода данных, могут не получать достаточно данных из маленького кэша.
Оперативная память загружает команды программ с диска. Поэтому, если нет достаточного количества оперативной памяти, команды нужно будет часто загружать с диска, что замедляет выполнение программ.
Устройства Ввода/вывода передают информацию. Достаточно ли быстра шина? Достаточно ли быстрый жесткий диск? Компоненты, возможно, могут посылать данные достаточно быстро, но если система не может передать данные так же быстро, то работа системы замедляется.
Большинство бизнесменов – пользователей не будут страдать от медленной видеокарты. Любителям игр, дизайнерам и некоторым инженерам нужны высокоскоростные видеокарты, которые бы соответствовали требованиями программного обеспечения. Среднему пользователю не нужны такие видеокарты, однако, медленная обработка 3-D изображений затрудняет работу некоторых приложений.
Устранение “Узких мест”
Можем ли мы повысить скорость компьютера? Фактически мы хотим повысить скорость выполнения задач, а не скорость самого компьютера. Это важное различие. Ускорение компьютера предлагает закупку более быстрого процессора, установку более быстрой памяти, более быстрой шины или более быстрых дисков и видеоконтроллеров. Улучшение аппаратных средств, с целью повышения скорости системы будет работать, если мы сохраняем систему сбалансированной. (Помните, что единственное “узкое место” замедлит работу всей системы). Лабораторная, которую вы выполняли в разделе 2.1.3 Lab: Benchmarking, поможет бы вам идентифицировать узкие места или медленные места в вашей системе.
Ключ к созданию эффективных усовершенствований – понимание того, почему определенные задачи выполняются долго. Часто, вы можете выполнить простые эксперименты, чтобы определить, не является ли тот или иной компонент узким местом системы. Эта идея применяется и разработчиками программного обеспечения, которые используют специальные средства, чтобы оценить, как долго выполняются различные разделы их программ. Таким образом, они могут идентифицировать узкие места и самые трудоемкие участки и сконцентрировать внимание на улучшении именно этих частей кода.