Proses dalam Sistem Operasi

1. Proses dalam sistem operasi
beberapa definisi proses pada sistem operasi adalah :

1. Program yang sedang dalam keadaan dieksekusi.

2. Unit kerja terkecil yang secara individu memiliki sumber daya dan dijadwalkan oleh system operasi. Sistem operasi mengolah seluruh proses yang ada di sistem dan bertugas mengalokasikan sumber daya sumber daya ke proses yang membutuhkan sesuai dengan kebijaksanaan tertentu. Sumber daya yang dibutuhkan proses diantaranya CPU, memori, file serta I/O device.


Keadaan Proses

Proses – proses yang dikelola oleh sistem operasi akan melalui serangkaian keadaan yang merupakan bagian dari aktivitasnya. Keadaan proses ini disebut sebagai status proses yang terdiri dari:
  1. Status New yaitu status dimana proses sedang dibuat.
  2. Status Ready yaitu status dimana proses siap dieksekusi tetapi CPU mengerjakan proses lain.
  3. Status Waiting yaitu status dimana proses sedang menunggu suatu kejadian menunggu operasi I/O selesai, menunggu signal dari proses lain, tersedianya
  4. Status Running yaitu status dimana proses dieksekusi. Pada status ini instruksi – instruksi pada proses.
  5. Status Terminated yaitu status dimana proses diakhiri. Kelima status proses tersebut dapat digambarkan pada diagram berikut: 
Sebuah proses menjadi Waiting karena proses tersebut menunggu suatu kejadian tertentu seperti selesainya operasi I/O, misalnya perekaman data ke disk karena pada saat perekaman dilakukan proses sedang tidak menggunakan CPU maka scheduler segera mengalokasikan CPU ke proses lain yang telah Ready. Apabila kejadian yang ditunggu telah selesai maka proses dipindahkan kembali ke antrian Ready dan siap dijadwalkan. 
    Sebuah proses dari keadaan Running dapat menjadi Ready kembali karena diinterupsi oleh proses lain. Interupsi dapat disebabkan karena jatah waktu yang diberikan CPU ke proses tersebut telah habis sementara proses masih memerlukan sejumlah waktu untuk selesai. Jatah waktu yang diberikan sering disebut sebagai quantum time (time slice) yang dapat berkisar antara 1 hingga 100 milidetik. Interupsi suatu proses terkait erat dengan strategi penjadwalan proses yang digunakan sistem operasi yaitu strategi preemptive dimana suatu proses dapat saja disela oleh proses lain pada saat Running.

    Sebuah proses menjadi Terminated disebabkan oleh beberapa hal diantaranya:
      1. Proses memang sudah sele sai mengerjakan tugasnya, sehingga diakhiri secara normal
      2. Melewati batas waktu yang telah diberikan.New Ready Running Terminated Waiting
      3. Terjadi kesalahan perhitungan misalnya mengerjakan instruksi pembagian dengan nol (division by zero) , atau menyimpan angka yang lebih besar daripada yang dapat diakomodasi oleh perangkat keras.
      4. Terjadi kegagalan I/O seperti kegagalan pembacaan dan penulisan file.
      5. Proses induknya berakhir, pada kasus ini suatu proses dibuat oleh proses lain, proses pembuat disebut sebagai parent, sedangkan proses yang dibuat disebut sebagai child . Sistem dirancang untuk mengakhiri secara otomatis proses – proses childnya bila proses parent berakhir.
      6. Proses child diakhiri atas permintaan proses parentnya. Pada kasus ini parent mengirim signal tertentu untuk mengakhiri childnya misalnya mengirim signal SIGQUIT, SIGKILL atau SIGTERM.

      Proses pembuatan penghentian proses (termasuk switching-nya) pada so Windows

      Pembuatan Proses:

      – Memberikan suatu pengenal proses unik
      – Mengalokasikan ruang bagi proses tersebut
      – Menginisialisasi process control block
      – Men-setup linkage yang tepat
      – Membuat dan meng-expand struktur data lain

      Proses Switching :
      process switching muncul terkait adanya Event yang memicu terjadinya process switch yang mebedakan antara swithing modus dan proses sehingga apa saja yang harus dilakukan SO terhadap berbagai struktur data di bawah kontrolnya untuk mencapai suatu process switch.

      Suatu process switch dapat terjadi kapapun SO memperoleh kontrol dari proses yang sedang (currently) berjalan. Event yang mungkin memberikan SO kontrol adalah

      Langkah-langkah dalam process switch:

      1. Simpan context dari processor termasuk program counter (PC) & register lain
      2. Update process control block (PCB) dari proses yang saat terkini dalam status Running
      3. Pindahkan PCB ke antrian yang tepat ready; blocked; ready/suspend
      4. Pilih proses lain untuk dieksekusi
      5. Update PCB dari proses terpilih
      6. Update struktur data memory management
      7. Restore (kembalikan) context dari proses terpilih

      Proses pembuatan penghentian proses (termasuk switching-nya) pada so Linux

      Proses dalam Linux merupakan sekumpulan struktur data yang menyediakan SO dengan semua informasi yang diperlukan untuk mengelola & mendispatch proses.Pembuatan proses dilakukan oleh system call kernel bernama fork( ).
      Ini menyebabkan SO, dalam modus kernel, untuk:

      1. Mengalokasi suatu slot dalam tabel proses untuk proses baru tersebut.
      2. Memberikan suatu process-ID unik untuk proses anak.
      3. Menyalin process image dari proses induk,dengan pengecualian suatu shared memory.
      4. Naikkan counter terhadap file yang dimiliki oleh induk (parent) untuk mencerminkan bahwa suatu proses tambahan sekarang juga memiliki file-file tersebut.
      5. Lewatkan proses anak dari status Ready ke Run.
      6. Kembalikan nomor ID dari anak ke proses induk, dan nilai 0 ke proses anak.

      Setelah membuat proses, Kernel dapat melakukan salah satu berikut, sebagai bagian dari rutin dispatcher:
      – Tetap pada proses induk.
      – Mentransfer kontrol ke proses anak
      – Mentransfer kontrol ke proses yang lain

      Proses Switching :

      process switching muncul terkait adanya Event yang memicu terjadinya process switch yang membedakan antara swithing modus dan proses sehingga apa saja yang harus dilakukan SO terhadap berbagai struktur data di bawah kontrolnya untuk mencapai suatu process switch.

      2. Fungsi dan Perintah dalam Linux
          Perintah top digunakan untuk menampilka proses pada CPU. Perintah ini bisa digunakan untuk menampilkan proses dan penggunaan resource yang paling aktif. Contohnya :
          Perintah grep digunakan untuk menampilkan string yang sesuai dengan input yang berasal dari perintah lainnya. Contoh :

          Perintah cat digunakan untuk menampilkan isi berkas. Contoh :


          3.Alasan Pembuatan dan Penghentian Proses 
          1. Pembuatan Proses
          2. Terdapat batch-job baru

          Sistem operasi dengan kendali batch-job, setelah menciptakan proses baru, kemudian melanjutkan membaca job selanjutnya. 
          1. Satu pemakai interaktif log-on
            Seorang pemakai pada satu terminal sedang melakukan log-on system. 
            1. Sistem operasi menciptakan proses untuk memberi layanan
              Sistem operasi menciptakan proses untuk memenuhi satu fungsi pada program pemakai, tanpa mengharuskan pemakai menunggu. 
              1. Proses menciptakan proses anak
                Untuk mencapai modularitas atau mengeksploitasi kongkurensi, program pemakai memerintahkan pembuatan sejumlah proses. 
                1. Penghentian proses
                2. Selesainya proses secara normal
                  Proses mengeksekusi panggilan layanan Sistem Operasi untuk menandakan bahwa proses telah berjalan secara lengkap 
                  1. 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 (wall clock time), jumlah waktu yang dipakai untuk eksekusi, dan jumlah waktu sejak pemakai terakhir kali memberi masukan (pada proses interaktif). 
                    1. Memori tidak tersedia
                      Proses memerlukan memori lebih banyak daripada yang disediakan sistem. 
                      1. Pelanggaran terhadap batas memori
                        Proses mencoba mengakses lokasi memori yang tidak diizinkan diakses oleh proses itu. Proses melanggar keamanan sistem. 
                        1. Terjadi kesalahan karena pelanggaran proteksi
                          Proses berusaha menggunakan sumber daya atau file yang tidak diizinkan dipakainya, atau proses mencoba menggunakannya tidak untuk peruntukannya, seperti menulis file read-only. Proses melanggar keamanan system. 
                          1. Terjadi kesalahan aritmatika
                            Proses mencoba perhitungan terlarang, seperti pembagian dengan nol, atau mencoba menyimpan angka lebih besar daripada yang dapat diakomodasi perangkar keras. 
                            1. Waktu telah kadaluwarsa
                              Proses telah menunggu lebih lama daripada lama maksimum yang ditentukan untuk suatu kejadian tertentu. 
                              1. Terjadi kegagalan masukan/keluaran
                                Kesalahan muncul pada masukan atau keluaran, seperti ketidakmampuan menemukan file, kegagalan membaca atau menulis setelah sejumlah maksimum percobaan (ketika, misalnya area rusak terjadi pada tape, atau operasi tidak sah seperti membaca dari line printer) 
                                1. Instruksi yang tak benar
                                  Proses berusaha mengeksekusi instruksi yang tidak ada (sering sebagai akibat percabangan ke daerah data dan berusaha melakukan eksekusi data itu). 
                                  1. Terjadi usaha memakai instruksi yang tak diijinkan
                                    Proses berusaha menggunakan instruksi yang disimpan untuk system operasi. 
                                    1. Kesalahan penggunaan data
                                      Bagian data adalah tipe yang salah atau tidak diinisialisasi. 
                                      1. Diintervensi oleh sistem operasi atau operator
                                        Untuk suatu alasan, operator atau sistem operasi mengakhiri proses (misalnya, jka terdapat deadlock). 
                                        1. Berakhirnya proses induk
                                          Ketika proses induk berakhir. Pada sistem operasi yang dirancang untuk secara otomatis mengakhiri semua anak proses dari proses induk. 
                                          1. Atas permintaan proses induk
                                            Proses induk umumya mempunyai otoritas mengakhiri proses anaknya.

                                            4.  Proses lima status dan kemungkinan Transisinya
                                            proses baru akan masuk lewat pos New kemudian masuk pada pos Ready untuk antri giliran panggilan proses oleh Dispatch setelah dipanggil Dispatch akan diproses pasa pos Running bila waktu giliran habis namun proses belum selesai maka proses akan menuju pos Blocked untuk menunggu giliran masuk pos Ready untuk menyelesaikan sisa proses bila proses selesai sebelum waktu giliran habis maka proses akan keluar melalui pos exit dan akan diganti proses berikutnya


                                             

                                            5. Dua Status Suspended
                                            Bila diamati dari diagram bloknya kita bisa menarik kepahaman bahwa dengan diberlakukannya 2suspend akan mengoptimalkan kerja processor karena control dan seleksi proses yang dieksekusi dapat dilakukan dengan baik sehingga processor hanya mengeksekusi proses yang benar-benar memiliki prioritas tinggi dan juga memmbuang proses yang sekiranya bermasalah. Dengan 2suspend juga bermanfaat Proses dapat dieksekusi secara periodik (misal, sistem monitoring sistem atau accounting) & boleh di-suspend selama menunggu waktu berikutnya, Proses induk berkeinginan men-suspend eksekusdari suatu urunan untuk menguji atau mengubah proses turunan tersebut atau mengkoordinasikan aktifitas dari berbagai keturunannya.

                                            6. Elemen-elemen dari PCB
                                            1. Identifikasi Proses 
                                            1. Identifier
                                            Identifier yang meliputi:
                                            1. Identifier proses
                                            2. Identifier proses yang menciptakan
                                            3. Identifier pemakai
                                            2. Informasi Status Pemproses 
                                            1. Register-register yang terlihat pemakai
                                            Register-register yang dapat ditunjuk intruksi bahasa assembly untuk diolah pemroses 
                                            1. Register-register kendali dan status
                                            Register-register untuk mengendalikan operasi pemroses, antara lain
                                            1. Program counter
                                            2. PSW
                                            3. Dan sebagainya 






                                              Pointer Stack
                                            Proses mempunyasatu stack atau lebih. Stack digunakan untuk parameter atau alamat prosedur pemanggil dan system call. Stack pointer menunjuk posisi paling atas dari stack.
                                            3. Informasi Kendali Proses
                                            1. Informasi Penjadwalan dan Status
                                            Informasi-informasi untuk fungsi penjadwalan,antara lain:
                                            1. Status proses
                                            2. Mendefinisikan keadaan/state proses (Running, Ready, Blocked,dsb.)
                                            3. Informasi berkaitan dengan penjadwalan
                                            Berkaitan dengan informasi penjadwalan seperti lama menunggu, lama proses terakhir dieksekusi, dsb.
                                            Prioritas : Menjelaskan prioritas proses\
                                            Kejadian : Identitas kejadian yang ditunggu proses 

                                            Penstrukturan data
                                            Satu proses dapat dikaitkan dengan proses lain dalam satu antrian atau ring, atau struktur lain. PCB harus memiliki pointer untuk mendukung struktur ini. 
                                            Komunikasi Antarproses
                                            Beragam flag, sinyal dan pesan dapat diasosiasikan dengan komunikasi antara dua proses yang terpisah. Informasi ini disimpandalam PCB. 
                                            Kewenangan proses
                                            Proses dapat mempunyai kewenangan berkaitan dengan memori dan tipe instruksi yang dapat dijalankan 
                                            Manajemen memori
                                            Bagian ini berisi pointer ke tabel segmen atau page yang menyatakan memori maya (virtual memory) dari proses. 
                                            Kepemilikan dan utilisasi sumber daya
                                            Sumber daya yang dikendalikan proses harus diberi tanda, misalnya:
                                            1. File yang dibuka
                                            2. Pemakaian pemroses
                                            3. Pemakaian sumber daya lain
                                            4. Informasi ini diperlukan oleh penjadwal

                                            9 comments:

                                            Komentar kamu apa?