Sistem Operasi Terdistribusi Catur Iswahyudi Politeknik Elektronika Negeri Surabaya Institut Tekonolgi Sepuluh Nopember Surabaya 1 Tujuan Pembelajaran Diharapkan agar Mahasiswa dapat : Memahami definisi sistem operasi terdistribusi dan dapat memberikan contoh nyata Mengetahui karakteristik sistem operasi terdistribusi Mengetahui model sistem operasi terdistribusi Mengetahui permasalahan-permasalahan yang terjadi pada sistem operasi terdistribusi 2 Pokok Bahasan Penamaan dan Pengalamatan Primitif Komunikasi Sinkronisasi Clock Penjaminan mutual-exclusion Penanganan deadlock Manajemen proses tersebar Sistem file tersebar Manajemen Memori tersebar Pemulihan dari kegagalan, fault-tolerance, dan pemeliharaan konsistensi 3 Latar Belakang Perkembangan pesat teknologi informasi menyebabkan bertambahnya permintaan suatu sistem, baik berupa perangkat keras maupun perangkat lunak yang dapat digunakan dengan baik dan cepat. 4 5 6 Permintaan yang terus bertambah ini tidak sebanding dengan kemampuan perangkat keras yang ada. Salah satu cara untuk mengatasi hal itu dibuat pengembangan di sisi perangkat lunak dengan membuat suatu sistem virtual dimana beberapa perangkat keras atau komputer dihubungkan dalam jaringan dan diatur oleh sebuah sistem operasi yang mengatur seluruh proses yang ada pada setiap komputer tersebut sehingga memungkinkan proses berjalan dengan cepat. 7 How google search engine works 8 Sistem operasi yang mengatur proses ini sering disebut sebagai sistem operasi terdistribusi (distributed operating system) . Sistem operasi terdistribusi ini sekarang menjadi trend, terutama untuk riset yang kadang membutuhkan CPU yang sangat cepat untuk melakukan perhitungan yang sangat kompleks. 9 Sistem Terdistribusi Politeknik Elektronika Negeri Surabaya Institut Tekonolgi Sepuluh Nopember Surabaya 10 Sistem Terdistribusi Sistem terdistribusi (tersebar) adalah sekumpulan komputer otonom yang ditautkan pada jaringan komunikasi dengan perangkat lunak dirancang untuk menghasilkan satu fasilitas komputasi terpadu 11 Secara historis, komputasi terdistribusi telah difokuskan pada masalah penyebaran perhitungan antara beberapa sistem yang bersama-sama bekerja pada masalah. Abstraksi komputasi terdistribusi paling sering digunakan adalah RPC – Remote Procedure Call. RPC memungkinkan fungsi remote akan dipanggil seolaholah itu adalah satu lokal 12 Tujuan Komputasi Terdistribusi Tujuan utama dari sistem komputasi terdistribusi adalah untuk menghubungkan para pengguna dan sumber daya dalam cara yang transparent, open dan scalable. Idealnya, ini akan membuat sistem lebih faulttolerant daripada sistem komputer stand-alone. 13 Openness merupakan properti dari sistem terdistribusi dimana setiap sub-sistem secara kontinu terbuka untuk berinteraksi dengan sistem lain. Protokol web services adalah standard yang memungkinkan sistem terdistribusi di-extend dan discale. Secara umum, suatu sistem terbuka yang bersifat scalable memberikan keuntungan lebih dibandingkan sistem yang tertutup dan self-contained (menyatu). 14 Tantangan Sistem Terdistribusi Monotonicity. Begitu sesuatu dipublikasikan di dalam sistem terbuka (open system) maka tidak dapat diambil kembali. Pluralism. Sub-sistem-subsistem berbeda dalam sistem open distributed dapat mempunyai informasi yang heterogen, mungkin pula overlap dan menyebabkan konflik. Tidak ada pengatur kebenaran sentral dalam sistem open distributed. Unbounded nondeterminism. Secara asinkron, subsistemsubsistem dapat naik dan turun, dan link komunikasi dapat masuk dan keluar antar sub-sistem dalam sistem open distributed. Karena itu, waktu yang diperlukan untuk menyelesakan suatu operasi tidak dapat dibatasi dan dipastikan. 15 Jaringan Sistem terdistribusi adalah sekumpulan prosesor yang tidak berbagi memori atau clock. Tiap prosesor mempunyai memori sendiri. Prosesor-prosesor tersebut terhubung melalui jaringan komunikasi Sistem terdistribusi menyediakan akses pengguna ke bermacam sumber-daya sistem. Keuntungannya adalah : • Increased data availability. • Enhanced reliability. • Computation speed-up. • Increased data availability. • Enhanced reliability 16 Sistem Terdistribusi Prosesor dalam sistem terdistribusi bervariasi, dapat berupa small Microprocessor, workstation, dan minicomputer 17 Why Distributed Systems? Scale Processing Data Diversity in Application Domains Collaboration Cost 18 Why Distributed Systems? A. Big data continues to grow: In mid-2010, the information universe carried 1.2 zettabytes and 2020 predictions expect nearly 44 times more at 35 zettabytes coming our way. B. Applications are becoming data-intensive. 19 Why Distributed Systems? C. Individual computers have limited resources compared to scale of current day problems & application domains: 1. Caches and Memory: L1 Cache L2 Cache 16KB- 64KB, 2-4 cycles 512KB- 8MB, 6-15 cycles L3 Cache Main Memory 4MB- 32MB, 30-50 cycles 1GB- 4GB, 300+ cycles 20 Why Distributed Systems? 2. Hard Disk Drive: Limited capacity Limited number of channels Limited bandwidth 21 Why Distributed Systems? 3. Processor: The number of transistors that can be integrated on a single die has continued to grow at Moore’s pace. Chip Multiprocessors (CMPs) are now available P P P P P L1 L1 L1 L1 L1 Interconnect L2 L2 Cache A single Processor Chip A CMP 22 Why Distributed Systems? 3. Processor (cont’d): Up until a few years ago, CPU speed grew at the rate of 55% annually, while the memory speed grew at the rate of only 7% [H & P]. P P P P P L1 L1 L1 L1 L1 Interconnect L2 L2 Cache Memory Memory P M Processor-Memory speed gap 23 Why Distributed Systems? Even if 100s or 1000s of cores are placed on a CMP, it is a challenge to deliver input data to these cores fast enough for processing. P P P P L1 L1 L1 L1 Interconnect A Data Set of 4 TBs 10000 seconds (or 3 hours) to load data L2 Cache Memory 4 100MB/S IO Channels 24 Why Distributed Systems? Splits P L1 100 Machines P L1 L2 L2 Memory Memory Only 3 minutes to load data A Data Set (data) of 4 TBs 25 Requirements But this requires: A way to express the problem as parallel processes and execute them on different machines (Programming Models and Concurrency). A way for processes on different machines to exchange information (Communication). A way for processes to cooperate, synchronize with one another and agree on shared values (Synchronization). A way to enhance reliability and improve performance (Consistency and Replication). 26 Requirements But this requires (Cont.): A way to recover from partial failures (Fault Tolerance). A way to secure communication and ensure that a process gets only those access rights it is entitled to (Security). A way to extend interfaces so as to mimic the behavior of another system, reduce diversity of platforms, and provide a high degree of portability and flexibility (Virtualization) 27 Sistem Terdistribusi Berikut adalah ilustrasi struktur sistem terdistribusi: 28 Karakteristik Sistem Terdistribusi Concurrency of components. Pengaksesan suatu komponen/sumber daya (segala hal yang dapat digunakan bersama dalam jaringan komputer, meliputi H/W dan S/W) secara bersamaan. Contoh: Beberapa pemakai browser mengakses halaman web secara bersamaan No global clock. Hal ini menyebabkan kesulitan dalam mensinkronkan waktu seluruh komputer/perangkat yang terlibat. Dapat berpengaruh pada pengiriman pesan/data, seperti saat beberapa proses berebut ingin masuk ke critical session. Independent failures of components. Setiap komponen/perangkat dapat mengalami kegagalan namun komponen/perangkat lain tetap berjalan dengan baik. 29 Mengapa Sistem Terdistribusi Resource Sharing. Dalam sistem terdistribusi, situs-situs yang berbeda saling terhubung satu sama lain melalui jaringan sehingga situs yang satu dapat mengakses dan menggunakan sumber daya yang terdapat dalam situs lain. Misalnya, user di situs A dapat menggunakan laser printer yang dimiliki situs B dan sebaliknya user di situs B dapat mengakses file yang terdapat di situs A. Computation Speedup. Apabila sebuah komputasi dapat dipartisi menjadi beberapa subkomputasi yang berjalan bersamaan, maka sistem terdistribusi akan mendistribusikan subkomputasi tersebut ke situs-situs dalam sistem. Dengan demikian, hal ini meningkatkan kecepatan komputasi (computation speedup). 30 Mengapa Sistem Terdistribusi Reliability. Dalam sistem terdistribusi, apabila sebuah situs mengalami kegagalan, maka situs yang tersisa dapat melanjutkan operasi yang sedang berjalan. Hal ini menyebabkan reliabilitas sistem menjadi lebih baik. Communication. Ketika banyak situs saling terhubung melalui jaringan komunikasi, user dari situs-situs yang berbeda mempunyai kesempatan untuk dapat bertukar informasi. 31 Tantangan Sistem Terdistribusi Heterogen. Suatu sistem terdistribusi dapat dibangun dari berbagai macam perangkat yang berbeda, baik sistem operasi, H/W maupun S/W. Keterbukaan. Setiap perangkat memiliki antarmuka (interface) yang di-publish ke komponen lain. Perlu integrasi berbagai komponen yang dibuat oleh programmer atau vendor yang berbeda Keamanan. Shared resources dan transmisi informasi/data perlu dilengkapi dengan enkripsi. 32 Tantangan Sistem Terdistribusi Penangan kegagalan. Setiap perangkat dapat mengalami kegagalan secara independen. Namun, perangkat lain harus tetap berjalan dengan baik. Concurrency of components. Pengaksesan suatu komponen/sumber daya secara bersamaan oleh banyak pengguna. Transparansi. Bagi pemakai, keberadaan berbagai perangkat (multiplisitas perangkat) dalam sistem terdistribusi tampak sebagai satu sistem saja 33 Fitur Sistem Terdistribusi Data Migration. Misalnya, user di situs A ingin mengakses data di situs B. Maka, transfer data dapat dilakukan melalui dua cara, yaitu dengan mentransfer keseluruhan data atau mentransfer sebagian data yang dibutuhkan untuk immediate task. Computation Migration. Terkadang, kita ingin mentransfer komputasi, bukan data. Pendekatan ini yang disebut dengan computation migration Process Migration. Ketika sebuah proses dieksekusi, proses tersebut tidak selalu dieksekusi di situs di mana ia pertama kali diinisiasi. Keseluruhan proses, atau sebagian daripadanya, dapat saja dieksekusi pada situs yang berbeda. 34 Fitur Sistem Terdistribusi Mengapa Process Migration ? Load balancing. Proses atau subproses-subproses didistribusikan ke jaringan untuk memeratakan beban kerja. Computation speedup. Apabila sebuah proses dapat dibagi menjadi beberapa subproses yang berjalan bersamaan di situs yang berbeda-beda, maka total dari process turnaround time dapat dikurangi. Hardware preference. Proses mungkin mempunyai karakteristik tertentu yang menyebabkan proses tersebut lebih cocok dieksekusi di prosesor lain.Misalnya, proses inversi matriks, lebih cocok dilakukan di array processor daripada di microprocessor Software preference. Proses membutuhkan software yang tersedia di situs lain, di mana software tersebut tidak dapat dipindahkan atau lebih murah untuk melakukan migrasi proses daripada software Data access. Sistem operasi terdistribusi menyediakan semua fitur di atas dengan kemudahan penggunaan dan akses dibandingkan dengan sistem operasi jaringan 35 Tipe Jaringan dalam Sistem Terdistribusi Local Area Network (LAN). LAN muncul pada awal tahun 1970an sebagai pengganti dari sistem komputer mainframe. LAN, didesain untuk area geografis yang kecil. Misalnya, LAN digunakan untuk jaringan dalam sebuah bangunan atau beberapa bangunan yang berdekatan. Umumnya, jarak antara situs satu dengan situs yang lain dalam LAN berdekatan. Oleh karena itu, kecepatan komunikasinya lebih tinggi dan peluang terjadi kesalahan (error rate) lebih rendah. Dalam LAN, dibutuhkan high quality cable supaya kecepatan yang lebih tinggi dan reliabilitas tercapai. Jenis kabel yang biasanya dipakai adalah twistedpair dan fiber-optic. 36 Tipe Jaringan dalam Sistem Terdistribusi Berikut adalah ilustrasi dari Local Area Network: 37 Tipe Jaringan dalam Sistem Terdistribusi Wide Area Network. WAN muncul pada akhir tahun 1960-an, digunakan sebagai proyek riset akademis agar tersedia layanan komunikasi yang efektif antara situs, memperbolehkan berbagi hardware dansoftware secara ekonomis antar pengguna. WAN yang pertama kali didesain dan dikembangkan adalah Arpanet yang pada akhirnya menjadi cikal bakal dari Internet. Situs-situs dalam WAN tersebar pada area geografis yang luas. Oleh karena itu, komunikasi berjalan relatif lambat dan reliabilitas tidak terjamin. Hubungan antara link yang satu dengan yang lain dalam jaringan diatur oleh communication processor. 38 Tipe Jaringan dalam Sistem Terdistribusi Berikut adalah ilustrasi dari Wide Area Network 39 Topologi Sistem Terdistribusi 40 Tipe Jaringan dalam Sistem Terdistribusi Situs-situs dalam sistem terdistribusi dapat terhubung melalui berbagai macam cara yang ditentukan berdasarkan kriteria-kriteria sebagai berikut: Biaya instalasi. Biaya menghubungkan situs-situs dalam sistem. Biaya komunikasi. Besar waktu dan uang untuk mengirimkan pesan dari satu situs ke situs lainnya. Ketersediaan/availabilitas. Sampai sejauh mana data dapat diakses walaupun terdapat kegagalan pada beberapa link atau situs. 41 Topologi Jaringan Fully Connected Network Tiap situs dalam Fully Connected Network terkoneksi secara langsung dengan situs lainnya. Link yang ada menjadi banyak dan menyebabkan biaya instalasi besar. Topologi jenis ini tidak praktis untuk diterapkan dalam sistem yang besar. 42 Topologi Jaringan Partially Connected Network Link yang ada hanya antara beberapa situs sehingga biaya instalasi menjadi lebih rendah. Namun, biaya komunikasi bisa menjadi lebih mahal. Misalkan, situs A ingin mengakses data di situs E, maka jalan yang ditempuh menuju situs E harus melalui situs B terlebih dahulu karena tidak ada link langsung dari situs A ke situs E. Semakin jauh jalan yang ditempuh, biaya komunikasi semakin mahal. Selain itu, availibilitas atau ketersediaan data kurang baik dibandingkan dengan Fully Connected Network. Misalkan, jika terjadi failure site atau kegagalan situs di C maka akses ke situs F menjadi tidak ada. 43 Topologi Jaringan Partially Connected Network terdiri dari: Tree-structured network. Biaya instalasi dan komunikasi pada topologi jenis ini biasanya rendah. Namun, jika terjadi failure link atau failure site maka pengaksesan data menjadi terhambat dan mengakibatkan availibilitas/ketersediaan menjadi rendah. Star network. Biaya komunikasi rendah karena setiap situs paling banyak mengakses dua link ke situs lain. Namun, bila terjadi failure site di situs pusat maka setiap situs tidak akan dapat mengakses situs lainnya sehingga availibilitas/ketersediaan pada topologi jenis star network rendah. Ring network. Biaya komunikasi tinggi karena jika ingin mengakses sebuah situs bisa jadi harus menempuh banyak link. Misalnya, dari situs A menuju situs D, link yang dilewati sebanyak tiga buah. Availibilitas/ketersediaan pada topologi ring network lebih terjamin dibandingkan pada star network maupun pada tree-structured network. 44 Topologi Jaringan 45 Kegagalan Sistem Terdistribusi Dalam sistem terdistribusi terdapat berbagai macam kegagalan : Kegagalan perangkat keras (hardware failure) seperti kegagalan link atau failure link, kegagalan situs atau failure site, dan kehilangan pesan atau loss of message. 46 Oleh karena itu, untuk menjamin kekuatan sistem atau disebut juga robustness maka sistem terdistribusi harus mampu melakukan pendeteksian kegagalan, mereparasi sistem, dan mengkonfigurasinya kembali. Sebuah sistem terdistribusi harus menyediakan mekanisme sinkronisasi proses dan komunikasi, agar terhindar dari deadlock serta dapat mengatasi failure yang tidak muncul dalam sistem terpusat. 47 Contoh Aplikasi Sistem kendali manufaktur Sistem kendali penerbangan Sistem alih telepon Sistem perbankan otomatis Sistem perdagangan saham 48 Arsitektur Sistem Terdistribusi Model Workstation Model Penampungan Pemroses (processors pool) Model hibrid 49 Model workstation. Sistem berisi workstation (PC) yang tersebar dan dihubungkan dengan LAN berkecepatan tinggi Model penampungan pemroses. Terdapat satu rak pemroses. Pemroses tersebut dapat dialokasikan ke pemakai sesuai permintaan secara otomatis. Disediakan terminal grafis dengan kinerja tinggi Model hibrid. Kompromi dilakukan dimana pemakai memiliki PC dan disediakan processors pool. Solusi ini lebih mahal dibanding model WS atau processor pool murni 50 Sistem Operasi Terdistribusi 51 Pokok Bahasan Penamaan dan Pengalamatan Komunikasi Primitif Sinkronisasi Clock Penjaminan mutual-exclusion Penanganan deadlock Manajemen proses tersebar Sistem file tersebar Manajemen Memori tersebar Pemulihan dari kegagalan, fault-tolerance, dan pemeliharaan konsistensi 52 Pengantar Suatu sistem operasi terdistribusi yang sejati adalah yang berjalan pada beberapa buah mesin, yang tidak melakukan sharing memori, tetapi terlihat bagi user sebagai satu buah komputer single. Pengguna tidak perlu memikirkan keberadaan perangkat keras yang ada, seperti prosesor. Contoh dari sistem seperti ini adalah Amoeba. 53 54 Sistem operasi terdistribusi berbeda dengan sistem operasi jaringan. SO jaringan memiliki ciri-ciri sebagai berikut: a. Tiap komputer memiliki sistem operasi sendiri b. Tiap PC memiliki sistem file sendiri, dimana data disimpan c. SO tiap komputer dapat berbeda-beda atau heterogen d. Pengguna harus memikirkan keberadaan komputer lain yang terhubung, dan harus mengakses, biasanya menggunakan remote login (telnet) e. File system dapat digunakan dengan dukungan NFS 55 Arsitektur Distibuted OS 56 SO adalah Sistem operasi (OS) adalah sekumpulan software yang mengatur sumber daya di hardware komputer dan memberikan layanan bagi program komputer. Sistem Operasi merupakan komponen penting dari sistem perangkat lunak dalam sebuah komputer. Program aplikasi biasanya membutuhkan sistem operasi untuk bisa berfungsi. Untuk fungsi hardware seperti I/O dan alokasi memory, sistem operasi berfungsi sebagai perantara antara program dengan komputer hardware. Meskipun demikian aplikasi dijalankan secara langsung oleh hardware dan biasanya akan melakukan system call ke fungsi di OS atau di-interupsi oleh OS tersebut. 57 SO Modern Sistem operasi dapat ditemukan di hampir semua alat yang mempunyai fungsi komputer mulai dari handphone, video game hingga super komputer dan web server. Contoh sistem operasi modern Android, BSD, iOS, Linux, Mac OS X, Microsoft Windows, and IBM z/OS. Semuanya, kecuali Windows dan z/OS, mempunyai akar yang sama yaitu Unix 58 Tipe Sistem Operasi (1) Real-time Sistem operasi real-time adalah sebuah sistem operasi multitasking yang ditujukan untuk menjalankan aplikasi real-time. Sistem Operasi real-time biasanya menspesialisasikan pada algoritma scheduling (penjadwalan) sehingga mereka dapat mencapai perilaku yang deterministik. Tujuan utama sebuah sistem operasi real-time adalah respons yang cepat dan dapat diprediksi untuk berbagai kejadian. Sistem operasi ini dirancang berdasarkan event-driven atau time-sharing atau kedua-nya. Sebuah sistem event-driven melakukan switching antar task berdasarkan prioritas atau kejadian (event) dari luar, sementara sistem operasi timesharing melakukan switching antar task berbasis pada interupsi clock. 59 Tipe Sistem Operasi (2) Multi-user Sistem operasi multi-user memungkinkan banyak pengguna untuk mengakses sistem komputer pada saat yang sama. Sistem time-sharing dan server di Internet dapat dikategorikan sebagai sistem multi-user karena mereka memungkinkan banyak pengguna untuk mengakses komputer dengan cara berbagai waktu (sharing time). Sistem operasi single user hanya satu pengguna tapi dapat menjalankan multiple program pada saat yang sama. 60 Tipe Sistem Operasi (3) Multi-tasking vs. single-tasking Sebuah sistem operasi multi-tasking memungkinkan lebih dari satu program untuk berjalan pada satu saat, dilihat dari skala waktu manusia. Sebuah sistem single-tasking hanya dapat menjalankan satu program. Ada dua tipe Multi-tasking, yaitu: (1) pre-emptive dan (2) co-operative. Pada pre-emptive multitasking, SO akan membagi CPU time dan mendedikasikan satu slot untuk setiap program. Di SO Unix-like, seperti, Solaris dan Linux, biasanya mendukung pre-emptive multitasking, seperti juga AmigaOS. Cooperative multitasking dapat dicapai dengan cara saling mengandalkan satu sama lain untuk memberikan waktu / slot time ke proses yang lain dengan aturan yang baku. 61 Tipe Sistem Operasi (4) Sistem Terdistribusi Sebuah sistem operasi terdistribusi mengatur sebuah kelompok dari komputer yang independen dan membuat mereka tampak seperti satu buah komputer. Dengan perkembangan jaringan komputer memungkinkan sambungan dan komunikasi satu sama lain untuk membangun distributed computing. Komputasi terdistribusi dilakukan oleh lebih dari satu mesin. Jika komputer dalam satu group bekerjasama, maka mereka akan membangun sebuah distributed system / sistem terdistribusi. 62 Tipe Sistem Operasi (5) Sistem Embedded Sistem operasi embedded dirancang untuk digunakan di sistem komputer embedded. Sistem operasi embedded dioperasikan di mesin kecil seperti PDA (Personal Digital Assistant), atau Smartphone. Sistem operasi ini dapat beroperasi dengan sumber daya yang sangat terbatas. Sistem operasi ini dirancang agar sangat kecil dan sangat effisien. Contoh dari sistem operasi embedded ini adalah OpenWRT. 63 SO Terdistribusi Sistem operasi terdistribusi adalah salah satu implementasi dari sistem terdistribusi, dimana sekumpulan komputer dan prosesor yang heterogen terhubung dalam satu jaringan. Koleksi-koleksi dari objek-objek ini secara tertutup bekerja secara bersama-sama untuk melakukan suatu tugas atau pekerjaan tertentu. Tujuan utamanya adalah untuk memberikan hasil secara lebih, terutama dalam: o file system o name space o Waktu pengolahan o Keamanan o Akses ke seluruh resources, seperti prosesor, memori, penyimpanan sekunder, dan perangkat keras 64 SO Terdistribusi Sistem operasi terdistribusi bertindak sebagai sebuah infrastruktur/rangka dasar untuk network-transparent resource management. Infrastruktur mengatur low-level resources (seperti Processor, memory, network interface dan peripheral device yang lain) untuk menyediakan sebuah platform untuk pembentukan/penyusunan higher-level resources (seperti Spreadsheet, electronic mail messages, windows). 65 Manfaat SO Terdistribusi Shared Resource. • Walaupun perangkat sekarang sudah memiliki kemampuan yang cepat dalam proses- proses komputasi, atau misal dalam mengakses data, tetapi pengguna masih saja menginginkan sistem berjalan dengan lebih cepat. Apabila hardware terbatas, kecepatan yang diinginkan user dapat di atasi dengan menggabung perangkat yang ada dengan sistem DOS. Manfaat Komputasi • Salah satu keunggulan sistem operasi terdistribusi ini adalah bahwa komputasi berjalan dalam keadaan paralel. Proses komputasi ini dipecah dalam banyak titik, yang mungkin berupa komputer pribadi, prosesor tersendiri, dan kemungkinan perangkat prosesor- prosesor yang lain. Sistem operasi terdistribusi ini bekerja baik dalam memecah komputasi ini dan baik pula dalam mengambil kembali hasil komputasi dari titik-titik cluster untuk ditampilkan hasilnya 66 Manfaat SO Terdistribusi Reliabilitas • Fitur unik yang dimiliki oleh DOS ini adalah reliabilitas. Berdasarkan design dan implementasi dari design sistem ini, maka hilangnya satu node tidak akan berdampak terhadap integritas sistem. Hal ini berbeda dengan PC, apabila ada salah satu hardware yang mengalami kerusakan, maka sistem akan berjalan tidak seimbang, bahkan sistem bisa tidak dapat berjalan atau mati. Komunikasi • Sistem operasi terdistribusi berjalan dalam jaringan dan biasanya melayani koneksi jaringan. Sistem ini umumnya digunakan user untuk proses networking. User dapat saling bertukar data, atau saling berkomunikasi antar titik baik secara LAN maupun WAN. 67 DOS versus NOS Suatu sistem operasi terdistribusi yang sejati adalah yang berjalan pada beberapa buah mesin, yang tidak melakukan sharing memori, tetapi terlihat bagi user sebagai satu buah komputer single. Contoh dari sistem seperti ini adalah Amoeba. Untuk dapat membedakannya, sistem operasi jaringan memiliki ciri-ciri sebagai berikut: Tiap komputer memiliki sistem operasi sendiri Tiap personal komputer memiliki sistem file sendiri, di mana data-data disimpan Sistem operasi tiap komputer dapat berbeda-beda atau heterogen Pengguna harus memikirkan keberadaan komputer lain yang terhubung, dan harus mengakses, biasanya menggunakan remote login (telnet) File system dapat digunakan dengan dukungan NFS Sistem Contoh dari sistem ini adalah UNIX dan LINUX Server. 68 Skema NOS 69 Komunikasi di sistem terdistribusi 70 Pengalamatan dan Penamaan Nama adalah identifier (pengenal) yang yang diterjemahkan oleh pemakai atau program. Nama diterjemahkan menjadi bentuk untuk menjalankan aksi pada sumberdaya yang diacu Pengalamatan dan penamaan sumberdaya/objek pada sistem tersebar harus bersifat global, tidak bergantung pada lokasi objek, dapat ditingkatkan untuk sistem besar dan diterjemahkan secara efisien sehingga tidakmengurangi kinerja sistem 71 Pengalamatan Di Internet, yang menggunakan protokol TCP/IP, identifier berisi dua bagian • Host identifier, disebut alamat IP berisi 4 oktet (byte) • Port number, identifikasi port komunikasi tertentu (2 byte) Cara implementasi pengalamatan • Dipasang pada kode client secara langsung • Terdapat nama server, yang mencarikan alamat untuk suatu nama tertentu 72 Komunikasi dalam sistem tersebar Komunikasi dalam sistem tersebar dapat dikategorikan menjadi dua: • Komunikasi dua pihak; menggunakan model messagepassing dan Remote Procedure Call (RPC) • Komunikasi kelompok Model message-passing direduksi menjadi 2 system call, yaitu : • Send (destination, message) • Receive (sourceAddress, message) 73 Remote Procedure Calls Tujuan RPC adalah pemanggilan prosedur jauh (dikerjakan di mesin lain) seperti pemanggilan prosedur lokal. Pemrogram menulis program tanpa peduli apakah prosedur akan dijalankan di pemroses lokal atau di pemroses jauh RPC memungkinkan proses di suatu sistem memanggil prosedur di proses lain pada mesin lain 74 75 Komunikasi kelompok Dalam sistem tersebar, komunikasi dapat melibatkan banyak proses sekaligus, tidak hanya dua. Misalnya sekelompok file server memberi layanan file dan menyediakan kemampuan fault tolerance. Pada sistem fault tolerance, client mengirim pesan ke semua server untuk menjamin dilayani oleh satu server 76 Contoh aplikasi SO Terdistribusi 77 Contoh SO Terdistribusi Amoeba (Vrije Universiteit). Amoeba adalah sistem berbasis mikro-kernel yang tangguh yang menjadikan banyak workstation personal menjadi satu sistem terdistribusi secara transparan. 78 Contoh SO Terdistribusi Angel (City University of London). Angel didesain sebagai sistem operasi terdistribusi yang pararel, walaupun sekarang ditargetkan untuk PC dengan jaringan berkecepatan tinggi. Model komputasi ini memiliki manfaat ganda, yaitu memiliki biaya awal yang cukup murah dan juga biaya incremental yang rendah 79 Contoh SO Terdistribusi Chorus (Sun Microsystems). CHORUS merupakan keluarga dari sistem operasi berbasis mikro-kernel untuk mengatasi kebutuhan komputasi terdistribusi tingkat tinggi di dalam bidang telekomunikasi, internetworking, sistem tambahan, realtime, sistem UNIX, supercomputing, dan kegunaan yang tinggi. 80 Contoh SO Terdistribusi GLUnix/Global Layer Unix (University of California, Berkeley). Sampai saat ini, workstation dengan modem tidak memberikan hasil yang baik untuk membuat eksekusi suatu sistem operasi terdistribusi dalam lingkungan yang shared dengan aplikasi yang berurutan. Hasil dari penelitian ini adalah untuk menempatkan resource untuk performa yang lebih baik baik untuk aplikasi pararel maupun yang seri/berurutan. 81 Contoh SO Terdistribusi Guide (Grenoble Universities Integrated Distributed Environment) adalah sistem operasi terdistribusi yang berorientasi obyek untuk pempangunan dan operasi dari aplikasi terdistribusi pada PC atau server dengan jaringan yang tersambung LAN. Guide adalah hasil penggabungan Bull and the IMAG Research Institute (Universities of Grenoble), yang telah membangun BullIMAG joint Research Laboratory. Ini juga memiliki kaitan erat dengan COMANDOS Esprit Project (Construction and Management of Distributed Open Systems) dan BROADCAST Esprit Basic Research project. 82 Contoh SO Terdistribusi Hurricane memiliki hierarki sebagai sistem operasi dengan cluster yang merupakan implementasi dari Hector multiprocessor. Pengcluster-an mengatur resource pada sistem, menggunakan pasangan yang ketat antara cluster, dan kehilangan pasangan pada cluster. Prinsip sistem terdistribusi diaplikasikan dengan mendistribusikan dan mereplika servis pada sistem dan objek data untuk meningkatkan kelokalan, meningkatkan konkurensi, dan untuk mencegah sistem terpusat, sehingga membuat sistem berimbang. 83 Contoh SO Terdistribusi Mach (Carnegie Mellon University) adalah satu dari beberapa komunitas penelitian tentang sistem operasi. Sistem ini aslinya dimulai di CMU, dan Mach menjadi basis dari banyak sistem penelitian. Walaupun pekerjaan dengan Mach di CMU sudah lama tidak diterapkan, tetapi masih banyak kelompok-kelompok lain yang masih menggunakan Mach sebagai basis pada penelitiannya. Mach at OSF (OSF Research Institute). OSF Research Institute masih menggunakan teknologi yang dimulai dari CMU dan menggunakan ini sebagai basis dari banyak penelitian, termasuk sistem operasi untuk mesin pararel , kernel berorientasi objek yang aman, dan penelitian-penelitian tentang sistem operasi yang lain. 84 Contoh SO Terdistribusi Mach (Carnegie Mellon University) adalah satu dari beberapa komunitas penelitian tentang sistem operasi. Sistem ini aslinya dimulai di CMU, dan Mach menjadi basis dari banyak sistem penelitian. Walaupun pekerjaan dengan Mach di CMU sudah lama tidak diterapkan, tetapi masih banyak kelompok-kelompok lain yang masih menggunakan Mach sebagai basis pada penelitiannya. Mach at OSF (OSF Research Institute). OSF Research Institute masih menggunakan teknologi yang dimulai dari CMU dan menggunakan ini sebagai basis dari banyak penelitian, termasuk sistem operasi untuk mesin pararel , kernel berorientasi objek yang aman, dan penelitian-penelitian tentang sistem operasi yang lain. 85 Contoh SO Terdistribusi Maruti (University of Maryland) Group Members Maruti adalah sistem operasi berbasis waktu, yang merupakan proyek di University of Maryland. Masix (Blaise Pascal Institute MASI Laboratory) Masix adalah sistem operasi terdistribusi yang berbasis pada mikro kernel dari Mach, yang saat ini di bawah pengembangan dari MASI Laboratory. Tujuan utama dari sistem ini adalah untuk secara simultan mengeksekusi banyak data aplikasi personal, yang berjalan baik baik di semua platform, baik Unix, DOS, OS/2 dan Win32. 86 Contoh SO Terdistribusi MOSIX (Hebrew University, Jerusalem, Israel) Sebuah solusi untuk masalah saat ini menjadi ada untuk lingkungan multikomputer, yang disebut MOSIX. Mosix adalah pengembangan dari UNIX, yang mengijinkan user untuk menggunakan resource yang ada tanpa ada perubahan pada level aplikasi. Dengan penggunaan yang transparan, algoritma proses migrasi dinamis, MOSIX melayani servis jaringan, seperti NFS, TCP/IP, dari UNIX, untuk level proses, dengan menggunakan penyeimbangan load dan distribusi dinamis pada cluster-cluster yang homogen. 87 Contoh SO Terdistribusi Plan 9 (Bell Labs Computing Science Research Center) Plan 9 adalah sistem operasi baru yang dibangun di Bell Labs. Pada kebanyakan konfigurasi menggunakan tiga macam komponen : terminal yang ada pada meja pengguna, server file yang menyimpan data permanen, dan server CPU yang melayani CPU lainnya lebih cepat, authentikasi user, dan network gateways. 88 Contoh SO Terdistribusi Puma and relatives (Sandia National Laboratory) Sistem operasi Puma menargetkan aplikasi dengan performa tinggi yang dipasangkan dengan arsitektur memory terdistribusi. Ini adalah turunan dari SUNMOS. 89 Sistem Berkas Terdistribusi 90 Sistem Berkas Terdistribusi Sistem berkas terdistribusi adalah sebuah sistem dimana banyak pengguna dapat berbagi berkas dan sumber daya penyimpanan. Client, server, dan media penyimpanan dalam sistem terdistribusi tersebar pada perangkat-perangkat yang terdapat dalam sistem terdistribusi. Service dijalankan melalui jaringan. Konfigurasi dan implementasi dari sistem berkas terdistribusi bervariasi dari sistem yang satu ke sistem yang lain. 91 Idealnya, sistem berkas terdistribusi tampil di depan pengguna atau client sebagai sistem berkas yang konvensional dan terpusat. Keberagaman perangkat dibuat tidak tampak sehingga client interface dalam sistem berkas terdistribusi tidak dibedakan antara local file dan remote file. Sistem berkas terdistribusi yang transparan juga akan memfasilitasi mobilitas pengguna dengan membawa lingkungan pengguna, yang dimaksudkan adalah home directory, ke mana saja pengguna itu login. 92 Sistem Berkas Terdistribusi Dalam sistem berkas konvensional dan terpusat, waktu yang diperlukan untuk memenuhi permintaan adalah waktu akses disk dan sedikit waktu untuk CPU processing. Sedangkan dalam sistem berkas terdistribusi, waktu yang diperlukan untuk memenuhi permintaan meningkat akibat remote access yang menambah waktu pengiriman permintaan ke server dan waktu penerimaan respon oleh client. Selain itu, dalam transfer informasi, ada tambahan waktu untuk menjalankan software untuk protokol komunikasi. 93 Metode Remote File Access (RFA) Dengan remote service. Permintaan akses data dikirimkan ke server. Server melakukan akses ke data dan hasilnya diforward kembali ke client. Dengan caching. Bila data yang dibutuhkan belum disimpan di cache maka salinan data akan dibawakan dari server ke client. Idenya adalah untuk menahan data yang baru saja diakses di cache sehingga akses yang berulang ke informasi yang sama dapat ditangani secara lokal. Dengan demikian, dapat mengurangi network traffic. Namun, masalah yang timbul adalah mengenai konsistensi cache, di mana seharusnya salinancache tetap konsisten dengan file-master-nya. 94 Metode Remote File Access (RFA) Dalam sistem berkas terdistribusi, replikasi berkas pada perangkat yang berbeda adalah redundansi yang berguna untuk meningkatkan availibilitas atau ketersediaan. Syarat mendasar untuk replikasi berkas adalah replika dari berkas yang sama terletak pada perangkat yang failureindependent sehingga ketersediaan satu replika tidak dipengaruhi oleh ketersediaan replika yang lain. Masalah utama dalam replikasi adalah updating. Proses update pada satu replika harus dilakukan juga pada replika yang lain. 95 Hardware Sistem Operasi Terdistribusi 96 Amoeba 97 Amoeba is a powerful microkernel-based system that turns a collection of workstations or single-board computers into a transparent distributed system. It has been in use in academia, industry, and government for about 5 years. It runs on the SPARC (Sun4c and Sun4m), the 386/486, 68030, and Sun 3/50 and Sun 3/60. 98 At the Vrije Universiteit, Amoeba runs on a collection of 80 single-board SPARC computers connected by an Ethernet, forming a powerful processor pool. It is used for research in distributed and parallel operating systems, runtime systems, languages, and applications. 99 Sistem Amoeba ini tumbuh dari bawah hingga akhirnya tumbuh menjadi sistem operasi terdistribusi. Inilah keunggulan sistem operasi terdistribusi dalam hal reliabilitas. Apabila ada satu unit pemroses yang mati, maka proses yang dialokasikan harus di restart, tetapi integritas sistem tidak akan terganggu, apabila proses deteksi berjalan dengan baik. Desain sistem ini memungkinkan untuk 10 sampai 100 prosesor. Spesifikasi perangkat keras yang harus disediakan pada tiap cluster minimalnya adalah : File server: 16 MB RAM, 300MB HD, Ethernet card. Workstation: 8 MB RAM, monitor, keyboard, mouse Pool processor: 4 MB RAM, 3.5” floppy drive 100 Komponen Amoeba Workstation atau komputer personal mengeksekusi proses yang memerlukan interaksi dari user seperti text editor atau manager berbasis window. Server khusus memiliki fungsi untuk melakukan tugas yang spesifik. Server ini mengambil alih proses yang memerlukan I/O yang khusus dari larikan disk. Gateway berfungsi untuk mengambil alih tugas untuk terhubung ke jaringan WAN. Procesor pool mengambil alih semua proses yang lain. Tiap unit ini biasanya terdiri dari prosesor, memori lokal, dan koneksi jaringan. Tiap prosesor mengerjakan satu buah proses sampai prosesor yang tidak digunakan habis. 101 Komponen Amoeba Untuk selanjutnya proses yang lain berada dalam antrian menunggu proses yang lain selesai. Inilah keunggulan sistem operasi terdistribusi dalam hal reliabilitas. Apabila ada satu unit pemroses yang mati, maka proses yang dialokasikan harus di restart, tetapi integritas sistem tidak akan terganggu, apabila proses deteksi berjalan dengan baik. 102 Arsitektur Sistem Operasi Terdistribusi 103 CHORUS OS 104 ChorusOS Layers UNIX Subsystem Object-Oriented subsystem U1 User Address Space S1 U2 S2 K1 Kernel Address Space User process U3 System process S3 K2 Management of names, processes, threads, memory, and communication Micro-kernel 105 105 How Chorus is Used in a Distributed System Three layer communication User interface to system System interface to kernel Kernel interface to micro-kernel Uses message passing between process and threads 106 Features and Benefits of ChorusOS Memory Protection Hot Restart Dynamic Reconfiguration Component-based architecture for super-configurability Mission-Critical Quality Exceptional scalability Transparent Distribution Code re-use Multiple OS personalities and APIs 107 Arsitektur Software Sistem operasi terdistribusi sejati memiliki arsitektur software yang unik. Arsitektur software ini dikarakterkan dalam objek di dalam hubungan antara klien dan server. Proses-proses yang terjadi di klien menggunakan remote procedure yang memanggil dan mengirimkan request ke server untuk memproses data atau objek yang dibawa. Tiap objek yang dibawa memiliki karakteristik yang disebut sebagai kapabilitas. 108 Kapabilitas ini besarnya adalah 128 bits. 48 bits pertama menunjukkan servis mana yang memiliki objek tersebut. 24 bits berikutnya adalah nomor dari objek. 8 bits berikutnya menampilkan operasi yang diijinkan terhadap objek yang bersangkutan. Dan 48 bits terakhir merupakan “check field” yang merupakan field yang telah terenkripsi agar tidak dapat dimodifikasi oleh proses yang lain. Operasi diselesaikan oleh RPC (remote procedure calls) yang dibuat oleh klien di dalam proses yang kecil dan ringan. Proses dengan tipe seperti ini memiliki bidang alamat sendiri, dan bisa saja memiliki satu atau lebih hubungan. Hubungan ini ketika berjalan memiliki program counter dan stack sendiri, tetapi dapat saling berbagi kode dan data antara hubungan lain di dalam proses. 109 Manajemen Sistem 110 Manajemen Berkas Dalam sistem operasi terdistribusi ini sistem berkas dipetakan dengan baik dengan berorientasi pada objek yang ada dan kapabilitasnya. Hal ini akan menjadi berkesan abstrak, terutama untuk kelas pengguna. Ada tingkatan yang lebih ekstra dalam pemetaan berkas yang ada, mulai dari simbol, pengurutan nama path, dan kapabilitasnya. Melalui sistem ini objek lokal tidak ada bedanya dengan objek publik. Dalam sistem ini ada semacan tingkatan akses yang sebenarnya mirip UNIX. Setiap user dan group memiliki hak akses yang berbeda-beda pada setiap berkas atau folder yang ada pada sistem operasi terdistribusi. 111 Manajemen Berkas Dalam implementasi sistem Amoeba, terutama di negeri Belanda, hak akses yang dimiliki pengguna terbatas pada hak baca file, tulis/membuat file, dan hapus file. Dengan hal ini, maka keamanan server dapat terjaga. Pelayanan terhadap direktori yang ada dibuat sangat ketat dalam hal keamanan. Bahkan dibuat semacan kode acak yang akan menyandikan file tersebut sehingga tidak mudah dibaca oleh siapapun. Kode penyandinya akan digunakan lagi oleh sistem untuk mengembalikan file seperti semula kepada user. Kode ini hanya akan diberikan kepada pemilik file tersebut. Jadi ketika user mengakses file/berkas yang bersangkutan, maka kode penyandi akan dibuat oleh sistem, agar pemilik file dapat membacanya. 112 Manajemen Proses Dalam sistem operasi terdistribusi yang sejati, tiap proses berada pada alamat segmen-segmen virtual. Proses-proses ini dapat memiliki lebih dari satu hubungan. Kaitan-kaitan ini dialokasikan ke prosesorprosesor sampai semua prosesor habis digunakan. Hasil dari manajemen proses seperti ini menghasilkan utilisasi yang lebih baik, dimana tidak perlu switch apabila harus ada proses yang berat, karena satu proses dialokasikan ke satu prosesor. 113 Proses memiliki dua macam keadaan, yaitu proses sedang berjalan atau sedang stunned. Stunned terjadi bila proses masih ada, tetapi tidak melakukan eksekusi apapun, atau sedang dalam proses debug. Pada keadaan ini kernel memberitahu komunikator (kernel yang lain) adanya proses yang dalam keadaan stunned. Kernel yang lain tersebut berusaha berkomunikasi dengan proses itu sampai proses di-kill atau proses tersebut berjalan kembali. Debugging dan migrasi pada proses ini selesai setelah adanya stunning. 114 Kelemahan SO Terdistribusi Perawatan tiap cluster yang sangat sulit, selain itu juga boros daya, karena harus menghidupkan banyak CPU, membutuhkan jaringan berkecepatan tinggi. Kelemahan-kelemahan tersebut sebenarnya tidak seberapa jika dibandingkan dengan hasilnya. Misalnya saja search engine paling ramai seperti Google™, yang menggunakan teknologi ini, karena hardware yang paling canggih saat ini masih belum mencukupi untuk menangani jutaan request ke server Google tiap detiknya, sehingga mereka harus membuat sistem pararel yang mampu melayani keperluan tersebut. Selain itu dalam dunia research, juga diperlukan sistem ini, terutama untuk melakukan perhitunganperhitungan yang tentu saja sangat rumit dan membutuhkan pemroses yang hebat dan cepat supaya dapat segera dicari hasilnya. 115 Tugas untuk materi minggu depan Carilah referensi tentang: Sinkronisasi Clock Penjaminan mutual-exclusion Penanganan deadlock Manajemen proses tersebar Manajemen memory tersebar 116