Membuat Sistem Paralel II
Membuat Sistem Paralel II
Disusun Untuk Memenuhi Salah Satu Mata Kuliah Sistem Paralel Dan Terdistribusi
Anggota Kelompok :
SUMEDANG
2016
Andrey Hristov
10 November 2004
Sejauh mana pengetahuan Anda tentang IPC dengan definisi shared memory, semaphores,
message queues?
Terminologi
Semaphores
Shared memori
Message queues
Signal, forking
Php API
OO aproach to IPC
Use cases
Proses adalah sebuah entitas yang berada dalam memori yang memiliki sendiri
tumpukan, tumpukan dan segmen kode. Proses bukan program. Yang terakhir adalah
Proses yang dijadwalkan untuk dieksekusi oleh OS. selalu di salah satu (biasanya) 3
Thread kadang-kadang disebut proses ringan (LWP). Mereka hidup di dalam suatu
proses tunggal.
Pelaksanaan Threads adalah baik di tingkat pengguna atau dalam kernel dari OS
(kernel monolitik).
Masalah dengan kernel tidak menyadari threads yang menghalangi dari seluruh proses
ketika thread sedang diblokir. Tidak ada yang lain thread akan memiliki kesempatan
Deadlock adalah dua keadaan atau lebih proses menunggu selamanya untuk sumber
daya tertentu. Kedua proses terus kunci tetapi hanya total ammount kunci sudah
cukup untuk mengakses sumber daya. Jika kedua proses tidak melepaskan kunci maka
Bagian Kritis sepotong kode yang harus dieksekusi oleh hanya satu thread (proses)
Kode bagian adalah reentrant jika beberapa thread dapat melaksanakannya di waktu
yang sama. Jika kode ini tidak ditulis dengan reentrancy dalam pikiran kondisi ras
mungkin muncul.
Beberapa operasi harus dieksekusi atom. Jika seperti operasi tidak atom ditulis, OS
scheduler bisa pecah eksekusi thread di tengah dan mulai satu sama lain, yang
Non-biner Semaphore
digunakan. Ingat Hukum Murphy: "Jika sesuatu bisa salah, maka salah"
Sebaliknya membaca dari aliran. Satu dapat mengambil elemen dari antrian bahkan
10 | S i s t e m P a r a l e l d a n T e r d i s t r i b u s i
Multiprocessing atau
Thread yang baik karena mereka lebih ringan dari proses dan orang dapat dengan
mudah berbagi memori. Sayangnya, PHP tidak threads- siap (tidak ditulis dengan
Di sisi lain 2 atau lebih proses dapat bekerja secara paralel dan sinkronisasi dan
Ekstensi Proses kontrol (--enable-pcntl) tersedia sejak 4.1.0 (* nix). Hal ini
memberikan kemungkinan untuk membuat proses baru keluar dari interpreter PHP
saat ini atau yang disebut forking atau hal ikan bertelur. C programmer yang akrab
dengan konsep-konsep ini. Proses ini bercabang memiliki salinan memori Proses yang
melakukan fork. Semua file yang terbuka masih terbuka termasuk stdin, stdout dan
stderr. Masih mereka 2 proses yang berbeda dengan daerah memori independen.
11 | S i s t e m P a r a l e l d a n T e r d i s t r i b u s i
PHP API untuk Sistem V IPC (1)
12 | S i s t e m P a r a l e l d a n T e r d i s t r i b u s i
PHP API untuk Sistem V IPC (2)
shm_attach ()
shm_detach ()
shm_get_var ()
shm_put_var ()
shm_remove_var ()
shm_remove ()
sem_acquire ()
sem_get ()
sem_release ()
sem_remove ()
msg_get_queue ()
msg_receive ()
msg_remove_queue ()
msg_send ()
msg_set_queue ()
msg_stat_queue ()
13 | S i s t e m P a r a l e l d a n T e r d i s t r i b u s i
Proses Perpanjangan Kontrol API
status
14 | S i s t e m P a r a l e l d a n T e r d i s t r i b u s i
EXT / Shmop
shmop_open ()
shmop_close ()
shmop_delete ()
shmop_read ()
shmop_write ()
shmop_size ()
15 | S i s t e m P a r a l e l d a n T e r d i s t r i b u s i
Menggunakan Semaphore / Bersama
Cara prosedural yang membuat kode yang lebih besar dan lebih rawan kesalahan.
o Memperoleh ()
o Release ().
o GetVar ()
o PutVar ()
16 | S i s t e m P a r a l e l d a n T e r d i s t r i b u s i
Antrian Memori OO (1)
Masih cukup kuat karena semua hal yang dapat dilakukan dengan cara prosedural
Kurang lebih terstruktur kode yang lebih mudah untuk membaca dan rawan terhadap
kesalahan.
17 | S i s t e m P a r a l e l d a n T e r d i s t r i b u s i
Pipa Saluran
"Dalam pipelining, aliran" data barang "diproses serial oleh memerintahkan set
benang. Setiap thread melakukan operasi tertentu pada setiap item dalam urut,
Semakin dalam pipa lebih baik karena lebih microinstructions adalah dieksekusi
secara paralel.
18 | S i s t e m P a r a l e l d a n T e r d i s t r i b u s i
RPC Berbasis Pesan
o Klien
o Server
Langkah (client):
o Gunakan objek
Langkah (server):
o Membuat server
o Tambahkan servant
o Pendaftaran
19 | S i s t e m P a r a l e l d a n T e r d i s t r i b u s i
Gunakan Kasus : Data Persisten
Baik untuk kasus-kasus ketika penggalian data dari sumber yang berbeda
membutuhkan waktu atau tembolok akses waktu harus rendah (tidak ada di sk
caching).
Contoh: pra-pa brsing file konfigurasi XML. File config jarang perubahan ->
Jika Anda cache string maka lebih baik menggunakan ext / shmop karena tidak cerita
bersambung konten
20 | S i s t e m P a r a l e l d a n T e r d i s t r i b u s i
Gunakan Kasus: XML contoh:
Pra-caching dan tidak ada penguncian pada tahap kemudian memberikan lebih ~
kinerja 2x meningkatkan.
Jumlah speed-up diukur adalah sampai 10x – ini menghemat menit / jam waktu CPU
pada mesin.
21 | S i s t e m P a r a l e l d a n T e r d i s t r i b u s i