BAB 2
LANDASAN TEORI
2.1 CPU (Central Processing Unit) dan Bagian-bagiannya
CPU (central processing unit) atau sering disebut juga dengan istilah prosesor, adalah bagian dari sebuah sistem komputer yang melakukan instruksi dari program komputer, dan merupakan unsur utama yang melaksanakan fungsi komputer. Prosesor juga seringkali disebut orang sebagai otak dari sebuah komputer, namun juga sering disalah pahami sebagai chasis atau casing dari sebuah komputer. Sebuah CPU terdiri dari beberapa bagian atau komponen, antara lain:
a. Control Unit, yaitu bagian yang mampu mengatur jalannya program. Juga bertugas mengatur komputer sehingga terjadi sinkronisasi kerja antar komponen dalam menjalankan fungsi-fungsinya. Tugas lain dari control unit adalah mengambil intruksi-intruksi dari memori utama dan menentukan jenis instruksi tersebut. Bila ada instruksi untuk perhitungan aritmatika atau perbandingan logika, maka control unit akan mengirim instruksi tersebut ke ALU. Hasil dari pengolahan data dibawa oleh control unit ke memori utama lagi untuk disimpan, dan pada saatnya akan disajikan ke alat output. Dengan demikian tugas dari unit kendali ini adalah: 1. Mengatur dan mengendalikan alat-alat input dan output. 2. Mengambil instruksi-instruksi dari memori utama. 3. Mengambil data dari memori utama (jika diperlukan) untuk diproses. 4. Mengirim instruksi ke ALU bila ada perhitungan aritmatika atau perbandingan logika serta mengawasi kerja dari ALU. 5. Menyimpan hasil proses ke memori utama.
Universitas Sumatera Utara
10
b. Registers, merupakan alat penyimpanan kecil yang mempunyai kecepatan akses cukup tinggi, yang digunakan untuk menyimpan data dan/atau instruksi yang sedang diproses. Memori ini bersifat sementara, biasanya di gunakan untuk menyimpan data saat di olah ataupun data untuk pengolahan selanjutnya. Secara analogi, register ini dapat diibaratkan sebagai ingatan di otak bila kita melakukan pengolahan data secara manual, sehingga otak dapat diibaratkan sebagai CPU, yang berisi ingatan-ingatan, satuan kendali yang mengatur seluruh kegiatan tubuh dan mempunyai tempat untuk melakukan perhitungan dan perbandingan logika.
c. Arithmetic Logic Unit (ALU), unit yang bertugas untuk melakukan operasi aritmetika dan operasi logika berdasar instruksi yang ditentukan. ALU sering di sebut mesin bahasa karena bagian ini ALU terdiri dari dua bagian, yaitu unit arithmetika dan unit logika boolean yang masing-masing memiliki spesifikasi tugas tersendiri. Tugas utama dari ALU adalah melakukan semua perhitungan aritmatika (matematika) yang terjadi sesuai dengan instruksi program. ALU melakukan semua operasi aritmatika dengan dasar penjumlahan sehingga sirkuit elektronik yang digunakan disebut adder. Tugas lain dari ALU adalah melakukan keputusan dari suatu operasi logika sesuai dengan instruksi program. Operasi logika meliputi perbandingan dua operand dengan menggunakan operator logika tertentu, yaitu sama dengan (=), tidak sama dengan (!=), kurang dari (<), kurang atau sama dengan (£ ), lebih besar dari (>), dan lebih besar atau sama dengan (=).
d. CPU Interconnections, adalah sistem koneksi dan bus yang menghubungkan komponen internal CPU, yaitu ALU, control unit dan registers dan juga dengan bus eksternal CPU yang menghubungkan dengan sistem lainnya, seperti memori utama, piranti masukan /keluaran (Hartono, hal:154).
Universitas Sumatera Utara
11
Gambar 2.1 Diagram blok sederhana sebuah CPU
2.2 Thread
Menurut buku sistem operasi: Bahan Kuliah IKI 20230 di halaman 39, secara informal, proses adalah program yang sedang dieksekusi. Ada dua jenis proses, proses berat (heavyweight) atau biasa dikenal dengan proses tradisional, dan proses ringan atau kadang disebut thread. Thread saling berbagi bagian program, bagian data dan sumber daya sistem operasi dengan thread lain yang mengacu pada proses yang sama. Dengan banyak kontrol thread proses dapat melakukan lebih dari satu pekerjaan pada waktu yang sama.
2.2.1 Keuntungan adanya thread
Menurut buku sistem operasi: Bahan Kuliah IKI 20230 di halaman 39, berikut adalah keuntungan dari adanya thread:
Universitas Sumatera Utara
12
a. Tanggap: Multithreading mengizinkan program untuk berjalan terus walau pun pada bagian program tersebut di-block atau sedang dalam keadaan menjalankan operasi yang lama atau panjang. Sebagai contoh, multithread web browser dapat mengizinkan pengguna berinteraksi dengan suatu thread ketika suatu gambar sedang di-load oleh thread yang lain. b. Pembagian sumber daya: Secara default, thread membagi memori dan sumber daya dari proses. Keuntungan dari pembagian kode adalah aplikasi mempunyai perbedaan aktifitas thread dengan alokasi memori yang sama. c. Ekonomis: Mengalokasikan memori dan sumber daya untuk membuat proses adalah sangat mahal. Alternatifnya, karena thread membagi sumber daya dari proses, ini lebih ekonomis untuk membuat threads. d. Pemberdayaan arsitektur multiprosesor: Keuntungann dari multithreading dapat ditingkatkan dengan arsitektur multiprosesor, dimana setiap thread dapat jalan secara paralel pada prosesor yang berbeda. Pada arsitektur prosesor tunggal, CPU biasanya berpindah-pindah antara setiap thread dengan cepat, sehingga terdapat ilusi paralelisme, tetapi pada kenyataannya hanya satu thread yang berjalan di setiap waktu.
2.2.2 Model multithreading
Menurut buku sistem operasi : Bahan Kuliah IKI 20230 di halaman 41, sistem-sistem yang ada sekarang sudah banyak yang bisa mendukung untuk kedua thread yang terbentuk oleh pengguna (user) dan juga thread yang dibentuk oleh kernel (kernel thread), sehingga model-model multithreading-nya pun menjadi beragam.
Universitas Sumatera Utara
13
Gambar 2.2 Multithreading
2.3 Prosesor Dual-Core
Sebuah thread secara sederhana dapat diartikan sebagai sebuah aliran data pada prosesor di sebuah sistem. Setiap aplikasi menciptakan sebuah atau beberapa aliran thread-nya sendiri tergantung bagaimana ia bekerja. Dengan arus pengerjaan beberapa tugas sekaligus (multitasking), sebuah prosesor hanya dapat menangani sebuah aliran thread pada satu waktu, sehingga sistem secara bergantian akan menangani beberapa aliran thread tersebut untuk memproses data, yang akan terlihat seperti dilakukan secara bersamaan namun sebenarnya hal tersebut dilakukan secara bergantian dalam kecepatan yang sangat tinggi.
Keuntungan dari memiliki beberapa prosesor adalah sistem dapat menangani lebih dari satu aliran thread pada satu waktu. Setiap prosesor dapat menangani sebuah aliran data yang terpisah. Hal ini akan meningkatkan performa dari sistem yang menjalankan aplikasi-aplikasi secara bersamaan, misalnya adalah sebuah server.
Universitas Sumatera Utara
14
Gambar 2.3 Diagram prosesor dual-core
Secara konsep, arsitektur sebuah prosesor dual-core dapat digambarkan seperti pada gambar 2.3, yaitu sebuah chip IC (Integrated Circuit) yang terdiri dari dua buah physical prosesor lengkap atau disebut dengan Core. Hal ini berarti dua buah prosesor yang identik dibuat, sehingga mereka berada bersebelahan satu sama lain dalam 1 die. Juga dimungkinkan menumpukkan secara vertikal dua buah die prosesor yang terpisah dan meletakkan mereka dalam IC yang sama (Anirban, hal:2).
2.4 Server, Web Server, dan Mail Server
Server biasanya merupakan komputer berkecepatan tinggi dengan kapasitas memori RAM (Random Access Memori) dan media penyimpanan (storage) yang besar, dan dihubungkan dengan kartu jaringan yang cepat. Untuk mendukung kinerja yang tinggi, pada server dimungkinkan untuk dipasang beberapa prosessor secara simetrik. Demikian juga peralatan lain seperti mainboard, power supply, dan RAM yang berkualitas tinggi, sehingga server mampu bekerja secara terus-menerus tanpa berhenti untuk melayani permintaan. Sistem operasi jaringan juga dipilih untuk bekerja pada komputer tersebut, bersama perangkat lunak aplikasi dan file data yang diperlukan (Wagito, 2005, hal:23). Web server atau HTTP server adalah program yang dapat menerima koneksi
Universitas Sumatera Utara
15
HTTP (Hyper Text Transfer Protocol) serta melayani permintaan tersebut. Program ini akan bekerja untuk melayani seluruh permintaan koneksi HTTP yang ditujukan kepada server tersebut dan mengirimkan tanggapan kepada client HTTP (Wagito, 2005, hal:247).
Menurut Wagito juga (2005, hal:294), E-mail (Electronic Mail) server atau disebut juga dengan Mail server adalah program yang berusaha menyebarkan file atau informasi untuk menanggapi suatu permintaan melalui pengiriman e-mail. Mail server ini akan berlaku sebagai MTA (Mail Transfer Agent) terhadap e-mail yang akan dikirimkan ke alamat tujuan atau terhadap e-mail yang ditujukan kepada Mail server itu sendiri.
2.5 Servis-servis Sistem Operasi (Operating System Services)
Sebuah sistem operasi menyediakan sebuah lingkungan (environment) untuk eksekusi suatu program. Servis apa yang akan disediakan tentu saja akan berbeda pada setiap sistem operasi, tetapi ada kesamaan kelas (classes) yang dapat diidentifikasi. Servisservis sistem operasi ini akan disediakan bagi kebutuhan programmer, untuk mempermudah pekerjaan pemrograman.
Sebagai tambahan, beberapa bagian fungsi sistem operasi ada bukan untuk membantu pengguna (user), namun lebih untuk menjamin efisiensi operasi pada sistem itu sendiri. Sistem dengan beberapa orang pengguna dapat memperoleh operasi yang efisien dengan berbagi resource diantar para pengguna (Silberschatz et al, 1998, hal:55).
Menurut buku sistem operasi : Bahan Kuliah IKI 20230 di halaman 7, proses adalah keadaan ketika sebuah program sedang di eksekusi. Sebuah proses membutuhkan beberapa sumber daya untuk menyelesaikan tugasnya. sumber daya tersebut dapat berupa CPU time, memori, berkas-berkas, dan perangkat-perangkat I/O.
Universitas Sumatera Utara
16
2.6 Alokasi Resource dan Beban Kerja (Workload)
Ketika ada beberapa user atau beberapa pekerjaan yang berjalan pada saat yang bersamaan, resource harus dialokasikan untuk semua user. Ada banyak jenis resource yang diatur oleh sistem operasi. Beberapa diantaranya adalah siklus penggunaan CPU (Central Processing Unit), main memory, dan media penyimpanan file. Semuanya memiliki kode alokasi yang spesial, dimana yang lainnya seperti alat input dan output (IO) memiliki akan membutuhkan banyak general request dan release code. Misalnya, dalam menentukan bagaimana sebaiknya penggunaan CPU, sistem operasi memiliki CPU-scheduling routines yang akan menentapkan penggunaan kecepatan CPU, pekerjaan yang harus dieksekusi, berapa banyak register yang tersedia, dan banyak faktor lainnya (Silberschatz et al, 1998, hal:55).
Lingkungan komputasi modern harus menyediakan respon yang flesksibel terhadap bermacam-macam beban kerja (workload) yang dihasilkan oleh aplikasiaplikasi yang berbeda di dalam sistem. Beban kerja (workload) adalah kumpulan semua proses dari sebuah aplikasi atau kelompok aplikasi (Lageman, 2005, hal:11).
2.7 Sistem Operasi OpenSolaris
OpenSolaris adalah sebuah sistem operasi (OS), sebuah source base, dan sebuah komunitas. Tujuan dari proyek ini adalah inovasi, kolaborasi, dan perluasan dari teknologi OpenSolaris.
Sistem operasi Solaris adalah sistem operasi yang didukung penuh oleh Sun dan sebuah sistem operasi enterprise yang telah teruji, dan versi yang akan dari Solaris akan berdasarkan pada teknologi dari proyek OpenSolaris. Solaris tersedia sebagai sebuah aplikasi binary yang bisa diunduh (free binary download), dan Sun menawarkan layanan paket (packages) dan update berkala.
Universitas Sumatera Utara
17
Sistem operasi OpenSolaris adalah sebuah pengembangan berbasis komunitas (community-developed) dari sebuah sistem operasi berdasarkan pada source code dari Solaris, dan merupakan rilis pertama dari proyek Indiana (Indiana Project). Sistem operasi ini dapat berjalan pada prosesor-prosesor Intel dan AMD, baik pada server dan desktop. Sistem operasi ini bersifat free (bebas) untuk digunakan, dimodifikasi, dan didistribusikan. Dukungan disediakan oleh Sun Microsystems.
Berikut adalah kebutuhan spesifikasi minimal sistem operasi OpenSolaris:
a. RAM minimal 512 Megabyte, rekomendasi 1 Gygabyte. b. Space harddisk minimal sebesar 4 Gigabyte untuk paket-paket aplikasi minimal dan 6 Gigabyte untuk paket-paket aplikasi yang populer. c. Platform yang didukung antara lain Sun UltraSPARC, Fujitsu SPARC64, 32 dan 64 bit berbasiskan AMD, Intel dan VIA x86 CPU.
2.8 Solaris Containers
Kemajuan Sun Microsystem dalam virtualisasi server (server virtualization) adalah pada konsep yang disebut dengan Solaris Containers. Solaris Containers menyediakan isolasi antar aplikasi perangkat lunak ataupun servis-servis yang memiliki batasanbatasan yang fleksibel. Aplikasi-aplikasi dapat diatur secara independen satu sama lain, bahkan ketika sedang berjalan dalam satu lingkup yang sama dari sistem operasi Solaris. Solaris Containers membuat sebuah batasan lingkungan (environment) dalam satu buah lingkup sistem operasi Solaris dan menyediakan :
a. Full resource containment and control : untuk level servis yang lebih dapat diprediksi. b. Software fault isolation : untuk meminimalisir kesalahan perkembangan dan downtime yang tidak direncanakan. c. Security isolation : untuk mencegah akses yang tidak diizinkan seperti halnya dengan gangguan yang tidak disengaja.(Lageman, 2005, hal:1)
Universitas Sumatera Utara
18
Gambar 2.4 Sistem dengan 3 Containers, 1 Containers dengan 1 buah CPU tersendiri dan 2 Containers yang berbagi CPU yang sama
2.9 Keuntungan Utama dari Solaris Containers
Beberapa keuntungan utama dari penggunaan Solaris Containers adalah :
a. Mengurangi management cost melalui konsolidasi server, dan pengurangan dari jumlah sistem operasi yang dibutuhkan. b. Meningkatkan utilitas resource dengan relokasi penggunaan resource yang dinamis antara Containers. c. Meningkatkan ketersediaan servis (service availability) dengan meminimalisir kesalahan propagasi dan pelanggaran keamanan antara aplikasi-aplikasi. d. Meningkatkan fleksibilitas, karena perangkat lunak yang berbasiskan Containers dapat dikonfigurasi secara dinamis. Meningkatkan akurasi dan fleksibilitas accounting, karena berdasarkan pada beban kerja daripada berdasarkan pada sistem-sistem ataupun proses-proses (Lageman, 2005, hal:2).
Universitas Sumatera Utara
19
2.10 Pengalokasian Penggunaan Prosesor
Fair Share Scheduler (FSS) mengatur pengalokasian penggunaan resource CPU dengan menggunakan CPU-Shares. Kepentingan terhadap beban kerja ditunjukkan dengan nilai dari pembagian yang dialokasikan terhadap sebuah project yang menggambarkan beban kerja tersebut.
Fair Share Scheduler mengkalkulasi proporsi dari resource prosesor yang dialokasikan kepada sebuah project dengan membagi nilai bagian untuk project dengan nilai total bagian dari semua project yang aktif. Sebuah project yang aktif adalah project dengan paling sedikit satu buah proses yang menggunakan resource prosesor.
Sebagai contoh, misalnya project A, B, dan C memiliki bagian 2, 1, dan 4 secara berturut-turut. Jika project A, B, dan C semuanya aktif, maka project A bernilai 2/7, project B bernilai 1/7, dan project C bernilai 4/7 dalam pembagian penggunaan resource. Jika project A sedang tidak aktif, project B akan bernilai 1/5, dan project C bernilai 4/5. Perhatikan bahwa walaupun secara aktual nilai penggunaan resource untuk project B dan C meningkatkan, namun proporsi penggunaan resource antara project B dan C tetap berbanding 1:4.
Gambar 2.5 Fair Share Scheduler mendistribusikan resource prosesor
Universitas Sumatera Utara
20
Perlu diperhatikan bahwa Fair Share Scheduler hanya membatasi penggunaan prosesor jika ada kompetisi dalam penggunaan resource prosesor. Jika hanya ada satu project yang aktif pada sistem, project tersebut dapat 100 % menggunakan resource prosesor tanpa memperhatikan berapa nilai pembagian yang diberikan. CPU cycles tidak akan pernah terbuang (Lageman, 2005, hal:17).
2.11 Manfaat Pembuatan Lingkungan Virtual (Virtual Environtment)
Solaris Zones menyediakan cara untuk membuat satu atau lebih lingkungan virtual (virtual environment) pada satu buah sistem operasi, melindungi aplikasi dari detail perangkat keras (hardware). Aplikasi pada sebuah zone (lingkungan) berjalan secara terisolasi terhadap aplikasi di dalam zone yang lain. Aplikasi-aplikasi tersebut tidak bisa melihat, memonitor ataupun mempengaruhi proses-proses yang berjalan di zone yang lain. Solaris Zones menyediakan beberapa fasilitas sebagai berikut:
a. Isolasi keamanan (security isolation), meyakinkan penyusup yang mencoba masuk ke sebuah zone (zona) tidak akan memiliki akses ke zone yang lain pada sistem. b. Isolasi aplikasi (application isolation), meyakinkan aplikasi-aplikasi yang ada pada sebuah zone tidak dapat berinteraksi dengan aplikasi-aplikasi pada zone yang lain. Interaksi aplikasi tidak diizinkan untuk komunikasi jaringan Internet Protocol (IP), atau ketika diizinkan secara khusus oleh administrator global zone. c. Virtualisasi (virtualization), menyediakan sebuah lingkungan tervirtualisasi yang menyembunyikan detil hardware dari aplikasi, misalnya adalah nama physical device, alamat IP utama pada sistem, dan nama host. Sebagai tambahan untuk menyediakan keamanan dan isolasi aplikasi, virtualisasi dapat juga digunakan untuk mempercepat ketetapan aplikasi. d. Granularity, memungkinkan kendali yang tersebar merata pada resource sistem melalui lingkungan virtual (virtual environment) yang banyak, yang semuanya saling berbagi kernel sistem operasi. Sebagai contoh, bila lingkungan virtual tidak membutuhkan izin untuk menggunakan physical
Universitas Sumatera Utara
21
prosesors, persentase minimum dari resource CPU dapat diizinkan. e. Transparansi (transparency), menyakinkan sebuah lingkungan virtual tidak memberikan sebuah application programming interface (API) atau application binary interface (ABI) kepada aplikasi yang harus di-porting. Interface standar sistem operasi Solaris dan lingkungan-lingkungan aplikasi disediakan. Beberapa batasan diberikan, dan aplikasi-aplikasi utama yang berpengaruh akan mencoba melakukan operasi yang istimewa. Batasan-batasan ini adalah bagian dari model implementasi pengamanan (Lageman, 2005, hal:53).
Universitas Sumatera Utara