Rabu, 28 Februari 2018

Pertemuan III: Scheduling (Penjadwalan)


Nama               : Ida Ayu Shinta Dewi Paramitha
NIM                 : 1605551003
Dosen              : I Putu Agus Eka Pratama ST., MT.
Mata Kuliah     : Network Operating System
Kampus           : Program Studi Teknologi Informasi, Fakultas Teknik, Universitas Udayana.

Pertemuan ketiga membahas mengenai penjadwalan atau scheduling dan bagaimana peranannya terhadap sistem operasi.
  


Scheduling atau penjadwalan adalah satu atau beberapa buah aturan, mekanisme, dan prosedur di dalam sistem operasi, yang melibatkan kernel, aplikasi, process, terkait dengan urutan kerja yang dilakukan oleh komputer dan sistem komputer. Scheduling ada di setiap sistem operasi.

Mengapa ada scheduling?
Scheduling merupakan hal yang penting dan berkaitan dengan beberapa hal berikut.
1.  Kernel, yang merupakan inti sistem operasi, memiliki utilitas, fungsi-fungsi utama, dan dukungan terhadap software dan hardware sesuai dengan arsitektur komputernya masing-masing.
2.     Proses pada sistem operasi, di mana kernel memiliki peran di dalamnya.
3.     Multiprogramming pada sistem operasi

Multiprogramming adalah kemampuan sistem operasi untuk menjalankan 2 aplikasi atau lebih secara bersama-sama dan menghasilkan sejumlah proses. Multiprogramming lebih menekankan pada sisi software.

Sedangkan multiprocessing adalah kemampuan penanganan 2 proses atau lebih secara bersama-sama. Multiprocessing lebih menekankan pada sisi hardware.

Peran Scheduling
Konsep penjadwalan atau scheduling memiliki beberapa peranan dalam sistem operasi, antara lain sebagai berikut.
1.     Memaksimalkan throughput
2.     Memaksimalkan kinerja dan waktu processor
3.     Efisiensi process
4.     Keadilan pada semua aplikasi dan proses yang dijalankan
5.     Meminimalkan waktu tanggan (time respond)
6.     Optimalisasi sumber daya (resource)

Jenis Scheduling
Ada empat jenis konsep penjadwalan atau scheduling, yaitu:
1.     Long Term Scheduling
Jenis ini merupakan penjadwalan dengan menambahkan ruang temporari (pool) untuk proses yang akan dieksekusi.
2.     Medium Term Scheduling
Medium term scheduling merupakan penjadwalan dengan menambahkan jumlah dari proses baik secara penuh maupun parsial dalam memori utama.
3.     Short Term Scheduling
Short term scheduling merupakan penjadwalan dengan memilih proses mana yang kan diekskusi terlebih dahulu oleh proses dalam waktu singkat.
4.     I/O Scheduling
Jenis ini merupakan penjadwalan dengan memilih proses mana yang tertunda yang dapat dilanjutkan berdasarkan ketersediaan I/O.

Scheduling dan State Proses
Seperti yang diketahui bahwa penjadwalan atau scheduling memiliki hubungan dengan proses, sehingga scheduling juga berhubungan dengan kondisi (state) dari proses yang sebelumnya telah dibahas di Pertemuan II. Adapun hubungan penjadwalan dengan kondisi proses tersebut adalah sebagai berikut.
1.     Kondisi New menjadi kondisi Ready/Suspend termasuk dalam long term scheduling.
2.     Kondisi Ready/Suspend menjadi kondisi Ready termasuk dalam medium term scheduling.
3.     Kondisi Ready menjadi Running termasuk dalam short term scheduling.
4. Kondisi Blocked/Suspend menjadi kondisi Blocked termasuk dalam medium term scheduling.
Hubungan kondisi proses dan penjadwalan tersebut memiliki timeout dan dapat digambarkan dengan diagram seperti berikut.




Algoritma Scheduling
Algoritma Scheduling membantu alur penjadwalan pada sistem serta membantu programmer di dalam pengembangan aplikasi terkait dengan sistem operasi. Ada beberapa algoritma scheduling yang dapat digunakan, antara lain sebagai berikut.
1.     Round Robin
Algoritma ini menggunakan konsep antrian (queue), di mana setiap proses memiliki time quantum untuk menandai waktu dari proses. Setiap proses diberi nilai yang sama untuk time quantumnya yaitu 1/n. Nilai ideal time quantum = 80 (dari skala 0-100)
2.     First In First Out (FIFO)
Algoritma ini merugikan proses pendek, karena proses yang terlebih dahulu dieksekusi adalah proses yang datang pertama. Algoritma ini tidak mementingkan apakah proses tersebut merupakan proses panjang atau pendek.
3.     Shortest Job First (SJF)
Algoritma ini memperbaiki algoritma FIFO, di mana proses yang lebih pendek akan didahulukan/diprioritaskan. Algoritma akan memeriksa masing-masing proses terlebih dahulu sebelum dieksekusi.


Rabu, 21 Februari 2018

Pertemuan II: Proses pada Sistem Operasi


Nama               : Ida Ayu Shinta Dewi Paramitha
NIM                 : 1605551003
Dosen              : I Putu Agus Eka Pratama ST., MT.
Mata Kuliah    : Network Operating System
Kampus           : Program Studi Teknologi Informasi, Fakultas Teknik, Universitas Udayana.

Pertemuan kedua kali ini membahas konsep dasar dan definisi dari proses, keadaan atau status proses, Process Control Block (PCB), dan manajemen proses.
www.infoworld.com

Apa itu proses?

Proses dapat diartikan sebagai unit kerja terkecil yang secara individu memiliki sumber daya dan dijadwalkan oleh sistem operasi. Proses menggambarkan aktifitas yang terjadi pada sistem operasi, disertai dengan nilai dari program counter da nisi 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.
Proses tidak sama dengan kode program. Program bukan sebuah proses, melainkan merupakan sebuah entitas pasif. Program memerlukan program counter untuk menjalankan intruksi selanjutnya, didukung dengan seperangkat sumber daya (resource).
Dua proses dapat dihubungkan dengan program yang sama, di mana program tersebut dianggap dua urutan eksekusi yang berbeda. Contohnya dalah bagaimana proses x dan proses y dapat muncul dari program 1, baik oleh 1 pengguna maupun n pengguna. Tiap proses ini ada yang berbeda meskipun kontennya berbeda. Sebagai perumpamaan adalah bagaimana web e-commerce dapat diakses oleh banyak pengguna di waktu yang bersamaan, dan tentunya tiap pengguna memberikan intruksi yang berbeda pada program, sehingga ada beberapa proses yang terjadi pada satu program.

Kondisi Proses

science-krisna.blogspot.co.id
Terdapat 5 kondisi proses pada sistem, dimana proses sejatinya bersifat mengubah state atau kondisi dan setiap proses memiliki statusnya masing-masing. Adapun kondisi proses tersebut adalah sebagai berikut.
1. New
New merupakan kondisi dimana proses baru sedang dikerjakan atau dibuat. 
2. Running
Running adalah kondisi dimana intruksi yang diterima kemudian dikerjakan.
3. Waiting
Waiting merupakan kondisi ketika proses sedang menunggu sejumlah kejadian untuk terjadi, seperti sebuah penyelesaian I/O atau penerimaan sebuah tanda atau sinyal.
4. Ready
Proses sedang menunggu untuk ditugaskan pada sebuah prosesor disebut dengan kondisi ready.
5. Terminated
Terminated adalah kondisi dimana proses telah selesai melakukan tugasnya atau mengekskusi intruksi yang diberikan.

Process Control Block (PCB)
PCB berfungsi untuk menggambarkan setiap proses pada sistem operasi, memuat informasi spesifik dari setiap proses. 
www.codequiz.in/os-process-management/

Ada 6 informasi yang ditampilan PCB, antara lain sebagai berikut.
1. Keadaan Proses
PCB dapat menampilkan informasi mengenai keadaan atau kondisi proses, seperti new, ready, running, waiting, dan lainnya.
2. Program Counter
Informasi ini mengindikasikan alamat dari perintah selanjutnya untuk dijalankan untuk proses ini.
3. CPU Register
Register bervariasi dalam jumlah dan jenis, tergantung pada arsitektur dan rancangan komputer. Register meliputi accumulator, index register, stack pointer, general-purposes register, code information program counter.
4. Informasi Manajemen Memori
Informasi juga 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
Informasi pencatatan meliputi jumlah dari CPU dan waktu riil yang digunakan, batas waktu, jumlah akun, dan jumlah proses.
6. Informasi Status I/O
Informasi ini meliputi daftar dari perangkat I/O yang digunakan pada proses, daftar open berkas, dan lainnya.

Manajemen Proses
Selama menangani proses, sistem operasi dapat melakukan manajemen proses, yang meliputi 9 hal, antara lain:
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.

Praktik Mandiri
Praktik mandiri yang dilakukan adalah menggunakan command top pada Linux Ubuntu dan melihat apa ditampilkan. Command top sering sekali digunakan oleh administrator sistem yang berguna untuk memeriksa kesehatan sistem. Ini menampilkan informasi sistem, seperti: beban CPU, penggunaan memori, penggunaan swap dan daftar proses teratas. Berikut adalah contoh hasil dari command top.

Baris Pertama

Waktu kini (12:23:22)
Lamanya mesin berjalan (up 20 min)
Sesi user log in (1 user)
Rata-rata beban sistem (load average: 0,30, 039, 0,44)

Baris ke-2

Total proses yang sedang berjalan (240 total)
Proses yang sedang berjalan (1 running)
Proses dengan kondisi sleeping (239 sleeping)
Proses berhenti (0 stopped)

Baris ke-3

Persentase proses CPU untuk pengguna (3,7%us)
Persentase proses CPU untuk sistem (1,4%sy)
Persentase proses CPU untuk prioritas update (0.0%ni)
Persentase CPU yang tidak dipakai (94,2%id)
Persentase proses CPU menunggu operasi I/O (0,6%wa)
Persentase interupsi CPU untuk layanan hardware (0,0% hi)
Persentase interupsi CPU untuk layanan software (0.1% si)
Jumlah CPU yang menjalankan virtual lain (0,0%st)

Baris ke-4 dan ke-5

Baris ke-4 dan ke-5 menampilkan informasi mengenai penggunaan memori dan swap, misalnya mengenai jumlah memori yang digunakan, memori yang masih free, cache, dan lainnya.

Baris seterusnya
Baris berikutnya merupakan baris proses sehingga bisa dilihat proses apa saja yang tengah berjalan.

PID       = ID Proses.
USER    = Pengguna yang merupakan pemilik proses
PR        = Prioritas proses
NI         = Proses yang bagus untuk berjalan
VIRT     = Memori virtual yang digunakan oleh proses
RES      = Memori fisik yang digunakan oleh proses
SHR      = Proses yang di-sharing
S          = Menunjukan status proses, yaitu:
S = sleep
             R = running
             Z = zombie
%CPU   = Persentase proses yang menggunakan CPU
%MEM = Persentase proses yang menggunakan RAM
TIME+  = Total waktu untuk seluruh aktivitas proses
COMMAND = Nama proses

Selasa, 20 Februari 2018

Pertemuan I: Sistem Operasi (Operating System)


Nama               : Ida Ayu Shinta Dewi Paramitha
NIM                 : 1605551003
Dosen               : I Putu Agus Eka Pratama ST., MT.
Mata Kuliah     : Network Operating System
Kampus            : Program Studi Teknologi Informasi, Fakultas Teknik, Universitas Udayana.

Pertemuan pertama kali ini membahas mengenai sistem operasi (operating system) secara umum, peranannya, dan bagaimana hubungan sistem operasi dengan management resource atau manajemen sumber daya.

chillelife.com/operating-system/

Sistem operasi atau Operating System (OS) terdiri dari dua kata, yaitu: sistem dan operasi. Sistem dapat diartikan sebagai suatu kesatuan yang terdiri dari komponen atau elemen yang saling bekerja sama untuk mencapai suatu tujuan atau sasaran. Dan operasi merupakan suatu tindakan yang memiliki prosedur tertentu, dimana setiap operasi membutuhkan suatu input untuk menghasilkan output.

William Stalling dalam bukunya mendefiniskan sistem operasi sebagai program komputer (software) utama yang bertindak sebagai penghubung dan tatap muka (interface) antara hardware dengan software lainnya, yang sekaligus mengontrol eksekusi program/software/aplikasi.

Peran Sistem Operasi
Sistem operasi memiliki peran untuk memudahkan suatu pekerjaan, terutama untuk pengguna komputer, baik untuk pengembangan, pengujian, ataupun perbaikan aplikasi dan layanan. Ada beberapa peranan sistem operasi lainnya, antara lain sebagai berikut.
1.               Membantu pengembangan software (IDE, debugger, editor).
2.               Eksekusi program (executable, install)
3.               Akses ke I/O Device
4.               Kontrol akses ke file dan data (privillege)
5.               Akses ke sistem (root, user)
6.               Deteksi error dan penanganannya
7.               Menghitung statistik penggunaan resource komputasi
8.               Manajemen instruksi melalui bahasa mesin (software) dan hardware
9.               Penanganan data binari
10.            Penyediaan API (Application Programming Interface) untuk pengembangan software.

Struktur Software dan Hardware pada Komputer
Seperti yang diketahui bahwa sistem operasi berguna sebagai penghubung antara hardware dan software yang ada pada komputer. Hardware tidak ada artinya tanpa sistem operasi, sama halnya dengan software tidak dapat digunakan oleh hardware tanpa sistem operasi. Berikut ini adalah struktur dari hardware dan software pada komputer.

Ketika ada intruksi yang dimasukan atau diinput, maka sistem operasi akan bekerja dan menyampaikan intruksi tersebut untuk dieksekusi. Misalnya pada saat pengguna komputer akan mengunduh suatu aplikasi, sistem operasi akan menghubungi memori terlebih dahulu untuk mengetahui apakah memori tersedia atau tidak. Jadi dengan adanya sistem operasi, software dan hardware dapat saling terhubung.

Hubungan Sistem Operasi dengan Manajemen Resource
Hubungan sistem operasi dengan manajemen resource atau manajemen sumber daya, terutama perannya pada akses I/O device, dapat dilihat pada gambar berikut.

Dengan sistem operasi, input dari I/O devices akan dikontrol oleh I/O controller yang kemudian intruksi tersebut akan diteruskan ke processor sehingga program dapat dieksekusi dan menghasilkan suatu output dengan waktu eksekusi (time execution) tertentu dan dengan penjadwalan dari setiap aplikasi atau program yang sedang dijalankan.