- •Міністерство освіти і науки україни
- •Основи системного аналізу
- •Задача поиска технических решений
- •Базовые термины и определения
- •Формализация описания процесса функционирования сложной технической системы
- •Обеспечение целостности и описание сложной технической системы (стс)
- •Форма представления стс
- •Эффективность стс определяется по схеме:
- •Типовой процесс решения системотехнической задачи
- •Среда или платформа автоматизированного проектирования
- •Управление проектированием
- •Информационный интерфейс
- •Образование уровней представления данных
- •Программирование сканера
- •Диаграмма состояний
- •Разработка семантических программ компилятора
- •Инструменты электронных платформ сапр
- •Инструменты системного проектирования системы сапр
- •Инструменты проектирования цифровых электронных схем.
- •Задачи сапр цифровых схем
- •Математическая модель цифровой схемы
- •Машинная модель
- •Событийный метод
- •Механизм динамических списков событий
- •Графические инструменты схемы
- •Стандарт iges разрабатывался в 50-60 гг, когда основным средством ввода была перфокарта, отсюда его и недостатки.
- •Средства черчения
- •Программный интерфейс платформы сапр
- •Порождаемые процессы (порожденные)
- •Типы атрибутов объекта
- •Описание атрибутов
- •Правила атрибутов
- •Связи между объектами
- •Описание динамического поведения объекта
- •Системы автоматизированного проектирования как открытые системы
- •Свойства открытых систем
- •Компоненты открытых систем
- •Обеспечение переносимости и масштабируемости
Программный интерфейс платформы сапр
Основу операционной среды платформы САПР составляет программный интерфейс или интерфейс программирования приложений – ApplicationProgrammingInterface(API).
Любой APIсодержит совокупность функций, которые могут обращаться к приложению. При создании САПР-их платформ используется две базовых операционных среды:
Среда Unix
Среда Windows
Среда Unixтрадиционно использовалась для создания САПР на рабочих станциях, аWindows– для персональных компьютеров.
У нас в практически всех разработках САПР лежит Windows.
При создании Windows-платформы фирмаMicrosoftпредложила программный интерфейсWin32API.
Интерфейс Win32APIбыл реализован на 4-х платформах:
Win32 S
Windows 95-98
Windows NT
Windows 2000
Идея Microsoftзаключается в том, что существует единый подход к конструированию интерфейса, разница лишь в библиотеке (полноте) функций.
Полной библиотекой является библиотека WindowsNT,Windows2000.
Усеченная библиотека у Windows95-98,Win32S.
Платформа Win32S– промежуточная. Она является переходом отWindows3.1-3.11 к новой платформеWindows95. Основным отличием между ними является то, чтоWindows3.1-3.11 – 16-разрядная платформа, аWin32Sимеет 32-битовый интерфейс (функции 32-битовые).
Win32Sявляется надстройкой дляWindows3.1-3.11.
В Win32SбольшинствоWin32-функций реализованы в виде заглушек. С современной точки зрения заглушки принципиальны.
В Windows3.1-3.11 не были реализованы потоки.
Серьезная платформа, пригодная для создания 32-разрядных платформ САПР - WindowsNT.
WindowsNT– полноценная операционная система, не отягощенная тяжелым наследствомMS-DOS.
Для WindowsNTродными являются 32-битовые приложения, при этомWindows32 интерфейс обеспечивает параллельное выполнение одновременно нескольких разнотипных приложений.
Особенности Windows NT
Разработчики интерфейса WindowsNTстарались сделать так, чтобы приложение, разработанное подOS/2 и др.16-битовые приложения автоматически выполнялось вWindowsNT.
WindowsNTпереносима, т.е. способна работать на машинах с различными типами процессоров. Большая частьWindowsNTнаписана на языках Си и Си++, поэтому она может быть скомпилирована под любую аппаратную среду. При переходе в другую аппаратную среду необходимо переписать ядро (Kernel) и программный слой абстрагирования от оборудования (HardwareAbstractionLayer). Эти 2 части операционной системы прописываются всегда на языкеAssembler.
Поддержка многопроцессорных машин. WindowsNTможет поддерживать одновременно 30 потоков.
Windows95 – офисная версия операционной системы.
Отличия от Windows NT:
Не полностью поддерживается асинхронный ввод/вывод файлов.
Упрощенная реализация функций регистрации, защиты и обработки событий.
В основе программного интерфейса Win32Sлежит понятиепроцесса.
Процесс обычно определяют как экземпляр или копию выполняемой программы.
В Win32 процессу отводится 4Гб адресного пространства.
В отличие от других программных интерфейсов, Win32 процесс ничего не выполняет. Он просто владеет 4Гб адресным пространством, содержащим код и модули для .exeфайлов приложения.
Если приложение использует DLLбиблиотеки, то копии данныхDLLбиблиотек загружаются в адресное пространство процесса.
Помимо адресного пространства, процессу принадлежат такие ресурсы, как:
Файлы
Динамические области памяти
Потоки
Ресурсы, создаваемые при жизни процесса уничтожаются при его завершении.
Процессы инертны. Чтобы процесс что-нибудь выполнил, в нем нужно создать поток. Именно потоки отвечают за выполнение кода, помещенного в адресное пространство процесса.
Один процесс может содержать несколько потоков, одновременно выполняемых программный код в адресном пространстве процессора. Для этого каждый поток должен располагать своими регистрами процессоров.
Если у процесса нет потоков, то сам процесс не есть действие – он уничтожается.
Процесс должен иметь как минимум один поток. При создании процесса первичный поток создается автоматически. Первичный поток может порождать дополнительные потоки и т.д.
Объекты, входящие в ядро операционной системы:
Каналы – pipe objects
Объекты – mutex
Семафоры – semaphore objects
Почтовые ящики – mail slot objects
Процессы – process objects
Потоки – threadobjects
Файлы, проецируемые в память – file-mappingobjects
События – event objects
Файлы – file objects
Эти объекты создаются различными функциями Win32.
Например, функция Createfile-mappingсоздает файл, проецируемый в память. Если эта функция срабатывает, тогда в пределах 4Гб адресного пространства выделяется блок памяти, который идентифицируется с соответствующим файлом, а приложению, которое выдало соответствующую функцию, возвращается идентификатор выделенной области памяти. Таким образом, приложение получает всю необходимую информацию, чтобы манипулировать объектом.
Приложение может манипулировать с другими объектами, которые принадлежат не ядру операционной системы, а GUI(GraphicUserInterface). Есть библиотека функций, которая создаетGDI-GraphicDevicesInterface(графический интерфейс устройств).
Все функции ядра, создающие объекты ядра, имеют параметры, позволяющие создать атрибут защиты.
Принципиальным является то, что любой однажды созданный объект ядра разрешается открывать из любого приложения, т.е. когда приложение открывает какой-либо объект ядра, память для него не выделяется, а увеличивается счетчик числа пользователей, связанных с этим объектом.
Если потоку нет необходимости манипулировать с каким-либо объектом ядра, то функция CloseHandleприведет к тому, что счетчик числа пользователей будет уменьшен на 1, а как только счетчик станет нулевым, объект будет удален из памяти.
Ограничение заключается в том, что все вопросы, связанные с счетчиком и выделением объекта имеют место только при одном процессе (в пределах одного процесса). Если мы создали файл в пределах одного процесса и файл в пределах другого процесса, то это будут разные объекты.
Для каждого пользовательского объекта выделяется память.
В системе Win32 поддерживается 2 типа приложений:
Приложения, использующие графический интерфейс (GUI)
Консольные приложения
Приложения, использующие GUI, имеют графические приложения, окна, меню и т.д.
Консольные приложения имитируют работу в среде MS-DOS.
При работе консольных приложений окна не создаются, существует только текстовый ввод, полноэкранное представление и т.д.
Главное различие между консольными приложениями и GUI-приложениями заключается в том, что дляGUI-приложений первичный поток процесса начинается с исполнения функцииWinMain, а для консольных приложений – просто с функцииMain.
Функция WinMainотвечает за выполнение следующих операций:
Поиск указателя на командную строку нового процесса
Поиск указателя на переменные окружения нового процесса
Инициализация глобальных переменных
Инициализация кучи (динамической памяти)
Инициализация обращения к функции Exit.
Процесс создается при вызове функции приложением CreateProcess.
Функция CreateProcessможет выполняться в каком-либо потоке. В этом случае создается новый объект процесса. Этот объект – компактная структура данных. После этого для нового процесса создается виртуальное адресное пространство размером 4Гб и в него загружается код, данные иDLL-библиотеки нового процесса. После этого создается объект ядра потока.
Структура данных объекта ядра потока – эта та структура, которая управляет потоком.
Процесс завершается вызовом либо функции ExitProcess, либо функциейTerminalProcess.
Функцией ExitProcessосуществляется нормальное завершение работы процесса, а функциейTerminalProcess– аварийное.
Процесс может запустить несколько потоков. Завершение процесса происходит, если в любом из его потоков вызывается функция ExitProcess.
При вызове функции ExitThreadуничтожается поток, при чем первичный поток (если она вызывалась из первичного) закрывается, а остальные потоки выполняются.
TerminalProcessзавершает процесс – это аварийная функция для непредвиденных ситуаций.
При любом способе завершения процесса выполняются следующие действия:
Прекращается выполнение всех потоков
Все объекты GUIиGDIзакрываются. Все объекты ядра, созданные в процессе, тоже закрываются.
Объект ядра «Процесс» получает статус «Свободен» и все потоки, созданные в других процессах, приостанавливаются до завершения текущего процесса.
Связанный с завершенным процессом объект ядра «Процесс» не освобождается до тех пор, пока не будут закрыты все ссылки на него.
Если процесс породил другие процессы, то все порожденные процессы не закрываются. Процесс закрывается командой ExitProcessвнутри самого процесса.