Anda di halaman 1dari 21

Translating

Disusun Untuk Memenuhi Salah Satu Mata Kuliah Sistem Paralel Dan Terdistribusi

Anggota Kelompok :

Dimas Nur Arif ( A2.1400157 )


Rezky A (A2.1400090 )
Diena R ( A2.1400043 )
Rizar Naufal (A2.1400097)
Gugun H (A2.1400056 )

Sekolah Tinggi Manajemen Informatika dan Komputer (STMIK)

SUMEDANG

2016

1|Sistem Paralel dan Terdistribusi


Membuat Sistem Paralel

Dengan Aplikasi PHP

Andrey Hristov

100 hari – Proyek Perangkat Lunak

Konferensi PHP Internasional

10 November 2004

2|Sistem Paralel dan Terdistribusi


Tentang

● BSc di bidang Teknik Komputer

● Mahasiswa di University of Applied Sciences, Stuttgart, Jerman

● Berlatih pemrograman web sejak tahun 2000

● Penulis pecl / statistik

● Bekerja untuk 100 Hari, Jerman

3|Sistem Paralel dan Terdistribusi


Survey

Sejauh mana pengetahuan Anda tentang IPC dengan definisi shared memory, semaphores,

message queues?

Sejauh mana Anda bekerja dengan menggunakan php?

4|Sistem Paralel dan Terdistribusi


Agenda

 Terminologi

 Semaphores

 Shared memori

 Message queues

 Signal, forking

 Php API

 Procedural examples of IPC primitives

 OO aproach to IPC

 Use cases

5|Sistem Paralel dan Terdistribusi


Proses dan Threads

 Proses adalah sebuah entitas yang berada dalam memori yang memiliki sendiri

tumpukan, tumpukan dan segmen kode. Proses bukan program. Yang terakhir adalah

file pada disk.

 Proses yang dijadwalkan untuk dieksekusi oleh OS. selalu di salah satu (biasanya) 3

tahap: siap, berjalan, diblokir.

 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

untuk menggunakan timeslice suatu sampai proses menjadi "siap".

6|Sistem Paralel dan Terdistribusi


Kebuntuan, Kondisi Ras,

Reentrancy dan Bagian Kritis.

 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

kebuntuan ini tak ada habisnya. algoritma mencegah ada.

 Bagian Kritis sepotong kode yang harus dieksekusi oleh hanya satu thread (proses)

pada suatu waktu. Hal ini dilakukan dengan primitif sinkronisasi.

 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

mengakses data yang tidak konsisten.

7|Sistem Paralel dan Terdistribusi


Semaphore

 Diciptakan oleh E. Dijkstra. P (s) dan V (s) operasi

 Digunakan untuk sinkronisasi

 Semaphore Binary juga disebut mutexes atau kunci.

 Non-biner Semaphore

8|Sistem Paralel dan Terdistribusi


Berbagi Memori

 Segmen memori yang tersedia untuk lebih dari satu proses.

 Proses peta virtual mereka ruang untuk memori bersama segmen.

 Dalam Sistem V implementasi yang akses permision berdasarkan.

 Sinkronisasi diperlukan dalam kasus campuran membaca / menulis. Mutex harus

digunakan. Ingat Hukum Murphy: "Jika sesuatu bisa salah, maka salah"

9|Sistem Paralel dan Terdistribusi


Pesan Antrian

 Cara sederhana data exchange: mengirim pesan.

 Pesan IPC memungkinkan mengirim dan menerima di Agar sewenang-wenang - pada

Sebaliknya membaca dari aliran. Satu dapat mengambil elemen dari antrian bahkan

jika itu bukan yang pertama.

 Pemblokiran dan non-blocking receival.

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

Multithreading dengan PHP?

 Thread yang baik karena mereka lebih ringan dari proses dan orang dapat dengan

mudah berbagi memori. Sayangnya, PHP tidak threads- siap (tidak ditulis dengan

mereka dalam pikiran).

 Di sisi lain 2 atau lebih proses dapat bekerja secara paralel dan sinkronisasi dan

dikomunikasikan dengan menggunakan IPC primitif.

 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)

 ext / sysvshm --enable-sysvshm (> = 3.0.6)

 ext / sysvsem --enable-sysvsem (> = 3.0.6)

 ext / sysvmsg --enable-sysvmsg (> = 4.3.0)

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

 pcntl_alarm () Menciptakan timer (SIGALRM). Hanya satu per proses.

 pcntl_fork () Forks penafsir. 2 script berjalan secara independen.

 pcntl_exec () Menjalankan program eksternal dalam proses saat ini.

 pcntl_getpriority () Mengembalikan prioritas dari suatu proses (arus atau lainnya).

 pcntl_setpriority () Mengatur prioritas dari suatu proses (arus atau lainnya).

 pcntl_signal () Menginstall penangan sinyal.

 pcntl_wait () Menunggu atau mengembalikan status dan pid anak.

 pcntl_waitpid () suka pcntl_wait () tapi untuk anak tertentu

 pcntl_wexitstatus () Mengembalikan kode kembali, seorang anak SIGTERM, dari

status

 pnctl_wifexited () Mengembalikan TRUE jika kode status berhasil keluar.

 pcntl_wifsignaled () Mengembalikan TRUE jika statusnya adalah karena keluar

disebabkan oleh sinyal.

 pcntl_wifstopped () Mengembalikan TRUE jika anak saat ini dihentikan.

 pcntl_wstopsig () Mengembalikan sinyal yang menyebabkan anak untuk berhenti.

 pcntl_wtermsig () Mengembalikan sinyal yang menyebabkan anak untuk mengakhiri.

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

 Ditulis oleh Ilia Alshanetsky & Slava Poliakov

 Bekerja pada Win32 dan * nix

 Interoperabilitas yang lebih baik dengan dunia non-PHP.

 Sejak PHP 4.0.3. Saat penamaan ini sejak 4.0.4.

 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

Memori Dengan Cara OO

 Cara prosedural yang membuat kode yang lebih besar dan lebih rawan kesalahan.

 Dengan OO semaphore, satu hanya memiliki P dan V operasi terlihat programmer:

o Memperoleh ()

o Release ().

 Dengan OO shared memori, dengan menggunakan :

o GetVar ()

o PutVar ()

 Parameter berlalu selama Instansiasi

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)

 Kurang ketelitian programmer.

 Masih cukup kuat karena semua hal yang dapat dilakukan dengan cara prosedural

yang menggunakan antrian memori OO.

 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,

melewati data ke thread berikutnya dalam pipa. "[PTProg]

 Semua prosesor, saat ini menggunakan pipelining untuk mengeksekusi instruksi.

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

 MSGRPC adalah contoh penggunaan antrian memori.

 Ada 3 bagian dalam sistem:

o Klien

o Server

o Name Service (juga server)

 Langkah (client):

o Buat objek - Pabrik

o Lookup Implisit dibuat

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

dimasukkan ke dalam berbagi memori pada beban skrip pertama.

 Dapatkan konfigurasi dari memori bersama pada setiap permintaan berikutnya.

Catatan: deserialization membutuhkan beberapa waktu.

 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:

 Caching dalam memori bersama dengan semaphore penguncian sekitar ~ 4x lebih

cepat dari parsing pada setiap pelaksanaan.

 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

Anda mungkin juga menyukai