Главная » Просмотр файлов » Спец часть (часть 2) (3 поток) (2015) (by Кибитова)

Спец часть (часть 2) (3 поток) (2015) (by Кибитова) (1161602), страница 8

Файл №1161602 Спец часть (часть 2) (3 поток) (2015) (by Кибитова) (Ответы на спец часть) 8 страницаСпец часть (часть 2) (3 поток) (2015) (by Кибитова) (1161602) страница 82019-09-19СтудИзба
Просмтор этого файла доступен только зарегистрированным пользователям. Но у нас супер быстрая регистрация: достаточно только электронной почты!

Текст из файла (страница 8)

ПослеПосле этогоэтого происходитпроисходитсменасменапроверкувнутрифункцииTestитакжеполучаетположительныйответ,иуправлениепроцессанапроцессоре,управлениеполучаетсоседэтогофилософа.Тоттожеделаетуправлениепереходитк первойкомандевнутри if-блока.После этого происходитсменапроцессауправлениеполучаетпроцессанапроцессоре,процесса нана процессоре,процессоре, управлениеуправление получаетполучает соседсосед этогоэтого философа.философа.

ТотТот тожетоже делаетделаетпереходитк первойинструкцииif-блока.Дальнейшаяработабудет некорректной.проверкувнутрифункцииTestитакжеполучаетположительныйпроцессанапроцессоре,управлениеполучаетсоседэтогофилософа.ТоттожеделаетпроверкувнутрифункцииTestитакжеполучаетответ,иуправлениепроверкупроверку внутривнутри функциифункции TestTest ии такжетакже получаетполучает положительныйположительный ответ,ответ, ии управлениеуправлениепереходиткпервойинструкцииif-блока.Дальнейшаяработабудетнекорректной.проверкувнутрифункцииTestитакжеполучаетположительныйответ,иуправлениепереходиткпервойинструкцииif-блока.Дальнейшаяпереходитпереходит кк первойпервой инструкцииинструкции if-блока.if-блока. ДальнейшаяДальнейшаяработаработабудетбудетнекорректной.некорректной.Задача«читателейи писателей».Представимпереходитк первойинструкции if-блока.Дальнейшаяработа будетпроизвольнуюнекорректной.

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

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

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

Тоесть процесс-писательпроцесс-писательожидатьжелающиепроцессы-читателиокончатсвоидействиявбудетсистемеи покинутее. когдапроцесс-писательбудетожидатьмомента,когда всевсежелающиепроцессы-читателиокончатсвоидействияввсистемесистемепокинутее.окончатсвоиииипокинутокончатсвоидействиясистемеее.естьпроцесс-писательожидатьмомента,окончатсвоидействиядействияввбудетсистемепокинутее. когда все желающие процессы-читатели /*переопределениетипасемафорокончат свои действия в системе и покинут ее.*//*переопределениетипасемафор*//*типатипа/* переопределениепереопределениетипа семафорсемафор */*/typedefint semaphore;typedefintsemaphore;typedefintsemaphore;typedefintдляsemaphore;/*переопределениетипа всемафор*//*семафордоступакритическуюсекцию - контроль за/*семафордлявкритическуюза/*семафордлядоступавкритическуюсекциюконтрольдоступасекцию--- контроль/*семафордлядоступавкритическуюсекциюконтроль зазаtypedefintsemaphore;доступом к «rc» (разделямый ресурс) */доступомк«rc»ресурс)*/доступомк«rc»(разделямыйресурс)(разделямый*/доступомк«rc»(разделямыйресурс)*//*семафор mutexдля доступаsemaphore= 1; в критическую секцию - контроль заsemaphoremutex1;semaphore=== 1;semaphoremutex1;доступомк mutex«rc»(разделямый/*семафордля доступак базересурс)данных */*//*семафордлякбазеданных*/доступа*//*семафордлядоступакбазеданных/*семафордлядоступакбазеданных*/semaphore= 1;semaphore mutexdb = 1;semaphoredb1;semaphoredb===читателей1;semaphoredb1;/*семафордлядоступак внутрибазе данных*//*количествохранилища*//*количествочитателейхранилища*/внутрихранилища*//*количествочитателейхранилища/*количествочитателейвнутрихранилища*/semaphoredb=1;int rc = 0;intrc0;intrc === 0;0; читателей внутри хранилища */intrc/*количествоintrc = 0;/* процесс-читатель*/ /*процесс-читатель*//* процесс-читательпроцесс-читатель */*//* 128/* процесс-читатель */128128128128voidvoidvoid{{{}}}Reader(void)Reader(void)Reader(void)while(true)while(true)while(true){{{down(&mutex); /* получить эксклюзивный доступ к «rc»*/down(&mutex);/* получитьполучитьэксклюзивныйдоступ«rc»*/down(&mutex);/*доступrc = rc + 1; /*ещеоднимэксклюзивныйчитателем больше*/к к«rc»*/rc=rc+1;/*ещеоднимчитателембольше*/rc=rc+1;/*ещеоднимчитателембольше*//* если это первый читатель, нужно заблокировать/*есличитатель,нужно/*если этоэто первыйпервыйчитатель,нужнозаблокироватьзаблокироватьэксклюзивныйдоступк базе */эксклюзивныйдоступкбазе*/эксклюзивныйif(rc == 1) доступ к базе */if(rc==if(rc down(&db);== 1)1)down(&db);down(&db);up(&mutex); /*освободить ресурс rc */up(&mutex);/*освободитьресурс rcup(&mutex);/*освободитьrc*/*/ReadDataBase();/* доступресурск данным*/ReadDataBase();/*доступккданным*/ReadDataBase();/*доступданным*/down(&mutex); /*получить эксклюзивный доступ к «rc»*/down(&mutex);/*получитьэксклюзивныйдоступк к«rc»*/down(&mutex);/*получитьэксклюзивныйдоступ«rc»*/rc == rcrc –– 1;1; /*/*теперьоднимоднимчитателемменьшеменьше*/*/rcтеперьчитателемrc= rc это– 1;был/* последнийтеперь однимчитателемменьше *//*есличитатель,разблокировать/*если/*если этоэто былбыл последнийпоследний читатель,читатель,разблокироватьразблокироватьэксклюзивный доступк кбазебазе данных*/*/эксклюзивныйэксклюзивный доступдоступ к базе данныхданных */if(rc == 0)0)if(rcif(rc ==== 0)up(&db);up(&db);up(&db);up(&mutex);/*освободить разделяемыйресурсресурс rc*/up(&mutex);up(&mutex); /*освободить/*освободить разделяемыйразделяемый ресурсrc*/rc*/UseDataRead(); /*некритическаянекритическая секция*/*/UseDataRead();UseDataRead(); /*/* некритическаясекциясекция */}}} /* процесс-писатель */*//*/* процесс-писательпроцесс-писатель */voidWriter(void)voidvoid Writer(void)Writer(void){{{while(TRUE)while(TRUE)while(TRUE){{{ThinkUpData();/*/*некритическаянекритическаясекциясекция*/*/*/ThinkUpData();ThinkUpData();/*некритическаясекцияdown(&db);/*получитьэксклюзивныйдоступк данным*/down(&db);/*получитьэксклюзивныйдоступданным*/down(&db); /* получить эксклюзивный доступ кк данным*/WriteDataBase();/*записатьданные*/WriteDataBase(); /*/* записатьзаписать данныеданные */*/WriteDataBase();up(&db);/*отдатьэксклюзивныйдоступ*/*/up(&db);/*отдатьэксклюзивныйдоступup(&db); /* отдать эксклюзивный доступ */}}}}}} ВВприведенномциклесвоейработывходитв вприведенномрешениирешениипроцесс-читательпроцесс-читательв вкаждомв каждомкаждомциклесвоейработывходитВприведенномрешениипроцесс-читательциклесвоейработывходитвкритическуюсекцию(опускаетсемафорmutex),увеличиваетсчетчикчитателей,критическуюсекцию(опускаетсемафорmutex),увеличиваетсчетчикчитателей,критическую в секцию(опускаетсемафор mutex),увеличиваетсчетчикчитателей,находящихсялилиононпервымчитателемнаходящихся ввхранилище,хранилище,нана1.1.1.ЗатемЗатемпроверяет,проверяет,чточтоявляетсяявляетсяпервымчитателемнаходящихсяхранилище,наЗатемпроверяет,чтоявляетсялионпервымчитателем(т.е.вв данныймоментонединственныйклиентв вхранилище).Еслида,да,то тоон онопускает(т.е.данныймоментонединственныйклиентхранилище).Еслиопускает(т.е.

Характеристики

Тип файла
PDF-файл
Размер
8,18 Mb
Высшее учебное заведение

Список файлов ответов (шпаргалок)

Свежие статьи
Популярно сейчас
Зачем заказывать выполнение своего задания, если оно уже было выполнено много много раз? Его можно просто купить или даже скачать бесплатно на СтудИзбе. Найдите нужный учебный материал у нас!
Ответы на популярные вопросы
Да! Наши авторы собирают и выкладывают те работы, которые сдаются в Вашем учебном заведении ежегодно и уже проверены преподавателями.
Да! У нас любой человек может выложить любую учебную работу и зарабатывать на её продажах! Но каждый учебный материал публикуется только после тщательной проверки администрацией.
Вернём деньги! А если быть более точными, то автору даётся немного времени на исправление, а если не исправит или выйдет время, то вернём деньги в полном объёме!
Да! На равне с готовыми студенческими работами у нас продаются услуги. Цены на услуги видны сразу, то есть Вам нужно только указать параметры и сразу можно оплачивать.
Отзывы студентов
Ставлю 10/10
Все нравится, очень удобный сайт, помогает в учебе. Кроме этого, можно заработать самому, выставляя готовые учебные материалы на продажу здесь. Рейтинги и отзывы на преподавателей очень помогают сориентироваться в начале нового семестра. Спасибо за такую функцию. Ставлю максимальную оценку.
Лучшая платформа для успешной сдачи сессии
Познакомился со СтудИзбой благодаря своему другу, очень нравится интерфейс, количество доступных файлов, цена, в общем, все прекрасно. Даже сам продаю какие-то свои работы.
Студизба ван лав ❤
Очень офигенный сайт для студентов. Много полезных учебных материалов. Пользуюсь студизбой с октября 2021 года. Серьёзных нареканий нет. Хотелось бы, что бы ввели подписочную модель и сделали материалы дешевле 300 рублей в рамках подписки бесплатными.
Отличный сайт
Лично меня всё устраивает - и покупка, и продажа; и цены, и возможность предпросмотра куска файла, и обилие бесплатных файлов (в подборках по авторам, читай, ВУЗам и факультетам). Есть определённые баги, но всё решаемо, да и администраторы реагируют в течение суток.
Маленький отзыв о большом помощнике!
Студизба спасает в те моменты, когда сроки горят, а работ накопилось достаточно. Довольно удобный сайт с простой навигацией и огромным количеством материалов.
Студ. Изба как крупнейший сборник работ для студентов
Тут дофига бывает всего полезного. Печально, что бывают предметы по которым даже одного бесплатного решения нет, но это скорее вопрос к студентам. В остальном всё здорово.
Спасательный островок
Если уже не успеваешь разобраться или застрял на каком-то задание поможет тебе быстро и недорого решить твою проблему.
Всё и так отлично
Всё очень удобно. Особенно круто, что есть система бонусов и можно выводить остатки денег. Очень много качественных бесплатных файлов.
Отзыв о системе "Студизба"
Отличная платформа для распространения работ, востребованных студентами. Хорошо налаженная и качественная работа сайта, огромная база заданий и аудитория.
Отличный помощник
Отличный сайт с кучей полезных файлов, позволяющий найти много методичек / учебников / отзывов о вузах и преподователях.
Отлично помогает студентам в любой момент для решения трудных и незамедлительных задач
Хотелось бы больше конкретной информации о преподавателях. А так в принципе хороший сайт, всегда им пользуюсь и ни разу не было желания прекратить. Хороший сайт для помощи студентам, удобный и приятный интерфейс. Из недостатков можно выделить только отсутствия небольшого количества файлов.
Спасибо за шикарный сайт
Великолепный сайт на котором студент за не большие деньги может найти помощь с дз, проектами курсовыми, лабораторными, а также узнать отзывы на преподавателей и бесплатно скачать пособия.
Популярные преподаватели
Добавляйте материалы
и зарабатывайте!
Продажи идут автоматически
6376
Авторов
на СтудИзбе
309
Средний доход
с одного платного файла
Обучение Подробнее