buku sistem operasi

Upload: aizu-aurinasahara

Post on 17-Feb-2018

330 views

Category:

Documents


1 download

TRANSCRIPT

  • 7/23/2019 Buku Sistem Operasi

    1/184

    istem

    Operasi

    D. Leyla

  • 7/23/2019 Buku Sistem Operasi

    2/184

  • 7/23/2019 Buku Sistem Operasi

    3/184

    B a b

    Sistem Operasi

    Sistem operasi merupakan sebuah penghubung antara pengguna dari komputer denganperangkat keras komputer. Sebelum ada sistem operasi, orang hanya mengunakankomputer dengan menggunakan sinyal analog dan sinyal digital. Seiring denganberkembangnya pengetahuan dan teknologi, pada saat ini terdapat berbagai sistem operasidengan keunggulan masing-masing. Untuk lebih memahami sistem operasi makasebaiknya perlu diketahui terlebih dahulu beberapa konsep dasar mengenai sistem operasiitu sendiri.

    Pengertian sistem operasi secara umum ialah pengelola seluruh sumber-daya yangterdapat pada sistem komputer dan menyediakan sekumpulan layanan (system calls) kepemakai sehingga memudahkan dan menyamankan penggunaan serta pemanfaatansumber-daya sistem komputer.

    1.1.1. Fungsi Dasar

    Sistem komputer pada dasarnya terdiri dari empat komponen utama, yaitu perangkat-keras, program aplikasi, sistem-operasi, dan para pengguna. Sistem operasi berfungsiuntuk mengatur dan mengaasi penggunaan perangkat keras oleh berbagai programaplikasi serta para pengguna.

    Sistem operasi berfungsi ibarat pemerintah dalam suatu negara, dalam arti membuatkondisi komputer agar dapat men!alankan program secara benar. Untuk menghindarikonflik yang ter!adi pada saat pengguna menggunakan sumber-daya yang sama, sistemoperasi mengatur pengguna mana yang dapat mengakses suatu sumber-daya. Sistemoperasi !uga sering disebut resource allocator. Satu lagi fungsi penting sistem operasi ialahsebagai program pengendali yang bertu!uan untuk menghindari kekeliruan (error) danpenggunaan komputer yang tidak perlu.

    1.1.2. Tujuan Mempelajari Sistem Operasi

    "u!uan mempela!ari sistem operasi agar dapat merancang sendiri serta dapat memodifikasisistem yang telah ada sesuai dengan kebutuhan kita, agar dapat memilih alternatif sistemoperasi, memaksimalkan penggunaan sistem operasi dan agar konsep dan teknik sistem

    operasi dapat diterapkan pada aplikasi-aplikasi lain.

    1.1.3. Sasaran Sistem Operasi

    Sistem operasi mempunyai tiga sasaran utama yaitu kenyamanan -- membuat penggunaankomputer men!adi lebih nyaman, efisien -- penggunaan sumber-daya sistem komputersecara efisien, serta mampu berevolusi -- sistem operasi harus dibangun sehinggamemungkinkan dan memudahkan pengembangan, pengu!ian serta penga!uan sistem-sistem yang baru.

    1

  • 7/23/2019 Buku Sistem Operasi

    4/184

    1.1.4. Sejarah Sistem Operasi

    #enurut "anenbaum, sistem operasi mengalami perkembangan yang sangat pesat, yangdapat dibagi kedalam empat generasi$

    %enerasi Pertama (&'-&')%enerasi pertama merupakan aal perkembangan sistem komputasi elektroniksebagai pengganti sistem komputasi mekanik, hal itu disebabkan kecepatan manusiauntuk menghitung terbatas dan manusia sangat mudah untuk membuat kecerobohan,kekeliruan bahkan kesalahan. Pada generasi ini belum ada sistem operasi, makasistem komputer diberi instruksi yang harus diker!akan secara langsung.

    %enerasi *edua (&'-&'+)

    %enerasi kedua memperkenalkan Batch Processing System, yaitu ob yang diker!akandalam satu rangkaian, lalu dieksekusi secara berurutan.Pada generasi ini sistemkomputer belum dilengkapi sistem operasi, tetapi beberapa fungsi sistem operasi telahada, contohnya fungsi sistem operasi ialah #S dan /S0S.

    %enerasi *etiga (&'+-&'12)Pada generasi ini perkembangan sistem operasi dikembangkan untuk melayani banyakpemakai sekaligus, dimana para pemakai interaktif berkomunikasi leat terminalsecara on-line ke komputer, maka sistem operasi men!adi multi-user (di gunakanbanyak pengguna sekaligus) dan multi-programming (melayani banyak program sekaligus).

    %enerasi *eempat (Pasca &'12an)

    Deasa ini, sistem operasi dipergunakan untuk !aringan komputer dimana pemakaimenyadari keberadaan komputer-komputer yang saling terhubung satu sama lainnya.Pada masa ini para pengguna !uga telah dinyamankan dengan Graphical UserInterface yaitu antar-muka komputer yang berbasis grafis yang sangat nyaman, padamasa ini !uga dimulai era komputasi tersebar dimana komputasi-komputasi tidak lagi

    berpusat di satu titik, tetapi dipecah dibanyak komputer sehingga tercapai kiner!a yanglebih baik.

    1.1.5. Layanan Sistem Operasi

    Sebuah sistem operasi yang baik menurut "anenbaum harus memiliki layanan sebagaiberikut$ pembuatan program, eksekusi program, pengaksesan I/O Device, pengaksesanterkendali terhadap berkas pengaksesan sistem, deteksi dan pemberian tanggapan padakesalahan, serta akunting.

    Pembuatan program yaitu sistem operasi menyediakan fasilitas dan layanan untukmembantu para pemrogram untuk menulis program3 4ksekusi Program yang berartinstruksi-instruksi dan data-data harus dimuat ke memori utama, perangkat-parangkat

    masukan5 keluaran dan berkas harus di-inisialisasi, serta sumber-daya yang ada harusdisiapkan, semua itu harus di tangani oleh sistem operasi3 Pengaksesan I/O Device, artinyaSistem 6perasi harus mengambil alih se!umlah instruksi yang rumit dan sinyal kendalimen!engkelkan agar pemrogram dapat berfikir sederhana dan perangkat pun dapatberoperasi3 Pengaksesan terkendali terhadap berkas yang artinya disediakannyamekanisme proteksi terhadap berkas untuk mengendalikan pengaksesan terhadap berkas3Pengaksesan sistem artinya pada pengaksesan digunakan bersama (share system)3ungsi pengaksesan harus menyediakan proteksi terhadap se!umlah sumber-daya dandata dari pemakai tak terdistorsi serta menyelesaikan konflik-konflik dalam perebutan

  • 7/23/2019 Buku Sistem Operasi

    5/184

    sumber-daya3 Deteksi dan Pemberian tanggapan pada kesalahan, yaitu !ika munculpermasalahan muncul pada sistem komputer maka sistem operasi harus memberikantanggapan yang men!elaskan kesalahan yang ter!adi serta dampaknya terhadap aplikasiyang sedang ber!alan3 dan 7kunting yang artinya Sistem 6perasi yang bagusmengumpulkan data statistik penggunaan beragam sumber-daya dan memonitorparameter kiner!a.

    1.2. Struktur Kmputer

    Struktur sebuah sistem komputer dapat dibagi men!adi$

    Sistem 6perasi *omputer

    Struktur 56.

    Struktur Penyimpanan.

    Storage !ierarchy.

    Proteksi Perangkat *eras.

    1.2.1. Sistem Operasi Kmputer

    Deasa ini sistem komputer multiguna terdiri dari 8PU ("entral Processing Unit)3 sertase!umlah evice controller yang dihubungkan melalui bus yang menyediakan akses kememori. Setiap evice controller bertugas mengatur perangkat yang tertentu (contohnyaisk rive, auio evice, dan vieo isplay). 8PU dan evice controller dapat di!alankansecara bersamaan, namun demikian diperlukan mekanisme sinkronisasi untuk mengaturakses ke memori.

    Pada saat pertama kali di!alankan atau pada saat boot, terdapat sebuah program aalyang mesti di!alankan. Program aal ini disebut program bootstrap. Program ini berisisemua aspek dari sistem komputer, mulai dari register 8PU, evice controller, sampai isimemori.

    nterupsi merupakan bagian penting dari sistem arsitektur komputer. Setiap sistemkomputer memiliki mekanisme yang berbeda. nterupsi bisa ter!adi apabila perangkat keras(har#are) atau perangkat lunak (soft#are) minta 9dilayani9 oleh prosesor. 7pabila ter!adiinterupsi maka prosesor menghentikan proses yang sedang diker!akannya, kemudianberalih menger!akan service routine untuk melayani interupsi tersebut. Setelah selesaimenger!akan service routine maka prosesor kembali melan!utkan proses yangtertunda.

    1.2.2. Struktur !"O

    /agian ini akan membahas struktur 56, interupsi 56, dan D#7, serta perbedaan dalampenanganan interupsi.

    1.2.2.1. !nterupsi !"O

    Untuk memulai operasi 56, 8PU me-loa register yang bersesuaian ke evice controller.Sebaliknya evice controller memeriksa isi register untuk kemudian menentukan operasiapa yang harus dilakukan.

    Pada saat operasi 56 di!alankan ada dua kemungkinan, yaitu synchronous I/O danasynchronous I/O. Pada synchronous I/O, kendali dikembalikan ke proses penggunasetelah proses 56 selesai diker!akan. Sedangkan pada asynchronous I/O, kendali

  • 7/23/2019 Buku Sistem Operasi

    6/184

    dikembalikan ke proses pengguna tanpa menunggu proses 56 selesai. Sehingga proses56 dan proses pengguna dapat di!alankan secara bersamaan.

    1.2.2.2. Struktur DM#

    Direct $emory %ccess (D#7) suatu metoda penanganan 56 dimana evice controller

    langsung berhubungan dengan memori tanpa campur tangan 8PU. Setelah men-setbuffers,pointers, dan counters untuk perangkat 56, evice controller mentransfer blok datalangsung ke penyimpanan tanpa campur tangan 8PU. D#7 digunakan untuk perangkat 56dengan kecepatan tinggi. :anya terdapat satu interupsi setiap blok, berbeda denganperangkat yang mempunyai kecepatan rendah dimana interupsi ter!adi untuk setiap byte(#or).

    1.2.3. Struktur $enyimpanan

    Program komputer harus berada di memori utama (biasanya ;7#) untuk dapat di!alankan.#emori utama adalah satu-satunya tempat penyimpanan yang dapat diakses secaralangsung oleh prosesor. dealnya program dan data secara keseluruhan dapat disimpandalam memori utama secara permanen.

  • 7/23/2019 Buku Sistem Operasi

    7/184

    Dalam storage hierarchy structure, data yang sama bisa tampil dalam le=el berbeda darisistem penyimpanan. Sebagai contoh integer 7 berlokasi pada bekas / yang ditambahkan&, dengan asumsi bekas / terletak pada magnetic isk. 6perasi penambahan diprosesdengan pertama kali mengeluarkan operasi 56 untuk menduplikat disk block pada 7 yangterletak pada memori utama 6perasi ini diikutidengan kemungkinan penduplikatan 7 kedalam cache dan penduplikatan 7 ke dalam internal register. Sehingga penduplikatan 7ter!adi di beberapa tempat. Pertama ter!adi di internal register dimana nilai 7 berbedadengan yang di sistem penyimpanan. Dan nilai di 7 akan kembali sama ketika nilai baruditulis ulang ke magnetic isk.

    Pada kondisi multi prosesor, situasi akan men!adi lebih rumit. :al ini disebabkan masing-masing prosesor mempunyai local cache. Dalam kondisi seperti ini hasil duplikat dari 7mungkin hanya ada di beberapa cache. *arena 8PU (register-register) dapat di!alankansecara bersamaan maka kita harus memastikan perubahan nilai 7 pada satu cache akanmengubah nilai 7 pada semua cache yang ada. :al ini disebut sebagai "ache "oherency.

    1.2.5. $rteksi $erangkat Keras

    Sistem komputer terdahulu ber!enis programmer-operate systems. *etika komputer

    dioperasikan dalam konsul mereka (pengguna) harus melengkapi sistem terlebih dahulu.7kan tetapi setelah sistem operasi lahir maka hal tersebut diambil alih oleh sistem operasi.Sebagai contoh pada monitor yang proses 56 sudah diambil alih oleh sistem operasi,padahal dahulu hal ini dilakukan oleh pengguna.

    Untuk meningkatkan utilisasi sistem, sistem operasi akan membagi sistem sumber dayasepan!ang program secara simultan. Pengertian spooling adalah suatu program dapatdiker!akan alau pun 56 masih menger!akan proses lainnya dan disk secara bersamaanmenggunakan data untuk banyak proses. Pengertian multi programming adalah kegiatanmen!alankan beberapa program pada memori pada satu aktu.

    Pembagian ini memang menguntungkan sebab banyak proses dapat ber!alan pada satuaktu akan tetapi mengakibatkan masalah-masalah baru. *etika tidak di sharing maka !ikater!adi kesalahan hanyalah akan membuat kesalahan program. "api !ika di- sharing !ikater!adi kesalahan pada satu proses5 program akan berpengaruh pada proses lainnya.

    Sehingga diperlukan pelindung (proteksi). "anpa proteksi !ika ter!adi kesalahan maka hanyasatu sa!a program yang dapat di!alankan atau seluruh output pasti diragukan./anyak kesalahan pemprograman dideteksi oleh perangkat keras. *esalahan ini biasanyaditangani oleh sistem operasi. ika ter!adi kesalahan program, perangkat keras akanmeneruskan kepada sistem operasi dan sistem operasi akan menginterupsi danmengakhirinya. Pesan kesalahan disampaikan, dan memori dari program akan dibuang."api memori yang terbuang biasanya tersimpan pada disk agarprogrammerbisa membetulkan kesalahan dan men!alankan program ulang.

    1.2.5.1. Operasi Dual M&e

    Untuk memastikan operasi ber!alan baik kita harus melindungi sistem operasi, program,dan data dari program-program yang salah. Proteksi ini memerlukan share resources. :alini bisa dilakukan sistem operasi dengan cara menyediakan pendukung perangkat kerasyang mengi>inkan kita membedakan mode pengeksekusian program.#ode yang kita butuhkan ada dua mode operasi yaitu$

    #ode #onitor.

    #ode Pengguna.

  • 7/23/2019 Buku Sistem Operasi

    8/184

    Pada perangkat keras akan ada bit atau /it #ode yang berguna untuk membedakan modeapa yang sedang digunakan dan apa yang sedang diker!akan. ika #ode #onitor makaakan benilai 2, dan !ika #ode Pengguna maka akan bernilai &.

    Pada saat boot time, perangkat keras beker!a pada mode monitor dan setelah sistemoperasi di-loa maka akan mulai masuk ke mode pengguna. *etika ter!adi trap atauinterupsi, perangkat keras akan men-s#itch lagi keadaan dari mode pengguna men!adimode monitor (ter!adi perubahan state men!adi bit 2). Dan akan kembali men!adi modepengguna !ikalau sistem operasi mengambil alih proses dan kontrol komputer (state akanberubah men!adi bit &).

    1.2.5.2. $rteksi !"O

    Pengguna bisa mengacaukan sistem operasi dengan melakukan instruksi 56 ilegal denganmengakses lokasi memori untuk sistem operasi atau dengan cara hendak melepaskan diridari prosesor. Untuk mencegahnya kita menganggap semua instruksi 56 sebagai priviligeinstruction sehingga mereka tidak bisa menger!akan instruksi 56 secara langsung kememori tapi harus leat sistem operasi terlebih dahulu. Proteksi 56 dikatakan selesai !ikapengguna dapat dipastikan tidak akan menyentuh mode monitor. ika hal ini ter!adi proteksi56 dapat dikompromikan.

    1.2.5.3. $rteksi Memri

    Salah satu proteksi perangkat keras ialah dengan proteksi memori yaitu denganpembatasan penggunaan memori. Disini diperlukan beberapa istilah yaitu$

    /ase ;egister yaitu alamat memori fisik aal yang dialokasikan5 boleh digunakan oleh

    pengguna.

    Limit ;egister yaitu nilai batas dari alamat memori fisik aal yang dialokasikan5boleh

    digunakan oleh pengguna

    Proteksi Perangkat *eras.

    Sebagai contoh sebuah pengguna dibatasi mempunyai base register ?2222 dan

    mempunyai limit register &@2'22 maka pengguna hanya diperbolehkan menggunakanalamat memori fisik antara ?2222 hingga @2'2 sa!a.

    1.3. Struktur Sistem Operasi1.3.1. Kmpnen'kmpnen Sistem

    Pada kenyataannya tidak semua sistem operasi mempunyai struktur yang sama. , Peter %al=in, dan %reg %agne, umumnya sebuah sistem operasimodern mempunyai komponen sebagai berikut$

    #anagemen Proses.

    #anagemen #emori Utama.

    #anagemen Seconary-Storage.

    #anagemen Sistem 56. #anagemen /erkas.

    Sistem Proteksi.

    aringan.

    "omman-Interpreter system.

    1.3.2. Managemen $rses

  • 7/23/2019 Buku Sistem Operasi

    9/184

    Proses adalah keadaan ketika sebuah program sedang di eksekusi. Sebuah prosesmembutuhkan beberapa sumber daya untuk menyelesaikan tugasnya. sumber dayatersebut dapat berupa "PU time, memori, berkas-berkas, dan perangkat-perangkat 56.Sistem operasi bertanggung !aab atas akti=itas-akti=itas yang berkaitan denganmanagemen proses seperti$

    Pembuatan dan penghapusan proses pengguna dan sistem proses.

    #enunda atau melan!utkan proses.

    #enyediakan mekanisme untuk proses sinkronisasi.

    #enyediakan mekanisme untuk proses komunikasi.

    #enyediakan mekanisme untuk penanganan ealock.

    1.3.3. Managemen Memri %tama

    #emori utama atau lebih dikenal sebagai memori adalah sebuah array yang besar dari#or atau byte, yang ukurannya mencapai ratusan, ribuan, atau bahkan !utaan. Setiap#or atau byte mempunyai alamat tersendiri. #emori Utama berfungsi sebagai tempatpenyimpanan yang akses datanya digunakan oleh 8PU atau perangkat 56. #emori utamatermasuk tempat penyimpanan data yang sementara (volatile), artinya data dapat hilangbegitu sistem dimatikan. Sistem operasi bertanggung !aab atas akti=itas-akti=itas yangberkaitan dengan managemen memori seperti$

    #en!aga track dari memori yang sedang digunakan dan siapa yang

    menggunakannya.

    #emilih program yang akan di-loa ke memori.

    #engalokasikan dan meng-dealokasikan ruang memori sesuai kebutuhan.

    1.3.4. Managemen Secondary-StorageData yang disimpan dalam memori utama bersifat sementara dan !umlahnya sangat kecil.6leh karena itu, untuk meyimpan keseluruhan data dan program komputer dibutuhkanseconary-storage yang bersifat permanen dan mampu menampung banyak data. 8ontohdari seconary-storage adalah harisk, disket, dll.

    Sistem operasi bertanggung-!aab atas akti=itas-akti=itas yang berkaitan dengan isk-managementseperti$ free-space management, alokasi penyimpanan, pen!adualan disk.

    1.3.5. Managemen Sistem !"O

    Sering disebut evice manager. #enyediakan 9evice river9 yang umum sehingga operasi56 dapat seragam (membuka, membaca, menulis, menutup). 8ontoh$ penggunamenggunakan operasi yang sama untuk membaca berkas pada har-isk, 8D-;6# danfloppy isk.

    *omponen Sistem 6perasi untuk sistem 56$

    Buffer$ menampung sementara data dari5 ke perangkat 56.

    Spooling$ melakukan pen!adualan pemakaian 56 sistem supaya lebih efisien

    (antrian dsb.).

    #enyediakan river untuk dapat melakukan operasi 9rinci9 untuk perangkat keras

    56 tertentu.

    1.3.(. Managemen )erkas

  • 7/23/2019 Buku Sistem Operasi

    10/184

    /erkas adalah kumpulan informasi yang berhubungan sesuai dengan tu!uan pembuatberkas tersebut. /erkas dapat mempunyai struktur yang bersifat hirarkis (direktori, =olume,dll.).Sistem operasi bertanggung-!aab$

    Pembuatan dan penghapusan berkas.

    Pembuatan dan penghapusan direktori.

    #endukung manipulasi berkas dan direktori. #emetakan berkas ke seconary storage.

    #em-backup berkas ke media penyimpanan yang permanen (non-volatile).

    1.3.*. Sistem $rteksi

    Proteksi mengacu pada mekanisme untuk mengontrol akses yang dilakukan oleh program,prosesor, atau pengguna ke sistem sumber daya. #ekanisme proteksi harus$

    membedakan antara penggunaan yang sudah diberi i>in dan yang belum.

    specify the controls to be impose.

    provie a means of enforcement.

    1.3.+. ,aringan

    Sistem terdistribusi adalah sekumpulan prosesor yang tidak berbagi memori atau clock."iap prosesor mempunyai memori sendiri. Prosesor-prosesor tersebut terhubung melalui

    !aringan komunikasi Sistem terdistribusi menyediakan akses pengguna ke bermacamsumber-daya sistem. 7kses tersebut menyebabkan$

    "omputation spee-up.

    Increase ata availability.

    &nhance reliability.

    1.3.-. Command-Interpreter System

    Sistem 6perasi menunggu instruksi dari pengguna (comman riven). Program yangmembaca instruksi dan mengartikan control statements umumnya disebut$ control-carinterpreter, comman-line'interpreter, dan U(I) shell. "omman-Interpreter System sangatber=ariasi dari satu sistem operasi ke sistem operasi yang lain dan disesuaikan dengantu!uan dan teknologi I/O evices yang ada. 8ontohnya$ "*I, +ino#s, Pen-base (touch),dan lain-lain.

    1.3.1. Layanan Sistem Operasi

    4ksekusi program adalah kemampuan sistem untuk 9loa9 program ke memori danmen!alankan program. 6perasi 56$ pengguna tidak dapat secara langsung mengaksessumber daya perangkat keras, sistem operasi harus menyediakan mekanisme untukmelakukan operasi 56 atas nama pengguna. Sistem manipulasi berkas dalah kemampuan

    program untuk operasi pada berkas (membaca, menulis, membuat, dan menghapusberkas). *omunikasi adalah pertukaran data5 informasi antar dua atau lebih proses yangberada pada satu komputer (atau lebih). Deteksi error adalah men!aga kestabilan sistemdengan mendeteksi 9error9, perangkat keras mau pun operasi.

    4fesisensi penggunaan sistem$

    ,esource allocator adalah mengalokasikan sumber-daya ke beberapa pengguna

    atauob yang !alan pada saat yang bersamaan.

  • 7/23/2019 Buku Sistem Operasi

    11/184

    Proteksi men!amin akses ke sistem sumber daya dikendalikan (pengguna dikontrol

    aksesnya ke sistem).

    %ccounting adalah merekam kegiatan pengguna, !atah pemakaian sumber daya

    (keadilan atau kebi!aksanaan).

    1.3.11. System Calls

    System call menyediakan interface antara program (program pengguna yang ber!alan) danbagian 6S.aSystem call men!adi !embatan antara proses dan sistem operasi. System callditulis dalam bahasaaassembly atau bahasa tingkat tinggi yang dapat mengendalikanmesin (8). 8ontoh$ U

  • 7/23/2019 Buku Sistem Operasi

    12/184

    #ekanisme dan *ebi!aksanaan$

    #ekanisme men!elaskan bagaimana melakukan sesuatu kebi!aksanaan

    memutuskan apa yang akan

    dilakukan. Pemisahan kebi!aksanaan dari mekanisme merupakan hal yang sangat

    penting3 ini mengi>inkan fleksibilitas yang tinggi bila kebi!aksanaan akan diubahnanti.

    *ebi!aksanaan memutuskan apa yang akan dilakukan.

    Pemisahan kebi!aksanaan dari mekanisme merupakan hal yang sangat penting3 inimengi>inkanfleksibilitas yang tinggi bila kebi!aksanaan akan diubah nanti.

    mplementasi Sistem biasanya menggunakan bahas assembly, sistem operasi sekarangdapat ditulis dengan menggunakan bahasa tingkat tinggi. *ode yang ditulis dalam bahasatingkat tinggi$ dapat dibuat dengan cepat, lebih ringkas, lebih mudah dimengerti dandidebug. Sistem operasi lebih mudah dipindahkan ke perangkat keras yang lain bila ditulisdengan bahasa tingkat tinggi.

    1.3.14. System Generation SS6Sistem operasi dirancang untuk dapat di!alankan di berbagai !enis mesin3 sistemnya harus

    di konfigurasi untuk tiap komputer. Program S0S%4< mendapatkan informasi mengenaikonfigurasi khusus dari sistem perangkat keras.

    Booting$ memulai komputer dengan me-loa kernel.

    Bootstrap program$ kode yang disimpan di code ;6# yang dapat menempatkan

    kernel, memasukkannya kedalam memori, dan memulai eksekusinya.

    1.4. 7angkuman

    Sistem operasi telah berkembang selama lebih dari 2 tahun dengan dua tu!uan utama.Pertama, sistem operasi mencoba mengatur akti=itas-akti=itas komputasi untukmemastikan pendayagunaan yang baik dari sistem komputasi tersebut. *edua,menyediakan lingkungan yang nyaman untuk pengembangan dan !alankan dari program.

    Pada aalnya, sistem komputer digunakan dari depan konsul. Perangkat lunak sepertiassembler, loaer, linkerdan compiler meningkatkan kenyamanan dari sistempemrograman, tapi !uga memerlukan aktu set-up yang banyak. Untuk mengurangi aktuset-up tersebut, digunakan !asa operator dan menggabungkan tugas-tugas yang sama(sistem batch). Sistem batch mengi>inkan pengurutan tugas secara otomatis denganmenggunakan sistem operasi yang resident dan memberikan peningkatan yang cukupbesar dalam utilisasi komputer. *omputer tidak perlu lagi menunggu operasi olehpengguna. "api utilisasi 8PU tetap sa!a rendah. :al ini dikarenakan lambatnya kecepatanalat-alat untuk 56 relatif terhadap kecepatan 8PU. 6perasi off-line dari alat-alat yanglambat bertu!uan untuk menggunakan beberapa sistem reaer-to-tape dan tape-to-printeruntuk satu 8PU.

    Untuk meningkatkan keseluruhan kemampuan dari sistem komputer, para de=elopermemperkenalkan konsep multiprogramming. Dengan multiprogramming, beberapa tugasdisimpan dalam memori dalam satu aktu3 8PU digunakan secara bergantian sehinggamenambah utilisasi 8PU dan mengurangi total aktu yang dibutuhkan untukmenyelesaikan tugas-tugas tersebut. $ultiprogramming, yang dibuat untuk meningkatkankemampuan, !uga mengi>inkan time sharing. Sistem operasi yang bersifat time-sharememperbolehkan banyak pengguna untuk menggunakan komputer secara interaktif padasaat yang bersamaan. Kmputer $ersnal adalah mikrokomputer yang dianggap lebihkecil dan lebih murah dibandingkan komputer mainframe. Sistem operasi untuk komputer-komputer seperti ini diuntungkan oleh pengembangan sistem operasi untuk komputer

  • 7/23/2019 Buku Sistem Operasi

    13/184

    mainframe dalam beberapa hal.

  • 7/23/2019 Buku Sistem Operasi

    14/184

    manipulasi alat dan bekas. Permintaan dengan le=el yang lebih tinggi (commaninterpreter atau program sistem) diter!emahkan kedalam urutan sistem call.

    Pelayanan sistem dapat dikelompokkan kedalam beberapa kategori$ kontrol program,status permintaan dan permintaan 56. Program error dapat dipertimbangkan sebagaipermintaan yang implisit untuk pelayanan. /ila sistem pelayanan sudah terdefinisi, makastruktur dari sistem operasi dapat dikembangkan. /erbagai macam tabel diperlukan untukmenyimpan informasi yang mendefinisikan status dari sistem komputer dan status darisistem tugas. Perancangan dari suatu sistem operasi yang baru merupakan tugas yangutama. Sangat penting baha tu!uan dari sistem sudah terdefinisi dengan baik sebelummemulai perancangan. "ipe dari sistem yang diinginkan adalah landasan dalam memilihberagam algoritma dan strategi yang akan digunakan. *arena besarnya sistem operasi,maka modularitas adalah hal yang penting. #erancang sistem sebagai suatu urutan darilayer atau dengan menggunakan mikrokernel merupakan salah satu teknik yang baik.*onsep virtual machine mengambil pendekatan layer dan memperlakukan baik itu kerneldari sistem operasi dan perangkat kerasnya sebagai suatu perangkat keras. /ahkan sistemoperasi yang lain dapat dimasukkan diatas virtual machine tersebut. Setiap sistem operasiyang mengimplemen G# dapat men!alankan semua program !a=a, karena G# mendasaridari sistem ke program !a=a, menyediakan arsitektur tampilan yang netral.

    Didalam daur perancangan sistem operasi, kita harus berhati-hati untuk memisahkanpembagian kebi!akan (policy ecision) dengan detail dari implementasi (mechanism).Pemisahan ini membuat fleksibilitas yang maksimal apabila policy ecision akan diubahkemudian. Sistem operasi sekarang ini hampir selalu ditulis dengan menggunakan bahasatingkat tinggi. :al ini meningkatkan implementasi, peraatan portabilitas. Untuk membuatsistem operasi untuk suatu konfigurasi mesin tertentu, kita harus melakukan systemgeneration.

    1.5. $ertanyaan

    &. Sebutkan tiga tu!uan utama dari sistem operasiI

    @. Sebutkan keuntungan dari multiprogrammingI

    ?. Sebutkan perbedaan utama dari sistem operasi antara komputer mainframe dan P8J

    . Sebutkan kendala-kendala yang harus diatasi olehprogrammer dalam menulis sistemoperasi untuk lingkungan aktu nyataJ

    . elaskan perbedaan antara symmetric dan asymmetric multiprocessing. Sebutkankeuntungan dan kerugian dari sistem multiprosessorI

    +. 7pakah perbedaan antara trap dan interruptJ Sebutkan penggunaan dari setiap fungsitersebutI

    H. Untuk !enis operasi apakah DM# itu bergunaJ elaskan !aabannyaI

    1. Sebutkan dua kegunaan dari memory cacheI Problem apakah yang dapat dipecahkandan !uga muncul dengan adanya cache tersebutJ

    '. /eberapa 8$% menyediakan lebih dari dua mode operasi. Sebutkan dua kemungkinanpenggunaan dari mode tersebutJ

  • 7/23/2019 Buku Sistem Operasi

    15/184

    &2. Sebutkan lima kegiatan utama dari sistem operasi yang berhubungan denganmanagemen prosesI

    &&. Sebutkan tiga kegiatan utama dari sistem operasi yang berhubungan denganmanagemen memoriI

    &@. Sebutkan tiga kegiatan utama dari sistem operasi yang berhubungan denganmanagemen seconary-storageI

    &?. Sebutkan lima kegiatan utama dari sistem operasi yang berhubungan denganmanagemen berkasI

    &. 7pakah tu!uan dari comman interpreterJ #engapa biasanya hal tersebut terpisahdengan kernelJ

  • 7/23/2019 Buku Sistem Operasi

    16/184

    1.(. 7ujukan

    &. http1//###2csc2uvic2ca/3mcheng/456/notes/(O0&S72html(http$55.csc.u=ic.ca5Kmcheng5?+25notes5

  • 7/23/2019 Buku Sistem Operasi

    17/184

    B a b

    $rses &an Threa&

    2.1. $rses

    Satu selingan pada diskusi kita mengenai sistem operasi yaitu baha ada sebuahpertanyaan mengenai apa untuk menyebut semua akti=itas 8PU. Sistem batch

    mengeksekusi !obs, sebagaimana suatu sistem time-share telah menggunakan programpengguna, atau tugas-tugas5 peker!aan-peker!aan. /ahkan pada sistem tunggal, seperti$icrosoft +ino#s dan $acintosh OS, seorang pengguna mampu untuk men!alankanbeberapa program pada saat yang sama$ sebuah +or Processor, +eb Bro#ser, danpaket e-mail. /ahkan !ika pengguna dapat melakukan hanya satu program pada satuaktu, sistem operasi perlu untuk mendukung akti=itas program internalnya sendiri, sepertimanagemen memori. Dalam banyak hal, seluruh akti=itas ini adalah serupa, maka kitamenyebut seluruh program itu proses-proses (processes).

    stilah !ob dan proses digunakan hampir dapat dipertukarkan pada tulisan ini. alau kamipribadi lebih menyukai istilah proses, banyak teori dan terminologi sistem-operasidikembangkan selama suatu aktu ketika akti=itas utama sistem operasi adalah !obprocessing. 7kan menyesatkan untuk menghindari penggunaan istilah umum yang telahditerima baha memasukkn kata !ob (seperti pen!adualan !ob) hanya karena proses

    memiliki !ob pengganti5 pendahulu.

    2.1.1. Knsep Dasar &an De9inisi $rses

    Secara informal3 proses adalah program dalam eksekusi. Suatu proses adalah lebih darikode program, dimana kadang kala dikenal sebagai bagian tulisan. Proses !uga termasukakti=itas yang sedang ter!adi, sebagaimana digambarkan oleh nilai pada program counterdan isi dari daftar prosesor5 processorMs register. Suatu proses umumnya !uga termasukprocess stack, yang berisikan data temporer (seperti parameter metoda, address yangkembali, dan =ariabel lokal) dan sebuah data section, yang berisikan=ariabel global.

    *ami tekankan baha program itu sendiri bukanlah sebuah proses3 suatu program adalahsatu entitas pasif3 seperti isi dari sebuah berkas yang disimpan didalam disket,sebagaimana sebuah proses dalam suatu entitas aktif, dengan sebuah program counteryang mengkhususkan pada instruksi selan!utnya untuk di!alankan dan seperangkat sumberdaya5 resource yang berkenaan dengannya.

    alau dua proses dapat dihubungkan dengan program yang sama, program tersebutdianggap dua urutan eksekusi yang berbeda. Sebagai contoh, beberapa pengguna dapatmen!alankan copy yang berbeda pada mail program, atau pengguna yang sama dapatmeminta banyak copy dari program editor. "iap-tiap proses ini adakah proses yang berbedadan alau bagian tulisan-tet adalah sama, data section ber=ariasi. uga adalah umum

    2

  • 7/23/2019 Buku Sistem Operasi

    18/184

    untuk memiliki proses yang menghasilkan banyak proses begitu ia beker!a. *amimendiskusikan masalah tersebut pada /agian @..

    2.1.2. Kea&aan $rses

    Sebagaimana proses beker!a, maka proses tersebut merubah state (keadaan statis5 asal).

    Status dari sebuah proses didefinisikan dalam bagian oleh akti=itas yang ada dari prosestersebut. "iap proses mungkin adalah satu dari keadaan berikut ini$

    (e#$ Proses sedang diker!akan5 dibuat.

    ,unning$ nstruksi sedang diker!akan.

    +aiting$ Proses sedang menunggu se!umlah ke!adian untuk ter!adi (seperti sebuah

    penyelesaian 56atau penerimaan sebuah tanda5 signal).

    ,eay$ Proses sedang menunggu untuk ditugaskan pada sebuah prosesor.

    0erminate$ Proses telah selsesai melaksanakan tugasnya5 mengeksekusi.

  • 7/23/2019 Buku Sistem Operasi

    19/184

    ;egister tersebut termasuk accumulator, inde register, stack pointer, general-

    puposes register, ditambah code information pada kondisi apa pun. /esertaandengan program counter, keadaan5 status informasi harus disimpan ketikagangguan ter!adi, untuk memungkinkan proses tersebut ber!alan5beker!a denganbenar setelahnya (lihat %ambar @-?).

    nformasi managemen memori$ nformasi ini dapat termasuk suatu informasi

    sebagai nilai dari dasar dan batas register, tabel page5 halaman, atau tabel segmentergantung pada sistem memori yangdigunakan oleh sistem operasi (lihat /ab ).

    nformasi pencatatan$ nformasi ini termasuk !umlah dari 8PU dan aktu riil yang

    digunakan, batas aktu, !umlah akun, !umlah !ob atau proses, dan banyak lagi.

    nformasi status 56$ nformasi termasuk daftar dari perangkat 56 yang di gunakan

    pada proses ini, suatu daftar open berkas dan banyak lagi.

    P8/ hanya berfungsi sebagai tempat menyimpan5 gudang untuk informasi apa pun

    yang dapat ber=ariasi dari prose ke proses.

    am:ar 2'2. Process Control Block.

  • 7/23/2019 Buku Sistem Operasi

    20/184

    am:ar 2'3. CPU egister.

    2.1.4. !hreads

    #odel proses yang didiskusikan se!auh ini telah menun!ukkan baha suatu proses adalah

    sebuah program yang men!alankan eksekusi thread tunggal. Sebagai contoh, !ika sebuahproses men!alankan sebuah program ord Processor, ada sebuah thread tunggal dariinstruksi-instruksi yang sedang dilaksanakan.

    *ontrol thread tunggal ini hanya memungkinkan proses untuk men!alankan satu tugas padasatu aktu. /anyak sistem operasi modern telah memiliki konsep yang dikembangkan agarmemungkinkan sebuah proses untuk memiliki eksekusi multithreas, agar dapat dapatsecara terus menerus mengetik dalam karakter dan men!alankan pengecek e!aan didalamproses yang sama. #aka sistem operasi tersebut memungkinkan proses untukmen!alankan lebih dari satu tugas pada satu aktu. Pada /agian @. akan dibahas prosesmultithreae.

    2.2. $enja&ualan $rses

    "u!uan dari multiprogramming adalah untuk memiliki se!umlah proses yang ber!alan padasepan!ang aktu, untuk memaksimalkan penggunaan 8PU. "u!uan dari pembagian aktuadalah untuk mengganti 8PU diantara proses-proses yang begitu sering sehinggapengguna dapat berinteraksi dengan setiap program sambil 8PU beker!a. Untuk sistemuniprosesor, tidak akan ada lebih dari satu proses ber!alan. ika ada proses yang lebih dariitu, yang lainnya akan harus menunggu sampai 8PU bebas dan dapat di!adualkan kembali.

    2.2.1. $enja&ualan #ntrian

    *etika proses memasuki sistem, mereka diletakkan dalam antrian !ob. 7ntrian ini terdiri dariseluruh proses dalam sistem. Proses yang hidup pada memori utama dan siap danmenunggu5 ait untuk mengeksekusi disimpan pada sebuah daftar bernama ready Nueue.

    7ntrian ini biasanya disimpan sebagai daftar penghubung. Sebuah header ready Nueueberisikan penun!uk kepada P8/-P8/ aal dan akhir. Setiap P8/ memiliki pointer fieldyang menun!ukkan proses selan!utnya dalam ready Nueue.

    uga ada antrian lain dalam sistem. *etika sebuah proses mengalokasikan 8PU, prosestersebut ber!alan5beker!a sebentar lalu berhenti, di interupsi, atau menunggu suatu ke!adiantertentu, seperti penyelesaian suatu permintaan 56. Pada kasus ini sebuah permintaan 56,permintaan seperti itu mungkin untuk sebuah tape dri=e yang telah diperuntukkan, atau alatyang berbagi, seperti disket. *arena ada banyak proses dalam sistem, disket bisa !adisibuk dengan permintaan 56 untuk proses lainnya. #aka proses tersebut mungkin harusmenunggu untuk disket tersebut. Daftar dari proses yang menunggu untuk peralatan 56tertentu disebut sebuah de=ice Nueue. "iap peralatan memiliki de=ice Nueuenya sendiri(Lihat %ambar @-).

  • 7/23/2019 Buku Sistem Operasi

    21/184

    am:ar 2'4. De;i0e

  • 7/23/2019 Buku Sistem Operasi

    22/184

    am:ar 2'5. Diagram #nrian. Sum:er= . . .

    Dalam dua kasus pertama, proses akhirnya berganti dari aiting state men!adi ready state,lalu diletakkan kembali dalam ready Nueue. Sebuah proses meneruskan siklus ini sampaiberakhir, disaat dimana proses tersebut diganti dari seluruh Nueue dan memiliki P8/ nyadan sumber-sumber5 resources dialokasikan kembali.

    2.2.2. $enja&ual

    Sebuah proses berpindah antara berbagai pen!adualan antrian selama umur hidupnya.Sistem operasi harus memilih, untuk keperluan pen!adualan, memproses antrian-antrian inidalam cara tertentu. Pemilihan proses dilaksanakan oleh pen!adual yang tepat5 cocok.Dalam sistem batch, sering ada lebih banyak proses yang diserahkan daripada yang dapatdilaksanakan segera. Proses ini dipitakan5 disimpan pada suatu alat penyimpan masal(biasanya disket), dimana proses tersebut disimpan untuk eksekusi dilain aktu.Pen!adualan long term, atau pen!adual !ob, memilih proses dari pool ini dan mengisinyakedalam memori eksekusi.

    Sebuah proses dapat mengeksekusi untuk hanya beberapa milidetik sebelum menunggupermintaan 56. Seringkali, pen!adualan shorterm mengeksekusi paling sedikit sekali setiap&22 milidetik. *arena durasi aktu yang pendek antara eksekusi, pen!adualan shorterm

    haruslah cepat. ika memerlukan &2 mili detik untuk menentukan suatu proses eksekusiselama &22 mili detik, maka &25(&22 F &2) B ' persen 8PU sedang digunakan (terbuang)hanya untuk peker!aan pen!adualan.

    Pen!adualan longterm pada sisi lain, mengeksekusi !auh lebih sedikit. #ungkin adabeberapa menit antara pembuatan proses baru dalam sistem. Pen!adualan longtermmengkontrol dera!at multiprogramming (!umlah proses dalam memori). ika dera!atmultiprogramming stabil, lalu tingkat rata-rata dari penciptaan proses harus sama dengantingkat kepergian rata rata dari proses yang meninggalkan sistem. #aka pen!adualan

  • 7/23/2019 Buku Sistem Operasi

    23/184

    longterm mungkin diperlukan untuk dipanggil hanya ketika suatu proses meninggalkansistem. *arena inter=al yang lebih pan!ang antara eksekusi, pen!adualan longterm dapatmemakai aktu yang lebih lama untuk menentukan proses mana yang harus dipilih untukdieksekusi.

    7dalah penting bagi pen!adualan longterm membuat seleksi yang hati-hati. Secara umum,kebanyakan proses dapat di!elaskan sebagai 56 bound atau 8PU bound. Sebuah proses56 bound adalah salah satu yang membuang aktunya untuk menger!akan 56 dari padamelakukan perhitungan. Suatu proses 8PU-bound, pada sisi lain, adalah salah satu yang

    !arang menghasilkan permintaan 56, menggunakan lebih banyak aktunya melakukanbanyak komputasi daripada yang digunakan oleh proses 56 bound. Penting untukpen!adualan longterm memilih campuran proses yang baik antara proses 56 bound dan8PU bound. ika seluruh proses adalah 56 bound, ready Nueue akan hampir selalukosong, dan pen!adualan short term akan memiliki sedikit tugas. ika seluruh proses adalah8PU bound, 56 aiting Nueue akan hampir selalu kosong, peralatan akan tidak terpakai,dan sistem akan men!adi tidak imbang. Sistem dengan kiner!a yang terbaik akan memilikikombinasi proses 8PU bound dan 56 bound.

    am:ar 2'(. $enja&ual Me&ium'term.

    Pada sebagian sistem, pen!adual long term dapat tidak turut serta atau minimal. Sebagaicontoh, sistem time-sharing seperti U

  • 7/23/2019 Buku Sistem Operasi

    24/184

    #engganti 8PU ke proses lain memerlukan penyimpanan suatu keadaan proses lama(state of ol process) dan kemudian beralih ke proses yang baru. "ugas tersebut diketahuisebagai alih konteks (contet s#itch). 7lih konteks sebuah proses digambarkan dalam P8/suatu proses3 termasuk nilai dari 8PU register, status proses (lihat %ambar @-H). daninformasi managemen memori. *etika alih konteks ter!adi, kernel menyimpan konteks dariproses lama kedalam P8/ nya dan mengisi konteks yang telah disimpan dari process baruyang telah ter!adual untuk ber!alan. Pergantian aktu konteks adalah murni o=erhead,karena sistem melakukan peker!aan yang tidak perlu. *ecepatannya ber=ariasi dari mesinke mesin, bergantung pada kecepatan memori, !umlah register yang harus di copy, dankeberadaan instruksi khusus (seperti instruksi tunggal untuk mengisi atau menyimpanseluruh register). "ingkat kecepatan umumnya berkisar antara & sampai &222 mikro detik

    am:ar 2'*. #lih Knteks.

    aktu alih konteks sangat begantung pada dukungan perangkat keras. Sebagai contoh,prosesor seperti UltraSP7;8 menyediakan dua rangkap register. Sebuah alih kontekshanya memasukkan perubahan pointer ke perangkat register yang ada. "entu sa!a, !ika adalebih proses-proses aktif yang ada dari pada yang ada di perangkat register, sistemmenggunakan bantuan untuk meng-copy data register pada dan dari memori, sebagaimanasebelumnya. Semakin sistem operasi kompleks, makin banyak peker!aan yang harus

    dilakukan selama alih konteks. Sebagaimana dilihat pada /ab , teknik managemenmemori tingkat lan!ut dapat mensyaratkan data tambahan untuk diganti dengan tiapkonteks. Sebagai contoh, ruang alamat dari proses yang ada harus di!aga sebagai ruangpada peker!aan berikutnya untuk digunakan. /agaimana ruang alamat di !aga, berapabanyak peker!aan dibutuhkan untuk men!aganya, tergantung pada metoda managemenmemori dari sistem operasi. Sebagaimana akan kita lihat pada /ab , alih konteks telahmen!adi suatu keharusan, baha programmer menggunakan struktur ( threas) untukmenghindarinya kapan pun memungkinkan.

  • 7/23/2019 Buku Sistem Operasi

    25/184

    am:ar 2'+. $hn $rses.

    2.3. Operasi'Operasi $a&a $rses

    Proses dalam sistem dapat dieksekusi secara bersama-sama, proses tersebut harus dibuatdan dihapus secara dinamis. #aka, sistem operasi harus menyediakan suatu mekanismeumtuk pembuatan proses dan terminasi proses.

    am:ar 2'-. Operasi pa&a $rses.

  • 7/23/2019 Buku Sistem Operasi

    26/184

    2.3.1. $em:uatan $rses

    Suatu proses dapat membuat beberapa proses baru, melalui sistem pemanggilanpembuatan proses, selama !alur eksekusi. Pembuatan proses dinamakan induk proses,sebagaimana proses baru disebut anak dari proses tersbut. "iap proses baru tersebutdapat membuat proses lainnya, membentuk suatu pohon proses (lihat %ambar @-H).

    Secara umum, suatu proses akan memerlukan sumber tertentu (aktu 8PU, memori,berkas, perangkat 56) untuk menyelesaikan tugasnya. *etika suatu proses membuatsebuah subproses, sehingga subproses dapat mampu untuk memperoleh sumbernyasecara langsung dari sistem operasi. nduk mungkin harus membatasi sumber diantaraanaknya, atau induk dapat berbagi sebagian sumber (seperti memori berkas) diantarabeberapa dari anaknya. #embatasi suatu anak proses men!adi subset sumber dayainduknya mencegah proses apa pun dari pengisian sistem yang telalu banyak denganmenciptakan terlalu banyak subproses.

    Sebagai tambahan pada berbagai sumber fisik dan logis baha suatu proses diperolehketika telah dibuat, data pemula (masukan) dapat turut leat oleh induk proses sampaianak proses. Sebagai contoh, anggap suatu proses yang fungsinya untuk menun!ukkanstatus sebuah berkas, katakan &, pada layar terminal.

    *etika dibuat, akan men!adi sebagai sebuah masukan dari proses induknya, nama dariberkas &, dan akan mengeksekusi menggunakan kumpulan data tersebut untukmemperoleh informasi yang diinginkan. Proses tersebut !uga mendapat nama dariperangkat luar. Sebagian sistem operasi meleati sumber-sumber ke anak proses. Padasistem tersebut, proses baru bisa mendapat dua berkas terbuka yang baru, & danperangkat terminal dan hanya perlu untuk mentransfer data antara kedua berkas tersebut.*etika suatu proses membuat proses baru, dua kemungkinan ada dalam term eksekusi$&. nduk terus menerus untuk mengeksekusi secara bersama-sama dengan anaknya.@. nduk menunggu sampai sebagian dari anaknya telah diakhiri5terminasi.

    uga ada dua kemungkinan dalam term dari aress space pada proses baru$&. 7nak proses adalah duplikat dari induk proses.@. 7nak proses memiliki program yang terisikan didalamnya.

    Untuk mengilustrasikan implementasi yang berbeda ini, mari kita mempela!ari sistemoperasi U

  • 7/23/2019 Buku Sistem Operasi

    27/184

    induk tidak punya hal lain untuk dilakukan ketika anak beker!a, induk dapat mengeluarkansistem pemanggilan ait untuk tidak menggerakkan dirinya sendiri pada suatu antrian yangsiap sampai anak berhenti. Program 8 ditun!ukkan pada %ambar @-&2 mengilustrasikansistem pemanggilan pada U

  • 7/23/2019 Buku Sistem Operasi

    28/184

    telah diterminasi. ika induk menterminasi. #aka, anaknya masih punya sebuah indukuntuk mengumpulkan status mereka dan mengumpulkan statistik eksekusinya.

    2.4. >u:ungan #ntara $rses

    Sebelumnya kita telah ketahui seluk beluk dari suatu proses mulai dari pengertiannya, caraker!anya, sampai operasi-operasinya seperti proses pembentukannya dan prosespemberhentiannya setelah selesai melakukan eksekusi. *ali ini kita akan mengulasbagaimana hubungan antar proses dapat berlangsung, misal bagaimana beberapa prosesdapat saling berkomunikasi dan beker!a-sama.

    2.4.1. $rses yang Kperati9

    Proses yang bersifat simultan (concurrent) di!alankan pada sistem operasi dapatdibedakaan men!adi yaitu proses independent dan proses kooperatif. Suatu prosesdikatakan independen apabila proses tersebut tidak dapat terpengaruh atau dipengaruhioleh proses lain yang sedang di!alankan pada sistem.

    /erarti, semua proses yang tidak membagi data apa pun (baik sementara5 tetap) denganproses lain adalah independent. Sedangkan proses kooperatif adalah proses yang dapatdipengaruhi atau pun terpengaruhi oleh proses lain yang sedang di!alankan dalam sistem.Dengan kata lain, proses dikatakan kooperatif bila proses dapat membagi datanya denganproses lain. 7da empat alasan untuk penyediaan sebuah lingkungan yangmemperbolehkan ter!adinya proses kooperatif$

    &. Pembagian informasi$ apabila beberapa pengguna dapat tertarik pada bagian informasiyang sama (sebagai contoh, sebuah berkas bersama), kita harus menyediakan sebuahlingkungan yang mengi>inkan akses secara terus menerus ke tipe dari sumber-sumbertersebut.

    @. *ecepatan penghitungan5 komputasi$ !ika kita menginginkan sebuah tugas khususuntuk men!alankan lebih cepat, kita harus membagi hal tersebut ke dalam subtask,setiap bagian dari subtask akan di!alankan secara parallel dengan yang lainnya.Peningkatan kecepatan dapat dilakukan hanya !ika komputer tersebut memiliki elemen-elemen pemrosesan ganda (seperti 8PU atau !alur 56).

    ?. #odularitas$ kita mungkin ingin untuk membangun sebuah sistem pada sebuah modelmodular-modular, membagi fungsi sistem men!adi beberapa proses atau threads.

    . *enyamanan$ bahkan seorang pengguna indi=idu mungkin memiliki banyak tugasuntuk diker!akan secara bersamaan pada satu aktu. Sebagai contoh, seorangpengguna dapat mengedit, memcetak, dan meng-compile secara paralel.

    import !a=a.util.O3

    public class /ounded/uffer public /ounded/uffer()

    55 buffer diinisialisasikan kosongcount B 23in B 23out B 23buffer B ne 6b!ectQ/U4;ESR43

    T

  • 7/23/2019 Buku Sistem Operasi

    29/184

    55 produser memanggil method ini public =oid enter( 6b!ect item )

    hile ( count BB /U4;ESR4 ) 3 55 do nothing

    55 menambahkan suatu item ke dalam buffer FFcount3

    bufferQin B item3 in B ( in F & ) /U4;ESR43

    if ( count BB /U4;ESR4 ) System.out.println( 9Producer 4ntered 9 F item F 9 /uffer ULL9 )3 else System.out.println( 9Producer 4ntered 9 F item F 9 /uffer Si>e B 9 F count )3 T

    55 consumer memanggil method ini public 6b!ect remo=e() 6b!ect item 3

    hile ( count BB 2 ) 3 55 do nothing

    55 menyingkirkan suatu item dari buffer --count3 item B bufferQout3 out B ( out F & ) /U4;ESR43

    if ( count BB 2 ) System.out.println( 98onsumer consumed 9 F item F 9 /uffer 4#P"09 )3 else System.out.println( 98onsumer consumed 9 F item F 9 /uffer Si>e B 9 Fcount )3 return item3

    T

    public static final int

  • 7/23/2019 Buku Sistem Operasi

    30/184

    8ara lain untuk meningkatkan efek yang sama adalah untuk sistem operasi yaitu untukmenyediakan alat-alat proses kooperatif untuk berkomunikasi dengan yang lain leatsebuah komunikasi dalam proses (P8 B nter-Process 8ommunication). P8 menyediakansebuah mekanisme untuk mengi>inkan proses-proses untuk berkomunikasi danmenyelaraskan aksi-aksi mereka tanpa berbagi ruang alamat yang sama. P8 adalahkhusus digunakan dalam sebuah lingkungan yang terdistribusi dimana proses komunikasitersebut mungkin sa!a tetap ada dalam komputer-komputer yang berbeda yang tersambungdalam sebuah !aringan. P8 adalah penyedia layanan terbaik dengan menggnakan sebuahsistem penyampaian pesan, dan sistem-sistem pesan dapat diberikan dalam banyak cara.

    2.4.2.1. Sistem $enyampaian $esan

    ungsi dari sebuah sistem pesan adalah untuk memperbolehkan komunikasi satu denganyang lain tanpa perlu menggunakan pembagian data. Sebuah fasilitas P8 menyediakanpaling sedikit dua operasi yaitu kirim (pesan) dan terima (pesan). Pesan dikirim dengansebuah proses yang dapat dilakukan pada ukuran pasti atau =ariabel. ika hanya pesandengan ukuran pasti dapat dikirimkan, le=el sistem implementasi adalah sistem yangsederhana. Pesan berukuran =ariabel menyediakan sistem implementasi le=el yang lebihkompleks.

    /erikut ini ada beberapa metode untuk mengimplementasikan sebuah !aringan dan operasipengiriman5penerimaan secara logika$

    *omunikasi langsung atau tidak langsung.

    *omunikasi secara simetris5 asimetris.

    Buffer otomatis atau eksplisit.

    engiriman berdasarkan salinan atau referensi.

    Pesan berukuran pasti dan =ariabel.

    2.4.2.2. Kmunikasi Langsung

    Proses-proses yang ingin dikomunikasikan harus memiliki sebuah cara untuk memilih satu

    dengan yang lain. #ereka dapat menggunakan komunikasi langsung5 tidak langsung.Setiap proses yang ingin berkomunikasi harus memiliki nama yang bersifat eksplisit baikpenerimaan atau pengirim dari komunikasi tersebut. Dalam konteks ini, pengiriman danpenerimaan pesan secara primiti=e dapat di!abarkan sebagai$

    Send (P, message) - mengirim sebuah pesan ke proses P.

    ;ecei=e (V, message) - menerima sebuah pesan dari proses V.

    Sebuah !aringan komunikasi pada bahasan ini memiliki beberapa sifat, yaitu$

    Sebuah !aringan yang didirikan secara otomatis diantara setiap pasang dari proses

    yang ingin dikomunikasikan. Proses tersebut harus mengetahui identitas darisemua yang ingin dikomunikasikan.

    Sebuah !aringan adalah terdiri dari penggabungan dua proses.

    Diantara setiap pesan dari proses terdapat tepat sebuah !aringan.

    Pembahasan ini memperlihatkan sebuah cara simetris dalam pemberian alamat. 6lehkarena itu, baik keduanya yaitu pengirim dan penerima proses harus memberi nama bagiyang lain untuk berkomunikasi, hanya pengirim yang memberikan nama bagi penerimasedangkan penerima tidak menyediakan nama bagi pengirim. Dalam konteks ini, pengirimdan penerima secara sederhana dapat di!abarkan sebagai$

    Send (P, message) - mengirim sebuah pesan kepada proses P.

    ;ecei=e (id, message) - menerima sebuah pesan dari semua proses. Gariabel

    id diatur sebagai nama dari proses dengan komunikasi.

  • 7/23/2019 Buku Sistem Operasi

    31/184

    2.4.2.3. Kmunikasi Ti&ak Langsung

    Dengan komunikasi tidak langsung, pesan akan dikirimkan pada dan diterima dari5 melaluimailbo(kotak surat) atau terminal-terminal, sebuah mailbo dapat dilihat secara abstraksebagai sebuah ob!ek didalam setiap pesan yang dapat ditempatkan dari proses dan dari

    setiap pesan yang bias dipindahkan. Setiap kotak surat memiliki sebuah identifikasi(identitas) yang unik, sebuah proses dapat berkomunikasi dengan beberapa proses lainmelalui sebuah nomor dari mailbo yang berbeda. Dua proses dapat saling berkomunikasiapabila kedua proses tersebut sharing mailbo. Pengirim dan penerima dapat di!abarkansebagai$

    Send (7, message) - mengirim pesan ke mailbo7.

    ;ecei=e (7, message) - menerima pesan dari mailbo7.

    Dalam masalah ini, link komunikasi mempunyai sifat sebagai berikut$W Sebuah link dibangun diantara sepasang proses dimana kedua proses tersebut membagimailbo.

    Sebuah link mungkin dapat berasosiasi dengan lebih dari dua proses.

    Diantara setiap pasang proses komunikasi, mungkin terdapat link yang

    berbeda-beda, dimana setiap link berhubungan pada satu mailbo.

    #isalkan terdapat proses P&, P@ dan P? yang semuanya share mailbo. Proses P&mengirim pesan ke 7, ketika P@ dan P? masing-masing mengeksekusi sebuah kiriman dari

    7. Proses mana yang akan menerima pesan yang dikirim P&J aabannya tergantung dari!alur yang kita pilih$

    #engi>inkan sebuah link berasosiasi dengan paling banyak @ proses.

    #engi>inkan paling banyak satu proses pada suatu aktu untuk mengeksekusi

    hasil kiriman (receive operation).

    #engi>inkan sistem untuk memilih secara mutlak proses mana yang akan

    menerima pesan (apakah itu P@ atau P? tetapi tidak keduanya, tidak akanmenerima pesan). Sistem mungkin mengidentifikasi penerima kepadapengirim.

    #ailbo mungkin dapat dimiliki oleh sebuah proses atau sistem operasi. ika mailbodimiliki oleh proses, maka kita mendefinisikan antara pemilik (yang hanya dapat menerimapesan melalui mailbo) dan pengguna dari mailbo (yang hanya dapat mengirim pesan kemailbo). Selama setiap mailbo mempunyai kepemilikan yang unik, maka tidak akan adakebingungan tentang siapa yang harus menerima pesan dari mailbo. *etika proses yangmemiliki mailbo tersebut diterminasi, mailbo akan hilang. Semua proses yang mengirimpesan ke mailbo ini diberi pesan baha mailbo tersebut tidak lagi ada.

    Dengan kata lain, mempunyai mailbo sendiri yang independent, dan tidak melibatkanproses yang lain. #aka sistem operasi harus memiliki mekanisme yang mengi>inkanproses untuk melakukan hal-hal dibaah ini$

    #embuat mailbo baru.

    #engirim dan menerima pesan melalui mailbo. #enghapus mailbo.

    Proses yang membuat mailbo pertama kali secara default akan memiliki mailbo tersebut.Untuk pertama kali, pemilik adalah satu-satunya proses yang dapat menerima pesanmelalui mailbo ini. /agaimana pun, kepemilikan dan hak menerima pesan mungkin dapatdialihkan ke proses lain melalui sistem pemanggilan.

    2.4.2.4. Sinkrnisasi

  • 7/23/2019 Buku Sistem Operasi

    32/184

    *omunikasi antara proses membutuhkan place by calls untuk mengirim dan menerima dataprimiti=e. "erdapat rancangan yang berbeda-beda dalam implementasi setiap primiti=e.Pengiriman pesan mungkin dapat diblok (blocking) atau tidak dapat dibloking (nonblocking)- !uga dikenal dengan nama sinkron atau asinkron.

    Pengiriman yang diblok$ Proses pengiriman di blok sampai pesan diterima oleh

    proses penerima (receiving process) atau oleh mailbo. Pengiriman yang tidak diblok$ Proses pengiriman pesan dan mengkalkulasi

    operasi.

    Penerimaan yang diblok$ Penerima mem blok samapai pesan tersedia.

    Penerimaan yang tidak diblok$ Penerima mengembalikan pesan =alid atau null.

    2.4.2.5. Buffering

    /aik komunikasi itu langsung atau tak langsung, penukaran pesan oleh proses memerlukanantrian sementara. Pada dasarnya, terdapat tiga !alan dimana antrian tersebutdiimplementasikan$

    *apasitas nol$ antrian mempunyai pan!ang maksimum 2, maka link tidak dapat

    mempunyai penungguan pesan (message #aiting). Dalam kasus ini, pengirim

    harus memblok sampai penerima menerima pesan. *apasitas terbatas$ antrian mempunyai pan!ang yang telah ditentukan, paling

    banyak n pesan dapat dimasukkan. ika antrian tidak penuh ketika pesandikirimkan, pesan yang baru akan menimpa, dan pengirim pengirim dapatmelan!utkan eksekusi tanpa menunggu. Link mempunyai kapasitas terbatas.

    ika link penuh, pengirim harus memblok sampai terdapat ruang pada antrian.

    *apasitas tak terbatas$ antrian mempunyai pan!ang yang tak terhingga, maka,

    semua pesan dapat menunggu disini. Pengirim tidak akan pernah di blok.

    2.4.2.(. 8nth $r&user'Knsumer

    Sekarang kita mempunyai solusi problem produser-konsumer yang menggunakanpenyampaian pesan. Produser dan konsumer akan berkomunikasi secara tidak langsungmenggunakan mailbo yang dibagi. /uffer menggunakan !a=a.util.Gector class sehinggabuffer mempunyai kapasitas tak terhingga. Dan send() dan read() method adalahnonblocking. *etika produser memproduksi suatu item, item tersebut diletakkan ke mailbomelalui send() method. *onsumer menerima item dari mailbo menggunakan recei=e()method. *arena recei=e() nonblocking, consumer harus menge=aluasi nilai dari 6b!ectyang di-return dari recei=e(). ika null, mailbo kosong.

    import !a=a.util.O3

    public class Producer etends "hread pri=ate #essageVueueueue mbo3

    public Producer( #essageVueueueue m ) mbo B m3 T

    public =oid run() Date message3

    hile ( true ) int sleeptime B ( int ) ( Ser=er.

  • 7/23/2019 Buku Sistem Operasi

    33/184

    "hread.sleep(sleeptimeO&222)3T catch( nterrupted4ception e ) T

    message B ne Date()3System.out.println( 9Producer produced 9 F message )3mbo.send( message )3

    T

    TTimport !a=a.util.O3

    public class 8onsumer etends "hread pri=ate #essageVueueueue mbo3

    public 8onsumer( #essageVueueueue m ) mbo B m3 T

    public =oid run() Date message3

    hile ( true )

    int sleeptime B (int) (Ser=er.

  • 7/23/2019 Buku Sistem Operasi

    34/184

    . . .

    am:ar 2'13. Keluaran $rgram $r&user Knsumer.

    W /ila p& lebih lambat dari c&, kita akan memperoleh keluaran seperti berikut$

    . . .Producer produced ed #ay 2H &$&&$&& 8" @22?

    Producer sleeping for & seconds8onsumer consume ed #ay 2H &$&&$&& 8" @22?8onsumer sleeping for 2 seconds55 c& sudah mengambil isi dari mailbo, padahal p& belum55 lagi megupdate isi dari mailbo dari #ay 2H &$&&$&&55 8" @22? ke #ay 2H &$&&$&@ 8" @22?, c& mendapatkan55 aktu ed #ay 2H &$&&$&& 8" @22? dua kali.8onsumer consume ed #ay 2H &$&&$&& 8" @22?8onsumer sleeping for 2 secondsProducer sleeping for 2 secondsProducer produced ed #ay 2H &$&&$&@ 8" @22?. . .

    am:ar 2'14. Keluaran $rgram $r&user Knsumer.

    Situasi di atas dikenal dengan race conditions. *ita dapat menghindari situasi itu denganmensinkronisasikan akti=itas p& dan c& (sehubungan dengan akses mereka ke mailbo).Proses tersebut akan didiskusikan pada /agian ?.@.

    2.4.2.*. Mail"o#import !a=a.util.O3

    public class #essageVueue pri=ate Gector N3

    public #essageVueue() N B ne Gector()3 T

    55 #engimplementasikan pengiriman nonblockingpublic =oid send( 6b!ect item ) N.add4lement( item )3T

    55 #engimplementasikan penerimaan nonblockingpublic 6b!ect recei=e() 6b!ect item3 if ( N.si>e() BB 2 ) return null3 else item B N.first4lement()3 N.remo=e4lement7t(2)3

    return item3 T TT

    am:ar 2'15. $rgram Sen&" 7e0ei;e.

    &. #enunggu sampai batas aktu yang tidak dapat ditentukan sampai terdapat ruang kosongpada mailbo.

  • 7/23/2019 Buku Sistem Operasi

    35/184

    @. #enunggu paling banyak n milidetik.

    ?. "idak menunggu, tetapi kembali (return) secepatnya.

    . Satu pesan dapat diberikan kepada sistem operasi untuk disimpan, alau pun mailboyang ditu!u penuh. *etika pesan dapat disimpan pada mailbo, pesan akan dikembalikankepada pengirim (sener). :anya satu pesan kepada mailbo yang penuh yang dapatdiundur (pening) pada suatu aktu untuk diberikan kepada thread pengirim.

    2.5. !hread

    0hrea, atau kadang-kadang disebut proses ringan (light#eight), adalah unit dasar dariutilisasi 8PU. Di dalamnya terdapat D thread, program counter, register, dan stack. Dansaling berbagi dengan thread lain dalam proses yang sama.

    am:ar 2'1(. Threa&.

    2.5.1. Knsep Dasar

    Secara informal, proses adalah program yang sedang dieksekusi. 7da dua !enis proses,

    proses berat (heavy#eight) atau biasa dikenal dengan proses tradisional, dan prosesringan atau kadang disebut thread.

    "hread saling berbagi bagian program, bagian data dan sumber daya sistem operasidengan thread lain yang mengacu pada proses yang sama. "hread terdiri atas D thread,program counter, himpunan register, dan stack. Dengan banyak kontrol thread prosesdapat melakukan lebih dari satu peker!aan pada aktu yang sama.

    2.5.2. Keuntungan

    &. "anggap$ $ultithreaing mengi>inkan program untuk ber!alan terus alau pun padabagian program tersebut di block atau sedang dalam keadaan men!alankan operasiyang lama5 pan!ang. Sebagai contoh, multithread eb broser dapat mengi>inkan

    pengguna berinteraksi dengan suatu thread ketika suatu gambar sedang diload olehthread yang lain.

    @. Pembagian sumber daya$ Secara default, threa membagi memori dan sumber dayadari proses. *euntungan dari pembagian kode adalah aplikasi mempunyai perbedaanaktifitas thread dengan alokasi memori yang sama.

  • 7/23/2019 Buku Sistem Operasi

    36/184

  • 7/23/2019 Buku Sistem Operasi

    37/184

    Sistem-sistem yang ada sekarang sudah banyak yang bisa mendukung untuk keduapengguna dan kernel thread, sehingga model-model multithreading-nya pun men!adiberagam. mplementasi multithreading yang umum akan kita bahas ada tiga, yaitu modelmany-to-one, one-to-one, dan many-to-many.

    am:ar 2'1+. M&el Multithrea&ing.

    2.(.1. M&el Many to %ne

    #odel many-to-one ini memetakan beberapa tingkatan pengguna thread hanya ke satubuah kernel thread. #anagemen proses thread dilakukan oleh (di ruang) pengguna,sehingga men!adi efisien, tetapi apabila sebuah thread melakukan sebuah pemblokinganterhadap sistem pemanggilan, maka seluruh proses akan berhenti (blocke). *elemahandari model ini adalah multihreads tidak dapat ber!alan atau beker!a secara paralel di dalammultiprosesor dikarenakan hanya satu thread sa!a yang bisa mengakses kernel dalamsuatu aktu.

    am:ar 2'1-. M&el Many t One.

    2.(.2. M&el %ne to %ne

  • 7/23/2019 Buku Sistem Operasi

    38/184

    #odel one-to-one memetakan setiap thread pengguna ke dalam satu kernel thread. :al inimembuat model one-to-one lebih sinkron daripada model many-to-one denganmengi>inkan thread lain untuk ber!alan ketika suatu thread membuat pemblokinganterhadap sistem pemanggilan3 hal ini !uga mengi>inkan multiple thread untuk ber!alansecara parallel dalam multiprosesor. *elemahan model ini adalah dalam pembuatan threadpengguna dibutuhkan pembuatan korespondensi thread pengguna. *arena dalam prosespembuatan kernel thread dapat mempengaruhi kiner!a dari aplikasi maka kebanyakan dariimplementasi model ini membatasi !umlah thread yang didukung oleh sistem. #odel one-to-one diimplementasikan oleh indos

  • 7/23/2019 Buku Sistem Operasi

    39/184

    2.(.4. !hread Dalam Slaris 2

    Solaris @ merupakan salah satu =ersi dari U

  • 7/23/2019 Buku Sistem Operasi

    40/184

    Para pengembang menggunakan struktur-struktur data sebagai berikut untukmengimplementasikan thread-thread dalam Solaris @$

    Suatu user-le=el thread mempunyai thread D, himpunan register (mencakup suatu

    P8 dan stack pointer), stack dan prioritas (digunakan oleh library untukpen!adualan). Semua struktur data tersebut berasal dari ruang user.

    Suatu LP mempunyai suatu himpunan register untuk user-le=el thread yang ia

    !alankan, !uga memori dan informasi pencatatan. LP merupakan suatu strukturdata dari kernel, dan bertempat pada ruang kernel.

    Suatu kernel thread hanya mempunyai struktur data yang kecil dan sebuah stack.

    Struktur datanya melingkupi copy dari kernel-kernel registers, suatu pointer yangmenun!uk ke LP yang terpasang dengannya, dan informasi tentang prioritas danpen!adualan.

    Setiap proses dalam Solaris @ mempunyai banyak informasi yang terdapat di processcontrol block (P8/). Secara umum, suatu proses di Solaris mempunyai suatu proses id(PD), peta memori, daftar dari berkas yang terbuka, prioritas, dan pointer yang menun!ukke daftar LP yang terasosiasi kedalam proses.

    am:ar 2'22. Threa& Slaris &an ,a;a.

    2.(.5. !hread ,a;a

    Seperti yang telah kita lihat, thread didukung selain oleh sistem operasi !uga oleh paketlibrary thread. Sebagai contoh, in?@ library mempunyai 7P untuk multithreading aplikasiindos, dan Pthreads mempunyai fungsi mana!men thread untuk sistem P6SA-

    compliant. a=a adalah unik dalam mendukung tingkatan bahasa untuk membuat danmanagemen thread.

    Semua program !a=a mempunyai paling sedikit satu kontrol thread. /ahkan program !a=ayang sederhana mempunyai hanya satu main() method yang ber!alan dalam thread tunggaldalam G#. a=a menyediakan perintah-perintah yang mendukung pengembang untukmembuat dan memanipulasi kontrol thread pada program.

    Satu cara untuk membuat thread secara eksplisit adalah dengan membuat kelas baru yangditurunkan dari kelas thread, dan menimpa run() method dari kelas "hread tersebut.

  • 7/23/2019 Buku Sistem Operasi

    41/184

    6b!ect yang diturunkan dari kelas tersebut akan men!alankan sebagian thread controldalam G#. /agaimana pun, membuat suatu ob!ek yang diturunkan dari kelas "hread tidaksecara spesifik membuat thread baru, tetapi start() method lah yang sebenarnya membuatthread baru.

    #emanggil start() method untuk ob!ek baru mengalokasikan memori danmenginisialisasikan thread baru dalam G# dan memanggil run() method membuat threadpantas untuk di!alankan oleh G#.(8atatan$ !angan pernah memanggil run() method secara langsung. Panggil start() methoddan ini secara langsung akan memanggil run() method).

    *etika program ini di!alankan, dua thread akan dibuat oleh G#. 0ang pertama dibuatadalah thread yang berasosiasi dengan aplikasi-thread tersebut mulai dieksekusi padamain() method. "hread kedua adalah runner thread secara ekspilisit dibuat dengan start()method. ;unner thread memulai eksekusinya dengan run() method.

    Pilihan lain untuk membuat sebuah thread yang terpisah adalah dengan mendefinisikansuatu kelas yang mengimplementasikan runnable interface. ;unnable interface tersebutdidefinisikan sebagai berikut$

    Public interface ;unnable Public abstract =oid run()3T

    am:ar 2'23. 7unna:le.

    Sehingga, ketika sebuah kelas diimplementasikan dengan runnable, kelas tersebut harusmendefinisikan run() method. *elas thread yang berfungsi untuk mendefinisikan static daninstance method, !uga mengimplementasikan runnable interface. tu menerangkan bahamengapa sebuah kelas diturunkan dari thread harus mendefinisikan run() method.

    mplementasi dari runnable interface sama dengan mengekstend kelas thread, satu-satunya kemungkinan untuk mengganti 9etends thread9 dengan 9implements runnable9.

    8lass orker@ implements ;unnable Public =oid run() System. 6ut. Println (9 am a orker thread. 9)3 TT

    am:ar 2'24. 8lass?rker2.

    #embuat sebuah thread dari kelas yang diimplementasikan oleh runnable berbeda dengan

    membuat thread dari kelas yang mengekstend thread. Selama kelas baru tersebut tidakmengekstend thread, dia tidak mempunyai akses ke ob!ek static atau instance method Yseperti start() methodY dari kelas thread. /agaimana pun, sebuah ob!ek dari kelas threadadalah tetap dibutuhkan, karena yang membuat sebuah thread baru dari kontrol adalahstart() method.

    Di kelas kedua, sebuah ob!ek thread baru dibuat melalui runnable ob!ek dalamkonstruktornya. *etika thread dibuat oleh start() method, thread baru mulai dieksekusi padarun() method dari runnable ob!ek. *edua method dari pembuatan thread tersebut adalahcara yang paling sering digunakan.

  • 7/23/2019 Buku Sistem Operasi

    42/184

    2.(.(. Managemen !hread

    a=a menyediakan beberapa fasilitas 7P untuk mengatur thread Y thread, diantaranyaadalah$

    Suspend()$ berfungsi untuk menunda eksekusi dari thread yang sedang ber!alan.

    Sleep()$ berfungsi untuk menempatkan thread yang sedang ber!alan untuk tidur

    dalam beberapa aktu.

    ;esume()$ hasil eksekusi dari thread yang sedang ditunda.

    Stop()$ menghentikan eksekusi dari sebuah thread3 sekali thread telah dihentikan

    dia tidak akan memulainya lagi.

    Setiap method yang berbeda untuk mengontrol keadaan dari thread mungkin akan bergunadalam situasi tertentu. Sebagai contoh$ 7pplets adalah contoh alami untuk multithreaingkarena mereka biasanya memiliki grafik, animasi, dan audioYsemuanya sangat baik untukmengatur berbagai thread yang terpisah. /agaimana pun, itu tidak akan mungkin bagisebuah applet untuk ber!alan ketika dia sedang tidak ditampilkan, !ika applet sedangmen!alankan 8PU secara intensif. Sebuah cara untuk menangani situasi ini adalah denganmen!alankan applet sebagai thread terpisah dari kontrol, menunda thread ketika appletsedang tidak ditampilkan dan melaporkannya ketika applet ditampilkan kembali.

    7nda dapat melakukannya dengan mencatat baha start() method dari sebuah appletdipanggil ketika applet tersebut pertama kali ditampilkan. 7pabila user meninggalkanhalaman eb atau applet keluar dari tampilan, maka method stop() pada applet dipanggil(ini merupakan suatu keuntungan karena start() dan stop() keduanya terasosiasi denganthread dan applet). ika user kembali ke halaman eb applet, kemudian start() methoddipanggil kembali. Destroy() method dari sebuah applet dipanggil ketika applet tersebutdipindahkan dari cache-nya broser. ni memungkinkan untuk mencegah sebuah applet

    ber!alan ketika applet tersebut sedang tidak ditampilkan pada sebuah eb broser denganmenggunakan stop() method dari applet yang ditunda dan melaporkan eksekusi tersebutpada thread di applet start() method.

    2.(.*. Kea&aan !hread

    Sebuah thread !a=a dapat men!adi satu dari kemungkinan keadaan$

    &. ne$ sebuah thread pada keadaan ini ada ketika ob!ek dari thread tersebut dibuat.

    @. runnable$ memanggil start() method untuk mengalokasikan memori bagi thread barudalam G# dan memanggil run() method untuk membuat ob!ek.

    ?. block$ sebuah thread akan diblok !ika menampilkan sebuah kalimat pengeblokan.8ontohnya$ sleep() atau suspend().

    . dead$ sebuah thread dipindahkan ke keadaan dead ketika run() method berhenti atauketika stop() method dipanggil.

  • 7/23/2019 Buku Sistem Operasi

    43/184

    am:ar 2'25. Kea&aan Threa&.

    2.(.+. !hread &an ,/M

    Pada penambahannya ke !a=a program mengandung beberapa thread yang berbeda darikontrol, disini ada beberapa thead yang sedang ber!alan secara tidak sinkron untukkepentingan dari penanganan sistem tingkatan G# seperti managemen memori dan grafikkontrol. Garbage "ollector menge=aluasi ob!ek ketika G# untuk dilihat ketika merekasedang digunakan. ika tidak, maka itu akan kembali ke memoridalam sistem.

    2.(.-. ,/M &an Sistem Operasi

    Secara tipikal implementasi dari G# adalah pada bagian atas terdapat host sistemoperasi, pengaturan ini mengi>inkan G# untuk menyembunyikan detail implementasi dari

    sistem operasi dan menyediakan sebuah kekonsistenan, lingkungan yang abstrak tersebutmengi>inkan program-program !a=a untuk beroprasi pada berbagai sistem operasi yangmendukung sebuah G#. Spesifikasi bagi G# tidak mengidentifikasi bagaimana !a=athread dipetakan ke dalam sistem operasi.

    2.(.1. 8nth Slusi Multithreaded

    Pada bagian ini, kita memperkenalkan sebuah solusi multithreaded secara lengkap kepadamasalah produser konsumer yang menggunakan penyampaian pesan. *elas ser=erpertama kali membuat sebuah mailbo untuk mengumpulkan pesan, dengan menggunakan

  • 7/23/2019 Buku Sistem Operasi

    44/184

    kelas message Nueue kemudian dibuat produser dan konsumer threads secara terpisahdan setiap thread mereferensi ke dalam mailbo bersama. "hread produser secarabergantian antara tidur untuk sementara, memproduksi item, dan memasukkan item kedalam mailbo. *onsumer bergantian antara tidur dan mengambil suatu item dari mailbodan mengkonsumsinya. *arena recei=e() method dari kelas message Nueue adalah tanpapengeblokan, konsumer harus mencek apakah pesan yang diambilnya tersebut adalah nol.

    2.*. $enja&ual 8$%

    Pen!adual 8PU adalah basis dari multi programming sistem operasi. Dengan men-sitch8PU diantara proses. 7kibatnya sistem operasi bisa membuat komputer produktif. Dalambab ini kami akan mengenalkan tentang dasar dari konsep pen!adual dan beberapaalgoritma pen!adual. Dan kita !uga memaparkan masalah dalam memilih algoritma dalamsuatu sistem.

    2.*.1. Knsep Dasar

    "u!uan dari multi programming adalah untuk mempunyai proses ber!alan secarabersamaan, untuk memaksimalkan kiner!a dari 8PU. Untuk sistem uniprosesor, tidakpernah ada proses yang ber!alan lebih dari satu. /ila ada proses yang lebih dari satu makayang lain harus mengantri sampai 8PU bebas. de dari multi porgamming sangatsederhana. *etika sebuah proses dieksekusi yang lain harus menunggu sampai selesai. Disistem komputer yang sederhana 8PU akan banyak dalam posisi idle. Semua aktu inisangat terbuang. Dengan multiprogamming kita mencoba menggunakan aktu secaraproduktif. /eberapa proses di simpan dalam memori dalam satu aktu. *etika prosesharus menuggu. Sistem operasi mengmbil 8PU untuk memproses proses tersebut danmeninggalkan proses yang sedang dieksekusi.

    Pen!adual adalah fungsi dasar dari suatu sistem operasi. :ampir semua sumber komputerdi!adual sebelum digunakan. 8PU salah satu sumber dari komputer yang penting yang

    men!adi sentral dari sentral pen!adual di sistem operasi.

    2.*.1.1. Siklus )urst 8$%'!"O

    *eberhasilan dari pen!adual 8PU tergantung dari beberapa properti prosesor. Proseseksekusi mengandung siklus 8PU ekskusi dan 5o ait. Proses hanya akan bolak-balik daridua state ini. Poses eksekusi dimulai dengan 8PU /urst, setelah itu diikuti oleh 56 burst,dan dilakukan secara bergiliran.

    Durasi dari 8PU bust ini ditelah diukur secara ekstensif, alau pun mereka sangat berbedadari proses ke proses. #ereka mempunyai frekeunsi kur=a yang sama seperti yangdiperlihatkan gambar dibaah ini.

  • 7/23/2019 Buku Sistem Operasi

    45/184

    am:ar 2'2(. 8$% )urst.

    2.*.1.2. $enja&ual 8$%

    *apan pun 8PU men!adi idle, sistem opersai harus memilih salah satu proses untuk masukkedalam antrian ready (siap) untuk dieksekusi. Pemilihan tersebut dilakukan oleh pen!adualshort term. Pen!adual memilih dari sekian proses yang ada di memori yang sudah siapdieksekusi, den mengalokasikan 8PU untuk mengeksekusinya

    Pen!adual 8PU mungkin akan di!alankan ketika proses$&. /erubah dari running ke aiting state.@. /erubah dari running ke ready state.?. /erubah dari aiting ke ready.. "erminates.

    Pen!adual dari no & sampai non prempti=e sedangkan yang lain prempti=e. Dalampen!adualnonpreemptive sekali 8PU telah dialokasikan untuk sebuah proses, maka tidakbisa di ganggu, pen!adual model seperti ini digunakan oleh indos ?.3 indos ' telahmenggunakan pen!adual preempti=e.

    2.*.1.3. Dispatcher

    *omponen yang lain yang terlibat dalam pen!adual 8PU adalan ispatcher. Dispatcheradalah modul yang memberikan kontrol 8PU kepada proses yang fungsinya adalah$&. 7lih *onteks@. Sitching to user mode.?. Lompat dari suatu bagian di progam user untuk mengulang progam.

    Dispatcher seharusnya secepat mungkin.

    2.*.1.4. Kriteria $enja&ual

    7lgoritma pen!adual 8PU yang berbeda mempunyai property yang berbeda. Dalam memilihalgoritma yang digunakan untuk situasi tertentu, kita harus memikirkan properti yangberbeda untuk algoritma yang berbeda. /anyak kriteria yang dian!urkan utnukmembandingkan pen!adual 8PU algoritma. *ritria yang biasanya digunakan dalam memilihadalah$

    &. 8PU utili>ation$ kita ingin men!aga 8PU sesibuk mungkin. 8PU utili>ation akanmempunyai range dari 2 ke &22 persen. Di sistem yang sebenarnya seharusnya ia

    mempunyai range dari 2 persen samapi '2 persen.

    @. "hroughput$ !ika 8PU sibuk mengeksekusi proses, !ika begitu ker!a telah dilaksanakan.Salah satu ukuran ker!a adalah banyak proses yang diselesaikan per unit aktu,disebut througput. Untuk proses yang lama mungkin & proses per !am3 untuk prosesyang sebentar mungkin &2 proses perdetik.

    ?. "urnaround time$ dari sudur pandang proses tertentu, kriteria yang penting adalahberapa lama untuk mengeksekusi proses tersebut. nter=al dari aktu yang dii>inkan

  • 7/23/2019 Buku Sistem Operasi

    46/184

    dengan aktu yang dibutuhkan untuk menyelesaikan sebuah prose disebut turn-aroundtime. "run around time adalah !umlah periode untuk menunggu untuk bisa ke memori,menunggu di ready Nueue, eksekusi di 8PU, dan melakukan 56.

    . aiting time$ algoritma pen!adual 8PU tidak mempengaruhi aktu untukmelaksanakan proses tersebut atau 563 itu hanya mempengaruhi !umlah aktu yangdibutuhkan proses di antrian ready. aiting time adalah !umlah periode menghabiskandi antrian ready.

    . ;esponse time$ di sistem yang interaktif, turnaround time mungkin bukan aktu yangterbaik untukkriteria. Sering sebuah proses bisa memproduksi output diaal, dan bisameneruskan hasil yang baru sementara hasil yang sebelumnya telah diberikan ke user.Ukuran yang lain adalah aktu dari pengiriamn permintaan sampai respon yangpertama di berikan. ni disebut response time, yaitu aktu untuk memulai memberikanrespon, tetapi bukan aktu yang dipakai output untu respon tersebut.

    /iasanya yang dilakukan adalah memaksimalkan 8PU utili>ation dan throughput, danminimalkan turnaround time, aiting time, dan response time dalam kasus tertentu kita

    2.*.2. #lgritma $enja&ual &irst Come' &irst Ser(edPen!adual 8PU berurusan dengan permasalahan memutuskan proses mana yang akandillaksanakan, oleh karena itu banyak bermacam algoritma pen!adual, di seksi ini kita akanmendiskripsikan beberapa algoritma. ni merupakan algoritma yang paling sederhana,dengan skema proses yang meminta 8PU mendapat prioritas. mplementasi dari 8Smudah diatasi dengan 6 Nueue.

    8ontoh$

    am:ar 2'2*. Ke&atangan $rses.

    misal urutan kedatangan adalah P&, P@, P? %antt 8hart untuk ini adalah$

    am:ar 2'2+. annt 8hart Ke&atangan $rses !.

    am:ar 2'2-. annt 8hart Ke&atangan $rses !!.

    misal proses dibalik sehingga urutan kedatangan adalah P?, P@, P&.

  • 7/23/2019 Buku Sistem Operasi

    47/184

  • 7/23/2019 Buku Sistem Operasi

    48/184

    am:ar 2'33. annt 8hart S,F n'$reemti;e.

    am:ar 2'34. 7ata'rata Menunggu

    S algoritma mungkin adalah yang paling optimal, karena ia memberikan rata-rataminimum aiting untuk kumpulan dari proses yang mengantri. Dengan mengeksekusiaktu yang paling pendek baru yang paling lama. 7kibatnya rata-rata aktu mnenuggumenurun.

    :al yang sulit dengan S algoritma adalah mengethaui aku dari proses berikutnya.Untuk pen!adual long term (lama) di sistem batch, kita bisa menggunakan pan!ang batasaktu proses yang user sebutkan ketika dia mengirim peker!aan. 6leh karena itu s!f sering

    digunakan di pen!adual long term. alau pun S optimal tetapi ia tidak bisa digunakanuntuk pen!adual 8PU short term. "idak ada !alan untuk mengetahui pan!ang dari 8PU burstberikutnya. Salah satu cara untuk mengimplementasikannya adalah denganmemprediksikan 8PU burst berikutnya.

    8ontoh S prempti=e$S algoritma mungkin adalah yang paling optimal, karena ia memberikan rata-rataminimum aiting untuk kumpulan dari proses yang mengantri.

    am:ar 2'35. Ke&atangan $rses.

  • 7/23/2019 Buku Sistem Operasi

    49/184

    am:ar 2'3(. annt 8hart S,F $reemti;e.

    am:ar 2'3*. 7ata'rata Menunggu.

    *ita lihat baha dengan prempti=e lebih baik hasilnya daripada non preempti=e.

    2.*.4. $enja&ual $riritas

    Pen!adualan S (Shortest >ob ?irst) adalah kasus khusus untuk algoritma pen!adualPrioritas. Prioritas dapat diasosiasikan masing-masing proses dan 8PU dialokasikan untuk

    proses dengan prioritas tertinggi. Untuk proritas yang sama dilakukan dengan 8S.

    7da pun algoritma pen!adual prioritas adalah sebagai berikut$

    Setiap proses akan mempunyai prioritas (bilangan integer). /eberapa sistem

    menggunakan integer dengan urutan kecil untuk proses dengan prioritas rendah,dan sistem lain !uga bisa menggunakan integer urutan kecil untuk proses denganprioritas tinggi. "etapi dalam teks ini diasumsikan baha integer kecil merupakanprioritas tertinggi.

    8PU diberikan ke proses dengan prioritas tertinggi (integer kecil adalah prioritas

    tertinggi).

    Dalam algoritma ini ada dua skema yaitu$

    &. Preempti=e$ proses dapat di interupsi !ika terdapat prioritas lebih tinggi yangmemerlukan 8PU.

    @.

  • 7/23/2019 Buku Sistem Operasi

    50/184

    /erikut algritma untuk pen!adual ,oun ,obin$

    Setiap proses mendapat !atah aktu 8PU (time slice5 @uantum) tertentu "ime

    slice5Nuantum umumnyaantara &2 - &22 milidetik.&. Setelah time slice5 @uantum maka proses akan di-preempt dan dipindahkan ke

    antrian ready.@. Proses ini adil dan sangat sederhana.

    ika terdapat n proses di 9antrian ready9 dan aktu Nuantum N (milidetik), maka$

    &. #aka setiap proses akan mendapatkan &5n dari aktu 8PU.@. Proses tidak akan menunggu lebih lama dari$ (n-&)N time units.

    *iner!a dari algoritma ini tergantung dari ukuran time Nuantum

    &. "ime Vuantum dengan ukuran yang besar maka akan sama dengan 8S

    2. "ime Vuantum dengan ukuran yang kecil maka time Nuantum harus diubahukurannya lebih besar dengan respek pada alih konteks sebaliknya akanmemerlukan ongkos yang besar.

    am:ar 2'3+. 7un& 7:in.

    "ipikal$ lebih lama aktu rata-rata turnaround dibandingkan S, tapi mempunyai responseterhadap user lebih cepat.

    Time

  • 7/23/2019 Buku Sistem Operasi

    51/184

    2.+. $enja&ualan Multiprocessor

    #ultiprocessor membutuhkan pen!adualan yang lebih rumit karena mempunyai banyakkemungkinan yang dicoba tidak seperti pada processor tunngal. "api saat ini kita hanya

    fokus pada processor yang homogen (sama) sesuai dengan fungsi masing-masing dariprocessor tersebut. Dan !uga kita dapat menggunakan processor yang tersedia untukmen!alankan proses didalam antrian.

    2.+.1. $enja&ualan Multiple Processor

    Diskusi kita sampai saat ini di permasalahan men!adualkan 8PU di single prosesor. ikamultiple prosesor ada. Pen!adualan men!adi lebih kompleks banyak kemungkinan telahdicoba dan telah kita lihat dengan pen!adualan satu prosesor, tidak ada solusi yang terbaik.Pada kali ini kita hanya membahas secara sekilas tentang pan!adualan di multiprosesordengan syarat prosesornya identik.

    ika ada beberapa prosesor yang identik tersedia maka load sharing akan ter!adi. *ita bisamenyediakan Nueue yang terpisah untuk setiap prosesor. Dalam kasus ini, bagaimana pun,satu prosesor bisa men!adi ile dengan antrian yang kosong sedangkan yang lain sangatsibuk. Untuk mengantisipasi hal ini kita menggunakan reay @ueue yang biasa. Semuaproses pergi ke satu Nueue dan di!adualkan untuk prosesor yang bisa dipakai.

    Dalam skema tersebut, salah satu pen!adualan akan digunakan. Salah satu caramenggunakan symmetric multiprocessing (S#P). Dimana setiap prosesor men!adualkandiri sendiri. Setiap prosesor memeriksa raedy Nueue dan memilih proses yang akandieksekusi.

    /eberapa sistem membaa struktur satu langkah kedepan, dengan membaa semuakeputusan pen!adualan, 56 prosesing, dan akti=itas sistem yang lain ditangani oleh satuprosesor yang bertugas sebagai master prosesor. Prosesor yang lain mengeksekusi hanya

    user code yang disebut asymmetric multiprosessing !auh lebih mudah.

    2.+.2. $enja&ualan eal !ime

    Dalam bab ini, kita akan mendeskripsikan fasilitas pen!adualan yang dibutuhkan untukmendukung real time computing dengan bantuan sistem komputer.

    "erdapat dua !enis real time computing$ sistem hard real time dibutuhkan untukmenyelesaikan critical task dengan !aminan aktu tertentu. Secara umum, sebuah prosesdi kirim dengan sebuah pernyataan !umlah aktu dimana dibutuhkan untuk menyelesaikanatau men!alankan 56. *emudian pen!adual bisa men!amin proses untuk selesai ataumenolak permintaan karena tidak mungkin dilakukan. *arena itu setiap operasi harusdi!amin dengan aktu maksimum.

    Soft real time computing lebih tidak ketat. tu membutuhkan baha proses yang kritismenerima prioritas dari yang lain. alau pun menambah fungsi soft real time ke sistemtime sharing mungkin akan mengakibatkan pembagian sumber yang tidak adildanmengakibatkan delay yang lebih lama, atau mungkin pembatalan bagi proses tertentu,:asilnya adalah tu!uan secara umum sistem yang bisa mendukung multimedia, graphicberkecepatan tinggi, dan =ariasi tugas yang tidak bisa diterima di lingkungan yang tidakmendukunng soft real time computing

  • 7/23/2019 Buku Sistem Operasi

    52/184

    #engimplementasikan fungsi soft real time membutuhkan design yang hati-hati dan aspekyang berkaitan dengan sistem operasi. Pertama, sistem harus punya prioritas pen!adualan,dan proses real time harus tidak melampaui aktu, alau pun prioritas non real time bisater!adi. *edua, dispatch latency harus lebih kecil. Semakin kecil latency, semakin cepat realtime proses mengeksekusi.

    Untuk men!aga dispatch tetap rendah. *ita butuh agar system call untuk preemptible. 7dabeberapa cara untuk mencapai tu!uan ini. Satu untuk memasukkan preemption points didurasi yang lama system call, yang mana memeriksa apakah prioritas yang utama butuhuntuk dieksekusi. ika satu sudah, maka alih konteks mengambil alih3 ketika high priorityproses selesai, proses yang diinterupsi meneruskan dengan system call. Points premptionbisa diganti hanya di lokasi yang aman di kernel Y hanya kernel struktur tidak bisadimodifikasi alau pun dengan preemption points, dispatch latency bisa besar, karena padaprakteknya untuk menambah beberapa preemption points untuk kernel.

    #etoda yang lain untuk berurusan dengan preemption untuk membuat semua kernelpreemptible. *arena operasi yang benar bisa di!amin, semua data kernel struktur dengan diproteksi. Dengan metode ini, kernel bisa selalu di preemptible, karena semua kernel bisadiupdate di proteksi.

    7pa yang bisa diproteksi !ika prioritas yang utama butuh untuk dibaca atau dimodifisikasiyang bisa dibutuhkan oleh yang lain, prioritas yang rendahJ Prioritas yang tinggi harusmenunggu menunggu untuk menyelesaikan prioritas yang rendah.

    ase konflik dari dispatch latency mempunyai dua komponen$&. Preemption semua proses yang ber!alan di kernel.@. Lepas prioritas yang rendah untuk prioritas yang tinggi.

    2.+.3. $enja&ualan !hread

    Di /agian @., kita mengenalkan threads untuk model proses, hal itu mengi>inkan sebuahproses untuk mempunyai kontrol terhadap multiple threads. Lebih lan!ut kita membedakanantara user-le=el dan kernel le=el threads. User le=el threads diatur oleh thread library.Untuk men!alankan di 8PU, user le=el threads di mapping dengan asosiasi kernel le=elthrea, alau pun mapping ini mungkin bisa inirect dan menggunakan light#eight.

    2.-. ,a;a !hread &an #lgritmanya

    Pen!adualan thread yang ;unnable oleh a=a Girtual #achine dilakukan dengan konseppreempti=e dan mempunyai prioritas tertinggi. Dalam algoritma e=aluasi ditentukan terlebihdahulu kriteria-kriterianya seperti utilisasinya dilihat dari segi aktu tunggu yang digunakandan throughput yang disesuaikan dengan aktu turnaroundnya.

    2.-.1. $enja&ualan ,a;a Threa&

    a=a Girtual #achine men!adualkan thread menggunakan preempti=e, berdasarkanprioritas algoritma pen!adualan. Semua a=a "hread diberikan sebuah prioritas dan a=aGirtual #achine men!adualkan thread yang ;unnable dengan menggunakan prioritastertinggi saat eksekusi. ika ada dua atau lebih thread yang ;unnable yang mempunyaiprioritas tertinggi, a=a Girtual #achine akan men!adualkan thread tersebut menggunakansebuah antrian secara 6.

    2.-.1.1. Keunggulan $enja&ualan ,a;a !hread

  • 7/23/2019 Buku Sistem Operasi

    53/184

  • 7/23/2019 Buku Sistem Operasi

    54/184

    T

    public =oid run()"hread current3"his.setpriority(+)3hile (true) 55 get the net thread

    current B ("hread)Neue.getnet()3 if ( current IB null) ZZ (current.is7li=e())) current.setPriority()3schedulerSleep()3current.setPriority(@)

    T T T

    pri=ate 8ircularList Nueue3 pri=ate int timeSlice3 pri=ate static final int D47UL"E"#4ESL84 B &2223T

    public class "esScheduler

    public static =oid main()String argsQ) "hread.current"hread().setpriority("hread.#aEPriority)3Schedular 8PUSchedular B ne Scheduler ()38PUSchedular.start()"est"hread t& B ne "est"hread(9"hread &9)3t&.start()8puSchedular.add"hread(t&)3"est"hread t@ B ne "est"hread(9"hread @9)[email protected]()8puSchedular.add"hread(t@)3"est"hread t? B ne "est"hread(9"hread &9)3t?.start()8puSchedular.add"hread(t?)3

    TT

    am:ar 2'4. 7un& 7:in.

    2.-.2. ;aluasi #lgritma

    /agaimana kita memilih sebuah algoritma pen!adualan 8PU untuk sistem-sistem tertentu.0ang men!adipokok masalah adalah kriteria seperti apa yang digunakan untuk memilihsebuah algoritma. Untuk memilih suatu algoritma, pertama yang harus kita lakukan adalahmenentukan ukuran dari suatu kriteria berdasarkan$

    #emaksimalka