Студопедия  
Главная страница | Контакты | Случайная страница

АвтомобилиАстрономияБиологияГеографияДом и садДругие языкиДругоеИнформатика
ИсторияКультураЛитератураЛогикаМатематикаМедицинаМеталлургияМеханика
ОбразованиеОхрана трудаПедагогикаПолитикаПравоПсихологияРелигияРиторика
СоциологияСпортСтроительствоТехнологияТуризмФизикаФилософияФинансы
ХимияЧерчениеЭкологияЭкономикаЭлектроника

Защищенный доступ к переменным

Читайте также:
  1. I. Уровень доступа
  2. Ls: невозможно получить доступ к /dev/ttyACM0: Нет такого файла или каталога
  3. Ls: невозможно получить доступ к /dev/ttyACM0: Нет такого файла или каталога
  4. X. Порядок обеспечения доступа к информации о деятельности Правительства
  5. А чтобы это всё действовало, человек должен всё это знать и понимать. Тот, кто не знает и не понимает, ему информация не доступна.
  6. А чтобы это всё действовало, человек должен всё это знать и понимать. Тот, кто не знает и не понимает, ему информация не доступна.
  7. Анализ источников опасных сигналов и определение потенциальных технических каналов утечки информации и несанкционированного доступа.
  8. Анализ рынка услуг предоставления доступа к сети Интернет на территории Магаданской области по итогам 2009г. и 1 п/г 2010г.
  9. Блага, имеющиеся в изобилии и доступные всем в любом количестве, называются в экономической теории
  10. В) неисключаемость из потребления, т.е. доступ к его потреблению нельзя ограничить.

Существует ряд функций, позволяющих работать с глобальными переменными из всех нитей, не заботясь о синхронизации, т.к. эти функции сами за ней следят – их выполнение атомарно. Это функции InterlockedIncrement, InterlockedDecrement, InterlockedExchange, InterlockedExchangeAdd и InterlockedCompareExchange. Например, функция InterlockedIncrement атомарно увеличивает значение 32-битной переменной на единицу, что удобно использовать для различных счетчиков.

 

Для получения полной информации о назначении, использовании и синтаксисе всех функций WIN32 API необходимо воспользоваться системой помощи MS SDK, входящей в состав сред программирования Borland Delphi или CBuilder, а также MSDN, поставляемым в составе системы программирования Visual C.

 

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

 

Порядок выполнения работы

 

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

2. Согласно рекомендациям, приведенным в исходных данных, сконструировать структуру программы.

3. Составить тексты программ и утвердить их у преподавателя.

4. Пункты 1 - 3 должны быть выполнены предварительно до проведения данной лабораторной работы. Утверждение преподавателем текстов программ является допуском к лабораторной работе.

5. Набрать текст программы.

6. Выполнить компиляцию программы.

7. Провести анализ и исправление обнаруженных синтаксических ошибок в тексте программы и повторить пункты 6. и 7. При устранении всех синтаксических ошибок перейти к выполнению пункта 8.

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

 

Содержание отчета

 

1. Тема лабораторной работы.

2. Цель работы.

3. Индивидуальное задание.

4. Метод и алгоритм решения задачи.

5. Текст программы.

6. Результаты работы программы.

7. Выводы по работе.

 

Задачи

 

I. Задача «производители-потребители». Решается проблема работы с нескольких процессов (нитей) с одним буфером. Часть процессов являются «производителями»: в случайные моменты времени производят запись информации в буфер. Часть процессов являются «потребителями»: в случайные моменты читают информацию из буфера (после чтения информация в буфере теряется). Необходимо организовать такую работу, чтобы не было коллизий при совместной работе «производителей» и «потребителей».

II. Задача «читатели-писатели». Имеются данные, совместно используемые нескольким процессами (нитями). Имеется несколько процессов (нитей), которые только читают эти данные («читатели») и несколько других, которые только записывают данные (или изменяют их) («писатели»). При этом должны удовлетворяться следующие условия:

– любое число «читателей» могут одновременно читать данные;

– записывать данные в определенный момент может только один «писатель».

– когда «писатель» записывает данные, ни один читатель не может его читать.

III. Задача об «обедающих философах». Имеется некоторое количество процессов (нитей) – «философов», которые «сидят вокруг стола с едой» - выполняются в операционной системе. На столе находится «столовые приборы» (тарелки и вилки) – «ресурсы», количество которых равно количеству «философов». Каждый философ некоторое время размышляет, затем пытается взять 2 рядом лежащие (слева и справа от него) вилки. Если это удается, то он принимается за еду. Время приема пищи – произвольно. Решение должно избегать возможности наступления тупика (круговое ожидание) и голодания.

IV. Задача о «парикмахере». В «парикмахерской» (операционная система) есть 1 «парикмахер» (процесс или нить), его кресло и N стульев для посетителей. Если желающих воспользоваться его услугами нет, то он «спит». Если в парикмахерскую приходит клиент, он должен разбудить парикмахера. Если клиент видит, что парикмахер занят, он либо садится на стул и ждет (если есть место), либо уходит (если места нет). Необходимо запрограммировать «парикмахера» и «клиентов» так, чтобы избежать состояния состязания.

 




Дата добавления: 2014-12-18; просмотров: 31 | Поможем написать вашу работу | Нарушение авторских прав




lektsii.net - Лекции.Нет - 2014-2024 год. (0.006 сек.) Все материалы представленные на сайте исключительно с целью ознакомления читателями и не преследуют коммерческих целей или нарушение авторских прав