Month: May 2020

Kernel Dalam Sistem Operasi Komputer

Kernel Dalam Sistem Operasi Komputer

Kernel Dalam Sistem Operasi Komputer – Kernel adalah program komputer yang merupakan jantung dan inti dari Sistem Operasi. Karena Sistem Operasi memiliki kendali atas sistem, Kernel juga memiliki kendali atas semua yang ada dalam sistem. Ini adalah bagian terpenting dari Sistem Operasi.

Setiap kali sistem dimulai, Kernel adalah program pertama yang dimuat setelah bootloader karena Kernel harus menangani sisa dari hal sistem untuk Sistem Operasi. Kernel tetap berada dalam memori sampai Sistem Operasi dimatikan. www.mustangcontracting.com

Kernel bertanggung jawab untuk tugas-tugas tingkat rendah seperti manajemen disk, manajemen memori, manajemen tugas, dll. Ini menyediakan antarmuka antara pengguna dan komponen perangkat keras sistem. Ketika suatu proses membuat permintaan ke Kernel, maka itu disebut System Call. bet88

Kernel dilengkapi dengan Ruang Kernel terlindungi yang merupakan area memori terpisah dan area ini tidak dapat diakses oleh program aplikasi lain. Jadi, kode Kernel dimuat ke dalam Ruang Kernel yang dilindungi ini. Terlepas dari ini, memori yang digunakan oleh aplikasi lain disebut Ruang Pengguna. Karena ini adalah dua ruang yang berbeda dalam memori, jadi komunikasi di antara mereka sedikit lebih lambat.

Kernel Dalam Sistem Operasi Komputer

Fungsi Kernel

Berikut ini adalah fungsi dari Kernel:

Akses sumber daya Komputer: Kernel dapat mengakses berbagai sumber daya komputer seperti CPU, perangkat I / O dan sumber daya lainnya. Karena berfungsi sebagai jembatan antara pengguna dan sumber daya sistem.

  • Manajemen Sumber Daya: Merupakan tugas Kernel untuk berbagi sumber daya antara berbagai proses sedemikian rupa sehingga ada akses yang seragam ke sumber daya oleh setiap proses.
  • Manajemen Memori: Setiap proses membutuhkan ruang memori. Jadi, memori harus dialokasikan dan dialokasikan untuk pelaksanaannya. Semua manajemen memori ini dilakukan oleh Kernel.
  • Manajemen Perangkat: Perangkat periferal yang terhubung dalam sistem digunakan oleh proses. Jadi, alokasi perangkat ini dikelola oleh Kernel. Kernel mengontrol aktivitas perangkat periferal melalui driver perangkat. Driver perangkat adalah program yang membantu sistem operasi untuk berinteraksi dengan perangkat perangkat keras.

Program driver perangkat menyediakan antarmuka dan membantu OS untuk menangani perangkat periferal seperti printer, pemindai, modem, keyboard, mouse, dll. Driver menerjemahkan panggilan fungsi sistem operasi menjadi panggilan khusus perangkat. Driver perangkat mendeteksi perangkat yang diinstal dan mencari driver perangkat ketika sistem dimulai.

Proses ini menggunakan mekanisme panggilan sistem untuk berurusan dengan Kernel Sistem Operasi. Panggilan sistem adalah panggilan layanan ke kernel untuk meminta izin untuk eksekusi proses. Panggilan sistem adalah instruksi kode mesin yang digunakan oleh program aplikasi untuk mendapatkan izin layanan dari sistem Operasi.

Mode Kernel dan Mode Pengguna

Ada instruksi tertentu yang perlu dijalankan oleh Kernel saja. Jadi, CPU menjalankan instruksi ini hanya dalam Mode Kernel. Sebagai contoh, manajemen memori harus dilakukan dalam Mode-Kernel saja. Saat dalam Mode Pengguna, CPU mengeksekusi proses yang diberikan oleh pengguna di Ruang Pengguna.

Jenis-jenis Kernel

Secara umum, ada lima jenis Kernel.

1. Kernel Monolitik

Kernel Monolitik adalah Kernel di mana layanan pengguna dan layanan kernel diimplementasikan dalam ruang memori yang sama yaitu memori berbeda untuk layanan pengguna dan layanan kernel tidak digunakan dalam kasus ini.

Dengan melakukannya, ukuran Kernel meningkat dan ini, pada gilirannya, meningkatkan ukuran Sistem Operasi. Karena tidak ada Ruang Pengguna dan Ruang Kernel yang terpisah, maka pelaksanaan proses akan lebih cepat di kernel Monolithic.

Kernel monolitik adalah program kode tunggal dengan kemampuan untuk memuat layanan OS dalam ruang alamat memori tunggal (Kernel Space). Semua layanan OS dijalankan dalam mode privilege. Semua layanan seperti manajemen proses manajemen memori, driver I / O, dan driver memori yang terletak di ruang kernel mengurangi waktu akses memberikan kinerja yang lebih tinggi.

Kode kernel monolitik lebih penting daripada kode mikrokernel. Karena ukurannya yang besar, sulit untuk mempertahankan kernel. Jika layanan terjadi dalam kode kernel, seluruh sistem akan berhenti bekerja. Kernel monolitik tidak portabel, sehingga platform yang berbeda membutuhkan kernel yang berbeda pula.

Keuntungan:

  • Ini menyediakan penjadwalan CPU, penjadwalan memori, manajemen file melalui Panggilan sistem saja.
  • Eksekusi dari proses ini cepat karena tidak ada ruang memori yang terpisah untuk pengguna dan kernel.

Kekurangan:

  • Jika ada layanan yang gagal, maka itu menyebabkan kegagalan sistem.
  • Jika layanan baru akan ditambahkan maka seluruh Sistem Operasi perlu dimodifikasi.

2. Mikrokernel

Sebuah Mikokernel berbeda dari Kernel Monolitik karena dalam Microkernel, layanan pengguna dan layanan kernel diimplementasikan ke dalam ruang yang berbeda yaitu menggunakan Ruang Pengguna dan Ruang Kernel untuk Mikrokernel. Karena menggunakan Ruang Pengguna dan Ruang Kernel secara terpisah, sehingga mengurangi ukuran Kernel dan ini, pada gilirannya, mengurangi ukuran Sistem Operasi.

Mikrokernel menggunakan kernel dan ruang pengguna untuk menjalankan semua proses sistem. Kernel dibagi menjadi berbagai proses yang dikenal sebagai layanan. Minimum layanan seperti IPC (Inter-Process Communication), penjadwal dasar, atau penjadwalan primitif, penanganan memori dasar, primer I / O primer berada dalam ruang kernel. Semua layanan seperti Penjadwal, penanganan memori, sistem file, dan tumpukan jaringan dijalankan secara terpisah di ruang pengguna.

Karena menggunakan ruang yang berbeda untuk layanan pengguna dan layanan kernel, maka komunikasi antara aplikasi dan layanan dilakukan dengan bantuan parsing pesan dan ini, pada gilirannya, mengurangi kecepatan eksekusi.

Keuntungan:

  • Jika layanan baru akan ditambahkan maka dapat dengan mudah ditambahkan.

Kekurangan:

  • Karena menggunakan Ruang Pengguna dan Ruang Kernel secara terpisah, sehingga komunikasi di antaranya dapat mengurangi waktu eksekusi keseluruhan.

3. Kernel Hibrid

Kernel Hibrid adalah kombinasi Kernel Monolitik dan Mikrokernel. Itu membuat penggunaan kecepatan Kernel Monolitik dan modularitas Mikrokernel.

Kernel hybrid memperluas versi microkernel dengan menambahkan beberapa fungsionalitas kernel Monoltikc. Kernel hybrid dibagi menjadi beberapa layanan yang sama dengan microkernel, dan semuanya dijalankan dalam ruang kernel yang sama dengan kernel Monolithic. Kernel NT untuk windows dan kernel XNU digunakan oleh Apple untuk macOS.

Mode kernel berisi PC Aplikasi, driver perangkat dan memori virtual, proses penjadwalan. Ini mengurangi overhead pengiriman pesan dan waktu pengalihan konteks. Server file dan server UNIX berada dalam mode pengguna. Server file adalah area memori tempat aplikasi dijalankan.

Kernel hibrida adalah kernel mikro yang memiliki beberapa kode “tidak penting” di ruang kernel agar kode dapat berjalan lebih cepat daripada di ruang pengguna. Jadi, beberapa layanan seperti tumpukan jaringan atau sistem file dijalankan di ruang Kernel untuk mengurangi overhead kinerja, tetapi tetap saja, ia menjalankan kode kernel sebagai server di ruang pengguna.

4. Nanokernel

Dalam Nanokrnel, seperti namanya, seluruh kode kernel sangat kecil yaitu kode yang mengeksekusi dalam mode istimewa perangkat keras sangat kecil. Istilah nanokernel digunakan untuk menggambarkan kernel yang mendukung resolusi clock nanosecond.

Kernel Dalam Sistem Operasi Komputer

5. Exokernel

Exokernel adalahkernel Sistem Operasi yang dikembangkan oleh paralel MIT dan kelompok Sistem Operasi Terdistribusi. Di sini dalam jenis kernel ini, perlindungan sumber daya dipisahkan dari manajemen dan ini, pada gilirannya, menghasilkan memungkinkan kita untuk melakukan penyesuaian khusus aplikasi.

Dalam Exokernel, idenya bukan untuk mengimplementasikan semua abstraksi. Tetapi idenya adalah untuk memaksakan abstraksi sesedikit mungkin dan dengan melakukan itu abstraksi harus digunakan hanya ketika dibutuhkan. Jadi, tidak ada abstraksi paksa yang ada di Exokernel dan ini adalah fitur yang membuatnya berbeda dari Kernel Monolitik dan Mikrokernel. Namun kekurangannya adalah desainnya yang kompleks. Desain Exokernel sangat kompleks.

Pengenalan Deadlock Dalam Sistem Operasi

Pengenalan Deadlock Dalam Sistem Operasi – Deadlock (kebuntuan) adalah situasi di mana serangkaian proses diblokir karena setiap proses memegang sumber daya dan menunggu sumber daya lain yang diperoleh oleh beberapa proses lainnya.

Pertimbangkan sebuah contoh ketika dua kereta saling berhadapan di jalur yang sama dan hanya ada satu jalur, tidak ada kereta yang bisa bergerak begitu mereka berada di depan satu sama lain. Situasi serupa terjadi dalam sistem operasi ketika ada dua atau lebih proses menahan beberapa sumber daya dan menunggu sumber daya dipegang oleh yang lain. https://www.mustangcontracting.com/

Kebuntuan dapat muncul jika empat kondisi berikut ditahan secara bersamaan (Kondisi yang Diperlukan)

  • Pengecualian: Satu atau lebih dari satu sumber daya tidak dapat dibagikan (Hanya satu proses yang dapat digunakan pada satu waktu) slot online
  • Tahan dan Tunggu: Suatu proses menahan setidaknya satu sumber daya dan menunggu sumber daya.
  • Tanpa Preemption: Sumber daya tidak dapat diambil dari suatu proses kecuali proses melepaskan sumber daya.
  • Circular Wait: Satu set proses menunggu satu sama lain dalam bentuk melingkar.
Pengenalan Deadlock Dalam Sistem Operasi

Metode untuk menangani kebuntuan

Ada tiga cara untuk menangani kebuntuan

1) Pencegahan atau penghindaran kebuntuan: Idenya adalah untuk tidak membiarkan sistem dalam kondisi menemui jalan buntu.

Satu dapat memperbesar ke masing-masing kategori secara individual, Pencegahan dilakukan dengan meniadakan salah satu kondisi yang diperlukan untuk kebuntuan yang disebutkan di atas.

Penghindaran bersifat futuristik. Dengan menggunakan strategi “Penghindaran”, kita harus membuat asumsi. Kita perlu memastikan bahwa semua informasi tentang sumber daya yang dibutuhkan oleh proses AKAN diketahui oleh kita sebelum pelaksanaan proses. Menggunakan algoritma Banker (yang pada gilirannya merupakan hadiah dari Dijkstra) untuk menghindari kebuntuan.

2) Deteksi kebuntuan dan pemulihan: Biarkan kebuntuan terjadi, lalu lakukan preemption untuk menanganinya begitu terjadi.

3) Mengabaikan masalah secara bersamaan: Jika kebuntuan sangat jarang, maka biarkan itu terjadi dan reboot sistem. Ini adalah pendekatan yang diambil oleh Windows dan UNIX.

Deteksi kebuntuan

Jika sumber daya memiliki satu contoh:

Dalam hal ini untuk deteksi Deadlock kita dapat menjalankan algoritma untuk memeriksa siklus di Grafik Alokasi Sumber Daya. Kehadiran siklus dalam grafik adalah kondisi yang cukup untuk kebuntuan.

jalan buntu

Dalam diagram di atas, sumber daya 1 dan sumber daya 2 memiliki instance tunggal. Ada siklus R1 → P1 → R2 → P2. Jadi, Deadlock Dikonfirmasi.

Jika ada beberapa contoh sumber daya:

Deteksi siklus diperlukan tetapi kondisi tidak cukup untuk deteksi kebuntuan, dalam hal ini, sistem mungkin atau mungkin tidak dalam kebuntuan bervariasi sesuai dengan situasi yang berbeda.

Pemulihan kebuntuan

Sistem operasi tradisional seperti Windows tidak menangani pemulihan jalan buntu karena ini adalah proses yang memakan waktu dan ruang. Sistem operasi waktu-nyata menggunakan pemulihan Deadlock.

Metode pemulihan

Membunuh proses: membunuh semua proses yang terlibat dalam kebuntuan. Proses pembunuhan satu per satu. Setelah membunuh setiap proses periksa kebuntuan lagi terus mengulangi proses sampai sistem pulih dari kebuntuan.

Preemption Sumber Daya: Sumber daya didahului dari proses yang terlibat dalam kebuntuan, sumber daya yang didahului dialokasikan untuk proses lain sehingga ada kemungkinan memulihkan sistem dari kebuntuan. Dalam hal ini, sistem mengalami kelaparan.

Pencegahan kebuntuan

  • Hilangkan Pengecualian Saling

Tidaklah mungkin untuk mengecualikan pengecualian bersama karena beberapa sumber daya, seperti tape drive dan printer, pada dasarnya tidak dapat dibagikan.

  • Hilangkan Tahan dan tunggu

1. Mengalokasikan semua sumber daya yang diperlukan untuk proses sebelum dimulainya pelaksanaannya, dengan cara ini kondisi tunggu dan tunggu dihilangkan tetapi akan menyebabkan pemanfaatan perangkat yang rendah. misalnya, jika suatu proses membutuhkan printer di lain waktu dan telah mengalokasikan printer sebelum dimulainya printer eksekusi akan tetap diblokir sampai telah menyelesaikan eksekusi.

2. Proses ini akan membuat permintaan sumber daya baru setelah merilis rangkaian sumber daya saat ini.

  • Hilangkan No Preemption

Mencegah sumber daya dari proses saat sumber daya dibutuhkan oleh proses prioritas tinggi lainnya.

  • Hilangkan Circular Wait

Setiap sumber daya akan diberi nomor numerik. Suatu proses dapat meminta peningkatan / penurunan sumber daya. urutan penomoran.

Sebagai contoh, jika proses P1 dialokasikan sumber daya R5, sekarang waktu berikutnya jika P1 meminta R4, R3 lebih rendah dari R5 permintaan tersebut tidak akan diberikan, hanya permintaan sumber daya lebih dari R5 akan diberikan.

Menghindari kebuntuan

Penghindaran kebuntuan dapat dilakukan dengan Algoritma Bankir.

Algoritma Bankir

Algoritma Bankir adalah alokasi sumber daya dan algoritma penghindaran kebuntuan yang menguji semua permintaan yang dibuat oleh proses untuk sumber daya, itu memeriksa keadaan aman, jika setelah pemberian sistem permintaan tetap dalam keadaan aman itu memungkinkan permintaan dan jika tidak ada keadaan aman itu tidak dapat mengizinkan permintaan yang dibuat oleh proses.

Masukan untuk Algoritma Bankir:

  • Max membutuhkan sumber daya oleh setiap proses.
  • Saat ini mengalokasikan sumber daya oleh setiap proses.
  • Maksimal sumber daya gratis yang tersedia dalam sistem.

Permintaan hanya akan diberikan dengan ketentuan di bawah ini:

  • Jika permintaan yang dibuat oleh proses kurang dari sama dengan maks perlu proses itu.
  • Jika permintaan yang dibuat oleh proses kurang dari sama dengan sumber daya yang tersedia secara bebas dalam sistem.

Algoritma Deteksi Kebuntuan / Algoritma Bankir:

Algoritme ini menggunakan beberapa struktur data yang bervariasi waktu:

  • Tersedia- Vektor dengan panjang m menunjukkan jumlah sumber daya yang tersedia untuk setiap jenis.
  • Alokasi – Matriks n * m menentukan jumlah sumber daya dari masing-masing jenis yang saat ini dialokasikan untuk suatu proses. Kolom mewakili sumber daya dan proses mewakili sumber daya.
  • Request- Matriks n * m menunjukkan permintaan saat ini dari setiap proses. Jika permintaan [i] [j] sama dengan k maka proses Pi meminta k lebih banyak contoh jenis sumber daya Rj.

Deteksi Kebuntuan Dalam Sistem Terdistribusi

Pengenalan Deadlock Dalam Sistem Operasi

Dalam sistem terdistribusi, kebuntuan tidak dapat dicegah atau dihindari karena sistemnya sangat luas sehingga tidak mungkin dilakukan. Karena itu, hanya deteksi kebuntuan yang dapat diterapkan. Teknik-teknik deteksi kebuntuan dalam sistem terdistribusi memerlukan yang berikut:

  • Kemajuan – Metode ini harus dapat mendeteksi semua kebuntuan dalam sistem.
  • Keamanan – Metode ini tidak boleh mendeteksi kebuntuan palsu atau hantu.

Ada tiga pendekatan untuk mendeteksi kebuntuan dalam sistem terdistribusi. Mereka adalah sebagai berikut:

  • Pendekatan terpusat

Dalam pendekatan terpusat, hanya ada satu sumber daya yang bertanggung jawab untuk mendeteksi kebuntuan. Keuntungan dari pendekatan ini adalah sederhana dan mudah diimplementasikan, sedangkan kelemahannya termasuk beban kerja yang berlebihan pada satu simpul, kegagalan satu titik (yaitu seluruh sistem bergantung pada satu simpul jika simpul itu gagal seluruh sistem crash) yang pada gilirannya membuat sistem kurang dapat diandalkan.

  • Pendekatan terdistribusi

Dalam pendekatan terdistribusi, node yang berbeda bekerja bersama untuk mendeteksi kebuntuan. Tidak ada kegagalan titik tunggal (yaitu seluruh sistem bergantung pada satu simpul jika simpul itu gagal seluruh sistem macet) karena beban kerja dibagi secara merata di antara semua simpul. Kecepatan deteksi kebuntuan juga meningkat.

  • Pendekatan hierarkis

Pendekatan ini adalah yang paling menguntungkan. Ini adalah kombinasi dari kedua pendekatan deteksi kebuntuan terpusat dan terdistribusi dalam sistem terdistribusi. Dalam pendekatan ini, beberapa node atau cluster node yang dipilih bertanggung jawab untuk deteksi kebuntuan dan node yang dipilih ini dikendalikan oleh satu node.

Back to top