1.5. Batasan Masalah

2.1.4. Proses

Menurut Silberschatz (2005), proses tidak hanya sekedar suatu kode program, melainkan meliputi beberapa aktivitas yang bersangkutan seperti program counter dan stack. Sebuah proses juga melibatkan stack yang berisi data sementara (parameter fungsi/metode, return address, dan variabel lokal) dan data section yang menyimpan variabel-variabel global.

Menurut Tanenbaum (2001), proses adalah sebuah program yang dieksekusi yang mencakup program counter, register, dan variabel di dalamnya. Proses yang dieksekusi mempunyai lima status yang terdiri dari:

1. New : Pembentukan suatu proses.

3. Waiting : Proses menunggu untuk beberapa event yang terjadi.

4. Ready : Proses menunggu untuk dialirkan ke pemroses (processor).

5. Terminated : Proses telah selesai dieksekusi.

Gambar 2. 1 : Diagram status proses

Sebuah proses dapat memiliki karakteristik sebagai unit of

resource ownership atau unit of dispatching. Unit of resource ownership akan mengabstraksi alamat virtual untuk menyimpan proses image dan dari waktu ke waktu, proses diberi memori utama ditambah kendali terhadap sumber daya lain. Biasa disebut dengan proses atau task.

2.1.5. Thread

Unit of dispatching akan memiliki satu jalur eksekusi (trace). Eksekusi ini mungkin bergantian (interleaving) dengan proses lain. Sebuah proses memiliki status proses dan prioritas penjadwalan yang digunakan oleh sistem operasi sebagai informasi untuk melakukan

penjadwalan processor. Biasa disebut dengan thread atau lightweight process.

Thread terdiri dari dua bentuk, yaitu user thread dan kernel thread. User thread adalah thread yang diatur dengan menggunakan pustaka level thread. Sedangkan kernel thread adalah thread yang didukung oleh kernel.

Proses merupakan sebuah program yang mengeksekusi thread tunggal. Kendali thread tunggal ini hanya memungkinkan proses untuk menjalankan satu tugas pada satu waktu. Maka dari itu dikembangkan sebuah konsep agar memungkinkan sebuah proses untuk mengeksekusi multi-threads. Salah satu contoh aplikasi yang perlu menjalankan beberapa tugas serupa adalah web server.

Gambar 2. 2 : Proses single thread dan multithread

1. Responsif, menjadi tetap responsif meski sebagian dari program sedang melakukan operasi atau tugas kepada pengguna.

2. Berbagi sumber daya, mengizinkan sebuah aplikasi untuk

mempunyai beberapa thread yang berbeda dalam lokasi memori yang sama.

3. Ekonomis, lebih ekonomis dalam pembuatan sebuah proses.

4. Utilisasi arsitektur multiprocessor, setiap thread dapat berjalan secara paralel di atas processor yang berbeda.

2.1.6. Kernel

Kernel adalah komponen sentral dari sistem operasi yang mengatur hal-hal seperti interrupt handler (layanan interupsi), process scheduler (pembagian proses dalam processor), memory management, input/output, dan sebagainya. Dengan kata lain bisa dikatakan bahwa kernel adalah jembatan antara hardware dengan software.

Ada 2 cara untuk membangun sistem operasi, yaitu :

1. Cara tradisional, membuat kernel monolitis, yaitu semua fungsi disediakan oleh kernel, dan menjadikan kernel program yang besar dan kompleks.

2. Cara modern, menggunakan kernel mikro, yaitu dengan mengimplementasikan fitur-fitur yang diperlukan saja, bisa disesuaikan dengan kebutuhan sistem operasi.

Setiap distro linux memiliki versi kernel yang kemungkinan berbeda satu dengan lainnya. Format dari sebuah kernel linux bertuliskan X.Y.Z yang terdiri dari 3 bagian yaitu Major Number (X), Minor Number (Y), dan Revision Number (Z) yang masing-masing terpisah oleh tanda titik.

Major Number, terletak pada awal penulisan kode. Pada format penulisan dilambangkan dengan X. Angka pada major number akan jarang berubah untuk waktu yang lama. Jika terjadi perubahan pada angka ini, menandakan adanya perubahan besar atau upgrade terhadap kernel.

Minor Number, terletak pada tengah penulisan kode. Pada format penulisan dilambangkan dengan Y. Minor Number bisa berupa angka ganjil atau angka genap. Angka ganjil mengandung experimental code dan fitur terbaru yang ditambahkan oleh developernya (sedang dalam tahap pengembangan). Sedangkan angka genap menandakan kernel yang stabil dan ketika dirilis tidak ada penambahan apapun.

Revision Number, terletak pada akhir penulisan kode. Pada format penulisan dilambangkan dengan Z. Revision Number menunjuk pada nomor revisi yang menandakan current patch versi tersebut. Pada tahap pengembangan, versi baru bisa dirilis hingga dua kali seminggu.

2.2 Linux

2.2.1 Pengertian Linux

Linux adalah sebuah program open source gratis di bawah lisensi

GNU (GNU‟s Not Unix) yang merupakan turunan dari Unix yang dapat

dijalankan di berbagai macam platform perangkat keras. Linux didesain oleh Linus Torvalds yang terinspirasi dengan lisensi GNU, pengguna dapat memperoleh kode sumbernya (source code), mengubah kode sumber tersebut dan mengkopi sebanyak yang diinginkan.

Kernel linux membentuk inti dari sistem operasi linux yang menyediakan semua fungsi yang diperlukan untuk menjalankan proses dan menyediakan servis sistem untuk memberikan pengaturan dan proteksi akses ke sumber daya perangkat keras.

2.2.2 Distro Linux

Distro atau distribusi linux merupakan kernel linux dan kumpulan aplikasi-aplikasi linux yang dipaketkan oleh perusahaan, organisasi atau personal yang tertarik dengan linux. Pemaketan dilakukan berdasarkan kebutuhan. Saat ini sudah banyak sekali distro turunan, namun distro induk/besar yang terkenal antara lain adalah redhat, debian, dan slackware.

Distro induk memiliki sistem manajemen paket yang berbeda-beda

ditandai dengan ekstensi file paket, misalnya debian memiliki ekstensi *.deb, redhat memiliki ekstensi *.rpm dan slackware memiliki ekstensi

*.tgz/*txz. Ekstensi ini akan tetap digunakan oleh turunan dari distro induk tersebut. Misal ubuntu merupakan turunan dari debian, maka ekstensi yang digunakan adalah *.deb. Selain itu tiap-tiap distro memiliki dependensi (ketergantungan) terhadap package lain. Contohnya meskipun sama-sama berekstensi .deb, apabila dependensinya tidak terpenuhi maka tidak dapat diinstal. Perbedaan versi dan penamaan package juga dapat menjadi masalah tersendiri.

2.3. Server

2.3.1. Pengertian Server

Server adalah komputer yang “melayani” sesuatu. Server umumnya dapat menangani permintaan client dalam jumlah yang banyak secara simultan.

Server merupakan sebuah sistem komputer yang menyediakan jenis layanan tertentu dalam sebuah jaringan komputer. Server didukung dengan processor bersifat scalable dan RAM yang besar, juga dilengkapi sistem operasi jaringan yang memiliki berbagai macam layanan yang dapat diakses oleh client.

Terdapat dua jenis server, yaitu dedicated server dan undedicated server. Pada dedicated server hanya tersedia satu layanan saja. Sedangkan undedicated server memiliki beberapa layanan di dalamnya, sehingga hanya digunakan pada jaringan yang tidak terlalu besar.

2.3.2. Layanan

Berikut ini merupakan layanan yang secara umum terdapat pada server, antara lain :

1. DHCP server (Dynamic Hosting Configuration Protocol), merupakan pemberian dan pengalokasian alamat IP pada jaringan secara otomatis. Sehingga client yang akan berkomunikasi akan mendapatkan alamat IP secara otomatis.

2. DNS server (Domain Name System), merupakan sistem yang menyimpan informasi tentang nama host maupun nama domain dalam bentuk basis data terdistribusi di dalam jaringan komputer.

3. Web server, salah satu layanan dari server yang berfungsi untuk melayani permintaan web pages oleh client melalui protokol HTTP

atau HTTPS dan memberikan response dengan mengirimkan

dokumen berupa HTML.

4. FTP server (File Transfer Protocol), merupakan salah satu layanan dari server yang digunakan untuk melakukan transaksi pengiriman suatu file. Layanan ini paling banyak digunakan oleh pemakai internet.

5. Mail server, layanan yang digunakan untuk melakukan pengiriman surat (mail) menggunakan protokol internet.

6. Proxy server, sebuah layanan yang bertindak sebagai perantara antar client dan public network, dapat menghemat bandwidth serta filtering kepada client.

Dalam dokumen Analisis dan perbandingan distro linux untuk server web konfigurasi default. (Halaman 33-41)