Selasa, 16 Juni 2020

Perkembangan Ancaman Keamanan Sistem


Dengan perkembangan teknologi yang melaju pesat saat ini, Ada banyak orang yang memanfaatkannya untuk kepentingan pribadi mereka. Salah satunya dengan menyebar virus yang dapat memantau aktivitas si korban. Jadi ada baiknya Kita untuk memahami berbagai jenis kejahatan di luar sana sehingga Kita dapat tetap waspada. Website yang memiliki keamanan hosting yang kuat, tentu bisa terhindar dari serangan ini. 


Malware

Malware (malicious software) adalah program atau file berbahaya bagi komputer. Program jahat ini dapat melakukan berbagai fungsi, termasuk mencuri, mengenkripsi atau menghapus data sensitif, mengubah atau membajak fungsi-fungsi komputasi inti dan memonitor aktivitas komputer pengguna tanpa izin mereka.

Jenis-Jenis Malware:

Cara perangkat lunak melakukan kerusakannya dapat membantu dalam mengategorikan
jenis malware apa yang Anda hadapi. Ada berbagai jenis malware yang memiliki karakteristik
yang unik, berikut adalah daftarnya :

  • Virus adalah program yang dapat mengeksekusi dirinya sendiri dan menyebar dengan menginfeksi program atau file lain. Mereka biasanya muncul sebagai file yang dapat dieksekusi.
  • Worm adalah jenis malware yang dapat mereplikasi diri tanpa program host dan biasanya menyebar tanpa interaksi atau arahan dari pembuatnya. Biasanya menginfeksi seluruh jaringan perangkat, baik lokal atau di internet, dengan menggunakan antarmuka jaringan.
  • Trojan horse adalah program jahat yang dirancang untuk muncul sebagai program yang sah. Biasanya menjalankan kejahatannya setelah instalasi software telah selesai dengan membuka pintu masuk bagi malware lainnya.
  • Spyware adalah sejenis malware yang dirancang untuk mengumpulkan informasi dan data pada pengguna dan mengamati aktivitas mereka tanpa sepengetahuan pengguna. Ia bersembunyi di latar belakang dan mencatat apa yang Anda lakukan secara online, termasuk kata sandi , nomor kartu kredit, dan transaksi penting lainnya.
  • Ransomware merupakan malware yang dirancang untuk menginfeksi sistem pengguna dan mengenkripsi data. Penjahat dunia maya kemudian menuntut pembayaran uang tebusan dari korban sebagai pertukaran untuk mendekripsi data sistem milik mereka.
  • Rootkit adalah jenis malware yang dirancang untuk mendapatkan akses tingkat administrator ke sistem korban. Setelah diinstal, program ini memberikan root ancaman atau akses istimewa ke sistem.
  • Virus backdoor atau Remote Access Trojan (RAT) adalah program jahat yang secara diam-diam membuka pintu ke dalam sistem terinfeksi yang memungkinkan untuk dapat diakses dari jarak jauh tanpa memberi peringatan ke program keamanan sistem.
  • Adware merupakan perangkat lunak periklanan yang agresif yang dapat merusak keamanan komputer hanya untuk menayangkan iklan. Tayangan pop-up iklan ini bersifat memaksa.
  • Botnets adalah jaringan komputer yang terinfeksi yang dibuat untuk bekerja bersama di bawah kendali penyerang.

Cara Kerja Malware

Pembuat malware menggunakan berbagai cara untuk menyebarkan malware dan
menginfeksi perangkat dan jaringan. Program berbahaya dapat dikirim secara fisik ke
sistem melalui drive USB. Malware sering menyebar melalui internet melalui unduhan
yang secara otomatis mengunduh program jahat ke sistem pengguna tanpa persetujuan
atau pengetahuan mereka. Ini dimulai ketika pengguna mengunjungi situs web jahat.
Serangan malware yang canggih sering menampilkan penggunaan server perintah dan
kontrol yang memungkinkan penyerang untuk berkomunikasi dengan sistem yang 

terinfeksi,mengeksfiltrasi data sensitif bahkan mengontrol perangkat atau server yang 
dikendalikan dari jarak jauh.

Cara Mencegah Malware

Berbicara tentang metode penghapus malware, setiap jenis malware memiliki cara sendiri untuk menginfeksi dan menghancurkan komputer dan karenanya setiap jenis malware akan membutuhkan metode penghapus malware yang berbeda. Menghindari tautan yang mencurigakan, email, atau situs web selalu dianggap sebagai kebiasaan daring yang bagus, tetapi penyerang juga dapat berkompromi bahkan dengan situs web yang sah. Website yang memiliki keamanan hosting yang kuat dapat terhindar dari serangan ini. Namun beberapa langkah ini juga bisa Anda lakukan untuk menghindari malware :

  • Sistem operasi yang diperbarui: Manfaatkan kemampuan otomatis pembaruan untuk sistem operasi seperti Windows atau mengunduh dan memasang pembaruan secara otomatis.
  • Peramban yang diperbarui: Tidak peduli peramban apa yang Anda gunakan, menjaganya tetap diperbaharui adalah hal penting untuk mencegah infeksi. Manfaatkan pencekalan munculan browser Anda, unduh skrining, dan fitur pembaruan otomatis.
  • Perangkat lunak antivirus: Dengan adanya program antivirus yang terus perbarui, aktifkan, dan dijadwalkannya pemindaianyan untuk berjalan setidaknya satu kali sebulan. (Sebaiknya hindari menjalankan dua program antivirus sekaligus untuk menghindari mereka saling mengganggu.)
  • Anti-malware: Juga disebut anti-spyware, banyak aplikasi antivirus termasuk komponen anti-malware. Jika milik Anda tidak, instal dan gunakan program anti-malware yang berdiri sendiri yang tidak bertentangan dengan program antivirus Anda. Tetap perbarui.
  • Firewall: Jika Anda tidak menjalankan firewall pihak ketiga, gunakan Windows Firewall. (Jangan menjalankan dua firewall sekaligus, mereka akan mengganggu satu sama lain.)
  • Filter spam: Jika program email Anda tidak cukup memfilter spam, pertimbangkan perangkat lunak pemfilteran spam tambahan. 




Kamis, 26 Maret 2020

Penjadwalan Proses Sistem Operasi

PENJADWALAN PROSES

Penjadwalan proses adalah kumpulan kebijasanaan dan mekanisme pada
sistem operasi berkenaan dengan urutan kerja yang dilakukan sistem komputer.
Penjadwalan bertugas memutuskan proses yang harus berjalan, kapan, dan selama
berapa lama proses itu berjalan.
Agoritma penjadwalan interaktif:

1. Round Robin
Merupakan salah satu algoritma penjadwalan yang paling sederhana untuk
proses dalam sistem operasi. Seperti umumnya istilah ini digunakan, irisan waktu
ditugaskan untuk setiap proses pada porsi yang sama dan dalam urutan melingkar,
menjalankan semua proses tanpa prioritas (dikenal juga sebagai eksekutif siklik).
Penjadwalan round-robin itu sederhana, mudah diterapkan, dan bebas starvation.
Penjadwalan round-robin juga dapat diterapkan untuk masalah penjadwalan
lainnya, seperti penjadwalan paket data dalam jaringan komputer.
Algoritma round robin dirancang untuk sistem time sharing. Algoritma ini
mirip dengan penjadwalan FCFS (First Come First Served), namun preemption
ditambahkan untuk switch (peralihan proses) antara proses. Antrian ready
diperlakukan atau dianggap sebagai antrian sirkular. CPU menglilingi antrian
ready dan mengalokasikan masing-masing proses untuk interval waktu tertentu
sampai satu time slice /quantum.
Algoritma ini berjalan dengan menggilir proses yang ada pada antrian.
Setiap Proses akan mendapat jatah sebesar time quantum.

Jika time quantum-nya habis atau proses sudah selesai, CPU akan dialihkan ke proses yang selanjutnya.
Tentu proses ini cukup adil karena tak ada proses yang diprioritaskan, semua
proses mendapat jatah waktu yang sama dari CPU yaitu (1/n), dan tak akan
menunggu lebih lama dari (n-1)q dengan q adalah lama 1 quantum. Contoh:
Diketahui : RR – FCFS dengan kuantum = 3
Proses Arrival Time Burst
Time
P1 0 10
P2 2 8
P3 3 12
P4 5 5
P5 9 1
Waktu tunggu untuk masing-masing proses diatas adalah :
P1 = 0 + ( 9 + 3 ) + ( 20 + 12 ) + ( 25 – 23 ) = 16
P2 = ( 3 – 2 ) + ( 14 – 6 ) + ( 23 + 17 ) = 15
P3 = ( 6 – 3 ) + ( 18 – 9 ) = 12
P4 = ( 12 – 5 ) =17
P5 = ( 17 - 9 ) = 8 +
= 58
Waktu tunggu rata-rata = 58/5 = 11,6 satuan waktu

2. Berbasis prioritas
Tiap-tiap proses dilengkapi dengan nomor prioritas (integer). Jika,17-88 beberapa proses memiliki prioritas yang sama, maka akan digunakan algoritmaF,FCFS Jika ada proses P1 yang datang pada saat P0 sedang berjalan, maka akan dilihat prioritas P1. Seandaynya prioritas P1 lebih besar dibanding dengan prioritas P0, disebut algoritama non-preemptive, algoritma tetap akan menyelesaikan P0 sampai habis CPU burst-nya, dan meletakkan P1 pada head quence. Sedangkan pada preemptive, P0 akan dihentikan dulu, dan CPU ganti
dialokasikan untuk P1. Misalnya terdapat lima proses P1,P2,P3, dan P4 yang
datang secara berurutan dengan CPU burst dengan milidetik.
 Penjadwalan dengan prioties preemptive berdasarkan prioritas size yang lebih
besar.
Contoh:

Proses Arrival Time Burst
Time
Size (kb)
P1 0 10 100 kb
P2 2 8 150 kb
P3 3 12 175 kb
P4 5 5 100 kb
 Waiting time dari proses diatas adalah sebagai berikut :
P1 = 0 + ( 22 + 2 ) = 20
P2= ( 2 – 2 ) + ( 15 + 3 ) = 12
P3= ( 3 – 3 ) = 0
P4= ( 30 - 5 ) = 25 +
 = 57
Waktu tunggu rata-rata = 57/4 = 14,25 satuan waktu

3. Multi Queue & Multi level Feedback
Penjadwalan dengan menggunakan algoritma multilevel feedback queue sama
dengan algoritma pada penjadwalan multilevel queue, pada penjadwalan feedbac queue suatu proses yang dapat berpindah antar berbagai queue; aging dapat
diterapkan dengan cara ini. Multilevel-Feedback Queue Scheduler digambarkan
oleh parameter berikut:
✓Jumlah queue
✓Scheduling algoritma untuk tiap queue
✓Metode yang digunakan untuk memutuskan ketika upgrade suatu proses
✓Metode yang digunakan untuk memutuskan ketika menurunkan suatu proses
✓Metode yang digunakan untuk menentukan queue mana yang akan diproses
ketika proses membutuhkan service
Contoh dari Multivel Feedback Queue
 Tiga queue:
· Q0- time quantum 8 miliseconds
· Q1- time quantum 16 miliseconds
· Q2- FCFS
Scheduling
Pekerjaan baru masuk queue Q0 yang dilayani FCFS. Ketika memperoleh CPU,
pekerjaan menerima 8 seperseribu detik. Jika tidak selesai dalam 8 seperseribu
detik, pekerjaan dipindah ke queue Q1.
· Pada Q1 pekerjaan dilayani FCFS dan menerima 16 seperseribu detik tambahan .
Jika masih belum lengkap, maka di-preempted dulu dan dipindah ke queue Q2.
Proses multilevel feedback queue scheduling juga bisa dilakukan dengan cara
lebih adil, dengan menggunakan tiga metode:
· Menggunakan algoritma RR dengan quantum 5
· Menggunakan algoritma RR dengan quantum 10
· Menggunakan algoritma FCFS
Seluruh proses dikerjakan dengan algoritma RR dengan quantum 5 jika proses tidak selesai, proses dikembalikan ke ready queue dan urutan proses diletakkan di
bagian terakhir dari proses yang ada untuk diproses. Setelah proses dengan waktu
kedatangan proses lain selesai, baru diproses kembali dengan algoritma RR
dengan quantum 10. Jika masih belum selesai, maka proses akan dikerjakan
dengan algoritma FCFS sampai semua proses selesai.

4. Guaranted Scheduling
Algoritma penjadwalan ini memberikan daya pemroses yang sama untuk
membuat dan menyesuaikan kinerja. Algoritma yang memiliki kinerja yang cukup bagus akan menjanjikan kelangsungan yang baik pula. Misalnya ada X pemakai, maka setiap proses atau pemakai akan mendapatkan 1/X dari daya pemroses CPU.
Untuk mewujudkannya, system harus selalu menyimpan informasi tentang jumlah waktu CPU untuk semua proses sejak login dan juga harus selalu menyimpan informasi tentang berapa lama pemakai sedang login. System harus tahu berapa CPU time untuk meyakinkan bahwa setiap pengguna mendapatkan jatah waktu
menggunakan CPU sesuai haknya dan juga berapa CPU time yang diperlukan oleh setiap proses 1 pengguna serta berapa CPU time yang diperlukan oleh tiap-
tiap pengguna.
Misalkan ada 5 pengguna, seperti pada table berikut:
Pengguna CPU Time
A 5
B 4
C 8
D 1
E 2
Total waktu yang digunakan untuk mengakses kelima pengguna tersebut
adalah 20ms, sehingga diharapkan tiap pengguna mendapatkan 20/5=4 ms.
Kenyataannya, mulai sejak login sampai saat ini tiap-tiap pengguna telah mendapatkan CPU seperti pada table berikut. Rasio antara CPU yang diperoleh
sampai saat ini (actual) dengan CPU tang seharusnya diperoleh (4 ms) dapat dicari
dengan:
Pengguna CPU Aktual Rasio
A 3 3/4=0.75
B 6 6/4=1.5
C 2 2/4=0.5
D 1 1/4=0.25
E 1 1/4=0.25
Dapat dilihat bahwa Pengguna A memiliki rasio 0.75, artinya A baru mendapatkan ¾ dari jatah waktu yang seharusnya diterima. Pengguna B memiliki rasio 1.5, artinya B mendapatkan 1.5 waktu dari jatah yang seharusnya didapatkan. Algoritma ini menjalankan proses dengan rasio yang paling rendah dulu sampai proses tersebut mendapatkan rasio melebihi rasio proses yang sebelumnya mempunyai rasio satu tingkat labih tinggi darinya.

5. Lottery Scheduling
Algoritma ini termasuk Algoritma Penjadwalan Interaktif, biasanya preemptive. Waktu eksekusi dibagi dalan kuantum (interval waktu) dan keputusan
penjadwalan dibuat pada awal setiap kuantum. Dalam performnya memiliki waktu espon minimum. Dan penjadwalan Lottery ini lebih umum digunakan.
Berdasarkan probabilitasnya tiap proses diberikan tiket undian, pada saat
penjadwalan tiket dipilih secara acak dan proses yang memiliki tiket akan
dialokasiakn CPU duluan. Proses yang memiliki prioritas lebih tinggi akan
memiliki banyak tiket pula.
Keuntungan dari algoritma penjadwalan ini antara lain, sederhana, sangat responsive, dapat mendukung kerjasama antarproses dan mudah untuk mendukung kebutuhan prioritas dan proporsionalitas seperti yang kita tahu
algoritma ini memiliki proporsional terbaik.

6. Fair Sharing Scheduling
Algoritma ini juga termasuk Algoritma Penjadwalan Interaktif yang bersifat preemptive yang dalam performnya memiliki proporsional terbaik dan waktu respon yang minimum. Waktu eksekusi dibagi dalam kuantum (interval
waktu) dan keputusan penjadwalan dibuat pada awal setiap kuantum.
Pada algoritma penjadwalan Round Robin cukup adil dari sudut pandang pprosestapi mungkin tidak dari sudut pandang user. Oleh karena itu, algoritma penjadwalan Fair-Share Scheduling tiap user mendapatkan jatah secara adil
karena Fair-Share berbasis user. Misalnya: X memiliki 4 proses yaitu A1, A2, A3
dan A4 sadangkan Y hanya memiliki proses B1. Maka berdasarkan algoritma ini,
A1, A2, A3 dan A4 berempat berhak mendapatkan 50% atas waktu CPU. Begitu pula dengan B1, berhak mendapatkan 50% atas waktu CPU.

7. Shortest Process Time
Pada algoritma penjadwalan Shortest proccess untuk meminimasi waktu alir rata-rata (mean flow time) dan meinimasi kelambatan rata-rata (mean lateness) pada sebuah prosesor tunggal yang harus mengerjakan
sekumpulan pekerjaan.
Walaupun penjadwalan satu prosesor tidak akan berpengaruh terhadap besarnya makespan, tetapi pengurutan pekerjaan akan sangat berpengaruh pada waktu alir rata-rata (mean flow time), kelambatan rata-rata (mean lateness) atau ukuran kelambatan rata-rata (mean tardiness).

Sumber:
https://www.academia.edu/8785380/Penjadwalan_Proses_Sistem_Operasi_Komputer

Minggu, 22 Maret 2020

Multithreading Thread

Multithreading Thread


Suatu proses didefinisikan oleh resource yang digunakan dan lokasi yang akan dieksekusi. Namun ada kalanya proses-proses akan menggunakan resource secara bersama-sama. Suatu unit dasar dari CPU utilization yang berisi program counter, kumpulan register, dan ruang stack disebut dengan thread atau lighweight process(LWP). Thread akan bekerja sama dengan thread lainnya dalam hal penggunaan bagian kode, bagian data, dan resource sistem operasi, seperti open file dan sinyal secara kolektif yang sering disebut dengan task.

  • Thread adalah unit terkecil dalam suatu proses yang bisa dijadwalkan oleh sistem operasi.
  • Merupakan sebuah status eksekusi (ready, running, suspend, block, queue, dll)
  • Kadang disebut sebagai proses ringan (lightweight).
  • Unit dasar dari dari sistem utilisasi pada processor (CPU).
  • Dalam thread terdapat: ID Thread, Program Counter, Register dan Stack.
  • Sebuah thread berbagi code section, data section dan resource sistem operasi dengan thread yang lain yang memiliki proses yang sama.

Single-Threading dan Multi-Threading

Single-Threading
adalah sebuah lightweight process (proses sederhana) yang mempunyai thread tunggal yang berfungsi sebagai pengendali/ controller.
Multi-Threading
adalah proses dengan thread yang banyak dan mengerjakan lebih dari satu tugas dalam satu waktu


Dalam gambar tersebut terlihat perbedaan antara single thread dengan multi thread. Setiap thread dapat melakukan proses tersendiri, sehingga proses yang semula besar dipecah ke dalam proses kecil­kecil, sedangkan pada single thread hanya ada 1 thread yang menangani proses yang besar. Tentu multithread akan lebih cepat dari pada single thread, namun dalam kasus tertentu terlalu banyak multithread justru memperlambat kerja atau proses. 

Keuntungan Multi-Threading

1. Responsive; tanggap : Multi-Threading mengizinkan program untuk berjalan terus walau-pun pada bagian program tersebut di block atau sedang dalam keadaan menjalankan operasi yang lama/panjang. Sebagai contoh, multithread web browser dapat mengizinkan pengguna berinteraksi dengan suatu thread ketika suatu gambar sedang diload oleh thread yang lain.
2. Pembagian sumber daya : Secara default, thread membagi memori dan sumber daya dari proses. Ketika thread berjalan pada data yang sama, thread tersebut bisa berbagi cache memory.
3. Ekonomis : Mengalokasikan memori dan sumber daya untuk membuat proses adalah sangat mahal. Alternatifnya, karena thread membagi sumber daya dari proses, ini lebih ekonomis untuk membuat threads.
4. Pemberdayaan arsitektur multiprosesor: Keuntungan dari multi-threading dapat ditingkatkan dengan arsitektur multiprosesor, dimana setiap thread dapat jalan secara paralel pada prosesor yang berbeda. Pada arsitektur prosesor tunggal, CPU biasanya berpindah-pindah antara setiap thread dengan cepat, sehingga terdapat ilusi paralelisme, tetapi pada kenyataannya hanya satu thread yang berjalan di setiap waktu.
2.4 Thread dalam Sistem Operasi
Sistem operasi telah mendukung proses multithreading.
Setiap sistem operasi memiliki konsep tersendiri dalam pengimplementasiannya.
Sistem operasi dapat mendukung thread pada tingkatan kernel maupun tingkatan pengguna.



2.5 Model Multi-Threading

1. Many-to-One
Model many­to­one ini memetakan beberapa tingkatan pengguna thread hanya ke satu buah kernel thread. Managemen proses thread dilakukan oleh (di ruang) pengguna, sehingga menjadi efisien, tetapi apabila sebuah thread melakukan sebuah pemblokingan terhadap sistem pemanggilan, maka seluruh proses akan berhenti (blocked). Kelemahan dari model ini adalah multihreads tidak dapat berjalan atau bekerja secara paralel di dalam multiprosesor dikarenakan hanya satu thread saja yang bisa mengakses kernel dalam suatu waktu.

2. One-to-One
Model one­to­one memetakan setiap thread pengguna ke dalam satu kernel thread. Hal ini membuat model one­to­one lebih sinkron daripada model many­to­one dengan mengizinkan thread lain untuk berjalan ketika suatu thread membuat pemblokingan terhadap sistem pemanggilan; hal ini juga mengizinkan multiple thread untuk berjalan secara parallel dalam multiprosesor. Kelemahan model ini adalah dalam pembuatan thread pengguna dibutuhkan pembuatan korespondensi thread pengguna. Karena dalam proses pembuatan kernel thread dapat mempengaruhi kinerja dari aplikasi maka kebanyakan dari implementasi model ini membatasi jumlah thread yang didukung oleh sistem. Model one­to­one diimplementasikan oleh Windows NT dan OS/2. 


3. Many-to-Many
Beberapa tingkatan thread pengguna dapat menggunakan jumlah kernel thread yang lebih kecil atau sama dengan jumlah thread pengguna. Jumlah dari kernel thread dapat dispesifikasikan untuk beberapa aplikasi dan beberapa mesin (suatu aplikasi dapat dialokasikan lebih dari beberapa kernel thread dalam multiprosesor daripada dalam uniprosesor) dimana model many­to­one mengizinkan pengembang untuk membuat thread pengguna sebanyak mungkin, konkurensi tidak dapat tercapai karena hanya satu thread yang dapat dijadualkan oleh kernel dalam satu waktu. Model one­to­one mempunyai konkurensi yang lebih tinggi, tetapi pengembang harus hati­hati untuk tidak membuat terlalu banyak thread tanpa aplikasi dan dalam kasus tertentu mungkin jumlah thread yang dapat dibuat dibatasi.


2.6 Thread cancellation

Thread cancellation/ pembatalan thread ialah pemberhentian thread sebelum tugasnya selesai. Misalnya jika dalam program Java hendak mematikan Java Virtual Machine (JVM). Sebelum JVM dimatikan, maka seluruh thread yang berjalan harus dihentikan terlebih dahulu. Thread yang akan diberhentikan disebut sebagai target thread. Pembatalan Thread terdiri dari 2 jenis:
1. Asynchronous cancellation: suatu thread seketika itu juga memberhentikan target thread.
2. Deffered cancellation: target thread secara perodik memeriksa apakah dia harus berhenti, cara ini memperbolehkan target thread untuk memberhentikan dirinya sendiri secara terurut.
2.7 Thread Pools
Thread Pools adalah cara kerja dengan membuat beberapa thread pada proses startup dan menempatkan mereka ke pools.
Keuntungan menggunakan Thread Pools
Biasanya lebih cepat untuk melayani permintaan dengan thread yang ada dibanding dengan menunggu thread baru dibuat.
Thread pool membatasi jumlah thread yang ada pada suatu waktu. Hal ini penting pada sistem yang tidak dapat mendukung banyak thread yang berjalan secara concurrent.

Sumber : 
guruinformatika.blogspot.co.id
https://www.labwisnu.com/2018/05/pengertian-thread.html?m=1

Minggu, 15 Maret 2020

Strategi penjadwalan proses Preemptive dan Non Preemptive

STRATEGI PENJADWALAN PROSES

Penjadwalan merupakan kumpulan kebijaksanaan dan mekanisme di sistem operasi yang berkaitan dengan urutan kerja yang dilakukan sistem komputer. Penjadwalan juga bertugas untuk memutuskan proses yang harus berjalan dan kapan atau berapa lama proses itu berjalan.
Terdapat dua strategi penjadwalan, yaitu :
1.       Penjadwalan Non-preemptive
2.       Penjadwalan Preemptive

Penjadwalan Preemptive
Penjadwalan Preemptive adalah kemampuan sistem operasi untuk memberhentikan sementara proses yang sedang berjalan untuk memberi ruang kepada proses yang prioritasnya lebih tinggi. Penjadwalan ini memungkinkan sistem untuk menjamin bahwa setiap proses mendapat  slice waktu operasi, dan membuat sistem lebih cepat merespon event luar.
Penjadwalan Preemptive melibatkan mekanisme interupsi yang menyela proses yang sedang berjalan dan memaksa sistem menentukan proses mana yang dieksekusi.
Contoh sistem operasi yang menerapkan penjadwalan Preemptive:
Windows 95, Windows XP, Linux, Unix, AmigaOS, MacOS X, dan Windows NT.
Lama waktu proses diizinkan untuk dieksekusi dalam penjadwalan Preemptivedisebut time slice/quantum. Penjadwalan berjalan setiap satu satuan time sliceuntuk memilih proses mana yang berjalan selanjutnya.
Penjadwalan NonPreemptive
Penjadwalan Non Preemptive ialah penjadwalan dimana sistem operasi tidak melakukan context switch dari proses yang sedang berjalan ke proses lain (proses yang berjalan tidak bisa di- interupt).
CPU menjaga proses sampai proses pindah ke waiting state ataupun dihentikan (proses tidak diganggu). Metode ini digunakan Microsoft Windows 3.1 dan Macintosh. Ini adalah metode yang digunakan untuk platforms hardwaretertentu, karena tidak memerlukan hardware khusus (misalnya timer yang digunakan untuk menginterupt pada metode penjadwalan Preemptive).
Perbedaan Preemptive dan NonPreemptive
Preemptive:
  1. Algoritma preemptive dijalankan oleh penghitungan yang diprioritaskan.
  2. Proses dengan prioritas tertinggi menjadi satu – satunya yang memakai CPU.
  3. Jika ada proses baru yang prioritasnya lebih tinggi, proses yang terdapat pada CPU dihilangkan.
  4. context_switch() dipanggil walaupun proses diberhentikan oleh timer interrupt.
Non-Preemptive:
  1. Algoritma non – preemptive hanya mengizinkan satu proses.
  2. Proses tidak dihilangkan dari CPU sampai waktu berjalannya selesai.
  3. context_switch() dipanggil ketika proses diberhentikan atau diblok.

Kamis, 05 Maret 2020

Struktur Sistem Operasi

PENGERTIAN
Pengetahuan dalam bidang teknologi sangat penting untuk dipelajari. Hal ini dikarenakan saat ini teknologi berkembang begitu pesatnya dan terus berkembang seiring berjalannya waktu.
Tidak dapat dipungkiri bahwa perkembangan yang kian pesat dapat mengubah berbagai persepsi dan berdampak bagi kehidupan manusia. Salah satu contohnya adalah perangkat komputer yang terus dikembangkan inovasinya untuk dapat mencakup berbagai kebutuhan aktifitas pengguna. Untuk menunjang hal tersebut, dibutuhkan sistem operasi yang sesuai dengan kebutuhan dan spesifikasi komputer yang akan dikembangkan.
Dalam sistem operasi juga membutuhkan beragam struktur pembentuknya sehingga dapat menghasilkan sistem operasi yang handal. Untuk mempermudah pembelajaran mengenai apa saja dan bagaimana struktur sistem operasi tersebut, akan dijelaskan secara detail dan terperinci pada berikut ini:

A. System Monolitic (Struktur Sederhana)

Struktur Sistem Operasi (Monilitik System)
System monolitik ini berisikan kumpulan dari berbagai prosedur yang dapat dipanggil oleh persedur lainnya untuk menjalankan sistem. Sehingga antar prosedur dapat saling bekerja sama dalam menjalankan sebuah sistem.
Beberapa contoh sistem operasi yang memiliki system monolitic adalah seperti MS DOS dan UNIX. MS DOS lebih berfokus pada menyediakan fungsional yang lebih sedikit dan tidak bisa dibagi dalam beberapa modul.
Sedangkan UNIX lebih berfokus pada setiap prosedur dapat memanggil prosedur lainnya, sehingga tiap prosedur bisa saling berkomunikasi, dan kernel akan berisi semua layanan yang telah disediakan oleh sistem yang akan digunakan oleh pengguna. Kelebihan yang dimiliki oleh system monolitic adalah akses layanannya lebih cepat karena dilakukan pada satu tempat.

B. Layered System (Sistem Berlayer)

Client Server
Sistem operasi memiliki sistem layer. Maksudnya adalah sistem operasi terdiri dari beragam layer mulai dari bahwa hingga atas. Sehingga masing-masing layer memiliki tujuan dan fungsi masing-masing.
Lapisan layer paling bawah biasa digunakan sebagai perangkat keras, sedangkan lapiran layer paling atas digunakan sebagai user-interface. Adanya struktur berlayer ini digunakan untuk mengurangi kompleksitas rancangan dari implementasi sistem operasi.
Setiap lapisan layer dari struktur tersebut merupakan hasil implementasi dari objek abstrak. Dimana hasil implementasi tersebut merupakan enkapsulasi data dan operasi yang bisa dimanipulasi. Agar lebih jelas, berikut jenis layer yang digunakan dalam sistem operasi:

1. Layer Perangkat keras

Bagian yang berhubungan dengan perangkat keras. Biasanya terdiri dari sirkuit elektronik yang digunakan untuk membersihkan register dan membaca lokasi memori, set instruksi pada prosesor, dan interupsi yang berisikan perintah yang baru dijalankan.

2. Layer Sistem operasi

Bagian sistem operasi yang berhubungan langsung dengan programmer yang spesifik pada bagian sistem operasinya. Sehingga akan lebih teknis pembahasannya. Layer ini biasanya terdiri dari ide dalam eksekusi program, penyimpanan sekunder dari komputer, dan lamat logic dari setiap proses yang akan dijalankan. Segala hal tersebut membutuhkan kode program agar dapat dijalankan dengan benar dan sesuai dengan yang diharapkan.

3. Layer Kelengkapan

Pada bagian ini termasuk kelengkapan dari bagian sebelumnya, sehingga masih terkait dan berhubungan dengan programmer. Layer kelengkapan bertugas untuk mengatasi komunikasi informasi yang terjadi dan termasuk pesan-pesan antar proses.
Selain itu juga terdapat penyimpanan jangka panjang, akses dari perangkat eksternal menggunakan antarmuka (user-interface) yang standar, dan bertanggung jawab untuk memastikan hubungan eksternal dan internal identifier yang dimulai dari sumber daya dan objek sistem.

4. Layer Program aplikasi

Pada bagian ini berhubungan dengan pengguna aplikasi komputer (end-user). Sehingga berkaitan erat dengan user-interface yang mudah digunakan oleh user agar dapat mengakses aplikasi. Sehingga sistem dapat memproses informasi yang dibutuhkan oleh user.

C. Kernel Mikro

Struktur Sistem Operasi - Kernel Mikro
Fungsi dari kernel mikro ini adalah untuk mempermudah komunikasi yang terjadi antara program client dengan beragam layanan yang terdapat pda ruang user. Sehingga dengan adanya kernel mikro ini dapat mempermudah dan memperluas sistem operasi, dan mudah ketika akan diubah (transformasi) ke arsitektur yang lebih baru. Selain itu, dengan menggunakan kernel mikro, kode program akan aman karena lebih kecil.

D. Modules (Modular)

Kernel Mikro
Struktur modular ini dimulai dari kernel yang biasanya memiliki kumpulan komponen inti dan terhubung dengan penambahan layanan secara dinamis dan dalam waktu boot berjalan. Sehingga untuk mengatasi hal tersebut, struktur modular ini dilakukan dengan cara menggunakan pemanggilan modul secara dinamis. Contoh dari sistem operasi yang menggunakan struktur modullar ini adalah Solaris, Linux dan MacOS.

E. Virtual Machine

Struktur Sistem Operasi (Virtual Machine)
Virtual Machine merupakan jenis struktur yang memiliki sistem time-sharing. Sistem time-sharing ini memiliki fungsi untuk dapat menyediakan kemampuan multi-programming dan perluasan sistem mesin dengan user interface yang lebih mudah digunakan. Sehingga pengguna tidak akan merasa kebingungan dalam menggunakan jenis sistem ini.
Struktur virtual machine terdiri dari 2 jenis yaitu control program dan conventional monitor system. Control program digunakan sebagai pengatur fungsi prosesor, memori dan perangkat input/output.
Sehingga control program akan berhubungan langsung dengan perangkat keras yang akan digunakan. Sedangkan Coventional monitor system digunakan untuk mengatur fungsi dari proses, pengelolaan informasi dan pengelolaan perangkat dari sistem operasi.

F. Client-Server Model

Layered System
Pada dasarnya sistem operasi terdiri dari beragam proses yang dikategorikan sebagai client dan server. Client merupakan jenis proses permintaan layanan, sedangkan server adalah jenis proses yang memberikan layanan. Sehingga proses akan dimulai dari client yang meminta layanan tertentu, dan server akan memberikan dan mengirim informasi terkait layanan yang diinginkan oleh client.

G. Sistem Berorientasi Objek

Struktur Sistem Operasi dengan Sistem Berorientasi Objek
Sistem operasi berorientasi objek maksudnya adalah pendekatan sistem operasi yang strukturnya menggunakan objek. Sehingga pendekatan ini juga mengadopsi dari teknologi yang berorientasi objek.
Struktur sistem operasi berorientasi objek merupakan sistem operasi yang sangat terstruktur, sehingga dapat dengan mudah memisahkan layanan dan implementasinya. Sehingga informasi yang dihasilkan tidak tercampur dan membuat user lebih mudah mengerti. Contoh dari sistem operasi berorientasi objek adalah MS WINDOWS. Namun belum seluruhnya menggunakan sistem berorientasi objek.
Adanya penjelasan detail mengenai struktur sistem operasi menjadi suatu pemahaman yang mudah dimengerti dan mudah dipahami bagi pembaca, khususnya orang-orang yang familiar dengan teknologi informasi atau bahkan sistem operasi.
Kemudahan dalam belajar sistem operasi ini akan menjadi salah satu bentuk pembelajaran yang menyenangkan, karena pembahasan dikemas dengan bahasa yang mudah dimengerti dan tidak memberatkan. Sehingga akan lebih mudah dipahami berbagai kalangan. Semoga artikel ini dapat bermanfaat untuk anda.