
- •5. Структуры предприятий. Менеджмент. Обеспечение бизнес-процессов. Матричные диаграммы. Методологии управления mrpi, mrpii, erp.
- •Принципы моделирования программных продуктов с использованием uml
- •8. Информационная безопасность и защита информации (общие понятия, аспекты информационной безопасности, программные средства защиты информации, понятие угрозы).
- •10. Выбор конфигурации и спецификаций компьютерного оборудования в зависимости от решаемых задач
- •Понятие сбалансированной конфигурации пк
- •11. Понятие типа данных. Классификация типов. Структура типов данных в языке Паскаль.
- •12. Структура и особенности использования модулей в языке Паскаль.
- •Особенности использования модулей:
- •13. Линейные динамические информационные структуры. Их моделирование средствами языка Паскаль.
- •14. Объектный тип. Инкапсуляция. Полиморфизм. Наследование.
- •15. Модель протоколов tcp/ip. Характеристика уровней.
- •16. Топологии сетей. Методы доступа к среде передачи данных.
- •17. Виды операционных систем, их характеристики.
- •18. Понятие процесса и потока (нити), принципы диспетчеризации процессов, блокировка процессов.
- •19. Объекты визуализации: tForm, tLabel, tPanel.
- •20. Объекты доступа к ib бд: tibDateBase, tibTransaction, tibTable.
- •21. Продукционная модель знаний. Методы прямого и обратного вывода.
- •22. Семантические сети предложений естественного языка.
- •23. Жизненный цикл программного продукта. Модели жц пп.
- •24. Html. Стили css. Формы. Интерфейсы пользователя. Отчеты.
- •Html-формы. С помощью средств html можно создавать формы для ввода информации посетителем Web-страницы.
- •Элементы форм.
- •25. Язык Java Script. Использование Java Script для создания динамических страниц и форм.
- •26. Регистры и регистраторы в системе «1с: Предприятие»
- •Структура .Информация в регистре расчета хранится в виде записей, каждая из которых содержит значения измерений и соответствующие им значения ресурсов.
- •Структура. Информация в регистре сведений хранится в виде записей, каждая из которых содержит значения измерений и соответствующие им значения ресурсов.
- •27. Основные метаданные в системе «1с: предприятие»
18. Понятие процесса и потока (нити), принципы диспетчеризации процессов, блокировка процессов.
Для ОС потребителем ресурсов выступает процесс. Процесс является единицей работы для ОС. Процесс является единицей, которая требует такие ресурсы, как процессор, ОП, определенная область на диске, определяющаяся совокупностью периферийных устройств (устройства печати, модем). Процесс всегда характеризуется той программой, которую должен выполнять. Процесс всегда выполняется по какому-то программному коду.
В однозадачных ОС нет проблемы взаимодействия процессов, поскольку все ресурсы вычислительной системы предоставляются в распоряжение активной программы. Проблема взаимодействия процессов возникает в мультипрограммных системах, когда процессы начинают конкурировать за ресурсы вычислительной системы.
В ОС каждый процесс представляется с помощью некоторой информационной структуры. В информационную структуру помещается такая информация, как идентификация процесса, приоритет, идентификация хозяина процесса (пользователь или другой процесс), ссылка на адресное пространство процесса и на кодовый сегмент (программный код), определяющий поведение процесса. Сам программный код не является процессом. Это позволяет определить несколько процессов, выполняющих один и тот же программный код.
Организация процесса может быть рассмотрена на примере Unix. В нем не выделяется понятие потока, и каждый новый процесс создается как копия уже существующего процесса. Создание копии уже существующего процесса осуществляется системным вызовом fork().
В Unix каждый процесс характеризуется дескриптором процесса и контекстом процесса. В дескрипторе процесса хранится информация, которая постоянно необходима ОС, а именно идентификатор процесса (целое без знака), приоритет процесса, идентификатор владельца процесса (целое без знака), адрес виртуального пространства данного процесса, а также список тех событий, которые ожидает данный процесс. В контексте процесса хранится более объемная информация, которая необходима для правильного возобновления выполнения процесса (адрес прерванной команды, флаги условий, маски прерываний, дескриптор всех открытых файлов в процессе). Дескрипторы всех существующих процессов в Unix хранятся в таблице процессов – это структура, которая хранится в адресном пространстве системы. При выполнении fork создается новая запись в таблице дескрипторов процессов, в котором помещается информация о дескрипторе создаваемого процесса. Почти все поля дескриптора нового процесса копируется из дескриптора процесса – создателя, кроме идентификации нового процесса, копируется также и контекст процесса – создателя в контекст нового процесса. Создается новое адресное пространство для нового процесса. Вызов fork возвращает в процесс-создатель идентификатор нового созданного процесса, а в порожденный процесс fork возвращает 0, поэтому, как правило, сам фрагмент кода порожденного процесса. После создания кода системного процесса происходит переключение кодовых сегментов. С помощью системного вызова exec() можно перегрузить кодовый сегмент процесса. После его использования новый процесс выполняет другой код. Далее процесс-создатель и новый процесс могут работать как синхронно, так и асинхронно. Синхронно означает, что процесс-создатель приостанавливается до завершения выполнения всех построенных им процессов. Асинхронно означает, что процессы работают независимо друг от друга.
В общем случае поток может находиться в одном из 3-х состояний: 1). Выполнение, а именно: процесс имеет все необходимые для работы ресурсы, в т.ч. ЦП, т.е. процесс является активным. 2). Ожидание – поток приостановил свое выполнение по каким-либо внутренним причинам. Например, поток запросил операцию в/в. 3). Состояние готовности – поток не находится в активном состоянии по причинам внешним для потока. Например, потоку не выделен ЦП.
Под потоком понимается такая активность, когда определяющаяся в рамках выполняющегося процесса, за исключением самого процесса. В современных ОС помимо понятия процесса, определяется также и понятие потока. Понятие потока особенно полезно в тех случаях, когда программа обладает внутренним параллелизмом, т.е. разные ветви программы могут выполняться одновременно (параллельно). В этом случае конкретный вариант выполнения программы определяется как поток. В некоторых ОС используется понятие нить (например, в Win NT). В рамках одного процесса может существовать несколько потоков. Все они работают в едином адресном пространстве и одну и ту же совокупность ресурсов: ВУ, совокупность открытых файлов и т.д. Каждый поток характеризуется своим дескриптором, а также адресом текущей выполняемой команды и своим сегментом стека, поскольку для каждого потока выделяется свой стек. Если ОС не поддерживает многопоточности, считается, что в ней организован один поток выполнения.
Управление процессами определяет какой процесс в какой момент времени должен стать активным и на какой интервал. В задаче управления процессами (потоками) выделяется 2-е основные подзадачи: 1). Задача планирования потоков. 2). Задача диспетчеризации потоков. Задача планирования потоков определяет в какой момент и какой поток должен стать активным. Задача диспетчеризации определяет как должно осуществляться сохранение контекста текущего активного потока и переключение на контекст нового активного потока. Решение задачи планирования потоков может следовать одной из 2-х основных стратегий: не вытесняющая и вытесняющая многозадачность. Не вытесняющая многозадачность (win 3.1, NetWare 3.x, 4.x). если поток становится активным, т.е. находится в состоянии выполнения, то он продолжает выполнение до тех пор, пока он сам не прекратит выполнение. Ос с не вытесняющей многозадачностью подвержена краху системы. Однако в таких системах можно организовать эффективное выполнение всех потоков, если каждый из них занимает ресурс ограниченное время. Вытесняющая многозадачность реализуется практически во всех ОС. Согласно этой концепции каждый поток становится активным на определенный интервал времени (квант). По истечении этого кванта или раньше поток переводится в состояние ожидания или в состояние готовности. Система с вытесняющей многозадачностью выполняет разные стратегические планирования, как на основе приоритета, так и без приоритета.
Под тупиком понимается ожидание 2-х или более потоков освобождения 2-х или более ресурсов, которое не может произойти. Например: P(B) P(E) запись V(B) V(F): и если в момент выполнения P(B)=0, то поток –писатель переводится в состояние ожидания, и вывести его может только поток-читатель, который выполнит V(E), но поток-читатель не сможет войти в критическую секцию, т.к. b=0, и значит оба потока заблокированы (тупик). Ситуация тупика может образовывать и большее количество потоков, чем 2. Тупик может возникнуть только в мультипрограммной системе. В общем случае ситуация тупика не имеет алгоритма недопущения.
Графическая иллюстрация тупика (4-х потоков):
Если Ос попала в состояние тупика, то необходимо выполнить действия по выходу из этого состояния. Обычно ОС переводит один или несколько потоков в состояние ожидания, в частности это может потребовать выгрузки этих потоков из ОП на диск, отбирает у них те ресурсы, которые были предоставлены указанным потокам, что позволяет оставшимся потокам продолжить свое выполнение.
Меры по недопущению появления тупиков:
Система должна удовлетворять заявки на потребление ресурсов в одной и той же последовательности (это достаточное условие, но может возникнуть ситуация, что ресурсы будут простаивать).
Просмотр того, что будет, если данный ресурс будет предоставлен потоку. Если есть возможность тупика, то поток переводится в режим ожидания.