1. Penciptaan Proses ( Create Of Process )
- 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 sumberdaya awal bagi proses
- Kejadian yang dapat menyebabkan penciptaan proses a.l. :
- Pada lingkungan batch, sebagai tanggapan atas pemberian suatu kerja (job)
- Pada lingkungan interaktif, ketika pemakai baru berusaha logon
- Sebagai tanggapan suatu aplikasi, seperti permintaan pencetakan file, SO dapat menciptakan proses yang akan mengelola pencetakan itu
- Proses menciptakan proses lain (proses anak)
- Proses yang menciptakan child process disebut proses induk (parent process)
- Child process dapat menciptakan proses baru.
- Proses-proses dapat membentuk pohon hirarki proses
TABEL ALASAN CREATE PROCESS
Penyebab Penciptaan | Deskripsi |
| Terdapat batch job 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 |
SO 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 mengeksploitasi kongkuransi, program pemakai memerintahkan pembuatan sejumlah proses |
2. Penghancuran/Terminasi Process (Destory a Process)
- 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 bebas)
- Penghancuran lebih rumit bila proses telah menciptakan proses-proses lain. Terdapat dua pendekatan, yaitu
- Pada beberapa sistem, proses-proses turunan dihancurkan saat proses-proses induk dihancurkan secara otomatis
- Beberapa sistem lain menganggap proses anak independen terhadap proses induk sehingga proses anak tidak secara otomatis dihancurkan saat proses induk dihancurkan
TABEL ALASAN TERMINATE PROCESS
Penyebab Terminasi | Deskripsi |
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 sistem |
Pelanggaran terhdap batas memori | Proses mencoba mengakses lokasi memori yang tidak diijinkan diakses |
Penyebab Terminasi | Deskripsi |
Terjadi kesalahan karena pelanggaran proteksi | Proses berusaha menggunakan sumberdaya atau file yang tidak diijinkan dipakainya, atau proses mencoba menggunakannya tidak untuk peruntukkannya, 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 dapat diakomodasi oleh perangkat keras |
Waktu telah kadaluarsa | Proses telah menunggu lebih lama daripada daripada maksimum yang ditentukan untuk terjadinya suatu kejadian spesifik |
Terjadi kegagalan I/O | Kesalahan muncul pada input atu output, seperti ketidakmampuan menemukan file, kegagalan read atau write setelah sejumlah maksimum percobaan yang ditentukan (misal: area rusak pada tape, atau operasi tidak valid spt membaca dari line printer) |
Penyebab Terminasi | Deskripsi |
Instruksi yang tidak benar | Proses berusaha mengeksekusi instruksi yang tidak ada (sering sebagai akibat percabangan ke daerah data dan berusaha mengeksekusi data itu) |
Terjadi usaha memakai instruksi yang tidak diizinkan | Proses berusaha menggunakan 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 SO mengakhiri proses (misal : terjadi deadlock) |
Berakhirnya proses induk | Ketika induk berakhir, SO mungkin dirancang secara otomatis mengakhiri semua anak proses dari induk tsb. |
Atas permintaan dari proses induk | Proses induk biasanya mempunyai otoritas mengakhiri suatu anak proses |
3. Penundaan Proses
- Penundaan (suspension) adalah operasi penting dan telah diterapkan dengan beragam cara. Penundaan biasanya berlangsung singkat. Penundaan 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 (dilucuti). Keputusan membebaskan sumber daya sumber daya bergantung sifat masing masing sumber daya. Memori utama seharusnya segera dibebaskan begitu proses tertunda agar dapat dimanfaatkan proses lain. Resuming (pengaktifan kembali) proses yaitu menjalankan proses dari titik (instruksi) dimana proses ditunda.
Pengaktifan Kembali proses maksudnya yaitu Menjalankan proses dari titik (instruksi) dimana proses ditunda
5. Pengubahan Prioritas Proses
Merupakan kumpulan kebijaksanaan didalam sitem operasi yang berkaitan dengan urutan kerja yang dilakukan sistem computer, penjadwalan juga bertugas untuk memutuskan :
-Proses yang harus berjalan
-Kapan dan selama berapa lama proses berjalan.
Multiprogramming bertujuan untuk memaksimalkan penggunaan CPU dengan cara mengatur alokasi waktu yang digunakan oleh CPU, sehingga proses berjalan sepanjang waktu dan memperkecil waktu idle.
- Ketika sebuah proses memasuki sistem, proses itu diletakkan di dalam job queue
- proses yang berada pada memori utama, siap dan menunggu untuk dieksekusi disimpan dalam sebuah daftar yang bernama ready queue
- Antrian ini biasanya disimpan sebagai linked list.
- Header ready queue berisi pointer untuk PCB pertama & PCB terakhir pada list.
- Ketika sebuah proses dialokasikan ke CPU, proses tersebut berjalan sebentar lalu berhenti, di-interupsi, atau menunggu suatu hal tertentu, seperti selesainya suatu permintaan I/O.
- Daftar dari proses-proses yang menunggu peralatan I/O tertentu disebut dengan device queue.
- peralatan memiliki device queue-nya masing-masing
6. Memblock Proses
Komunikasi antara proses membutuhkan place by calls untuk mengirim dan menerima data primitive. Terdapat rancangan 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 samapai pesan tersedia.
- Penerimaan yang tidak diblok: Penerima mengembalikan pesan valid atau null.
- Buffering
Baik komunikasi itu langsung atau tak langsung, penukaran pesan oleh proses memerlukan antrian sementara. Pada dasarnya, terdapat tiga jalan dimana antrian tersebut diimplementasikan:
- Kapasitas nol (zero capacity): antrian mempunyai panjang maksimum 0, maka link tidak dapat mempunyai penungguan pesan (message waiting). Dalam kasus ini, pengirim harus memblok sampai penerima menerima pesan.
- Kapasitas terbatas (Bounded capacity): antrian mempunyai panjang yang telah ditentukan, paling banyak pesan dapat dimasukkan. Jika antrian tidak penuh ketika pesan dikirimkan, pesan yang baru akan menimpa, dan pengirim pengirim dapat melanjutkan eksekusi tanpa menunggu. Link mempunyai kapasitas terbatas.
- Jika link penuh, pengirim harus memblok sampai terdapat ruang pada antrian.
- Kapasitas tak terbatas(Unbounded capacity): antrian mempunyai panjang yang tak terhingga, maka, semua pesan dapat menunggu disini. Pengirim tidak akan pernah di blok.
Suatu pendekatan kejuteraan sistematik tekini untuk menganilisis masalah dan menambah baik kualiti produk atau proses. Kajian ini hanya memfokuskan kepada masalah proses pengeluaran dan penambahbaikan ke atas proses pengeluaran lampin pakai buang (diaper). Kajian ini dilakukan ke atas salah satu mesin (Mesin Technipro) pembuat lampin pakai buang. Kombinasi kawalan proses statistik dan pendekatan lain seperti Kepner Tregoe, Poka Yoke, SMED, zero setting, centerlining, F1 Pit Stop dan rakaman video digunakan untuk melakukan penambahbaikan. Ukuran masa perjalanan mesin, masa mesin berhenti akibat mengalami kerosakan, masa penyelenggaraan mesin, peratus kecekapan mesin, peratus produk yang dihasilkan dalam sejam, peratus masa lengah mesin dan peratus kecacatan yang terhasil digunakan bagi membandingkan hasil dari proses penambahbaikan yang dijalankan. Kajian ini telah berjaya membangunkan dan mereka bentuk sistem pembangunan proses bagi memperbaiki proses- proses yang sedia ada.
Merupakan kumpulan kebijaksanaan didalam sitem operasi yang berkaitan dengan urutan kerja yang dilakukan sistem computer, penjadwalan juga bertugas untuk memutuskan :
-Proses yang harus berjalan
-Kapan dan selama berapa lama proses berjalan.
Multiprogramming bertujuan untuk memaksimalkan penggunaan CPU dengan cara mengatur alokasi waktu yang digunakan oleh CPU, sehingga proses berjalan sepanjang waktu dan memperkecil waktu idle.
- Ketika sebuah proses memasuki sistem, proses itu diletakkan di dalam job queue
- proses yang berada pada memori utama, siap dan menunggu untuk dieksekusi disimpan dalam sebuah daftar yang bernama ready queue
- Antrian ini biasanya disimpan sebagai linked list.
- Header ready queue berisi pointer untuk PCB pertama & PCB terakhir pada list.
- Ketika sebuah proses dialokasikan ke CPU, proses tersebut berjalan sebentar lalu berhenti, di-interupsi, atau menunggu suatu hal tertentu, seperti selesainya suatu permintaan I/O.
- Daftar dari proses-proses yang menunggu peralatan I/O tertentu disebut dengan device queue.
- peralatan memiliki device queue-nya masing-masing
- Proses yang Kooperatif
Proses yang bersifat simultan (concurrent) dijalankan pada sistem operasi dapat dibedakaan menjadi yaitu proses independent dan proses kooperatif. Suatu proses dikatakan independen apabila proses tersebut tidak dapat terpengaruh atau dipengaruhi oleh proses lain yang sedang dijalankan pada sistem.
Berarti, semua proses yang tidak membagi data apa pun (baik sementara/ tetap) dengan proses lain adalah independent. Sedangkan proses kooperatif adalah proses yang dapat dipengaruhi atau pun terpengaruhi oleh proses lain yang sedang dijalankan dalam sistem. Dengan kata lain, proses dikatakan kooperatif bila proses dapat membagi datanya dengan proses lain. Ada empat alasan untuk penyediaan sebuah lingkungan yang memperbolehkan terjadinya proses kooperatif:
1. Pembagian informasi: apabila beberapa pengguna dapat tertarik pada bagian
informasi yang sama (sebagai contoh, sebuah berkas bersama), kita harus
menyediakan sebuah lingkungan yang mengizinkan akses secara terus menerus ke tipe dari sumber-sumber tersebut.
2. Kecepatan penghitungan/ komputasi: jika kita menginginkan sebuah tugas khusus
untuk menjalankan lebih cepat, kita harus membagi hal tersebut ke dalam subtask,
setiap bagian dari subtask akan dijalankan secara parallel dengan yang lainnya.
Peningkatan kecepatan dapat dilakukan hanya jika komputer tersebut memiliki elemen-elemen pemrosesan ganda (seperti CPU atau jalur I/O).
3. Modularitas: kita mungkin ingin untuk membangun sebuah sistem pada sebuah
model modular-modular, membagi fungsi sistem menjadi beberapa proses atau
threads.
4. Kenyamanan: bahkan seorang pengguna individu mungkin memiliki banyak tugas
untuk dikerjakan secara bersamaan pada satu waktu. Sebagai contoh, seorang
pengguna dapat mengedit, memcetak, dan meng-compile secara paralel.
- . Komunikasi Proses Dalam Sistem
Cara lain untuk meningkatkan efek yang sama adalah untuk sistem operasi yaitu untuk menyediakan alat-alat proses kooperatif untuk berkomunikasi dengan yang lain lewat sebuah komunikasi dalam proses (IPC = Inter-Process Communication). IPC menyediakan sebuah mekanisme untuk mengizinkan proses- proses untuk berkomunikasi dan menyelaraskan aksi-aksi mereka tanpa berbagi ruang alamat yang sama. IPC adalah khusus digunakan dalam sebuah lingkungan yang terdistribusi dimana proses komunikasi tersebut mungkin saja tetap ada dalam komputer-komputer yang berbeda yang tersambung dalam sebuah jaringan. IPC adalah penyedia layanan terbaik dengan menggunakan sebuah sistem penyampaian pesan, dan sistem- sistem pesan dapat diberikan dalam banyak cara.
- Sistem Penyampaian Pesan
Fungsi dari sebuah sistem pesan adalah untuk memperbolehkan komunikasi satu dengan yang lain tanpa perlu menggunakan pembagian data. Sebuah fasilitas IPC menyediakan paling sedikit dua operasi yaitu kirim (pesan) dan terima (pesan). Pesan dikirim dengan sebuah proses yang dapat dilakukan pada ukuran pasti atau variabel. Jika hanya pesan dengan ukuran pasti dapat dikirimkan, level sistem implementasi adalah sistem yang sederhana. Pesan berukuran variabel menyediakan sistem implementasi level yang lebih kompleks.
Berikut ini ada beberapa metode untuk mengimplementasikan sebuah jaringan dan operasi pengiriman/penerimaan secara logika:
- Komunikasi langsung atau tidak langsung.
- Komunikasi secara simetris/ asimetris.
- Buffer otomatis atau eksplisit.
- Pengiriman berdasarkan salinan atau referensi.
- Pesan berukuran pasti dan variabel.
- Komunikasi Langsung
Proses-proses yang ingin dikomunikasikan harus memiliki sebuah cara untuk memilih satu dengan yang lain. Mereka dapat menggunakan komunikasi langsung/ tidak 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 dua 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.
- 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 setiap pesan yang bisadipindahkan. 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 dua 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:
- Mengizinkan sebuah link berasosiasi dengan paling banyak 2 proses.
- Mengizinkan paling banyak satu proses pada suatu waktu untuk mengeksekusi hasil kiriman (receive operation).
- Mengizinkan 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 mengizinkan 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. Bagaimana pun, kepemilikan dan hak menerima pesan mungkin dapat dialihkan ke proses lain melalui sistem pemanggilan.


