Tutorial Social Network

Informasi Seputar Media Sosial

Tutorial Computer

Informasi Seputar Komputer

Tutorial Youtube

Informasi Seputar Youtube

Tutorial Blogger

Informasi Seputar Blogger

Tutorial Wordpress

Informasi Seputar Wordpress

Tutorial Website

Informasi Seputar Pemrograman Website

Tutorial Windows

Informasi Seputar Sistem Operasi Windows

Tutorial Linux

Informasi Seputar Sistem Operasi Linux

Tutorial Android

Informasi Seputar Android

Monday 8 February 2021

Mengenal VPN dan Penggunaannya

VPN atau Virtual Private Network adalah cara yang digunakan untuk menghubungkan berbagai jaringan yang terletak terpisah dari koneksi internal, menggunakan protokol keamanan yang memungkinkan keaslian dan kerahasiaan informasi yang bergerak melalui koneksi VPN atau sistem jaringan.

Analoginya, VPN mengkoneksikan smartphone, tablet, PC ke komputer yang lain atau yang biasa disebut dengan VPN Server di suatu tempat yang terhubung dengan internet, dan mengizinkan Anda untuk menjelajah internet menggunakan jaringan internet komputer.

Jadi jika komputer (server) di negara yang berbeda, itu akan menjadi negara yang Anda gunakan ketika internet mencoba mengenai Anda melalui koneksi tersebut dan Anda dapat mengakses sesuatu yang tidak bisa Anda akses dari negara Anda.

Di dunia kita sekarang ini, keamanan menjadi hal yang sangat penting dan kebutuhan untuk mengirim data terenkripsi melalui jaringan sudah sangat diperlukan berbagai entitas, baik individu maupun bisnis. Dan pada saat ini, teknologi VPN telah berkembang lebih baik dan semakin meluas di lingkungan pribadi dan bisnis.

Setelah mengetahui apa itu VPN, selanjutnya untuk mengetahui apa manfaat dari VPN, berikut kami telah merangkumnya:
  • Manfaat Menggunakan VPN
  • Peningkatan Keamanan
sudah mengetahui lebih jauh tentang apa itu VPN, kini akan membahas tentang manfaat VPN itu sendiri. VPN memiliki banyak keuntungan untuk meningkatkan keamanan dan privasi online saat berselancar di internet tidak hanya dari peretas, pemerintah, dan operator telepon karena Kebocoran DNS.

Jika Anda menjelajahi internet dari negara manapun, tentu Anda dapat melakukannya tanpa VPN. Tetapi jika Anda terhubung ke jaringan WiFi publik, melakukannya melalui Virtual Private Network akan lebih baik dalam segi keamanan.

Alamat IP Anda yang sebenarnya akan aman karena akan lokasi Anda yang sebenarnya tidak akan ketahuan dan data Anda akan dienkripsi, yang tentu ini akan membuat Anda lebih aman dari potensi kebocoran data yang penting.

ISP digunakan untuk melihat semua stok informasi online oleh konsumen yang berisi data, kata sandi, dan informasi pribadi. Tetapi ketika Anda menggunakan VPN, ISP tidak akan dapat mengakses log pengguna. Sebagai gantinya, mereka melihat statistik terenkripsi oleh server VPN.

Akses Jarak Jauh
Pada awalnya, VPN dibuat dengan tujuan mengkoneksikan jaringan antar gedung perkantoran secara aman dan dapat menggunakan jaringan kantor dari rumah atau tempat lain.

Menggunakan VPN menunjukkan bahwa informasi Anda dapat diakses dari jarak jauh dari lokasi mana pun yang memungkinkan Anda mengakses konten Anda jika ada batasan pada situs tersebut. Menggunakan VPN dapat meningkatkan produktivitas perusahaan karena pekerja tidak harus berada di lokasi tertentu untuk menjadi produktif.

Biaya yang Murah
Setiap penyedia layanan VPN akan selalu cenderung menampilkan paket yang berbeda, dan Anda dapat memilih paket berlangganan yang sempurna yang akan sesuai dengan kebutuhan Anda. Ada banyak penyedia layanan VPN yang terjangkau namun dapat diandalkan di luar sana dengan langganan yang ramah.

Membeli Tiket Murah
Satu rahasia pamungkas yang kebanyakan orang tidak mengerti adalah menggunakan VPN untuk membeli tiket penerbangan murah eksklusif ke lokasi tertentu. Setiap pusat reservasi dan operator maskapai memiliki harga yang berbeda untuk negara yang berbeda.

Untuk mendapatkan tiket penerbangan yang terjangkau, cari negara yang memiliki biaya hidup rendah lalu bandingkan dengan negara tempat Anda tinggal, sambungkan melalui VPN dan dapatkan tiket pernerbangan murah. Trik ini juga berfungsi untuk layanan penyewaan lainnya, misalnya hotel.
Pembatasan Anonimitas / Bypass

Dengan menggunakan VPN, seseorang dapat dengan mudah menjelajahi internet sepenuhnya tanpa dilacak, dibandingkan dengan perangkat lunak lain, salah satu manfaat menggunakan layanan koneksi VPN adalah untuk memungkinkan Anda mengakses situs web dan aplikasi web apa pun secara anonim.

Cara Menggunakan VPN
Setalah Anda mengetahui lebih jauh tentang apa itu vpn, kami asumsikan Anda disini menggunakan laptop dengan sistem operasi windows 10 atau smartphone dengan sistem operasi android:

Mengatur VPN di Windows 10
Langkah pertama adalah membuat profil VPN yang akan Anda isi dengan detail dari layanan VPN khusus Anda.


Klik pada tombol Windows, lalu menuju ke Pengaturan> Jaringan & Internet> VPN. Klik pada Tambahkan koneksi VPN.
Di kolom pada halaman, pilih Windows (built-in) untuk penyedia VPN Anda. Beri nama VPN Anda di bawah Nama koneksi. Masukkan nama atau alamat server, jenis VPN, dan jenis info masuk.
Tambahkan nama pengguna dan kata sandi untuk keamanan ekstra (ini opsional, tetapi disarankan). Anda dapat memilih agar komputer mengingat info masuk Anda.
Klik Simpan
Untuk terhubung ke VPN Anda, kembali ke Pengaturan> Jaringan & Internet> VPN. Klik pada nama VPN Anda.
Jika mau, pada titik ini Anda dapat memilih Opsi Tingkat Lanjut untuk mengedit properti koneksi, menghapus info masuk Anda, atau mengatur proxy VPN.
Pilih Sambungkan dan masukkan kata sandi jika Anda telah menetapkannya.

Mengatur VPN di Android
Pengaturan VPN di perangkat Android lebih mudah. Dalam hal ini kita akan menggunakan cara manual dan dengan sistem operasi Android 7.0, jika Anda menggunakan sistem operasi android yang lebih tinggi atau lebih rendah ada kemungkinan terdapat perbedaan. Perlu diperhatikan juga, sebenarnya ada aplikasi VPN yang bisa Anda unduh di Playstore yang dapat Anda gunakan secara mudah.


Buka Pengaturan> Jaringan & Internet> Tingkat Lanjut> VPN (Anda akan melihat ikon tombol kecil). Jika Anda tidak melihat Jaringan & Internet di menu Pengaturan (yang mungkin terjadi tergantung pada hamparan Android Anda), maka lakukan pencarian di dalam Pengaturan untuk VPN. Tekan tombol Tambah.
Jika Anda mengaturnya di ponsel baru, atau jika Anda belum menetapkan kunci layar atau kata sandi, Google akan meminta Anda untuk terlebih dahulu mengaturnya untuk ponsel Anda. Lakukan itu.
Sekarang buat profil VPN Anda. Tambahkan nama VPN, jenis, dan alamat Server. Klik Simpan.
Anda akan dibawa kembali ke layar VPN, di mana sekarang Anda akan melihat nama VPN Anda. Ketuk itu, dan masukkan nama dan kata sandi Anda. Anda juga dapat memilih untuk menyimpan informasi akun Anda, dan Anda dapat membuat VPN selalu menyala. Klik Hubungkan.
Masukkan nama VPN, jenis, alamat server, nama pengguna, dan kata sandi.
Lalu, simpan. Kamu sudah selesai!

Setelah Anda menjalankan dan menjalankan VPN, Anda mungkin merasakan penjelajahan web Anda tidak secepat tanpa vpn, terutama jika Anda telah mengkonfigurasi lalu lintas koneksi dari negara lain. Enkripsi yang lebih kuat, atau lebih banyak pengguna yang terhubung ke satu VPN, juga dapat memperlambat kecepatan internet Anda.

Kesimpulan
Orang-orang mencari cara terbaik untuk menghindari dilacak saat berselancar internet. VPN akan menjadi salah satu solusi terbaik untuk memcahkan masalah dab membantu melindungi juga mencegah Penyedia Layanan Internet (ISP) dari pemilik situs web untuk melacak aktivitas kami selama berselancar.

Masalah yang dihadapi oleh versi gratis VPN melalui web, adalah pilihan lokasi yang sedikit dengan keterbatasan dan lambatnya kecepatan internet Anda. Oleh karena itu, yang terbaik adalah membayar VPN premium untuk memastikan konektivitas, kecepatan, dan keamanan data premium yang lebih baik.

Tips Menjadi Pengembang Website

Jika Anda bercita cita menjadi pengembang website, Anda harus memahami aturan dan teknik yang harus diketahui oleh setiap pengembang lainnya. Untuk membuat situs web terlihat bagus dan berfungsi seperti yang Anda inginkan, Anda harus terbiasa dengan teknologi dan hal yang berhubungan dengan pengembangan website yang akan membantu Anda mencapai tujuan Anda.

Mengembangkan aplikasi atau situs web biasanya dilakukan dengan mengetahui 3 bahasa pemrograman utama: JavaScript, CSS, dan HTML. Dan meskipun terdengar sangat rumit, setelah Anda tahu apa yang Anda lakukan, memahami teknologi web dan cara kerjanya menjadi lebih mudah. Kami memberi Anda pengantar tentang teknologi web dan hal-hal terbaru dengan harapan hal itu akan membuat segalanya lebih mudah bagi Anda.

Menjadi Pengembang Website dengan Teknologi yang Tepat
Anda mungkin pernah mendengar istilah “teknologi pengembangan website” sebelumnya, tetapi apakah Anda pernah berpikir tentang apa artinya sebenarnya? Karena komputer tidak dapat berkomunikasi satu sama lain seperti yang dilakukan orang, mereka membutuhkan kode. Teknologi web adalah bahasa dan paket multimedia yang digunakan komputer untuk menjalankan perintah.

1. Browser
Browser atau peramban akan mengumpulkan informasi dan kemudian menyajikannya kepada mereka yang membutuhkan engan cara yang mudah pahami. Analogikan browser yang akan menampilkan konten kita pada mereka yang mencari informasi terkait. Inilah daftar browser yang paling populer:

Google Chrome – Saat ini, peramban paling populer dihadirkan oleh Google untuk Anda
Safari – browser web Apple
Firefox – Browser sumber terbuka yang didukung oleh Mozilla Foundation
Internet Explorer – browser Microsoft

2. HTML & CSS
HTML adalah salah satu yang pertama harus Anda pelajari. Berkat HTML, browser web tahu apa yang harus ditampilkan setelah mereka menerima permintaan. Jika Anda ingin lebih memahami cara kerja HTML, Anda juga perlu tahu apa itu CSS.

CSS adalah singkatan dari Cascading Style Sheets dan menjelaskan bagaimana elemen HTML ditampilkan di layar. Jika Anda menelusuri cukup tutorial, Anda akan segera membuat efek teks CSS, transisi halaman, efek hover gambar, dan banyak lagi.

3. Web Development Frameworks
Web develpoment frameworks adalah titik awal teknologi atau hal yang dapat Anda gunakan sebagai pengembang website untuk melakukan tugas-tugas sederhana atau biasa, dan melakukan pekerjaan dengan benar.
Angular

Angukar adalah salah satu teknologi web terbaru yang dirancang khusus untuk mengembangkan aplikasi web yang dinamis. Dengan framework ini, Anda dapat dengan mudah membuat aplikasi berbasis front-end tanpa perlu menggunakan framework atau plugin lain.

Fitur-fiturnya termasuk templat yang dibuat dengan baik, arsitektur MVC, pembuatan kode, pemisahan kode dll. Semua ekspresi seperti potongan kode yang terlampir dalam kurung kurawal dan tidak menggunakan loop atau conditional statements.

Jika Anda ingin mulai menggunakan Angular atau hanya mengevaluasi apakah framework ini akan menjadi solusi yang tepat untuk proyek Anda, Anda dapat melihat pelatihan 3 jam ini, yang diterbitkan pada Juni 2019 oleh Justin Schwartzenberger, seorang Ahli Pengembang Google. Kursus ini mencakup semua yang diperlukan untuk mulai menggunakan Angular, mulai dari arsitektur dasar, bekerja dengan DOM, data binding, routing, dan components, hingga topik yang lebih canggih seperti directives dan pipes.

Ruby on Rails
Ruby on Rails adalah teknologi situs web server-side yang membuat pengembangan aplikasi lebih mudah dan lebih cepat. Hal yang benar-benar membedakan framework ini adalah penggunaan kembali kode serta beberapa fitur keren lainnya yang akan membantu Anda menyelesaikan pekerjaan dalam waktu singkat.

Contoh situs web populer yang ditulis dengan Ruby adalah seperti Basecamp, Ask.fm, GitHub, 500px, dan banyak lainnya.

Jika Anda tertarik pada pelatihan yang lebih mendalam tentang kerangka kerja Ruby on Rails, kursus 10 jam oleh Kevin Skoglund, pengembang senior Ruby, mungkin merupakan langkah yang tepat untuk memulai. Ini mencakup siklus belajar lengkap dari yang sangat mendasar untuk topik yang lebih maju seperti Layout, Partials, dan View Helpers, memberikan beberapa tugas praktis secara paralel.

YII
Yii adalah open-source web application development framework yang dibangun dalam PHP5. Ini dioptimalkan kinerja dan dilengkapi dengan sejumlah alat hebat untuk debugging dan pengujian aplikasi. Kelebihan lainnya adalah sangat sederhana dan mudah digunakan.

Meteor JS
Meteor JS ditulis dalam Node.js dan memungkinkan Anda membuat aplikasi web secara realtime untuk berbagai platform. Framework ini untuk membuat situs web sederhana untuk penggunaan pribadi benar-benar dimudahkan dengan Meteor JS.

Ini adalah framework web JavaScript isomorfik open-source yang juga berarti bahwa waktu pemuatan halaman web secara signifikan lebih singkat. JavaScript Stack juga memungkinkan untuk mendapatkan hasil yang sama dengan lebih sedikit baris kode daripada biasanya.

Berikut adalah kursus video online ini memberikan contoh praktis yang menarik untuk menggabungkan MeteorJS dan Reactt untuk membangun aplikasi web.

Express.js
Dikembangkan di Node.js, Express.js adalah jaringan pengembangan aplikasi web yang bagus untuk mereka yang perlu mengembangkan aplikasi dan API secepat mungkin. Banyak fitur hebat disediakan dengan bantuan plugin, dan ini sangat membantu bagi Anda para pengembang website.
Penggunaan lanjutan Express.js dapat dikombinasikan dengan MongoDB dan Mongoose dan menunjukkan berbagai cara penerapan aplikasi Express dan menjalankannya dalam produksi.

Zend
Zend adalah framework open-source berbasis pada PHP, yang difokuskan untuk membangun aplikasi dan layanan web yang lebih aman dan andal. Ini adalah salah satu framework enterprise-level MVC, yang datang sebelum superhits saat ini seperti Laravel atau Symfony, dan banyak mesin PHP populer seperti Magento dibangun di Zend.
Saat ini Zend masih dalam pengembangan aktif, dan meskipun mungkin kurang populer dibandingkan saudara kandungnya, ini adalah solusi yang bagus untuk aplikasi PHP skala besar.

Django
Django adalah salah satu framework paling populer yang ditulis dalam Python dan mengikuti arsitektur MVC. Itu membuat proses pengembangan aplikasi jauh lebih mudah berkat kesederhanaannya.
Django sangat menyederhanakan menggunakan Python dan menyediakan banyak alat yang membuat hidup pengembang aplikasi web lebih mudah – misalnya ORM, Model, admin Django, templat, dll.
Kursus video 1,5 jam ini dapat membantu pengembang mana pun, bahkan pemula, untuk mulai mengembangkan aplikasi Python / Django dalam beberapa hari.

Laravel
Laravel adalah framework pengembangan PHP yang ideal untuk situs web kecil. Muncul dengan sejumlah fitur yang berguna termasuk dukungan MVC, perpustakaan berorientasi objek, Artisan, teknik otorisasi, migrasi database, dll.

Saat ini, ini adalah salah satu kerangka kerja yang paling didukung masyarakat dan dikembangkan masyarakat, dan mengingat bahwa PHP memiliki salah satu komunitas terbesar di luar sana, Laravel adalah alat yang hebat untuk memberi daya pada situs web kecil dan aplikasi web B2B skala besar yang mengelola jutaan transaksi setiap hari.

4. Bahasa Pemrograman
Seperti yang kami jelaskan sebelumnya, karena komputer tidak menggunakan bahasa yang mirip dengan bahasa manusia, mereka membutuhkan cara komunikasi yang berbeda. Berikut adalah beberapa bahasa pemrograman yang paling populer:

Javascript – digunakan oleh semua browser web, Meteor, dan banyak kerangka kerja lainnya
CoffeeScript – “dialek” dari JavaScript. Itu dilihat sebagai lebih sederhana tetapi dikonversi kembali menjadi JavaScript
Python – digunakan oleh kerangka kerja Django serta dalam sebagian besar perhitungan matematika
Ruby – digunakan oleh kerangka kerja Ruby on Rails
PHP – digunakan oleh WordPress untuk membuat editor WYSIWYG yang digunakan semua orang sekarang. Ini juga digunakan oleh Facebook, Wikipedia, dan situs utama lainnya
Go – bahasa yang lebih baru, dibuat untuk Swift kecepatan – bahasa pemrograman terbaru Apple
Java – digunakan oleh Android dan banyak aplikasi desktop.

5. Protokol
Sebagai pengembang website, Anda juga harus mengerti tentang protokol. Instruksi bagaimana cara menyampaikan informasi bolak-balik antara komputer dan perangkat umumnya dikenal sebagai protokol.

Berkat protokol ini, setiap situs web dapat mengakses browser. Protokol meminta situs web dari server Google dan kemudian menerima respons dengan HTML, CSS, dan JavaScript situs web.

Menggunakan soket web untuk membuat koneksi yang konsisten antara klien dan server. Akibatnya, Anda mendapatkan pembaruan situs web dalam waktu nyata tanpa harus menyegarkan peramban.

Sebagian besar digunakan untuk API, protokol ini memiliki metode standar seperti GET, POST, dan PUT yang memungkinkan pertukaran informasi antar aplikasi.

6. API
API (antarmuka pemrograman aplikasi) memungkinkan pengembang lain untuk menggunakan beberapa fungsionalitas aplikasi tanpa membagikan kode.
Tujuan pengembang sementara API adalah dapat mengontrol akses dengan kunci API. Contoh API yang dibuat dengan baik adalah yang dibuat oleh Facebook, Twitter, dan Google untuk layanan web mereka.

7. Format Data
Data disimpan dalam struktur yang disebut format data.
JSON – atau singkatan JavaScript Object Notation adalah sintaks untuk menyimpan dan bertukar data (seperti XML). Saat ini menjadi format data paling populer di luar sana.
XML – Sebagian besar digunakan oleh sistem Microsoft, dulu format data yang paling populer
CSV – adalah data yang diformat dengan koma; misalnya data Excel

8. Klien (Client-side)
Setiap pengguna aplikasi disebut klien. Klien dapat berupa komputer, perangkat seluler, tablet, dll. Biasanya, banyak klien berinteraksi dengan aplikasi yang sama yang disimpan di server.

9. Server (Server-side)
Kode aplikasi biasanya disimpan di server. Klien membuat permintaan ke server. Server kemudian menanggapi permintaan tersebut setelah mengumpulkan informasi yang diminta.

Kesimpulan
Untuk menjadi pengembang website profesional, Anda haru tetap up to date dengan teknologi web terbaru dan harus belajar hal-hal baru setiap saat. Teknologi web sedang ditingkatkan dan diperbarui setiap saat dan setiap tim pengembanga website harus memanfaatkan itu kapan pun dan jika memungkinkan.

Teknologi web baru mengubah seluruh proses pengembangan web dan terkadang sulit untuk memahami semuanya dengan cara yang benar. Untungnya, dengan tutorial teknologi internet yang tepat, Anda dapat belajar lebih banyak tentang semua hal tersebut dalam waktu singkat dan menjadi pengembang website yang andal.

Mengenal Kernel dalam Sistem Operasi

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.

Kernel bertanggung jawab untuk tugas-tugas tingkat rendah seperti manajemen disk atau penyimapanan, manajemen memori, manajemen tugas, manajemen daya, dan lainnya. Kernel juga menghubungkan antarmuka antara pengguna dan komponen perangkat keras sistem. Ketika suatu proses membuat permintaan ke Kernel, maka itu disebut System Call.

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

Fungsi Kernel
Setelah Anda mengetahui apa itu kernel, tentu Anda juga harus mengerti fungsi dari kernel itu sendiri. 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 yang terjadi pada perangkat.
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.

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 User Space.

Jenis-jenis Kernel
Secara umum, ada lima jenis Kernel. Berikut adalah Jenisnya :
1. Kernel Monolitik
kernel monolitik adalah adalah jensi kernel yang memegang semua hak istimewa untuk mengakses perangkat input / output (I / O), memori, gangguan perangkat keras, dan proses CPU atau CPU stack. Kernel monolitik cenderung lebih besar dari kernel lain karena mereka berurusan dengan begitu banyak aspek pemrosesan komputer pada level terendah, dan oleh karena itu harus memasukkan kode yang berhubungan dengan banyak perangkat, I / O dan saluran interupsi, dan operator perangkat keras lainnya.

Bentuk kernel ini adalah dasar untuk Linux, Unix, MS-DOS dan Mac OS. Sistem operasi yang lebih baru biasanya menggunakan kernel hybrid untuk memudahkan pemeliharaan dan peningkatan sistem operasi.


Kelebihan:
Sistem kernel 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 ada layanana atau proses baru akan ditambahkan maka seluruh Sistem Operasi perlu dimodifikasi.

2. Mikrokernel
Sebuah Mikrokernel 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. Karena i menggunakan Ruang Pengguna dan Ruang Kernel secara terpisah, sehingga mengurangi ukuran Kernel dan ini, dan artinya juga mengurangi ukuran Sistem Operasi.

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


Kelebihan:
Jika ada layanan atau tugas baru yang 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 secara keseluruhan.

3. Kernel Hibrid
Kernel Hibrid adalah kombinasi Kernel Monolitik dan Mikrokernel. Itu membuat penggunaan kecepatan Kernel Monolitik dan modularitas Microkernel.
Kernel hibrid adalah kernel mikro yang memiliki beberapa kode “non esensial” di ruang kernel agar kode dapat berjalan lebih cepat daripada di ruang pengguna. Jadi, beberapa layanan seperti network stack 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.

5. Exokernel
Exokernel adalah kernel Sistem Operasi yang dikembangkan oleh MIT Parallel and Distributed Operating Systems group. Di sini dalam jenis kernel ini, perlindungan sumber daya dipisahkan dari manajemen dan pada gilirannya, menghasilkan kemungkina kita untuk melakukan penyesuaian khusus aplikasi.

Dalam Exokernel, idenya bukan untuk mengimplementasikan semua secara abstrak. 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.

Kesimpulan
Itulah pengertian lengkap tentang apa itu kernel dan juga berbagai jenis kernel yang banyak digunakan. Setelah Anda mengerti apa itu kernel dan Anda adalah seorang pengembang yang sedang membangun sistem, Anda bisa memilih salah satu jenis kernel di atas sesuai kebutuhan sistem yang Anda bangun.

3 Tipe Penjadwalan CPU

Penjadwalan CPU adalah pemilihan proses dari antrian ready untuk dapat dieksekusi. Penjadwalan CPU merupakan konsep dari multiprogramming, dimana CPU digunakan secara bergantian untuk proses yang berbeda. Suatu proses terdiri dari dua siklus yaitu Burst I/O dan Burst CPU yang dilakukan bergantian hingga proses selesai. Penjadwalan CPU mungkin dijalankan ketika proses:

running ke waiting time
running ke ready state
waiting ke ready state

terminatesProses 1 dan 4 adalah proses Non Preemptive, dimana proses tersebut tidak bisa di- interrupt, sedangkan 2 dan 3 adalah proses Preemptive, dimana proses boleh di interrupt.
Pada saat CPU menganggur, maka sistem operasi harus menyeleksi proses-proses yang ada di memori utama (ready queue) untuk dieksekusi dan mengalokasikan CPU untuk salah satu dari proses tersebut. Seleksi semacam ini disebut dengan shortterm scheduler (CPU scheduler).
Komponen yang lain dalam penjadwalan CPU adalah dispatcher, Dispatcher adalah suatu modul yang akan memberikan kontrol pada CPU terhadap penyeleksian proses yang dilakukan selama short-term scheduling . Waktu yang diperlukan oleh dispatcher untuk menghentikan suatu proses dan memulai proses yang lain disebut dengan dispatch latency.
Jika dalam suatu proses Burst CPU jauh lebih besar daripada Burst I/O maka disebut CPU Bound. Demikian juga sebaliknya disebut dengn I/O Bound.

1. Penjadwalan Preemptive
Penjadwalan Preemptive mempunyai arti kemampuan sistem operasi untuk memberhentikan sementara proses yang sedang berjalan untuk memberi ruang kepada proses yang prioritasnya lebih tinggi. Penjadwalan ini bisa saja termasuk penjadwalan proses atau I/O. Penjadwalan Preemptive memungkinkan sistem untuk lebih bisa menjamin bahwa setiap proses mendapat sebuah slice waktu operasi. Dan juga membuat sistem lebih cepat merespon terhadap event dari luar (contohnya seperti ada data yang masuk) yang membutuhkan reaksi cepat dari satu atau beberapa proses. Membuat penjadwalan yang Preemptive mempunyai keuntungan yaitu sistem lebih responsif daripada sistem yang memakai penjadwalan Non Preemptive.
Dalam waktu-waktu tertentu, proses dapat dikelompokkan ke dalam dua kategori: proses yang memiliki Burst M/K yang sangat lama disebut I/O Bound, dan proses yang memiliki Burst CPU yang sangat lama disebut CPU Bound. Terkadang juga suatu sistem mengalami kondisi yang disebut busywait, yaitu saat dimana sistem menunggu request input(seperti disk, keyboard, atau jaringan). Saat busywait tersebut, proses tidak melakukan sesuatu yang produktif, tetapi tetap memakan resource dari CPU. Dengan penjadwalan Preemptive, hal tersebut dapat dihindari.
Dengan kata lain, penjadwalan Preemptive melibatkan mekanisme interupsi yang menyela proses yang sedang berjalan dan memaksa sistem untuk menentukan proses mana yang akan dieksekusi selanjutnya.
Lama waktu suatu proses diizinkan untuk dieksekusi dalam penjadwalan Preemptive disebut time slice/quantum. Penjadwalan berjalan setiap satu satuan time slice untuk memilih proses mana yang akan berjalan selanjutnya. Bila time slice terlalu pendek maka penjadwal akan memakan terlalu banyak waktu proses, tetapi bila time slice terlau lama maka memungkinkan proses untuk tidak dapat merespon terhadap event dari luar secepat yang diharapkan.

2. Penjadwalan Non Preemptive
Penjadwalan Non Preemptive ialah salah satu jenis penjadwalan dimana sistem operasi tidak pernah melakukan context switch dari proses yang sedang berjalan ke proses yang lain. Dengan kata lain, proses yang sedang berjalan tidak bisa di- interupt.
Penjadwalan Non Preemptive terjadi ketika proses hanya:
1. Berjalan dari running state sampai waiting state.
2. Dihentikan.
Ini berarti CPU menjaga proses sampai proses itu pindah ke waiting state ataupun dihentikan (proses tidak diganggu). Metode ini digunakan oleh Microsoft Windows 3.1 dan Macintosh. Ini adalah metode yang dapat digunakan untuk platforms hardware tertentu, karena tidak memerlukan perangkat keras khusus (misalnya timer yang digunakan untuk meng interupt pada metode penjadwalan Preemptive).

Algoritma Penjadwalan CPU
Penjadwalan CPU terkait dengan bagaimana proses dikelola . Banyak algoritma yang digunakan untuk penjadwalan proses. Beberapa algoritma yang digunakan antara lain :
1. First-Come First- Serve (FCFS)
Merupakan algoritma yang paling sederhana dalam penjadwalan proses. Proses yang melakukan request terhadap CPU akan diproses oleh CPU. Implementasinya dengan menggunakan algoritma First In First Out – FIFO. FCFS bersifat non-preemptive yaitu proses yang dikerjakan oleh CPU tidak dapat diinterupsi oleh proses yang lainnya.
Sebagai contoh :

Proses Burst
P1 10
P2 1
P3 2
P4 1
P5 5

Gant Chart :
Proses diasumsikan datang bersamaan dan masuk dalam antrian penggunaan CPU. Proses akan dikerjakan berdasarkan nomor urutan proses, sedangkan yang lainnya menunggu sampai proses diatasnya selesai dikerjakan.
Dari Gant Chart dapat diperoleh waktu tunggu proses dari CPU yang dapat diambil waktu rata-ratanya.
Waiting Time P1 = 0, Waiting Time P2 = 10, Waiting Time P3 = 11, Waiting Time P4 = 13, Waiting Time P5 = 14.
Avarage Waiting Time (AWT) = (WT P1 + WT P2 + WT P3 + WT P4 + WT P5)/5
Avarage Waiting Time (AWT) = (0 + 10 + 11 + 13 + 14)/5 = 9.6 ms

FCFS dapat juga bekerja dengan adanya prioritas terhadap proses, prioritas dengan nilai terkecil akan diberi status sebagai prioritas tinggi dan akan dikerjakan terlebih dahulu.

Proses Burst Prioritas
P1 10 3
P2 1 1
P3 2 4
P4 1 5
P5 5 2

Gant Chart :
Avarage Waiting Time (AWT) = (0 + 1 + 6 + 16 + 18)/4 = 8.2 ms
Masalah utama pada FCFS adalah adanya antrian dari proses yang menjadi panjang karena waiting time yang rata-rata panjang. Proses-proses yang telah berada dalam posisi ready akan tetapi CPU belum dapat memprosesnya. Hal ini yang disebut dengan starvation.

2. Shortest Job First (SJF)
Pendekatan SJF berbeda dengan FCFS, algoritma SJF tergantung dengan panjang proses yang ada pada queue. Ketika CPU akan melakukan proses, CPU akan memilik proses dengan CPU burst paling kecil. SJF dapat bekerja dengan mode preemptive maupun non-preemptive.

Non-preemptive
Proses Burst
P1 6
P2 8
P3 7
P4 3

Gant chat :Waiting Time P1 = 3
Waiting Time P2 = 16
Waiting Time P3 = 9
Waiting Time P4 = 0
Avarage Waiting Time = (3 + 16 + 9 + 0)/4 = 7 ms
b. Preemptive
SJF dengan waktu kedatangan (arrival time) berbeda.

Proses Arrival Burst
P1 0 8
P2 1 4
P3 2 9
P4 3 5
Proses akan di-preemptive jika ada proses masuk, dah penjadwalan dilakukan ulang dengan membandingkan proses yang masuk dengna proses yang sedang dijalankan. Sebaga contoh pada tabel ketika P1 dijalankan dengna membutuhkan 8 ms, akan tetapi datang burst dari proses P2 dengan burst time 4 ms pada deti ke-1. Proses akan berhenti pada detik 1 kemudian membandingkan proses P1 dengan P2. Karena P2 < P1 maka proses P1 akan dikembalikan ke ready queue dengan P1 = 7 dan memproses P2. Demikian seterusnya.

Gant chart :
Waiting Time P1 = 0 + (10-1) = 9
Waiting Time P2 = 1-1 = 0
Waiting Time P3 = 17-2 = 15
Waiting Time P4 = 5-3 = 2
Average Waiting Time = (9 + 0 + 15 + 2 )/4 = 6.5 ms

3. Round Robin (RR)
Round Robin hampir mirip dengan FCFS akan tetapi terdapat proses perpindahan antar proses dimana satu proses melakukan interupsi terhadap proses yang lainnya atau disebut juga dengan preemptive. Proses preemptive dengan menggunakan time quantum atau time slice.
Sebagai contoh :

Proses Burst
P1 24
P2 3
P3 3
Dengan time slice sebesar 4 ms, penjadwalan yang terjadi adalah sebagai berikut:
P1 mendapatkan kesempatan pada 4 ms (time slice) pertama, karena P1 > time slice maka P1 hanya akan diproses selama time slice, sisa P1 sebesar P1 – time slice akan di preemptive-kan. Selanjutnya penjadwalan akan beralih ke P2, karena P2 < time slice maka P2 diproses hingga selesai, setelah itu penjadwalan beralih ke P3 dan seterusnya.

Waiting Time P1 = 0 + (10 – 4) = 6
Waiting Time P2 = 4
Waiting Time P3 = 7
Average Waiting Time = (6 + 4 + 7 )/3 = 5.66 ms

Pada algoritma RR, tidak ada proses yang dikerjakan dalam satu waktu lebih dari time slice yang disediakan. Jika terdapat n proses pada queue dengan time slice sebesar q, maka setiap proses akan mendapatkan waktu 1/n dengan masing-masing proses sebesar q .Setiap proses akan menunggu setidaknya sebanyak (n-1)x q untuk proses selanjutnya. Sebagai contoh terdapat 5 proses dengan time slice sebesar 20 ms maka masing-masing proses akan mendapatkan waktu sebanyak 20 ms setiap 100 ms.

Performance dari RR tergantung pada ukuran time slice. Jika time slice terlalu besar maka RR akan sama atau mendekati performance FCFS. Akan tetapi jika time slice kecil maka muncul problem context switch yang terlalu banyak, yaitu proses perpindahan dari satu proses ke proses lain yang akan menimbulkan permasalahan. Hal ini terjadi karena perbedaan kecepatan processor dan memori, dengan terjadinya perpindahan yang terlalu sering proses pembacaan CPU ke memori dan sebaliknya akan membebani sistem.

Penjadwalan CPU adalah Memilih dari proses-proses yang berada di memori (ready to execute) dan memberikan jatah CPU ke salah satu proses tersebut. Penjadwalan CPU mungkin akan dijalankan ketika proses:

Berubah dari running ke waiting state.
Berubah dari running ke ready state.
Berubah dari waiting ke ready.
Terminates.

Penjadwalan 1 dan 4 adalah non preemptive, maksudnya adalah setiap proses secara berkala memberikan CPU ke OS. Contoh: Penjadualan untuk switch dari running ke wait atau terminate. Selain itu bersifat preemptive yaitu OS dapat mengambil (secara interrupt) CPU dari satu proses setiap saat. Contoh: Penjadualan proses dari running ke ready.

Kriteria Penjadwalan
Algoritma penjadwalan CPU yang berbeda akan memiliki perbedaan properti. Sehingga untuk memilih algoritma ini harus dipertimbangkan dulu properti-properti algoritma tersebut. Ada beberapa kriteria yang digunakan untuk melakukan pembandingan algoritma penjadwalan CPU, antara lain:

CPU utilization : Diharapkan agar CPU selalu dalam keadaan sibuk. Utilitas CPU dinyatakan dalam bentuk prosen yaitu 0-100%. Namun dalam kenyataannya hanya berkisar antara 40-90%.
Throughput : Banyaknya proses yang selesai dikerjakan dalam satu satuan waktu (maksimalkan jumlah proses yang selesaidijalankan (per satuan waktu)).
Turnaround time : Banyaknya waktu yang diperlukan untuk mengeksekusi proses, dari mulai menunggu untuk meminta tempat di memori utama, menunggu di ready queue, eksekusi oleh CPU, dan mengerjakan I/O. minimalkan waktu selesai eksekusi suatu proses (sejak di submit sampai selesai).
Waiting time : Waktu yang diperlukan oleh suatu proses untuk menunggu diready queue. Waiting time ini tidak mempengaruhi eksekusi proses dan penggunaan I/O.(Meminimalkan waktu tunggu proses (jumlah waktu yang dihabiskan menunggu di ready queue)).
Response time : Waktu yang dibutuhkan oleh suatu proses dari minta dilayani hingga ada respon pertama yang menanggapi permintaan tersebut.(Meminimalkan waktu response darisistimterhadap user (interaktif, time-sharing system), sehingga interaksi dapat berlangsung dengan cepat).
Fairness : Meyakinkan bahwa tiap-tiap proses akan mendapatkan pembagian waktu penggunaan CPU secara terbuka (fair).

Dispatcher
Dispatcher adalah suatu modul yang akan memberikan kontrol pada CPU terhadap penyeleksian proses yang dilakukan selama short-term scheduling. Fungsi-fungsi yang terkandung di dalam-nya meliputi:
1. Switching context;
2. Switching ke user-mode;
3. Melompat ke lokasi tertentu pada user program untuk memulai program.
Waktu yang diperlukan oleh dispatcher untuk menghentikan suatu proses dan memulai untuk menjalankan proses yang lainnya disebut dispatch latency. Karena dispatcher digunakan setiap berpindah proses,dispatcher harus secepat mungkin.

ALGORITMA PENJADWALAN
Penjadwalan CPU menyangkut penentuan proses-proses yang ada dalam ready queue yang akan dialokasikan pada CPU. Terdapat beberapa algoritma penjadwalan CPU seperti dijelaskan pada sub bab di bawah ini.
ü First Come-First Served
Proses yang pertama kali meminta jatah waktu untuk menggunakan CPU akan dilayani terlebih dahulu. Pada skema ini, proses yang meminta CPU pertama kali akan dialokasikan ke CPU pertama kali. Rata-rata waktu tunggu(Average Waiting Time=AWT) cukup tinggi. Misalnya terdapat tiga proses yang dapat dengan urutan P1, P2, danP3 dengan waktu CPU-burst dalam milidetik yang diberikan sebagai berikut :
Process Burst Time
P1 24
P2 3
P3 3
Gant Chart dengan penjadwalan FCFS adalah sebagai berikut :


Waktu tunggu untuk P1 adalah 0, P2 adalah 24 danP3 adalah 27 sehingga rata-rata waktu tunggu adalah (0 + 24 + 27)/3 = 17 milidetik. Sedangkan apabila proses datang dengan urutan P2, P3, dan P1, hasil penjadwalan CPU dapat dilihat pada gant chart berikut:


Waktu tunggu sekarang untuk P1 adalah 6, P2adalah 0 dan P3 adalah 3 sehingga rata-rata waktu tunggu adalah (6 + 0 + 3)/3 = 3 milidetik. Rata-rata waktu tunggu kasus ini jauh lebih baik dibandingkan dengan kasus sebelumnya. Pada penjadwalan CPU dimungkinkan terjadiConvoy effect apabila proses yang pendek berada pada proses yang panjang. Algoritma FCFS termasuk non-preemptive. karena, sekali CPU dialokasikan pada suatu proses, maka proses tersebut tetap akan memakai CPU sampai proses tersebut melepaskannya, yaitu jika proses tersebut berhenti atau meminta I/O.

Shortest Job
Pada penjadwalan SJF, proses yang memiliki CPU burst paling kecil dilayani terlebih dahulu. Terdapat dua skema :
1. Non preemptive, bila CPU diberikan pada proses, maka tidak bisa ditunda sampai CPU burst selesai.
2. Preemptive, jika proses baru datang dengan panjang CPU burst lebih pendek dari sisa waktu proses yang saat itu sedang dieksekusi, proses ini ditunda dan diganti dengan proses baru. Skema ini disebut dengan Shortest-Remaining- Time-First (SRTF).
SJF adalah algoritma penjadwalan yang optimal dengan rata-rata waktu tunggu
yang minimal. Misalnya terdapat empat proses dengan panjang CPU burst dalam
milidetik.
Process Arrival Time Burst Time
P1 0.0 7
P2 2.0 4
P3 4.0 1
P4 5.0 4
Penjadwalan proses dengan algoritma SJF (non-preemptive) dapat dilihat pada gant chart berikut :

Waktu tunggu untuk P1 adalah 0, P2 adalah 26, P3adalah 3 dan P4 adalah 7 sehingga rata-rata waktu tunggu adalah (0 + 6 + 3 + 7)/4 = 4 milidetik. Sedangkan Penjadwalan proses dengan algoritma SRTF (preemptive) dapat dilihat pada gant chart berikut :

Waktu tunggu untuk P1 adalah 9, P2 adalah 1, P3adalah 0 dan P4 adalah 4 sehingga rata-rata waktu tunggu adalah (9 + 1 + 0 + 4)/4 = 3 milidetik.
Meskipun algoritma ini optimal, namun pada kenyataannya sulit untuk diimplementasikan karena sulit untuk mengetahui panjang CPU burst berikutnya. Namun nilai ini dapat diprediksi. CPU burst berikutnya biasanya diprediksi sebagai suatu rata-rata eksponensial yang ditentukan dariCPU burst sebelumnya atau “Exponential Average”.

dengan:
τ n+1 = panjang CPU burst yang diperkirakan
τ 0 = panjang CPU burst sebelumnya
τ n = panjang CPU burst yang ke-n (yang sedang berlangsung)
α = ukuran pembanding antara τ n+1 dengan τ n (0 sampai 1)
Grafik hasil prediksi CPU burst dapat dilihat pada Gambar dibawah:


Prediksi panjang CPU burst berikutnya
Sebagai contoh, jika α = 0,5, dan
CPU burst (τ n ) = 6 4 6 4 13 13 13 . . .
τ n = 10 8 6 6 5 9 11 12 . . .
Pada awalnya τ 0 = 6 dan τ n = 10, sehingga :
τ 2 = 0,5 * 6 + (1 - 0,5) * 10 = 8
Nilai yang dapat digunakan untuk mencari τ 3
τ 3 = 0,5 * 4 + (1 - 0,5) * 8 = 6

Priority
Algoritma SJF adalah suatu kasus khusus dari penjadwalan berprioritas. Tiaptiap proses dilengkapi dengan nomor prioritas (integer). CPU dialokasikan untuk proses yang memiliki prioritas paling tinggi (nilai integer terkecil biasanya merupakan prioritas terbesar). Jika beberapa proses memiliki prioritas yang sama, maka akan digunakan algoritma FCFS. Penjadwalan berprioritas terdiri dari dua skema yaitu non preemptive dan preemptive. Jika ada proses P1 yang datang pada saat P0 sedang berjalan, maka akan dilihat prioritas P1. Seandainya prioritas P1 lebih besar dibanding dengan prioritas P0, maka pada non-preemptive, algoritma tetap akan menyelesaikan P0 sampai habis CPU burst-nya, dan meletakkan P1 pada posisi head queue. Sedangkan padapreemptive, P0 akan dihentikan dulu, dan CPU ganti dialokasikan untuk P1. Misalnya terdapat lima proses P1, P2, P3, P4 dan P5 yang datang secara berurutan dengan CPU burst dalam milidetik.

Process Burst Time Priority
P1 10 3
P2 1 1
P3 2 3
P4 1 4
P5 5 2
Penjadwalan proses dengan algoritma priority dapat dilihat pada gant chart berikut:

Waktu tunggu untuk P1 adalah 6, P2 adalah 0, P3 adalah 16,P4 adalah 18 dan P5 adalah 1 sehingga rata-rata waktu tunggu adalah (6 + 0 +16 + 18 + 1)/5 = 8.2 milidetik.

Round Robin
Konsep dasar dari algoritma ini adalah dengan menggunakan time-sharing. Pada dasarnya algoritma ini sama dengan FCFS, hanya saja bersifat preemptive. Setiap proses mendapatkan waktu CPU yang disebut dengan waktu quantum (quantum time) untuk membatasi waktu proses, biasanya 1-100 milidetik. Setelah waktu habis, proses ditunda dan ditambahkan pada ready queue. Jika suatu proses memiliki CPU burst lebih kecil dibandingkan dengan waktu quantum, maka proses tersebut akan melepaskan CPU jika telah selesai bekerja, sehingga CPU dapat segera digunakan oleh proses selanjutnya. Sebaliknya, jika suatu proses memiliki CPU burst yang lebih besar dibandingkan dengan waktu quantum, maka proses tersebut akan dihentikan sementara jika sudah mencapai waktu quantum, dan selanjutnya mengantri kembali pada posisi ekor dari ready queue, CPU kemudian menjalankan proses berikutnya. Jika terdapat nproses pada ready queue dan waktu quantum q, maka setiap proses mendapatkan 1/n dari waktu CPU paling banyak qunit waktu pada sekali penjadwalan CPU. Tidak ada proses yang menunggu lebih dari (n-1)q unit waktu. Performansi algoritma round robin dapat dijelaskan sebagai berikut, jika q besar, maka yang digunakan adalah algoritma FIFO, tetapi jika q kecil maka sering terjadi context switch.
Misalkan ada 3 proses: P1, P2, dan P3 yang meminta pelayanan CPU dengan quantum-time sebesar 4 milidetik.

Process BurstTime
P1 24
P2 3
P3 3
Penjadwalan proses dengan algoritma round robin dapat dilihat pada gant chart berikut :

Waktu tunggu untuk P1 adalah 6, P2 adalah 4, danP3 adalah 7 sehingga rata-rata waktu tunggu adalah (6 + 4 + 7)/3 = 5.66 milidetik.Algoritma Round-Robin ini di satu sisi memiliki keuntungan, yaitu adanya keseragaman waktu. Namun di sisi lain, algoritma ini akan terlalu sering melakukan switching seperti yang terlihat pada Gambar dibawah. Semakin besar quantum-timenya maka switching yang terjadi akan semakin sedikit.

Menunjukkan waktu kuantum yang lebih kecil meningkatkan
context switch

Waktu turnaround juga tergantung ukuran waktu quantum. Seperti pada Gambar dibawah , rata-rata waktu turnaround tidak meningkat bila waktu quantum dinaikkan. Secara umum, rata-rata waktu turnaround dapat ditingkatkan jika banyak proses menyelesaikan CPU burst berikutnya sebagai satu waktu quantum. Sebagai contoh, terdapat tiga proses masing-masing 10 unit waktu dan waktu quantum 1 unit waktu, rata-rata waktu turnaround adalah 29. Jika waktu quantum 10, sebaliknya, rata-rata waktu turnaround turun menjadi 20.


Menunjukkan waktu turnaround berbeda pada waktu quantum
yang berbeda

Penjadwalan Jangka Pendek (Short Term Scheduller)
Bertugas menjadwalkan alokasi pemroses di antara proses-proses ready di memori utama. Penjadwalan dijalankan setiap terjadi pengalihan proses untuk memilih proses berikutnya yang harus dijalankan.

Penjadwalan Jangka Menengah (Medium Term Scheduller)
Proses dipindah dari memori utama ke memori sekunder agar tersedia ruang untuk proses-proses lain. Kapasitas memori utama terbatas untuk sejumlah proses aktif. Aktivitas pemindahan proses yang tertunda dari memori utama ke memori sekunder disebut swapping

Penjadwalan Jangka Panjang (Long Term Scheduller)
Penjadwal ini bekerja terhadap antrian batch dan memilih batch berikutnya yang harus dieksekusi. Batch biasanya adalah proses-proses dengan penggunaan sumber daya yang intensif (yaitu waktu
pemroses, memori, masukan/keluaran), program-program ini berprioritas rendah, digunakan sebagai pengisi (agar pemroses sibuk) selama periode aktivitas job-job interaktif rendah.

Contoh penjadwalan CPU:



Ketika sebuah proses beralih dari keadaan running ke keadaan waiting .
Ketika sebuah proses beralih dari keadaan runningke status ready.
Ketika sebuah proses beralih dari waiting untuk ready.
Ketika proses berakhir .

Perbedaan KDE dan GNOME

KDE dan GNOME merupakan suatu GUI (Graphical User Interface) atau desktop environtment (lingkungan desktop) yang memudahkan user untuk bisa mengakses aplikasi di linux. Sebenarnya GUI itu tidak hanya KDE dan GNOME saja yang ada, tapi ada juga yang namanya IceWM,XFCE,Blackbox,dan Fluxbox.

Secara ringkas dapat dikatakan bahwa GUI adalah tampilan yang menjembatani penggunaan sistem linux dengan user agar lebih mudah digunakan. GUI pada linux (yaitu KDE,GNOME dll) berbeda dengan sistem operasi WINDOWS. Pada windows, GUI termasuk dalam sistem utama. AKibatnya ketika GUI pada windows crash, maka sistem utama juga akan ikut crash. Berbeda dg linux, dimana GUI berjalan di atas sistem X-window. Jadi ketika GUI atau Xwindownya crash, sistem utamanya tidak ikut crash. solusinya cukup restart lingkungan X-windownya. Dengan kata lain GUI pada linux bukanlah sistem, melainkan aplikasi grafis yang berjalan di atas sistem.


GNOME adalah (GNU Network ObjectModel Environment). Tampilan Desktop GNOME terdiri dari beberapa komponen, yaitu gtk-engine, gtk-themes, metacity dan icons. Engine default dalam GTK 2.4 default terdiri dari Clearlooks, Crux, Industrial, Light-Blue, Metal, Mist dan Smooth. Tema GNOME dibuat dengan menyesuaikan engine yang dipakai untuk menampilkan warna dan efek yang diinginkan. Tema-tema default tentunya bisa anda dapatkan dari aplikasi distribusi Linux yang dipakai dengan nama tema yang tidak jauh dari nama engine di atas. proyek GNOME menyediakan dua hal-hal: lingkungan desktop GNOME, suatu desktop yang menarik dan intuitif untuk para pemakai, dan platform pengembangan GNOME, suatu kerangka luas untuk bangunan aplikasi yang mengintegrasikan ke dalam sisa dari desktop. GNOME ini juga memiliki sifat-sifat Free, Usable, Accessible, International, Developer-friendly, Organized, Supported, A community.

KDE adalah lingkungan desktop (desktop environment) dan platform pengembangan aplikasi yang dibangun dengan toolkit Qt dari Trolltech. KDE berjalan pada banyak ragam sistem Unix, termasuk Linux, BSD dan Solaris. Terdapat pula versi KDE untuk Mac OS X dengan bantuan lapisan X11 dan untuk Microsoft Windows dengan bantuan Cygwin.

KDE merupakan salah satu windows manager di sistem operasi berbasis UNIX. Pembuatan aplikasi yang berjalan di KDE harus mengikuti standar antarmuka yang ramah dan efisien bagi penggunanya. KDE adalah sebuah aplikasi desktop environment untuk sistem operasi berbasis UNIX (termasuk Linux, FreeBSD, NetBSD dan lain-lainnya). Fungsinya adalah untuk mengurangi penggunaan command line yang mungkin terlalu rumit bagi pengguna yang awam di sistem operasi berbasis UNIX tersebut, sehingga pengoperasiannya semudah mengoperasikan desktop pada lingkungan Windows maupun MacOS. KDE ini berisi full grafis dan membutuhkan memori yang besar. Keunggulan utama KDE adalah kemudahan pemakaian, fleksibilitas, portabitilis, dan kekayaan fitur. KDE dikembangkan sejalan dengan KDevelop, paket pengembangan perangkat lunak, dan KOffice, paket aplikasi office. Huruf "K" mulanya adalah untuk "Kool", tetapi selanjutnya diganti menjadi "K" saja, yang berarti "Aksara pertama sebelum 'L' (untuk Linux) dalam alfabet Latin."

Perbedaan KDE dan GNOME:
1. KDE berorientasi pada tampilan grafis sehingga tampilannya lebih cantik daripada GNOME yang tidak terlalu "menaruh perhatian besar pada tampilan walaupun juga tidak mengabaikannya sama sekali".
2. GNOME lebih memakai lebih sedikit memori daripada KDE, sehingga performa GNOME relatif lebih cepat daripada KDE (ini mungkin karena GNOME tidak berorientasi pada grafis tetapi lebih kepada penghematan memori).