Anda di halaman 1dari 50

PEMODELAN DENGAN

JARINGAN PETRI

Jaringan Petri telah dirancangdan terutamadigunakanuntuk pemodelan.


Banyak situasi, terutama sistim yang memiliki komponen-komponen yang
saling bebas, dapat dimodelkan oleh Jaringan Petri.

3.1. EVENT DAN KONDISI


Jaringan fetri secara sederhana dalam meninjau suatu sistem
mengkonsentrasikan pada 2 konsep primitive :

8. Event
Event adalah aksi yang terjadi dalam sistim tersebut. Kemunculan dari
event-event ini di kontrol oleh stata dari sistem tersebut. Stata dari sistem
dapat dijelaskan sebagai sekumpulan kondisi-kondisi.

b. Kondisi
Kondisi adalah predikat atau deskripsi lojik terhadap stata dari sistem.
Karenanya, suatu kondisi bisa hold (menjadi benar) atau not hold (menjadi
salah).
Karena event adalah aksi, maka event tersebut hams ada. Agar suatu
event terjadi, maka diperlukan adanya kondisi-kondisitertentu sebelumnya.
Hal ini disebut sebagai prekondisi dari event. Kemunculan dari event dapat
menyebabkan timbulnya kondisi lain, yang disebut sebagai post kondisi,
menjadi benar.
Contoh 1 :
Pemodelan terhadap suatu mesin toko. Mesin tersebut menunggu hingga
munculnya suatu order yang kemudian memproses order tersebut serta
mengirimkan untuk pengantaran.
Kondisi-kondisi untuk sistem tersebut diatas adalah :
32

a.

Mesin toko sedang menunggu

b.

Satu order telah tiba dan sedang menunggu

c. Mesin toko sedang mengerjakan order tersebut.


d. Order telah selesai
Sedangkan event-eventnya adalah :
1. Satu order tiba
2. Mesin toko mulai mengerjakan order tersebut
3. Mesin toko selesai mengerjakan order tersebut
4.

Order dikirim untuk delivery

Kita definisikan prekondisi-prekondisidan postkondisi-postkondisidari


event-event di atas dan bentuk bagan event-eventnya sebagai berikut:
..............................................................................................................................................
;:::;:::::::;:;:::::;:::::::::;:;:;:::::;:;:;:;:;:;:;:;:;:;:::::::;:;:;:::;:;:;:;:;:;:;:;:;:;:;:;:::;:;:;:;:;:::;:::::;:::::::;:::::::;::::

::H:::::::::BIIIIIIIIt:::::m:

:::::::::::'::::::::::::::::::::::::::::::::::11I.:::::::::::::::;::::j:::::::I:::::::::
.......................................................................................................................................... 1:'/',1:11',1'::::111:111111111::':::::'1::::,1:11":':,:'
:;:::::::::::::=::::::::::::;::::::::::::::::;::::::::::::::;:;:;:;::::::::::::::::::::::::::::;:::::::::;::::::::::;:::::::::::::::::::::
::i::i:i::i:;:::;:;:::::::j::::j:j:j:j:j:i:i:i:j:i:j:i:i:j:i:i:i:i:i:i:i:i:i:i:i:i:j:j:j:j:j:j:j;j:j:j::j::j::::::

Tidak ada

.a, b

3
4

'

'

c,

i@iUi.
. :.;::.. : ,':.::.}. .:: . .. """ :: ..:.::;:.:. .: .,::.. ::.'..:. }m:m;n
:::::i::i:;:;::i:}i::i:i::i::;::1::i:1:i:1:i:j:j:j:j:j:j:;:j:i:i:;:i@i:i@i:i:i:i:i:j:j:j:j:;:;:;:;:j:j:j:j:j:j:;

b
c
d, a
Tidak ada

Terlihat bahwa prekondisi dari event 2 (mesin toko mulai mengerjakan


order) adalah (a) mesin toko sedang menunggu, dan (b) order telah tiba
dan sedang menunggu. Postkondisi dari event 1 adalah (c) mesin toko
sedang mengerjakan order. Peninjauan suatu sistem seperti ini dapat dengan
mudah dimodelkan menjadi suatu model JaringanPetri. Event-event dan
dimodelkan dengan place-place dan kondisi-kondisi dimodelkan dengan
transisi-transisi. Input-input dari suatu transisi adalah prekondisi dari event
yang bersesuaian dan output dari transisi adalah postkondisi. Kemunculan
dari suatu event berkorespondensi dengan firing dari transisi yang
bersesuaian.
33

. _.

u..

..

---

-.-..-.

Holding dari suatu kondisi direpresentasikan oleh suatu token yang


berada dalam place yang bersesuaian ke kondisi tersebut. Bila transisi
tersebut ditembak maka token-token yang mempresentasikan holding dari
prekondisi dipindahkan dan menciptakan token-token baru yang
merepresentasikan holding dari postkondisi-postkondisi.
Berdasarkanhal-halyang telah diterangkandi atas, maka model Jaringan
Petri dari contoh mesin toko tersebut dapat ditunjukkan pada gambar 3-1.

An order
arrives

An order Processing
is waiting starts

Processing
is complete

The order
is complete

The m3chine shop


is idle, w3iting ror work

Gambar 3-1. Model jaringan petri.dari sistem mesin toko.


Contoh Sistem yang lebih rumit :
Mesin toko bisa terdiri dari 3 mesin yang berbeda, sebut MI, M2, dan
M3 serta dua operator FI dan F2. Operator FI dapat mengoperasikan
mesin MI dan M2 sedangkan operator F2 dapat mengoperasikan MI dan
M3. Setiap order harus selalu diproS'esoleh 2 mesin. Pertama-tama order
tersebut harus dikerjakan oleh mesin MI dan kemudian dikerjakan oleh
satu mesin M2 atau M3.
Kondisi-kondisi clari Sistem adalah :
a.
34

Order telah tiba dan sedang menunggu untuk diproses Ml.

b.

Order telah diproses M 1 dan sedang menunggu untuk diproses oleh


M2 atau M3.

c.

Order telah selesai diproses

d.

Mesin Ml menganggur

e.

Mesin M2 menganggur

f.

Mesin M3 menganggur

g.

Operator Fl menganggur

h.

Operator F2 menganggur

1. Mesin Ml sedang dioperasikan oleh Fl


J.

Mesin Ml sedang dioperasikan oleh F2

k.

Mesin M2 sedang dioperasikan oleh Fl

Mesin M3 sedang dioperasikan oleh F2

Event yang dapat muncul.


1. Suatu order tiba
2.

Operator Fl mulai memproses order pada mesin Ml

3. Operator Fl mulai memproses order pada mesin Ml


4.

Operator F2 mulai memproses order pada mesin Ml

5. Operator F2 mulai memproses order pacta mesin Ml


6.

Operator Fl mulai memproses order pacta mesin M2

7.

Operator Fl mulai memproses order pada mesin M2

8. Operator F2 mulai memproses order pacta mesin M3


9.

Operator F2 mulai memproses order pada mesin M3

10. Order dikirim untuk delivery

35

Bagan prekondisi-prekondisi dan postkondisi-postkondisi dari setiap


event.
Event
1
2
3
4
5
6
7
8
9
10

Prekondisi-prekondisi
Tidak ada
a, g, d

Postkondisi-postkondisi
a

g, d, b
J
b, h, d
k
c, g, e
I
c, f, h
tidak ada

a, h, d
J
b, g, e
k
b, f, h
I
c

Adapun model jaringan petrinya dapat ditunjukkan pada gambar 3-2.

Gambar 3-2. Model jaringan petri dari sistem toko yang lebih rumit.
36

Contoh ,3 :

Suatu sistem komputer yang memprosesjob-job dari suatu piranti input


dan mengeluarkan hasilnya pada suatu piranti output. Job-job muncul pada
piranti input. Bila processor bebas dan terdapat suatu job pada piranti
input, maka processor mulai untuk memprosesjob tersebut.Bila job tersebut
selesai, maka job dikirim ke piranti output, processor dapat melanjutkan
pemrosesanjob lainjika bersedia satujob pada piranti input atau menunggu
hingga datangnya satu job ke piranti input yang saat itu sedang kosong.
Sistem komputer tersebut di atas dapat dimodelkan oleh Jaringan Petri
seperti gambar 3-3.

A job is put in input queue

Ajob
is waiting

Ajub
is started

Ajob
;~ waiting
to be output

Gambar 3-3. Model dari sistem komputer sederhana.


37

3.2. KONKURENSI DAN KONFLIK


Pada model Jaringan Petri tersebut, 2 event yang enabled dan tidak
saling berinteraksi dapat muncul secara indepen bebas. Untuk kasus ini,
event-event tidak perlu disinkronkan kecuali dibutuhkan oleh sistem yang
sedang dimodelkan. Bila dibutuhkan sinkronisasi, maka hal ini juga dapat
dimodelkan dengan mudah. Jadi terlihat bahwa jaringan petri ideal untuk
memodelkan sistem-sistem dari kontrol tersebar dengan banyak proses
yang sedang eksekusi secara konkuren (parallel dalarn waktu).
Hal lain yang menjadi keistimewaan utarna dari jaringan petri adalah
sifat ke-asinkron-annya (tidak terdapat ukuran waktu atau aliran waktu
dalarn suatu jaringan petri). Hal ini merefleksikan suatu filosofi waktu
yang menyatakan bahwa sifat waktu yang penting, dari sudut pandang
logik adalah dalarn menentukan bagian dari urutan kemunculan eventevent. Pada kehidupan nyata, setiap event membutuhkan waktu yang
berbeda-beda, dan keberbedaan ini direfleksikan dalarn model jaringan
petri dengan tidak bergantungpada arti dari waktu untuk mengontrolderetan
dari event-event tersebut. Struktur jaringan petri itu sendiri berisi semua
informasi untuk menentukan deretan dari event-event yang mungkin. Jadi,
pada garnbar 3.3, event "A job is completed" harns mengikuti event yang
bersesuaian, yaitu "A job is started". Narnun sarna sekali tidak terdapat
informasi yang diberikan atau dibutuhkan berkenaan dengan jumlah waktu
untuk menyeksekusi suatu job.
Eksekusi terhadap suatu Jaringan Petri (dan prilaku sistem yang
dimodelkan) ditinjau disini sebagai suatu deretan event-event yang diskrit.
Urutan kemunculan lain dari event-event tersebut adalah salah satu dari
beberapa kemungkinan yang diperbolehkan oleh struktur dasarnya. Hal ini
mengakibatkan sifat nondeterministikterhadap eksekusi dari Jaringan Petri.
Jika pada satu saat terdapat lebih dari satu transisi yang enabled maka
salah satu dari beberapa transisi yang enabled tersebut menjadi transisi
berikut yang di "tembak". Ditinjau dari sisi eksekusi Jaringan Petri yang
klasik maka pemilihan terhadap transisi yang akan ditembak dilakukan
dengan cara yang nondeterministik, atau secara acak.
Dengan sifat ini maka timbul kerumitan dalarn mendeskripsikan dan
menganalisa prilaku dinarnis dari Jaringan Petri bila ditinjau sebagai
38

sederetan dari transisi yang ditembak. Untuk membantu membatasi


kerumitan ini maka dilakukan suatu pembatasan dalam pemodelan sistem
ke model Jaringan Petri yang diterima secara umum. Penembakan dari
suatu transisi (dan event yang berkaitan) adalah instantaneous, tidak
membutuhkan waktu, dan kemunculan dari 2 event tak dapat terjadi secara
simultan, atau secara bersama-sama.
Event-event yang dimodelkan disebut event-event primitif, yaitu
instantaneous dan nonsimultaneous. Suatu event yang nonprimitif adalah
suatu event yang blIa dilaksanakan akan membutuhkan waktu.
Operasi-operasi nonprimitif adalah semultan dan karenanya overlap dalam
waktu. Karena banyak event dalam dunia nyata dalam melaksanakannya
membutuhkanwaktu (event-eventnonprimitit)maka tidak dapat dimodelkan
secara tepat menjadi transisi pada suatu Jaringan Petri. Namun kebutuhan
akan hal ini tidak menimbulkan masalah dalam memodelkan suatu sistem.
Suatu event nonprimitif dapat dipecah dalam 2 event yang primitif,
yaitu :
a) Awal event nonprimitif, dan
b) Akhir event nonprimitif, serta Suatu kondisi "e,ventnonprimitif sedang
terjadi"

The nonprimilive
evenl SlarlS

The nonprimilive
event finishes

Gambar 3-4. Pemodelan suatu event nonprimitif.

39

Penembakan yang nondeterministik dan nonsimultan dari transisi pada


pemodelan dari sistem yang konkuren ada 2 cara. Salah satunya ditunjukkan
pada gambar 3-5. Pada situasi ini, dua transisi yang enabled tidak saling
mempengaruhi satu dengan lainnya. Hal ini diistilahkansebagai konkurensi.

0-+--0

Gambar 3-5.

Konkurensi.Kedua transisi ini dapat ditembak dalam urutan


sembarang.

Situasi lainnya, dimana sifat kebersamaan sangat sulit untuk ditangani


dan hanya dapat diselesaikandengan menentukan event-event yang muncul
secara tidak bersamaan, diilustrasikan oleh gambar 3-6. Pada situasi ini
dua transisi yang enabled adalah dalam keadaan konflik Hanya satu transisi
yang dapat ditembak dan jika dilakukan penembakan akan memindahkan
token pada input place yang digunakanbersama dan membuat tidak enabled
transisi lain.

40

3.3 PERANGKAT KERAS KOMPUTER


Perangkat keras komputer Qapat ditinjau dari beberapa level dan
Jaringan Petri dapat memodelkan masing-masing level ini. Pada level
terendah, komputer terbentuk dari piranti-piranti memori sederhana dan
gerbang-gerbang. Pada levellebih tinggi, unit-unit fungsional dan registerregister digunakan sebagai komponen-komponendasar dari sistem tersebut.
Masih level yang lebih tinggi, sistem komputer secara keseluruhan terdiri
dari komponen-komponenyang membentuk suatujaringan multi komputer.

1',

Gambar 3-6.

Konflik. Transisi-transisi
tj dan tk konflik karena
penembakan salah satu transisi akan menghilangkan token
dari Pi dan tidak meng-enabled transisi lainnya.

3.3.1 Finite State Machine (Mesin Stata hingga)


Pada level terendah, sistem komputer dapat dijelaskan sebagai state
machine.
State-machine adalah suatu 5-tupple dimana:
8

(8, I" Ll, 0, r )

adalah himpunan berhingga dari state-state {q1, q2,

,qk}
41

adalah input alfabet berhingga

adalah output alfabet berhingga

() : E> X L ~ E>adalah fungsi next-state, memetakan pasangan stata


dan input terakhir ke stata berikut.

r : E>X L ~ ~ adalah fungsi output, yang memetakan pasangan stata


dan input terakhir ke simbol output.
Mesin State sering dinyatakan oleh suatu state diagram. Pada suatu
state diagram, state-state dinyatakan oleh lingkaran-lingkaran yang
merupakan node-node dari graph. Arkus dari state qi ke state q.~ diberi
label a/b yang mengartikan bahwa dalam state qi dengan input a maka
mesin akan mengubah ke state q.~ dengan mengoutput simbol b.
a) = b. Input
alfabet mendefinisikan input ke mesin dari luar sedangkan output alfabet
menyatakan output dari mesin keluar sistem.
Secara formal, dapat dituliskan () (qi, a)

= qj dan r(qi,

Contoh : Perhatikan state-machine berikut ini :


State machine ini mengkonversikan suatu bilangan biner ke bilangan
biner 2'S - complement negatifnya dengan cara memproses dari bit lowordemya. Input alfabet dan output alfabetnya terdiri dari 3 simbol : 0, 1
dan R. Mesin mulai pada state q1. Simbol reset (R) memberikan sinyal
akhir (atau awal) dari suatu bilangan dan mereset mesin tersebut ke state
awal. Output dari mesin untuk simbol reset adalah simbol reset.

0/0

011

III
R/R
I/O

Gambar 3-7.
42

Diagram stata untuk suatu mesin stata hingga yang


menghitung 2's complement dari suatu bilangan biner.

Untuk merepresentasikan suatu state machine sebagai suatu Jaringan


Petri membutuhkan sedikit pemikiran karena pada Jaringan Petri tidak
terdapat fasilitas untuk berkomunikasi dengan dunia luar. Oleh karena itu,
dalam memodelkan interaksi dengan dunia luar dapat di realisa.sikandalam
2 cara, yaitu :
a.

Dengan himpunan place-placekhusus (input dan outputjaringan). Pada


contoh, setiap simbol input dinyatakan dengan satu place dan setiap
simbol output juga dinyatakan dengan satu place.
Kita asumsikan bahwa dunia luar mendepositkan satu token pada place
yang bersesuaian dengan simbol input dan kemudian menunggu satu
token muncul dalam satu place yang bersesuaian dengan satu simbol
output yang kemudian akan di remove. Hal ini berulang sesuai dengan
kebutuhan.

b.

Dengan himpunan transisi khusus.


Untuk menunjukkan simbol input berikut maka dunia luar harus
memilih suatu transisi input dan menembaknya.

Untuk suatu finite state machine (8, L, d, 0, r) kita dapat menentukan


suatu Jaringan Petri (P, T, I, 0) dimana :

= {tq,(JI q E
I(tq,(J)
O(tq,a)

8 dan cr E L}

= {q,

= {o(q,

cr),

cr}

r (q,cr)}

Jaringan petri merupakan suatu model dari Finite State MachiQe.

43

Representasi Jaringan Petri dari contoh state machine sebelumnya :

Garnbar 3-8.

Jaringan petri yang ekivalen dengan mesin stata hingga


dari garnbar 3.7.

Terlihat dari garnbar 3-8 bahwa :


a. Setiap simbol input dan output dinyatakan dalarn place-place
b. Setiap state dan state machine dinyatakan dalarn place
c. Untuk setiap pasangan state dan simbol input, kita tentukan suatu
transisi yang input place-placenya adalah place-place yang bersesuaian
dengan state dan simbol input serta output place-placenya adalah placeplace yang bersesuaian ke state berikut dan outputnya.
Suatu bentuk mesin serupa digarnbarkan pada garnbar 3.9 dengan
masukan yang sarna, mesin stata ini menghitung paritas dari bilangan
bilangan biner input. Mesin ini dimulai pada posisi stata q 1. Keluarannya
hanya mengulang masukannyahingga simbol masukannyamerupakan suatu
simbol reset. Keluaran dari simbol reset ini adalah bit 0 untuk bilangan
dengan paritas ganjil dan bit 1 untuk suatu bilangan dengan paritas genap.
44

Sedangkan representasi jaringan petrinya ditunjukkan pada garnbar 3-10.

IVI

Garnbar 3-9. Mesin stata hingga untuk menghitung paritas dari suatu
bilangan biner input.
Di sarnping itu model Jaringan Petri memiliki keuntungan-keuntungan
tertentu dalarn mengkombinasikan beberapa mesin stata hingga. Sebagai
contoh, karena keluaran alfabet dari mesin pada garnbar 3,.8 adalah sarna
dengan masukan alfabet pada garnbar 3.10. Dengan menjalankan keluaran
dari 3-8 kedalarn masukan dalarn dari garnbar 3.10, kita dapat membuat
suatu mesin yang dapat menghitung two's cO!Illement negative dan
paritasnya.

45

Gambar 3.10 Jaringan Petri yang ekivalen ke mesin stata hingga dari
gambar 3-9.
Kombinasi dalam mesin stata ini sangat komplek, membutuhkan suatu
stata komposisidengan komponen-komponendari kedua mesin stata hingga
tersebut, yang hasilnya berupa suatu mesin cross-product. Gambar 3-11
menunjukkan mesin cross-product. Untuk mesin jaringan petri, komposisi
tersebut dilakukan dengan menumpang-tindihkan place-place output dari
jaringan pertama dengan place-place input dari jaringan kedua. Gambar 312 menunjukkankomposisi dari keduajaringan petri gmbar 3-8 dan gambar
3-10.Keuntunganlain dari representasijaringan petri adalah dapat membuat
bentuk komposisi yang lain dari sebelumnya. Sebagai contoh, suatu
komposisi yang paralel memungkinkan komponen mesin tersebut dapat
bekerja secara serempak. Untuk suatu mesin stata, sekali lagi melibatkan
mesin cross-product,sementaraitu untukjaringan petri, hanyalah melibatkan
penduplikatan tanda masukan yang menggambarkan simbol masukan dan
46

memasukan semuanya ke setiap komponen dari mesin Jaringan Petri.


Terakhir, pada output dengan mudah kita seleksi place-place output yang
tepat. Sebagai contoh, jika kita ingin mengkombinasikan kedua mesin
jaringan petri dari gambar 3-8 dan 3-10 secara paralel, maka hal ini akan
menjadi suatu jaringan petri yang ditunjukkan pada gambar 3-13, yang
menghitung 2's complementnegatif dari suatubilangan biner dan paritasnya.
Paritas ini merupakan output bila simbol reset merupaJeanoutput.

Gambar 3-11. Komposisi mesin jaringan Petri yang merupakan komposisi


secara serial dari jaringan-jaringan petri gambar 3-8 dan 3-10.

47

Gambar 3-12. Komposisi paralel ~ari gambar 3-8 dan 3-10. Suatu subJaringan duplikator diperlukan untuk menyediakan input
bagi kedua komponen Jaringan Petri.
48

3.3.2 Pipeline Komputer


Kemampuan untuk membuat model Paralelisme dan kemudahan
mengkombinasikan beberapa subsistemyang dimodelkan sebagai Jaringan
Petri membuat model jaringan petri sangat berguna dalam memodelkan
hardware komputer yang lebih kompleks. Sistem-sistemkomputer tersusun
.dari beberapa komponen, dan beberapa rancangan mencoba untuk
meningkatkan hasil dengan menjalankan beberapa fungsi secara paralel.
Hal ini menjadikan Jaringan Petri tepat sekali untuk merepresentasikan
sistem tersebut.
Contoh dari pendekatan ini untuk membentuk suatu komputer dengan
performasi yang tinggi adalah dengan menggunakan pipelines.
Teknik ini ini mirip dengan operasi dari suatu jalur dan khususnya
bermanfaat untuk pemrosesan vektor dan array. Perakitan suatu pipeline
terdiri atas beberapa tingkatan, dimana eksekusi dari setiap tingkatan dapat
secara serempak. Bila tingkat k selesai, menunggu hasil dari hasil yang
dimilikinya diteruskanke tingkat (k+l) dan tingkatan (k-l) untuk pekerjaan
selanjutnya. Jika setiap tingkat menghabiskan t satuan waktu dan terdapat
n tingkatan, maka operasi lengkapnya untuk 1 operandi membutuhkan n.t
satuan waktu. Bagaimanapun, jika pipeline tersebut tetap disuply dengan
operandi yang baru, ia dapat mengeluarkantiap-tiap hasilnya rata-rata setiap
t satuan waktu.
Sebagai contoh, penambahan 2 bilangan floating point secara kasar
langkah yang dapat diambil adalah berikut ini :
1. Ekstrasikan eksponen-eksponen dari kedua angka tersebut.
2. Bandingkaneksponen-eksponentersebut dan menukar tempatjika perlu
untuk mengurutkan secara tepat dari yang lebih besar dan yang lebih
kedl pada eksponen-eksponen tersebut.
3. Pindahkan pecahan yang lebih kedl untuk menyamakan/meratakan
eksponen-eksponen.
4. Jumlahkan pecahan-pecahan
5. Postnormalize.
6. Perhatikan apakah eksponen terlalu banyak atau sebaliknya, satukan
eksponen dan pecahan dari hasil tersebut.
49

-.-..-

...

.._u. __.

.. __

.....

Setiap langkah-Iangkah di atas dapat dilakukan dengan sebuah unit


perhitungan yang terpisah, dengan sebuah operandi khusus yang dilewatkan
dari unit ke unit agar operasi penambahan selesai. Hal ini memberikan
sebanyak 6 penambahan untuk keadaan yang sedang berlangsung secara
serempak.
Kordinasi dari unit-unit yang berbeda dapat diatasi dalam beberapa
cara. Secara khusus,kontrolpipelineberoperasipada waktu yang bersamaan;
waktu yang disediakan untuk setiap langkah dari pipeline tersebut adala4
sebuah konstanta waktu yaitu t. Setiap satuan waktu t, hasil dati tiap unit
digeser kebawah pipeline tersebut untuk masukan bagi unit selanjutnya.
Bagaimanapun pendekatan operasi pada waktu yang bersamaan tersebut
tidak perlu menunda pengolahan karena waktu yang dibutuhkan dapat
berbeda antara unit satu dengan unit lainnya dan juga dapat berbeda untuk
suatu unit yang diketahui untuk masukan yang berbeda. Sebagai contoh
pada langkah post normalization dari penjumlahan floating point di atas
dapat menghabiskan jumlah waktu yang berbeda tergantung pada berapa
lama pergeseran normalisasi dilakukan dan apakah pergeseran yang
dilakukan kekiri atau kekanan. Pada kasus ini, karena waktu t harns dipilih
sebagai waktu maksimum yang mana diperlukan oleh unit dari pipeline
yang paling lambat, ini dapat dilihat dari setiap kasus dari semua units
dimana hampir seluruhnya dari waktu tunggu digunakan untuk membentuk
selama t waktu unit.
Suatu pipeline tidak sinkron rata-rata dapat mempercepatkan hal di
atas dengan memberi sinyal saat setiap tingkatan dari pipeline tersebut
selesai dan siap untuk melewatkan operannya dan menerima operan barn.
Hasil tingkat k dari pipeline dapat dikirim ke stage (k+l) segera setelah
tingkat k selesai & state (k+l) bebas.
Perhatikan suatu tingkatan sembarang pada pipeline tersebut. Jelas
bahwa harus terdapat satu place untuk meletakan inp..l!.t;~...ut.4an
output-outpu~ ~elam~mereka s~dang di~unak~ ataui~~ksi1
khusus, hal 1m mehbatkan regIster-regIster umt te
f

mlat-mlatpadaregIsteroutputnya(buffer).

'eg..'..lmsl.:~.~'"4 '~

..

n~l~-n~l~ tersebut .dalam register inputnya (bUffer}'.\;.

,~~
~~~,

..,'
_
~

. "~t'
. oil":'._
-.",. .

-t5

~006

t!..~

:~

:....

",

rr/"~

!-.p.'i

'

. ~",..;;-,j.:'

A -'~'#Ii'.~..

...-. -'
~ ...1'A
.
'#;' \(c:}~;.,
..t-":l/.
"~~'\""''"'.&t"1..

50

.
~.1/' 'A't;,,(.->,\'./

>-

;<\
'

~~

-.' .
". .

It"""

-~
4
.

~
...

~
t'~..

,',~;

Semuanya harns menunggu sampai :


1. Register outputnya telah kosong dengan menyalinnya kedalam register input dari tingkat berikutnya, dan
2.

Suatu input barn telah bersedia didalam register inputnya.

Dalam hal ini, kontrol untuk tingkat k dari pipeline tersebut perlu
untuk tahu kapan kondisi berikutnya hold :
Register input penuh
Register input kosong
Register Output penuh
Register Output kosong
Unit dalam keadaan sibuk
Unit dalam keadaan menganggur
Transfer/copying sedang berlangsung
Gambar 3-13 dan Gambar 3-14 menunjukanbagaimana sebuah pipeline
yang tidak sinkronlasinkrondapat dimodelkan. Gambar 3-13 adalah sebuah
diagram blok dari pipeline yang dimodelkan sebagai jaringan petri seperti
pada gambar 3-14
Perlu diingat bahwa dalam model ini kita telah memodelkan eksekusi
yang aktual dari unit-unit pipeline sebagai event-event non primitive. Hal
ini membolehkan kita untuk mengabaikan, pada leveUni, detail-detail yang
specifik dari hal-hal yang dilakukan setiap unit dan mengkonsentrasikan
pada interaksinya yang memungkinkan.Setiap operasijuga dapat dibuatkan
model Jaringan Petrinya. Jaringan Petri untuk setiap unit dapat disubtitusi
kedalam Jaringan Petri dari gambar 3.19 untuk mendapatkanjaringan petri
yang lebih mendetail. Kemampuan untuk memodelkan suatu sistem pada
beberapa level abstraksi yang berbeda, dalam suatu cara yang hierarki,
dapat berguna sekali.

51

unit k

-1

Output

r~gistcr k

Input register k

Output register k

I:-:put r~gist~r k

-:

Gambar 3-13. Diagram blok dari control unit yang tidak sinkron untuk
komputer pipeline.

52

,,

Output or k

'ut or k - I empty

- I rull

Input or k empty

Input or k rull

'utput or k empty

Output of k full

,put of k + I full

Input uf k + I empty

'\.
'\.,

Gambar 3-14. Model Jaringan Petri dari unit kontrol suatu komputer
pipeline yang tidak sinkron.

53

3.3.3

Unit Mu(ti Fungsi

Struktur Kontrol Pipeline adalah salah satu pendekatan yang digunakan


untuk membangun sistem komputer besar yang cepat. Pendekatan lain
yang digunakan dalam CDC 6600 (Thornton 1970) dan IBM 360/91
(Aderson 1967)sebagai contoh daIam penyediaanunit Multi Fungsi. Dalam
6600, terdapat 10 unit fungsi yang tersedia, yaitu :
1

Unit pencabangan (untuk lompat 'berkondisi)

1
1

Unit boolean (untuk operasi boolean)


Unit shift

Unit penambahan floating point

Unit penambahan fixed point

Unit Multiply (perkalian)

Unit Divide (pembagian)

Unit Increment (untuk pengindexan)

Selain itu banyak register diberikan untuk menahan input/output dari


unit fungsi. Unit Kontrol d'ari komputer mencoba untuk menyimpan
beberapa dari unit-unit yang bebas dalam operasi secara simultan.,
Sebagai contoh, perhatikanbarisan instruksi berikut ini yang didasarkan
sistem komputer CDC 6600 :
1. Kalikan Xl dengan Xl, hasilnya simpan kedalam XO.
2. Kalikan X3 dengan Xl, hasilnya simpan kedalam X3.
3. Tambahkan X2 ke X4, hasilnya simpan kedalam X4.
4. Tambahkan XO ke X3, hasilnya simpan kedalam X3.
5. Bagi XO dengan X4, hasilnya simpan kedalam X6.
Ketika instruksi-instruksidijalankan,controlunit mengeluarkaninstruksi
pertama keunit perkalian. Kemudian, karena ada 2 unit perkalian, instruksi
kedua dapatjuga dikeluarkan.Memperhatikankedua unit ini dapat membaca
54

Xl tanpa masalah. Instruksi 3 dapat mengeluarkan ke unit penambahan.


Sekarang untuk mengeluarkan instruksi 4, kita harus menunggu sampai
Instruksi 1, 2, 3 selesai, karena instruksi 4 menggunakan unit penambahan
(yang sedang digunakan oleh instruksi 3) untuk memproses XO (sedang
diproses oleh Instruksi 1)dan X3 (sedangdiprosesoleh Instruksi2). Instruksi
5 harus menungguInstruksi 1 (untukmenyelesaikanproses XO)dan Instruksi
3 (untuk menyelesaikan proses X4).
Pengenalan dari type paralel ini, pengerjaan beberapa instruksi dari
program secara simultan, harus dikontrol sehingga hasil dari pengerjaan
program dengan atau tidak dengan paralel adalah sama saja. Instruksi
tertentu dalam program akan membutuhkan hasil dari instruksi terdahulu,
telah sukses diproses sebelum instruksi sebelumnya diproses.
Sistem yang memperkenalkan paralel kedalam sebuah program
sequensialsedemikianrupa menyokonghasil yang benar adalah Determinate
(terbatas). Kondisi-kondisi untuk menyokong ketetapan telah dipikir~an
oleh Bersten (1966) sebagai berikut :
Untuk dua operasi a x b, sedemikian hingga a mendahului b dalam
program linier, b dapat dimulai sebelum a selesai dikerjakan jika dan
hanya jika b tidak memerlukan hasil dari a sebagai input dan.hasil dari
b tidak merubah input atau hasil dari a.
Sebuah tabel reservasi adalah salah satu metode aplikasi
ketidakleluasaan dari konstruksi unit kontrol yang mengeluarkan
instruksinya untuk memisahkan unit-unit fungsi. Instruksi unit-unit
fungsional a memakairegister I, J dan K dapat dikeluarkanjika keempat
komponen tidak dipesan. Ketika Instruksi dikeluarkan pada waktu yang
sama karena salah satu unit fungsi atau register sedang dipakai maka
unit kontrol menunggu sampai instruksi tersebut dapat dikeluarkan
sebelum melanjutkan instruksi berikutnya.
Skema pendek ini dapat dimodelkan sebagai Jaringan Petri. Untuk
tiap-tiap unit fungsi dan register,kita menghubungkansebuah tempat/ruang.
Jika unit/register bebas, sebuah token akan masuk ketempat tersebut, jika
tidak, tidak ada token yang masuk. Fungsi multi indentikal unit dapat
diindentitikasikan dengan multi token ditempat-rempat tersebut. Gambar
55

3.20 menunjukkan sebuah porsi dari Jaringan Petri yang dapat digunakan
sebagai model eksekusi instruksi menggunakan unit u dan register i, j dan
k. Memodelkan seluruh unit kontrol tentunya akan membuktikan Jaringan
Petri yang besar.

Instruction uses unit u


and registers

i.

i.

and

Ie

Ready to decode
neJtt instruction

Unit u
is free
Register;
is free

Registeri
is free
Register Ie
is free

Gambar 3.15 Bagian dari suatu modelJaringanPetri untuk suatu komputer


dengan beberapa register dan beberapa unit fungsional.
Skema ini menggambarkanbetapa simpelnyametodepengenalanparalel
dan tidak bisa disangkal. Sebagai contoh unit Multi Fungsi jadi, skema ini
dapat menghasilkanjadwal-jadwaldengan paralel maksimum (Keller 1975).
Bagaimanapun juga, ada beberapa skema yang dapat dimodelkan juga.
Skema ini dapat juga dimodelkan sebagai Jaringan Petri (lebih rumit),
jaringan ini mungkin besar sekali.Menyadari bahwa CDC 6600 mempunyai
24 register dibedakan dalam 64 instruksi berbeda. Tiap-tiap instruksi dan
register tripel memerlukan sebuah tempatJruang sesuai dengan unit yang
dioperasikan dengan re.gister i, j, k, kemudian lebih dari 1/2 juta place
transisi akan diperlukan.

56

3.4 PERANGKAT LUNAK KOMPUTER


Selain ke H/W komputer, SIW komputer dapat di modelkan oleh
Jaringan Petri.

3.4.1

Flowchart

Kasus termudah terhadap suatu sistem. dari proses konkruen adalah


suatu sistem yang hanya memiliki tepat 1 proses pertama-tama kita
memeriksa bagaimana satu proses tunggal dapat dinyatakan oleh suatu
Jaringan Petri dan kemudian menggabungkan Jaringan Petri-Jaringan Petri
yang menpresentasikanbeberapaproses yang membentuksistem dari prosesproses konkruen.
Satu proses tungal dijelaskan dengan satu program. Program
merepresentasikan dua aspek terpisah dari proses, yaitu :
Komputasi ; berkenaan dengan operasi-operasilogik dan aritmatik yang
sebenarnya, input dan output dan manipulasi dari lokasi-Iokasimemori.
Kontrol ; berkenaan dengan urutan dari performancenya.
Jaringan Petri dapat dengan baik mempresentasikan kontrol struktur
dari program. Jaringan Petri digunakan untuk memodelkan sederetan
instruksi-instruksi lain aliran informasi serta komputasi tetapi bahan nilainilai informasi yang sesungguhnya.
Model dari suatu sistem adalah abstraksidarri sistem yang di modelkan.
Jadi mengabaikandetail-detailtertentu sebanyak mungkin.Jika semua detail
di modelkan maka model tersebut akan menjadi duplikasi dari sistem yang
di modelkan dan bahan merupakan abstraksi.
Satu alat standar untuk merepresentasikan struktur kontrol dari suatu
program adalahflowchart. Flowchart merepresentasikan aliran kontrol dari
suatu program.

57

Contoh : Suatu program berikut ini


Begin
Input (y1);
Input (y2);
Y3 : = 1;
While y1 > 0
do
begin
If odd (y1)
Then
begin
y3 :

= y3 * y2 ;

y1 : =y1 - 1 ;
end;
y2 :

= y2 * y2 ;

y1 : =y1 - 2 ;
end;
output (y3) ;
end;

58

Flowchart dari program diatas adalah berikut ini.

c/

('

Gambar 3-16. Flowchart dari contoh program

Perhatikan bahwa flowchart diatas tidak menentukan komputasi yang


dilakukan melainkan hanya struktur dari program tersebut. Flowchart ini
tidak dapat diterjemahkan. Tabel berikut menunjukkan bagaimana suatu
interpretasi dapat dipergunakan ke aksi-aksi dari flowchart umuk
menyatakan program contoh.
59

Alesi
a

Interpretasi
Input (y1); Input (y2); y3

=1

y1 > 0 ?

Odd(y1) ?

y3 := y3 * y2 : y1 := y1 - 1

y2 := y2 * y2 ; y1 := y1 / 2

Output (y3)

Setiap program sekuensial dapat dinyatakan sebagai suatu flowchart.


Jadi, dengan menunjukkan bagaimana suatu flowchart dapat
direpresentasikan oleh suatu jaringan petri maka kita dapat melihat
bagaimana merepresentasikan suatu program yang tak dapat diterjemahkan
dengan suatu jaringan petri.
Cara untuk mentranslasikan node-node komputasi dan decision yang
terdapat pada suatu flowchart ke transisi-transisi dan place-place dalam
suatu Jaringan Petri ditunjukkan oleh gambar 3-17.
Translasi yang tepat dari suatu flowchart ke Jaringan Petri adalah
mengganti node-node dari flowchart dengan transisi-transisi pada Jaringan
Petri dan arkus-arkus dari flowchart dengan place-place pada Jaringan
Petri. Setiap arkus dari flowchart direpresentasikan tepat satu place pada
Jaringan Petri yang bersesuaian. Sedangkan node-node dari flowchart
dipresentasikanmenjadi transisi dengan cara yang berbeda, yaitu tergantung
pada tipe dari node : komputasi atau decision.

60

Computation
T

Computation
T

Gambar 3-17. Mentranslasikan node-node komputasi dan decision pada


suatu flowchart ke transisi-transisi dan place-place suatu
jaringan petri.
Gambar 3-18 menggunakan cara translasi diatas terhadap flowchart
gambar 3-17 untuk menghasilkan suatu jariq.gan petri yang ekivalen.

3.4.2 Parallelisme
Parallelisme atau konkurensi dapat dinyatakan dalam beberapa cara.
Perhatikan kasus dua proses yang konkuren. Setiap proses dapat dinyatakan
oleh suatu Jaringan Petri. Jadi penggabungan Jaringan Petri merupakan
penggabungan dari Jaringan Petri untuk masing-masing proses
merepresentasikaneksekusikonkuren dari kedua proses tersebut. Penandaan
awal dari Jaringan Petri gabungan tersebut memiliki 2 token, satu pada
place yang merepresentasikan program counter awal dari suatu proses. Hal
ini menimbulkan suatu paralellisme yang tak dapat dinyatakan dalam suatu
flowchart, tetapi bukan merupakan sesuatu yang bermanfaat.
61

b.F

Gambar 3-18. Representasi jaringan petri yang diturunkan dari flowchart


gambar 3-1.7
Pendekatan lainnya adalah memperhatikan bagaimana parallelisme
secara normal diperkenalkan pada suatu proses yang berada pada suatu
sistem komputer. Beberapa usulan telah diajukan. Salah satu yang termudah
adalah operasi FORK dan JOIN. Operasi FORK j dieksekusi pada lokasi
1 mengakibatkan proses terakhir berlanjut pada lokasi 1+1,dan satu proses
barn yang sedang dibuat dengan eksekusi yang berawal pada lokasi j.
Operasi JOIN akan menggabungkan kembali dua proses menjadi satu.
62

Operasi operasi ini dapat dimodelkan pada suatu jaringan petri yang
ditunjukkan pada gambar 3-19.
Usulan lain untuk memperkenalkanparallelisme adalah strukturkontrol
parbegin dan parend. Strukturkontrol ini diusulkan oleh djikstra dan bentuk
umumnya adalah parbegin SI;S2;S3; ;Sn parend, dimana Sj adalah
statement-statemen. Arti dari struktur parbegin/parend adalah untuk
mengeksekusi setiap statemen, SI,S2,S3, Sn secara paralel. Bentuk ini
dapat direprsentasikan dalam suatu jaringan petri yang ditunjukkan pada
gambar 3-20.

(a)

(b)

Gambar 3-19. Pemodelan jaringan petri dari operasi-operasi FORK dan


JOIN. (a) FORK (dieksekusi pada lkasi I, membuat dua
proses bam pada lokasij dan k). (b) JOIN, (menggabungkan
kedua proses tersebut yang berakhir pada lokasi I dan j
menjadi satu proses yang berlanjut pada lokasi k)
63

Gambar 3-20. Pemodelan jaringan petri dari parbegin S\;S2;S3; ;Sn


parend. Setiapkotak merepresentasikanrepresentasijaringan
petri dari statement-statemenS\'S2,s3' 'Sn.Gambar inijuga
mengilustrasikansifat hirarki dari pemodelanjaringan petri.

3.4.3 Sinkronisai
Paralellisme yang telah dijelaskan sebelumnya sangat berguna untuk
memecahkan suatu masalah hanya jika komponen dari proses dapat saling
bekerja sarna dalam menyelesaikan masalah tersebut. Kerjasama yang
dimaksud adalah pemakaian secara bersama informasi dan sumber diantara
proses.,proses tersebut. Hal ini hams dikontrol untuk menjamin operasi
yang benar dari keseluruhan sistem. Beberapa masalah sinkronisasi
dikemukakan oleh Dijkstra, yaitu : masalah mutual exclusion, masalah
Producer/Consumer, masalah The Dining Philosophers serta masalah
ReaderslWriters. Semua masalah diatas merupakan masalah klasik dalam
64

bidang sinkronisasi. Walaupun Jaringan Petri merupakan suatu skema


pemodelan, dan bukan merupakan suatu mekanisme sinkronisasi, Jaringan
Petri harus dapat secara tepat memodelkan mekanisme sinkronisasitersebut
dan menyelesaikan masalah-masalah ini.

3.4.4 Masalah mutual Exclusion.


Asumsikan bahwa beberapa proses menggunakan secara bersama suatu
variabel, record, file, atau item data lainnya. Item data yang digunakan
secara bersama ini dapat digunakan dalam berbagai cara oleh proses-proses
tetapi secara kasar pemakaian ini dapat digolongkan sebagai kebutuhan
untuk membaca nilai dari item data atau menulis suatu nilai yang baru.
Kedua operasi ini sering merupakan operasi-operasi primitif. Ini berarti
bahwa untuk meremajakan item data yang dipergunakan secara bersama
maka suatu proses pertama-tama harus membaca nilai yang lama, kemudian
menghitung nilai yang baru dan terakhir menulis nilai yang baru tersebut
ketempatnya semula. Suatu masalah dapat terjadi jika dua proses mencoba
untuk mengeksekusi barisan instruksi berikut ini pada waktu yang
bersamaan. Barisan instruksi berikut mungkin terjadi :
1.
2.
3.
4.
5.
6.

Proses I membaca nilai x dari objek yang digunakan bersama


Proses II membaca nilai x dari objek yang digunakan bersama
Proses I menghitung suatu nilai yang diremajakan x' = f(x)
Proses II menghitung suatu nilai yang diremajakan x" = g(x)
Proses I menulis x' ke objek yang digunakan bersama
proses II menulis x" ke objek yang digunakanbersama dan menghapus
nilai x'

Efek komputasi dari proses pertama telah hilang dan nilai dari objek
yang digunakan bersama sekarang adalah g(x), sementara nilainya
seharusnya adalah g(f(x atau f(g(x. Bayangkan pengaruhnya jika g(x)
adalah "penarikan $1000 ke account x" serta proses I dan II adalah bak
tellers.
Untuk mencegah masalah diatas maka perlu untuk menyediakan suatu
mekanisme untuk mutual exclusion. Mutual Exclusion adalah suatu teknik
65

pendefinisian kode entry dan exit sehingga paling banyak satu proses
dapat mengakses suatu objek data yang digunakan bersama pada suatu
saat. Kode yang mengakses objek yang digunakan bersama tersebut dan
membutuhkan perlindungan dari campur tangan proses lain disebut seksi
kritis.
Idenya adalah bila suatu proses akan mengeksekusi seksi kritisnya
maka pertama-tama proses tersebutharns menungguhingga tidak ada proses
lain yang sedang mengeksekusi seksi krisisnya. Kemudian proses tersebut
mengunci akses ke seksi kritis untuk mencegah proses lain memasuki
seksi kritisnya. Proses tersebut memasuki seksi kritis, mengeksekusinya
dan meninggalkan seksi kritis tersebut dengan membuka kunci agar
membolehkan proses-proses lain mengaksesnya.
Masalah ini dapat dipecahkan dengan suatujaringan petri, seperti yang
ditunjukkan pada gambar 3-21. Place m merepresentasikan ijin untuk
memasuki seksi kritis. Agar suatu proses dapa masuk ke seksi kritis, maka
proses tersebut harns memiliki satu token di pi atau P2yang mensinyalkan
bahwa proses tersebut berkeinginan untuk masuk. Jika kedua proses ingin
masuk secara bersamaan maka transisi-transisitl dan t2berada dalam situasi
konflik, dan hanya satu dari mereka yangdapat ditembak.

66

Critical
section

Critic:ll
section

..
Process I

Process2

Gambar 3-21. Masalah mutual exclusion. Akses ke seksi-seksi kritis dari


kedua proses terkendali sehingga keduanya tidak dapat
secara bersamaan mengeksekusi seksi kritisoya.

3.4.5

Masalah Producer/Consumer

Masalah Producer/Consumer juga melibatkan suatu objek data yang


dipakai bersama. Tapi pada problem ini objek yang digunakan secara
bersama adalah suatu buffer. Proses produser menciptakan objek-objek
yang kemudian di letakkan di buffer, konsumen menunggu sampai suatu
obyek telah dileta~kan di buffer, mengambil, dan akhirnya
mengkonsumsinya. Hal ini dapat dimodelkan seperti yang ditunjukkan
pada gambar 3-22. Place B merepresentasikan Quffer; setiap token
merepresentasikan suatu item yang telah diproduksi tetapi belum di
konsumsi.

67

Variasi dari masalah ini adalah masalah multiple producer/consumer.


Pada variasi ini, beberapa producer menghasilkan item-item yang
ditempatkan pada suatu buffer untuk beberapa konsumer. Gambar 3-23
merupakan suatu solusi atas masalah ini

Producer

Consumer

Gambar 3-22. Masalah Producer/Consumeryang dimodelkansebagaisuatu


Jaringan Petri.

68

.r

".

Produce

Producer

Consumer

dambar 3-23. Masalah multiple Producer/Consumer. Terdapat s producer


dan t Consumer untuk s dan t yang tepat.
Variasi yang lain adalah masalah producer/consumer dengan buffer
terbatas. Pada versi ini, dinyatakan bahwa buffer antara producer dan
consumer seolah-olah terbata, yaitu hanya tersedia n posisi untuk itemitem. Jadi producer tidak dapat selalu menghasilkan sesuai dengan
keinginannya, tetapi harns menunggu jika consumer lambat dan buffer
telah terisi penuh. Gambar 3-24 merupakan suatu solusi dari masalah ini.

69

Produce

?
Producer

Consumer

Gambar 3-24. Masalah Producer/Consumer dengan buffer yang terbatas.


Buffer, direpresentasikanoleh place-placeB dan B', terbatas
paling banyak n item.
3.4.6 Masalah Dining Philosophers
Problem ini diusulkan oleh Dijsktra (1968) dan berkenaan dengan 5
philosopher tentang kemungkinan berfikir dan makan. Para philosopher
telah duduk pada meja bundar beri,sibanyak makanan Cina. Diantara tiap
philosopher terdapat sebuah sumpit. Padahal untuk makan diperlukan 2
sumpit. Masalahnya, bila semua philosopher hams mengambil sumpit di
kiri dan kanan, maka tangan kiri pertama-tama akan mengambil sumpit
kemudian menunggu untuk sumpit di kanan, mereka akan menunggu
selamanya dan kelaparan. Place-place Cl,C2...CSmewakili sumpit dan sejak
initialnya bebas, sebuah token terletak di dalam setiap tanda inisial. Tiap
philosopher diwakili oleh 2 place Mj dan Ej yang menggambarkan
perencanaan dan cara makan secara berurutan. Untuk seorang philosopher
untuk maju darl bagian perencanaan ke bagian makanan, kedua sumpit
hams tersedia.
70

Garnbar 3-25. Masalah dining philosopher. Setiap philosopher


dimodelkan oleh dua place, sedang berfikir adalah Mj dan
sedang makan Er

3.4.7 Masalah Reader/Writer


Ada beberapa masalah reader / writer yang berlainan, tetapi pada
dasarnya mempunyai struktur yang sarna. Prosesnya ada 2 tipe, yaitu:
Reader dan Writers. Semua proses dibagi menjadi Common file, variable
dan obyek data. Proses reader tidak pernah merubah obyek ketika proses
writer melakukan perubahan. Proses penulisan demikian satu sarna lain
harns mengeluarkan semua proses reader dlli1writer lainnya, tapi proses
71

reader yang multiple dapat mengakses data yang terbagi secara serempak.
Masalahnya adalah memberi definisi sebuah struktur kontrol yang tidak
deadlock atau memperbolehkan pelanggaran kriteria mutual exclusion.
Gambar 3.26 mengilustrasikan suatu solusi bila jumlah proses reader
dibatasi n. pada suatu sistem dimana jumlah proses reader tidak terbatas
maka hanya n reader dapat membaca pada satu saat.

Readers

Writers

Gambar 3-26. Masalah ReaderlWriterbila jumlah reader dibatasi sejumlah


n. Pada awalnya terdapat sejumlah s reader dan t writer.

72

Gambar 3-27. Permodelan operasi-operasi


semapore S.

P dan V pada suatu

Tiap-tiap semaphore dimodelkan oleh place, nomer pada token pada


place menunjukkan nilai dari semaphore. Sebuah operasi P menggunakan
semaphore place sebagai input dan operasi V sebagm,outputnya.
Keuntungan dari kemampuan ini untuk memodelkan operasi-operasi P
dan V adalah banyaknya sistem yang ditulis atau dirancang dengan
mnggunakan operasi-operasiP dan V. Sebagaicontoh, sistem operasi Venus
menyediakan operasi-operasi P dan V sebagai basis mekanisme omunikasi
antar proses. Sistem ini kemudian dimodelkan sebagai jaringan-jaringan
petri.

73

3.5 SISTEM-5ISTEM LAINNYA


Diagram PERT sudah lama dipakai dalam perencanaan proyek-proyek
yang besar. Diagram PERT adalah presentasi dalam bentuk grafik dari
hubungan antara beberapa kegiatan yang bermacam-macamyang membuat
suatu proyek besar. Proyek terdiri dari sejumlah kegiatan,beberapa kegiatan
harns lengkap sebelum kegiatan lain dimulai. Di penjumlahan waktu
berhubungan dengan salah satu kegiatan yang menunjukan jumlah waktu
yang diambil (kadang-kadang tiga macam waktu - waktu terburuk, waktu
rata-rata, dan waktu terbaik berhubungan dengan salah satu kegiatan).
Kegiatan - kegi~tan dipresentasikan secara grafik oleh node, busur
dipergunakan untuk menghubungkan kegiatan dari node-node yang
memperlihatkan syarat-syarat yang hams didahulukan.
Diagram PERT memperlihatkan tipe yang sama dari Jaringan Petri.
Kita dapat dengan mudah mengubah diagram PERT ke Jaringan Petri.
Slah sati kegiatan dari diagram PERT dipresentasikan oleh place, dimana
syarat-syaratnyadipresentasikanoleh transisi. Diagram PERT (gambar 3.28)
dapat diubah ke Jaringan Petri yang ditunjukkan pada gambar 3-29.
Pada awalnya,.aplikasi dari Jaringan Petri adalah sebagai alat untuk
mengoptimalkan kode pada kompiler fortran CDC 6600. Pendekatan yang
diberikan oleh Shapiro dan Saint (1970) adalah memodelkan program
FORTRAN sebagai Jaringan Petri, sesuai dengan cara yang terdapat pada
model flowchart pada bagian 3.4.1. Kemudian statement-statement dari
program secara satu persatu diperiksa untuk mnentukan kendala-kendala
preseden minimal diantara statement-statementtersebut, yang mengijinkan
Jaringan Petri untuk meletakkan beberapa barisan kendala-kendala buatan
dari program tersebutKendala-kendalabuatan ini membuatpada pemrogram
FORTRAN hams dapat mengekspresikanprogram sesuai dengan pemyataan
yang berurutan, meskipun hanya sebagianperintah yang diperlukan.Sebagai
contoh, perhatikan tiga statement berikut ini:
lOx=x+l

74

20

y = y +

30

z = x + y

Key:

Excavate

Job
IdentiCic~

Job time
requiRment

r;;J

Storm
dr:ains

Rouch
plumbinc

Walksand
Jandscapinl
Finish
pJumbin,

P~int

Finish
cJcctric~1
work

Gambar 3-28. Diagram Pert pembuatan suatu rumah.


75

Gambar 3-29. Representasi jaringan petri dari diagram Pert gambar 3-28.
76

Statemen-statemen 10 dan 20 ditulis sebagai statemen 10 sebelum


statemen 20, tetapi kendala ini tidaklah perIu. Statement-statement 10 dan
20 dapat dieksekusi dalam urutan sembarang dengan tidak mempengaruhi
program. Namun, statement 30 dibatasi untuk mengikuti statement 10 dan
20. Aliran kontrol juga harus diperhatikan pada dalam menstatementkan
ulang kebutuhan-kebutuhanpengurutan. Analisa ini merupakan analisa dari
kondisi Bernstein's untuk menjamin determinacy. Hasil dari analisa ini
adalah sebuah Jaringan Petri yang menampilkan program dengan
pembatasan rangkaian yang minimal. Masalahnya kini adalah untuk
mengkompilasi program ini. Hal ini membutuhkan pemetaan variable ke
dalam bentuk register-register dan instruksi-intruksi permintaan untuk
menghsilkan suatu jumlah dari rangkaian perintah instruksi bahasa mesin.
6600 adalah suatuperkalianregister,perkaliandari unit fungsionalcomputer,
seperti yang dijelaskan dalam bagian 3.3.3. Sejak unit fungsional dapat
dieksekusi secara paralel pada beberapa instruksi. Hal ini sangat penting
untuk menggerakkan instruksi guna memaksimalkan cara paralel dalam
suatu eksekusi pada fungsional unit. Hal ini juga berakibat pada penugasan
variableke register.Model JaringanPetri dari programmenampilkanbatasan
dari program yang digabungkandengan modelJaringanPetri unit pengontrol
CDC 6600, menampilkan batasan yang ditanggung oleh perangkat keras.
Jaringan gabungan ini akan menjelaskan semua instruksi rangkaian yang
mungkin dapat diksekusipada perangkatkeras dan menampilkanalgoritrna
program. Jaringan ini akan dieksekusi untuk menghasilkan beberapa
rangkaian instruksi. Dua atau lebih rangkaian diciptakan ketika 2 atau
lebih transisi secara bersamaan siap. Penembakan sebuah transisi akan
mnghasilkan satu rangkaian, penembakan yang lainnya menghasilkan
rangkaian yang lain. Sebagai contoh, Jaringan Petri pada gambar 3.30
menggambarkan rangkaian abcdef, bacdef, dan bacedf. Seperti pada
rangkaian yang dihasilkan,jumlah dari waktu pengeksekusi untuk masingmaing diolah, dan pada rangkaian yang tercepat akan digerakan dengan
kompiler untuk kemudian dieksekusi yang sebenamya.

77

Gambar 3-30. Jaringan Petri yang merepresentasikan beberapa barisan


eksekusi instruksi
Sistem kimia adalah contoh lain dari sistem yang dapat dimodelkan
dengan Jaringan Petri. Persamaan kimia dimodelkan dengan transisi,
sedangkan reaktan dimodelkan dengan place, Nomor token disuatu place
menerangkan jumlah reaktan dalam sistem.
Contoh : Jaringan Petri dalam gambar 3.31 menggambarkan 2
persamaan kimia berikut ini :
H2C204 ~ 2C02 + 2H++ 2e
2e + 2H+ + H202 ~ 2H20

Gambar 3-31. Suatu jaringan petri yang menyatakan reduksi-oksidasi dari asam
axalic dan idrogen poroksida menjadi karbon dioksida dan air.
78

Reaksi katalis juga dapat dipresentasikan. Kombinasi Hidrogen dan


etilen ke bentuk etana (H2 + C2~) hanya terjadi jika terdapat Platinum.
Hal ini digambarkan pada gambar 3.32.

Gambar 3-32. Produksi ethane dari hidrogen dan ethylane


Sistem yang lain yang dapat dimodelkan oleh Jaringan Petri meliputi
barisan Jaringan kerja (dimana barisan ini dimisalkan oleh place dan
pekerjaan oleh token), model otak (garis neuron dimodelkan oleh garis
transisi), keseimbangan kalkulus [Genrich 1975; Genrich K Lauconbach
1978] (ini mewakilkan literatur dan kombinasi transisi mereka untuk
mengabungkan klausa dalam bentuk normal) dan banyak lagi lainnya.
Panjang dibatasi oleh waktu dan imajinasi dari pemodel itu sendiri,
dan tidak dibatasi oleh model Jaringan petri. Walaupun begitu, kita melihat
paling sedikit satu contoh (masalah penulis I pembaca) dimana tidak dapat
dimodelkan ke dalam Jaringan Petri. Dan, walaupun model dari Jaringan
Petri dapat menolong menjelaskan sebuah sistem, kita perlu juga
menggunakanalat-alatanalisa untuk mengujiJaringan Petri dan menentukan
kepemilikan Jaringan Petri tersebut. Ini akan membawa kita ke bagian
berikutnya, dimana kita menampilkan metoda analis untuk Jaringan Petri.

79

Anda mungkin juga menyukai