Tugas Sistem Operasi Pertemuan 3

Friday, March 26, 2010

Proses SO Linux

Sebuah proses adalah konteks dasar dimana semua permintaan user dilayani sistem operasi. Agar menjadi kompatibel dengan sistem UNIX lainnya, Linux harus menggunakan model proses yang sama dengan sistem UNIX lainnya.
Prinsip dasar dari manajemen proses UNIX adalah memisahkan dua operasi untuk membuat proses dan menjalankan program baru. Proses baru dibuat dengan fungsi fork(), sedangkan program baru dijalankan setelah memanggil fungsi exec(). Model seperti ini memiliki kelebihan yaitu kesederhanaan dibanding harus menetapkan setiap detail dari lingkungan program baru dalam system call yang menjalankan program tersebut. Program baru dengan mudah berjalan dalam lingkungannya sendiri. Jika proses induk mengharapkan untuk memodifikasi lingkungan dimana program baru berjalan, dia bisa melakukan fork dan tetap menjalankan program asli dalam proses anak. Membuat beberapa system call membutuhkan modifikasi proses anak sebelum akhirnya mengeksekusi program baru. Setiap proses memiliki identitas proses yang isinya berupa:



  1. PID : PIDs digunakan untuk menetapkan proses ke sistem operasi ketika sebuah aplikasi membuat System call untuk sinyal, modifikasi, atau menunggu proses lain



  2. Credentials : Setiap proses harus memiliki hubungan antara user ID dengan group ID yang menentukan hak sebuah proses untuk mengakses sumberdaya sistem dan file



  3. Personality : Dapat sedikit memodifikasi semantics of system calls.


Proses berjalan melalui perintah-perintah yang ada dalam shell. Satu baris perintah dalam shell terkadang mampu mempengaruhi lebih dari satu proses, khususnya jika terdapat perintah pipe.
Contoh:
nroff -man ps.1 | grep kill | more
perintah ini melakukan tiga proses, satu proses untuk setiap perintahnya. Ada beberapa tipe proses dalam Linux . Setiap proses mempunyai kekhususan dan atribut tersendiri.:



  • Interactive processes: Proses yang dimulai (dan dikontrol oleh) shell. Bisa tampak diluar (foreground) ataupun hanya didalam (background).



  • Batch processes: Proses yang tidak berhubungan dengan terminal tetapi menunggu untuk dieksekusi secara sequent.



  • Daemon processes: Proses yang dimulai ketika Linux booting dan berjalan secara background.
    Cara termudah untuk mengetahui proses apa yang sedang berjalan pada sistem adalah menggunakan perintah ps (process status). Perintah ps mempunyai beberapa option dan argumen, tersedia untuk seluruh user dan root, walau tentu hasilnya akan berbeda tergantung login anda. Jika anda login sebagai user biasa (bukan root), jika perintah ps ditulis akan tampak hasil seperti:
$ ps
PID TTY STAT TIME COMMAND
41 v01 S 0:00 -bash
134 v01 R 0:00 ps



Proses SO Windows
Prosesor mengeksekusi program-program komputer. Prosesor adalah sebuah chip dalam sistem komputer yang menjalankan instruksi-instruksi program komputer. Dalam setiap detiknya prosesor dapat menjalankan jutaan instruksi.
Program adalah sederetan instruksi yang diberikan kepada suatu komputer. Sedangkan proses adalah suatu bagian dari program yang berada pada status tertentu dalam rangkaian eksekusinya. Di dalam bahasan Sistem Operasi, kita lebih sering membahas proses dibandingkan dengan program. Pada Sistem Operasi modern, pada satu saat tidak seluruh program dimuat dalam memori, tetapi hanya satu bagian saja dari program tersebut. Sedangkan bagian lain dari program tersebut tetap beristirahat di media penyimpan disk. Hanya pada saat dibutuhkan saja, bagian dari program tersebut dimuat di memory dan dieksekusi oleh prosesor. Hal ini sangat menghemat pemakaian memori.
Beberapa sistem hanya menjalankan satu proses tunggal dalam satu waktu, sedangkan yang lainnya menjalankan multi-proses dalam satu waktu. Padahal sebagian besar sistem komputer hanya memiliki satu prosesor, dan sebuah prosesor hanya dapat menjalankan satu instruksi dalam satu waktu. Maka bagaimana sebuah sistem prosesor tunggal dapat menjalankan multi-proses? Sesungguhnya pada granularity yang sangat kecil, prosesor hanya menjalankan satu proses dalam satu waktu, kemudian secara cepat ia berpindah menjalankan proses lainnya, dan seterusnya. Sehingga bagi penglihatan dan perasaan pengguna manusia, seakan-akan prosesor menjalankan beberapa proses secara bersamaan.
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).
Status Proses
Jenis status yang mungkin dapat disematkan pada suatu proses pada setiap sistem operasi dapat berbeda-beda. Tetapi paling tidak ada 3 macam status yang umum, yaitu:



  1. Ready, yaitu status dimana proses siap untuk dieksekusi pada giliran berikutnya



  2. Running, yaitu status dimana saat ini proses sedang dieksekusi oleh prosesor



  3. Blocked, yaitu status dimana proses tidak dapat dijalankan pada saat prosesor siap/bebas

Fungsi dan penggunaan perintah Top, Grep, dan Cat.



  • Top
Fungsi : Menampilkan semua task dan proses pada linux yang diupdate secara berkala. (mirip task manager di Windows).
option :
top [ENTER]



  1. n atau # : untuk membatasi jumlah tampilan task perbaris



  2. s atau d untuk mengubah delay (interval waktu update) dari tampilan task.



  3. q untuk keluar



  4. o untuk mengubah tabel yang ada.



  5. k untuk kill proses, masukan pid dan signal proses
(15) SIGTERM
(9) SIGKILL 
6. i tidak menghiraukan proses yang sengan diam (idle) dan zombie proses.



  1. r renice proses (memasukan nilai nice kembali) (non root: nilai harus lebih besar) root sebaliknya harus lebih kecil. Nice value mengatur prioritas program dijalankan. Semakin besar nilai nice maka prioritasnya semakin kecil.
Contoh : top -d 3, perintah ini akan menghasilkan :




  • Grep 
    Global regular expresion parse atau grep adalah perintah untuk mencari file-file yang mengandung teks dengan kriteria yang telah Anda tentukan.
    Contoh : Misalnya akan dicari file-file yang mengandung teks marginal di current direktori
    $ grep marginal  
    diferent.doc: Catatan: perkataan marginal luas dipergunakan di dalam ilmu  ekonomi
    prob.rtf: oleh fungsi hasil marginal dan fungsi biaya marginal jika fungsi
    prob.rtf: jika biaya marginal dan hasil marginal diketahui maka biaya total
    
    



  • Cat
    Fungsi : Menampilkan isi dari sebuah file di layar.
    Contoh :

Alasan Pembuatan dan Penghentian Proses



  • Pembuatan Proses :
    Berikut beberapa alasan pembuatan Proses:
    Alasan Pembuatan
    Penjelasan
    Terdapat Batch-job baru
    Sistem operasi dengan kendali batc-job, setelah menciptakan proses baru, kemudian melanjutkan membaca job selanjutnya.
    Satu pemakai interaktif Log In
    Seorang pemakai pada satu terminal sedang melakukan log in 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 anak
    Untuk mencapai modularitas atau mengeksploitasi kongkurensi, program pemakai memerintahkan pembuatan sejumlah proses
  • Penghentian Proses :
Alasan Penghentian
Penjelasan
Selesainya proses secara normal
Proses mengeksekusi panggilan layanan Sistem Operasi unutk menandakan bahwa proses telah berjalan secara lengkap.
Memori tidak tersedia
Proses memerlukan memori lebih banyak dari pada yang dapat disediakan sistem.
Error Proteksi
Proses berusaha menggunakan sumber daya atau file yang tidak diizinkan dipakainya, atau proses mencoba menggunakan tidak untuk peruntukannya. Proses melanggar keamanan sistem.
Interverensi Operator atau SO
Untuk suatu alasan, operator / sistem operasi mengakhiri proses.

Model Proses Lima Status Beserta Kemungkinan Transisi


Dalam Gambar diagram diatas terdapat :
  • Running: Proses yang sedang dieksekusi. Untuk bab ini, kita akan menganggap komputer dengan prosesor tunggal, sehingga paling banyak satu proses pada suatu waktu dapat berada dalam keadaan ini.
  • Ready: Sebuah proses yang siap untuk mengeksekusi ketika diberi kesempatan.
  • Terblokir / Menunggu: 4 Sebuah proses yang tidak dapat menjalankan sampai suatu peristiwa terjadi, seperti sebagai penyelesaian I / O operasi.
  • Baru: Sebuah proses yang baru saja dibuat tetapi belum diterima di renang dari proses eksekusi oleh OS. Biasanya, proses baru belum telah dimuat ke memori utama, meskipun blok kontrol proses telah diciptakan.
  • Keluar: Sebuah proses yang telah dilepaskan dari proses eksekusi kolam oleh OS, baik karena berhenti atau karena itu dibatalkan karena beberapa alasan.
Kemungkinan Transisi pada model lima status, adalah sebagai berikut:
  • Null > Baru: Sebuah proses baru dibuat untuk menjalankan sebuah program.
  • New > Ready: Α OS akan memindahkan proses dari negara Baru Ready negara ketika siap untuk menghadapi proses tambahan. Kebanyakan sistem ditetapkan beberapa membatasi berdasarkan jumlah proses yang ada atau jumlah virtual memori berkomitmen untuk proses yang ada. Batas ini menjamin bahwa tidak ada begitu banyak proses aktif untuk menurunkan kinerja.
  • Ready > Menjalankan: Ketika saatnya untuk memilih suatu proses untuk menjalankan, OS memilih salah satu proses dalam keadaan Ready. Ini adalah tugas dari penjadwal atau dis - Patcher. Penjadwalan ini dibahas dalam Bagian Keempat.
  • Menjalankan > Keluar: proses yang sedang berjalan dihentikan oleh OS jika menunjukkan bahwa proses telah selesai, atau jika Aborts.
  • Menjalankan > Ready: Alasan paling umum untuk transisi ini adalah bahwa menjalankan proses telah mencapai waktu maksimum yang diperbolehkan untuk tidak terganggu pelaksanaan, hampir semua sistem operasi multiprogramming memaksakan jenis ini disiplin waktu. Ada beberapa alternatif lain penyebab transisi ini, yang tidak diterapkan di semua sistem operasi. Sangat penting adalah kasus di mana OS menetapkan tingkat prioritas yang berbeda ke berbagai proses. Anggaplah, misalnya, bahwa proses A berjalan pada prioritas tertentu tingkat, dan proses B, pada tingkat prioritas yang lebih tinggi, akan diblokir. Jika OS belajar bahwa acara pada proses B yang telah menunggu telah terjadi, bergerak B ke sebuah keadaan siap, maka proses itu dapat mengganggu proses pengiriman A dan B. Kita mengatakan bahwa OS memiliki proses mendahului A.6 Akhirnya, sebuah proses mungkin secara sukarela melepaskan kontrol prosesor. Contohnya adalah proses latar belakang yang melakukan beberapa fungsi akuntansi atau pemeliharaan berkala.
  • Menjalankan > terblokir: Sebuah proses ditempatkan di negara Blokir jika permintaan beberapa hal yang harus menunggu. Permintaan untuk OS biasanya dalam bentuk panggilan layanan sistem, yaitu panggilan dari program menjalankan prosedur yang adalah bagian dari sistem operasi kode. Sebagai contoh, sebuah proses dapat meminta ser - wakil dari OS bahwa OS tidak siap untuk melakukan segera. Dapat meminta sumber daya, seperti file atau bagian berbagi memori virtual, yaitu tidak segera tersedia. Atau proses dapat memulai suatu tindakan, seperti I / O operasi, yang harus diselesaikan sebelum proses dapat dilanjutkan. Kapan proses berkomunikasi satu sama lain, suatu proses dapat diblokir bila menunggu proses lain untuk menyediakan data atau menunggu pesan dari proses lain.
  • Diblokir > Ready: Sebuah proses di negara Blokir pindah ke negara Ready saat acara yang telah menunggu terjadi.
  • Ready > Keluar: Untuk lebih jelasnya, transisi ini tidak ditampilkan pada diagram negara. Di beberapa sistem, orangtua dapat menghentikan proses anak setiap saat. Juga, jika seorang orangtua berakhir, semua proses anak yang terkait dengan orangtua mungkin akan dihentikan.
  • Diblokir > Keluar: Komentar di bawah item sebelumnya berlaku.


Model Proses Dua Status

Ada dua konsep independen dalam diagram ini: apakah suatu proses yang menunggu pada sebuah peristiwa (diblokir atau tidak) dan apakah suatu proses telah bertukar dari memori utama (ditangguhkan atau tidak). Untuk mengakomodasi 2 x 2 kombinasi, kita perlu empat negara bagian:
  • Ready: Proses ini dalam memori utama dan tersedia untuk eksekusi.
  • Blocked: Proses ini dalam memori utama dan menunggu sebuah peristiwa.
  • Terblokir / Suspend: Proses ini dalam memori sekunder dan menunggu sebuah peristiwa.
  • Ready / Suspend: Proses ini dalam memori sekunder tetapi tersedia untuk eksekusi segera setelah di-load ke memori utama.
Kemungkinan terjadinya transisi pada model ini adalah sebagai berikut:
  • Terblokir > Diblokir / Suspend: Jika tidak ada proses siap, maka setidaknya satu proses diblokir swap keluar untuk memberikan ruang bagi proses lain yang tidak diblokir. Transisi ini dapat dibuat bahkan jika ada proses siap tersedia, jika OS menentukan bahwa proses yang sedang berjalan atau proses siap yang ingin mengirimkan lebih membutuhkan memori utama untuk mempertahankan performa yang memadai.
  • Terblokir / Suspend > Ready / Suspend: Sebuah proses di Blokir / Suspend negara tersebut akan dipindahkan ke Ready / Suspend keadaan ketika peristiwa yang telah menunggu terjadi. Catatan bahwa ini bahwa negara memerlukan informasi mengenai proses ditangguhkan harus dapat diakses oleh OS.
  • Siap / Suspend > Ready: Ketika tidak ada proses siap dalam memori utama, sistem operasi perlu untuk membawa satu di untuk melanjutkan eksekusi. Selain itu, mungkin kasus bahwa proses Ready / Suspend negara memiliki prioritas lebih tinggi daripada proses di negara Ready. Dalam hal ini, perancang sistem operasi dapat menentukan bahwa lebih penting untuk mendapatkan prioritas yang lebih tinggi daripada untuk meminimalkan proses swapping.
  • Siap > Ready / Suspend: Biasanya, sistem operasi lebih memilih untuk menunda proses yang diblokir bukan siap satu, karena proses siap sekarang dapat dijalankan, sedangkan proses diblokir mengambil ruang memori utama dan tidak dapat dieksekusi. Namun, mungkin perlu untuk menangguhkan proses siap jika itu adalah satu-satunya cara untuk membebaskan blok yang cukup besar dari memori utama. Juga, OS dapat memilih untuk menunda-prioritas yang lebih rendah proses siap daripada prioritas yang lebih tinggi-proses diblokir jika mereka percaya bahwa proses yang diblokir akan segera siap.


    Beberapa transisi lain yang perlu dipertimbangkan adalah sebagai berikut:
  • New > Ready / Suspend dan New > Ready: Ketika sebuah proses baru dibuat, maka dapat ditambahkan ke antrian Siap atau Ready / Suspend antrian. Dalam kedua kasus, sistem operasi harus membuat blok kontrol proses dan mengalokasikan ruang alamat proses. Mungkin lebih baik bagi OS untuk melakukan hal ini menjaga rumah-tugas-tugas pada waktu awal, sehingga dapat menjaga proses kolam besar yang tidak diblokir. Dengan strategi ini, ada sering tidak cukup ruang dalam memori utama untuk proses baru; maka penggunaan (S Baru Siap / Suspend) transisi. Di sisi lain, kita dapat berargumentasi bahwa adil-in-time proses menciptakan filosofi selarut mungkin mengurangi overhead dan memungkinkan OS bahwa OS untuk melakukan proses tugas-tugas penciptaan pada saat sistem yang tersumbat dengan proses diblokir pula.
    Blocked / Suspend > Diblokir: Pencantuman transisi ini mungkin tampak desain miskin. Lagi pula, jika suatu proses yang belum siap untuk melaksanakan dan tidak sudah ada dalam memori utama, apa gunanya membawa di mana? Tetapi pertimbangkan skenario berikut: Sebuah proses berakhir, membebaskan sebagian memori utama. Ada sebuah proses dalam (Diblokir / Suspend) antrian dengan prioritas yang lebih tinggi daripada salah satu proses dalam (Ready / Suspend) antrian dan OS mempunyai alasan untuk percaya bahwa peristiwa pemblokiran untuk proses yang akan terjadi segera. Dalam keadaan ini, tampaknya masuk akal untuk membawa proses yang diblokir ke memori utama di dalam preferensi untuk proses siap.
  • Menjalankan > Ready / Suspend: Biasanya, sebuah proses yang berjalan tersebut akan dipindahkan ke negara Ready ketika alokasi waktu berakhir. Namun, jika OS adalah proses preempting karena proses prioritas lebih tinggi di Blokir / Suspend antrian baru saja menjadi diblokir, OS dapat memindahkan proses berjalan langsung ke (Ready / Suspend) antrian dan bebas beberapa memori utama.
  • Any State > Keluar: Biasanya, suatu proses berakhir ketika sedang berjalan, baik karena telah selesai atau karena kondisi kesalahan fatal. Namun, dalam beberapa sistem operasi, suatu proses dapat dihentikan oleh proses yang menciptakan atau ketika proses orangtua itu sendiri diakhiri. Jika hal ini dibiarkan, maka proses di negara bagian dapat dipindahkan ke negara Keluar.

Elemen – Elemen PCB

Berikut adalah elemen – elemen yang terdapat pada PCB:

Indentifikasi Proses
Identifier
Identifier yang meliputi :
  1. Indentifier proses
  2. Identifier proses yang menciptakan
  3. Identifier pemakai
Informasi Status Pemproses
Register – register yang terlihat pemakai
Register – register yang dapat ditunjuk instruksi bahasa assembly untuk diolah pemroses
Register – register kendali dan status
Register untuk mengendalikan operasi pemroses, antara lain:
  1. Program Counter
  2. PSW
  3. dan sebagainya
Pointer Stack
Proses mempunyai satu stack atau lebih. Stack digunakan untuk parameter atau alamat prosedure 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
  • Informasi berkaitan dengan penjadwalan
  • Kejadian
Penstrukturan Data
Satu proses dapat dikaitkan dengan proses lain dalam satu antrian atau ring, atau struktur lain. Informasi ini disimpan dalam PCB.
Komunikasi Antarproses
Beragam flag, sinyal dan pesan dapat di asosiasikan dengan komunikasi antar 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 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.

0 comments:

Post a Comment