Minggu, 13 April 2014

PROSES DAN MENEGEMEN PROSES


1. PENGERTIAN PROSES
Proses adalah sebuah program yang sedang dieksekusi atau program yang sedang di jalankan atau software yang sedang dilaksanakan termasuk sistem operasi yang disusun menjadi sejumlah proses sequential.
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. Salah satunya adalah program yang sedang dieksekusi yang merupakan unit kerja terkecil yang secara individu memiliki sumber daya-sumber daya dan dijadwalkan sistem operasi. Sistem operasi mengelola semua proses di sistem dan mengalokasikan sumber daya ke proses-proses sesuai kebijaksanaan untuk memenuhi sasaran sistem.
Hal – hal yang berkaitan dengan proses yaitu : 

 

1. MULTIPROGAMMING ( MULTITASKING )
Multiprogramming adalah manajemen banyak proses pada satu pemroses. Istilah yang digunakan multiprogramming (multitasking) bukan multiprocessing. Mulitprocessing telah digunakan untuk konsep lain, yaitu komputer dengan banyak pemroses di satu sistem komputer dengan masing-masing pemroses melakukan pemrosesan secara independen. Saat ini, kebanyakan komputer pribadi, workstation adalah sistem pemroses tunggal yang menjalankan sistem operasi multiprogramming (multitasking) seperti MS-Windows 3.0, MS-Windows NT, OS/2 dan Macintosh System 7.
Banyak proses dijalankan bersamaan, masing-masing proses mendapat bagian memori dan kendali tersendiri. Program yang dijalankan bersifat :
1.     Tidak bergantung (Independent)
Proses terpisah satu dari lainnya & tidak berpengaruh
2.    Satu program pada satu saat (one program at any instant)
Pada satu waktu hanya satu proses yang dilayani pemroses, menggunakan interleave bukan overlap diantara program-program
Oleh karena perpindahan dari satu proses ke proses dilakukan secara cepat bagi bagi pemakai seolah-olah bekerja secara paralel. Hal ini dikenal dengan paralel semu (pseudoparallelism).

2. MULTIPROCESSING
Multiprocessing adalah manajemen banyak proses di komputer multiprocessor (banyak pemroses di dalamnya). Dengan kata lain komputer dengan banyak pemroses di satu sistem komputer dengan masing-masing pemroses melakukan pemrosesan secara independen.   Dulunya sistem ini hanya terdapat di sistem besar, mainframe dan minikomputer. Saat ini komputer workstation telah dapat dilengkapi multiprocessor. Menggunakan komputer semaksimal mungkin dengan beberapa CPU sehingga beberapa program bisa dijalankan secara bersama-sama, masing-masing dengan menggunakan prosesornya sendiri-sendiri. Sistem operasi yang mendukung multiprocessing yaitu : Microsoft Windows NT, UNIX, Linux. 



3.     3. DISTRIBUTED PROCESSING / COMPUTING
Distributed Processing adalah manajemen banyak proses yang dieksekusi di banyak sistem komputer yang tersebar (terdistribusi). Trend masa datang adalah menuju komputasi tersebar (distributed computing). Banyak riset dan pengembangan sistem operasi tersebar di antaranya AMOEBA, MACH, dan sebagainya.

4.     4. PEMROSES
Kebutuhan utama pengendalian proses oleh Sistem Operasi dapat dinyatakan dengan mengacu ke proses yaitu :
1.     Saling melanjutkan (Interleave).
Dikatakan interleave (bersambung/ melanjutkan) maksudnya pemroses mengeksekusi satu proses setiap saat dan secara cepat beralih ke proses lainnya secara bergiliran. Sistem Operasi harus interleave (saling melanjutkan) eksekusi proses-proses agar memaksimumkan penggunaan pemroses sambil masih memberi waktu tanggap yang memadai.
2.    Mengikuti kebijaksanaan tertentu.
Sistem Operasi harus mengalokasikan sumber daya ke proses-proses mengikuti kebijaksanaan yang ditentukan (misal suatu aplikasi memiliki prioritas lebih tinggi) sambil menghindari deadlock .
3.    Mendukung komunikasi antar proses dan penciptaan proses.
Sistem Operasi harus mendukung komunikasi antar proses dan penciptaan proses oleh pemakai sehingga membantu menstrukturkan aplikasi. Jadi pada sistem dengan banyak proses aktif, proses-proses pada satu saat berada dalam beragam tahap eksekusinya yaitu proses mengalami beragam state selama siklus hidupnya sebelum berakhir dan keluar dari sistem.
Sistem Operasi harus mengetahui state masing-masing proses dan merekam semua perubahan yang terjadi secara dinamis. Informasi ini untuk penjadwalan dan memutus
4.    memutuskan alokasi sumber daya.

5. DIAGRAM STATE DASAR
Status proses atau bagian keadaan proses memiliki tiga elemen. yaitu:
1.     Running
Running / kerja, benar-benar menggunakan CPU pada saat itu (sedang mengeksekusi instruksi proses itu).
Ada tiga 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 permintaan M / K) maka proses tersebut akan menunggu event tersebut selesai dan proses berstatus Waiting.
2.    Blocked
Blocked / terhenti, tidak dapat berjalan sampai kegiatan eksternal terlaksana (proses menunggu kejadian untuk melengkapi tugasnya) Bisa berupa proses menunggu : Selesainya operasi perangkat I/O; Tersedianya memori; Tibanya pesan jawaban
3.    Ready
Ready / siap, proses siap dikerjakan tetapi menunggu giliran dengan proses lain yang sedang dikerjakan (bisa berjalan, sementara berhenti untuk memungkinkan proses lain dikerjakan).

Gambar Diagram State 3 Keadaan
Keterangan:
·         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
Dalam status proses terdapat dua status tambahan, yaitu saat pembentukan danterminasi:
·         New adalah status yang dimiliki pada saat proses baru saja dibuat.
·         Terminated adalah status yang dimiliki pada saat proses telah selesai dieksekusi.
  1. PCB (Program Control Block)
Sistem Operasi memerlukan banyak informasi mengenai proses guna pengelolaan proses. Informasi ini ada di PCB. PCB berisikan banyak bagian dari informasi yang berhubungan dengan sebuah proses yang spesifik, yaitu:

Gambar Diagram PCB
Struktur datanya menyimpan informasi lengkap mengenai proses sehingga dapat terjadi siklus hidup proses. Informasi di PCB dikelompokkan menjadi 3, yaitu :
1.     Informasi Identifikasi Proses
2.    Informasi Status Pemroses
3.    Informasi Kendsali Proses


  
Gambar Tabel Informasi PCB 

6.    6. PROSES PEMAKAI
Proses Pemakai mempunyai struktur berisi PCB, stack pemakai (user stack), ruang alamat proses ekslusif dan ruang alamat yang dipakai bersama proses lain. Struktur ini ditunjukkan pada tabel sebelumnya. Pada tabel diatas, struktur citra proses digambarkan kontinyuu (berturutan) di satu ruang alamat. Implementasi penempatan citra proses yang sesungguhnya bergantung skema manajemen memori yang digunakan dan organisasi struktur kendali sistem operasi.

Gambar Diagram Proses Pemakai
  1. OPERASI – OPERASI PADA PROSES
    1. Operasi – operasi terhadap proses
Sistem Operasi dalam mengelola proses dapat melakukan operasi-operasi terhadap proses. Operasi-operasi terhadap proses antara lain :
  1. proses (create process)
·         Penciptaan
·         Penghancuran/terminasi proses (destroy a process)
·         Penundaan proses (suspend a process)
·         Pelanjutan kembali proses (resume process)
·         Pengubahan prioritas proses
·         Memblok proses
·         Membangunkan proses
·         Menjadwalkan proses
·         Memungkinkan proses berkomunikasi dengan proses lain
1.     Penciptaan Proses
Pada penciptaan proses melibatkan banyak aktivitas, yaitu
1.     Menamai (memberi identitas) proses
2.    Menyisipkan proses pada senarai proses atau tabel proses
3.    Menentukan prioritas awal proses
4.    Menciptakan PCB
5.    Mengalokasikan sumberdaya awal bagi proses
Ketika proses baru ditambahkan, SO membangun struktur data untuk mengelola dan alokasi ruang alamat proses itu. Aksi ini berkaitan dengan proses baru.
Penyebab penciptaan proses antara lain :
·         Pada lingkungan batch, sebagai tanggapan atas pemberian satu kerja (job).
·         Pada lingkungan interaktif, ketika pemakai baru berusaha log on.
·         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.
1. Alasan – alasan penciptaan proses
Alasan penciptaan proses memiliki penyebab dan deskripsi seperti yang tercantum pada tabel di bawah ini:

Gambar Tabel Alasan – Alasan Penciptaan Proses
2.                               2. Penghancuran Proses (destroy a process)
Penghancuran proses melibatkan pembebasan proses dari sistem, yaitu: Sumber daya-sumber daya yang dipakai dikembalikan, Proses dihancurkan dari senarai atau tabel system, PCB dihapus (ruang memori PCB dikembalikan ke pool memori bebas )
Penghancuran lebih rumit bila proses telah menciptakan proses-proses lain. Terdapat dua pendekatan. Pendekatan pertama ada beberapa sistem, proses-proses turunan dihancurkan saat proses induk dihancurkan secara otomatis.Pendekatan kedua beberapa sistem lain menganggap proses anak independen terhadap proses induk Proses anak tidak secara otomatis dihancurkan saat proses induk dihancurkan.
Dibawah ini adalah tabel alasan – alasan pengahncuran proses.
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
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, seperti 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)
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
Gambar Tabel Alasan – Alasan Penghancuran Proses
3.                                       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.                                      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 masalab diselesaikan. Pemakai yang ragu / khawatir mengenai basil 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 dapal di-suspend dan di- resume saat beban kembali ke tingkat normal.
5.                                           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 membual proses ready atau suspendedready? Bukankah state blocked, readyblocked, suspendedblocked sama-sama tidak mendapatjatah waktu pemroses? Kenapa dibedakan ?. Jawabannya adalah 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.

Gambar Diagram State Lanjut

6.                                6. Penjadwalan Proses
Kriteria untuk mengukur dan optimasi kinerja penjadwalan :
1.     Adil (fairness)
Adalah proses-proses yang diperlakukan sama, yaitu mendapat jatah waktu  pemroses yang sama dan tak ada proses yang tak kebagian layanan pemroses sehingga mengalami kekurangan waktu.
2.    Efisiensi (eficiency)
Efisiensi atau utilisasi pemroses dihitung dengan perbandingan (rasio) waktu sibuk pemroses.
3.    Waktu tanggap (response time)
Waktu tanggap berbeda untuk :
·         Sistem interaktif
Didefinisikan sebagai waktu yang dihabiskan dari saat karakter terakhir dari . perintah dimasukkan atau transaksi sampai hasil pertama muncul di layar. Waktu tanggap ini disebut terminal response
time.
·         Sistem waktu nyata
Didefinisikan sebagai waktu dari saat kejadian (internal atau eksternal) sampai instruksi pertama rutin layanan yang dimaksud dieksekusi, disebut event response time.
·         Turn around time
Adalah waktu yang dihabiskan dari saat program atau job mulai masuk ke sistem sampai proses diselesaikan sistem. Waktu yang dimaksud adalah waktu yang dihabiskan di dalam sistem, diekspresikan sebagai penjumlah waktu eksekusi (waktu pelayanan job) dan waktu menunggu, yaitu : Turn arround time = waktu eksekusi + waktu menunggu.
·         Throughput
Adalah jumlah kerja yang dapat diselesaikan dalam satu unit waktu. Cara untuk mengekspresikan throughput adalah dengan jumlah job pemakai yang dapat dieksekusi dalam satu unit/interval waktu
7.                                7. SINKRONISASI
Komunikasi antara proses membutuhkan place by calls untuk mengirim dan menerima data primitive. Terdapat design yang berbeda-beda dalam implementasi setiap primitive. Pengiriman pesan mungkin dapat diblok (blocking) atau tidak dapat dibloking (nonblocking) – juga dikenal dengan nama sinkron atau asinkron.
  • ·         Pengiriman yang diblok : Proses pengiriman di blok sampai pesan diterima oleh proses penerima (receiving process) atau oleh mailbox.
  • ·         Pengiriman yang tidak diblok : Proses pengiriman pesan dan mengkalkulasi operasi.
  • ·         Penerimaan yang diblok : Penerima mem blok sampai pesan tersedia.
  • ·         Penerimaan yang tidak diblok : Penerima mengembalikan pesan valid atau null.
Ketika dalam keadaan sinkron, terjadi dua kejadian:
  • ·         Blocking send, yaitu pemblokiran pengirim sampai pesan sebelumnya diterima.
  • ·         Blocking receive, yaitu pemblokiran penerima sampai terdapat pesan yang akan dikirim.
Sedangkan untuk keadaan asinkron, yang terjadi adalah:
  • ·         Non-blocking send, yaitu pengirim dapat terus mengirim pesan tanpa memperdulikan apakah pesan sebelumnya sampai atau tidak.
  • ·         Non-blocking receive, yaitu penerima menerima semua pesan baik berupa pesan yang valid atau pesan yang salah (null).
8.                              8. KOMUNIKASI ANTAR PROSES

(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. 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).
1.     Komunikasi Langsung
Setiap proses yang ingin berkomunikasi harus memiliki nama yang bersifat eksplisit baik penerimaan atau pengirim dari komunikasi tersebut. Dalam konteks ini, pengiriman dan penerimaan pesan secara primitive dapat dijabarkan sebagai :
  • ·         Send (P, message) – mengirim sebuah pesan ke proses P.
  • ·         Receive (Q, message) – menerima sebuah pesan dari proses Q.

Sebuah jaringan komunikasi pada bahasan ini memiliki beberapa sifat, yaitu :
  • ·         Sebuah jaringan yang didirikan secara otomatis diantara setiap pasang dari proses yang ingin dikomunikasikan.Proses tersebut harus mengetahui identitas dari semua yang ingin dikomunikasikan.
  • ·         Sebuah jaringan adalah terdiri dari penggabungan 2 proses.
  • ·         Diantara setiap pesan dari proses terdapat tepat sebuah jaringan.
Pembahasan ini memperlihatkan sebuah cara simetris dalam pemberian alamat. Oleh karena itu, baik keduanya yaitu pengirim dan penerima proses harus memberi nama bagi yang lain untuk berkomunikasi, hanya pengirim yang memberikan nama bagi penerima sedangkan penerima tidak menyediakan nama bagi pengirim. Dalam konteks ini, pengirim dan penerima secara sederhana dapat dijabarkan sebagai :
·         Send (P, message) – mengirim sebuah pesan kepada proses P.
·         Receive (id, message) – menerima sebuah pesan dari semua proses. Variabel id diatur sebagai nama dari proses dengan komunikasi.
2.    Komunikasi Tidak Langsung
Dengan komunikasi tidak langsung, pesan akan dikirimkan pada dan diterima dari / melalui mailbox (Kotak Surat) atau terminal-terminal, sebuah mailbox dapat dilihat secara abstrak sebagai sebuah objek didalam setiap pesan yang dapat ditempatkan dari proses dan dari setipap pesan yang bias dipindahkan. Setiap kotak surat memiliki sebuah identifikasi (identitas) yang unik, sebuah proses dapat berkomunikasi dengan beberapa proses lain melalui sebuah nomor dari mailbox yang berbeda. Dua proses dapat saling berkomunikasi apabila kedua proses tersebut sharing mailbox. Pengirim dan penerima dapat dijabarkan sebagai :
  • ·         Send (A, message) – mengirim pesan ke mailbox A.
  • ·         Receive (A, message) – menerima pesan dari mailbox A.
Dalam masalah ini, link komunikasi mempunyai sifat sebagai berikut :

  • ·         Sebuah link dibangun diantara sepasang proses dimana kedua proses tersebut membagi mailbox.
  • ·         Sebuah link mungkin dapat berasosiasi dengan lebih dari 2 proses.
  • ·         Diantara setiap pasang proses komunikasi, mungkin terdapat link yang berbeda-beda, dimana setiap link berhubungan pada satu mailbox.
Misalkan terdapat proses P1, P2 dan P3 yang semuanya share mailbox. Proses P1 mengirim pesan ke A, ketika P2 dan P3 masing-masing mengeksekusi sebuah kiriman dari A. Proses mana yang akan menerima pesan yang dikirim P1?. Jawabannya tergantung dari jalur yang kita pilih :
  • ·         Mengijinkan sebuah link berasosiasi dengan paling banyak 2 proses.
  • ·         Mengijinkan paling banyak 1 proses pada suatu waktu untuk mengeksekusi hasil kiriman (receive operation).
  • ·         Mengijinkan sistem untuk memilih secara mutlak proses mana yang akan menerima pesan (apakah itu P2 atau P3 tetapi tidak keduanya, tidak akan menerima pesan). Sistem mungkin mengidentifikasi penerima kepada pengirim.
Mailbox mungkin dapat dimiliki oleh sebuah proses atau sistem operasi. Jika mailbox dimiliki oleh proses, maka kita mendefinisikan antara pemilik (yang hanya dapat menerima pesan melalui mailbox) dan pengguna dari mailbox (yang hanya dapat mengirim pesan ke mailbox). Selama setiap mailbox mempunyai kepemilikan yang unik, maka tidak akan ada kebingungan tentang siapa yang harus menerima pesan dari mailbox. Ketika proses yang memiliki mailbox tersebut diterminasi, mailbox akan hilang. Semua proses yang mengirim pesan ke mailbox ini diberi pesan bahwa mailbox tersebut tidak lagi ada.
Dengan kata lain, mempunyai mailbox sendiri yang independent, dan tidak melibatkan proses yang lain. Maka sistem operasi harus memiliki mekanisme yang mengijinkan proses untuk melakukan hal-hal dibawah ini :
  • ·         Membuat mailbox baru.
  • ·         Mengirim dan menerima pesan melalui mailbox.
  • ·         Menghapus mailbox.
Proses yang membuat mailbox pertama kali secara default akan memiliki mailbox tersebut. Untuk pertama kali, pemilik adalah satu-satunya proses yang dapat menerima pesan melalui mailbox ini. Bagaimanapun, kepemilikan dan hak menerima pesan mungkin dapat dialihkan ke proses lain melalui sistem pemanggilan.
  • ·         Pengiriman yang diblok : Proses pengiriman di blok sampai pesan diterima oleh proses penerima (receiving process) atau oleh mailbox.
  • ·         Pengiriman yang tidak diblok : Proses pengiriman pesan dan mengkalkulasi operasi.
  • ·         Penerimaan yang diblok : Penerima mem blok samapai pesan tersedia.

·         Penerimaan yang tidak diblok : Penerima mengembalikan pesan valid atau null.

9.                               9.PENGALIHAN PROSES
Kelihatannya pengalihan proses (process switching) adalah sepele. Pada suatu saat, proses running diinterupsi dan sistem operasi memberi proses lain state running dan menggilir kendali ke proses itu.
Dalam hal ini muncul beberapa masalah, yaitu:
·         Kejadiankejadian apa yang memicu alih proses?
·         Masalah lain adalah terdapatnya perbedaan antara alih proses (process switching) dan alih konteks (context switching).
Apa yang harus dilakukan sistem operasi terhadap beragam struktur data yang dibawah kendalinya dalam alih proses?

1.     Kejadiankejadian Penyebab Pengalihan Proses
Kejadiankejadian yang menyebabkan terjadinya alih proses adalah:

1.     Interupsi sistem.
Interupsi sistem disebabkan kejadian eksternal dan tak bergantung proses yang saat itu sedang running.
Contoh : Selesainya operasi masukan/keluaran.
Pada kejadian interupsi, kendali lebih dulu ditransfer ke interrupt handler yang melakukan penyimpanan datadata dan kemudian beralih ke rutin sistem operasi yang berkaitan dengan tipe interupsi itu.
Tipetipe interupsi antara lain:
  • ·         Interupsi clock (clock interrupt).
Sistem operasi (penjadwal) menentukan apakah proses yang sedang running telah mengeksekusi selama jatah waktunya. Jika telah mencapai jatahnya maka proses dialihkan ke state ready dan proses lain dijadwalkan running.
  • ·         Interupsi masukanlkeluaran (110 interrupt).
Kejadian dimana peralatan masukan/keluaran melakukan interupsi meminta layanan sistem operasi. Sistem operasi segera menentukan aksiaksi masukan keluaran yang harus dilakukan.
  • ·         Page/memory fault.
Pernroses menemui pengacuan alamat memori maya yang tidak terdapat di memori utarna (fisik). Sistem operasi segera memerintahkan untuk mengambil page yang terdapat alamat yang dimaksud untuk dipindah ke memori utama.
2.    Trap.
Trap adalah interupsi karena terjadinya kesalahan atau kondisi kekecualian (exception conditions) yang dihasilkan proses yang running, seperti usaha illegal dalam mengakses file.
Dengan adanya trap, sistem operasi menentukan apakah kesalahan yang dibuat merupakan kesalahan fatal?
  • ·         Jika fatal, proses yang saat itu running disingkirkan dan terjadi alih proses.
  • ·         Jika kesalahan tidak fatal maka bergantung sifat kesalahan dan rancangan sistern operasi. Kemungkinan yang dilakukan adalah menjalankan prosedur pemulihan atau memperingatkan ke pemakai.
Saat terjadi trap, mungkin terjadi pengalihan proses mungkin pula resume proses.
3.    Supervisor call.
Supervisor call yaitu panggilan meminta atau mengaktifkan bagian sistem operasi.
Contoh : Proses pemakai running meminta layanan masukan keluaran seperti membuka file. Panggilan ini menghasilkan transfer ke rutin bagian sistem operasi. Biasanya, penggunaan system call membuat proses pemakai blocked karena diaktifkan proses kernel (sistem, operasi).

4.    Pengalihan Proses dan Pengalihan Konteks
Banyak buku teks sistem operasi menyamakan antara pengalihan proses (process switching) dan pengalihan konteks (contextswitching). Tidak terdapat istilah untuk aksi penanganan interupsi. Kita membedakan antara istilah pengalihan proses dan pengalihan konteks.
·  5. Pengalihan Konteks
Pengalihan konteks dapat terjadi tanpa pengalihan state proses yang sedang running, sedang pengalihan proses pasti melibatkan juga pengalihan konteks.
Siklus penanganan interupsi adalah :
1. Pemroses menyimpan konteks program saat itu yang sedang dieksekusi ke stack.
2. Pemroses menset register PC dengan alamat awal program untuk interrupt handler.
Setelah kedua aktivitas itu, pemroses melanjutkan menjalankan instruksiinstruksi berikutnya & interrupt handler yang melayani interupsi. Pelaksanaan interupsi ini belum tentu mengakibatkan pengalihan ke proses lain yaitu pengalihan PCB proses dari senarai running ke senarai lain (blocked, ready, dan sebagainya), dan sebaliknya. Kita menyebut pengalihan konteks adalah untuk pengalihan sementara yang singkat, misalnya untuk mengeksekusi program interrupt handler.
Setelah selesai penanganan interupsi maka konteks yang terdapat pada stack dikembalikan sehingga kembali ke konteks proses semula tanpa terjadi pengalihan ke proses lain.
Pengalihan proses terjadi jika proses yang running beralih menjadi state lain (ready, blocked, dan sebagainya), kemudian sistem operasi harus membuat perubahanperubahan berarti terhadap lingkungannya.






0 komentar:

Posting Komentar