Rabu, 08 Oktober 2014

Menejemen dan Penjadwalan

Manajemen Proses

A. Menejemen Proses

Proses itu apa sih ?

Secara definisi proses adalah program yang sedang dieksekusi. Pengertian lain mengatakan, proses adalah Unit kerja terkecil yang secara individu dijadwalkan oleh sistem operasi. Oleh karena itu, SO mengelola semua proses di sistem dan mengalokasikan sumber daya ke proses-proses sesuai dengan kebijaksanaan untuk memenuhi sasaran sistem.

  •  Hal hal yang berkaitan dengan proses. Ada 3 yakni


1. Multiprogramming atau biasa dikenal dengan Multitasking

           Merupakan manajemen banyak proses dalam 1 pemroses. Disini, banyak proses akan dikjalankan secara bersama-sama, setiap prosesnya mendapat bagian memori dan kendali sendiri.
Program yang dijalankan bersifat independen, yang artinya proses berjalan secara terpisah dan tidak saling mempengaruhi. Dan pada satu waktu, pemroses hanya melayani satu proses. Dan karena perpindahan dari satu proses ke proses yang lain membutuhkan waktu yangrelatif singkat, sehingga pemakai menganggap sedang terjadi proses yang paralel.

2. Multiprocessing

           Merupakan manajemen banyak proses di komputer multiprocessor. Dengan kata lain, komputer dengan banyak pemroses di satu sistem komputer dengan masing-masing pemroses melakukan pemrosesan secara independen
3. Distribute processing

           Merupakan manajemen banyak proses yang dieksekusi di banyak sistem komputer yang tersebar (terdistribusi).

  • Mengapa proses perlu dikelola?

Karena system operasi mengemban tugas dan fungsi-fungsi yang kompleks dalam mengelola seluruh sumber daya yang dibutuhkan untuk kepentingan user (manusia) yang berupa proses-proses, oleh karena itu maka system operasi memerlukan pengelolaan proses supaya proses bisa berjalan seperti yang diharapkan dan diperintahkan oleh user.
  • Proses yang bagaimana yang perlu dikelola?

Seluruh proses pada dasarnya perlu dikelola namun yang paling membutuhkan pengelolaan adalah multitasking atau menjalankan sejumlah program secara bersama-sama. Karena multitasking akan membutuhkan pengalokasian sumber daya yang baik dan sumber daya tersebut harus dikembalikan supaya bias dipakai oleh proses yang lain.
  •  Contoh proses.

Misal ada sebuah file yang dihapus, maka prosesnya yaitu inputan meneruskan instruksi dari user ke prosesor lalu prosesor mengambil informasi file pada disk melalui memory dan prosesor menghapus file beserta informasinya tersebut.
  •  Bagaimana proses-proses saling berkomunikasi?

Pertama, setiap proses harus mempunyai namanya sendiri yang unik beserta alamatnya. Yang kedua, ditentukan siap pengirim pesan dan siapa penerima. Maka setelah keduanya ada antara satu proses dengan proses yang lain bisa berkomunikasi.
> Send (message) – mengirim sebuah pesan ke proses
> Receive (Q, message) – menerima sebuah pesan dari proses Q.
  • Apa yang dimaksud “create process” dan “destroyed proses” dan kapan terjadinya?

        <> Create dan destroyed process adalah operasi-operasi dasar dari system operasi yang dimana :

1. Create process (penciptaan proses) mengikutsertakan banyak aktifitas, seperti :

  > Menamai proses / member identitas proses
  > Menyisipkan proses pada senarai proses atau table proses
  > Menentukan prioritas awal proses
  > Menciptakan PCB
  > Mengalokasikan sumber daya awal bagi proses

         Create process akan terjadi bila system operasi akan melakukan hal-hal berikut :

  > Pada lingkungan batch, sebagai tanggapan atas pemberian satu kerja (job)
  > Pada lingkungan interaktif, ketika pemakai baru berusaha logon
  > Sebagai tanggapan suatu aplikasi, seperti permintaan pencetakan file, sistem operasi dapat menciptakan  
      proses yang akan mengelola pencetakan itu
  > Proses menciptakan proses lain (proses anak). Proses yang menciptakan proses disebut proses induk 
      (parent process). Proses anak-pun kembali dapat menciptakan proses-proses anak. Proses-proses 
      dapat membentuk pohon hirarki proses

2. Destroyed process (penghancuran proses) menyebabkan beberapa keadaan, seperti :

  > Sumber daya-sumber daya yang dipakai dikembalikan .
  > Proses dihancurkan dari senarai atau tabel sistem
  > PCB dihapus (ruang memori PCB dikembalikan ke pool memori bebas )

         Destroyed process akan terjadi pada beberapa kejadian seperti berikut :
  

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



  • Jelaskan proses dan thread

Proses :
          Proses merupakan sebuah program yang mengeksekusi thread tunggal. Kendali thread tunggal ini hanya memungkinkan proses untuk menjalankan satu tugas pada satu waktu. Banyak sistem operasi modern telah memiliki konsep yang dikembangkan agar memungkinkan sebuah proses untuk mengeksekusi multi-threads. Umpamanya, secara bersamaan mengetik dan
menjalankan pemeriksaan ejaan didalam proses yang sama.

Thread :
           Thread merupakan unit dasar dari penggunaan CPU, yang terdiri dari Thread_ID, program counter, register set, dan stack. Sebuah thread berbagi code section, data section, dan sumber daya sistem operasi dengan Thread lain yang dimiliki oleh proses yang sama. Thread juga sering disebut lightweight process. Sebuah proses tradisional atau heavyweight process mempunyai thread tunggal yang berfungsi sebagai pengendali. Perbedaannya ialah proses dengan thread yang banyak – mengerjakan lebih dari satu tugas pada satu satuan waktu.


Penjadwalan proses


B. Penjadwalan

             Dalam pengelolaan proses bisnis, proses yang sudah baik, sumber daya yang tepat, input yang baik, tujuan yang jelas tidak serta merta menghasilkan apa yang diharapkan. Proses bisnis yang baik akan menentukan proses (baca: tugas atau pekerjaan) apa saja yang harus dilakukan oleh unit tertentu. Katakanlah sumber daya dalam unit tersebut pun sudah memenuhi kualifikasi yang sesuai. Mungkin saja terjadi bahwa suatu waktu tertentu pekerjaan yang dibebankan kepada unit-unit tidak merata atau unit tidak memiliki kemampuan mengatur prioritas pekerjaannya sehingga bisa jadi ada pekerjaan yang terlambat diselesaikan, atau ada keluhan soal waktu menunggu yang cukup lama. Situasi semacam inilah yang menyebabkan kita perlu untuk mempelajari penjadwalan.

             Penjadwalan pada prinsipnya terjadi baik untuk perioda yang panjang (misalnya tahunan) ataupun periode yang lebih pendek (misalnya harian atau periode jam). Penjadwalan yang dimaksudkan di sini adalah penjadwalan jangka pendek. mengapa demikian? karena penjadwalan jangka panjang biasanya dibahas dengan pendekatan lain seperti manajemen projek. Kalau pun penjadwalan jangka panjang tadi bukan bersifat projek, yaitu seperti kegiatan rutin tahunan, maka pendekatan penjadwalan jangka pendek ini pun dapat kita terapkan pada kasus tersebut.

  • Ada beberapa hal penting yang sifatnya strategis dapat kita raih jika melakukan penjadwalan dengan baik:

        > Penjadwalan yang baik membuat organisasi dapat menggunakan asset atau sumber dayanya dengan lebih efisien dan berefek positif juga pada pencapaian tujuannya (efektif). Dengan kata lain utilisasi sumber dayanya akan lebih baik karena sejak awal organisasi dapat mengetahui kapan dan berapa besar kapasitasnya yang masih idle. Hal ini menyebabkan kapasitas organisasi menjadi “lebih besar”. Dengan output yang lebih banyak, sementara sumber dayanya sama, maka biaya per unit akan menjadi lebih kecil. Organisasi akan meraih aspek cheaper.

        > Kapasitas yang seolah bertambah juga memungkinkan organisasi untuk lebih fleksibel dalam memenuhi kebutuhan pelanggan atau digunakan untuk mempercepat proses penyampaian (delivery). Bagi pelanggan kemampuan seperti ini dapat berarti layanan yang lebih baik (Better dan atau Faster).

        > Penjadwalan yang baik juga berdampak pada kepastian penyelesaian pesanan. Janji yang diberikan pada saat pemesanan akan dapat dipenuhi jika proses bisnisnya sesuai dengan jadwal. Hal ini berarti layanan organisasi dapat diandalkan (dependable).

1. Jelaskan kriteria-kriteria penjadwalan

  •          Ada tujuh criteria penjadwalan proses pada system operasi, yaitu sebagai berikut :


      a. CPU Utilization . Kita ingin menjaga CPU sesibuk mungkin. CPU utilization akan mempunyai range    
          dari 0 sampai 100 persen. Di sistem yang sebenarnya ia mempunyai range dari 40 sampai 100 persen.

      b. Throughput . Salah satu ukuran kerja adalah banyaknya proses yang diselesaikan per satuan waktu. 
          Jika kita mempunyai beberapa proses yang sama dan memiliki beberapa algoritma penjadwalan yang 
          berbeda,throughput bisa menjadi salah satu kriteria penilaian, dimana algoritma yang menyelesaikan 
          proses terbanyak mungkin yang terbaik.

      c. Turnaround Time . Dari sudut pandang proses tertentu, kriteria yang penting adalah berapa lama untuk  
          mengeksekusi proses tersebut. Memang, lama pengeksekusian sebuah proses sangat tergantung dari 
          hardware yang dipakai, namun kontribusi algoritma penjadwalan tetap ada dalam lama waktu yang
          dipakai untuk menyelesaikan sebuah proses. Misal kita memiliki sistem komputer yang identik dan
          proses-proses yang identik pula, namun kita memakai algoritma yang berbeda, algoritma yang mampu
          menyelesaikan proses yang sama dengan waktu yang lebih singkat mungkin lebih baik dari algoritma  
          yang lain. Interval waktu yang diijinkan dengan waktu yang dibutuhkan untuk menyelesaikan sebuah 
          proses disebut turnaround time. Turnaround time adalah jumlah periode untuk menunggu untuk dapat 
          ke memori, menunggu di ready queue, eksekusi CPU, dan melakukan operasi M/K.

      d. Waiting Time . Algoritma penjadwalan CPU tidak mempengaruhi waktu untuk melaksanakan proses 
          tersebut atau M/K, itu hanya mempengaruhi jumlah waktu yang dibutuhkan proses di antrian ready. 
          waiting timeadalah jumlah waktu yang dibutuhkan proses di antrianready.

      e. Response Time . Di sistem yang interaktif, turnaround time mungkin bukan waktu yang terbaik untuk 
          kriteria. Sering sebuah proses dapat memproduksi output di awal, dan dapat meneruskan hasil yang 
          baru sementara hasil yang sebelumnya telah diberikan ke pengguna. Ukuran lain adalah waktu dari 
          pengiriman permintaan sampai respon yang pertama diberikan. Ini disebut response time, yaitu waktu 
          untuk memulai memberikan respon, tetapi bukan waktu yang dipakai output untuk respon tersebut.

       f. Fairness . Suatu algoritma harus memperhatikan pengawasan nilai prioritas dari suatu proses 
          (menghindari terjadinya starvation CPU time).

      g. Efisiensi. Rendahnya overhead dalam context switching, penghitungan prioritas dan sebagainya menentukan apakah suatu algoritma efisien atau tidak.

2. Berikan contoh penjadwalan pre emtive dan non pre emtive


> Contoh Penjadwalan Preemptive

Penjadwalan CPU yang dijalankan ketika proses dalam keadaan:
· Berubah dari running ke waiting state.
· Berubah dari running ke ready state.
· Berubah dari waiting ke ready state.

> Contoh Penjadwalan Non-Preemptive

Penjadwalan Non Preemptive terjadi ketika proses hanya:
· Berjalan dari running state sampai waiting state.
· Dihentikan.

3. Tuliskan algoritmanya masing-masing

  • Algoritma ini dapat dibagi menjadi dua bagian yaitu :

a. Preemptive
          Penjadwalan Preemptive mempunyai arti kemampuan sistem operasi untuk memberhentikan sementara proses yang sedang berjalan untuk memberi ruang kepada proses yang prioritasnya lebih tinggi. Jika ada proses yang sedang dieksekusi oleh CPU dan terdapat proses di ready queue dengan burst time yang lebih kecil daripada proses yang sedang dieksekusi tersebut, maka proses yang sedang dieksekusi oleh CPU akan digantikan oleh proses yang berada di ready queue tersebut. Preemptive SJF sering disebut juga Shortest-Remaining- Time-First scheduling.

b. Non-Preemptive
         Penjadwalan Non Preemptive ialah salah satu jenis penjadwalan dimana sistem operasi tidak pernah melakukan context switch dari proses yang sedang berjalan ke proses yang lain. Dengan kata lain, proses yang sedang berjalan tidak bisa di- interupt. CPU tidak memperbolehkan proses yang ada di ready queue untuk menggeser proses yang sedang dieksekusi oleh CPU meskipun proses yang baru tersebut mempunyai burst time yang lebih kecil. 

4. Bandingkan kelebihan dan kekurangan masing-masing algoritmanya!

Ada beberapa kelebihan dari algoritma diatas yaitu:

a. Berikut adalah kelebihan algoritma preemptive
       > Penyelesaian proses akan lebih efektif, mengingat proses yang perlu diselesaikan terlebih dahulu akan
          selesai dahulu
b. Berikut adalah kelebihan algoritma non-preemptive
      >Akan lebih cepat menyelesaikan suatu proses, soalnya memory tidak terganggu oleh proses yang lain.

  • Ada beberapa kekurangan dari algoritma diatas yaitu:

c. Berikut adalah kekurangan algoritma preemptive
     > Susahnya untuk memprediksi burst time (lama eksekusi) proses yang akan dieksekusi selanjutnya.
     > Proses yang mempunyai burst time yang besar akan memiliki waiting time yang besar pula karena yang
        dieksekusi terlebih dahulu adalah proses dengan burst time yang lebih kecil. 
d. Berikut adalah kekurangan algoritma non-preemptive

     >Tidak bisa mendahulukan proses lain yang lebih penting didahulukan

5. Bagaimana prosesor menjadwalkan proses yang ditunda tanpa mengulang dari awal.

        Jika ada proses yang sedang dieksekusi oleh CPU dan terdapat proses di ready queue dengan burst time yang lebih kecil daripada proses yang sedang dieksekusi tersebut, maka proses yang sedang dieksekusi oleh CPU akan digantikan oleh proses yang berada di ready queue tersebut. Pemilihan burst time ini sendiri dilakukan oleh modul Dispatcher yang memberikan kntrol pada CPU terhadap proses yang dipilih dengan short-term scheduling.



















DAFTAR PUSTAKA :


http://iwansantosa.files.wordpress.com/2009/04/presentasi-manajemen-proses.ppt
http://warni-myupload.blogspot.com/2012/10/manajemen-proses-penjadwalan-konkurensi.html
http://langitcool.blogspot.com/2008/11/manajemen-proses-sistem-operasi.html
http://yayangarya-blog.blogspot.com/2009/11/manajemen-proses-diagram-keadaan-dan.html