Алгоритмы и механизмы синхронизации процессов в операционных системах

Взаимодействие процессов и потоков в операционной системе, основные алгоритмы и механизмы синхронизации. Разработка школьного курса по изучению процессов в операционной системе Windows для 10-11 классов. Методические рекомендации по курсу для учителей.

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

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

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

Для семафора рисуются графические данные по следующим состояниям:

1) Семафор свободен (желтым цветом).

2) Первый поток занимает семафор (голубым цветом).

3) Второй поток занимает семафор (розовым цветом).

Рис. 9. Представление в графическом виде.

Процедура Execute для каждого потока содержит следующие этапы:

1. Имитация работы потока вне критической секции в течение заданного промежутка времени.

2. Ожидание освобождения семафора в пределах времени заданного пользователем.

3. Работа с критическим объектом. Время работы задается пользователем.

4. Освобождение семафора.

Результаты работы программы отображаются в просмотровом окне в режимах "Числовые параметры" (рис. 8) и "Диаграмма работы" (рис. 9).

За критический объект берется переменная Х, которая является общей для обоих потоков.(x: integer;). Работа потока с критическим объектом имитируется обращением к генератору равномерно распределенных случайных чисел FWorkSemafor. Число, выработанное этим генератором, присваивается переменной j, которая определяет длительность работы потока с критической секцией. В режиме "Числовые параметры" (рис. 8) значение переменной j отображает переменная Работа с крит. секцией. Новое значение переменной x, присваемое потоком критическому объекту, вырабатывается обращением к генератору равномерно распределенных случайных чисел в диапазоне от 1 до 100.

Для уничтожения семафора мы передаем его идентификатор функции CloseHandle. Замечу, что при завершении процесса все созданные им семафоры уничтожаются автоматически, но осторожность не помешает.

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

Рис. 10. Справка.

Описание электронного пособия

Программно-методической поддержкой элективного курса является электронное пособие «Процессы в ОС Windows», разработанное с помощью Adobe Dreamweaver CS3. Данный программный продукт представляет собой обучающее пособие, содержащее: методический материал для учителя, теоретический материал, адаптированный для школьников, практические задания и вопросы для повторения.

Теоретический материал структурирован в соответствии с темами уроков и изложен последовательно.

Электронное учебное пособие содержит два основных раздела:

1. Раздел для учителя. Включает в себя пояснительную записку, тематическое планирование, поурочное планирование и методические рекомендации.

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

Запустив электронное пособие, вы попадаете в его главное меню, представленное на рисунке 11.

Рис. 11. Главное окно электронного пособия

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

Разделы электронного пособия представлены на рисунках 12 и 13.

Рис. 12. Раздел для учителя

Рис. 13. Раздел для ученика

Теоретический материал адаптирован для учащихся и доступен для самостоятельного изучения. На рисунке 13 представлен один из уроков.

Практические задачи выполняются для закрепления материала по теме. Задания выполняются с помощью учителя на уроке. Пример заданий представлен на рисунке 14. В конце каждого урока ученик может найти вопросы для самоконтроля (Рис. 14).

Рис. 14. Практические задания и контрольные вопросы

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

2.3 Апробация результатов исследования в средней школе

Педагогический эксперимент проводился во время педагогической практики в МАОУ СОШ № 147 г. Челябинска. Курс изучался в общеобразовательном классе. В течение занятий были рассмотрены темы:

1. Концепция процессов и потоков (1 ч.).

2. Изучение механизма синхронизации семафор (1 ч.).

3. Исследование стабильности синхронизации (1 ч.).

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

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

Занятия проводились с использованием специально разработанной программы “Реализация семафоров”. При помощи программы учащиеся смогли наглядно рассмотреть работу механизма синхронизации, что способствовало повышению их интереса.

Выводы по главе 2

В главе 2 был проанализирован стандарт среднего (полного) общего образования по предмету информатика и ИКТ базового и профильного уровня, так же были рассмотрены некоторые учебные программы. Анализ показал, что содержания стандарта и материала учебников по теме “Процессы в операционных системах” недостаточно для понимания структуры операционной системы и принципах её работы. Так же по содержанию стандарта и материалам учебника невозможно составить представление о взаимодействии процессов в ОС. Для этих целей был разработан элективный курс “Процессы в операционной системе Windows”, рассчитанный на 17 часов. Разработан тематический план, с требованиями к уровню знаний учащихся по изучению курса. Разработано поурочное планирование. Для каждого урока сформулирована тема и образовательные цели; представлено краткое содержание урока; приведены типы практических заданий; поставлены контрольные вопросы и даны методические рекомендации учителю по проведению уроков.

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

Так же было разработано электронное учебное пособие “Процессы в ОС Windows”, которое содержит методические сведения для учителя и теоретический материал, адаптированный для школьников.

ЗАКЛЮЧЕНИЕ

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

В ходе исследования были выполнены поставленные задачи и получены следующие результаты:

1. Проанализирован теоретический материал по исследуемой области.

2. Рассмотрены различные виды алгоритмов и механизмов синхронизации и выявлены особенности их работы.

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

4. Анализ теоретического материала позволил отобрать содержание для элективного курса “Процессы в операционной системе Windows” и адаптировать его для старших классов.

5. В качестве программной поддержки электронного курса разработано электронное пособие “Процессы в операционной системе Windows”, содержащее методические рекомендации и теоретический материал.

6. Успешно проведена апробация курса в 10В классе в МАОУ СОШ №147 г. Челябинска, в результате которой ученики полностью усвоили материал проводимых уроков.

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

СПИСОК ЛИТЕРАТУРЫ

1. Бэкон, Д. Операционные системы/ Д.Бэкон. - СПб.: Питер, BHV, 2004 г. - 800с.

2. Гордеев, А.В. Операционные системы: Учебник для вузов/ А.В.Гордеев.-2-е изд.-СПб.и др.: Питер, 2004 г.- 415 с.

3. Олифер, В.Г. Сетевые операционные системы/ В.Г.Олифер, Н.А.Олифер.- СПб.: Издательский дом «Питер», 2001 г. - 544 с.

4. Побегайло А.П. - Системное программирование в Windows. / А.П. Побегайло - СПб: БХВ-Петербург, 2006 г. - 1056 с.

5. Столингс, В. Операционные системы/В. Столлингс. - 4-е издание. - М.: Вильямс, 2004 г. - 848 с.

6. Таненбаум, Э,. Операционные системы: Разработка и реализация 3-е издание./ Э Таненбаум, А Вудхалл -- СПб.: 2007 г.- 704 с.

7. Таненбаум, Э. Современные операционные системы/ Э.Таненбаум. - СПб.: Издательский дом «Питер», 2005. - 1038 с.

8. Эндрюс Г.Р. Основы многопоточного, параллельного и распределённого программирования/ Г. Р. Эндрюс - СПб: “Вильямс”, 2003. - 512 с.

ПРИЛОЖЕНИЕ

Конспект урока «Концепция процессов и потоков»

Тема урока: Концепция процессов и потоков.

Вид: урок усвоения новых знаний.

Цели урока:

* Образовательная: знать понятия “процесс”, ”поток”; иметь представление о значении процессов и потоков в работе ОС; иметь представление о многопоточности; уметь отличать поток от процесса.

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

* Развивающая: развитие познавательных интересов.

План урока:

1. Организационный момент. (1 мин)

2. Актуализация знаний. (2 мин)

3. Повторение ранее изученного материала. (2 мин)

4. Изложение нового материала. (20 мин)

5. Практическая работа. (18 мин)

6. Подведение итогов. (2 мин)

Этап урока

Учитель

Ученики

Доска

1

Здравствуйте, садитесь. Давайте отметим, кто отсутствует сегодня на уроке.

2

Сегодня на уроке мы начнем изучение элективного курса, который называется “Процессы в операционной системе Windows”. В ходе этого курса вы изучите, что такое процессы, как они взаимодействуют друг с другом и какие существуют способы организации их безошибочного взаимодействия. На этом уроке мы начнем с изучения базисных понятий курса, с процессов и потоков. Мы изучим, что они из себя представляют, в чем их отличие и какое значение они имеют для операционной системы. В конце урока будет проведена практическая работа, в ходе которой вы будете работать с Менеджером процессов и рассмотрите процессы и потоки в ОС.

Записывают число и тему урока.

Число и тема урока (Концепция процессов и потоков)

3

Перед тем как приступить к новой теме, давайте вспомним, что из себя представляет ОС. Как вы понимаете, что она из себя представляет? В чем её назначение? Какие функции ОС вы знаете?

Отвечают на поставленные вопросы.

Список вопросов.

4

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

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

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

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

· Отдельное виртуальное адресное пространство

· Код выполняемой программы, загруженный в адресное пространство процесса

· Начальные параметры запуска - аргументы запуска, рабочую папку и т.п.

· Текущее состояние, включая статус процесса.

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

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

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

· Счетчик команд - указатель на текущую выполняемую команду

· Регистры - значения регистров процессора в текущий момент времени. Стек.

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

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

Каждому процессу система присваивает идентификационный номер. Обычно наиболее важные системные процессы получают меньший номер.

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

Записывают определение многозадачности.

Записывают

Определение процессорного времени.

Записывают определения процесса и потока.

Записывают свойства.

Разбирают схема процессов с разным количеством потоков.

Определение многозадачности.

Определение процессорного времени

Определения процесса и потока.

Перечень свойств процесса и потока.

Разница понятий для разных систем.

Схема процессов с разным количеством потоков.

5

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

Практические задания:

1. Изучить Диспетчер задач.

2. Добавить в него столбцы отображающие - ID процесса, его описание и количество потоков.

3. Выписать 3 процесса, чей ID меньше 1000.

4. Выписать 3 процесса, чей ID больше 1000.

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

6. Выписать 5 процессов, содержащие больше 2 потоков. Использую знания, полученные на уроках, объяснить зачем процессам такое количество потоков.

Ученики выполняют практические задания на компьютерах.

Список заданий.

6

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

Прощаются с учителем.

Конспект урока «Изучение механизма синхронизации семафор»

Тема урока: Изучение механизма синхронизации семафор.

Вид: урок усвоения новых знаний.

Цели урока:

* Образовательная: знать понятия синхронизация, механизм синхронизации типа семафор; иметь представление о механизмах синхронизации; иметь представление о критической секции.

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

* Развивающая: развитие познавательных интересов.

План урока:

1. Организационный момент. (1 мин)

2. Актуализация знаний. (2 мин)

3. Повторение ранее изученного материала. (10 мин)

4. Изложение нового материала. (30 мин)

5. Подведение итогов. (2 мин)

Этап урока

Учитель

Ученики

Доска

1

Здравствуйте, садитесь. Давайте отметим, кто отсутствует сегодня на уроке.

2

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

Записывают число и тему урока.

Число и тема урока (Изучение механизма синхронизации семафор)

3

Но сначала давайте вспомним материал предыдущего урока, а именно что такое процесс и поток? Чем они отличаются? Какое значение они имеют для операционной системы?

Так же давайте повторим основные алгоритмические конструкции, которые понадобятся нам на сегодняшнем уроке. Это следование, ветвление и цикл.

Отвечают на вопросы.

Примеры алгоритмических структур (следование, ветвление, цикл)

4

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

Для корректного взаимодействия процессов недостаточно одних организационных усилий операционной системы. Необходимы определенные внутренние изменения в поведении процессов.

Для этих целей были созданы механизмы синхронизации. Чтобы понимать принципы взаимодействия процессов и предотвращать ошибки, связанные с их совместной работой, следует знать особенности реализации и структуру механизмов синхронизации.

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

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

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

P-операция над семафором представляет собой попытку уменьшения значения семафора на 1. Если перед выполнением P-операции значение семафора было больше 0, то P-операция выполняется без задержек. Если перед выполнением P-операции значение семафора было 0, то процесс, выполняющий P-операцию, переводится в состояние ожидания до тех пор, пока значение семафора не станет большим 0.

V-операция над семафором представляет собой увеличение значения семафора на 1. Если при этом имеются процессы, задержанные на выполнении P-операции на данном семафоре, один из этих процессов выходит из состояния ожидания и может выполнить свою P-операцию.

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

Операции P и V являются неделимыми. Неделимость операций означает, что в каждый момент времени только один процесс может выполнять операцию P или V над данным семафором. Неделимость операции также означает, что если несколько процессов задерживаются на P-операции, то только один из них может успешно завершить свою P-операцию, если значение семафора стало больше 0, при этом никаких предположений не делается о том, какой это будет процесс.

P(S): if S=1

Then S=S-1 /*закрыть семафор*/

else БЛОКИРОВАТЬ обратившийся процесс по S

V(S): if список процессов, ожидающих S, не пуст

then ДЕБЛОКИРОВАТЬ процесс, ожидающий S

else S=1 /*открыть семафор*/

Для реализации взаимного исключения, например, предотвращения возможности одновременного изменения двумя или более процессами общих данных, создается двоичный семафор S. Начальное значение этого семафора устанавливается равным 1. Критические секции кода (секции, которые могут одновременно выполняться только одним процессом) обрамляются операциями P(S) (в начале секции) и V(S) (в конце секции).

P(S)

критическая секция

V(S)

Процесс, входящий в критическую секцию, выполняет операцию P(S) и переводит семафор в 0. Если в критической секции уже находится другой процесс, то значение семафора уже равно 0. Тогда второй процесс, желающий войти в критическую секцию, блокируется своей P-операцией до тех пор, пока процесс, находящийся в критической секции сейчас, не выйдет из нее, выполнив на выходе операцию V(S).

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

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

Записывают определение механизмов синхронизации.

Записывают определение критической секции.


Записывают определение семафора.

Записывают значения V и P операций.

Разбирают и объяснять алгоритм семафора.

Придумывают описание критической секции.

Довершают описание схемы работы двоичного семафора.

Определение механизмов синхронизации.

Определение критической секции.

Определение семафора.

Значение V и P операций.

Алгоритм семафора.

5

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

Прощаются с учителем.

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


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

  • Понятие процесса и потока, характеристика их свойств и особенности создания. Требования к алгоритмам синхронизации, суть взаимного исключения на примере монитора и семафора. Методика изучения элективного курса "Процессы в операционной системе Windows".

    дипломная работа [1,7 M], добавлен 03.06.2012

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

    доклад [26,7 K], добавлен 27.12.2013

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

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

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

    курсовая работа [858,7 K], добавлен 24.03.2015

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

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

  • Функции программного интерфейса операционной системы Windows, предназначенные для работы с семафорами. Средства синхронизации Win32 АРI, основанные на использовании объектов исполнительной системы с дескрипторами. Проблемы при использовании семафоров.

    реферат [67,4 K], добавлен 06.10.2010

  • Сущность основных аспектов эффективного функционирования в операционной системе Windows. Способ создания локальных сетей в операционной системе Windows XP, изучение их возможностей. Глобальная сеть Интернет в ОС Windows, структура и основные программы.

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

  • Основные структуры процессов в операционной системе Unix. Возможные состояния процесса в Unix и способы перехода между ними. Планирование и выполнение процессов. Различия между родительским и дочерним процессом. Ожидание завершения и выполнения процесса.

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

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

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

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

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

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