• Tidak ada hasil yang ditemukan

Gambar Sistem Komputer [7]

N/A
N/A
Protected

Academic year: 2021

Membagikan "Gambar Sistem Komputer [7]"

Copied!
34
0
0

Teks penuh

(1)

7 BAB II

LANDASAN TEORI

2.1. Sistem Operasi

Sistem operasi merupakan program yang ditulis untuk mengendalikan dan mengkoordinasikan kegiatan dalam sistem komputer atau dapat pula diartikan sebagai sebuah program yang mengelola sistem komputer dan bertindak sebagai penghubung antara user dan komponen-komponen sistem komputer [7].

Berdasarkan sudut pandangnya, sistem operasi bisa dilihat dari dua sisi yang berbeda. Dari sisi pengguna sistem operasi memberikan gambaran dari sistem-sistem yang ada dalam PC untuk membuat sistem penyelesaian masalah menjadi lebih mudah. Sementara dari sisis sistem, sistem operasi bertindak sebagai sebuah alokator sistem, proses/task manager, dan pengendali sistem.

(2)

Sebelum program aplikasi bisa memerintahkan perangkat keras untuk melakukan suatu aktivitas, terlebih dahulu instruksi tersebut harus sesuai dengan format yang terdapat di dalam perangkat keras. Seperti telah dibahas sebelumnya, perangkat keras hanya bisa diperintah dengan menggunakan bahasa mesin dalam bentuk digital (biner). Instruksi yang diperintahkan oleh program aplikasi terlebih dahulu harus diterjemahkan kedalam bahasa mesin.

Sistem operasi memiliki fasilitas yang disebut dengan command interpreter untuk melakukan hal ini. Setelah instruksi diterjemahkan kemudian sistem operasi akan menganalisa perangkat keras mana yang dimaksud oleh sistem aplikasi untuk menjalankan instruksi tersebut. Hal ini bisa dilakukan karena sistem operasi telah memiliki data yang spesifik mengenai perangkat apa saja yang terpasang ke dalam komputer dan fungsinya masing-masing. Melalui microarchitecture dari komputer sistem operasi akan memerintahkan perangkat keras yang dimaksud untuk menjalankan instruksi yang diperintahkan oleh program aplikasi.

Beberapa tugas penting sistem operasi yaitu : 1. Manajemen proses

Manajemen proses pada sistem operasi adalah disaat sistem operasi memilah proses yang membutuhkan penggunaan processor serta berapa lama proses membutuhkan processor atau disebut process scheduling. Sistem operasi memantau processor dan status dari process yang sedang berlangsung atau

(3)

disebut traffic controller. Alokasi penggunaan CPU adalah salah satu tugas sistem operasi dalam manajemen proses. 2. Manajemen memori

Tugas sistem operasi dalam manajemen memori adalah melakukan pemantauan terhadap memori utama atau primer, sistem operasi harus mengetahui bagian pada memori yang sudah digunakan atau terpakai, layanan atau proses yang menggunakan memori tersebut, dan bagian memori yang belum digunakan. Sistem operasi bertugas untuk mengalokasikan memori pada saat suatu layanan atau proses membutuhkan memori dan menarik kembali pada saat suatu layanan atau proses tidak lagi membutuhkan memori.

3. Manajemen File

Sistem operasi bertugas melakukan manajemen file yaitu melakukan kontrol terhadap file system dan pengalokasian sumberdaya atau resources.

4. Manajemen perangkat/device

Dalam manajemen device, sistem operasi bertugas untuk memantau dan mengontrol seluruh devices yang terhubung atau dapat disebut juga dengan I/O controller. Sistem operasi bertugas memilah layanan atau proses yang membutuhkan device dan melakukan alokasi device secara efisien.

(4)

5. Aktifitas-aktifitas penting lainnya

Aktifitas lain dari sistem operasi yaitu keamanan, melakukan deteksi error, melakukan kontrol terhadap system performance, dan melakukan koordinasi antara software dengan user.

2.1.1 Jenis Sistem Operasi

Sejak awal kemunculan komputer yakni pada generasi pertama hingga saat ini, sistem operasi masih terus berkembang. Ada beberapa jenis sistem operasi yang sering digunakan, diantaranya [8] :

1. Sistem Operasi Batch

Pengguna sistem operasi batch tidak dapat berinteraksi secara langsung dengan komputer. Tiap user mempersiapkan tugas mereka pada perangkat offline seperti pada punch cards dan memberikannya kepada operator komputer. Untuk mempercepat proses, tugas yang serupa akan dikumpulkan dan dijalankan bersamaan.

Kekurangan dari sistem operasi batch adalah tidak adanya interaksi antara user dan tugasnya, sulit untuk menentukan prioritas dari program yang akan diproses, CPU sering berstatus idle dikarenakan kecepatan dari perangkat mekanik input output lebih lambat dibandingkan kecepatan dari CPU.

(5)

2. Sistem Operasi Time-sharing

Time-sharing adalah teknik yang memungkinkan banyak user di berbagai terminal, untuk menggunakan sistem komputer yang sama pada waktu yang bersamaan. Time-sharing atau multitasking adalah logical extension dari multiprogramming. Waktu yang dimiliki oleh Processor yang dibagikan kepada beberapa users secara simultan disebut dengan time-sharing. Perbedaan utama antara sistem operasi batch dengan sistem operasi time-sharing yaitu sistem operasi batch bertujuan untuk memaksimalkan penggunaan processor, sedangkan sistem operasi time-sharing bertujuan untuk meminimalisir waktu respon.

Sistem operasi time-sharing memiliki beberapa kelebihan seperti respon yang cepat, dapat menghindari adanya duplikasi software dan dapat memangkas idle time dari CPU. Namun, terdapat beberapa kekurangan dari sistem operasi time-sharing yaitu masalah reliabilitas, keamanan serta komunikasi data.

3. Sistem Operasi Distributed

Sistem operasi distributed menggunakan beberapa processor sentral untuk melayani beberapa aplikasi yang berjalan secara real-time dan digunakan pula untuk melayani beberapa users. Beberapa processor tersebut berkomunikasi satu sama lain

(6)

melalui beberapa jalur komunikasi seperti jalur telepon dan jalur high-speed buses. Sistem operasi distributed memiliki beberapa kelebihan seperti dapat saling berbagi sumberdaya, pemrosesan data berjalan lebih cepat, mengurangi beban dari host computer, dan pelayanan yang lebih baik terhadap user. 4. Sistem Operasi Network

Sistem operasi network berjalan pada sebuah server dan menyediakan kapabilitas untuk mengelola data, users, groups, security, aplikasi dan fungsi-fungsi jaringan lain kepada server tersebut. Tujuan utama dari sistem operasi network adalah untuk memungkinkan kegiatan file sharing dan akses printer ke beberapa komputer dalam suatu jaringan, biasanya jaringan Local Area Network (LAN) atau private network.

Beberapa contoh dari sistem operasi network yaitu Microsoft Windows Server 2003, Microsoft Windows Server 2008, Microsoft Windows Server 2012, Microsoft Windows Server 2016, Microsoft Windows Server 2019, Linux, UNIX, Mac OS X Server, BSD dan Novell Netware.

Sistem operasi network mempunyai beberapa kelebihan yaitu sistem yang stabil, keamanan yang baik, apabila terdapat upgrade pada sistem dan hardware dapat dengan mudah diintegrasikan kedalam sistem, dapat diakses melalui remote

(7)

access dari lokasi yang berbeda dan sistem operasi yang berbeda. Namun, terdapat beberapa kekurangan dari sistem operasi network yaitu masalah cost yang tinggi untuk pembelian serta operasional server dan membutuhkan maintenance serta update secara berkala.

5. Sistem Operasi Real Time

Sistem operasi real time dapat diartikan sebagai sistem pemrosesan data yang dimana interval waku yang dibutuhkan untuk melakukan proses serta melakukan respon terhadap suatu perintah sangat kecil. Waktu yang dibutuhkan oleh sistem untuk merespon suatu perintah dan menampilkan hasil dari suatu perintah disebut response time.

Terdapat dua jenis sistem operasi real time, yakni hard real time systems dan soft real time systems. Pada hard real time system, sistem akan menjamin bahwa tugas-tugas penting dari user akan diselesaikan tepat waktu. Sedangkan pada soft real time system sedikit terbatas, contohnya seperti virtual reality dan multimedia.

2.1.2 Kernel

Kernel adalah sebuah bagian dari sistem yang bertugas mengelola memori, kernel pun merupakan inti sistem operasi. Selain itu, kernel pun bertugas untuk mengelola file dan alat periferal, serta menjaga waktu dan

(8)

tanggal, meluncurkan aplikasi dan mengalokasikan sumber-sumber sistem dari suatu sistem operasi. Tugas dan fungsi kernel yaitu [9] :

1. Membaca dan melakukan respon terhadap perintah yang diberikan oleh user.

2. Melakukan koordinasi aliran informasi atau data antara perangkat input dan output.

3. Memastikan processor bekerja dengan benar dan membawa program serta data yang diberikan oleh user kepada memory. 4. Melakukan pengaturan program yang dijalankan oleh user.

Gambar 2.1.2 Kernel

Layanan atau service dasar dari sistem operasi dijalankan oleh kernel. Layanan atau service dasar tersebut yaitu manajemen proses, memori, file, serta perangkat input atau output atau disebut juga dengan I/O devices. Isi dari kernel bergantung dari sistem operasinya, umumnya pada kernel terdapat supervisor, scheduler, memory manager dan interrupt handler untuk menjalankan service dasar tersebut.

(9)

Scheduler bertugas untuk membagi urutan proses dan waktu. Kemudian proses yang telah dijadwalkan akan dilayani oleh supervisor. Interrupt handler menerima permintaan dari hardware yang ingin dilayani oleh kernel. Sedangkan memory manager bertugas untuk melakukan pengaturan alokasi memory address.

Kernel yang terdapat didalam sebuah sistem operasi dibuat dan di-design hanya untuk sistem operasi tersebut. Semua sistem operasi memiliki kernel didalamnya. Contohnya Microsoft Windows memiliki design kernel yang hanya dipakai oleh sistem operasi tersebut. Berbeda dengan sistem operasi Microsoft Windows, pada sistem operasi Linux, user dapat memodifikasi kernel sesuai kebutuhan, dikarenakan sistem operasi Linux bersifat opoen source, karena kernel yang terdapat pada sistem operasi Linux dapat dimodifikasi.

2.1.2.1 Jenis-Jenis Kernel

Setiap kernel memiliki design serta implementasi dari design kernel tersebut memiliki kelebihan dan kekurangan. Monolithic, microkernel, hybrid kernel, dan exokernel merupakan jenis-jenis kernel yang ada [9].

(10)

Gambar 2.1.3 Ragam desain Kernel [9]

1. Monolithic Kernel

Layanan atau service dasar dari sistem operasi seluruhnya dimiliki oleh Monolithic kernel. Monolithic kernel didesain dengan kelebihan pada sisi efisiensi, sehingga memiliki performa sistem yang optimal. Proses-proses yang membutuhkan fungsi kernel dilakukan di dalam kernel. Kelemahan dari desain monolithic kernel ini yaitu kemungkinan terjadinya crash pada sistem besar terjadi, hal tersebut terjadi akibat kurangnya stabilitas pada kernel ini.

(11)

2. Micro Kernel

Pada desain Micro Kernel, services dasar yang diperlukan oleh sistem seperti manajemen pengalamatan memori, manajemen proses, dan inter-process communication saja yang digunakan. Penggunaan services dasar yang minimal tersebut meningkatkan stabilitas sistem dari Micro Kernel. Namun, kelemahan dari Micro Kernel adalah komunikasi antar proses menjadi lebih rumit sehingga sistem kurang efisien.

3. Hybrid Kernel

Hybrid Kernel adalah pengembangkan dari Micro Kernel yang memiliki tambahan kode. Penambahan kode tersebut membuat Hybrid Kernel dapat berjalan lebih cepat daripada Micro Kernel. Hal itu merupakan salah satu kelebihan yang dimiliki oleh desain kernel tersebut.

4. Exo Kernel

Desain Exo Kernel adalah desain kernel eksperimental, penggunaanya hanya dalam lingkup tertentu dan untuk kepentingan penelitian. Exo Kernel memiliki fungsi pembagian resource untuk hardware serta memiliki fungsi perlindungan. Kelebihan dari Exo Kernel yaitu user dapat memasukkan lebih dari satu library kedalam desain kernel ini. Kelebihan tersebut membuat desain kernel ini mampu untuk menjalankan

(12)

program-program untuk sistem operasi yang berbeda di waktu yang bersamaan.

2.2 Linux

Linux adalah sistem operasi bersifat multi-user dan multi-tasking. Linux dapat berjalan di berbagai platform, termasuk processor Intel 386 maupun yang lebih tinggi. Sistem operasi Linux mengimplementasikan standar POSIX. Linux dapat berinteroperasi secara baik dengan sistem operasi lain termasuk Apple, Microsoft, dan Novell [10]. Lingkungan sistem operasi mencakup ratusan program termasuk kompiler, interpreter, editor, dan utiliti; perangkat bantu yang mendukung konektivitas, Ethernet, SLIP, PPP, serta interoperabilitas; dan produk perangkat lunak yang andal, termasuk versi pengembangan terakhir. Kelompok pengembang yang tersebar di seluruh dunia telah bekerja dan menjadikan Linux portabel ke suatu platform baru serta mendukung komunitas pengguna, yang memiliki beragam kebutuhan. Lebih lanjut, pengguna dapat turut serta bertindak sebagai tim pengembang.

Linux berkembang dengan sangat cepat, kelompok-kelompok di dunia mengembangkan sistem operasi ini. Linux dapat didapatkan dalam bentuk Distro atau distribusi. Distro adalah kumpulan dari kernel Linux, sistem dasar, program instalasi, tools dasar, serta berbagai macam program yang dipasang sesuai dengan tujuan pembuatan dari Distro tersebut. Hingga

(13)

saat ini, Distro Linux sangat banyak, namun banyaknya Distro Linux tersebut dapat terwakili oleh Distro Linux berikut :

1. Debian

Salah satu Distro Linux yang cukup popular di kalangan pengguna Linux adalah Debian. Pengguna Distro ini mulai dari kalangan pengguna Linux yang berpengalaman, hingga pengguna Linux yang masih awam. Distro ini mempunyai beberapa turunan berupa Distro baru. Distro popular turunan Debian yaitu Knoppix, Canaima, Ubuntu dan Linux Mint Debian Edition. Turunan dari Debian yaitu Ubuntu yang merupakan Distro Linux lain yang popular selain Debian, memiliki banyak turunan diantaranya adalah Xubuntu, Backtrack, Kubuntu, dan Linux Mint.

Sistem operasi Linux memiliki tiga komponen utama. Tiga komponen utama tersebut adalah kernel, system library, dan system utility. Sebagai inti dari sistem operasi Linux, kernel bertanggung jawab untuk semua aktifitas-aktifitas yang berjalan pada sistem operasi.

(14)

Gambar 2.2.1 Komponen sistem Linux [10]

System Library mempunyai tugas untuk menghubungkan software aplikasi maupun inputan dari user untuk dapat menggunakan kernel. System utility bertanggung jawab untuk melakukan tugas masing-masing. Linux memiliki arsitektur sistem yang terdiri dari empat layer, diantaranya Hardware layer, kernel, shell, dan utilities.

(15)

Gambar 2.2.2 Arsitektur sistem Linux [10]

Di lapisan terdalam terdapat hardware layer. Layer tersebut terdiri dari berbagai macam perangkat keras yang terhubung. Pada lapisan kedua, terdapat kernel atau inti dari sistem operasi. Kernel berkomunikasi atau berinteraksi secara langsung dengan hardware. Pada lapisan ketiga, terdapat shell. Shell merupakan interface untuk dapat mengakses kernel. Shell menerima perintah dari user lalu menghubungkannya ke kernel untuk dieksekusi. Di lapisan terakhir atau keempat, terdapat utilities. Utilities menyediakan program-program yang lebih fungsional kepada user [10].

(16)

2.3 Software

Software atau disebut juga dengan perangkat lunak adalah sekumpulan data elektronik yang diatur dan disimpan oleh komputer. Komputer menyimpan data elektronik berupa program atau instruksi yang akan menjalankan suatu perintah [7]. Perintah dijalankan melalui software atau perangkat lunak yang ada. Software dikelompokan menjadi beberapa kelompok diantaranya program utilitas, paket program, program aplikasi, bahasa pemrograman, bahkan sistem operasi pun masuk kedalam pengelompokan software.

2.3.1 Program Utilitas (Utility Program)

Program utilitas atau utility program merupakan suatu perangkat lunak atau software yang memiliki fungsi untuk membantu jalannya proses pada komputer. Software utility digunakan untuk memberikan kemudahan kepada user dalam pengoperasian sistem komputer [7]. Sebetulnya, fungsi-fungsi dari software utility tersebut telah terdapat dalam sistem operasi. Namun, fitur yang ditampilkan oleh software utility jauh lebih mudah. Salah satu software utility yang popular adalah Norton Utilities. Norton Utilities menyediakan banyak fitur menarik kepada user untuk mengatur sistem komputer.

Jenis-jenis program utilitas terbagi atas 2 diantaranya: 1. Program Utilitas Internal (bawaan)

(17)

Utility internal merupakan utility yang sudah ada pada sistem operasi. Utility tersebut secara default sudah terinstall pada saat user melakukan instalasi sistem operasi. Contoh : Paint (untuk menggambar), Wordpad (untuk menulis), Notepad (untuk menulis), Windows Media Player (multimedia), Calculator, dan lain-lain. Utility internal banyak terdapat di Control Panel, misalnya add or remove programs, printer and faxes, fonts, system dan lain-lain.

2. Program Utilitas Eksternal (Bukan Bawaan)

Utility External adalah utility yang bukan bawaan dari sistem operasi. Pengguna harus menginstall terlebih dahulu.

2.3.2 Utilitas Diagnostik

Utilitas diagnostik adalah suatu teknik untuk mengumpulkan informasi teknis mengenai perangkat keras atau hardware dari sebuah perangkat. Setelah informasi dikumpulkan maka informasi tersebut dapat dijadikan suatu laporan yang menggaris bawahi masalah-masalah yang teridentifikasi. Dalam utilitasi hardware, biasanya yang dihimpun merupakan informasi mengenai pemantauan kinerja dari empat resources inti yaitu CPU, Memory, Network, dan Disk I/O.

(18)

2.3.3 Tools Utilitas Diagnostik

Tools utilitas diagnostik merupakan suatu aplikasi yang memiliki fungsi – fungsi utilitas diagnostik. Beberapa tools utilitas diagnostik diantaranya sebagai berikut :

2.3.3.1 Htop

Htop adalah sebuah perangkat lunak yang dapat memberikan informasi mengenai penggunaan resource perangkat keras seperti, CPU, Memory, dan Disk. Perangkat lunak htop berjalan di sistem operasi linux.

2.3.3.2 Portainer

Portainer adalah sebuah perangkat lunak yang dapat memberikan gambaran keseluruhan dari Docker seperti list container, docker images, docker log docker, dan container stats.

2.4 Hardware

Secara umum, sistem terdiri dari elemen-elemen yang saling berhubungan membentuk satu kesatuan untuk melaksanakan suatu tujuan pokok dari sistem tersebut. Tujuan utama dari sistem komputer yaitu mengolah data untuk menghasilkan informasi. Untuk mencapai tujuan utama tersebut perlu didukung oleh elemen-elemen yang terdiri dari tiga komponen utama, diantaranya perangkat keras (hardware), perangkat lunak (software), dan brainware [7].

(19)

Sistem komputer, bekerja atas adanya hardware dan software. Secara konsep, sistem komputer yang sederhana terdiri dari CPU, memory, serta input devices and output devices dan semua saling terhubung dan dapat berkomunikasi satu sama lain melalui sistem bus.

Gambar 2.4.1 Sistem Komputer [7]

2.4.1 Central Processing Unit (CPU)

CPU merupakan otak sistem komputer, dan memiliki dua bagian fungsi operasional yaitu ALU (Arithmetical Logical Unit) sebagai pusat pengolah data dan CU (Control Unit) sebagai pengontrol kerja komputer [7].

(20)

2.4.4.1 Control Unit

Control Unit merupakan salah satu bagian dari processor yang bertugas mengatur dan mengendalikan semua peralatan yang ada pada sistem komputer. Unit kendali akan mengatur kapan alat input menerima data dan kapan data diolah serta kapan ditampilkan pada alat output. Unit ini juga mengartikan instruksi-instruksi dari program komputer, membawa data dari alat input ke memori utama, dan emngambil data dari memori utama untuk diolah [7]. Bila ada instruksi untuk perhitungan aritmatika atau perbandingan logika, maka unit kendali akan mengirimkan instruksi tersebut ke Arithmetic and Logic Unit (ALU).

2.4.1.2 Arithmetic and Logic Unit

Tugas utama dari Arithmetic and Logic Unit atau 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 [7].

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 sama dengan (>=).

(21)

2.4.1.3 Register

Register merupakan alat penyimpanan kecil yang mempunyai kecepatan akses cukup tinggi, yang digunakan untuk menyimpan data dan instruksi yang sedang diproses sementara data dan instruksi lainnya yang menunggu giliran untuk diproses masih disimpan di dalam memori utama [7]. 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. Program yang berisi kumpulan dari instruksi-instruksi dan data diletakkan di memori utama yang diibaratkan sebagai sebuah meja.

Kita mengerjakan program tersebut dengan memproses satu per satu instruksi yang pertama dan berurutan hingga yang terakhir. Instruksi ini dibaca dan diingat (instruksi yang sedang diproses disimpan di register). Misalnya instruksi berbunyi HITUNG C = A + B, maka kita membutuhkan data untuk nilai A dan B yang masih ada di meja (tersimpan di memori utama). Data ini dibaca dan masuk ingatan kita (data yang sedang diproses disimpan di register), yaitu misal A bernilai 2 dan B bernilai 3. Saat ini ingatan otak kita telah tersimpan suatu instruksi, nilai A, dan nilai B, sehingga nilai C dapat dihitung yaitu sebesar 5 (proses perhitungan ini dilakukan di ALU). Hasil dari perhitungan ini perlu dituliskan kembali ke meja (hasil pengolahan disimpan kembali ke memori utama). Setelah semua selesai,

(22)

kemungkinan data, program, dan hasilnya disimpan secara permanen untuk keperluan di lain hari sehingga perlu disimpan di dalam lemari kabinet (penyimpanan sekunder).

2.4.2 Memory

CPU hanya dapat menyimpan data dan instruksi di register yang berukuran kecil sehingga tidak dapat menyimpan semua informasi yang dibutuhkan untuk keseluruhan proses program. Untuk mengatasi hal ini, maka CPU harus dilengkapi dengan alat penyimpanan yang berkapasitas lebih besar yaitu memori utama (main memory) [7]. Unit ini dapat dibayangkan sebagai sekumpulan kotak-kotak yang masing-masing dapat menyimpan sepenggal informasi baik berupa data maupun instruksi. Tiap-tiap lokasi dari kotak ditunjukkan oleh suatu alamat (address), yaitu berupa nomor yang menunjukkan lokasi tertentu dari kotak memori. Ukuran memori ditunjukkan oleh satuan byte, misalnya 1 Mb, 4 Mb, 8 Mb, atau bahkan ada yang sampai 256 Mb. Padahal umumnya 1 byte memori terdiri dari 8-32 bit (binary digit) yaitu banyaknya digit biner (0 dan 1) yang mampu disimpan dalam satu kotak memori.

2.4.3 I/O System

I/O system bertugas melakukan manajemen beberapa perangkat I/O seperti keyboard, mouse, monitor, printer, speaker dan lain sebagainya. I/O system merupakan salah satu fungsi penting dari sistem operasi. I/O system

(23)

dibutuhkan untuk mengambil request dari aplikasi I/O kemudian dikirimkan kepada perangkat fisik setelah itu menerima kembali respon apapun dari perangkat untuk dikirim ke aplikasi. Terdapat dua kategori I/O devices yaitu block devices dan character evices. Block device adalah dimana driver melakukan komunikasi dengan mengirim sekumpulan blok-blok data contohnya seperti hard disks. Sedangkan, character devices adalah dimana driver melakukan komunikasi dengan mengirim dan menerima karakter-karakter single (bytes, octets) contohnya seperti parallel ports, serial ports, dan lain sebagainya [11].

2.4.4 Device Controller

I/O devices atau perangkat-perangkat I/O biasanya mengandung komponen – komponen elektronika dan komponen – komponen mekanika dimana komponen elektronik biasa disebut dengan device controller. Sebuah device controller bekerja layaknya interface diantara device dan device driver. Device driver adalah modul-modul perangkat lunak yang dapat dimasukan kepada sistem operasi untuk menangani device tertentu. Sistem operasi mendapatkan bantuan dari device drivers untuk menangani seluruh perangkat I/O [11].

Selalu ada sebuah device controller dan sebuah device driver untuk setiap device dalam berkomunikasi dengan sistem operasi. Sebuah device controller memungkinkan untuk menangani banyak devices. Tiap device yang terhubung dengan komputer dihubungkan ke sebuah device controller.

(24)

Gambar 2.4.2 Device Controller [11] 2.5 Cloud Computing

Cloud Computing atau komputasi awan adalah teknologi yang menjadikan internet sebagai pusat pengelolaan data dan aplikasi. Esensi dari cloud computing adalah tahap berikutnya dari inovasi dan adopsi platform untuk computing, networking, dan teknologi storage yang didesain untuk memberikan waktu yang cepat kepada pasar serta penghematan modal bagi penyedia layanan [12].

Sedangkan menurut [13] Cloud Computing adalah evolusi dari berbagai macam jenis teknologi yang telah datang bersama-sama untuk mengubah teknik atau metode suatu organisasi dalam membangun infrastruktur, terutama infrastruktur teknologi dan informasi.

Definisi Cloud Computing atau komputasi awan menurut National Institute of Standards and Technology (NIST) adalah model untuk menyediakan kemudahan akses bersama dalam berbagi sumber daya (networks, servers, storage, applications, dan services) [12].

(25)

2.6 Server

Server adalah sebuah komputer yang mendukung aplikasi dan

telekomunikasi dalam jaringan, serta pembagian peralatan software, dan database di antara berbagai terminal kerja dalam jaringan. Server juga diartikan sebagai versi software untuk pemasangan server jaringan yang didesain untuk mengendalikan dan mendukung aplikasi pada mikrokomputer client dalam jaringan client atau server. Server merupakan layanan database yang ditangani oleh piranti software yang berdiri sendiri dan terdapat pada komputer yang terpisah dari client/pengguna. Server umumnya dapat menangani permintaan client dalam jumlah yang banyak [14].

2.7 Virtualisasi

Virtualisasi dapat diartikan sebagai pembuatan suatu bentuk atau versi virtual dari sesuatu yang bersifat fisik, misalnya sistem operasi, perangkat storage atau sumber daya jaringan. Virtualisasi adalah teknologi inti dibalik infrastruktur cloud computing [15]. Teknologi ini memungkinkan pengalokasian resources atau sumber daya IT secara dinamis.

Virtualisasi melakukan isolasi terhadap satu sumber daya komputasi dengan sumber daya komputasi lainnya. Setiap elemen dalam suatu sumber daya komputasi dapat bekerja sendiri – sendiri dalam waktu yang bersamaan. Hal ini dikarenakan di dalam logic stack sudah dipisahkan dalam bentuk layer-layer. Biasanya sebuah mesin virtual berisi sistem operasi beserta aplikasi yang kemudian dioperasikan secara independen dari sistem operasi

(26)

yang terdapat langsung pada server fisikal seolah – olah berada pada discrete hardware-nya sendiri. Beberapa mesin virtual dapat dijalankan pada sebuah server fisikal, hal ini bertujuan untuk mengurangi server fisikal.

Implementasi virtualisasi diantaranya :

1. Virtualisasi presentasi, hal ini memungkinkan user untuk melakukan remote. Remote memungkinkan user untuk mengakses aplikasi dan sistem operasi pada sebuah host yang jauh. Biasanya digunakan oleh user untuk mengakses data yang terdapat pada suatu komputer yang lokasinya tidak sama dengan lokasi user. User yang melakukan remote dapat memanipulasi data, mendapatkan hak akses ke dalam aplikasi, dan menggunakan sumber daya lain yang mungkin tersedia.

2. Virtualisasi aplikasi, dilakukan dengan cara mengisolasi aplikasi yang berjalan pada sistem operasi yang sama. Hal tersebut memungkinkan provisioning dengan cepat serta membantu menghilangkan konflik yang berpotensi terjadi. Biasanya, aplikasi melakukan update ke registry. Namun, dengan virtualisasi aplikasi, aplikasi dapat melakukan update ke virtual registry. Dengan hal tersebut, sistem mendapatkan kebutuhan aplikasi tersebut tanpa mengganggu aplikasi lain.

3. Virtualisasi desktop, memungkinkan setiap end user menentukan akses melalui sebuah remote graphics protocol serta dapat melakukan host desktop pada mesin virtual dalam data center.

(27)

Aplikasi – aplikasi yang berkaitan dapat berjalan secara simultan pada desktop user dan memungkinkan pembuatan sistem operasi environment yang dipisah dengan desktop user.

4. Virtualisasi server, jenis virtualisasi ini bekerja dengan cara memisahkan sistem operasi yang secara logical diisolasi dari host server-nya. Virtualisasi server akan meningkatkan penggunaan resources (hardware, utilities, space).

2.7.1 Virtualisasi Server

Terdapat tiga cara dalam membangun virtualisasi server yaitu Traditional Server (bare metal), virtual machines, dan containers [16]. Dibawah ini akan dijelaskan masing-masing dari ketiga metode membangun virtualisasi server.

2.7.1.1 Traditional Server Setup (Bare Metal)

Traditional Server Setup adalah solusi sederhana dari sebuah pembangunan server. Sebelum adanya metode virtual machine dan container, metode bare metal ini lebih sering diimplementasikan pada banyak instansi. Aplikasi secara langsung dijalankan diatas sistem operasi yang di-install secara langsung diatas server fisik.

(28)

Gambar 2.7.1 Arsitektur Traditional Server [16] Kelebihan Traditional Server Setup (Bare Metal)

Keuntungan dari metode pembangunan server secara bare metal, yaitu :

1. Pemanfaatan resources, dengan metode bare metal, aplikasi dapat memanfaatkan lebih banyak sumber daya yang ada. Hal ini dikarenakan metode ini dalam menjalankan aplikasi lebih dekat dengan fisikal server yang memiliki sumber daya.

2. Isolation, aplikasi dan data yang ada dapat terisolasi secara fisik dari aplikasi yang lain. Sebagai perbandingan, beberapa virtual machine dan container saling berbagi environments. Kekurangan Traditional Server Setup (Bare Metal)

1. Biaya yang mahal merupakan masalah utama dari metode bare metal ini. Server fisik yang memiliki resouces yang handal memiliki harga yang cukup mahal.

(29)

2. Deployment time yang sangat lambat, saat melakukan beberapa perubahan maka akan membutuhkan kehadiran server fisik yang baru.

3. Sulit untuk melakukan pengembangan, membeli server tambahan, melakukan setting, dan melakukan konfigurasi sangatlah memakan waktu.

4. Sumber daya yang terbuang, hal yang sangat jarang apabila sebuah aplikasi membutuhkan seluruh resources yang disediakan oleh server fisik.

5. Konfigurasi yang kompleks, banyak tools yang harus disiapakan dalam melakukan konfigurasi server untuk sebuah aplikasi yang spesifik.

6. Sulit untuk melakukan migrasi, memindahkan satu server fisik ke server fisik yang lain merupakan hal yang sulit dan memakan waktu.

2.7.1.2 Virtual Machine

Metode Virtual Machine atau VM mampu menjalankan beberapa guest sistem operasi beserta aplikasi – aplikasinya dalam satu server fisik. VM dijalankan diatas hypervisor yang bertugas melakukan manajemen terhadap VM, membagi resources dan network interface [16].

(30)

Gambar 2.7.2 Arsitektur Virtual Machine [16] Kelebihan Virtual Machine (VM)

VM memiliki beberapa kelebihan daripada metode traditional server setup (bare metal), diantaranya :

1. Penggunaan resources yang baik, dapat dilihat dari pembagian beberapa VM dari satu server fisik. Resources dapat dibagikan berdasarkan prioritas oleh hypervisor dan juga VM dapat menggunakan siklus yang sedang tidak terpakai oleh VM lainnya. 2. Mudah di backup dan migrasi, beberapa vendor VM telah menyediakan mekanisme untuk melakukan backup, restore dan migrasi dengan lebih mudah.

3. Mudah dikembangkan, aplikasi tambahan yang dibutuhkan dapat terus ditambahkan dengan cara menambah VM dengan catatan bahwa resources yang ada masih tersisa.

4. Fleksibilitas, arsitektur VM yang berbeda dapat berjalan secara bersama-sama

(31)

5. Biaya yang lebih efisien, dibandingkan dengan membeli beberapa server fisik, biaya yang dikeluarkan apabila menggunakan VM relatif lebih sedikit.

Kekurangan Virtual Machine (VM)

1. Vendor lockin, sulit untuk pindah ke vendor yang lain ketika menggunakan salah satu solusi virtualisasi dari suatu vendor. 2. Permasalahan dalam alokasi resources, untuk menjamin

resources secara spesifik untuk sebuah VM, masih sangat sulit ketika semua resources dalam keadaan dibagikan.

3. Konfigurasi yang kompleks, konfigurasi VM untuk beberapa aplikasi dinilai masih sangat kompleks.

2.7.1.3 Virtualisasi Berbasis Container (Container – based)

Perbedaan virtualisasi container-based dengan metode virtualisasi lainnya terletak pada penggunaan kernel dari sistem operasi milik host untuk menjalankan beberapa guest instance (containers). Container – based dinilai jauh lebih ringan daripada beberapa metode sebelumnya. Hal tersebut dikarenakan penggunaan kernel dari sistem operasi milik host serta tidak mengandalkan hypervisor untuk mengatur resources. Container – based juga memungkinkan membangun container yang terisolasi yang mana setiap container memiliki root filesystems, memory, memory, devices, network interface-nya, dan proses sendiri – sendiri.

(32)

Gambar 2.7.3 Arsitektur Container – Based [16]

Kelebihan Container – Based, diantaranya :

1. Isolation, setiap aplikasi berjalan pada container instance nya sendiri.

2. Lightweight (ringan), container – based hanya membutuhkan resources yang lebih sedikit dibandingkan dengan metode traditional server setup (bare metal) serta VM. Container – based secara langsung menggunakan sistem operasi kernel milik host dan tidak melalui hypervisor.

3. Resources yang efektif, hal ini dikarenakan containers menggunakan sistem operasi yang dimiliki oleh host.

4. Overhead rendah, hal ini dikarenakan container – based menggunakan kernel yang telah dibagi.

5. Mudah dalam migrasi, hal ini karena container merupakan instance yang diisolasi dan tidak bergantung pada sistem operasi guest.

(33)

6. Keamanan, container – based memungkinkan dalam memiliki keamanan yang baik karena memiliki aplikasi – aplikasi yang masing – masing terisolasi.

7. Mirror production dan development environtment, tiap container yang berisi aplikasi diatasnya, dapat di shipped dengan mudah dari local machine kedalam hosting environment.

8. Komunitas, bagi container – based sendiri memiliki banyak komunitas untuk saling berkomunikasi serta berbagi satu sama lain, salah satunya adalah komunitas Docker.

Kekurangan Container – Based, diantaranya :

1. Aplikasi yang membutuhkan resources yang besar tidak cocok dengan metode container-based ini.

2. Arsitektur terbatas, container saling berbagi kernel dengan sistem operasi milik host.

(34)

2.8 Docker

Docker merupakan sebuah project open-source yang menyediakan platform terbuka untuk developer maupun system administrator, agar dapat membangun, mengemas dan menjalankan aplikasi di berbagai lokasi sebagai sebuah container yang ringan. Docker merupakan mesin open-source yang mengotomatisasi penyebaran aplikasi ke dalam containers [17]. Docker dapat berperan sebagai virtualisasi dari sebuah sistem operasi atau sebuah server (web server atau database server).

2.9 Web Real-Time Communication

WebRTC (Web Real-Time Communication) merupakan sebuah proyek open-source yang memungkinkan untuk dilakukannya komunikasi real-time lintas web browser. Teknologi ini berjalan diatas backbone web browser modern. Komunikasi tersebut nantinya terdiri dari pemanfaatan suara, video, dan konektifitas menggunakan Javascript API tanpa plugin tambahan [18].

Gambar

Gambar 2.1.1 Sistem Komputer [7]
Gambar 2.1.2 Kernel
Gambar 2.1.3 Ragam desain Kernel [9]
Gambar 2.2.1 Komponen sistem Linux [10]
+7

Referensi

Dokumen terkait

Ibu Rina Surani sebagai Pengelola Program HIV/AIDS di DKK Kabupaten Karanganyar terima kasih telah menyediakan waktunya dalam memberikan informasi yang berguna

Bentuk pe- mahaman gerak dan terkait dengan ruang spherical yang terbentuk di- olah oleh Forsythe menjadi sebuah diagram untuk gerakan balet, ter- lihat bahwa seorang penari balet

Laporan Kinerja (LKj) Bagian Tata Pemerintahan Umum Sekretariat Daerah disusun dengan maksud melaksanakan amanat Peraturan Presiden Republik Indonesia Nomor 29

Studi ini mengeksplorasi pemaknaan kewirausahaan pada tiga etnis di Indonesia yakni Jawa, Minang, dan Tionghoa, dengan menggunakan perspektif representasi sosial,

Halaman Daftar Isi merupakan halaman yang berisi pintu penghubung kesemua halaman yang ada di APLIKASI DAFTAR MENU DIGITAL DIRESTORAN ini.&#34;.

Meningkatkan pengetahuan masy khususnya USILA tentang Katarak Posbindu Wil Kerja Puskesmas panunggangan Masyarakat mengetahui ciri-ciri awal &amp; tindakan yang

Jaminan tersebut bukanlah jumlah maksimum kerugian jika pasar bergerak berlawanan dengan posisi Anda, namun sebagian dari modal total yang Anda setorkan juga turut menanggung

9 Ajaran tersebut akan tampak dalam kehidupan sehari-hari para umat Buddha di Dusun Timo Kerep ini, kesederhanaan yang sangat jelas tampak yakni dari bangunan rumah