Senin, 15 November 2010

Penjadwalan Proses Pada Linux

Pada sistem Linux, terdapat banyak cara untuk menangani eksekusi-eksekusi perintah. Diantaranya, diberi kesempatan untuk membuat daftar perintah dan menentukan kapan perintah dijalankan oleh sistem. Perintah at , sebagai contoh memberi peluang untuk menjalankan program berdasarkan waktu yang ditentukan. Perintah batch adalah semiliar dengan at, namun batch menjalankan program-program manakala sistem menemukan waktu untuk mereka. Perintah cron memungkinkan program untuk menjalankan secara pereodik, dan perintah crontab mengizinkan user untuk mengedit file-file yang digunakan oleh cron. Perintah-perintah scheduling tersebut sangat berguna sat ingin melakukan pengaturan terhadap sistem agar tidak terlalu sibuk menjalankan tugas-tugas. Teknik ini juga sangat baik untuk eksekusi script-script bagi layanan-layanan exksternal seperti query-query database.
Perintah at
Seperti telah diuraikan diatas, untuk menjadwalkan satu atau beberapa perintah pada waktu yang ditentukan dapat digunakan at. Sebagai contoh, untuk membentuk pekerjaan pada jam 2:30 a.m yakni melakukan pencetakan semua file yang terdapat pada direktori /home/mahasiswa/dimas dan melakukan pengiriman mail pemberitahuan ke user yang bernama anjik bahwa pekerjaan pencetakan telah dilakukan pukul 2.30 a.m. Untuk menuliskan shcedule pekerjaan dengan at yakni dengan menulis perintah baris demi baris dan menekan enter untuk masing-masing perintah dan untuk mengakhiri dapat digunakan .
$ at 2.30
lp /home/mahasiswa/dimas/*
echo “File sudah dicetak Pak !” | mail –s “Pencetakan “ dihinamajikan@yahoo.com

Beberapa variasi penggunaan perintah at dapat dilakukan dengan :
At hh:mm : Penjadwalan kerja berdasarkan jam (hh) dan menit (mm),
menggunakan standard 24 jam
At hh:mm month
day year : Penjadwalan kerja berdasarkan jam (hh) dan menit (mm), bulan,
hari dan tahun tertentu
at –l : Mendaftar jadwal tugas-tugas, merupakan alias utk perintah atq.
At now +count
timeunit : Menjadwalkan pekerjaan sekarang plus hitungan berdasarkan
time-unit ; time unit dapat berupa menit, jam, hari atau minggu
at –d job_id : Membatalkan kerja dengan nomor job_id
Sebagai user root, dapat dengan bebas menjalankan perintah-perintah ini, sedangkan user lian, file-file /etc/at.allow dan /etc/at.deny menentukan permisi permisi menggunakan perintah tersebut. Jika file /etc/at.allow ada, maka hanya user-user yang tercantum dalam file tersebut yang diizinkan untuk menggunakan perintah at . Jika file /etc/at.allo tidak tersedia, sistem akan mengecek file /etc/at.deny yang akan memberikan izin penggunaannya, tapi kalau /etc/at.deny kosong, setiap user dapat menggunakan perintah at ini. Perintah batch
Dalam sistem Linux tidak hanya memiliki satu perintah untuk penjadwalan tugas-tugas. Dengan menggunakan perintah batch user dapat memberikan kelonggaran terhadap sistem untuk memutuskan sendiri kapan proses dijalankan.
Perintah batch akan dijalankan oleh sistem jika sistem dalam keadaan tidak begitu sibuk. Tugas-tugas yang dijalankan melalui batch akan dieksekusi melalui background. Format menjalankan perintah batch yaitu dengan mengetikkan perintah di terminal dan mengakhiri dengan pada akhir baris.
contoh :
$ batch
lp /home/mahasiswa/dimas/*
echo “File sudah dicetak Pak !” | mail –s “Pencetakan “ dihinamajikan@yahoo.com

Perintah cron dan crontab
Untuk menjalankan perintah atau proses yang harus dilakukan secara reguler, dapat menggunakan perintah cron (chronograph). Dengan cron dapat menentukan tanggal dan waktu yang diinginkan untuk menjalankan sebuah perintah dalam file-file crontab.
Program cron hanya dijalankan satu kali, yakni saat sistem di-boot. User-user individual hendaknya diberi izin untuk menjalankan cron secara langsung. Selain itu administrator juga menjalankan aplikasi cron pada start-up file Linux agar cron berjalan saat proses boot terjadi.
Perintah/Aplikasi yang dapat digunakan untuk menuliskan jadwal proses adalah crontab. Dalam file crontab ini konfigurasi penjadwalan proses tersimpan. File contab user disimpan dalam direktori /usr/spool/cron/crontabs dan memberi nama file tersebut dengan nama user. Sehingga jika usernya adalah icha, maka dapat digunakan file text editor untuk mengeditnya pada direktori tersebut.
$crontab icha
Dengan eksekusi perintah tersebut maka file /usr/spool/cron/crontabs/icha akan terbentuk.
Masing-masing baris dalam file crontab memuat sebuah pola waktu dan sebuah perintah. Di mana perintah tersebut akan dieksekusi pada pola waktu yang ditetapkan. Pola waktu dibagi dalam lima field yang dipisahkan oleh spasi atau tab.
Minute hour day-of-month month-of-year day-of-week command
Keterangan range waktu :
Minute : 00 s.d 59
Hour : 00 s.d 23 (tengah malam 00)
Day-of-month : 01 s.d 31
Month-of-year : 01 s.d 12
Day-of-week : 01 s.d 07 (Senin 01, Minggu 07)
Lima field pertama adalah field waktu, sedangkan satu field terkahir adalam field perintah. Dapat digunakan asterisk (*) dalam field waktu jika tidak ingin menentukan waktu – waktu tertentu.
Option perintah crontab terdiri dari :
-e : mengedit file contab
-r : menghapus isi file crontab
-l : Menampilkan daftar crontab

Rabu, 10 November 2010

OPERASI PADA SISTEM

Sistem operasi dalam mengelola proses dapat melakukan operasi-operasi terhadap proses, diantaranya :

Penciptaan proses melibatkan banyak aktivitas, yaitu :
• Menamai (memberi identitas) proses.
• Menyisipkan proses pada senarai proses atau tabel proses.
• Menentukan prioritas awal proses.
• Menciptakan PCB.
• Mengalokasikan sumber daya awal bagi proses.

Penghancuran Proses (Destroyed)

Penghancuran proses terjadi karena :
• Selesainya proses secara normal.
• Proses mengeksekusi panggilan layanan So untuk menandakan bahwa proses telah berjalan secara lengkap.
• Batas waktu telah terlewati.
• Proses telah berjalan melebihi batas waktu total yang dispesifikasikan. Terdapat banyak kemungkinan untuk tipe waktu yang diukur, termasuk waktu total yang dijalani (“walk clock time”) jumlah waktu yang dipakai untuk eksekusi, dan jumlah waktu sejak pemakai terakhir kali memberi masukan (pada proses interaktif) .
• Memori tidak tersedia.
• Proses memerlukan memori lebih banyak daripada yang dapat disediakan oleh sistem.
• Pelanggaran terhadap batas memori.
• Proses memcoba mengakses lokasi memori yang tidak diijinkan untuk diakses.
• Terjadi kesalahan karena pelanggaran proteksi.
• Proses berusaha menggunakan sumber daya atau file yang tidak diijinkan dipakainya, atau proses mencoba menggunakannya tidak untuk peruntukannya, seperti menulis file read only.
• Terjadi kesalahan aritmatika.
• Proses mencoba perhitungan terlarang, seperti pembagian dengan nol, atau mencoba menyimpan angka yang lebih besar daripada yang ddapat diakomodasi oleh H/W.
• Waktu telah kadaluwarsa.
• Proses telah menunggu lebih lama daripada maksimum yang telah ditentukan untuk terjadinya suatu kejadian spesfiik.
• Terjadi kegagalan masukan/keluaran.
• Kesalahan muncul pada masukan atau keluaran, seprti ketidakmampuan menemukan file, kegagalan membaca atau mennulis setelah sejumlah maksimum percobaan yang ditentukan (misalnya area rusak didapatkan pada tape,atau operasi tidak valid seperti membaca dari line printer).
• Intruksi yang tidak benar.
• Proses berusaha mengeksekusi instruksi yang tidak ada (sering sebagi akibat pencabangan ke daerah data dan berusaha mengeksekusi data tersebut).
• Terjadi usaha memakai instruksi yang tidak diijinkan.
• Proses berusaha mengeksekusi instruksi yang disimpan untuk SO.
• Kesalahan penggunaan data.
• Bagian data adalah tipe yang salah atau tidak diinisialisasi.
• Diintervensi oleh SO atau operator.
• Untuk suatu alasan, operator atau sistem operasi mengakhiri proses (misalnya terjadi deadlock).
• Berakhirnya proses induk.
• Ketika parent berakhir. So mungkin dirancannng secara otomatis mengakhiri semua anak proses dari parent itu.
• Atas permintaan proses induk.
• Parent process biasanya mempunyai otoritas mengakhiri suatu anak proses.
Penghancuran lebih rumit bila proses telah menciptakan proses-proses lain. Terdapat dua pendekatan, yaitu :
• Pada beberapa sistem, proses-proses turunan dihancurkan saat proses induk dihancurkan secara otomatis.
• Beberapa sistem lain menganggap proses anak independen terhadap proses induk Proses anak tidak secara otomatis dihancurkan saat proses induk dihancurkan.
Penghancuran proses melibatkan pembebasan proses dari sistem, yaitu :
• Sumber daya-sumber daya yang dipakai dikembalikan.
• Proses dihancurkan dari senarai atau tabel sistem.
• PCB dihapus (ruang memori PCB dikembalikan ke pool memori bebas).

PenundaandanPengaktifanProses
��Penundaan(suspend) seringdilakukansistemuntukmemindahkanproses-prosestertentugunamereduksibebansistemselamabebanpuncak.
��Pengaktifankembali(resuming) prosesyaitumenjalankanprosesdarititik(instruksi) dimanaprosesditunda.
��Operasisuspend danresume pentingkarena:
Jikasistemberfungsisecaraburukdanmungkingagalmakaproses-prosesdapatdisuspendagar diresumesetelahmasalahdiselesaikan.
��Contoh: saatprosespencetakan, bilatiba-tibakertashabismakaprosesdisuspend. Setelahkertasdimasukkankembali, prosespun dapatdiresume.
c. Penundaan(suspend) seringdilakukansistemuntukmemindahkanproses-prosestertentugunamereduksibebansistemselamabebanpuncak. Penundaanbiasanyaberlangsungsingkat.
d.Pengaktifankembali(resuming) prosesyaitumenjalankanprosesdarititik(instruksi) dimanaprosesditunda.
e.Operasisuspend danresume pentingkarena:
Jikasistemberfungsisecaraburukdanmungkingagalmakaproses-prosesdapatdisuspendagar diresumesetelahmasalahdiselesaikan.
Contoh: saatprosespencetakan, bilatiba-tibakertashabismakaprosesdisuspend. Setelahkertasdimasukkankembali, prosespun dapatdiresume.

PROSES PELANJUTAN KEMBALI (RESUME A PROCESS )

* Jika sistem berfungsi secara buruk dan mungkin gagal maka proses-proses dapat di- suspend agar di-resume setelah masalab diselesaikan.
* Pemakai yang ragu/khawatir mengenai basil proses dapat men-suspend proses [bukan membuang (abort) proses]. Saat pemakai yakin proses akan berfungsi secara benar maka dapat me-resume (melanjutkan kembali di instruksi saat di-suspend) proses yang di-suspend.
* Sebagai tanggapan terhadap fluktuasi jangka pendek beban sistem, beberapa proses dapal di-suspend dan di- resume saat beban kembali ke tingkat normal.
Penjadwalan Proses
Kriteria untuk mengukur dan optimasi kinerja penjadwalan :
a) Adil (fairness)
Adalah 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.
b) Efisiensi (eficiency)
Efisiensi atau utilisasi pemroses dihitung dengan perbandingan (rasio) waktu sibuk pemroses.
c) Waktu tanggap (response time)
Waktu tanggap berbeda untuk :
1) 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 terminal response time.
2) Sistem waktu nyata
Didefinisikan sebagai waktu dari saat kejadian (internal atau eksternal) sampai instruksi pertama rutin layanan yang dimaksud dieksekusi, disebut event response time.
d) Turn around time
Adalah 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.
e) Throughput
Adalah 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