KONSEP PROSES MANAJEMEN MEMORI






KONSEP PROSES
Sistem  operasi  mengeksekusi  berbagai  jenis  program. Pada  sistem  batch program  tersebut  biasanya  disebut  dengan job,  sedangkan  pada  sistem  time  sharing, program  disebut  dengan  program  user  atau task.  Beberapa  buku  teks  menggunakan istilah job atau proses. Proses adalah program yang sedang dieksekusi. Proses adalah unit kerja terkecil yang secara individu memiliki sumber daya dan dijadwalkan oleh sistem operasi. Peran sistem operasi dalam kegiatan proses adalah mengelola semua proses di sistem dan mengalokasikan sumber daya ke proses tersebut. Dalam multiprogramming, teknik penanganan proses adalah dengan mengeksekusi satu proses dan secara cepat beralih ke proses lainnya (bergiliran), sehingga menimbulkan efek paralel semu (pseudoparallelism).

Status Proses
Status proses selalu berubah-ubah selama suatu program dieksekusi atau dijalankan. Beberapa status tersebut ialah :
- New : proses baru diciptakan
- Running : proses sedang dijalankan
- Waiting : proses sedang menunggu suatu kondisi tertentu untuk bisa berjalan. (misalkan menunggu respon dari perangkat I/O)
- Ready : proses menunggu untuk dilayani processor
- terminated : proses telah menyelesaikan eksekusi.


  • Proses berstate running menjadi blocked, karena sumbar 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 karena jatah waktu untuk proses tersebut telah habis (time out).
  • Proses berstate blocked menjadi ready saat sumber daya yang diminta/ diperlukan telah tersedia atau layanan perangkat masukan/keluaran selesai (event occurs).
  • Proses berstate ready menjadi running, karena penjadwal memutuskan penggunaan pemroses utnuk proses itu karena proses yang saat itu running berubah statenya (menjadi ready atau blocked) atau telah menyelesaikan sehingga disingkirkan dari sistem. Proses menjadi mendapatkan jatah pemroses.


Process Control Block (PCB)
Sistem operasi membutuhkan banyak informasi mengenai proses guna pengelolaan proses. Semua informasi ini ada pada PCB. PCB mengandung beberapa informasi seperti berikut :
1. Process State >> berisi informasi status proses. (new,running,waiting,ready,terminated)
2. Program counter >> berisi informasi mengenai alamat instruksi yang akan digunakan selanjutnya.
3. CPU register >> berisi register2 CPU apa saja yang digunakan
4. CPU scheduling information >> berisis penjadwalan proses beserta algoritmanya
5. Memory management information >> berisi informasi tentang berapa jumlah memory yang digunakan, limit register, tabel segment, dll berkenaan dengan penggunaan memory.
6. I/O status information >> berisi informasi tentang perangkat apa saja yang digunakan dalam proses
7. Accounting >> berisi informasi tentang statistik eksekusi proses seperti waktu yang diperlukan, jumlah proses, dll.


Thread
Thread merupakan unit dasar dari penggunaan CPU, yang terdiri dari Thread_ID, program counter,register set,  dan stack. Sebuah thread berbagi code section, data section, dan sumber daya sistem operasi dengan Thread lain yang dimiliki oleh proses yang sama Thread juga sering disebut lightweight process.
Keuntungan dari penerapan thread adalah sebagai berikut:
1.      Lebih responsif.
 Karena sebuah proses dapat terdiri dari beberapa thread, sehingga jika ada satu thread yang terhenti atau melakukan operasi yang cukup lama maka thread lain dalam proses tersebut masih dapat berjalan dan dapat menjawab permintaan pemakai.
2.      Berbagi sumber daya
 Beberapa threads yang menyusun sebuah proses akan berbagi kode, data, dan berkas secara  bersama-sama.
3.      Lebih ekonomis
  Nilai ekonomi diperoleh karena usaha yang dikeluarkan untuk penciptaan dan context switch sebuah thread jauh lebih kecil dibandingkan dengan untuk sebuah proses.
4.Pemanfaatan arsitektur multi-processor
Beberapa thread dapat berjalan secara bersamaan pada sistem komputer paralel atau berprosesor  jamak (multiprocessor ).





PENJADWALAN PROSES
Antrian Penjadwalan
Penjadwalan  direpresentasikan  dalam  bentuk  antrian yang  disimpan  sebagai linkedlist dan berisi pointer awal dan akhir PCB.  Tiap-tiap PCB memiliki suatu pointer field  yang  menunjuk  ke  proses berikutnya.    Jenis-jenis  antrian  penjadwalan  adalah sebagai berikut :
·         Job Queue. Semua proses yang masuk pada suatu sistem akan diletakkan ke dalam job queue
·         Ready Queue. Sedangkan proses-proses yang ada di memori utama dan menunggu
untuk dieksekusi diletakkan pada suatu list yang disebut dengan ready queue.
·         Device Queue. Deretan proses yang sedang menunggu peralatan I/O tertentu disebut
dengan device queue.

Penjadwalan
Ada terdapat dua penjadwalan yaitu :
   1.      Longterm-Scheduler (job  scheduler),  menyeleksi  proses-proses  mana  yang  harus
dibawa ke ready queue.
   2.      Short-term  Scheduler (CPU  scheduler),  memilih  proses-proses  yang  siap  untuk
dieksekusi, dan mengakolakasikan CPU ke salah satu dari proses-proses tersebut.

Short-term scheduler terjadi sangat sering (dalam milidetik), jadi setiap proses dijadwal  dengan  cepat,  sedangkan long-term  scheduler terjadi  sangat  jarang  (dalam detik atau menit), sehingga setiap proses dijadwal dengan lambat.  Long-term scheduler digunakan untuk mengontrol tingkat multiprogramming
Secara umum, proses dapat digambarkan sebagai :
·         I/O  bound  process,  yaitu  proses-proses  yang  membutuhkan  lebih  banyak waktu untuk  menjalankan  I/O  daripada  melakukan  komputasi,  sehingga  CPU  burst  yang dibutuhkan lebih singkat.
·         CPU bound process,  yaitu  proses-proses  yang  membutuhkan  lebih  banyak  waktu
untuk  melakukan  komputasi  daripada  menjalankan  I/O sehingga  CPU  burst  yang dibutuhkan lebih lama.

Context Switch
Ketika  CPU  berpindah  dari  proses  satu  ke  proses  lainnya,  sistem  harus menyimpan  status  dari  proses  yang  lama  dan  membuka state  proses  baru  yang  sudah disimpan.  Contex  switch  adalah  proses  penyimpanan  status  proses  dan  mengambil status  proses  yang  baru  pada  saat  terjadi  switching. Pada  saat  terjadi  perpindahan proses,  sistem tidak bekerja.  Waktu context switch tergantung pada perangkat keras yang digunakan.

Operasi pada Proses
Sistem operasi dalam mengelola proses dapat melakukan operasi-operasi tehadap proses. Operasi-operasi yang dapat dilakukan terhadap proses diantaranya :
  1.      Penciptaan Proses ( Create Of Process )
  2.      Penghancuran/Terminasi Process (Destory a Process)
  3.      Penundaan Proses
  4.      Pelanjutan Kembali Proses (Resume a Process)
  5.      Pengubahan Prioritas Proses
  6.      Memblock Proses
  7.      Membangunkan Proses
  8.      Menjadwalkan Proses
  9.      Memungkinkan Proses Berkomunikasi dengan Proses Lain
1. Penciptaan Proses ( Create Of Process )
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 sumberdaya awal bagi proses

Kejadian yang dapat menyebabkan penciptaan proses a.l. :
·     -    Pada lingkungan batch, sebagai tanggapan atas pemberian suatu kerja (job)
·      -   Pada lingkungan interaktif, ketika pemakai baru berusaha logon
·      -   Sebagai tanggapan suatu aplikasi, seperti permintaan pencetakan file, SO dapat menciptakan proses  yang akan mengelola pencetakan itu
·     -    Proses menciptakan proses lain (proses anak)

      2. Penghancuran/Terminasi Process (Destory a Process)
  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 bebas)

Penghancuran lebih rumit bila proses telah menciptakan proses-proses lain. Terdapat dua pendekatan, yaitu :
·       -  Pada beberapa sistem, proses-proses turunan dihancurkan saat proses-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


    KOMUNIKASI ANTARPROSES (INTERPROCESS COMMUNICATION)
Eksekusi proses dapat dibedakan menjadi dua yaitu:
  1.      Proses yang berdiri sendiri (independent process), proses yang tidak mempengaruhi dan tidak terpengaruh oleh proses lain yang sedang diekseskusi.
   2.      Proses yang saling bekerja sama (cooperation process), proses yang dapat terpengaruh atau mempengaruhi proses lain yang sedang dieksekusi.
       Kenapa proses perlu saling berkerja sama?
    1.      Penggunaan informasi secara bersama-sama.
    2.      Kecepatan komputasi.
   3.      Modularitas.
   4.      Kenyamanan.
    Proses yang saling bekerja sama memerlukan sebuah mekanisme komunikasi antar proses atau interprocess communication (IPC) yang memungkinkan pertukaran data dan informasi.
      Terdapat dua model komunikasi antar proses:
   1.      Shared memory (penggunaan memori bersama) Merupakan komunikasi antarproses yang memungkinan pertukaran informasi dengan membaca dan menulis data pada bagian memori yang sudah dialokasikan. Karakteristiknya:
-          Lebih cepat dari messgae passing.
-          Memerlukan bagian memori yang sudah dialokasikan.
-          Tidak perlu didampingi kernel.
    2.      Message passing (mengirim pesan) Merupakan komunikasi antarproses yang memungkinan komunikasi antarproses yang saling berkerja sama dengan cara pertukaran pesan.
-          Berguna untuk pertukaran data yang berukuran kecil.
-          Lebih mudah diimplentasikan pada intercomputer communication dibandingkan dengan shared memory.
-          Membutuhkan waktu lebih lama karena ada intervensi kernel.

Model Shared-Memory (Pemakaian Memori Besama)
Metode shared memory dapat dianalogikan sebagai berikut:
Misalnya terdapat dua proses, namai saja dengan producer process dan consumer process. Producer process bertugas memproduksi item, sementara consumer process bertugas mengunakan item yang diproduksi producer process. Dengan kata lain, producer process dan consumer process saling berkerja sama dalam hal memproduksi dan menggunakan. Agar dua proses tersebut berjalan berkesinambungan maka dibutuhkan sebuah buffer (penampungan) yang dapat diisi oleh item yang diproduksi procuder process dan dapat dikosongkan oleh consumer process. Buffer ini akan terletak pada memori yang sudah dialokaskikan tadi. Producer process dapat memproduksi item sementara consumer process sedang menggunakan sebuah item. Dua proses tersebut harus berkesinambungan sehingga consumer process tidak mencoba mengambil item yang belum dibuat oleh producer process.
 

Buffer dapat dibedakan menjadi dua yaitu:
  1.      Unbounded buffer, ukurannya tidak pasti.
  2.      Bounded buffer, ukurannya sudah ditentukan, dengan kata lain consumer process harus menunggu jika buffernya kosong dan producer process harus menunggu jika buffernya penuh.
Shared buffer diimplementasikan dengan array sirkular dengan dua variabel: in dan out. Variabel in menunjukan posisi kosong selanjutnya pada buffer, sedangkan variabel out menunjukan posisi yang sudah penuh pada buffer. Buffer kosong ketika in = out; buffernya penuh ketika ((in + 1) % BUFFER_SIZE)) == out


Producer process mempunyai variabel lokal nextProduced yang berfungsi menyimpan item yang dihasilkan sedangkan cosumed process mempunyai variabel lokal nextConsumed yang berfungsi menyimpan item yang akan digunakan.

Model Message-Passing (Berkirim Pesan)
Sistem message-passing memungkinkan mekanisme komunikasi dan sinkronisasi sebuah aksi tanpa perlu menggunakan address space yang sama dan berguna dalam lingkungan komputer yang terdistribusi, di mana komunikasi dapat dilakukan pada komputer yang berbeda yang dihubungkan sebuah jaringan. Sebuah sistem message-passing memungkinan dua operasi yaitu: send (message) dan receive (message).
Misalnya terdapat dua proses P dan Q, dan ingin berkomunikasi satu sama lain maka kedua proses tersebut harus saling mengirim (send) dan menerima (receive) pesan. Harus terdapat sebuah link komunikasi diantara kedua proses tersebut.
Berikut adalah beberapa metode implementasi send dan receive:

-          Komunikasi langsung dan tak langsung (direct and indirect communication)
-          Synchronus dan asyncrhonus communication.
-          Automatic and explicit buffering

Naming
Pada direct communication (komunikasi langsung) proses-proses yang ingin berkomunikasi harus mempunyai cara agar dapat terhubung satu sama lain. Oleh karena itu, proses-proses tersebut harus memberi nama pada penerima dan pengirim pesan. Dalam hal ini, send() dan receive() dapat didefinisikan sebagai:

-          Send (P, message) – mengirim pesan ke proses P.
-          Receive (Q, message) – menerima pesan dari proses Q.

Link komunikasi dalam skema ini mempunyai sifat:

-          Sebuah link secara otomatis terbentuk pada pasangan proses yang ingin berkomunikasi. Proses harus mengetahui identitas pasangan yang akan diajak berkomunikasi.
-          Sebuah link berhubungan tepat dengan satu pasang proses komunikasi.
-          Dalam sebuah pasangan komunikasi, terdapat tepat satu link.

Skema ini memperlihatkan sebuah cara simetris dalam pengalamatannya, baik pengirim dan penerima harus menamakan proses lainnya untuk berkomunikasi. Varian dari skema ini memperlihatkan cara asimetri dalam pengalamatannya, hanya pengirim yang memberikan nama bagi penerima sedangkan penerima tidak menyediakan nama bagi pengirim. Dalam konteks ini, send() dan receive(), didefinisikan sebagai:

-          Send (P, message) – mengirim pesan ke proses P.
-          Receive (id, message) – menerima pesan dari proses manapun; variabel id diatur sebagai nama dari proses dengan komunikasi.

Dengan indirect communication (komunikasi tidak langsung), pesan dikirim dan diterima dari mailbox (kotak surat) dan port. Mailbox dapat didefinisikan sebagai tempat meletakkan pesan oleh sebuah proses dan tempat pesan bisa dipindahkan dari sebuah proses. Setiap mailbox mempunyai identitas unik. Sebuah proses dapat berkomunikasi dengan beberapa proses lain dengan nomor dari mailbox yang berbeda. Dua proses dapat saling berkomunikasi hanya jika proses tersebut mempunyai mailbox bersama. Send() dan receive() pada kasus ini dapat didefinisikan sebagai:

-          Send (A, message) – mengirim pesan ke mailbox A.
-          Receive (A, message) – menerima pesan dari mailbox A.

Dengan skema ini, link komunikasi mempunyai karakteristik:

-          Sebuah link dapat dibentuk dari sepasang proses jika keduanya mempunyai sebuah mailbox bersama (shared mailbox).
-          Sebuah link mungkin dapat berasosiasi dengan dua proses.
-          Diantara setiap pasang proses komunikasi, mungkin terdapat jumlah link yang berbeda-beda, di mana setiap link berhubungan dengan satu mailbox.





 





















Post a Comment

0 Comments