Добавить работы Отмеченные0
Работа успешно отмечена.

Отмеченные работы

Просмотренные0

Просмотренные работы

Корзина0
Работа успешно добавлена в корзину.

Корзина

Регистрация

интернет библиотека
Atlants.lv библиотека
6,49 € В корзину
Добавить в список желаний
Хочешь дешевле?
Идентификатор:459863
 
Автор:
Оценка:
Опубликованно: 31.01.2006.
Язык: Латышский
Уровень: Университет
Литературный список: 2 единиц
Ссылки: Не использованы
Содержание
Nr. Название главы  Стр.
1.  UZDEVUMS    3
1.1.  Uzdevuma nostādne    3
1.2.  Uzdevuma paskaidrojums    3
1.3.  Instrukcija lietotājam    5
1.4.  Funkcionēšanas piemērs    7
2.  UZDEVUMS    8
2.1.  Uzdevuma nostādne    8
2.2.  Uzdevuma paskaidrojums    8
2.3.  Instrukcija lietotājam    10
2.4.  Funkcionēšanas piemērs    12
  IZMANTOTAS LITERATŪRAS SARAKSTS    15
Фрагмент работы

Uzdevuma galvenais mērķis ir semafora darbības modelēšana.
Uzdevums „Filosofi pie pusdienu galda” (Deikstra, 1971.g.) tiek formulēts sekojošā veiā:
Pieci filozofi sēž pie apaļā galda. Katrs no viņiem kādu laiku runā par politiku un kādu laiku ēd spagetti. Katram filozofam priekšā ir šķīvis ar spagetti. Uz galda ir piecas dakšas, pa vienai starp filozofiem – kaimiņiem. Lai varētu ēst spagetti, jāizmanto divas dakšas vienlaicīgi, kas atrodas blakus filozofa šķīvim.
Istrādāt programmu, kur filosofi ir procesi un procesu sinhronizēšanai izmanto semafora mehānismu.
1.2. Uzdevuma paskaidrojums
Risinot uzdevumu par filosofiem tiek pieņemts, ka katrs filososfs ir laiksakarīgs process kas darbojas neatkarīgi no citiem procesiem.
Process – ir programmas izpildīšanas stadija. Process atrodas izpildīšanas stāvoklī, ja procesors tiek iedalīts procesam un atrodas procesa rīcībā.
Laiksakarīgi procesi – ir tādi, kuri eksistē un izpildās vienlaicīgi. Tādi procesi var darboties pilnīgi neatkarīgi, taču mūsu gadījumā tie darbojas asinhronajā režīmā, kas nozīme, ka laiku pa laikam procesiem vajag sinhronizēties.
Atzīmēsim sekojošo: katram filosofam ir iespējami trīs stāvokļi:
1)Filosofs domā t.i. process atrodas tāda izpildīšanas stadija, kurā viņš ir neatkarīgs no citiem procesiem. Tas nozīme, kā šajā stadijā var atrasties jebkurš filosofu skaits;
2)Filosofs ēd, t.i. process atrodas sava kritiskā stāvokli. Kritiskais stāvoklis nozīme to, ka jebkurā laikā momentā tikai viens no blakusesošiem filosofiem var atrasties savā kritiskajā stāvoklī (ēst). Ja filosofu skaits ir 5, tad vienlaicīgi var ēst tikai 2 filosofi.
3)Filosofs ir pabeidzis domāt un gadā dakšiņu atbrīvošanu. Šo stāvoklis nozīme, ka process ir sabloķēts.
Laiku pa laikam, kāds no filozofiem ir pabeidzis domāt un grib sākt ēst, vai otrādi – pabeidzis ēst un grib sākt domāt, notiek sinhronizācija.
Sinhronizācija – ir procesa uzsākšanas momenta piekārtošanā kādam noteiktam momentam.
Viens no procesu sinhronizācijas veidiem, kas arī tiek izmantots uzdevuma atrisināšanai, ir semaforu izmantošanā.
Semafors – ir īpašs datu tips, ko izmanto, lai sinhronizētu vairākus procesus, kas izpildās vienlaicīgi. Semafors ir aizsargāts mainīgs, kura vērtību var nolasīt un nomainīt izmantojot speciālas operācijas wait, sinal un semafora inicializācijas operāciju.
Izmantojot semaforu koncepciju var atrisināt savstarpējas izslēgšanas problēmu ar vienkāršo paņēmienu: katra procesa kritisko apgabalu ielemt ar operācijām wait un signal uz vienīga semafora ar sākuma stāvokli – 1.
Filosofa darbības algoritmu vienkāršotā veidā var attēlot sekojoši:
PROCEDURE Filosofs(FilosofaNumurs: INTEGER);
VAR KreisaDakša , LabējaDakša:1..5;
BEGIN
KreisaDakša:=(FilosofaNumurs +1) mod 5;
LabējaDakša:= FilosofaNumurs mod 5;
WHILE True DO
BEGIN
;
P(Dakša[KreisaDakša]; Dakša [LabējaDakša]);
<Ēšana>;
V(Dakša [KreisaDakša]; Dakša [LabējaDakša]);
END
END;

Semaforu Dakša sākotnējais stāvoklis ir 1.…

Коментарий автора
Загрузить больше похожих работ

Atlants

Выбери способ авторизации

Э-почта + пароль

Э-почта + пароль

Неправильный адрес э-почты или пароль!
Войти

Забыл пароль?

Draugiem.pase
Facebook

Не зарегистрировался?

Зарегистрируйся и получи бесплатно!

Для того, чтобы получить бесплатные материалы с сайта Atlants.lv, необходимо зарегистрироваться. Это просто и займет всего несколько секунд.

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

Отменить Регистрация