Labels

Saturday, January 26, 2013

TUGAS 2 SISTEM OPERASI


a. Batch
Batch sistem yaitu tugas yang dikerjakan dalam satu rangkaian atau mengumpulkan job dalam satu angkatan lalu di eksekusi secara berurutan. 

b. Multiprogramming
Multiprogramming yaitu kegiatan menjalankan beberapa program pada memori pada satu waktu. Dengan multiprogramming, beberapa tugas disimpan dalam memori dalam satu waktu. CPU digunakan secara bergantian sehingga mengurangi total waktu yang dibutuhkan untuk menyelesaikan tugas-tugas tersebut.

c. Time Sharing
Time Sharing adalah sebuah pembagian sumber daya yang ada pada komputer dengan cara multiprogramming dan multitasking. Dengan time sharing pengguna dapat berinteraksi secara bersamaan dengan menggunakan satu komputer.

d. Multiprocessor
Multiprocessor adalah sistem komputer dengan dua atau lebih CPU identik yang membagi akses secara penuh kepada RAM

e. Sistem terdistribusi
Sistem terdistibusi merupakan sebuah sistem yang komponennya berada pada jaringan komputer. Komponen tersebut saling berkomunikasi & melakukan koordinasi hanya dengan pengiriman pesan (message passing). Dengan kata lain sistem ini melibatkan lebih dari satu komputer dalam suatu infrastruktur jaringan baik local,internet bahkan wireless.

f. Cluster
Cluster adalah kumpulan sektor media penyimpanan yang digunakan oleh sistem operasi sebagai sebuah kesatuan, yang dapat digunakan untuk menyimpan informasi di dalam berkas atau direktoriCluster dimaksudkan untuk menghemat dalam melakukan manajemen terhadap struktur data di dalam hard disk, sehingga sistem berkas tidak akan mengalokasikan sektor disk fisik, tetapi sekumpulan sektor yang saling berdekatan.

g. Real Time
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. 

h. Handheld
Handheld computer adalah komputer yang cukup kecil sehingga dapat digenggam (hand-held) dan dapat dibawa dengan mudah. Komputer genggam ini dapat bekerja dengan fungsi yang hampir sama dengan komputer biasa. Meskipun sangat mudah untuk dibawa, komputer genggam tidak dapat menggantikan komputer biasa (PC) karena hanya memiliki keyboard dan layar yang lebih kecil. Namun kebanyakan handheld yang kita jumpai saat ini sudah menggunakan sistem touchscreen 

Perbedaan Single programming dan Multi programming
Pada sistem single programming, satu processor mengerjakan satu program yang ada di memori utama, sedangkan pada sistem multiprogramming, satu processor dapat mengerjakan banyak program yang ada di memori utama.

Perbedaan Asymmetric Multiprocessing dan Symmetric Multiprocessing
Dalam Asymmetric Multiprocessing satu prosesor menjadi master dan prosesor lainnya sebagai slave. Master Processor bertugas untuk menjadwalkan dan mengalokasikan proses yang akan dijalankan oleh Slave Processors.
Sedangkan pada symmetric Multiprocessing, setiap prosesor menjadwalkan diri sendiri. Setiap prosesor memeriksa ready queue dan memilih proses yang akan dieksekusi. Penjadwalan terlaksana dengan menjadwalkan setiap prosesor untuk memeriksa antrian dan memilih suatu proses untuk dieksekusi.
asymmetric multiprocessing

symmetric multiprocessing

Perbedaan sistem paralel dan sistem terdistribusi
Pada sistem paralel tiap processor dapat menggunakan memori atau clock bersama-sama, sedangkan pada sistem terdistribusi kumpulan processor tidak dapat digunakan secara bersamaan.

Perbedaan sistem terdistribusi dan sistem terklaster
Sistem terdistribusi mendistribusikan komputasi di antara beberapa processor. Processor berkomunikasi dengan processor lain melalui saluran komunikasi, misalnya bus kecepatan tinggi atau saluran telepon. Sedangkan sistem terklaster adalah pengembangan dari sistem terdistribusi. Perbedaan sistem terklaster dengan sistem terdistribusi adalah pada sistem terklaster memungkinkan dua atau lebih sistem untuk membagi penyimpan sekunder (storage) bersama-sama. Sistem terklaster mempunyai kehandalan sistem yang tinggi seperti pada sistem terdistribusi.

Symmetric dan asymmetric clustering Symmetric clustering yaitu sebuah sistem dimana semua host menjalankan aplikasi, sedangkan asymmetric clustering yaitu satu server menjalankan aplikasi sementara server lainnya standby.

Thursday, January 24, 2013

EVOLUSI SISTEM OPERASI


Evolusi dari sebuah sistem operasi berawal dari sistem serial processing, simple batch, multipogrammed, dan time-sharing.
Serial Processing
Programmer berinteraksi secara langsung dengan hardware komputer karena belum ada Sistem Operasi. Komputer ini dijalankan dengan perangkat yang terdiri dari display light, toggle switch, dan beberapa jenis alat inputan. 
Sistem awal ini menunjukan 2 masalah utama, yaitu:
  • Scheduling: User bisa mendapatkan masalah dan tidak bisa menyelesaikannya, tetapi dipaksa untuk berhenti sebelum menyelesaikan masalahnya.
  • Setup Time: Sebuah program yang dipanggil Job, dapat terlibat memuat compiler ditambah high-level language program (source code) ke dalam memory. Menyimpan program yang sudah dicompile (object program) dan memuat serta menghubungkan object program dengan fungsi umum. Mode operasi ini bisa diistilahkan sebagai Serial Processing
Sebuah program yang dipanggil Job, dapat terlibat memuat compiler ditambah high-level language program (source code) ke dalam memori. Menyimpan program yang sudah di compile (object program) dan memuat serta menghubungkan object program dengan fungsi umum. Mode operasi ini bisa diistilahkan sebagai Serial Processing.
Simple Batch Systems
Ide utama di balik skema simple batch-processing adalah penggunaan bagian dari perangkat lunak yang dikenal sebagai monitor. Dengan jenis OS ini, pengguna tidak lagi memiliki akses langsung ke prosesor. Sebaliknya, pengguna menyerahkan Job pada kartu atau tape ke komputer operator, yang memaketkan Job bersama-sama secara berurutan dan menempatkan seluruh paket pada perangkat input, untuk digunakan oleh monitor. Setiap program akan dibangun untuk kembali ke monitor bila itu selesai mengolah, di mana titik monitor secara otomatis mulai memuat program berikutnya.
Proteksi Memori: saat pengguna menjalankan program, tidak boleh mengubah area yang ada di monitor.
  • Timer: Digunakan untuk mencegah sebuah job dari memonopoli sistem.
  • Privileged Instruction: Level instruksi mesin yang pasti mempunyai hak istimewa dan hanya bisa dijalankan oleh monitor.
  • Interuppts: Komputer awal tidak bisa melakukan ini.
  • User Mode: Kondisi dimana pada saat program user (Job) sedang dikesekusi oleh prosesor sehingga protected memory dan privileged instructions tidak bisa diakses
  • Kernel Mode: kondisi pada saat program monitor (OS)sedang dieksekusi oleh prosesor dan protected memory dan privileged instructions boleh diakses.
  • Apabila Overheat: User bisa mendapatkan masalah dan tidak bisa menyelesaikannya, tetapi dipaksa untuk berhenti sebelum menyelesaikan masalahnya.
Dukungan Hardware Bagi Model Monitor:
  • Proteksi Memori: saat pengguna menjalankan program, tidak boleh mengubah area yang ada di monitor.
  • Timer: Digunakan untuk mencegah sebuah job dari memonopoli sistem.
  • Privileged Instruction: Level instruksi mesin yang pasti mempunyai hak istimewa dan hanya bisa dijalankan oleh monitor.
  • Interuppts: Komputer awal tidak bisa melakukan ini.

Mode Pada Simple Batch Systems:
  • User Mode: Kondisi dimana pada saat program user (Job) sedang dikesekusi oleh prosesor sehingga protected memory dan privileged instructions tidak bisa diakses
  • Kernel Mode: kondisi pada saat program monitor (OS)sedang dieksekusi oleh prosesor dan protected memory dan privileged instructions boleh diakses.

 Kekurangan Simple Batch System:
Apabila overheat:
  • Sebagian lokasi memori ditempati oleh monitor
  • Sebagian prosesor digunakan untuk mengeksekusi monitor.
  • Waktu prosesor belum termanfaatkan secara maksimal karena prosesor sering idle (menganggur) karena I/O device jauh lebih lambat dibanding prosesor.

Multiprogrammed Batch Systems
Multiprogramming Batch systems ada tipe OS modern yaitu OS yang sudah mendukung multiprogramming atau yang biasa disebut multitasking. Tujuan dari OS ini adalah untuk utilisasi prosesor.
UniprogrammingProsesor harus menunggu instruksi i/o selesai sebelum bekerja lagi.
Multiprogramming Ketika satu Job perlu menunggu i/o, prosesor dapat berpindah ke job lain.
Seperti dengan sistem batch sederhana, sistem batch multiprogramming harus bergantung pada perangkat keras komputer tertentu Fitur tambahan yang paling penting yang berguna untuk multiprogramming adalah perangkat keras yang mendukung I/O interupsi dan DMA (akses memori langsung) Dengan interrupt-driven I/O atau DMA, prosesor dapat mengeluarkan perintah I/O untuk satu Job dan dilanjutkan dengan pelaksanaan Job lain sementara I/O dilakukan oleh controller. Saat perangkat operasi I/O selesai, prosesor terganggu dan kontrol akan diteruskan ke program interrupt penanganan di OS. kemudian akan melewati kontrol ke Job lain. Sistem Operasi Multiprogramming cukup canggih dibandingkan dengan program tunggal, atau Sistem uniprogramming. Untuk memiliki beberapa Job yang siap untuk menjalankan, Job harus disimpan dalam memori utama, dan memerlukan beberapa bentuk manajemen memori. Selain itu, jika beberapa Job siap untuk berjalan, prosesor harus memutuskan mana yang akan dijalankan ,keputusan ini membutuhkan algoritma untuk penjadwalan.
 Time-Sharing systems
Dalam kasus yang terakhir, teknik ini disebut time-sharing, karena waktu prosesor dibagi di antara beberapa pengguna. Dalam sistem time-sharing, beberapa pengguna secara bersamaan mengakses sistem melalui terminal, dengan interleaving OS pelaksanaan setiap program pengguna dalam ledakan pendek atau kuantum komputasi. Jadi, jika ada n pengguna aktif meminta layanan pada satu waktu, setiap pengguna hanya akan melihat pada 1 / n rata-rata kapasitas komputer yang efektif, tidak termasuk OS overhead. Namun, mengingat waktu reaksi manusia relatif lambat, respon waktu pada sistem yang dirancang harus sama dengan komputer khusus.
Timbulnya gagasan ini disebabkan karena komputer telah dapat digunakan untuk melakukan multiprogramming dan pada saat itu (sekitar tahun 1960) komputer sangatlah mahal dan berukuran besar sehingga tidak memungkinkan apabila satu user memiliki satu komputer.


STRUKTUR DASAR SISTEM OPERASI



1.      Sistem monolitik (monolithic system)
   Sistem operasi sebagai kumpulan prosedur dimana prosedur dapat saling dipanggil oleh prosedur lain di sistem bila diperlukan. Kernel berisi semua layanan yang disediakan sistem operasi untuk pemakai. Sistem operasi ditulis sebagai sekumpulan prosedur (a collection of procedures), yang dapat dipanggil setiap saat oleh pemakai saat dibutuhkan.

   Kelemahan :
·          Pengujian dan penghilangan kesalahan sulit karena tidak dapat dipisahkan dan dilokalisasi.
·          Sulit dalam menyediakan fasilitas pengamanan.
·          Merupakan pemborosan bila setiap komputer harus menjalankan kernel monolitik sangat besar sementara sebenarnya tidak memerlukan seluruh  layanan yang disediakan kernel.
·          Tidak fleksibel.
·          Kesalahan pemograman satu bagian dari kernel menyebabkan matinya seluruh sistem.

   Keunggulan :
·          Layanan dapat dilakukan sangat cepat karena terdapat di satu ruang alamat.

Kebanyakan UNIX sampai saat ini berstruktur monolitik. Meskipun monolitik yaitu seluruh komponen/subsistem sistem operasi terdapat di satu ruang alamat tetapi secara rancangan adalah berlapis. Rancangan adalah berlapis yaitu secara logik satu komponen/subsistem merupakan lapisan lebih bawah dibanding lainnya dan menyediakan layanan-layanan untuk lapisan-lapisan lebih atas. Komponen-komponen tersebut kemudia dikompilasi dan dikaitkan  (di-link) menjadi satu ruang alamat. Untuk mempermudah dalam pengembangan terutama pengujian dan fleksibilitas, kebanyakan UNIX saat ini menggunakan konsep kernel loadable modules,yaitu:
   · Bagian-bagian kernel terpenting berada di memori utama secara tetap.
   · Bagian-bagian esensi lain berupa modul yang dapat ditambahkan ke kernel saat diperlukan dan dicabut begitu tidak digunakan lagi di waktu jalan (run time).

2.      Sistem lapis (layered system)
   Sistem operasi dibentuk secara hirarki berdasar lapisan-lapisan, dimana lapisan-lapisan bawa memberi layanan lapisan lebih atas. Struktur berlapis dimaksudkan untuk mengurangi kompleksitas rancangan dan implementasi sistem operasi. Tiap lapisan mempunyai fungsional dan antarmuka masukan-keluaran antara dua lapisan bersebelahan yang terdefinisi bagus.

   Lapis-lapis dalam sistem operasi ada 6 lapis, yaitu :
   · Lapis 5 - The operator
     Berfungsi untuk pemakai operator.
   · Lapis 4 - User programs
     Berfungsi untuk aplikasi program pemakai.
   · Lapis 3 - I/O management
     Berfungsi untuk menyederhanakan akses I/O pada level atas.
   · Lapis 2 - Communication operators
     Berfungsi untuk mengatur komunikasi antar proses.
   · Lapis 1 -Memory and drum management
     Berfungsi untuk mengatur alokasi ruang memori atau drum magnetic.
   · Lapis 0 -Processor allocation and multiprogramming
Berfungsi untuk mengatur alokasi pemroses dan switching, multiprogramming dan pengaturan prosessor.

Keunggulan :
Memiliki semua keunggulan rancangan modular, yaitu sistem dibagi menjadi beberapa modul dan tiap modul dirancang secara independen. Tiap lapisan dapat dirancang, dikode dan diuji secara independen. Pendekatan berlapis menyederhanakan rancangan, spesifikasi dan implementasi sistem operasi.

Kelemahan :
Fungsi-fungsi sistem operasi harus diberikan ke tiap lapisan secara hati-hati.

3.      Virtual machines
Awalnya struktur ini membuat seolah-olah pemakai mempunyai seluruh komputer dengan simulasi atas pemroses yang digunakan. Sistem operasi melakukan simulasi mesin nyata. Mesin hasil simulasi digunakan pemakai, mesin maya merupakan tiruan seratus persen atas mesin nyata. Semua pemakai diberi iluasi mempunyai satu mesain yang sama-sama canggih.
Pendekatan ini memberikan fleksibilitas tinggi sampai memungkinkan sistem operasi-sistem operasi berbeda dapat dijalankan dimesin-mesin maya berbeda. Implementasi yang efisien merupakan masalah sulit karena sistem menjadi besar dan kompleks. Teknik ini mulanya digunakan pada IBM S/370. VM/370 menyediakan mesin maya untuk tiap pemakai. Bila pemakai log (masuk) sistem, VM/370 menciptakan satu mesin maya baru untuk pemakai itu.
Teknik ini berkembang menjadi operating system emulator sehingga sistem operasi dapat menjalankan aplikasi-aplikasi untuk sistem operasi lain.

Sistem operasi MS-Windows NT dapat menjalankan aplikasi untuk MS-DOS, OS/2 mode teks dan aplikasi Win16. Aplikasi tersebut dijalankan sebagai masukan bagi subsistem di MS-Windows NT yang mengemulasikan system calls yang dipanggil aplikasi dengan Win32 API (system calls di MS-Windows NT).

IBM mengembangkan WABI yang mengemulasikan Win32 API sehingga diharapkan sistem operasi yang menjalankan WABI dapat menjalankan aplikasi-aplikasi untuk MS-Windows.
Para sukarelawan pengembang Linux telah membuat DOSEMU agar aplikasi-aplikasi untuk MS-DOS dapat dijalankan di Linux, WINE agar aplikasi untuk MS-Windows dapat dijalankan di Linux, iBCS agar aplikasi-aplikasi untuk SCO-UNIX dapat dijalankan di Linux, dan sebagainya.

4.      Client-server model
Sistem operasi merupakan kumpulan proses dengan proses-proses dikategorikan sebagai server dan client, yaitu :
   · Server, adalah proses yang menyediakan layanan.
   · Client, adalah proses yang memerlukan/meminta layanan
     Proses client yang memerlukan layanan mengirim pesan ke server dan menanti pesan jawaban. Proses server setelah melakukan tugas yang diminta, mengirim hasil dalam bentuk pesan jawaban ke proses client. Server hanya menanggapi permintaan client dan tidak memulai dengan percakapan client. Kode dapat diangkat ke level tinggi, sehingga kernel dibuat sekecil mungkin dan semua tugas diangkat ke bagian proses pemaka. Kernel hanya mengatur komunikasi antara client dan server. Kernel yang ini popular dengan sebutan mikrokernel.
   · Permintaan pelayanan, seperti membaca sebuah blok file, sebuah user process (disebut client process) mengirimkan permintaan kepada sebuah server process, yang kemudian bekerja dan memberikan jawaban balik.
Masalah :
   · Tidak semua tugas dapat dijalankan di tingkat pemakai (sebagai proses pemakai).
Kesulitan ini diatasi dengan :
   · Proses server kritis tetap di kernel, yaitu proses yang biasanya berhubungan dengan perangkat keras.
   · Mekanisme ke kernel seminimal mungkin,sehingga pengaksesan ruang pemakai dapat dilakukan dengan cepat. Untuk sistem-sistem besar dengan banyak server dikehendaki supaya client transparan dalam meminta layanan sehingga tidak menyulitkan pemogram.

   Keunggulan :
   · Pengembangan dapat dilakukan secara modular.
   · Kesalahan (bugs) di satu subsistem (diimplementasikan sebagai satu proses) tidak merusak subsistem-subsistem lain, sehingga tidak mengakibatkan satu sistem mati secara keseluruhan.
   · Mudah diadaptasi untuk sistem tersebar.

   Kelemahan :
   · Layanan dilakukan lambat karena harus melalui pertukaran pesan.
   · Pertukaran pesan dapat menjadi bottleneck.

5.      Sistem Berorientasi Objek
Sistem operasi merealisasikan layanan sebagai kumpulan proses disebut sistem operasi bermodel proses. Pendekatan lain implementasi layanan adalah sebagai objek-objek. Sistem operasi yang distrukturkan menggunakan objek disebut sistem operasi berorientasi objek. Pendekatan ini dimaksudkan untuk mengadopsi keunggulan teknologi berorientasi objek.
Pada sistem yang berorientasi objek, layanan diimplementasikan sebagai kumpulan objek. Objek mengkapsulkan struktur data dan sekumpulan operasi pada struktur data itu. Tiap objek diberi tipe yang menandadi properti objek seperti proses, direktori, berkas, dan sebagainya. Dengan memanggil operasi yang didefinisikan di objek, data yang dikapsulkan dapat diakses dan dimodifikasi.
Model ini sungguh terstruktur dan memisahkan antara layanan yang disediakan dan implementasinya. Conoh sistem operasi yang berorientasi objek, antara lain : eden, choices, x-kernel, medusa, clouds, amoeba, muse, dan sebagainya. Sistem operasi MS Windows NT telah mengadopsi beberapa teknologi berorientasi objek tetapi belum keseluruhan.


LAYANAN SISTEM OPERASI



Tujuan dari sebuah sistem operasi adalah sebagai penghubung antara user dan hardware, dimana sistem operasi memberikan kemudahan-kemudahan agar user tidak harus mengakses hardware secara langsung dalam bahasa mesin, tetapi dalam bentuk layanan-layanan yang diberikan oleh sistem operasi.

Berikut ini adalah kategori-kategori layanan yang diberikan oleh sistem operasi:
·         Antarmuka. Sistem operasi menyediakan berbagai fasilitas yang membantu programmer dalam membuat program seperti editor. Walaupun bukan bagian dari sistem operasi, tapi layanan ini diakses melalui sistem operasi.
·         Eksekusi Program. Sistem harus bisa me- load program ke memori, dan menjalankan program tersebut. Program harus bisa menghentikan pengeksekusian baik secara normal maupun tidak (ada error).
·         Operasi Masukan/Keluaran. Program yang sedang dijalankan kadang kala membutuhkan Masukan/Keluaran. Untuk efisiensi dan keamanan, pengguna biasanya tidak bisa mengatur piranti masukan/keluaran secara langsung, untuk itulah sistem operasi harus menyediakan mekanisme dalam melakukan operasi masukan/keluaran.
·         Manipulasi Sistem Berkas. Program harus membaca dan menulis berkas, dan kadang kala juga harus membuat dan menghapus berkas.
·         Komunikasi. Kadang kala sebuah proses memerlukan informasi dari proses 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 share-memory atau message-passing, dimana sejumlah informasi dipindahkan antara proses oleh sistem operasi.
·         Deteksi Error. Sistem operasi harus selalu waspada terhadap kemungkinan error. Error dapat terjadi di CPU dan memori perangkat keras, masukan/keluaran, dan di dalam program yang dijalankan pengguna. Untuk setiap jenis error sistem operasi harus bisa mengambil langkah yang tepat untuk mempertahanan jalannya proses komputasi, misalnya dengan menghentikan jalannya program, mencoba kembali melakukan operasi yang dijalankan, atau melaporkan kesalahan yang terjadi agar pengguna dapat mengambil langkah selanjutnya.

Disamping pelayanan di atas, terdapat juga layanan-layanan lain yang bertujuan untuk mempertahankan efisiensi sistem itu sendiri. Layanan tambahan itu yaitu:
·         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.
·         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.
        ·         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 mengindentifikasi pengguna. Ini bisa dilakukan dengan meminta password bila ingin menggunakan sumber daya.