Manajemen Proses Defiana Arnaldy, M.Si

Slides:



Advertisements
Presentasi serupa
Sistem Operasi Proses Fachry Khusaini ( ) Nur Yaqin ( )
Advertisements

MANAJEMEN PROSES Sistem Operasi
MANAJEMEN PROSES Danang Lelono, S.Si., M.T..
BAB IV MANAJEMEN PROSES
Proses.
Oleh : Kelompok 2 Irawan ( ) Alifuddin Wachid ( ) Retno Ayu Apriliati ( ) “Proses Sistem Operasi” G.
Pertemuan 3 Manajemen proses Manajemen Proses.
KONSEP PROSES Minggu ke 5.
Manajemen proses Manajemen Proses.
Implementasi Proses.
MANAJEMEN PROSES.
KONSEP THREAD.
Proses Ali akbar. KONSEP PROSES Proses adalah program yang sedang dieksekusi. Eksekusi proses dilakukan secara berurutan. Dalam suatu proses terdapat.
Proses dan Implementasinya
Versi 1, 2013CCS113 – SISTEM OPERASIFASILKOM PERTEMUAN 5 PROSES DAN THREAD 1.
Manajemen Proses Meliputi : Pengelolaan sisklusi hidup proses
Pertemuan 03- Konsep Proses
Pertemuan ke 3 Konsep Proses
PERTEMUAN KE-7 PERKULIAHAN SISTEM OPERASI
Pertemuan 3 Manajemen Proses.
Operating System Copyright © Mufadhol 1 SISTEM OPERASI Management Process Oleh : Mufadhol, S.Kom.
PERTEMUAN KE-9 PERKULIAHAN SISTEM OPERASI
KONSEP THREAD.
MANAJEMEN PROSES PART 2 Dosen : Ahmad Apandi, ST
MANAJEMEN PROSES.
MANAJEMEN PROSES.
PENJADWALAN PROSES.
Manajemen Proses 2 Pembagian Kerja OS :Scheduling
PENJADWALAN PROSES DAN IMPLEMANTASI Sistem operasi komputer
PCB (Process Control Block)
Thread.
SISTEM OPERASI Pertemuan 3 : Manajemen Proses
Thread. Thread Proses dengan thread tunggal – proses menjalankan satu tugas pada satu waktu Proses dengan thread tunggal – proses menjalankan satu tugas.
MATAKULIAH SISTEM OPERASI – PENDIDIKAN TEKNIK INFORMATIKA 2008
Oleh: Chalifa Chazar MANAJEMEN PROSES.
PROSES.
PROSES & THREADS Disajikan Oleh :.
Masquriansyah,S.kom. M.T.I
Proses Dosen: Abdillah S.Si., MIT.
Manajemen Proses Edi Sugiarto, S.Kom.
Proses dan Thread Oleh : Adhitya Nugraha.
Penjadwalan Proses.
Sistem Operasi Teknik Informatika STT Wastukancana Purwakarta
Pertemuan 6 P R O S E S.
IV. Proses-proses Terdapat beberapa definisi proses, diantaranya proses sebagai program yang sedang dalam keadaan eksekusi Proses membutuhkan sumber daya.
Thread.
MANAJEMEN PROSES.
4 PROSES Mata Kuliah Sistem Operasi Mata Kuliah : Sistem Operasi
MANAJEMAN PROSES.
Process and Tread Saifudin Anshory Abd. Chariz Fauzan Wahyu Hartono
Resi Utami Putri, S.Kom., M.Cs.
THREAD.
SISTEM OPERASI PERTEMUAN VI.
MANAJEMEN PROSES PART 2 Dosen : Ahmad Apandi, ST
PROSES.
Manajemen Proses Firdaus, M.T..
Manajemen Proses.
SISTEM OPERASI PERTEMUAN VI.
Tahap-tahap penciptaan proses
Hendy Mizuardy SISTEM OPERASI. MANAJEMEN PROSES Konsep Proses Definisi Proses Status Proses Process Control Block (PCB) Konsep Penjadwalan Queue Scheduling.
Penjadwalan Proses M. Ghofar Rohman.
PROSES.
Manajemen Proses.
Manajemen Proses.
TEKNIK KOMPILASI PERTEMUAN VI.
Pertemuan 6 P R O S E S.
KONSEP PROSES Minggu ke 5.
Proses dan Thread Oleh : Adhitya Nugraha.
PROSES. Definisi Proses Proses adalah program yang sedang dieksekusi, termasuk didalamnya nilai-nilai dalam program counter, register, dan variabel-variabel.
Fathiah, S.T.,M.Eng Universitas Ubudiyah Indonesia
Transcript presentasi:

Manajemen Proses Defiana Arnaldy, M.Si 0818 0296 4763 SISTEM OPERASI Manajemen Proses Defiana Arnaldy, M.Si 0818 0296 4763 deff_arnaldy@yahoo.com

OVERVIEW KONSEP PROSES PENJADWALAN PROSES OPERASI PADA PROSES KERJASAMA ANTAR PROSES KOMUNIKASI ANTARPROSES THREAD

KONSEP PROSES Proses adalah sebuah program yang sedang dieksekusi. Sedangkan program adalah kumpulan instruksi yang ditulis ke dalam bahasa yang dimengerti sistem operasi. Proses berisi instruksi dan data. program counter dan semua register pemroses, dan stack berisi data sementara seperti parameter rutin, alamat pengiriman dan variabel-variabel lokal. Sistem operasi mengelola semua proses di sistem dan mengalokasikan sumber daya ke proses-proses sesuai kebijaksanaan untuk memenuhi sasaran sistem

KONSEP PROSES ISTILAH-ISTILAH BERKAITAN DENGAN PROSES Multiprogramming (multitasking) Manajemen banyak proses pada satu pemroses. Istilah yang digunakan multiprogramming (multitasking) bukan multiprocessing. Program-program yang dijalankan sebenarnya bersifat: Saling tak bergantung (independen). Satu program pada satu saat (one program at any instant).

KONSEP PROSES Multiprocessing. Distributed processing/computing. Manajemen banyak proses di komputer multiprocessor (banyak pemroses didalamnya). menggunakan komputer semaksimal mungkin dengan beberapa CPU sehingga beberapa program bisa dijalankan secara bersama-sama , masing-masing dengan menggunakan prosesornya sendiri-sendiri Distributed processing/computing. Manajemen banyak proses yang dieksekusi di banyak sistem komputer yang tersebar (terdistribusi).

STATUS PROSES Sebuah proses dapat memiliki tiga status utama yaitu: Running. Status yang dimiliki pada saat instruksi-instruksi dari sebuah proses dieksekusi Waiting. Status yang dimiliki pada saat proses menunggu suatu sebuah event seperti proses M/K. Ready. Status yang dimiliki pada saat proses siap untuk dieksekusi oleh prosesor Status tambahan terdapat dua, yaitu saat pembentukan dan terminasi: New. Status yang dimiliki pada saat proses baru saja dibuat Terminated. Status yang dimiliki pada saat proses telah selesai dieksekusi.

STATUS PROSES Perubahan Status Proses

Diagram Proses Status

KETERANGAN GAMBAR Proses baru diciptakan berada pada state ready Proses dari running menjadi blocked karena sumberdaya yang diminta belum tersedia atau meminta layanan perangkat masukan/ keluaran (I/O) sehingga menunggu kejadian yang muncul. Proses ini dikenal dengan event wait. Proses dari running jadi ready karena penjadwal memutuskan eksekusi proses lain oleh karena jatah waktu telah habis (timeout). Proses dari blocked jadi ready karena sumber daya yang diminta tersedia atau layanan I/O selesai/ terpenuhi. Proses ini dikenal event occur Proses dari ready jadi running karena penjadwal memutuskan untuk mengeksekusi proses tersebut

WARNING !!! Hanya satu proses yang dapat berjalan pada prosesor mana pun pada satu waktu. Namun, banyak proses yang dapat berstatus Ready atau Waiting. Ada tiga kemungkinan bila sebuah proses memiliki status Running: Jika program telah selesai dieksekusi maka status dari proses tersebut akan berubah menjadi Terminated.

WARNING !!! 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 permintaan I/O) maka proses tersebut akan menunggu event tersebut selesai dan proses berstatus Waiting.

Process Control Block SO memerlukan banyak informasi mengenai proses guna pengelolaan proses  Informasi ini ada di PCB Struktur datanya menyimpan informasi lengkap mengenai proses sehingga dapat terjadi siklus hidup proses Informasi di PCB dikelompokkan Informasi identifikasi proses Informasi status proses Informasi kendali proses

Informasi Identifikasi Proses Berkaitan dengan identitas proses yang unik Dengan identifier ini proses dikaitkan ke tabel-tabel lain Identifiernya adalah numerik yang meliputi Identifier proses Identifier proses yang menciptakan Identifier pemakai

Informasi Status Proses Informasi ini esensinya terdiri dari register- register pemroses. Saat proses berstatus running, informasi- informasi ini berada di register-register. Ketika proses diinterupsi semua informasi register harus disimpan agar dapat dikembalikan saat proses dieksekusi kembali Jumlah dan ragam register bergantung pada arsitektur komputernya

Informasi Status Proses Informasi ini esensinya terdiri dari register- register pemroses. Saat proses berstatus running informasi- informasi ini berada di register-register. Saat proses diinterupsi semua informasi register harus disimpan agar dapat dikembalikan saat proses dieksekusi kembali Jumlah dan ragam register yang terlibat bergantung pada arsitektur komputer

Informasi Kendali Proses Adalah informasi-informasi lain yang diperlukan SO untuk mengendalikan dan koordinasi beragam proses aktif

Elemen-elemen PCB Identifikasi Proses Identifier Identifier numerik yang meliputi Identifier proses Identifier proses yang menciptakan Identifier pemakai

ELEMEN-ELEMEN PCB (Lanjut) Informasi Status Pemroses Register-register yang terlihat pemakai Register-register yang dapat ditunjuk instruksi bahasa assembly untuk diproses pemroses Register-register kendali dan status Register-register yang digunakan untuk mengendalikan operasi pemroses, a.l.: Program counter PSW, dsb. Pointer stack Tiap proses mempunyai satu stack atau lebih. Stack digunakan untuk parameter atau alamat prosedur pemanggil dan system call. Pointer stack menunjuk posisi paling atas dari stack

ELEMEN-ELEMEN PCB (Lanjut) Informasi Kendali Pemroses Informasi penjadwalan dan status Informasi-informasi yang dipakai untuk menjalankan fungsi penjadwalan a.l : Status proses. Mendefinisikan status proses (running,ready,block, dsb) Prioritas. Menjelaskan prioritas proses Informasi berkaitan penjadwalan. Informasi ini seperti lama menunggu, lama proses terakhir dieksekusi dsb. Kejadian (Event). Identitas kejadian yang ditunggu proses Penstrukturan data Suatu proses dapat dikaitkan dengan proses lain dalam satu antrian atau ring, atau struktur lainnya. PCB harus memiliki pointer untuk mendukung struktur ini. Komunikasi antar proses Beragam flag, sinyal dan pesan dapat diasosiasikan dengan komunikasi antara dua proses yang terpisah. Informasi ini disimpan dalam PCB

ELEMEN-ELEMEN PCB (Lanjut) Informasi Kendali Pemroses (lanjut) Kewenangan proses Proses dapat mempunyai kewenangan berkaitan dengan memori dan tipe instruksi yang dapat dijalankan Manajemen memori Bagian ini berisi pointer ke tabel segmen atau page yang menyatakan memori virtual proses Kepemilikan dan utilisasi sumber daya Sumber daya yang dikendalikan proses harus diberi tanda, misalnya : Berkas yang dibuka Pemakaian pemroses Pemakaian sumberdaya lainnya Informasi ini diperlukan oleh penjadwal

Process Control Block Ilustrasi PCB Ilustrasi di Register CPU

PENJADUALAN PROSES Tujuan dari multiprogramming adalah untuk memiliki sejumlah proses yang berjalan pada sepanjang waktu, untuk memaksimalkan penggunaan CPU. Tujuan dari pembagian waktu adalah untuk mengganti CPU diantara proses-proses yang begitu sering sehingga pengguna dapat berinteraksi dengan setiap program sambil CPU bekerja. Tiga macam bentuk penjadwalan proses Antrian Penjadwalan Penjadwalan (Scheduler) Context Switch

1. Penjadwalan Antrian Proses memasuki sistem  diletakkan dalam antrian job. Antrian ini terdiri dari seluruh proses dalam sistem. Setiap PCB memiliki pointer field yang menunjukkan proses selanjutnya dalam ready queue. Selain proses ada antrian lain dalam sistem  permintaan I/O

Jenis-jenis antrian penjadwalan Job Queue  Semua proses yang masuk pada suatu sistem akan diletakkan ke dalam job queue Ready Queue  Proses-proses yang ada di memori utama dan menunggu untuk dieksekusi diletakkan pada suatu list Device Queue  deretan proses yang sedang menunggu peralatan I/O tertentu

Ready Queue dan Device Queue

Reprensentasi umum untuk suatu diskusi mengenai penjadualan proses adalah diagram antrian Proses tersebut dapat mengeluarkan sebuah permintaan I/O, lalu di tempatkan dalam sebuah antrian I/O. Proses tersebut dapat membuat subproses yang baru dan menunggu terminasinya sendiri. Proses tersebut dapat digantikan secara paksa dari CPU, sebagai hasil dari suatu interupsi, dan diletakkan kembali dalam ready queue.

Diagram Antrian

2. Penjadualan Longterm-Scheduler (job scheduler)  menyeleksi proses-proses mana yang harus dibawa ke ready queue Short-term Scheduler (CPU scheduler)  memilih proses-proses yang siap untuk dieksekusi, dan mengalokasikan CPU ke salah satu dari proses-proses tersebut Medium-term Scheduler  swapping

Ilustrasi Penjadualan Medium-term

3. Context Switch Context switch  Tugas peralihan CPU dari proses lama (state of old process) ke proses yang baru Kecepatan context switch bervariasi  bergantung pada kecepatan memori, jumlah register yang harus di copy, dan keberadaan instruksi khusus (seperti instruksi tunggal untuk mengisi atau menyimpan seluruh register). Tingkat kecepatan umumnya berkisar antara 1 sampai 1000 mikro detik

Ilustrasi Alih Konteks

3. Alih Konteks Waktu alih konteks sangat begantung pada dukungan perangkat keras. Sebagai contoh, prosesor seperti UltraSPARC menyediakan dua rangkap register. Sebuah alih konteks hanya memasukkan perubahan pointer ke perangkat register yang ada. Tentu saja, jika ada lebih proses-proses aktif yang ada dari pada yang ada di perangkat register, sistem menggunakan bantuan untuk meng-copy data register pada dan dari memori, sebagaimana sebelumnya. Semakin sistem operasi kompleks, makin banyak pekerjaan yang harus dilakukan selama alih konteks.

OPERASI PADA PROSES Penciptaan proses (create a process). Penghancuran/terminasi proses (destroy a process). Penundaan proses (suspend a process). Pelanjutan kembali proses (resume a process). Mem-block proses. Membangunkan proses. Menjadwalkan proses. Memungkinkan proses berkomunikasi dengan proses lain (Komunikasi Antar Proses)

OPERASI PADA PROSES

1. Penciptaan Proses Penciptaan proses melibatkan banyak aktivitas, yaitu: Menamai (memberi identitas) proses. Menyisipkan proses pada senarai proses atau tabel proses. Menentukan prioritas awal proses. Menciptakan PCB. Mengalokasikan sumber daya awal bagi proses.

Penyebab Penciptaan Proses Pada lingkungan batch, sebagai tanggapan atas pemberian satu kerja (job). Pada lingkungan interaktif, ketika pemakai baru berusaha logon. Sebagai tanggapan suatu aplikasi, seperti permintaan pencetakan file, sistem operasi dapat menciptakan proses yang akan mengelola pencetakan itu. Proses menciptakan proses lain (proses anak). Proses yang menciptakan proses disebut proses induk (parent process). Proses anak-pun kembali dapat menciptakan proses-proses anak. Proses-proses dapat membentuk pohon hirarki proses.

Ilustrasi Pohon Proses

Alasan-2 Penciptaan Proses Penyebab Penciptaan Deskripsi Terdapat batch baru SO dengan kendali batch job, setelah menciptakan proses baru, kemudian melanjutkan membaca job selanjutnya Satu pemakai interaktif logon Seorang pemakai pada satu terminal sedang melakukan logon ke sistem Sistem operasi menciptakan proses untuk memberi layanan SO menciptakan proses untuk memenuhi satu fungsi pada program pemakai, tanpa mengharuskan pemakai menunggu Proses menciptakan proses anak Untuk mencapai modularitas atau mengekploitasi kongkurensi, program pemakai memerintahkan pembuatan sejumlah proses.

2. Penghancuran Proses(a) Penghancuran proses melibatkan pembebasan proses dari sistem, yaitu: Sumber daya-sumber daya yang dipakai dikembalikan . Proses dihancurkan dari senarai atau tabel sistem PCB dihapus (ruang memori PCB dikembalikan ke pool memori bebas )

Penghancuran Proses(b) Penghancuran lebih rumit bila proses telah menciptakan proses-proses lain. Terdapat dua pendekatan, yaitu: Pada beberapa.sistem, proses-proses turunan dihancurkan saat proses induk dihancurkan secara otomatis. Beberapa sistem lain menganggap proses anak independen terhadap proses induk Proses anak tidak secara otomatis dihancurkan saat proses induk dihancurkan.

Alasan Penghancuran Proses(a) Selesainya proses secara normal Proses mengeksekusi panggilan layanan So untuk menandakan bahwa proses telah berjalan secara lengkap. Batas waktu telah terlewati Proses telah berjalan melebihi batas waktu total yang dispesifikasikan. Terdapat banyak kemungkinan untuk tipe waktu yang diukur, termasuk waktu total yang dijalani (“walk clock time”) jumlah waktu yang dipakai untuk eksekusi, dan jumlah waktu sejak pemakai terakhir kali memberi masukan (pada proses interaktif) . Memori tidak tersedia Proses memerlukan memori lebih banyak daripada yang dapat disediakan oleh sistem. Pelanggaran terhadap batas memori Proses memcoba mengakses lokasi memori yang tidak diijinkan untuk diakses

Alasan Penghancuran Proses(b) Terjadi kesalahan karena pelanggaran proteksi Proses berusaha menggunakan sumber daya atau file yang tidak diijinkan dipakainya, atau proses mencoba menggunakannya tidak untuk peruntukannya, seperti menulis file read only Terjadi kesalahan aritmatika Proses mencoba perhitungan terlarang, seperti pembagian dengan nol, atau mencoba menyimpan angka yang lebih besar daripada yang ddapat diakomodasi oleh H/W Waktu telah kadaluwarsa Proses telah menunggu lebih lama daripada maksimum yang telah ditentukan untuk terjadinya suatu kejadian spesfiik Terjadi kegagalan masukan/keluaran Kesalahan muncul pada masukan atau keluaran, seprti ketidakmampuan menemukan file, kegagalan membaca atau mennulis setelah sejumlah maksimum percobaan yang ditentukan (misalnya area rusak didapatkan pada tape,atau operasi tidak valid seperti membaca dari line printer)

Alasan Penghancuran Proses(c) Intruksi yang tidak benar Proses berusaha mengeksekusi instruksi yang tidak ada (sering sebagi akibat pencabangan ke daerah data dan berusaha mengeksekusi data tersebut) Terjadi usaha memakai instruksi yang tidak diijinkan Proses berusaha mengeksekusi instruksi yang disimpan untuk So Kesalahan penggunaan data Bagian data adalah tipe yang salah atau tidak diinisialisasi Diintervensi oleh SO atau operator Untuk suatu alasan, operator atau sistem operasi mengakhiri proses (misalnya terjadi deadlock) Berakhirnya proses induk Ketika parent berakhir. So mungkin dirancannng secara otomatis mengakhiri semua anak proses dari parent itu Atas permintaan proses induk Parent process biasanya mempunyai otoritas mengakhiri suatu anak proses

3. Penundaan Proses (Suspend A Process) Penundaan (suspension) adalah operasi penting dan telah diterapkan dengan beragam cara. Penundaan dapat diinisialisasi oleh proses itu sendiri atau proses lain Penundaan biasanya berlangsung singkat dan sering dilakukan sistem untuk memindahkan proses-proses tertentu guna mereduksi beban sistem selama beban puncak. Proses yang ditunda (suspended process) tidak berlanjut sampai proses lain me-resume. Untuk jangka panjang, sumber daya-sumber daya proses dibebaskan.

Pada sistem monoprocessor, proses running dapat men-suspend dirinya sendiri karena lak ada proses lain yang juga running yang dapat memerintahkan suspend. Pada sistem multiprocessor, proses running dapat di-suspend proses running lain pada pemroses berbeda. Proses ready hanya dapat di-suspend oleh proses lain.

4. Proses Pelanjutan Kembali (Resume A Process ) Jika sistem berfungsi secara buruk dan mungkin gagal maka proses-proses dapat di- suspend agar di- resume setelah masalah diselesaikan. Pemakai yang ragu/khawatir mengenai hasil proses dapat men-suspend proses [bukan membuang (abort) proses]. Saat pemakai yakin proses akan berfungsi secara benar maka dapat me-resume (melanjutkan kembali di instruksi saat di-suspend) proses yang di-suspend. Sebagai tanggapan terhadap fluktuasi jangka pendek beban sistem, beberapa proses dapat di-suspend dan di- resume saat beban kembali ke tingkat normal.

5. Proses Blocked Pada proses blocked terdapat transisi menjadi suspendedblocked. Pilihan ini dirasa aneh. Apakah tidak cukup menunggu selesainya operasi masukan/keluaran atau kejadian yang membuat proses ready atau suspendedready? Bukankah state blocked, readyblocked, suspendedblocked sama-sama tidak mendapat jatah waktu pemroses ? Kenapa dibedakan ?

Jawaban Karena penyelesaian operasi masukan/keluaran bagi proses blocked mungkin tak pernah terjadi atau dalam waktu tak terdefinisikan sehingga lebih baik di-suspend agar sumber daya-sumber daya yang dialokasikan untuk proses tersebut dapat digunakan proses-proses lain. Proses blocked di-suspend sistem atau secara manual menjadi suspendedblocked. Bila akhirnya operasi masukan/keluaran berakhir maka segera proses suspendedblocked mengalami transisi. Karena resume dan suspend mempunyai prioritas tinggi maka transisi segera dilakukan. Suspend dan resume dapat digunakan untuk menyeimbangkan beban sistem saat mengalami lonjakan di atas normal.

7. Menjadwalkan Proses Proses dapat berubah status dan berpindah dari satu antrian ke antrian yang lain Proses dengan status “ready” berada di ReadyQueue Menunggu giliran/dipilih oleh scheduler => menggunakan CPU Selama eksekusi (status “run”) events yang dapat terjadi: I/O request => I/O wait berada pada DeviceQueue Create “child” proses => Jalankan proses “child”, tunggu sampai proses selesai (wait) Time slice expired => Waktu pemakaian CPU habis, interrupt oleh scheduler, proses akan berpindah ke ReadyQueue

8. Komunikasi Antar Proses—(1) (Inter Process Communinication / IPC) : Beberapa proses biasanya berkomunikasi dengan proses lainnya. Contohnya pada shell pipe line : output dari proses pertama harus diberikan kepada proses ke dua dan seterusnya.

KOMUNIKASI ANTAR PROSES—(2) Pada beberapa sistem operasi, proses-proses yang bekerja bersama sering sharing (berbagi) media penyimpanan, dimana suatu proses dapat membaca dan menulis pada shared storage (main memory atau files)

KOMUNIKASI ANTAR PROSES—(3) Interprocess Communication (IPC) Mekanisme proses untuk komunikasi dan sinkronisasi aksi Sistem Pesan – komunikasi proses satu dengan yang lain dapat dilakukan tanpa perlu pembagian data. IPC menyediakan dua operasi : send(message) – pesan berukuran pasti atau variabel receive(message) Jika P dan Q melakukan komunikasi, maka keduanya memerlukan : Membangun jalur komunikasi diantara keduanya Melakukan pertukaran pesan melaui send/receive Implementasi jalur komunikasi physical (shared memory, hardware bus) logical (logical properties)

MACAM KOMUNIKASI ANTAR PROSES Komunikasi Langsung Komunikasi Tak Langsung

KOMUNIKASI LANGSUNG Proses harus diberi nama secara jelas : send (P, message) – kirim pesan ke proses P receive(Q, message) – terima pesan dari proses Q Properti jalur komunikasi Jalur dibangun secara otomatis Setiap jalur memiliki pasangan masing-masing dalam proses komunikasi

KOMUNIKASI TIDAK LANGSUNG Pesan dikirim dan diterima melalui mailboxes (yang ditunjuk sebagai port) Proses Processes can communicate only if they share a mailbox. Properti jalur komunikasi Jalur komunikasi hanya dibangun jika proses di- share dalam mailbox Jalur merupakan gabungan beberapa proses Setiap pasangan proses dibagi ke dalam beberapa jalur komunikasi.

THREAD Thread, atau kadang-kadang disebut proses ringan (lightweight), adalah unit dasar dari utilisasi CPU. Di dalamnya terdapat ID thread, program counter, register, dan stack. Dan saling berbagi dengan thread lain dalam proses yang sama.

THREAD 1. Konsep Dasar Secara informal, proses adalah program yang sedang dieksekusi. Ada dua jenis proses, proses berat (heavyweight) atau biasa dikenal dengan proses tradisional, dan proses ringan atau kadang disebut thread. Thread saling berbagi bagian program, bagian data dan sumber daya sistem operasi dengan thread lain yang mengacu pada proses yang sama. Thread terdiri atas ID thread, program counter, himpunan register, dan stack. Dengan banyak kontrol thread proses dapat melakukan lebih dari satu pekerjaan pada waktu yang sama.

THREAD 2. Keuntungan Tanggap: Multithreading mengizinkan program untuk berjalan terus walau pun pada bagian program tersebut di block atau sedang dalam keadaan menjalankan operasi yang lama/ panjang. Sebagai contoh, multithread web browser dapat mengizinkan pengguna berinteraksi dengan suatu thread ketika suatu gambar sedang diload oleh thread yang lain. Pembagian sumber daya: Secara default, thread membagi memori dan sumber daya dari proses. Keuntungan dari pembagian kode adalah aplikasi mempunyai perbedaan aktifitas thread dengan alokasi memori yang sama.

THREAD 2. Keuntungan (LANJUTAN) Ekonomis: Mengalokasikan memori dan sumber daya untuk membuat proses adalah sangat mahal. Alternatifnya, karena thread membagi sumber daya dari proses, ini lebih ekonomis untuk membuat threads. Pemberdayaan arsitektur multiprosesor: Keuntungann dari multithreading dapat ditingkatkan dengan arsitektur multiprosesor, dimana setiap thread dapat jalan secara parallel pada prosesor yang berbeda. Pada arsitektur prosesor tunggal, CPU biasanya berpindah-pindah antara setiap thread dengan cepat, sehingga terdapat ilusi paralelisme, tetapi pada kenyataannya hanya satu thread yang berjalan di setiap waktu.

THREAD 3. User thread Didukung oleh kernel dan diimplementasikan oleh thread library ditingkat pengguna. Library mendukung untuk pembentukan thread, penjadualan, dan managemen yang tidak didukung oleh kernel. User Thread & Kernel Thread

THREAD 4. Kernel Threads Kernel thread didukung secara langsung oleh sistem operasi: pembentukan thread, penjadualan, dan managemen dilakukan oleh kernel dalam ruang kernel. Karena managemen thread telah dilakukan oleh sistem operasi, kernel thread biasanya lebih lambat untuk membuat dan mengelola daripada pengguna thread. Bagaimana pun, selama kernel mengelola thread, jika suatu thread di block tehadap sistem pemanggilan, kernel dapat menjadualkan thread yang lain dalam aplikasi untuk dieksekusi. Juga, di dalam lingkungan multiprosesor, kernel dapat menjadualkan thread dalam prosesor yang berbeda. Windows NT, Solaris, dan Digital UNIX adalah sistem operasi yang mendukung kernel thread.

MULTI THREADING

MULTI THREADING Model Many to One Model many-to-one ini memetakan beberapa tingkatan pengguna thread hanya ke satu buah kernel thread. Managemen proses thread dilakukan oleh (di ruang) pengguna, sehingga menjadi efisien, tetapi apabila sebuah thread melakukan sebuah pemblokingan terhadap sistem pemanggilan, maka seluruh proses akan berhenti (blocked). Kelemahan dari model ini adalah multihreads tidak dapat berjalan atau bekerja secara paralel di dalam multiprosesor dikarenakan hanya satu thread saja yang bisa mengakses kernel dalam suatu waktu.

MULTI THREADING Model One to One Model one-to-one memetakan setiap thread pengguna ke dalam satu kernel thread. Hal ini membuat model one-to-one lebih sinkron daripada model many-to-one dengan mengizinkan thread lain untuk berjalan ketika suatu thread membuat pemblokingan terhadap sistem pemanggilan; hal ini juga mengizinkan multiple thread untuk berjalan secara parallel dalam multiprosesor. Kelemahan model ini adalah dalam pembuatan thread pengguna dibutuhkan pembuatan korespondensi thread pengguna. Karena dalam proses pembuatan kernel thread dapat mempengaruhi kinerja dari aplikasi maka kebanyakan dari implementasi model ini membatasi jumlah thread yang didukung oleh sistem. Model one-to-one diimplementasikan oleh Windows NT dan OS/2.

MULTI THREADING Model Many to Many Beberapa tingkatan thread pengguna dapat menggunakan jumlah kernel thread yang lebih kecil atau sama dengan jumlah thread pengguna. Jumlah dari kernel thread dapat dispesifikasikan untuk beberapa aplikasi dan beberapa mesin (suatu aplikasi dapat dialokasikan lebih dari beberapa kernel thread dalam multiprosesor daripada dalam uniprosesor) dimana model many-to-one mengizinkan pengembang untuk membuat thread pengguna sebanyak mungkin, konkurensi tidak dapat tercapai karena hanya satu thread yang dapat dijadualkan oleh kernel dalam satu waktu. Model one-to-one mempunyai konkurensi yang lebih tinggi, tetapi pengembang harus hati-hati untuk tidak membuat terlalu banyak thread tanpa aplikasi dan dalam kasus tertentu mungkin jumlah thread yang dapat dibuat dibatasi.