Взаимодействие процессов и потоков в операционной системе, основные алгоритмы и механизмы синхронизации. Разработка школьного курса по изучению процессов в операционной системе Windows для 10-11 классов. Методические рекомендации по курсу для учителей.
При низкой оригинальности работы "Алгоритмы и механизмы синхронизации процессов в операционных системах", Вы можете повысить уникальность этой работы до 80-100%
Изза этого большинство современного ПО стало разрабатываться с учетом многопоточности, призванной ускорить работу программ путем распределения различных вычислений по разным процессам/потокам. Для корректного безошибочного взаимодействия процессов были созданы различные алгоритмы и механизмы синхронизации, каждый из которых обладает собственными функциональными и программными особенностями. Чтобы понимать принципы взаимодействия процессов и предотвращать ошибки, связанные с их совместной работой, следует знать особенности реализации и структуру алгоритмов и механизмов синхронизации. Цель работы: определить различия между понятиями процесс и поток, изучить основные алгоритмы и механизмы синхронизации, создать программный продукт, реализующий наиболее эффективный механизм синхронизации и разработать элективный курс для изучения данной темы в средней школе. Изучить теоретический материал о взаимодействии процессов и потоков в операционной системе, ознакомиться с основными алгоритмами и механизмами синхронизации, и создать программный продукт, реализующий наиболее эффективный механизм.Физическими или аппаратными ресурсами компьютера называются физические устройства, из которых состоит компьютер. К таким устройствам относятся центральный процессор, оперативная память, внешняя память, шины передачи данных и различные устройства ввода-вывода информации. Когда говорят обо всех ресурсах компьютера, включая как физические, так и логические ресурсы, то обычно используют термины ресурсы компьютера или системные ресурсы. Для выполнения на компьютере какой-либо программы необходимо, чтобы она имела доступ к ресурсам компьютера.К современным операционным системам, предъявляют важное требование - многозадачность: способность одновременно или попеременно выполнять несколько программ, совместно использующих не только процессор, но и другие ресурсы компьютера: оперативную и внешнюю память, устройства ввода-вывода, данные.В операционных системах, где существуют и процессы, и потоки, процесс рассматривается операционной системой как заявка на потребление всех видов ресурсов, кроме одного - процессорного времени. В таких системах понятие «поток» полностью поглощается понятием «процесс», то есть остается только одна единица работы и потребления ресурсов - процесс. Для этого операционная система обеспечивает каждый процесс отдельным виртуальным адресным пространством, так что ни один процесс не может получить прямого доступа к командам и данным другого процесса. Операционная система отображает виртуальное адресное пространство процесса на отведенную процессу физическую память. Если, например, в программе предусмотрено обращение к внешнему устройству, то на время этой операции можно не блокировать выполнение всего процесса, а продолжить вычисления по другой ветви программы.Для систем, использующих концепцию многопоточности используются следующие определения: Процесс - единица активности операционной системы, создаваемая при запуске программы на выполнение, и обладающая свойствами: · Отдельное виртуальное адресное пространство · Код выполняемой программы, загруженный в адресное пространство процесса Набор потоков, выполняющих код программы в адресном пространстве процесса, имеющих доступ к общим ресурсам процесса Поток - единица активности операционной системы, создаваемая при запуске процесса системой или программно из другого потока того же процесса, обладающая свойствами: · Счетчик команд - указатель на текущую выполняемую командуСоздать процесс - это прежде всего означает создать описатель процесса, в качестве которого выступает одна или несколько информационных структур, содержащих все сведения о процессе,, необходимые операционной системе для управления им. Примерами описателей процесса являются блок управления задачей (ТСВ - TASKCONTROLBLOCK) в OS/360, управляющий блок процесса (РСВ - PROCESSCONTROLBLOCK) в OS/2, дескриптор процесса в UNIX, объект-процесс (object-process) в Windows NT. Существуют системы, в которых на этапе создания процесса не требуется непременно загружать коды и данные в оперативную память, вместо этого исполняемый модуль копируется из того каталога файловой системы, в котором он изначально находился, в область подкачки - специальную область диска, отведенную для хранения кодов и данных процессов. В исходном состоянии поток (или процесс, если речь идет о системе, в которой понятие «поток» не определяется) находится в приостановленном состоянии. Момент выборки потока на выполнение осуществляется в соответствии с принятым в данной системе правилом предоставления процессорного времени и с учетом всех существующих в данный момент потоков и процессов.Создание потоков требует от ОС меньших накладных расходов, чем процессов. В отличие от процессов, которые принадлежат разным, вообще говоря, конкурирующим приложениям, все потоки одного процесса всегда принадлежат одному приложению, поэтому ОС изолирует потоки в гораздо меньшей степени, нежели процессы в традиционной мультипрограммной системе. Все потоки одного про
План
Содержание
ВВЕДЕНИЕ
ГЛАВА 1. ТЕОРЕТИЧЕСКИЕ ОСНОВЫ СИНХРОНИЗАЦИИ ПРОЦЕССОВ
1.1. Назначение операционной системы
1.2. Понятие процесса и потока
1.3. Свойства процессов и потоков
1.4. Определение процесса и потока
1.5. Создание процессов и потоков
1.6. Эффективность концепции потоков для параллельных вычислений
1.7. Необходимость синхронизации и гонки
1.8. Проблема взаимного исключения
1.9. Требования к алгоритмам синхронизации
1.10. Алгоритмы синхронизации
1.10.1. Запрет прерываний
1.10.2. Переменная-замок
1.10.3. Алгоритм Петерсона
1.10.4. Алгоритм булочной (Bakery algorithm)
1.11. Взаимное исключение на примере монитора
1.12. Взаимное исключение на примере семафора
1.13. Семафоры в Windows
Выводы по главе 1
ГЛАВА 2. ЭЛЕКТИВНЫЙ КУРС “ПРОЦЕССЫ В ОПЕРАЦИОННОЙ СИСТЕМЕ WINDOWS”
2.1. Методика изучения элективного курса
2.2. Программная поддержка элективного курса “Процессы в ОС Windows”
2.3. Апробация результатов исследования в средней школе
Выводы по главе 2
ЗАКЛЮЧЕНИЕ
СПИСОК ЛИТЕРАТУРЫ
ПРИЛОЖЕНИЕ
Вы можете ЗАГРУЗИТЬ и ПОВЫСИТЬ уникальность своей работы