Pengertian Solaris
Solaris merupakan suatu operasi system turunan asli dari varian kernel Unix
yang dikembangkan pada tahun 1969 oleh American Telephone and Telegraph
(AT&T). Solaris pada umumnya digunakan untuk menjalankan web server dan
database server. Sejak Sun memulai membangun Solaris, pangsa pasar ditujukan
untuk perusahaan menengah ke atas (Enterprise). Solaris juga membangun sebuah
operasi system yang berfokus pada bagaimana Solaris bisa berjalan dengan baik
dan stabil dengan membandingkan operasi system dengan turunan Unix lainnya.
Solaris memberikan dukungan pada kemampuan Multiprocessor, bagaimana mengatasi
deadlock, bagaimana menjaga dan meningkatkan CPU dan bagaimana teknik
memanajemen Memory yang baik. Jika dilakukan perbandingan multiprocessor pada
mesin yang sebanding antara Solaris 10 x86, RedHat Enterprise Linux 4, RedHat
Enterprise Linux 5 dan Windows Server 2003 R2. Solaris lebih unggul
dalam stabilitas, efisiensi dan juga memiliki kinerja terbaik pada sebuah
system operasi.
Dukungan
Multiprocessor
Kernel Solaris memiliki kemampuan fully preemtible yang artinya semua
thread, termasuk thread yang mendukung aktifitas kernel itu sendiri dapat
ditunda untuk menjalankan thread dengan prioritas yang lebih tinggi; memiliki
penjadwalan secara soft realtime; mendukung symmetrically multiprocessing yang
mengoptimalkan kerja semua processornya dalam tingkatan yang sama, sehingga
memberikan kualitas akses yang sama pada hardware computer yang lain dan;
mendukung juga user-level multithreading.
Dukungan multiprocessor pertama kali ditambahkan pada kernel Solaris,
pengembang lebih mengutamakan pada kemampuan kernel, karena dengan kernel yang
stabil, mampu meningkatkan concurrency, dan juga mampu mendukung dan mengontrol
lebih dari satu thread dalam satu proses user. Thread sendiri mampu
melaksanakan system calls dan menangani page faults secara independent. Untuk
membuat kernel mendukung pengoperasian multiprocessor, thread mengontrol untuk
menjalankan proses secara bersamaan pada processor yang berbeda. Para pengembang
juga ingin kernel yang dibangun tersebut dapat beroperasi secara soft realtime,
yang diperlukan untuk mengontrol penjadwalan yang berlebihan dan preemption
adalah tindakan sementara pada proses yang sedang dilakukan oleh system
computer, untuk melanjutkan proses di lain waktu. Dan preemption ini
memungkinan untuk mengeksekusi pada banyak titik proses.
Kernel thread menggunakan resources yang sangat sedikit, dan peralihan
kernel threadnya relative sangat sedikit karena tidak memerlukan sebuah
perubahan space pada virtual memory. Kernel thread juga memiliki kemampuan
fully preemptible dan dapat menjadwalkan berdasarkan prioritas pada realtime.
Solaris mampu menggunakan kernel threads untuk memungkinkan asynchronous
aktifitas kernel, seperti menulis asynchronous disk. Hal ini menghilangkan
berbagai komplikasi dari idle loop dan menggantikannya dengan penjadwalan
thread secara independent. Hal ini meningkatkan concurrency karena
tindakan yang ditangani oleh CPU terpisah dan memberikan aktifitas pada prioritas
asynchronous sehingga dapat dijadwalkan secara tepat. Kernel thread juga
menangani interrupt. Jika thread ditemukan interrupt, maka akan menguncinya
pada blok-blok yang mengalami interrups tersebut dan memungkinkan untuk
menghapus dan mencegah terjadinya deadlock. Karena membuat thread baru setiap
kali terjadi interrupt itu sangat memakan waktu, maka kernel menyiapkan
bagian-bagian untuk menginisialisasi thread interrupt tersebut, dan ketika
interrupt terjadi maka satuan kerja tersebut memindahkannya pada tumpukan
thread interrupt.
Diagram Multithreading Levels and Relation ships
Fitur utama pada multiprocessor kernel Solaris adalah dengan
dukungan Lightweight Processes(LWPs). Dukungan LWPs sendiri adalah mendukung
beberapa control dari kernel thread pada banyak proses user, seperti yang
ditunjukan pada Gambar 2. Mereka berbagi space dengan proses, dan resources
proses. Kernel mendukung pelaksanaan LWPs dengan menghubungkan penggunaan
kernel thread dengan LWP masing-masing. Tiap-tiap user level library menggunakan
LWPs untuk mengimplementasikan user level threads. Hal ini memungkinkan proses
user memiliki ribuan thread tanpa membebankan kernel.
1. Deadlocks
Seperti
yang dibahas sebelumnya, kernel Solaris dirancang untuk mencegah deadlocks yang
disebabkan oleh thread interrupt. Hal ini dilakukan dengan memblokir
thread-thread interrupt, jika ditemukan maka variable sinkronisasi akan
terkunci dan menunggu sampai bagian yang critical sudah selesaikan. Strategi
penguncian kernel ini digunakan untuk mengunci yang berbasis data. Didalam
metode ini, setiap data dilindungi oleh objek sinkronisasi.
Kernel
juga mengimplementasikan pencegahan deadlocks menggunakan penguncian Mutual
Exclusion (mutexes) untuk mencegah lebih dari satu thread dari tiap-tiap proses
ketika ditemukan penguncian. Ini menghindari race condition ketika mengakses
data secara bersamaan. Jika mutex tidak dapat mengatur penguncian tersebut,
maka kebijakan pemblokiran defaultnya adalah dengan cara memutari penguncian
tersebut ke arah processor. Status ini akan terus berulang jika tidak
menjalankan suatu proses dan menghentikan putaran tersebut, maka statusnya pun
akan idle. Hal ini memberikan respon yang cepat dengan tingkat overhead yang
rendah.
Deadlocks
Detection juga diimplementasikan, deadlocks ini disebabkan oleh hierarchy
violations yang mendeteksi pada saat runtime dengan menggunakan mekanisme
prioritas inheritance. Karena mekanisme ini tidak mampu mendeteksi semua
deadlocks, beberapa deadlocks yang tidak dapat terdeteksi adalah dengan kondisi
yang bervariasi.
2. Virtual Memory
Pada saat
booting, Solaris membagi semua memori ke
dalam tiap-tiap halaman. Biasanya,membagi
4 kilobyte, dan dapat berkisar
hingga 4 megabyte. Solaris menggunakan algoritma LRU
Second Chance two-handed untuk sistem virtual memory. Semua
halaman diberikan kesempatan kedua bagi suatu halaman untuk berada didalam
memory karena halaman yang sudah lama berada di memory mungkin saja adalah
halaman yang sering digunakan dan akan digunakan lagi. Hal ini dilakukan oleh
thread kernel pada Solaris yang biasa disebut Scanner. Kesempatan kedua itu
direalisasikan dengan adanya bit acuan yang diset untuk suatu halaman. Halaman
yang lebih dulu diakses berada didepan antrian dan yang baru saja diakases
berada dibelakang antrian. Ketika terjadi kesalahan halaman, algoritma ini
tidak langsung mengganti halaman didepan antrian tapi terlebih dahulu memeriksa
bit acuannya. Jika bit acuannya sama dengan nol, halaman tersebut akan langsung
diganti. Jika bit acuannya sama dengan satu, halaman tersebut akan dipindahkan
ke akhir antrian dan bit acuannya diubah menjadi nol, kemudian mengulangi
proses ini untuk halaman yang sekarang berada didepan antrian.
Scanning dilakukan secara berkala pada sistem dan
tergantung pada jumlah free memory. Aktifitas
scanner sistem berada di bawah parameter lotsfree(batas
parameter untuk memulai paging dari free memory yang tersedia), yang
defaultnya adalah 1/64 dari memori utama. Pageout scannerkemudian
akan melakukan scanning antara batas tetap slowscan dan fastscan. Jika diperlukan, juga
dapat dikonfigurasi untuk menjaga scanner dari
penggunaan waktu CPU yang berlebihan.
Setelah memori turun di bawah desfree, yang defaultnya
setengah dari lotsfree, akan memicutimer yang akan mencoba
untuk mendapatkan rata-rata memori dalam waktu 30 detik di
atas desfree.Jika seperti itu maka akan memicu soft
swapping. Dalam soft swapping, akan menukar
proses yang idle untuk jangka waktu
tertentu. Proses standard idle adalah 20 detik.
Jika CPU menghabiskan lebih banyak
waktu mengganti halaman daripada melakukanpekerjaan yang
berguna (ketika rata-rata selama 30 detik turun di
bawah minfree [setengah dari desfree] dan free memory yang saat
itu dibawah desfree), maka akan masuk ke dalam swap. Jika
terdapat proses yang membutuhkan memory besar dan membutuhkan waktu yang lama
maka swap mengambil alih.Bahkan menjalankan pekerjaan yang layak
untuk swap keluar, dan
itu nikmatmengambil pekerjaan yang telah berjalan untuk
waktu yang lama atau proses yang telah mengalokasikan jumlah
yang relatif besar memori.
Sejarah
Singkat Solaris
Pada tahun 1969, engineers dari Bell Labs yang merupakan bagian dari
AT&T, membuat operasi system baru yang dibiayai oleh Departemen Pertahanan
Amerika. Sistem ini dikenal sebagai Unix, memiliki banyak fitur, namun fitur
yang paling menonjol adalah kemampuan untuk memungkinkan mengakses
beberapa user pada waktu yang bersamaan. Pada awalnya, AT&T tidak
memperbolehkan menjual perangkat lunak, karena AT&T hanya menerbitkan izin
tanpa dukungan teknis pada pihak-pihak yang berkepentingan, salah satunya pada
Lembaga Ilmu Komputer University of California, Berkley, yang menggunakan Unix
pada tahun 1974. Pada tahun 1977, lulusan U.C. Berkley menciptakan Berkley
Software versi pertama yang mendistribusikan Unix. Hal ini menarik Departemen
Pertahanan Amerika yang sedang mencari cara untuk mendesentralisasikan jaringan
komputernya. Maka bersama-sama mengembangkan cara untuk mendesentralisasikan
jaringan dan pada akhirnya tercipta World Wide Web(WWW). Pada tahun 1987 Sun
Microsystems dan AT&T bekerjasama dalam satu aliansi untuk mengembangkan
Unix System V Release 4(SVR4). Sejak saat itu Sun memperbaiki dan mendukung OS
Solaris yaitu dengan menambahkan lebih banyak lagi fitur-fitur baru, termasuk
untuk arsitektur komputer 64-bit. Versi minor SunOS yang dirilis oleh Sun
disertakan dalam penamaan Solaris, misalnya Solaris 2.4 yang merupakan SunOS
5.4. Namun setelah versi Solaris 2.6, Sun menghilangkan angka “2” di depan
kodifikasi versinya, sehingga rilis berikutnya SunOS 5.7 dinamakan sebagai
Solaris 7 dan rilis terakhir adalah Solaris 11. Oracle saat ini merilis Solaris
11 Express untuk platform SPARC dan x86, Oracle Solaris sendiri dapat berjalan
pada lebih dari 1.000 sistem dari produsen terkemuka dan memegang ratusan rekor
dunia pada Oracle’s Sun x86-based X-series server dan SPARC-based T-series dan
M-series servers. Oracle Solaris 11 Express memberikan keamanan, pengelolaan
dan kinerja yang profesional IT.
Berikut secara jelas perkembangan Solaris dalam kurun waktu sebagai
berikut;
1. 1965 :
Bell Laborotaries bergabung dengan MIT dan General Electric mengembangkan
Multics.
2. 1970 :
Ken Thompson dan Dennis Ritchie mengembangkan UNIX.
3. 1965 :
Bell Laborotaries bergabung dengan MIT dan General Electric mengembangkan
Multics.
4. 1970 :
Ken Thompson dan Dennis Ritchie mengembangkan UNIX.
5. 1971 :
Versi B-Language dari sistem operasi jalan pada PDP-11.
6. 1973 :
UNIX ditulis ulang dalam bahasa C.
7. 1974 :
Thomson dan Ritchie mempublikasikan paper dan memacu antusiasme yangbesar
terhadap UNIX di kalangan akademisi. Berkeley mulai mengembangkan BSD.
8. 1975 :
Versi license pertama UNIX BSD diluncurkan.
9. 1979 :
Bill Joy memperkenalkan "Berkeley Enhancements" sebagai BSD 4.1.
10. 1982 :
AT&T pertama kali memasarkan UNIX. Sun Microsystem berdiri (Sunsingkatan
dari Stanford University Network). Di perusahaan inilah Bill Joy sangpengembang
UNIX BSD bergabung.
11. 1983 :
Sun Microsystem memperkenalkan SunOS‡ 1984 : Sekitar 100.000 situs
UNIX tersebar di seluruh dunia.
12. 1988 :
AT&T dan Sun mengawali pekerjaan pengembangan SVR4 (System VRelease 4) yang
merupakan versi gabungan dari UNIX (BSD & System V).
13. 1988 :
OSF (Open Software Foundation) dibentuk, kemudian sebagai counternyaAT&T,
Sun, Data General, dan Unisys membentuk UI (UNIX International).
14. 1989 :
AT&T meluncurkan System V, release 4.
15. 1990 :
OSF merluncurkan OSF/1.
16. 1992 :
Sun memperkenalkan Solaris, yang berbasis System V, Release. SunOSyang berbasis
BSDF UNIX, akan di nonaktifkan.
17. 1993 :
Novell membeli UNIX dari AT&T.
18. 1994 :
Solaris 2.4 tersedia.
19. 1995 :
Santa Cruz Operation membeli UNIXware dari Novell. SCO dan HP mengumumkan kerja
sama untuk mengembangkan UNIX versi 64-bit. Solaris 2.5 tersedia di pasaran.
Pada tahun ini juga Linux, versi UNIX yang ditulis oleh Linus Tovalds secara
aktif dikembangkan dan mengalami perkembangan yang pesat dengan berkembangnya
Internet di mana komunitas developer dapat dengan mudah saling berhubungan
secara online.
20. 1997 :
Solaris 2.6 tersedia di pasaran.
21. 1998 :
Solaris 7 tersedia di pasaran.
22. 2000 :
Solaris 8 tersedia di pasaran.
23. 2001 :
Solaris 9 Beta testing Q3.
24. 2004 :
Solaris 10 diluncurkan di pasaran. Pada versi ini Sun berencana untuk
menjadikan Solaris sebagai open source. Pada versi ini Solaris dapat
menjalankan aplikasi-aplikasi yang jalan pada Linux secara native. Pada versi
sebelumnya, untuk dapat menjalankan aplikasi yang jalan di Linux pada Solaris
harus diinstall suatu package yang disebut Janus dan dijalankan sebagai suatu
service.
25. 2011 :
Solaris 11 diluncurkan di pasaran.
Sun Microsystem Inc. Memegang peranan penting pada perkembangan Sun
Solaris. Pada bulan Januari 2010, Sun Microsystem melakukan akuisisi pada
Oracle, maka Solaris dikenal sebagai Oracle Solaris. Solaris mendistribusikan
source codenya dibawah licensi Common Development and Distribution License
(CCDL). Oracle juga akan memulai program mitra teknologi yang telah dilakukan
pada produk-produk lainnya dengan nama Oracle Technology Network (OTN) yang
memberikan akses serta izin atas source code solaris tersebut.
0 komentar:
Posting Komentar