2. Управление процессами и потоками.
Одной из основных подсистем любой современной мультипрограммной ОС,
непосредственно влияющей на функционирование компьютера, является
подсистема управления процессами и потоками. Основные функции этой
подсистемы [10, 12, 17]:
• создание процессов и потоков;
• обеспечение процессов и потоков необходимыми ресурсами;
• изоляция процессов;
• планирование выполнения процессов и потоков (вообще, следует гово-
рить и о планировании заданий);
• диспетчеризация потоков;
• организация межпроцессного взаимодействия;
• синхронизация процессов и потоков;
• завершение и уничтожение процессов и потоков.
К созданию процесса приводят пять основных событий:
1. инициализация ОС (загрузка);
2. выполнение запроса работающего процесса на создание процесса;
3. запрос пользователя на создание процесса, например, при входе в сис-
тему в интерактивном режиме;
4. инициирование пакетного задания;
5. создание операционной системой процесса, необходимого для работы
каких-либо служб.
Обычно при загрузке ОС создаются несколько процессов. Некоторые из них
являются высокоприоритетными процессами, обеспечивающими взаимодей-
ствие с пользователями и выполняющими заданную работу. Остальные про-
цессы являются фоновыми, они не связаны с конкретными пользователями,
но выполняют особые функции – например, связанные с электронной почтой,
Web-страницами, выводом на печать, передачей файлов по сети, периодиче-
ским запуском программ (например, дефрагментации дисков) и т.д. Фоновые
процессы называют демонами.
Новый процесс может быть создан по запросу текущего процесса. Создание
новых процессов полезно в тех случаях, когда выполняемую задачу проще
всего сформировать как набор связанных, но, тем не менее, независимых
взаимодействующих процессов. В интерактивных системах пользователь
может запустить программу, набрав на клавиатуре команду или дважды
щелкнув на значке программы. В обоих случаях создается новый процесс и
запуск в нем программы
С технической точки зрения во всех перечисленных случаях новый процесс
формируется одинаково: текущий процесс выполняет системный запрос на
создание нового процесса. Подсистема управления процессами и потоками
отвечает за обеспечение процессов необходимыми ресурсами. ОС поддержи-
вает в памяти специальные информационные структуры, в которые записы-
вает, какие ресурсы выделены каждому процессу. Она может назначить про-
цессу ресурсы в единоличное пользование или совместное пользование с
другими процессами. Некоторые из ресурсов выделяются процессу при его
создании, а некоторые – динамически по запросам во время выполнения. Ре-
сурсы могут быть выделены процессу на все время его жизни или только на
определенный период. При выполнении этих функций подсистема управле-
ния процессами взаимодействует с другими подсистемами ОС, ответствен-
ными за управление ресурсами, такими как подсистема управления памятью,
подсистема ввода-вывода, файловая система.
Для того чтобы процессы не могли вмешаться в распределение ресурсов, а
также не могли повредить коды и данные друг друга, важнейшей задачей ОС
является изоляция одного процесса от другого. Для этого операционная сис-
тема обеспечивает каждый процесс отдельным виртуальным адресным про-
странством, так что ни один процесс не может получить прямого доступа к
командам и данным другого процесса.
В ОС, где существуют процессы и потоки, процесс рассматривается как заяв-
ка на потребление всех видов ресурсов, кроме одного – процессорного вре-
мени. Этот важнейший ресурс распределяется операционной системой между
другими единицами работы – потоками, которые и получили свое название
благодаря тому, что они представляют собой последовательности (потоки
выполнения) команд. Переход от выполнения одного потока к другому осу-
ществляется в результате планирования и диспетчеризации. Работа по опре-
делению момента, в который необходимо прервать выполнение текущего по-
тока, и потока, которому следует предоставить возможность выполняться,
называется планированием. Планирование потоков осуществляется на основе
информации, хранящейся в описателях процессов и потоков. При планирова-
нии принимается во внимание приоритет потоков, время их ожидания в оче-
реди, накопленное время выполнения, интенсивность обращения к вводу-
выводу и другие факторы.
Диспетчеризация заключается в реализации найденного в результате плани-
рования решения, т.е. в переключении процессора с одного потока на другой.
Диспетчеризация проходит в три этапа:
• сохранение контекста текущего потока;
• загрузка контекста потока, выбранного в результате планирования;
• запуск нового потока на выполнение.
Когда в системе одновременно выполняется несколько независимых задач,
возникают дополнительные проблемы. Хотя потоки возникают и выполня-
ются синхронно, у них может возникнуть необходимость во взаимодействии,
например, при обмене данными.
Синхронизация потоков является одной из важнейших функций подсистемы
управления процессами и потоками. Современные операционные системы
предоставляют множество механизмов синхронизации, включая семафоры,
мьютексы, критические области и события. Все эти механизмы работают с
потоками, а не с процессами. Поэтому когда поток блокируется на семафоре,
другие потоки этого процесса могут продолжать работу.
Очевидно, что любая работа вычислительной системы заключается в выпол-
нении некоторой программы. Поэтому и с процессом, и с потоком связывает-
ся определенный программный код, который оформляется в виде исполняе-
мого модуля. В простейшем случае процесс состоит из одного потока, и в не-
которых современных ОС сохранилось такое положение. Мультипрограмми-
рование в таких ОС осуществляется на уровне процессов. При необходимо-
сти взаимодействия процессы обращаются к операционной системе, которая,
выполняя функции посредника, предоставляет им средства межпроцессной
связи– каналы, почтовые акции, разделяемые секции памяти и др.
Понятию "поток" соответствует последовательный переход процессора от
одной команды к другой. Процессору ОС назначают адресное пространство и
набор ресурсов, которые совместно используются всеми его потоками. В от-
личие от процессов, которые принадлежат, вообще говоря, конкурирующим
приложениям, все потоки одного процесса всегда принадлежат одному при-
ложению, поэтому ОС изолирует потоки в гораздо меньшей степени, чем
процессы в традиционной мультипрограммной системе. Все потоки одного
процесса используют общие файлы, таймеры, устройства, одну и ту же об-
ласть оперативной памяти, одно и то же адресное пространство.
Это означает, что они разделяют одни и те же глобальные переменные. По-
скольку каждый поток может иметь доступ к любому виртуальному адресу,
один поток может задействовать стек другого потока. Между потоками одно-
го процесса нет полной защиты, во-первых, потому что это невозможно, а во-
вторых, потому что не нужно. Чтобы организовать взаимодействие и обмен
данными, потокам не требуется обращаться к ОС, им достаточно использо-
вать общую память – один поток записывает данные, а другой читает их. С
другой стороны, потоки разных процессов по-прежнему хорошо защищены
друг от друга.
Таким образом, мультипрограммирование более эффективно на уровне пото-
ков, а не процессов. Еще больший эффект многопоточной обработки дости-
гается в мультипроцессорных системах, в которых потоки могут выполнять-
ся на разных процессорах действительно параллельно.
- Классификация ит.
- 2. Инфологическое проектирование базы данных предметной области.
- 3. Определение Web-дизайна.
- Геоинформационные системы.
- 2. Этапы проектирования бд.
- 3. Общие характеристики пользователей и особенности программирования сайтов в зависимости от этих характеристик.
- 1.Принцип "открытости" информационной системы. Семиуровневая модель взаимодействия информационных систем. Технологии открытых систем.
- 2. Основы реляционной алгебры.
- 3. Проектирование сайтов.
- Распределенные системы обработки данных; технологии «клиент- сервер». Понятия «толстый» и «тонкий» клиенты.
- 2. Основные категории языка манипулирования данными sql.
- 3. Структура сайта.
- Информационные подсистемы tps, mis, oas, kws и kms, их место в системе управления организацией, основные пользователи этих подсистем.
- 2. Понятие бизнес-логики. Хранимые процедуры, триггеры, представления.
- 3. Теория навигации.
- Этапы моделирования систем.
- 2. Основные блоки эвм.
- 3. Понятие и структура электронного учебника, принципы разработки.
- Статистическое моделирование систем на эвм.
- 2. Системная плата персонального компьютера.
- 3. Управление коммуникативной деятельностью в дистанционном образовании.
- Программы, среды и системы моделирования.
- 2. Виды и структура основной памяти.
- 3. Особенности работы в системе Moodle.
- Основные понятия планирования экспериментов.
- 3. Педагогические особенности проведения образовательного процесса в дистанционном образовании.
- Основные элементы языка gpss.
- 3. Основные принципы и модели дистанционного образования.
- 1. Данные, информация и знания. Приобретение, создание, описание и кодификация, хранение/востребование, передача и использование знаний в организации.
- 2. Назначение и основные функции операционных систем.
- 3. На какие группы можно разделить всю информацию по видам восприятия, которые возможны при работе с компьютерной и коммуникационной техникой.
- 1. Семантические сети, их классификация и принципы построения. Типы объектов и отношений в семантических сетях.
- 2. Управление процессами и потоками.
- 3. Укажите известные вам форматы аудио, видео, графики укажите их преимущества и недостатки, области применения.
- Классификация инструментальных средств для работы со знаниями. Языки, использующиеся при представлении и обработке знаний.
- Функции операционных систем по управлению памятью.
- Нейронные сети и их применение в ис. Биологический прототип и искусственный нейрон.
- 2. Характеристики файловых систем операционной системы Windows.
- 3. Библиотеки в Macromedia Flash.
- 1. Персептроны и зарождение искусственных нейронных сетей. Персептронная представляемость. Обучение персептрона. Алгоритм обучения персептрона.
- 2. Функции операционных систем по защите данных; политики безопасности.
- 2.1. Принципы проектирования защищенных систем
- 2.2. Понятие защищенной операционной системы
- 2.3. Подходы к созданию защищенных операционных систем
- 2.4. Административные меры защиты
- 2.5. Адекватная политика безопасности
- 3. Структура проекта в Macromedia Flash - кадры, слои, сцены.
- Топологии компьютерных сетей.
- 2. Система внутренних коммуникаций компании: вертикальные и горизонтальные каналы распространения знаний.
- 3. Структура информационно-логической модели информационных систем в образовании.
- Эталонная модель взаимодействия открытых систем (модель osi).
- Основные операции над семантическими сетями. Агрегация и обобщение. Управление выводом в сетевых моделях.
- Проектирование и разработка пользовательского интерфейса информационных систем в образовании.
- Стандарты Ethernet и Fast Ethernet.
- 3. Архитектура информационных систем в образовании.
- 5.1.2. Централизованная архитектура
- 5.1.3. Архитектура "файл-сервер"
- 5.1.4. Архитектура "клиент-сервер"
- 5.1.5. Многоуровневый "клиент-сервер"
- 5.1.6. Архитектура распределенных систем
- Адресация в сетях tcp/ip.
- Общие сведения о языках инженерии знаний. Понятие о функциональном и логическом программировании. Особенности языков Лисп, Пролог и Смолток.
- 3. Инструментальные средства проектирования информационных систем в образовании.
- Безопасность информационных сетей.
- Типы онтологий: верхнего уровня, предметных областей, прикладных онтологий. Лексические онтологии.
- 3. Модели жизненного цикла программного обеспечения информационных систем в образовании.
- Классификация современных операционных систем.
- 2. Роль и место банков данных в информационных системах.
- 3.Тэги, фреймы, создание документа в html.
- Планирование процессов и потоков.
- Сетевая модель данных
- Реляционная модель данных
- 3. Формы в html документах.
- Тупики, методы устранения тупиков.
- 2. Ограничения и целостность данных в базе.
- 3. Формы, функции, мультимедиа.
- Методы реализации виртуальной памяти.
- 2. Понятие транзакции. Управление транзакциями.
- 3. Типы ссылок, глобальная структура документа, метаданные, стили, списки.
- 1. Структура и функции файловой системы.
- 2. Управление пользователями и их правами доступа к данным в базе.
- 3. Вызов cgi программ.
- Основные классы современных эвм.
- Структура информационной сети.
- 3. Заголовки запросов и ответов.
- Физическая и функциональная структура микропроцессора.
- Классификация компьютерных сетей.
- 3. Модели объектов javascript и свойств объектов.
- Типы, назначение и параметры шин.
- Основные способы доступа к среде передачи в информационных сетях.
- 3. Фреймы, наследование кода скриптов различными страницами.
- Периферийные устройства.
- Методы коммутации в информационных сетях.
- 3. Возможные способы создания Web-страниц.
- Сети эвм.
- Этапы моделирования в системе gpss World.
- Баннеры: принципы создания.