Sabtu, 30 April 2011

proteksi memori

Proteksi Memory
Proteksi Memori adalah cara untuk mengontrol hak akses memori pada komputer, dan merupakan bagian dari paling modern sistem operasi . Tujuan utama dari proteksi memori adalah untuk mencegah proses mengakses memori yang belum dialokasikan untuk itu. Hal ini untuk mencegah bug dalam suatu proses dari yang mempengaruhi proses lainnya, atau sistem operasi itu sendiri.perlindungan Memori adalah perilaku yang berbeda dari ASLR dan NX bit. Metode-metode untuk memproteksi memory adalah segmentasi, memory virtual, tombol proteksi, segmentasi simulasi, kemampuan berbasis pengalamatan. mari kita mulai membahas metode-metode tersebut
Segmentasi
Segmentasi mengacu pada komputer membagi memori ke dalam segmen. Para arsitektur x86 memiliki beberapa fitur segmentasi, yang berguna untuk menggunakan memori dilindungi di arsitektur ini. [1] Pada x86 prosesor arsitektur, Global Descriptor Table  dan Descriptor lokal Tabel dapat digunakan untuk segmen acuan dalam memori komputer. Pointer ke segmen memori pada prosesor x86 juga dapat disimpan dalam register segmen prosesor. Awalnya prosesor x86 memiliki register segmen 4, CS (segmen kode), SS (stack segmen), DS (segmen data) dan ES (segmen tambahan); dua segmen yang register ditambahkan - FS dan GS.

Memory Virtual 
Dalam paging, ruang alamat memori dibagi menjadi sama, potongan-potongan kecil, yang disebut halaman . Menggunakan memori virtual mekanisme, setiap halaman dapat dibuat untuk berada dalam lokasi memori fisik, atau ditandai sebagai telah dilindungi. Virtual memory memungkinkan untuk memiliki linier ruang alamat memori virtual dan menggunakannya untuk mengakses blok terfragmentasi lebih dari memori fisik ruang alamat. Kebanyakan arsitektur komputer berdasarkan halaman, terutama arsitektur x86 , juga menggunakan halaman untuk perlindungan memori. Sebuah tabel halaman yang digunakan untuk pemetaan memori virtual ke memori fisik. Tabel halaman biasanya terlihat pada proses. tabel Page membuatnya lebih mudah untuk mengalokasikan memori yang baru, karena setiap halaman baru dapat dialokasikan dari mana saja di memori fisik. Dengan desain seperti itu, tidak mungkin aplikasi untuk mengakses halaman yang belum secara eksplisit dialokasikan untuk itu, hanya karena alamat memori, bahkan acak satu benar-benar, bahwa aplikasi dapat memutuskan untuk menggunakan, baik menunjuk ke suatu halaman yang dialokasikan, atau menghasilkan kesalahan halaman (PF). halaman tidak dapat dialokasikan hanya tidak memiliki alamat dari sudut pandang aplikasi. Sebagai catatan, sebuah PF(Page fault) mungkin bukan kejadian fatal. Kesalahan Page digunakan tidak hanya untuk perlindungan memori, tetapi juga dalam cara lain yang menarik: sebuah OS mungkin mencegat PF, dan mungkin memuat halaman yang sebelumnya telah swap out ke disk, dan melanjutkan eksekusi dari aplikasi yang telah menyebabkan kesalahan halaman . Dengan cara ini, aplikasi menerima halaman memori yang diperlukan. Skema ini, dikenal sebagai bertukar memori virtual, memungkinkan-memori data tidak sedang digunakan untuk dipindahkan ke penyimpanan disk dan kembali dalam cara yang transparan untuk aplikasi, untuk meningkatkan kapasitas memori secara keseluruhan.


Segmentasi Simulasi
Simulasi adalah penggunaan pemantauan program untuk menginterpretasikan instruksi kode mesin komputer beberapa. Seperti Instruction Set Simulator dapat memberikan perlindungan memori dengan menggunakan seperti skema segmentasi dan validasi alamat target dan panjang setiap instruksi secara real time sebelum benar-benar mengeksekusi mereka. simulator harus menghitung alamat target dan panjang dan membandingkan terhadap daftar rentang alamat yang valid yang dimilikinya mengenai thread lingkungan ', seperti apapun dinamis memori blok yang diperoleh sejak awal thread, ditambah ada slot memori bersama berlaku statis. Yang dimaksud dengan "sah" dapat berubah sepanjang hidup thread ini tergantung pada konteks: kadang-kadang mungkin diperbolehkan untuk mengubah blok statis penyimpanan, dan kadang-kadang tidak, tergantung pada modus saat eksekusi yang mungkin atau tidak mungkin tergantung pada kunci penyimpanan atau pengawas negara. Hal ini umumnya tidak dianjurkan untuk menggunakan metode ini perlindungan memori di mana fasilitas yang memadai ada di CPU, karena ini membutuhkan kekuatan pemrosesan berharga dari komputer. Namun umumnya digunakan untuk debugging dan tes untuk memberikan tingkat denda tambahan rincian untuk dinyatakan generik pelanggaran penyimpanan dan dapat menunjukkan tepat yang instruksi mencoba menimpa bagian tertentu penyimpanan yang mungkin memiliki kunci penyimpanan sama seperti penyimpanan terlindungi. Awal IBM teleprocessing sistem, seperti CIC, threaded-multi transaksi komersial dalam dan tanpa perlindungan penyimpanan bersama selama sekitar 20 tahun.


Kemampuan berbasis pengalamatan
Kemampuan berbasis pengalamatan adalah metode perlindungan memori yang tidak terpakai di komputer komersial modern. Dalam hal ini, pointer akan diganti dengan objek yang dilindungi(kemampuan disebut) yang hanya dapat dibuat melalui menggunakan hak istimewa instruksi yang hanya dapat dilakukan oleh kernel, atau proses lainnya yang berwenang untuk melakukannya. Ini secara efektif memungkinkan kontrol kernel yang proses yang dapat mengakses obyek di memori, tanpa perlu menggunakan ruang alamat yang terpisah atau konteks switch . Kemampuan tidak pernah mendapatkan adopsi mainstream di hardware komersial, tetapi mereka secara luas digunakan dalam sistem riset seperti KeyKOS dan penerusnya, dan digunakan sebagai dasar konseptual untuk beberapa mesin virtual , terutama Smalltalk dan Java .

 Mekanisme sistem proteksi yang harus disediakan sistem meliputi :
• Membedakan antara penggunaan yang sah dan yang tidak sah.
• Menentukan kontrol yang terganggu.
• Menetapkan cara pelaksanaan proteksi.

  
Proteksi pada monoprogramming sederhana.
   Pada monoprogramming, pemakai mempunyai kendali penuh terhadap seluruh
   memori utama. Memori terbagi menjadi tiga bagian, yaitu :
   a. Bagian yang berisi rutin-rutin sistem operasi. 
   b. Bagian yang berisi program pemakai.
   c. Bagian yang tidak digunakan.

Masalah proteksi di monoprogramming adalah cara memproteksi rutin sistem operasi dari penghancuran program pemakai. Program pemakai dapat tersesat sehingga memanipulasi atau menempati ruang memori rutin sistem operasi. Aktivitas program pemakai ini dapat merusak sistem operasi. Sistem operasi harus diproteksi dari modifikasi program pemakai. Proteksi ini diimplementasikan menggunakan satu registe batas (boundary register) dipemroses.Setiap kali program pemakai mengacu alamat memori dibandingkan register batas untuk memastikan proses pemakai tidak merusak sistem operasi, yaitu tidak melewati nilai register batas. Register batas berisi alamat memori tertinggi yang dipakai sistem operasi. Jika program pemakai mencoba memasuki sistem operasi, instruksi diintersepsi dan job diakhiri dan diberi pesan kesalahan. Untuk memperoleh layanan sistem operasi, program pemakai harus menggunakan instruksi spesifik meminta layanan sistem operasi. Integritas sistem operasi terjaga dan program pemakai tidak merusak bagian sistem operasi.


                                                                                        Pemroses
   +-------------------------------+                        +-----------------------+
   :  Sistem operasi di RAM    :                        |  +------------------+ |
   +-------------------------------+      <========= | :  Register batas : |
   : Program pemakai di RAM :                        | +--------------------+ |
   +-------------------------------+                        +-----------------------+
   :     Memori tak dipakai      :         
   +-------------------------------+
 
            Skema Proteksi pada monoprogramming

Skema diatas menunjukkan skema proteksi menggunakan register batas. Register batas menunjuk alamat terakhir sistem operasi. Bila program pemakai mengacu ke alamat daerah sistem operasi, pemroses menjadi fault menyatakan terjadinya pelanggaran pengaksesan oleh proses pemakai.
Masalah pada proteksi monoprograming adalah Merupakan cara memproteksi rutin sistem operasi dari penghancuran program pemakai. Program pemakai dapat tersesat sehingga memanipulasi atau menempati ruang memori rutin sistem operasi. Aktivitas program pemakai ini dapat merusak sistem operasi. Untuk mengatasinya Sistem operasi harus diproteksi dari modifikasi program pemakai. Proteksi ini diimplementasikan menggunakan satu register batas (boundary register) dipemroses.Setiap kali program pemakai mengacu alamat memori dibandingkan register batas untuk memastikan proses pemakai tidak merusak sistem operasi, yaitu tidak melewati nilai register batas.



Pengalokasian Memory
Salah satu tanggung jawab Sistem Operasi adalah mengontrol akses ke sumber daya sistem. Salah satunya adalah memori.Pengalokasian memori dibagi 2 tipe, yaitu  Pengalokasian berurutan (Contiguous Allocation), dan   Pengalokasian tidak berurutan (Non Contiguous Allocation)


Pengalokasian berurutan (Contiguous Allocation)
Memori utama harus dapat melayani baik sistem operasi maupun proses user. Oleh karena itu kita harus mengalokasikan pembagian memori seefisien mungkin. Salah satunya adalah dengan cara alokasi memori berkesinambungan. Alokasi memori berkesinambungan berarti alamat memori diberikan kepada proses secara berurutan dari kecil ke besar. Keuntungan menggunakan alokasi memori berkesinambungan dibandingkan menggunakan alokasi memori tidak berkesinambungan adalah:
  1. Cepat
  2. Sederhana
  3. Mendukung proteksi memory
Sedangkan kerugian dari menggunakan alokasi memori berkesinambungan adalah apabila tidak semua proses dialokasikan di waktu yang sama, akan menjadi sangat tidak efektif sehingga mempercepat habisnya memori.
 Alokasi memori berkesinambungan dapat dilakukan baik menggunakan sistem partisi banyak, maupun menggunakan sistem partisi tunggal. Sistem partisi tunggal berarti alamat memori yang akan dialokasikan untuk proses adalah alamat memori pertama setelah pengalokasian sebelumnya. Sedangkan sistem partisi banyak berarti sistem operasi menyimpan informasi tentang semua bagian memori yang tersedia untuk dapat diisi oleh proses-proses (disebut hole ). Sistem partisi banyak kemudian dibagi lagi menjadi sistem partisi banyak tetap, dan sistem partisi banyak dinamis. Hal yang membedakan keduanya adalah untuk sistem partisi banyak tetap, memori dipartisi menjadi blok-blok yang ukurannya tetap yang ditentukan dari awal. Sedangkan sistem partisi banyak dinamis artinya memori dipartisi menjadi bagian-bagian dengan jumlah dan besar yang tidak tentu. Untuk selanjutnya, kita akan memfokuskan pembahasan pada sistem partisi banyak.
Sistem operasi menyimpan sebuah tabel yang menunjukkan bagian mana dari memori yang memungkinkan untuk menyimpan proses, dan bagian mana yang sudah diisi. Pada intinya, seluruh memori dapat diisi oleh prosesuser . Saat sebuah proses datang dan membutuhkan memori, CPU akan mencari hole yang cukup besar untuk menampung proses tersebut. Setelah menemukannya, CPU akan mengalokasikan memori sebanyak yang dibutuhkan oleh proses tersebut, dan mempersiapkan sisanya untuk menampung proses-proses yang akan datang kemudian (seandainya ada).
Saat proses memasuki sistem, proses akan dimasukkan ke dalam antrian masukan. Sistem operasi akan menyimpan besar memori yang dibutuhkan oleh setiap proses dan jumlah memori kosong yang tersedia, untuk menentukan proses mana yang dapat diberikan alokasi memori. Setelah sebuah proses mendapat alokasi memori, proses tersebut akan dimasukkan ke dalam memori. Setelah proses tersebut dimatikan, proses tersebut akan melepas memori tempat dia berada, yang mana dapat diisi kembali oleh proses lain dari antrian masukan.
Sistem operasi setiap saat selalu memiliki catatan jumlah memori yang tersedia dan antrian masukan. Sistem operasi dapat mengatur antrian masukan berdasarkan algoritma penjadualan yang digunakan. Memori dialokasikan untuk proses sampai akhirnya kebutuhan memori dari proses selanjutnya tidak dapat dipenuhi (tidak ada hole yang cukup besar untuk menampung proses tersebut). Sistem operasi kemudian dapat menunggu sampai ada blok memori cukup besar yang kosong, atau dapat mencari proses lain di antrian masukan yang kebutuhan memorinya memenuhi jumlah memori yang tersedia.
Pada umumnya, kumpulan hole-hole dalam berbagai ukuran tersebar di seluruh memori sepanjang waktu. Apabila ada proses yang datang, sistem operasi akan mencari hole yang cukup besar untuk menampung memori tersebut. Apabila hole yang tersedia terlalu besar, akan dipecah menjadi 2. Satu bagian akan dialokasikan untuk menerima proses tersebut, sementara bagian lainnya tidak digunakan dan siap menampung proses lain. Setelah proses selesai, proses tersebut akan melepas memori dan mengembalikannya sebagai hole-hole . Apabila ada 2 hole yang kecil yang berdekatan, keduanya akan bergabung untuk membentuk hole yang lebih besar. Pada saat ini, sistem harus memeriksa apakah ada proses yang menunggu yang dapat dimasukkan ke dalam ruang memori yang baru terbentuk tersebut.
Hal ini disebut Permasalahan alokasi penyimpanan dinamis, yakni bagaimana memenuhi permintaan sebesar n dari kumpulan hole-hole yang tersedia. Ada berbagai solusi untuk mengatasi hal ini, yaitu:



  1. First fit : Mengalokasikan hole pertama ditemukan yang besarnya mencukupi. Pencarian dimulai dari awal.
  2. Best fit : Mengalokasikan hole dengan besar minimum yang mencukupi permintaan.
  3. Next fit : Mengalokasikan hole pertama ditemukan yang besarnya mencukupi. Pencarian dimulai dari akhir pencarian sebelumnya.
  4. Worst fit : Mengalokasikan hole terbesar yang ada.


Pengalokasian tidak berurutan (Non Contiguous Allocation)
Program dibagi menjadi beberapa blok atau segmen. Blokblok program ditempatkan di memori dalam potonganpotongan tanpa perlu saling berdekatan.
Teknik ini biasa digunakan pada sistem memori maya sebagai alokasi page-page dilakukan secara global.
•          Paging
–         Paging adalah solusi untuk permasalahan fragmentasi external
–         Memori fisik dibagi ke dalam blok-blok ukuran tetap yang disebut “frame”
–         Memori logika dibagi ke dalam blok-blok dengan ukuran yang sama yang disebut “page”
–         Untuk menjalankan program berukuran n page, harus dicari frame kosong sebanyak n untuk meload program
–         Page table digunakan untuk translasikan alamat lojik ke alamat fisik
•          Alamat yang dibangkitkan CPU dibagi menjadi :
–         Page number (p) à digunakan sebagai index ke page table. Page table berisi alamat basis dari setiap page pada memori fisik
–         Page Offset (d) à dikombinasikan dengan alamat basis untuk mendefinisikan alamat memori fisik yang dikirim ke unit memori
•          Skema translasi alamat
•          Model Paging
•          Ukuran page atau frame ditentukan oleh hardware
–         Ukuran page merupakan bilangan 2 pangkat k mulai 512 sampai 8192 tergantung arsitektur komputer
•          Segmentasi
–         Segmentasi adalah skema pengaturan memori yang mendukung user untuk melihat memori tersebut
–         Tiap-tiap segmen memiliki nama dan panjang.
–         Pandangan user mengenai memori:
–        Dukungan Hardware :
•          Pemetaan ke alamat fisik dilakukan dengan menggunakan tabel segmen, masing-masing berisi base dan limit
Keuntungan:
·         sistem dapat memanfaatkan memori utama secar lebih efisien
·         Sistem operasi masih mampu memuatkan proses bila jumlah total lubang-lubang memori cukup untuk memuat proses yang akan dieksekusi
Kelemahan:
·         Memerlukan pengendalian yang lebih rumit dan sulit

Jumat, 29 April 2011

kata-kata mutiara

Seorang teman berkata: “Waktu memang tak terbatas – tapi waktu kita terbatas
Terkadang kita terlalu disibukkan oleh hal-hal yang begitu remeh sehingga kita terlupa untuk segera menyelesaikan tugas besar yang sebetulnya telah menunggu kita untuk diselesaikan. Coba Anda audit lagi apa yang telah Anda lakukan dalam 1 (satu) bulan ini, mungkin ada beberapa hal yang semestinya bisa diselesaikan dengan cepat di awal atau pertengahan bulan.
Kebanyakan manusia memang demikian adanya sehingga banyak hal yang terlewat dari kita semua.
Saya diberikan tips yang sangat bagus oleh sebuah buku … dan ini sudah terbukti. Sangat sederhana tips ini bahkan terkadang Anda meremehkan loh. Begini: untuk menyelesaikan suatu tugas, Anda sebelum berangkat tidur, coba tuliskan 5 hal yang akan Anda selesaikan esok hari. Lalu Anda cukup berangkat tidur setelah menuliskan 5 hal itu.
Dan buktikan esok paginya. Okay, jangan berkomentar dulu – lakukan dan berikan komentar disini setelah Anda mendapatkan buktinya.

puisi cinta qu

ati ini trasa sunyi tanpa nafas cintamu,,
hidup ini sepi tanpa senyuman darimu
diri inisenyap tanpa jiwa kasih mu,,
ruang hatiku gelap tanpa arah tuk melangkah cinta,,,
mengapa semua harus terjadi???
mengapa disaat terang dunia kalbuku kau berlalu
kau tinggalkan sepenggal dusta dalam rasa,,
cinta..
aku hanya mampu memeluk rasa
memeluk mimpi senja yng kelabu
meniti harapan fajar kelana,,
cinta..
kau buat aku tak yakin untuk melangkah
kau beri aku segenggam luka
mengapa cahaya pelangi menjadi api,,
selamat jalan cinta,,
selamat berbahagia di atas luka ku,,
biarkan kata merangkai hati serupa darah dibalik tirai….