Sabtu, 25 September 2010

Mengingat Sejarah Sistem Operasi dari DOS, Windows sampai Linux
Jika mengingat perkembangan Sistem Operasi dari versi Dos hingga Versi saat ini yang lebih dikenal dengan istilah GUI yang mempermudah dalam melakukan pekerjaan tanpa harus memahami bahasa sistem seperti masih jamannya DOS. 
Bagaimana Sih Sejarah Sistem Operasi itu berkembang? 
Jika dipahami dari tahun ke tahun, perkembangan Sistem Operasi tidak ada habisnya, karena semakin maju, maka semakin berkembang Sistem Operasi. Namun kita pun harus mengetahui Sejarah Sebelum Sistem Operasi yang kita gunakan, tidak hanya menggunakan saja, tetapi kita harus mengingat kembali Sejarah Sistem Operasi dari versi DOS, Windows hingga linux. 

Tahun 1980
  • QDOS  : Tim Paterson dari Seattle Computer menulis QDOS yang dibuat dari OS terkenal pada masa itu, CP/M. QDOS (Quick and Dirty Operating System) dipasarkan oleh Seatle Computer dengan nama 86-DOS karena dirancang untuk prosesor Intel 8086.
  • Microsoft : Bill Gates dari Microsoft membeli lisensi QDOS dan menjualnya ke berbagai perusahaan komputer.
Tahun 1981
  • PC­ DOS : IBM meluncurkan PC­ DOS yang dibeli dari Microsoft untuk komputernya yang berbasis prosesor Intel 8086.
  • MS­ DOS : Microsoft menggunakan nama MS­ DOS untuk OS ini jika dijual oleh perusahaan diluar IBM.
Tahun 1983
  • MS­ DOS 2.0 : Versi 2.0 dari MS­ DOS diluncurkan pada komputer PC XT.
Tahun 1984
  • System 1.0 : Apple meluncurkan Macintosh dengan OS yang diturunkan dari BSD UNIX. System 1.0 merupakan sistem operasi pertama yang telah berbasis grafis dan menggunakan mouse.
  • MS ­DOS 3.0 : Microsoft meluncurkan MS DOS 3.0 untuk PC AT yang menggunakan chip Intel 80286 dan yang mulai mendukung penggunaan hard disk lebih dari 10 MB.
  • MS ­DOS 3.1 : Microsoft meluncurkan MS­DOS 3.1 yang memberikan dukungan untuk jaringan.
Tahun 1985
  • MS ­Windows 1.0 : Microsoft memperkenalkan MS­Windows, sistem operasi yang telah menyediakan  lingkungan berbasis grafis (GUI) dan kemampuan multitasking. Sayangnya sistem operasi ini sangat buruk performanya dan tidak mampu menyamai kesuksesan Apple.
  • Novell Netware : Novell meluncurkan sistem operasi berbasis jaringan Netware 86 yang dibuat untuk prosesor Intel 8086.
Tahun 1986
  • MS­ DOS 3.2 : Microsoft meluncurkan MS­ DOS 3.2 yang menambahkan dukungan untuk floppy  3.5 inch 720 KB.
Tahun 1987
  • OS/2 : IBM memperkenalkan OS/2 yang telah berbasis grafis, sebagai calon pengganti IBM PC DOS.
  • MS­ DOS 3.3 : Microsoft meluncurkan MS­ DOS 3.3 yang merupakan versi paling populer dari MS DOS.
  • Windows 2.0 : Windows versi 2.0 diperkenalkan.
  • MINIX : Andrew S. Tanenbaum mengembangkan Minix, sistem operasi berbasis Unix yang ditujukan  untuk pendidikan. MINIX nantinya menginspirasi pembuatan Linux.
Tahun 1988
  • MS­ DOS 4.0 : Microsoft mengeluarkan MS­DOS 4.0 dengan suasana grafis.
  • WWW : Proposal World Wide Web (WWW) oleh Tim Berners­Lee.
Tahun 1989
  • NetWare/386 (juga dikenal sebagai versi 3) diluncurkan oleh Novell untuk prosesor Intel 80386.
Tahun 1990
  • Perpisahan : Dua perusahaan raksasa berpisah, IBM berjalan dengan OS/2 dan Microsoft berkonsentrasi pada Windows.
  • Windows 3.0 : Microsoft meluncurkan Windows versi 3.0 yang mendapat sambutan cukup baik.
  • MS­Office : Microsoft membundel Word, Excel, dan PowerPoint untuk menyingkirkan saingannya seperti Lotus 1­2­3, Wordstar, Word Perfect dan Quattro.
  • DR DOS : Digital Research memperkenalkan DR DOS 5.0.
Tahun 1991
  • Linux 0.01 : Mahasiswa Helsinki bernama Linus Torvalds mengembangkan OS berbasis Unix dari sistem operasi Minix yang diberi nama Linux.
  • MS DOS 5.0 : Microsoft meluncurkan MS­DOS 5.0 dengan penambahan fasilitas full­-screen editor,  undelete, unformat dan Qbasic.
Tahun 1992
  • Windows 3.1 : Microsoft meluncurkan Windows 3.1 dan kemudian Windows for Workgroups 3.11 di tahun berikutnya.
  • 386 BSD : OS berbasis Open Source turunan dari BSD Unix didistribusikan oleh Bill Jolitz setelah meninggalkan Berkeley Software Design, Inc (BSDI). 386 BSD nantinya menjadi induk dari proyek Open Source BSD lainnya, seperti NetBSD, FreeBSD, dan OpenBSD.
  • Distro Linux : Linux didistribusikan dalam format distro yang merupakan gabungan dari OS plus program aplikasi. Distro pertama Linux dikenal sebagai SLS (Softlanding Linux System).
Tahun 1993
  • Windows NT : Microsoft meluncurkan Windows NT, OS pertama berbasis grafis tanpa DOS  didalamnya yang direncanakan untuk server jaringan.
  • Web Browser : NCSA memperkenalkan rilis pertama Mosaic, browser web untuk Internet.
  • MS­ DOS 6.0 : Microsoft memperkenalkan MS­DOS 6.0 Upgrade, yang mencakup program kompresi  harddisk DoubleSpace.
  • Slackware : Patrick Volkerding mendistribusikan Slackware Linux yang menjadi distro populer pertama di kalangan pengguna Linux.
  • Debian : Ian Murdock dari Free Software Foundation (FSF) membuat OS berbasis Linux dengan nama Debian.
  • MS­ DOS 6.2 : Microsoft meluncurkan MS­DOS 6.2.
  • NetBSD : Proyek baru OS berbasis Open Source yang dikembangkan dari 386BSD dibuat dengan menggunakan nama NetBSD.
  • FreeBSD : Menyusul NetBSD, satu lagi proyek yang juga dikembangkan dari 386BSD dibuat dengan  nama FreeBSD.
Tahun 1994
  • Netscape : Internet meraih popularitas besar saat Netscape memperkenalkan Navigator sebagai browser Internet.
  • MS­DOS 6.22 : Microsoft meluncurkan MS­DOS 6.22 dengan program kompresi bernama DriveSpace. Ini merupakan versi terakhir dari MS DOS.
  • FreeDOS : Jim Hall, mahasiswa dari Universitas Wisconsin­River Falls Development mengembangkan FreeDOS. FreeDOS dibuat setelah Microsoft berniat menghentikan dukungannya untuk DOS dan menggantikannya dengan Windows 95.
  • SuSE : OS Linux versi Jerman dikembangkan oleh Software und System Entwicklung GmbH (SuSE) dan dibuat dari distro Linux pertama, SLS.
  • Red Hat : Marc Ewing memulai pembuatan distro Red Hat Linux.
Tahun 1995
  • Windows 95 : Microsoft meluncurkan Windows 95 dengan lagu Start Me Up dari Rolling Stones dan terjual lebih dari 1 juta salinan dalam waktu 4 hari.
  • PC DOS 7 : IBM memperkenalkan PC DOS 7 yang terintegrasi dengan program populer pengkompres data Stacker dari Stac Electronics. Ini merupakan versi terakhir dari IBM PC DOS.
  • Windows CE : Versi pertama Windows CE diperkenalkan ke publik.
  • PalmOS : Palm menjadi populer dengan PalmOS untuk PDA.
  • OpenBSD : Theo de Raadt pencetus NetBSD mengembangkan OpenBSD.
Tahun 1996
  • Windows NT 4.0 : Microsoft meluncurkan Windows NT versi 4.0
Tahun 1997
  • Mac OS : Untuk pertama kalinya Apple memperkenalkan penggunaan nama Mac OS pada Mac OS 7.6.
Tahun 1998
  • Windows 98  : Web browser Internet Explorer menjadi bagian penting dari Windows 98 dan berhasil  menumbangkan dominasi Netscape Navigator.
  • Server Linux : Linux mendapat dukungan dari banyak perusahaan besar, seperti IBM, Sun Microsystem dan Hewlet Packard. Server berbasis Linux mulai banyak dipergunakan menggantikan  server berbasis Windows NT.
  • Google : Search Engine terbaik hadir di Internet dan diketahui menggunakan Linux sebagai  servernya.
  • Japan Goes Linux : TurboLinux diluncurkan di Jepang dan segera menjadi OS favorit di Asia, khususnya di Jepang, China dan Korea.
  • Mandrake : Gael Duval dari Brazil mengembangkan distro Mandrake yang diturunkan dari Red Hat.
Tahun 1999
  • Support : Hewlett Packard mengumumkan  layanan 24/7 untuk distro Caldera, Turbo Linux, Red Hat dan SuSE.
  • Corel Linux : Corel pembuat program Corel Draw, yang sebelumnya telah menyediakan Word Perfect versi Linux, ikut membuat OS berbasis Linux dengan nama Corel Linux dan yang  nantinya beralih nama menjadi Xandros.
Tahun 2000
  • Mac OS/X : Mac OS diganti dengan mesin berbasis BSD Unix dengan kernel yang disebut sebagai Mac OS/X.
  • Windows 2000: Microsoft meluncurkan Windows 2000 sebagai penerus Windows NT.
  • Windows Me : Microsoft meluncurkan Windows Me, versi terakhir dari Windows 95.
  • China Goes Linux : Red Flag Linux diluncurkan dari Republik Rakyat China.
  • Microsoft vs IBM : CEO Microsoft Steve Ballmer menyebut Linux sebagai kanker dalam sebuah  interview dengan Chicago Sun­Times. Di lain pihak, CEO IBM Louis Gartsner menyatakan dukungan  pada Linux dengan menginvestasikan $ 1 milyar untuk pengembangan Linux.
Tahun 2001
  • Windows XP : Microsoft memperkenalkan Windows XP.
  • Lindows: Michael Robertson, pendiri MP3.com, memulai pengembangan Lindows yang diturunkan dari Debian. Nantinya Lindows berganti nama menjadi Linspire karena adanya tuntutan  perubahan nama oleh Microsoft.
Tahun 2002
  • Open Office : Program perkantoran berbasis Open Source diluncurkan oleh Sun Microsystem.
  • OS Lokal : OS buatan anak negeri berbasis Linux mulai bermunculan, diantaranya Trustix Merdeka,  WinBI, RimbaLinux, Komura.
Tahun 2003
  • Windows 2003 : Microsoft meluncurkan Windows Server 2003.
  • Fedora : Redhat mengumumkan distro Fedora Core sebagai penggantinya. Nantinya ada beberapa distro lokal yang dibuat berbasiskan Fedora, seperti BlankOn 1.0 dan IGOS Nusantara.
  • Novell : Ximian, perusahaan pengembang software berbasis Linux dibeli oleh Novell, begitu juga halnya dengan SuSE yang diakuisisi oleh Novell.
  • LiveCD : Knoppix merupakan distro pertama Linux yang dikembangkan dengan konsep LiveCD  yang bisa dipergunakan tanpa harus diinstal  terlebih dahulu. Distro lokal yang dibuat dari Knoppix  adalah Linux Sehat dan Waroeng IGOS.
Tahun 2004
  • Ubuntu : Versi pertama Ubuntu diluncurkan dan didistribusikan ke seluruh dunia. Ada beberapa  versi distro yang dikeluarkan, yaitu Ubuntu (berbasis Gnome), Kubuntu (berbasis KDE), Xubuntu (berbasis XFCE), dan Edubuntu (untuk pendidikan).
Tahun 2005
  • Mandriva : Mandrake bergabung dengan Conectiva dan berganti nama menjadi Mandriva.
Tahun 2006
  • Unbreakable Linux : Oracle ikut membuat distro berbasis Linux yang diturunkan dari Red Hat Enterprise.
  • CHIPLux : Distro lokal terus bermunculan di tahun ini, bahkan Majalah CHIP yang lebih banyak memberikan pembahasan tentang Windows juga tidak ketinggalan membuat distro Linux dengan nama CHIPLux, yang diturunkan dari distro lokal PC LINUX dari keluarga PCLinuxOS (varian Mandriva). CHIPLux merupakan distro lokal pertama yang didistribusikan dalam format DVD.
Tahun 2007
  • Vista : Setelah tertunda untuk beberapa lama, Microsoft akhirnya meluncurkan Windows Vista. Windows Vista memperkenalkan fitur 3D Desktop dengan Aero Glass, SideBar, dan Flip 3D. Sayangnya semua keindahan ini harus dibayar mahal dengan kebutuhan spesifikasi komputer yang sangat tinggi.
Tahun 2008
  • 3D OS : Tidak seperti halnya Vista yang membutuhkan spesifikasi tinggi, 3D Desktop di Linux muncul dengan spesifikasi komputer yang sangat ringan. Era hadirnya teknologi 3D Desktop di Indonesia ditandai dengan hadirnya sistem operasi 3D OS yang dikembangkan oleh PC LINUX. Ada beberapa versi yang disediakan, yaitu versi 3D OS untuk pengguna umum serta versi distro warnet Linux dan game center Linux.

Mesin Virtual, Desain Sistem dan Implementasinya, dan System Generation

Mesin Virtual

Pada dasarnya, sistem komputer dibangun atas lapisan-lapisan. Perangkat keras adalah lapisan terendah. Kernel yang berada di lapisan atasnya menggunakan instruksi perangkat keras untuk menciptakan seperangkat system calls yang dapat digunakan oleh komponen-komponen lain yang berada pada level di atasnya. Sistem program pada level di atasnya dapat menggunakan system call dan perangkat keras seolah-olah mereka berada pada level yang sama.
Meski sistem program berada di level tertinggi, program aplikasi bisa melihat segala sesuatu di bawahnya (pada tingkatan) seakan mereka adalah bagian dari mesin. Pendekatan dengan lapisan-lapisan inilah yang diambil sebagai kesimpulan logis pada konsep mesin virtual atau virtual machine(VM). Pendekatan VM menyediakan sebuah antarmuka yang identik dengan underlying bare hardware. VM dibuat dengan pembagian sumber daya oleh komputer fisik. Perangkat lunak mesin virtual membutuhkan ruang pada disk untuk menyediakan memori virtual dan spooling sehingga perlu ada disk virtual.
Meski sangat berguna, VM sulit untuk diimplementasikan. Banyak hal yang dibutuhkan untuk menyediakan duplikat yang tepat dari underlying machine. VM dapat dieksekusi pada only user mode sehingga kita harus mempunyai virtual user mode sekaligus virtual memory mode yang keduanya berjalan di physical user mode. Ketika instruksi yang hanya membutuhkan virtual user mode dijalankan, ia akan mengubah isi register yang berefek pada virtual monitor mode sehingga dapat memulai ulang VM tersebut. Sebuah instruksi I/O yang membutuh waktu 100ms, dengan menggunakan VM bisa dieksekusi lebih cepat( karena spooling) atau lebih lambat(karena interpreter). Terlebih lagi, CPU menjadi multiprogrammed di antara banyak VM. Jika setiap user diberi 1 VM, dia akan bebas menjalankan sistem operasi(kernel) yang diinginkan pada VM tersebut.
Selain kekurangan yang telah disebutkan diatas, jelas VM memiliki kelebihan-kelebihan, yaitu: Keamanan yang terjamin karena VM mempunyai perlindungan lengkap pada berbagai sistem sumber daya, tidak ada pembagian resources secara langsung . Pembagian disk mini dan jaringan diimplementasikan dalam perangkat lunak. Sistem VM adalah kendaraan yang sempurna untuk penelitian dan pengembangan Sistem Operasi. Dengan VM, perubahan satu bagian dari mesin dijamin tidak akan mengubah komponen lainnya.

Mesin Virtual Java

Mesin Virtual Java atau Java Virtual Machine(JVM) terdiri dari sebuah kelas loader dan java interpreter yang mengeksekusi the architecture-neutral bytecodes. Java interpreter bisa berupa perangkat lunak yang menginterpretasikan kode byte setiap waktu atau hanya Just-In-Time(JIT) yang mengubah architecture-neutral bytecodes menjadi bahasa mesin lokal. Interpreter bisa juga diimplementasikan pada sebuah chip perangkat keras. Instance dari JVM dibentuk ketika aplikasi java atau applet dijalankan. JVM mulai berjalan saat method main dipanggil. Pada applet, JVM menciptakan method main sebelum membuat applet itu sendiri.
Java Development Environment terdiri dari sebuah Compile Time Environment dan RunTime Environment. Kompilasi berfungsi mengubah java sourcecode menjadi kode byte. Sedangkan RunTime merupakan Java platform untuk sistem host.

Desain Sistem dan Implementasinya

Desain sistem memiliki masalah dalam menentukan tujuan dan spesifikasi sistem. Pada level paling tinggi, desain sistem akan dipengaruhi oleh pilihan perangkat keras dan jenis sistem. Kebutuhannya akan lebih sulit untuk dispesifikasikan. Kebutuhan terdiri dari target pengguna dan target sistem. Pengguna menginginkan sistem yang nyaman digunakan, mudah dipelajari, dapat dipercaya, aman, dan cepat. Namun itu semua tidaklah signifikan untuk desain sistem. Orang yang mendesain ingin sistem yang mudah didesain, diimplementasikan, fleksibel, dapat dipercaya, bebas eror, efisien. Sampai saat ini belum ada solusi yang pas untuk menentukan kebutuhan dari system operasi. Lain lingkungan, lain pula kebutuhannya.

Mekanisme dan Kebijakan

Mekanisme menentukan bagaimana melakukan sesuatu. Kebijakan menentukan apa yang akan dilakukan.Pemisahan antara mekanisme dan kebijakan sangatlah penting untuk fleksibilitas. Perubahan kebijakan akan membutuhkan definisi ulang pada beberapa parameter system, bahkan bisa mengubah mekanisme yang telah ada. Sistem operasi berlandaskan mikrokernel menggunakan pemisahan mekanisme dan kebijakan secara ekstrim dengan mengimplementasikan perangkat dari primitive building blocks. Semua aplikasi mempunyai antarmuka yang sama karena antarmuka dibangun dalam kernel.
Kebijakan penting untuk semua alokasi sumber daya dan penjadwalan masalah. Perlu atau tidaknya sistem mengalokasikan sumber daya, kebijakan yang menentukan. Tapi bagaimana dan apa, mekanismelah yang menentukan

Implementasi

Umumnya sistem operasi ditulis dalam bahasa rakitan, tapi sekarang ini sering ditulis dalam bahasa tingkat tinggi. Keuntungannya adalah kodenya bisa ditulis lebih cepat, lebih padat, mudah dimengerti dan didebug. Sistem operasi mudah diport (dipindahkan ke perangkat keras lain). Kerugiannya adalah mengurangi kecepatan dan membutuhkan tempat penyimpanan yang lebih banyak.

System Generation

Adalah mungkin untuk mendesain, mengkode, dan megimplementasikan sebuah sistem operasi khusus untuk satu mesin di suatu site. Pada umumnya sistem operasi dibuat untuk berjalan pada beberapa kelas mesin di berbagai site dan berbagai konfigurasi periferal. Kemudian, sistem dikonfigurasikan untuk masing-masing komputer, untuk site yang spesifik. Proses ini terkadang disebut sebagai System Generation.
Sistem program membaca dari berkas yang diberikan atau mungkin bertanya pada operator tentang informasi yang berhubungan dengan perangkat keras tersebut, antara lain adalah sebagai berikut:
  • CPU apa yang digunakan, pilihan yang diinstall?
  • Berapa banyak memori yang tersedia?
  • Peralatan yang tersedia?
  • Pilihan Sistem operasi apa yang diinginkan atau parameter yang digunakan?
Satu kali informasi didapat, bisa digunakan dengan berbagai cara.
Layanan Sistem Operasi, System Calls, dan System Program

Layanan Sistem Operasi

Layanan sistem operasi dirancang untuk membuat pemrograman menjadi lebih mudah.
  1. Pembuatan Program
    Sistem operasi menyediakan berbagai fasilitas yang membantu programer dalam membuat program seperti editor. Walaupun bukan bagian dari sistem operasi, tapi layanan ini diakses melalui sistem operasi.
  2. Eksekusi Program
    Sistem harus bisa me-load program ke memori, dan menjalankan program tersebut. Program harus bisa menghentikan pengeksekusiannya baik secara normal maupun tidak (ada error)
  3. Operasi I/O
    Program yang sedang dijalankan kadang kala membutuhkan I/O. Untuk efisiensi dan keamanan, pengguna biasanya tidak bisa mengatur peranti I/O secara langsung, untuk itulah sistem operasi harus menyediakan mekanisme dalam melakukan operasi I/O.
  4. Manipulasi Sistem Berkas
    Program harus membaca dan menulis berkas, dan kadang kala juga harus membuat dan menghapus berkas.
  5. Komunikasi
    Kadang kala sebuah proses memerlukan informasi dari proses yang lain. Ada dua cara umum dimana komunikasi dapat dilakukan. Komunikasi dapat terjadi antara proses dalam satu komputer, atau antara proses yang berada dalam komputer yang berbeda, tetapi dihubungkan oleh jaringan komputer. Komunikasi dapat dilakukan dengan pembagian memori(penggunaan bersama, share-memory)atau message-passsing, dimana sejumlah informasi dipindahkan antara proses oleh sistem operasi.
  6. Deteksi Error
    Sistem operasi harus selalu waspada terhadap kemungkinan error. Error dapat terjadi di CPU dan memori perangkat keras, I/O, dan di dalam program yang dijalankan pengguna. Untuk setiap jenis error sistem operasi harus bisa mengambil langkah yang tepat untuk mempertahankan jalannya proses komputasi.
Disamping pelayanan diatas, sistem operasi juga menyediakan layanan lain. Layanan ini bukan untuk membantu pengguna tapi lebih pada mempertahankan efisiensi sistem itu sendiri. Layanan tambahan itu yaitu :
  1. Alokasi Sumber Daya
    Ketika beberapa pengguna menggunakan sistem atau beberapa program dijalankan secara bersamaan, sumber daya harus dialokasikan bagi masing-masing pengguna dan program tersebut.
  2. Accounting
    Kita menginginkan agar jumlah pengguna yang menggunakan sumber daya, dan jenis sumber daya yang digunakan selalu terjaga. Untuk itu maka diperlukan suatu perhitungan dan statistik. Perhitungan ini diperlukan bagi seseorang yang ingin merubah konfigurasi sistem untuk meningkatkan pelayanan.
  3. Proteksi
    Layanan proteksi memastikan bahwa segala akses ke sumber daya terkontrol. Dan tentu saja keamanan terhadap gangguan dari luar sistem tersebut. Keamanan bisa saja dilakukan dengan terlebih dahulu mengidentifikasi pengguna. Ini bisa dilakukan dengan meminta passsword bila ingin menggunakan sumber daya.

System Calls

Biasanya tersedia sebagai instruksi bahasa rakitan. Beberapa sistem mengizinkan system calls dibuat langsung dari program bahasa tingkat tinggi. Beberapa bahasa pemrograman (contoh : C, C++) telah didefenisikan untuk menggantikan bahasa rakitan untuk sistem pemrograman.
Tiga metode umum yang digunakan dalam memberikan parameter kepada sistem operasi
  • Melalui register
  • Menyimpan parameter dalam blok atau tabel pada memori dan alamat blok tersebut diberikan sebagai parameter dalam register
  • Menyimpan parameter (push) ke dalam stack (oleh program), dan melakukan pop off pada stack (oleh sistem operasi)
    Memberikan parameter melalui tabel
    Sumber: Silberschatz,et.al, Operating System Concepts, 6th ed, .2003, New York: John Wiley & Son.Inc , halaman 65
Jenis System Calls
  1. Kontrol Proses
    System calls yang berhubungan dengan kontrol proses antara lain ketika penghentian pengeksekusian program. Baik secara normal (end) maupun tidak normal (abort). Selama proses dieksekusi kadang kala diperlukan untuk meload atau mengeksekusi program lain, disini diperlukan lagi suatu system calls. Juga ketika membuat suatu proses baru dan menghentikan sebuah proses. Ada juga system calls yang dipanggil ketika kita ingin meminta dan merubah atribut dari suatu proses.
    MS-DOS adalah contoh dari sistem single-tasking. MS-DOS menggunakan metode yang sederhana dalam menjalankan program dan tidak menciptakan proses baru. Program di-load ke dalam memori, kemudian program dijalankan.
    Eksekusi MS-Dos
    Sumber: Silberschatz,et.al, Operating System Concepts, 6th ed, .2003, New York:John Wiley & Son.Inc , halaman 68
    Barkeley Unix adalah contoh dari sistem multi-tasking. Command interpereter masih tetap bisa dijalankan ketika program lain dieksekusi.
    Multi program pada Unix
    Sumber: Silberschatz,et.al, Operating System Concepts, 6th ed, .2003, New York:John Wiley & Son.Inc , halaman 69
  2. Manajemen Berkas
    System calls yang berhubungan dengan berkas sangat diperlukan. Seperti ketika kita ingin membuat atau menghapus suatu berkas. Atau ketika ingin membuka atau menutup suatu berkas yang telah ada, membaca berkas tersebut, dan menulis berkas itu.System calls juga diperlukan ketika kita ingin mengetahui atribut dari suatu berkas atau ketika kita juga ingin merubah atribut tersebut. Yang termasuk atribut berkas adalah nama berkas, jenis berkas, dan lain-lain
    Ada juga system calls yang menyediakan mekanisme lain yang berhubungan dengan direktori atau sistim berkas secara keseluruhan. Jadi bukan hanya berhubungan dengan satu spesifik berkas. Contohnya membuat atau menghapus suatu direktori, dan lain-lain
  3. Manajemen Peranti
    Program yang sedang dijalankan kadang kala memerlukan tambahan sumber daya. Jika banyak pengguna yang menggunakan sistem dan jika diperlukan tambahan sumber daya maka harus meminta peranti terlebih dahulu. Dan setelah selesai penggunakannnya harus dilepaskan kembali. Ketika sebuah peranti telah diminta dan dialokasikan maka peranti tersebut bisa dibaca, ditulis, atau direposisi.
  4. Informasi Maintenance
    Beberapa system calls disediakan untuk membantu pertukaran informasi antara pengguna dan sistem operasi. Contohnya system calls untuk meminta dan mengatur waktu dan tanggal. Atau meminta informasi tentang sistem itu sendiri, seperti jumlah pengguna, jumlah memori dan disk yang masih bisa digunakan, dan lain-lain. Ada juga system calls untuk meminta informasi tentang proses yang disimpan oleh sistem dan system calls untuk merubah ( reset ) informasi tersebut.
  5. Komunikasi
    Dua model komunikasi
    • message-passing
      pertukaran informasi dilakukan melalui fasilitas komunikasi antar proses yang disediakan oleh sistem operasi.
    • shared-memory
      Proses menggunakan memori yang bisa digunakan oleh berbagai proses untuk pertukaran informasi dengan membaca dan menulis data pada memori tersebut.
    Mekanisme komunikasi
    Sumber: Silberschatz,et.al, Operating System Concepts,6th e, .2003, New York:John Wiley & Son.Inc, halaman 72
    Dalam message-passing, sebelum komunikasi dapat dilakukan harus dibangun dulu sebuah koneksi.Untuk itu diperlukan suatu system calls dalam pengaturan koneksi tersebut, baik dalam menghubungkan koneksi tersebut maupun dalam memutuskan koneksi tersebut ketika komunikasi sudah selesai dilakukan. Juga diperlukan suatu system calls untuk membaca dan menulis pesan( message ) agar pertukaran informasi dapat dilakukan.

System Program

System program menyediakan lingkungan yang memungkinkan pengembangan program dan eksekusi berjalan dengan baik.
Dapat dikategorikan :
  • Manajemen/manipulasi Berkas
    Membuat, menghapus, copy, rename, print, memanipulasi berkas dan direktori
  • Informasi status
    Beberapa program meminta informasi tentang tanggal, jam, jumlah memori dan disk yang tersedia, jumlah pengguna dan informasi lain yang sejenis.
  • Modifikasi berkas
    membuat berkas dan memodifikasi isi berkas yang disimpan pada disk atau tape.
  • Pendukung bahasa pemrograman
    kadang kala kompilator, assembler, dan interpreter dari bahasa pemrograman diberikan kepada pengguna dengan bantuan sistem operasi.
  • Loading dan eksekusi program
    Ketika program di-assembly atau di-compile, program tersebut harus di-load ke dalam memori untuk dieksekusi. Untuk itu sistem harus menyediakan absolute loaders, relocatable loaders, linkage editors,dan overlay loaders
  • Komunikasi
    menyediakan mekanisme komunikasi antara proses, pengguna, dan sistem komputer yang berbeda. Sehingga pengguna bisa mengirim pesan, menelusuri halaman web, mengirim e-mail, atau mentransfer berkas.
Umumnya sistem operasi dilengkapi oleh system-utilities atau program aplikasi yang di dalamnya termasuk web browser, word prossesor dan format teks, sistem database, games. System program yang paling penting adalah command interpreter (mengambil dan menerjemahkan user-specified command selanjutnya).
Struktur Sistem Operasi
Memandang, mendefinisikan atau mengartikan apa itu sistem operasi bisa diketahui dari beberapa hal, diantaranya dengan mengetahui komponen-komponen sistemnya, layanan yang disediakan oleh sistem operasi, struktur sistemnya maupun fungsi dari sistem operasi.

Komponen-komponen Sistem

Pada kenyataannya tidak semua sistem operasi mempunyai struktur yang sama. Namun menurut Avi Silberschatz, Peter Galvin, dan Greg Gagne, umumnya sebuah sistem operasi modern mempunyai komponen sebagai berikut:
  • Manajemen Proses
  • Manajemen Memori Utama
  • Manajemen Berkas
  • Manajemen Sistem I/O
  • Manajemen Penyimpanan Sekunder
  • Sistem Proteksi
  • Jaringan
  • Command-Interpreter System
Seadangakan menurut A.S.Tananbaum, Sistem Operasi mempunyai empat komponen utama, yaitu manajemen proses, input/output, manajemen memori dan sistem berkas.

Manajemen Proses

Proses merupakan kosep pokok di sistem operasi. Terdapat beragam definisi proses diantaranya:
  • Proses adalah program yang sedang dieksekusi.
  • Proses merupakan unit kerja terkecil yang secara individual memiliki sumber daya-sumber daya dan dijadwalkan oleh sistem operasi
Sebuah proses membutuhkan beberapa sumber daya untuk menyelesaikan tugasnya. Sumber daya tersebut dapat berupa CPU time, memori, berkas - berkas, dan perangkat-perangkat I/O . Sistem operasi menegelola semua proses di sistem dan mengalokasikan sumber daya ke proses-proses sesuai kebijaksanaan untuk memenuhi sasaran sistem. Sistem operasi mengalokasikan sumber daya-sumber daya tersebut saat proses itu diciptakan atau sedang diproses/dijalankan. Ketika proses tersebut berhenti dijalankan, sistem operasi akan mendapatkan kembali semua sumber daya yang bisa digunakan kembali.
Sistem operasi bertanggung jawab atas aktivitas-aktivitas yang berkaitan dengan manajemen proses seperti:
  • Menciptakan dan menghapus proses.
  • Menunda atau melanjutkan proses.
  • Menyediakan mekanisme untuk proses sinkronisasi.
  • Menyediakan mekanisme untuk proses komunikasi.
  • Menyediakan mekanisme untuk penanganan deadlock.

Manajemen Memori Utama

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 (sementara), artinya data akan hilang jika komputer dimatikan.
Manajemen memori sangat mempengaruhi kinerja komputer. Manajemen memori melakukan tugas penting dan kompleks berkaitan dengan:
  • Memori utama sebegai sumber daya yang harus dialokasikan dan dipakai bersama di antara sejumlah proses yang aktif, agar dapat memanfaatkan prosesor dan fasilitas input/output secara efisisen, maka diinginkan memori yang dapat menampung sebanyak mung kin proses.
  • Upaya agar pemrogram atau proses tidak dibatasi kapasitas memori fisik di sistem komputer (adanya memori virtual).
Sistem operasi bertanggung jawab atas aktivitas-aktivitas yang berkaitan dengan manajemen memori seperti:
  • Melacak pemakaian memori (berapa besar dan oleh siapa)
  • Mengelola informasi memori yang dipakai atau tidak dipakai.
  • Alokasi dan dealokasi memori sesuai keperluan.
  • Memilih program yang akan di-load ke memori.

Manajemen Berkas

Berkas adalah kumpulan informasi yang berhubungan, sesuai dengan tujuan pembuat berkas tersebut. Umumnya berkas merepresentasikan program dan data. Berkas dapat mempunyai struktur yang bersifat hirarkis (direktori, volume, dll.). Sistem operasi mengimplementasikan konsep abstrak dari berkas dengan mengatur media penyimpanan massa, misalanya tapes dan disk
Sistem operasi bertanggung jawab dalam aktivitas yang berhubungan dengan manajemen berkas :
  • Pembuatan dan penghapusan berkas.
  • Pembuatan dan penghapusan direktori.
  • Mendukung manipulasi berkas dan direktori.
  • Memetakan berkas ke penyimpanan sekunder.
  • Mem- back up berkas ke media penyimpanan yang permanen (non-volatile).

Manajemen Sistem I/O

Sering disebut device manager. Menyediakan device driveryang umum sehingga operasi I/O dapat seragam (membuka, membaca, menulis,menutup). Contoh: pengguna menggunakan operasi yang sama untuk membaca berkas pada perangkat keras, CD-ROM dan floppy disk .
Komponen Sistem Operasi untuk sistem I/O :
  • Buffer : menampung sementara data dari/ ke perangkat I/O .
  • Spooling: melakukan penjadwalan pemakaian I/O sistem supaya lebih efisien (antrian dsb.).
  • Menyediakan driver: untuk dapat melakukan operasi "rinci" (detail) untuk perangkat keras I/O tertentu.
Manajemen sistem I/O merupakan aspek perancangan sistem operasi yang terluas disebabkan sangat beragamnya perangkat dan begitu banyaknya aplikasi dari perangkat- perangkat itu.
Sistem operasi bertanggung jawab dalam aktivitas yang berhubungan dengan manajemen sistem/perangkatI/O:
  • Mengirim perintah ke perangkat I/O agar menyediakan layanan.
  • Menangani interupsi perangakat I/O .
  • Menangani kesalahan pada perangakat I/O.
  • Menyediakan antarmuka ke pengguna.

Manajemen Penyimpanan Sekunder

Data yang disimpan dalam memori utama bersifat sementara dan jumlahnya sangat kecil. Oleh karena itu, untuk meyimpan keseluruhan data dan program komputer dibutuhkan penyimpanan sekunder yang bersifat permanen dan mampu menampung banyak data, sebagai back up dari memori utama. Contoh dari penyimpanan sekunder adalah hard-disk, disket, dll.
Sistem operasi bertanggung-jawab atas aktivitas-aktivitas yang berkaitan dengan manajemen penyimpanan sekunder seperti:
  • Manajemen ruang kososng
  • Alokasi penyimpanan
  • Penjadwalan disk

Sistem Proteksi

Proteksi mengacu pada mekanisme untuk mengontrol akses yang dilakukan oleh program, prosesor atau pengguna ke sistem sumber daya. Mekanisme proteksi harus:
  • Membedakan antara penggunaan yang sudah diberi izin dan yang belum.
  • Menspesifikasi kontrol untuk dibebankan/ ditugaskan
  • Menyediakan alat untuk pemberlakuan sistem.

Jaringan

Sistem terdistribusi adalah sekumpulan prosesor yang tidak berbagi memori, atau clock. Tiap prosesor mempunyai memori dan clock tersendiri. Prosesor-prosesor tersebu terhubung melalui jaringan komunikasi. Sistem terdistribusi menyediakan akses pengguna ke bermacam sumber daya sistem. Akses tersebut menyebabkan peningkatan kecepatan komputasi dan meningkatkan kemampuan penyediaan data.

Command-Interpreter System

Sistem Operasi menunggu instruksi dari pengguna (command driven). Program yang membaca instruksi dan mengartikan control statements umumnya disebut: control-card interpreter,command-line interpreter dan terkadang dikenal sebagai shell. Command-Interpreter System sangat bervariasi dari satu sistem operasi ke sistem operasi yang lain dan disesuaikan dengan tujuan dan teknologi perangkat I/O yang ada. Contohnya: CLI, Windows, Pen-based (touch), dan lain-lain.

Jumat, 24 September 2010

Pengertian Deadlock atau Jalan Buntu Pada Sistem Operasi
Deadlock atau bisa disebut dengan Jalan Buntu.  Secara garis besar Jalan buntu, mogok. Proses saling tunggu menunggu sumber lain selamanya, sementara satu proses hanya boleh menggunakan satu sumber daya, dan masing-masing tidak bisa melepaskan yang sedang digunakan.

Arti istilah Deadlock detection dianggap berkaitan erat dengan pengertian berikut
Metode deteksi digunakan pada sistem yang mengijinkan terjadinya deadlock. tujuan metode ini adalah memeriksa apakah telah terjadi deadlock dan menentukan proses-proses dan sumber daya-sumber daya yang terlibat deadlock secara presisi. Begitu telah dapat ditentukan, sistem dipulihkan dari deadlock dengan metode pemulihan. Metode pemulihan dari deadlock, untuk menghilangkan deadlock system, sehingga beroperasi kembali, dan bebas dari deadlock. Proses-proses yang terlibat deadlock mungkin dapat menyelesaikan eksekusi dan membebaskan sumber daya-sumber daya.

Deadlock adalah suatu kondisi dimana dua proses atau lebih tidak dapat meneruskan eksekusinya. Proses menunggu terus menerus, sementara sumber daya yang ditunggu tidak akan pernah didapatkan.
Misalnya:
  • Dua proses P1 dan P2
  • Dua sumber daya kritis R1 dan R2
  • Proses P1 dan P2 harus mengakses keuda sumber daya Kondisi berikut dapat terjadi: R1 diberikan ke P1, sedang R2 diberikan ke P2. Karena untuk melanjutkan eksekusi, memerlukan kedua sumber daya sekaligus, maka kedua proses akan saling menunggu sumber daya lain selamanya. Metode mengatasi deadlock ini adalah sebagai berikut:
1. Metode pencegahan terjadinya deadlock (deadlock prevention),
2. Metode penghindaran terjadinya deadlock (deadlock avoidance),
3. Metode deteksi dan pemulihan dari deadlock (deadlock detection and recovery).

Resources (1)
  • Contoh resources sistem komputer
  • printers
  • tape drives
  • Proses-proses membutuhkan akses ke resource secara teratur
Contoh 1 :
  1. Suatu proses memegang (hold) resource A dan meminta resource B
  2. Pada saat yang sama proses lain sedang memegang resource B dan meminta resource A
  3. Masing-masing proses melakukan block, dalam kondisi seperti ini terjadi deadlock

Resources (2)
Contoh 2 :
  • Semaphores A dan B, di-inisialisasi 1
P0 P1
wait (A); wait(B)
wait (B); wait(A)
. .
. .
. .
signal(A) signal(B)
signal(B) signal(A)

Resources (3)

Contoh 3 :
  • Bridge Crossing
  • Traffic hanya satu arah
  • Masing-masing bagian jembatan dapat digambarkan sebagai resource.
  • Jika deadlock terjadi, dapat diselesaikan dengan cara satu mobil mundur ke belakang.
  • Beberapa mobil harus kembali jika terjadi deadlock
  • Memungkinkan terjadinya starvation

Resources (4)
  • Deadlock terjadi ketika
  • Proses-proses diberikan hak akses secara eksklusif ke devices (resources)
  • Preemptable resources
  • Dapat diambil dari proses tanpa menimbulkan efek yang buruk
  • Nonpreemptable resources
  • Akan menyebabkan proses gagal jika diambil

4. Kondisi Terjadinya Deadlock

  • Kondisi Mutual exclusion
  • Nanya satu proses dalam satu waktu yang dapat memegang (hold) resource
  • Hold and wait condition
  • Suatu proses memegang satu resource dan me-request resource yang lain
  • No preemption condition
  • Resource hanya dapat di-release setelah proses menyelesaikan task-nya pada resource tersebut
  • Circular wait condition
  • Masing-masing proses menunggu resource yang digunakan oleh proses lain secara berantai.
  • Terdapat himpunan proses yang sedang menunggu {P0, P1, …, P0} sedemikian sehingga P0 menunggu resource yang dipegang oleh P1 , P1 sedang menunggu resource yang dipegang oleh P2, …, Pn–1 . Pn–1 menunggu resource yang dipegang oleh Pn . Dan Pn menunggu resource yang dipegang oleh P0 .

Metode-metode Penanganan Deadlocks

  • Memastikan bahwa sistem tidak akan pernah masuk ke dalam kondisi (state) deadlock.
  • Memungkinkan sistem untuk masuk ke dalam kondisi deadlock dan kemudian melakukan recovery (pemulihan).
  • Mengabaikan masalah deadlock dan membuat deadlock tidak pernah terjadi dalam sistem; digunakan pada OS umumnya (Unix).

Metode Pencegahan Deadlock (1)

Cara pencegahan (Prevention) dari sisi permintaan (request) resources :
  • Mutual Exclusion – tidak diperlukan untuk resource-resource yang di-share; harus dipegang (hold) untuk resource-resource yang tidak di-share (nonsharable resources).
  • Hold and Wait – harus dijamin bahwa kapanpun suatu permintaan proses pada resource, proses tersebut tidak memegang resource yang lain.
  • Membutuhkan proses untuk me-request dan mengalokasikan resources sebelum memulai eksekusi, atau membolehkan proses untuk me-request resource hanya ketika proses tidak sedang memegang resource.
  • Utilisasi resource yang rendah memungkinkan terjadinya starvation.

Metode Pencegahan Deadlock (2)
  • No Preemption
  • Jika suatu proses yang memegang beberapa resource me-request resource yang lain yang tidak dapat secara langsung dialokasikan, maka semua resource yang sedang dipegang dibebaskan (released).
  • Preempted resources ditambahkan ke list resources dimana proses sedang menunggu.
  • Proses akan di-restart hanya jika dapat mengambil kembali (regain) resource, juga resource yang baru yang di-request.
  • Circular Wait
  • Membuat penomoran pada proses-proses yang mengakses resource. Suatu proses dimungkinkan untuk dapat meminta resource kapanpun, tetapi permintaannya harus dibuat terurut.

Syarat Langkah Kelemahan
  • Mutual Exclusion Spooling resource Dapat menyebabkan chaos
  • Hold & Wait Meminta resource diawal Sulit memperkirakan di awal dan tidak optimal
  • No Pre-emptive Mengambil resource di tengah jalan Hasil proses tidak akan baik
  • Circular Wait Penomoran permintaan resource Tidak ada penomoran yang memuaskan semua pihak

Metode Penghindaran Deadlock (1)

  • Memberi kesempatan ke permintaan resource yang tidak mungkin menyebabkan deadlock.
  • Jika pemberian akses tidak mungkin mengarah pada deadlock, maka resource akan diberikan pada proses yang meminta.
  • Jika tidak aman, proses yang meminta akan di-suspend sampai suatu waktu permintaannya aman untuk diberikan.
  • Kondisi aman (safe state)
  • Jika tidak terjadi deadlock
  • Kondisi tidak aman (unsafe state)
  • Jika tidak terdapat cara untuk memenuhi semua permintaan

Metode Penghindaran Deadlock (2)
  • Membutuhkan sistem yang memiliki informasi resource yang tersedia.
  • Masing-masing proses memastikan jumlah maksimum resource yang diperlukan.
  • Algoritma penghindaran (avoidence) deadlock memastikan tidak akan terjadi kondisi circular wait.
  • Kondisi (state) alokasi resource didefinisikan sebagai jumlah dan alokasi resource yang tersedia dan maksimum permintaan resource oleh proses.

Basic Facts
  • Jika sistem dalam kondisi aman (safe state) Þ tidak ada deadlock.
  • Jika sistem dalam kondisi tidak aman (unsafe state) Þ kemungkinan dapat terjadi deadlock
  • Pendekatan penghindaran (avoidence) memastikan bahwa sistem tidak akan pernah masuk ke dalam kondisi unsafe state.

Deteksi dan Pemulihan Deadlock
  • Menentukan apakah deadlock sedang terjadi, kemudian proses-proses dan resource yang terlibat dalam deadlock tersebut.
  • Setelah kondisi deadlock terdeteksi, maka langkah pemulihan deadlock dilakukan.

Cara Pemulihan Deadlock
  • Ada beberapa cara untuk pemulihan deadlock :
  1. Menggagalkan semua proses yang deadlock
  2. Mem-backup semua proses yang deadlock dan me-restart semua proses tersebut
  3. Menggagalkan proses-proses yang deadlock secara berturut-turut hingga tidak ada deadlock.
  4. Menggagalkan pengalokasian resource-resource secara berturut-turut hingga tidak ada deadlock.
  • Kriteria proses-proses yang akan disingkirkan :
  1. Memiliki waktu proses (yang telah berjalan) kecil.
  2. Jumlah keluaran sedikit
  3. Memiliki estimasi sisa waktu eksekusi terbesar.
  4. Jumlah total resource terkecil yang telah dialokasikan
  5. Memiliki prioritas terkecil