Машинно-зависимые свойства операционных систем

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

Рубрика Программирование, компьютеры и кибернетика
Вид лекция
Язык русский
Дата добавления 08.10.2015
Размер файла 29,3 K

Отправить свою хорошую работу в базу знаний просто. Используйте форму, расположенную ниже

Студенты, аспиранты, молодые ученые, использующие базу знаний в своей учебе и работе, будут вам очень благодарны.

Размещено на http://www.allbest.ru/

МАШИННО-ЗАВИСИМЫЕ СВОЙСТВА ОПЕРАЦИОННЫХ СИСТЕМ

Свойства, которыми обладают операционные системы, делятся на две группы - машинно-независимые и машинно-зависимые.

Машинно-независимые свойства характеризуют возможности ОС:

Ш по управлению вычислительными ресурсами,

Ш особенности организации вычислительных процессов,

Ш способы организации файловых структур.

К машинно-зависимым свойствам современных ОС относят:

Ш многозадачность,

Ш возможность одновременной работы нескольких пользователей,

Ш возможность многопроцессорной обработки данных,

Ш возможность распараллеливания вычислений и многие другие.

В настоящее время в большинстве операционных систем определены два типа единиц работы - процессы и потоки

Понятия «процесс» и «поток»

Ш Процесс (задача) - программа, находящаяся в режиме выполнения.

Ш Потомк выполнемния (thread -- нить) -- наименьшая часть программы, исполнение которой может быть назначено ядром операционной системы.

ПРОЦЕССЫ

Термин «процесс» впервые появился при разработке операционной системы Multix и имеет несколько определений, которые используются в зависимости от контекста, согласно которым процесс - это:

1. программа на стадии выполнения

2. «объект», которому выделено процессорное время

3. асинхронная работа

Для описания состояний процессов используется несколько моделей. Самая простая -- модель трех состояний (рис. 1). Она определяет следующие состояния процесса:

1. состояния выполнения

2. состояния ожидания

3. состояния готовности

Выполнение -- это активное состояние, во время которого процесс обладает всеми необходимыми ему ресурсами. В этом состоянии процесс непосредственно выполняется процессором.

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

Готовность -- это тоже пассивное состояние, процесс тоже заблокирован, но в отличие от состояния ожидания, он заблокирован не по внутренним причинам (ведь ожидание ввода данных -- это внутренняя, «личная» проблема процесса -- он может ведь и не ожидать ввода данных и свободно выполняться -- никто ему не мешает), а по внешним, независящим от процесса, причинам.

Более сложная модель -- это модель, состоящая из пяти состояний. В этой модели появилось два дополнительных состояния: рождение процесса и смерть процесса.

Рождение процесса -- это пассивное состояние, когда самого процесса еще нет, но уже готова структура для появления процесса.

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

Диаграмма модели пяти состояний представлена на рис. 2.

Операции над процессами

Над процессами можно производить следующие операции:

1. Создание процесса -- это переход из состояния рождения в состояние готовности

2. Уничтожение процесса -- это переход из состояния выполнения в состояние смерти

3. Восстановление процесса -- переход из состояния готовности в состояние выполнения

4. Изменение приоритета процесса -- переход из выполнения в готовность

5. Блокирование процесса -- переход в состояние ожидания из состояния выполнения

6. Пробуждение процесса -- переход из состояния ожидания в состояние готовности

7. Запуск процесса (или его выбор) -- переход из состояния готовности в состояние выполнения

Для создания процесса операционной системе нужно:

1. Присвоить процессу имя

2. Добавить информацию о процессе в список процессов

3. Определить приоритет процесса

4. Сформировать блок управления процессом

5. Предоставить процессу нужные ему ресурсы

Иерархия процессов

Процесс не может взяться из ниоткуда: его обязательно должен запустить какой-то процесс. Процесс, запущенный другим процессом, называется дочерним (child) процессом или потомком.

Процесс, который запустил новый процесс называется родительским (parent), родителем или просто -- предком.

У каждого процесса есть два атрибута -- PID (Process ID) - идентификатор процесса и PPID (Parent Process ID) -- идентификатор родительского процесса.

Процессы создают иерархию в виде дерева. Самым «главным» предком, то есть процессом, стоящим на вершине этого дерева, является процесс init (PID=1).

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

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

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

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

· состоянием регистров и программного счетчика;

· режимом работы процессора;

· указателем на открытые файлы;

· информацией о незавершенных операциях ввода - вывода и др.

Такая информация называется контекстом процесса.

Говорят, что при смене процесса происходит переключение контекстов.

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

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

Итак, подсистема управления процессами планирует выполнение процессов, т.е.- распределяет процессорное время между несколькими одновременно существующими в системе процессами,

- занимается созданием и уничтожением процессов,

- обеспечивает процессы необходимыми системными ресурсами,

- поддерживает синхронизацию процессов,

- обеспечивает взаимодействие между процессами.

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

Процесс (задача) -- программа, находящаяся в стадии выполнения.

Потоки (нити) возникли как средство распараллеливания вычислений в рамках одного процесса.

Поток -- последовательность исполняемых команд.

С каждым процессом связывается его Адресное пространство.

Адресное пространство процесса содержит саму программу, ее данные, стек программы.

Во многих операционных системах информация о каждом процессе, дополнительная к содержимому его собственного адресного пространства, хранится в таблице процессов операционной системы.

В операционных системах, где существуют и процессы, и потоки, процесс рассматривается как заявка на потребление всех видов ресурсов, кроме одного - процессорного времени.

Процессорное время выделяется потокам.

В простейшем случае процесс состоит из одного потока.

Модель потока

*С каждым потоком связывается:

- Счетчик выполнения команд

- Регистры для текущих переменных

- Стек

- Состояние

*Потоки делят между собой элементы своего процесса:

-Адресное пространство

-Глобальные переменные

-Открытые файлы

-Таймеры

-Семафоры

-Статистическую информацию.

Преимущества использования потоков:

Создание потоков требует от ОС меньших накладных расходов, чем при создании процессов.

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

Быстрота создания потока по сравнению с процессом.

Повышение производительности самой программы.

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

Например: текстовый редактор с тремя потоками может одновременно взаимодействовать с пользователем, форматировать текст и записывать на диск резервную копию.

Мультипрограммирование более эффективно на уровне потоков, а не процессов.

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

Подсистема управления процессами и потоками

- занимается созданием и уничтожением процессов и потоков;

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

- распределяет процессорное время между несколькими одновременно существующими в системе процессами и потоками;

- обеспечивает процессы необходимыми ресурсами;

- поддерживает в памяти специальные информационные структуры для учета ресурсов, выделенных каждому процессу;

- назначает процессу статически или динамически ресурсов в единоличное пользование или в совместное пользование с другими процессами;

- взаимодействует с другими подсистемами ОС, ответственными за управление ресурсами, такими как подсистема управления памятью, подсистема ввода-вывода, файловая система.

Процесс при его создании включает следующую основную информацию:

- Счетчик команд - адрес текущей выполняемой команды процесса;

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

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

- Исполняемый код (команды) процесса первоначально хранится во вторичной памяти и загружается в основную память полностью или частично при обращении к нему.

Планирование и диспетчеризация потоков

На протяжении существования процесса выполнение его потоков может быть многократно прервано и продолжено.

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

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

Диспетчеризация заключается в реализации найденного в результате планирования решения, то есть в переключении процессора с одного потока на другой.

Планирование потоков

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

При планировании могут приниматься во внимание

- приоритет потоков,

- время их ожидания в очереди,

- накопленное время выполнения,

- интенсивность обращений к вводу-выводу

- и другие факторы.

ОС планирует выполнение потоков независимо от того, принадлежат ли они одному или разным процессам.

Планирование потоков, по существу, включает в себя решение двух задач:

-определение момента времени для смены текущего активного потока;

-выбор для выполнения потока из очереди готовых потоков.

Контекст потоков

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

Контекст отражает

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

2.параметры операционной среды: ссылки на открытые файлы, данные о незавершенных операциях ввода-вывода, коды ошибок выполняемых данным потоком системных вызовов и т. д.

Диспетчеризация потоков

Диспетчеризация сводится к следующему:

-сохранение контекста текущего потока, который требуется сменить;

-загрузка контекста нового потока, выбранного в результате планирования;

-запуск нового потока на выполнение.

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

Размещено на Allbest.ru

...

Подобные документы

  • Основные функции и процессы подсистемы управления процессами. Диспетчеризация процессов (потоков). Алгоритмы планирования выполнения потоков. Назначение и разновидности приоритетов в операционных системах. Функции подсистемы управления основной памятью.

    презентация [117,7 K], добавлен 20.12.2013

  • Создание средств представления процессов и механизмов управления на уровне диспетчеризации, разработка алгоритма и написание программы, имитирующую работу простейшей операционной системы. Формирование дескриптора, ввод информации, интерфейс программы.

    лабораторная работа [1,1 M], добавлен 09.07.2010

  • Структура ядра операционной системы. Основные компоненты подсистемы управления процессами и памятью. Характеристика системных и прикладных процессов в Unix. Идентификация процесса Linux, его атрибуты и вызовы. Средства межпроцессного взаимодействия.

    лекция [170,1 K], добавлен 29.07.2012

  • Изучение основных аспектов моделирования операционной системы. Исследование принципов организации псевдопараллельной работы процессов. Анализ алгоритмов диспетчеризации процессов. Проектирование подсистемы управления памятью и запоминающими устройствами.

    курсовая работа [1,7 M], добавлен 12.01.2014

  • Основные и дополнительные функции современных операционных систем. Особенности реализации приоритетных дисциплин обслуживания. Оценки эффективности планирования. Планирование верхнего уровня управления заданиями. Сравнительный анализ дисциплин FIFO и SJF.

    курсовая работа [353,6 K], добавлен 23.09.2013

  • Основные моменты истории операционных систем, связывающих аппаратное обеспечение и прикладные программы. Характеристика операционной системы Microsoft Windows Seven, анализ операционной системы Linux. Преимущества и недостатки каждой операционной системы.

    курсовая работа [63,0 K], добавлен 07.05.2011

  • Основные понятия операционных систем. Современное оборудование компьютера. Преимущества и недостатки операционной системы Linux. Функциональные возможности операционной системы Knoppix. Сравнительная характеристика операционных систем Linux и Knoppix.

    реферат [1,5 M], добавлен 17.12.2014

  • Программирование в операционной системе Windows. Работа с потоками и процессами ОС. Методы их создания. Основы вызова API-функций. Пример создания диалогового окна без использования файла ресурсов. Разработка программы с помощью 32-битного ассемблера.

    курсовая работа [107,6 K], добавлен 18.05.2014

  • Основные понятия об операционных системах. Виды современных операционных систем. История развития операционных систем семейства Windows. Характеристики операционных систем семейства Windows. Новые функциональные возможности операционной системы Windows 7.

    курсовая работа [60,1 K], добавлен 18.02.2012

  • Использование операционных систем Microsoft Windows. Разработка операционной системы Windows 1.0. Возможности и характеристика последующих версий. Выпуск пользовательских операционных систем компании, доработки и нововведения, версии Windows XP и Vista.

    реферат [23,3 K], добавлен 10.01.2012

  • Понятие операционных систем, их классификация и разновидности, отличительные признаки и основные свойства. Содержание операционных систем, порядок взаимодействия и назначение их компонентов. Организация дискового пространства. Описание современных ОС.

    контрольная работа [42,4 K], добавлен 07.11.2009

  • Управление процессами - часть операционной системы, влияющая на функционирование вычислительной машины. Контекст дескриптор процесса и алгоритм его планирования. Средства синхронизации и взаимодействия процессов. Критическая секция, тупики и нити.

    лекция [166,6 K], добавлен 05.02.2009

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

    курсовая работа [488,8 K], добавлен 22.06.2011

  • Планирование и диспетчеризация процессора. Гистограмма периодов активности процессора. Примеры экспоненциального усреднения. Диспетчеризация по приоритетам и стратегия Round Robin – "круговая система". Примеры многоуровневой аналитической очереди.

    презентация [1,8 M], добавлен 24.01.2014

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

    презентация [1,3 M], добавлен 24.01.2014

  • Механизмы управления транзакциями в СУБД. Обзор средств удаленного взаимодействия с объектами. Разработка подсистемы управления транзакциями. Практический анализ производительности подсистемы. Способы защиты пользователей от опасных и вредных факторов.

    дипломная работа [449,9 K], добавлен 14.03.2013

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

    учебное пособие [1,2 M], добавлен 24.01.2014

  • Функции операционной системы как совокупности программных средств, осуществляющих управление ресурсами электронно-вычислительных машин. Предназначение Windows, Linux и Mac. Особенности реализации алгоритмов управления основными ресурсами компьютера.

    реферат [22,5 K], добавлен 16.03.2017

  • Несовершенство операционных систем и программного обеспечения как причина ущерба, нанесенного мировой экономике компьютерными злоумышленниками. Безопасность операционной системы. Положительные и отрицательные стороны Microsoft Basline Sequrity Analyzer.

    курсовая работа [1,6 M], добавлен 03.08.2014

  • Ядро и вспомогательные модули операционной системы. Многослойная система и типовые средства аппаратной поддержки ОС, ее машинно-зависимые компоненты. Общие сведения о матричных принтерах, особенности проектирования символов для матричных принтеров.

    курсовая работа [868,4 K], добавлен 22.06.2011

Работы в архивах красиво оформлены согласно требованиям ВУЗов и содержат рисунки, диаграммы, формулы и т.д.
PPT, PPTX и PDF-файлы представлены только в архивах.
Рекомендуем скачать работу.