Modul 1 Multimedia

  1. a.     Definisi

Sebagaimana kita ketahui bahwa pada dasarnya komputer itu terdiri atas unsur-unsur hardware dan software. Hardware merupakan bagian luar yang dapat terlihat dan nampak oleh kasat mata sementara software merupakan unsur yang tidak dapat terlihat fisik ataupun wujudnya. Istilah software yang dikenal juga dengan istilah perangkat lunak, merupakan suatu unsur terpenting dalam pengoperasian suatu komputer yang mana pada setiap bagian memiliki fungsi dan peran masing-masing.

Menurut Microsoft dalam “The Hallowen Document”, terdapat beberapa jenis lisensi yang dapat digunakan untuk program komputer. Beberapa jenis lisensi tersebut antara lain adalah :

Lisensi Commercial adalah jenis lisensi yang biasa ditemui pada perangkat lunak seperti Microsoft dengan Windows dan Officenya, Lotus, Oracle dan lain sebagainya. Software yang diciptakan dengan lisensi ini memang dibuat untuk kepentingan komersial sehingga user yang ingin menggunakannya harus membeli atau mendapatkan izin penggunaan dari pemegang hak cipta.

Lisensi Trial Software adalah jenis lisensi yang biasa ditemui pada software untuk keperluan demo dari sebuah software sebelum diluncurkan ke masyarakat atau biasanya sudah diluncurkan tetapi memiliki batas masa aktif. Lisensi ini mengizinkan pengguna untuk menggunakan, menyalin atau menggandakan software tersebut secara bebas. Namun karena bersifat demo, seringkali software dengan lisensi ini tidak memiliki fungsi dan fasilitas selengkap versi komersialnya. Dan biasanya dibatasi oleh masa aktif tertentu.

Lisensi Non Commercial Use biasanya diperuntukkan untuk kalangan pendidikan atau yayasan tertentu di bidang sosial. Sifatnya yang tidak komersial, biasanya gratis tetapi dengan batasan penggunaan tertentu. Lisensi Shareware mengizinkan pemakainya untuk menggunakan, menyalin atau menggandakan tanpa harus meminta izin pemegang hak cipta. Berbeda dengan Trial Software, lisensi ini tidak dibatasi oleh batas waktu masa aktif dan memiliki fitur yang lengkap. Lisensi jenis ini biasanya ditemui pada software perusahaan kecil.

Lisensi Freeware biasanya ditemui pada software yang bersifat mendukung, memberikan fasilitas tambahan atau memang free/gratis. Contoh yang bersifat mendukung antara lain adalah plug in tambahan yang biasanya menempel pada software induk seperti Eye Candy yang menempel pada Adobe Photoshop.

Lisensi Royalty-Free Binaries serupa dengan lisensi freeware, hanya saja produk yang ditawarkan adalah library yang berfungsi melengkapi software yang sudah ada dan bukan merupakan suatu software yang berdiri sendiri.

Lisensi Open Source membebaskan usernya untuk menjalankan, menggandakan, menyebarluaskan, mempelajari, mengubah, dan meningkatkan kinerja software. Berbagai jenis lisensi open source berkembang sesuai dengan kebutuhan, misalnya GNU/GPL, The FreeBSD, The MPL. Jenis-jenis software yang memakai lisensi ini misalnya Linux, sendmail, apache dan FreeBSD.

Perangkat lunak berlisensi atau dikenal juga perangkat lunak berbayar merupakan perangkat lunak yang telah dipatenkan atas penciptaan code-code pembangun perangkat lunak tersebut dan tidak dapat diubah/dimodifikasi ke dalam bentuk lain dari code-code pembangun perangkat lunak tersebut tanpa seizin pembuat perangkat lunak bersangkutan. Sementara itu, perangkat lunak bebas merupakan suatu perangkat lunak yang bebas untuk digunakan, dipelajari dan diubah serta dapat disalin dengan atau tanpa modifikasi, atau dengan beberapa keharusan untuk memastikan bahwa kebebasan yang sama tetap dapat dinikmati oleh pengguna-pengguna berikutnya. Bebas di sini juga berarti dalam menggunakan, mempelajari, mengubah, menyalin atau menjual sebuah perangkat lunak, tanpa perlu meminta izin dari siapa pun.

Perangkat lunak bebas (free software) jangan disalahartikan dengan perangkat lunak gratis (freeware) yaitu perangkat lunak yang digunakan secara gratis. Perangkat lunak gratis dapat berupa perangkat lunak bebas atau perangkat lunak tak bebas. Sejak akhir tahun 1990-an, beberapa alternatif istilah untuk perangkat lunak bebas digulirkan seperti “perangkat lunak sumber terbuka” (open-source software), “software libre“, “FLOSS”, dan “FOSS”.

Berikut ini adalah contoh-contoh perangkat lunak bebas adalah sebagai berikut.

Dengan telah mengetahui software-software mana yang berbayar dan software mana yang dapat dengan bebas kita gunakan dengan aman dan dapat kita gunakan secara long life time, maka selayaknyalah kita harus sudah dapat dengan bijak mengenali, mengetahui, dan memahami konsekuensi dalam hal pemilihan jenis software yang akan kita install ke dalam komputer yang kita miliki. Pilihlah jenis software yang kiranya sesuai dengan budget dan keinginan yang kita miliki. Kenali pula kelompok/keluarga dari software yang dipilih tersebut, karena antara sistem operasi dan program aplikasi yang masing-masing telah memiliki pasangannya masing-masing. Sangat dimungkinkan program aplikasi A bisa berjalan di sistem operasi X namun tidak dapat berjalan di sistem operasi Y ataupun Z.

  1. b.     Klasifikasi software

Secara umum software dapat kita bagi menjadi 3, yakni sistem operasi, program aplikasi, dan Bahasa Pemrograman. Pada bagian ini kita akan bahas satu persatu kategori-kategori software tersebut satu persatu sebagai berikut.

1)     Sistem operasi

Biasanya, istilah Sistem Operasi sering ditujukan kepada semua software yang masuk dalam satu paket dengan sistem komputer sebelum aplikasi-aplikasi software terinstall. Dalam Ilmu komputer, Sistem operasi atau dalam bahasa Inggris: operating system atau OS adalah perangkat lunak sistem yang bertugas untuk melakukan kontrol dan manajemen perangkat keras serta operasi-operasi dasar sistem, termasuk menjalankan software aplikasi seperti program-program pengolah kata dan browser web.

Secara umum, Sistem Operasi adalah software pada lapisan pertama yang ditempatkan pada memori komputer pada saat komputer dinyalakan. Sedangkan software-software lainnya dijalankan setelah Sistem Operasi berjalan, dan Sistem Operasi akan melakukan layanan inti umum untuk software-software itu. Layanan inti umum tersebut seperti akses ke disk, manajemen memori, skeduling task, dan antar-muka user. Sehingga masing-masing software tidak perlu lagi melakukan tugas-tugas inti umum tersebut, karena dapat dilayani dan dilakukan oleh Sistem Operasi. Bagian kode yang melakukan tugas-tugas inti dan umum tersebut dinamakan dengan “kernel” suatu Sistem Operasi.

Apablia sistem komputer terbagi dalam lapisan-lapisan, maka Sistem Operasi adalah penghubung antara lapisan hardware dan lapisan software. Lebih jauh daripada itu, Sistem Operasi melakukan semua tugas-tugas penting dalam komputer, dan menjamin aplikasi-aplikasi yang berbeda dapat berjalan secara bersamaan dengan lancar. Sistem Operasi menjamin aplikasi software lainnya dapat menggunakan memori, melakukan input dan output terhadap peralatan lain, dan memiliki akses kepada sistem file. Apabila beberapa aplikasi berjalan secara bersamaan, maka Sistem Operasi mengatur skedule yang tepat, sehingga sedapat mungkin semua proses yang berjalan mendapatkan waktu yang cukup untuk menggunakan prosesor (CPU) serta tidak saling mengganggu.

Dalam banyak kasus, Sistem Operasi menyediakan suatu pustaka dari fungsi-fungsi standar, dimana aplikasi lain dapat memanggil fungsi-fungsi itu, sehingga dalam setiap pembuatan program baru, tidak perlu membuat fungsi-fungsi tersebut dari awal.

Sistem Operasi secara umum terdiri dari beberapa bagian:

  1. Mekanisme Boot, yaitu meletakkan kernel ke dalam memory;
  2. Kernel, yaitu inti dari sebuah Sistem Operasi;
  3. Command Interpreter atau shell, yang bertugas membaca input dari pengguna;
  4. Pustaka-pustaka, yaitu yang menyediakan kumpulan fungsi dasar dan standar yang dapat dipanggil oleh aplikasi lain;
  5. Driver untuk berinteraksi dengan hardware eksternal, sekaligus untuk mengontrol mereka.

Sebagian Sistem Operasi hanya mengizinkan satu aplikasi saja yang berjalan pada satu waktu, tetapi sebagian besar Sistem Operasi baru mengizinkan beberapa aplikasi berjalan secara simultan pada waktu yang bersamaan. Sistem Operasi seperti itu disebut sebagai Multi-tasking Operating System. Beberapa Sistem Operasi berukuran sangat besar dan kompleks, serta inputnya tergantung kepada input pengguna, sedangkan Sistem Operasi lainnya sangat kecil dan dibuat dengan asumsi bekerja tanpa intervensi manusia sama sekali. Sebagai contoh, yang dimaksud sistem operasi itu antara lain adalah Windows, Linux, Free BSD, Solaris, palm, dan sebagainya.

Sistem operasi-sistem operasi utama yang digunakan komputer sistem umum (termasuk PC, komputer personal) terbagi menjadi 3 kelompok besar:

  1. Keluarga Microsoft Windows – yang antara lain terdiri dari Windows Desktop Environment (versi 1.x hingga versi 3.x), Windows 9x (Windows 95, 98, dan Windows ME), dan Windows NT (Windows NT 3.x, Windows NT 4.0, Windows 2000, Windows XP, Windows Server 2003, Windows Vista, Windows 7 (Seven) yang akan dirilis pada tahun 2009, dan Windows Orient yang akan dirilis pada tahun 2014)).
  2. Keluarga Unix yang menggunakan antarmuka sistem operasi POSIX, seperti SCO UNIX, keluarga BSD (Berkeley Software Distribution), GNU/Linux, MacOS/X (berbasis kernel BSD yang dimodifikasi, dan dikenal dengan nama Darwin) dan GNU/Hurd.
  3. Mac OS, adalah sistem operasi untuk komputer keluaran Apple yang biasa disebut Mac atau Macintosh. Sistem operasi yang terbaru adalah Mac OS X versi 10.4 (Tiger). Awal tahun 2007 direncanakan peluncuran versi 10.5 (Leopard).

Sedangkan komputer Mainframe, dan Super komputer menggunakan banyak sekali sistem operasi yang berbeda-beda, umumnya merupakan turunan dari sistem operasi UNIX yang dikembangkan oleh vendor seperti IBM, AIX, HP/UX, dll.

Sistem operasi digolongkan berdasarkan basisnya menjadi 2, yaitu sistem operasi berbasis teks dan sistem operasi berbasis grafik. Sistem operasi berbasis teks dikenal sebagai sistem operasi berbasis CUI (Character User Interface) dimana pada sistem operasi ini hanya menampakkan operasi berupa teks-teks tanpa ada dipengaruhi oleh grafis. Seluruh perintah dijalankan melalui perintah/command dengan cara mengetikkan langsung pada layar. Contoh Sistem operasi ini diantaranya ialah, DOS, DEBIAN, RED HAT, sementara program aplikasinya berupa Lotus, Wordstar, dll.

Sementara itu, sistem operasi berbasis grafik atau yang lebih dikenal sebagai sistem operasi berbasis GUI (Graphical User Interface) merupakan sistem operasi yang berjalan dengan menggunakan fasilitas grafik. Grafik di sini dimaksudkan dari segi tampilan sudah dapat nampak bidang horizontal dan vertikalnya, kemudian perintah-perintah telah dapat diakses/dipandu dengan berbagai menu, icon, shotcut, dan lain sebagainya. Contoh dari sistem operasi ini diantaranya ialah, Windows, Machintos, Motif, dll. Pada modul pembelajaran ini, sistem operasi yang akan kita pelajari yaitu sistem operasi berbasis GUI.

2)     Program Aplikasi

Program aplikasi merupakan program yang dikembangkan guna memenuhi kebutuhan tertentu untuk melengkapi fasilitas program yang tidak terdapat dalam sistem operasi. Program aplikasi ini sangat bergantung pada adanya sistem operasi, karena program-program aplikasi hanya dapat berjalan di dalam sistem operasi. Tidak akan ada program aplikasi tanpa terinstalasinya sistem operasi.

Program aplikasi ini banyak sekali macamnya, contoh program-program aplikasi perkantoran (misalnya MS Office, Open Office), program aplikasi utilitas ( anti virus, pastisi harddisk, manajemen harddisk, dll) kemudian program –program aplikasi design grafis (photoshop, corel, photo editor), program-program aplikasi web dan multimedia (dreamweaver, flash, winamp, ulead, dll).

Program-program tersebut dapat kita tambahkan sebagai pelengkap dalam sistem yang telah diinstalkan dalam komputer sesuai dengan kebutuhan yang kita perlukan. Namun demikian, perlu diketahui pula bahwasnnya tidak semua program-program aplikasi tersebut dapat begitu saja kita install pada sistem yang ada pada komputer, karena setiap sistem operasi memiliki kelas/kriteria program aplikasi yang mana yang sesuai dengan bahasa/coding pembentuk dari sistem operasi bersangkutan. Dengan demikian, sangat memungkinkan program aplikasi “A” tidak dapat berjalan di sistem operasi “X”, tetapi akan bisa berjalan di sistem operasi “Y” dan atau di sistem operasi “Z”, begitu juga sangat mungkin program aplikasi “C” bisa berjalan di sistem operasi “X” tetapi tidak bisa berjalan di sistem operasi “Y” dan “Z”.

3)     Bahasa Pemrograman

Komputer adalah mesin yang dapat melaksanakan seperangkat perintah dasar (instruction set). Komputer hanya dapat diberi perintah yang terdiri dari perintah-perintah dasar tersebut. Perintah-perintah yang lebih rumit (misalnya mengurutkan suatu daftar sesuai abjad) harus diterjemahkan menjadi serangkaian perintah-perintah dasar yang dapat dimengerti komputer (perintah-perintah yang termasuk dalam instruction set komputer tersebut) yang pada akhirnya dapat mennyelesaikan tugas yang diinginkan, meskipun dijalankan dengan beberapa operasi dasar, bukan satu operasi rumit.

Bahasa pemrograman adalah bahasa yang dapat diterjemahkan menjadi kumpulan perintah-perintah dasar tersebut. Penerjemahan dilakukan oleh program komputer yang disebut kompilator (compiler). Setiap bahasa pemrograman mempunyai kompilatornya sendiri. Contohnya, kompilator C++ tidak akan mengerti program yang ditulis dengan bahasa Java. Sintaks dari bahasa pemrograman lebih mudah dipahami oleh manusia daripada sintaks perintah dasar. Namun tentu saja komputer hanya dapat melaksanakan perintah dasar itu. Maka di sinilah peran penting kompilator sebagai perantara antara bahasa pemrograman dengan perintah dasar.

Bahasa pemrograman, atau sering diistilahkan juga dengan bahasa komputer, adalah teknik komando/instruksi standar untuk memerintah komputer. Bahasa pemrograman ini merupakan suatu set aturan sintaks dan semantik yang dipakai untuk mendefinisikan program komputer. Bahasa ini memungkinkan seorang programmer dapat menentukan secara persis data mana yang akan diolah oleh komputer, bagaimana data ini akan disimpan/diteruskan, dan jenis langkah apa secara persis yang akan diambil dalam berbagai situasi.

Kegiatan membuat program komputer dengan menggunakan bahasa pemrograman disebut pemrograman komputer. Contoh bahasa pemrogaman adalah bahasa FORTRAN, COBOL, BASIC, JAVA, dan C++.

Berdasarkan tingkatannya, bahasa pemrograman ini dibedakan menjadi 3 bagian yaitu :

1)     Bahasa tingkat rendah ( Low Level Language )

Bahasa pemrograman tingkat rendah ini dikenal juga sebagai bahasa rakitan. Bahasa pemrograman generasi pertama, bahasa pemrograman jenis ini sangat sulit dimengerti karena instruksinya menggunakan bahasa mesin. Biasanya yang mengerti hanyalah pembuatnya saja.

2)     Bahasa tingkat menengah (Middle Level Language)

Merupakan bahasa pemrograman tingkat menengah dimana penggunaan instruksi sudah mendekati bahasa sehari-hari, walaupun begitu masih sulit untuk di mengerti karena banyak menggunakan singkatan- singakatan seperti STO artinya simpan (singkatan dari STORE) dan MOV artinya pindah (singkatan dari MOVE).Yang tergolong kedalam bahasa ini adalah Assembler, ForTran (Formula Translator).

3)     Bahasa tingkat tinggi (High Level Language)

Istilah “bahasa pemrograman tingkat tinggi” tidak serta merta menjadikan bahasa tersebut lebih baik dibandingkan dengan bahasa pemrograman tingkat rendah. Akan tetapi, maksud dari “tingkat tinggi” di sini merujuk kepada abstraksi yang lebih tinggi dibandingkan dengan bahasa tingkat rendah terhadap bahasa mesin. Dibandingkan dengan harus berurusan dengan register, alamat memori dan stack-stack panggilan, bahasa pemrograman tingkat tinggi akan berurusan dengan variabel, larik, dan ekspresi aritmetika atau aljabar Boolean. Selain itu, tidak seperti bahasa rakitan, bahasa tingkat tinggi tidak memiliki opcode atau kode operasi yang dapat secara langsung menjadikan bahasa tersebut menjadi kode mesin. Fitur lainnya seperti rutin-rutin penanganan string, fitur pemrograman berorientasi objek, input/output terhadap berkas juga terdapat di dalam jenis bahasa ini.

Secara umum, bahasa tingkat tinggi akan membuat pemrograman komputer yang kompleks menjadi lebih sederhana, sementara bahasa tingkat rendah cenderung untuk membuat kode yang lebih efisien. Dalam sebuah bahasa tingkat tinggi, elemen-elemen kompleks dapat dipecah ke dalam beberapa elemen yang lebih sederhana, meski masih dapat dianggap kompleks, di mana bahasa tersebut menyediakan abstraksi. Karena alasan ini, kode-kode yang harus berjalan dengan efisien dapat ditulis dalam bahasa pemrograman tingkat rendah, sementara bahasa tingkat tinggi digunakan untuk mempermudah pemrograman.

Akan tetapi, dengan bertambah rumitnya arsitektur mikroprosesor modern, kompilator-kompilator bahasa pemrograman tingkat tinggi dapat membuat kode yang lebih efisien dibandingkan dengan para programmer bahasa pemrograman tingkat rendah yang melakukannya secara manual.

Perlu dicatat bahwa istilah “tingkat tinggi” dan “tingkat rendah” adalah relatif. Pada awalnya, bahasa rakitan dianggap sebagai bahasa tingkat rendah, sementara COBOL, C, dan lain-lainnya dianggap sebagai bahasa tingkat tinggi, mengingat mereka mengizinkan abstraksi terhadap fungsi, variabel, dan evaluasi ekspresi. Akan tetapi, banyak programmer saat ini mungkin menganggap bahasa C sebagai bahasa pemrograman tingkat rendah, mengingat bahasa pemrograman tersebut mengizinkan akses memori secara langsung dengan menggunakan alamatnya, dan juga dapat menggunakan beberapa direktif bahasa rakitan.

Ada tiga buah model eksekusi untuk bahasa tingkat tinggi, yakni:

a)      Diinterpretasikan
Bahasa jenis ini akan dibaca dan dieksekusi secara langsung tanpa adanya proses atau tahap kompilasi oleh kompilator. Alat bantu yang mampu melakukannya disebut sebagai interpreter.

b)      Dikompilasi
Bahasa jenis ini akan ditransformasikan ke dalam bentuk yang dapat dieksekusi sebelum dijalankan. Ada dua jenis kompilasi yang sering digunakan, yakni:

  • Intermediate representation

Ketika sebuah bahasa dikompilasi ke dalam intermediate representation, representasi tersebut dapat dioptimalkan atau disimpan untuk eksekusi pada lain waktu tanpa adanya kebutuhan untuk membaca lagi kode sumber program. Ketika representasi intermediate disimpan, umumnya, hal tersebut dinamakan dengan bytecode.

  • Machine code generation

Beberapa bahasa dapat melakukan kompilasi secara langsung ke dalam bahasa mesin.

c)       Ditranslasikan
Sebuah bahasa juga dapat ditranslasikan ke dalam bahasa pemrograman tingkat rendah di mana kompilator kode bahasa asli telah beredar luas. Bahasa pemrograman C merupakan salah satu target yang umum untuk translator seperti ini.

  1. c.     Konsep dasar sistem operasi

Sistem operasi dapat dikatakan adalah perangkat lunak yang sangat kompleks. Hal-hal yang ditangani oleh sistem operasi bukan hanya satu atau dua saja, melainkan banyak hal. Dari menangani perangkat keras, perangkat lunak atau program yang berjalan, sampai menangani pengguna. Hal tersebut menyebabkan sebuah sistem operasi memiliki banyak sekali komponen-komponen tersendiri yang memiliki fungsinya masing-masing. Seluruh komponen yang menyusun sistem operasi tersebut saling bekerjasama untuk satu tujuan, yaitu efisiensi kerja seluruh perangkat komputer dan kenyamanan dalam penggunaan sistem operasi.

Oleh karena itu, penting bagi kita untuk mengetahui komponen-komponen apa saja yang ada di dalam sebuah sistem operasi, agar kita bisa mempelajari sistem operasi secara menyeluruh. Bab ini menceritakan secara umum apa saja komponen-komponen yang ada di sistem operasi. Detail tentang setiap komponen tersebut ada di bab-bab selanjutnya dalam buku ini.

Tanpa satu saja dari komponen-komponen tersebut, bisa dipastikan sebuah sistem operasi tidak akan berjalan dengan maksimal. Bayangkan jika kita memiliki sistem operasi yang tidak memiliki kemampuan untuk menangani program-program yang berjalan sekaligus. Kita tak akan bisa mengetik sambil mendengarkan lagu sambil berselancar di internet seperti yang biasa kita lakukan saat ini.

Contoh sebelumnya hanya sedikit gambaran bagaimana komponen-komponen sistem operasi tersebut saling terkait satu sama lainnya. Mempelajari komponen sistem operasi secara umum dapat mempermudah pemahaman untuk mengetahui hal-hal yang lebih detail lagi tentang sistem operasi.

Dari berbagai macam sistem operasi yang ada, tidak semuanya memiliki komponen-komponen penyusun yang sama. Pada umumnya sebuah sistem operasi modern akan terdiri dari komponen sebagai berikut:

1)      Manajemen Proses

Proses adalah sebuah program yang sedang dieksekusi. Sedangkan program adalah kumpulan instruksi yang ditulis ke dalam bahasa yang dimengerti sistem operasi. Sebuah proses membutuhkan sejumlah sumber daya untuk menyelesaikan tugasnya. Sumber daya tersebut dapat berupa CPU time, alamat memori, berkas-berkas, dan perangkat-perangkat I/O. Sistem operasi mengalokasikan sumber daya-sumber daya tersebut saat proses itu diciptakan atau sedang diproses/dijalankan. Ketika proses tersebut berhenti dijalankan, sistem operasi akan mengambil kembali semua sumber daya agar bisa digunakan kembali oleh proses lainnya.

Sistem operasi bertanggung jawab atas aktivitas-aktivitas yang berkaitan dengan manajemen proses seperti:

  • Membuat dan menghapus proses pengguna dan sistem proses. Sistem operasi bertugas mengalokasikan sumber daya yang dibutuhkan oleh sebuah proses dan kemudian mengambil sumber daya itu kembali setelah proses tersebut selesai agar dapat digunakan untuk proses lainnya.
  • Menunda atau melanjutkan proses. Sistem operasi akan mengatur proses apa yang harus dijalankan terlebih dahulu berdasarkan berdasarkan prioritas dari proses-proses yang ada. Apa bila terjadi 2 atau lebih proses yang mengantri untuk dijalankan, sistem operasi akan mendahulukan proses yang memiliki prioritas paling besar.
  • Menyediakan mekanisme untuk proses sinkronisasi. Sistem operasi akan mengatur jalannya beberapa proses yang dieksekusi bersamaan. Tujuannya adalah menghindarkan terjadinya inkonsistensi data karena pengaksesan data yang sama, juga untuk mengatur urutan jalannya proses agar setiap proses berjalan dengan lancar
  • Menyediakan mekanisme untuk proses komunikasi. Sistem operasi menyediakan mekanisme agar beberapa proses dapat saling berinteraksi dan berkomunikasi (contohnya berbagi sumber daya antar proses) satu sama lain tanpa menyebabkan terganggunya proses lainnya.
  • Menyediakan mekanisme untuk penanganan deadlock Deadlock adalah suatu keadaan dimana sistem seperti terhenti karena setiap proses memiliki sumber daya yang tidak bisa dibagi dan menunggu untuk mendapatkan sumber daya yang sedang dimiliki oleh proses lain. Saling menunggu inilah yang disebut deadlock(kebuntuan). Sistem operasi harus bisa mencegah, menghindari, dan mendeteksi adanya deadlock. Jika deadlock terjadi, sistem operasi juga harus dapat memulihkan kondisi sistemnya.

2)      Manajemen Memori Utama

Sistem operasi memiliki tugas untuk mengatur bagian memori yang sedang digunakan dan mengalokasikan jumlah dan alamat memori yang diperlukan, baik untuk program yang akan berjalan maupun untuk sistem operasi itu sendiri. Tujuan dari manajemen memori utama adalah agar utilitas CPU meningkat dan untuk meningkatkan efisiensi pemakaian memori.

Memori utama atau lebih dikenal sebagai memori adalah sebuah array yang besar dari word atau byte yang ukurannya mencapai ratusan, ribuan, atau bahkan jutaan. Setiap word atau byte mempunyai alamat tersendiri. Memori utama berfungsi sebagai tempat penyimpanan instruksi/data yang akses datanya digunakan oleh CPU dan perangkat I/O. Memori utama termasuk tempat penyimpanan data yang yang bersifat volatile(tidak permanen), yaitu data akan hilang kalau komputer dimatikan.

Sistem komputer modern memiliki sistem hirarki memori, artinya memori yang ada di komputer disusun dengan tingkatan kecepatan dan kapasitas yang berbeda. Memori yang memiliki kecepatan sama dengan kecepatan prosesor memiliki kapasitas yang kecil, berkisar hanya dari ratusan KB hingga 4 MB dengan harga yang sangat mahal. Sedangkan memori utama yang kecepatannya jauh di bawah kecepatan prosesor memiliki kapasitas yang lebih besar, berkisar dari 128 MB hingga 4 GB dengan harga yang jauh lebih murah. Sistem hirarki memori ini memiliki tujuan agar kinerja komputer yang maksimal bisa didapat dengan harga yang terjangkau.

3)      Manajemen Sistem Berkas

File atau berkas adalah representasi program dan data yang berupa kumpulan informasi yang saling berhubungan dan disimpan di perangkat penyimpanan. Sistem berkas ini sangatlah penting, karena informasi atau data yang disimpan dalam berkas adalah sesuatu yang sangat berharga bagi pengguna. Sistem operasi harus dapat melakukan operasi-operasi pada berkas, seperti membuka, membaca, menulis, dan menyimpan berkas tersebut pada sarana penyimpanan sekunder. Oleh karena itu, sistem operasi harus dapat melakukan operasi berkas dengan baik.

Sistem operasi melakukan manajemen sistem berkas dalam beberapa hal:

  • Pembuatan berkas atau direktori. Berkas yang dibuat nantinya akan diletakkan pada direktori-direktori yang diinginkan pada sistem berkas. Sistem operasi akan menunjukkan tempat dimana lokasi berkas atau direktori tersebut akan diletakkan. Setelah itu, sistem operasi akan membuat entri yang berisi nama berkas dan lokasinya pada sistem berkas.
  • Penghapusan berkas atau direktori. Sistem operasi akan mencari letak berkas atau direktori yang hendak dihapus dari sistem berkas, lalu menghapus seluruh entri berkas tersebut, agar tempat dari berkas tersebut dapat digunakan oleh berkas lainnya.
  • Pembacaan dan menulis berkas. Proses pembacaan dan penulisan berkas melibatkan pointer yang menunjukkan posisi dimana sebuah informasi akan dituliskan di dalam sebuah berkas.
  • Meletakkan berkas pada sistem penyimpanan sekunder. Sistem operasi mengatur lokasi fisik tempat penyimpanan berkas pada sarana penyimpanan sekunder

4)      Manajemen Sistem I/O

Pekerjaan utama yang paling sering dilakukan oleh sistem komputer selain melakukan komputasi adalah Input/Output (I/O). Dalam kenyataannya, waktu yang digunakan untuk komputasi lebih sedikit dibandingkan waktu untuk I/O. Ditambah lagi dengan banyaknya variasi perangkat I/O sehingga membuat manajemen I/O menjadi komponen yang penting bagi sebuah sistem operasi. Sistem operasi juga sering disebut device manager, karena sistem operasi mengatur berbagai macam perangkat ( device).

Fungsi-fungsi sistem operasi untuk sistem M/K:

  • Penyanggaan (buffering). Menampung data sementara dari/ke perangkat I/O.
  • Penjadwalan (scheduling). Melakukan penjadualan pemakaian I/O sistem supaya lebih efisien.
  • Spooling. Meletakkan suatu pekerjaan program pada penyangga, agar setiap perangkat dapat mengaksesnya saat perangkat tersebut siap.
  • Menyediakan driver perangkat yang umum.  Driver digunakan agar sistem operasi dapat memberi perintah untuk melakukan operasi pada perangkat keras I/O yang umum, seperti optical drive, media penyimpanan sekunder, dan layar monitor.
  • Menyediakan driver perangkat yang khusus.  Driver digunakan agar sistem operasi dapat memberi perintah untuk melakukan operasi pada perangkat keras I/O tertentu, seperti kartu suara, kartu grafis, dan motherboard

5)      Manajemen Penyimpanan Sekunder

Penyimpanan sekunder (secondary storage) adalah sarana penyimpanan yang berada satu tingkat di bawah memori utama sebuah komputer dalam hirarki memori. Tidak seperti memori utama komputer, penyimpanan sekunder tidak memiliki hubungan langsung dengan prosesor melalui bus, sehingga harus melewati I/O.

Sarana penyimpanan sekunder memiliki ciri-ciri umum sebagai berikut:

  1. Non volatile(tahan lama). Walaupun komputer dimatikan, data-data yang disimpan di sarana penyimpanan sekunder tidak hilang. Data disimpan dalam piringan-piringan magnetik.
  2. Tidak berhubungan langsung dengan bus CPU. Dalam struktur organisasi komputer modern, sarana penyimpanan sekunder terhubung dengan northbridge. Northbridge yang menghubungkan sarana penyimpanan sekunder pada I/O dengan bus CPU.
  3. Lambat. Data yang berada di sarana penyimpanan sekunder memiliki waktu yang lebih lama untuk diakses (read/write) dibandingkan dengan mengakses di memori utama. Selain disebabkan oleh bandwidth bus yang lebih rendah, hal ini juga dikarenakan adanya mekanisme perputaran head dan piringan magnetik yang memakan waktu.
  4. Harganya murah. Perbandingan harga yang dibayar oleh pengguna per byte data jauh lebih murah dibandingkan dengan harga memori utama.

Sarana penyimpanan sekunder memiliki fungsi-fungsi sebagai berikut:

  1. Menyimpan berkas secara permanen. Data atau berkas diletakkan secara fisik pada piringan magnet dari disk, yang tidak hilang walaupun komputer dimatikan (non volatile)
  2. Menyimpan program yang belum dieksekusi prosesor. Jika sebuah program ingin dieksekusi oleh prosesor, program tersebut dibaca dari disk, lalu diletakkan di memori utama komputer untuk selanjutnya dieksekusi oleh prosesor menjadi proses.
  3. Memori virtual. Adalah mekanisme sistem operasi untuk menjadikan beberapa ruang kosong dari disk menjadi alamat-alamat memori virtual, sehingga prosesor bisa menggunakan memorivirtual ini seolah-olah sebagai memori utama. Akan tetapi, karena letaknya di penyimpanan sekunder, akses prosesor ke memori virtual menjadi jauh lebih lambat dan menghambat kinerja komputer.

Sistem operasi memiliki peran penting dalam manajemen penyimpanan sekunder. Tujuan penting dari manajemen ini adalah untuk keamanan, efisiensi, dan optimalisasi penggunaan sarana penyimpanan sekunder.

6)      Proteksi dan Keamanan

Seringkali, istilah keamanan dan proteksi membingungkan dalam penggunaannya. Untuk mengurangi kebingungan itu, istilah keamanan digunakan untuk penggambaran secara umum, sedangkan proteksi digunakan untuk menggambarkan secara teknis mekanisme perlindungan sistem operasi.

Proteksi adalah mekanisme sistem operasi untuk mengontrol akses terhadap beberapa objek yang diproteksi dalam sistem operasi. Objek-objek tersebut bisa berupa perangkat keras (seperti CPU, memori, disk, printer, dll) atau perangkat lunak (seperti program, proses, berkas, basis data, dll). Di beberapa sistem, proteksi dilakukan oleh sebuah program yang bernama reference monitor. Setiap kali ada pengaksesan sumber daya PC yang diproteksi, sistem pertama kali akan menanyakan reference monitor tentang keabsahan akses tersebut. Reference monitor kemudian akan menentukan keputusan apakah akses tersebut diperbolehkan atau ditolak.

Secara sederhana, mekanisme proteksi dapat digambarkan dengan konsep domain. Domain adalah himpunan yang berisi pasangan objek dan hak akses. Masing-masing pasangan domain berisi sebuah objek dan beberapa akses operasi (seperti read, write, execute) yang dapat dilakukan terhadap objek tersebut. Dalam setiap waktu, setiap proses berjalan dalam beberapa domain proteksi. Hal itu berarti terdapat beberapa objek yang dapat diakses oleh proses tersebut, dan operasi-operasi apa yang boleh dilakukan oleh proses terhadap objek tersebut. Proses juga bisa berpindah dari domain ke domain lain dalam eksekusi.

Pengguna sistem komputer sudah tentu memiliki data-data dan informasi yang berharga baginya. Melindungi data-data ini dari pihak-pihak yang tidak berhak merupakan hal penting bagi sistem operasi. Inilah yang disebut keamanan (security).

Sebuah sistem operasi memiliki beberapa aspek tentang keamanan. Aspek-aspek ini berhubungan terutama dengan hilangnya data-data. Sistem komputer dan data-data di dalamnya terancam dari aspek ancaman ( threats), aspek penyusup ( intruders), dan aspek musibah.

Dari aspek ancaman, secara umum sistem komputer menghadapi ancaman terbukanya data-data rahasia, pengubahan data-data oleh orang yang tidak berhak, juga pelumpuhan sistem dengan adanya Denial of Service(DoS).

Dari aspek penyusup, saat ini banyak orang mencoba masuk ke dalam sistem operasi dengan berbagai macam tujuan. Ada yang hanya sekedar mencoba menjebol sistem operasi ( hacking), ada yang mencoba mengambil keuntungan dari tindakan penjebolah itu ( cracking).

Tidak hanya disusupi oleh manusia, sistem operasi juga menghadapi ancaman keamanan dari program-program penyusup, yang disebut malicious program atau malware. Malware adalah program yang menyusup ke dalam sistem operasi dan memiliki tujuan-tujuan tertentu seperti mengambil data-data pribadi, mengambil alih komputer, dan seringkali bertujuan merusak. Yang termasuk kategori malware adalah virus, keylogger, worm, trojan, dan sypware.

Yang terakhir, sistem operasi dan data-data di dalamnya terancam justru dari hal-hal non teknis, yaitu dari musibah. Sistem operasi terancam akibat adanya bencana alam (banjir, lumpur panas, gempa bumi, dan lain-lain), kerusakan perangkat keras atau lunak, bahkan kelalaian dari penggunanya.

Perkembangan dunia internet saat ini membawa konsekuensi meningkatnya resiko keamanan terhadap sistem operasi. Oleh karena itu, sistem operasi harus memiliki ketahanan keamanan. Bagi kebanyakan pengembang sistem operasi saat ini, keamanan adalah salah satu permasalahan utama.

  1. d.     Struktur Sistem Operasi

Sistem operasi modern adalah suatu sistem yang besar dan kompleks. Dan tentu saja proses mendesain sistem operasi bukanlah pekerjaan mudah. Karena itu, didalam desain sistem operasi digunakan suatu struktur agar sistem tersebut bisa dipelajari dengan mudah. digunakan, dan dikembangkan ebih lanjut. Jika pada bab sebelumnya, kita memandang sistem operasi dari luar, yaitu dengan system call yang bisa digunakan, maka dalam bab ini kita akan melihat dari dalam, yaitu bagaimana sistem operasi disusun. Ternyata, ada beberapa pendekatan/model yang digunakan, seperti struktur sederhana, struktur berlapis, dan mikro kernel.

Pada awalnya, sistem operasi dimulai sebagai sistem yang kecil, sederhana, dan terbatas. Lama kelamaan, sistem operasi semakin berkembang menjadi suatu sistem yang lebih besar dari awalnya. Dalam perkembangannya, ada sistem yang terstruktur dengan kurang baik, dan ada juga yang baik. Contoh sistem yang terstruktur kurang baik adalah MS-DOS. Sistem operasi ini dirancang sedemikian rupa agar mampu berjalan pada hardware yang terbatas. Memang memiliki struktur, tapi belum terbagi-bagi dalam modul-modul, dan interface serta fungsionalitas tidak begitu jelas batasannya.

Begitu pula dengan UNIX, yang pada awalnya juga terbatas oleh hardware yang ada. Sistem ini dapat dibagi menjadi dua bagian, yaitu kernel dan program sistem. Kernel sendiri dapat dibagi menjadi dua bagian, yaitu device driver dan interface, yang kemudian terus berkembang seiring dengan perkembangan UNIX

Rasanya susah membayangkan sekian banyak fungsi yang disediakan oleh sistem operasi diimplementasikan dalam satu program saja. Karena itu, lebih mudah untuk membaginya dalam sejumlah layer/lapisan. Tentu setiap lapisan memiliki fungsinya sendiri-sendiri, dan juga bisa menambah fungsi-fungsi lain, berdasarkan fungsi-fungsi yang tersedia pada lapisan-lapisan lain yang dibawahnya.

Lapisan-lapisan sistem operasi adalah suatu abstraksi dari enkapsulasi sekumpulan struktur data dalam sistem operasi. Lapisan-lapisan yang berada di atas bisa mengakses operasi-operasi yang tersedia di lapisan-lapisan bawahnya. Stallings memberi model yang lebih detail, sebagai berikut:

  • Lapisan 1. Berisi berbagai sirkuit elektronik, misal register, memory cells, dan logic gate.
  • Lapisan 2. Berisi instruksi prosesor, misal instruksi aritmatika, instruksi transfer data, dsb.
  • Lapisan 3. Penambahan konsep seperti prosedur/subrutin, maupun fungsi yang me-return nilai tertentu.
  • Lapisan 4. Penambahan interrupt.
  • Lapisan 5. Program sebagai sekumpulan instruksi yang dijalankan oleh prosesor.
  • Lapisan 6. Berhubungan dengan secondary storage device, yaitu membaca/menulis head, track, dan sektor.
  • Lapisan 7. Menciptakan alamat logika untuk proses. Mengatur hubungan antara main memory, virtual memory, dan secondary memory.
  • Lapisan 8. Program sebagai sekumpulan instruksi yang dijalankan oleh prosesor.
  • Lapisan 9. Berhubungan dengan secondary storage device, yaitu membaca/menulis head,track, dan sektor.
  • Lapisan 10. Menciptakan alamat logika untuk proses. Mengatur hubungan antara main memory, virtual memory, dan secondary memory.
  • Lapisan 11. Program sebagai sekumpulan instruksi yang dijalankan oleh prosesor.
  • Lapisan 12. File adalah objek yang memiliki nama dan ukuran. Abstraksi dari lapisan 9.
  • Lapisan 13. Menyediakan interface agar bisa berinteraksi dengan pengguna.

Lapisan-lapisan dari 1-4 bukanlah bagian dari sistem operasi dan masih menjadi bagian dari prosesor secara ekslusif.

Lapisan ke-5 hingga ke-7, sistem operasi sudah berhubungan dengan prosesor. Selanjutnya dari lapisan ke-8 hingga 13, sistem operasi berhubungan dengan media penyimpanan maupun perlatan-peralatan lain yang ditancapkan, misalnya peralatan jaringan.

Pada pembahasan “Struktur Sederhana”, sempat disinggung istilah “kernel”. Apakah kernel itu? Kernel adalah komponen sentral dari sistem operasi. Ia mengatur hal-hal seperti interrupt handler(untuk menyediakan layanan interupsi), process scheduler(membagi-bagi proses dalam prosesor), memory management, I/O, dan sebagainya. Atau dengan kata lain, ia adalah jembatan antara hardware dengan software.

Cara tradisional untuk membangun sistem operasi adalah dengan membuat kernel monolitis, yaitu semua fungsi disediakan oleh kernel, dan ini menjadikan kernel suatu program yang besar dan kompleks.

Cara yang lebih modern, adalah dengan menggunakan kernel mikro. Pada awalnya, konsep mikro kernel dikembangkan pada sistem operasi Mach. Ide dasar dari pengembangan kernel mikro adalah bahwa hanya fitur-fitur yang perlu saja yang diimplementasikan dalam kernel (mengenai fitur-fitur apa saja yang perlu diimplementasikan, ini bisa berbeda tergantung desain sistem operasi).

Walaupun garis pembatas mengenai apa saja yang berada di dalam dan luar kernel mikro bisa berbeda antara desain yang satu dengan yang lain, namun ada karakteristik yang umum, yaitu servis-servis yang umumnya menjadi bagian sistem operasi menjadi subsistem eksternal yang bisa berinteraksi satu sama lain dan dengan kernel tentunya. Ini mencakup device driver, file system, virtual memory manager, windowing system, dan security devices. Pendekatan kernel mikro menggantikan pendekatan berlapis yang vertikal tradisional.

Beberapa kelebihan kernel mikro:

  1. Interface yang seragam. Proses tidak lagi dibedakan, baik antara kernel-level maupun user-level, karena semuanya berkomunikasi via message passing.
  2. ExtensibilityBisa menambahkan fitur-fitur baru tanpa perlu melakukan kompilasi ulang.
  3. FlexibilityFitur-fitur yang sudah ada bisa dikurangi, atau dimodifikasi sesuai dengan kebutuhan sehingga menjadi lebih efisien. Misalnya tidak semua pengguna membutuhkan security yang sangat ketat, atau kemampuan untuk melakukan distributed computing.
  4. PortabilityPada kernel mikro, semua atau sebagian besar kode yang prosesor-spesifik berada di dalamnya. Jadi, proses porting ke prosesor lain bisa dilakukan dengan relatif sedikit usaha. Pada kelompok desktop misalnya, tampaknya dominasi Intel makin kuat. Tapi, sampai seberapa lama itu bisa bertahan? Karena itulah, portability adalah salah satu isu yang sangat penting.
  5. ReliabilitySemakin besar suatu software, maka tentulah semakin sulit untuk menjamin reliability-nya. Desain dengan pendekatan berlapis sangatlah membantu, dan dengan pendekatan kernel mikro bisa lebih lagi. Kernel mikro dapat dites secara ekstensif .Karena dia menggunakan API yang sedikit, maka bisa meningkatkan kualitas code di luar kernel.
  6. Support for object-oriendted OSModel kernel mikro sangat sesuai untuk mengembangkan sistem operasi yang berbasis object-oriented. Contoh sistem operasi yang menggunakan kernel mikro adalah MacOS X dan QNX.

Booting adalah istilah untuk menghidupkan komputer. Secara umum, gambaran yang terjadi pada proses boot adalah sebagai berikut.

  • Saat komputer dihidupkan, memorinya masih kosong. Belum ada instruksi yang dapat dieksekusi oleh prosesor. Karena itu, prosesor dirancang untuk selalu mencari alamat tertentu di BIOS ROM. Pada alamat tersebut, terdapat sebuah instruksi jump yang menuju ke alamat eksekusi awal BIOS. Setelah itu, prosesor menjalankan power-on-self test(POST), yaitu memeriksa kondisi hardware yang ada.
  • Sesudah itu, BIOS mencari video card. Secara khusus, dia mencari program BIOS milik video card. Kemudian system BIOS menjalankan video card BIOS. Barulah setelah itu, video card diinisalisasi.
  • Kemudian BIOS memeriksa ROM pada hardware yang lain, apakah memiliki BIOS tersendiri apakah tidak. Jika ya, maka akan dieksekusi juga.
  • BIOS melakukan pemeriksaan lagi, misal memeriksa besar memori dan jenis memori. Lebih lanjut lagi, dia memeriksa hardware yang lain, seperti disk. Lalu dia mencari disk dimana proses boot bisa dilakukan, yaitu mencari boot sector. Boot sector ini bisa berada di hard disk, atau floppy disk.

Kompilasi Kernel

Pada dasarnya Linux hanyalah sebuah kernel. Sedangkan program-program lain seperti teks editor, browser, kompilator, dan seterusnya melengkapi kernel menjadi suatu paket sistem operasi. Tentunya agar kernel dapat bekerja dengan optimal, perlu dilakukan konfigurasi sesuai dengan hardware yang ada. Biasanya, kompilasi kernel dilakukan saat hendak menambahkan device baru yang belum dikenali sebelumnya atau jika hendak mengaktifkan fitur tertentu pada sistem operasi. Pada proses kompilasi kernel, sangat mungkin terjadi kesalahan. Karena itu, jangan lupa membackup kernel yang lama, dan menyiapkan emergency boot disk. Pada penjelasan berikut, diasumsikan kernel yang digunakan adalah versi 2.6.20 dan komputer menggunakan prosesor Intel.

Beberapa tahapan dalam kompilasi kernel:

  1. Mendownload kernel. Ada banyak situs di internet tempat mendownload kernel. Tapi ada baiknya jika anda mengunjungi situs resminya, yaitu “kernel.org”. Anda bisa melihat beraneka versi kernel dan patchnya disana.Format penamaan kernel Linux adalah linux-X.YY.ZZ.tar.gz atau linux-X.YY.ZZ.tar.bz2, dimana: X = major number; Y = minor number; ZZ = revision number. Contoh: linux-2.6.20. Angka 2 adalah major number (angka 2 ini jarang berubah dan baru berubah jika sudah terjadi perubahan besar) Angka 6 adalah minor number (karena 6 adalah bilangan genap, berarti kernel ini versi stabil) Angka 20 menunjukkan nomor revisi.
  2. Mengekstrak kernel. Source code kernel Anda yang lama bisa dilihat di direktori /usr/src/linux. Supaya source code kernel sebelumnya tidak hilang, ekstraklah kernel yang baru di direktori yang berbeda, misal /usr/src/linux-2.6.20 (tentunya sesuaikan angka-angka tersebut dengan versi kernel yang anda pakai).
  3. Buat symbolic link
  4. Konfigurasi kernel. Sebelum proses kompilasi, anda memiliki 2 pilihan, yaitu membuat konfigurasi baru, atau menggunakan konfigurasi kernel sebelumnya. Jika anda ingin membuat konfigurasi baru, maka jalankan perintah: make xconfig (atau make menuconfig). Pada tahap ini, anda mengkonfigurasi kernel sesuai dengan hardware yang ada di komputer anda. Isinya antara lain mengatur jenis prosesor, memory, networking, USB, dsb. Dengan ini, kernel bisa bekerja optimal pada hardware yang ada Setelah berkas configurasi (.config) terbentuk, anda bisa memulai proses kompilasi. Sedangkan jika anda ingin menggunakan konfigurasi kernel yang lama, anda bisa mengcopy berkas .config dari direktori kernel yang lama ke direktori kernel yang baru, lalu menjalankan perintah: make oldconfig
  5. Kompilasi. Jalankan perintah “make bzImage”. Proses kompilasi kernel bisa memakan waktu cukup lama, dan sangat mungkin terjadi kesalahan disitu. Jika ada kesalahan, coba lakukan lagi konfigurasi kernel. Setelah itu, coba lakukan kompilasi lagi. Jika sukses, terbentuk berkas bzImage di/usr/src/linux-2.6.20/arch/i386/boot. Copy ke direktori /boot dengan perintah:
ln -s linux-2.6.20 linux
f.                                    cp arch/i386/boot/bzImage /boot/vmlinuz-2.6.20

Selanjutnya, kompilasi modul. Jalankan perintah:

make modules

diikuti oleh

make modules_install

Terbentuk berkas System.map. Copylah ke /boot dengan perintah:

          cp System.map /boot/System.map-2.6.20

Supaya kernel yang baru bisa digunakan, ubahlah konfigurasi bootloader anda supaya ia mengetahui dimana kernel yang baru berada. Misal jika anda menggunakan Lilo, modifikasi berkas lilo.conf (ada di /etc), atau jika anda menggunakan grub, modifikasi berkas menu.lst (ada di /boot/grub). Khusus jika anda menggunakan lilo, jalankan perintah lilo. Setelah itu, reboot komputer anda.

Sesuai dengan namanya, komputer meja memang komputer yang dirancang digunakan di meja. Komputer seperti ini mulai populer di tahun 1970an. Sebelum itu, jenis komputer yang populer adalah mainframe. Saat ini, komputer meja adalah komputer yang harganya relatif paling terjangkau dan begitu banyak dijumpai di rumah-rumah,sekolah-sekolah,kantor-kantor. Selain harganya yang relatif terjangkau, hal lain yang membuat komputer meja populer adalah komponennya bisa di- upgrade dengan mudah.

Secara umum, komponen komputer meja adalah:

  • Fan. Untuk mendinginkan komputer
  • Motherboard. Untuk mengintegrasikan komponen-komponen komputer yang ada.
  • Hard disk. Tempat penyimpanan data.
  • Optical disc drive. Untuk membaca kepingan CD/DVD.
  • Floppy disk drive. Untuk membaca floppy disk.
  • Prosesor. Untuk mengeksekusi program.
  • CPU cooler. Untuk mendinginkan prosesor
  • RAM. Menyimpan program yang sedang berjalan atau untuk transfer data.
  • Sound card. Memproses suara dari prosesor, kemudian dikeluarkan melalui speaker.
  • Modem. Memproses sinyal informasi, misal untuk akses internet.
  • Network card. Memungkinkan komputer berkomunikasi dengan komputer lain dalam jaringan.

Secara tradisional, komputer dipandang sebagai suatu mesin sekuensial, yaitu mereka menjalankan sekumpulan instruksi yang tersusun dalam urutan tertentu. Prosesor menjalankan program dengan cara mengeksekusi instruksi mesin satu demi satu dalam suatu waktu. Tapi tentunya ini tidak selalu benar. Dengan pipelining misalnya, prosesor tidak perlu menunggu suatu instruksi selesai dan bisa mengerjakan instruksi lainnya. Seiring dengan perkembangan teknologi, para perancang komputer terus berusaha mengembangkan teknik untuk meningkatkan performa dan tentu juga reliability. Salah satunya adalah multiprocessing, yaitu menggunakan prosesor jamak.

Menurut Silberschatsz dkk, keuntungan sistem prosesor jamak adalah:

  1. Peningkatan throughputKarena lebih banyak proses/thread yang dapat dijalankan. Ini bukan berarti kemampuan komputasi bertambah seiring dengan bertambahnya jumlah prosesor. Yang meningkat adalah peningkatan jumlah pekerjaan yang dapat dilakukan dalam waktu tertentu.
  2. Lebih ekonomis. Daripada sistem dengan banyak prosesor tunggal, karena bisa berbagi memori, storage, dan power supply. Misalnya jika beberapa program memproses data yang sama, maka adalah lebih murah untuk menyimpan data tersebut pada satu disk dan membaginya diantara prosesor-prosesor tersebut, daripada menggunakan banyak komputer dengan disk lokal yang berisi salinan data tersebut.
  3. Peningkatan kehandalan. Jika pekerjaan terbagi rata, maka kegagalan salah satu prosesor bisa ditanggulangi oleh prosesor-prosesor yang lain. Memang performa menurun (menjadi lebih lambat), tetapi sistem tetap berjalan. Fenomena ini disebut graceful gradation. Sementara sistem yang memiliki sifat graceful gradation disebut sebagai sistem yang fault-tolerant.

Ada 2 model dalam sistem prosesor jamak, yaitu ASMP (Asymmetric Multi Processing) dan SMP (Symmetric Multi Processing). Pada model ASMP, ide dasarnya adalah master/slave, yaitu kernel selalu berjalan di prosesor tertentu, sedangkan prosesor-prosesor lainnya menjalankan utiliti yang ada di sistem operasi atau mengerjakan tugas-tugas tertentu. Prosesor master bertugas menjadwal proses atau thread. Ketika suatu proses/thread aktif, dan prosesor slave membutuhkan layanan (misal untuk I/O), maka dia harus mengirim permintaan ke prosesor master dan menunggu hingga permintaanya dilaksanakan. Model ini adalah sederhana, karena hanya satu prosesor yang mengatur sumber daya memori dan I/O.

Sayangnya, model ini memiliki beberapa kelemahan seperti:

  • Kegagalan prosesor utama bisa menyebabkan kegagalan keseluruhan sistem.
  • Bisa terjadi penururan performa, yaitu terjadi bottleneck di prosesor utama karena dialah yang bertanggung jawab atas penjadwalan dan manajenem proses.

Kekurangan itulah menyebabkan model ASMP kurang disukai.

Model lainnya adalah SMP. Pada model ini, kernel bisa dijalankan di prosesor mana saja, dan tiap prosesor bisa melakukan penjadwalan proses/thread secara mandiri. Model seperti ini membuat desain sistem operasi menjadi lebih rumit, karena proses-proses bisa berjalan secara paralel. Karena itu, haruslah dijamin agar hanya 1 prosesor yang mengerjakan tugas tertentu dan proses-proses itu tidak mengalami starvation.

Keuntungan SMP:

  1. PerformanceJika komputer yg menggunakan 1 prosesor bisa diatur sedemikian rupa sehingga sebagian pekerjaan bisa dilakukan secara paralel, maka komputer SMP bisa melakukannya dengan lebih baik lagi.
  2. AvailabilityKarena semua prosesor menjalankan tugas yang sama, maka kegagalan pada salah satu prosesor tidak membuat sistem berhenti. Sistem tetap berjalan (fungsional), walaupun performa menurun.
  3. Incremental growthPerforma bisa ditingkatkan dengan menambah prosesor lagi.

Sistem Terdistribusi dan Terkluster

Seiring dengan perkembangan teknologi komputer dan server, muncullah trend DDP (distributed data processing), yaitu prosesor, data, dan aspek-aspek lainnya bisa tersebar dalam lingkup tertentu. Sistem seperti ini melibatkan adanya pembagian proses komputasi, pengendali, dan interaksi dalam jaringan. Dalam perusahaan-perushaan besar misalnya, sering digunakan kombinasi antara komputer dan server. Komputer untuk menjalankan aplikasi-aplikasi seperti pengolah grafis, word processing, spreadsheet, sementara server sebagai back-end mengendalikan database dan sistem informasi perusahaan. Hal seperti ini adalah dampak dari perkembangan sistem terdistribusi. Tetapi, apakah sistem terdistribusi itu? Sistem terdistribusi adalah koleksi prosesor yang terhubung dalam jaringan serta tidak berbagi memori, yaitu memiliki memori masing-masing. Prosesor-prosesor itu bisa berkomunikasi melalui banyak cara, misalnya melalui jalur telepon atau high speed bus.

Keuntungan:

  1. Resource sharingSuatu komputer bisa mengakses sumber daya yang ada di komputer lain. Misalkan, komputer A bisa mengakses database yang ada di komputer B. Sebaliknya, komputer B bisa mencetak dokumen dengan menggunakan printer yang terpasang di komputer A.
  2. Computation speedupJika suatu proses komputasi bisa dipecah-pecah menjadi sejumlah bagian yang berjalan secara konkuren, dalam sistem terdistribusi bagian-bagian komputasi ini bisa terbagi dalam komputer-komputer yang ada. Inilah yang menimbulkan adanya speedup. Lebih jauh lagi, bisa terjadi load sharing, yaitu jika suatu komputer mengerjakan tugas terlalu banyak, sebagian dari tugasnya itu bisa dialihkan ke komputer lain.
  3. ReliabilityJika satu komputer mengalami kegagalan, maka secara keseluruhan sistem masih tetap dapat berjalan. Contoh: jika sistem terdiri atas komputer-komputer yang tersusun secara independen, kegagalan salah satu komputer seharusnya tidak mempengaruhi keseluruhan sistem. Tapi jika sistem terdiri atas komputer-komputer yang mengatur tugas spesifik seperti terminal I/O atau filesystem, maka kerusakan satu komputer saja bisa menyebabkan keseluruhan sistem mati. Tentunya, perlu mekanisme untuk mendeteksi kegagalan seperti ini, sehingga jika ada komputer yang rusak, sumber daya yang ada padanya tidak digunakan dan sebagai gantinya komputer yang lain bisa menangani itu.
  4. CommunicationKarena satu komputer terhubung dengan komputer-komputer laiinya, sangat dimungkinkan terjadi pertukaran informasi. Dengan adanya message passing, fungsi fungsi yang ada di suatu komputer misal file transfer, login, web browsing, bisa diperluas dalam sistem terdistribusi. Ini menyebabkan fungsi-fungsi ini bisa diakses secara jarak jauh. Misalnya, sejumlah orang yang terlibat dalam satu proyek, walaupun terpisah secara geografis, tetap bisa berkolaborasi dalam proyek itu. Dalam dunia industri, terjadi downsizing. Downsizing adalah mengganti mainframe dengan komputer atau workstation yang terhubung via jaringan. Dengan itu, mereka bisa mendapatkan fungsionalitas yang sesuai dengan biaya, kemudahan mengatur sumber daya, kemudahan maintenance/perawatan, dan lain-lain.

Disamping memiliki beberapa keuntungan, sistem terdistribusi juga memiliki beberapa kelemahan, misalnya:

  • Jika tidak direncanakan dengan tepat, sistem terdistribusi bisa menurunkan proses komputasi, misalnya jika kegagalan salah satu komputer mempengaruhi komputer-komputer yang lain.
  • Troubleshooting menjadi lebih rumit, karena bisa memerlukan koneksi ke komputer lain yang terhubung secara remote, atau menganalisis komunikasi antar komputer.
  • Tidak semua proses komputasi cocok untuk dilakukan dalam sistem terdistribusi, karena besarnya keperluan komunikasi dan sinkronisasi antar komputer. Jika bandwith, latency, atau kebutuhan komunikasi terlalu besar, maka performanya bisa menjadi lebih jelek daripada sistem yang tidak terdistribusi sama sekali. Karena itu, lebih baik komputasi dilakukan di sistem yang tidak terdistribusi.

Salah satu topik yang sedang hangat dibicarakan dalam dunia komputer adalah sistem terkluster. Sistem terkluster menjadi alternatif SMP untuk memperoleh performa dan ketersediaan yang tinggi. Saat ini, sistem terkluster populer untuk aplikasi-aplikasi server. Sistem terkluster pada dasarnya adalah sekumpulan komputer independen (bisa berjalan sendiri) yang terhubung satu sama lain untuk menyatukan sumber daya yang ada sehingga seolah-olah menjadi satu komputer saja.

Keuntungan:

  1. Absolute scalabilityAdalah mungkin untuk menciptakan sistem terkluster yang jauh lebih powerful daripada satu komputer standalone yang terbesar sekalipun. Satu kluster bisa terdiri atas puluhan, bahkan ratusan komputer, dan masing-masing adalah multiprosesor.
  2. Incremental scalabilityKluster diatur sedemikian rupa sehingga bisa dupgrade sedikit demi sedikit sesuai dengan kebutuhan, tanpa harus mengupgrade keseluruhan sistem sekaligus secara besar-besaran.
  3. High availabilityKarena setiap komputer yang tergabung adalah standalone (mandiri), maka kegagalan salah satu komputer tidak menyebabkan kegagalan sistem.
  4. Superior price/performanceDengan konfigurasi yang tepat, dimungkinkan untuk membangun sistem yang jauh lebih powerful atau sama dengan komputer standalone, dengan biaya yang lebih rendah.

Sistem Waktu Nyata

Pada awalnya, istilah real time digunakan dalam simulasi. Memang sekarang lazim dimengerti bahwa real time adalah “cepat”, namun sebenarnya yang dimaksud adalah simulasi yang bisa menyamai dengan proses sebenarnya (di dunia nyata) yang sedang disimulasikan.

Suatu sistem dikatakan real time jika dia tidak hanya mengutamakan ketepatan pelaksanaan instruksi/tugas, tapi juga interval waktu tugas tersebut dilakukan. Dengan kata lain, sistem real time adalah sistem yang menggunakan deadline, yaitu pekerjaan harus selesai jangka waktu tertentu. Sementara itu, sistem yang tidak real time adalah sistem dimana tidak ada deadline, walaupun tentunya respons yang cepat atau performa yang tinggi tetap diharapkan.

Pada sistem waktu nyata, digunakan batasan waktu. Sistem dinyatakan gagal jika melewati batasan yang ada. Misal pada sistem perakitan mobil yang dibantu oleh robot. Tentulah tidak ada gunanya memerintahkan robot untuk berhenti, jika robot sudah menabrak mobil.

Sistem waktu nyata bisa dijumpai pada tugas-tugas yang mission critical, misal sistem untuk sistem pengendali reaktor nuklir atau sistem pengendali rem mobil. Juga sering dijumpai pada peralatan medis, peralatan pabrik, peralatan untuk riset ilmiah, dan sebagainya.

Ada dua model sistem real time, yaitu hard real time dan soft real time.

Hard real time mewajibkan proses selesai dalam kurun waktu tertentu. Jika tidak, maka gagal. Misalnya adalah alat pacu jantung. Sistem harus bisa memacu detak jantung jika detak jantung sudah terdeteksi lemah.

Sementara soft real time menerapkan adanya prioritas dalam pelaksanaan tugas dan toleransi waktu. Misalnya adalah transmisi video. Gambar bisa sampai dalam keadaan terpatah-patah, tetapi itu bisa ditolerir karena informasi yang disampaikan masih bisa dimengerti.

Aspek Lainnya

  • Sistem multimedia. Sistem multimedia adalah sistem yang menyajikan berbagai bentuk informasi dengan barbagai tehnik seperti gambar, suara, teks, animasi, video yang disajikan secara interaktif untuk memberi informasi atau menghibur.
  • Handal. Para pengguna tentulah tidak akan gembira jika sistem terlalu sering crash.
  • Sistem berkas. Ukuran berkas multimedia cenderung sangat besar. Sebagai contoh , berkas video dalam format MPEG dengan durasi 60 menit akan berukuran sekitar 650 MBytes. Untuk itu, diperlukan sistem operasi yang mampu menangani berkas-berkas dengan ukuran tersebut secara efektif dan efisien.
  • BandwidthPiperlukan bandwidth (ukuran saluran data) yang besar untuk multimedia, misalnya video.
  • Waktu nyata. Selain memerlukan bandwidth yang besar, berkas multimedia harus disampaikan secara lancar berkesinambungan, serta tidak terputus-putus. Walaupun demikian, tentu ada toleransi tertentu terhadap kualitas gambar/suara (soft real time). Misal pada aplikasi video conference. Pengguna masih bisa mentolerir jika gambar sedikit terpatah-patah atau suara sedikit lebih lambat dari video.
  • Embedded System Embedded system pada dasarnya adalah komputer khusus yang tugasnya menjalankan tugas spesifik. Tidak seperti PC, yang bisa digunakan untuk banyak hal seperti browsing, menonton video, membuat program dan sebagainya, embedded system hanya melakukan satu atau beberapa tugas tertentu saja, tentunya masing-masing memiliki kebutuhan yang spesifik dan seringkali diperlengkapi dengan hardware khusus yang tidak lazim ditemui pada PC biasa. Biasanya embedded system menggunakan hardware yang terbatas, misal memori yang kecil atau tidak memiliki harddisk, tidak memiliki fasilitas canggih seperti virtual memory yang lazim ditemui di PC biasa, dan lain-lain. Karena embedded system hanya melakukan tugas tertentu, maka sistem bisa dioptimasi sedemikian rupa sehingga bisa memperkecil ukuran fisiknya dan menekan biaya produksi. Secara fisik, embedded system bisa dijumpai mulai dari yang berukuran kecil, seperti PDA,MP3 player atau jam digital, kemudian ke yang lebih besar seperti TV, video game console, router sehingga yang kompleks seperti sistem pengendali pabrik,sistem pengatur lampu lalu lintas, atau sistem pemandu pesawat. Emdedded system melakukan komputasi secara real-time dan mereka bisa saja berjalan dengan sedikit interaksi dari manusia (atau tidak sama sekali).
  • Komputasi Berbasis Jaringan. Pada awalnya, komputasi tradisional hanya meliputi penggunaan komputer meja (desktop) untuk pemakaian pribadi di kantor atau di rumah. Dengan adanya perkembangan WWW, proses pertukaran informasi antar komputer semakin mudah saja. Bahkan lebih dari itu, proses komputasi pun dilakukan dalam jaringan. Dengan demikian, batas antara komputasi tradisional dan komputasi berbasis jaringan sudah tidak jelas lagi. Peralatan yang dulu tidak terhubung ke jaringan, kini terhubung ke jaringan. Sementara peralatan yang sudah terhubung ke jaringan, kini menggunakan teknologi yang lebih baik lagi, misal dengan peningkatan hardware atau penggunaan protokol komunikasi yang baru. Sekarang misalnya, adalah lazim menemui hotspot di tempat-tempat umum sehingga akses internet makin mudah saja.
  • PDA dan Telepon Seluler. Sistem genggam ialah sebutan untuk komputer-komputer dengan kemampuan tertentu, serta berukuran kecil sehingga dapat digenggam. Secara umum, keterbatasan yang dimiliki oleh sistem genggam sesuai dengan kegunaan/layanan yang disediakan. Sistem genggam biasanya dimanfaatkan untuk hal-hal yang membutuhkan portabilitas suatu mesin seperti kamera, alat komunikasi, MP3 Player dan lain lain. Beberapa contoh dari sistem ini ialah Palm Pilot, PDA, dan telepon seluler. Isu yang berkembang tentang sistem genggam ialah bagaimana merancang perangkat lunak dan perangkat keras yang sesuai dengan ukurannya yang kecil. Dari sisi perangkat lunak, hambatan yang muncul ialah ukuran memori yang terbatas dan ukuran monitor yang kecil. Kebanyakan sistem genggam pada saat ini memiliki memori berukuran 512 KB hingga 8 MB. Dengan ukuran memori yang begitu kecil jika dibandingkan dengan PC, sistem operasi dan aplikasi yang diperuntukkan untuk sistem genggam harus dapat memanfaatkan memori secara efisien. Selain itu mereka juga harus dirancang agar dapat ditampilkan secara optimal pada layar yang berukuran sekitar 5 x 3 inci. Dari sisi perangkat keras, hambatan yang muncul ialah penggunaan sumber tenaga untuk pemberdayaan sistem. Tantangan yang muncul ialah menciptakan sumber tenaga (misalnya baterai) dengan ukuran kecil tapi berkapasitas besar atau merancang hardware dengan konsumsi sumber tenaga yang sedikit.
  • Smart Card Smart Card(kartu pintar) merupakan sistem komputer berukuran kartu nama yang memiliki kemampuan mengoleh informasi. Kemampuan komputasi dan kapasitas memori sistem ini sangat terbatas sehingga optimasi merupakan hal yang paling memerlukan perhatian. Umumnya, sistem ini digunakan untuk menyimpan informasi rahasia untuk mengakses sistem lain. Umpamanya, telepon seluler, kartu pengenal, kartu bank, kartu kredit, sistem wireless, uang elektronis, dst. Sistem ini juga bisa digunakan sebagai sarana identifikasi pemiliknya

Rangkuman

Ada beberapa cara untuk menghubungkan komponen-komponen yang ada didalam suatu sistem operasi. Pertama, dengan menggunakan struktur sederhana. Kedua, dengan pendekatan terlapis atau level. Lapisan yang lebih rendah menyediakan layanan untuk lapisan yang lebih tinggi. Ketiga, dengan pendekatan kernel mikro, yaitu sistem operasi disusun dalam bentuk kernel yang lebih kecil.

Sistem berprosesor jamak mempunyai lebih dari satu CPU yang mempunyai hubungan yang erat; CPU-CPU tersebut berbagi bus komputer, dan kadang-kadang berbagi memori dan perangkat yang lainnya. Sistem seperti itu dapat meningkatkan throughput dan reliabilititas.

Sistem hard real-time sering kali digunakan sebagai alat pengontrol untuk applikasi yang dedicated/spesifik tugas tertentu. Sistem operasi yang hard real-time mempunyai batasan waktu yang tetap yang sudah didefinisikan dengan baik.Pemrosesan harus selesai dalam batasan-batasan yang sudah didefinisikan, atau sistem akan gagal.

Sistem soft real-time mempunyai lebih sedikit batasan waktu yang keras, dan tidak mendukung penjadwalan dengan menggunakan batas akhir. Sistem ini menggunakan prioritas untuk memilih tugas-tugas mana yang harus terlebih dahulu dikerjakan

Sistem terdistribusi adalah sistem yang menjalankan bagian-bagian program di beberapa komputer yang berbeda. Komputer-komputer itu terhubung dalam suatu jaringan. Sistem terdistribusi adalah salah satu bentuk dari paralelisme

Sistem terkluster adalah sistem yang terdiri dari banyak komputer yang disusun sedemikian rupa untuk menyatukan sumber daya yang ada dan seolah-olah dapat dipandang sebagai satu komputer saja. Model seperti ini sering digunakan untuk membangun super komputer.

Pengaruh dari internet dan WWW telah mendorong pengembangan sistem operasi modern yang menyertakan web browser serta perangkat lunak jaringan dan komunikasi sebagai satu kesatuan. Multiprogramming dan sistem time-sharing meningkatkan kemampuan komputer dengan melampaui batas operasi (overlap) CPU dan M/K dalam satu mesin. Hal seperti itu memerlukan perpindahan data antara CPU dan alat M/K, ditangani baik dengan polling atau interrupt-driven akses ke M/K port Agar komputer dapat menjalankan suatu program, maka program tersebut harus berada di memori utama.

a.     Jenis-jenis media penyimpanan yang sesuai untuk instalasi sistem operasi

Tempat untuk menyimpan sejumlah data dari hasil dari input disebut dengan media simpan elektronik atau dalam bahasa komputernya disebut drive. Drive ini berfungsi untuk memberikan alamat pada drive tersebut. Alamat drive terdiri dari satu karakter yang selalu diikuti tanda” :”.  Contoh : Alamat Drive A : Berfungsi untuk menyimpan data ke dalam disket (Floppy disk); Alamat Drive C : Berfungsi untuk menyimpan data program atau program system ke dalam harddisk;  Alamat Drive D : Sama dengan Hard disk; Alamat Drive E : Berfungsi untuk cd drive / CD ROM; Alamat Drive F : Berfungsi untuk eksternal hardware seperti Flash disk USB.

 

DAFTAR PUSTAKA

www.akademik.unsri.ac.id/…/MEMORI%20DAN%20MEDIA%20PENYIMPANAN.doc

Leave a Reply

Please log in using one of these methods to post your comment:

WordPress.com Logo

You are commenting using your WordPress.com account. Log Out / Change )

Twitter picture

You are commenting using your Twitter account. Log Out / Change )

Facebook photo

You are commenting using your Facebook account. Log Out / Change )

Google+ photo

You are commenting using your Google+ account. Log Out / Change )

Connecting to %s