Solusi Untuk Dua Proses
Ada dua jenis solusi masalah critical section, yaitu:
Dengan menggunakan algoritma-alogoritma yang nilai kebenarannya tidak tergantung pada asumsi-asumsi lain, selain bahwa setiap proses berjalan pada kecepatan yang bukan nol.
Tergantung pada beberapa instruksi mesin tertentu, misalnya dengan me-non-aktifkan interupsi atau dengan mengunci suatu variabel tertentu
3. PCB (process control block) dalam Sistem Operasi
Dikutip dari
Adoc bahwa, Sistem operasi adalah seperangkat program yang mengelola sumber daya perangkat keras komputer, dan menyediakan layanan umum untuk aplikasi perangkat lunak. Sistem operasi adalah jenis yang paling penting dari perangkat lunak sistem dalam sistem komputer. Tanpa sistem operasi, pengguna tidak dapat menjalankan program aplikasi pada komputer mereka, kecuali program aplikasi booting. Sistem operasi mempunyai penjadwalan yang sistematis mencakup perhitungan penggunaan memori, pemrosesan data, penyimpanan data, dan sumber daya lainnya.
Untuk fungsi-fungsi perangkat keras seperti sebagai masukan dan keluaran dan alokasi memori, sistem operasi bertindak sebagai perantara antara program aplikasi dan perangkat keras komputer,meskipun kode aplikasi biasanya dieksekusi langsung oleh perangkat keras dan seringkali akan menghubungi OS atau terputus oleh itu. Sistem operasi yang ditemukan pada hampir semua perangkat yang berisi komputer-dari ponsel dan konsol permainan video untuk superkomputer dan server web.
Contoh sistem operasi modern adalah Linux, Android, iOS, Mac OS X, dan Microsoft Windows.
Definisi Proses
Proses adalah program yang sedang dieksekusi. Menurut SilberSchatz, suatu proses adalah lebih dari sebuah kode program, yang terkadang disebut text section . Proses juga mencakup program counter , yaitu sebuah stack untuk menyimpan alamat dari instruksi yang akan dieksekusi selanjutnya dan register.
Sebuah proses pada umumnya juga memiliki sebuah stack yang berisikan data data yang dibutuhkan selama proses dieksekusi (seperti parameter method, alamat return dan variabel lokal), dan sebuah data section yang menyimpan variabel global. Kami tekankan bahwa program itu sendiri bukanlah sebuah proses; suatu program adalah satu entitas pasif; seperti isi dari sebuah berkas yang disimpan didalam disket. Sedangkan sebuah proses dalam suatu entitas aktif, dengan sebuah program counter yang menyimpan alamat instruksi selanjut yang akan dieksekusi dan seperangkat sumber daya ( resource yang dibutuhkan agar sebuah proses dapat dieksekusi. Setiap proses dalam sebuah sistem operasi mendapatkan sebuah PCB (Process Control Block) yang memuat informasi tentang proses tersebut, yaitu: sebuah tanda pengenal proses (Process ID) yang unik dan menjadi nomor identitas, status proses, prioritas eksekusi proses dan informasi lokasi proses dalam memori.
Prioritas proses merupakan suatu nilai atau besaran yang menunjukkan seberapa sering proses harus dijalankan oleh prosesor. Proses yang memiliki prioritas lebih tinggi, akan dijalankan lebih sering atau dieksekusi lebih dulu dibandingkan dengan proses yang berprioritas lebih rendah. Suatu sistem operasi dapat saja menentukan semua proses dengan prioritas yang sama, sehingga setiap proses memiliki kesempatan yang sama. Suatu sistem operasi dapat juga mengubah nilai prioritas proses tertentu, agar proses tersebut akan dapat memiliki kesempatan lebih besar pada eksekusi berikutnya (misalnya: pada proses yang sudah sangat terlalu lama menunggu eksekusi, sistem operasi menaikkan nilai prioritasnya).
4. Distributed Processing
Dikutip dari
Algorit.ma , Bahwa Secara sederhana, dapat dipahami bahwa distributed processing adalah berbagai sistem komputer yang melibatkan lebih dari satu komputer (atau terkadang prosesor) untuk menjalankan suatu aplikasi. Tidak hanya itu, suatu sistem yang melibatkan penggunaan komputer tunggal dengan beberapa CPU sekaligus untuk menjalankan program (sistem paralel), juga masuk dalam distributed processing ini.
Distributed processing merupakan suatu tugas komputasi yang sangat kompleks. Tugas tersebut dibagi ke beberapa jaringan mesin individu, yang kemudian menyelesaikan bagiannya masing-masing. Setelah bagian tugas selesai, akan langsung dikirimkan kembali untuk dikompilasi menjadi satu output yang utuh.
Pentingnya Distributed Process Untuk Bisnis
Sebenarnya, distributed processing adalah suatu hal yang dekat dengan kehidupan. Ada banyak sekali aktivitas yang melibatkan sistem komputer ini. Salah satunya adalah saat Anda menggunakan layanan cloud. Sebab, semua yang berjalan di cloud menggunakan jaringan yang melibatkan beberapa prosesor sekaligus.
Contoh lainya adalah proses
data mining pada big data, online game yang melibatkan beberapa orang sekaligus (MMO), hingga komunitas virtual di dunia maya. Penerapan distributed processing juga tidak selalu mengandalkan jaringan internet, tapi juga beberapa prosesor lokal yang disatukan. Hal ini banyak digunakan oleh para video editor dan animator untuk proses render. Tanpa melakukan distributed processing, proses render akan berjalan lama.
Ada banyak sekali keuntungan yang bisa didapatkan dengan menerapkan distributed processing, di antaranya:
- KETERSEDIAAN YANG LEBIH BAIK
Sistem komputer monolitik (hanya menggunakan satu prosesor) memiliki keterbatasan dalam menjalankan suatu proses. Hasilnya, performa komputer menjadi sangat lambat. Jika Anda menjalankan satu sistem saja, mungkin masih dapat ditoleransi. Namun, bagaimana jika harus menjalankan beberapa sistem sekaligus dalam satu waktu?
Distributed processing membagi operasional sistem tersebut ke beberapa server. Dengan begitu, titik kegagalan tidak hanya terpusat pada satu server. Sistem ini juga menyembunyikan TTR (time-to-recovery) yang durasinya terlalu panjang. Menariknya lagi, sistem terdistribusi juga dapat ditempatkan dekat dengan pengguna yang membutuhkan.
Untuk beberapa proses yang sederhana, sistem monolitik saja mungkin sudah cukup. Namun, bagaimana dengan proses yang rumit dan melibatkan banyak pengguna? Kenyataannya, mayoritas proses yang berjalan saat ini terbilang rumit dan sangat menuntut ketahanan tinggi.
Sistem penyimpanan terdistribusi terus-menerus membuat banyak salinan dari sepotong data, hingga menghasilkan fleksibilitas biaya, waktu pemulihan, dan bahkan daya tahan. Sistem ini juga dapat didesain agar tahan terhadap risiko yang berkorelasi, sekaligus menghindari korelasi secara langsung.
Distributed processing juga merupakan suatu sistem yang fleksibel dari segi skala. Untuk mengembangkannya pun sangat mudah, Anda cukup menambahkan prosesor sesuai kebutuhan.
Hal ini mungkin terjadi karena sistem terdistribusi ini masuk dalam kategori stateless. Sistem stateless jauh lebih mudah diskalakan jika dibandingkan dengan sistem dengan state. Sebab, pada state system, Anda perlu menentukan bagaimana penyebarannya. Anda juga harus mencari cara untuk mengirim pengguna ke tempat yang tepat.
5. Handheld
Dikutip dari Sistem Informasi , Bahwa Handheld system atau sistem genggam merupakan salah satu jenis sistem operasi komputer berdasarkan ukuran komputer atau ukuran daya komputasinya. Yang dimaksud dengan handheld system adalah sebutan untuk komputer-komputer dengan ukuran kecil (bisa digenggam) dengan kemampuan tertentu.
Beberapa contoh dari handheld system ini seperti Palm Pilots, Personal Digital Assistants (PDA), dan telepon seluler.
Menurut informasi yang saya pelajari, wacana yang berkembang terkait handheld system adalah soal bagaimana merancang software dan hardware yang sesuai dengan ukurannya yang kecil.
Dari sisi software, hambatan yang muncul adalah ukuran memori yang sedikit dan ukuran layar monitor tampilan kecil. Kebanyakan perangkat genggam mempunyai memori berukuran antara 512 KB hingga 8 MB. Akibatnya, sistem operasi dan aplikasi yang diperuntukkan untuk sistem genggam harus dapat mengelola memori secara efisien. Ini termasuk mengembalikan semua memori yang dialokasikan kembali ke manajer memori setelah memori tidak lagi dipakai.
Sedangkan dari sisi hardware, hambatan yang muncul adalah penggunaan sumber daya untuk pemberdayaan sistem. Tantangan yang muncul adalah bagaimana menciptakan sumber daya (misalnya baterai) dengan ukuran kecil, tapi berkapasitas besar atau merancang hardware dengan konsumsi sumber tenaga yang sedikit.
Secara umum, keterbatasan yang dimiliki oleh sistem genggam sesuai dengan kegunaan/layanan yang disediakan. Sistem genggam biasanya digunakan untuk hal-hal yang membutuhkan portabilitas suatu mesin seperti kamera, video game, alat komunikasi, MP3 Player dan lain lain.
6. Thread
Dikutip dari
Cak Tri , Bahwa Thread adalah sebuah alur kontrol dari sebuah proses. Suatu proses yang multithreaded mengandung beberapa perbedaan alur kontrol dengan ruang alamat yang sama. Keuntungan dari multithreaded meliputi peningkatan respon dari user, pembagian sumber daya proses, ekonomis, dan kemampuan untuk mengambil keuntungan dari arsitektur multiprosesor.
User level thread adalah thread yang tampak oleh programmer dan tidak diketahui oleh kernel. User level thread secara tipikal dikelola oleh sebuah library thread di ruang user. Kernel level thread didukung dan dikelola oleh kernel sistem operasi. Secara umum, user level thread lebih cepat dalam pembuatan dan pengelolaan dari pada kernel thread. Ada tiga perbedaan tipe dari model yang berhubungan dengan user dan kernel thread.
- Model many to one: memetakan beberapa user level thread hanya ke satu buah kernel thread.
- Model one to one: memetakan setiap user thread ke dalam satu kernel thread. Berakhir.
- Model many to many: mengizinkan pengembang untuk membuat user thread sebanyak mungkin, konkurensi tidak dapat tercapai karena hanya satu thread yang dapat dijadualkan oleh kernel dalam satu waktu.
Thread merupakan unit dasar dari penggunaan CPU, yang terdiri dari Thread_ID, program counter, register set, dan stack. Sebuah thread berbagi code section, data section, dan sumber daya sistem operasi dengan Thread lain yang dimiliki oleh proses yang sama. Thread juga sering disebut lightweight process. Sebuah proses tradisional atau heavyweight process mempunyai thread tunggal yang berfungsi sebagai pengendali.
Perbedaan antara proses dengan thread tunggal dengan proses dengan thread yang banyak adalah proses dengan thread yang banyak dapat mengerjakan lebih dari satu tugas pada satu satuan waktu.