Лекции по операционным системам

Страница: 5/11

Обработка прерываний при участии супервизора ОС.

1. отключение прерываний. Производится в соотв. модулях ОС. Сохранение контекста прерванной задачи. Установка режима системы прерываний.

2. определение адреса программного модуля. который обслуживает запрос на прерывание и передача управления на него. Включение подпрограммы обработки прерываний.

Диспетчер задач: выбор готовой к выполнению задачи на основе принятой дисциплины обслуживания. Восстановление контекста прерванной задачи. Установление прежнего режима работы системы прерываний и передача управления этой задаче.

№4

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

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

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

2. Объяснить понятия task, process, thread

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

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

№5

1. Системные библиотеки.

2. Многопоточность. Использование потоков.

Thread (поток, тред) 0 легковесный процесс.

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

Треды или потоки легковесными эти задачи называют потому, что ОС не должна для них организовывать полноценную виртуальную машину. Эти задачи не имеют собственных ресурсов. Они развиваются в том же виртуальном адресном пространстве, могут пользоваться теми же файлами, виртуальными устройствами и иными ресурсами, что и данный процесс. Единственное, что необходимо треду – процессорный ресурс. В однопроцессорной системе треды разделяют между собой процессорное время также, как это делают обычные процессы. В мультипроцессорной системе треды могут выполняться одновременно если не встречают конкуренции из-за обращения к другим ресурсам.

Многопоточность. Главное, что обеспечивает многопоточность – возможность параллельного выполнения нескольких видов операций в одной прикладной программе. Параллельные вычисления часто реализуются на уровне тредов. программа оформленная в виде нескольких тредов, в рамках одного процесса может быть выполнена быстрее за счет параллельно выполненных отдельных ее частей. Особенно эффективно можно использовать многопоточность для выполнения распределенных приложений. Например многопоточный сервер может выполнять запросы сразу нескольких клиентов.

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

Реферат опубликован: 26/02/2010