Pengertian Solaris
Add caption |
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.
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.
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
scanner kemudian 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 memicu timer
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 melakukan pekerjaan 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 nikmat mengambil 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.
Kelebihan
dan kekurangan solaris
Kelebihan :
- Free redistribution, setiap user bisa membeli atau memberikan secara bebas software tersebut oleh dirinya sendiri atau sebagai bagian dari kumpulan distributor.
- Derived works, setiap orang bisa mengubah kode dan mendistribusikan kembali untuk umum.
- No discrimination, kode disediakan untuk semua orang agar bisa dikembangkan.
- ZFS adalah Fasilitas Restore Mirip seperti feature Restore di sistem operasi Windows.
- Banyak tool observasi dan debugging, misal seperti tool monitoring system, modular debugger (MDB), dynamic tracing (D-Trace).
- Memiliki beberapa bentuk virtulasasi, selain virtualisasi pada tingkat system operasi seperti virtualisai pada Solaris Zone, OpenSolaris juga mendukung virtualisasi untuk Xvm hypervisor, Logical Domains (LDoms), virtualbox dan bisa juga jalan pada VMware dan beberapa framework virtualisasi yang lainnya.
- Mempunyai tingkat skalabilitas yang tinggi. OpenSolaris dapat berjalan pada single prosesor maupun multiprosesor dengan ratusan CPU dan RAM dengan ukuran terabyte.
- Integrasi AMP stack (Apache, MySQL, PHP) untuk menjalankan web server.
- Sistem file stabil untuk database, server Internet, Intranet, file-server, Internet-client, pembangunan Java.
- 10. Solaris bisa dijalankan di atas prosesor yang berspek x86,x64 dan SPARC.
Kekurangan :
- Harga sistem operasi komersil yang mahal (versi berbayar).
- Kepantasan inovasi Linux lama kelamaan memberi kesan kepada sistem Unix komersil.
- Sistem operasi Unix versi "hampir" percuma tidak sebaik sistem operasi Unix komersil.
- Driver hardware yang kurang baik.
Tidak ada komentar:
Posting Komentar