3. proses - gunadarma

42
3. PROSES

Upload: others

Post on 25-Apr-2022

7 views

Category:

Documents


0 download

TRANSCRIPT

Page 1: 3. PROSES - Gunadarma

3. PROSES

Page 2: 3. PROSES - Gunadarma

Definisi Proses :

• Secara tidak langsung, proses merupakan program yang sedangdieksekusi.

• Silberschatz : suatu proses adalah lebih dari sebuah kodeprogram, yang terkadang disebut text section.

• Proses juga mencakup program counter, yaitu sebuah stack untukmenyimpan alamat dari instruksi yang akan dieksekusi selanjutnyadan register.

PROSES

Page 3: 3. PROSES - Gunadarma

• Sebuah proses pada umumnya juga memiliki sebuah stack yangberisikan data yang dibutuhkan selama proses dieksekusiseperti parameter metoda, alamat return dan variabel lokal, dansebuah data section yang menyimpan variabel global.

• Tanenbaum : proses adalah sebuah program yang dieksekusiyang mencakup program counter, register, dan variabel didalamnya.

• Program bukan sebuah proses.Program adalah satu entitas pasif; seperti isi dari sebuah berkasyang disimpan pada harddisk/flashdisk.Proses dalam suatu entitas aktif, dengan sebuah programcounter yang menyimpan alamat instruksi selanjutnya yang akandieksekusi dan seperangkat sumber daya (resource) yangdibutuhkan agar sebuah proses dapat dieksekusi.

Page 4: 3. PROSES - Gunadarma

Status Proses :

Bila sebuah proses dieksekusi, maka statusnya akan berubah-ubah. Status dari sebuah proses mencerminkan aktifitas atau keadaandari proses itu sendiri.

Status-status yang dimiliki sebuah proses (Tanenbaum) :• Running : pada saat menggunakan CPU pada suatu waktu.

• Ready : proses diberhentikan sementara karena menungguproses lain untuk dieksekusi.

• Blocked : tidak dijalankan sampai event dari luar, yang berhubungan dengan proses tersebut terjadi.

Page 5: 3. PROSES - Gunadarma

Sedangkan menurut Silberschatz, terdapat lima macam jenisstatus yang dimiliki oleh suatu proses :• New : status yang dimiliki pada saat proses baru saja dibuat.

• Running : status yang dimiliki pada saat instruksi-instruksi darisebuah proses dieksekusi.

• Waiting : status yang dimiliki pada saat proses menunggu suatuevent (contohnya: proses I/O).

• Ready : status yang dimiliki pada saat proses siap untukdieksekusi oleh prosesor.

• Terminated : status yang dimiliki pada saat proses telah selesaidieksekusi.

Page 6: 3. PROSES - Gunadarma

• hanya satu proses yang dapat berjalan pada prosesor manapunpada satu waktu. Namun, banyak proses yang dapat berstatusready atau waiting.

• Keadaan diagram yang berkaitan dengan keadaan tersebutdijelaskan pada gambar 3.1

Gambar3.1: Status proses

Page 7: 3. PROSES - Gunadarma

3 kemungkinan bila sebuah proses memiliki status running :

• Jika program telah selesai dieksekusi maka status dari proses

tersebut akan berubah menjadi Terminated.

• Jika waktu yang disediakan oleh OS untuk proses tersebut sudah

habis maka akan terjadi interrupt dan proses tersebut kini

berstatus Ready.

• Jika suatu event terjadi pada saat proses dieksekusi (seperti ada

request I/O) maka proses tersebut akan menunggu event tersebut

selesai dan proses berstatus Waiting.

Page 8: 3. PROSES - Gunadarma

Process Control Block

Tiap proses digambarkan dalam sistem operasi oleh sebuahprocess control block (PCB), juga disebut control block.

Gambar 3.2 : Process Control Block

Page 9: 3. PROSES - Gunadarma

PCB berisikan banyak bagian dari informasi yang berhubungandengan sebuah proses yang spesifik, termasuk hal-hal di bawah ini :

• Status proses : status mungkin, new, ready, running, waiting, halted, dan juga banyak lagi.

• Program counter : suatu stack yang berisi alamat dari instruksiselanjutnya untuk dieksekusi untuk proses ini.

• CPU register : Register bervariasi dalam jumlah dan jenis, tergantung pada rancangan komputer.

Page 10: 3. PROSES - Gunadarma

• Informasi manajemen memori : Informasi ini dapat termasuksuatu informasi sebagai nilai dari dasar dan batas register, tabel page/halaman, atau tabel segmen tergantung padasistem memori yang digunakan oleh sistem operasi.

• Informasi pencatatan : Informasi ini termasuk jumlah dari CPU dan waktu riil yang digunakan, batas waktu, jumlah akun, jumlahjob atau proses, dll.

• Informasi status I/O : Informasi termasuk daftar dari perangkat I/O yang digunakan pada proses ini, suatu daftar berkas-berkasyang sedang diakses dan banyak lagi.

• PCB hanya berfungsi sebagai tempat penyimpanan informasiyang dapat bervariasi dari proses yang satu dengan yang lain

Page 11: 3. PROSES - Gunadarma

THREAD

Apa itu Thread ?

• Thread merupakan unit dasar dari penggunaan CPU, yang terdiridari Thread_ID, program counter, register set, dan stack.

• Thread juga sering disebut lightweight process.

• Sebuah proses tradisional atau heavyweight process mempunyaithread tunggal yang berfungsi sebagai pengendali.

Page 12: 3. PROSES - Gunadarma

• Perbedaan antara proses dengan thread tunggal dengan prosesdengan thread yang banyak adalah proses dengan thread yang banyak dapat mengerjakan lebih dari satu tugas pada satu satuanwaktu.

• Sebuah aplikasi biasanya diimplementasi sebagai proses yang terpisah dengan beberapa thread yang berfungsi sebagaipengendali.

Contohnya sebuah web browser mempunyai thread untukmenampilkan gambar atau tulisan sedangkan thread yang lain berfungsi sebagai penerima data dari network.

Page 13: 3. PROSES - Gunadarma

Gambar 3.4: Thread

Page 14: 3. PROSES - Gunadarma

Keuntungan Thread

Keuntungan dari program yang multithreading 4 kategori :1. Responsif :

Membuat aplikasi yang interaktif menjadi multithreading dapatmembuat sebuah program terus berjalan meskipun sebagiandari program tersebut diblok atau melakukan operasi yang panjang.

Contohnya dalam web browser yang multithreading, sebuahthread dapat melayani permintaan pengguna sementara thread lain berusaha menampilkan image.

Page 15: 3. PROSES - Gunadarma

2. Berbagi sumber daya : thread berbagi memori dan sumber daya dengan thread lain yang dimiliki oleh proses yang sama.

Keuntungan dari berbagi kode adalah mengizinkan sebuahaplikasi untuk mempunyai beberapa thread yang berbedadalam lokasi memori yang sama.

3. Ekonomi : dalam pembuatan sebuah proses banyak dibutuhkanpengalokasian memori dan sumber daya.

Alternatifnya adalah dengan penggunaan thread, karena thread berbagi memori dan sumber daya proses yang memilikinyamaka akan lebih ekonomis untuk membuat dan context switch thread.

Page 16: 3. PROSES - Gunadarma

4. Utilisasi arsitektur multiprocessor : Keuntungan dari multithreading dapat sangat meningkat padaarsitektur multiprocessor, dimana setiap thread dapat berjalansecara pararel di atas processor yang berbeda.

Pada arsitektur processor tunggal, CPU menjalankan setiapthread secara bergantian tetapi hal ini berlangsung sangat cepatsehingga menciptakan ilusi pararel, tetapi pada kenyataannyahanya satu thread yang dijalankan CPU pada satu-satuan waktu(satu-satuan waktu pada CPU biasa disebut time slice atauquantum).

Page 17: 3. PROSES - Gunadarma

User dan Kernel Thread

User Thread• didukung di atas kernel dan diimplementasi oleh thread library

pada user level.

• Library menyediakan fasilitas untuk pembuatan thread, penjadualan thread, dan managemen thread tanpa dukungandari kernel.

• Kelemahan : apabila kernelnya merupakan thread tunggal makaapabila salah satu user-level thread menjalankan blocking system call maka akan mengakibatkan seluruh proses diblok .

• Contoh user-thread libraries adalah POSIX Pthreads, Mach C-threads, dan Solaris threads.

Page 18: 3. PROSES - Gunadarma

Kernel Thread• Kernel thread didukung langsung oleh sistem operasi.

• Karena pengaturan thread dilakukan oleh sistem operasimaka pembuatan dan pengaturan kernel thread lebih lambatdibandingkan user thread.

• Keuntungannya : - thread diatur oleh kernel, karena itu jika sebuah thread

menjalankan blocking system call maka kernel dapatmenjadualkan thread lain di aplikasi untuk melakukan eksekusi.

- pada lingkungan multiprocessor, kernel dapat menjadualthread-thread pada processor yang berbeda. Contoh sistem operasi yang mendukung kernel thread :Windows NT, Solaris, Digital UNIX.

Page 19: 3. PROSES - Gunadarma

Multithreading Model

Many to one Model• Many-to-One model memetakan banyak user-level thread ke satu

kernel thread.

• Pengaturan thread dilakukan di user space

• kelemahan sama dengan user thread. Kelemahan lain multiple thread tidak dapat berjalan secara pararel pada multiprocessorkarena hanya satu thread yang dapat diakses pada suatu waktu

• User-level thread yang diimplementasi pada sistem operasi yang tidak mendukung kernel thread menggunakan Many-to-One model.

Page 20: 3. PROSES - Gunadarma

Gambar 3.5 : Many to one

Page 21: 3. PROSES - Gunadarma

One-to-One model

• memetakan setiap user thread ke kernel thread.

• Keuntungannya sama dengan keuntungan kernel thread.

• Kelemahannya model ini adalah setiap pembuatan user thread membutuhkan pembuatan kernel thread.

• Karena pembuatan thread dapat menurunkan performa darisebuah aplikasi maka implmentasi dari model ini membatasijumlah thread yang dibatasi oleh sistem.

• Contoh sistem operasi yang mendukung One-to-Onemodel adalah Windows NT dan OS/2.

Page 22: 3. PROSES - Gunadarma

Gambar 3.6: One to one

Page 23: 3. PROSES - Gunadarma

Many to many Model

• Many-to-many model multiplexes banyak user-level thread kekernel thread yang jumlahnya lebih kecil atau sama banyaknyadengan user-level thread.

• Many-to-One model mengizinkan developer untuk membuat user thread sebanyak yang diperlukan dan kernel thread yang bersangkutan dapat bejalan secara pararel pada multiprocessor.

• Contoh sistem operasi yang mendukung model ini adalah Solaris, IRIX, dan Digital UNIX

Page 24: 3. PROSES - Gunadarma

.

Gambar~3.7: Many to many

Page 25: 3. PROSES - Gunadarma

Cancellation

• Thread cancellation : tugas untuk memberhentikan thread sebelum ia menyelesaikan tugasnya.

Contohnya jika dalam program java, sebelum mematikan JVM dimatikan maka seluruh thread yang berjalan dihentikan terlebihdahulu.

• Thread yang akan diberhentikan biasa disebut target thread.

Page 26: 3. PROSES - Gunadarma

• Pemberhentian target thread dapat terjadi melalui dua cara yang berbeda :

- Asynchronous cancellation : suatu thread seketika itu jugamemberhentikan target thread.

- Defered cancellation : target thread secara perodik memeriksaapakah dia harus berhenti, cara ini memperbolehkan target thread untuk memberhentikan dirinya sendiri secara terurut.

Page 27: 3. PROSES - Gunadarma

Hal yang sulit dari pemberhentian thread ini adalah :

• ketika terjadi situasi dimana sumber daya sudah dialokasikanuntuk thread yang akan diberhentikan.

• ketika thread yang diberhentikan sedang meng-update data yang ia bagi dengan thread lain.

Hal ini akan menjadi masalah yang sulit apabila digunakanasynchronous cancellation.

Sistem operasi akan mengambil kembali sumber daya dari thread yang diberhentikan tetapi seringkali sistem operasi tidakmengambil kembali semua sumber daya dari thread yang diberhentikan.

Page 28: 3. PROSES - Gunadarma

Alternatifnya adalah dengan menggunakan deffered cancellation.

• Cara kerja dari deffered cancellation : dengan menggunakan satuthread yang berfungsi sebagai pengindikasi bahwa target thread hendak diberhentikan.

• Pemberhentian hanya akan terjadi jika target thread memeriksaapakah ia harus berhenti atau tidak.

• Hal ini memperbolehkan thread untuk memeriksa apakah ia harusberhenti pada waktu dimana ia dapat diberhentikan secara aman.

• Pthread merujuk tersebut sebagai cancellation points.

Page 29: 3. PROSES - Gunadarma

Thread Pools

Pada web server yang multithreading ada dua masalah yang timbul :

• Ukuran waktu yang diperlukan untuk menciptakan thread untukmelayani permintaan yang diajukan terlebih pada kenyataannyathread dibuang ketika ia menyelesaikan tugasnya.

• Pembuatan thread yang tidak terbatas jumlahnya dapatmenurunkan performa dari sistem.

Page 30: 3. PROSES - Gunadarma

Solusinya adalah dengan penggunaan Thread Pools,cara kerjanya : dengan membuat beberapa thread pada proses startup danmenempatkan mereka ke pools, dimana mereka duduk diam danmenunggu untuk bekerja.

Jadi ketika server menerima permintaan maka maka ia akanmembangunkan thread dari pool dan jika thread tersedia makapermintaan tersebut akan dilayani.

Ketika thread sudah selesai mengerjakan tugasnya maka ia kembalike pool dan menunggu pekerjaan lainnya.

Bila tidak thread yang tersedia pada saat dibutuhkan maka server menunggu sampai ada satu thread yang bebas.

Page 31: 3. PROSES - Gunadarma

Keuntungan thread pool :• Biasanya lebih cepat untuk melayani permintaan dengan

thread yang ada dibanding dengan menunggu thread barudibuat.

• Thread pool membatasi jumlah thread yang ada pada suatuwaktu.

Hal ini penting pada sistem yang tidak dapat mendukung banyakthread yang berjalan secara concurrent.

Jumlah thread dalam pool dapat tergantung dari jumlah CPU dalam sistem, jumlah memori fisik, dan jumlah permintaan klienyang concurrent

Page 32: 3. PROSES - Gunadarma

AGENT

• Software Agent : entitas perangkat lunak yang didedikasikanuntuk tujuan tertentu yang memungkinkan user untukmendelegasikan tugasnya secara mandiri

• Agent bisa memiliki ide sendiri mengenai bagaimanamenyelesaikan suatu pekerjaan tertentu atau agenda tersendiri. Agent yang tidak berpindah ke host lain disebut stationary agent.

• Definisi agent yang lebih rinci, ditinjau dari sudut pandang sistem, adalah obyek perangkat lunak yang :

1. Diletakan dalam lingkungan eksekusi.

Page 33: 3. PROSES - Gunadarma

2. Memiliki sifat sebagai berikut : a. Reaktif, dapat merasakan perubahan dalam lingkungannya

dan bertindak sesuai perubahan tersebut. b. Autonomous, mampu mengendalikan tindakannya sendiric. Proaktif, mempunyai dorongan untuk mencapai tujuand. Bekerja terus menerus sampai waktu tertentu

3. Dapat mempunyai sifat ortogonal sebagai berikut : a. Komunikatif, dapat berkomunikasi dengan agen yang lain. b. Mobile , dapat berpindah dari satu host ke host yang lain c. Learning, mampu menyesuaikan diri berdasarkan

pengalaman sebelumnyad. Dapat dipercaya sehingga menimbulkan kepercayaan kepada

end user

Page 34: 3. PROSES - Gunadarma

Karakteristik dari Agen :

1. Autonomy :

- Agent dapat melakukan tugas secara mandiri dan tidak

dipengaruhi secara langsung oleh user, agent lain ataupun oleh

lingkungan.

- Untuk mencapai tujuan dalam melakukan tugasnya secara

mandiri, agent harus memiliki kemampuan kontrol terhadap

setiap aksi yang mereka perbuat, baik aksi keluar maupun

kedalam [Woolridge et. al., 1995].

- mendukung autonomy dan masalah intelegensi dari agent.

Page 35: 3. PROSES - Gunadarma

2. Intelligence, Reasoning, dan Learning :

- Setiap agent harus mempunyai standar minimum untuk bisa

disebut agent, yaitu intelegensi (intelligence).

- Dalam konsep intelligence, ada tiga komponen yang harus

dimiliki : internal knowledge base,

kemampuan reasoning berdasar pada knowledge

base yang dimiliki,

kemampuan learning untuk beradaptasi dalam

perubahan lingkungan

Page 36: 3. PROSES - Gunadarma

3. Mobility dan Stationary :

- Khusus untuk mobile agent : harus memiliki kemampuan yang

merupakan karakteristik tertinggi yang dimiliki yaitu mobilitas.

- keduanya tetap harus memiliki kemampuan untuk mengirim

pesan dan berkomunikasi dengan agent lain.

4. Delegation :

- agent bergerak dalam kerangka menjalankan tugas yang

diperintahkan oleh user.

- Fenomena pendelegasian (delegation) ini adalah karakteristik

utama suatu program disebut agent.

Page 37: 3. PROSES - Gunadarma

5. Reactivity :

- Kemampuan untuk bisa cepat beradaptasi dengan adanyaperubahan informasi yang ada dalam suatu lingkungan .

- Lingkungan itu bisa mencakup : agent lain, user, informasi dariluar, dsb [Brenner et. al., 1998].

6. Proactivity dan Goal-Oriented : - kelanjutan dari sifat reactivity. - Agent tidak hanya dituntut bisa beradaptasi terhadap

perubahan lingkungan, tetapi juga harus mengambil inisiatiflangkah penyelesaian apa yang harus diambil [Brenner et. al., 1998].

- Agent harus didesain memiliki tujuan (goal) yang jelas, danselalu berorientasi kepada tujuan yang diembannya (goal-oriented).

Page 38: 3. PROSES - Gunadarma

7. Communication and Coordination Capability :

- Agent harus memiliki kemampuan berkomunikasi dengan user

dan juga agent lain.

Software Agent bisa diklasifikasikan sebagai :1. Desktop Agent :

agent yang hidup dan bertugas dalam lingkungan PersonalComputer, dan berjalan di atas suatu Operating System.

Termasuk dalam klasifikasi ini adalah :• Operating System Agent• Application Agent• Application Suite Agent

Page 39: 3. PROSES - Gunadarma

2. Internet Agent :

agent yang hidup dan bertugas dalam lingkungan jaringan Internet,

melakukan tugasnya yaitu mengatur informasi yang ada di Internet.

Termasuk dalam klasifikasi ini adalah :

• Web Search Agent

• Web Server Agent

• Information Filtering Agent

• Information Retrieval Agent

• Notification Agent

• Service Agent

• Mobile Agent

Page 40: 3. PROSES - Gunadarma

Bahasa Pemrograman

Beberapa peneliti memberikan petunjuk tentang bagaimana

karakteristik bahasa pemrorgaman yang sebaiknya dipakai [Knabe,

1995] [Brenner et al., 1998], yaitu :

1. Object-Orientedness:

agent adalah berhubungan dengan obyek, bahkan beberapa

peneliti menganggap agent adalah obyek yang aktif, maka juga

agent harus diimplementasikan ke dalam pemrorgaman yang

berorientasi obyek (object-oriented programming language).

Page 41: 3. PROSES - Gunadarma

2. Communication Capability :Pada saat berinteraksi dengan agent lain dalam suatu lingkunganjaringan (network environment), diperlukan kemampuan untukmelakukan komunikasi secara fisik. Sehingga diperlukan bahasapemrograman yang dapat mensupport pemrograman yangberbasis network dan komunikasi.

3. Security :Faktor keamanan (security) adalah faktor yang sangat pentingdalam memilih bahasa pemrorgaman untuk implementasi softwareagent. Terutama untuk mobil agent, diperlukan bahasapemrograman yang mensupport level-level keamanan yang bisamembuat agent bergerak dengan aman.

Page 42: 3. PROSES - Gunadarma

4. Code Manipulation:

Beberapa aplikasi software agent memerlukan manipulasi kodeprogram secara runtime, sehingga diperlukan bahasapemrograman untuk software agent yang dapat menanganimasalah runtime tersebut.

Dari karakteristik di atas dapat disimpulkan bahwa bahasapemrograman yang layak untuk mengimplementasikan softwareagent adalah sebagai berikut :• Java• Telescript• Tcl/Tk, Safe-Tcl, Agent-Tcl