Materi Pertemuan 3 (Scheduling)

Nama          : Gede Haris Premana Wibawa.
Nim             : 1605551016.
Dosen         : I Putu Agus Eka Pratama ST., MT.
Matakuliah  : Network Operating System
Kampus      : Universitas Udayana, Fakultas Teknik, Program Studi Teknologi Informasi.


Halo blogger mania, kali ini saya akan melanjutkan pembahasan mengenai materi Process, dipostingan ini akan membahas mengenai konsep dasar dan definisi dari Scheduling, Multiprogramming, jenis-jenis Scheduling, dan Algoritma yang digunakan pada Scheduling. 

Definisi Scheduling pada Sistem Operasi

Scheduling (Penjadwalan) proses merupakan kumpulan kebijakan dan mekanisme di sistem operasi (meliput kernel, palikasi, dan process) yang berkaitan dengan urutan kerja yang dilakukan oleh komputer dan sistem komputer. Penjadwalan bertugas untuk memutuskan proses yang harus berjalan dan kapan & selama berapa lama proses itu berjalan. Sasaran utama penjadwalan proses adalah melakukan optimalisasi kinerja berdasarkan kriteria sebagai berikut. 

1. Adil (Fairness). Proses-proses yang diperlakukan sama, yaitu mendapat jatah waktu pemroses yang sama dan tak ada proses yang tak kebagian layanan pemroses sehingga mengalami kekurangan waktu.
2. Efisiensi (Efficiency). Efisiensi atau utilisasi pemroses dihitung dengan perbandingan (rasio) waktu sibuk pemroses (processor).
3. Waktu Tanggap (Respon Time). Waktu tanggap dapat dibedakan menjadi 2 antara lain : 
  • Sistem Interaktif. Didefinisikan sebagai waktu yang dihabiskan dari saat karakter terakhir dari perintah dimasukkan atau transaksi sampai hasil pertama muncul di layar. Waktu tanggap ini disebut dengan Terminal Response Time.
  • Sistem waktu nyata. Didefinisikan sebagai waktu dari saat kejadian (internal atau eksternal) sampai instruksi pertama rutin layanan yang dimaksud dieksekusi, disebut dengan Event Response Time.
4. Turn Around Time. Waktu yang dihabiskan dari saat program atau job mulai masuk ke sistem sampai proses diselesaikan sistem. Waktu yang dimaksud adalah waktu yang dihabiskan di dalam sistem, diekspresikan sebagai penjumlah waktu eksekusi (waktu pelayanan job) dan waktu menunggu, yaitu : Turn arround time = waktu eksekusi + waktu menunggu.
5. Throughput. Jumlah kerja yang dapat diselesaikan dalam satu unit waktu. Cara untuk mengekspresikan throughput adalah dengan jumlah job pemakai yang dapat dieksekusi dalam satu unit/interval waktu.


Peran Scheduling

Peran penjadwalan dalam proses pada sistem operasi agar memungkinkan kinerja sistem operasi menjadi optimal. Berikut ini merupakan peran penjadwalan proses pada sistem operasi. 
  • Menjamin tiap proses mendapat pelayanan dari pemroses yang adil.
  • Menjaga agar pemroses tetap dalam keadaan sibuk sehingga efisiensi mencapai maksimum. Pengertian sibuk adalah pemroses tidak menganggur, termasuk waktu yang dihabiskan untuk mengeksekusi program pemakai dan sistem operasi.
  • Meminimalkan waktu tanggap.
  • Meminimalkan turn arround time.
  • Memaksimalkan jumlah job yang diproses persatu interval waktu. Lebih besar angka throughput, lebih banyak kerja yang dilakukan sistem.
  

Jenis Scheduling

Terdapat 4 tipe penjadwalan berada secara bersama-sama pada sistem operasi yang kompleks, yaitu sebagai berikut. 


1. Long Term Scheduling. 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, perangkat masukan/keluaran), program-program ini berprioritas rendah, digunakan sebagai pengisi (agar pemroses sibuk) selama periode aktivitas job-job interaktif rendah.

2. Medium Term Scheduling. Setelah eksekusi selama suatu waktu, proses mungkin menunda sebuah eksekusi karena membuat permintaan layanan masukan/keluaran atau memanggil suatu system call. Proses-proses tertunda tidak dapat membuat suatu kemajuan menuju selesai sampai kondisi-kondisi yang menyebabkan tertunda dihilangkan. Agar ruang memori dapat bermanfaat, maka proses dipindah dari memori utama ke memori sekunder agar tersedia ruang untuk proses-proses lain. Kapasitas memori utama terbatas untuk sejumlah proses aktif.

3. Short Term Scheduling. 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 dalam waktu singkat.

4. I/O Scheduling. Memilih proses mana yang tertunda yang dapat dilanjutkan kembali berdasarkan ketersediaan perangkat I/O.


Strategi Scheduling 

Terdapat 2 strategi penjadwalan diantaranya sebagai berikut. 


1. Penjadwalan nonpreemptive (run to completion). Proses diberi jatah waktu oleh pemroses, maka pemroses tidak dapat diambil alih oleh proses lain sampai proses itu selesai.
2. Penjadwalan preemptive. Proses diberi jatah waktu oleh pemroses, maka pemroses dapat diambil alih proses lain, sehingga proses disela sebelum selesai dan harus dilanjutkan menunggu jatah waktu pemroses tiba kembali pada proses itu. Berguna pada sistem dimana proses-proses yang mendapat perhatian/tanggapan pemroses secara cepat, seperti berikut.
  • Pada sistem realtime, kehilangan interupsi (tidak layani segera) dapat
    berakibat fatal.
  • Pada sistem interaktif, agar dapat menjamin waktu tanggap yang memadai. Penjadwalan secara preemptive baik tetapi harus dibayar mahal. Peralihan proses memerlukan overhead (banyak tabel yang dikelola). Supaya efektif, banyak proses harus berada di memori utama sehingga proses-proses tersebut dapat segera running begitu diperlukan. Menyimpan banyak proses tak running benar-benar di memori utama merupakan suatu overhead tersendiri.
 

Algoritma Scheduling

Algoritma Scheduling membantu alur penjadwalan pada sistem serta membantu programmer di dalam pengembangan aplikasi terkait dengan sistem operasi. Berikut ini merupakan beberapa algoritma dalam scheduling diantaranya sebagai berikut. 
1. Round Robin.Penjadwalan yang paling tua, sederhana, adil,banyak digunakan algoritmanya dan mudah diimplementasikan. Penjadwalan tanpa prioritas. Berasumsi bahwa semua proses memiliki kepentingan yang sama, sehingga tidak ada prioritas tertentu.
Semua proses dianggap penting sehingga diberi sejumlah waktu oleh pemroses yang disebut quantum atau time slice dimana proses itu berjalan. Jika proses masih running sampai akhir quantum, maka CPU akan mempreempt proses itu dan memberikannya ke proses lain. Penjadwal membutuhkannya dengan memelihara daftar proses dari runnable. Ketika quantum habis untuk satu proses tertentu, maka proses tersebut akan diletakkan diakhir daftar (list). Algoritma yang digunakan adalah sebagai berikut. 
  1. Jika quantum habis dan proses belum selesai, maka proses menjadi runnabledan pemroses dialihkan ke proses lain. 
  2. Jika quantum belum habis dan proses menunggu suatu kejadian (selesainya operasi I/O), maka proses menjadi blocked dan pemroses dialihkan ke proses lain. 
  3. Jika quantum belum habis tetapi proses telah selesai, maka proses diakhiri dan pemroses dialihkan ke proses lain.
2. FIFO (First In First Out). Penjadwalan paling sederhana, karena proses-proses diberi jatah waktu pemroses berdasarkan waktu kedatangan dan pada saat proses mendapat jatah waktu pemroses, proses dijalankan sampai selesai. FIFO jarang digunakan secara mandiri, tetapi dikombinasikan dengan skema lain, misalnya : Keputusan berdasarkan prioritas proses. Untuk proses-pross berprioritas sama diputuskan berdasarkan FIFO. Penjadwalan ini :
  • Baik untuk sistem batch yang sangat jarang berinteraksi dengan pemakai. Contoh : aplikasi analisis numerik, maupun pembuatan tabel. 
  • Sangat tidak baik (tidak berguna) untuk sistem interaktif, karena tidak memberi waktu tanggap yang baik. 
  • Tidak dapat digunakan untuk sistem waktu nyata (real-time applications).
 
3. Shortest Job First (SJF). Penjadwalan ini mengasumsikan waktu jalan proses sampai selesai diketahui sebelumnya. Mekanismenya adalah menjadwalkan proses dengan waktu jalan terpendek lebih dulu sampai selesai, sehingga memberikan efisiensi yang tinggi dan turn around time rendah dan penjadwalannya tak berprioritas.
 
 
 
Referensi
[1] I Putu Agus Eka Pratama."PPT Network Operating System Pertemuan 3". 2018.
[2] "Modul Training TOT : Sistem Operasi Bab 4". 2018.

Materi Pertemuan 2 (Process)

Nama          : Gede Haris Premana Wibawa.
Nim             : 1605551016.
Dosen         : I Putu Agus Eka Pratama ST., MT.
Matakuliah  : Network Operating System
Kampus      : Universitas Udayana, Fakultas Teknik, Program Studi Teknologi Informasi.

Halo para blogger, kembali lagi dengan pembahasan mengenai materi lanjutan dari materi sebelumnya yaitu Operating System (OS), kali ini saya akan membahas mengenai Proses Sistem Operasi. Hal-hal yang saya akan bahas disini mengenai definisi proses, kondisi/ status proses, Process Control Block (PCB), dan manajemen proses. 


Definisi Proses


Proses merupakan unit kerja terkecil yang secara individu memiliki sumber daya dan dijadwalkan oleh sistem operasi. Proses juga dapat diartikan sebuah program yang sedang dalam kondisi dijalankan atau dieksekusi. Ada hal yang perlu kalian ketahui bahwa Proses bukan lah kode program, karena proses menggambarkan aktifitas yang sedang terjadi pada sistem operasi, disertai dengan nilai dari program counter dan isi dari daftar prosesor (processor's register).

Kondisi / Status Proses


Jenis status yang terdapat pada proses dalam sistem operasi ada 5 diantaranya sebagai berikut. 
1. New, proses yang baru saja dibentuk dan belum masuk pada mekanisme antrian eksekusi
2. Running, proses yang sedang dieksekusi.
3. Waiting,  proses sedang menunggu sejumlah kejadian untuk terjadi (seperti sebuah penyelesaian I/O atau penerimaan sebuah tanda/ signal).
4. Ready, proses yang sudah siap dan menunggu giliran untuk dieksekusi.
5. Terminated, proses yang telah selsesai melaksanakan
tugasnya, dimana proses tidak mampu untuk berjalan sehingga sistem operasi akan memberikan batas waktu respon jika melewati batas waktu maka proses tersebut dihentikan.

Nama atau istilah proses yang digunakan diatas bisa saja berbeda pada setiap sistem operasi namun sejatinya proses bersifat mengubah state (kondisi awal / statis).


Process Control Block (PCB)

PCB merupakan bentuk informasi-informasi lain yang diperlukan Sistem Operasi untuk mengendalikan dan mengkoordinasikan beragam proses aktif dalam suatu proses. PCB ini hanya berfungsi sebagai tempat penyimpanan informasi yang dapat bervariasi dari proses yang satu dengan yang lainnya. 



PCB ini berisikan banyak informasi yang berhubungan dengan sebuah proses yang spesifik, seperti status proses, program counter, CPU regsiters, informasi manajemen memori, informasi pencatatan dan informasi status I/O. Berikut ini akan saya jelaskan mengenai informasi-informasi tersebut. 
1. Status Proses. Seperti new, ready, running, waiting, halted dan lain lain.
2. Program Counter. Suatu stack yang berisi alamat dari instruksi selanjutnya untuk dieksekusi untuk proses ini.
3.CPU Register. Register bervariasi dalam jumlah dan jenis, tergantung pada rancangan komputer. Register tersebut termasuk accumulator, register indeks, stack pointer, general-purposes register, ditambah code information pada kondisi apa pun. Beserta dengan program counter, keadaan/status informasi harus disimpan ketika gangguan terjadi, untuk memungkinkan proses tersebut berjalan/bekerja dengan benar setelahnya.
4. Informasi Manajemen Memori. Informasi ini sebagai nilai dari dasar dan batas register, tabel halaman, atau tabel segmen tergantung pada sistem memori yang digunakan oleh sistem operasi.
5. Informasi Pencatatan. Informasi ini mengenai jumlah dari CPU dan waktu real yang digunakan, batas waktu, jumlah akun, jumlah job atau proses, dan lain lain.
6. Informasi Status I/O. Informasi ini mengenai daftar dari perangkat I/O yang di gunakan pada proses ini, suatu daftar open berkas dan lain lain.

Manajemen Proses 

Sistem operasi dalam menangani proses, dapat melakukan manajemen proses, berikut ini merupakan hal-hal yang dapat dilakukan sistem operasi dalam memanajemen proses.
1. Penciptaan proses.
2. Penghancuran / terminasi proses.
3. Penundaan proses.
4. Melanjutkan kembali proses.
5. Mengubah prioritas proses.
6. Memblok proses.
7. Membangunkan proses.
8. Menjadwalkan proses.
9. Memungkinkan proses berkomunikasi dengan
proses lain.


Praktek Mandiri

Saya mencoba menjalankan sebanyak mungkin aplikasi kemudian menjalankan perintah "top" pada Sistem Operasi Linux Ubuntu. Berikut ini hasil dokumentasi percobaan saya. 


Bisa kita lihat pada gambar diatas mengenai proses yang terjadi pada sistem operasi Linux Ubuntu melalui terminal dengan menjalankan perintah "top".


Referensi
[1] I Putu Agus Eka Pratama. "PPT Network Operating System Pertemuan 2". 2018.

Materi Pertemuan 1 (Operating System)

Nama          : Gede Haris Premana Wibawa.
Nim             : 1605551016.
Dosen         : I Putu Agus Eka Pratama ST., MT.
Matakuliah  : Network Operating System
Kampus      : Universitas Udayana, Fakultas Teknik, Program Studi Teknologi Informasi.

Halo para blogger, akhirnya saya muncul lagi dengan pembahasan yang kali ini sedikit berbeda karena postingan ini berkaitan dengan mata kuliah yang sedang saya emban disemester 4. Sebelumnya pernah dengar istilah OS ? Nah, postingan saya kali ini akan membahas mengenai OS (Operating System). 

Istilah OS atau sering disebut Sistem Operasi, biasanya telah tertanam didalam laptop, komputer, dan gadget kita. Sistem Operasi merupakan program utama yang dapat mengontrol sumber daya hardware dan software sekaligus mengontrol jalannya aplikasi lainnya. Tanpa adanya Sistem Operasi, laptop dan gadget kalian tidak akan bisa dioperasikan. 

Struktur Hardware dan Software Komputer

Struktur Sistem Operasi adalah struktur untuk menentukan komponen-komponen pada Software dan komponen-komponen pada Hardware agar dapat saling berinteraksi satu sama lain. Secara struktur atau urutan, hubungan antara Hardware, Sistem Operasi, dan Software dapat dilihat pada gambar berikut ini. 



Berdasarkan gambar diatas dapat dilihat bahwa Sistem Operasi menjadi penghubung antara Software dan Hardware sehingga mereka dapat saling berinteraksi satu sama lain.


Peran Sistem Operasi

Sistem Operasi memiliki beberapa peran penting yang perlu kalian ketahui : 
1. Membantu dalam pengembangan software. Contohnya seperti IDE, Debugger, dan Editor. OS dapat menjalankan aplikasi tersebut yang biasanya digunakan oleh para developer untuk mengembangan suatu software. 
2. Eksekusi program. OS dapat mengeksekusi program untuk dijalankan oleh pengguna.
3. Akses Input / Output Device. OS dapat terhubung sekaligus mengontrol perangkat masukkan dan juga perangkat keluaran.
4. Akses ke sistem. Pada OS juga mengontrol hak akses pengguna, apakah dia sebagai root (admin) atau sebagai user biasa.
5. Deteksi Error. OS juga dapat mendeteksi kesalahan yang terjadi dan melakukan penangannanya.
6. Menghitung statistik penggunaan resource komputasi. OS berfungsi untuk pengelolaan sumber daya dan mengalokasikannya.
7. Penyediaan API (Application Programming Interface). Menyediakan layanan seperti menyembunyikan kompleksitas pemrograman dan menyajikan fasilitas yang lebih mudah dan nyaman.


Hubungan Sistem Operasi dengan Manajemen Resource

Hubungan yang ada pada Sistem Operasi dengan manajemen sumber daya adalah ketika sistem operasi mampu mengontrol input dan output melalui perangkat I/O controller yang kemudian diteruskan pada processor. Supaya kalian kebayang bagaimana hubungannya mari kita lihat gambar berikut. 

Bisa kita lihat berdasarkan gambar diatas mengenai hubungan sistem operasi dengan manajemen resource pada komputer. Selain mengontrol perangkat I/O controller, Sistem Operasi juga menangani langsung instruksi ke processor untuk mengeksekusi program, mengatur waktu eksekusi dan mengatur penjadwalan setiap program yang sedang dijalankan.


Referensi 
[1] I Putu Agus Eka Pratama. "PPT Network Operating System". 2018.