Senin, 29 April 2013


SEGMENTASI

Compiler bisa memiliki beberapa tabel dengan alamat virtual yang terpisah, misalnya terdiri dari tabel-tabel untuk:
1.        Source text,
2.        Tabel simbol,
3.        Tabel untuk semua konstanta integer dan floating point,
4.        Parse tree, berisi analisis sintaksis program, dan
5.        Stack yang digunakan untuk pemanggilan prosedur.

Tabel 1 s/d 4 bisa bertambah pada saat kompilasi berjalan, sehingga dengan sistem paging yang berukuran tetap, batas satu page bisa terlampaui.

Dengan alasan ini dipakai bagian-bagian dengan alamat yang relatif independen, yang disebut segmen. Setiap segmen mempunyai ukuran yang berbeda dengan yang lain. Panjang segmen juga bisa berubah selama eksekusi.

Program harus menyediakan alamat yang terdiri dari dua bagian:
-            nomer segmen
-            alamat di dalam segmen

Segmentasi juga memberikan fasilitas pemakaian bersama prosedur atau data antar beberapa proses. Contoh umumnya adalah shared library.





Segmen

Segmen

Segmen

Segmen

Segmen

0

1

2

3

4
0

0

0
Konstanta
0

0











4K

4K



4K

4K




Source



Parse

Call



text



tree

stack
8K

8K



8K

8K


Tabel









Symbol








12K

12K



12K

12K





















16K





16K























20K











Memori yang tersegmentasi memungkinkan setiap tabel bertambah atau berkurang.

Pertimbangan

Paging
Segmentasi
Apakah programmer harus menyadari bahwa teknik ini sedang digunakan?
Tidak
Ya
Berapa banyak ruang alamat linier yang ada?
1
Banyak
Dapatkah ruang alamat total melebihi ukuran memori fisik?
Ya
Ya
Apakah tabel yang ukurannya berubah-ubah dapat diakomodasi?
Tidak
Ya
Dapatkan prosedur dan data dibedakan dan diproteksi secara terpisah?
Tidak
Ya
Adakah fasilitas pemakaian bersama prosedur antar user?
Tidak
Ya
Mengapa teknik ini diciptakan?
Untuk mendapatkan ruang alamat linier yang besar tanpa harus membeli memori fisik tambahan
Untuk memungkinkan program dan data dibagi menjadi ruang alamat yang secara logik independen dan untuk membantu pemakaian bersama dan proteksi
Perbandingan paging dan segmentasi.

Checkerboarding: Timbulnya blok-blok memori yang kosong (hole) pada saat isi segmen dikeluarkan. Hal ini diatasi dengan pemampatan (compaction).

Segmentasi dengan Paging : Setiap segmen dapat dianggap sebagai satu virtual memori, dan masing-masing dibagi menjadi page-page.

Salah satu mesin yang memakai cara ini adalah MULTICS. Setiap program MULTICS memiliki satu tabel segmen, dengan satu descriptor per segmen. Segmen descriptor berisi keterangan apakah segmen yang bersangkutan ada di memori atau tidak.
  
Segmen descriptor

Tabel page untuk segmen 0
36 bit

Page 0 entry


Descriptor segmen 0

Page 1 entry

Pointer-
Descriptor segmen 1

Page 2 entry

pointer
Descriptor segmen 2

Page 3 entry

ke page
Descriptor segmen 3




Descriptor segmen 4




Descriptor segmen 5

Tabel page untuk segmen 1
Descriptor segmen 6

Page 0 entry


Descriptor segmen 7

Page 1 entry




Page 2 entry




Page 3 entry




Page 4 entry




Page 5 entry








Virtual address MULTICS 34-bit:
                                                            Alamat di dalam segmen
Nomer segmen

Nomer page
Offset di dalam page
18

6
10




Nomer segmen

Nomer page
Offset di dalam page


Nomer





segmen






Nomer


Descriptor


page



Page frame


Offset












Segmen

Tabel page



Descriptor



Word





























Page


Konversi alamat MULTICS menjadi alamat memori utama.





Senin, 01 April 2013

BOBBY FACHRYAN

PROSES DAN THREAD

DEFINISI
  • PROSES
Secara informal : proses adalah program dalam eksekusi. Suatu proses adalah lebih dari kode program, dimana kadang kala dikenal sebagai bagian tulisan. Proses juga termasuk aktivitas yang sedang terjadi, sebagaimana digambarkan oleh nilai pada program counter dan isi dari daftar prosesor/ processor’s register. Suatu proses umumnya juga termasuk process stack, yang berisikan data temporer (seperti parameter metoda, address yang kembali, dan variabel lokal) dan sebuah data section, yang berisikan variabel global.
  • THREAD
Thread adalah sebuah alur kontrol dari sebuah proses. Suatu proses yang multithreaded mengandung beberapa perbedaan alur kontrol dengan ruang alamat yang sama. Keuntungan dari multithreaded meliputi peningkatan respon dari user, pembagian sumber daya proses, ekonomis, dan kemampuan untuk mengambil keuntungan dari arsitektur multiprosesor. User level thread adalah thread yang tampak oleh programmer dan tidak diketahui oleh kernel. User level thread secara tipikal dikelola oleh sebuah library thread di ruang user. Kernel level thread didukung dan dikelola oleh kernel sistem operasi. Secara umum, user level thread lebih cepat dalam pembuatan dan pengelolaan dari pada kernel thread. Ada tiga perbedaan tipe dari model yang berhubungan dengan user dan kernel thread.

Sorce :
http://fazza01.wordpress.com/2009/04/11/tugas-pertemuan-5/


PERBEDAAN
  • Perbedaan proses dan thread?
  1. Pembentukan Thread membutuhkan waktu yang lebih sedikit daripada pembentukan process.
  2. Membutuhkan waktu yang lebih sedikit untuk menhakhiri Thread daripada process.
  3. Lebih mudah dan cepat untuk melakukan switch antar Thread daripada switch antar process.
  4. Thread menggunakan secara bersama ruang alamat dari proses yang menciptakannya. Proses memiliki ruang alamat sendiri-sendiri.
  5. Thread memiliki akses langsung ke segemen data dari prosesnya. Masing-masing proses memiliki salinan segmen data dari parent process-nya.
  6. Thread dapat saling komunikasi dengan thread lain dalam satu process. Antar proses harus menggunakan komunikasi antar proses.
  7. Thread hampir tidak memiliki overhead. Proses memiliki overhead.
  8. Thread dapat memiliki pengaruh kontrol yang besar terhadap thread lain dalam satu proses. Proses hanya dapat mengendalikan proses anakannya.
  9. Perubahan pada thread utama seperti pembatalan atau perubahan prioritas dapat mempengaruhi tingkah laku thread lain dalam satu proses. Perubahan pada parent proses tidak mempengaruhi proses anakan.
Source :
http://dee-x-cisadane.webs.com/apps/blog/show/19875138-perbedaan-antara-proses-dengan-thread-serta-perbedaan-antara-file-service-file-system-dan-file-server


GAMBAR PROSES STATE 


Keterangan:
  1. Proses di blok untuk melayani input karena sumber daya yang diminta belum tersedia / meminta layanan I/O sehingga menunggu kejadian muncul.
  2. Penjadwalan mengambil proses lain.
  3. Penjadwalan mengambil proses ini (baru).
  4. Input telah tersedia.


A. PERALIHAN STATUS (STATE)

  1. Terdapat transisi di antara state-state selama siklus hidup proses, yaitu:
  2. Proses yang baru diciptakan akan segera mempunyai stateReady.
  3. Proses denagan state running →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).
  4. Proses denagan state running → ready karena penjadwal memutuskan eksekusi proses lain karena jatah waktu untuk proses tersebut telah habis (time-out).
  5. Proses denagan state blocked → ready saat sumber daya yang diminta/diperlukan telah tersedia atau layanan perangkat masukan/keluaran selesai (event occurs).
  6. Proses denagan state ready →running karena penjadwal memutuskan penggunaan pemroses untuk proses itu karena proses yang saat itu running berubah state(menjadi ready atau blocked) atau telah menyelesaikan sehingga disingkirkan dari sistem Proses menjadi mendapatkan jatah pemroses.

B. SUSPEND DAN RESUME

Penundaan (suspendsion) adalah operasi penting dan telah diterapkan dengan berbagai cara. Penundaan biasanya berlangsung singkat. Proses yang ditunda (suspended process) tidak berlanjut (resume). Untuk waktu jangka peanjang, sumber daya-sumber daya proses dibebaskan (dilucuti). Keputusan membebaskan sumber daya-sumber daya bergantung sifat masing-masing sumber daya. Memory utama seharusnya segera dibebaskan begitu proses yang ditunda agar memori itu dapat dimanfaatkan proses-proses lain. Perintah pelanjutan kembali terhadap proses adalah perintah untuk menjalankan proses dari titik (instruksi) dimana proses ditunda.
Operasi suspend dan resume penting, sebab :
  1. Jika sistem berfungsi secara buruk dan mungkin gagal maka proses-proses dapat disuspend agar diresume setelah masalah diselesaikan. Contoh : Pada proses pencetakan, bila tiba-tiba kerta habis maka proses di tunda (suspend). Setelah kertas dimasukkan kembali, proses pun dapat di lanjutkan kembali (resume).
  2. Pemakai yang ragu/khawatir mengenai hasil suatu proses dapat mensuspend proses (bukan langsung membuang (abort) proses). Saat pemakai yakin proses akan berfungsi secara benar maka dapat me-resume (melanjutkan kembali di instruksi saat di-suspend) proses yang di-suspend.
  3. Sebagai tanggapan terhadap fluktuasi jangka pendek beban sistem, beberapa proses dapat di-suspend dan di-resume saat beban kembali ke tingkat normal.


C. DIAGRAM STATE PROSES

Diagram State Dasar (3 Proses)

Proses melewati serangkaian state diskrit. Beragam kejadian dapat menyebabkan perubahan state proses. Terdapat 3 state dasar yang dialami proses:
  1. Running ( Pemroses sedang mengeksekusi intruksi proses itu )
  2. Ready ( Proses siap (ready) dieksekusi, tapi pemroses tidak tersedia untuk eksekusi proses ini )
  3. Blocked ( Proses menunggu kejadian untuk melengkapi tugasnya seperti :
  • Menunggu selesainya operasi perangkat masukan/keluaran
  • Menunggu tersedianya memori
  • Menunggu tibanya pesan jawaban

Diagram State Lanjut (5 Proses)

Penundaan (suspension) adalah operasi penting dan telah diterapkan dengan beragam cara. Penundaan biasanya berlangsung singkat, sering dilakukan sistem untuk memindahkan proses-proses tertentu guna mereduksi beban sistem selama beban puncak. 2 state baru dimasukkan sehingga membentuk diagram 5 state, yaitu. 

  1. Suspendedready ( Terjadinya suspen pada proses ready oleh proses lain dan transisi dari proses suspendedblocked )
  2. Suspendedblocked ( Terjadinya transisi suspen setelah proses bloked )

Source :
http://abbasdoel165.blogspot.com/2011/05/rangkuman-mengenai-diagram-state-proses.html