1 Tinjau Ulang Sistem Komputer

Ukuran: px
Mulai penontonan dengan halaman:

Download "1 Tinjau Ulang Sistem Komputer"

Transkripsi

1 1 Tinjau Ulang Sistem Komputer Overview Sebelum memulai mempelajari sistem operasi penting bagi kita untuk mengetahui komponen-komponen yang menjadi bagian dari sebuah sistem komputer disertai cara kerjanya. Hal ini disebabkan nantinya sistem operasi bekerja untuk mengatur komponen-komponen tersebut dan menyembunyikan kerumitannya bagi pengembang aplikasi dan para pengguna akhir sistem operasi. Tujuan 1. Mahasiswa mengetahui komponen-komponen yang membangun sebuah sistem komputer. 2. Mahasiswa mengetahui bagaimana komponen-komponen itu bekerja dan saling bekerja sama untuk memenuhi kebutuhan aplikasi dan pengguna akhir. 1.1 Pendahuluan Sebuah sistem operasi memberikan segala layanan yang mengeksploitasi sumberdaya yang dibutuhkan satu atau lebih proses kepada pengguna. Sumberdaya tersebut berkaitan erat dengan sistem komputer. Hal ini dikarenakan sistem operasi mengatur komponen-komponen pendukung sistem komputer seperti memori, I/O modul ataupun I/O device dan komponen pembentuk lainnya sehingga terselenggaranya ekseskusi proses dan menyembunyikan kerumitan pengaturan perangkat keras dari pengguna dan pembuat aplikasi. Hal tersebut menyebabkan perlunya memahami bagaimana sistem komputer bekerja untuk mengetahui bagaimana sistem operasi melaksanakan tugasnya. Sistem Operasi 1

2 1.2 Elemen Dasar Komputer Pada level atas, sebuah komputer terdiri dari empat komponen. Komponenkomponen ini saling berinteraksi untuk menghasilkan fungsi dari tujuan sistem komputer yaitu eksekusi program atau komputasi. Keempat komponen atau elemen struktur utama yaitu: 1. Prosesor Prosesor berfungsi mengendalikan operasi komputer dan melakukan fungsi pemrosesan data. Prosesor terdiri dari: a. Aritmetic Logic Unit (ALU), bagian untuk komputasi yang berhubungan dengan aritmatika dan logika b. Control Unit (CU), sebagai pengendali utama operasi yang dilaksanakan. Register, berfungsi sebagai memori yang sangat cepat yang biasanya digunakan sebagai tempat operan-operan suatu operasi yang akan dilaksanakan. Register membantu pelaksanan operasi yang dilakukan oleh prosesor. 2. Memori Utama Memori berfungsi menyimpan data dan program. Memori utama biasanya volatile, yaitu tidak dapat mempertahankan data dan program yang disimpan begitu sumber daya energi listrik dihentikan 3. Modul I/O Modul I/O atau perangkat masukan/keluaran berfungsi memindahkan data antara komputer dan lingkungan eksternalnya. Lingkungan eksternal dapat diantarmuka/interface oleh beragam peralatan eksternal seperti: media penyimpan sekunder, peralatan komunikasi dan sebagainya. 4. Intekoneksi antar Komponen Interkoneksi dalam hal ini adalah struktur dan mekanisme yang diperlukan untuk menghubungkan antara ketiga komponen, yaitu: proses, memori utama dan peralatan input-output. 1.3 Prosesor Prosesor berfungsi mengendalikan operasi komputer dan melakukan pemrosesan data. Prosesor mengambil instruksi yang dikodekan secara biner dari main memori, mendekode instruksi menjadi aksi-aksi sederhana dan melaksanakan aksi-aksi ini. Prosesor terdiri dari tiga komponen yaitu: - CU (Control unit), berfungsi mengendalikan operasi yang dilaksanakan. - ALU (Arithmetic logic unit), berfungsi melaksanakan operasi aritmatika dan logika.

3 - Register, berfungsi sebagai memori yang sangat cepat yang biasanya digunakan sebagai tempat operan-operan suatu operasi yang akan dilaksanakan. Operasi-operasi yang terdapat pada komputer terdiri dari tiga tipe, yaitu: - Operasi aritmatika, seperti penambahan, pengurangan, dan sebagainya. - Operasi logika, seperti OR, AND, X-OR dan sebagainya. Operasi pengendalian, seperti operasi pencabangan, loncat, dan sebagainya 1.4 Register Di dalam prosesor terdapat sekumpulan register yang berfungsi sebagai memori yang sangat cepat dan kecil kapasitasnya. Register-register dikategorikan menjadi dua, yaitu: 1. Register yang terlihat pemakai, terdiri dari dua jenis yaitu: Register data dan register alamat. Register untuk kendali dan status terdiri dari, Register untuk alamat dan buffer, register untuk eksekusi instruksi, dan register untuk informasi status Register Data Register dapat diberi nilai untuk beragam keperluan pemakai. Register data terdiri dari dua macam, yaitu: General purpose register dan Special purpose register Register Alamat Register ini berisi alamat data atau instruksi di memori utama atau berisi bagian alamat yang digunakan dalam penghitungan alamat lengkap. Contoh register ini antara lain: Register indeks, Register penunjuk segmen, Register penunjuk stack, dan Register penanda Register untuk Alamat dan Buffer Register untuk Alamat dan Buffer terdiri dari: - MAR (Memory Address Register), digunakan untuk mencatat alamat memori yang akan diakses (read/write). - MBR (Memory Buffer Register), digunakan untuk menapung data yang akan dituliskan ke memori yang alamatnya ditunjuk oleh MAR. I/O AR (I/O Address Register), digunakan untuk menampung data yang akan dituliskan ke port yang alamatnya ditunjuk oleh I/O AR Sistem Operasi 3

4 1.4.4 Register untuk Eksekusi Instruksi Register untuk Eksekusi Instruksi terdiri dari: - PC (Program Counter), mencatat alamat memori dimana instruksi yang terdapat di dalamnya akan dieksekusi. - IR (instruction Register), menampung instruksi yang akan dilaksanakan Register untuk Informasi Status Register ini dapat berupa satu register atau kumpulan register. Register atau kumpulan register ini disebut PSW (Program Status Word). PSW biasanya berisi kode-kode kondisi pemroses ditambah informasi-informasi status lainnya 1.5 Memori Memori berfungsi untuk menyimpan data dan program. Berdasarkan kecepatan aksesnya dapat dibuat hirarki memori, sebagai berikut:

5 Tercepat Register Chace Memory Main Memory Disk Chace Magnetic Disk Terlambat Magnetic tape Optical disk Tabel 1-1 Hirarki memori berdasarkan kecepatan Setiap kali prosesor melakukan eksekusi, pemroses harus membaca instruksi dari memori utama. Agar eksekusi dapat dilakukan secara cepat maka harus diusahakan instruksi tersedia di memori pada hirarki berkecepatan akses lebih tinggi. Kecepatan eksekusi ini akan meningkatkan kinerja sistem. Untuk itu terdapat konsep memori dua level, yaitu ditampung dulu sementara di memori pada hirarki lebih tinggi. Konsep ini diimplementasikan antara lain berupa: - Chace memory, memori berkapasitas terbatas, berkecepatan tinggi yang lebih mahal daripada memori utama. Chace memori ada di antara memori utama dan register pemroses, berfungsi agar pemroses tidak langsung mengacu memori utama agar kinerja dapat ditingkatkan. Buffering, bagian memori utama yang dialokasikan untuk menampung data yang akan ditransfer dari atau ke penyimpan sekunder. Buffering dapat mengurangi frekuensi pengaksesan ke perangkat penyimpan sekunder sehingga meningkatkan kinerja sistem 1.6 Modul I/O Klasifikasi perangkat I/O berdasarkan aliran datanya dapat dibagi dua, antara lain: 1. Block Oriented Device, peralatan ini menyimpan informasi sebagai blok-blok berukuran tetap. Ciri utama peralatan ini adalah dimungkinkan membaca atau menulis blok-blok secara indenpenden dengan cara direct access. Contoh peralatan antara lain: disk, optical disk, tape dan sebagainya. 2. Character Stream Oriented Device, peralatan ini mengantarkan atau menerima aliran karakter tanpa peduli dengan suatu struktur blok. Contoh peralatan ini antara lain: terminal, line printer, interface jaringan, dan lain-lain. Terdapat tiga teknik cara berhubungan perangkat I/O yaitu: Sistem Operasi 5

6 1. Programmed I/O Pada saat perangkat I/O menangani permintaan perangkat menset bit status pada register status perangkat. Perangkat tidak memberitahu ke prosesor bila tugas telah selesai. Prosesor harus selalu melakukan cek secara periodik terhadap register status perangkat dan melakukan tindakan-tindakan berdasarkan status yang dibaca. 2. Interrupt Driven I/O Teknik I/O dikendalikan instruksi mempunyai mekanisme kerja perangkat I/O sebagai berikut: - Prosesor memberi instruksi ke perangkat I/O lalu melanjutkan kerja yang lainnya. - Perangkat I/O akan menginstruksi untuk minta layanan saat perangkat telah siap transfer data dengan prosesor - Saat menerima instruksi dari hardware (Hardware yang siap melakukan transfer data), prosesor kemudian segera eksekusi transfer data. Dengan ini prosesor tidak disibukkan menunggui dan menjaga perangkat I/O untuk memeriksa status perangkat. 3. Direct Memory Access Interrupt Driven I/O lebih efisien dari programmed I/O, tapi masih memerlukan intervensi aktif prosesor untuk transfer data antara memori dan buffer I/O. I/O dikendalikan interupsi (Interrupt Driven I/O) mempunyai dua kelemahan yaitu: - Rate Transfer I/O dibatasi kecepatan menguji dan melayanan operasi peralatan. - Prosesor terikat ketat dalam mengelola transfer I/O, sejumlah instruksi harus dieksekusi untuk tiap transfer I/O. Ketika data besar dipindahkan teknik yang lebih efisien diperlukan agar tidak menyibukkan prosesor, sehingga prosesor dapat melakukan kerja lain.

7 DMA berfungsi membebaskan prosesor menunggui transfer data perangkat I/O. Saat prosesor ingin baca/tulis data, prosesor memrintahkan DMA dengan mengirim informasi-informasi berikut: - Read/write - Alamat perangkat I/O - Awal lokasi memori yang ditulis/dibaca - Jumlah byte yang ditulis/dibaca Setelah mengirim informasi ke DMA, prosesor dapat melakukan kerja lain. Prosesor mendelegasikan operasi I/O ke DMA. DMA mentransfer seluruh data yang diminta secara langsung dari memori tanpa melewati prosesor. Ketika transfer data selesai, DMA mengirim sinyal interupsi ke prosesor. Prosesor hanya dilibatkan pada awal dan akhir tranfer data perangkat I/O. Operasi transfer anatara perangkat dan memori utama dilakukan sepenuhnya oleh DMA. DMA yang menangani akses disk, dilakukan oleh DMA controller yang lepas dari prosesor dan hanya melakukan interupsi bila operasi telah diselesaikan. 1.7 Interkoneksi antar Komponen Interkoneksi antar komponen disebut bus. Bus terdiri dari 3 macam, yaitu: - Address Bus, Bus yag mengirim alamat lokasi memori atau port yang ingin ditulis/dibaca. Jumlah lokasi memori yang dapat dialamati CPU ditentukan oleh jumlah jalur alamat.jika CPU memilki N jalur alamat maka dapat secara langsung mengalamati 2 N lokasi memori. - Data Bus, Bus data ini Bidirectional berarti dapat baca dan kirim dari/ke memori atau port. Bus data berhubungan dengan transfer ata pembacaan data dari/ke memori dengan peralatan-peralatan. Control Bus, Bus yang digunakan CPU dengan dikirimi sinyal untuk memrintahkan memori atau port I/O. Sistem Operasi 7

8 1.8 Eksekusi Instruksi Mekanisme Eksekusi Tahap Pemrosesan instruksi berisi 2 tahap yaitu: a. Fetch, Prosesor membaca instruksi dari memori b. Execute, Prosesor mengeksekusi instruksi Eksekusi program berisi pengulangan proses fetch dan execute. Eksekusi instruksi (Tahap Execute) dapat melibatkan beberapa operasi lebih dasar dan bergantung pada sifat instruksi itu. Proses satu instruksi disebut satu siklus instruksi (instruction cycle). Siklus Eksekusi instruksi dpat dilihat pada gambar 1-1 START Fetch Insruksi Eksekusi Instruksi HALT Fetch Cycle Execute Cycle Mode Eksekusi Instruksi Gambar 1-1 Siklus Eksekusi instruksi Prosesor mempunyai beragam mode eksekusi, biasanya dikaitkan dengan program Sistem Operasi dan program pemakai. Instruksi-instruksi tertentu hanya dapat dieksekusi dalam suatu mode yang berkewenangan lebih tinggi. Mode dengan kewenangan rendah biasa disebut user mode karena program pemakai biasa dieksekusi dalam mode ini. Mode dengan kewenangan tinggi disebut system mode, control mode, supervisor mode atau kernel mode, karena biasanya rutin-rutin sistem atau kendali atau kernel dieksekusi dengan mode ini

9 Rangkuman Sebuah sistem operasi memberikan segala layanan yang mengeksploitasi sumberdaya yang dibutuhkan satu atau lebih proses kepada pengguna. Sumberdaya tersebut berkaitan erat dengan sistem komputer. Hal ini dikarenakan sistem operasi mengatur komponen-komponen pendukung sistem komputer seperti memori, I/O modul ataupun I/O device dan komponen pembentuk lainnya sehingga terselenggaranya ekseskusi proses dan menyembunyikan kerumitan pengaturan perangkat keras dari pengguna dan pembuat aplikasi. sebuah komputer terdiri dari empat komponen. Komponenkomponen ini saling berinteraksi untuk menghasilkan fungsi dari tujuan sistem komputer yaitu eksekusi program atau komputasi. Keempat komponen atau elemen struktur utama yaitu prosesor, memori, modul I/O dan interkoneksi antar computer. Prosesor berfungsi mengendalikan operasi komputer dan melakukan pemrosesan data. Di dalam prosesor terdapat sekumpulan register yang berfungsi sebagai memori yang sangat cepat dan kecil kapasitasnya. Memori berfungsi untuk menyimpan data dan program. Maka dapat disimpulkan bahwa computer tidak dapat berdiri sendiri tetapi terdapat suatu bagian yang saling bergantung dan saling bekerja sama sehingga komputer akan berjalan dengan sebenarnya Sistem Operasi 9

10 Soal Latihan 1. Sebutkan dan jelaskan bagian dari computer 2. Fungsi dari memori dan prosesor 3. Apa perbedaan dari memori dan register 4. Jelaskan Klasifikasi perangkat I/O berdasarkan aliran datanya 5. Sebutkan dan jelaskan tiga teknik cara berhubungan perangkat I/O 6. Fungsi dari DMA 7. Gambarkan bagian utama dari computer yang terdiri dari empat komponen yang sangat penting bagi computer 8. Sebutkan dan jelaskan tahap pemrosesan instruksi

11 2 Pengenalan Sistem Operasi Overview Mempelajari sistem operasi dimulai dengan mengenali komponen-komponen yang pada umumnya terdapat dalam sebuah sistem operasi dan mengenal tugas atau fungsi dari masing-masing komponen tersebut. Tujuan 1. Mahasiswa mengetahui komponen-komponen yang membangun sebuah sistem operasi. 2. Mahasiswa mengetahui bagaimana komponen-komponen itu bekerja dan saling bekerja sama untuk memenuhi kebutuhan aplikasi dan pengguna akhir. Sistem Operasi 11

12 2.1 Fungsi dan Sasaran Sistem Operasi Sistem operasi adalah program yang mengendalikan eksekusi program aplikasi dan bertindak sebagai antarmuka antara pemakai dan perangkat keras komputer. Fungsi utama sistem operasi adalah: 1. Sistem operasi sebagai pengelola sumber daya (resources manager). 2. Sistem operasi sebagai extended machine/virtual machine. Menurut Stalling, sistem operasi mempunyai tiga sasaran, antara lain: 1. Kenyamanan, yaitu sistem operasi harus membuat komputer menjadi lebih nyaman saat digunakan pemakai. 2. Efisiensi, yaitu sistem operasi mejadikan sumber daya sistem komputer dapat digunakan secara efisien. Mampu berevolusi, yaitu sistem operasi harus dibangun sehingga memungkinkan dan memudahkan pengembangan, pengujian dan pengajuan fungsi-fungsi sistem yang baru tanpa pada waktu yang sama mengganggu layanan yang dijalankan sistem komputer yang menjalankan sistem operasi itu. 2.2 Sistem Operasi sebagai Pengelola Sumber Daya Sistem komputer adalah sekumpulan sumber daya untuk memindah, menyimpan, dan memroses data, serta untuk mengendalikan fungsi-fungsi ini. Sistem operasi bertanggung-jawab mengelola sumber daya-sumber daya ini. Sumber daya pada sistem komputer antara lain: 1. Perangkat keras - prosesor - penyimpan primer - penyimpan sekunder - peralatan masukan/keluaran 2. Perangkat lunak - data - proses 3. Peralatan komunikasi dan jaringan

13 Sistem operasi bertanggung-jawab mengelola sumber daya agar penggunaan sumber daya dapat secara benar dan efisien. Gambar 2-1 Fungsi sistem operasi sebagai pengatur sumber daya komputer 2.3 Sistem Operasi sebagai Extended Machine/Virtual Machine Sistem operasi sebagai extended machine/virtual machine berfungsi sebagai berikut: - Memberi pemakai suatu abstraksi mesin tingkat tinggi sederhana dan menyembunyikan kerumitan perangkat keras. Sistem operasi menyediakan system call (API = Application programming interface) yang merupakan abstraksi tingkat tinggi mengenai mesin untuk pemrograman. Berfungsi menghindarkan kompleksitas pemrograman dengan memberikan sekumpulan instruksi yang mudah dan nyaman yaitu system calls. - Basis untuk program lain. Program aplikasi dijalankan di atas sistem operasi. Program-program tersebut dalam melakukan tugasnya mengendalikan dan memanfaatkan sumber daya sistem komputer adalah dengan Sistem Operasi 13

14 meminta layanan sistem operasi untuk mengendalikan sumber daya untuk aplikasi itu agar pemanfaatan sumber daya komputer benar dan efisien. Stalling merinci layanan-layanan yang harus disediakan sistem operasi antara lain: 1. Pembuatan program 2. Eksekusi program 3. Pengaksesan perangkat masukan/keluaran 4. Pengaksesan terkendali terhadap berkas 5. Pengaksesan sistem 6. Deteksi dan memberi tanggapan terhadap kesalahan 7. Akunting 2.4 Sistem Komputer dalam Beragam Sudut Pandang Pandangan ke Pemakai sistem komputer dapat dikelompokkan menjadi tiga, yaitu: - Pemakai awan (end user) dan administrator sistem - Pemrogram. - Perancang Sistem Operasi Pemakai awam menggunakan suatu aplikasi di sistem komputer, biasanya tidak berkepentingan dengan arsitektur komputer. Pemakai memandang sistem komputer dalam bentuk aplikasi yang dihadapinya. Aplikasi tersebut dikembangkan oleh pemrogram aplikasi.administrator bertugas agar sistem berfungsi secara benar dan optimal. Pemrogram aplikasi yang mengembangkan aplikasi dengan menggunakan kumpulan instruksi mesin secara langsung, maka pemrogram bertanggung jawab sepenuhnya mengendalikan perangkat keras komputer. Tugas ini sangat amat kompleks. Untuk mempermudah pemrogram, sekumpulan fasilitasfasilitas disediakan sistem operasi. Pemrogram menggunakan fasilitas-fasilitas ini dalam mengembangkan aplikasi, mengelola berkas, dan mengendalikan masukan/keluaran, tak perlu menulis atau membuatnya sendiri untuk aplikasiaplikasi yang dibuatnya.

15 Gambar 2-2 Lapisan-lapisan dari sebuah computer Perancang sistem operasi harus membuat sistem operasi yang dapat mempermudah dan menyamankan terutama untuk pemrogram aplikasi membuat aplikasi-aplikasi. Sistem operasi menyembunyikan rincian-rincian pengoperasian perangkat keras dari pemrogram dan menyediakan interface yang nyaman untuk menggunakan perangkat tersebut. Sistem operasi bertindak sebagai mediator, mempermudah pemrogram serta program aplikasi mengakses serta menggunakan fasilitas-fasilitas dan layanan-layanan sistem komputer 2.5 Evolusi Sistem Operasi Sistem Operasi telah berevolusi sejak pertama kali komputer diciptakan. Perkembangan sistem komputer melibatkan perkembangan sistem hardware dan software. Perkembangan sistem operasi dapat dijabarkan sebagai berikut: - Generasi Pertama ( ) Awal dari pengembangan sistem komputasi elektronik, menggantikan ide-ide mesin-mesin komputaasi mekanis. - Generasi Ke-dua ( ) Terdapat Batch System, Job dikumpulkan dalam satu rangkaian kemudian diekskusi secara berurutan Batch Multiprogramming Time Sharing Sistem Operasi 15

16 Principal objective Maximize Prosesor use Source of directives to operating system Job control language commands provided with the job Minimize response time Commands entered at the terminal - Generasi Ke-tiga ( ) Terdapat : Sistem multiprogramming, Saat satu job menunggu operasi input/output selesai job lain dapat menggunakan prosesor Spooling, membuat periperal dapat diakses secara simultan, yaitu dengan cara menyediakan beberapa partisi memori. Saat terdapat permintaan layanan periperal, langsung diterima dan data disimpan lebih dulu di memori yang disediakan berupa antrian, kemudian dijadwalkan agar secara nyata dilayani oleh periperal Time Sharing, varian dari sistem multiprogramming, di mana tiap pemakai mempunyai satu terminal on-line dengan prosesor hanya memberi layanan pada pemakai yang aktif. Pada sistem uniprogamming prosesor harus menunggu dan berproses setelah instruksi I/O berproses sampai selesai sedangkan pada sistem multi programming Selama satu job membutuhkan untuk menunggu proses I/O, prosesor dapat memilih (switch) job lain untuk berproses walaupun proses sebelumnya belum selesai (a) uniprogramming (b) multiprogramming dengan dua proses

17 (c) multiprogramming dengan tiga proses Gambar 2-3 Perbandingan eksekusi perintah antara sistem uniprogramming dengan multiprogramming Gambar 2-4 Perbandingan utilisasi sumber daya komputer antara sistem uniprogramming dan multiprogramming Sistem Operasi 17

18 Contoh perbandingan antar-proses dan utilisasi sumber daya komputer dengan beberapa job dapat dilihat pada tabel di bawah ini: JOB1 JOB2 JOB3 Type of job Heavy compute Heavy I/O Heavy I/O Duration 5 min. 15 min. 10 min. Memory required 50K 100 K 80 K Need disk? No No Yes Need terminal No Yes No Need printer? No No Yes Uniprogramming Multiprogramming Prosesor use 22% 43% Memory use 30% 67% Disk use 33% 67% Printer use 33% 67% Elapsed time 30 min. 15 min. Throughput rate 6 jobs/hr 12 jobs/hr Mean response time 18 min. 10 min. - Generasi Ke-empat (1980 Sekarang) Terdapat : Network O/S, Sistem operasi diperuntukkan jaringan komputer dimana pemakai menyadari keberadaan komputer yang terhubung. Distributed O/S, Sistem operasi untuk jaringan komputer, dengan user tak perlu menyadari keberadaan komputer-komputer yang terhubung, dimana alokasi kerja sudah secara otomatis dilaksanakan oleh sistem operasi.

19 Rangkuman Sistem operasi adalah program yang mengendalikan eksekusi program aplikasi dan bertindak sebagai antarmuka antara pemakai dan perangkat keras komputer. Sistem operasi harus mampu berevolusi, yaitu sistem operasi harus dibangun sehingga memungkinkan dan memudahkan pengembangan, pengujian dan pengajuan fungsi-fungsi sistem yang baru tanpa pada waktu yang sama mengganggu layanan yang dijalankan sistem komputer yang menjalankan sistem operasi itu Soal Latihan 1. Sebutkan layanan system operasi yang harus ada menurut Stalling 2. Pandangan ke Pemakai sistem komputer dapat dikelompokkan menjadi tiga. Sebutkan 3. Sebutkan sumber daya pada sistem komputer dan jelaskan 4. Jelaskan fungsi dari Sistem operasi sebagai extended machine/virtual machine Sistem Operasi 19

20 3 Proses dan Thread Overview Salah satu fitur penting sistem operasi modern adalah kemampuan multitasking dan multiprogramming. Kedua fitur ini dimungkinkan melalui mekanisme penanganan banyak proses dan thread yang dimiliki oleh sistem operasi. Pada bab ini akan dibahas mengenai dasar-dasar dari proses, thread, dan bagaimana sistem operasi mengelola mereka untuk mewujudkan fitur multitasking dan multi programming Tujuan 1. Mahasiswa mengetahui komponen-komponen yang membangun sebuah sistem komputer. 2. Mahasiswa mengetahui bagaimana komponen-komponen itu bekerja dan saling bekerja sama untuk memenuhi kebutuhan aplikasi dan pengguna akhir. 3.1 Pengenalan Konsep Proses Proses dalam ruang lingkup sistem operasi dapat dikatakan sebagai sebuah aplikasi/program yang sedang dijalankan. Manajemen proses adalah salah satu

21 dari fungsi utama dari sistem operasi terutama pada sistem operasi yang mendukung eksekusi banyak aplikasi pada waktu yang bersamaan. Sistem operasi yang baik harus dapat mengatur sumber daya komputer (yang terbatas) sedemikian rupa sehingga aplikasi-aplikasi yang sedang berjalan bersamaan tersebut mendapatkan sumber daya komputer yang mereka butuhkan agar dapat berfungsi dengan benar. Sebuah proses yang sedang berjalan disimpan di dalam memori utama (RAM) dan dua bagian penting dari sebuah proses adalah: 1. Kode program atau instruksi-instruksi program yang harus dieksekusi oleh prosesor (yang dapat dibagi pakai bersama dengan proses lain) dan 2. Sekumpulan data yang berhubungan dengan kode program dari proses Tetapi dua bagian di atas tidak memiliki cukup informasi yang dibutuhkan oleh sistem operasi untuk memanajemen banyak proses yang berjalan bersamaan. Informasi-informasi tersebut dibuat oleh sistem operasi dan disimpan dalam struktur data yang disebut PCB (Process Control Block). Isi dari PCB tersebut antara lain: 1. Identifier: tanda identitas yang membedakan suatu proses dengan proses lainnya. 2. State: kondisi dari proses. Jika proses sedang dieksekusi maka kondisi/statusnya adalah running. 3. Priority: prioritas eksekusi dibandingkan proses-proses lainnya. 4. Program counter: alamat memori dari instruksi program berikutnya yang akan dieksekusi. 5. Memory pointer: pointer menuju kode program (instruksi program), data yang berhubungan dengan proses, dan blok memori yang dibagipakai bersama proses-proses lain. 6. Contex data: adalah data yang ada di register prosesor ketika proses dieksekusi. 7. I/O status information: informasi tentang permintaan I/O, peralatan I/O, file, dll. 8. Accounting information: dapat terdiri dari waktu prosesor, waktu clock yang digunakan, batas waktu, nomor akun, dll. Informasi-informasi di atas setidaknya cukup lengkap bagi sistem operasi untuk menginterupsi/menunda pengeksekusian sebuah proses untuk Sistem Operasi 21

22 mengeksekusi proses lain kemudian kembali lagi mengeksekusi proses pertama seakan-akan interupsi tidak pernah terjadi 3.2 Kondisi / Keadaan Proses Dari sudut pandang prosesor eksekusi sebuah proses berarti mengeksekusi instruksi-instruksi dari proses tersebut berdasarkan urutan tertentu. Urutan eksekusi ini dikendalikan lewat perubahan nilai pada register program counter yang berupa penunjuk ke suatu lokasi yang berisi instruksi dari proses. Isi dari program counter ini pada suatu saat bisa berubah menjadi penunjuk ke instruksi yang dimiliki oleh proses lain. Hal ini terjadi ketika sebuah program kecil bernama dispatcher yang dieksekusi secara periodik oleh prosesor. Sebuah daftar yang berisi urutan instruksi yang dieksekusi untuk suatu proses yang dibuat untuk mengetahui kelakuan dari sebuah proses individual dikenal sebagai trace. Gambar-gambar 3-1 dan 3-2 dapat menjelaskan posisi proses dan dispatcher serta trace dari beberapa proses ketika dijalankan. Untuk mengatur eksekusi dari proses termasuk mengatur pergantian eksekusi antar proses dan mengalokasikan sumber daya komputer yang dibutuhkan proses yang akan dieksekusi sistem operasi perlu mengetahui kondisi yang sedang dialami sebuah proses dan menentukan tindakan apa yang harus diambil terhadap proses tersebut pada kondisi tertentu. Ada beberapa model dari kondisi-kondisi yang dialami sebuah proses dimulai dari model yang sederhana yang terdiri dari hanya dua kondisi hingga berkembang menjadi model yang memiliki lebih dari lima kondisi. Model Dua Kondisi Model yang pertama dan paling sederhana adalah model 2 kondisi (2 state) yang terdiri dari kondisi running dan not running seperti dijelaskan oleh gambar 3-3. Pada saat pertama kali proses dibuat proses tersebut akan memasuki kondisi not running dan akan memasuki sebuah antrian untuk proses-proses yang menunggu untuk dieksekusi oleh prosesor. Proses yang sedang dieksekusi berada dalam kondisi running dan pada suatu saat akan berhenti dieksekusi apakah karena telah selesai atau gilirannya telah habis dan prosesor akan mengeksekusi dispatcher yang akan menaruh proses barusan pada belakang antrian dan merubah nilai program counter sehingga menunjuk pada urutan instruksi yang dimiliki oleh proses yang berada di depan antrian. Model Lima Kondisi Model yang ke-dua adalah model dengan 5 kondisi (5 state). Model ini merupakan perkembangan dari model yang pertama untuk menangani kondisi di mana sebuah proses mungkin saja tidak selalu siap untuk dieksekusi karena harus menunggu sebuah operasi I/O selesai dilaksanakan. Pada model ini

23 kondisi not running dipecah menjadi ready dan blocked. Berikut ini adalah daftar 5 kondisi yang ada pada model 5 kondisi: 1. Running: proses sedang dieksekusi 2. Ready: proses siap dieksekusi jika telah mendapat kesempatan 3. Blocked: proses tidak dapat dieksekusi hingga suatu event terjadi atau menunggu suatu proses I/O selesai 4. New: proses baru saja selesai dibuat. Pada kondisi ini biasanya baru process control block saja yang telah selesai dibuat dan ditaruh di memori utama sedangkan instruksi dan datanya belum 5. Exit: proses telah dilepaskan dari kumpulan (pool) proses yang dapat dieksekusi oleh sistem operasi dikarenakan telah selesai maupun dibatalkan karena alasan tertentu Dapat dilihat bahwa ada dua kondisi tambahan selain pemisahan not running menjadi ready dan blocked yaitu new dan exit. Kondisi new pada model ini seperti yang telah dijelaskan di atas menerangkan bahwa sistem operasi telah menyiapkan keperluan untuk menjalankan proses seperti PCB dan tabel-tabel tertentu dalam sistem operasi tetapi proses itu sendiri belum dieksekusi oleh prosesor. Kondisi exit pada model ini mewakili kondisi sedemikian sehingga proses yang telah dihentikan eksekusinya karena telah selesai maupun karena hal lainnya seperti kesalahan dan pembatalan oleh pengguna tidak langsung dihapus melainkan disimpan sementara agar informasi yang menyertai proses tersebut seperti PCB dan tabel-tabel yang menyertainya dapat digunakan oleh proses lain yang memerlukan seperti proses yang melakukan perhitungan waktu eksekusi dan penggunaan sumberdaya oleh proses lainnya. Berikut ini adalah jenis-jenis kejadian (event) yang dapat menyebabkan proses berpindah dari suatu kondisi ke kondisi lainnya dalam model 5 kondisi: 1. Null > New: sebuah proses baru dibuat. Prose ini dapat benarbenar baru atau dapat berasal dari proses lain yang telah ada melalui process spawning. 2. New > Ready: sistem operasi memindahkan sebuah proses ke kondisi ready dari kondisi new hanya jika sistem operasi tersebut telah siap. Sistem operasi dapat menahan sebuah proses dalam kondisi new jika kondisi belum memungkinkan untuk menangani proses tambahan seperti kekurangan memori atau terdapat batasan jumlah proses yang dapat ditangani agar tidak menurunkan kinerja keseluruhan. Sistem Operasi 23

24 3. Ready > Running: proses dipindahkan dari kondisi ready ke kondisi running oleh rutin penjadwalan atau dispatcher dan dieksekusi oleh prosesor. 4. Running > Ready: alasan paling umum untuk memindahkan suatu proses dari running ke kondisi ready adalah karena waktu eksekusi untuk proses tersebut telah habis atau diinterupsi untuk digantikan oleh proses dengan prioritas yang lebih tinggi. 5. Running > Exit: proses dihentikan eksekusinya dan diterminasi dikarenakan telah selesai atau karena alasan lainnya seperti terjadinya kesalahan atau pembatalan eksekusi oleh pengguna. 6. Running > Blocked: proses diblok apabila proses tersebut telah meminta sesuatu yang tidak dapat langsung dipenuhi oleh sistem operasi, contohnya: operasi I/O 7. Blocked > Ready: proses dipindahkan dari blocked ke kondisi ready hanya jika kejadian (event) tertentu yang ditunggu telah terjadi seperti permintaan operasi I/O oleh proses tersebut telah selesai dilaksanakan. 8. Ready > Exit: transisi ini tidak digambarkan pada model 5 kondisi untuk menjaga kejelasan tetapi sebuat proses dalam kondisi ready dapat langsung diterminasi contohnya sebuah proses anak dapat diterminasai oleh proses induk kapan saja dan jika sebuah proses induk mati maka proses anak juga ikut diterminasi. 9. Blocked > Exit: transisi ini termasuk dalam penjelasan kondisi ready -> exit. Model dengan Suspended State Model 2 kondisi dan 5 kondisi sebelumnya berlaku pada sistem operasi yang tidak memerlukan swapping. Swapping berlaku pada sistem operasi yang menerapkan konsep memori virtual (akan dibahas di bab manajemen memori) yaitu menjadikan media penyimpanan seperti harddisk sebagai bagian dari memori untuk menyimpan proses yang akan dieksekusi. Proses-proses yang ada tidak disimpan dalam memori utama tetapi disimpan dalam media harddisk. Hanya proses-proses yang siap dieksekusi saja yang disimpan dalam memori utama. Konsep memori virtual ini memungkinkan sistem operasi membuat proses dengan jumlah dan ukuran lebih besar dari kapasitas memori utama. Jika memori utama penuh dan ada proses lain yang harus masuk maka proses yang sedang tidak dieksekusi di memori dapat dipindahkan kembali ke

25 memori virtual. Pemindahan dari memori virtual ke memori utama dan sebaliknya inilah yang disebut sebagai swapping. Untuk mengimplementasikan konsep memori virtual tersebut perlu dibuat suatu kondisi baru yaitu kondisi ketika proses berada pada dalam memori virtual yaitu kondisi suspended. Proses yang berada dalam kondisi blocked dapat dipindahkan dari memori utama ke sebuah antrian proses di memori virtual untuk menyediakan ruang kosong bagi proses lain di memori utama. Gambar 3-4 memperlihatkan dua model yang mengakomodir kondisi suspended. Pada model pertama diperlihatkan hanya ada satu kondisi suspend seperti yang telah dijelaskan di atas. Mengingat bahwa kecepatan eksekusi prosesor jauh melebihi waktu yang dibutuhkan untuk menyelesaikan operasi I/O maka akan ada kemungkinan di mana prosesor akan banyak menganggur dikarenakan kebanyakan proses berada dalam keadaan suspended menunggu operasi I/O yang belum selesai. Mengembalikan proses-proses ini ke dalam memori utama hanya akan memboroskan waktu dan sumber daya dikarenakan proses-proses ini belum tentu siap dijalankan ketika telah berada di memori utama. Untuk menghemat sumber daya hanya proses-proses yang telah siap dijalankan, yang telah mendapatkan event yang dibutuhkan, yang dipindahkan dari antrian di memori virtual ke memori utama. Proses-proses tersebut sebelum dipindahkan ke memori utama dapat diletakkan dalam antrian proses yang siap untuk dieksekusi kembali oleh prosesor. Oleh karena itu kondisi suspended dibagi lagi menjadi dua kondisi, yaitu: 1. Blocked/Suspend: kondisi di mana proses berada dalam kondisi blocked di dalam memori virtual dan menunggu suatu event. 2. Ready/Suspend: kondisi di mana proses berada dalam memori virtual tetapi dapat langsung dijalankan ketika telah berada dalam memori utama. Selain itu kondisi ready berlaku untuk proses yang tidak menunggu event tertentu dan telah berada di memori utama dan kondisi blocked berlaku bagi proses yang sedang menunggu event tertentu dan sedang berada dalam memori utama. Transisi-transisi antar kondisi yang terjadi, antara lain: 1. Blocked Blocked/Suspend: transisi ini terjadi ketika sistem operasi membutuhkan tambahan ruang kosong di dalam memori utama untuk proses lain dan tidak tersedia ruang kosong dalam memori utama. Untuk menyediakan ruang tersebut sistem operasi akan memindahakan proses-proses yang berada dalam kondisi Sistem Operasi 25

26 blocked ke dalam memori virtual sehingga kondisi proses tersebut dikatakan sebagai blocked/suspend. 2. Blocked/Suspend Ready/Suspend: transisi ini terjadi ketika event yang ditunggu proses dalam kondisi blocked/suspend telah terjadi sehingga status proses tersebut berubah menjadi ready/suspend. 3. Ready/Suspend Ready: transisi ini terjadi ketika tidak ada lagi proses yang berada dalam kondisi ready di dalam memori utama sehingga sistem operasi akan memindahkan proses yang berada dalam kondisi ready/suspend dari memori virtual ke memori utama. Transisi ini juga dapat terjadi apabila proses dalam kondisi ready/suspend memiliki prioritas lebih tinggi dari proses yang berada dalam kondisi ready. 4. New Ready/Suspend dan New Ready: transisi ini terjadi ketika suatu proses baru saja dibuat. Proses tersebut dapat disimpan di dalam antrian memori di memori utama atau diantrikan dalam kondisi ready/suspend di memori virtual. 5. Blocked/Suspend Blocked: transisi ini meskipun tampak tidak terlalu baik dari segi disain namun masih mungkin terjadi. Jika memori utama memiliki tempat kosong dan proses dalam kondisi blocked/suspend tersebut memiliki prioritas lebih tinggi dari yang berada dalam kondisi ready/suspend serta sistem operasi percaya bahwa event yang ditunggu proses tersebut akan terjadi segera maka transisi ini boleh saja terjadi. 6. Running Ready/Suspend: proses yang telah habis masa eksekusinya biasanya akan dipindahkan ke dalam kondisi ready namun apabila ada proses dengan prioritas lebih tinggi telah berubah dari kondisi blocked/suspend menjadi ready/suspend maka sistem operasi dapat membebaskan memori utama untuk proses tersebut dengan memindahkan proses dengan prioritas lebih rendah tersebut ke dalam kondisi ready/suspend. Kondisi Apapun Exit: biasanya proses diterminasi dalam kondisi berjalan karena telah selesai atau ada kesalahan tertentu namun pada beberapa sistem operasi proses dapat diterminasi oleh proses yang menjadi induknya atau

27 ketika proses induknya diterminasi. Jika hal tersebut diperbolehkan maka semua kondisi dapat segera berubah menjadi kondis exit. 3.3 Deskripsi Proses Seperti yang telah disebutkan sebelumnya sistem operasi bertugas untuk mengelola proses-proses dan sumber daya komputer yang digunakan prosesproses tersebut. Untuk melaksanakan tugas tersebut sistem operasi memerlukan beberapa informasi mengenai proses-proses yang ada dan sumber daya komputer yang ada Struktur Kendali Sistem Operasi Sistem operasi membuat dan memelihara beberapa tabel berisi informasi mengenai sumber daya komputer dan proses yang ada. Tabel-tabel tersebut antara lain: 1. Tabel memori Tabel ini digunakan untuk mengelola memori utama dan memori virtual. Tabel ini berisi, antara lain: a. Alokasi memori utama untuk proses b. Alokasi memori virtual untuk proses c. Atribut-atribut yang digunakan untuk keperluan proteksi blok-blok memori yang digunakan pada memori utama d. Informasi apa saja yang digunakan untuk mengelola memori virtual. 2. Tabel I/O Tabel ini digunakan untuk mengelola peralatan-peralatan dan saluransaluran I/O. Ketika terjadi suatu operasi yang berhubungan dengan I/O sistem operasi harus mengetahui lokasi memori yang digunakan dalam proses perpindahan data. 3. Tabel file Tabel ini digunakan untuk menyimpan informasi mengenai file-file yang sedang digunakan, seperti: lokasi mereka dalam memori, status, dan atribut mereka. 4. Tabel proses Tabel ini digunakan untuk memanajemen proses-proses. Mulai dari bagian ini selebihnya dari bab ini akan membahas mengenai tabel proses yang perlu dibuat untuk memanajemen proses. Sistem Operasi 27

28 Setidaknya ada dua hal penting yang harus diingat sebelum membahas masalah tabel proses, yaitu bahwa I/O, memori, dan file dimanajamen untuk memenuhi kebutuhan proses sehingga perlu ada penunjuk bagi proses untuk mengakses mereka dan informasi mengenai kondisi lingkungan seperti konfigurasi perangkat keras, jumlah memori tersedia, dan sebagainya harus disediakan oleh sesuatu di luar sistem operasi apakah oleh perangkat lunak atau dengan bantuan manusia Struktur Kendali Proses Untuk dapat memanajemen proses sistem operasi minimal harus mengetahui letak dan kondisi dari proses-proses yang ada Lokasi Proses Secara umum sebuah proses terdiri dari program atau sekumpulan program yang akan dieksekusi disertai data jika diperlukan. Selain itu terdapat juga struktur data stack yang digunakan untuk mengatur pemanggilan prosedur dan pertukaran parameter antar prosedur dan beberapa atribut yang disebut sebagai process control block. Keseluruhan dari program, data, stack, dan process control block ini dapat disebut sebagai process image. Lokasi dari process image ini bervariasi bergantung kepada kebijakan penggunaan memori yang digunakan oleh sistem operasi. Sederhananya process image ini disimpan dalam blok ruang memori yang kontinu di memori utama ataupun di memori virtual Atribut Proses Atribut-atribut proses yang dibutuhkan untuk mengatur jalannya proses seperti sudah disebutkan sebelumnya disimpan di dalam process control block. Di dalamnya terdapat tiga kategori informasi, yaitu: 1. Identifikasi proses Setiap proses diberi sebuah bilangan penanda identitas yang unik yang dapat menjadi indeks dalam tabel proses. Identitas ini menjadi referensi proses tersebut dalam operasi I/O dan komunikasi dengan proses lainnya, 2. Informasi kondisi prosesor Nilai yang tersimpan dalam register prosesor akan disimpan oleh proses dalam PCB. Hal ini dilakukan agar ketika proses diinterupsi dari prosesor data yang sedang diproses dalam register tidak hilang tergantikan oleh data proses yang lain. Pada saat proses ini kembali dieksekusi isi regsiter akan dikembalikan ke register prosesor.

29 Informasi kendali proses ini adalah informasi tambahan yang dibutuhkan oleh sistem operasi untuk mengendalikan dan mengkoordinasi beberapa proses yang aktif. 3.4 Kendali Proses Mode Eksekusi Kebanyakan prosesor yang dibuat saat ini mendukung dua mode eksekusi, yaitu mode user dan mode kernel atau mode sistem. Pembedaan mode ini dilakukan untuk membatasi hak akses proses-proses milik user agar tidak mengganggu jalannya seluruh sistem komputer. Beberapa hal hanya boleh dilakukan oleh sistem operasi pada mode kernel seperti: menjalankan instruksi-instruksi I/O primitif, menjalankan instruksi-instruksi yang berhubungan dengan manajemen memori. Sebagai tambahan ada beberapa bagian dari memori yang hanya dapat diakses oleh proses yang berjalan pada mode khusus dengan hak istimewa. Bagaimana sistem operasi dapat mengetahui bahwa suatu bagian dari proses harus dieksekusi dalam mode tertentu? Biasanya hal ini dilakukan dengan menambahkan informasi khusus dalam bagiaan program yang disebut sebagai program status word yang menentukan mode eksekusi dari program. Pembuatan Proses Pada saat sebuah proses baru lahir sistem operasi akan melakukan beberapa langkah untuk menjamin proses baru tersebut dapat berjalan dengan baik dan dapat diatur termasuk menyediakan sumber daya komputer seperti memori dan file-file yang dibutuhkan oleh proses tersebut. Langkah-langkah itu antara lain: 1. Memberikan identitas unik kepada proses baru tersebut 2. Mengalokasikan ruangan memori untuk proses tersebut 3. Menginisialisasi proses control block 4. Mengkonfigurasi tautan-tautan tertentu terhadap proses seperti penempatan pada antrian, dsb. 5. Membuat atau mengembangkan struktur data yang lain seperti membuat file audit terhadap proses agar dapat digunakan untuk penagihan atau pengukuran kinerja Pergantian Proses Pergantian eksekusi satu proses ke proses lainnya tampaknya merupakan sesuatu yang tidak rumit. Pada waktu tertentu proses yang sedang dieksekusi Sistem Operasi 29

30 mendapat interupsi dan sistem operasi memberikan status running pada proses lain dan mengalihkan kendali kepada proses tersebut. Tetapi ada beberapa maslaah disain yang ditimbulkan, Pertama kejadian apa yang memicu ternjadinya pergantian proses. Maslaah lainnya yang perlu diperhatikan adalah perbedaan antara pergantian mode dan pergantian proses. Terakhir adalah apa yang harus dilakukan oleh sistem operasi terhadap berbagai struktur data yang ada untuk menyelesaikan pergantian proses Kapan Mengganti Eksekusi Proses Ada beberapa hal yang dapat menjadi pemicu terjadinya pergantian eksekusi proses di prosesor, di antaranya: 1. Interrupt: disebabkan oleh suatu kejadian yg berada di luar lingkup eksekusi instruksi dan digunakan untuk memberikan reaksi terhadap kejadian luar secara asinkron. 2. Trap: disebabkan oleh kejadian yang berhubungan dengan eksekusi intruksi dan digunakan untuk menangani eror atau eksepsi tertentu. 3. Supervisor call: disebabkan oleh permintaan suatu pihak secara eksplisit kepada sistem operasi dan digunakan untuk memanggil fungsi yang disediakan oleh sistem operasi. Contoh dari berbagai interrupt yang ada: 1. Clock Interrupt: Sistem operasi menentukan bahwa proses yang sedang dieksekusi telah memenuhi batas maksimum waktu eksekusi yang diperbolehkan yang dikenal sebagai time slice. Proses tersebut harus dihentikan eksekusinya dan digantikan dengan proses lainya. 2. I/O Interrupt: Sistem operasi menentukan bahwa operasi I/O telah terjadi. Jika operasi I/O tersebut merupakan operasi yang ditunggu oleh satu atau beberapa proses maka sistem operasi akan memindahkan semua proses yang diblok yang berkepentingan dengan operasi I/O tersebut ke kondisi ready. 3. Memory Fault: Prosesor menemui sebuah alamat memori virtual yang menunjuk pada data yang tidak ada di memori utama. Sistem operasi harus memindahkan blok dari memori virtual yang mengandung data tersebut ke memori utama. Setelah sistem operasi mengeluarkan perintah untuk menjalankan operasi I/O untuk memindahkan blok data tersebut proses yang membutuhkan data tersebut diubah statusnya menjadi blocked. Setelah blok data yang

31 diinginkan berada di memori utama proses tersebut dikembalikan ke kondisi ready Pergantian Mode Interrupt stage merupakan bagian dari siklus eksekusi instruksi. Pada tahap tersebut prosesor memeriksa ada tidaknya interrupt yang diindikasikan melalui adanya sinyal interupsi. Jika tidak ada sinyal interupsi maka prosesor akan mengambil instruksi berikutnya namun jika terdapat sinyal interupsi maka prosesor akan melakukan hal sebagai berikut: 1. Prosesor mengubah nilai program counter menunjuk ke alamat awal dari program yang menangani interrupt (interrupt handler) 2. Prosesor mengubah dari mode user menjadi mode kernel sehingga program yang menangani interrupt dapat mengeksekusi instruksi yang membutuhkan hak khusus Perubahan Kondisi Proses Perubahan state atau kondisi proses berbeda dengan perubahan mode eksekusi proses. Sebuah perubahan mode dapat terjadi tanpa perubahan kondisi proses yang sedang berada dalam keadaan running sedangkan ketika terjadi perubahan kondisi proses maka sistem operasi harus melakukan perubahan pada lingkungannya dengan tahap-tahap sebagai berikut: 1. Simpan konteks dari prosesor termasuk program counter dan register lainnya 2. Perbarui PCB dari proses yang dalam kondisi running. 3. Pindahkan PCB proses ke antrian yang tepat (Ready, Blocked on Event, atau Ready/Suspend). 4. Pilih proses lain untuk eksekusi dan perbarui PCB proses yang akan dieksekusi termasuk kondisinya menjadi running. 5. Perbarui struktur data yang digunakan untuk manajemen memori 6. Kembalikan konteks prosesor ke bagian terakhir ketika proses dipindahkan dari kondisi running dengan memasukkan nilai-nilai program counter dan register lainnya Proses dan Thread Ada dua hal mengenai proses yang menjadi fokus sistem, yaitu: Kepemilikan sumber daya (resource ownership) Sistem Operasi 31

32 Masing-masing proses memiliki sumber daya (memory, saluran I/O, berkas, dll) yang dilindungi oleh sistem operasi dari interferensi yang tidak diinginkan oleh proses lain Penjadwalan/eksekusi Banyak proses dapat dieksekusi secara bergantian sehingga proses memiliki atribut kondisi eksekusi dan prioritas eksekusi yang menentukan penjadwalan eksekusi proses-proses tersebut. Dua karekteristik di atas ternyata bersifat independen sehingga dapat ditangani secara terpisah oleh sistem operasi. Penanganan pergantian eksekusi proses oleh sistem operasi berkaitan melibatkan satuan terkecil bagian yang dapat dipergantikan yang disebut thread atau lightweight process sedangkan penanganan kepemilikan sumber daya berkaitan dengan proses. Multithreading Multithreading adalah kemampuan sistem operasi untuk mendukung adanya beberapa thread di dalam sebuah proses Sistem operasi terdahulu seperti MS DOS tidak mengenal konsep multiproses maupun multithread sehingga hanya dapat menjalankan satu proses dan setiap proses adalah sebuah thread. Sistem operasi yang lebih maju seperti UNIX mendukung adanya beberapa proses yang berjalan bersamaan tetapi setiap proses tetap dianggap sebagai sebuah thread. Java Runtime Environment adalah contoh sebuah sistem dengan proses yang dapat memiliki beberapa thread. Sistem operasi modern seperti Microsoft Windows, Solaris, Mach, dan Linux telah mendukung konsep multiproses sekaligus multithread di mana ada beberapa proses yang dapat (seakan-akan) berjalan bersamaan dan setiap proses dapat terbagi menjadi beberapa thread. Pada sebuah lingkungan multithread sebuah proses didefinisikan sebagai satuan alokasi sumber daya dan satuan pengamanan. Perbandingan antara singlethread process dan proses dengan multithreaded process dapat dilihat pada gambar. Semua thread dalam sebuah proses berada dalam alamat ruang (address space) yang sama dan memiliki hak yang sama untuk mengakses sumber daya proses

33 Gambar 3-1 Thread Keuntungan menggunakan thread dibandingkan proses: 1. membuat thread baru lebih cepat daripada membuat proses baru 2. menghentikan thread lebih cepat daripada menghentikan proses 3. waktu untuk pergantian thread lebih cepat dibandingkan pergantian proses 4. komunikasi antar thread lebih cepat karena berada dalam satu proses sehingga tidak memerlukan intervensi dari kernel Contoh penggunaan multithreading pada sistem single-user multiprocessing: 1. Pekerjaan foreground dan background Input dapat dilakukan melalui thread foreground dan pemrosesan input dilakukan dengan thread background sehingga aplikasi menjadi lebih responsif 2. Pemrosesan asinkron Tugas-tugas asinkron dapat diimplementasikan sebagai thread. Contoh: sebuah thread yang bertugas melakukan penulisan data dari RAM ke storage sebagai background proses 3. Mempercepat eksekusi Proses dengan multithread dapat menghitung sekumpulan data sembari mengambil data dari peralatan dan pada lingkungan multi processor beberapa thread dapat dijalankan berbarengan pada Sistem Operasi 33

34 processor yang berbeda. Selain itu membuat program yang menggunakan thread terpisah untuk melakukan Remote Procedure Call akan meningkatkan kecepatan program secara substansial 4. Struktur program modular Mempermudah implementasi dan desain program dengan berbagai input dan output berbeda Empat operasi terhadap thread berdasarkan status thread: 1. Spawn Pembuatan proses meliputi pembuatan thread proses tersebut dan thread tersebut dapat pula membuat thread baru di dalam thread yang sama. 2. Block Ketika thread dihentikan sementara karena menunggu suatu peristiwa (event) processor akan mengeksekusi thread lain yang siap dalam antrian. 3. Unblock Thread yang telah mendapatkan event yang diperlukan untuk melanjutkan tugasnya akan dikembalikan ke dalam antrian thread yang siap. 4. Finish Register dan stack dari thread akan didealokasikan begitu thread selesai Pada processor tunggal, multiprogramming memungkinkan eksekusi secara bergantian beberapa thread ketika suatu thread menunggu event atau jatah waktu eksekusinya telah habis.

35 Salah satu isu yang penting dalam multithreading adalah sinkronisasi aktivitas antar thread sehingga aktivitas suatu thread tidak menyebabkan gangguan bagi thread lainnya. Masalah apakah blocking salah satu thread akan menghambat eksekusi seluruh thread dalam proses yang sama menjadi bahasan dalam user-level thread dan kernel-level thread. Terminasi dan penahanan proses akan mempengaruhi seluruh thread dalam proses karena mereka berbagi alamat memori yang sama User Level Thread User-level thread adalah konsep sedemikian sehingga kernel tidak menyadari adanya thread karena manajemen thread dilakukan di tingkat aplikasi dengan menggunakan pustaka thread yang berisi rutin untuk memanajemen thread Keuntungan menggunakan user-level thread: 1. Penggantian thread yang dieksekusi tidak membutuhkan hak istimewa kernel karena struktur data untuk manajemen thread ada pada memori proses. 2. Memungkinkan implementasi alogritma penjadwalan thread yang berbeda-beda untuk aplikasi tertentu tanpa mengubah kernel. Aplikasi tertentu membutuhkan penjadwalan tertentu (round robin, skala prioritas, dll) untuk bekerja Sistem Operasi 35

36 secara optimal. 3. Dapat diaplikasikan pada semua sistem operasi karena tidak menyentuh level kernel Kekurangan penggunaan user-level thread: 4. Kebanyakan sistem operasi melakukan blocking pada saat system call dilakukan yang menyebabkan proses (dan seluruh thread di dalamnya) diblok. 5. Multiprocessing tidak dapat diambil manfaatnya karena kernel menugaskan satu processor hanya untuk satu proses sehingga hanya satu thread proses yang bisa dijalankan pada satu waktu. Jacketing adalah cara untuk mengakali blocking saat system call yaitu dengan mengubah blocking system call menjadi non-blocking system call. Contohnya pada saat membutuhkan I/O thread tidak memanggil rutin I/O sistem melainkan memanggil rutin jaket I/O level aplikasi dan di dalamnya terdapat kode untuk memeriksa kesiapan peralatan I/O, jika belum siap maka kendali akan dialihkan ke thread yang lain Kernel Level Thread Kernel-level thread merupakan konsep sedemikian sehingga manajemen thread dilakukan oleh kernel dan diakses aplikasi melalui API (Application Programming Interface). Kentungan penggunaan kernel-level thread: 6. Kernel dapat menjadwalkan banyak thread dari satu proses pada banyak processor dan

37 7. blocking satu thread dalam proses tidak menghalangi thread dari proses yang sama dijadwalkan untuk suatu processor Kekurangan dari kernel-level thread adalah alih kendali dari satu thread ke thread yang lain membutuhkan peralihan ke mode kernel yang menyebabkan overhead waktu yang cukup siginifikan Konsep lainnya adalah menggabungkan kedua konsep di atas sedemikian sehingga user-level thread dari suatu aplikasi dipetakan pada beberapa kernellevel thread. Jumlah kernel-level thread yang digunakan dapat disesuaikan sesuai kebutuhan oleh programmer. Sebuah proses memiliki satu thread atau banyak thread sudah umum digunakan tetapi relasi antara thread dan proses dapat dikombinasikan menjadi dua macam lagi, yaitu: Banyak thread dimiliki oleh banyak proses 1. Melibatkan konsep domain dan thread. 2. Domain adalah entitas statis yang memiliki ruang dan port di mana pesan dapat dikirim dan diterima. 3. Thread adalah jalur eksekusi tunggal dengan stack eksekusi, status processor, dan informasi penjadwalan. 4. Thread dapat berpindah-pindah dari satu domain ke domain lainnya. Sistem Operasi 37

38 Satu thread dimiliki oleh banyak proses 1. Digunakan pada sistem terdistribusi. 2. Sebuah proses adalah sebuah virtual address space dan memiliki sebuah control block. 3. Thread dapat berpindah-pindah dari satu proses ke proses lainnya dalam satu mesin atau berpindah mesin dengan membawa informasiinformasi yang diperlukan. 4. Digunakan untuk menyembunyikan detil lingkungan terdistribusi dari programmer. Rangkuman Proses dalam ruang lingkup sistem operasi dapat dikatakan sebagai sebuah aplikasi/program yang sedang dijalankan. Manajemen proses adalah salah satu dari fungsi utama dari sistem operasi terutama pada sistem operasi yang mendukung eksekusi banyak aplikasi pada waktu yang bersamaan. Sistem operasi yang baik harus dapat mengatur sumber daya komputer (yang terbatas) sedemikian rupa sehingga aplikasi-aplikasi yang sedang berjalan bersamaan tersebut mendapatkan sumber daya komputer yang mereka butuhkan agar dapat berfungsi dengan benar. Dari sudut pandang prosesor eksekusi sebuah proses berarti mengeksekusi instruksi-instruksi dari proses tersebut berdasarkan urutan tertentu. Urutan eksekusi ini dikendalikan lewat perubahan nilai pada register program counter yang berupa penunjuk ke suatu lokasi yang berisi instruksi dari proses. Untuk dapat memanajemen proses sistem operasi minimal harus mengetahui letak dan kondisi dari proses-proses yang ada.

39 Soal Latihan 1. Apa yang dimaksud thread dan multithread, multithreading 2. Sebutkan dan jelaskan 2 bagian terpenting dari sebuah proses 3. Kapan akan dilakukan penggantian proses 4. Buatlah program sederhana untuk membuat thread baik satu thread ataupun multithreading 5. Sebutkan contoh nyata dari penggunaan thead di dunia nyata. 4 Konkurensi Overview Sebelum memulai mempelajari sistem operasi penting bagi kita untuk mengetahui komponen-komponen yang menjadi bagian dari sebuah sistem komputer disertai cara kerjanya. Hal ini disebabkan nantinya sistem operasi bekerja untuk mengatur komponen-komponen tersebut dan menyembunyikan kerumitannya bagi pengembang aplikasi dan para pengguna akhir sistem operasi. Sistem Operasi 39

40 Tujuan 1. Mahasiswa mengetahui komponen-komponen yang membangun sebuah sistem komputer 2. Mahasiswa mengetahui bagaimana komponen-komponen itu bekerja dan saling bekerja sama untuk memenuhi kebutuhan aplikasi dan pengguna akhir 4.1 Pendahuluan Fitur-fitur utama dari sistem operasi modern yang paling menonjol adalah kemampuan sistem operasi untuk melakukan: 1. Multiprogramming: kemampuan untuk memanajemen banyak proses dengan menggunakan satu prosesor, 2. Multiprocessing: kemampuan untuk memanajemen banyak proses dengan menggunakan banyak prosesor, 3. Distributed Processing (pemrosesan tersebar): kemampuan untuk memanajemen banyak proses yang dieksekusi pada banyak komputer yang tersebar dibeberapa lokasi. Hal mendasar yang perlu diperhatikan ketika menangani banyak proses yang berjalan bersama-sama (konkurensi) adalah masalah-masalah seperti: bagaimana komunikasi antar proses-proses tersebut, membagi pakai dan terjadinya kompetisi untuk sumber daya komputer, sinkronisasi aktivitas proses-proses, dan alokasi prosesor. 4.2 Prinsip-prinsip Konkurensi Pada komputer yang menjalankan multiprogramming proses-proses dijalankan bergantian dengan cepat oleh prosesor sehinga tampak seolah-olah berjalan bergantian. Ketika hal ini dilakukan timbul beberapa masalah, yaitu: 1. Berbagi pakai sumber daya memiliki resiko tinggi. Contohnya ketika dua buah proses mengakses variabel yang sama

41 dan melakukan operasi penulisan dan pembacaan maka urutan eksekusi pembacaan dan penulisan masing-masing proses menjadi hal yang perlu diperhatikan dan bersifat kritikal. 2. Sulit bagi sistem operasi untuk memanajemen alokasi sumber daya komputer secara optimal. Contohnya jika sebuah proses mengakses suatu file atau I/O kemudian ditunda eksekusinya maka proses lain yang hendak mengakses file atau I/O tersebut akan ditolak hingga proses pertama selesai mengakses file atau I/O tersebut. 3. Sulit untuk melacak kesalahan pada program. Hal ini dikarenakan hasil yang sama tidak determinisitik dan sulit diproduksi ulang. Salah satu masalah yang ditimbulkan dari berbagi pakai sumber daya adalah race condition, yaitu situasi sedemikian sehingga beberapa proses atau thread menulis data di tempat/variabel yang sama sehingga hasil akhir bergantung kepada urutan eksekusi instruksi-instruksi proses-proses tersebut. Sebagai contoh: jika ada dua proses P1 dan P2, berbagai pakai variabel global a. Jika P1 mengubah nilai a menjadi 1 dan kemudian pada suatu ketika P2 mengubah nilai a menjadi 2 maka kedua proses sedang berada dalam kondisi balapan untuk menulis variabel a. Pada contoh ini pihak yang kalah balapan (yang terakhir mengubah nilai variabel a) adalah yang menentukan nilai akhir dari variabel a. Untuk menangani masalah konkurensi ini sistem operasi perlu memperhatikan hal-hal sebagai berikut: 1. Sistem operasi harus dapat mengetahui jejak dari berbagai proses yang berjalan, Hal ini dapat dilakukan melalui process control block. 2. Sistem operasi harus dapat mengalokasi dan mendealokasi sumber daya komputer untuk setiap proses yang aktif, seperti: a. Prosesor b. Memori c. Berkas-berkas (files) d. Peralatan-peralatan I/O 3. Sistem operasi harus dapat melindungi data dan sumber daya fisik yang sedang dialokasikan untuk setiap proses dari interferensi yang tidak dimaksudkan oleh proses lain. Sistem Operasi 41

42 4. Fungsi dan output dari sebuah proses harus independen terhadap kecepatan eksekusi relatif terhadap kecepatan proses konkuren yang lain. Bab ini akan difokuskan pada poin ke-empat ini. Apa maksud dari pernyataan fungsi dan output dari sebuah proses harus independen terhadap kecepatan eksekusi relatif terhadap kecepatan proses konkuren yang lain? Fungsi sebuah proses dan output yang dihasilkannya sebisa mungkin dijaga untuk tidak terpengaruh oleh kecepatan eksekusi proses tersebut yang dalam sebuah sistem multiproses menjadi tidak tetap bergantung proses-proses lainnya. Proses-proses dalam sistem multiproses dapat saling independen tetapi lebih sering melakukan interaksi. Ada beberapa jenis interaksi yang terjadi antar proses berdasarkan derajat pengetahuan proses-proses terhadap adanya proses lainnya: 1. Proses-proses tidak saling mengetahui keberadaan proses lain. Proses-proses tersebut dimaksudkan untuk bekerja independen dan tidak dimaksudkan untuk saling bekerja sama. Pada kasus ini meski tidak bekerja sama tetapi sangat mungkin terjadi kompetisi untuk mendapatkan sumber daya kompuer tertentu. 2. Proses-proses saling mengetahui keberadaan proses lain secara tidak langsung. Proses-proses ini tidak mengetahui secara langsung proses lain melalui process ID yang mereka miliki melainkan karena berbagi pakai suatu sumber daya yang sama dan mengetahui bahwa sumber daya tersebut dibagi pakai bersama dengan proses lainnya. 3. Proses-proses saling mengetahui keberadaan proses lain secara langsung. Proses-proses ini saling mengetahui keberadaan proses lain sampai pada tingkat mengetahui process ID proses lainnya. Pada jenis interaksi pertama proses-proses yang berjalan berbarengan mengalami konflik ketika mencoba mengakses sumber daya yang sama pada waktu yang bersamaan. Jika salah satu proses telah mengakses sumber daya tersebut maka proses lain harus menunggu hingga proses tersebut selesai menggunakan sumber daya tersebut sebelum dapat menggunakannya. Hal ini menyebabkan eksekusi proses menjadi tertunda dan bahkan pada beberapa kasus proses lain tidak pernah mendapat kesempatan untuk mengakses sumber daya tersebut dan akhirnya tidak pernah selesai dengan sukses.

43 Untuk mengendalikan proses-proses yang saling berkompetisi setidaknya ada tiga masalah yang dihadapi, yaitu: 1. Mutual exclusion 2. Deadlock 3. Starvation Mutual exclusion adalah konsep sedemikian sehingga hanya satu proses yang boleh mengakses/menggunakan sebuah sumber daya yang tidak bisa dipakai berbarengan (contohnya: printer, kartu jaringan, dll). Instruksi-instruksi yang dieksekusi ketika mengakses sebuah sumber daya disebut sebagai critical section dan sumber daya tersebut dikenal sebagai critical resource. Mutual excluision mengharuskan pada suatu saat hanya ada satu proses yang berada pada kondisi critical section. Penerapan mutual exclusion dapat menyebabkan dua masalah, yaitu deadlock dan starvation. Deadlock adalah kondisi sedemikian sehingga beberapa proses tidak berjalan karena masing-masing sedang mengakses suatu sumber daya dan untuk menyelesaikan eksekusi critical section masing-masing harus mengakses critical resource yang sedang diakses proses lainnya. Misalkan proses P1 dan P2 membutuhkan sumberdaya R1 dan R2 untuk menyelesaikan critical section masing-masing. Seandainya P1 sedang mengakses R1 dan P2 sedang mengakses R2 maka P1 tidak dapat mengakses R2 dan sebaliknya P2 juga tidak dapat mengakses R1. Saat inilah kedua proses tidak dapat melanjutkan proses eksekusi dan deadlock terjadi. Starvation (kelaparan) adalah kondisi sedemikan sehingga sebuah proses terus menerus gagal mendapatkan akses suatu sumber daya dikarenakan prosesproses lain terus menggunakan sumber daya tersebut Persayaratan untuk mutual exclusion Untuk menerapkan mutual exclusion sebuah sistem harus memenuhi kebutuhan-kebutuhan sebagai berikut: 1. Mutual exclusion harus dapat dipaksakan 2. Proses yang berhenti sementara pada bagian non critical harus dapat berhenti tanpa mengganggu proses yang lain 3. Tidak boleh terjadi sebuah proses tertahan dari memasuki critical section dalam waktu yang tidak pasti: tidak boleh ada deadlock dan starvation 4. Ketika tidak ada proses yang memasuki critical section pada suatu critical resource maka proses lain yang hendak memasuki cirtical sectionnya harus diizinkan mengakses critical resource tersebut tanpa waktu tunda Sistem Operasi 43

44 5. Tidak asumsi yang dibuat mengenai kecepatan proses dan jumlah prosesor Sebuah proses berada dalam critical section untuk waktu yang terbatas Dukungan Perangkat Keras untuk Mewujudkan Mutual Exclusion Interrupt Disabling Apabila sebuah proses yang memasuki critical section dapat diinterupsi eksekusinya maka mutual exclusion menjadi tidak terjamin penerapannya. Kemampuan untuk mencegah suatu proses diinterupsi di tengah critical section proses tersebut dapat diwujudkan dalam bentuk rutin-rutin dasar/primitif yang disediakan di dalam kernal yang berguna untuk mematikan dan menyalakan kembali fasilitas interupsi. Sebuah proses dapat memaksakan mutual exclusion dengan cara seperti di bawah ini: while (true) { /* matikan interupsi */; /* masuk ke critical section */; /* nyalakan interupsi */; /* masuk ke non-critical section */; } Sebelum proses memasuki critical section proses memanggil rutin primitif untuk mematikan fasilitas interupsi dan proses memanggil rutin untuk mengembalikan fungsi interupsi. Dikarenakan critical section tidak dapat diinterupsi maka mutual exclusion menjadi terjamin penerapannya. Cara ini memiliki biaya yang mahal dikarenakan akan membatasi fleksibilitas prosesor dalam mengubah proses yang dieksekusi. Selain itu solusi ini tidak bekerja pada lingkungan multiprosesor di mana beberapa proses dapat dijalankan bersamaan masing-masing dengan prosesor yang berbeda Instruksi-instruksi Mesin Khusus Interrupt disabling tidak dapat digunakan pada mesin dengan banyak prosesor dikarenakan tidak ada mekanisme untuk melakukan interupsi antar prosesor. Pada lingkungan seperti ini yang mengkaitkan prosesor satu dan lainnya adalah mereka sama-sama mengakses satu main memory yang sama dan pada tingkatan perangkat keras akses ke lokasi tertentu main memory berarti

45 menghalangi prosesor lain mengakses lokasi yang sama. Dengan menggunakan kondisi ini para disainer prosesor mencoba untuk mengaplikasikan mutual exclusion melalui instruksi mesin yang dalam satu putaran melakukan dua pekerjaan yang bersifat atomik seperti reading dan writing, atau reading dan testing. Dua bentuk instruksi yang diimplementasi antara lain: 1. Instruksi test and set 2. Instruksi exchange Instruksi Test and Set Instruksi test and set dapat didefinisikan seperti di bawah ini: boolean testset (int i) { if(i==0) { i=1; return true; } else { return false; } } Instruksi ini memeriksa apakah parameter i bernilai. Jika i bernilai 0 maka instruksi ini akan mengganti nilainya menjadi 1 dan mengembalikan nilai boolean true. Sebaliknya jika bernilai 1 maka instruksi ini akan mengembalikan nilai false. Tabel di bawah memperlihatkan bagaimana mutual exclusion dapat diimplementasi melalui mekanisme instruksi ini. Prosedur parbegin(p1,p2,, Pn) sendiri bekerja dengan cara sebagai berikut: tahan (suspend) ekseskusi dari program utama (main program) kemudian siapkan/inisiasi eksekusi secara konkuren prosedur P1, P2,, Pn. Jika prosedur-prosedur tersebut telah selesai lanjutkan kembali program utama. Sebuah variabel yang dibagi pakai bernama bolt diinisialisasi bernilai 0. Proses yang dapat memasuki critical section hanyalah proses yang mendapati bahwa nilai bolt adalah 0. Proses lainnya akan tertahan dari memasuki critical section dan mengalami bussy waiting atau spin waiting. Bussy waiting adalah suatu teknik sedemikian sehingga proses tidak dapat memasuki critical section dan terus-menerus memeriksa kondisi tertentu yang membolehkan proses tersebut memasuki critical section. Setelah proses keluar dari critical section proses tersebut akan mengubah nilai bolt kembali menjadi 0. Sistem Operasi 45

46 /*program:mutualexclusion*/ const int n=/*jumlah proses*/ int bolt; void P(int i) { while(true) { while(!testset(bolt)) /*diam*/ /*critical section*/ /*lain-lain*/ } } void main() { bolt=0; parbegin(p(1),p(2),, P(n)); } /*program:mutualexclusion*/ const int n=/*jumlah proses*/ int bolt; void P(int i) { int keyi=1; while(true) { do exchange (keyi, bolt); while(key!=0) /*critical section*/ exchange(keyi, bolt); /*lain-lain*/ } } void main() { bolt=0; parbegin(p(1),p(2),, P(n)); } Instruksi Exchange Instruksi Test and Set Tabel 4-1 Mutual exclusion dengan dukungan perangkat keras Instruksi Exchange Instruksi exchange dapat didefinisikan seperti di bawah ini: void exchange (int register, int memory) { int temp; temp=memory; memory=register; register=temp; } Instruksi ini menukar nilai dalam sebuah register (lokasi memori dalam prosesor) dengan nilai dalam sebuah lokasi memori. Tabel 4-1 memperlihatkan bagaimana mutual exclusion dapat diimplementasi dengan instruksi ini. Prosedur parbegin dan variabel bolt pada instruksi ini memiliki fungsi yang sama dengan pasangannya di instruksi set and test sedangkan variabel baru keyi ditetapkan di awal bernilai 1. Proses boleh memasuki critical section hanya jika mendapati nilai bolt adalah 0 dengan cara menukar nilai keyi dengan bolt dan memeriksa apakah nilai keyi adalah 1. Setelah proses meninggalkan critical section proses akan menukarkan kembali nilai bolt menjadi 0.

47 4.2.7 Sifat-sifat Pendekatan Instruksi Mesin Keuntungannya: 1. dapat digunakan pada lingkungan satu (uni) atau banyak (multi) prosesor yang berbagi pakai main memory 2. Sederhana dan mudah dipastikan 3. Dapat mendukung beberapa critical section dengan menggunakan variabel tersendiri untuk setiap critical section Kerugiannya: 1. Terdapat busy waiting yang menghabiskan waktu prosesor 2. Memungkinkan terjadinya starvation. 3. Memungkinkan terjadinya deadlock 4.3 Fasilitas Perangkat Lunak untuk Mewujudkan Mutual Exclusion Melihat kekurangan dari pendekatan instruksi mesin pendekatan alternatif dirasa perlu. Sistem operasi dan bahasa pemrograman dapat menyediakan mekanisme untuk mewujudkan mutual exclusion. Beberapa di antaranya adalah: 1. Semaphore, 2. Monitor, dan 3. Message passing Semaphore William Stalling dalam bukunya, Operating Systems Internal Design and Principles, menyebutkan kemajuan besar yang pertama dalam menangani masalah-maslah yang timbul akibat proses-proses yang konkuren terjadi di tahun 1965 oleh Dijkstra. Dijkstra menekankan pada disain dari sistem operasi sebagai sekumpulan proses berurutan yang saling bekeja sama dan dengan pengembangan dari mekanisme-mekanisme kerja sama yang efisien dan dapat diandalkan. Mekanisme-mekanisme tersebut dapat digunakan oleh proses dari user jika prosesor dan sistem operasi dapat menyediakan mereka untuk digunakan. Prinsip dasarnya adalah: bawhwa dua atau lebih proses dapat bekerja sama dengan menggunakan sinyal-sinyal sederhana, sedemikian sehingga sebuah proses dapat dipaksa berhenti pada tahap tertentu hingga menerima sinyal tertentu. Kebutuhan untuk koordinasi kompleks apapun dapat dipenuhi dengan struktur sinyal-sinyal yang tepat. Untuk mengirimkan sinyal Sistem Operasi 47

48 dibutuhkan variabel-variabel spesial yang disebut sebagai semaphore. Untuk mengirim sinyal melalui semaphore s sebuah proses memanggil rutin primitif semsignal(s) dan untuk menerima sinyal melalui semaphore s, sebuah proses memanggil rutin primitif semwait(s). Jika ternyata setelah memanggil semwait(s) sinyal yang ditunggu tidak tersedia maka proses tersebut akan ditahan hingga sinyal yang ditunggu dikirimkan. Semaphore dapat dilihat sebagai sebuah variabel bertipe integer yang kepadanya dapat dilakukan tiga operasi, yaitu: 1. Sebuah semaphore dapat diinisialisasikan sehingga bernilai bilangan non negatif. 2. Operasi semwait akan mengurangi nilai semaphore. Jika nilainya telah negatif maka proses yang memanggil semwait tersebut akan di blok. Sebaliknya jika nilainya masih positif proses dapat dilanjutkan. 3. Operasi semsignal menaikkan nilai semaphore. Jika nilanya kurang atau sama dengan nol maka proses yang diblok oleh operasi semwait akan dilepaskan dari status diblok. Selain ketiga operasi di atas tidak boleh ada lagi cara untuk memeriksa dan mengubah nilai semaphore. Bentuk dari semphore yang lebih ketat adalah binary semaphore atau mutex yang hanya mengizinkan nilai 0 dan 1 bagi semaphore. Operasi-operasinya adlah sebagai berikut: 1. Binary semaphore dapat diinisialisasikan dengan nilai 0 atau Operasi semwaitb memeriksa nilai semaphore. Jika nilainya satu maka nilainya diubah menjadi nol dan proses melanjutkan eksekusi. 3. Operasi semsignalb memeriksa apakah ada proses yang diblok pada semaphore ini. Juka ada maka proses yang telah diblok oleh operasi semwaitb akan dilepaskan dari status diblok dan nilai dari semaphore diubah menjadi satu. Bentuk semaphore yang pertama sering pula disebut sebagai counting semaphore atau general semaphore. Kebijakan yang digunakan untuk mengeluarkan proses dari antrian proses yang diblok pada semaphore dapat bermacam-macam bentuknya. Bentuk yang paling adil adalah First In First Out (FIFO). Proses yang paling lama diblok adalah yang keluar paling awal. Semaphore yang mendefinisikan kebijakan melepas proses dari antrian dikenal sebagai strong semaphore sedangkan yang tidak mendefinisikannya disebut sebagai weak semaphore.

49 Contoh dari mekanisme semaphore dapat dilihat pada gambar 4-1 dengan kondisi awal terdapat proses A, B, C, dan D dengan keterhubungan sedemikan sehingga proses A, B, dan C bergantung pada hasil yang dikeluarkan proses D. Urutan kejadian pada gambar dapat dijelaskan sebagai berikut: Sistem Operasi 49

50 1. Awalnya A sedang berjalan; B, C, dan D dalam kondisi ready. Semaphore bernilai 1 menandakan salah satu hasil yang dikeluarkan proses D telah tersedia. Ketika A memanggil instruksi semwait pada semaphore s nilai s akan dikurangi menjadi 0 dan A dapat melanjutkan ke langkah selanjutnya dan kemudain bergabung pada antrian ready. 2. B kemudian dieksekusi dan memanggil instruksi semwait. Dikarenakan nilai semaphore s menjadi -1 maka proses B akan diblok dan memasuki antrian blocked. 3. Ketika proses D dieksekusi dan mengeluarkan hasil yang baru instruksi semsignal dipanggil oleh proses D yang memungkinkan proses B yang diblok untuk masuk ke kondisi ready di antrian ready. 4. Proses D yang telah selesai langsung bergabung pada antrian ready dan proses C dieksekusi. 5. Proses C yang memanggil instruksi semwait kemudian diblok dan masuk ke antrian blocked dan nilai semaphore menjadi -1 (tidak tampak di gambar). 6. Selanjutnya proses A dan B juga mengalami hal yang sama dengan proses C. Pada tahap ini akhirnya nilai semaphore menjadi Proses D kembali dijalankan, mengeluarkan hasil baru dan memanggil instruksi semsignal sehingga nilai semaphore menjadi -2 dan proses C keluar dari antrian blocked masuk ke antrian ready. Ketika dieksekusi proses C akan mendapatkan hasil yang dikeluarkan oleh proses D. Pada putaran berikutanya proses D akan melepaskan proses A dan B dari antrian blocked dan masing-masing akan mendapatkan hasil dari proses D seperti halnya proses C. Strong semaphore menjamin terbebas dari starvation sedangkan weak semaphore tidak. Pada umumnya sistem operasi menyediakan fasilitas untuk strong semaphore.

51 Prosesor A s=1 C D B Blocked queue Semaphore Ready queue Prosesor B s=0 A C D Blocked queue Semaphore Ready queue Prosesor D B s=-1 A C Blocked queue Semaphore Ready queue Prosesor D s=0 B A C Blocked queue Semaphore Ready queue Prosesor C s=0 D B A Blocked queue Semaphore Ready queue Prosesor D B A C s=-3 Blocked queue Semaphore Ready queue Prosesor D B A s=-2 C Blocked queue Semaphore Ready queue Gambar 4-1 Contoh dari mekanisme semaphore Sistem Operasi 51

52 Monitor diajukan sebagai solusi dari masalah yang dimiliki semaphore. Monitor sendiri adalah sebuah modul program yang memiliki satu atau beberapa prosedur, urutan inisialisasi, dan data lokal. Monitor memiliki karakteristik sebagai berikut: 1. Data lokal hanya bisa diakses oleh prosedur yang ada di dalam monitor. 2. Sebuah proses memasuki monitor dengan memanggil salah satu prosedur di dalam monitor tersebut. 3. Pada satu saat hanya ada satu proses yang bisa menggunakan prosedur di dalam monitor. Proses lain yang hendak mengakses pada waktu yang bersamaan harus menunggu proses pertama selesai. Untuk melindungi struktur data yang dibagi pakai bersama data tersebut dapat diletakkan di dalam monitor. Untuk dapat digunakan dalam lingkungan yang konkuren monitor harus menyediakan fasilitas sinkronisasi bagi proses-proses yang menggunakannya. Sebagai contoh jika ada sebuah proses yang memanggil prosedur dalam monitor dan ketika berada di dalamnya harus diblok untuk menunggu suatu kejadian atau kondisi tertentu terpenuhi maka diperlukan sebuah fasilitas yang memungkinkan proses tersebut tidak hanya diblok tetapi juga melepas akses terhadap monitor sehinga proses lain dapat menggunakan monitor tersebut. Setelah kondisi terpenuhi dan monitor kembali tersedia proses tadi dapat kembali berjalan pada posisi sebelum ia diblok. Monitor sendiri memiliki beberapa alternative implementasi seperti: 1. Monitor dengan signal 2. Monitor dengan notify dan broadcast Message Passing Message passing adalah sebuah teknik untuk melakukan sinkronisasi dan komunikasi antara proses-proses yang salin berinteraksi. Message passing dapat diimplementasikan dengan beberapa cara namun yang dibahas kali ini adalah dengan menggunakan sepasang prosedur primitive yaitu: 1. Send (tujuan, pesan) 2. Receive(sumber, pesan) Sebuah proses mengirim informasi kepada proses lain melalui pemanggilan prosedur send sedangkan proses menerima informasi melalui pemanggilan prosedur receive.

53 Ada beberapa persoalan yang berkenaan dengan disain teknik message passing ini, antara lain: 1. Sinkronisasi: proses tidak dapat menerima pesan sebelum pesan tersebut dikirimkan oleh proses lain. 2. Pengalamatan: menentukan cara mengalamati sebuah proses, yaitu melalui direct addressing dan indirect addressing. 3. Format pesan: menentukan bagaimana pesan dibentuk dan informasi apa saja yang terdapat di dalam pesan termasuk pesan-pesan pada sistem tersebar 4. Aturan antrian: menentukan bagaimana antrian pesan yang datang maupun dikirim diproses oleh proses tujuan atau sumber Sinkronisasi Ketika suatu proses mengirimkan pesan dengan memanggil prosedur send ada dua kemungkinan yang dapat terjadi: 1. Proses pengirim diblok hingga pesan diterima, atau 2. Proses boleh melanjutkan eksekusi Hal yang sama juga terjadi pada proses menerima pesandengan memanggil prosedur receive. Proses dapat diblok menunggu adanya pesan yang datang atau proses melanjutkan eksekusinya sekalipun pesan belum datang. Berdasarkan empat kondisi yang telah disebutkan dapat dibuat tiga kombinasi kondisi yang umum digunakan pada sebuah sistem yaitu: 1. Blocking send, blocking receive 2. Nonblocking send, blocking receive 3. Nonblocking send, nonblocking receive Proses dengan nonblocking send memiliki kelebihan proses dapat terus berlanjut tanpa menunggu adanya konfirmasi bahwa pesan telah diterima namun di sisi lain jika proses mengalami kesalahan dan terus menerus mengirimkan pesan maka sumber daya komputer dapat terkuras oleh proses tersebut. Selain itu pemrogram aplikasi juga harus membuat sendiri mekanisme untuk menentukan apakah pesan sudah diterima atau belum. Pada prosedur primitive receive versi blocking proses yang meminta pesan akan menunggu hingga pesan yang dimaksud diterima. Saat pesan tidak juga diterima proses dapat menunggu terus tanpa kepastian. Non blocking receive menyelesaikan masalah ini namun sisi buruknya adalah pesan dapat hilang ketika prosedur receive dipanggil sebelum pesan sampai. Sistem Operasi 53

54 4.3.4 Pengalamatan (Addressing) Pada direct addressing prosedur send memerlukan penanda/identitas dari proses yang menjadi tujuan pesan sedangkan prosedur receive akan menangani dua kemungkinan: 1. Prosedur receive memerlukan identitas proses yang akan mengirimkan pesan. Konsekuensinya proses yang memanggil receive perlu mengetahui identitas dari proses yang akan mengirimkan pesan. Cara ini efektif untuk mengendalikan dua proses konkuren yang saling bekerja sama. 2. Proses yang menerima pesan tidak dapat menentukan proses mana yang menjadi sumber pesan. Contohnya pada proses yang menangani printer. Proses tersebut menerima pesan dari proses-proses lain yang memerlukan layanan printer. Pada kasus seperti ini lebih tepat jika menggunakan indirect addressing. Pada metode indirect addressing pesan tidak langsung dikirimkan kepada proses tujuan melainkan disimpan terlebih dahulu pada penyimpanan sementara (mailbox). Cara ini dipandang lebih baik karena ketergantungan antar proses menjadi lebih rendah dan komunikasi dapat menjadi lebih fleksibel. Terdapat empat jenis komunikasi dengan metode indirect ini bergantung kepada banyaknya proses pengirim dan penerima, yaitu: 1. Satu pengiri ke satu penerima 2. Banyak pengirim ke satu penerima 3. Satu pengirim ke banyak penerima 4. Banyak pengirim ke banyak penerima Yang menjadi persoalan adalah kepemilikan mailbox tempat menyimpan pesan. Mailbox bisa dimiliki oleh proses penerima pesan dan ketika proses mati begitu juga mailbox akan dihapus. Cara lain adlah sistem operasi menyediakan layanan mailbox dan mailbox dapat dipesan oleh proses tertentu. Pada cara ke-dua mailbox dapat dipandang dimiliki oleh proses yang memintanya dan akan dihilangkan ketika proses tersebut selesai atau tetap dimiliki oleh sistem operasi penghapusan nantinya dilakukan oleh sistem operasi Format Pesan Format pesan amat bergantung pada fasilitas pertukaran pesan dan jumlah komputer yang terlibat dalam pertukaran pesan. Pesan dapat memiliki panjang

55 tetap untuk memperkecil overhead (pemrosesan tambahan seperti: menelusuri pesan untuk mencari ujung dari sebuah pesan) atau jika berukuran besar dapat disimpan dalam sebuah file. Pendekatan yang lebih fleksibel adalah menggunakan pesan yang panjangnya tidak tetap. Pesan dapat dibagi menjadi bagian kepala (header) yang berisi informasi tentang pesan dan badan (body) tempat menampung isi pesan sebenarnya Aturan Antrian Aturan antrian yang paling sederhana adalah FIFO (first in first out) tetapi mungkin tidak cukup jika terdapat beberapa pesan yang penting dan perlu untuk segera disampaikan dibandingkan pesan-pesan lainnya. Alternatifnya ialah dengan menyediakan fasilitas prioritas pada pesan atau membolehkan penerima pesan memeriksa antrian untuk mengambil pesan. Rangkuman Hal mendasar yang perlu diperhatikan ketika menangani banyak proses yang berjalan bersama-sama (konkurensi) adalah masalah-masalah Sistem Operasi 55

56 seperti: bagaimana komunikasi antar proses-proses tersebut, membagi pakai dan terjadinya kompetisi untuk sumber daya komputer, sinkronisasi aktivitas proses-proses, dan alokasi prosesor. Pada komputer yang menjalankan multiprogramming proses-proses dijalankan bergantian dengan cepat oleh prosesor sehinga tampak seolah-olah berjalan bergantian. Fitur-fitur utama dari sistem operasi modern yang paling menonjol adalah kemampuan sistem operasi untuk melakukan Multiprogramming, multiprosesing dan distributed prosesing. Soal Latihan 1. Apa yang harus diperhatikan dalam hal konkurensi 2. Apa yang dimaksud dengan konkurensi dan sebutkan contoh dari konkurensi 3. Apa yang dimaksud dengan semaphore, sinkronisasi, message passing dalam hal konkurensi 4. Jelaskan persyaratan untuk mutual exclusion 5. Sebutkan menurut yang anda ketahui tentang algoritma antrian. 5 Penjadwalan

57 Overview Sebelum memulai mempelajari sistem operasi penting bagi kita untuk mengetahui komponen-komponen yang menjadi bagian dari sebuah sistem komputer disertai cara kerjanya. Hal ini disebabkan nantinya sistem operasi bekerja untuk mengatur komponen-komponen tersebut dan menyembunyikan kerumitannya bagi pengembang aplikasi dan para pengguna akhir sistem operasi. Tujuan 1. Mahasiswa mengetahui komponen-komponen yang membangun sebuah sistem komputer 2. Mahasiswa mengetahui bagaimana komponen-komponen itu bekerja dan saling bekerja sama untuk memenuhi kebutuhan aplikasi dan pengguna akhir. 5.1 Pendahuluan Dalam sistem multiprogramming beberapa program menempati memori utama sekaligus. Apakah semuanya akan dijalankan dalam waktu yang bersamaan? Tidak, program akan dijalankan bergantian. Yang mana yang dijalankan terlebih dahulu? Masalah ini yang ditangani penjadwalan. Tujuan dari penjadwalan Prosesor adalah untuk memberikan prosesor pada setiap process sepanjang waktu sedemikian hingga memenuhi tujuan sistem : rata-rata response time yang cepat, lebih banyak program dapat diselesaikan (throughput), dan efisiensi Prosesor. Sistem Operasi 57

58 5.2 Tipe penjadwalan Prosesor Aktivitas penjadwalan dapat dirinci sebagai berikut: 1. Apakah masih akan menerima program baru client untuk masuk ke pool process? Ini disebut long-term scheduling. 2. Apakah program di pool process akan dimasukkan ke memori? Ini disebut medium-term scheduling. 3. Dari program-program yang ada di memori utama, yang mana yang akan dijalankan oleh Prosesor? Ini disebut short-term scheduling. Dari process-process yang menunda permintaan IO yang mana yang akan ditangani oleh piranti IO yang tersedia? Ini disebut I/O scheduling. Long term New Long term Ready/ suspend Medium term Medium term Ready Medium term Running Exit Blocked/ suspend Blocked Gambar 5-1 Penjadwalan dan Perpindahan Status Process 5.3 Kriteria Penjadwalan Ada beberapa cara untuk menjadwalkan process. Ada kriteria pemilihannya, apakah dari sudut pandang pengguna atau dari sudut pandang sistem. Dari sudut pandang pengguna, algoritma dapat dipilih berdasarkan parameter berikut : a. Turnaround time : waktu sejak process dikirim hingga selesai. Carilah algoritma yang memberikan rata-rata turnaround time terpendek. b. Response time : waktu sejak process dikirim hingga mendapat respon pertama kali. Carilah algoritma yang memberikan rata-rata response time terpendek. c. Deadline, waktu terakhir process harus selesai dikerjakan. Pilih algoritma yang memaksimalkan jumlah process yang dapat diselesaikan sebelum atau dalam waktu deadline-nya.

59 d. Predictability : apakah perilaku (hasil) algoritma dapat diprediksi. Pilihlah algoritma yang memberikan kepastian dijalankannya program pengguna. Dari sudut pandang sistem, diinginkan efektivitas dan efisiensi penggunaan Prosesor. Algoritma dapat dipilih berdasarkan parameter berikut : a. Throughput : jumlah process yang dapat diselesaikan dalam satuan waktu. Carilah algoritma yang memberikan jumlah process selesai terbanyak. b. Prosesor utilization : berapa persen Prosesor sibuk. Carilah algoritma yang membuat Prosesor sangat sibuk. c. Fairness, apakah sistem memberlakukan setiap process dengan perhatian yang sama. Pilih algoritma yang paling adil. d. Enforcing priorities : jika sistem memberlakukan prioritas, apakah algoritma mendukungnya. Balancing resources : apakah algoritma memberikan resource pada processprocess yang membutuhkan secara seimbang. 5.4 Algoritma Penjadwalan Bagaimana memilih program di memori utama yang akan dijalankan oleh Prosesor? Ada beberapa algoritma : 1. First Come First Served (FCFS), program yang pertama kali datang pertama kali dilayani hingga selesai. 2. Round Robin, mirip FCFS, dilayani dalam waktu yang terbatas (dikenal dengan istilah time quantum, kuantum waktu atau time slice, potongan waktu), jika belum selesai diantrikan lagi. 3. Shortest Process Next (SPN), disebut juga Shortest Job First (SJF), process dengan prediksi waktu eksekusi terpendek akan dipilih, dilayani hingga selesai. 4. Shortest Remaining Time (SRT), mirip SPN, dilayani dalam waktu yang terbatas, jika belum selesai diantrikan lagi. 5. Highest Response Ratio Next (HRRN), process dengan rasio respon tertinggi akan dipilih. Rasio respon adalah : (waktu tunggu + prediksi waktu servis) / (prediksi waktu servis) 6. Feedback, dikenal juga sebagai Multilevel feedback, process di antrian level 1 dikerjakan mirip Round Robin. Jika belum selesai diantrikan di level 2. Jika belum selesai diantrikan lagi di level berikutnya. Demikian seterusnya hingga level terendah. Kuantum waktu di setiap level dapat dibuat sama, atau makin lama makin besar. Perhatikan contoh kasus di Tabel 5.1 Tabel 5-1 Contoh Penjadwalan Proses Sistem Operasi 59

60 Process Waktu kedatangan Waktu layan A 0 3 B 2 6 C 4 4 D 6 5 E 8 2 Urutan eksekusi process-process ini pada masing-masing algoritma di atas ditunjukkan dalam Gambar FCFS A B C D E Round Robin (q=1) A B C D E Round Robin (q=4) A B C D E Shortest Process A Next (SPN) B C D E Shortest Remaining A Time (SRT) B q=1 C D E Highest Response A Ratio Next B (HRRN) C

61 D E Gambar 5-2 Perbandingan Algoritma Penjadwalan Feedback A q=1 B C D E Feedback A q=2 i B C D E Gambar 5-3 Perbandingan Algoritma Penjadwalan (lanjutan) Dari kasus yang ditunjukkan pada Tabel 5-1, dan urutan eksekusi process yang ditunjukkan pada Gambar 5-2 dapat dihitung waktu selesai, dan turnaround time-nya, TAT, seperti ditunjukkan pada Tabel 5-3 Sistem Operasi 61

62 Tabel 5-2 Perbandingan Turnaround time beragam algoritma Algoritma FCFS RR, q=1 RR, q=4 SPN SRT HRRN FB, q=1 FB, q=2^i Process Waktudatang Waktulayan (Ts) Selesai TAT TAT/Ts Selesai TAT TAT/Ts Selesai TAT TAT/Ts Selesai TAT TAT/Ts Selesai TAT TAT/Ts Selesai TAT TAT/Ts Selesai TAT TAT/Ts Selesai TAT TAT/Ts A B C D E Rata Pada algoritma di atas ada situasi dimana process yang sedang dikerjakan dapat atau tidak dapat dihentikan di tengah jalan. Hal tersebut disebut mode keputusan: - nonpreemptive : process yang sedang dijalankan tidak dapat dihentikan di tengah jalan. - preemptive : process yang sedang dijalankan dapat dihentikan di tengah jalan. Dibutuhkan usaha yang lebih agar sistem dapat mendukung aktivitas preemptive. Karakteristik enam algoritma penjadwalan secara keseluruhan ditunjukkan dalam Tabel 5-3

63 5.5 Penjadwalan Fair-Share Algoritma-algoritma yang dibahas di atas berlaku pada process-process yang mandiri, process dari pengguna yang satu tidak terkait dengan process pengguna lain. Dalam sistem multiuser para pengguna dapat membentuk group, kelompok. Program-program dari suatu kelompok biasanya saling terkait. Dalam pemrograman berorientasi objek dimungkinkan satu program terdiri dari beberapa thread. Dari sudut pandang pengguna ada kebutuhan sekumpulan process yang lebih besar lebih diperhatikan oleh sistem. Pengguna membutuhkan penjadwalan yang fair-share, berbagi yang lebih adil, yang besar mendapat kuantum waktu yang lebih besar dan yang kecil mendapatkan kuantum waktu yang kecil. Tabel 5-3 Karakteristik beragam algoritma penjadwalan Algoritma FCFS RR SPN SRT HRRN Feedback Fungsi seleksi Mode keputusan Throughput Response Time Tidak dapat dinyatakan Mungkin tinggi jika waktu eksekusi bervariasi max[w] constant min[s] min[s-e] max((w+s)/s) Lihat text Nonpreemptivemptive Nonpre- Nonpreemptive Preemptive (pada kuantum waktu) Kecil jika quantum waktu kecil Bagus untuk processprocess pendek Preemptive (saat kedatangan) Preemptive (pada kuantum waktu) Tinggi Tinggi Tinggi Tidak dapat dinyatakan Bagus untuk processprocess pendek Overhead Kecil Kecil Dapat tinggi Efek pada Process Adil Process process pendek panjang atau yang bisa menunggu lama Penundaan tanpa batas Bagus Bagus Tidak dapat dinyatakan Dapat tinggi Dapat tinggi Dapat tinggi Process Seimbang panjang bisa lama I/O bisa lama; Tidak Tidak Bisa Bisa Tidak Bisa w = waiting time, waktu tunggu e = executing time, waktu eksekusi, selama ini s = total service time, waktu layan total Bisa utamakan process terkait I/O Sistem Operasi 63

64 5.6 Penjadwalan Multiprosesor Ada banyak Prosesor dalam sistem multiprosesor. Seberapa sering sinkronisasi process-process dalam Prosesor-Prosesor itu dilakukan disebut synchronization granularity. Ada lima kategori paralelisme yang berbeda derajat granularity-nya. Tabel 5-4 Synchronization Granularity dan Process Ukuran Grain Deskripsi Interval Sinkronisasi (Instruksi) < 20 Fine Paralelisme ada di dalam stream instruksi tunggal Medium Pemrosesan paralel atau multitasking dalam suatu aplikasi tunggal Coarse Multiprocessing dari proses-proses konkuren dalam lingkungan multiprogramming Very coarse Pemrosesan tersebar sepanjang node-node M jaringan untuk membentuk lingkungan komputasi tunggal. Independent Banyak proses tak terkait (N/A) Dalam komputer dual-core, Prosesornya dua. Dalam sistem multiprosesor, Prosesornya banyak. Bagaimana menjalankan program-program pengguna dalam komputer multiprosesor? Bagaimana jika programnya sendiri terdiri dari beberapa thread? Ada empat pendekatan dapat dipilih : 1. load sharing : berbagi beban, semua program diantrikan dalam antrian, Prosesor yang menganggur akan mengambil antrian terdepan dan menjalankannya. 2. gang scheduling : sekumpulan thread yang saling terkait diantrikan pada sekumpulan Prosesor pada saat yang sama, satu thread satu Prosesor. 3. dedicated Prosesor assignment : pada sebuah program diberikan sejumlah Prosesor sebanyak thread yang ada dalam program itu. 4. dynamic scheduling : jumlah thread yang diaktifkan dari suatu program dapat diubah-ubah.

65 Dalam pendekatan load sharing, ada pilihan berikut : 1. first come first served (FCFS) : thread-thread dari job yang datang diantrikan dalam antrian bersama. Prosesor menganggur akan memanggil thread terdepan. 2. smallest number of threads first : Ada antrian sesuai prioritas. Prioritas tertinggi diberikan pada program dengan jumlah thread terkecil. preemptive smallest number of threads first : mirip sebelumnya, jika sebelumnya dikerjakan sampai selesai, disini dapat dihentikan dulu untuk melayani program baru dengan jumlah thread lebih sedikit. 5.7 Penjadwalan Real-Time Komputasi real time adalah tipe komputasi yang kebenarannya tidak hanya ditentukan oleh hasil lojik komputasi tetapi juga waktu hasil itu diperoleh. Disebut hard real time, jika tugas harus selesai dalam deadline. Disebut soft real time, jika tidak ada keharusan selesai dalam deadline. Bagaimana menjadwal program-program dalam sistem seperti ini? Ada beberapa pilihan : static table-driven approaches : disini dijalankan analisis statis dari tugas-tugas mana yang antri, deadline mana yang terdekat, itu yang dijadwal duluan. Program baru, jika datang pada saat jadwal dijalankan, akan diperhatikan untuk jadwal berikutnya. static priority-driven preemptive approaches : tugas-tugas diprioritaskan berdasarkan batasan waktu mereka. Pada saat dijalankan, jika ada tugas dengan prioritas lebih tinggi, tugas yang sedang dijalankan dapat dihentikan. dynamic planning-based approaches : tugas-tugas sudah direncanakan untuk dijalankan, hanya jika ada tugas baru datang dan memungkinkan untuk dijalankan, maka akan diterima untuk dijalankan. dynamic best effort approaches : jalankan semua tugas yang datang, jika deadline tidak terpenuhi, batalkan. Tugas yang akan dijadwalkan musti dilengkapi dengan data : kapan siap dijalankan (ready time), kapan harus mulai dikerjakan (starting deadline), kapan harus selesai (completion deadline), berapa lama waktu eksekusi (processing time), apa saja yang dibutuhkan (resource requirement), tingkat prioritas Sistem Operasi 65

66 (priority), apakah ia terdiri dari sub-sub tugas (subtask structure). Perhatikan kasus pada table di bawah Tabel 5-5 Dua tugas periodik pada sistem real-time Tugas Waktu Datang Waktu Eksekusi Deadline A(1) A(2) A(3) A(4) A(5) B(1) B(2) Dengan memperhatikan kapan harus selesai, tugas-tugas ini akan dijadwalkan seperti pada Gambar A1 A2 A3 A4 A5 Earliest deadline A scheduling B B1 B1 B2 B2 A1 A2 A3 A4 A5 Fixed-priority A scheduling: B diprioritaskan A B1 B1 B2 B2 B2 B1 gagal A1 gagal A4 gagal A2 A3 A5 Fixed-priority A scheduling: B diprioritaskan B B1 B2 Gambar 5-4 Penjadwalan tugas real time Kasus lain yang mungkin terjadi adalah tugas-tugas datang dalam jangka waktu yang tidak tentu, aperiodic. Penjadwalan dapat dilakukan berdasarkan kapan tugas itu harus mulai dikerjakan, atau kapan tugas itu harus selesai.

67 Soal Latihan 1. Tidak hanya menjadwal eksekusi program di memori utama yang ditangani dalam penjadwalan Prosesor. Sebutkan yang lain. 2. Apa beda turnaround time dengan response time? 3. Apa beda penjadwalan preemptive dengan nonpreemptive? 4. Program dijalankan dari yang pertama datang, tidak dikerjakan sampai selesai, tetapi hanya sebatas kuantum waktu. Apa nama penjadwalan ini? 5. Program dijalankan dari yang memiliki prediksi waktu eksekusi terpendek, tidak dikerjakan sampai selesai, tetapi hanya sebatas kuantum waktu. Apa nama penjadwalan ini? 6. Pemrosesan paralel atau multitasking dalam suatu aplikasi tunggal, pada ukuran grain termasuk dalam level. 7. Yang mirip dengan penjadwalan Shortest Process Next pada versi load sharing adalah. 8. Apa beda tugas periodic dan aperiodic dalam sistem real time? 9. Perhatikan kumpulan process berikut. Process Waktu kedatangan Waktu layan A 0 3 B 1 5 C 3 2 D 9 5 E 12 5 Lakukan analisa seperti pada Gambar 5.2 dan Tabel 5.3. Sistem Operasi 67

68 10. Tunjukkan penjadwalan tugas real time berikut, lakukan seperti Gambar 5.3. Process Waktu kedatangan Waktu eksekusi Ending Deadline A(1) A(2) B(1) B(2) C(1) C(2)

69 6 Manajemen Memori Overview Memori komputer adalah salah satu sumber daya komputer yang paling berharga yang perlu dikelola dengan baik oleh sistem operasi dikarenakan jumlahnya yang terbatas. Kerumitan pengelolaan pada sistem operasi modern bertambah seiring dengan adanya fitur multiprogramming dan multitasking di mana lokasi memori tidak hanya diakses oleh satu proses tetapi juga dibagi pakai dengan proses-proses lainnya yang berjalan secara konkuren. Tujuan 1. Mahasiswa mengetahui bagaimana sistem operasi memanajemen memori utama. 2. Mahasiswa mengetahui teknik pembagian memori utama oleh sistem operasi. 3. Mahasiswa mengerti konsep memori maya (virtual memory). Sistem Operasi 69

70 6.1 Pendahuluan Dalam sistem uniprogramming, memori utama dibagi ke dalam dua bagian: bagian pertama untuk sistem operasi, bagian kedua untuk program yang sedang dijalankan. Dalam sistem multiprogramming, bagian kedua akan dibagibagi lagi untuk menampung banyak process. Tugas membagi ini dilakukan secara dinamis oleh sistem operasi dan dikenal sebagai manajemen memori. 6.2 Kebutuhan Manajemen Memori Memori utama perlu dikelola untuk memenuhi lima kebutuhan berikut: - relocation - protection - sharing - logical organization - physical organization Saat program pengguna dating, ia tidak akan langsung dijalankan, ia diantrikan di disk. Ketika tiba gilirannya dijalankan, ia akan dibawa ke memori utama. Ketika ia menunggu aktivitas I/O, ia akan di-block, dibawa kembali ke disk. Ketika aktivitas I/O selesai dan ia siap dijalankan lagi, maka tidak harus ia ditempatkan di memori utama di tempat semula. Ada kebutuhan untuk menempatkan di tempat lain. Hal ini disebut relocation. Setiap process yang berada di memori utama harus aman dari interferensi process lain, sengaja atau tidak sengaja. Hal ini disebut protection. Juga, program pengguna tidak boleh mengakses bagian memori untuk sistem operasi. Dan sebaiknya proteksi ini dilakukan oleh hardware, bukan software sistem operasi. Meskipun ada tuntutan proteksi, namun tidak menutup kemungkinan bagi process-process untuk berbagi memori utama, lokasi yang sama diakses oleh semua. Hal ini disebut sharing. Meski penyimpanan di memori utama, juga di memori sekunder, dilakukan secara linier, urutan byte atau word, namun ada kebutuhan bagi program untuk (dibuat dan) disimpan dalam bentuk modul-modul. Fisik boleh linier, tetapi lojik modular. Hal ini yang disebut logical organization. Tugas mengantrikan program pengguna di memori sekunder, atau mengambilnya ke memori utama adalah tugas sistem operasi. Disimpan di lokasi disk yang mana, modul mana yang diaktifkan dulu yang mana yang berikutnya merupakan kebutuhan phyisical organization.

71 6.3 Pemartisian Memori Prinsip manajemen memori adalah bagaimana menyimpan banyak program dalam memori utama. Hampir semua sistem multiprogramming modern menggunakan teknik virtual memory. Namun sebelum membahasnya, perlu diketahui teknik yang lebih sederhana : fixed partitioning dan dynamic partitioning Fixed Partitioning Pada fixed partitioning, memori utama (selain yang digunakan untuk sistem operasi) dibagi dalam ukuran yang sudah disediakan, mungkin sama, mungkin berbeda. Untuk memori utama berukuran 64 M, ukuran partisi mungkin sama: 8 x 8M, 1 bagian untuk sistem operasi, 7 bagian yang lain untuk program pengguna. Ukuran partisi mungkin bervariasi : 8 M untuk sistem operasi, dan 2 M, 4 M, 6 M, 8 M, 8 M, 12 M dan 16 M untuk program pengguna. Program pengguna harus lebih kecil atau sama dengan ukuran partisi itu. Bagaimana jika ukuran program lebih besar daripada ukuran memori yang disediakan? Program harus dipecah-pecah ke dalam modul berukuran tidak lebih besar dari ukuran partisi. Modul yang dibutuhkan akan dibawa ke partisi terkait dan menghapus (overlay) apapun yang ada di partisi itu. Bagaimana jika ukuran program terlalu kecil? Ya, itulah lemahnya. Borosnya ruang partisi yang tak terpakai akibat ukuran program terlalu kecil ini disebut internal fragmentation. Dan masalah ini diselesaikan dengan membuat ukuran partisi yang bervariasi. Bagaimana menempatkan program dalam partisi fix yang ukurannya bervariasi? Pilihlah ukuran partisi terkecil yang sanggup menampung program. Untuk antrian programnya ada pilihan: dibuatkan antrian sebanyak partisi, atau antrian tunggal untuk semua partisi Dynamic Partitioning Dalam dynamic partitioning, jumlah partisi dan ukurannya bervariasi. Program diberi ruang memori utama sebanyak yang ia butuhkan. Misalkan ukuran memori utama 64 M, dengan 8 M dipakai untuk sistem operasi. Tiga program P1, P2, P3 masing-masing berukuran 20 M, 14 M dan 18 M. Kemudian P2 habis jatah waktunya, dan masuk P4 dengan ukuran 8 M. Kemudian P1 selesai, dan P2 harus dijalankan lagi. Bagaimana perjalanan keadaan memori ditunjukkan pada Gambar 6.1 Awal-awalnya bagus, namun makin lama akan makin banyak lubang kecil dalam memori. Jika kasus lubang pada fix partition disebut internal fragmentation, pada Sistem Operasi 71

72 dynamic partition disebut external fragmentation, fragmentasi terjadi karena pengaruh luar. Bagaimana mengatasi masalah banyaknya lubang ini? Salah satu cara adalah compaction, program-program di bawah lubang digeser ke atas agar berhimpitan dengan program sebelumnya, sedemikian hingga hanya ada satu lubang, di lokasi paling bawah. Apakah tidak butuh waktu untuk menggeser program-program di bawah lubang? Ya, butuh waktu. Cara lain diusulkan agar penempatan program dapat dilakukan dengan cepat : biarkan lubang apa adanya, buatlah daftar lubang, alamat dan ukurannya. Jika ada program baru masuk, ada pilihan : - carilah lubang dengan ukuran terkecil terdekat dengan ukuran program baru, cara ini disebut best fit. - carilah lubang pertama di antrian (pencarian dari awal antrian) yang mampu menampung program baru, cara ini disebut first fit. - carilah lubang pertama di antrian (pencarian dari posisi cursor saat ini) yang mampu menampung program baru, cara ini disebut next fit. Operating System (8 M) Operating Free System : 56 (8 M M) Process P1 (20 M) Process P4 (8 M) Free : 6 M Process P3 (18 M) Free : 4 M Operating System (8 M) Process P1 (20 M) Process P2 (14 M) Operating Process System (8 P3 M) (18 M) Free : 20 M Free 4 M Process P4 (8 M) Free : 6 M Process P3 (18 M) Free : 4 M Operating System (8 M) Process P1 (20 M) Free : 14 M Operating Process System (8 P3 M) (18 M) Process Free (14M) : 4 M Free : 6 M P2 Process P4 (8 M) Free : 6 M Process P3 (18 M) Free : 4 M

73 Gambar 6-1 Pengaruh Partisi Dinamis Contoh kasus, ada daftar lubang memori seperti pada Gambar 6-2. Ada program baru masuk berukuran 23 M. Di mana ditempatkan? Ya, di L5. Jika ada program baru berukuran 16 M masuk, dimana ditempatkan? L1 : 8M L2 : 12M L3 : 22M L4 : 18M L5 : 24M L6 : 6M L7 : 14M L8 : 36M L1 : 8M L2 : 12M L3 : 22M L4 : 18M L5 : 1M L6 : 6M L7 : 14M L8 : 36M Program 16 M dimana? First Fit : L3; Best Fit : L4; Next Fit : L8; setelah Program 23 M masuk Gambar 6-2 Contoh alokasi memori pada partisi dinamis Buddy System Mirip partisi dinamis, ukuran partisi tidak mengikuti ukuran program, pada sistem ini ukuran partisi merupakan bilangan power of 2 terdekat dengan ukuran program. Lihat contoh kasus pada Gambar 6.3. Semula ukuran memori 1Mbyte. Process A meminta 100Kb. Ukuran power of 2 terdekat dengan 100K adalah 128K. Memori 1Mb akan dipecah menjadi 512K + 512K, 512K pertama dipecah menjadi 256K + 256K, 256K pertama dipecah menjadi 128K + 128K. Process A diberi memori berukuran 128K pertama. Process B berukuran 240K diberi memori berukuran 256K. Ketika sebuah process sudah melepaskan memori, akan diperiksa apakah memori yang dibebaskan berdekatan dengan tetangganya untuk digabung, untuk mendapatkan ukuran yang lebih besar lagi. 6.4 Relokasi Di depan disebutkan ada kebutuhan kesanggupan relokasi program di memori utama, program tidak harus menempati lokasi yang sama dengan lokasi ketika ia dikeluarkan dari memori utama. Pada fix partition berukuran sama, pada antrian tunggal partisi berukuran tidak sama, hal itu dimungkinkan terjadi. Pada dynamic partitioning juga dimungkinkan terjadi, lihat Gambar 6.1, Sistem Operasi 73

74 process P2 dapat menempati lokasi yang berbeda untuk kedua kalinya. Pada metoda compaction juga, program dapat direlokasi. 1 Mbyte block 1M A request 100K B request 240K C request 64K D request 256K Release B Release A E request 75K Release C A 128K 256K 512K A 128K B 512K A C 64K B 512K A C 64K B D A C 64K 256K D 128K C 64K 256K D E C 64K 256K D 256K E 128K 256K D Release E Release D 512K D 1M Gambar 6-3 Contoh Buddy System Bagaimana agar relokasi program mudah dilakukan? Setiap lokasi di memori utama memiliki physical address, alamat fisik. Sebuah program biasanya terdiri dari data-data yang ia olah dan kode program untuk menjalankannya. Data-data dan kode program itu diberi logical address, alamat lojik yang masih harus diterjemahkan ke dalam alamat fisik ketika akan di-load ke memori. Data dan kode program mungkin ditandai dengan relative address, alamat relatif masing-masing terhadap alamat awal. Dukungan hardware untuk relokasi ditunjukkan pada Gambar 6.4 Relative address

75 Absolute Base register Bounds register Adder address Comparator Interupsi ke S.O. Process control block Program Data Stack di memori utama Sebuah program di memori utama 6.5 Paging Gambar 6-4 Dukungan hardware untuk relokasi Untuk mengatasi fragmentasi internal atau fragmentasi eksternal ada usaha memori utama dipartisi ke dalam sejumlah besar potongan berukuran kecil yang sama, program juga dipotong-potong dalam ukuran yang sama, disebut pages. Page-page ini kemudian di-load ke potongan memori utama tadi, yang disebut frame. Disini, fragmentasi hanya akan terjadi pada frame terakhir. Terapan konsep ini ditunjukkan pada Gambar 6.5. Program A terdiri dari 4 page masuk, program B 3 page masuk, program C 4 page masuk. Program B kemudian keluar, meninggalkan 3 page bebas. Ada sisa 4 page di bawah. Jika program D 5 page akan masuk, apakah akan ditahan dulu? Tidak. Sistem mendaftar frame-frame yang bebas. Sistem juga mengelola page table, tabel frame-frame yang dipakai page program, lihat contoh di Gambar 6.6 Jika jumlah frame bebas cukup untuk menampung page program baru, maka akan diberikan. Program D disimpan di frame 4,5,6,11 dan 12. Agar paging berjalan nyaman, ukuran page dan frame sebaiknya menggunakan bilangan power of 2. Dengan menggunakan bilangan ini relative address dan logical address akan sama. Sebuah lokasi di memori fisik akan ditunjukkan Sistem Operasi 75

76 dengan dua nomor : nomor frame dan nomor offset. Misal alamat relatif 1502 menggunakan 16 bit : , ukuran page 1K = 1024 byte. Untuk page 1024 butuh 10 bit untuk alamat offset, ada sisa 6 bit (dari 16 bit) untuk nomor page. (Suatu program diharapkan punya page tidak lebih dari 2 6 = 64 page). Jadi, alamat relatif , nomor page-nya (decimal 1), nomor offsetnya (decimal 478). Kemudian misalnya page ini akan ditempatkan di memori fisik di alamat frame 6 (000110), maka konversi cukup dilakukan pada nomor page ke nomor frame, nomor offset keduanya sama. Menggunakan ukuran page sebagai bilangan power of 2 punya dua keuntungan. Pertama, skema alamat lojik jelas bagi programmer, assembler dan linker. Alamat lojik setara identik dengan alamat relatif. Kedua, relatif masalah mudah untuk mengimplementasikan fungsi penterjemahan alamat dinamis ke dalam hardware. No Frame Memori Memori Memori 0 A.0 A.0 1 A.1 A.1 2 A.2 A.2 3 A.3 A.3 4 B.0 5 B.1 6 B A masuk B masuk

77 No Frame Memori Memori Memori 0 A.0 A.0 A.0 1 A.1 A.1 A.1 2 A.2 A.2 A.2 3 A.3 A.3 A.3 4 B.0 D.0 5 B.1 D.1 6 B.2 D.2 7 C.0 C.0 C.0 8 C.1 C.1 C.1 9 C.2 C.2 C.2 10 C.3 C.3 C.3 11 D.3 12 D C masuk B keluar D masuk Gambar 6-5 Pengisian page process ke frame memori Table Page Proses A Daftar frame bebas Table Page Proses B Table Page Proses C Gambar 6-6 Tabel page setiap process terkait Gambar Segmentasi Table Page Proses D Selain dengan paging, program dapat dipecah ke dalam sejumlah segment, dengan ukuran tidak harus sama. Hanya memang ada panjang segment Sistem Operasi 77

78 maksimum. Sebuah lokasi akan diidentifikasi dengan dua nomor : nomor segment dan nomor offset. Konsep segmentasi ini mirip dengan dynamic partitioning. Bedanya, di segmentasi ini sebuah program boleh menempati lebih dari satu partisi, dan tidak harus berdampingan. Fragmentasi internal tidak ada, namun fragmentasi eksternal mungkin terjadi. Programmer biasanya tahu segment untuk program atau segment untuk data yang disediakan sistem. Program dan data sendiri dapat dipecah ke dalam beberapa segment. Hanya, programmer tidak dapat menggunakan lokasi melebihi batas maksimum ukuran segment. Sistem akan mengelola segment table untuk setiap process dan daftar lokasi bebas di memori utama. Setiap isian tabel ini akan berisi alamat awal dan panjang segment untuk memproteksi lokasi memori dari pengguna lain. Saat akan dieksekusi, alamat di tabel segment ini akan di-load ke register khusus.

79 Soal Latihan 1. Kebutuhan apa saja yang harus dipenuhi pada manajemen memori? 2. Mengapa dua atau lebih program diijinkan untuk berbagi memori bersama? 3. Apa keuntungan partisi yang ukurannya tidak sama dalam fix partition? 4. Apa perbedaan fragmentasi internal dan fragmentasi eksternal? 5. Apa perbedaaan alamat logik, alamat relatif dan alamat fisik? 6. Apa perbedaan page dan frame? 7. Apa perbedaan page dan segment? 8. Cara lain algoritma penempatan program dalam partisi dinamis adalah worst-fit, pilih lokasi memori terbesar untuk program baru. Apa kelebihan cara ini dibanding cara best-fit, first-fit dan next-fit. 9. Diketahui daftar lokasi bebas di memori untuk partisi dinamis sebagai berikut : 20M, 60M, 10M, 40M, 30M, 40M. Tiga program baru masing-masing berukuran 40M, 20M, dan 10M akan masuk. Dimana program baru ini akan ditempatkan jika menggunakan algoritma penempatan: a. First-fit b. Best-fit c. Next-fit (pointer ada di awal memori) d. Worst-fit 10. Memori 1Mb dipakai untuk buddy system. Berturut-turut ada permintaan berikut : A 70Kb, B 35Kb, C 80Kb, A bebas, D 60Kb, B bebas, D bebas, C bebas. Sistem Operasi 79

80 7 Manajemen Perangkat I/O Overview Segala hal tentang overview. Tujuan 3. Tujuan 1 4. Tujuan 2

81 7.1 Pendahuluan Menurut Silberschatz et. al. [Silberschatz2002], salah satu tujuan utama dari suatu sistem operasi ialah mengatur semua perangkat M/K (Masukan/Keluaran) atau I/O (Input/Output) komputer. Sistem operasi harus dapat memberikan perintah ke perangkat-perangkat itu, menangkap dan menangani interupsi, dan menangani error yang terjadi. Sistem operasi juga harus menyediakan antarmuka antara sistem operasi itu sendiri dengan keseluruhan sistem itu yang sederhana dan mudah digunakan. Antarmuka itu harus sama untuk semua perangkat (device independent), agar dapat dikembangkan. Secara umum, terdapat beberapa jenis perangkat M/K, seperti perangkat penyimpanan (disk, tape), perangkat transmisi (network card, modem), dan perangkat antarmuka dengan pengguna (screen, keyboard, mouse). Perangkat tersebut dikendalikan oleh instruksi M/K. Alamat-alamat yang dimiliki oleh perangkat akan digunakan oleh direct I/O instruction dan memory-mapped I/O. Beberapa konsep yang umum digunakan ialah port, bus (daisy chain/shared direct access), dan pengendali (host adapter). Port ialah koneksi yang digunakan oleh perangkat untuk berkomunikasi dengan mesin. Bus ialah koneksi yang menghubungkan beberapa perangkat menggunakan kabel-kabel. Pengendali ialah alat-alat elektronik yang berfungsi untuk mengoperasikan port, bus, dan perangkat. Langkah yang ditentukan untuk perangkat ialah command-ready, busy, dan error. Host mengeset command-ready ketika perintah telah siap untuk dieksekusi oleh pengendali. Pengendali mengeset busy ketika sedang mengerjakan sesuatu, dan men-clear busy ketika telah siap untuk menerima perintah selanjutnya. Error diset ketika terjadi kesalahan. Menurut William Stalling, Perangkat eksternal (I/O) yang dapat berhubungan dengan sistem komputer, dapat dikategorikan sebagai berikut: 1. Human Readable, peralatan yang sesuai untuk komunikasi dengan user computer seperti monitor, keyboard, mouse, & printer 2. Machine Readable, peralatan yang sesuai untuk komunikasi dengan peralatan elektronik seperti sensor, dan kontroller 3. Communication, peralatan yang sesuai untuk komunikasi dengan peralatan jarak jauh (remote device) seperti remote control, & modem Sistem Operasi 81

82 Antar perangkat I/O saling mempunyai perbedaan berdasar pada: 1. Data rate, terdapat perbedaan urutan pokok antar perhitungan transfer data masing-masing peralatan 2. Application, penggunaan sebuah peralatan mempengaruhi penggunaan perangkat lunak dan aturan dalam system operasi dan penggunaan utilitas lainnya 3. Kompleksitas pengendali, kompleksitas modul I/O dalam mengontrol peralatan, membuat perbedaan system operasi dalam menanganinya 4. Kuantitas pengiriman data (satuan), Data dapat ditransfer sebaga aliran byte atau karakter atau dalam bentuk blok yang lebih besar. 5. Representasi data, Perbedaan Skema Encoding data membuat perbedaan peralatan yang digunakan Penanganan error, kesalahan, cara melaporkan kesalahan dan segala konsekuensinya membedakan respon dari peralatan satu dengan yang lain. 7.2 Perangkat M/K (I/O Device) Pendapat orang-orang mengenai M/K berbeda-beda. Seorang insinyur mungkin akan memandang perangkat keras M/K sebagai kumpulan chip-chip, kabel-kabel, catu daya, dan komponen fisik lainnya yang membangun perangkat keras ini. Seorang programer akan memandangnya sebagai antarmuka yang disediakan oleh perangkat lunak -- perintah yang diterima perangkat keras, fungsi yang dikerjakannya, dan error yang ditimbulkan. Perangkat M/K dapat dibagi secara umum menjadi dua kategori, yaitu: perangkat blok (block devices), dan perangkat karakter (character devices). Perangkat blok menyimpan informasi dalam sebuah blok yang ukurannya tertentu, dan memiliki alamat masing-masing. Umumnya blok berukuran antara 512 bytes sampai bytes. Keuntungan dari perangkat blok ini ialah mampu membaca atau menulis setiap blok secara independen. Disk merupakan contoh perangkat blok yang paling banyak digunakan. Tipe lain perangkat M/K ialah perangkat karakter. Perangkat karakter mengirim atau menerima sebarisan karakter, tanpa menghiraukan struktur blok. Tipe ini tidak memiliki alamat, dan tidak memiliki kemampuan mencari (seek). Printer dan antarmuka jaringan merupakan contoh perangkat jenis ini. Pembagian ini tidaklah sempurna. Beberapa perangkat tidak memenuhi kriteria tersebut. Contohnya: clock yang tidak memiliki alamat dan juga tidak

83 mengirim dan menerima barisan karakter. Yang ia lakukan hanya menimbulkan interupsi dalam jangka waktu tertentu. 7.3 Organisasi Fungsi I/O Terdapat teknik pada pemrograman I/O yaitu: 1. Programmed I/O, Prosesor mengurusi perintah I/O dalam perilaku proses ang mengerjakan modul I/O, dimana proses-proses itu kemudian beroperasi dengan cara busy-wait sebelum melakukan proses sampai selesai eksekusi. 2. Interrupt-driven I/O, prosesor mengurusi perintah I/O dalam perilaku proses, degan meneruskan eksekusi aliran instruki dan dapat diintrupsi oleh modul I/O sehingga suatu proses untuk sementara dalam keadaan suspend dan kemudian dapat dilanjut kembali sampai selesai. Direct Memory Access (DMA), Terdapat sebuah modul DMA yang mengontrol erubahan data antara main memori dan modul I/O. Prosesor mengirimkan sebuah request pada mekanisme transfer sebuah blok data ke modul DMA dan diinterupsi hanya setelah semua blok data telah ditransfer Pengendali Perangkat Unit M/K mengandung komponen mekanis dan elektronis. Komponen elektronis ini disebut pengendali perangkat (device controllers) atau adapter. Pada komputer personal (PC), komponen ini biasanya berupa kartu sirkuit yang dapat dimasukkan ke dalam slot pada motherboard komputer. Perangkat mekanis berupa perangkat itu sendiri. Kartu pengendali biasanya memiliki sebuah penghubung. Beberapa pengendali dapat menangani dua, empat, atau bahkan delapan perangkat yang sejenis. Sistem operasi hampir selalu berhubungan dengan pengendali, bukan dengan perangkat secara langsung. Sebagian besar komputer yang berukuran kecil menggunakan model bus tunggal seperti pada Gambar Model Bus Tunggal untuk berkomunikasi antara CPU dan pengendali. Sedangkan mainframe yang berukuran besar umumnya menggunakan model yang berbeda, dengan bus yang banyak dan I/O channels. Sistem Operasi 83

84 Gambar 7-1 Sebuah model untuk menghubungkan CPU, memori, pengendali, dan perangkat M/K Polling Busy-waiting/polling ialah ketika host mengalami looping yaitu membaca status register secara terus-menerus sampai status busy di-clear. Pada dasarnya polling dapat dikatakan efisien. Akan tetapi polling menjadi tidak efisien ketika setelah berulang-ulang melakukan looping, hanya menemukan sedikit perangkat yang siap untuk menservis, karena CPU processing yang tersisa belum selesai Interupsi Mekanisme Dasar Interupsi Ketika CPU mendeteksi bahwa sebuah pengendali telah mengirimkan sebuah sinyal ke interrupt request line (membangkitkan sebuah interupsi), CPU kemudian menjawab interupsi tersebut (juga disebut menangkap interupsi) dengan menyimpan beberapa informasi mengenai keadaan terkini CPU-- contohnya nilai instruksi pointer, dan memanggil interrupt handler agar handler tersebut dapat melayani pengendali atau alat yang mengirim interupsi tersebut. Gambar 7-2 Contoh proses polling yang tipikal

85 Fitur Tambahan pada Komputer Modern Pada arsitektur komputer modern, tiga fitur disediakan oleh CPU dan pengendali interupsi (pada perangkat keras) untuk dapat menangani interrupsi dengan lebih bagus. Fitur-fitur ini antara lain ialah kemampuan menghambat sebuah proses penanganan interupsi selama proses berada dalam critical state, efisiensi penanganan interupsi sehingga tidak perlu dilakukan polling untuk mencari perangkat yang mengirimkan interupsi, dan fitur yang ketiga ialah adanya sebuah konsep interupsi multilevel sedemikian rupa sehingga terdapat prioritas dalam penanganan interupsi (diimplementasikan dengan interrupt priority level system). Interrupt Request Line Pada peranti keras CPU terdapat kabel yang disebut interrupt request line, kebanyakan CPU memiliki dua macam interrupt request line, yaitu nonmaskable interrupt dan maskable interrupt. Maskable interrupt dapat dimatikan/dihentikan oleh CPU sebelum pengeksekusian deretan critical instruction (critical instruction sequence) yang tidak boleh diinterupsi. Biasanya, interrupt jenis ini digunakan oleh pengendali perangkat untuk meminta pelayanan CPU. Interrupt Vector dan Interrupt Chaining Sebuah mekanisme interupsi akan menerima alamat interrupt handling routine yang spesifik dari sebuah set, pada kebanyakan arsitektur komputer yang ada sekarang ini, alamat ini biasanya berupa sekumpulan bilangan yang menyatakan offset pada sebuah tabel (biasa disebut vektor interupsi). Tabel ini menyimpan alamat-alamat interrupt handler spesifik di dalam memori. Keuntungan dari pemakaian vektor ialah untuk mengurangi kebutuhan akan sebuah interrupt handler yang harus mencari semua kemungkinan sumber interupsi untuk menemukan pengirim interupsi. Akan tetapi, vektor interupsi memiliki hambatan karena pada kenyataannya, komputer yang ada memiliki perangkat (dan interrupt handler) yang lebih banyak dibandingkan dengan jumlah alamat pada vektor interupsi. Karena itulah, digunakan teknik interrupt chaining setiap elemen dari vektor interupsi menunjuk pada elemen pertama dari sebuah daftar interrupt handler. Dengan teknik ini, overhead yang dihasilkan oleh besarnya ukuran tabel dan inefisiensi dari penggunaan sebuah interrupt handler (fitur pada CPU yang telah disebutkan sebelumnya) dapat dikurangi, sehingga keduanya menjadi kurang lebih seimbang. Penyebab Interupsi Interupsi dapat disebabkan berbagai hal, antara lain exception, page fault, interupsi yang dikirimkan oleh pengendali perangkat, dan system call. Exception ialah suatu kondisi dimana terjadi sesuatu, atau dari sebuah operasi didapat Sistem Operasi 85

86 hasil tertentu yang dianggap khusus sehingga harus mendapat perhatian lebih, contohnya pembagian dengan 0 (nol), pengaksesan alamat memori yang restricted atau bahkan tidak valid, dan lain-lain. System call ialah sebuah fungsi pada aplikasi (perangkat lunak) yang dapat mengeksekusikan instruksi khusus berupa interupsi perangkat lunak atau trap. 7.4 Direct Memory Access (DMA) DMA ialah sebuah prosesor khusus (special purpose processor) yang berguna untuk menghindari pembebanan CPU utama oleh program M/K (PIO). Untuk memulai sebuah transfer DMA, host akan menuliskan sebuah DMA command block yang berisi pointer yang menunjuk ke sumber transfer, pointer yang menunjuk ke tujuan transfer, dan jumlah byte yang ditransfer, ke memori. CPU kemudian menuliskan alamat command block ini ke pengendali DMA, sehingga pengendali DMA dapat kemudian mengoperasikan bus memori secara langsung dengan menempatkan alamat-alamat pada bus tersebut untuk melakukan transfer tanpa bantuan CPU.

87 Tiga langkah dalam transfer DMA: 1. Prosesor menyiapkan DMA transfer dengan menyedia kan data-data dari perangkat, operasi yang akan ditampilkan, alamat memori yang menjadi sumber dan tujuan data, dan banyaknya byte yang ditransfer. 2. Pengendali DMA memulai operasi (menyiapkan bus, menyediakan alamat, menulis dan membaca data), sampai seluruh blok sudah di transfer. 3. Pengendali DMA meng-interupsi prosesor, dimana selanjutnya akan ditentukan tindakan berikutnya. Pada dasarnya, DMA mempunyai dua metode yang berbeda dalam mentransfer data. Metode yang pertama ialah metode yang sangat baku dan sederhana disebut HALT, atau Burst Mode DMA, karena pengendali DMA memegang kontrol dari sistem bus dan mentransfer semua blok data ke atau dari memori pada single burst. Selagi transfer masih dalam prosres, sistem mikroprosessor di-set idle, tidak melakukan instruksi operasi untuk menjaga internal register. Tipe operasi DMA seperti ini ada pada kebanyakan komputer. Metode yang kedua, mengikut-sertakan pengendali DMA untuk memegang kontrol dari sistem bus untuk jangka waktu yang lebih pendek pada periode dimana mikroprosessor sibuk dengan operasi internal dan tidak membutuhkan akses ke sistem bus. Metode DMA ini disebut cycle stealing mode. Cycle stealing DMA lebih kompleks untuk diimplementasikan dibandingkan HALT DMA, karena pengendali DMA harus mempunyai kepintaran untuk merasakan waktu pada saat sistem bus terbuka. Menurut Stalling terdapat 3 kemunginan konfigurasi DMA, yaitu: 1. Bus tunggal, DMA terhubung 2. Bus tunggal, DMA terintegrasi dengan I/O 3. Bus I/O Handshaking Proses handshaking antara pengendali DMA dan pengendali perangkat dilakukan melalui sepasang kabel yang disebut DMA-request dan DMAacknowledge. Pengendali perangkat mengirimkan sinyal melalui DMA-request ketika akan mentransfer data sebanyak satu word. Hal ini kemudian akan mengakibatkan pengendali DMA memasukkan alamat-alamat yang dinginkan Sistem Operasi 87

88 ke kabel alamat memori, dan mengirimkan sinyal melalui kabel DMAacknowledge. Setelah sinyal melalui kabel DMA-acknowledge diterima, CPU Modul DMA CPU I/O Memori a. Bus Tunggal, DMA terhubung CPU Modul DMA Modul DMA Memori I/O I/O I/O b. Bus Tunggal, DMA terintegrasi dengan I/O Bus Sistem CPU Modul DMA Memori Bus I/O I/O I/O I/O c. Bus I/O pengendali perangkat mengirimkan data yang dimaksud dan mematikan sinyal pada DMA-request. Gambar 7-3 kemungkinan konfigurasi DMA Hal ini berlangsung berulang-ulang sehingga disebut handshaking. Pada saat pengendali DMA mengambil alih memori, CPU sementara tidak dapat mengakses memori (dihalangi), walaupun masih dapat mengaksees data pada cache primer dan sekunder. Hal ini disebut cycle stealing, yang walaupun memperlambat komputasi CPU, tidak menurunkan kinerja karena memindahkan pekerjaan data transfer ke pengendali DMA meningkatkan performa sistem secara keseluruhan

89 7.4.2 Cara-cara Implementasi DMA Dalam pelaksanaannya, beberapa komputer menggunakan memori fisik untuk proses DMA sedangkan jenis komputer lain menggunakan alamat virtual dengan melalui tahap "penerjemahan" dari alamat memori virtual menjadi alamat memori fisik, hal ini disebut Direct Virtual-Memory Address atau DVMA. Keuntungan dari DVMA ialah dapat mendukung transfer antara dua memori mapped device tanpa intervensi CPU 7.5 Subsistem Masukan/Keluaran Kernel Aplikasi Antarmuka M/K Bagian ini akan membahas bagaimana teknik dan struktur antarmuka yang memungkinkan M/K (I/O) diperlakukan secara seragam. Salah satu contohnya adalah ketika suatu aplikasi ingin membuka data yang ada dalam suatu disk tanpa mengetahui jenis disk apa yang akan diaksesnya. Untuk mempermudah pengaksesan, sistem operasi melakukan standarisasi pengaksesan pada perangkat M/K. Pendekatan inilah yang dinamakan aplikasi antarmuka M/K. Seperti layaknya permasalahan dari software-engineering yang rumit lainnya, aplikasi antarmuka M/K melibatkan abstraksi, enkapsulasi, dan software layering. Abstraksi dilakukan dengan membagi-bagi detail perangkat-perangkat M/K ke dalam kelas-kelas yang lebih umum. Dengan adanya kelas-kelas yang umum ini, maka akan lebih mudah bagi fungsi-fungsi standar (antarmuka) untuk mengaksesnya. Selanjutnya, keberadaan device driver pada masingmasing peralatan M/K akan berfungsi meng-enkapsulasi perbedaan-perbedaan yang ada dari setiap anggota kelas-kelas yang umum tadi. Tujuan dari adanya lapisan device driver ini adalah untuk menyembunyikan perbedaan-perbedaan yang ada pada pengendali perangkat dari subsistem M/K yang terdapat dalam kernel. Dengan demikian, subsistem M/K dapat bersifat mandiri dari perangkat keras. Hal ini sangat menguntungkan dari segi pengembangan perangkat keras, karena tidak perlu menunggu vendor sistem operasi untuk mengeluarkan support code untuk perangkat-perangkat keras baru yang akan dikeluarkan oleh para vendor perangkat keras tersebut Sayangnya untuk manufaktur perangkat keras, masing-masing sistem operasi memiliki standarnya sendiri untuk device driver antarmukanya. Karakteristik dari perangkat-perangkat tersebut sangat bervariasi, beberapa yang dapat membedakannya adalah dari segi. Sistem Operasi 89

90 Gambar 7-4 Struktur kernel. Gambar ini diadaptasi dari [Silberschatz2002, halaman 467] 1. Character-stream atau block: Sebuah stream karakter memindahkan per satu bytes, sedangkan blok memindahkan sekumpulan bytes dalam 1 unit. 2. Sequential atau Random-access: Sebuah perangkat yang sekuensial memindahkan data dalam susunan yang sudah pasti seperti yang ditentukan oleh perangkat, sedangkan pengguna akses random dapat meminta perangkat untuk mencari ke seluruh lokasi penyimpanan data yang tersedia. 3. Synchronous atau asynchronous: perangkat yang synchronous menampilkan data-data transfer dengan waktu reaksi yang dapat diduga, sedangkan perangkat yang asynchronous menampilkan waktu reaksi yang tidak dapat diduga. 4. Sharable atau dedicated: perangkat yang dapat dibagi dapat digunakan secara bersamaan oleh beberapa prosesor atau thread, sedangkan perangkat yang dedicatedtidak dapat. 5. Speed of operation: Rentangan kecepatan perangkat dari beberapa bytes per detik sampai beberapa gigabytes per detik. 6. Read-write, read only, atau write only: Beberapa perangkat memungkinkan baik input-output dua arah, tapi beberapa lainnya hanya menunjang data satu arah. Pada umumnya sistem operasi juga memiliki sebuah "escape" atau "pintu belakang" yang secara terbuka mengirim perintah yang arbitrary dari sebuah aplikasi ke device driver. Dalam UNIX, ada ioctl() yang memungkinkan aplikasi mengakses seluruh fungsi yang tersedia di device driver tanpa perlu membuat sebuah sistem call yang baru.

91 ioctl() ini mempunyai tiga argumen dan yang pertama adalah sebuah pendeskripsi berkas yang menghubungkan aplikasi ke driver dengan menunjuk perangkat keras yang diatur oleh driver tersebut. Ke-dua adalah sebuah integer yang memilih satu perintah yang terimplementasi di dalam driver. Ketiga, sebuah pointer ke struktur data arbitrary di memori, yang memungkinkan aplikasi dan driver berkomunikasi dengan data dan mengendalikan informasi data. 7.6 Peralatan Blok dan Karakter Peralatan blok diharapkan dapat memenuhi kebutuhan akses pada berbagai macam disk drive dan juga peralatan blok lainnya, memenuhi/mengerti perintah baca, tulis dan juga perintah pencarian data pada peralatan yang memiliki sifat random-access. Keyboard adalah salah satu contoh alat yang dapat mengakses stream-karakter. System call dasar dari antarmuka ini d apat membuat sebuah aplikasi mengerti tentang bagaimana cara untuk mengambil dan menuliskan sebuah karakter. Kemudian pada pengembangan lanjutannya, kita dapat membuat library yang dapat mengakses data/pesan baris demi baris 7.7 Peralatan Jaringan Karena adanya perbedaan dalam kinerja dan pengalamatan dari jaringan M/K, maka biasanya sistem operasi memiliki antarmuka M/K yang berbeda dari baca, tulis dan pencarian pada disk. Salah satu yang banyak digunakan pada sistem operasi adalah socket interface. Socket berfungsi untuk menghubungkan komputer ke jaringan. System call pada socket interface dapat memudahkan suatu aplikasi untuk membuat local socket, dan menghubungkannya ke remote socket. Dengan menghubungkan komputer ke socket, maka komunikasi antar komputer dapat dilakukan. 7.8 Jam dan Timer Adanya jam dan timer pada perangkat keras komputer, setidaknya memiliki tiga fungsi, memberi informasi waktu saat ini, memberi informasi lamanya waktu sebuah proses, sebagai trigger untuk suatu operasi pada suatu waktu. Fungsi-fungsi ini sering digunakan oleh sistem operasi. Sayangnya, system call untuk pemanggilan fungsi ini tidak distandarisasi antar sistem operasi. Sistem Operasi 91

92 Perangkat keras yang mengukur waktu dan melakukan operasi trigger dinamakan programmable interval timer. Dia dapat diatur untuk menunggu waktu tertentu dan kemudian melakukan interupsi. Contoh penerapannya ada pada scheduler, dimana dia akan melakukan interupsi yang akan memberhentikan suatu proses pada akhir dari bagian waktunya. Sistem operasi dapat mendukung lebih dari banyak timer request daripada banyaknya jumlah timer hardware. Dengan kondisi seperti ini, maka kernel atau device driver mengatur daftar dari interupsi dengan urutan yang pertama kali datang akan dilayani terlebih dahulu. 7.9 Blocking dan Nonblocking I/O Ketika suatu aplikasi menggunakan sebuah blocking system call, eksekusi aplikasi itu akan dihentikan sementara lalu dipindahkan ke wait queue. Setelah system call tersebut selesai, aplikasi tersebut dikembalikan ke run queue, sehingga pengeksekusiannya akan dilanjutkan. Physical action dari peralatan M/K biasanya bersifat asynchronous. Akan tetapi, banyak sistem operasi yang bersifat blocking, hal ini terjadi karena blocking application lebih mudah dimengerti dari pada nonblocking application Penjadualan M/K Kernel menyediakan banyak layanan yang berhubungan dengan M/K. Pada bagian ini, kita akan mendeskripsikan beberapa layanan yang disediakan oleh subsistem kernel M/K, dan kita akan membahas bagaimana caranya membuat infrastruktur perangkat keras dan device driver. Layanan-layanan yang akan kita bahas adalah penjadualan M/K, buffering, caching, spooling, reservasi perangkat, error handling. Menjadwal sekumpulan permintaan M/K sama dengan menentukan urutan yang sesuai untuk mengeksekusi permintaan tersebut. Penjadualan dapat meningkatkan performa sistem secara keseluruhan, dapat membagi perangkat secara adil di antara proses-proses, dan dapat mengurangi waktu tunggu ratarata untuk menyelesaikan operasi M/K. Berikut adalah contoh sederhana untuk menggambarkan definisi di atas. Jika sebuah arm disk terletak di dekat permulaan disk, dan ada tiga aplikasi yang memblokir panggilan untuk membaca disk tersebut. Aplikasi pertama meminta sebuah blok dekat akhir disk, aplikasi kedua meminta blok yang dekat dengan awal, dan aplikasi tiga meminta bagian tengah dari disk. Sistem

93 operasi dapat mengurangi jarak yang harus ditempuh oleh arm disk dengan melayani aplikasi tersebut dengan urutan 2, 3, 1. Pengaturan urutan pekerjaan kembali seperti ini merupakan inti dari penjadualan M/K. Pengembang sistem operasi mengimplementasikan penjadualan dengan mengatur antrian permintaan untuk tiap perangkat. Ketika sebuah aplikasi meminta sebuah blocking sistem M/K, permintaan tersebut dimasukkan ke dalam antrian untuk perangkat tersebut. Scheduler M/K mengurutkan kembali antrian untuk meningkatkan efisiensi dari sistem dan waktu respon rata-rata yang harus dialami oleh aplikasi. Sistem operasi juga mencoba untuk bertindak secara adil agar tidak ada aplikasi yang menerima layanan yang lebih sedikit, atau dapat memberikan prioritas layanan untuk permintaan penting yang ditunda. Contohnya, pemintaan dari sub sistem mungkin akan mendapatkan prioritas lebih tinggi daripada permintaan dari aplikasi. Beberapa algoritma penjadualan untuk I/O disk akan dijelaskan pada bagian Penjadualan Disk. Salah satu cara untuk meningkatkan efisiensi M/K sub sistem dari sebuah komputer adalah dengan mengatur operasi M/K tersebut. Cara lain adalah dengan menggunakan tempat penyimpanan pada memori utama atau pada disk, melalui teknik yang disebut buffering, caching, dan spooling Buffering Buffer adalah area memori yang menyimpan data ketika mereka sedang dipindahkan antara dua perangkat atau antara perangkat dan aplikasi. Sistem Operasi 93

94 Tiga alasan melakukan buffering: 1. Mengatasi perbedaan kecepatan antara produsen dengan konsumen dari sebuah stream data. Contoh, sebuah berkas sedang diterima melalui modem dan akan disimpan di hard disk. Kecepatan modem tersebut ribuan kali lebih lambat daripada hard disk, sehingga buffer dibuat di dalam memori utama untuk mengumpulkan jumlah byte yang diterima dari modem. Ketika keseluruhan data di buffer sudah sampai, buffer tersebut dapat ditulis ke disk dengan operasi tunggal. Karena penulisan disk tidak terjadi dengan seketika dan modem masih memerlukan tempat untuk menyimpan data yang berdatangan, maka dua buah buffer digunakan untuk melakukan operasi ini. Setelah modem memenuhi buffer pertama, akan terjadi permintaan untuk menulis di disk. Modem kemudian mulai memenuhi buffer kedua sementara buffer pertama dipakai untuk penulisan ke disk. Seiring modem sudah memenuhi buffer kedua, penulisan ke disk dari buffer pertama seharusnya sudah selesai, jadi modem akan berganti kembali memenuhi buffer pertama sedangkan buffer kedua dipakai untuk menulis. Metode double buffering ini membuat pasangan ganda antara produsen dan konsumen sekaligus mengurangi kebutuhan waktu diantara mereka. 2. Untuk menyesuaikan perangkat-perangkat yang mempunyai perbedaan dalam ukuran transfer data. Hal ini sangat umum terjadi pada jaringan komputer, dimana buffer dipakai secara luas untuk fragmentasi dan pengaturan kembali pesanpesan yang diterima. Pada bagian pengirim, sebuah pesan yang besar akan dipecah ke dalam paket-paket kecil. Paket-paket tersebut dikirim melalui jaringan, dan penerima akan meletakkan mereka di dalam buffer untuk disusun kembali. 3. Untuk mendukung copy semantics untuk aplikasi M/K. Sebuah contoh akan menjelaskan apa arti dari copy semantics. Jika ada sebuah aplikasi yang buffer data yang ingin dituliskan ke disk, aplikasi tersebut akan memanggil sistem penulisan, menyediakan pointer ke buffer, dan sebuah integer untuk menunjukkan ukuran bytes yang ingin ditulis.

95 Setelah pemanggilan tersebut, apakah yang akan terjadi jika aplikasi tersebut merubah isi dari buffer? Dengan copy semantics, versi data yang ingin ditulis sama dengan versi data waktu aplikasi ini memanggil sistem untuk menulis, tidak tergantung dengan perubahan yang terjadi pada buffer. Sebuah cara sederhana untuk sistem operasi untuk menjamin copy semantics adalah membiarkan sistem penulisan untuk menyalin data aplikasi ke dalam buffer kernel sebelum mengembalikan kontrol kepada aplikasi. Jadi penulisan ke disk dilakukan pada buffer kernel, sehingga perubahan yang terjadi pada buffer aplikasi tidak akan membawa dampak apa-apa. Menyalin data antara buffer kernel data aplikasi merupakan sesuatu yang umum pada sistem operasi, kecuali overhead yang terjadi karena operasi clean semantics. Kita dapat memperoleh efek yang sama yang lebih efisien dengan memanfaatkan pemetaan virtual-memori dan proteksi copy-onwire dengan lebih pintar Caching Sebuah cache adalah daerah memori yang cepat yang berisikan data salinan. Akses ke sebuah salinan yang di-cached lebih efisien daripada akses ke data asli. Sebagai contoh, instruksi-instruksi dari proses yang sedang dijalankan disimpan ke dalam disk, dan ter-cached di dalam memori fisik, dan kemudian dikopi lagi ke dalam cache secondary and primary dari CPU. Perbedaan antara sebuah buffer dan cache adalah buffer dapat menyimpan satu-satunya informasi data sedangkan sebuah cache secara definisi hanya menyimpan sebuah data dari sebuah tempat untuk dapat diakses lebih cepat. Caching dan buffering adalah dua fungsi yang berbeda, tetapi terkadang sebuah daerah memori dapat digunakan untuk keduanya. sebagai contoh, untuk menghemat copy semantics dan membuat penjadualan M/K menjadi efisien, sistem operasi menggunakan buffer pada memori utama untuk menyimpan data. Buffer ini juga digunakan sebagai cache, untuk meningkatkan efisiensi IO untuk berkas yang digunakan secara bersama-sama oleh beberapa aplikasi, atau yang sedang dibaca dan ditulis secara berulang-ulang. Ketika kernel menerima sebuah permintaan berkas M/K, kernel tersebut mengakses buffer cache untuk melihat apakah daerah memori tersebut sudah tersedia dalam memori utama. Jika sudah tersedia, sebuah physical disk I/O Sistem Operasi 95

96 dapat dihindari atau bahkan tidak dipakai. Penulisan disk juga terakumulasi ke dalam buffer cache selama beberapa detik, jadi transfer yang besar akan dikumpulkan untuk mengefisiensikan jadual penulisan. Cara ini akan menunda penulisan untuk meningkatkan efisiensi M/K akan dibahas pada bagian Remote File Access Spooling dan Reservasi Perangkat Gambar 7-5 Gambar Spooling Spooling adalah proses yang sangat berguna saat berurusan dengan perangkat M/K dalam sistem multiprogram. Sebuah spool adalah sebuah buffer yang menyimpan keluaran untuk sebuah perangkat yang tidak dapat menerima interleaved data streams. Salah satu perangkat spool yang paling umum adalah printer. Printer hanya dapat melayani satu pekerjaan pada waktu tertentu, namun beberapa aplikasi dapat meminta printer untuk mencetak. Spooling memungkinkan keluaran mereka tercetak satu per satu, tidak tercampur. Untuk mencetak sebuah berkas, pertama-tama sebuah proses mengeneralisasi berkas secara keseluruhan untuk di cetak dan ditempatkan pada spooling directory. Sistem operasi akan menyelesaikan masalah ini dengan mengintercept semua keluaran kepada printer. Tiap keluaran aplikasi sudah dispooled ke disk berkas yang berbeda. Ketika sebuah aplikasi selesai mencetak, sistem spooling akan melanjutkan ke antrian berikutnya. Di dalam beberapa sistem operasi, spooling ditangani oleh sebuah sistem proses daemon. Pada sistem operasi yang lain, sistem ini ditangani oleh inkernel thread. Pada kedua penanganan tersebut, sistem operasi menyediakan antarmuka kontrol yang membuat users and sistem administrator dapat menampilkan antrian tersebut, untuk mengenyahkan antrian-antrian yang tidak diinginkan sebelum mulai dicetak.

97 Contoh lain adalah penggunaan spooling pada transfer berkas melalui jaringan yang biasanya menggunakan daemon jaringan. Untuk mengirim berkas ke suatu tempat, user menempatkan berkas tersebut dalam spooling directory jaringan. Selanjutnya, daemon jaringan akan mengambilnya dan mentransmisikannya. Salah satu bentuk nyata penggunaan spooling jaringan adalah sistim via Internet. Keseluruhan sistem untuk mail ini berlangsung di luar sistem operasi. Beberapa perangkat, seperti drive tape dan printer, tidak dapat me-multiplex permintaan M/K dari beberapa aplikasi. Selain dengan spooling, dapat juga diatasi dengan cara lain, yaitu dengan membagi koordinasi untuk multiple concurrent ini. Beberapa sistem operasi menyediakan dukungan untuk akses perangkat secara eksklusif, dengan mengalokasikan proses ke device idle dan membuang perangkat yang sudah tidak diperlukan lagi. Sistem operasi lainnya memaksakan limit suatu berkas untuk menangani perangkat ini. Banyak sistem operasi menyediakan fungsi yang membuat proses untuk menangani koordinat exclusive akses diantara mereka sendiri Error Handling Sebuah sistem operasi yang menggunakan protected memory dapat menjaga banyak kemungkinan error akibat perangkat keras maupun aplikasi. Perangkat dan transfer M/K dapat gagal dalam banyak cara, dapat karena alasan transient, seperti overloaded pada jaringan, maupun alasan permanen yang seperti kerusakan yang terjadi pada disk controller. Sistem operasi seringkali dapat mengkompensasikan untuk kesalahan transient. Seperti, sebuah kesalahan baca pada disk akan mengakibatkan pembacaan ulang kembali dan sebuah kesalahan pengiriman pada jaringan akan mengakibatkan pengiriman ulang apabila protokolnya diketahui. Akan tetapi untuk kesalahan permanen, sistem operasi pada umumnya tidak akan dapat mengembalikan situasi seperti semula. Sebuah ketentuan umum, yaitu sebuah sistem M/K akan mengembalikan satu bit informasi tentang status panggilan tersebut, yang akan menandakan apakah proses tersebut berhasil atau gagal. Sistem operasi pada UNIX menggunakan integer tambahan yang dinamakan ERRNO untuk mengembalikan kode kesalahan sekitar 1 dari 100 nilai yang mengindikasikan sebab dari kesalahan tersebut. Sebaliknya, beberapa perangkat keras dapat menyediakan informasi kesalahan yang detail, walaupun banyak sistem operasi yang tidak mendukung fasilitas ini. Sistem Operasi 97

98 Sebagai contoh, kesalahan pada perangkat SCSI dilaporkan oleh protokol SCSI dalam bentuk sense key yang mengindentifikasi kesalahan yang umum seperti error pada perangkat keras atau permintaan yang ilegal; sebuah additional sense code yang mengkategorikan kesalahan yang muncul, seperti kesalahan parameter atau kesalahan self-test; dan sebuah additional sense code qualifier yang memberitahukan kesalahan secara lebih mendalam dan mendetil, seperti parameter yang error Struktur Data Kernel Kernel membutuhkan informasi keadaan tentang penggunakan komponen M/K. Kernel menggunakan banyak struktur yang mirip untuk melacak koneksi jaringan, komunikasi perangkat karakter, dan aktivitas M/K lainnya. UNIX menyediakan akses sistem berkas untuk beberapa entiti, seperti berkas pengguna, raw devices, dan alamat tempat proses. Walaupun tiap entiti ini didukung sebuah operasi baca, semantiknya berbeda untuk tiap entiti. Seperti untuk membaca berkas pengguna, kernel perlu memeriksa buffer cache sebelum memutuskan apakah akan melaksanakan I/O disk. Untuk membaca sebuah raw disk, kernel perlu untuk memastikan bahwa ukuran permintaan adalah kelipatan dari ukuran sektor disk, dan masih terdapat di dalam batas sektor. Untuk memproses citra, cukup perlu untuk mengkopi data ke dalam memori. UNIX mengkapsulasikan perbedaan-perbedaan ini di dalam struktur yang seragam dengan menggunakan teknik object oriented. Beberapa sistem operasi bahkan menggunakan metode object oriented secara lebih ekstensif. Sebagai contoh, Windows NT menggunakan implementasi message-passing untuk M/K. Sebuah permintaan I/O akan dikonversikan ke sebuah pesan yang dikirim melalui kernel kepada M/K manager dan kemudian ke device driver, yang masing-masing dapat mengubah isi pesan. Untuk output, isi message adalah data yang akan ditulis. Untuk input, message berisikan buffer untuk menerima data. Pendekatan message-passing ini dapat menambah overhead, dengan perbandingan dengan teknik prosedural yang membagi struktur data, tetapi akan mennyederhanakan struktur dan design dari sistem M/K tersebut dan menambah fleksibilitas. Kesimpulannya, subsistem M/K mengkoordinasi kumpulan-kumpulan service yang banyak sekali, yang tersedia dari aplikasi maupun bagian lain dari kernel. Subsistem M/K mengawasi:

99 1. Managemen nama untuk berkas dan perangkat. 2. Kontrol akses untuk berkas dan perangkat. 3. Kontrol operasi, contoh: model yang tidak dapat dikenali. 4. Alokasi tempat sistem berkas. 5. Alokasi perangkat. 6. Buffering, caching, spooling. 7. Penjadualan M/K 8. Mengawasi status perangkat, error handling, dan kesalahan dalam recovery. 9. Konfigurasi dan utilisasi driver device 7.13 Penanganan Permintaan M/K Di bagian sebelumnya, kita mendeskripsikan handshaking antara device driver dan pengendali perangkat, tapi kita tidak menjelaskan bagaimana Sistem Operasi menyambungkan permintaan aplikasi untuk menyiapkan jaringan menuju sektor disk yang spesifik. Sistem Operasi yang modern mendapatkan fleksibilitas yang signifikan dari tahapan-tahapan tabel lookup di jalur diantara permintaan dan pengendali perangkat physical. Kita dapat mengenalkan perangkat dan driver baru ke komputer tanpa harus meng-compile ulang kernelnya. Sebagai fakta, ada beberapa sistem operasi yang mampu untuk me-load device drivers yang diinginkan. Pada waktu boot, sistem mula-mula meminta bus perangkat keras untuk menentukan perangkat apa yang ada, kemudian sistem me-load ke dalam driver yang sesuai; baik sesegera mungkin, maupun ketika diperlukan oleh sebuah permintaan M/K. Sistem V UNIX mempunyai mekanisme yang menarik, yang disebut streams, yang membolehkan aplikasi untuk men-assemble pipeline dari kode driver secara dinamis. Sebuah stream adalah sebuah koneksi full duplex antara sebuah device driver dan sebuah proses user-level. Stream terdiri atas sebuah stream head yang merupakan antarmuka dengan user process, sebuah driver end yang mengontrol perangkat, dan nol atau lebih stream modules di antara mereka. Modules dapat didorong ke stream untuk menambah fungsionalitas di sebuah layered fashion. Sebagai gambaran sederhana, sebuah proses dapat membuka sebuah alat port serial melalui sebuah stream, dan dapat mendorong ke sebuah modul untuk memegang edit input. Stream dapat digunakan untuk interproses dan komunikasi jaringan. Faktanya, di Sistem V, mekanisme soket diimplementasikan dengan stream. Sistem Operasi 99

100 Berikut dideskripsikan sebuah lifecycle yang tipikal dari sebuah permintaan pembacaan blok: 1. Sebuah proses mengeluarkan sebuah blocking read system call ke sebuah berkas deskriptor dari berkas yang telah dibuka sebelumnya. 2. Kode system-call di kernel mengecek parameter untuk kebenaran. Dalam kasus input, jika data telah siap di buffer cache, data akan dikembalikan ke proses dan permintaan M/K diselesaikan. 3. Jika data tidak berada dalam buffer cache, sebuah physical M/K akan bekerja, sehingga proses akan dikeluarkan dari antrian jalan (run queue) dan diletakkan di antrian tunggu (wait queue) untuk alat, dan permintaan M/K pun dijadualkan. Pada akhirnya, subsistem M/K mengirimkan permintaan ke device driver. Bergantung pada sistem operasi, permintaan dikirimkan melalui call subrutin atau melalui pesan in-kernel. 4. Device driver mengalokasikan ruang buffer pada kernel untuk menerima data, dan menjadualkan M/K. Pada akhirnya, driver mengirim perintah ke pengendali perangkat dengan menulis ke register device control. 5. Pengendali perangkat mengoperasikan perangkat keras perangkat untuk melakukan transfer data. 6. Driver dapat menerima status dan data, atau dapat menyiapkan transfer DMA ke memori kernel. Kita mengasumsikan bahwa transfer diatur oleh sebuah DMA controller, yang menggunakan interupsi ketika transfer selesai. 7. Interrupt handler yang sesuai menerima interupsi melalui tabel vektor-interupsi, menyimpan sejumlah data yang dibutuhkan, menandai device driver, dan kembali dari interupsi. 8. Device driver menerima tanda, menganalisa permintaan M/K mana yang telah diselesaikan, menganalisa status permintaan, dan menandai subsistem M/K kernel yang permintaannya telah terselesaikan. 9. Kernel mentransfer data atau mengembalikan kode ke ruang alamat dari proses permintaan, dan memindahkan proses dari antrian tunggu kembali ke antrian siap. Proses tidak diblok ketika dipindahkan ke antrian siap. Ketika penjadual (scheduler) mengembalikan proses ke CPU, proses meneruskan eksekusi pada penyelesaian dari system call.

101 7.14 I/O Streams I/O stream adalah suatu mekanisme pengiriman data secara bertahap dan terus menerus melalui suatu aliran data dari proses ke peranti (begitu pula sebaliknya). I/O Stream terdiri dari: 1. stream head yang berhubungan langsung dengan proses. 2. driver ends yang mengatur peranti-peranti 3. stream modules yang berada di antara stream head dan driver end, yang bertugas menyampaikan data ke driver end melalui write queue, maupun menyampaikan data ke proses melalui read queue dengan cara message passing. Untuk memasukkan ke dalam stream digunakan ioctl() system call, sedangkan untuk menuliskan data ke peranti digunakan write()/ putmsg() system calls, dan untuk membaca data dari peranti digunakan read()/ getmsg() system calls. Gambar 7-6 Struktur Stream Sistem Operasi 101

102 7.15 Kinerja MK M/K adalah faktor penting dalam kinerja sistem. M/K sering meminta CPU untuk mengeksekusi device-driver code dan menjadual proses secara efisien sewaktu memblock dan unblock. Hasil context switch men-stress ke CPU dan hardware cache-nya. M/K juga memberitahukan ketidakefisienan mekanisme penanganan interupsi dalam kernel, dan M/K me-load down memory bus saat data copy antara pengendali dan memori fisik, dan juga saat copy antara kernel buffers dan application data space. Mengkopi dengan semua permintaan ini adalah salah satu kekhawatiran dalam arsitektur komputer. Walaupun komputer modern dapat menangani beribu-ribu interupsi per detik, namun penanganan interupsi adalah pekerjaan yang sulit. Setiap interupsi mengakibatkan sistem melakukan perubahan status, mengeksekusi interrupt handler lalu mengembalikan statusnya kembali. M/K yang terprogram dapat lebih efisien dibanding interrupt-driven I/O, jika waktu cycle yang dibutuhkan untuk busy-waiting tidak berlebihan. M/K yang sudah selesai biasanya meng-unblock sebuah proses lalu membawanya ke full overhead of context switch. Network traffic juga dapat menyebabkan high context-switch rate. Coba diperhatikan, misalnya sebuah remote login dari sebuah mesin ke mesin lainnya. Setiap karakter yang diketikkan pada local machine harus dikirim ke remote machine. Pada local machine karakter akan diketikkan, lalu keyboard interrupt dibuat, dan karakter melewati interrupt handler menuju device-driver lalu ke kernel, setelah itu ke proses. Proses memanggil network I/O system call untuk mengirim karakter ke remote machine. Karakter lalu melewati local kernel, menuju ke lapisan-lapisan network yang membuat paket network, lalu ke network device driver. Network device driver mengirim paket itu ke network controller, yang mengirim karakter dan membuat interupsi. Interupsi kemudian dikembalikan ke kernel supaya I/O system call dapat selesai. Sekarang remote system's network hardware sudah menerima paket, dan interupsi dibuat. Karakter di-unpack dari network protocol dan dikirim ke network daemon yang sesuai. Network daemon mengidentifikasi remote login session mana yang terlibat, dan mengirim paket ke subdaemon yang sesuai untuk session itu. Melalui alur ini, ada context switch dan state switch (lihat Gambar, Gambar Komunikasi Interkomputer ). Biasanya, penerima mengirim kembali karakter ke pengirim.

103 Gambar 7-7 Gambar Komunikasi Interkomputer Gambar ini diadaptasi dari [Silberschatz2002, halaman 484]. Developer Solaris mengimplementasikan kembali telnet daemon menggunakan kernel-thread untuk menghilangkan context switch yang terlibat dalam pemindahan karakter dari daemon ke kernel. Sun memperkirakan bahwa perkembangan ini akan menambah jumlah maksimum network logins dari beberapa ratus hingga beberapa ribu (pada server besar). Sistem lain menggunakan front-end processor yang terpisah untuk terminal M/K, supaya mengurangi beban interupsi pada main CPU. Misalnya, sebuah terminal concentrator dapat mengirim sinyal secara bersamaan dari beratusratus terminal ke satu port di large computer. Sebuah I/O channel adalah sebuah CPU yang memiliki tujuan khusus yang ditemukan pada mainframe dan pada sistem high-end lainnya. Kegunaan dari I/O channel adalah untuk mengoffload I/O work dari main CPU. Prinsipnya adalah channel tersebut menjaga supaya lalu lintas data lancar, sehingga main CPU dapat bebas memproses data. Seperti device controller dan DMA controller yang ada pada smaller computer, sebuah channel dapat memproses program-program yang umum dan kompleks, jadi channel dapat digunakan untuk workload tertentu. Kita dapat menggunakan beberapa prinsip untuk menambah efisiensi M/K: 1. Mengurangi context switch. 2. Mengurangi jumlah pengsalinan data dalam memori sewaktu pengiriman antara peranti dan aplikasi. 3. Mengurangi jumlah interupsi dengan menggunakan transfer besarbesaran, smart controller, dan polling (jika busy-waiting dapat diminimalisir). Sistem Operasi 103

104 4. Menambah konkurensi dengan menggunakan pengendali atau channel DMA yang sudah diketahui untuk meng-offload kopi data sederhana dari CPU. 5. Memindahkan processing primitives ke perangkat keras, supaya operasi pada device controller konkuren dengan CPU dan operasi bus. 6. Keseimbangan antara CPU, memory subsystem, bus dan kinerja M/K, karena sebuah overload pada salah satu area akan menyebabkan keterlambatan pada yang lain. Kompleksitas peranti berbeda-beda, misalnya mouse. Mouse adalah peranti yang sederhana. Pergerakan mouse dan button click diubah menjadi nilai numerik yang dikirim dari perangkat keras (melalui mouse device driver) menuju aplikasinya. Kebalikan dari mouse, fungsionalitas yang disediakan NT disk device driver sangatlah kompleks. NT disk device driver tidak hanya mengatur individual disk, tapi juga mengimplementasikan RAID array. Untuk dapat melakukannya, NT disk device driver mengubah read atau pun write request dari aplikasi menjadi coordinated set of disk I/O operations. Terlebih lagi, NT disk device driver mengimplementasikan penanganan error dan algoritma data-recovery, lalu mengambil langkah-langkah untuk mengoptimalkan kinerja disk, karena kinerja penyimpanan sekunder adalah hal penting untuk keseluruhan kinerja sistem. Kapan fungsionalitas M/K dapat diimplementasikan? Pada device hardware, device driver, atau pada aplikasi perangkat lunak? Mula-mula kita implementasikan eksperimen algoritma M/K pada application level, karena application code lebih fleksibel, dan application bug tidak membuat sistem crash. Terlebih lagi dengan mengembangkan kode pada application level, kita dapat menghindari reboot atau pun reload device driver setiap mengganti kode. Bagaimana pun juga sebuah implementasi pada application level dapat tidak efisien, karena overhead of context switch, dan karena aplikasi tidak dapat menerima kemudahan dari internal kernel data structure dan fungsionalitas kernel (seperti internal kernel messaging, threading, dan locking yang efisien). Ketika algoritma application level memperlihatkan kegunaannya, kita dapat mengimplementasikan kembali kernel, sehingga dapat menambah kinerja. Akan tetapi, usaha pengembangan sulit dilakukan karena sistem operasi kernel adalah sistem perangkat lunak yang besar dan kompleks.

105 Terlebih lagi, dalam pengimplementasian internal kernel harus di-debug secara hati-hati untuk menghindari data corrupt dan sistem crash. Kinerja tertinggi dapat didapatkan dengan cara implementasi spesial dalam perangkat keras, baik dalam peranti atau pun pengendali. Kerugian dari implementasi perangkat keras termasuk kesulitan dan pengorbanan dari membuat kemajuan atau dari pembetulan bug, dan bertambahnya development time (dalam satuan bulan, bukan hari), dan berkurangnya fleksibilitas. Misalnya, sebuah hardware RAID controller mungkin saja tidak memberikan izin kepada kernel untuk mempengaruhi urutan atau pun lokasi dari individual block reads and writes, walaupun kernel memiliki informasi tertentu tentang workload yang mampu membuat kernel meningkatkan kinerja M/K. Rangkuman Subsistem kernel M/K menyediakan layanan yang berhubungan langsung dengan perangkat keras. Layanan Penjadualan M/K mengurutkan antrian permintaan pada tiap perangkat dengan tujuan untuk meningkatkan efisiensi dari sistem dan waktu respon rata-rata yang harus dialami oleh aplikasi. Ada tiga alasan melakukan layanan Buffering, yaitu menyangkut perbedaan kecepatan produsen-konsumen, perbedaan ukuran transfer data dan dukungan copy semantics untuk aplikasi M/K. Fungsi buffering dan caching memiliki perbedaan dalam hal tujuan. Caching menyimpan salinan data asli pada area memori dengan tujuan agar bisa diakses lebih cepat, sedangkan buffering menyalin data asli agar dapat menyimpan satu-satunya informasi data. Subsistem M/K mengkoordinasi kumpulan-kumpulan sevice yang banyak sekali, yang tersedia dari aplikasi atau bagian lain dari kernel. Penanganan permintaan M/K dilakukan dengan suatu mekanisme yang dideskripsikan sebagai sebuah life cycle. Sistem Operasi 105

106 Layanan I/O Streams menggunakan suatu mekanisme pengiriman data secara bertahap dan terus menerus melalui suatu aliran data dari piranti ke proses

107 Latihan 1. Apa yang dimaksud dengan DMA dan RAID 2. Jelaskan mekanisme dasar interupsi 3. Sebutkan dan jelaskan teknik pemrograman I/O yang anda ketahui 4. Apa yang dimaksud dengan buffer dan buffering 5. Apa yang dimaksud dengan kernel Sistem Operasi 107

108 8 Manajemen Disk Overview Sebelum memulai mempelajari sistem operasi penting bagi kita untuk mengetahui komponen-komponen yang menjadi bagian dari sebuah disk disertai cara kerjanya. Hal ini disebabkan nantinya disk bekerja untuk mengatur komponen-komponen tersebut. Tujuan 1. Mahasiswa mengetahui struktur dari disk 2. Mahasiswa mengetahui penjadwalan yang terjadi pada suatu disk

109 8.1 Struktur Disk Struktur disk merupakan suatu hal yang penting bagi penyimpanan informasi. Sistem komputer modern menggunakan Disk sebagai media penyimpanan sekunder. Dulu pita magnetik digunakan sebelum penggunaan disk sebagai media penyimpanan, sekunder yang memiliki waktu akses yang lebih lambat dari disk. Sejak digunakan disk, tape digunakan untuk backup, untuk menyimpan informasi yang tidak sering digunakan, sebagai media untuk memindahkan informasi dari satu sistem ke sistem lain, dan untuk menyimpan data yang cukup besar bagi sistem disk. Bentuk penulisan Disk drive modern adalah array blok logika satu dimensi yang besar. Blok logika merupakan satuan unit terkecil dari transfer. Ukuran blok logika umumnya sebesar 512 bytes walaupun disk dapat diformat di level rendah (low level formatted) sehingga ukuran blok logika dapat ditentukan, misalnya 1024 bytes. Array adalah blok logika satu dimensi yang dipetakan ke sektor dari disk secara sekuensial. Sektor 0 merupakan sektor pertama dari track pertama yang terletak di silinder paling luar (outermost cylinder). Proses pemetaan dilakukan secara berurut dari Sektor 0, lalu ke seluruh track dari silinder tersebut, lalu ke seluruh silinder mulai dari silinder terluar sampai silinder terdalam. Kita dapat mengubah sebuah nomor blok logika dengan pemetaan menjadi sebuah alamat disk yang terdiri atas nomor silinder, nomor track di silinder tersebut, dan nomor sektor dari track tersebut. Dalam prakteknya, sulit untuk menerapkan pengubahan tersebut karena ada dua alasan. Pertama, kebanyakan disk memiliki sejumlah sektor yang rusak, tetapi pemetaan menyembunyikan hal ini dengan mensubstitusikan dengan sektor lain yang diambil dari suatu tempat di disk. Kedua, jumlah dari sektor tidak track tidak konstan. Pada media yang menggunakan ketentuan Constant Linear Velocity (CLV) kepadatan bit tiap track sama, jadi semakin jauh sebuah track dari tengah disk, semakin besar panjangnya, dan juga semakin banyak sektor yang dimilikinya. Trek di zona terluar memiliki 40% sektor lebih banyak dibandingkan dengan track di zona terdalam. Untuk menjamin aliran data yang sama, sebuah drive menaikan kecepatan putarannya ketika disk head bergerak dari zona luar ke zona dalam. Metode ini digunakan dalam CD-ROM dan DVD-ROM. Metode lain yang digunakan agar rotasi tetap konstan dan aliran data juga konstan dikenal dengan metode CAV (Constant Angular Velocity). CAV memungkinkan aliran data yang konstan karena kepadatan bit dari zona Sistem Operasi 109

110 terdalam ke zona terluar semakin berkurang, sehingga dengan kecepatan rotasi yang konstan diperoleh aliran data yang konstan. 8.2 Penjadwalan Disk Penjadualan disk merupakan salah satu hal yang sangat penting dalam mencapai efisiensi perangkat keras. Bagi disk drives, efisiensi dipengaruhi oleh kecepatan waktu akses dan besarnya disk bandwith. Waktu akses memiliki dua komponen utama yaitu waktu pencarian dan waktu rotasi disk (rotational latency). Waktu pencarian adalah waktu yang dibutuhkan disk arm untuk menggerakkan head ke bagian silinder disk yang mengandung sektor yang diinginkan. Waktu rotasi disk adalah waktu tambahan yang dibutuhkan untuk menunggu perputaran disk agar head dapat berada di atas sektor yang diinginkan. Disk bandwith adalah total jumlah bytes yang ditransfer dibagi dengan total waktu dari awal permintaan transfer sampai transfer selesai. Kita dapat meningkatkan waktu akses dan bandwidth dengan menjadualkan permintaan dari M/K dalam urutan tertentu. Apabila suatu proses membutuhkan pelayanan M/K dari atau menuju disk, maka proses tersebut akan melakukan system call ke sistem operasi. Permintaan tersebut membawa beberapa informasi, antara lain: 1. Apakah operasi input atau output. 2. Alamat disk untuk proses tersebut. 3. Alamat memori untuk proses tersebut 4. Jumlah bytes yang akan ditransfer Pelayanan akan dilayani pada suatu proses apabila disk drive beserta pengendali tersedia untuk proses tersebut. Apabila disk drive dan pengendali sedang sibuk melayani proses lain, maka semua permintaan yang memerlukan pelayanan disk tersebut akan diletakkan pada suatu antrian permintaan untuk disk tersebut. Dengan demikian, jika suatu permintaan telah dilayani, maka sistem operasi melayani permintaan dari antrian berikutnya. 8.3 Macam-macam Penjadwalan Disk Penjadwalan FCFS Penjadualan disk FCFS melayani permintaan sesuai dengan antrian dari banyak proses yang meminta layanan. Secara umum algoritma FCFS ini sangat adil

111 walaupun ada kelemahan dalam algoritma ini dalam hal kecepatannya yang lambat. Sebagai contoh, antrian permintaan pelayanan disk untuk proses M/K pada blok dalam silinder adalah sebagai berikut: 10, 45, 37, 56, 60, 25, 78, 48, 88, 70, 5, 20. Jika head pada awalnya berada pada 50, maka head akan bergerak dulu dari 50 ke 10, kemudian 45, 37, 56, 60, 25, 78, 48, 88, 70, 5 dan terakhir 20, dengan total pergerakan head sebesar 362 silinder. Dari contoh diatas, kita dapat melihat permasalahan dengan menggunakan penjadualan jenis ini yaitu pergerakan dari 78 ke 48 dan kembali lagi ke 88. Jika permintaan terhadap silinder 88 dapat dilayani setelah permintaan 78, setelah selesai baru melayani permintaan 48, maka pergerakan total head dapat dikurangi, sehingga dengan demikian pendayagunaan akan meningkat. Gambar 8-1 Penjadwalan FCFS (Gambar ini diadaptasi dari [Silberschatz2002, halaman 494].) Penjadwalan SSTF Shortest-Seek-Time-First (SSTF) merupakan algoritma yang melayani permintaan berdasarkan waktu pencarian atau waktu pencarian paling kecil dari posisi head terakhir. Karena waktu pencarian meningkat seiring dengan jumlah silinder yang dilewati oleh head, maka SSTF memilih permintaan yang paling Sistem Operasi 111

112 dekat posisinya di disk terhadap posisi head terakhir. Pergerakan dari contoh diatas yaitu 50 ke 48, lalu ke 45, 37, 25, 20, 10, 5, 56, 60, 70, 78, 88. Perhatikan contoh antrian permintaan yang kita sajikan pada penjadualan FCFS, permintaan paling dekat dengan posisi head saat itu (50) adalah silinder 48. Jika kita penuhi permintaan 48, maka yang terdekat berikutnya adalah silinder 45. Dari 45, silinder 37 letaknya lebih dekat ke 45 dibandingkan silinder 56,jadi 37 dilayani duluan. Selanjutnya, dilanjutkan ke silinder 25, 20, 10, 5, 56, 60, 70, 78 dan terakhir adalah 88. Metode penjadualan ini hanya menghasilkan total pergerakan head sebesar 128 silinder -- kira-kira sepertiga dari yang dihasilkan penjadualan FCFS. Algoritma SSTF ini memberikan peningkatan yang cukup signifikan dalam hal pendayagunaan atau kinerja sistem. Penjadualan SSTF merupakan salah satu bentuk dari penjadualan shortest-jobfirst (SJF), dan karena itu maka penjadualan SSTF juga dapat mengakibatkan starvation pada suatu saat tertentu. Hal ini dapat terjadi bila ada permintaan untuk mengakses bagian yang berada di silinder terdalam. Jika kemudian berdatangan lagi permintaan-permintaan yang letaknya lebih dekat dengan permintaan terakhir yang dilayani maka permintaan dari silinder terluar akan menunggu lama dan sebaliknya. Walaupun algoritma SSTF jauh lebih cepat dibandingkan dengan FCFS, namun untuk keadilan layanan SSTF lebih buruk dari penjadualan FCFS.

113 Gambar 8-2 Penjadwalan SSTF.Gambar ini diadaptasi dari [Silberschatz2002, halaman 494] Penjadwalan SCAN Pada algoritma ini disk arm bergerak menuju ke silinder paling ujung dari disk, kemudian setelah sampai di silinder paling ujung, disk arm akan berbalik arah geraknya menuju ke silinder paling ujung lainnya. Algoritma SCAN disebut juga Algoritma lift/ elevator karena algoritma ini cara kerjanya sama seperti algoritma yang umum dipakai oleh lift untuk melayani penggunanya, yaitu lift akan melayani orang-orang yang akan naik ke atas dulu, setelah sampai di lantai tertinggi, baru lift akan berbalik arah geraknya untuk melayani orangorang yang akan turun. Dalam pergerakannya yang seperti lift itu, disk arm hanya dapat melayani permintaan-permintaan yang berada di depan arah geraknya terlebih dahulu. Bila ada permintaan yang berada di belakang arah geraknya, permintaan tersebut harus menunggu sampai disk arm mencapai salah satu silinder paling ujung dari disk, kemudian berbalik arah geraknya untuk melayani permintaan tersebut. Contoh: (lihat Gambar, Penjadualan SCAN ) Jika disk head sedang berada di silinder 50, dan sedang bergerak menuju silinder 99, maka permintaan yang dapat dilayani berikutnya adalah yang terdekat dengan silinder 50, tetapi masih berada di depan arah geraknya, yaitu: silinder 56. Begitu seterusnya disk Sistem Operasi 113

114 arm melayani permintaan yang berada di depannya sampai disk arm mencapai silinder 99 dan berbalik arah gerak menuju ke silinder 0. Maka setelah disk arm berbalik arah gerak, permintaan di silinder 45 baru dapat dilayani. Keunggulan dari algoritma SCAN adalah total pergerakan disk arm memiliki batas atas, yaitu 2 kali dari jumlah total silinder pada disk. Tetapi di samping itu masih ada beberapa kelemahan yang dimiliki oleh algoritma ini. Dari contoh Gambar, Penjadualan SCAN terlihat salah satu kelemahan algoritma SCAN: permintaan di silinder 88 sebenarnya sudah merupakan permintaan yang paling ujung, tetapi disk arm harus bergerak sampai silinder 99 dulu, baru kemudian dapat berbalik arah geraknya. Bukankah hal seperti itu sangat tidak efisien? Mengapa disk arm tidak langsung berbalik arah geraknya sesudah sampai di silinder 88? Kelemahan ini akan dijawab oleh algoritma LOOK yang akan dibahas pada sub-bab berikutnya. Kelemahan lain dari algoritma SCAN yaitu dapat menyebabkan terjadinya starvation. Begitu disk arm berbalik arah geraknya dari silinder 99, maka silinder yang berada dekat di depan arah gerak disk arm baru saja dilayani, sedangkan silinder-silinder yang dekat dengan silinder 0 sudah lama menunggu untuk dilayani. Bila kemudian bermunculan permintaan-permintaan baru yang dekat dengan silinder 99 lagi, maka permintaan-permintaan baru itulah yang akan dilayani, sehingga permintaan-permintaan yang dekat dengan silinder 0 akan semakin "lapar". Karena kelemahan yang kedua inilah muncul modifikasi dari algoritma SCAN, yaitu C-SCAN yang akan kita bahas berikutnya.

115 8.3.4 Penjadwalan C-SCAN Gambar 8-3 Penjadwalan SCAN Algoritma Circular SCAN (C-SCAN) merupakan hasil modifikasi algoritma SCAN untuk mengurangi kemungkinan starvation yang dapat terjadi pada SCAN. Perbedaan C-SCAN dengan SCAN hanya pada bagaimana pergerakan disk arm setelah sampai ke salah satu silinder paling ujung. Pada algoritma SCAN, disk arm akan berbalik arah menuju ke silinder paling ujung yang lain sambil tetap melayani permintaan yang berada di depan arah pergerakan disk arm, sedangkan pada algoritma C-SCAN sesudah mencapai silinder paling ujung, maka disk arm akan bergerak cepat ke silinder paling ujung lainnya tanpa melayani permintaan. Contoh: (lihat Gambar, Penjadualan C-SCAN ) Setelah sampai di silinder 99, disk arm akan bergerak dengan cepat ke silinder 0 tanpa melayani permintaan selama dalam perjalanannya. Kemudian setelah sampai di silinder 0, baru disk arm akan bergerak ke arah silinder 99 lagi sambil melayani permintaan. Dengan pergerakan yang seperti demikian, seolah-olah disk arm hanya bergerak 1 arah dalam melayani permintaan. Tetapi dalam algoritma C-SCAN masih terkandung kelemahan yang juga dimiliki oleh algoritma SCAN, yaitu disk arm harus sampai di silinder 99 atau silinder 0 terlebih dahulu sebelum dapat berbalik arah. Untuk itulah dibuat algoritma LOOK yang akan kita bahas berikutnya. Sistem Operasi 115

116 8.3.5 Penjadwalan LOOK Gambar 8-4 Penjadwalan C-SCAN Sesuai dengan namanya, algoritma ini seolah-olah seperti dapat "melihat". Algoritma ini memperbaiki kelemahan SCAN dan C-SCAN dengan cara melihat apakah di depan arah pergerakannya masih ada permintaan lagi atau tidak. Bila tidak ada lagi permintaan di depannya, disk arm dapat langsung berbalik arah geraknya. Penjadualan LOOK seperti SCAN yang lebih "pintar". Contoh: (lihat Gambar, Penjadualan LOOK ). Ketika disk head sudah selesai melayani permintaan di silinder 88, algoritma ini akan "melihat" bahwa ternyata di depan arah pegerakannya sudah tidak ada lagi permintaan yang harus dilayani. Oleh karena itu disk arm dapat langsung berbalik arah geraknya sehingga permintaan yang menunggu untuk dilayani dapat mendapatkan pelayanan lebih cepat. Kelemahan algoritma ini sama seperti kelemahan algoritma SCAN bahwa dapat terjadi starvation untuk situasi yang sama pula dengan yang menyebabkan terjadinya starvationpada algoritma SCAN. Oleh karena itulah dibuat lagi suatu algoritma yang lebih baik untuk memperbaiki algoritma ini, yaitu: C-LOOK. Gambar 8-5 Penjadwalan LOOK

117 8.3.6 Penjadwalan C-LOOK Algoritma ini berhasil memperbaiki kelemahan-kelemahan algoritma SCAN, C-SCAN, dan LOOK. Algoritma C-LOOK memperbaiki kelemahan LOOK sama seperti algoritma C-SCAN memperbaiki kelemahan SCAN, yaitu pada cara pergerakan disk arm setelah mencapai silinder yang paling ujung. Gambar 8-6 Penjadwalan C-LOOK Contoh: (lihat Gambar, Penjadualan C-LOOK ) dengan memiliki kemampuan "melihat" algoritma LOOK, setelah melayani permintaan di silinder 88, disk arm akan bergerak dengan cepat ke silinder 5, yaitu permintaan di silinder yang terletak paling dekat dengan silinder 0. Dengan cara pergerakan disk arm yang mengadaptasi keunggulan dari C- SCAN dan LOOK, algoritma ini dapat mengurangi terjadinya starvation, dengan tetap menjaga efektifitas pergerakan disk arm. 8.4 Pemilihan Algoritma Penjadwalan Disk Dari seluruh algoritma yang sudah kita bahas di atas, tidak ada algoritma yang terbaik untuk semua keadaan yang terjadi. SSTF lebih umum dan memiliki prilaku yang lazim kita temui. SCAN dan C-SCAN memperlihatkan kemampuan yang lebih baik bagi sistem yang menempatkan beban pekerjaan yang berat kepada disk, karena algoritma tersebut memiliki masalah starvation Sistem Operasi 117

118 yang paling sedikit. SSTF dan LOOK sering dipakai sebagai algoritma dasar pada sistem operasi. Dengan algoritma penjadualan yang mana pun, kinerja sistem sangat tergantung pada jumlah dan tipe permintaan. Sebagai contoh, misalnya kita hanya memiliki satu permintaan, maka semua algoritma penjadualan akan dipaksa bertindak sama. Sedangkan permintaan sangat dipengaruhi oleh metode penempatan berkas. Karena kerumitan inilah, maka algoritma penjadualan disk harus ditulis dalam modul terpisah dari sistem operasi, jadi dapat saling mengganti dengan algoritma lain jika diperlukan. Namun perlu diingat bahwa algoritma-algoritma di atas hanya mempertimbangkan jarak pencarian, sedangkan untuk disk modern, rotational latency dari disk sangat menentukan. Tetapi sangatlah sulit jika sistem operasi harus memperhitungkan algoritma untuk mengurangi rotational latency karena disk modern tidak memperlihatkan lokasi fisik dari blok-blok logikanya. Oleh karena itu para produsen disk telah mengurangi masalah ini dengan mengimplementasikan algoritma penjadualan disk di dalam pengendali perangkat keras, sehingga kalau hanya kinerja M/K yang diperhatikan, maka sistem operasi dapat menyerahkan algoritma penjadualan disk pada perangkat keras itu sendiri. Rangkuman Bentuk penulisan disk drive modern adalah array blok logika satu dimensi yang besar. Ukuran blok logika dapat bermacam-macam. Array adalah blok logika satu dimensi yang dipetakan dari disk ke sektor secara bertahap dan berurut. Terdapat dua aturan pemetaan, yaitu: 1. Constant Linear Velocity (CLV) Kepadatan bit setiap track sama, semakin jauh sebuah track dari tengah disk, maka semakin besar panjangnya, dan juga semakin banyak sektor yang dimilikinya. Digunakan pada CD-ROM dan DVD- ROM.

119 2. Constant Angular Velocity (CAV) Kepadatan bit dari zona terdalam ke zona terluar semakin berkurang, kecepatan rotasi konstan sehingga aliran data pun konstan. Penjadualan disk sangat penting dalam hal meningkatkan efisiensi penggunaan perangkat keras. Efisiensi penggunaan disk terkait dengan kecepatan waktu akses dan besarnya disk bandwith. Untuk meningkatkan efisiensi tersebut dibutuhkan algoritma penjadualan yang tepat dalam penggunaan disk. Terdapat berbagai macam algoritma penjadualan disk, yaitu: 1. FCFS (First Come First Serve) 2. SSTF (Shortest-Seek-Time-First) 3. SCAN 4. C-SCAN (Circular SCAN) 5. LOOK 6. C-LOOK (Circular LOOK) Latihan 1. Sebutkan dan jelaskan macam-macam penjadwalan disk 2. Apa yang dimaksud metode CAV (Constant Angular Velocity) 3. Yang dimaksud dengan array? 4. Bagaimana memilih metode penjadwalan yang terbaik. Sistem Operasi 119

120 9 Manajemen File Overview Penting bagi kita untuk mengetahui tentang apa itu file. Hal ini disebabkan nantinya dalam sistem operasi bekerja terdapat fileuntuk mengatur komponen-komponen tersebut dan menyembunyikan kerumitannya bagi pengembang aplikasi dan para pengguna akhir sistem operasi.

121 Tujuan 1. Mahasiswa mengetahui apa yang disebut dengan File 2. Mahasiswa mengetahui manajemen file dalam sistem berkas. 9.1 Pendahuluan Berkas adalah sebuah unit tempat menyimpan informasi. Berkas ini dapat diakses lebih dari satu proses, dapat dibaca, dan bahkan menulis yang baru. Informasi yang disimpan dalam berkas harus persisten, dalam artian tidak hilang sewaktu proses berhenti. Berkas-berkas ini diatur oleh sistem operasi, bagaimana strukturnya, namanya, aksesnya, penggunaannya, perlindungannya, dan implementasinya. Bagian dari sistem operasi yang mengatur masalahmasalah ini disebut sistem berkas. Untuk kebanyakan pengguna, sistem berkas adalah aspek yang paling terlihat dari sebuah sistem operasi. Dia menyediakan mekanisme untuk penyimpanan online dan akses ke data dan program. Sistem berkas terbagi menjadi dua bagian yang jelas; koleksi berkas (masing-masing menyimpan data yang berkaitan) dan struktur direktori (mengatur dan menyediakan informasi mengenai semua berkas yang berada di sistem). Sekarang marilah kita memperdalam konsep dari berkas tersebut. 9.2 Database Suatu database merupakan data-data yang berelasi atau berkaitan untuk membentuk suatu entitas tertentu. Untuk mengetahui suatu database itu kita Sistem Operasi 121

122 dibantu dengan adanya Database Management System (DBMS) dan File Management System (FMS). DBMS adalah suatu program yang mengelola suatu basisdata, dimana yang membantu dalam pengelolaan, penyimpanan dan manipulasi suatu informasi. Secara relasional DBMS merupakan kumpulan relasional. Sebagai pemakai kita tidak langsung berinteraksi dengan penyimpan fisik. Dengan DBMS, kita dapat penyederhanaan dan pemberian fasilitas yang nyaman untuk akses data. DBMS dalam berhubungan dengan level fisik berinteraksi dengan sistem pengelolaan file yaitu File Management System (FMS) untuk transformasi informasi level logik ke level fisik.

123 Implementasi dari DBMS adalah : 1. File Data 2. Kamus Data 3. File Indeks 4. Data Statistik 9.3 Konsep Berkas Berkas adalah sebuah koleksi informasi berkaitan yang diberi nama dan disimpan di dalam secondary storage. Biasanya sebuah berkas merepresentasikan data atau program. Ada pun jenis-jenis dari berkas: o o o Text file: yaitu urutan dari karakter-karakter yang diatur menjadi barisan dan mungkin halaman. Source file: yaitu urutan dari berbagai subroutine dan fungsi yang masing-masing kemudian diatur sebagai deklarasi-deklarasi diikuti oleh pernyataan-pernyataan yang dapat diexecute. Object file: yaitu urutan dari byte-byte yang diatur menjadi blok-blok yang dapat dipahami oleh penghubung system. Executable file: adalah kumpulan dari bagian-bagian kode yang dapat dibawa ke memori dan dijalankan oleh loader. 9.4 Atribut Berkas Selain nama dan data, sebuah berkas dikaitkan dengan informasi-informasi tertentu yang juga penting untuk dilihat pengguna, seperti kapan berkas itu dibuat, ukuran berkas, dan lain-lain. Kita akan sebut informasi-informasi ekstra ini atribut. Setiap sistem mempunyai sistem atribusi yang berbedabeda, namun pada dasarnya memiliki atribut-atribut dasar seperti berikut ini: o o o Nama: nama berkas simbolik ini adalah informasi satu-satunya yang disimpan dalam format yang dapat dibaca oleh pengguna. Identifier: tanda unik ini yang biasanya merupakan sebuah angka, mengenali berkas didalam sebuah sistem berkas; tidak dapat dibaca oleh pengguna. Jenis: informasi ini diperlukan untuk sistem-sistem yang mendukung jenis berkas yang berbeda. Sistem Operasi 123

124 o o o Lokasi: informasi ini adalah sebuah penunjuk pada sebuah device dan pada lokasi berkas pada device tersebut. Ukuran: ukuran dari sebuah berkas (dalam bytes, words, atau blocks) dan mungkin ukuran maksimum dimasukkan dalam atribut ini juga. Proteksi: informasi yang menentukan siapa yang dapat melakukan read, write, execute, dan lainnya. Waktu dan identifikasi pengguna: informasi ini dapat disimpan untuk pembuatan berkas, modifikasi terakhir, dan penggunaan terakhir. Data-data ini dapat berguna untuk proteksi, keamanan, dan monitoring penggunaan. 9.5 Jenis Berkas Salah satu atribut dari sebuah berkas yang cukup penting adalah jenis berkas. Saat kita mendesain sebuah sistem berkas, kita perlu mempertimbangkan bagaimana operating sistem akan mengenali berkas-berkas dengan jenis yang berbeda. Apabila sistem operasi dapat mengenali, maka menjalankan berkas tersebut bukan suatu masalah. Seperti contohnya, apabila kita hendak mengeprint bentuk binary-object dari sebuah program, yang didapat biasanya adalah sampah, namun hal ini dapat dihindari apabila sistem operasi telah diberitahu akan adanya jenis berkas tersebut. Cara yang paling umum untuk mengimplementasikan jenis berkas tersebut adalah dengan memasukkan jenis berkas tersebut ke dalam nama berkas. Nama berkas dibagi menjadi dua bagian. Bagian pertama adalah nama dari berkas tersebut, dan yang kedua, atau biasa disebut extention adalah jenis dari berkas tersebut. Kedua nama ini biasanya dipisahkan dengan tanda '.', contoh: berkas.txt. 9.6 Operasi Berkas Fungsi dari berkas adalah untuk menyimpan data dan mengizinkan kita membacanya. Dalam proses ini ada beberapa operasi yang dapat dilakukan berkas. Ada pun operasi-operasi dasar yang dilakukan berkas, yaitu: o Membuat Berkas (Create): Kita perlu dua langkah untuk membuat suatu berkas. Pertama, kita harus temukan tempat didalam sistem berkas. Kedua, sebuah entri untuk berkas yang baru harus dibuat dalam direktori. Entri dalam

125 direktori tersebut merekam nama dari berkas dan lokasinya dalam sistem berkas. o Menulis sebuah berkas (Write): Untuk menulis sebuah berkas, kita membuat sebuah system call yang menyebutkan nama berkas dan informasi yang akan di-nulis kedalam berkas. o Membaca Sebuah berkas (Read): Untuk membaca sebuah berkas menggunakan sebuah system call yang menyebut nama berkas yang dimana dalam blok memori berikutnya dari sebuah berkas harus diposisikan. o Memposisikan Sebuah Berkas (Reposition): Direktori dicari untuk entri yang sesuai dan current-file-position diberi sebuah nilai. Operasi ini di dalam berkas tidak perlu melibatkan M/K, selain itu juga diketahui sebagai file seek. o Menghapus Berkas (Delete): Untuk menghapus sebuah berkas kita mencari dalam direktori untuk nama berkas tersebut. Setelah ditemukan, kita melepaskan semua spasi berkas sehingga dapat digunakan kembali oleh berkas-berkas lainnya dan menghapus entry direktori. o Menghapus Sebagian Isi Berkas (Truncate): User mungkin mau menghapus isi dari sebuah berkas, namun menyimpan atributnya. Daripada memaksa pengguna untuk menghapus berkas tersebut dan membuatnya kembali, fungsi ini tidak akan mengganti atribut, kecuali panjang berkas dan mendefinisikan ulang panjang berkas tersebut menjadi nol. Keenam operasi diatas merupakan operasi-operasi dasar dari sebuah berkas yang nantinya dapat dikombinasikan untuk membentuk operasi-operasi baru lainnya. Contohnya apabila kita ingin menyalin sebuah berkas, maka kita memakai operasi create untuk membuat berkas baru, read untuk membaca berkas yang lama, dan write untuk menulisnya pada berkas yang baru. 9.7 Struktur Berkas Berkas dapat di struktur dalam beberapa cara. Cara yang pertama adalah sebuah urutan bytes yang tidak terstruktur. Akibatnya sistem operasi tidak tahu atau peduli apa yang ada dalam berkas, yang dilihatnya hanya bytes. Ini menyediakan fleksibilitas yang maksimum. User dapat menaruh apa pun yang mereka mau dalam berkas, dan sistem operasi tidak membantu, namun tidak juga menghalangi. Sistem Operasi 125

126 Cara berikutnya, adalah dengan record sequence. Dalam model ini, sebuah berkas adalah sebuah urutan dari rekaman-rekaman yang telah ditentukan panjangnya, masing-masing dengan beberapa struktur internal. Artinya adalah bahwa sebuah operasi read membalikan sebuah rekaman dan operasi write menimpa atau menambahkan suatu rekaman. Struktur berkas yang ketiga, adalah menggunakan sebuah tree. Dalam struktur ini sebuah berkas terdiri dari sebuah tree dari rekaman-rekaman tidak perlu dalam panjang yang sama, tetapi masing-masing memiliki sebuah field key dalam posisi yang telah ditetapkan dalam rekaman tersebut. Tree ini disort dalam field key dan mengizinkan pencarian yang cepat untuk sebuah key tertentu. 9.8 Metode Akses Berkas menyimpan informasi. Apabila sedang digunakan informasi ini harus diakses dan dibaca melalui memori komputer. Informasi dalam berkas dapat diakses dengan beberapa cara. Berikut adalah beberapa caranya: o Akses Sekuensial Akses ini merupakan yang paling sederhana dan paling umum digunakan. Informasi di dalam berkas diproses secara berurutan. Sebagai contoh, editor dan kompilator biasanya mengakses berkas dengan cara ini. o Akses Langsung Metode berikutnya adalah akses langsung atau dapat disebut relative access. Sebuah berkas dibuat dari rekaman-rekaman logical yang panjangnya sudah ditentukan, yang mengizinkan program untuk membaca dan menulis rekaman secara cepat tanpa urutan tertentu. 9.9 Struktur Penyimpanan Terdapat konsep-konsep pada penyimpanan secara fisik di Secondary Storage: 1. File 2. Record File Record

127 3. Field 9.10 File - Karakteristik Umum 1. Persistance (bertahan lama) kemampuan untuk dapat diakses di masa datang 2. Sharability dapat digunakan secara bersama oleh beragam 3. Size user dan program mempunyai ukuran relatif lebih besar daripada Main Memory - Karakterisrik khusus 1. File dapat diciptakan dan dihapus 2. File mempunyai nama yang unik 3. File mempunyai parameter perangkat,karena terdapat banyak perangkat dalam 1 sistem 4. File mempunyai parameter user dan direktori Dalam sistem Multiuser, tiap user memiliki direktori sendiri. - Akses terhadap File 1. Pengambilan record Sistem Operasi 127

128 2. Pembaruan record -> update, delete record 3. Penambahan record ke file 4. Reorganisasi file -> rekonstruksi file u/ meningkatkan kinerjanya - Pengelompokan File Berdasarkan kegiatan : 1. Master File (File induk yang menjadi acuan utama proses) a. Tak boleh diperbarui selama proses b. Selalu digunakan/diacu di siklus proses c. Berisi info acuan terdiri dari sifat statis (Nama, NIP) dan dinamis (Nilai ujian) 2. Transaction File ( File terbentuk akibat terjadinya transaksi ) a. Dapat diperbarui ( sering terjadi) b. Bersifat Temporary c. Digunakan untuk memperbarui Master File 3. History File ( File hasil pengolahan masa lalu ) a. File tidak aktif selama kurun waktu tertentu b. Data tersimpan secara kompak/padat c. Kecepatan akses tidak terlalu penting

129 4. Reference File ( File berisi data acuan ) -> Relatif bersifat statis (jarang diperbarui) Berdasarkan Kebutuhan Pemrosesan Data 1. File I/O 2. File Kerja (temporary) -> transaction file 3. Dump File, untuk security 4. File Pustaka. Untuk penunjang proses 9.11 Record 1. Fixed Length Record -> punya panjang field yang tetap 2. Variable Length record -> field di record mempunyai panjang bedabeda Field 1. Fixed Length Field -> menyebabkan rekord berukuran tetap 2. Variable Length record -> menyebabkan rekord berukuran beragam Organisasi File dan Akses Kriteria Umum Kriteria umum kinerja struktur file (organizing data) menurut Wiederhold adl: 1. Redundansi yang kecil (Little Redundancy ) 2. Pengaksesan yang cepat ( Rapid Acces ) 3. Kemudahan dalam memperbarui (Easy of update ) 4. Pemeliharaan yang sederhana ( Simple maintenance ) 5. Kehandalan yang tinggi (High Reliability ) Dalam memenuhi 1 kriteria dapat mengorbankan kriteria lain dan kriteria-kriteria tersebut dapat saling bertentangan. Contoh : Redundansi yang besar, diperlukan akses yang cepat tapi berakibat operasi update lebih rumit dan pemeliharaan lebih kompleks Metriks Merupakan suatu alat ukur (aturan atau rule) untuk mengevaluasi suatu struktur file agar memenuhi tujuan/hasil harapan yang diinginkan. Sistem Operasi 129

130 Rule-rule tersebut adalah : 1. Simplicity (Kesederhanaan) Jika sesuatu memp. alternatif dan semua yang lain memp tujuan yang sama, harus memilih sesuatu itu yang paling sederhana. Walaupun hal ini terlihat jelas, kadang-kadang mengabaikan ketika suatu pekerjaan dilakukan dalam keadaan terburu-buru. 2. Reliability (Kehandalan) Berhubungan dengan fungsi-fungsi dari sesuatu dan yang berkenaan dengan pengeluaran saat terjadi kegagalan pemakaian. Dalam pemilihan sebuah struktur file atau teknik proses, kita ingin siap yang bekerja di bawah kendali keadaan. Tapi kita biasanya tak dapat menjamin kehandalan atau kebenaran program. Kita membuat pemilihan kehandalan yang setaraf dgn aplikasi. 3. Programmability (Pemrograman) Suatu program harus dapat memprogram algoritma proses dalam sejumlah waktu yang layak. Jika tak dapat memenuhi, pilih teknik lain. 4. Maintanability (Pemeliharaan) Sewaktu teknik diprogram, dapat dimodifikasi atau di-update secara mudah. 5. Storage Requirements or time complexity Batasan-batasan penyimpanan yang sudah dibatasi untuk memilih teknik. 6. Computational or time complexity. Performansi merupakan salah satu batasan yang paling berperan dalam suatu sistem softwaredan suatu kekurangan adalah penyebab utama dari kegagalan. Kompleksitas komputasional dari sebuah algoritma mengukur berapa waktu proses yang akan dibutuhkan ketika algoritma itu dijalankan sejumlah data. Kompleksitas komputasi dan ruang merupakan pengukuran kuantitatif. Yang berguna untuk melakukan pemilihan struktur file membuat rekayasa perangkat lunak sebagai Saintis bukan seniman Struktur File Dasar Terdapat 6 struktur file dasar yaitu : 1. Pile 2. Sequential File (SF) 3. Indexed SF 4. Indexed File (File berindeks majemuk)

131 5. Directed Hashed File 6. Multiring File 9.15 Pile Karakteristik dari Pile adalah : 1. Data tersusun berdasarkan kedatangannya/ kronologis. 2. Record-record dapatr variable Length dan tak perlu memiliki sekupulan elemen data yang sama 3. Tak ada keterkaitan antara ukuran file, record dan blok. 4. Data harus disimpan secara lengkap beserta nama atributnya. ( Tak cuma nilai atributnya). Jadi Record terdiri dari sepasang nama field dan nilainya. 5. Komponen PILE adalah file yang berisi data. Sistem Operasi 131

132 Rangkuman Berkas adalah sebuah unit tempat menyimpan informasi. Berkas ini dapat diakses lebih dari satu proses, dapat dibaca, dan bahkan menulis yang baru. Informasi yang disimpan dalam berkas harus persisten, dalam artian tidak hilang sewaktu proses berhenti. Berkas-berkas ini diatur oleh sistem operasi, bagaimana strukturnya, namanya, aksesnya, penggunaannya, perlindungannya, dan implementasinya. Bagian dari sistem operasi yang mengatur masalahmasalah ini disebut sistem berkas. Latihan 1. Sebutkan dan jelaskan rule yang harus dilaksanakan dalam untuk mengevaluasi suatu struktur file agar memenuhi tujuan/hasil harapan yang diinginkan? 2. Sebutkan dan jelaskan kriteria umum kinerja suatu struktur file 3. Fungsi dari berkas? 4. Apa yang dimaksud dengan akses sekuensial dan akses langsung. 5. Sebutkan karakter khusus dari sebuah file

133 10 Direktori Overview Beberapa sistem komputer menyimpan banyak sekali berkas-berkas dalam disk, sehingga diperlukan suatu struktur pengorganisasian data-data agar lebih mudah diatur. Makah hal itu yang sering disebut dengan direktori Tujuan 1. Mahasiswa mengetahui operasi operasi di dalam direktori 2. Mahasiswa mengetahui struktur dari direktori. Sistem Operasi 133

134 10.1 Operasi Direktori Silberschatz, Galvin dan Gagne mengkategorikan operasi-operasi terhadap direktori sebagai berikut: o o o o o o Mencari Berkas Mencari lewat struktur direktori untuk dapat menemukan entri untuk suatu berkas tertentu. berkas-berkas dengan nama yang simbolik dan mirip, mengindikasikan adanya keterkaitan diantara berkas-berkas tersebut. Oleh karena itu, tentunya perlu suatu cara untuk menemukan semua berkas yang benar-benar memenuhi kriteria khusus yang diminta. Membuat berkas berkas-berkas baru perlu untuk dibuat dan ditambahkan ke dalam direktori. Menghapus berkas Saat suatu berkas tidak diperlukan lagi, berkas tsb perlu dihapus dari direktori. Menampillkan isi direktori Menampilkan daftar berkas-berkas yang ada di direktori, dan semua isi direktori dari berkas-berkas dalam daftar tsb. Mengubah nama berkas Nama berkas mencerminkan isi berkas terhadap pengguna. Oleh karena itu, nama berkas harus dapat diubah-ubah ketika isi dan kegunaannya sudah berubah atau tidak sesuai lagi. Mengubah nama berkas memungkinkan posisinya berpindah dalam struktur direktori. Akses Sistem berkas Mengakses tiap direktori dan tiap berkas dalam struktur direktori. Sangatlah dianjurkan untuk menyimpan isi dan stuktur dari keseluruhan sistem berkas setiap jangka waktu tertentu. Menyimpan juga dapat berarti menyalin seluruh berkas ke pita magnetik. Teknik ini membuat suatu cadangan salinan dari berkas tersebut jika terjadi kegagalan sistem atau jika berkas itu tidak diperlukan lagi. Sedangkan Tanenbaum juga menambahkan hal-hal berikut sebagai operasi yang dapat dilakukan terhadap direktori tersebut: o o o Membuka direktori Menutup direktori Menambah direktori

135 o o o Mengubah nama direktori Menghubungkan berkas-berkas di direktori berbeda. Menghapus hubungan berkas-berkas di direktori berbeda Jenis Direktori Direktori Satu Tingkat Direktori Satu Tingkat (Single Level Directory) ini merupakan struktur direktori yang paling sederhana. Semua berkas disimpan dalam direktori yang sama. Gambar 10-1 Direktori satu tingkat Direktori satu tingkat memiliki keterbatasan, yaitu bila berkas bertambah banyak atau bila sistem memiliki lebih dari satu pengguna. Hal ini disebabkan karena tiap berkas harus memiliki nama yang unik Direktori Dua Tingkat Direktori Dua Tingkat (Two Level Directory) membuat direktori yang terpisah untuk tiap pengguna, yang disebut User File Directory (UFD). Ketika pengguna login, master directory berkas dipanggil. MFD memiliki indeks berdasarkan nama pengguna dan setiap entri menunjuk pada UFD pengguna tersebut. Maka, pengguna boleh memiliki nama berkas yang sama dengan berkas lain. Sistem Operasi 135

136 Meski pun begitu, struktur ini masih memiliki kerugian, terutama bila beberapa pengguna ingin mengerjakan tugas secara kerjasama dan ingin mengakses berkas dari salah satu pengguna lain. Beberapa sistem secara sederhana tidak mengizinkan berkas seorang pengguna diakses oleh pengguna lain Gambar 10-2 Direktori Dua Tingkat Direktori dengan Struktur Tree Pada direktori dengan Struktur Tree (Tree-Structured Directory), setiap pengguna dapat membuat subdirektori sendiri dan mengorganisasikan berkasberkasnya. Dalam penggunaan normal, tiap pengguna memiliki apa yang disebut direktori saat ini. Direktori saat ini mengandung berkas-berkas yang baru-baru ini digunakan oleh pengguna. Terdapat dua istilah, path (lintasan) relatif dan lintasan mutlak. Lintasan relatif adalah lintasan yang dimulai dari direktori saat ini, sedangkan lintasan mutlak adalah path yang dimulai dari root directory.

137 Gambar 10-3 Tree Structured Directory Direktori dengan Struktur Graf Asiklik Direktori dengan struktur tree melarang pembagian berkas/direktori. Oleh karena itu, struktur graf asiklik (Acyclic-Structured Directory) memperbolehkan direktori untuk berbagi berkas atau subdirektori. Jika ada berkas yang ingin diakses oleh dua pengguna atau lebih, maka struktur ini menyediakan fasilitas sharing. Sistem Operasi 137

138 Gambar 10-4 Acyclic-Structured Directory Direktori dengan Struktur Graf Umum Masalah yang timbul dalam penggunaan struktur graf asiklik adalah meyakinkan apakah tidak ada siklus. Bila kita mulai dengan struktur direktori tingkat dua dan memperbolehkan pengguna untuk membuat subdirektori, maka kita akan mendapatkan struktur direktori tree. Sangatlah mudah untuk mempertahankan sifat pohon, akan tetapi, bila kita tambahkan sambungan pada direktori dengan struktur pohon, maka sifat pohon akan musnah dan menghasilkan struktur graf sederhana. Bila siklus diperbolehkan dalam direktori, tentunya kita tidak ingin mencari sebuah berkas 2 kali. Algoritma yang tidak baik akan menghasilkan infinite loop dan tidak pernah berakhir. Oleh karena itu diperlukan skema pengumpulan sampah (garbage-collection scheme). Skema ini menyangkut memeriksa seluruh sistem berkas dengan menandai tiap berkas yang dapat diakses. Kemudian mengumpulkan apa pun yang tidak ditandai pada tempat yang kosong. Hal ini tentunya dapat menghabiskan banyak waktu.

139 10.3 Record Blocking Metode Blocking Gambar 10-5 General Graph Directory Record adalah unit u/ penyimpanan data di level logik atau file Ukuran Record (R) terdiri dari Fixed record danvariable Record Blocking Factor ( Bfr) adalah jumlah record yang diterapkan dapat ditampung dalam 1 blok Macam Metode Blocking Berdasar ukuran dan rentangan record, Blocking dibagi 3 metode : 1. Fixed Blocking berisi record yang memp panjang tetap Bfr = B/R Keuntungan : 2. Sederhana 3. Meningkatkan akses acak Kerugian : Terjadi pemborosan di tiap blok 2. Variable Length Spanned Blocking Sistem Operasi 139

140 berisi record-record yang memp. Panjang variabel. Jika 1 record tak dapat dimuat di 1 blok, sebagian record disimpan di blok lain Bfr = (B P)/( R + P ) Keuntungan : 2. Fleksibel bagi user 3. Ukuran Record tak dibatasi ukuran Blok 4. Tak terjadi pemborosan di tiap blok ; P = Pointer blok Kerugian : 1. Sulit diimplementasikan shg sulit dalam pemrograman 2. Mahal dalam operasi pencarian record dan sulit diperbarui. 3. Variable Length Unspanned Blocking Record-record memp. Panjang tak tetap Setiap record harus dimuat di satu blok (Tak dipotongpotong/direntangkan ke blok lain) Bfr = (B -1/2R)/(R+P) Efektifitas Pengaksesan Acak -> ditentukan jumlah data yang dapat diakses Track 1. Penggunaan Track yaitu IF 1 track = 1 blok THEN panjang track = blok terbesar yang dimungkinkan ELSE panjang track = jumlah blok * ukuran blok/track 2. Ukuran track = bit, byte/ word IBG a. IBG u/ mekanisme penyimpan akses berikutnya b. IBG mengurangi kapasitas penyimpanan yang sebenarnya c. Blok berukuran kecil meningkatkan jumlah gap (boros) P (Blok Pointer) Diidentifikasi o/ perangkat

141 Rangkuman Kita sering mendengar tentang direktori, direktori yang biasa kita ketahui adalah hanya suatu wadah untuk menyimpan file. Tetapi secara detail direktori mempunyai tingkatan-tingkatan, seperti dengan satu tingka, dua tingkat, berupa tree maupun berupa graf. Terdapat suatu metode dalam memblocked suatu record yang semuanya talah dijelaskan pada bab ini. Diharapkan mahasiswa dapat mengetahui lebih jelas apa yang dimaksud dengan direktori. Latihan 1. Jelaskan apa yang dimaksud dengan direktori satu dan dua tingkat. 2. Sebutkan dan jelaskan metode blocking Sistem Operasi 141

142 11 Implementasi Sistem Berkas Overview Disk yang merupakan tempat terdapatnya sistem berkas menyediakan sebagian besar tempat penyimpanan dimana sistem berkas akan dikelola. Disk memiliki dua karakteristik penting yang menjadikan disk sebagai media yang tepat untuk menyimpan berbagai macam berkas. Tujuan 1. Mahasiswa mengetahui implementasi dari system berkas di dunia nyata 2. Mahasiswa memahami kinerja dari sistem berkas

143 11.1 Struktur Sistem Berkas Disk yang merupakan tempat terdapatnya sistem berkas menyediakan sebagian besar tempat penyimpanan dimana sistem berkas akan dikelola. Disk memiliki dua karakteristik penting yang menjadikan disk sebagai media yang tepat untuk menyimpan berbagai macam berkas, yaitu: o o Data dapat ditulis ulang di disk tersebut, hal ini memungkinkan untuk membaca, memodifikasi, dan menulis di disk tersebut. Dapat diakses langsung ke setiap blok di disk. Hal ini memudahkan untuk mengakses setiap berkas baik secara berurut maupun tidak berurut, dan berpindah dari satu berkas ke berkas lain dengan hanya mengangkat head disk dan menunggu disk berputar. Gambar 11-1 Disk Organization Sistem Operasi 143

144 Untuk meningkatkan efisiensi I/O, pengiriman data antara memori dan disk dilakukan dalam setiap blok. Setiap blok merupakan satu atau lebih sektor. Setiap disk memiliki ukuran yang berbeda-beda, biasanya berukuran 512 bytes. Sistem operasi menyediakan sistem berkas agar data mudah disimpan, diletakkan dan diambil kembali dengan mudah. Terdapat dua masalah desain dalam membangun suatu sistem berkas. Masalah pertama adalah definisi dari sistem berkas. Hal ini mencakup definisi berkas dan atributnya, operasi ke berkas, dan struktur direktori dalam mengorganisasikan berkas-berkas. Masalah kedua adalah membuat algoritma dan struktur data yang memetakan struktur logikal sistem berkas ke tempat penyimpanan sekunder. Gambar 11-2 Layer File System Sistem berkas dari sistem operasi yang sudah modern diimplementasikan dengan menggunakan struktur berlapis. Keuntungan struktur berlapis ini adalah fleksibilitas yang dimilikinya. Penggunaan dari struktur berlapis ini memungkinkan adanya implementasi yang lebih dari satu secara bersamaan, terutama pada I/O Control dan tingkatan organisasi berkas. Hal ini memungkinkan untuk mendukung lebih dari satu implementasi sistem berkas.

145 Lapisan struktur sistem berkas menghubungkan antara perangkat keras dengan aplikasi program yang ada, yaitu (dari yang terendah): o I/O control, terdiri atas driver device dan interrupt handler. Driver device adalah perantara komunikasi antara sistem operasi dengan perangkat keras. Input didalamnya berisikan perintah tingkat tinggi seperti "ambil blok 133", sedangkan output-nya adalah perintah tingkat rendah, instruksi spesifik perangkat keras yang digunakan oleh controller perangkat keras. o Basic file system, diperlukan untuk mengeluarkan perintah generic ke device driver untuk read dan write pada suatu blok dalam disk. o File-organization module, informasi tentang alamat logika dan alamat fisik dari berkas tersebut. Modul ini juga mengatur sisa disk dengan melacak alamat yang belum dialokasikan dan menyediakan alamat tersebut saat pengguna ingin menulis berkas ke dalam disk. Di dalam File-organization module juga terdapat free- space manager. o Logical file-system, tingkat ini berisi informasi tentang simbol nama berkas, struktur dari direktori, dan proteksi dan sekuriti dari berkas tersebut. Sebuah File Control Block (FCB) menyimpan informasi tentang berkas, termasuk kepemilikan, izin dan lokasi isi berkas. Di bawah ini merupakan contoh dari kerja struktur berlapis ini ketika suatu program mau membaca informasi dari disk. Urutan langkahnya: 1. Application program memanggil sistem berkas dengan system call. Contoh: read (fd, input, 1024) akan membaca section sebesar 1 Kb dari disk dan menempatkannya ke variabel input. 2. Diteruskan ke system call interface. System call merupakan software interrupt. Jadi, interrupt handler sistem operasi akan memeriksa apakah system call yang menginterupsi. Interrupt handler ini akan memutuskan bagian dari sistem operasi yang bertanggung-jawab untuk menangani system call. Interrupt handler akan meneruskan system call. 3. Diteruskan ke logical file system. Memasuki lapisan sistem berkas. Lapisan ini menyediakan system call, operasi yang akan dilakukan dan jenis berkas. Yang perlu ditentukan selanjutnya adalah file organization module yang akan meneruskan permintaan ini. File organization module yang akan digunakan tergantung dari jenis sistem berkas dari berkas yang diminta. Sistem Operasi 145

146 Contoh: Misalkan kita menggunakan LINUX dan berkas yang diminta ada di Windows 95. Lapisan logical file system akan meneruskan permintaan ke file organization module dari Windows Diteruskan ke file organization module. File organization module yang mengetahui pengaturan (organisasi) direktori dan berkas pada disk. Sistem berkas yang berbeda memiliki organisasi yang berbeda. Windows 95 menggunakan VFAT-32. Windows NT menggunakan format NTFS. Linux menggunakan EXT2. Sistem operasi yang paling modern memiliki beberapa file organization module sehingga dapat membaca format yang berbeda. Pada contoh di atas, logical file system telah meneruskan permintaan ke file organization module VFAT32. Modul ini menterjemahkan nama berkas yang ingin dibaca ke lokasi fisik yang biasanya terdiri dari disk antarmuka, disk drive, surface, cylinder, track, sector. 5. Diteruskan ke basic file system. Dengan adanya lokasi fisik, kita dapat memberikan perintah ke piranti keras yang dibutuhkan. Hal ini merupakan tanggung-jawab basic file system. Basic file system ini juga memiliki kemampuan tambahan seperti buffering dan caching. Contoh: Sektor tertentu yang dipakai untuk memenuhi permintaan mungkin saja berada dalam buffers atau caches yang diatur oleh basic file system. Jika terjadi hal seperti ini, maka informasi akan didapatkan secara otomatis tanpa perlu membaca lagi dari disk. 6. I/O Control Tingkatan yang paling rendah ini yang memiliki cara untuk memerintah/memberitahu piranti keras yang diperlukan Kinerja Sistem Berkas Keefisiensian penyimpanan dan waktu akses blok data adalah kriteria yang penting dalam memilih metode yang cocok untuk sistem operasi untuk mengimplementasikan sesuatu. Sebelum memilih sebuah metode alokasi, kita butuh untuk menentukan bagaimana sistem ini akan digunakan. Untuk beberapa tipe akses, contiguous allocation membutuhkan hanya satu akses untuk mendapatkan sebuah blok disk. Sejak kita dapat dengan mudah menyimpan alamat inisial dari sebuah berkas di memori, kita dapat menghitung alamat disk dari blok ke-i (atau blok selanjutnya) dengan cepat dan membacanya dengan langsung.

147 Untuk linked allocation, kita juga dapat menyimpan alamat dari blok selanjutnya di memori dan membacanya dengan langsung. Metode ini bagus untuk akses secara berurutan; untuk akses langsung, bagaimana pun, sebuah akses menuju blok ke-i harus membutuhkan pembacaan disk ke-i. Masalah ini menunjukkan mengapa alokasi yang berurutan tidak digunakan untuk aplikasi yang membutuhkan akses langsung. Sebagai hasilnya, beberapa sistem mendukung berkas-barkas yang diakses langsung dengan menggunakan contiguous allocation dan yang diakses berurutan dengan linked allocation. Di dalam kasus ini, sistem operasi harus mempunyai struktur data yang tepat dan algoritma untuk mendukung kedua metode alokasi. Indexed allocation lebih komplek. Jika blok indeks sudah ada dimemori, akses dapat dibuat secara langsung. Bagaimana pun, menyimpan blok indeks tersebut di memori membutuhkan tempat yang dapat ditolerir. Dengan begitu, kinerja dari indexed allocation tergantung dari struktur indeks, ukuran file, dan posisi dari blok yang diinginkan. Beberapa sistem menggabungkan contiguous allocation dengan indexed allocation dengan menggunakan contiguous allocation untuk berkas-berkas yang kecil (diatas tiga atau empat berkas), dan secara otomatis mengganti ke indexed allocation jika berkas bertambah besar Implementasi Pemberkasan Untuk mengimplementasikan suatu sistem berkas biasanya digunakan beberapa struktur on-disk dan in-memory. Struktur ini bervariasi tergantung pada sistem operasi dan sistem berkas, tetapi beberapa prinsip dasar harus tetap diterapkan. Pada struktur on-disk, sistem berkas mengandung informasi tentang bagaimana mem-boot sistem operasi yang disimpan, jumlah blok, jumlah dan lokasi blok yang masih kosong, struktur direktori, dan berkas individu. Struktur on-disk: o Boot Control Block Informasi yang digunakan untuk menjalankan mesin mulai dari partisi yang diinginkan untuk menjalankan mesin mulai dari partisi yang diinginkan. Dalam UPS disebut boot block. Dalam NTFS disebut partition boot sector. Sistem Operasi 147

148 o o o Partition Block Control Spesifikasi atau detil-detil dari partisi (jumlah blok dalam partisi, ukuran blok, ukuran blok, dsb). Dalam UPS disebut superblock. Dalam NTFS disebut tabel master file. Struktur direktori Mengatur berkas-berkas. File Control Block (FCB) Detil-detil berkas yang spesifik. Di UPS disebut inode. Di NTFS, informasi ini disimpan di dalam tabel Master File. Struktur in-memory: o o o o Tabel Partisi in-memory Informasi tentang partisi yang di-mount. Struktur Direktori in-memory Menyimpan informasi direktori tentang direktori yang paling sering diakses. Tabel system-wide open-file menyimpan open count (informasi jumlah proses yang membuka berkas tsb) menyimpan atribut berkas (pemilik, proteksi, waktu akses, dsb), dan lokasi file blocks. Tabel ini digunakan bersama-sama oleh seluruh proses. Tabel per-process open-file menyimpan pointer ke entri yang benar dalam tabel open- file menyimpan posisi pointer pada saat itu dalam berkas. modus akses Untuk membuat suatu berkas baru, program aplikasi memanggil logical file system. Logical file system mengetahui format dari struktur direktori. Untuk membuat berkas baru, logical file system akan mengalokasikan FCB, membaca direktori yang benar ke memori, memperbaharui dengan nama berkas dan FCB yang baru dan menulisnya kembali ke dalam disk. Beberapa sistem operasi, termasuk UNIX, memperlakukan berkas sebagai direktori. Sistem operasi Windows NT mengimplementasi beberapa system calls untuk berkas dan direktori. Windows NT memperlakukan direktori sebagai sebuah kesatuan yang berbeda dengan berkas. Logical file system dapat memanggil file-organization module untuk memetakan direktori I/O ke diskblock numbers, yang dikirimkan ke sistem berkas dasar dan I/O control system.

149 File- organization module juga mengalokasikan blok untuk penyimpanan datadata berkas. Setelah berkas selesai dibuat, mula-mula harus dibuka terlebih dahulu. Perintah open dikirim nama berkas ke sistem berkas. Ketika sebuah berkas dibuka, struktur direktori mencari nama berkas yang diinginkan. Ketika berkas ditemukan, FCD disalin ke ke tabel system-wide open-file pada memori. Tabel ini juga mempunyai entri untuk jumlah proses yang membuka berkas tersebut. Selanjutnya, entri dibuat di tabel per-process open-file dengan penunjuk ke entri di dalam tabel system-wide open-file. Seluruh operasi pada berkas akan diarahkan melalui penunjuk ini Partisi dan Mounting Setiap partisi dapat merupakan raw atau cooked. Raw adalah partisi yang tidak memiliki sistem berkas dan cooked sebaliknya. Raw disk digunakan jika tidak ada sistem berkas yang tepat. Raw disk juga dapat menyimpan informasi yang dibutuhkan oleh sistem disk RAID dan database kecil yang menyimpan informasi konfigurasi RAID. Informasi boot dapat disimpan di partisi yang berbeda. Semuanya mempunyai formatnya masing-masing karena pada saat boot, sistem tidak punya sistem berkas dari perangkat keras dan tidak dapat memahami sistem berkas. Root partition yang mengandung kernel sistem operasi dan sistem berkas yang lain, di-mount saat boot. Partisi yang lain di-mount secara otomatis atau manual (tergantung sistem operasi). Sistem operasi menyimpan dalam struktur tabel mount dimana sistem berkas di-mount dan jenis dari sistem berkas. Pada UNIX, sistem berkas dapat di-mount di direktori mana pun. Ini diimplementasikan dengan mengatur flag di salinan in-memory dari jenis direktori itu. Flag itu mengindikasikan bahwa direktori adalah puncak mount Sistem Berkas Virtual Suatu direktori biasanya menyimpan beberapa berkas dengan jenis-jenis yang berbeda. Sistem operasi harus dapat menyatukan berkas-berkas berbeda itu Sistem Operasi 149

150 di dalam suatu struktur direktori. Untuk menyatukan berkas-berkas tersebut digunakan metode implementasi beberapa jenis sistem berkas dengan menulis di direktori dan file routine untuk setiap jenis. Sistem operasi pada umumnya, termasuk UNIX, menggunakan teknik berorientasi objek untuk menyederhakan, mengorganisir dan mengelompokkannya sesuai dengan implementasinya. Penggunaan metode ini memungkinkan berkas-berkas yang berbeda jenisnya diimplementasikan dalam struktur yang sama. Implementasi spesifiknya menggunakan struktur data dan prosedur untuk mengisolasi fungsi dasar dari system call. Implementasi sistem berkas terdiri dari 3 lapisan utama: Interface sistem berkas: perintah open, read, write, close dan file descriptor. Virtual File System(VFS) Virtual file system adalah suatu lapisan perangkat lunak dalam kernel yang menyediakan antar muka sistem berkas untuk program userspace. VFS juga menyediakan suatu abstraksi dalam kernel yang mengijinkan implementasi sistem berkas yang berbeda untuk muncul. VFS ini memiliki 2 fungsi yang penting yaitu: o o Memisahkan operasi berkas generic dari implementasinya dengan mendefinisikan VFS antar muka yang masih baru. VFS didasarkan pada struktur file-representation yang dinamakan vnode, yang terdiri dari designator numerik untuk berkas unik network-wide. Sistem berkas lokal dan sistem berkas remote untuk jaringan.

151 Gambar 11-3 Schematic View of Virtual File System 11.6 Implementasi Direktori Sebelum sebuah berkas dapat dibaca, berkas tersebut harus dibuka terlebih dahulu. Saat berkas tersebut dibuka, sistem operasi menggunakan path name yang dimasukkan oleh pengguna untuk mengalokasikan direktori entri yang menyediakan informasi yang dibutuhkan untuk menemukan block disk tempat berkas itu berada. Tergantung dari sistem tersebut, informasi ini dapat berupa alamat disk dari berkas yang bersangkutan (contiguous allocation), nomor dari blok yang pertama (kedua skema linked list), atau nomor dari inode. Dalam semua kasus, fungsi utama dari direktori entri adalah untuk memetakan nama ASCII dari berkas yang bersangkutan kepada informasi yang dibutuhkan untuk mengalokasikan data. Masalah berikutnya yang kemudian muncul adalah dimana atribut yang dimaksud akan disimpan. Kemungkinan paling nyata adalah menyimpan secara langsung di dalam direktori entri, dimana kebanyakan sistem menggunakannya. Untuk sistem yang menggunakan inodes, kemungkinan lain adalah menyimpan atribut ke dalam inode, selain dari direktori entri. Cara Sistem Operasi 151

152 yang terakhir ini mempunyai keuntungan lebih dibandingkan menyimpan dalam direktori entri. Cara pengalokasian direktori dan pengaturan direktori dapat meningkatkan efisiensi, performa dan kehandalan. Ada beberapa macam algoritma yang dapat digunakan Algoritma Linear List Metode paling sederhana. Menggunakan nama berkas dengan penunjuk ke data blok. Proses: Mencari (tidak ada nama berkas yang sama). Menambah berkas baru pada akhir direktori. Menghapus (mencari berkas dalam direktori dan melepaskan tempat yang dialokasikan). Penggunaan suatu berkas: Memberi tanda atau menambahkan pada daftar direktori bebas. Kelemahan: Pencarian secara linier (linier search) untuk mencari sebuah berkas, sehingga implementasi sangat lambat saat mengakses dan mengeksekusi berkas. Solusi:Linked list dan Software Cache Algoritma Hash Table Linear List menyimpan direktori entri, tetapi sruktur data hash juga digunakan.

153 Prose Hash table mengambil nilai yang dihitung dari nama berkas dan mengembalikan sebuah penunjuk ke nama berkas yang ada di linier list. Kelemahan: Ukuran tetap: Adanya ketergantungan fungsi hash dengan ukuran hash table Alternatif: Chained-overflow hash table yaitu setiap hash table mempunyai linked list dari nilai individual dan crash dapat diatasi dengan menambah tempat pada linked list tersebut. Namun penambahan ini dapat memperlambat Direktori pada MS-DOS Merupakan sistem dengan tree hierarchy directory. Mempunyai panjang 32 bytes, yang mencakup nama berkas, atribut, dan nomor dari block disk yang pertama. Nomor dari block disk yang pertama digunakan sebagai indeks dari tabel MS-DOS direktori entri. Dengan sistem rantai, semua blok dapat ditemukan. Dalam MS-DOS, direktori dapat berisi direktori lain, tergantung dari hirarki sistem berkas. Dalam MS-DOS, program aplikasi yang berbeda dapat dimulai oleh setiap program dengan membuat direktori dalam direktori root, dan menempatkan semua berkas yang bersangkutan di dalam sana. Jadi antar aplikasi yang berbeda tidak dapat terjadi konflik Direktori pada UNIX Struktur direktori yang digunakan dalam UNIX adalah struktur direktori tradisional. Seperti yang terdapat dalam gambar direktori entri dalam UNIX, setiap entri berisi nama berkas dan nomor inode yang bersangkutan. Semua informasi dari jenis, kapasitas, waktu dan kepemilikan, serta block disk yang berisi inode. Sistem UNIX terkadang mempunyai penampakan yang berbeda,tetapi pada beberapa kasus, direktori entri biasanya hanya string ASCII dan nomor inode. Sistem Operasi 153

154 Gambar 11-4 Unix Directory Entry Saat berkas dibuka, sistem berkas harus mengambil nama berkas dan mengalokasikan block disk yang bersangkutan, sebagai contoh, nama path /usr/ast/mbox dicari, dan kita menggunakan UNIX sebagai contoh, tetapi algoritma yang digunakan secara dasar sama dengan semua hirarki sistem direktori sistem. Pertama, sistem berkas mengalokasikan direktori root. Dalam UNIX inode yang bersangkutan ditempatkan dalam tempat yang sudah tertentu dalam disk. Kemudian, UNIX melihat komponen pertama dari path, usr dalam direktori root menemukan nomor inode dari direktori /usr. Mengalokasikan sebuah nomor inode adalah secara straight-forward, sejak setiap inode mempunyai lokasi yang tetap dalam disk. Dari inode ini, sistem mengalokasikan direktori untuk /usr dan melihat komponen berikutnya, dst. Saat dia menemukan entri untuk ast, dia sudah mempunyai inode untuk direktori /ust/ast. Dari inode ini, dia dapat menemukan direktorinya dan melihat mbox. Inode untuk berkas ini kemudian dibaca ke dalam memori dan disimpan disana sampai berkas tersebut ditutup. Nama path dilihat dengan cara yang relatif sama dengan yang absolut. Dimulai dari direktori yang bekerja sebagai pengganti root directory. Setiap direktori mempunyai entri untuk. dan ''..'' yang dimasukkan ke dalam saat direktori dibuat. Entri ''.'' mempunyai nomor inode yang menunjuk ke direktori di atasnya/orangtua (parent), ''.'' kemudian melihat../dick/prog.c hanya melihat tanda ''..'' dalam direktori yang bekerja, dengan menemukan nomor inode dalam direktori di atasnya/parent dan mencari direktori disk. Tidak ada mekanisme spesial yang dibutukan untuk mengatasi masalah nama ini. Sejauh masih didalam sistem direktori, mereka hanya merupakan ASCII string yang biasa. Rangkuman

155 Sebagai implementasi direktori yang merupakan implementasi dari Implementasi Sistem Berkas, implementasi direktori memiliki algoritma seperti Linear List dan Hashtable. Direktori pada MS/Dos merupakan sistem dengan direktori hirarki tree. Direktori pada UNIX merupakan struktur direktori tradisional. Sebagai implementasi direktori yang merupakan implementasi dari Implementasi Sistem Berkas, implementasi direktori memiliki algoritma seperti Linear List dan Hashtable. Direktori pada MS/Dos merupakan sistem dengan direktori hirarki tree. Direktori pada UNIX merupakan struktur direktori tradisional Latihan 1. Sebutkan da jelaskan bagian dari sebuah disk 2. Jelaskan urutan langkah dalam membaca suatu data oleh suatu disk 3. Sebutkan struktur yang terdapat di disk 4. Jelaskan algoritma Linear List dan Hash table dan sebutkan aplikasi dari kedua algoritma tersebut di dunia nyata. 5. Apa yang di maksd partisi dan mounting. 12 Manajemen Penyimpan Sekunder Sistem Operasi 155

156 Overview Selain kita mengetahui penyimpanan primer, juga terdapat tentang penyimpan sekunder. Dalam bab ini akan dijelaskan mengenai manajemen penyimpan sekunder, diharapkan mahasiswa dapat membedakan dengan penyimpan yang primer Tujuan 1. Mahasiswa dapat membedakan manajemen penyimpan primer dan sekunder 2. Mahasiswa dapat mengetahui metode yang digunakan untuk manajemen penyimpan sekunder 12.1 Metode Alokasi Kegunaan penyimpanan sekunder yang utama adalah menyimpan berkasberkas yang kita buat, karena sifat disk akan mempertahankan berkas walaupun tidak ada arus listrik. Oleh karena itu, agar kita dapat mengakses berkas-berkas dengan cepat dan memaksimalisasikan ruang yang ada di disk tersebut, maka lahirlah metode-metode untuk mengalokasikan berkas ke disk. Metode-metode yang akan dibahas lebih lanjut dalam buku ini adalah contiguous allocation, linked allocation, dan indexed allocation. Metode-metode

157 tersebut memiliki beberapa kelebihan dan juga kekurangan. Biasanya sistem operasi memilih satu dari metode diatas untuk mengatur keseluruhan berkas Contiguous Allocation Metode ini akan mengalokasikan satu berkas kedalam blok-blok disk yang berkesinambungan atau berurutan secara linier dari disk, jadi sebuah berkas didenifinikan oleh alamat disk blok pertama dan panjangnya dengan satuan blok atau berapa blok yang diperlukannya. Bila suatu berkas memerlukan n buah blok dan blok awalnya adalah a, berarti berkas tersebut disimpan dalam blok dialamat a, a + 1, a + 2, a + 3,..., a + n - 1. Direktori mengindentifikasi setiap berkas hanya dengan alamat blok pertama berkas tersebut disimpan yang dalam contoh di atas adalah a, dan banyaknya blok yang diperlukan untuk mengalokasikan berkas tersebut yang dalam contoh di atas adalah n. Berkas yang dialokasikan dengan metode ini akan mudah diakses, karena pengaksesan alamat a + 1 setelah alamat a tidak diperlukan perpindahan head, jika diperlukan pemindahan head, maka head tersebut akan hanya akan berpindah satu track. Hal tersebut menjadikan metode ini mendukung pengaksesan secara berurutan, tapi metode ini juga mendukung pengaksesan secara langsung, karena bila ingin mengakses blok ke i berarti kita akan mengakses blok a + i. Metode contiguous allocation juga mempunyai beberapa masalah. Diantaranya adalah mencari ruang untuk berkas baru, menentukan seberapa besar ruang yang diperlukan untuk sebuah berkas. Untuk masalah mencari ruang untuk berkas baru, akan di implementasikan oleh managemen ruang kosong. Untuk penentuan ruang kita tidak boleh terlalu kecil atau terlalu besar, bila kita menentukannya terlalu kecil maka ada saatnya berkas tersebut tidak dapat dikembangkan, tapi bila terlalu besar maka akan ada ruang yang sia-sia bila berkas tersebut hanya memerlukan ruang yang kecil. Metode ini dapat menimbulkan fragmentasi eksternal disaat ruang kosong yang ada diantara berkas-berkas yang sudah terisi tidak cukup untuk mengisi berkas baru. Hal ini terjadi karena blok pertama dari suatu berkas itu ditentukan oleh sistem operasi, bila berkas pertama blok pertamanya itu di 1 dan memerlukan 9 blok untuk pengalokasiannya dan berkas kedua blok pertamanya di 11 dan memerlukan 5 blok untuk pengalokasiannya, berarti ruang-kosong diantara berkas tersebut ada 1 blok, yaitu dialamat 10. Blok Sistem Operasi 157

158 tersebut dapat untuk menyimpan berkas, tetapi hanya berkas yang berukuran 1 blok yang dapat disimpan di blok tersebut Gambar 12-1Contiguous Allocation Linked Allocation Metode ini dapat mengatasi masalah yang terjadi pada metode contiguous allocation. Dalam metode ini setiap berkas diidentifikasikan dengan linked list dari blok-blok, jadi blok-blok tersebut tidak harus berkesinambungan dengan blok yang lain. Direktori hanya menyimpan alamat blok pertama dan alamat blok terakhir. Jika kita ingin mengaksess blok kedua, maka harus melihat alamatnya di blok pertama dan begitu seterusnya. Oleh karena itu, metode ini hanya mendukung pengaksesan secara berurutan.

159 Gambar 12-2 Linked Allocation Metode linked allocation memiliki beberapa kerugian, karena petunjuk ke blok berikutnya memerlukan ruang. Bila ukuran petunjuknya 4 byte dari blok yang ukurannya 512 byte, berarti 0,78% dari ruang disk hanya digunakan untuk petunjuk saja. Hal ini dapat diminimalisasikan dengan menggunakan cluster yang menggabungkan 4 blok dalam satu cluster, jadi jumlah petunjuknya akan berkurang dari yang tidak memakai cluster. Paling penting dalam metode ini adalah menggunakan file-allocation table (FAT). Tabel tersebut menyimpan setiap blok yang ada di disk dan diberi nomor sesuai dengan nomor blok. Jadi, direktori hanya menyimpan alamat dari blok pertama saja, dan untuk selanjutnya dilihat dari tabel tersebut yang menunjukkan ke blok berikutnya. Jika kita memakai metode ini, akan menyebabkan mudahnya untuk membuat berkas baru atau mengembangkan berkas sebelumnya. Mencari tempat kosong untuk berkas baru lebih mudah, karena kita hanya mencari angka 0 yang pertama dari isi tabel tersebut. Dan bila kita ingin mengembangkan berkas sebelumnya carilah alamat terakhirnya Sistem Operasi 159

160 yang memiliki ciri tertentu dan ubahlah isi dari tabel tersebut dengan alamat blok penambahan. Alamat terakhir berisi hal yang unik, sebagai contoh ada yang menuliskan -1, tapi ada juga yang menuliskannya EOF (End Of File). Metode linked allocation yang menggunakan FAT akan mempersingkat waktu yang diperlukan untuk mencari sebuah berkas. Karena bila tidak menggunakan FAT, berarti kita harus ke satu blok tertentu dahulu dan baru diketahui alamat blok selanjutnya. Dengan menggunakan FAT kita dapat melihat alamat blok selanjutnya disaat kita masih menuju blok yang dimaksud. Tetapi bagaimana pun ini belum dapat mendukung pengaksesan secara langsung Indexed Allocation Metode yang satu ini memecahkan masalah fragmentasi eksternal dari metode contiguous allocation dan ruang yang cuma-cuma untuk petunjuk pada metode linked allocation, dengan cara menyatukan semua petunjuk kedalam blok indeks yang dimiliki oleh setiap berkas. Jadi, direktori hanya menyimpan alamat dari blok indeks tersebut, dan blok indeks tersebut yang menyimpan alamat dimana blok-blok berkas berada. Untuk berkas yang baru dibuat, maka blok indeksnya di set dengan null. Metode ini mendukung pengaksesan secara langsung, bila kita ingin mengakses blok ke-i, maka kita hanya mencari isi dari blok indeks tersebut yang ke-i untuk dapatkan alamat blok tersebut. Metode indexed allocation tidak menyia-nyiakan ruang disk untuk petunjuk, karena dibandingkan dengan metode linked allocation, maka metode ini lebih efektif, kecuali bila satu berkas tersebut hanya memerlukan satu atau dua blok saja.

161 Gambar 12-3 Indexed Allocation Metode ini juga memiliki masalah. Masalah itu timbul disaat berkas berkembang menjadi besar dan blok indeks tidak dapat menampung petunjukpetunjuknya itu dalam satu blok. Salah satu mekanisme dibawah ini dapat dipakai untuk memecahkan masalah yang tersebut. Mekanisme-mekanisme itu adalah: Sistem Operasi 161

162 o o o Linked scheme: Untuk mengatasi petunjuk untuk berkas yang berukuran besar mekanisme ini menggunakan tempat terakhir dari blok indeks untuk alamat ke blok indeks selanjutnya. Jadi, bila berkas kita masih berukuran kecil, maka isi dari tempat yang terakhir dari blok indeks berkas tersebut adalah null. Namun, bila berkas tersebut berkas besar, maka tempat terakhir itu berisikan alamat untuk ke blok indeks selanjutnya, dan begitu seterusnya. Indeks bertingkat: Pada mekanisme ini blok indeks itu bertingkattingkat, blok indeks pada tingkat pertama akan menunjukkan blokblok indeks pada tingkat kedua, dan blok indeks pada tingkat kedua menunjukkan alamat-alamat dari blok berkas, tapi bila dibutuhkan dapat dilanjutkan kelevel ketiga dan keempat tergantung dengan ukuran berkas tersebut. Untuk blok indeks 2 level dengan ukuran blok byte dan petunjuk yang berukuran 4 byte, dapat mengalokasikan berkas hingga 4 GB, yaitu blok berkas. Combined scheme: Mekanisme ini menggabungkan direct block dan indirect block. Direct block akan langsung menunjukkan alamat dari blok berkas, tetapi pada indirect block akan menunjukkan blok indeks terlebih dahulu seperti dalam mekanisme indeks bertingkat. Single indirect block akan menunjukkan ke blok indeks yang akan menunjukkan alamat dari blok berkas, double indirect block akan menunjukkan suatu blok yang bersifat sama dengan blok indeks 2 level, dan triple indirect block akan menunjukkan blok indeks 3 level. Dimisalkan ada 15 petunjuk dari mekanisme ini, 12 pertama dari petunjuk tersebut adalah direct block, jadi bila ukuran blok 4 byte berarti berkas yang dapat diakses secara langsung didukung sampai ukurannya 48 KB. 3 petunjuk berikutnya adalah indirect block yang berurutan dari single indirect block sampai triple indirect block. Yang hanya mendukung 32 bit petunjuk berkas berarti akan hanya mencapai 4 GB, namun yang mendukung 64 bit petunjuk berkas dapat mengalokasikan berkas berukuran sampai satuan terabyte Managemen Ruang Kosong Sejak ruang disk terbatas, kita butuh menggunakan lagi ruang tersebut dari berkas yang sudah dihapus menjadi berkas yang baru, jika memungkinkan. Untuk menyimpan track dari ruang disk yang kosong, sistem membuat daftar ruang-kosong. Daftar ruang-kosong tersebut merekam semua blok-blok disk yang kosong itu semua tidak dialokasikan di beberapa berkas atau direktori.

163 Bit Vector Seringkali, daftar ruang yang kosong diimplementasikan sebagai sebuah bit map atau bit vector. Setiap blok direpresentasikan dengan 1 bit. Jika bloknya kosong, bitnya adalah 1; jika bloknya ditempati, bitnya adalah 0. Sebagai contoh, mepertimbangkan sebuah disk dimana blok-blok 2, 3, 4, 5, 8, 9, 10, 11, 12, 13, 17, 18, 25, 26, dan 27 kosong, dan sisa dari blok-blok tersebut ditempati. Bit map dari ruang-kosong yaitu Keuntungan utama dari pendekatan ini adalah relatif sederhana dan keefisiensian dalam menemukan blok kosong yang pertama, atau blok-blok kosong n yang berurutan di dalam disk. Sayangnya, bit vectors tidak efisien kecuali seluruh vektor disimpan di memori utama (dan ditulis ke disk secara rutin untuk kebutuhan recovery. Menyimpan vektor tersebut di memori utama memungkinkan untuk disk-disk yang kecil, seperti pada microcomputers, tetapi tidak untuk disk-disk yang besar Linked List Pendekatan yang lainnya untuk managemen ruang-kosong adalah menghubungkan semua blok-blok disk kosong, menyimpan sebuah penunjuk ke blok kosong yang pertama di lokasi yang khusus di disk dan menyimpannya di memori. Blok pertama ini mengandung sebuah penunjuk ke blok disk kosong selanjutnya, dan seterusnya. Sebagai contoh, kita akan menyimpan sebuah penunjuk ke blok 2, sebagai blok kosong pertama. Blok 2 mengandung sebuah penunjuk ke blok 3, yang akan menunjuk ke blok4, yang akan menunjuk ke blok 5, yang akan menunjuk ke blok 8, dan seterusnya. Bagaimana pun, skema ini tidak efisien untuk mengakses daftar tersebut, kita harus membaca setiap blok, yang membutuhkan tambahan waktu M/K. Untungnya, mengakses daftar kosong tersebut itu tidak eksekusi yang teratur. Biasanya, sistem operasi tersebut membutuhkan sebuah blok kosong supaya sistem operasi dapat mengalokasikan blok tersebut ke berkas, lalu blok yang pertama di daftar kosong digunakan. Sistem Operasi 163

164 12.3 Grouping Gambar 12-4 Ruang Kosong Linked List Sebuah modifikasi dari pendekatan daftar-kosong adalah menyimpan alamatalamat dari n blok-blok kosong di blok kosong yang pertama. n-1 pertama dari blok-blok ini sebenarnya kosong. Blok terakhir mengandung alamatalamat dari n blok kosong lainnya, dan seterusnya. Pentingnya implementasi

165 ini adalah alamat-alamat dari blok-blok kosong yang banyak dapat ditemukan secara cepat, tidak seperti di pendekatan linked-list yang standard Counting Daripada menyimpan daftar dari n alamat-alamat disk kosong, kita dapat menyimpan alamat dari blok kosong yang pertama tersebut dan angka n dari blok contiguous kosong yang diikuti blok yang pertama. Setiap masukan di daftar ruang-kosong lalu mengandung sebuah alamat disk dan sebuah jumlah. Meski pun setiap masukan membutuhkan ruang lebih daripada alamat-alamat disk yang sederhana, daftar kesemuanya akan lebih pendek, selama jumlahnya rata-rata lebih besar daripada Efisiensi dan Kinerja Kita sekarang dapat mempertimbangkan mengenai efek dari alokasi blok dan manajeman direktori dalam kinerja dan penggunanan disk yang efisien. Di bagian ini, kita mendiskusikan tentang bermacam-macam teknik yang digunakan untuk mengembangkan efisiensi dan kinerja dari penyimpanan kedua Efisiensi Penggunaan yang efisien dari ruang disk sangat tergantung pada alokasi disk dan algoritma direktori yang digunakan. Sebagai contoh, UNIX mengembangakan kinerjanya dengan mencoba untuk menyimpan sebuah blok data berkas dekat dengan blok inode berkas untuk mengurangi waktu pencarian. Tipe dari data normalnya disimpan di masukan direktori berkas (atau inode) juga membutuhkan pertimbangan. Biasanya, tanggal terakhir penulisan direkam untuk memberikan informasi kepada pengguna dan untuk menentukan jika berkas ingin di back up. Beberapa sistem juga menyimpan sebiuah "last access date", supaya seorang pengguna dapat menentukan kapan berkas terakhir dibaca. Hasil dari menyimpan informasi ini adalah ketika berkas sedang dibaca, sebuah field di struktur direktori harus ditulisi. Prasyarat ini dapat tidak efisien untuk pengaksesan berkas yang berkala. Umumnya setiap persatuan data yang berhubungan dengan berkas membutuhkan untuk dipertimbangkan efeknya pada efisiensi dan kinerja. Sebagai contoh, mempertimbangkan bagaimana efisiensi dipengaruhi oleh ukuran penunjuk-penunjuk yang digunakan untuk mengakses data. Bagaimana Sistem Operasi 165

166 pun, penunjuk-penunjuk membutuhkan ruang lebih untuk disimpan, dan membuat metode alokasi dan managemen ruang-kosong menggunakan ruang disk yang lebih. Satu dari kesulitan memilih ukuran penunjuk, atau juga ukuran alokasi yang tetap diantara sistem operasi, adalah rencana untuk efek dari teknologi yang berubah Kinerja Sekali algoritma sistem berkas dipilih, kita tetap dapat mengembangkan kinerja dengan beberapa cara. Kebanyakan dari disk controller mempunyai memori lokal untuk membuat on-board cache yang cukup besar untuk menyimpan seluruh tracks dengan sekejap. Gambar 12-5 Menggunakan Unified Cached Buffer Beberapa sistem membuat seksi yang terpisah dari memori utama untuk digunakan sebagai disk cache, dimana blok-blok disimpan dengan asumsi mereka akan digunakan lagi dengan secepatnya. Sistem lainnya menyimpan data berkas menggunakan sebuah page cache. Page cache tersebut menggunakan teknik memori virtual untuk menyimpan data berkas sebagai halaman-halaman daripada sebagai blok-blok file-system-oriented. Menyimpan data berkas menggunakan alamat-alamat virtual jauh lebih efisien daripada menyimpannya melalui blok disk fisik. Ini dikenal sebagai unified virtual memory. Sebagian sistem operasi menyediakan sebuah unified buffer cache. Tanpa sebuah unified buffer cache, kita mempunyai situasi panggilan mapping memori butuh menggunakan dua cache, page cache dan buffer cache. Karena sistem

167 memori virtual tidak dapat menggunakan dengan buffer cache, isi dari berkas di dalam buffer cache harus diduplikat ke page cache. Situasi ini dikenal dengan double caching dan membutuhkan menyimpan data sistem-berkas dua kali. Tidak hanya membuang-buang memori, tetapi ini membuang CPU dan perputaran M/K dikerenakan perubahan data ekstra diantara memori sistem. Juga dapat menyebabkan korupsi berkas. Sebuah unified buffer cache mempunyai keuntungan menghindari double caching dan menunjuk sistem memori virtual untuk mengatur data sistem berkas. Gambar 12-6 Tanpa Unified Cache Buffer Rangkuman Kegunaan penyimpanan sekunder yang utama adalah menyimpan berkasberkas yang kita buat, karena sifat disk akan mempertahankan berkas Sistem Operasi 167

168 walaupun tidak ada arus listrik. Oleh karena itu, agar kita dapat mengakses berkas-berkas dengan cepat dan memaksimalisasikan ruang yang ada di disk tersebut, maka lahirlah metode-metode untuk mengalokasikan berkas ke disk. Metode-metode yang akan dibahas lebih lanjut dalam buku ini adalah contiguous allocation, linked allocation, dan indexed allocation. Sejak ruang disk terbatas, kita butuh menggunakan lagi ruang tersebut dari berkas yang sudah dihapus menjadi berkas yang baru, jika memungkinkan. Untuk menyimpan track dari ruang disk yang kosong, sistem membuat daftar ruang-kosong. Daftar ruang-kosong tersebut merekam semua blok-blok disk yang kosong itu semua tidak dialokasikan di beberapa berkas atau direktori. Kita sekarang dapat mempertimbangkan mengenai efek dari alokasi blok dan manajeman direktori dalam kinerja dan penggunanan disk yang efisien. Di bagian ini, kita mendiskusikan tentang bermacam-macam teknik yang digunakan untuk mengembangkan efisiensi dan kinerja dari penyimpanan kedua. Latihan 1. Sebutkan dan jelaskan metode alokasi yang anda ketahui 2. Apa yang dimaksud dengan efisiensi dan kinerja 3. Jelaskan apa yang dimaksud dengan Bit Vector 4. Tujuan dari Grouping dan Counting? 13 Recovery

169 Overview Sejak berkas-berkas dan direktori-direktori dua-duanya disimpan di memori utama dan pada disk, perawatan harus dilakukan untuk memastikan kegagalan sistem tidak terjadi di kehilangan data atau di tidakkonsistennya data. Tujuan 1. Mahasiswa mengetahui cara mengamankan suatu data Pengecekan Rutin Informasi di direktori di memori utama biasanya lebih baru daripada informasi yang ada di disk, karena penulisan dari informasi direktori yang disimpan ke disk tidak terlalu dibutuhkan secepat terjadinya pembaharuan. Mempertimbangkan efek yang memungkinkan terjadinya crash pada komputer. Secara berkala, program khusus akan dijalankan pada saat waktu reboot untuk mengecek dan mengoreksi disk yang tidak konsisten. Pemerikasaan rutin membandingkan data yang ada di struktur direktori Sistem Operasi 169

170 dengan blok data pada disk, dan mencoba untuk memperbaiki ketidakkonsistenan yang ditemukan. Gambar 13-1 Macam macam lokasi Disk caching 13.2 Backup dan Restore Dikarenakan disk magnetik kadang-kadang gagal, perawatan harus dijalankan untuk memastikan data tidak hilang selamanya. Oleh karena itu, program sistem dapat digunakan untuk back up data dari disk menuju ke media penyimpanan yang lainnya, seperti sebuah floppy disk, tape magnetik, atau disk optikal. Recovery dari kehilangan sebuah berkas individu, atau seluruh disk, mungkin menjadi masalah dari restoring data dari backup. Untuk meminimalis kebutuhan untuk menduplikat, kita dapat menggunakan inforamsi dari, masing-masing masukan direktori. Sebagai contoh, jika program backup mengetahui kapan backup terakhir dari berkas telah selesai, dan tanggal terakhir berkas di direktori menunjukkan bahwa berkas tersebut tidak dirubah sejak tanggal tersebut, lalu berkas tersebut tidak perlu diduplikat lagi. Sebuah tipe jadual backup yaitu sebagai berikut:

171 o Day 1: o Menduplikat ke sebuah medium back up semua berkas ke disk. Ini disebut sebuah full backup. o Day 2: o Menduplikat ke medium lainnya semua berkas yang dirubah sejak hari pertama. Ini adalah incremental backup. o Day 3: o Menduplikat ke medium lainnya semua berkas yang dirubah sejak hari ke-2. o Day N: o Menduplikat ke medium lainnya semua berkas yang dirubah sejak hari ke N-1. Perputaran baru dapat mempunyai backupnya ditulis ke semua set sebelumnya, atau ke set yang baru dari media backup. N yang terbesar, tentu saja memerlukan tape atau disk yang lebih untuk dibaca untuk penyimpanan yang lengkap. Keuntungan tambahan dari perputaran backup ini adalah kita dapat menyimpan berkas apa saja yang tidak sengaja terhapus selama perputaran dengan mengakses berkas yang terhapus dari backup hari sebelumnya Log-structured File System Algoritma logging sudah dilakukan dengan sukses untuk manangani masalah dari pemeriksaan rutin. Hasil dari implementasinya dikenal dengan log-based transaction-oriented (atau journaling sistem berkas). Pemanggilan kembali yang mengenai struktur data sistem berkas pada disk-- seperti struktur-struktur direktori, penunjuk-penunjuk blok-kosong, penunjuk-penunjuk FCB kosong--dapat menjadi tidak konsisten dikarenakan adanya system crash. Sebelum penggunaan dari teknik log-based di sisitem operasi, perubahan biasanya dipakaikan pada struktur ini. Perubahanperubahan tersebut dapat diinterupsi oleh crash, dengan hasil strukturnya tidak konsisten. Ada beberapa masalah dengan adanya pendekatan dari menunjuk struktur untuk memechkan dan memperbaikinya pada recovery. Salah satunya adalah ketidakkonsistenan tidak dapat diperbaiki. Pemeriksaan rutin mungkin tidak dapat untuk recover struktur tersebut, yang hasilnya kehilangan berkas dan mungkin seluruh direktori. Sistem Operasi 171

172 Solusinya adalah memakai teknik log-based-recovery pada sistem berkas metadata yang terbaru. Pada dasarnya, semua perubahan metadata ditulis secara berurutan di sebuah log. Masing-masing set dari operasi-operasi yang manampilakan tugas yang spesifik adalah sebuah transaction. Jika sistemnya crashes, tidak akan ada atau ada kelebihan transactions di berkas log. Transactions tersebut tidak akan pernah lengkap ke sistem berkas walaupun dimasukkan oleh sistem operasi, jadi harus dilengkapi. Keuntungan yang lain adalah proses-proses pembaharuan akan lebih cepat daripada saat dipakai langsung ke struktur data pada disk Sistem Berkas Linux Virtual Obyek dasar dalam layer-layer virtual file system 1. File File adalah sesuatu yang dapat dibaca dan ditulis. File ditempatkan pada memori. Penempatan pada memori tersebut sesuai dengan konsep file deskriptor yang dimiliki unix. 2. Inode Inode merepresentasikan obyek dasar dalam file sistem. Inode bisa saja file biasa, direktori, simbolik link dan lain sebagainya. Virtual file sistem tidak memiliki perbedaan yang jelas di antara obyek, tetapi mengacu kepada implementasi file sistem yang menyediakan perilaku yang sesuai. Kernel tingkat tinggi menangani obyek yang berbeda secara tidak sama. File dan inode hampir mirip diantara keduanya. Tetapi terdapat perbedaan yang penting diantara keduanya. Ada sesuatu yang memiliki inode tetapi tidak memiliki file, contohnya adalah simbolik link. Ada juga file yang tidak memiliki inode seperti pipes dan socket. 3. File sistem File system adalah kumpulan dari inode-inode dengan satu inode pembeda yaitu root. Inode lainnya diakses mulai dari root inode dan pencarian nama file untuk menuju ke inode lainnya. File sistem mempunyai beberapa karakteristik yang mencakup seluruh inode dalam file sistem. Salah satu yang terpenting adalah blocksize. 4. Nama inode Semua inode dalam file sistem diakses melalui namanya. Walaupun pencarian nama inode bisa menjadi terlalu berat untuk beberapa sistem, virtual file sistem pada linux tetap memantau cache dan nama inode yang baru saja terpakai agar kinerja meningkat. Cache terdapat di memori sebagai tree, ini

173 berarti jika sembarang inode dari file terdapat di dalam cache, maka parent dari inode tersebut juga terdapat di dalam cache. Virtual file system layer menangani semua pengaturan nama path dari file dan mengubahnya menjadi masukan di dalam cache sebelum mengizinkan file sistem untuk mengaksesnya. Ada pengecualian pada target dari simbolik link, akan diakses file sistem secara langsung. File sistem diharapkan untuk menginterpretasikannya. Sistem Operasi 173

174 Rangkuman Informasi di direktori di memori utama biasanya lebih baru daripada informasi yang ada di disk, karena penulisan dari informasi direktori yang disimpan ke disk tidak terlalu dibutuhkan secepat terjadinya pembaharuan. Dikarenakan disk magnetik kadang-kadang gagal, perawatan harus dijalankan untuk memastikan data tidak hilang selamanya. Oleh karena itu, program sistem dapat digunakan untuk back up data dari disk menuju ke media penyimpanan yang lainnya, seperti sebuah floppy disk, tape magnetik, atau disk optikal. Recovery dari kehilangan sebuah berkas individu, atau seluruh disk, mungkin menjadi masalah dari restoring data dari backup. Algoritma logging sudah dilakukan dengan sukses untuk manangani masalah dari pemeriksaan rutin. Hasil dari implementasinya dikenal dengan log-based transaction-oriented (atau journaling sistem berkas Latihan 1. Sebutkan dan jelaskan objek dasar dalam layer virtual file system 2. Mengapa perlu adanya recovery dan backup 3. Apa yang dimaksud dengan teknik log-based-recovery.

175 14 Sistem Operasi Tersebar 1 Overview Sebelum memulai mempelajari sistem operasi penting bagi kita untuk mengetahui komponen-komponen yang menjadi bagian dari sebuah sistem komputer disertai cara kerjanya. Hal ini disebabkan nantinya sistem operasi bekerja untuk mengatur komponen-komponen tersebut dan menyembunyikan kerumitannya bagi pengembang aplikasi dan para pengguna akhir sistem operasi. Tujuan 1. Tujuan 1 2. Tujuan 2 Sistem Operasi 175

176 14.1 Pendahuluan Pada saat ini semakin berkembangannya dunia Teknologi Informasi yang dimiliki perusahaan mengikuti kebutuhan terhadap pelayanan terhadap pelanggan, konsumen. Hal ini diawali dengan memberikan unit komputer untuk setiap karyawannya agar proses pembuatan surat dan pelayanan administrasi menjadi lebih cepat dan kapabilitas citra perusahaan semakin baik. Beberapa diantaranya bahkan sudah jauh lebih baik dengan membangun sistem terotomatisasi beberpa prosedur kerja yang bersifat rutin dan berkapasitas data yang besar. Proses ini diterapka di beberapa perwakilan perusahaan yang semuanya terintegrasi dengan komputer pusat. Dalam satu dekade terakhir perkembangan dunia Teknologi Informasi telah berkembang dengan terintegrasinya teknologi komputer, teknologi multimedia dan teknologi telekomunikasi. Ketiga komponennya melatarbelakangi lahirnya pengembagan Jaringan komputer pada tingkat lebih lanjut. Dalam penjelasan berikutnya dikenal sebagai sistem tersebar atau sistem terdistribusi Konsep Dasar Sistem Tersebar / Terdistribusi Sistem Tersebar/terdistribusi berasal dari dua kata, Sistem dan Tersebar. Sistem merupakan sekumpulan elemen yang saling tergantung satu sama lain dan membentuk suatu kesatuan untuk menyelesaikan suatu tujuan secara spesifik menjalankan suatu fungsi. Tersebar/terdistribusi berasal dari kata sebar/distribusi yang merupakan kebalikan dari kata sentralisasi, yang artinya penyebaran, sirkulasi, penyerahan pembagian menjadi bagian-bagian yang lebih kecil. Jadi sistem tersebar merupakan sekumpulan komputer otonom (elemenelemen) yang saling berinteraksi secara sistematis dan teratur untuk mendistribusikan data, informasi, proses, objek dan layanan dari dan kepada pengguna yang terkait didalamnya sehingga menghasilkan satu fasilitas komputasi terpadu.

177 Gambar 14-1 Sistem Tersebar Beberapa alasan diterapkan Sistem Terdistribusi antara lain: a. Berbagi pakai sumber daya, akses terhadap sumber daya jarak jauh sama dengan sumber daya lokal. Berbagi pakai printer dan file dari jarak jauh (remote site) Pemrosesan informasi dalam sistem basis data tersebar Melakukan prose remote terhadap perangkat tertentu. b. Mengatasi bottleneck, untuk mempercepat proses komputasi. c. Reliability, melakukan proses penanganan dalam mendeteksi dan menangani kesalahan pada lokasi tertentu, proses pengiriman, dan dan kegagalan re-integrasi lokasi. d. Komunikasi, dengan SisTer memungkinan mampu melakukan proses pengiriman pesan jauh lebih baik Properti dan Karakteristik Sistem Tersebar Sistem Tersebar memiliki dua batasan pokok, yaitu: 1. Tidak clock global, tidak dapat diperolehnya clock global tersinkronisasi secara sempurna. Misalkan jika terdapat satu clock disuatu lokasi, maka proses-proses lain akan mendapatkan nilai clock pada waktu berbeda karena waktu tunda transmisi pesan berbeda. 2. Tidak ada memori bersama. Dengan tidak adanya memori bersama mengakibatkan state sistem terbaru tidak tersedia untuk setiap proses. Sistem Operasi 177

178 14.4 Tipe Sistem Tersebar Sistem Tersebar memiliki dua tipe : a. Network Operating System b. Sistem Operasi Tersebar Network Operating System Penggunaan sistem operasi jaringan diperlukan dalam sistem operasi tersebar. Hal ini latar belakangi oleh: 1. Pengguna Sadar dengan multiplisitas perangkat Akses terhadap sumber daya jarak jauh sama dengan sumber daya lokal. 2. Remote login ke perangakat jauh yang sesuai (telnet, ssh) 3. Remote Desktop (Microsoft Windows). 4. Mentrasfer data dari remote mesin ke lokal mesin, melalui mekanisme File Transfer Protocol (FTP) mechanism Sistem Operasi Tersebar Penerapan sistem operasi tersebar dilatarbelakangi oleh: 1. Pengguna tidak sadar akan multiplisitas perangkat. Contoh: Akses ke Sumber jarak jauh (remote Acces) sama halnya ke Sumber lokal (local resources). 2. Migrasi Data dengan memindahkan seluruh data atau hanya mentransfer file yang diperlukan untuk task langsung. 3. Computation Migration, memindahkan komputasi bukannya data, melalui sistem. 4. Process Migration: Mengeksekusi seluruh proses atau sebagian daripadanya pada situs/tempat yang berbeda. a) Load balancing proses distribusi melalui jaringan agar meratakan beban proses kerja b) Computation speedup subprocesses dapat berjalan pada saat yang bersama di lokasi yang berbeda. c) Hardware preference eksekusi proses yang membutuhkan jenis prosesor tertentu. d) Software preference software yang dibutuhkan hanya pada lokasi tertentu. e) Data access proses yang berjalan secara remote.

179 14.5 Karakteristik Sistem Tersebar Beberapa karakteristik sistem operasi tersebar antara lain: 1. Resource Sharing Setiap sumber daya dapat diakses dan di manipulasi dengan handal dan konsisten, maka pemakaian sumber daya bersama digunakan secara efektif. 2. Openness(keterbukaan) Kemampuan untuk memperluas sistem dengan berbagai cara dengan mudah. Artinya penambahan komponen baru dapat dilakukan oleh programer yang berbeda-beda. Misalnya penambahan program sistem layanan bank tidak harus dilakukan oleh orang yang menciptakan program tersebut, tapi dapat dilakukan oleh programmer yang lain. 3. Concurency (kebersamaan) Banyak proses yang bisa dieksekusi secara bersama, membutuhkan sinkronisasi dalam mengakses sumber daya bersama serta dapat salaing bekerja sama. 4. Scalability Sistem Tersebar dapat diubah dan tetap berjalan dengan baik. Perubahan dilakukan dari segi jumlah pengguna maupun dari segi kekuatan perangkat keras komputer-komputer dalam SisTer itu sendiri. Misalnya mesin ATM dapat dikurangi tanpa mempengaruhi kinerja sistem layanan bank. 5. Fault-Tolerance SisTer diharapkan dapat bertahan terhadap kegagalan, dan tidak memperngaruhi kinerja sistem secara keseluruhan. 6. Transparency(penyembunyian) Hal yang menjadi pokok utama dalam SisTer adalah transparency. Penggunaan banyak pemroses dan data remote tidak terlhat oleh pengguna. Pengguna melihat sistem sebagai uniprosesor maya tunggal, bukan kumpulan mesin terpisah. Transparency meliputi : a. Access Transparency (penyembunyian akses) Seseorang yang bekerja dilingkungan sistem dapat mengakses lingkungan tersebut untuk penyelesaian pekerjaannya. Misal seorang karyawan dapat mencetak dokumennya secara paralel di lokal printer maupun remote printer dalam lingkungan SisTer sehingga pencetakan dokumen dapat diselesaikan. Sistem Operasi 179

180 Remote Printer user Local printer Gambar 14-2 Access Transparency b. Location Transparency (penyembunyian lokasi) Memungkinkan pengaksesan objek tanpa harus tahu lokasinya. Begitupula saat akan mengakses dari mana saja sejauh memiliki fasilitas untuk mengakses ke objek yang di tuju. Database pada lokasi tertentu user Gambar 14-3 Location Transparency c. Replication Transparency Memungkinkan banyak informasi yang digunakan untuk meningkatkan kehandalan dan kinerja tanpa program. Pengguna tidak terpengaruh apakah ia mengakses data orsinil atau replikasi.

181 SisTer Bandung SisTer Jakarta Gambar 14-4 Replication Transparency d. Failure Tranparancy Memungkinkan program atau pemakai menyelesaikan tugasnya tanpa terganggu atau mengetahui terjadinya kegagalan komponen hardware dan software. SisTer Bandung SisTer Jakarta Gambar 14-5 Failure Tranparancy e. Migration Transparancy Memungkinkan perpindahan objek di sistem tanpa mempengaruhi operasi program f. Performance Transparancy Memungkinkan sistem mengkonfigurasi ulang sendiri untuk meningkatkan kinerja ketika beban kerja bertambah. g. Scalling Transparancy Memungkinkan sistem dan aplikasi diperluas (upgrade) tanpa merubah struktur sistem atau program aplikasi. Dengan demikian sistem operasi tersebar adalah program yang mengelola sumber daya-sumber daya di sistem tersebar dan menyediakan antarmuka yang familiar dengan pengguna yang berisi Sistem Operasi 181

182 komputer-komputer otonom yang dihubungkan dengan jaringan komunikasi sehingga terlihat seperti satu sistem uniprosesor tunggal Arsitektur Sistem Terdistribusi Arsitektur didefinisikan sebagai suatu rancangan untuk penyusunan dan operasi komponen komponen suatu sistem, dimana rancangan tersebut mengidentifikasi komponen beserta fungsi masing-masing komponen, konektivitas/hubungan antar komponen, dan mendeskripsikan pemetaan fungsionalitas ke dalam komponen. Dengan demikian arsitektur ini dapat memberikan gambaran fisik dan logikal dari sistem, serta mampu menyediakan spesifikasi dari komponen-komponen sistem dan hubungannya di dalam sistem. Beberapa arsitektur sistem tersebar antara lain ( 1. Client-server client menghubungi server untuk mendapatkan data, kemudian memformat dan menampilkan pada pengguna. Arsitektur ini terdiri dari : a. 2-tier architecture Arsitektur ini menutupi kekurangan dari single tier yaitu dalam hal grafis yang membutuhkan lebih banyak dukungan komputasional dari pada sekedar dumb terminal sederhana. Arsitektur 2-tier ini sebenarnya adalah Client Server itu sendiri. Arsitektur ini terbagi kedalam 2 macam jenis : Thin Client-Thick Server Client menjalankan satu fungsi, yaitu penyaji dari tampilan aplikasi data yang diakses dari server. Ini berarti beban server lebih tinggi di bandingkan client.

183 Gambar 14-6 Thin Client-Thick Server secara fisik Gambar 14-7 Thin Client-Thick Server secara logik Thick Client-Thin Server - Arsitektur ini berfungsi sedikitnya memberi dua peran bagi client, dimana client tidak hanya berperan sebagai penyaji interface saja. Melainkan juga berfungsi mengoperasikan aplikasi, sementara server hanya mengelola data saja sehingga beban client jadi bertambah. Gambar 14-8 Thick Client-Thin Server secara fisik Gambar 14-9 Thick Client-Thin Server secara logical Host-Based Client hanya berfungsi sebagai terminat input dan output saja. Yang melakukan proses adalah server. Sistem Operasi 183

184 Gambar Host Based Cooperative Proses menangani dua sisi yaitu client dan server. Lebih komplek tetapi efissien. Gambar Cooperative b. 3-tier architecture Arsitektur ini terus dikembangkan seiring dengan perkembangan perusahaan. Untuk membangun sistem bisnis berbasis web, perlu dilakukan pemisahan peran server yang menangani aplikasi dan basis data agar kinerja server dapat optimal. Three tier ini merupakan arsitektur Client Server yang memisahkan antara Data Management Tier, Middle Tier dan Presentation Layer dengan penjelasan sebagai berikut: i. Data management tier merupakan server yang dikhususkan untuk menangani pengelolaan basis data ii. Middle tier merupakan komputer server yang dikhususkan untuk menangani aplikasi-aplikasi dimana peosedur-prosedur dan perhitungan-perhitungan yang kompleks dieksekusi. iii. Presentation tier merupakan kompter client yang menjadi interface bagi pengguna untuk memasukan data, mengajukan layanan ke server, dan melihat hasilnya Gambar tier architecture

185 14.7 Client Server c. N-tier architecture Aplikasi client-server dibagi kedalam beberapa layer. N-tier menunjukan banyaknya lapisan yang ada dalam sebuah aplikasi. Lapisan tersebut antara lain : - Presentation layer- berhubungan dengan antarmuka dengan pengguna aplikasi. - Application layer atau business logic layer lapisan ini berisi inti dari aplikasi tersebut dan menyimpan data yang digunakan oleh aplikasi tersebut. - Data layer lapisan ini berbentuk satu atau lebih server basis data yang lokasinya tersebar di berbagai tempat. Model konektivitas pada jaringan yang membedakan fungsi komputer apakah sebagai client atau server. Arsitektur ini menempatkan sebuah komputer sebagai server yang bertugas memberikan layanan kepada terminal-terminal lain (client) yang terhubung dalam sistem jaringan itu. Server dapat bertugas untuk berbagi pakai berkas (file server), Printer (printer server), jalur komunikasi (communication Network). Pada model ini server dapat berfungsi sebagai client (server non-dedicated). Untuk membedakan anatara P2P dengan client server, prinsip kerjanya adalah server menunggu permintaan dari client, memproses dan memberikan hasilnya kepada client, sedangankan client akan mengirimkan permintaan ke server, menunggu proses dan melihat visualisasi hasil prosesnya. Komponen dasar yang membentuk arsitektur client server : 1. Client : merupakan terminal yang digunakan oleh pengguna untuk meminta layanan tertentu yang dibutuhkan. Client dapat berupa PC, ponsel, komukator,robot, televisi, dan peraltan lain yang membutuhkan informasi 2. Middleware : merupakan komponen perantara yang memungkinkan client dan server saling terhubung dan berkomunikasi satu sama lain. Midleware dapat berupa Transaction Monitor (TP), Remote Procedure Calling (RPC) atau Object Request Broker (ORB). Middleware memiliki per8an yang strategis, client dapat mengirimkan pesan atau permintaan ke server, menerjemahkan hasil proses dari server dan mengirimkan hasil proses yang telah diterjemahkan kembali ke client. Sistem Operasi 185

186 3. Server : Merupakan pihak yang menyediakan layanan. Server dapat berupa basis data SQL,MYSQL, Monitor TP, Server groupware, Server Object, atau Web. Ada beberapa tipe jaringan client server yang sudah umum dikenal, yaitu: 1. Server berkas (File Server) Sistem jaringan dimana layanan yang diberikan oleh server adalah berkas, baik aplikasi atau berkas yang dihasilkan oleh aplikasi tersebut. Tipe ini memiliki kelemahan yaitu adanya kepadatan lalu lintas jaringan. Permintaan ` Berkas Client Server Berkas Gambar File Server 2. Server basis data (Database Server) Sistem jaringan dimana layanan yang diberikan oleh server berupa pengolahan dan penyajian data berdasarkan perintah terstruktur yang diberikan client. Gambar Database Server 3. Server transaksi (Transaction Server) - Sistem jaringan dimana layanan yang diberikan oleh server adalah berupa hasil proses dari sekelompok perintah terstruktur yang diberikan oleh client. Perbedaan dengan tipe sebelumnya ada pada server transaksi yang memproses sekelompok perintah terstruktur dari client.

187 Aplikasi Perintah Terstruktur ` Hasil Proses Client Gambar Transaction Server 4. Server groupware (Groupware Server) - Sistem jaringan dimana layanan yang diberikan oleh server adalah berupa fasilitas pemakaian bersama informasi semi-terstruktur diantara pengguna jaringan. Aplikasi Informasi ` Server Groupware Client1 Permintaan ` Client2 Aplikasi Sistem Operasi 187

188 Gambar Server Groupware 5. Server objek (Object server) - Merupakan sistem jaringan dimana layanan yang diberikan server berbentuk objek. Client dan server berkomunikasi melalui objek-objek. Objek merupakan entitas tersendiri yang berisikan sekumpulan data dan fungsi untuk memanipulasi data tersebut. ORB merupakan middleware yang memungkinkan objek client dan server untuk berinteraksi satu sama lain tanpa harus menyesuaikan perangkat keras atau sistem operasi kedua belah pihak Gambar Object Server Remote berarti sumber daya yang tidak terhubung secara langsung dengan komputer. Sumber daya yang terdapat dalam komputer disebut lokal Keterangan: a. Client mengirimkan permintaan berupa objek yang diterima oleh objek local b. ORB lokal mendeteksi bahwa proses memerlukan objek remote sehingga ia mengirimkan objek ke ORB remote

189 c. ORB remote menghasilkan suatu metoda yang berisikan sekumpulan objek yang diperlukan dengan berdasar pada objek yang dikirimkan ORB lokal. Metoda tersebut kemudian dikirim ORB melalui remote ke server. d. Server memanggil objek-objek yang diperlukan oleh metoda yang dikirim oleh ORB remote dan menjalankan metoda tersebut. e. Setelah proses selesai, objek hasil proses kembali ke ORB remote. f. ORB remote mengirimkan objek hasil proses kembali ke ORB lokal dari client yang meminta layanan. g. ORB lokal menghasilkan suatu metoda berdasarkan objek yang dikirimkan oleh server. 6. Server Web (Web Server) - Merupakan jaringan dimana layanan yang diberikan server berupa pengelolaan dan pemakaian data bersama dokumen-dokumen yang saling terhubung. Gambar Server Web Keterangan : a. Client meminta layanan ke server melalui protokol tertentu b. Protokol tersebut menerjemahkan permintaan client agar dapat dimengerti client c. Protokol mengirimkan hasil terjemahan ke server d. setelah menerima permintaan client, server memproses dan mengirimkan hasilnya ke client melalui protokol yang sama Sistem Operasi 189

190 e. Protokol kembali menerjemahkan hasil proses dari server. f. Hasil proses diterjemahkan protokol kemudian dikirim kembali ke client 14.8 Arsitektur Middleware Middleware adalah sebuah aplikasi yang secara logic berada diantara lapisan aplikasi (application layer) dan lapisan data dari sebuah arsitektur layer-layer TCP/IP. Middleware bisa juga disebut protokol. Biasanya program middleware menyediakan layanan pesan (messaging services ) sehingga aplikasi-aplikasi yang berbeda-beda itu dapat berkomunikasi. Sistem middleware mengikat aplikasiaplikasi yang terpisah. Contohnya: server satu memakai redhat(variannya linux), sedang server yang lain memakai sistem operasi windowsnt (variannya windows) dan Machintosh. Server satu memakai database oracle, server yang lain memakai mysql, dan lain-lain. Maka antar server dapat dihubungkan dengan middleware ini. Dengan middleware maka seluruh server yang terhubung akan dijadikan sebagai objek. Kapan status server berubah?, yaitu ketika server yang satu meminta ke server yang lain. Dari "Minta" tadi maka server yang satu menjadi pelayan (tetap sebagai objek dan tetap sebagai server). Sedangkan server yang meminta akan berubah status menjadi peminta/perequest. Kedudukan yang semula objek akan berubah menjadi subjek, dan server seolah-olah menjadi client bagi server yang lain. Nah terjadilah hubungan, sehingga dapat mendistribusikan data antar server. inilah yang menjadi konsep Sistem Tersebar. Perangkat lunak middleware adalah perangkat lunak yang terletak diantara program aplikasi dan pelayanan-pelayanan yang ada di sistim operasi. Adapun fungsi dari middleware adalah: 1. Menyediakan lingkungan pemrograman aplilasi sederhana yang menyembunyikan penggunaan secara detail pelayanan-pelayanan yang ada pada sistem operasi. 2. Menyediakan lingkungan pemrograman aplikasi yang umum yang mencakup berbagai komputer dan sistim operasi. 3. Mengisi kekurangan yang terdapat antara sistem operasi dengan aplikasi, seperti dalam hal: networking, security, database, user interface, dan system administration. Perkembangan middleware dari waktu ke waktu dapat dikatagorikan sebagai berikut : a. On Line Transaction Processing (OLTP), merupakan perkembangan awal dari koneksi antar remote database. Pertama kali ditemukan tahun 1969 oleh seorang engineer di Ford, kemudian diadopsi oleh IBM hingga

191 kini dikenal sebagai proses OLTP. DIGITAL ACMS merupakan contoh lainnya yang sukses pada tahun 70-an dan 80-an. UNIX OLTP lainnya seperti: Encina, Tuxedo pada era 80-an, serta DIGITAL CICS untuk UNIX yang memperkenalkan konsep dowsizing ke pasar. b. Remote Procedure Call (RPC), menyediakan fasilitas jaringan secara transparan. Open Network Computing (ONC) merupakan prototipe pertama yang diperkenalkan awal tahun 70-an. Sun unggul dalam hal ini dengan mengeluarkan suatu standar untuk koneksi ke internet. Distributed Computing Environment (DCE) yang dikeluarkan oleh Open Systems Foundation (OSF) menyediakan fungsi-fungsi ONC yang cukup kompleks dan tidak mudah untuk sistem administrasinya. Gambar Middleware Sistem Operasi 191

1 Tinjau Ulang Sistem Komputer

1 Tinjau Ulang Sistem Komputer 1 Tinjau Ulang Sistem Komputer Overview Sebelum memulai mempelajari sistem operasi penting bagi kita untuk mengetahui komponen-komponen yang menjadi bagian dari sebuah sistem komputer disertai cara kerjanya.

Lebih terperinci

Sistem Operasi. Struktur Sistem Komputer. Adhitya Nugraha. Fasilkom 10/6/2014

Sistem Operasi. Struktur Sistem Komputer. Adhitya Nugraha. Fasilkom 10/6/2014 Sistem Operasi Struktur Sistem Komputer Adhitya Nugraha 2014 adhitya@dsn.dinus.ac.id Fasilkom 10/6/2014 Objectives Mahasiswa mengetahui komponen-komponen yang membangun sebuah sistem komputer. Mahasiswa

Lebih terperinci

Struktur Sistem Komputer

Struktur Sistem Komputer Struktur Sistem Komputer ARSITEKTUR UMUM SISTEM KOMPUTER Sistem Komputer Sistem komputer terdiri atas CPU dan sejumlah perangkat pengendali yang terhubung melalui sebuah bus yang menyediakan akses ke memori

Lebih terperinci

Mahasiswa dapat memahami konsep dasar deskripsi dan kontrol pada proses

Mahasiswa dapat memahami konsep dasar deskripsi dan kontrol pada proses Deskripsi dan Kontrol Proses (Pertemuan ke-3) Agustus 2014 Pokok Bahasan Pokok Bahasan: Deskripsi dan Kontrol Proses Sub Pokok Bahasan: Konsep proses Elemen-elemen proses Model proses 2 status, 5 status,

Lebih terperinci

SISTEM KOMPUTER PEMROSES (CPU) Empat komponen Sistem Komputer : Pemroses Memori Utama Perangkat Masukan dan Keluaran Interkoneksi Antar Komponen

SISTEM KOMPUTER PEMROSES (CPU) Empat komponen Sistem Komputer : Pemroses Memori Utama Perangkat Masukan dan Keluaran Interkoneksi Antar Komponen SISTEM KOMPUTER Empat komponen Sistem Komputer : Pemroses Memori Utama Perangkat Masukan dan Keluaran Interkoneksi Antar Komponen PEMROSES (CPU) CPU = Central Processing Unit Pemroses berfungsi mengendalian

Lebih terperinci

Struktur Sistem Komputer

Struktur Sistem Komputer Struktur Sistem Komputer Pengampu Mata Kuliah Casi Setianingsih (CSI) Hp : 081320001220 (WA Only) Email Tugas : casie.sn@gmail.com Email Tel-U : setiacasie@telkomuniversity.ac.id Komposisi Penilaian Quiz

Lebih terperinci

Mahasiswa dapat memahami konsep dasar deskripsi dan kontrol pada proses

Mahasiswa dapat memahami konsep dasar deskripsi dan kontrol pada proses Deskripsi dan Kontrol Proses (Pertemuan ke-4) Agustus 2014 Pokok Bahasan Pokok Bahasan: Deskripsi dan Kontrol Proses Sub Pokok Bahasan: TIU: TIK: Model proses 7 status Struktur kontrol sistem operasi dan

Lebih terperinci

APLIKASI KOMPUTER. Komponen Dasar Komputer & Sistem Operasi. Chalifa Chazar MN- APLIKASI KOMPUTER (MANAJEMEN)

APLIKASI KOMPUTER. Komponen Dasar Komputer & Sistem Operasi. Chalifa Chazar  MN- APLIKASI KOMPUTER (MANAJEMEN) APLIKASI KOMPUTER Komponen Dasar Komputer & Sistem Operasi MN- APLIKASI KOMPUTER (MANAJEMEN) Chalifa Chazar www.script.id chalifa.chazar@gmail.com Tujuan Pembelajaran Mahasiswa mengetahui komponen-komponen

Lebih terperinci

MANAJEMEN PROSES. Pointer State proses Keadaan proses: Keadaan mungkin, new, ready, running, waiting, halted, dan juga banyak lagi.

MANAJEMEN PROSES. Pointer State proses Keadaan proses: Keadaan mungkin, new, ready, running, waiting, halted, dan juga banyak lagi. MANAJEMEN PROSES 1. Konsep Proses a. Definisi Proses Aktivitas yang sedang terjadi, sebagaimana digambarkan oleh nilai pada program counter dan isi dari daftar prosesor/ processor s register. Suatu proses

Lebih terperinci

Soal-jawab Quiz 1. Oleh: Endro Ariyanto (END) Oktober 2008

Soal-jawab Quiz 1. Oleh: Endro Ariyanto (END) Oktober 2008 Quiz 1 Oleh: Endro Ariyanto (END) Oktober 2008 1. Tuliskan 4 komponen utama komputer! (nilai 12) a. CPU b. Memori c. Modul I/O d. Sistem bus 2. Apa kepanjangan dari MAR dan MBR? (nilai 6) MAR = Memory

Lebih terperinci

Sistem Operasi Pertemuan 1 Arsitektur Komputer. (Penyegaran) H u s n i Lab. Sistem Komputer & Jaringan Teknik Informatika Univ.

Sistem Operasi Pertemuan 1 Arsitektur Komputer. (Penyegaran) H u s n i Lab. Sistem Komputer & Jaringan Teknik Informatika Univ. Sistem Operasi 2009 Pertemuan 1 Arsitektur Komputer (Penyegaran) H u s n i Lab. Sistem Komputer & Jaringan Teknik Informatika Univ. Trunojoyo Ikhtisar Elemen Utama dari Komputer Processor Main Memory Input/Output

Lebih terperinci

Dukungan Sistem Operasi :

Dukungan Sistem Operasi : Dukungan Sistem Operasi : Kontrol Program, Penjadwalan dan Manajemen Memory STMIK-AUB SURAKARTA 1 Apa itu Sistem Operasi? Sistem operasi merupakan program yang mengontrol eksekusi program aplikasi dan

Lebih terperinci

1.Proses control block dalam istilah lain Taks controlling block, Taks struct, atau Switchframe. Jelaskan dan berikan gambaran proses control block?

1.Proses control block dalam istilah lain Taks controlling block, Taks struct, atau Switchframe. Jelaskan dan berikan gambaran proses control block? Nama : Rahmat Hidayat Nim : 13121022 Prodi : Sistem informasi Matakuliah : Sistem Operasi 1.Proses control block dalam istilah lain Taks controlling block, Taks struct, atau Switchframe. Jelaskan dan berikan

Lebih terperinci

Sistem Operasi Pertemuan 3 Deskripsi & Kendali Proses. H u s n i Lab. Sistem Komputer & Jaringan Teknik Informatika Univ.

Sistem Operasi Pertemuan 3 Deskripsi & Kendali Proses. H u s n i Lab. Sistem Komputer & Jaringan Teknik Informatika Univ. Sistem Operasi 2009 Pertemuan 3 Deskripsi & Kendali Proses H u s n i Lab. Sistem Komputer & Jaringan Teknik Informatika Univ. Trunojoyo Ikhtisar Bagaimana proses direpresentasikan & dikendalikan oleh SO.

Lebih terperinci

STRUKTUR SISTEM OPERASI

STRUKTUR SISTEM OPERASI STRUKTUR SISTEM OPERASI STRUKTUR SISTEM OPERASI 1. Komponen-Komponen Sistem a. Manajemen Proses Proses adalah keadaan ketika sebuah program sedang di eksekusi. Sebuah proses membutuhkan beberapa sumber

Lebih terperinci

ORGANISASI KOMPUTER 1

ORGANISASI KOMPUTER 1 ORGANISASI KOMPUTER 1 STMIK AUB SURAKARTA Latar Belakang: tentang I/ O Input / Output: bagaimana menangani komunikasi dan transfer data antara periferal dengan CPU dan memory Periferal? Apakah itu periferal?

Lebih terperinci

STRUKTUR SISTEM OPERASI

STRUKTUR SISTEM OPERASI STRUKTUR SISTEM OPERASI 1. Komponen-Komponen Sistem a. Manajemen Proses Proses adalah keadaan ketika sebuah program sedang di eksekusi. Sebuah proses membutuhkan beberapa sumber daya untuk menyelesaikan

Lebih terperinci

Sistem komputer. Tiga komponen utama :

Sistem komputer. Tiga komponen utama : Sistem komputer Tiga komponen utama : CPU, Memori (primer dan sekunder) Peralatan masukan/keluaran (I/O devices) seperti printer, monitor, keyboard, mouse, dan modem Latar Belakang I/O Input / Output:

Lebih terperinci

Proses. - yaitu program yang sedang dieksekusi Proses merupakan satuan kerja terkecil yang secara individual dijadwalkan oleh sistem operasi

Proses. - yaitu program yang sedang dieksekusi Proses merupakan satuan kerja terkecil yang secara individual dijadwalkan oleh sistem operasi Proses - yaitu program yang sedang dieksekusi Proses merupakan satuan kerja terkecil yang secara individual dijadwalkan oleh sistem operasi Istilah istilah proses 1. MultiProgramming (MultiTasking) 2.

Lebih terperinci

Recap. Proses. Proses. Multiprogramming. Multiprocessing 9/16/2016. Ricky Maulana Fajri

Recap. Proses. Proses. Multiprogramming. Multiprocessing 9/16/2016. Ricky Maulana Fajri Recap Pengertian Sistem Operasi? Generasi Sistem Operasi? Arsitektur Sistem Operasi Ricky Maulana Fajri Proses Outline Proses Multiprogramming, Multiprocessing, Distributed Processing Diagram State Proses

Lebih terperinci

Perbedaan Proses dan Program

Perbedaan Proses dan Program PROSES Definisi Proses Proses adalah program yang sedang dieksekusi, termasuk didalamnya nilai-nilai dalam program counter, register, dan variabel-variabel yang ada. Definisi Proses Proses adalah konsep

Lebih terperinci

Arsitektur Komputer II AUB SURAKARTA

Arsitektur Komputer II AUB SURAKARTA Arsitektur Komputer II STMIK AUB SURAKARTA Tiga komponen utama dalam sistem komputer: CPU, Memori (primer dan sekunder) Peralatan masukan/keluaran (I/O devices) seperti printer, monitor, keyboard, mouse,

Lebih terperinci

Sistem Operasi PENGATURAN PROSES

Sistem Operasi PENGATURAN PROSES Sistem Operasi PENGATURAN PROSES Konsep Proses Dalam Sistem Operasi Jenis Proses Subject Penjadwalan Proses Deadlock Concurency Sebuah perangkat lunak yang deprogram sebagai penghubung antara Sistem Operasi

Lebih terperinci

Konsep Proses. Proses adalah suatu program yang sedang diesekusi (running) Pada saat proses berlangsung :

Konsep Proses. Proses adalah suatu program yang sedang diesekusi (running) Pada saat proses berlangsung : SISTEM OPERASI Konsep Proses Proses adalah suatu program yang sedang diesekusi (running) Pada saat proses berlangsung : Program counter Tempat untuk menyimpan alamat suatu proses yang akan diesekusi selanjutnya

Lebih terperinci

4 Implementasi Proses

4 Implementasi Proses 4 Implementasi Proses Implementasi Proses Tiap proses -> state proses -> dicatat SO -> beragam tabel/senarai Tabel memori Tabel I/O Tabel berkas Tabel proses Tabel Memori Menjaga keutuhan antara memori

Lebih terperinci

Struktur Sistem Operasi

Struktur Sistem Operasi Struktur Sistem Operasi Konsep Sistem Operasi resource manager : pengelola seluruh sumber daya yang terdapat pada sistem komputer extended machine : menyediakan sekumpulan layanan ke pemakai sehingga memudahkan

Lebih terperinci

Sebagai Kordinator, yang memberikan fasilitas sehingga segala aktivitas yang kompleks dapat dikerjakan dalam urutan yang benar.

Sebagai Kordinator, yang memberikan fasilitas sehingga segala aktivitas yang kompleks dapat dikerjakan dalam urutan yang benar. 1. Sistem operasi adalah sekumpulan perintah dasar yang berperan untuk menjalankan dan mengoperasikan computer Fungsi Sistem Operasi : Sebagai Kordinator, yang memberikan fasilitas sehingga segala aktivitas

Lebih terperinci

STRUKTUR CPU. Arsitektur Komputer

STRUKTUR CPU. Arsitektur Komputer STRUKTUR CPU Arsitektur Komputer Tujuan Mengerti struktur dan fungsi CPU yaitu dapat melakukan Fetch instruksi, interpreter instruksi, Fetch data, eksekusi, dan menyimpan kembali. serta struktur dari register,

Lebih terperinci

Aditya Wikan Mahastama

Aditya Wikan Mahastama ARSITEKTUR DAN ORGANISASI KOMPUTER Aditya Wikan Mahastama mahas@ukdw.ac.id Pengaturan Transfer Data dan Modul Input-Output 2 UNIV KRISTEN DUTA WACANA GENAP 1213 v2 Komunikasi Antar Komponen Komputer Siapa,

Lebih terperinci

MODUL 4 KONSEP PROSES, KONKURENSI, MANAJEMEN PROSES (1) M. R A J A B F A C H R I Z A L - S I S T E M O P E R A S I - M O D U L 4

MODUL 4 KONSEP PROSES, KONKURENSI, MANAJEMEN PROSES (1) M. R A J A B F A C H R I Z A L - S I S T E M O P E R A S I - M O D U L 4 MODUL 4 KONSEP PROSES, KONKURENSI, MANAJEMEN PROSES (1) M. R A J A B F A C H R I Z A L - S I S T E M O P E R A S I - M O D U L 4 1 PROSES Proses adalah sebuah program yang sedang dijalankan(eksekusi).

Lebih terperinci

DCH1B3 Konfigurasi Perangkat Keras Komputer. Input/Output

DCH1B3 Konfigurasi Perangkat Keras Komputer. Input/Output DCH1B3 Konfigurasi Perangkat Keras Komputer Input/Output 1 9/13/2016 Masalah Input/Output Berbagai macam periferal yang begitu luas Mengirimkan sejumlah data yang berbeda Pada kecepatan berbeda-beda Dalam

Lebih terperinci

BAB I KONSEP DASAR PERANGKAT KOMPUTER

BAB I KONSEP DASAR PERANGKAT KOMPUTER SISTEM OPERASI BAB I KONSEP DASAR PERANGKAT KOMPUTER Komputer yang saat ini beredar merupakan computer modern, yang secara garis besar dapat dibagi ke dalam tiga kelompok besar yaitu : 1. Perangkat Keras

Lebih terperinci

Sistem Operasi. Teknologi Informasi

Sistem Operasi. Teknologi Informasi Sistem Operasi Teknologi Informasi Pembahasan Definisi Sistem Operasi. Peran Sistem Operasi dalam Sistem Komputer. Tujuan Sistem Operasi. Sejarah perkembangan Sistem Operasi. Proses Booting Komputer BIOS

Lebih terperinci

Direktori yang diperlihatkan pada gambar 1. tersebut adalah untuk satu unit (mis. disk pack atau tape reel) dari penyimpanan sekunder. Labelnya berisi

Direktori yang diperlihatkan pada gambar 1. tersebut adalah untuk satu unit (mis. disk pack atau tape reel) dari penyimpanan sekunder. Labelnya berisi PENGENALAN KONTROL INPUT/OUTPUT DEFINISI DAN PERSYARATAN KONTROL I/O Sebuah sistem kontrol I/O bertujuan untuk memberikan bantuan kepada user untuk memungkinkan mereka mengakses berkas, tanpa memperhatikan

Lebih terperinci

Rahmady Liyantanto liyantanto.wordpress.com

Rahmady Liyantanto liyantanto.wordpress.com Rahmady Liyantanto liyantanto@gmail.com liyantanto.wordpress.com Sistem Operasi D3 Manajemen Informatika Universitas Trunojoyo Pengolahan perangkat I/O merupakan aspek perancangan sistem Operasi yang terluas

Lebih terperinci

BAB 2 STRUKTUR SISTEM OPERASI. Komponen Sistem Operasi

BAB 2 STRUKTUR SISTEM OPERASI. Komponen Sistem Operasi BAB 2 STRUKTUR SISTEM OPERASI Komponen Sistem Operasi Review : Blok sistem komputer bus (saluran) data Piranti masukan Port I/O Bus kendali CPU Bus kendali Piranti keluaran bus (saluran) alamat Memori

Lebih terperinci

Pertemuan 2. Struktur Sistem Operasi

Pertemuan 2. Struktur Sistem Operasi Pertemuan 2 Struktur Sistem Operasi Struktur Sistem Operasi Komponen Sistem Layanan Sistem Operasi System Calls Program System Struktur System Virtual Machines System Design dan Implementation System Generation

Lebih terperinci

Pertemuan 2 Organisasi Komputer II. Struktur & Fungsi CPU (I)

Pertemuan 2 Organisasi Komputer II. Struktur & Fungsi CPU (I) Pertemuan 2 Organisasi Komputer II Struktur & Fungsi CPU (I) 1 Menjelaskan tentang komponen utama CPU dan Fungsi CPU Membahas struktur dan fungsi internal prosesor, organisasi ALU, control unit dan register

Lebih terperinci

Struktur Sistem Komputer. Abdullah Sistem Informasi Universitas Binadarma

Struktur Sistem Komputer. Abdullah Sistem Informasi Universitas Binadarma Struktur Sistem Komputer Abdullah Sistem Informasi Universitas Binadarma Pembahasan Operasi Sistem Komputer Struktur I/O Struktur Storage Hirarki Storage Proteksi Perangkat Keras Sistem Arsitektur Umum

Lebih terperinci

PENGATURAN PROSES. Proses adalah program yang sedangdieksekusi atau sofware yang sedang dilaksanakan.

PENGATURAN PROSES. Proses adalah program yang sedangdieksekusi atau sofware yang sedang dilaksanakan. PENGATURAN PROSES Proses adalah program yang sedangdieksekusi atau sofware yang sedang dilaksanakan. 1. Konsep Dasar : Multiprogramming system. Melakukan proses satu persatu secara bergantian dalam waktu

Lebih terperinci

Sistem Operasi Pertemuan 4 Thread, SMP & Microkernel. H u s n i Lab. Sistem Komputer & Jaringan Teknik Informatika Univ.

Sistem Operasi Pertemuan 4 Thread, SMP & Microkernel. H u s n i Lab. Sistem Komputer & Jaringan Teknik Informatika Univ. Sistem Operasi 2009 Pertemuan 4 Thread, SMP & Microkernel H u s n i Lab. Sistem Komputer & Jaringan Teknik Informatika Univ. Trunojoyo Ikhtisar Thread: Kepemilikan sumber daya dan Eksekusi Symmetric Multiprocessing

Lebih terperinci

Sistem Operasi dalam bahasa Inggrisnya disebut Operating System, atau biasa di singkat dengan OS.

Sistem Operasi dalam bahasa Inggrisnya disebut Operating System, atau biasa di singkat dengan OS. DASAR SISTEM OPERASI Sistem Operasi Sistem Operasi dalam bahasa Inggrisnya disebut Operating System, atau biasa di singkat dengan OS. Sistem operasi merupakan sebuah penghubung antara pengguna dari komputer

Lebih terperinci

Tipe Sistem Operasi. Stand alone Network Embedded

Tipe Sistem Operasi. Stand alone Network Embedded SISTEM OPERASI Tipe Sistem Operasi Stand alone Network Embedded Versi Windows Sistem Operasi Windows Version Windows 3.x Windows NT 3.1 Windows 95 Windows NT Workstation 4.0 Windows 98 Windows Millennium

Lebih terperinci

3. Sebutkan perbedaan program dan proses berdasarkan keberadaan,sifat dan unsur pembentukan Jawab : Timeout. Dispatch.

3. Sebutkan perbedaan program dan proses berdasarkan keberadaan,sifat dan unsur pembentukan Jawab : Timeout. Dispatch. Soal Persiapan UAS Sistem Operasi 1. Sebutkan kelemahan dan kelebihan windows vista, leopard dan ubuntu. jawab : - Kelemahan : a. vista : harga yang mahal, Membutuhkan spesifikasi hardware yang sangat

Lebih terperinci

P10 Media I/O Universitas Mercu Buana Yogyakarta

P10 Media I/O Universitas Mercu Buana Yogyakarta P10 Media I/O Universitas Mercu Buana Yogyakarta A. Sidiq P. 1 Sistem Komputer Komponen utama sistem komputer : CPU Memory (Primary & Secondary) I/O Devices Ex : I Keyboard, Mouse, Modem Ex : O Monitor,

Lebih terperinci

Departemen Ilmu Komputer/ Informatika Universitas Diponegoro Semester Gasal 2017/ 2018

Departemen Ilmu Komputer/ Informatika Universitas Diponegoro Semester Gasal 2017/ 2018 SIS TEM OPERASI Departemen Ilmu Komputer/ Informatika Universitas Diponegoro Semester Gasal 2017/ 2018 Gambaran Umum Sistem Operasi 1. Sistem Operasi? 2. Tujuan mempelajari Sistem Operasi 3. Fungsi dan

Lebih terperinci

Hanif Fakhrurroja, MT

Hanif Fakhrurroja, MT Pertemuan 6 Organisasi Komputer CPU dan Sistem Bus Hanif Fakhrurroja, MT PIKSI GANESHA, 2013 Hanif Fakhrurroja @hanifoza hanifoza@gmail.com Agenda Pertemuan 6 1 CPU 2 Sistem Bus Pendahuluan Video CPU CPU

Lebih terperinci

Arsitektur Dan Organisasi Komputer. Pengantar Arsitektur Organisasi Komputer

Arsitektur Dan Organisasi Komputer. Pengantar Arsitektur Organisasi Komputer Arsitektur Dan Organisasi Komputer Pengantar Arsitektur Organisasi Komputer 1.1 Komputer Komputer adalah sebuah mesin hitung elektronik yang secara cepat menerima informasi masukan digital dan mengolah

Lebih terperinci

Tahun Akademik 2014/2015 Semester II. DIG1I3 - Instalasi dan Penggunaan Sistem Operasi

Tahun Akademik 2014/2015 Semester II. DIG1I3 - Instalasi dan Penggunaan Sistem Operasi Tahun Akademik 2014/2015 Semester II DIG1I3 - Instalasi dan Penggunaan Sistem Operasi Manajemen I/O Mohamad Dani (MHM) (mohamad.dani@gmail.com) Saluran Youtube saya : youtube.com/danstama Hanya dipergunakan

Lebih terperinci

Input : Memasukkan data dari luar kedalam mikroprosesor Contoh: Keyboard, mouse

Input : Memasukkan data dari luar kedalam mikroprosesor Contoh: Keyboard, mouse Input Output Input : Memasukkan data dari luar kedalam mikroprosesor Contoh: Keyboard, mouse Output: Menampilkan data Contoh: Monitor, printer Unit Input/Output dalam bekerja memerlukan sinyal kontrol

Lebih terperinci

STRUKTUR FUNGSI CPU. Menjelaskan tentang komponen utama CPU. Membahas struktur dan fungsi internal prosesor, organisasi ALU, control unit dan register

STRUKTUR FUNGSI CPU. Menjelaskan tentang komponen utama CPU. Membahas struktur dan fungsi internal prosesor, organisasi ALU, control unit dan register Organisasi Komputer STRUKTUR FUNGSI CPU 1 Tujuan Menjelaskan tentang komponen utama CPU dan Fungsi CPU Membahas struktur dan fungsi internal prosesor, organisasi ALU, control unit dan register Menjelaskan

Lebih terperinci

Model Proses : 1. Sequential Process / bergantian 2. Multiprogramming 3. CPU Switching peralihan prosedur dalam mengolah 1 proses ke proses lainnya.

Model Proses : 1. Sequential Process / bergantian 2. Multiprogramming 3. CPU Switching peralihan prosedur dalam mengolah 1 proses ke proses lainnya. Nama : Windy Lia Safitri Nim : 1111465649 Tugas Mandiri 2 Interupsi pada system operasi Proses adalah sebuah program yang sedang dieksekusi. Sedangkan program adalah kumpulan instruksi yang ditulis ke

Lebih terperinci

Pertemuan Ke-8 Unit I/O (Unit Masukan dan Keluaran)

Pertemuan Ke-8 Unit I/O (Unit Masukan dan Keluaran) Pertemuan Ke-8 Unit I/O (Unit Masukan dan Keluaran) Sistem komputer memiliki tiga komponen utama, yaitu : CPU, memori (primer dan sekunder), dan peralatan masukan/keluaran (I/O devices) seperti printer,

Lebih terperinci

SISTEM OPERASI TERDISTRIBUSI

SISTEM OPERASI TERDISTRIBUSI SISTEM OPERASI TERDISTRIBUSI PENGANTAR DATA TERDISTRIBUSI Materi: 1. Pendahuluan 2. Manfaat Sistem Operasi Terdistribusi 3. Komponen Inti Sistem Operasi Pertemuan: 5 Pendahuluan Sistem operasi terdistribusi

Lebih terperinci

William Stallings Computer Organization and Architecture

William Stallings Computer Organization and Architecture William Stallings Computer Organization and Architecture Chapter 3 Sistem Bus (sistem dan struktur interkoneksi komputer) Konsep Program Sistem Hardware-nya tidak dapat diubah-ubah Fungsi kerja hardware

Lebih terperinci

PROSES. Sistem Terdistribusi

PROSES. Sistem Terdistribusi PROSES PERT 3. Sistem Terdistribusi Konsep Proses Proses : suatu program yang sedang dieksekusi. Eksekusi proses dilakukan secara berurutan Dalam proses terdapat Program counter : menunjukkan instruksi

Lebih terperinci

Organisasi Komputer. Candra Ahmadi, MT

Organisasi Komputer. Candra Ahmadi, MT Organisasi Komputer Candra Ahmadi, MT Tujuan Menjelaskan tentang komponen utama CPU dan Fungsi CPU Membahas struktur dan fungsi internal prosesor, organisasi ALU, control unit dan register Menjelaskan

Lebih terperinci

Operating System. I/O System. Fak. Teknik Jurusan Teknik Informatika Universitas Pasundan. Dosen : Caca E. Supriana, S.Si

Operating System. I/O System. Fak. Teknik Jurusan Teknik Informatika Universitas Pasundan. Dosen : Caca E. Supriana, S.Si Operating System I/O System Fak. Teknik Jurusan Teknik Informatika Universitas Pasundan Dosen : Caca E. Supriana, S.Si caca_emile@yahoo.co.id Input / Output System Perangkat Keras I/O Aplikasi Antarmuka

Lebih terperinci

MODUL 2 KOMPONEN, LAYANAN SISTEM OPERASI M. R A J A B F A C H R I Z A L - S I S T E M O P E R A S I - C H A P T E R 2

MODUL 2 KOMPONEN, LAYANAN SISTEM OPERASI M. R A J A B F A C H R I Z A L - S I S T E M O P E R A S I - C H A P T E R 2 MODUL 2 KOMPONEN, LAYANAN SISTEM OPERASI M. R A J A B F A C H R I Z A L - S I S T E M O P E R A S I - C H A P T E R 2 1 KOMPONEN SO LAINNYA Jaringan (Sistem Terdistribusi) Sistem terdistribusi adalah sekumpulan

Lebih terperinci

Organisasi & Arsitektur Komputer

Organisasi & Arsitektur Komputer Organisasi & Arsitektur Komputer 1 Unit Input - Output Eko Budi Setiawan, S.Kom., M.T. Eko Budi Setiawan mail@ekobudisetiawan.com www.ekobudisetiawan.com Teknik Informatika - UNIKOM 2013 Flash Back 2 Pengertian

Lebih terperinci

Sistem Operasi AGUS PAMUJI. Teknik Informatika

Sistem Operasi AGUS PAMUJI. Teknik Informatika Sistem Operasi AGUS PAMUJI 1 Session 1 Pengenalan Sistem Komputer 2 Sistem Operasi Compiler Basis data Aplikasi bisnis 3 Definisi Sistem Operasi Software yang mengontrol hardware hanya program biasa(contoh

Lebih terperinci

Struktur Fungsi CPU. Mata Kuliah Arsitektur Komputer Program Studi Sistem Informasi 2013/2014 STMIK Dumai -- Materi 03 --

Struktur Fungsi CPU. Mata Kuliah Arsitektur Komputer Program Studi Sistem Informasi 2013/2014 STMIK Dumai -- Materi 03 -- Struktur Fungsi CPU Mata Kuliah Arsitektur Komputer Program Studi Sistem Informasi 2013/2014 STMIK Dumai -- Materi 03 -- This presentation is revised by @hazlindaaziz, STMIK, 2014 Main Material: Acknowledgement

Lebih terperinci

MODUL 3 STRUKTUR SISTEM OPERASI M. R A J A B F A C H R I Z A L - S I S T E M O P E R A S I - C H A P T E R 2

MODUL 3 STRUKTUR SISTEM OPERASI M. R A J A B F A C H R I Z A L - S I S T E M O P E R A S I - C H A P T E R 2 MODUL 3 STRUKTUR SISTEM OPERASI M. R A J A B F A C H R I Z A L - S I S T E M O P E R A S I - C H A P T E R 2 1 STRUKTUR SO 1. Struktur Sederhana 2. Struktur Berlapis (Layered) 3. Microkernel M. R A J A

Lebih terperinci

ARSITEKTUR DAN ORGANISASI KOMPUTER

ARSITEKTUR DAN ORGANISASI KOMPUTER ARSITEKTUR DAN ORGANISASI KOMPUTER PART 3: THE CENTRAL PROCESSING UNIT CHAPTER 8: OPERATING SYSTEM SUPPORT PRIO HANDOKO, S.KOM., M.T.I. CHAPTER 8: OPERATING SYSTEM SUPPORT Kompetensi Dasar Mahasiswa memiliki

Lebih terperinci

Kongkurensi LPOHLVSFOTJ!

Kongkurensi LPOHLVSFOTJ! LPOHLVSFOTJ! Daftar isi PENGERTIAN KONGKURENSI... 2 PRINSIP-PRINSIP KONGKURENSI... 2 PERMASALAHAN KONGKURENSI... 3 KESULITAN-KESULITAN YANG DITIMBULKAN KONGKURENSI... 5 PENANGANAN KONGKURENSI... 5 INTERAKSI

Lebih terperinci

PERTEMUAN 1 PENGENALAN SISTEM KOMPUTER & SISTEM OPERASI M. R A J A B F A C H R I Z A L - S I S T E M O P E R A S I - C H A P T E R 1 1

PERTEMUAN 1 PENGENALAN SISTEM KOMPUTER & SISTEM OPERASI M. R A J A B F A C H R I Z A L - S I S T E M O P E R A S I - C H A P T E R 1 1 PERTEMUAN 1 PENGENALAN SISTEM KOMPUTER & SISTEM OPERASI M. R A J A B F A C H R I Z A L - S I S T E M O P E R A S I - C H A P T E R 1 1 LAYOUT Sistem Perkuliahan Pengenalan Matakuliah & Silabus Pengenalan

Lebih terperinci

Rahmady Liyantanto liyantanto.wordpress.com

Rahmady Liyantanto liyantanto.wordpress.com Rahmady Liyantanto liyantanto@gmail.com liyantanto.wordpress.com Sistem Operasi D3 Manajemen Informatika Universitas Trunojoyo Managemen Proses Aktivitas Managemen Proses Pembentukan Proses Terminasi Proses

Lebih terperinci

Operating System. Thread. Fak. Teknik Jurusan Teknik Informatika Universitas Pasundan. Dosen : Caca E. Supriana, S.Si

Operating System. Thread. Fak. Teknik Jurusan Teknik Informatika Universitas Pasundan. Dosen : Caca E. Supriana, S.Si Operating System Thread Fak. Teknik Jurusan Teknik Informatika Universitas Pasundan Dosen : Caca E. Supriana, S.Si caca_emile@yahoo.co.id Threads Thread adalah sebuah alur kontrol dari sebuah proses. Suatu

Lebih terperinci

GAMBARAN UMUM SISTEM KOMPUTER

GAMBARAN UMUM SISTEM KOMPUTER (Operating System) SISTEM OPERASI Pertemuan 1 GAMBARAN UMUM SISTEM KOMPUTER 1 - Robert H. Blismer - Komputer adalah suatu alat elektronik yang mampu melakukan beberapa tugas : menerima input, memproses

Lebih terperinci

Prio Handoko, S.Kom., M.T.I.

Prio Handoko, S.Kom., M.T.I. Sistem Operasi Prio Handoko, S.Kom., M.T.I. Program Studi Teknik Informatika Universitas Pembangunan Jaya Jl. Boulevard - Bintaro Jaya Sektor VII Tangerang Selatan Banten 15224 Esensi Konsep Proses Multithreading

Lebih terperinci

Rangkuman Materi Presentasi AOK. Input/Output Terprogram, Intterupt Driven dan DMA. (Direct Memory Access)

Rangkuman Materi Presentasi AOK. Input/Output Terprogram, Intterupt Driven dan DMA. (Direct Memory Access) Rangkuman Materi Presentasi AOK Input/Output Terprogram, Intterupt Driven dan DMA (Direct Memory Access) I/O Terprogram Pada I/O terprogam adalah adanya data yang saling ditukar antara CPU dan modul I/O.

Lebih terperinci

Struktur Sistem Komputer

Struktur Sistem Komputer 2 Struktur Sistem Komputer Review: Struktur Sistem Komputer Operasi Sistem Komputer Struktur I/O Struktur Storage Proteksi Hardware 2 Arsitektur Sistem Komputer 3 Operasi Sistem Komputer CPU devices dan

Lebih terperinci

Pertemuan ke - 12 Unit Masukan dan Keluaran Riyanto Sigit, ST. Nur Rosyid, S.kom Setiawardhana, ST Hero Yudo M, ST

Pertemuan ke - 12 Unit Masukan dan Keluaran Riyanto Sigit, ST. Nur Rosyid, S.kom Setiawardhana, ST Hero Yudo M, ST Pertemuan ke - 12 Unit Masukan dan Keluaran Riyanto Sigit, ST. Nur Rosyid, S.kom Setiawardhana, ST Hero Yudo M, ST Politeknik Elektronika Negeri Surabaya Tujuan Menjelaskan system komputer unit masukkan/keluaran

Lebih terperinci

Sistem Operasi - PCB (process control block)

Sistem Operasi - PCB (process control block) Sistem Operasi - PCB (process control block) PCB (process control block) dalam Sistem Operasi Sebagai pendahuluan kita harus mengenal dulu apa itu Sistem Operasi,Sistem operasi adalah seperangkat program

Lebih terperinci

PENDAHULUAN. Pertemuan 1 1

PENDAHULUAN. Pertemuan 1 1 PENDAHULUAN 1. Konsep Dasar Sistem Komputer dan Sistem Operasi Sistem Komputer adalah adalah suatu jaringan elektronik yang terdiri dari perangkat lunak dan perangkat keras yang melakukan tugas tertentu

Lebih terperinci

Chapter 6 Input/Output

Chapter 6 Input/Output Chapter 6 Input/Output Masalah-masalah Input/Output Periferal yang bervariasi Pengiriman jumlah data yang berbeda Dengan kecepatan yang berbeda Dalam format yang berbeda Semua periferal I/O berkecepatan

Lebih terperinci

Dimana thread digunakan?

Dimana thread digunakan? Thread 2016 Thread Bagian terkecil dalam sebuah instruksi yang ter-program yang dapat diatur secara independen oleh sistem operasi Jika dibandingkan dengan proses, kinerja thread lebih ringan (light weight

Lebih terperinci

Operasi pada Sistem Operasi. Avida Endriani Reza Gusty Erlangga D3 TEKNIK INFORMATIKA A

Operasi pada Sistem Operasi. Avida Endriani Reza Gusty Erlangga D3 TEKNIK INFORMATIKA A Operasi pada Sistem Operasi Avida Endriani 2103141003 Reza Gusty Erlangga 2103141020 D3 TEKNIK INFORMATIKA A Definisi dan Bagian dari Sistem Operasi Apa itu sistem operasi? Sistem operasi adalah software

Lebih terperinci

Quis. 5. Contoh dari jenis-jenis sistem operasi berdasarkan interface adalah

Quis. 5. Contoh dari jenis-jenis sistem operasi berdasarkan interface adalah Pertemuan 7 Quis Quis 1. Sekumpulan program kontrol atau alat pengendali yang secara terpadu bertindak sebagai penghubung antara komputer dengan pemakainya merupakan pengertian dari a. sistem operasi b.

Lebih terperinci

Pertemuan 5 MANAJEMEN PERANGKAT INPUT/OUTPUT

Pertemuan 5 MANAJEMEN PERANGKAT INPUT/OUTPUT Pertemuan 5 MANAJEMEN PERANGKAT INPUT/OUTPUT PRINSIP-PRINSIP PERANGKAT LUNAK I/O A. Klasifikasi Perangkat I/O Pengelolaan perangkat I/O merupakan aspek perancangan sistem operasi yang terluas karena beragamnya

Lebih terperinci

Tahun Akademik 2014/2015 Semester II. DIG1I3 - Instalasi dan Penggunaan Sistem Operasi. System Calls dan Thread

Tahun Akademik 2014/2015 Semester II. DIG1I3 - Instalasi dan Penggunaan Sistem Operasi. System Calls dan Thread Tahun Akademik 2014/2015 Semester II DIG1I3 - Instalasi dan Penggunaan Sistem Operasi System Calls dan Thread Mohamad Dani (MHM) Alamat E-mail: mohamad.dani@gmail.com Hanya dipergunakan untuk kepentingan

Lebih terperinci

4. SISTEM OPERASI TERDISTRIBUSI

4. SISTEM OPERASI TERDISTRIBUSI 4. SISTEM OPERASI TERDISTRIBUSI APAKAH SISTEM OPERASI TERDISTRIBUSI? Sistem operasi terdistribusi adalah salah satu implementasi dari sistem terdistribusi, di mana sekumpulan komputer dan prosesor yang

Lebih terperinci

MODUL 5 MANAJEMEN PROSES (2) (PENJADWALAN PROSES)

MODUL 5 MANAJEMEN PROSES (2) (PENJADWALAN PROSES) MODUL 5 MANAJEMEN PROSES (2) (PENJADWALAN PROSES) 1 PROSES Pengelolaan siklus hidup proses : Penciptaan Proses Penghentian Proses Pengalihan Proses 2 PENCIPTAAN PROSES Kondisi penyebab penciptaan proses

Lebih terperinci

PENGANTAR ORGANISASI DAN ARSITEKTUR KOMPUTER SISTEM INPUT OUTPUT

PENGANTAR ORGANISASI DAN ARSITEKTUR KOMPUTER SISTEM INPUT OUTPUT PENGANTAR ORGANISASI DAN ARSITEKTUR KOMPUTER SISTEM INPUT OUTPUT EXTERNAL DEVICE Pembacaan di sisi manusia (screen, printer, keyboard) Pembacaan disisi mesin (monitoring, control) Komunikasi (modem, NIC)

Lebih terperinci

Prio Handoko, S.Kom., M.T.I.

Prio Handoko, S.Kom., M.T.I. Sistem Operasi Prio Handoko, S.Kom., M.T.I. Program Studi Teknik Informatika Universitas Pembangunan Jaya Jl. Boulevard - Bintaro Jaya Sektor VII Tangerang Selatan Banten 15224 Deskripsi Proses Diagram

Lebih terperinci

Andi Gustanto M / Kelas 22 / TI

Andi Gustanto M / Kelas 22 / TI 1. Gambaran Process Control Block (PCB) Proses adalah program yang sedang dieksekusi. Proses juga mencakup program counter, yaitu sebuah stack untuk menyimpan alamat dari instruksi yang akan dieksekusi

Lebih terperinci

Input : Memasukkan data dari luar kedalam mikroprosesor Contoh: Keyboard, mouse

Input : Memasukkan data dari luar kedalam mikroprosesor Contoh: Keyboard, mouse Input Output Input : Memasukkan data dari luar kedalam mikroprosesor Contoh: Keyboard, mouse Output: Menampilkan data Contoh: Monitor, printer Unit Input/Output dalam bekerja memerlukan sinyal kontrol

Lebih terperinci

Organisasi SistemKomputer, Pelayanan Sistem Operasi. Ptputraastawa.wordpress.com

Organisasi SistemKomputer, Pelayanan Sistem Operasi. Ptputraastawa.wordpress.com SistemOperasi Organisasi SistemKomputer, ArsitekturSistemKomputer, Pelayanan Sistem Operasi ptputraastawa@gmail.com Ptputraastawa.wordpress.com Organisasi Komputer Sistem komputer modern terdiri dari satu

Lebih terperinci

Thread. pada satu waktu. menjalankan banyak tugas/thread. yang sama

Thread. pada satu waktu. menjalankan banyak tugas/thread. yang sama Thread 1 Thread Proses dengan thread tunggal proses menjalankan satu tugas pada satu waktu Sistem operasi modern multithread proses menjalankan banyak tugas/thread pada satu waktu Contoh : secara bersamaan

Lebih terperinci

KONSEP DASAR SISTEM KOMPUTER

KONSEP DASAR SISTEM KOMPUTER KONSEP DASAR SISTEM KOMPUTER DEFINISI Komputer : suatu peralatan elektronik yang dapat menerima input, mengolah input, memberikan informasi, menggunakan suatu program yang tersimpan di memori komputer,

Lebih terperinci

TUGAS SISTEM OPERASI

TUGAS SISTEM OPERASI TUGAS SISTEM OPERASI DI SUSUN OLEH AlFIATUN SUHADA 14121025 UNIVERSITAS MERCUBUANA YOGYAKARTA FAKULTAS TEKNOLOGI INFORMASI PRODI SISTEM INFORMASI 2015-2016 Perbedaan Proses dan Thread 1. Proses Proses

Lebih terperinci

Arsitektur Sistem Komputer. Operasi Sistem Komputer. Struktur Sistem Komputer. Review:

Arsitektur Sistem Komputer. Operasi Sistem Komputer. Struktur Sistem Komputer. Review: Mata Kuliah : Sistem Operasi Kode MK : IT-012336 2 Struktur Sistem Komputer Tim Teaching Grant Mata Kuliah Sistem Operasi Review: Struktur Sistem Komputer Operasi Sistem Komputer Struktur I/O Struktur

Lebih terperinci

Komponen sistem operasi modern : 1. Managemen Proses. 2. Managemen Memori Utama. 3.Managemen

Komponen sistem operasi modern : 1. Managemen Proses. 2. Managemen Memori Utama. 3.Managemen Pada kenyataannya tidak semua sistem operasi mempunyai struktur yang sama. Komponen sistem operasi modern : 1. Managemen Proses. 2. Managemen Memori Utama. 3.Managemen Secondary-Storage Storage. 4. Managemen

Lebih terperinci

MODUL PERKULIAHAN. Sistem Operasi. Sekilas sistem komputer. Fakultas Program Studi Tatap Muka Kode MK Disusun Oleh

MODUL PERKULIAHAN. Sistem Operasi. Sekilas sistem komputer. Fakultas Program Studi Tatap Muka Kode MK Disusun Oleh MODUL PERKULIAHAN Sekilas sistem komputer Fakultas Program Studi Tatap Muka Kode MK Disusun Oleh Fasilkom Sistem Informasi 01 87030 Abstract Komponen dasar sistem komputer adalah pemroses, memori utama,

Lebih terperinci

PERBEDAAN PROSES DAN THREAD PADA SISTEM INFORMASI

PERBEDAAN PROSES DAN THREAD PADA SISTEM INFORMASI PERBEDAAN PROSES DAN THREAD PADA SISTEM INFORMASI NAMA : SHENI NUR ABDILA K NIM : 13111060 PRODI : TEKNIK INFORMATIKA Definisi Proses Secara informal, proses adalah program dalam eksekusi. Proses juga

Lebih terperinci

DASAR KOMPUTER. Dukungan Sistem Operasi

DASAR KOMPUTER. Dukungan Sistem Operasi DASAR KOMPUTER Dukungan Sistem Operasi Peran dari OS Mengatur fasilitas komputer, memberikan layanan untuk pemrogram, menjadwal eksekusi program lainnya. Menjembatani perangkat keras dari programmer. Memberikan

Lebih terperinci

Komponen-komponen Komputer

Komponen-komponen Komputer PERTEMUAN II Komponen-komponen Komputer Komponen CPU Register Register yang terdapat dalam CPU, yaitu : MAR (Memory Address Register) Menentukan alamat di dalam memori yang akan diakses untuk operasi Read/Write

Lebih terperinci

BAB V SISTEM PENGOLAHAN DATA KOMPUTER (Arsitektur Komputer) "Pengantar Teknologi Informasi" 1

BAB V SISTEM PENGOLAHAN DATA KOMPUTER (Arsitektur Komputer) Pengantar Teknologi Informasi 1 BAB V SISTEM PENGOLAHAN DATA KOMPUTER (Arsitektur Komputer) "Pengantar Teknologi Informasi" Abstraksi Sistem Komputer Secara abstrak level sebuah sistem komputer modern dari level rendah sampai level tertinggi

Lebih terperinci

Sistem Operasi. Proses dan Thread

Sistem Operasi. Proses dan Thread Sistem Operasi Proses dan Thread Proses Abstraksi paling utama dalam sebuah sistem operasi Proses adalah abstraksi dari sebuah program yang sedang berjalan (running program): lebih detail pada model proses

Lebih terperinci

Hal-hal yang perlu dilakukan CPU adalah : 1. Fetch Instruction = mengambil instruksi 2. Interpret Instruction = Menterjemahkan instruksi 3.

Hal-hal yang perlu dilakukan CPU adalah : 1. Fetch Instruction = mengambil instruksi 2. Interpret Instruction = Menterjemahkan instruksi 3. PERTEMUAN 1. Organisasi Processor #1 Hal-hal yang perlu dilakukan CPU adalah : 1. Fetch Instruction = mengambil instruksi 2. Interpret Instruction = Menterjemahkan instruksi 3. Fetch Data = mengambil data

Lebih terperinci