Selasa, 28 Desember 2010

PEMBERITAHUAN

BLOG INI PINDAH KE ALAMAT http://soulygianie.blogspot.com/

OKEY... THANK YOU.... ^_^

Rabu, 04 November 2009

My FATHER'S NOTEBOOK

Kisah seorang anak manusia yg terlahir bisu dan tuli, dia lahir di jirya. Sebuah desa yang dipenuhi bunga-bunga almond pada musim semi dan buah almond pada musin gugur.Aga Akbar nama anak tersebut. keluarganya khususnya ibunya berbicara denganx dengan menggunakan bahasa isyarat sederhana.
Aga Akbar tidak banyak tahu tentang dunia ini meskipun dia mengerti konsep-konsep sederhana. Dia tahu bahwa matahari bersinar dan menjadikannya hangat, tetapi dia tidak tau, misalnya bahwa matahari sebenarnya adalah sebuah bola api. Dia juga tidak tahu bahwa tanpa matahari kehidupan mustahil terwujud. Atau, bahwa suatu hari nanti akan musnah selamanya, seperti lampu yang kehabisan minyak.
Dia tidak mengerti mengapa bulan kecil pada awalnya, kemudian perlahan menjadi besar. Dia tidak tahu apa-apa tentang gravitasi, belum pernah mendengar Archimedes. Dunianya adalah dunia masa lalunya, tentang hal-hal yang terjadi padanya, tentang hal-hal yang dipelajarinya, tentang kenangannya.Minggu,bulan, dan tahun misteri baginya.
Desa Aga Akbar terpencil. Tak banyak yang terjadi di jirya. Tak ada jejak dunia modern: tak ada sepeda,tak ada mesin jahit.
Ibu Aga Akbar hajar namanya, dia adalah selir dari seorang bangsawan. Ketika ibunya meninggal dia tidak mengerti apa yang sebenarnya terjadi. Biasanya saat ibuanya sakit..ibunya selalu berbicara padanya sambil memegangi tangannya. tapi pada waktu itu ibunya berhenti berbicara dan tangannya tak lagi bergerak...

Selasa, 03 November 2009

kasih sayang

Anda bisa memberi tanpa mengasihi,
tetapi Anda tidak mungkin mengasihi tanpa memberi.

Kasih sayang tidak akan mengambil bentuknya yang utuh sebagai kasih sayang jika ia hanya diperam sebagai perasaan atau niat di dalam hati.

Kasih sayang adalah pemberian; meskipun tidak semua pemberian adalah kasih sayang.

Jika kecintaan ...hati Anda adalah menjadikan diri Anda, keluarga, dan orang lain sebagai pengindah kehidupan – maka mudah bagi Anda untuk berlaku penuh kasih dalam pemeliharaan dan hubungan Anda dengan diri sendiri, keluarga, dan orang lain.

Memberilah, karena itu adalah cara untuk menjadikan kebaikan Anda sebuah kasih sayang yang mengindahkan kehidupan.
__Mario Teguh_

Rabu, 23 September 2009

Senyuman trakhir....

Selamat jalan Sahabatq..

Aq g tau harus percaya atau tidak..
asal kau tau aq mash blm percaya..kalau kau telah pergi..
pergi dan tak kembali...
senyuman waktu adalah senyuman terakhir yg aq lhat...
mengapa kau begitu cepat meninggalkan aq...
meningglakn kenangan qt,,,
canda itu...tawa itu...senyum itu...
Akankah aq menemukanx lq..smua itu???
kalau km telah pergi...
Ya Allah aq tau ini ud suratan dari Engkau...
aq mhon terimalah sahabatq si sisi-Mu..
dan brikanlah kesabaran dan keiklasan
bagi mereka yg ditinggalkan...

Selamat jalan Shabatq...
I always Remember U...

Sabtu, 19 September 2009

Selamat Hari Raya Idul Fitri 1430 H

Hampir sebulan penuh sudah kita berpuasa...
Hampir sebulan penuh sudah kita bersabar...
Menahan nafsu, makan, minum...
Berjuang melawan semua...

Hari besar kan datang
Hari yang dinanti
Hari besar kta
Hari Raya Idul Fitri

Dihari itu kita berbagi
Kita saling memafkan
Kita memulai hati kita yang baru
Dengan hati suci yang bersih

Min Al Aidin Wal Fa Idin
Kita saling memaafkan dan memohon maaf bersama
Bersilahturahmi...

Semoga Hari ini selalu hadir sepanjang tahun di hati kita
Agar dunia dapat menjadi lebih damai
Selamat hari Raya Idul Fitri
1430 H
Mhon Maaf lahir dan batin...

Sabtu, 01 Agustus 2009

Cinta

Sekalipun cinta telah aku uraikan...
dan aku jelaskan panjang lebar
Namun...
Jika cinta kudatangi aku jadi malu
pada keteranganku sendiri...
Meskipun lidahq telah mampu menguraikan dengan terang...
Namun...
tanpa lidah Cinta ternyata lebih terang..
Sementara pena begitu tergesa gesa menulisnya..
Kata-kata pecah begitu sampai kepada cinta
Dalam menguraikan cinta, akal berbaring tak berdaya..
Bagaikan keledai terbaring dalam lumpur..
CInta sendirilah yang menerangkan
Cinta dan Percintaan...

Senin, 13 Juli 2009

ROHATIL

JIKA

Aku tertatih lagi malam ini.
Aku merunduk lagi malam ini.
Lalu tersudut di bilik kesepian.

Andaikan saja dulu kita tak pernah bertemu.
Takkan pernah ada kerinduan menyelimuti jiwaku di bilik ini.
Andaikan saja dulu tak kau sentuh hatiku,
Takkan terisi kekosongan hatiku oleh bayanganmu.

Meski aku keluar dari bilik ini
Aku bagaikan kapas yang tertiup angin…
Melayang jauh hati di padang kesunyian.
Beribu-ribu benang kerinduan tersulam,
tak satupun juga kain sua dibentangkan.
Langkahku payah…
hingga tak mampu kau kupapah..


Ketika Aku Mengangis

Saat hujan menitik,
apa gunanya menanyai awan?
Kau tidak benar-benar ingin tahu.
Hanya takut basah, kan?

Jadi, apa perlunya bertanya?
Hujan akan reda juga.
Lalu kau akan lupa.

Minggu, 05 Juli 2009

VIRTUAL MEMORY di Windows Dan Linux

 Virtual Memory
Di Windows
Pada komputer kita, jumlah memory yang tersedia adalah jumlah antara memory fisik/RAM dengan virtual memory. Virtual memory adalah sebuah porsi pada hard disk yang di-set menyerupai RAM oleh system. Virtual memory merupakan ruang penyimpanan sementara yang digunakan untuk menjalankan program yang membutuhkan memory yang lebih besar dari memory fisik.
Virtual memory berupa file yang bernama pagefile.sys yang di-set hidden oleh Windows. File ini disebut paging file, yang digunakan untuk menampung program dan data yang tidak cukup di memory fisik. Virtual memory lebih lambat daripada memory fisik, dan penggunaan yang terlalu banyak dapat menurunkan kinerja sistem. Sehubungan dengan itu, windows memindahkan proses yang tidak terlalu sering ke virtual memory, dan membiarkan proses yang sering digunakan di memory fisik. Jadi ini sangat efisien.
Ukuran dari virtual memory dapat kita rubah, Windows merekomendasikan ukuran minimal dari vitual memory adalah 1.5 kali dari memory fisik kita.
Jika anda memiliki beberapa harddisk, misal hardisk pertama adalah C: dan harddisk kedua adalah D: dan anda jarang menggunakan drive D:, anda dapat memindahkan virtual memory ke drive D:. Memindahkan virtual memory ke harddisk yang jarang digunakan akan sedikit meningkatkan performa. Alasannya adalah, pada harddisk pertama biasanya head dari harddisk sangat sibuk untuk membuka program, dokumen, menyimpan file dan masih banyak lagi. Tetapi ingat, cara ini tidak akan berguna bila drivenya terletak pada harddisk yang sama atau dengan kata lain sebuah partisi.
Cara Kerja
Virtual Memory digunakan dengan membuat suatu file khusus yang disebut swapfile atau paging file. Virtual memory digunakan pada saat operating system kehabisan memory, dimana o.s. akan memindahkan data yang paling terakhir diakses ke dalam swapfile di hardisk. Hal ini mengosongkan/ membebaskan beberapa ruang kosong pada memory untuk aplikasi yang akan digunakan selanjutnya. Operating system akan melakukan hal ini secara terus menerus ketika data baru diisi pada ram.
Kemudian, pada saat data yang tersimpan di swapfile diperlukan, data tersebut ditukar (swap) dengan data yang paling terakhir dipakai di dalam memory (ram). Hal ini mengakibatkan swapfile bersifat seperti ram, walaupun program tidak dapat secara langsung dijalankan dari swapfile. Satu hal yang perlu dicatat bahwa karena operating system tidak dapat secara langsung menjalankan program dari swapfile, beberapa program mungkin tidak akan berjalan walau dengan swapfile yang besar jika kita hanya memiliki ram yang kecil.
 Virtual Memory
Di Linux
Managemen Memori di Linux
A. Managemen Memori Fisik
Bagian ini menjelaskan bagaimana linux menangani memori dalam sistem. Memori managemen merupakan salah satu bagian terpenting dalam sistem operasi. Karena adanya keterbatasan memori, diperlukan suatu strategi dalam menangani masalah ini. Jalan keluarnya adalah dengan menggunakan memori virtual. Dengan memori virtual, memori tampak lebih besar daripada ukuran yang sebenarnya.
Dengan memori virtual kita dapat:
1. Ruang alamat yang besar
Sistem operasi membuat memori terlihat lebih besar daripada ukuran memori sebenarnya. Memori virtual bisa beberapa kali lebih besar daripada memori fisiknya.
2. Pembagian memori fisik yang adil
Managemen memori membuat pembagian yang adil dalam pengalokasian memori antara proses-proses.
3. Perlindungan
Memori managemen menjamin setiap proses dalam sistem terlindung dari proses-proses lainnya. Dengan demikian, program yang crash tidak akan mempengaruhi proses lain dalam sistem tersebut.
4. Penggunaan memori virtual bersama
Memori virtual mengizinkan dua buah proses berbagi memori diantara keduanya, contohnya dalam shared library. Kode library dapat berada di satu tempat, dan tidak dikopi pada dua program yang berbeda.
Memori Virtual
Memori fisik dan memori virtual dibagi menjadi bagian-bagian yang disebut page. Page ini memiliki ukuran yang sama besar. Tiap page ini punya nomor yang unik, yaitu Page Frame Number (PFN). Untuk setiap instruksi dalam program, CPU melakukan mapping dari alamat virtual ke memori fisik yang sebenarnya.
Penerjemahan alamat di antara virtual dan memori fisik dilakukan oleh CPU menggunakan tabel page untuk proses x dan proses y. Ini menunjukkan virtial PFN 0 dari proses x dimap ke memori fisik PFN 1. Setiap anggota tabel page mengandung informasi berikut ini:
1. Virtual PFN
2. PFN fisik
3. informasi akses page dari page tersebut
Untuk menerjemahkan alamat virtual ke alamat fisik, pertama-tama CPU harus menangani alamat virtual PFN dan offsetnya di virtual page. CPU mencari tabel page proses dan mancari anggota yang sesuai degan virtual PFN. Ini memberikan PFN fisik yang dicari. CPU kemudian mengambil PFN fisik dan mengalikannya dengan besar page untuk mendapat alamat basis page tersebut di dalam memori fisik. Terakhir, CPU menambahkan offset ke instruksi atau data yang dibutuhkan. Dengan cara ini, memori virtual dapat dimap ke page fisik dengan urutan yang teracak.
Demand Paging
Cara untuk menghemat memori fisik adalah dengan hanya meload page virtual yang sedang digunakan oleh program yang sedang dieksekusi. Tehnik dimana hanya meload page virtual ke memori hanya ketika program dijalankan disebut demand paging.
Ketika proses mencoba mengakses alamat virtual yang tidak ada di dalam memori, CPU tidak dapat menemukan anggota tabel page. Contohnya, dalam gambar, tidak ada anggota tabel page untuk proses x untuk virtual PFN 2 dan jika proses x ingin membaca alamat dari virtual PFN 2, CPU tidak dapat menterjemahkan alamat ke alamat fisik. Saat ini CPU bergantung pada sistem operasi untuk menangani masalah ini. CPU menginformasikan kepada sistem operasi bahwa page fault telah terjadi, dan sistem operasi membuat proses menunggu selama sistem operasi menagani masalah ini.
CPU harus membawa page yang benar ke memori dari image di disk. Akses disk membutuhkan waktu yang sangat lama dan proses harus menunggu sampai page selesai diambil. Jika ada proses lain yang dapat dijalankan, maka sistem operai akan memilihnya untuk kemudian dijalankan. Page yang diambil kemudian dituliskan di dalam page fisik yang masih kosong dan anggota dari virtual PFN ditambahkan dalam tabel page proses. Proses kemudian dimulai lagi pada tempat dimana page fault terjadi. Saat ini terjadi pengaksesan memori virtual, CPU membuat penerjemahan dan kemudian proses dijalankan kembali.
Demand paging terjadi saat sistem sedang sibuk atau saat image pertama kali diload ke memori. Mekanisme ini berarti sebuah proses dapat mengeksekusi image dimana hanya sebagian dari image tersebut terdapat dalam memori fisik.
Swaping
Jika memori fisik tiba-tiba habis dan proses ingin memindahkan sebuah page ke memori, sistem operasi harus memutuskan apa yang harus dilakukan. Sistem operasi harus adil dalam mambagi page fisik dalam sistem diantara proses yang ada, bisa juga sistem operasi menghapus satu atau lebih page dari memori untuk membuat ruang untuk page baru yang dibawa ke memori. Cara page virtual dipilih dari memori fisik berpengaruh pada efisiensi sistem.
Linux menggunakan tehnik page aging agar adil dalam memilih page yang akan dihapus dari sistem. Ini berarti setiap page memiliki usia sesuai dengan berapa sering page itu diakses. Semakin sering sebuah page diakses, semakin muda page tersebut. Page yang tua adalah kandidat untuk diswap.
Pengaksesan Memori Virtual Bersama
Memori virtual mempermudah proses untuk berbagi memori saat semua akses ke memori menggunakan tabel page. Proses yang akan berbagi memori virtual yang sama, page fisik yang sama direference oleh banyak proses. Tabel page untuk setiap proses mengandung anggota page table yang mempunyai PFN fisik yang sama.
Efisiensi
Desainer dari CPU dan sistem operasi berusaha meningkatkan kinerja dari sistem. Disamping membuat prosesor, memori semakin cepat, jalan terbaik adalah manggunakan cache. Berikut ini adalah beberapa cache dalam managemen memori di linux:


1. Page Cache
Digunakan untuk meningkatkan akses ke image dan data dalam disk. Saat dibaca dari disk, page dicache di page cache. Jika page ini tidak dibutuhkan lagi pada suatu saat, tetapi dibutuhkan lagi pada saat yang lain, page ini dapat segera diambil dari page cache.
2. Buffer Cache
Page mungkin mengandung buffer data yang sedang digunakan oleh kernel, device driver dan lain-lain. Buffer cache tampak seperti daftar buffer. Contohnya, device driver membutuhkan buffer 256 bytes, adalah lebih cepat untuk mengambil buffer dari buffer cache daripada mengalokasikan page fisik lalu kemudian memecahnya menjadi 256 bytes buffer-buffer.
3. Swap Cache
Hanya page yang telah ditulis ditempatkan dalam swap file. Selama page ini tidak mengalami perubahan setelah ditulis ke dalam swap file, maka saat berikutnya page di swap out tidak perlu menuliskan kembali jika page telah ada di swap file. Di sistem yang sering mengalami swap, ini dapat menghemat akses disk yang tidak perlu.
Salah satu implementasi yang umum dari hardware cache adalah di CPU, cache dari anggota tabel page. Dalam hal ini, CPU tidak secara langsung membaca tabel page, tetap mencache terjemahan page yang dibutuhkan.
Load dan Eksekusi Program
1. Penempatan program dalam memori
Linux membuat tabel-tabel fungsi untuk loading program, memberikan kesempatan kepada setiap fungsi untuk meload file yang diberikan saat sistem call exec dijalankan. Pertama-tama file binari dari page ditempatkan pada memori virtual. Hanya pada saat program mencoba mengakses page yang telah diberikan terjadi page fault, maka page akan diload ke memori fisik.
2. Linking statis dan linking dinamis
a. Linking statis:
librari-librari yang digunakan oleh program ditaruh secara langsung dalam file binari yang dapat dieksekusi. Kerugian dari linking statis adalah setiap program harus mengandung kopi library sistem yang umum.
b. Linking dinamis:
hanya sekali meload librari sistem menuju memori. Linking dinamis lebih efisien dalam hal memori fisik dan ruang disk.

Perhitungan Alamat Absolut pada Paging dan Segmentation

Penghitungan Alamat Absolute pada Paging
Alamat referensi pada kode instruksi program adalah alamat pada ruang logika proses sehingga pada saat eksekusi, alamat referensi tersebut haruslah ditranslasi ke alamat fisik memori utama yang sesungguhnya.


Pada gambar diatas merupakan contoh translasi alamat pada system paging. Diasumsikan system memori computer menggunakan pengalamatan 16 bit, 16 bit pertama untuk menunjukkan nomor page,10 bit, terakhir untuk menunjukkan nilai offset, yaitu alamat relative dalam suatu page. Dengan kata lain, tiap page berukuran 20 bit atau 1024 alamat. Misalnya dalam program terdapat kode instruksi jump[1502]. Alamat 1502 dalam kode program adlah alamat logika proses sehingga jika instruksi ini dieksekusi di prosesor maka lamat 1502 harus ditranslasi terlebih dahulu.

Pehitungan Alamat Absolut Pada Segmentasi
Pada sistem segmentasi alamat logika pada kode instruksi program juga perlu ditranslasi pada saat dieksekusi.
Misalnya sistem memori computer menggunakan alamat 16 bit sehingga maksimal kapasitas memori utama adalah 64 kbyte. Bit alamat logika dapat dipecah atas nomor segmen dan alamat offset. Misalnya, nomor segmen menggunakan 4 bit atas alamat logika, yang berarti terdapat maksimal 212=4 kbyte. Misalnya dalam program terdapat instruksi jump[4848]. Pada saat eksekusi, berapakah alamat fisik hasil translasi dari referensi alamat logika 4848 pada instruksi jump tersebut?

Jika direpresentasikan dalam bentuk biner, alamt logika 4848 adalah 000100101111000, yang berarti nomor segmennya adalah 1 (0001) dan alamat offsetnya adalah 752 (001011110000). Dati tabel segmen proses terlihat bahwa segmen 1 dialokasikan pada memori fisik pada alamat awal 8224 sehingga pada saat dieksekusi alamat 4848 akan ditranslasi menjadi 8224 + 752 = 8976.

perbedaan Partition, Segmentation dan Paging

Partisi
Bahasan pertama adalah review sekilas tentang partisi. Hard disk untuk bisa diisi sistem operasi, membutuhkan satu wadah, yang dinamakan partisi. Jika Anda terbiasa menggunakan Microsoft, partisi disimbolkan dengan Drive. Misal, Drive C:(partisi pertama) Drive D:(partisi kedua) dan seterusnya.
Dengan membagi hard disk ke dalam beberapa partisi Anda dapat menjalankan berbagai sistem operasi secara bersamaan. Misalnya Linux - Windows 98 - Windows NT.
Partisi dikategorikan dalam tiga jenis. Primary, Extended dan Logical Partition. Partisi utama, disebut primary, dalam satu hard disk maksimal hanya 4 partisi. Jika Anda ingin lebih dari 4 partisi, maka perlu dibuat extended partition yang bisa memuat logical partition dengan jumlah lebih banyak. Jadi data hanya terletak di partisi primary atau logical, sedangkan extended hanya merupakan wadah dari partisi logical. Contoh pengaturan hard disk dan nama yang biasa dipergunakan di Linux.
Segmentasi
Segmentasi adalah sebuah bagian dari managemen memori yang mengatur pengalamatan dari memori yang terdiri dari segmen-segmen. logical address space adalah kumpulan dari segmen-segmen yang mana tiap-tiap segmen mempunyai nama dan panjang. alamat tersebut menunjukkan alamat dari segmen tersebut dan offset-nya didalam segmen-segmen tersebut. pengguna kemudian menentukan pengalamatan dari setiap segmen menjadi dua bentuk, nama segmen dan offset dari segmen tersebut (Hal ini berbeda dengan pemberian halaman, dimana pengguna hanya menentukan satu buah alamat, dimana pembagian alamat menjadi dua dilakukan oleh perangkat keras, semua ini tidak dapat dilihat oleh user).
Keuntungan lain dari segmentasi adalah menyangkut masalah pembagian penggunaan kode atau data. Setiap proses mempunyai tabel segmennya sendiri, dimana ini akan digunakan oleh dispatcher untuk menentukan tabel segmen dari perangkat keras yang mana akan digunakan ketika proses yang bersangkutan di eksekusi oleh CPU. Segmen akan berbagi ketika anggota dari elemen tabel segmen yang berasal dari dua proses yang berbeda menunjuk ke lokasi fisik yang sama. Pembagian tersebut terjadi pada level segmen, maka, informasi apa pun dapat dibagi jika didefinisikan pada level segmen. Bahkan beberapa segmen pun dapat berbagi, sehingga sebuah program yang terdiri dari beberapa segmen pun dapat saling berbagi pakai.
Paging
Membagi memory ke dalam chunks (bagian-bagian) kecil berukuran tetap dan
sama, dan membagi setiap proses ke dalam chunk berukuran sama tersebut
Chunks dari suatu proses dinamakan pages
Demand Paging atau permintaan pemberian halaman adalah salah satu implementasi dari memori virtual yang paling umum digunakan. Sistem Demand Paging pada prinsipnya hampir sama dengan sistem permintaan halaman yang menggunakan swapping, hanya saja pada sistem demand paging, halaman tidak akan dibawa ke dalam memori fisik sampai ia benar-benar diperlukan. Oleh sebab itu dibutuhkan bantuan perangkat keras untuk mengetahui lokasi dari halaman saat ia diperlukan. Daripada melakukan swapping, keseluruhan proses ke dalam memori utama, digunakanlah yang disebut lazy swapper yaitu tidak pernah menukar sebuah halaman ke dalam memori utama kecuali halaman tersebut diperlukan.

Pengalamatan Logical, Relative dan Physical

Pengalamatan Phyical
Pada meode pengalamatan memori secara fisik,alamat yang ditulis pada kode instruksi program hasil kompilasi merupakan alamat fisik memory utama yang sesungguhnya. Konsekuensinya adalah pada saat penyalinan image proses ke memori utama, maka kode instruksi dan data program harus disalin pada posisi yang sesuai dengan referensi tersebut. Pada saat eksekusi, prosesor akan memproses alamat pada kode instruksi program secara langsung tanpa melakukan translasi alamat memori.
Pengalamatan Relative
Pengalamatan relative terutama digunakan pada sistem yang menggunakan alokasi memori berurut, dimana keseluruhan image proses harus terletak di satu area memori yang utuh.
Alamat pada kode instruksi program merupakan alamat relatif(offset) terhadap posisi awal program. Pada saat image proses dari program tersebut disalin atau dialokasikan ke memori utama, alamat awal memorinya dicatat ke suatu register alokasi. Pada saat eksekusi, pemgaksesan alamatakan ditranslasi dengan menjumlahkan alamat referenai pada instruksi dengan isi registrasi alokasi untuk mendapatkan alamat fisik memori yang akan benar-benar diakses. Umumnya proses translasi ini dilakukan menggunakan perangkat keras khusus yang disebut dengan MMU(Memory Management Unit).
Pengalamatan logical
Pada pengalamatan secara logika, alamat yang ada pada kode program merupakan suatu alamat logika yang masih perlu diterjemahkan atau ditranslasikan kealamat fisik memori utama pada saat eksekusi. Umumnya , translasi almat untuk pengalamatannya secara logika terjadi pada saat eksekusi.
Kelebihan pengalamatan ini adalah relokasi program dapat dilakukan secara fleksibel, bahkan ruang atau kapasitas alamat logika program dapat lebih besar dari kapasitas fisik memori utama. Misalnya program dapat menggunakan ruang alamat logika sebesar 2Giga, sedangkan emori utama fisik di mana program tersebut dijalankan hanya memiliki kapasitas 256 Mega

Sabtu, 09 Mei 2009

Seputar PlasTik(Pelatihan Jurnalistik)

Pelatihan Jurnalistik yang diselenggarakan oleh Departemen pers Islam dan IT Lembaga Dakwah Kampus Majelis Kajian Mahasiswa Islam (LDK-MKMI) ternyata menarik minat mahasiswa. Terbukti, peserta yang hadir cukup banyak yang terdiri dari mahasiswa di berbagai fakultas di universitas trunojoyo tidak hanya anggota LDK MKMI.
Kegiatan yang dilaksanakan pada tanggal 06 Maret 2009 ini hari pertama acara diadakan di Ruang Kuliah Bersama (RKB) UNIJOYO yang nya salah satu materinya adalah ”Pengantar Jurnalistik” yang disampaikan oleh Tatik dari salah satu televisi lokal Jawa Timur, JTV. Sedangkan pemateri ”Teknik Penulisan Berita” yang disampaikan oleh Bapak Ali Hisyam S.Ag. Selaku dosen UNIJOYO yang tulisan-tulisannya sering dimuat di media cetak.
Hari kedua pelatihan jurnalistik diawali dengan materi tentang ”Teknik Investigasi” yang disampaikan oleh mas Oyong dari Radar Madura dimana materi tersebut mengantar para peserta untuk terjun langsung ke lapangan mencari berita. Selesai penyampaian materi, peserta pun di sebar ke titik-titik sesuai dengan kelompok dan tema yang diberikan oleh panitia, untuk tema ”Kenaikan Harga BBM” di daerah pasar Bangkalan,”Sosialisasi Pemilu” di daerah Telang dan kantor KPU Bangkalan,dan untuk tema ”Fatwa MUI tentang haramnya Rokok dan Golput” di daerah Mesjid Agung Bangkalan dan kantor MUI Bangkalan, bahkan peserta bertemu langsung dengan ketua MUI Kabupaten Bangkalan. Setelah peserta mendapatkan informasi sesuai dengan tema, panitia memberi waktu kurang lebih 1 minggu untuk membuat tulisan hasil investigasinya dalam bentuk buletin.
Setelah pengumpulan buletin dilakukan oleh peserta, pada tanggal 20 maret 2009, peserta dikumpulkan kembali untuk melakukan evaluasi terhadap buletin yang mereka buat. Sebelum evaluasi dilakukan, terlebih dahulu peserta diberikan gambaran seputar buletin sekaligus melakukan evaluasi terhadap buletin yang sudah dibuat oleh peserta. Materi ini disampaikan oleh Moh.Soleh, salah seorang mahasiswa FH Unijoyo yang banyak berkecimpung di dunia jurnalistik mahasiswa.
Puncak dari pelatihan jurnalistik ini adalah kunjungan ke Jawa Pos Surabaya pada tanggal 03 April 2009. kedatangan rombongan peserta dan panitia pelatihan jurnalistik disambut hangat oleh pihak Jawa Pos dengan menyediakan forum untuk memberikan pangetahuan tentang dunia jurnalistik khususnya proses produksi yang dilakukan oleh Jawa Pos selama ini. Mbak Irawati selaku sekretaris Redaktur Jawa Pos memaparkan tentang bagaimana proses pembuatan berita yang dilaksanakan oleh Jawa Pos para peserta pun sangat antusias dan menayakan tentang banyak hal terkait dengan materi yang pernah disampaikan dalam pelatihan, setelah rombongan diajak ke ruang redaksi yang kemudian diakhiri dengan pemberian cindera mata

Khazanah

Bagaimana Seorang Muslim Berfikir
"(Yaitu) orang-orang yang mengingat Allah sambil berdiri atau duduk atau dalam keadaan berbaring dan mereka memikirkan tentang penciptaan langit dan bumi (seraya berkata): "Ya Tuhan kami, tiadalah Engkau menciptakan ini dengan sia-sia. Maha Suci Engkau,maka peliharalah kami dari siksa neraka.
(QS. Aali 'Imraan, 3:191)

Pernahkah anda memikirkan bahwa anda tidak ada sebelum dilahirkan ke dunia ini; dan anda telah diciptakan dari sebuah ketiadaan? Pernahkan anda berpikir bagaimana bunga yang setiap hari anda lihat di ruang tamu, yang tumbuh dari tanah yang hitam, ternyata memiliki bau yang harum serta berwarna-warni? Pernahkan anda memikirkan seekor nyamuk, yang sangat mengganggu ketika terbang mengitari anda, mengepakkan sayapnya dengan kecepatan yang sedemikian tinggi sehingga kita tidak mampu melihatnya?
Pernahkan anda berpikir bahwa lapisan luar dari buah-buahan seperti pisang, semangka, melon dan jeruk berfungsi sebagai pembungkus yang sangat berkualitas, yang membungkus daging buahnya sedemikian rupa sehingga rasa dan keharumannya tetap terjaga?
Pernahkan anda berpikir bahwa gempa bumi mungkin saja datang secara tiba-tiba ketika anda sedang tidur, yang menghancur luluhkan rumah, kantor dan kota anda hingga rata dengan tanah sehingga dalam tempo beberapa detik saja anda pun kehilangan segala sesuatu yang anda miliki di dunia ini?
Pernahkan anda berpikir bahwa kehidupan anda berlalu dengan sangat cepat, anda pun menjadi semakin tua dan lemah, dan lambat laun kehilangan ketampanan atau kecantikan, kesehatan dan kekuatan anda?
Pernahkan anda memikirkan bahwa suatu hari nanti, malaikat maut yang diutus oleh Allah akan datang menjemput untuk membawa anda meninggalkan dunia ini?
Jika demikian, pernahkan anda berpikir mengapa manusia demikian terbelenggu oleh kehidupan dunia yang sebentar lagi akan mereka tinggalkan dan yang seharusnya mereka jadikan sebagai tempat untuk bekerja keras dalam meraih kebahagiaan hidup di akhirat?
Manusia adalah makhluk yang dilengkapi Allah sarana berpikir. Namun sayang, kebanyakan mereka tidak menggunakan sarana yang teramat penting ini sebagaimana mestinya. Bahkan pada kenyataannya sebagian manusia hampir tidak pernah berpikir.
Sebenarnya, setiap orang memiliki tingkat kemampuan berpikir yang seringkali ia sendiri tidak menyadarinya. Ketika mulai menggunakan kemampuan berpikir tersebut, fakta-fakta yang sampai sekarang tidak mampu diketahuinya, lambat-laun mulai terbuka di hadapannya. Semakin dalam ia berpikir, semakin bertambahlah kemampuan berpikirnya dan hal ini mungkin sekali berlaku bagi setiap orang. Harus disadari bahwa tiap orang mempunyai kebutuhan untuk berpikir serta menggunakan akalnya semaksimal mungkin.
Seseorang yang tidak berpikir berada sangat jauh dari kebenaran dan menjalani sebuah kehidupan yang penuh kepalsuan dan kesesatan. Akibatnya ia tidak akan mengetahui tujuan penciptaan alam, dan arti keberadaan dirinya di dunia. Padahal, Allah telah menciptakan segala sesuatu untuk sebuah tujuan sebagaimana dinyatakan dalam Al-Qur'an:
"Dan Kami tidak menciptakan langit dan bumi dan apa yang ada antara keduanya dengan bermain-main. Kami tidak menciptakan keduanya melainkan dengan haq, tetapi kebanyakan mereka tidak mengetahui." (QS. Ad-Dukhaan, 44: 38-39)

"Maka apakah kamu mengira, bahwa sesungguhnya Kami menciptakan kamu secara main-main (saja), dan bahwa kamu tidak akan dikembalikan kepada Kami?" (QS. Al-Mu'minuun, 23:115)
Oleh karena itu, yang paling pertama kali wajib untuk dipikirkan secara mendalam oleh setiap orang ialah tujuan dari penciptaan dirinya, baru kemudian segala sesuatu yang ia lihat di alam sekitar serta segala kejadian atau peristiwa yang ia jumpai selama hidupnya. Manusia yang tidak memikirkan hal ini, hanya akan mengetahui kenyataan-kenyataan tersebut setelah ia mati. Yakni ketika ia mempertanggung jawabkan segala amal perbuatannya di hadapan Allah; namun sayang sudah terlambat. Allah berfirman dalam Al-Qur'an bahwa pada hari penghisaban, tiap manusia akan berpikir dan menyaksikan kebenaran atau kenyataan tersebut:
"Dan pada hari itu diperlihatkan neraka Jahannam; dan pada hari itu ingatlah manusia akan tetapi tidak berguna lagi mengingat itu baginya. Dia mengatakan, "Alangkah baiknya kiranya aku dahulu mengerjakan (amal saleh) untuk hidupku ini." (QS. Al-Fajr, 89:23-24)
Padahal Allah telah memberikan kita kesempatan hidup di dunia. Berpikir atau merenung untuk kemudian mengambil kesimpulan atau pelajaran-pelajaran dari apa yang kita renungkan untuk memahami kebenaran, akan menghasilkan sesuatu yang bernilai bagi kehidupan di akhirat kelak. Dengan alasan inilah, Allah mewajibkan seluruh manusia, melalui para Nabi dan Kitab-kitab-Nya, untuk memikirkan dan merenungkan penciptaan diri mereka sendiri dan jagad raya:
"Dan mengapa mereka tidak memikirkan tentang (kejadian) diri mereka?, Allah tidak menjadikan langit dan bumi dan apa yang ada di antara keduanya melainkan dengan tujuan yang benar dan waktu yang ditentukan. Dan sesungguhnya kebanyakan di antara manusia benar-benar ingkar akan pertemuan dengan Tuhannya." (QS. Ar-Ruum, 30: 8)

Selasa, 07 April 2009

Definisi Proses:
Adalah program executable yang aktif di memory dan dieksekusi berdasarkan jadwal yang dibuat oleh CPU (scheduler). Linux mempunyai banyak proses yang secara simultan dieksekusi oleh karnel, dengan demikian minimal ada 1 proses yang sedang dalam keadaan “Running”, sedangkan yang lainnya dalam keadaan menunggu (waiting).
Definisi Thread
Sebuah thread merupakan sebuah pengontrol aliran program. Untuk lebih mudahnya, bayangkanlah thread sebagai sebuah proses yang akan dieksekusi didalam sebuah program tertentu. Penggunaan sistem operasi modern saat ini telah mendukung kemampuan untuk menjalankan beberapa program. Misalnya, pada saat Anda mengetik sebuah dokumen di komputer Anda dengan menggunakan text editor, dalam waktu yang bersamaan Anda juga dapat mendengarkan musik, dan surfing lewat internet di PC Anda. Sistem operasi yang telah terinstal dalam computer Anda itulah yang memperbolehkan Anda untuk menjalankan multitaskting. Seperti itu juga sebuah program (ibaratkan di PC Anda), ia juga dapat mengeksekusi beberapa proses secara bersama-sama(ibaratkan beberapa aplikasi berbeda yang bekerja pada PC Anda).
Sebuah contoh aplikasi adalah HotJava browser yang memperbolehkan Anda untuk
browsing terhadap suatu page, bersamaan dengan mendownload object yang lain,
misalnya gambar, memainkan animasi, dan juga file audio pada saat yang bersamaan.
Mutual Exclution
Saling pengecualian (sering disingkat ke mutex) algoritma digunakan dalam pemrograman yg berbarengan bersamaan untuk menghindari penggunaan sumber daya yang umum, seperti variabel global, dengan potongan-potongan kode komputer disebut bagian penting.
Contoh dari sumber daya yang halus-grained flags, counters atau antrian, yang digunakan untuk berkomunikasi antara kode yang berjalan secara bersamaan, seperti aplikasi dan penangan interrupt. Masalahnya akut karena thread dapat dihentikan atau dimulai setiap saat.

Untuk menggambarkan: seandainya bagian kode yang mengubah adalah bagian dari program data melalui beberapa langkah, ketika thread lain, mungkin dipicu oleh beberapa peristiwa tidak terduga, mulai mengeksekusi. Jika dibaca dari urutan kedua yang sama piece data, data yang sedang dalam proses sedang ditimpa, dalam sebuah negara tidak konsisten dan tidak terduga. Jika kedua thread yang mencoba Timpa data, berikut negara mungkin akan unrecoverable. Ini bagian penting dari kode akses berbagi data itu harus dilindungi, sehingga proses yang lain membaca dari atau menulis ke bingkah data dikecualikan dari berjalan.
Mutex umum juga merupakan nama untuk sebuah program objek yang saling negotiates pengecualian di antara benang, yang disebut kunci.
Race Condition
Race condition: situasi dimana beberapa proses mengakses dan memanipulasi suatu data secara konkuren. Nilai akhir dari data tersebut tergantung dari proses mana yang terakhir selesai dieksekusi
Sinkronisasi
Sinkronisasi: adalah suatu proses yang digunakan Untuk mencegah race condition proses-proses yang berjalan bersamaan (synchronized).
Deadlock
Deadlock secara harfiah adalah kebuntuan. Di dalam sistem operasi berarti suatu kondisi di mana sekumpulan proses tidak dapat berjalan kembali atau tidak adanya komunikasi antar proses. Definisi lainnya yaitu sekumpulan proses yang terblok yang tiap proses tersebut memegang sumber daya dan menunggu untuk mendapatkan sumber daya yang dipegang oleh proses di dalam kumpulan tersebut.
Starvation
Starvation adalah proses-proses yang tertentu yang tidak dapat melanjutkan eksekusi, misalkan karena prioritas rendah.
Monitor
Monitor adalah Media output untuk menampilkan/memperlihatkan informasi sehingga dapat dibaca dan diketahui oleh manusia. Monitor merupakan suatu konsepsi bahasa pemrograman yang menyediakan fungsi sama dengan semaphore & lebih mudah dikontrol.


Semaphore
Definisi Semaphore adalah pendekatan yang diajukan oleh Djikstra.
 Prinsipnya dua proses atau lebih dapat bekerjasama dengan menggunakan penanda-penanda sederhana.
 Variabel khusus untuk penanda disebut semaphore


Metode-metode penanganan Deadlock:
Metode pencegahan Terjadinya deadlock(deadlock Prevention)
Metode ini berkaitan dengan pengkondisian sistem agar menghilangkan kemungkinan terjadinya deadlock. Pencegahan merupakan solusi yang bersih dipandang dari sudut tercegahnya deadlock. Metode ini sering menghasilkan utilisasi sumber daya yang buruk.
Metode Penghindaran Terjadinya deadlock(Deadlock Avoidance)
Tujuan metode ini adalah menghindarkan kondisi-kondisi yang paling mungkin menimbulkan dedlock agar memperoleh utilisasi sumber daya sumber daya lebih baik. Penghindaran ini bukan berarti menghilangkan semua kemungkinan terjadinya deadlock dimungkinkan. Sistem operasi memeriksa semua permintaan sumber daya secara deadlock,sistem menolak pengaksesan itu. Dengan itu menghindari terjadinya dealock.
Metode Deteksi dan Pemulihan dari Deadlock (Deadlock Detection and Recovery)
Metode deteksi digunakan pada sistem yang mengijinkan terjadinya deadlock. Tujuan metode ini adalah memeriksa apakah telah terjadi deadlock dan menentukan proses-proses dan sumber daya-sumber daya yang terlibat
Multiprogramming
Manajemen banyak proses pada satu pemroses
Multiprocessing
Manajemen banyak proses di komputer multiprocessing(banyak pemroses didalamnya)




Figure 6.1a shows a situation in which
four cars have arrived at a four-way stop intersection at approximately the same
time. The four quadrants of the intersection are the resources over which control is
needed. In particular, if all four cars wish to go straight through the intersection, the
resource requirements are as follows:

• Car 1, traveling north, needs quadrants a and b.
• Car 2 needs quadrants b and c.
• Car 3 needs quadrants c and d.
• Car 4 needs quadrants d and a.
The typical rule of the road in the United States is that a car at a four-way stop should defer to a car immediately to its right.This rule works if there are only two or three cars at the intersection. For example, if only the northbound and westbound cars arrive at the intersection, the northbound car will wait and the westbound car proceeds. However, if all four cars arrive at about the same time, each will refrain from entering the intersection, this causes a potential deadlock.The deadlock is only
potential, not actual, because the necessary resources are available for any of the cars to proceed. If one car eventually does proceed, it can do so. However, if all four cars ignore the rules and proceed (cautiously) into the intersection at the same time, then each car seizes one resource (one quadrant) but cannot proceed because the required second resource has already been seized by another car.This is an actual deadlock.

Selasa, 31 Maret 2009

SUMBER BACAAN :

[Lewis1998] John Lewis dan William Loftus. 1998. Java Software Solutions Foundation Of Program Design. First Edition. Addison Wesley.
[Silberschatz2005] Avi Silberschatz, Peter Galvin, dan Grag Gagne. 2005.
Operating Systems Concepts. Seventh Edition. John Wiley & Sons.
[Tanenbaum1997] Andrew Tanenbaum dan Albert Woodhull. 1997.
Operating Systems Design and Implementation. Second Edition. Prentice-Hall.
[WEBJava2007] Java 2 Platform SE v1.3.1. 2007. Java 2 Platform SE v1.3.1: Class Thread – http://java.sun.com/j2se/1.3/docs/api/java/lang/Thread.html. Diakses 27 Februari 2007.
[WEBJTPD2007] Java Thread Primitive Deprecation. 2007.
Java Thread Primitive Deprecation -http://java.sun.com/j2se/1.3/docs/guide/misc/threadPrimitiveDeprecatio n.html
. Diakses 27 Februari 2007.

Microkernel

1.1 Microkernel
Pendekatan Microkernel berisi sebuah abstraksi yang sederhana terhadap hardware, dengan sekumpulan primitif atau system call yang dapat digunakan untuk membuat sebuah sistem operasi agar dapat berjalan, dengan layanan-layanan seperti manajemen thread, komunikasi antar address space, dan komunikasi antar proses. Layanan-layanan lainnya, yang biasanya disediakan oleh kernel, seperti halnya dukungan jaringan, pada pendekatan microkernel justru diimplementasikan di dalam
ruangan pengguna (user-space), dan disebut dengan server.
Server adalah sebuah program, seperti halnya program lainnya. Server dapat mengizinkan sistem operasi agar dapat dimodifikasi hanya dengan menjalankan program atau menghentikannya. Sebagai contoh, untuk sebuah mesin yang kecil tanpa
dukungan jaringan, server jaringan (istilah server di sini tidak dimaksudkan sebagai
komputer pusat pengatur jaringan) tidak perlu dijalankan. Pada sistem operasi
tradisional yang menggunakan monolithic kernel, hal ini dapat mengakibatkan
pengguna harus melakukan rekompilasi terhadap kernel, yang tentu saja sulit untuk
dilakukan oleh pengguna biasa yang awam.

1.2 Kinerjanya
Dalam teorinya, sistem operasi yang menggunakan microkernel disebut jauh lebih
stabil dibandingkan dengan monolithic kernel, karena sebuah server yang gagal
bekerja, tidak akan menyebabkan kernel menjadi tidak dapat berjalan, dan server
tersebut akan dihentikan oleh kernel utama. Akan tetapi, dalam prakteknya, bagian
dari system state dapat hilang oleh server yang gagal bekerja tersebut, dan biasanya
untuk melakukan proses eksekusi aplikasi pun menjadi sulit, atau bahkan untuk
menjalankan server-server lainnya.
Sistem operasi yang menggunakan microkernel umumnya secara dramatis memiliki
kinerja di bawah kinerja sistem operasi yang menggunakan monolithic kernel. Hal ini
disebabkan oleh adanya overhead yang terjadi akibat proses input/output dalam
kernel yang ditujukan untuk mengganti konteks (context switch) untuk memindahkan
data antara aplikasi dan server.
Beberapa sistem operasi yang menggunakan microkernel:
• IBM AIX, sebuah versi UNIX dari IBM
• Amoeba, sebuah kernel yang dikembangkan untuk tujuan edukasi
• Kernel Mach, yang digunakan di dalam sistem operasi GNU/Hurd, NexTSTEP,
OPENSTEP, dan Mac OS/X
• Minix, kernel yang dikembangkan oleh Andrew Tanenbaum untuk tujuan
edukasi
• Symbian OS, sebuah sistem operasi yang populer digunakan pada hand phone,
handheld device, embedded device, dan PDA Phone.

1.3 Rancangan Mikrokernel
Pada pembahasan "Struktur Sederhana", sempat disinggung istilah "kernel". Apakah kernel itu? Kernel adalah komponen sentral dari sistem operasi. Ia mengatur hal-hal seperti interrupt handler(untuk menyediakan layanan interupsi), process scheduler(membagi-bagi proses dalam prosesor), memory management, I/O, dan sebagainya. Atau dengan kata lain, ia adalah jembatan antara hardware dengan software.
Cara tradisional untuk membangun sistem operasi adalah dengan membuat kernel monolitis, yaitu semua fungsi disediakan oleh kernel, dan ini menjadikan kernel suatu program yang besar dan kompleks.
Cara yang lebih modern, adalah dengan menggunakan kernel mikro. Pada awalnya, konsep mikro kernel dikembangkan pada sistem operasi Mach. Ide dasar dari pengembangan kernel mikro adalah bahwa hanya fitur-fitur yang perlu saja yang diimplementasikan dalam kernel (mengenai fitur-fitur apa saja yang perlu diimplementasikan, ini bisa berbeda tergantung desain sistem operasi).
Walaupun garis pembatas mengenai apa saja yang berada di dalam dan luar kernel mikro bisa berbeda antara desain yang satu dengan yang lain, namun ada karakteristik yang umum, yaitu servis-servis yang umumnya menjadi bagian sistem operasi menjadi subsistem eksternal yang bisa berinteraksi satu sama lain dan dengan kernel tentunya. Ini mencakup device driver, file system, virtual memory manager, windowing system, dan security devices. Pendekatan kernel mikro menggantikan pendekatan berlapis yang vertikal tradisional.
Komponen-komponen sistem operasi yang berada di luar kernel mikro diimplementasikan sebagai server process dan berkomunikasi dengan message passing via kernel mikro. Misalnya jika user ingin membuat berkas baru, dia mengirim pesan ke file system server, atau jika ingin membuat proses baru, dia mengirimkan pesan ke process server.
Gambar 7.2. Struktur kernel mikro



1.4 Kelebihan MikroKernel:

Interface yang seragam. Proses tidak lagi dibedakan, baik antara kernel-level maupun user-level, karena semuanya berkomunikasi via message passing.
Extensibility . Bisa menambahkan fitur-fitur baru tanpa perlu melakukan kompilasi ulang.
Flexibility . Fitur-fitur yang sudah ada bisa dikurangi, atau dimodifikasi sesuai dengan kebutuhan sehingga menjadi lebih efisien. Misalnya tidak semua pengguna membutuhkan security yang sangat ketat, atau kemampuan untuk melakukan distributed computing.
Portability . Pada kernel mikro, semua atau sebagian besar kode yang prosesor-spesifik berada di dalamnya. Jadi, proses porting ke prosesor lain bisa dilakukan dengan relatif sedikit usaha. Pada kelompok desktop misalnya, tampaknya dominasi Intel makin kuat. Tapi, sampai seberapa lama itu bisa bertahan? Karena itulah, portability adalah salah satu isu yang sangat penting.
Reliability . Semakin besar suatu software, maka tentulah semakin sulit untuk menjamin reliability-nya. Desain dengan pendekatan berlapis sangatlah membantu, dan dengan pendekatan kernel mikro bisa lebih lagi. Kernel mikro dapat dites secara ekstensif .Karena dia menggunakan API yang sedikit, maka bisa meningkatkan kualitas code di luar kernel.
Support for object-oriendted OS . Model kernel mikro sangat sesuai untuk mengembangkan sistem operasi yang berbasis object-oriented. Contoh sistem operasi yang menggunakan kernel mikro adalah TRU64 UNIX, MacOSX, dan QNX.

1.5 Manajemen Memory
Pada umumnya mikrokernel mendukung proses dan menajemen memori yang minimal, sebagai tambahan untuk fasilitas komunikasi. Bagian ini menjelaskan bagaimana linux menangani memori dalam sistem. Memori managemen merupakan salah satu bagian terpenting dalam sistem operasi. Karena adanya keterbatasan memori, diperlukan suatu strategi dalam menangani masalah ini. Jalan keluarnya adalah dengan menggunakan memori virtual. Dengan memori virtual, memori tampak lebih besar daripada ukuran yang sebenarnya. Dengan memori virtual kita dapat:
1. Ruang alamat yang besar
Sistem operasi membuat memori terlihat lebih besar daripada ukuran memori sebenarnya. Memori virtual bisa beberapa kali lebih besar daripada memori fisiknya.
2. Pembagian memori fisik yang adil
Managemen memori membuat pembagian yang adil dalam pengalokasian memori antara proses-proses.
3. Perlindungan
Memori managemen menjamin setiap proses dalam sistem terlindung dari proses-proses lainnya. Dengan demikian, program yang crash tidak akan mempengaruhi proses lain dalam sistem tersebut.
4. Penggunaan memori virtual bersama
Memori virtual mengizinkan dua buah proses berbagi memori diantara keduanya, contohnya dalam shared library. Kode library dapat berada di satu tempat, dan tidak dikopi pada dua program yang berbeda.
Memori Virtual
Memori fisik dan memori virtual dibagi menjadi bagian-bagian yang disebut page. Page ini memiliki ukuran yang sama besar. Tiap page ini punya nomor yang unik, yaitu Page Frame Number (PFN). Untuk setiap instruksi dalam program, CPU melakukan mapping dari alamat virtual ke memori fisik yang sebenarnya.
Penerjemahan alamat di antara virtual dan memori fisik dilakukan oleh CPU menggunakan tabel page untuk proses x dan proses y. Ini menunjukkan virtial PFN 0 dari proses x dimap ke memori fisik PFN 1. Setiap anggota tabel page mengandung informasi berikut ini:
1. Virtual PFN
2. PFN fisik
3. informasi akses page dari page tersebut
Untuk menerjemahkan alamat virtual ke alamat fisik, pertama-tama CPU harus menangani alamat virtual PFN dan offsetnya di virtual page. CPU mencari tabel page proses dan mancari anggota yang sesuai degan virtual PFN. Ini memberikan PFN fisik yang dicari. CPU kemudian mengambil PFN fisik dan mengalikannya dengan besar page untuk mendapat alamat basis page tersebut di dalam memori fisik. Terakhir, CPU menambahkan offset ke instruksi atau data yang dibutuhkan. Dengan cara ini, memori virtual dapat dimap ke page fisik dengan urutan yang teracak.
Demand Paging
Cara untuk menghemat memori fisik adalah dengan hanya meload page virtual yang sedang digunakan oleh program yang sedang dieksekusi. Tehnik dimana hanya meload page virtual ke memori hanya ketika program dijalankan disebut demand paging.
Ketika proses mencoba mengakses alamat virtual yang tidak ada di dalam memori, CPU tidak dapat menemukan anggota tabel page. Contohnya, dalam gambar, tidak ada anggota tabel page untuk proses x untuk virtual PFN 2 dan jika proses x ingin membaca alamat dari virtual PFN 2, CPU tidak dapat menterjemahkan alamat ke alamat fisik. Saat ini CPU bergantung pada sistem operasi untuk menangani masalah ini. CPU menginformasikan kepada sistem operasi bahwa page fault telah terjadi, dan sistem operasi membuat proses menunggu selama sistem operasi menagani masalah ini.
CPU harus membawa page yang benar ke memori dari image di disk. Akses disk membutuhkan waktu yang sangat lama dan proses harus menunggu sampai page selesai diambil. Jika ada proses lain yang dapat dijalankan, maka sistem operai akan memilihnya untuk kemudian dijalankan. Page yang diambil kemudian dituliskan di dalam page fisik yang masih kosong dan anggota dari virtual PFN ditambahkan dalam tabel page proses. Proses kemudian dimulai lagi pada tempat dimana page fault terjadi. Saat ini terjadi pengaksesan memori virtual, CPU membuat penerjemahan dan kemudian proses dijalankan kembali.
Demand paging terjadi saat sistem sedang sibuk atau saat image pertama kali diload ke memori. Mekanisme ini berarti sebuah proses dapat mengeksekusi image dimana hanya sebagian dari image tersebut terdapat dalam memori fisik.
Swaping
Jika memori fisik tiba-tiba habis dan proses ingin memindahkan sebuah page ke memori, sistem operasi harus memutuskan apa yang harus dilakukan. Sistem operasi harus adil dalam mambagi page fisik dalam sistem diantara proses yang ada, bisa juga sistem operasi menghapus satu atau lebih page dari memori untuk membuat ruang untuk page baru yang dibawa ke memori. Cara page virtual dipilih dari memori fisik berpengaruh pada efisiensi sistem.
Linux menggunakan tehnik page aging agar adil dalam memilih page yang akan dihapus dari sistem. Ini berarti setiap page memiliki usia sesuai dengan berapa sering page itu diakses. Semakin sering sebuah page diakses, semakin muda page tersebut. Page yang tua adalah kandidat untuk diswap.
Pengaksesan Memori Virtual Bersama
Memori virtual mempermudah proses untuk berbagi memori saat semua akses ke memori menggunakan tabel page. Proses yang akan berbagi memori virtual yang sama, page fisik yang sama direference oleh banyak proses. Tabel page untuk setiap proses mengandung anggota page table yang mempunyai PFN fisik yang sama.
Efisiensi
Desainer dari CPU dan sistem operasi berusaha meningkatkan kinerja dari sistem. Disamping membuat prosesor, memori semakin cepat, jalan terbaik adalah manggunakan cache. Berikut ini adalah beberapa cache dalam managemen memori di linux:
1. Page Cache
Digunakan untuk meningkatkan akses ke image dan data dalam disk. Saat dibaca dari disk, page dicache di page cache. Jika page ini tidak dibutuhkan lagi pada suatu saat, tetapi dibutuhkan lagi pada saat yang lain, page ini dapat segera diambil dari page cache.
2. Buffer Cache
Page mungkin mengandung buffer data yang sedang digunakan oleh kernel, device driver dan lain-lain. Buffer cache tampak seperti daftar buffer. Contohnya, device driver membutuhkan buffer 256 bytes, adalah lebih cepat untuk mengambil buffer dari buffer cache daripada mengalokasikan page fisik lalu kemudian memecahnya menjadi 256 bytes buffer-buffer.
3. Swap Cache
Hanya page yang telah ditulis ditempatkan dalam swap file. Selama page ini tidak mengalami perubahan setelah ditulis ke dalam swap file, maka saat berikutnya page di swap out tidak perlu menuliskan kembali jika page telah ada di swap file. Di sistem yang sering mengalami swap, ini dapat menghemat akses disk yang tidak perlu.
Salah satu implementasi yang umum dari hardware cache adalah di CPU, cache dari anggota tabel page. Dalam hal ini, CPU tidak secara langsung membaca tabel page, tetap mencache terjemahan page yang dibutuhkan.
Load dan Eksekusi Program
1. Penempatan program dalam memori
Linux membuat tabel-tabel fungsi untuk loading program, memberikan kesempatan kepada setiap fungsi untuk meload file yang diberikan saat sistem call exec dijalankan. Pertama-tama file binari dari page ditempatkan pada memori virtual. Hanya pada saat program mencoba mengakses page yang telah diberikan terjadi page fault, maka page akan diload ke memori fisik.
2. Linking statis dan linking dinamis
a. Linking statis:
librari-librari yang digunakan oleh program ditaruh secara langsung dalam file binari yang dapat dieksekusi. Kerugian dari linking statis adalah setiap program harus mengandung kopi library sistem yang umum.
b. Linking dinamis:
hanya sekali meload librari sistem menuju memori. Linking dinamis lebih efisien dalam hal memori fisik dan ruang disk.
1.6 Komunikasi Antar Proses
Komunikasi antar proses (Interprocess Communication) atau thread dalam suatu SO mikrokernel adalah melalui message.
• Suatu message menyertakan:
– Header yang mengidetifikasi proses
pengiriman dan penerimaan, dan
– Body yang mengandung data langsung, pointer ke suatu block data, atau beberapa informasi kontrol mengenai proses.
Fungsi utama mikrokernel adalah mendukung fasilitas komunikasi antara program klien dan bermacam-macam layanan yang juga berjalan di user space.
Komunikasi yang dilakukan secara tidak langsung, didukung oleh sistem message passing, dengan bertukar pesan melalui mikrokernel.
Salah satu keuntungan mikrokernel adalah ketika layanan baru akan ditambahkan ke user space, kernel tidak perlu dimodifikasi. Kalau pun harus, perubahan akan lebih sedikit. Hasil sistem operasinya lebih mudah untuk ditempatkan pada suatu desain perangkat keras ke desain lainnya. Mikrokernel juga mendukung keamanan reliabilitas lebih, karena kebanyakan layanan berjalan sebagai pengguna proses. Jika layanan gagal, sistem operasi lainnya tetap terjaga

1.7 Manajemen I/O & Interupsi!
Di dalam mikrokernel, adalah mungkin menangani interupsi hardware sebagai message dan menyertakan port I/O dalam ruang alamat.
– Proses user-level tertentu dilewatkan ke interrupt & kernel memelihara pemetaan tersebut.

Thread di JAVA

Sebuah thread, secara definisi adalah sebuah proses ringan. Mereka digunakan untuk meningkatkan fungsionalitas dan performansi dengan cara melakukan beberapa tugas pada saat yang sama, yaitu bersamaan. Ada dua metode untuk menerapkan thread di dalam Java,
- penerapan sebuah antarmuka
- perpanjangan sebuah class

Thread Java

Dalam kehidupan sehari-hari, penggunaan multithreading dapat kita lihat pada aplikasi web Contohnya adalah sebuah web browser yang harus menampilkan sebuah halaman yang memuat banyak gambar. Pada program yang single-threaded , hanya ada satu thread untuk mengatur suatu gambar, lalu jika gambar itu telah ditampilkan, barulah gambar lain bisa diproses. Dengan multithreading, proses bisa dilakukan lebih cepat jika ada thread yang menampilkan gambar pertama, lalu thread lain untuk menampilkan gambar kedua, dan seterusnya, di mana thread-thread tersebut berjalan secara paralel. Java adalah salah satu bahasa pemrograman yang mendukung penggunaan multithreading. Saat sebuah program Java dieksekusi, yaitu saat main() dijalankan, ada sebuah thread utama yang bekerja. Thread lain yang dibutuhkan dapat dibentuk dengan menuliskan kode program tertentu. Pada kondisi dan keperluan tertentu, thread pada program Java yang sedang dijalankan juga dapat digabung dengan thread utama ataupun dibatalkan. Keseluruhan thread dalam Java diatur oleh Java Virtual Machine (JVM) sehingga sulit untuk menentukan apakah thread Java berada di user-level atau kernel-level
Setiap program Java memiliki paling sedikit satu thread, yang otomatis terbentuk saat dieksekusi. Untuk kebutuhan tertentu, bahasa pemrograman Java memungkinkan adanya pembuatan dan manajemen thread tambahan oleh JVM (Java Virtual Machine). Sebuah
thread bisa berada di salah satu dari 4 status, yaitu new, runnable, blocked, dan dead
Ada dua cara untuk membuat thread dalam Java, yaitu dengan meng-extends kelas Thread atau dengan meng-implements interface Runnable
Dalam beberapa kondisi, thread yang dibuat dapat digabungkan dengan parent thread-nya. Penggabungan ini menggunakan method join(), yang berfungsi agar suatu thread
induk menunggu thread yang dibuatnya selesai menjalankan tugasnya, baru mulai mengeksekusi perintah selanjutnya. Pembatalan thread secara asynchronous dilakukan dengan pemanggilan method stop(). Akan tetapi, cara ini terbukti tidak aman, sehingga untuk menterminasi thread digunakanlah deferred cancellation. Pembatalan dilakukan dengan pemanggilan method interrupt() untuk mengeset status interupsi, serta isInterrupted () atau interrupted () untuk memeriksa status interupsi tersebut. Program Java dapat dijalankan di berbagai platform selama
platform tersebut mendukung JVM. Pemetaan thread Java ke host operating system tergantung pada implementasi JVM di sistem operasi tersebut.

THREAD

Thread adalah alur kontrol dari suatu proses.
Keuntungan menggunakan Multithreading:
a. Meningkatkan respon dari pengguna.
b. Pembagian sumber daya.
c. Ekonomis.
d. Mengambil keuntungan dari arsitektur multiprosessor.
Tiga model Multithreading:
a. Model Many-to-One.
b. Model One-to-One.
c. Model Many-to-Many.
Pustaka Thread bertugas untuk menyediakan API untuk programmer dalam menciptakan dan
memanage thread. Cara untuk mengimplementasikannya yaitu:
a. Menyediakan API dalam level pengguna tanpa dukungan dari kernel.
b. Menyediakan API di level kernel yang didukung secara langsung oleh sistem operasi.
Pembatalan Thread: Tugas untuk membatalkan Thread sebelum menyelesaikan tugasnya.
Pembatalan Thread terdiri dari 2 jenis:
1. Asynchronous cancellation.
2. Deffered cancellation.
Thread Pools menciptakan sejumlah Thread yang ditempatkan di dalam pool dimana Thread
menunggu untuk dipanggil.
Thread Schedulling ada 2 macam:
1. Local Schedulling.
2. Global Schedulling.
Istilah thread di Linux adalah task.
Pembuatan Thread di Linux menggunakan system call clone(). Sedangkan di Mac sekumpulan
thread yang ada akan mengerjakan tugas bergantian dengan menggunakan siklus.

Sabtu, 21 Maret 2009

Process Control Back

Tiap proses digambarkan dalam sistem operasi oleh sebuah process control block (PCB) - juga disebut sebuah control block. Sebuah PCB ditunjukkan dalam gambar(4.2). PCB berisikan banyak bagian-dari informasi yang berhubungan dengan sebuah proses yang spesifik, termasuk ini:
• Keadaan proses: Keadaan mungkin, new ,ready ,running, waiting, halted, dan juga banyak lagi.
• Program counter: Counter mengindikasikan address dari perintah selanjutnya untuk dijalankan untuk ditambah code information pada kondisi apapun. Besertaan dengan program counter, keadaan/ status informasi harus disimpan ketika gangguan terjadi, untuk memungkinkan proses tersebut berjalan/bekerja dengan benar setelahnya
(Gambar 4.3).
• Informasi manajemen memori: Informasi ini dapat termasuk suatu informasi sebagai nilai dari dasardan batas register, tabel page/ halaman, atau tabel segmen tergantung pada sistem memori yangdigunakan oleh sistem operasi (ch 9).
• Informasi pencatatan: Informasi ini termasuk jumlah dari CPU dan waktu riil yang digunakan, bataswaktu, jumlah akun, jumlah job atau proses, dan banyak lagi.
• Informasi status I/O: Informasi termasuk daftar dari perangkat I/O yang di gunakan pada proses ini,suatu daftar open file dan banyak lagi.
• PCB hanya berfungsi sebagai tempat menyimpan/gudang untuk informasi apapun yang dapatbervariasi dari prose ke proses.proses ini.
• CPU register: Register bervariasi dalam jumlah dan jenis, tergantung pada rancangan komputer.Register tersebut termasuk accumulator, index register, stack pointer, general-puposes register,


Element-elemen lain PCB antara lain:
• Identifier: A unique identifier associated with this process, to distinguish it from all other processes.
• State: If the process is currently executing, it is in the running state.
• Priority: Priority level relative to other processes.
• Program counter: The address of the next instruction in the program to be
executed.
• Memory pointers: Includes pointers to the program code and data associated with this process, plus any memory blocks shared with other processes.
• Context data: These are data that are present in registers in the processor while the process is executing.
• I/O status information: Includes outstanding I/O requests, I/O devices (e.g., tape drives) assigned to this process, a list of files in use by the process, and so on.
• Accounting information: May include the amount of processor time and clock time used, time limits, account numbers, and so on.

Kehadiran dua status Suspend

• Blocked -Blocked/Suspend: If there are no ready processes, then at least one blocked process is swapped out to make room for another process that is not blocked. This transition can be made even if there are ready processes available, if the OS determines that the currently running process or a ready process that it would like to dispatch requires more main memory to maintain adequate performance.
• Blocked/Suspend -Ready/Suspend: A process in the Blocked/Suspend state is moved to the Ready/Suspend state when the event for which it has been waiting occurs. Note that this requires that the state information concerning suspended processes must be accessible to the OS.
• Ready/Suspend - Ready: When there are no ready processes in main memory, the OS will need to bring one in to continue execution. In addition, it might be the case that a process in the Ready/Suspend state has higher priority than any of the processes in the Ready state. In that case, the OS designer may dictate that it is more important to get at the higher-priority process than to minimize swapping.
• Ready -Ready/Suspend: Normally, the OS would prefer to suspend a blocked process rather than a ready one, because the ready process can now be executed, whereas the blocked process is taking up main memory space and cannot be executed. However, it may be necessary to suspend a ready process if that is the only way to free up a sufficiently large block of main memory.Also, the OS may choose to suspend a lower-priority ready process rather than a higherpriority blocked process if it believes that the blocked process will be ready soon. Several other transitions that are worth considering are the following:
• New - Ready/Suspend and New - Ready: When a new process is created, it can either be added to the Ready queue or the Ready/Suspend queue. In either case, the OS must create a process control block and allocate an address space to the process. It might be preferable for the OS to perform these housekeeping duties at an early time, so that it can maintain a large pool of processes that are not blocked.With this strategy, there would often be insufficient room in main memory for a new process;hence the use of the (New SReady/Suspend) transition. On the other hand, we could argue that a just-in-time philosophy of creating processes as late as possible reduces OS overhead and allows that OS to perform the process-creation duties at a time when the system is clogged with blocked processes anyway.
• Blocked/Suspend -Blocked: Inclusion of this transition may seem to be poor design. After all, if a process is not ready to execute and is not already in main ,memory, what is the point of bringing it in? But consider the following scenario: A process terminates, freeing up some main memory.There is a process in the (Blocked/Suspend) queue with a higher priority than any of the processes in the (Ready/Suspend) queue and the OS has reason to believe that the blocking event for that process will occur soon. Under these circumstances, it would seem reasonable to bring a blocked process into main memory in preference to a ready process.
• Running - Ready/Suspend: Normally, a running process is moved to the Ready state when its time allocation expires. If, however, the OS is preempting the process because a higher-priority process on the Blocked/Suspend queue has just become unblocked, the OS could move the running process directly to the (Ready/Suspend) queue and free some main memory.
• Any State - Exit: Typically, a process terminates while it is running, either because it has completed or because of some fatal fault condition. However, in some operating systems, a process may be terminated by the process that created it or when the parent process is itself terminated. If this is allowed, then a process in any state can be moved to the Exit state