Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Учебно-методическое пособие .doc
Скачиваний:
23
Добавлен:
14.04.2019
Размер:
2.72 Mб
Скачать

9. Системы искусственного интеллекта

Данный класс программных продуктов реализует отдельные функции интеллекта человека. Основными компонентами систем искусственного интеллекта являются база знаний, интел­лектуальный интерфейс с пользователем и программы анализа суждений, формирования логических выводов. Их разработка идет по следующим направлениям:

  • программы-оболочки для создания экспертных систем путем наполнения баз знаний и правил логического вывода;

  • готовые экспертные системы для принятия решений в рамках определенных предмет­ных областей;

  • системы управления базами знаний для поддержания семантических моделей (процедуральной, семантической сети, фреймовой, продукционной и др.);

  • системы анализа и распознавания речи и др.

Как правило, интеллектуальный интерфейс включает:

  1. диалоговый процессор на естественном языке;

  2. планировщик, преобразующий описание задачи в программу решения на основе ин­формации базы знаний;

  3. монитор, осуществляющий управление компонентами интерфейса.

Контрольные вопросы

  1. Можно ли назвать тождественными понятия «программное обеспечение» и «программы»? Обоснуйте свой ответ.

  2. Можно ли назвать программным продуктом любую программу? Обоснуйте свой ответ.

  3. Какие программы относятся к системному ПО?

  4. Какие системы программирования и языки программирования вам известны?

  5. Для чего предназначены проблемно-ориентированные ППП?

  6. Приведите примеры и назначение ППП общего назначения, графических ППП, мультимедийного ПО.

  7. Согласны ли вы с данной классификацией ПО? Предложите свою классификацию ПО.

  1. Операционные системы

    1. Ресурсы и процессы

      1. Понятие ресурса и процесса

Понятие процесса играет ключевую роль и вводится применительно к каждой программе отдельного пользователя. Любая запущенная программа и является процессом. Следует различать понятия процесса и программы. Программа – это план действий, а процесс – это само действие. Управление процессами - важнейшая функция операционной системы (ОС).

Процессэто совокупность системных ресурсов, задействованная для выполнения определенной задачи.

Процессминимальный программный объект (запущенный файл .exe), обладающий собственными системными ресурсами.

Процессы состоят из потоков и ассоциированных с ними средств хранения. Каждому процессу выделяется область памяти компьютера. Мой текстовый редактор со всеми потоками ввода с клавиатуры, корректировки правописания и хранения в памяти является одним процессом. Си­стема следит за тем, какая область памяти (адресное пространство) принадлежит каждому процессу. Поэто­му потоки одного процесса не могут манипулировать памятью другого. Вообще говоря, процесс может и не знать, что в системе помимо него работают и другие про­цессы, поскольку он не может «видеть» память соседа.

Все про­граммное обеспечение компьютера (включая и саму операционную систему) в активном режиме представляет собой набор процессов, которые, в свою очередь, являются наборами потоков. Таким образом, мы говорим о процессах и потоках. Самое главное, что нужно запомнить: процессы владеют системными ресурсами, а потоки выполняют задачи.

Когда процессу необходимо что-либо сделать, он создает поток и выделяет для него дополнительную память системы. После завершения работы процесса все его потоки уничтожаются и занимаемая им оперативная память освобождается для другой работы.

Потоки — это мысли компьютера

Каждый поток похож на процесс. Единственным различием является то, что все потоки в пределах одной программы работают в одном адресном пространстве памяти. Это позволяет им разделять один общий буфер.

Потокэто непрерывная последовательность инструкций, выполняющих опреде­ленную задачу.

Процесс состоит как минимум из одного потока. Поток (thread) — это часть кода программы, которую можно исполнять одновременно с другими частями кода.

Хорошей иллюстрацией тому служит оболочка Windows. Она представляет собой Win32-npoцecc, а каждое открываемое в ней окно папки является потоком. Поэтому, когда Вы инициируете в оболочке операцию копирования между двумя окнами папок, она исполняется потоком окна-приемника. Ну а Вы тем временем можете пользоваться другими окнами в обо­лочке и даже копировать файлы в другом окне.

Пример1. в текстовом процессоре для увеличения скорости обработки и упрощения взаимодействия с пользователем можно реализовать несколько потоков. Один поток обрабатывает набираемый на клавиатуре текст, другой выполняет фоновые операции, например проверку орфографии или разбиение документа на страницы, а третий — отвечает за фоновую печать документа.

Вы вполне можете думать о нескольких вещах одновременно.

Пример2. В преддверие экзамена вы думаете о нем. О чем же вы думаете? Первое, какие вопросы вам придется изучить, второе, где взять ответы на эти вопросы, и третье, как составить план ответа, чтобы ничего не забыть. О всех трех вещах вы думаете, как бы, параллельно.

В приведенном примере мысль об экзамене – это процесс, мысль о вопросах – это поток1, мысль об ответах – поток2, мысль о составлении плана – поток3 (см. рис.1).

Благодаря операционной системе компьютер может делать то же самое. ОС позволяет множеству потоков работать одновременно. При многопоточности процессов ОС определяет, какой поток должен выполняться в данный момент времени и в течение какого времени он будет распоряжаться ресурсом центрального процессора. Именно операционная система определяет момент времени выполнения потока.

Для выполнения потока необходимы две вещи: системное время и системное пространство. Поток должен иметь возможность захвата ресурсов центрального процессора в течение времени, позволяющего выполнить осмысленную операцию. Кроме того, потоку необходимо пространство хранения данных — место для разме­щения всей нужной ему в процессе работы информации.

Рис.1. Граф «Процесс – поток»

Когда в системе одновременно выполняется несколько процессов, необходимо раз­решить ряд важных проблем:

    • каждому потоку необходимо выделить достаточно системного времени и пространства для работы.

    • потоки не должны мешать друг другу.

В компьютере с несколькими процессорами каждый из нескольких взаимодействующих потоков можно приписать к одному определенному процессору, чтобы выполнять действия одновременно. Поэтому в данном случае имеет место реальный параллелизм. Если компьютер содержит только один процессор, потоки разделяются во времени на одном процессоре. В этом случае потоки будут выполняться по очереди, каждый понемножку. Иными словами, процессор будет разделяться между несколькими потоками.

Рис. 2. Параллельная обработка с несколькими процессорами (а); моделирование параллельной обработки путем переключения одного процессора с одного процесса на другой (в данном случае всего три процесса) (б)

Понятие «ресурс» применительно к вычислительной технике следует понимать как функциональный элемент вычислительной системы, который может быть выделен процессу на определенный промежуток времени.

Системные ресурсы, предоставляемые активному процессу, можно разделить на две категории: информационные и вычислительные.

К информационным относятся все необходимые данные для работы программы или устройства (файлы с расширением .nfo, .inf, .txt и др.)

Вычислительные ресурсы делятся на:

  1. Аппаратные ресурсы, такие как процессор, оперативная память, карты расширения, объем дисковой памяти, периферийные устройства. Эти устройства должны обладать определенными характеристиками, которые будут удовлетворять потребностям инициализации и работы программы.

  2. Программные ресурсы. К ним относятся драйверы, кодеки, проигрыватели, операционная система определенной версии, и другое специализированное ПО.

Наряду с физическими ресурсами, реальными устройствами ЭВМ, - средствами современных ОС могут создаваться и использоваться виртуальные (воображаемые) ресурсы, являю­щиеся моделями физических. Например, характерным представителем виртуального ресурса является виртуальная оперативная память.

Физически виртуальная память представляет собой область внешней памяти (жесткого диска), задействованную под основную память компьютера (оперативную память). Выполняемый процесс частично может располагаться во внешней памяти, а другая часть - в основной для выполнения центральным процессором. Таким образом, виртуальная память позволяет выполнять программы, размеры которых превышают размеры физического адресного пространства.

Требования к системным ресурсам компьютера необходимо учитывать при установке любого программного продукта. Они указаны в документации, приложенной к программному продукту.

Пример3.

Для использования Microsoft Office Базовый 2007 необходимы следующие системные ресурсы:

Компонент

Требование

Компьютер и процессор

с частотой не ниже 500 мегагерц (МГц)

Память

ОЗУ не менее 256 мегабайт (МБ)

Место на жестком диске

1,5 гигабайт (ГБ). Часть места на диске будет освобождена после установки при удалении с него исходного установочного пакета.

Устройство чтения дисков

устройство чтения компакт-дисков или DVD-дисков

Экран

с разрешением не менее 1024x768

Операционная система

Microsoft Windows XP с пакетом обновления 2, Windows Server 2003 с пакетом обновления 2 или более поздняя версия

После установки (инсталляции) программы пользователь может эксплуатировать её, для чего ему необходимо программу запустить или загрузить.

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

Во время загрузки происходит инициализация программы (подготовка к началу работы), которая включает проверку наличия системных ресурсов и дальнейшую перезапись программы. После успешной загрузки программы, она становится процессом, занимаемым определенное адресное пространство, и готовым создавать потоки для выполнения их процессором.

Те программы, которые после выполнения продолжают занимать своё адресное пространство в оперативной памяти и освобождают её только после принудительной выгрузки, называются резидентными.

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