Senin, 26 Februari 2018

SCHEDULING

Nama : Rasendriya Revo Daniswara
NIM : 1605551099
Matakuliah : Network Operating System
Dosen : I Putu Agus Eka Pratama, S.T., M.T.
TEKNOLOGI INFORMASI/TEKNIK/UNIVERSITAS UDAYANA


SCHEDULING
Rasendriya Revo Daniswara
Jurusan Teknologi Informasi, Fakultas Teknik, Universitas Udayana
Jalan Raya Kampus Unud, Bukit Jimbaran, Bali, Indonesia


Abstrak
     Matakuliah Network Operating System merupakan matakuliah yang membahas seputar sistem operasi yang digunakan dalam dunia jaringan komputer. Dalam matakuliah ini membahas seputar konsep dasar dari sistem operasi, evolusi sistem operasi, fungsionalitas sistem operasi, konsep dasar Network Operating System, infrastuktur pendukung Network Operating System, karakteristik dari Network Operating System, jenis-jenis Network Operating System, serta penggunaan Network Operating System dalam jaringan komputer.

Pendahuluan     Apakah yang dimaksud dengan scheduling ? scheduling merupakan satu atau beberapa buah aturan, mekanisme, dan prosedur di dalam sistem operasi (melibatkan kernel, aplikasi, process) terkait dengan urutan kerja yang dilakukan oleh komputer dan sistem computer. Scheduling ada di dalam semua sistem operasi apapun.

Kenapa perlu penjadwalan pada sistem operasi?
     Seperti yang sudah kita bahas pada artikel sebelumnya, kita tahu bahwa kernel (inti sistem operasi) memiliki utilitas, fungsi – fungsi utama, dan dukungan terhadap software dan hardware (sesuai dengan arsitektur komputer : 32 atau 64), kemudian kita tahu juga bahwa adanya proses yang berjalan pada sistem operasi. Ini kenapa diperlukan adanya penjadwalan agar setiap proses dan fungsi-fungsi utama dalam sistem operasi dapat berjalan dengan kinerja yang baik, dan memperkecil kemungkinan kegagalan saat sistem operasi berjalan. Selain itu penjadwalan ini ada juga karena dalam sistem operasi ada istilah “multiprogramming”.

Multiprogramming
     Multiprogramming adalah kemampuan sistem operasi untuk menjalankan 2 aplikasi atau lebih secara bersama – sama, menghasilkan sejumlah proses. Sedangkan multiprocessing adalah kemampuan penanganan 2 process atau lebih secara bersama – sama.
 Perbedaannya adalah multiprogramming lebih ditekankan di sisi software sedangkan multiprocessing lebih ditekankan di sisi hardware.

Peran penjadwalan
     1. Memaksimalkan throughput.
     2. Memaksimalkan kinerja dan waktu processor.
     3. Efsiensi process.
     4. Keadilan (fairness) pada semua job dan aplikasi
     5. Meminimalkan waktu tanggap (time respond). 6.Optimalisasi sumber daya (resource).

4 Jenis penjadwalan
     Terdapat 4 macam scheduling (penjadwalan). Dimana proses berjalannya penjadwalan dapat digambarkan sebagai berikut :
 

Gambar 1 Scheduling.

    • Long Term Scheduling, yaitu penjadwalan dengan menambahkan pool untuk process yang akan dieksekusi
    • Medium Term Scheduling, yaitu penjadwalan dengan menambahkan jumlah dari process baik secara penuh maupun parsial di dalam memori utama
    • Short Term Scheduling, yaitu penjadwalan dengan memilih process mana yang akan dieksekusi terlebih dahulu oleh processor dalam waktu singkat
    • I/O Scheduling, yaitu penjadwalan dengan memilih process mana yang tertunda yang dapat dilanjutkan kembali berdasarkan ketersediaan perangkat I/O.
    Berikut ini penggambaran antrian (queue) pada sistem scheduling (penjadwalan) :
 

Gambar 2 Queue Scheduling.

     Berikut ini gambaran tingkatan (leveling) dalam sistem scheduling (penjadwalan) :

Gambar 3 Level scheduling.

Algoritma scheduling
     Ada banyak sekali agoritma scheduling di dalam sisem operasi, namun akan dibahas yang terpenting saja (fundamental dan digunakan di banyak sistem operasi : windows, linux, mac, free bsd, android). Algoritma scheduling membantu alur scheduling pada sistem serta membantu programmer di dalam pengembangan aplikasi terkait dengan sistem operasi. Berikut macam-macam algoritma scheduling :
1.   Round Robin
     Menggunakan konsep antrian (queue). Setiap process memiliki time quantum untuk menandai waktu dari process yaitu apabila time quantum selesai maka proses selesai. Setiap proses diberi nilai yang sama untuk time quantum yaitu 1/n.
Time quantum jangan terlalu kecil (process tidak dapat selesai dalam 1 quantum), jangan juga terlalu besar (akan menjadi FCFS/First Come First Serve). Nilai ideal time quantum adalah 80 (dari skala 0 - 100)
2.   First In First Out (FIFO)
      Process yang lebih dahulu datang akan segera dieksekusi. Bagaimana jika ada process panjang dan process pendek? Tetap sesuai waktu kedatangan, oleh karena itu algoritma ini merugikan process pendek.
3.   Shortest Job First (SJF)
     Memperbaiki FIFO Process, pada algoritma ini proses yang lebih pendek akan didahulukan / diprioritaskan algoritma ini akan melakukan cek pada masing – masing process.

Referensi
[1] I Putu Agus Eka Pratama,“PPT Matakuliah Network Operating System Pertemuan 3 : Scheduling,”2018.

Selasa, 13 Februari 2018

PROSES PADA SISTEM OPERASI

Nama : Rasendriya Revo Daniswara
NIM : 1605551099
Matakuliah : Network Operating System
Dosen : I Putu Agus Eka Pratama, S.T., M.T.
TEKNOLOGI INFORMASI/TEKNIK/UNIVERSITAS UDAYANA



PROSES PADA SISTEM OPERASI
Rasendriya Revo Daniswara
Jurusan Teknologi Informasi, Fakultas Teknik, Universitas Udayana
Jalan Raya Kampus Unud, Bukit Jimbaran, Bali, Indonesia

Abstrak
Matakuliah Network Operating System merupakan matakuliah yang membahas seputar sistem operasi yang digunakan dalam dunia jaringan komputer. Dalam matakuliah ini membahas seputar konsep dasar dari sistem operasi, evolusi sistem operasi, fungsionalitas sistem operasi, konsep dasar Network Operating System, infrastuktur pendukung Network Operating System, karakteristik dari Network Operating System, jenis-jenis Network Operating System, serta penggunaan Network Operating System dalam jaringan komputer.

Pendahuluan
Proses (Process) adalah unit kerja terkecil yang secara individu memiliki sumber daya dan dijadwalkan oleh sistem operasi. Process juga merupakan sebuah program yang sedang dalam kondisi dijalankan (eksekusi). Process berbeda dengan kode program (source code). 
     Process menggambarkan aktifitas yang sedang terjadi pada sistem operasi (oleh aplikasi), disertai dengan nilai dari program counter dan isi dari daftar prosesor (processor’s register). Suatu proses umumnya termasuk Process stack, berisi data temporer (Parameter metoda, address yang kembali, variabel lokal) dan sebuah data section yang berisikan variabel global.
     Process berbeda dengan kode programan. Program bukan sebuah Process, program merupakan sebuah entitas pasif. Program memerlukan program counter untuk menjalankan instruksi selanjutnya yang akan dijalankan, didukung dengan seperangkat sumber daya (resource).
     Dua process dapat dihubungkan dengan program yang sama, dimana program tersebut dianggap dua urutan eksekusi yang berbeda. Misalnya, process x dan process y dapat muncul dari dijalankannya program 1, baik oleh 1 pengguna maupun n pengguna. Tiap-tiap proses ini adalah proses yang berbeda meski kontennya sama. Biasanya ada beberapa proses yang menghasilkan banyak proses begitu ia bekerja.

Kondisi (state) proses
Proses sejatinya bersifat mengubah state (kondisi awal/statis). Setiap proses pasti memiliki status proses masing-masing. Berikut ini 5 kondisi proses apabila sebuah program dijalankan.
1. New (Mulai)
Saat kita mulai menjalankan program sistem operasi akan menyiapkan sumber daya (resoure) apa saja yang dibutuhkan agar program dapat berjalana dengan semestinya.

2. Running (Berjalan)
Saat semua sumber daya (resource) siap untuk digunakan dan sudah ada instruksi untuk mengeksekusi sesuatu maka proses akan mengerjakannya, hal inilah yang menyebabkan program melakukan sebuah pekerjaan tertentu.

3. Waiting (Menunggu)
Adakalanya meski sumber daya sudah siap namun program belum berjalan, hal ini dikarenakan proses masih menunggu sebuah kejadian, seperti sebuah penyelesaian input/output atau penerimaan sebuah tanda / signal.

4. Ready (Siap)
Berbeda dengan status waiting, status ready ini kondisi dimana proses sudah siap digunakan oleh program, namun memang belum dikerjakan karena belum ada instruksi untuk melakukan pekerjaan.

5. Terminated (Terminasi)
Adalah kondisi apabila proses telah selesai melaksanakan tugasnya/ mengeksekusi. Kondisi ini tidak hanya ketika program selesai dijalankan, adakalanya terjadi kesalahan pada sumber daya (resource) dimana proses tidak mampu untuk berjalan karena terlalu berat, biasanya sistem operasi akan memberi batas waktu respon, apabila melewati batas waktu tersebut proses akan berhenti. Hal ini bertujuan agar sistem operasi dapat menjalankan proses lainnya yang telah dijadwalkan, dikarenakan suatu proses umumnya termasuk Process stack. 
Gambar 1 Alur perubahan status pada proses.

Gambar 1 merupakan gambaran dari alur perubahan status pada proses. Setiap proses berjalan sesuai penjadwalan yang telah diatur oleh sistem operasi.

Process Control Block
Process Control Block (PCB) berfungsi menggambarkan setiap proses pada sistem operasi dan memuat informasi spesifik dari setiap proses. PCB berfungsi sebagai tempat penyimpanan informasi apapun yang bervariasi dari proses ke proses. 
Gambar 2 Gambaran Process Control Block.

Gambar 2 merupakan gambaran dari Process Control Block. Ada 6 informasi yang ditampilkan oleh PCB, yaitu sebagai berikut.
1. Keadaan proses
Seperti bahasan sebelumnya yang telah kita bahas, ada 5 kondisi proses yaitu new, ready, running, waiting, dan terminated.

2. Program counter
Program counter mengindikasikan address dari perintah selanjutnya untuk dijalankan untuk proses ini.

3. CPU register
Terdapat bervariasi register dalam jumlah dan jenis, tergantung pada arsitektur dan rancangan komputer. Contohnya accumulator, index register, stack pointer, general-purposes register, code information program counter, dll. Register membantu untuk menyimpan keadaan/ status ketika terjadi gangguan, hal ini  memungkinkan prosses berjalan dengan benar.

4. Informasi manajemen memori
Informasi dapat berupa nilai dari dasar dan batas register, tabel halaman, atau tabel segmen, tergantung pada sistem memori yang digunakan oleh sistem operasi.

5. Informasi pencatatan
Meliputi jumlah dari CPU dan waktu riil yang digunakan, batas waktu, jumlah akun, jumlah job, atau proses.

6. Informasi status I/O
Meliputi daftar dari perangkat I/O yang digunakan pada proses, dan daftar open berkas tergantung dari I/O yang diberikan.

Manajemen proses
Sistem operasi di dalam menangani proses dapat melakukan manajemen proses yang meliputi 9 hal berikut.
  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.
Proses yang berjalan dalam sistem operasi kita dapat kita lihat. Jika menggunakan sistem operasi windows dapat dilihat melalui task manager.
Gambar 3 Proses yang berjalan pada sistem operasi windows.

Gambar 3 merupakan tampilan task manager yang menampilkan proses yang berjalan pada sistem operasi windows saat ini. Jika menggunakan sistem operasi linux kita bisa melihatnya melalui terminal menggunakan command top.
Gambar 4 Proses yang berjalan pada sistem operasi linux.

Gambar 4 merupakan tampilan dari terminal apabila menjalankan command top, data yang ditampilkan merupakan proses apa saja yang berjalan pada sistem operasi linux saat ini.

Kesimpulan
  Proses (Process) adalah unit kerja terkecil yang secara individu memiliki sumber daya dan dijadwalkan oleh sistem operasi. Process juga merupakan sebuah program yang sedang dalam kondisi dijalankan (eksekusi). Process berbeda dengan kode program (source code). Selama program dieksekusi maka saat itu sedang terjadi perubahan status dari proses-proses yang mengerjakan program tersebut.

Referensi 
[1] I Putu Agus Eka Pratama,“PPT Matakuliah Network Operating System Pertemuan 2 : Proses,”2018.

NETWORK OPERATING SYSTEM

Nama : Rasendriya Revo Daniswara
NIM : 1605551099
Matakuliah : Network Operating System
Dosen : I Putu Agus Eka Pratama, S.T., M.T.
TEKNOLOGI INFORMASI/TEKNIK/UNIVERSITAS UDAYANA



NETWORK OPERATING SYSTEM
Rasendriya Revo Daniswara
Jurusan Teknologi Informasi, Fakultas Teknik, Universitas Udayana
Jalan Raya Kampus Unud, Bukit Jimbaran, Bali, Indonesia


Abstrak
Matakuliah Network Operating System merupakan matakuliah yang membahas seputar sistem operasi yang digunakan dalam dunia jaringan komputer. Dalam matakuliah ini membahas seputar konsep dasar dari sistem operasi, evolusi sistem operasi, fungsionalitas sistem operasi, konsep dasar Network Operating System, infrastuktur pendukung Network Operating System, karakteristik dari Network Operating System, jenis-jenis Network Operating System, serta penggunaan Network Operating System dalam jaringan komputer.

Pendahuluan
Sistem adalah serangkaian sub sistem yang saling terkait dan tergantung satu sama lain, bekerja bersama-sama untuk mencapai tujuan dan sasaran yang sudah ditetapkan sebelumnya. Semua sistem memiliki input, proses, output, dan umpan balik. Sedangkan operasi adalah suatu kegiatan yang dilakukan untuk menyelesaikan suatu permasalahan tertentu. Dari definisi diatas dapat disimpulkan bahwa sistem operasi adalah adalah serangkaian sub sistem yang saling terkait dan tergantung satu sama lain, dan bekerja bersama-sama untuk mengatur setiap operasi yang dijalankan didalam komputer.
William Stalling mengatakan bahwa sistem operasi adalah “Program komputer (software) utama yang bertindak sebagai penghubung dan tatap muk (interface) antara hardware dengan software lainnya, yang sekaligus mengontrol eksekusi program/software/aplikasi”.

Fungsi sistem operasi
Diciptakannya sistem operasi tentu bukan hal yang tidak ada gunanya, justru dengan adanya sistem operasi ini lah yang membantu teknologi saat ini hingga bisa berkembang dengan pesat. 
Gambar 1 Struktur hardware dan software pada komputer.

Gambar 1 menggambarkan struktur hardware dan software pada komputer, Jika diperhatikan pada gambar tersebut sistem operasilah yang menjadi penghubung antara hardware dan software. Berikut merupakan fungsi sistem operasi

1. Fungsi Umum
1. Memudahkan pengguna komputer
Sistem operasi tentunya sangat membantu para pengguna komputer, karena dengan adanya sistem operasi kita dapat melihat tampilan pengguna (User Interface) yang mudah untuk digunakan, selain itu memudahkan kita untuk mengoperasikan setiap aplikasi yang berjalan pada komputer.

2. Efisiensi sumber daya komputasi
Peran lain dari sistem operasi adalah mengatur setiap proses yang ada pada komputer agar dapat berjalan dengan semestinya dan menggunakan setiap proses se-efisien mungkin agar dapat mengeksekusi tiap program dan mencegah serta menangani error yang terjadi akibat kegagalan dalam sumber daya komputer.

3. Membantu pengembangan, pengujian, perbaikan aplikasi dan layanan
Adanya sistem operasi tentu juga membantu untuk menciptakan atau mengembangkan aplikasi yang ada pada komputer. Karena adanya sistem operasi inilah para pengembang dapat menggunakan Developer Engine untuk menciptakan sebuah aplikasi atau layanan.

2. Fungsi khusus
1. Membantu pengembangan software melalui IDE, debugger, dan editor.
2. Mengeksekusi dan menginstall program.
3. Membantu akses ke I/O Device.
4. Mengontrol akses file dan data.
5. Mengakses sistem (root, user).
6. Mendeteksi dan menangani error
7. Menghitung statistik penggunaan resource komputasi.
8. manajemen instruksi melalui bahasa mesin dan hardware.
9. menangani data binari.
10. penyediaan API (Application Programming Interface) untuk pengembangan software. Dan masih banyak fungsi lainnya.
Gambar 2 Sistem Operasi dan Manajemen sumber daya.

Gambar 2 merupakan hubungan antara Sistem Operasi dan Manajemen sumber daya yang ada pada komputer. Sistem operasi lah yang menangani langsung instruksi ke prosesor untuk mengeksekusi program, sistem operasi mengatur penjadwalan dan waktu eksekusi dari setiap program yang berjalan pada komputer.

Kesimpulan
  Sistem operasi merupakan komponen penting dalam sistem komputer. Sistem operasi menjadi penghubung antara software dan hardware agar dapat berjalan dengan semestinya. Sistem operasi juga berperan sebagai “pelayan” utama bagi pengguna, karena dia yang “menyediakan” interface yang memudahkan penggunanya untuk mengoperasikan komputer, sehingga memudahkan juga untuk melakukan pengembangan maupun pengujian sebuah aplikasi.

Referensi 
[1] I Putu Agus Eka Pratama,“PPT Matakuliah Network Operating System Pertemuan 1 : Sistem operasi,”2018.