PROSES
3.1 Deskriptif proses
Nama lain dari proses adalah task, proses atau task adalah entitas dinamis. Proses juga merupakan konsep pokok sistem operasi. Konsep ini pertama kali digunakan disistem operasi Multics tahun 1960-an. Tema utama perancangan sistem operasi semuanya berkaitan dengan manajemen proses. Manajemen proses merupakan pembahasan sentral dari sistem operasi.
Proses juga bisa diartikan dengan program yang sedang dieksekusi. Proses ini merupakan unit kerja terkecil yang secara individu memiliki sumber daya sumber daya dan merupakan unit terkecil yang dijadwalkan oleh sistem operasi. Sistem operasi mengelola semua proses di sistemdan mengalokasikan sumber daya keproses proses sesuai kebijaksanaan untuk memenuhi sasaran sistem. Abstraksi proses merupakan hal mendasar dalam manajemen proses-proses konkuren yang berjalan disana.
MULTIPROGRAMMING (MULTITASKING)
Multiprogramming (multitasting) adalah manajemen banyak proses disatu pemroses.
Kebanyakan komputer sekarang, workstation adalah sistem proses tunggal yang menjalankan sistem operasi multiprogramming (multitasting) seperti MS windows 98, MS-Windows NT , MS-Windows XP, OS/2 dan Mancintosh System 7.
Proses-proses yang dijalankan disistem multiprogramming sebenernya bersifat sebagai berikut:
· Saling tidak bergantung (independent)
· Satu program pada satu saat (one program at any instant)
Saling tidak bergantung (independent)
Proses sebagai terpisah dari lainnya dan tidak saling mempengaruhi
Satu program pada satu saat (one program at any instant)
Pada satu saat sesungguhnya hanya satu proses yang dilayani pemroses, menggunakan interleave bukan overlap diantara program-program.
MULTIPROCESSING
Multiprocessing adalah manajemen banyak proses dikomputer multiprocessor (banyak pemroses didalamnya). Dulunya multiprocessor hanya terdapat disistem besar yaitu sistem mainframe dan mainkomputer. Saat ini komputer workstation pun telah dapat dilengkapi multiprocessor. Multiprocessor dimaksudkan untuk peningkatan kinerja dan Dapat memberikan kemampuan fault tolerant.
Sistem Operasi Microsoft Windows NT , UNIX , Linux telah menyediakan dukunganmultiprocessing.
DISTRIBUTED PROCESSING
Distributed processing adalah manajemen banyak proses yang dieksekusi di banyak sistem komputer yang tersebar (terdistribusi) disatu jaringan. Pada sistem operasi tersebar yang ideal, pemrograman tidak perlu menyadari keberadaan banyak pemroses. Kecenderungan masa datang adalah menuju komputasi tersebar (distributed processing). Banyak riset dan pengembang sistem operasi tersebar antaranya AMOEBA , MACH , dan sebagainya.
3.1.2 Kebutuhan Utama Pengendalian Proses
Kebutuhan utama pengendalian proses oleh sistem operasi dapat dinyatakan dengan mengacu keproses, yaitu [STA_95]
Interleave (saling melanjutkan)
Sistem operasi harus melakukan interleave (saling melanjutkan) eksekusi proses-proses untuk memaksimumkan penggunaan pemroses sambil masih memberi waktu tanggap yang memadai.
Mengikuti kebijaksanaan tertentu
Sistem operasi harus mengalokasikan sumber daya –sumber daya ke proses-proses mengikuti kebijaksanaan ditentukan (misalnya fungsi atau aplikasi tertentu mempunyai prioritas lebih tinggi) sambil menghindari deadlock.
Mendukung komunikasi antarproses dan penciptaan proses
Sistem operasi perlu mendukung komunikasi antarproses dan penciptaan proses oleh pemakai sehingga membantu menstrukturkan aplikasi.
3.2 Diagram state proses
Proses melewati serangkaian state diskrit. Beragam kejadian dapat menyebabkan perubahan / berpindahnya state proses.
3.2.1 Diagram State Dasar (Tiga Keadaan)
Proses dapat berada disalah satu dari tiga state dasar.
RUNNING : Pemroses sendang mengeksekusi instruksi proses itu
READY : Proses siap ready dieksekusi tapi diproses tidak mengeksekusi proses ini
BLOCKED :
· Selesainya operasi perangkat masukan / keluaran
· Tersedianya memori
· Tibanya pesan jawaban
· Dll
3.2.2 Proses Control block (PCB)
Sistem operasi memerlukan banyak informasi mengenai proses untuk dapat melakukan pengolahan proses secara benar. Informasi ini berada distruktur data PCB. Struktur data PCB menyimpan informasi yang hidup semua proses disistem. Sistem operasi mempunyai tabel PCB dimana masing-masing isisan adalah PCB yang mendeskripsikan proses secara lengkap.
Informasi Identifikasi Proses
Menunjukkan Elemen-elemen PCB
IDENTIFIKASI PROSES
Identifier meliputi :
· Identifier proses
· Identifier proses yang menciptakan
· Identifier pemakai
INFORMASI STATUS PEMPROSES
Register-register yang terlihat pemakai
Register-register yang dapat ditunjukan instruksi bahasa assembly untuk diolah pemroses
Register-register kendali dan status
· Program counter
· PSW
· Dan sebagainya
Pointer Stack
Proses mempunyai satu stack atau lebih. Stack digunakan untuk parameter atau alamat prosedur pemanggil dan system call. Stack pointer menunjuk posisi paling atas dari stack.
INFORMASI KENDALI PROSES
Informasi Penjadwalan dan Status
Informasi-informasi untuk fungsi penjadwalan, antara lain:
· Status proses
· Mendefinisikan keadaan / state proses (running, ready, blocked,dsb)
· Prioritas
· Menjelaskan prioritas proses
· Informasi berkaitan dengan penjadwalan
· Berkaitan dengan informasi penjadwalan seperti lama menunggu, lama proses terakhir dieksekusi, dsb
· Kejadian identitas yang ditunggu prosesnya
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 disimpan dalam 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 :
· File yang dibuka
· Pemakaian pemroses
· Pemakaian sumber daya lain
Informasi ini diperlukan oleh penjadwal
Informasi Status Pemroses
Informasi status pemroses berisi informasi-informasi yang esensinya merupakan nilai/isi dari 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. Jumlah dari dapat dikembalikan saat proses dieksekusi kembali. Jumlah dan ragam register yang terlibat bergantung arsitektur komputer.
Informasi Kendali Proses
Informasi kendali proses adalah informasi-informasi yang diperlukan sistem operasi untuk mengendalikan dan koordinasi beragam proses aktif.
Citra proses (process image) adalah ruang memori yang ditempati oleh proses. Citra proses mempunyai struktur berisi PCB, stack pemakai (user stack), ruang alamat proses eksklusif dan ruang alamat yang dipakai bersama proses lain.
3.2.3 Operasi-operasi pada Proses
Sistem operasi dalam mengelola proses dapat melakukan operasi-operasi terhadap proses. Operasi-operasi yang dapat dilakukan terhadap proses diantaranya : [DEI-90]
· 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
Penciptaan Proses
Penciptaan proses melibatkan banyak aktivitas, yaitu:
· Menamai (memberi identitas) proses yang akan diciptakan dengan proses id
· Menyisipkan proses pada senarai proses atau tabel proses
· Menentukan prioritas awal proses
· Menciptakan PCB
· Mengalokasikan sumber daya-sumber daya awal bagi proses
Ketika proses baru ditambah, sistem operasi membangun struktur data untuk mengelola dan alokasi ruang alamat proses itu.
Kejadian yang dapat menyebabkan penciptaan proses, antara lain : [STA-95]
1. Pada lingkungan batch, sebagai tanggapan atas pemberian satu kerja (job)
2. Pada lingkungan interaktif , ketika pemakai baru berusaha log in
3. Sebagai tanggapan dari permintaan yang dilakukan aplikasi seperti permintaan pencetakan file, sistem operasi dapat menciptakan proses tersendiri yang akan melakukan pengelolaan pencetakan itu
4. Proses menciptakan proses lain (proses anak)
Menunjukkan alasan-alasan penciptaan proses
Terdapat batch-job baru : Sistem operasi dengan kendali batch-job, setelah menciptakan proses baru, kemudian melanjutkan membaca job selanjutnya.
Satu pemakai interktif log-in : seorang pemakai pada satu terminal sedang melakukan log-on ke sistem
Sistem operasi menciptakan proses untuk memberi layanan : sistem operasi menciptakan proses untuk memenuhi satu fungsi pada program pemakai tanpa mengharuskan pemakai menunggu
Proses menciptakan proses : untuk mencapai modularitas atau mengeksploitasi kongkurensi, program pemakai memerintahkan pembuatan sejumlah proses.
UNIX
Pada unix, proses baru diciptakan dengan memanggil system call bernama fork, system call fork menciptakan kopian proses pemanggil (induk) yang identik. Setelah panggilan fork, proses induk dapat melanjutkan berjalan bersama proses anak secara paralel. Proses induk dapat kembali melakukan fork untuk menciptakan proses-proses anak yang baru yang lain. Proses-proses anak inipun dapat mengeksekusi fork. Dengan cara ini, di Unix dapat terbentuk pohon hirarki prosos.
Pada linux/unix, sistem operasi menciptakan proses pertama init. Proses init memperoleh id berangka 0. Proses init merupakan moyang pertama dari semua proses yang terdapat disitem linux/unix.
MS-DOS
Di MS-DOS tidak ada system call untuk menciptakan proses. Yang serupa itu adalah proses memuatkan (lood) file biner yang dapat dieksekusi ke memori dan mengeksekusi sebagian proses anak. Berbeda dengan unix, pada MS-DOS, mengeksekusi proses anak berarti menunda (menonaktifkan) proses induk sampai proses anak menyelesaikan eksekusi. Pada MS-DOS, proses induk dan proses anak tidak berjalan secara paralel, hanya satu proses yang berjalan disistem, yaitu proses anak.
Penghancuran Proses
Penghancuran proses melibatkan pembebasan proses dari sistem, yaitu:
· Sumber daya-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 dua pendekatan, yaitu:
· Pada beberapa sistem, proses-proses turunan dari proses induk dihancurkan secara otomatis saat proses induk dihancurkan.
· Beberapa sistem lain menganggap proses anak benar-benar independen dari proses induk sehingga proses anak tidak dihancurkan secara otomatis saat proses induk dihancurkan.