Rabu, 16 Juni 2010

OS 360
PERANG OPERATING SYSTEM

Awal Mula
Jika kita melakukan kilas balik sejarah OS, kita perlu mundur kurang lebih 50 tahun yang lalu. Apakah ada OS, maka kemudian ada mesin komputer? Ternyata tidak, sebuah mesin dapat berjalan tanpa adanya OS, sebuah program dapat langsung dijalankan pada sebuah mesin. Setidaknya itu cara kerja yang banyak terdapat pada jaman mulai dikembangkannya komputer sekitar tahun 1950 (yang juga disebut dengan abstraksi hardware). Tidak perlu susah-susah membayangkannya, contoh sederhana adalah CMOS Setup, yang merupakan program yang berjalan tanpa memerlukan OS.
Kemudian IBM mulai memperkenalkan komputer mainframe dengan OS OS/360 pada masa tahun 1960-an. Diikuti dengan Unix yang dikembangkan pada tahun 1969 oleh sebuah grup karyawan dari AT&T. Lompatan besar ditandai dengan OS PC-DOS dan MS-DOS oleh IBM dan Microsoft, seiring dengan penggunaan komputer desktop yang semakin luas.
Menambah panasnya kompetisi, Apple Macintosh (sekarang Apple Inc) mengeluarkan Mac OS. Sementara OS Unix melahirkan pengembangan-pengembangan baru, terutama pada tahun 1991 ketika Linus Torvalds memperkenalkan Linux. Microsoft sendiri secara konsisten terus mengeluarkan OS berbasis Windows, dengan produk-produk fenomenal seperti Windows 98, Windows NT, Windows XP, dan seterusnya. Hingga akhirnya, hari ini Anda mendapatkan pilihan OS yang cukup beragam, dan pilihan-pilihan tersebut bisa jadi semakin bertambah pada masa yang akan datang.

Operating System
OS merupakan software yang tidak sekedar software, karena OS menjadi ibu software-software lain yang berjalan di dalamnya. Singkatnya OS membentuk suatu platform agar aplikasi-aplikasi dapat berjalan di atasnya. Tugas OS adalah mengelola resource, secara umum terbagi atas:
1.Pengelolaan Proses.
Setiap program yang berjalan di dalam komputer (baik berupa service atau aplikasi) merupakan suatu proses. OS mengelola eksekusi proses-proses yang terjadi secara multitasking.
2.Pengelolaan Memory.
Secara hirarkis, pemrosesan tercepat pada sistem komputer dilakukan di register, lalu CPU cache, Random Access Memory (RAM), dan terakhir adalah pada disk storage. Semuanya merupakan jenis memory yang harus dikelola OS. Perhatikan bahwa disk storage juga merupakan salah satu jenis memory, karena dapat digunakan sebagai virtual memory yang menangani proses-proses yang berjalan.
3.Disk dan Sistem File.
Pengelolaan file dan directory di dalam disk drive termasuk salah satu tugas penting OS. Pada OS keluarga Unix, penamaan file dan directory adalah case sensitive atau membedakan penggunaan huruf besar dan kecil, contohnya nama file surat.txt dan Surat.Txt dalam satu directory diperkenankan, dan merupakan dua file yang berbeda.
Hal ini tidak diperkenankan dalam OS Windows, di mana penamaan file dan directory adalah case insensitive, Windows juga tidak memperbolehkan serangkaian karakter tertentu untuk penamaan file dan directory, misalnya seperti karakter “?”, “*”, “<”. “>”, dan seterusnya.
Perbedaan ini cukup mendasar untuk dipahami saat Anda menggunakan OS yang berbeda dari sebelumnya, misalnya saat Anda mengganti OS yang digunakan oleh web server dan melakukan migrasi file, pastikan file-file yang digunakan telah kompatibel dan sesuai dengan OS yang baru. Jika tidak, maka Anda harus melakukan penyesuaian nama file. Sistem file (file system) merupakan salah satu perbedaan yang juga mendasar pada sistem operasi yang tersedia, sistem file merupakan sebuah metode untuk menyimpan dan mengorganisasi file agar dapat diakses dengan mudah. Contoh sistem file yang popular adalah NTFS yang merupakan sistem file standar untuk Windows NT, termasuk versi-versi Windows di atasnya seperti Windows 2000, Windows XP, hingga Windows Vista.
Contoh lainnya adalah ext2 dan ext3, yang merupakan sistem file untuk kernel Linux. Kebanyakan distribusi Linux mendukung sistem file ext2, ext3, ReiserFS, GFS, NILFS, FAT, XFS, JFS, NTFS, dan lain sebagainya. Mac OS X mendukung HFS+ sebagai sistem file utamanya. HFS+ merupakan pengembangan dari Hierarchical File System dari MAC OS versi awal. Mac OS X memiliki fasilitas untuk membaca dan menulis dalam sistem file lain seperti FAT, NTFS, dan lain-lain.
4.Jaringan.
Pada awal dikenalnya PC masalah jaringan bukanlah hal penting, tetapi saat ini sebuah komputer rasanya tidak lengkap tanpa adanya network card yang terpasang, ditambah lagi dengan penggunaan jaringan wireless yang praktis dan semakin banyak digunakan. Karena itu sebuah OS dewasa ini harus mampu menangani jaringan dengan dukungan berbagai macam protokol jaringan yang tersedia, terutama protokol TCP/IP yang saat ini paling banyak digunakan. Dengan adanya jaringan juga memungkinkan komputer yang walaupun berbeda OS dapat berkomunikasi satu sama lain dan melakukan sharing resource.
5. Security.
Erat kaitannya dengan jaringan, maka security juga merupakan hal penting yang harus dimiliki OS. Hal ini diakibatkan karena dengan adanya jaringan semakin mempermudah proses komunikasi dan distribusi file antarkomputer. Dapat diibaratkan dengan adanya jaringan, maka komputer Anda seperti rumah dengan pintu dan jendela yang terbuka agar tamu dapat masuk berkunjung. Dalam keadaan seperti itu, perlu dijaga dari sisi keamanan agar tidak kedatangan tamu tak diundang, misalnya dengan memasang kawat nyamuk untuk mencegah nyamuk masuk. Implementasi “kawat nyamuk” ini di dalam OS dapat berupa otentifikasi user, hak akses resource, penanganan port, dan firewall. Salah satu pendapat yang keliru menyangkut masalah security adalah kekebalan OS terhadap virus, jika saat ini mayoritas virus menyerang OS Windows, tidak berarti OS lain tidak dapat terkena virus..
Pada prinsipnya, virus sama dengan software biasa, karena itu jika virus diciptakan sesuai dengan target OS tertentu, maka jadilah virus tersebut sebuah aplikasi yang berjalan pada OS yang dituju, entah OS tersebut adalah Linux, Mac OS X, Windows, ataupun OS lainnya. Lalu mengapa virus lebih banyak menyerang OS Windows? Hal ini tidak lepas dari market OS pada komputer desktop yang saat ini didominasi Windows, tetapi juga tidak dapat dipungkiri sistem operasi seperti Unix/Linux memiliki environment yang relatif lebih susah ditembus oleh virus, walau tidak berarti dijamin bebas virus.
6.Grafik.
Bagi banyak pengguna komputer, Graphical User Interface (GUI) menjadi daya tarik tersendiri. Hal ini tidak mengherankan karena GUI merupakan media interaksi antara manusia dan komputer, analoginya sebagaimana binatang peliharaan yang ramah tentu lebih disukai ketimbang binatang peliharaan yang penampilan luarnya tidak bersahabat. Momok tidak bersahabat juga pernah dialami OS Unix/Linux dan keluarganya terutama jika dibandingkan dengan OS Windows, tampilan Unix/Linux dirasakan kurang bersahabat bagi end user pada masa lalu, tetapi saat ini kebanyakan distro Linux telah memiliki GUI memikat. Mac OS X sendiri telah membuat terobosan besar pada tahun 2001 dengan perubahan inovatif dan dramatis pada GUI dari Mac OS ke Mac OS X.
7. Device Driver.
OS boleh berbeda, tetapi hardware yang digunakan bisa jadi sama. Agar hardware tersebut dapat dikenali pada OS, diperlukan device driver. Jadi device driver merupakan software agar sistem dapat berinteraksi dengan hardware, tidak semua device driver disediakan oleh OS, tetapi device driver umumnya disediakan oleh vendor hardware yang digunakan.

Kernel
Istilah kernel sering digunakan pada OS Unix/Linux dan keluarganya, tetapi sebenarnya kernel digunakan dan terdapat dalam setiap OS. Apa yang disebut kernel itu sendiri merupakan komponen pusat yang menghubungkan antara software aplikasi dan hardware komputer. Di dalam OS, kernel merupakan core atau intinya. Secara arsitektur desain, kernel dibagi atas:
1.Monolithic Kernel.
Mengintegrasikan banyak fungsi di dalam kernel serta menyediakan lapisan abstraksi hardware secara penuh.
2.Microkernel.
Menyediakan sedikit fungsi dari abstraksi hardware dan menggunakan aplikasi yang berjalan di atasnya (server) untuk melakukan beberapa fungsi lainnya.
3.Hybrid Kernel.
Microkernel yang dimodifi kasi, dengan tambahan fungsi-fungsi untuk meningkatkan performa.
4.Exokernel.
Menyediakan abstraksi hardware secara minimal, sehingga program dapat mengakses hardware secara langsung.

Windows
Keluarga OS Microsoft Windows merupakan OS yang popular untuk komputer desktop, dan juga dapat digunakan sebagai server, seperti web server ataupun database server. Kelahiran Windows diawali dengan OS MS-DOS, jika Anda termasuk orang yang dulu sering menenteng disket berukuran 5,25 inch tentu pernah mengalami masa-masa membawa OS MS-DOS di dalam sebuah disket. Windows sendiri pada awalnya bukan merupakan OS, Windows versi 1.0, versi 2.x, dan versi 3.x, merupakan software 16 bit tambahan yang berjalan di atas OS MS-DOS atau variannya. Versi selanjutnya Windows seperti Windows NT mulai merupakan OS secara penuh yang tidak tergantung lagi pada sistem operasi MS-DOS. Dengan berbasis kernel Windows NT inilah, Windows terus dikembangkan menghasilkan Windows 2000, Windows XP, Windows Server 2003, Windows Vista, Windows Server 2008, dan Windows versi yang akan datang yang saat ini disebut dengan Windows 7.

Unix/Linux
OS keluarga Unix/Linux popular digunakan sebagai server dalam dunia bisnis, dan sebagai workstation dalam dunia pendidikan dan lingkungan engineering. Untuk penggunaan sebagai komputer desktop, OS Linux popular di kalangan developer dan beberapa komunitas. Beberapa varian Unix lainnya didesain berjalan hanya pada hardware vendor tersebut seperti AIX yang berjalan pada mesin IBM, dan HP-UX yang berjalan pada mesin Hewlett Packard. Varian lainnya seperti Solaris, dapat berjalan pada beragam jenis hardware, termasuk x86 dan PC. Tersedia beragam distribusi (atau sering disebut distro) Linux, yang merupakan keluarga Unix. Beberapa pilihan distro adalah Red Hat, SuSE, Fedora, Ubuntu, Knoppix, dan lain sebagainya. Beberapa distro merupakan turunan dari distro lain. Mac OS X Dikeluarkan oleh Apple Inc, Mac OS X v10.5 dikenal dengan nama Leopard. Awalnya dikenal dengan nama Mac OS (tanpa X) yang diperkenalkan kali pertama pada tahun 2001. Karakter “X” sendiri berarti angka 10 dalam penomoran Romawi, yang dimaksudkan sebagai generasi penerus Mac OS versi sebelumnya yang dikenal dengan Mac OS 8 dan Mac OS 9. Tetapi, juga bukan kebetulan kalau Mac OS sebenarnya berbasis Unix karena menggunakan kernel BSD. Hal yang popular dalam Mac OS adalah tampilan GUI yang memikat, OS ini sendiri hanya diperuntukkan berjalan pada komputer Macintosh.

Embedded System
Jenis OS lainnya adalah embedded system, yaitu sistem komputer yang didesain secara khusus untuk keperluan tertentu. Pada embedded system yang sederhana, tidak ada perbe-daan antara sistem operasi dan aplikasi. Sebuah contoh embedded system adalah perangkat keras router, yang dilengkapi dengan elemen-elemen seperti micro-processor, RAM, dan flash memory di dalamnya.

Lain-Lain
Jenis OS lainnya adalah Novell Netware, sebenarnya Novell bukanlah 100 persen sebuah OS, karena Novell berjalan di atas OS Novell DOS (mirip dengan MS-DOS atau PC-DOS). OS lainnya yang masih digunakan dalam skala kecil adalah OS/2 dari IBM. Perkembangan OS terus berlanjut hingga saat ini, sebuah proyek dari Microsoft Research adalah mengembangkan OS dengan kemampuan memory protection, OS ini dinamakan Singularity. Dari keluarga Unix/Linux, sedang didesain GNU Hurd dengan arsitektur microkernel.
Diposkan oleh febriyanti90 di 10:57 0 komentar
MHZ
MHz menyatakan banyaknya siklus clock signal per detik, dengan bahasa yang lebih sederhana dapat dikatakan menyatakan banyaknya siklus pengangkutan data per detik, atau banyaknya proses pengangkutan data dalam satu detik.
Clock Set - Kecepatan sebuah processor yang merupakan perkalian dari sebuah nilai dengan FSB.
Cache memory adalah memory berukuran kecil berkecepatan tinggi yang berfungsi untuk menyimpan sementara instruksi dan/atau data (informasi) yang diperlukan oleh prosesor. Boleh dikatakan bahwa cache memory ini adalah memory internal prosesor. Cache memory ini berbasis SRAM yang secara fisik berukuran kecil dan kapasitas tampung datanya juga kecil atau sedikit. Pada saat ini, cache memory ada 3 jenis, yaitu L1 cache, L2 cache, dan L3 cache.

Letak cache memory

L1 cache terintegrasi dengan chip prosesor, artinya letak L1 cache sudah menyatu dengan chip prosesor (berada di dalam keping prosesor). Sedangkan letak L2 cache, ada yang menyatu dengan chip prosesor, ada pula yang terletak di luar chip prosesor, yaitu di motherboard dekat dengan posisi dudukan prosesor. Pada era prosesor intel 80486 atau sebelumnya, letak L2 cache kebanyakan berada di luar chip prosesor. Chip cache terpisah dari prosesor, berdiri mandiri dekat chip prosesor. Sejak era prosesor Intel Pentium, letak L2 cache ini sudah terintegrasi dengan chip prosesor (menyatu dengan keping prosesor). Posisi L2 cache selalu terletak antara L1 cache dengan memori utama (RAM). Sedangkan L3 cache belum diimplementasikan secara umum pada semua jenis prosesor. Hanya prosesor-prosesor tertentu yang memiliki L3 cache.

Cache memory yang letaknya terpisah dengan prosesor disebut cache memory non integrated atau diskrit (diskrit artinya putus atau terpisah). Cache memory yang letaknya menyatu dengan prosesor disebut cache memory integrated, on-chip, atau on-die (integrated artinya bersatu/menyatu/ tergabung, on-chip artinya ada pada chip).

L1 cache (Level 1 cache) disebut pula dengan istilah primary cache, first cache, atau level one cache. L2 cache disebut dengan istilah secondary cache, second level cache, atau level two cache.
Kecepatan cache memory

Transfer data dari L1 cache ke prosesor terjadi paling cepat dibandingkan L2 cache maupun L3 cache (bila ada). Kecepatannya mendekati kecepatan register. L1 cache ini dikunci pada kecepatan yang sama pada prosesor. Secara fisik L1 cache tidak bisa dilihat dengan mata telanjang. L1 cache adalah lokasi pertama yang diakses oleh prosesor ketika mencari pasokan data. Kapasitas simpan datanya paling kecil, antara puluhan hingga ribuan byte tergantung jenis prosesor. Pada beberapa jenis prosesor pentium kapasitasnya 16 KB yang terbagi menjadi dua bagian, yaitu 8 KB untuk menyimpan instruksi, dan 8 KB untuk menyimpan data.

Transfer data tercepat kedua setelah L1 cache adalah L2 cache. Prosesor dapat mengambil data dari cache L2 yang terintegrasi (on-chip) lebih cepat dari pada cache L2 yang tidak terintegrasi. Kapasitas simpan datanya lebih besar dibandingkan L1 cache, antara ratusan ribu byte hingga jutaan byte, ada yang 128 KB, 256 KB, 512 KB, 1 MB, 2 MB, bahkan 8 MB, tergantung jenis prosesornya. Kapasitas simpan data untuk L3 cache lebih besar lagi, bisa ratusan juta byte (ratusan mega byte).

Prioritas penyimpanan dan pengambilan data

Dalam mekanisme kerjanya, data yang akan diproses oleh prosesor, pertama kali dicari di L1 cache, bila tidak ada maka akan diambil dari L2 cache, kemudian dicari di L3 cache (bila ada). Jika tetap tidak ada, maka akan dicari di memori utama. Pengambilan data di L2 cache hanya dilakukan bila di L1 cahe tidak ada.

Ketika data dibaca/ditulis di memori utama (RAM) oleh prosesor, salinan data beserta address-nya (yang diambil/ditulis di memori utama) disimpan juga di cache. Sewaktu prosesor memerlukan kembali data tersebut, prosesor akan mencari ke cache, tidak perlu lagi mencari di memori utama.

Jika isi cache penuh, data yang paling lama akan dibuang dan digantikan oleh data yang baru diproses oleh prosesor. Proses ini dapat menghemat waktu dalam proses mengakses data yang sama, dibandingkan jika prosesor berulang-ulang harus mencari data ke memori utama.

Secara logika, kapasitas cache memory yang lebih besar dapat membantu memperbaiki kinerja prosesor, setidak-tidaknya mempersingkat waktu yang diperlukan dalam proses mengakses data.
Diposkan oleh febriyanti90 di 10:55 0 komentar
meta language
Metaprogramming adalah penulisan dari program komputer yang menulis atau memanipulasi program lain (atau sendiri) sebagai data, atau bagian dari yang melakukan pekerjaan pada waktu kompilasi yang dilakukan di lain waktu berjalan. Dalam banyak kasus, ini memungkinkan pemrogram untuk mendapatkan lebih banyak dilakukan dalam jumlah yang sama seperti waktu mereka akan mengambil semua untuk menulis kode secara manual.
Bahasa yang ditulis metaprogram disebut metalanguage. Bahasa program yang dimanipulasi disebut objek bahasa. Kemampuan sebuah bahasa pemrograman yang akan sendiri metalanguage disebut refleksi atau reflexivity.
Refleksi adalah bahasa fitur yang berharga untuk memfasilitasi metaprogramming. Memiliki program itu sendiri sebagai bahasa pertama-kelas tipe data (seperti di pelat atau Rebol) juga sangat berguna. Generik program invokes sebuah metaprogramming fasilitas dalam bahasa, dalam mendukung bahasa-bahasa itu.
Metaprogramming biasanya bekerja melalui salah satu dari dua cara. Cara pertama adalah untuk mendedahkan sifat-sifat yang menjalankan mesin-waktu ke kode program melalui antarmuka pemrograman aplikasi (API). Pendekatan yang kedua adalah dinamis pelaksanaan ekspresi string yang berisi perintah program. Dengan demikian, "Program-program dapat menulis program". Meskipun kedua pendekatan dapat digunakan, kebanyakan bahasa cenderung bersandar terhadap satu atau yang lain.
Sebuah contoh sederhana dari metaprogram ini adalah bash script, yang merupakan contoh dari program generatif:
#! / bin / bash
# Metaprogram
echo '#! / bin / bash'> program
untuk ((I = 1; I <= 992; I + +)) lakukan
echo "Saya $ echo">> Program
selesai
chmod + x program
Script ini (atau program) yang baru menghasilkan 993 baris-program yang akan mencetak nomor 1-992 keluar. Ini hanya gambaran tentang bagaimana menggunakan kode untuk menulis kode lebih; bukan merupakan cara yang paling efisien untuk mencetak daftar nomor. Namun, programmer dapat menulis dan menjalankan metaprogram ini hanya dalam beberapa menit, dan akan dihasilkan persis 1000 baris kode yang dalam waktu yang lama.
Tidak semua metaprogramming melibatkan generatif pemrograman. Jika program dpt diubah pada runtime (seperti di pelat, Python, REBOL, Smalltalk, Ruby, PHP, Perl, Tcl, dasar, dan JavaScript), maka teknik dapat digunakan untuk melakukan metaprogramming tanpa benar-benar menghasilkan kode sumber.
Yang paling umum adalah alat metaprogramming compiler yang memungkinkan programmer untuk menulis program yang relatif singkat dalam bahasa tingkat tinggi dan menggunakannya untuk menulis yang setara bahasa assembly atau bahasa mesin program. Ini adalah sebuah alat untuk program mendasar, karena dalam banyak kasus, ia adalah amat tak berguna untuk menulis program bahasa mesin secara langsung.
Lainnya masih cukup umum metaprogramming adalah contoh penggunaan undang-undang dan yacc, dua alat bantu yang digunakan untuk menghasilkan analisis lexical dan parsers. Yacc sering digunakan sebagai compiler compiler, suatu alat untuk menghasilkan alat untuk menterjemahkan bahasa tingkat tinggi untuk program bahasa mesin.
A quine sangat metaprogram yang memproduksi sendiri sumber kode sebagai output.
Gaya satu program yang sangat berfokus pada metaprogramming adalah bahasa berorientasi program, yang dilakukan melalui domain spesifik-program bahasa.

Tidak ada komentar: