Pievienot darbus Atzīmētie0
Darbs ir veiksmīgi atzīmēts!

Atzīmētie darbi

Skatītie0

Skatītie darbi

Grozs0
Darbs ir sekmīgi pievienots grozam!

Grozs

Reģistrēties

interneta bibliotēka
Atlants.lv bibliotēka
6,49 € Ielikt grozā
Gribi lētāk?
Identifikators:459863
 
Autors:
Vērtējums:
Publicēts: 31.01.2006.
Valoda: Latviešu
Līmenis: Augstskolas
Literatūras saraksts: 2 vienības
Atsauces: Nav
SatursAizvērt
Nr. Sadaļas nosaukums  Lpp.
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
Darba fragmentsAizvērt

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.…

Autora komentārsAtvērt
Parādīt vairāk līdzīgos ...

Atlants

Izvēlies autorizēšanās veidu

E-pasts + parole

E-pasts + parole

Norādīta nepareiza e-pasta adrese vai parole!
Ienākt

Aizmirsi paroli?

Draugiem.pase
Facebook

Neesi reģistrējies?

Reģistrējies un saņem bez maksas!

Lai saņemtu bezmaksas darbus no Atlants.lv, ir nepieciešams reģistrēties. Tas ir vienkārši un aizņems vien dažas sekundes.

Ja Tu jau esi reģistrējies, vari vienkārši un varēsi saņemt bezmaksas darbus.

Atcelt Reģistrēties