Dwie Purnamasari. Diberdayakan oleh Blogger.
RSS

Manajemen Proses

Tugas utama manajemen proses
1. Mengelola siklus hidup proses-proses
2. Melakukan penjadwalan proses
3. Menangani komunikasi antar proses
4. Mengelola alokasi antar sumber daya komputer ke proses

1. Pengelolaan siklus hidup proses meliputi:
a. Penciptaan proses
b. Penghentian proses
c. Pengalihan eksekusi

Penciptaan proses
    Dapat dipicu oleh permintaan pengguan untuk menjalankan suatu aplikasi melalui aplikasi shell. Proses dapat juga diciptakan oleh suatu proses lain yang sedang berjalan, seperti aplikasi shell yang menciptakan proses aplikasi lain yang diminta pengguna.
    Selain itu proses dapat pula diciptakan dalam suatu eksekusi batch seperti eksekusi shell script, misalnya eksekusi berkas autoexec.bat di sistem operasi windows ataupun eksekusi berkas script berekstensi*.bash di sistem operasi linux.

Berikut tahap-tahap yang dilalui selama penciptaan :

1. Sistem operasi akan membangkitkan suatu nomor identitas atau ID unik untuk proses yang diciptakan
2. Setelah itu sistem operasi akan membuat suatu rekaman data dengan nomor ID tersebut dan menyisipkan
    rekaman tersebut pada suatu struktur data di memori utama yang disebut dengan tabel proses (process 
    table)
3. Setelah itu, sistem operasi mengalokasikan ruang memori utama untuk menyimpan image proses yang
    terdiri atas bagian kode program, stack dan PCB (process Control Block)
4. Pada tahap berikutnya sistem operasi akan melakukan inisialisasi PCB proses yang diikuti dengan proses 
    no 5 berikut
5. Penyisipan PCB proses ke antrian ready dan mengubah status proses menjadi ready

Penghentian Proses
    Penghentian proses yang normal terjadi karena aplikasi telah selesai

Langak-langkah yang dilakukan oleh sistem operasi dalam penghentian proses secara normal :
1. Mengembalikan hasil keluaran ke proses induk (parent process), yaitu proses yang menciptakan proses
    bersangkutan
2. Menghapus rekaman proses di sema antrian dan di tabel proses
3. Setelah itu, sistem operasi akan menghapus PCB serta image proses tersebut. Dalam menghentikan
    proses, semua sumber daya yang digunakan, seperti berkas maupun peranti I/O dibebaskan ataupun
    dikembalikan ke sistem operasi

Setelah penghentian proses selesai, sistem operasi akan melakukan operasi penjadwalan (scheduling) untuk memilih proses lain untuk dieksekusi.

Pengalihan Eksekusi Proses (Proses Switching)
    Pengalihan eksekusi suatu proses ke proses lainnya dapat disebabkan karena suatu proses meminta 
operasi I/O (misalnya membaca berkas), menunggu suatu event (misalnya menggunakan inputan keyboard  
ataupun pergerakan mouse dari pengguna komputer), terjadi kesalahan eksekusi proses ataupun jatah waktu
eksekusinya sudah habis.

Berbagai penyebab pengalihan eksekusi proses

  1. Interupsi, interupsi disebabkan oleh aksi eksternal, misalnya oleh peranti I/O, pewaktu (timer), ataupun  
      kesalahan akses memori utama.


  2. Trap, trap adalah interupsi yang dipicu oleh terjadinya kesalahan eksekusi ataupun kondisi-kondisi khusus 
      (exception condition) dari proses yang sedang running. Jika kesalahannya fatal maka dilakukan pengalihan 
      eksekusi ke proses lain atau yang disebut dengan process switching.


  3. Supervisor Call atau System Call, System Call merupakan pemanggilan layanan sistem operasi oleh proses 
      yang sedang running. Penggunaan system call menyebabkan aliran eksekusi berpindah ke kode instruksi 
      kernel sistem operasi.

Tahapan pengalihan eksekusi proses (proses switching)

Meliputi langkah-langkah berikut :


  1. Sistem operasi menyimpan (backup) konteks processor, yaitu isi seluruh register   

      processor, proses yang sedang running (Po) ke PCB proses tersebut (PCBo).


  2. Sistem operasi kemudian memperbarui isi PCB proses tersebut (PCBo), termasuk

      mengubah status eksekusinya ke status blocked ataupun ready.


  3. Selanjutnya, PCB (PCBo) dipindahkan ke antrian yang sesuai, yaitu antrian ready jika status

      proses beralih ke status ready ataupun ke salah satu antrian I/O jika proses beralih ke status

      blocked.


  4. Setelah itu,sistem operasi melakukan  dispatch ke proses lainnya P1, dengan memperbarui

      PCB proses baru (P1), termasuk mengubah status eksekusinya menjadi running.


  5. Kemudian sistem operasi memperbarui isi struktur data manajemen memori yang berkaitan

      dengan proses baru (P1).
  6. Terakhir, sistem operasi akan meyalin (restore) konteks processor  yang tersimpan di PCB



      proses baru (PCB1) ke processor dan mulai mengeksekusi kode instruksi proses P1. 

Pengalihan konteks eksekusi (context switching)

      Terjadinya interupsi tidak selalu memicu terjadinya pengalihan eksekusi proses (proses switching). Sebagai 
 contoh adalah ketika suatu proses sedang berjalan dan menunggu inputan dari keyboard. Ketika  pengguna 
 memasukkan data lewat keyboard maka akan terjadi interupsi yang mengakibatkan pengalihan konteks 
 eksekusi, yaitu dari proses ke rutin penanganan interupsi (interupsi handler) keyboard. Setelah rutin interupsi 
 selesai dijalankan maka eksekusi dialihkan kembali ke proses bersangkutan. Selama terjadinya pengalihan 
 konteks eksekusi ini, status eksekusi proses tidak berubah.

 Pengalihan konteks eksekusi (bukan pengalihan eksekusi proses) melakukan penyimpanan konteks Processor 
 proses ke stack, Bukan ke PCB. Setelah itu eksekusi berpindah ke rutin interupsi dan setelah selesai,  register 
 processor diperbaharui kembali dengan konteks processor yang dibaca dari stack, dan eksekusi proses yang 
 terhenti dilanjutkan kembali.

 Pengalihan konteks eksekusi (context switching) melibatkan tahapan yang lebih pendek dibandingkan 
 pengalihan eksekusi proses (process switching). Itu sebabnya pengalihan eksekusi antar rutin sistem operasi 
 umumnya memakai mekanisme context switching, bukan process switching.  

Penjadwalan Proses
    Penjadwalan proses dapat didefinisikan sebagai kumpulan kebijaksanaan dan mekanisme sistem 
operasi yang mengatur urutan dan jangka waktu eksekusi proses-proses yang aktif.
  Untuk menjalankan penjadwalan proses, sistem operasi membutuhkan sejumlah komponen yang meliputi :
  1. Antrian penjadwalan (Scheduling Queue)
  2. Penjadwal (Scheduler)
   3. Dispatcher

Kriteria penjadwalan proses

Antara lain:
  1. Keadilan (fairnes)
  2. Efisien(Processor utilization)
  3. Waktu tanggapan (Respon time)
  4. Waiting time
  5. Turn around time
   6. Throughput

Strategi dasar penjadwalan
Yaitu :
  1. Non-preemptive
  2. Preemptive

Pemicu terjadinya proses penjadwalan
Antara lain:

  1. Proses berubah dari status running ke blocked.

  2. Proses berubah dari status running ke ready.

  3. Proses berubah dari status blocked ke ready.

  4. Proses berhenti (Terminated)

Algoritma Penjadwalan
Yaitu :

  1. FIFO

  2. SJF

  3. HRRN

  • Digg
  • Del.icio.us
  • StumbleUpon
  • Reddit
  • RSS

Konsep Proses

Pengertian Proses
     Merupakan abstraksi atau pemodulan terhadap eksekusi program. Sebuah proses memerlukan
sumber daya (resource) tertentu seperti waktu CPU, memori, file dan perangkat I/O untuk menyelesaikan tugasnya.
Untuk mengatur proses yang ada, sistem operasi bertanggung jawab pada aktrifitas-aktifitas yang berhubungan denagn manajemen proses berikut :
a. Pembuatan dan penghapusan proses yang dibuat oleh user atau sistem.
b. Menghentikan proses sementara dan melanjutkan proses.
c. Menyediakan kelengkapan mekanisme untuk sinkronisasi proses dan komunikasi
proses.

Pengertian Multitasking
    Merupakan istilah teknologi informasi dalam bahasa Inggris yang mengacu kepada sebuah metode dimana banyak pekerjaan atau dikenal juga sebagai proses diolah dengan menggunakan sumberdaya CPU yang sama. Dalam kasus sebuah komputer dengan prosesor tunggal, hanya satu instruksi yang dapat bekerja dalam satu waktu, berarti bahwa CPU tersebut secara aktif mengolah instruksi untuk satu pekerjaan tersebut. Multitasking memecahkan masalah ini dengan memjadwalkan pekerjaan mana yang dapat berjalan dalam satu waktu, dan kapan pekerjaan yang lain menunggu untuk diolah dapat dikerjakan. Kondisi mengalokasikan CPU dari pekerjaan satu ke pekerjaan yang lain disebut context switch. Ketika context switch terjadi dengan sangat cepat, kondisi ini cukup untuk memberikan ilusi pengolahan-paralel. Bahkan dalam komputer yang memiliki lebih dari satu CPU (disebut multi-prosesor), multitasking memperbolehkan lebih banyak pekerjaan dijalankan dibanding dengan jumlah CPU yang tersedia.

Pengertian Konkurensi
    adalah proses-proses (lebih dari satu proses) yang terjadi pada saat bersamaan. Konkurensi merupakan landasan umum perancangan sistem operasi. Proses-proses disebut konkuren jika proses-proses berada pada saat yang sama. Pada proses-proses konkuren yang berinteraksi mempunyai beberapa masalah yang harus diselesaikan:
1.    Mutual Exclusion
2.    Sinkronisasi
3.    Deadlock
4.    Startvation
Prinsip-prinsip Konkurensi
Konkurensi meliputi hal-hal sbb:
•    Alokasi waktu pemroses untuk proses-proses
•    Pemakaian bersama dan persaingan untuk mendapatkan sumber daya
•    Komunikasi antarproses
•    Sinkronisasi aktivitas banyak proses.
Konkurensi dapat muncul pada konteks berbeda, antara lain:
1.    Banyak aplikasi (multiple application).
Multiprogramming memungkinkan banyak proses sekaligus dijalankan. Proses-proses dapat berasal dari aplikasi-aplikasi berbeda. Pada sistem multiprogramming bisa terdapat banyak aplikasi sekaligus yang dijalankan di sistem komputer.
2.    Aplikasi terstruktur.
Perluasan prinsip perancangan modular dan pemrograman terstruktur adalah suatu aplikasi dapat secara efektif diimplementasikan sebagai sekumpulan proses. Dengan sekumpulan proses, maka tiap proses menyediakan satu layanan spesifik tertentu.
3.    Struktur sistem operasi.
Keunggulan strukturisasi dapat juga diterapkan ke pemrograman sistem. Beberapa sistem operasi aktual yang dipasarkan dan yang sedang dalam riset telah diimplementasikan sebagai sekumpulan proses. Sistem operasi bermodelkan client/server menggunakan pendekatan ini.
4.    Untuk Strukturisasi Satu Proses.
Saat ini untuk peningkatan kinerja maka satu proses dapat memiliki banyak thread yang independen. Thread-thread tersebut harus dapat bekerjasama untuk mencapai tujuan proses.

Kesulitan-kesulitan yang ditimbulkan konkurensi
 
Masalah yang dihadapi proses-proses kongkurensi pada multiprogramming dan multiprocessing serupa, yaitu: kecepatan eksekusi proses-proses di sistem tidak dapat diprediksi. Beberapa kemungkinan yang terjadi tidak dapat diprediksi seperti:
1.    Kecepatan proses pada sistem tergantung pada beberapa hal, antara lain:

a)    Aktivitas proses-proses lain
b)    Cara sistem operasi menangani interupsi
c)    Kebijaksanaan penjadwalan yang dilakukan oleh sistem operasi.

2.    Beberapa kesulitan yang dapat muncul, di antaranya adalah:

a)    Pemakaian bersama sumber daya global.
Jika dua proses menggunakan variabel global yang sama, serta keduanya membaca dan menulis variabel itu maka urutan terjadinya pembacaan dan penulisan terhadap variabel itu menjadi kritis.
b)    Pengelolaan alokasi sumber daya agar optimal
Jika proses A meminta suatu kanal masukan/keluaran tertentu dan dapat terjadi kemudian proses A di suspend sebelum menggunakan kanal itu. Jika sistem operasi mengunci kanal tersebut dan orang lain tidak dapat menggunakannya, maka akan terjadi inefisiensi.
c)    Pencarian kesalahan pemrograman.
Pencarian kesalahan pada pemrograman kongkuren lebih sulit dibanding pencarian kesalahan pada program-program sekuen.
  1. Proses-proses konkuren mengharuskan beberapa hal yang harus ditangani, antara lain:
a)    Sistem operasi harus mengetahui proses-proses yang aktif
b)   Sistem operasi harus mengalokasikan dan mendealokasikan beragam sumber daya untuk tiap proses aktif. Sumber daya yang harus dikelola, antara lain:
(1)    Waktu pemroses.
(2)    Memori
(3)    Berkas-berkas
(4)    Perangkat I/O
c)    Sistem operasi harus memproteksi data dan sumber daya fisik masing-masing proses dari gangguan proses-proses lain.
d)    Hasil-hasil proses harus independen terhadap kecepatan relatif proses-proses lain dimana eksekusi dilakukan.

Tiga katagori interaksi dengan banyak proses (konkuren)


    1. Proses-proses tidak saling peduli (independent) => Prosesproses tidak dimaksudkan untuk bekerja bersama untuk mencapai tujuan tertentu.
    2. Proses-proses saling mempedulikan secara tidak langsung => Prosesproses tidak perlu saling mempedulikan identitas proses-proses lain tapi sama-sama mengakses objek tertentu (seperti buffer Input/Output). Prosesproses itu perlu bekerja sama dalam memakai bersama objek tertentu.
    3. Proses-proses saling mempedulikan secar langsung Prosesproses dapat saling bekomunikasi dan dirancang bekerja sama untuk suatu aktivitas.

    Siklus Hidup Proses


    Struktur Kendali Sistem Operasi

    a. Pembuatan dan penghapusan file.
    b. Pembuatan dan penghapusan direktori.
    c. Primitif-primitif yang mendukung untuk manipulasi file dan direktori.
    d. Pemetaan file ke memori sekunder.
    e. Backup file ke media penyimpanan yang stabil (nonvolatile).

    Manajemen I/O

    Sistem operasi bertanggung-jawab pada aktifitas-aktifitas sistem I/O sebagai
    berikut:
    a. Sistem buffer-caching.
    b. Antarmuka device-driver secara umum.
    c. Driver untuk device hardware-hardware tertentu.

    Manajemen Penyimpan Sekunder

    Karena memori utama (primary storage) bersifat volatile dan terlalu kecil untuk mengakomodase semua data dan program secara permanen, sistem komputer harus menyediakan penyimpan sekunder (secondary storage) untuk back up memori utama. Beberapa sistem komputer modern menggunakan disk untuk media penyimpan on-lin, baik program maupun data. Sistem operasi bertanggung jawab pada aktifitas-aktifitas manajemen penyimpan sekunder sebagai berikut:
    a. Pengaturan ruang bebas.
    b. Alokasi penyimpanan.
    c. Penjadwalan disk.

    Sistem Jaringan (Sistem Terdistribusi)

    Sistem terdistribusi adalah kumpulan prosessor yang tidak menggunakan memori atau clock bersama-sama. Setiap prosessor mempunyai local memori sendiri. Prosessor-prosessor pada sistem dihubungkan melalui jaringan komunikasi. Komunikasi dilakukan dengan menggunakan protocol.

    Sistem operasi menyediakan layanan untuk programmer sehingga dapat melakukan pemrograman dengan mudah.
    a. Eksekusi Program. Sistem harus dapat memanggil program ke memori dan menjalankannya. Program tersebut harus dapat mengakhiri eksekusinya dalam bentuk normal atau abnormal (indikasi error).
    b. Operasi-operasi I/O. Pada saat running program kemungkinan dibutuhkan I/O, mungkin berupa file atau peralatan I/O. Agar efisien dan aman, maka user tidak boleh mengontrol I/O secara langsung, pengontrolan dilakukan oleh sistem operasi.
    c. Manipulasi sistem file. Kapabilitas program untuk membaca, menulis, membuat dan menghapus file.
    d. Komunikasi. Komunikasi dibutuhkan jika beberapa proses yang sedang dieksekusi saling tukar-menukar informasi. Penukaran informasi dapat dilakukan oleh beberapa proses dalam satu komputer atau dalam komputer yang berbeda melalui sistem jaringan. Komunikasi dilakukan dengan cara berbagi memori (shared memory) atau dengan cara pengiriman pesan (message passing).
    e. Mendeteksi kesalahan. Sistem harus menjamin kebenaran dalam komputasi dengan melakukan pendeteksian error pada CPU dan memori, perangkat I/O atau pada user program.

    Gambar Struktur Kendali Sistem Operasi




  • Digg
  • Del.icio.us
  • StumbleUpon
  • Reddit
  • RSS