ОС Unix

Лекция 27

Общее время исполнения

Цели и задачи профилировки

Основная цель профилировки - исследовать характер поведения приложения во всех его точках. Под "точкой" в зависимости от степени детализации может подразумеваться как отдельная машинная команда, так целая конструкция языка высокого уровня (например: функция, цикл или одна-единственная строка исходного текста).

Большинство современных профилировщиков поддерживают следующий набор базовых операций:

  • определение общего времени исполнения каждой точки программы (total [spots] timing);
  • определение удельного времени исполнения каждой точки программы ([spots] timing);
  • определение причины и/или источника конфликтов и пенальти (penalty information);
  • определение количества вызовов той или иной точки программы ([spots] count);
  • определение степени покрытия программы ([spots] covering).

Сведения о времени, которое приложение тратит на выполнение каждой точки программы, позволяют выявить его наиболее "горячие" участки. Правда, здесь необходимо сделать одно уточнение. Непосредственный замер покажет, что, по крайней мере, 99,99% всего времени выполнения профилируемая программа проводит внутри функции main, но ведь очевидно, что "горячей" является отнюдь не сама main, а вызываемые ею функции! Чтобы не вызывать у программистов недоумения, профилировщики обычно вычитают время, потраченное на выполнение дочерних функций, из общего времени выполнения каждой функции программы.

Рассмотрим, например, результат профилировки некоторого приложения профилировщиком profile.exe, входящего в комплект поставки компилятора Microsoft Visual C++.

Листинг 1.1. Пример профилировки приложения профилировщиком profile.exe

Func Func+Child Hit Time % Time % Count Function--------------------------------------------------------- 350,192 95,9 360,982 98,9 10000 _do_pswd (pswd_x.obj) 5,700 1,6 5,700 1,6 10000 _CalculateCRC (pswd_x.obj) 5,090 1,4 10,790 3,0 10000 _CheckCRC (pswd_x.obj) 2,841 0,8 363,824 99,6 1 _gen_pswd (pswd_x.obj) 1,226 0,3 365,148 100,0 1 _main (pswd_x.obj) 0,098 0,0 0,098 0,0 1 _print_dot (pswd_x.obj)

 

 

Каталоги и файлы. При регистрации пользователя администратором системы ему назначается собственный каталог пользователя (Home directory).

Правила (соглашения) по наименованию каталогов и файлов. В именах каталогов и файлов малые и большие буквы считаются различными. Символы: '.' (точка) и '_' (знак подчеркивания) — не могут использоваться в качестве первой буквы имени. Имя файла имеет так называемое «расширение», которое характеризует тип файла. Расширение содержит символ, который следует после точки, например:

Использование маскирующих метасимволов *, ? и [ ]. Метасимволы служат для подстановки любых строк и символов в именах файлов и в командах языка заданий Shell:

Структура корневого каталога. Как правило, корневой каталог имеет следующую структуру (рис. 3.6), но администратор системы может ее изменить.

 
 

 

Рис. 3.6. Логическая структура файловой системы ОС Unix

 

Изменение рабочего каталога. Изменение рабочего каталога производится командойcd (change directory).

Создать нижележащие каталоги можно командой mkdir (make directory).

Уничтожение пустого каталога. Пустой каталог удаляется посредством командыrmdir (remove directory):

Создание файла. Файл может быть создан командойcat.Если не задано имя входного файла, то будет предполагаться стандартный ввод (клавиатура). Одновременно перенаправим вывод в новый (создаваемый) файл:

Просмотр конца файла. Командаtail печатает конец файла. по умолчанию — 10 последних строк:

Определение типа файла. Для определения типа файла применяется командаfile:

Копирование файлов. Копирование файлов осуществляете» командойср (copy).

.Перемещение и переименование файлов. Перенос и переименование файлов осуществляются командойmv (move).

Удаление файлов. Удаление (уничтожение) файлов производится с помощью командыrm (remove).

и т.д.

Связь пользователь-пользователь. Система UNIX предполагает возможность коллективной работы и кооперации пользователей. Это требует развитых средств связи пользователей между собой. В системе имеются следующие возможности коммуникации:

• командаwrite (писать) для немедленной посылки сообщения другому пользователю;

• командаmail (почта), реализующая электронную почту. Электронная почта (mail). Электронная почта — это средством позволяющее пользователям посылать друг другу сообщения, которые накапливаются в почтовых ящиках, реализованных в системе

Средства разработки программ. Система UNIX обеспечивает богатый набор средств для разработки программ, включающий компиляторы, редактор связей (linker), символьный отладчик, средства ведения программных проектов, архивные средства и другие.

Системное администрирование. В функции администратора системы UNIX входит повседневное управление системой во всех аспектах ее существования, таких, как

§ подключение новых пользователей,

§ управление файловой системой,

§ изменение конфигурации

и других. Следует заметить, что на персональных ЭВМ эти функции могут исполняться прикладным программистом.

Спецпользователи. Это пользователи, выполняющие действия над системой, недоступные обычным пользователям. Один из них, имеющий неограниченные полномочия, называется суперпользователем и имеет обычно имяroot. Разные системы могут иметь и других спецпользователей, например пользователя с именемbin, обладающих меньшими полномочиями, чем суперпользователь.

Стать суперпользователем можно несколькими способами. Первый — загрузить систему в режиме единственного пользователя.

Пользователи и группы. Имеется два файла с именамиpasswd и group, находящихся в каталоге /etc, которые содержат информацию о пользователях и группах пользователей соответственно..

.Управление операционной системой. Средства управления операционной системой — аппаратно-зависимы, однако приводимое ниже описание этих средств является типичным для большинства версий ОС UNIX.

. Переконфигурирование операционной системы. Совокупность технических параметров ОС в загрузочной области называют конфигурацией ОС.

Для управления конфигурацией имеется команда /Ibin/uconfig

Загрузка и выключение системы. Загрузка осуществляется, когда на ЭВМ только что включили питание. Обычно процесс загрузки в большей или меньшей степени автоматизирован и заключается в последовательном вызове программ, каждая из которых загружает и запускает следующую. В завершение процесса загрузки система выполняет командный файл /etc/rc, который, вообще говоря, может содержать любые команды, но обычно содержит команды для выполнения следующих действий:

• демонтаж старых файловых систем;

• монтаж новых файловых систем;

• удаление старых журнальных учетных файлов;

• удаление временных файлов;

• запуск процессовupdate и сгоп.

Выключение многопользовательской системы производится выполнением командного файла/etc/shutdown, который обычно выполняет следующие действия:

1. • посылает предупреждающие сообщения всем активным пользователям;

2. • уничтожает все процессы, кроме процесса консоли (клавиатуры);

3. • очищает все буферы обменов с файлами;

4. • демонтирует файловые системы;

5. • выполняет, если нужно, процедуры копирования данных;

6. • выключает питание ЭВМ, если это позволяет аппаратура, в противном случае, питание выключается вручную.

Файловые системы. Файловая система имеет иерархическую структуру каталогов и файлов, включая корневой каталог. Файловая система располагается на устройстве, которое, как правило, является магнитным диском того или иного типа. Если диск достаточно велик, он может быть разбит на несколько логических дисков, тогда на каждом логическом диске может быть размещена отдельная файловая система [2, 12].

Каждая файловая система, прежде чем стать доступной, должна быть смонтирована. Количество файлов в файловой системе ограничено (65536 для UNIX версии 7).

Структура файловой системы. Каждая файловая система имеет четыре основные части:

• загрузочный блок — это первый блок диска (блок 0), зарезервированный для системной загрузочной программы;

• суперблок —это первый блок собственно файловой системы (блок 1), он содержит основные данные файловой системы и ее размещении на диске, в том числе о списках свободных узлов и блоков; ( в ДОС аналогичный называется FAT)

• узлы — это последовательность блоков вслед за суперблоком. Каждый i-узел содержит ссылки на блоки. Имеется ровно один узел для каждого каталога или файла в файловой системе;

• блоки — оставшееся пространство диска занимают блоки, которые содержат либо действительные данные каталогов и файлов (блоки данных), либо ссылки на блоки (косвенные блоки).

Создание и монтаж файловой системы. Командаmkfs создает новую файловую систему.

/etc/mkfs <имя> <размер>