Saturday, 25 July 2015

Manajemen proses lanjutan

implementasi proses
Implementasi Proses
                tiap proses mempunyai state yang perlu diperhatikan oleh sistem operasi. Sistem operasi mencatat state proses dengan beragam tabel atau senarai antara lain:

1. Tabel informasi manajemen memori, untuk menjaga keutuhan memori utama dan memori sekunder. Tabel ini memuat informasi berikut
-         Alokasi memori utama yang dipakai pemroses
-         Alokasi memori skunder yang dipakai proses (bila menggunakan manajemen memori dengan swapping)
-         Atribut segmen memori utama dan sekunder
-         Informasi-informasi lain yang digunakan untuk pengolahan memori


2. Tabel informasi manajemen I/O
                tabel ini untuk mengelola perangkat I/O. pada satu saat I/O digunakan proses tertentu, perlu dijaga agar proses lain tidak memakainya. Sistem operasi perlu mengetahui status operasi I/O dan lokasi memori utama yang digunakan untuk transfer  data
  1. Tabel informasi sistem lain
                tabel ini berisi informasi mengenai ekstensi file, lokasi pada memori skunder, status pada saat itu dan menyimpan atribut-atribut lainya
  1. Tabel proses
                tabel proses mengelola informasi proses di sistem operasi, lokasinya di memori, tabel juga berisi status dan atribut-atribut proses yang lain.
                proses ditempatkan di memori utama di lokasi tertentu, proses mempunyai satu ruang alamat tersendiri. Ruang alamat yang digunakan proses disebut citra proses (process image) karena selain seluruh kode biner program, proses ditambah atribut-atribut lain berkaitan penempatanya pada suatu lokasi memori dan status eksekusi pada saat itu


Tabel berikut menunjukan isi dari citra proses






Pengalihan Proses

Pada suatu saat proses running diinterupsi dan sistem operasi memberi proses lain (state running) dan menggilir kendali ke proses itu. Dalam hal ini muncul beberapa masalah yaitu:
  1. kejadian-kejadian apa yang memicu alih proses
  2. Masalah lain adalah terdapatnya perbedaan antara alih proses (process switching) dan alih konteks (context-switching)
  3. Apa yang harus dilakukan sistem operasi terhadap beragam struktur data yang  dibawah kendalinya dalam alih proses

Kejadian-Kejadian Penyebab Pengalihan Proses
  1. Interupsi sistem, disebabkan kejadian eksternal dan tak bergantung proses yang sedang running
                contoh: selesainya operasi I/O
                Pada kejadian interupsi, kendali lebih dulu ditransfer ke interrupt handler yang melakukan penyimpanan data-data dan kemudian beralih ke rutin sistem operasi yang berkaitan dengan tipe interupsi itu
Tipe-tipe interupsi antara lain:
       interupsi clock, os (penjadwal) menentukan apakah proses yang sedang running telah mengeksekusi selama jatah waktunya. Jika telah mencapai jatahnya maka proses dialihkan ke  state ready dan proses lain dijadwalkan running
       Interupsi I/O, kejadian dimana peralatan I/O melakukan interupsi meminta layanan sistem operasi. Os segera menentukan aksi-aksi I/O yang harus dilakukan
       Page memory fault, pemroses menemui pengacuan alamat memori maya yang tidak terdapat di memori utama (fisik). OS segera memerintahkan untuk mengambil page yang terdapat alamat yang dimaksud untuk dipindah ke memori utama.

  1. Trap adalah interupsi karena terjadinya kesalahan atau kondisi kekecualian (exception conditions) yang dihasilkan proses yang running, seperti usaha illegal dalam mengakses file.
                Dengan adanya trap, os menentukan apakah kesalah yang dibuat merupakan kesalahan fatal?
       Jika fatal, proses yang saat itu running disingkirkan dan terjadi alih proses
       Jika kesalahan tidak fatal maka bergantung sifat kesalahan dan rancangan os.
                kemungkinan yang dilakukan adalah menjalankan prosedur pemulihan tau memperingatkan ke pemakai.
       Saat terjadi trap, mungkin terjadi pengalihan proses mungkin pula resume proses
  1. Supervisor call, yaitu panggilan meminta atau mengaktifkan bagian sistem operasi

Pengalihan Proses dan Pengalihan Konteks
       Pengalihan Konteks
                pengalihan konteks dapat terjadi tanpa pengalihan state proses yang sedang running, sedang pengalihan proses pasti melibatkan juga pengalihan konteks
                siklus penangan interupsi
  1. Pemroses menyimpan konteks program saat itu yang sedang dieksekusi ke stack
  2. Pemroses men-set register PC dengan alamat awal program untuk interrupt handler
Jadi  pengalihan konteks adalah untuk pengalihan sementara yang singkat, misalnya untuk mengeksekusi program interupt handler.
Setelah selesai penanganan interupsi maka konteks yang terdapat pada stack dikembalikan sehingga kembali ke konteks proses semula tanpa terjadi pengalihan ke proses lain
Pengalihan proses adalah terjadi jika proses yang running beralih menjadi state lain, kemudian sistem operasi harus membuat perubahan-perubahan berarti terhadap lingkunganya.
       Pengalihan Proses
                Langkah-langkah yang terlibat dalam pengalihan proses sebagi berikut:
  1. Simpan konteks pemroses, termasuk register PC dan register-register lain
  2. Perbarui PCB proses yang running. Pelaksanaan termasuk mengubah state proses menjadi salah satu state
  3. Pindahkan PCB proses ke senarai yang cocok
  4. Pilih satu proses lain untuk dieksekusi sesuai dengan teknik penjadwalan
  5. Perbarui PCB proses yang dipilih termasuk perubahan state menjdai running
  6. Perbarui struktur data manajemen memori. Pekerjaan ini sesuai dengan pengelolaan tranlasi alamat
  7. Kembalikan konteks pemroses dengan konteks simpanan yang memberitahu konteks proses terakhir saat dialihkan dari state running. Pengembalian konteks ini dilakukan dengan memuatkan nilai-nilai register PC dan register-register lain dengan nilai konteks yang tersimpan
Pengalihan proses melibatkan pengalihan kontekks dan perubahan state, memerlukan usaha lebih besar besar daripada pengalihan konteks

Kedudukan Sistem Operasi
Kedudukan os dibanding dengan proses-proses lain:
       os sebagai kernel tersendiri yang berbeda dengan proses-proses lain (kernel-non proses)
       Fungsi-fungsi os dieksekusi dalam proses pemakai
       Os juga sebagai kumpulan proses (process-based operating system)

Karnel sebagai non proses

Kernel sistem operasi adalah diluar proses, digambarkan berikut



Gambar 3.6Eksekusi Kernel sebagai non proses

       Ketika proses running diinterupsi atau memanggil system call, maka konteks pemroses proses disimpan dan kendali dilewatkan ke kernel. Os mempunyai daerah memori stack sendiri untuk pemangilan prosedur. Fungsi OS melakukan fungsi yang diinginkan dan mengembalikan konteks proses yang diinterupsi. Eksekusi proses pemakai yang diinterupsi dilanjutkan
       Alternatif lain, os menyimpan lingkungan proses, melakukan penjadwalan dan menjadwalkan proses lain


Dieksekusi Dalam Proses Pemakai
Eksekusi Os juga mengeksekusi sistem operasi di konteks proses pemakai. Pendekatan ini didasarkan terutama pada pandangan bahwa sistem operasi sebagai kumpulan rutin yang dipanggil pemakai untuk melakukan beragam fungsi dan dieksekusi dalam lingkungan proses pemakai


Gambar 3.7 Eksekusi dalam proses pemakai

Sistem Operasi Sebagai Kumpulan Proses

Pendekatan ini mengimplementasikan os sebagai kumpulan proses. Varianya adalah perangkat lunak bagian kernel dieksekusi dalam mode kernel


Gambar 3.8 Eksekusi sistem operasi sebagai proses



Fungsi-fungsi kernel utama diorganisasi sebagai proses-proses terpisah. Terdapat kode kecil pengalihan proses yang dieksekusi di luar proses.
Pendekatan ini mempuyai keunggulan:
       perancangan modular dapat diterapkan ke peracangan sistem operasi.  Os menjadi modul-modul dengan interface yang bersih dan minimal antar modul-modul itu
       Mudah diterapkan pada lingkungan multiprocessor atau multicomputer dimana beberapa layanan sistem operasi ditaruh di pemroses-pemroses tertentu. Teknik ini akan meningkatkan kinerja

Microkernel
       Mirokernel adalah inti sistem operasi yang menyediakan landasan perluasan sistem operasi
       Pendekatan mikrokernel dipopulerkan sistem operasi MACH, secara teoritis pendekatan mikrokernel menyediakan derajat fleksibilitas dan modularitas tinggi. Os yang memakai pendekatan mirokernel adalah MS Windows NT
       Landasan pendekatan mikrokomputer adalah hanya fungsi-fungsi sistem operasi inti yang secara mutlak esensi yang harus berada di kernel.
       Terdapat ciri yang sama yaitu banyak layanan yang secara tradisional merupakan bagian sistem operasi menjadi subsistem eksternal. Subsistem ini berinteraksi dengan kernel dan subsistem-subsistem lain. Layanan ini antara lain sistem file, sistem windowing dan layanan keamanan
       Komponen-komponen sistem operasi di luar mikrokernel saling berinteraksi melalui pesan yang dilewatkan melalui mikrokernel
       Fungsi miikrokernel adalah sebagai mediator pertukaran pesan
       Mikrokernel memvalidasi pesan, melewatkan pesan antara komponen-komponen dan meberi hak pengaksesan perangkat keras
       Struktur ini ideal untuk lengkungan pemroses terdistribusi karena mikrokernel dapat melawatkan pesan baik secara lokal atau jarak jauh tanpa perubahan komponen-komponen sistem operasi lain.




Manajemen proses


Proses (task) adalah entitas dinamis, proses berisi instruksi dan data, program counter dan semua register pemroses, dan stack berisi data sementara seperti parameter rutin, alamat pengiriman dan variabel-variabel lokal

Deskripsi proses
Proses merupakan konsep pokok di sistem operasi. Konsep ini pertama kali dipakai di sistem operasi Multics tahun 60-an. Tema utama perancangan sistem operasi semuanya berkaitan dengan manajemen proses
Terdapat beragam definisi proses. Salah satunya adalah program yang sedang dieksekusi. Proses merupakan unit kerja terkecil yang secara individu memiliki sumber daya-sumber daya dan dijadwalkan sistem operasi1)

Multiprogramming, Multiprocessing dan Distributed processing
Beberapa istilah berkaitan dengan proses, antara lain
Multiprogramming (multitasking), manajemen banyak proses pada satu pemroses istilah yang digunakan multiprograming (multitasking) bukan multiprocessing banyak proses dijalankan bersamaan, masing-masing proses mendapat bagian memori dan kendali tersendiri. Sistem operasi mengalih-alihkan prmroses di antara proses-proses tsb

Program-program yang dijalankan bersifat:
-          Saling tak bergantung (independen), proses terpisah satu dari lainya dan tidak saling mempengaruhi.
-          Satu program pada satu saat (one program at any instan), pada satu waktu sesungguhnya hanya satu proses yang dilayani pemroses, menggunakan interleave (saling melanjutkan/bersambung) bukan overlap diantara program-program.
-          Multiprocessing, manajemen banyak proses di komputer multiprocessor (banyak pemroses di dalamnya) dulunya sistem ini hanya terdapat di sistem besar, mainframe dan minikomputer, saat ini workstation telah dapat dilengkapi dengan multiprocessor sistem operasi  Microsoft Windows NT, Unix, Linux menyediakan dukungan multiprocessing.
-          Distributed processing/computing, manajemen banyak proses yang dieksekusi di banyak sistem komputer yang tersebar (terdistribusi)
-          Trend masa datang menuju komputasi tersebar (distributed computing)
-          Contoh riset & pengembangan sistem operasi tersebar AMOEBA, MACH

kebutuhan utama pengendalian proses
Kebutuhan utama pengendalian proses oleh sistem operasi dapat dinyatakan dengan mengacu ke proses yaitu [STA-95]
  1. Saling melanjutkan (interleave), os harus interleave eksekusi proses-proses agar memaksimumkan penggunaan pemroses sambil memberi waktu tanggap yang memadai.
  2. Mengikuti kebijaksanaan tertentu os harus mengalokasikan sumber daya ke proses-proses mengikuti kebijaksanaan yang ditentukan (misalnya fungsi atau aplikasi tertentu mempunyai priorotas lebih tinggi) sambil menghindari deadlock
  3. Mendukung komunikasi antar proses dan penciptaan proses, os perlu mendukung kemunikasi antar proses dan penciptaan proses oleh pemakai sehingga membantu menstrukturkan aplikasi.


-          Pada sistem banyak proses aktif, proses-proses pada satu saat berada dalam beragam tahap eksekusinya.
-          Proses mengalami beragam state selama siklus hidupnya sebelum berakhir dan keluar dari system.
-          Os harus dapat mengetahui state masing-masing proses dan merekam semua perubahan yang terjadi secara dinamis. Informasi ini untuk penjadwalan dan memutuskan alokasi sumber daya.

Diagram State Proses
Proses melewati serangkaian state diskrit. Beragam kejadian dapat menyebabkan perubahan state proses. Tabel 3-1 mendaftarkan state-state dasar yang dialami proses. Proses dapat beradi di salah satu dari tiga state dasar


Tabel 3.1 Tiga State Dasar Pemroses


Hubungan Ketiga State Dasar Digambarkan Dengan Diagram State



-          Proses yang baru diciptakan akan segera mempunyai state ready
-          Proses berstate running menjadi blocked karena sumber daya yang diminta belum tersedia atau meminta layanan perangkat masukan/keluaran sehingga menunggu kejadian muncul.
-          Proses menunggu kejadian alokasi sumber daya atau selesainya layanan perangkat masukan/keluaran (event wait)

-          Proses berstate running menjadi ready karena penjadwal memutuskan eksekusi proses lain karna jatah waktu untuk proses tersebut telah habis (time-out)
-          Proses berstate blocked menjadi ready saat sumber daya yang diminta/diperlukan tersedia atau layanan perangkat masukan/keluaran selesai ((event occurs)
-          Proses berstate ready menjadi running karena penjadwal memutuskan penggunaan pemroses untuk proses itu karena proses yang saat itu running berubah state-nya  (menjadi ready atau blocked) atau telah menyesaikan sehingga disingkirkan dari sistem.
Proses menjadi mendapatkan jatah pemroses

Pcb (Process Control Block)
Os memerlukan banyak informasi mengenai proses guna pengelolaan proses, informasi ini berada di PCB. Sistem berbeda akan mengorganisasikan secara berbeda
Informasi di PCB dikelompokan menjadi 3
  1. Informasi identifikasi proses, ini berkaitan dengan identitas proses yang unik.
  2. Informasi status pemroses, informasi ini esensinya terdiri dari isi register-register pemroses. Saat proses berstatus running, informasi-informasi ini berada di register-register. Ketika proses diinterupsi, semua informasi register harus disimpan agar dapat dikembalikan saat proses dieksekusi kembali
  3. Informasi kendali proses, adalah informasi-informasi lain yang diperlukan sistem operasi untuk mengendalikan dan koordinasi beragam proses aktif.
                citra proses mempunyai struktur berisi PCB, stack user, ruang alamat proses ekslusif dan ruang alamat yang dipakai bersama proses lain.


Gambar 3.2 Proses Pemakai proses


Operasi-operasi pada Proses
-          Sistem operasi dalam mengelola proses dapat melakukan operasi-operasi terhadap proses antara lain:
-           Penciptaan proses (create a process)
-          Penghancuran/terminasi proses (destroy a process)
-          Penundaan proses (suspend a process)
-          Pelanjutan kembali proses (resume a process)
-          Pengubahan prioritas proses
-          Mem-block proses
-          Membangunkan proses
-          Menjadwalkan proses
-          Memungkinkan proses berkomunikasi dengan proses lain
Dua operasi terpenting terhadap proses adalah penciptaan dan penghancuran proses

Penciptaan Proses
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

Ketika proses baru ditambahkan, sistem operasi membangun struktur data untuk mengelola dan alokasi ruang alamat proses tsb. Aksi ini berkaitan dengan proses baru. Kejadian yang dapat menyebabkan penciptaan proses:
  1. Pada lingkungan batch, sebagai tanggapan atas pemberian satu kerja (job)
  2. Pada lingkungan interaktif, ketika pemakai baru berusaha logon
  3. Sebagai tanggapan suatu aplikasi, seperti permintaan pencetakan file, sistem operasi dapat menciptakan proses yang akan mengelola pencetakan itu
  4. Proses menciptakan proses lain (proses anak)


Tabel 3.3 Alasan penciptaan proses


 Penghancuran Proses

 Penghancuran proses melibatkan pembebasan proses dari sistem, yaitu:
       Sumber daya yang dipakai dikembalikan
       Proses dihancurkan dari senarai atau tabel sistem
       PCB dihapus (ruang memori PCB dikembalikan ke pool memori bebas)

Penghancuran lebih rumit bila proses telah menciptakan proses-proses lain. Terdapat 2 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 sehingga proses anak tidak secara otomatis dihancurkan saat proses induk dihancurkan


Tabel 3.4 Alasan-alasan Penghancuran Proses