//
you're reading...
Sistem Operasi, tugas individu

Manajemen Proses Pada Sistem Operasi

Manajemen Proses

Proses adalah sebuah program yang sedang dieksekusi. Sedangkan program adalah kumpulan instruksi yang ditulis ke dalam bahasa yang dimengerti sistem operasi. Sebuah proses membutuhkan sejumlah sumber daya untuk menyelesaikan tugasnya. Sumber daya tersebut dapat berupa CPU time, alamat memori, berkas-berkas, dan perangkat-perangkat M/K. Sistem operasi mengalokasikan sumber daya-sumber daya tersebut saat proses itu diciptakan atau sedang diproses/dijalankan. Ketika proses tersebut berhenti dijalankan, sistem operasi akan mengambil kembali semua sumber daya agar bisa digunakan kembali oleh proses lainnya.

Sistem operasi bertanggung jawab atas aktivitas-aktivitas yang berkaitan dengan manajemen proses seperti:

Membuat dan menghapus proses pengguna dan sistem proses. Sistem operasi bertugas mengalokasikan sumber daya yang dibutuhkan oleh sebuah proses dan kemudian mengambil sumber daya itu kembali setelah proses tersebut selesai agar dapat digunakan untuk proses lainnya.

Menunda atau melanjutkan proses. Sistem operasi akan mengatur proses apa yang harus dijalankan terlebih dahulu berdasarkan berdasarkan prioritas dari proses-proses yang ada. Apa bila terjadi 2 atau lebih proses yang mengantri untuk dijalankan, sistem operasi akan mendahulukan proses yang memiliki prioritas paling besar.

Menyediakan mekanisme untuk proses sinkronisasi. Sistem operasi akan mengatur jalannya beberapa proses yang dieksekusi bersamaan. Tujuannya adalah menghindarkan terjadinya inkonsistensi data karena pengaksesan data yang sama, juga untuk mengatur urutan jalannya proses agar setiap proses berjalan dengan lancar

Menyediakan mekanisme untuk proses komunikasi. Sistem operasi menyediakan mekanisme agar beberapa proses dapat saling berinteraksi dan berkomunikasi (contohnya berbagi sumber daya antar proses) satu sama lain tanpa menyebabkan terganggunya proses lainnya.

Menyediakan mekanisme untuk penanganan deadlock. Deadlock adalah suatu keadaan dimana sistem seperti terhenti karena setiap proses memiliki sumber daya yang tidak bisa dibagi dan menunggu untuk mendapatkan sumber daya yang sedang dimiliki oleh proses lain. Saling menunggu inilah yang disebut deadlock(kebuntuan). Sistem operasi harus bisa mencegah, menghindari, dan mendeteksi adanya deadlock. Jikadeadlock terjadi, sistem operasi juga harus dapat memulihkan kondisi sistemnya.

Setiap proses dalam sebuah sistem operasi mendapatkan sebuah PCB (Process Control Block) yang memuat informasi tentang proses tersebut, yaitu: sebuah tanda pengenal proses (Process ID) yang unik dan menjadi nomor identitas, status proses, prioritas eksekusi proses dan informasi lokasi proses dalam memori. Prioritas proses merupakan suatu nilai atau besaran yang menunjukkan seberapa sering proses harus dijalankan oleh prosesor. Proses yang memiliki prioritas lebih tinggi, akan dijalankan lebih sering atau dieksekusi lebih dulu dibandingkan dengan proses yang berprioritas lebih rendah. Suatu sistem operasi dapat saja menentukan semua proses dengan prioritas yang sama, sehingga setiap proses memiliki kesempatan yang sama. Suatu sistem operasi dapat juga merubah nilai prioritas proses tertentu, agar proses tersebut akan dapat memiliki kesempatan lebih besar pada eksekusi berikutnya (misalnya: pada proses yang sudah sangat terlalu lama menunggu eksekusi, sistem operasi menaikkan nilai prioritasnya).

1. Komunikasi antar proses

(Inter Process Communinication / IPC) :

  • Beberapa proses biasanya berkomunikasi dengan proses lainnya.
  • Contohnya pada shell pipe line : output dari proses pertama harus diberikan kepada proses ke dua dan seterusnya.
  • Pada beberapa sistem operasi, proses-proses yang bekerja bersama sering sharing(berbagi) media penyimpanan, dimana suatu proses dapat membaca dan menulis pada shared storage (main memory atau files).

Mekanisme proses untuk komunikasi dan sinkronisasi aksi

  • Sistem Pesan – komunikasi proses satu dengan yang lain dapat dilakukan tanpa perlu pembagian data.
  • IPC menyediakan dua operasi :
    • send(message) – pesan berukuran pasti atau variabel
    • receive(message)
    • Jika P dan Q melakukan komunikasi, maka keduanya memerlukan :
      • Membangun jalur komunikasi diantara keduanya
      • Melakukan pertukaran pesan melaui send/receive
    • Implementasi jalur komunikasi
      • physical (shared memory, hardware bus)
      • logical (logical properties)

Create and Destroyed Process

  • Pembuatan Proses (Create)

Penciptaan proses terjadi karena terdapat batch baru. SO dengan kendali batch job, setelah menciptakan proses baru, kemudian melanjutkan membaca job selanjutnya.

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)  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.

Banyak sistem operasi modern telah memiliki konsep yang dikembangkan agar memungkinkan sebuah proses untuk memiliki eksekusi multithreads, agar dapat dapat secara terus menerus mengetik dalam karakter dan menjalankan pengecek ejaan didalam proses yang sama. Maka sistem operasi tersebut memungkinkan proses untuk menjalankan lebih dari satu tugas pada satu waktu.

2. Keadaan Proses

1)      Running, yaitu suatu kondisi pemroses sedang mengeksekusi instruksi. Benar-benar menggunakan CPU pada saat itu (sedang mengeksekusi instruksi proses itu).

2)      Ready, yaitu suatu kondisi proses siap dieksekusi, akan tetapi pemroses belum siap atau sibuk.

3)      Blocked, yaitu suatu proses menunggu kejadian untuk melengkapi tugasnya. Bentuk kegiatan menunggu proses yaitu : selesainya kerja dari perangkat I/Otersedianya memori yang cukup.

Transisi Status

1)      Proses di blok untuk melayani input karena sumber daya yang diminta belum tersedia / meminta layanan I/O sehingga menunggu kejadian muncul.

2)      Penjadwalan mengambil proses lain.

3)      Penjadwalan mengambil proses ini (baru).

4)      Input telah tersedia.

3. 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

2)      Sistem waktu nyata

d)      Turn around time

Adalah waktu yang dihabiskan dari saat program atau job mulai masuk ke sistem sampai proses diselesaikan sistem. 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.

Algoritma Penjadwalan

Berikut jenis-jenis algoritma berdasarkan penjadwalan :

  1. Nonpre-emptive, menggunakan konsep :
    1. FIFO (First In First Out) atau FCFS (First Come First Serve)

    FIFO merupakan :

    • Penjadwalan tidak berprioritas.

    FIFO adalah penjadwalan paling sederhana, yaitu :

    • Proses-proses diberi jatah waktu pemroses berdasarkan waktu kedatangan.
    • Pada saat proses mendapat jatah waktu pemroses, proses dijalankan sampai selesai.

    2. SJF (Shortest Job First)

    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.

    Masalah yang muncul adalah :

    • Tidak mengetahui ukuran job saat job masuk.

    Untuk mengetahui ukuran job adalah dengan membuat estimasi berdasarkan  kelakukan sebelumnya.

    • Proses yang tidak datang bersamaan, sehingga penetapannya harus dinamis.Highest Ratio Next (HRN)

    3. Highest Ratio Next (HRN)

    Merupakan :

    • Penjadwalan berprioritas dinamis.
    • Penjadwalan untuk mengoreksi kelemahan SJF.
    • Adalah strategi penjadwalan dengan prioritas proses tidak hanya merupakan fungsi waktu layanan tetapi juga jumlah waktu tunggu proses. Begitu proses mendapat jatah pemroses, proses berjalan sampai selesai.

    Prioritas dinamis HRN dihitung berdasarkan rumus :

    Prioritas = (waktu tunggu + waktu layanan ) / waktu layanan

    4. Multiple Feedback Queues (MFQ)

    2. Pre-emptive, menggunakan konsep :

    1. RR (Round Robin)

    2. PS (Priority Schedulling)

    3. GS (Guaranteed Schedulling)

    >> Algoritma yang digunakan pada RR (Round Robin) :

    1. 1)      Jika kwanta habis dan proses belum selesai, maka proses menjadi runnable dan pemroses dialihkan ke proses lain.2)      Jika kwanta belum habis dan proses menunggu suatu kejadian (selesainya operasi I/O), maka proses menjadi blocked dan pemroses dialihkan ke proses lain.3)      Jika kwanta belum habis tetapi proses telah selesai, maka proses diakhiri dan pemroses dialihkan ke proses lain.Diimplementasikan dengan :1)      Mengelola senarai proses ready (runnable) sesuai urutan kedatangan.

      2)      Ambil proses yang berada di ujung depan antrian menjadi running.

      3)      Bila kwanta belum habis dan proses selesai, maka ambil proses di ujung depan antrian proses ready.

      4)      Jika kwanta habis dan proses belum selesai, maka tempatkan proses running ke ekor antrian proses ready dan ambil proses di ujung depan antrian proses ready.

      Masalah yang timbul adalah menentukan besar kwanta, yaitu :

      • Kwanta terlalu besar menyebabkan waktu tanggap besar dan turn arround time rendah.
      • Kwanta terlalu kecil menyebabkan peralihan proses terlalu banyak sehingga  menurunkan efisiensi proses.

      >>Pemberian prioritas pada PS (Priority Schedulling) diberikan secara :

      1. Statis (static priorities)

      Berarti prioritas tidak berubah.

      Keunggulan :

      • Mudah diimplementasikan.
      • Mempunyai overhead relatif kecil.

      Kelemahan :

      • Tidak tanggap terhadap perubahan lingkungan yang mungkin menghendaki  penyesuaian prioritas.
      1. Dinamis (dynamic priorities)

      Merupakan mekanisme untuk menanggapi perubahan lingkungan sistem   beroperasi. Prioritas awal yang diberikan ke proses mungkin hanya berumur pendek setelah disesuaikan ke nilai yang lebih tepat sesuai lingkungan.

      Kelemahan :

      • Implementasi mekanisme prioritas dinamis lebih kompleks dan mempunyai  overhead lebih besar. Overhead in diimbangi dengan peningkatan daya     tanggap sistem.

      Dalam algoritma berprioritas dinamis dituntun oleh keputusan untuk memenuhi kebijaksanaan tertentu yang menjadi tujuan. Layanan yang bagus adalah menset prioritas dengan nilai 1/f, dimana f adalah ration kwanta terakhir yang digunakan proses.

      >> Pada SRF, proses dengan sisa waktu jalan diestimasi terendah dijalankan, termasuk proses-proses yang baru tiba.

      • Pada SJF, begitu proses dieksekusi, proses dijalankan sampai selesai.
      • Pada SRF, proses yang sedang berjalan (running) dapat diambil alih proses baru dengan sisa waktu jalan yang diestimasi lebih rendah.

      >> Guaranteed Scheduling (GS)

      Penjadwalan ini memberikan janji yang realistis (memberi daya pemroses yang sama) untuk membuat dan menyesuaikan performance adalah jika ada N pemakai, sehingga setiap proses (pemakai) akan mendapatkan 1/N dari daya pemroses CPU. Untuk mewujudkannya, sistem harus selalu menyimpan informasi tentang jumlah waktu CPU untuk semua proses sejak login dan juga berapa lama pemakai sedang login. Kemudian jumlah waktu CPU, yaitu waktu mulai login dibagi dengan n, sehingga lebih mudah menghitung rasio waktu CPU. Karena jumlah waktu pemroses tiap pemakai dapat diketahui, maka dapat dihitung rasio antara waktu pemroses yang sesungguhnya harus diperoleh, yaitu 1/N waktu pemroses seluruhnya dan waktu pemroses yang telah diperuntukkan proses itu.

      Kerja prosesor pada suatu proses terhenti oleh pensaklaran konteks (perubahan kegiatan prosesor dari proses ke proses yang terjadi diantara proses sistem / proses aplikasi).

      2 cara interupsi pada processor :

      1. 1. Interupsi langsung

      Berasal dari luar prosesor (peripheral / alat mengirim sinyal kepada prosesor untuk meminta pelayanan)

      1. 2. Interupsi Tanya / Polling

      Berasal dari prosesor (prosesor secara bergiliran mengecek apakah ada peripheral yang memerlukan pelayanan atau tidak)

      • Interupsi dapat di-enable dan disable tergantung pada levelnya.
      • Pembangkit interupsi dapat berasal dari :
        • Program, di dalam program telah dirancang pada bagian tertentu akan terjadi pensaklaran konteks, yang menimbulkan interupsi, contohnya pada saat penggunaan alat / prosesor secara bergantian.
        • Prosesor, prosesor sendiri dapat membangkitkan interupsi, yang biasa mengolah logika dan aritmatika. Jika melampoi ukuran tampung register di dalam prosesor, maka terjadi kekeliruan yang akan menginterupsi kerjanya sendiri dan menyerahkan kendali prosesor pada sistem operasi. Misalnya pembagian dengan bilangan nol.
        • Satuan kendali, tugas untuk melaksanakan interupsi terletak pada satuan kendali, sehingga satuan kendali dapat membangkitkan interupsi. Misalnya kekeliruan instruksi
        • Kunci waktu / clock, menggunakan interupsi berkala. Misalnya pada program looping yang tak terhingga, diinterupsi pada setiap selang waktu 60 detik.
        • Peripheral I/O, I/O jika akan bekerja memberitahukan pada prosesor dengan interupsi prosesor dan juga ketika pekerjaan selesai atau pada saat terjadi kekeliruan paritas.
        • Memori, karena terjadi kekeliruan, misalnya ketika prosesor ingin mencapai alamat memori yang terletak di luar bentangan alamat memori yang ada.

        Langkah-langkah yang dilakukan sistem operasi pada saat terjadi interupsi :

        1. hardware memasukkan program counter, dl.l.

        memasukkan ke dalam stack pencacah program

        1. Hardware memuatkan (load) program counter baru dari vector interrupsi
        2. Prosedur bahasa rakitan menyimpan isi register
        3. Prosedur bahasa rakitan men-set stack yang baru
        4. Prosedur C menandai proses servis siap (ready)
        5. Scheduler / penjadwalan menentukan proses mana yang akan jalan berikutnya
        6. Prosedur C kembali ke modus bahasa rakitan
        7. Prosedur bahasa rakitan memulai proses yang sedang dilaksanakan.

         

        Sumber :

        http://kambing.ui.ac.id/bebas/v06/Kuliah/SistemOperasi/BUKU/SistemOperasi-4.X-1/ch05s03.html

        http://ariefzuhud.blog.upi.edu/2010/03/13/manajemen-proses-pada-sistem-operasi/

About kusukaitu

nothing special..

Diskusi

Belum ada komentar.

Tinggalkan Balasan

Isikan data di bawah atau klik salah satu ikon untuk log in:

Logo WordPress.com

You are commenting using your WordPress.com account. Logout / Ubah )

Gambar Twitter

You are commenting using your Twitter account. Logout / Ubah )

Foto Facebook

You are commenting using your Facebook account. Logout / Ubah )

Foto Google+

You are commenting using your Google+ account. Logout / Ubah )

Connecting to %s

%d blogger menyukai ini: