Process
Proses dalam sistem operasi berisi intruksi, data, program counter, register pemroses, stack data, alamat pengiriman dan variabel pendukung lainnya.Terdapat beberapa definisi mengenai proses, antara lain :
- Merupakan konsep pokok dalam sistem operasi, sehingga masalah manajenem proses adalah masalah utama dalam perancangan sistem operasi.
- Proses adalah program yang sedang di eksekusi.
- Proses adalah unit kerja terkecil yang secara individu memiliki sumber daya dan dijadwalkan oleh sistem operasi.
Peran sistem
operasi dalam kegiatan proses adalah mengelola semua proses di sistem dan
mengalokasikan sumber daya ke proses tersebut. Banyak proses yang dijalankan
bersamaan, dimana setiap proses mendapat bagian memori dan kendali
sendiri-sendiri (peran SO), sehingga setiap proses (program) memiliki prinsip :
- Independent, yang artinya program-program tersebut berdiri sendiri, terpisah dan saling tidak bergantung.
- One program at any instant, artinya hanya terdapat satu proses yang dilayani pemroses pada satu saat.
Dalam multiprogramming, teknik penanganan proses adalah dengan mengeksekusi satu proses dan secara cepat beralih ke proses lainnya (bergiliran), Sehingga menimbulkan efek paralel semu (pseudoparallelism).
Status (state) proses
Sebuah proses akan mengalami serangkaian state diskrit. Beragam kejadian dapat menyebabkan perubahan state proses. Tiga state tersebut adalah sebagai berikut :
Status (state) proses
Sebuah proses akan mengalami serangkaian state diskrit. Beragam kejadian dapat menyebabkan perubahan state proses. Tiga state tersebut adalah sebagai berikut :
- Running, Proses sedang mengeksekusi instruksi proses.
- Ready, Proses siap dieksekusi, tetapi roses tidak tersedia untuk eksekusi proses ini.
- Blocked, Proses menunggu kejadian untuk melengkapi tugasnya.
Proses yang baru diciptakan akan mempunyai status ready :
- Proses berstatus running menjadi blocked, karena sumbar daya yang diminta belum tersedia atau meminta layanan perangkat masukan/keluaran, sehingga menunggu kejadian muncul. Proses menunggu kejadian alokasi sumber daya atau selesainya layanan perangkat masukan/keluaran (event wait).
- Proses berstatus running menjadi ready, karena penjadwal memutuskan eksekusi proses lain karena jatah waktu untuk proses tersebut telah habis (time out).
- Proses berstatus blocked menjadi ready, saat sumber daya yang diminta/ diperlukan telah tersedia atau layanan perangkat masukan/keluaran selesai.
- Proses berstatus ready menjadi running, karena penjadwal memutuskan penggunaan pemroses untuk proses itu karena proses yang saat itu running berubah statenya menjadi ready atau blocked
Operasi-operasi pada proses
1. Penciptaan proses
Melibatkan banyak aktivitas yaitu :
1. Penciptaan proses
Melibatkan banyak aktivitas yaitu :
- Memberi identitas proses.
- Menyisipkan proses pada tabel proses.
- Menentukan prioritas awal proses.
- Menciptakan PCB (Program Control Block).
- Mengalokasikan sumber daya awal bagi proses.
Ketika proses baru ditambahkan, sistem operasi membangun struktur data untuk mengelola dan mengalokasikan ruang alamat proses.
Kejadian yang dapat menyebabkan penciptaan proses :
Tahap-tahap penciptaan proses
Penciptaan proses dapat disebabkan beragam sebab. Penciptaan proses meliputi beberapa tahap :
- Beri satu identifier unik ke prose baru. Isian baru ditambahkan ke tabel proses utama yang berisi satu isian perproses.
- Alokasikan ruang untuk proses.
- PCB harus diinisialisasi.
- Kaitan-kaitan antar tabel dan senarai tang cocok dibuat.
- Bila diperlukan struktur data lain maka segera dibuat struktur data itu.
2. Penghancuran proses
Penghancuran proses melibatkan pembebasan proses dari sistem, yaitu :
- Sumber daya yang dipakai dikembalikan.
- Proses dihancurkan dari senarai atau tabel sistem.
- PCB dihapus (ruang memori PCB dikembalikan ke pool memori bebas).
Penghancuran lebih rumit bila proses telah menciptakan proses-proses lain. Terdapat dua pendekatan, yaitu :
- Pada beberapa sistem, proses-proses tutunan dihancurkan saat proses induk dihancurkan secara otomatis.
- Beberapa sistem lain menganggap proses untuk independen terhadap proses induk, sehingga proses anak tidak secara otomatis dihancurkan saat proses induk dihancurkan.
Implementasi proses adalah tiap proses yang berjalan melalui state proses dan dicatat dalam sistem operasi yang di kelompokkan kedalam beragam tabel. Berikut 4 tabel di antaranya :
1.Tabel Memori
Menjaga keutuhan antara memori utama dan memori sekunder yang menyimpan informasi tentang :
- Alokasi memori utama yang dipakai proses.
- Alokasi memori sekunder yang dipakai proses.
- Atribut segmen memori utama dan sekunder.
- Informasi-informasi lain yang digunakan untuk pengolahan memori.
2.Tabel Input/Output
Pada waktu digunakan proses tertentu dijaga agar tidak digunakan proses lain yang menyimpan informasi tentang :
- status Operasi I/O.
- Lokasi memori utama.
- Transfer data dengan perangkat I/O.
3.Tabel Informasi sistem file
Berisi informasi mengenai ektensi berkas, lokasi pada memori sekunder, status saat itu & atribut lainnya.
4.Tabel Proses
Untuk mengelola informasi proses di sistem operasi, lokasinya di memori, status dan atribut proses lainnya.
Threads
Thread dalam sistem operasi dapat diartikan sebagai sekumpulan perintah yang dapat dieksekusi secara sejajar dengan thread lainnya dengan menggunakan cara time slice atau multiprocess.
Thread sebenarnya mirip dengan process, akan tetapi cara berbagi sumber daya antara process dengan thread sangat berbeda. Multithread dapat dilaksanakan secar sejajar pada sistem komputer. Secara umum multithreading melakukan time slicing, dimana sebuah CPU bekerja pada thread yang berbeda, dimana suatu kasus ditangani tidak sepenuhnya secara serempak, untuk CPU tunggal pada dasarnya benar-benar melakukan sebuah pekerjaan pada satu waktu.
Model Threading
1.Kernel Thread
Kernel thread didukung langsung oleh sistem operasi. Pembuatan, penjadwalan, dan managemen thread dilakukan oleh kernel pada kernel space. Pembuatan dan pengaturannya lebih lambat dibanding user thread.
Keuntungannya adalah jika sebuah thread menjalankan blocking system call maka kernel dapat menjadwalkan thread lain di aplikasi untuk melakukan eksekusi.
Keuntungannya adalah jika sebuah thread menjalankan blocking system call maka kernel dapat menjadwalkan thread lain di aplikasi untuk melakukan eksekusi.
2.User thread
User thread didukung di atas kernel dan diimplementasikan oleh thread library pada user level. Library menyediakan fasilitas untuk pembuatan thread, penjadualan thread, dan manajemen thread tanpa dukungan dari kernel.
Adapun kelemahannya yaitu, apabila kernelnua merupakan thread tunggal maka salah satu user-level thread menjalankan blocking system call maka akan mengakibatkan seluruh proses diblok walaupun ada thread lain yang dapat dijalankan dalam aplikasi tersebut.
Pada proses thread terdapat dua jenis thread yaitu :
1.Single Thread Process
Sebuah proses tradisional mempunyai single thread yang berfungsi sebagai pengendali. Dapat diartikan sebagai proses yang bekerja secara berurutan sesuai dengan urutan masing-masing thread dan hanya mengerjakan satu tugas dalam satu waktu.
2.Multithread Process
dapat diartikan juga sebagai suatu proses dengan thread banyak yang dapat mengerjakan lebih dari satu tugas pada satu waktu bersamaan. Multithread serung pula disebut dengan multitasking pada sistem operasi.
Adapun kelemahannya yaitu, apabila kernelnua merupakan thread tunggal maka salah satu user-level thread menjalankan blocking system call maka akan mengakibatkan seluruh proses diblok walaupun ada thread lain yang dapat dijalankan dalam aplikasi tersebut.
Pada proses thread terdapat dua jenis thread yaitu :
1.Single Thread Process
Sebuah proses tradisional mempunyai single thread yang berfungsi sebagai pengendali. Dapat diartikan sebagai proses yang bekerja secara berurutan sesuai dengan urutan masing-masing thread dan hanya mengerjakan satu tugas dalam satu waktu.
2.Multithread Process
dapat diartikan juga sebagai suatu proses dengan thread banyak yang dapat mengerjakan lebih dari satu tugas pada satu waktu bersamaan. Multithread serung pula disebut dengan multitasking pada sistem operasi.
Model multithreading berdasarkan dengan pemetaan dibedakan menjadi tiga bagian yaitu :
- Many to One Model ini memetakan beberapa thread tingkat user ke sebuah thread tingkat kernel. Pengaturan thread dilakukan dalam ruang user sehingga efisien. Hanya satu thread user yang dapat mengakses thread kernel pada satu saat. Kelemahan dari model ini ialah Multiplethread tidak dapat berjalan secara paralel pada multiprosessor.
- One to One Model ini memetakan setiap thread tingkatan user ke setiap thread. One to one menyediakan lebih banyak concurrency dibandingkan model Many to One. Kelemahan model ini adalah setiap pembuatan thread user memerlukan tambahan thread kernel. Karena itu jika mengimplementasikan sistem ini maka akan menurunkan kinerja dari sebuah aplikasi, sehingga thread dibatasi dalam sistem.
- Many to Many Model ini memultipleks kan banyak thread tingkat user ke thread kernel yang jumlahnya sedikit atau sama dengan tingkat user. Model ini mengizinkan developer membuat thread sebanyak yang di inginkan tetapi concurrency tidak dapat diperoleh karena hanya thread yang dapat dijadwalkan oleh kernel pada satu waktu. Keuntungannya ialah kernel thread yang bersangkutan dapat berjalan secara paralel pada multiprosessor.
Keuntungan dari Multithreading
Terdapat empat keuntungan utama dari program yang multithreading, yaitu :
- Responsiveness Membuat aplikasi yang interaktif menjadi multithreading dapat membuat sebuah program terus berjalan meskipun sebagian dari program tersebut diblok atau melakukan operasi yang panjang, kareana itu dapat meningkatkan respons kepada user.
- Resource Sharing Thread berbagi memori dengan sumber daya dengan thread lain yang dimiliki oleh proses yang sama. Keuntungannya yaitu mengizinkan sebuah aplikasi untuk mempunyai beberapa thread yang berbeda dalam lokasi memori yang sama.
- Economy Dalam pembuatan sebuah proses banyak dibutuhkan pengalokasian memori dan sumber daya. Alternatifnya adalah dengan user thread, karena thread berbagi memori dan sumber daya proses yang memilikinya maka akan lebih ekonomis untuk membuat dan context switch thread. Akan sulit untuk mengukur perbedaan waktu antara proses dan thread dalam hal pembuatan pengaturan, tetapi secara umum pembuatan dan pengaturan proses lebuh lama dibandingkan thread.
- Utilization of Multiprocessor Architectures Keuntungan dari multithreading dapat sangat meningkatkan pada arsitektur multiprocessor, dimana setiap thread dapat berjalan secara paralel di atas prosessor yang berbeda. Pada arsitektur prosessor tunggal, CPU menjalankan setiap thread secara bergantian tetapi hal ini berlangsung sangat cepat sehingga menciptakan ilusi paralel, tetapi kenyataannya hanya satu thread yang dijalankan CPU pada satu waktu.
Kerugian dari Threading
adapun kerugian dari multithreading yaitu :
- Jika digunakan secara berlebihan akan berdampak pada pemborosan resource dan CPU yang dialokasikan untuk switching threads.
- Sistem yang memiliki kecepatan prosessor dan memori yang cenderung sama, sehingga tidak ada efisiensi yang hilang (mengacu pada latency), tidak akan memperoleh peningkatan bandwidth yang signifikan jika menggunakan multithreading.
- Multithreading menghasilkan program yang lebih kompleks. Menggukanan multiplethread sendiri tidak akan menciptakan kerumitan, tetapi interaksi antar thread lah yang mengakibatkan kerumitan tersebut.
- Thread yang banyak bisa saling berinteraksi ketika saling berbagi sumber daya hardware, seperti cache.
Implementasi Thread
Thread sering disediakan dalam bentuk paket thread. Paket seperti ini berisi operasi untuk menciptakan dan menghancurkan thread serta operasi tentang singkronisasi variabel seperti mutuxes dan variabel kondisi. Pada dasarnya ada dua pendekatan untuk menerapkan paket thread. Pendekatan pertama adalah untuk membangun library thread yang dieksekusi seluruhnya dalam mode pengguna. Pedekatan yang kedua adalah pemilik kernel harus menyadari thread dan jadwal mereka.
Sebuah perpustakaan thread user-level memiliki sejumlah keunggulan.
Pertama, itu murah untuk menciptakan dan menghancurkan thread. Karena semua administrasi thread disimpan dalam pengguna ruang alamat, harga menciptakan thread terutama ditentukan oleh biaya untuk mengalokasikan memori untuk mengatur tumpukan Thread Analog, menghancurkan thread terutama melibatkan memori untuk membebaskan stack yang tidak lagi digunakan.
kedua operasi yang murah.
Tidak ada komentar:
Posting Komentar