JAWABAN
1. a. Definisi sistem operasi
a) Software yang mengontrol hardware;
b) Program yang menjadikan hardware lebih mudah untuk digunakan
c) Kumpulan program yang mengatur kerja komputer;
d) Resource manager atau resource allocator, Sebagai program pengontrol;
e) Sebagai Kernel, yaitu program yang terus menerus running selama komputer dihidupkan;
f) Sebagai guardian, yaitu yang mengatur atau menjaga komputer dari berbagai kejahatan komputer
Fungsi sistem operasi
SO mempunyai dua Fungsi utama, yaitu:
a) Pengelola seluruh sumber daya sistem komputer (resource manager): Mengelola seluruh sumber daya yang terdapat pada sistem komputer,baik yang berupa fisik yaitu hardware maupun yang berupa abstrak yaitu data dan program .
b) SO sebagai penyedia layanan (extended/virtual machine) yaitu SO menyediakan sekumpulan layanan (system calls) ke pemakai, sehingga memudahkan dan menyamankan penggunaan atau pemanfaatan sumber daya sistem komputer
b. Contoh Sistem Operasi :
a) Sistem Operasi Ms DOS
b) Sistem Operasi Linux
c) Sistem Operasi Windows XP
2. Perbedaan mendasar sistem operasi generasi 1 dan generasi2
a) Generasi 1 :
1. Sistem operasi ini hanya mampu menjalankan pekerjaan satu per satu, dengan mengumpulkan program dan data satu persatu (Singlestream Batch Processing Systems)
2. Komponen utamanya berupa tabung hampa udara
3. Semua operasi komputer dilakukan secara manual melalui plugboards, dan hanya bisa digunakan untuk menghitung (+, - dan *)
b) Generasi 2:
1. Masih menggunakan prinsip Batch Processing System
2. Komponen utamanya berupa transistor
3. Input memakai punch card
3. Gambar State dasar porses tiga keadaan

4. yang dimaksud dengan
a) Strategi preemtive dan non-preemtive
Strategi preemtive : Begitu proses diberi jatah waktu pemroses maka pemroses tidak dapat diambil alih oleh proses lain sampai proses itu selesai.
Strategi non-preemtive : Saat proses diberi jatah waktu pemroses maka pemroses dapat diambil alih proses lain sehingga proses disela sebelum selesai dan harus dilanjutkan menunggu jatah waktu pemroses tiba kembali pada proses itu.
b) PCB : merupakan Process Control Block yang digunakan oleh SO untuk masing-masing proses yang akan direpresentasikan
c) Multiporcessing System :
a. Paralel System ; Menggunakan bus, clock, memori dan peralatan lain secara bersama-sama. Terdiri atas Symmetric Multiprocessing (masing-masing processor mempunyai sistem operasi yang sama) dan ASymmetric Multiprocessing (Salah satu processor berfungsi sebagai master dan yang lain sebagai slave/ Sistem operasi terpusat).
b. Distributed System; Seringkali disebut Loosely Coupled System, yaitu kumpulan processor yang masing – masing mempunyai memori atau clock sendiri dan semua prosesor dapat mengejakan semua jenis proses.
d) Multiprogramming : Beberapa job yang siap untuk dieksekusi dikumpulkan dalam sebiah pool. Sistem operasi mengambil job-job tersebut dan meletakkannya dimemori dalam bentuk antrian. Jika suatu job yang sedang dieksekusi menunggu I/O, maka job tersebut untuk sementara dapat digantikan oleh job berikut.
5. Penjelasan tentang kondisi dan contoh ilustrasinya
· Mutual Exclusion
Mutual Exclusion adalah jaminan bahwa hanya satu proses yang mengakses sebuah sumber daya (perintah) pada suatu interval waktu tertentu. Contoh ilustrasi, Pada saat kita ingin melakukan dua hal yaitu makan dan tidur, maka dalam waktu tertentu kita tidak dapat melakukan kedua hal tersebut secara bersamaan, melainkan kita harus melakukan salah satu hal tersebut.
· Deadlock
Deadlock merupakan proses menunggu suatu kejadian yang tidak akan pernah terjadi. Contoh ilustrasi, ada dua orang kakak adik yang ingin bermain mobil remot kontrol.karena mobil remot kontrol yang mereka miliki hanya satu, maka mereka berebut mainan tersebut sehingga si adik memegang mobilnya dan si kakak memegang remot kontrolnya. Karena diantara mereka tidak ada yang mau mengalah, maka diantara mereka tidak ada yang bisa bermain mobil remot kontrol tersebut.
· Starvation
Starvation merupakan proses menunggu sesuatu yang entah kapan bisa terjadi. Contoh ilustrasi, ada tiga rumah berbeda yaitu rumah A, B, dan C, dimana ketiga rumah ini sama-sama memproduksi kacang telur. Untuk membuat kacang telur, ketiga rumah ini membutuhkan kacang tanah sebagai salah satu bahan penting untuk pembuatan kacang telur mereka dan mereka bisa mendapatkan kacang tanah tersebut apabila petani kacang tanah mengirimkan kacang tanah ke rumah mereka. Ketika rumah A membutuhkan kacang tanah, maka pada saat itu juga petani mengirimkan kacang tanah ke rumah A, dan ketika rumah C membutuhkan kacang tanah, maka petani juga mengirim kacang tanah ke rumah C. karena rumah A membutuhkan lagi kacang tanah maka petani mengirimkan lagi kacang tanah ke rumah A, begitu pula pada rumah C karena rumah C juga membutuhkan lagi kacang tanah. Pada saat itu rumah B belum mendapat kiriman kacang tanah dari petani karena para petani masih mengirim kacang tanah ke rumah A dan C, maka rumah B menunggu entah kapan petani akan mengirim kacang tanah ke rumahnya.
6. Dik : 4 proses yaitu P1, P2, P3, dan P4
Proses | Arrival time | Buts time | Kapasitas | Prioritas |
P1 | 0 | 10 | 150 kb | 3 |
P2 | 2 | 4 | 50 kb | 1 |
P3 | 3 | 9 | 51.200 Byte | 1 |
P4 | 5 | 9 | 100 kb | 2 |
Dit :
a. AWT dengan Algoritma Penjadwalan SRF
b. AWT dengan Algoritma Penjadwalan Priority Schedulling (PS) dengan ukuran terkecil didahulukan
c. AWT dengan Algoritma Penjadwalan Round Robin Schedulling (RR), dengan Q=3
d. Algoritma apa yang paling efisien diantara a, b, dan c
Peny :
a. Algoritma penjadwalan SRF
Gant Chart
0 2 3 5 6 14 23 32
Proses | Waiting time ms |
P1 | 0+(6-2)=4 |
P2 | 2-2=0 |
P3 | 14-3=11 |
P4 | 23-5=18 |
AWT = (4+0+11+18)/4 = 8.25 ms
b. Algoritma penjadwalan PS
Gant chart
0 4 13 22 32
Proses | Waiting time ms |
P1 | 22 |
P2 | 0 |
P3 | 4 |
P4 | 13 |
AWT = (22+0+4+13)/4 = 9.75 ms
c.Algoritma penjadwalan RR, dengan Q=3
Gant chart
P1 | P2 | P3 | P4 | P1 | P2 | P3 | P4 | P1 | P3 | P4 | P1 |
0 3 6 9 12 15 16 19 22 25 28 31 32
Proses | Waiting time ms |
P1 | 0+(12-3)+(22-15)+(31-25) = 22 |
P2 | 3+(15-6) = 12 |
P3 | 6+(16-9)+(25-19) = 19 |
P4 | 9+(19-12)+(28-22) = 22 |
AWT = (22+12+19+22 )/4 = 18.75 ms
d. Algoritma yang lebih efisien adalah Algoritma SRF dengan AWT = 8.25 ms
1. a. Singgle Buffering
Merupakan teknik paling sederhana. Ketika proses memberi perintah untuk perangkat I/O, sistem operasi menyediakan buffer memori utama sistem untuk operasi.Untuk perangkat berorientasi blok.Transfer masukan dibuat ke buffer sistem. Ketika transfer selesai, proses memindahkan blok ke ruang pemakai dan segera meminta blok lain. Teknik ini disebut reading ahead atau anticipated input. Teknik ini dilakukan dengan harapan blok akan segera diperlukan. Untuk banyak tipe komputasi, asumsi ini berlaku. Hanya di akhir pemrosesan maka blok yang dibaca tidak diperlukan.
b.Doublle Buffering
Peningkatan dapat dibuat dengan dua buffer sistem.Proses dapat ditransfer ke/dari satu buffer sementara sistem operasi mengosongkan (atau mengisi) buffer lain. Teknik ini disebut double buffering atau buffer swapping. Double buffering menjamin proses tidak menunggu operasi I/O. Peningkatan ini harus dibayar dengan peningkatan kompleksitas.
c. Circular Buffering
Seharusnya melembutkan aliran data antara perangkat I/O dan proses. Jika kinerja proses tertentu menjadi fokus kita, maka kita ingin agar operasi I/O mengikuti proses. Double buffering tidak mencukupi jika proses melakukan operasi I/O yang berturutan dengan cepat. Masalah sering dapat dihindari denga menggunakan lebih dari dua buffer. Ketika lebih dari dua buffer yang digunakan, kumpulan buffer itu sendiri diacu sebagai circulat buffer. Tiap bufferindividu adalah satu unit di circular buffer.
2. Kata Kunci Manajemen I/O
- Block-Oriented Device ( Perangkat Berorientasi Blok )Yaitu perangkat berorientasi blok menyimpan informasi dan menukarkan (menerima/mengirim) informasi sebagai blok-blok berukuran tetap.
- Character Stream Oriented Device ( Perangkat Berorientasi Aliran Karakter )Yaitu perangkat yang mengantarkan atau menerima aliran karakter tanpa peduli membentuk sustu struktur blok.
- Clock Yaitu perangkat yang tidak termasuk dalam kategori block-oriented device dan character stream oriented device yang artinya tidak teralamati secara blok dan juga tidak menghasilkan atau menerima aliran karakter. Clock hanya menyebabkan interupsi pada interval-interval yang didefinisikan.
- Memory-Mapped Screen Yaitu perangkat yang tidak tergolong dalam kategori Block-Oriented device dan Character Stream Oriented device.
- I/O Device Independence Yaitu konsep dimana membuat perangkat lunak masukkan / keluaran yang tidak bergantung perangkat keras.
- I/O Programmed ( Masukkan / Keluaran Terprogram ) / polling system Yaitu perangakat masukkan atau keluaran yang dimana pada saat menangani permintaan, perangkat men-set bit status di register status perangkat. Perangkat tidak memberitahu ke pemproses saat tugas telah selesai dilakukan. Dan proses harus selalu memeriksa register status perangkat secara priodik dan melakukan tindakan berdasar status yang dibaca.
- Interrupt Driven Yaitu suatu teknik masukkan/keluaran dituntun interupsi yang mempunyai mekanisme kerja perangkat masukkan/keluaran untuk meningkatkan efesiensi pemproses.
- DMA ( Direct Memory Access ) Yaitu perangkat masukkan atau keluaran yang dikendalikan oleh interupsi lebih efisien dibanding masukkan atau kleuaran terprogram, tapi masih memerlukan intervensi aktif pemproses untuk transfer data antara memory dan buffer perangkat masukkan atau keluaran.
- Device Driver Yaitu tempat kode perangkat ditempatkan, yang bertugas menerima permintaan abstrak perangkat lunak device-independent diatasnya dan melakukan layanan sesuai permintaan.
- DMA Controller Yaitu DMA yang mengatur pengiriman informasi atau mentransfer data yang diminta dari dan ke memori secara langsung tanpa melewati pemproses.
- ntelegent Device Yaitu perangkat masukkan atau keluaran yang berintelejen setelah pemproses mengendalikan perangkat tersebut secara langsung yang dimana dari perangkat yang sederhana dikendalikan oleh mikroprosessor menjadi perangkat yang berintelejen.
- Uniform Naming ( Penamaan Yang seragam ) Yaitu salah satu masalah yang ada pada manajemen masukkan atau keluaran. Misalkan nama berkas atau perangkat adalah string atau integer, tidak bergantung pada perangkat sama sekali.
- Asyncrhronous Transfer Yaitu I/O yang dimana pemproses mulai teransfer dan mengabaikan untuk melakukan kerja lain sampai interupsi tiba.
- Syncrhonous Transfer Yaitu I/O yang dimana pemproses mulai transfer dan tidak mengabaikan kerja lain saat interupsi tiba. Program pemakai sangat lebih mudah ditulis jika operasi masukkan atau keluaran berorientasi blok. Setelah perintah read, program kemudian ditunda secara otomatis sampai data tersedia di buffer.
- Sharable Yaitu perangkat yang dapat dipakai bersama pada suatu saat contohnya disk.
- Dedicated Yaitu Perangkat yang hanya satu pemakai yang dibolehkan memakai pada suatu saat. Contohnya printer.
- Interrupt Handler : Interupsi harus disembunyikan agar tidak terrlihat rutin berikutnya. Device driver di blocked saat perintah masukkan atau keluara diberikan dan menunggu interupsi. Ketika interupsi terjadi, procedure penanganan interupsi bekerja agar device driver keluar dari state blocked.
- Reading Ahead atau anticipated input Yaitu teknik dimana transfer masukkan dibuat ke buffer system, ketika transfer selesai proses memindahkan blok ke ruang pemakai dan segera meminta blok lain.
- Line – at – a – time mode Yaitu proses pemakai tidak perlu ditunda untuk masukkan atau keluaran kecuali proses secepatnya mengosongkan buffer ganda.
- Byte – at – a – time mode Yaitu buffer ganda tidak member keunggulan berarti atas buffer tunggal. Double buffering mengikuti model producer-consumer.
MANAJEMEN MEMORY
Binding adalah proses penempatan suatu item ke dalam lokasi memori tertentu.
Address Binding adalah cara instruksi dan data (yang berada di disk sebagai file executable) dipetakan ke alamat memori.
Pengikatan alamat adalah cara instruksi dan data (yang berada di disk sebagai file yang dapat dieksekusi) dipetakan ke alamat memori. Sebagian besar sistem memperbolehkan sebuah proses user (user process) untuk meletakkan di sembarang tempat dari memori fisik. Sehingga, meskipun alamat dari komputer dimulai pada 00000, alamat pertama dari proses user tidak perlu harus dimulai 00000. Pada beberapa kasus, program user akan melalui beberapa langkah sebelum dieksekusi (Gambar 7-1). Alamat padasource program umumnya merupakan alamat simbolik. Sebuah compiler biasanya melakukan pengikatan alamat simbolik (symbolic address) ke alamat relokasi dipindah (relocatable address). Misalnya compiler mengikatkan alamat simbolik ke alamat relokasi “14 byte from the beginning of this module”. Editor Linkage mengikatkan alamat relokasi ini ke alamat absolute (absolute addresses) “74014”.
Instruksi pengikatan instruksi dan data ke alamat memori dapat dilakukan pada saat :
• Compile time : Jika lokasi memori diketahui sejak awal, kode absolut dapat dibangkitkan, apabila terjadi perubahan alamat awal harus dilakukan kompilasi ulang. Misalnya : program format .com pada MS-DOS adalah kode absolut yang
diikat pada saat waktu kompilasi
• Load time : Harus membangkitkan kode relokasi jika lokasi memori tidak diketahui pada saat waktu kompilasi.
• Execution time : Pengikatan ditunda sampai waktu eksekusi jika proses dapa dipindahkan selama eksekusi dari satu segmen memori ke segmen memori lain
Memerlukan dukungan perangkat keras untuk memetakan alamat (misalnya register
basis dan limit).

Dinamic Loading
Untuk memperoleh utilitas ruang memori, dapat menggunakandynamic loading. Dengan dynamic loading, sebuah rutin tidak disimpan di memori sampai dipanggil. Semua rutin disimpan pada disk dalam format relocatable load. Mekanisme dari dynamic loading adalah program utama di-load dahulu dan dieksekusi. Bila suatu routine perlu memanggil routine lain, routine yang dipanggillebih dahulu diperiksa apakah rutin yang dipanggil sudah di-load. Jika tidak, relocatable linking loader dipanggil untuk me-load rutin yg diminta ke memori dan meng-ubah tabel alamat. Keuntungan daridynamic loading adalah rutin yang tidak digunakan tidak pernah di-load. Skema ini lebih berguna untuk kode dalam jumlah besar diperlukan untuk menangani kasus-kasus yang jarang terjadi sepertierror routine. Dinamic loading tidak memerlukan dukungan khusus dari sistem operasi. Sistem operasi hanya perlu menyediakan beberapa rutin pustaka untuk implementasi dynamic loading.
Dinamic Linking
Sebagian besar sistem operasi hanya men-support static linking, dimana sistem library language diperlakukan seperti obyek modul yang lain dan dikombinasikan dengan loader ke dalam binary program image. Konsep dynamic linking sama dengan dynamic loading. Pada saat loading, linking ditunda sampai waktu eksekusi. Terdapat kode kecil yang disebut stub digunakan untuk meletakkan rutin library di memori dengan tepat. Stub diisi dengan alamat rutin dan mengeksekusi rutin. Sistem operasi perlu memeriksa apakah rutin berada di alamat memori. Dinamic linking biasanya digunakan dengan sistem library, seperti language subroutine library. Tanpa fasilitas ini, semua program pada sistem perlu mempunyai copy darilibrary language di dalam executable image. Kebutuhan ini menghabiskan baik ruang disk maupun memori utama. Bagaimanapun, tidak seperti dynamic loading, dynamic linkingmembutuhkan beberapa dukungan dari sistem operasi, misalnya bila proses-proses di memori utama saling diproteksi, maka sistem operasi melakukan pengecekan apakah rutin yang diminta berada diluar ruang alamat. Beberapa proses diijinkan untuk mengakses memori pada alamat yang sama. File dynamic linking berekstensi .dll, .sys atau .drv
Overlay
Sebuah proses dapat lebih besar daripada jumlah memori yang dialokasikan untuk proses, teknik overlay biasanya digunakan untuk kasus ini. Teknik Overlay biasanya digunakan untuk memungkinkan sebuah proses mempunyai jumlah yang lebih besar dari memori fisik daripada alokasi memori yang diperuntukkan. Ide dari overlayadalah menyimpan di memori hanya instruksi dan data yang diperlukan pada satu waktu. Jika intruksi lain diperlukan, maka instruksi tersebut diletakkan di ruang memori menggantikan instruksi yang tidak digunakan lagi.
Sebagai contoh misalnya terdapat two-pass assembler. Selama pass 1, dibangun table symbol, dan selama pass 2 dibangkitkan kode bahasa mesin. Kita dapat membagi assembler ke dalam kode pass 1, kode pass 2, tabel symbol dan rutin umum yang digunakan baik pada pass 1 maupun pass 2. Diasumsikan ukuran komponen sebagai berikut :
PASS 1 | 70 K |
PASS 2 | 80 K |
TABEL SYMBOL | 20 K |
RUTIN UMUM | 30 K |
Apabila semua diletakkan di memori memerlukan 200K. Jika hanya tersedia tempat 150K, proses tidak dapat dijalankan. Pass 1 dan pass 2 tidak perlu berada di memori pada waktu yang sama. Dengan menggunakan overlay, rutin dibagi dalam 2 overlay. Overlay A adalah tabel symbol, rutin umum dan pass1 (membutuhkan total 120K) dan overlay B terdiri dari tabel symbol, rutin umum dan pass 2 (membutuhkan 130K).
Ditambahkan 10K untuk driver overlay dan dimulai dari overlay A. Setelah selesai dijalankan overlay B dengan mengganti tempat dari overlay A. Gambaran overlay dapat dilihat pada Gambar 7-2.
Overlay tidak membutuhkan dukungan khusus dari sistem operasi. User dapat mengimplementasikannya secara lengkap menggunakan struktur file sederhana, membaca dari file ke memori dan meloncat ke memori dan mengeksekusi instruksi read yang lebih baru. Sistem operasi memberitahu hanya jika terdapat I/O yang melebihi biasanya. Penggunaan overlay terbatas untuk beberapa sistem yang mempunyai jumlah memori fisik terbatas dan kekurangan dukungan H/W untuk teknik yang lebih lanjut.
7.2 RUANG ALAMAT LOGIKA DAN RUANG ALAMAT FISIK
Alamat yang dibangkitkan oleh CPU disebut alamat logika (logical address)
dimana alamat terlihat sebagai uni memory yang disebut alamat fisik (physical address).
Tujuan utama manajemen memori adalah konsep meletakkan ruang alamat logika ke
ruang alamat fisik.

Hasil skema waktu kompilasi dan waktu pengikatan alamat pada alamat logika dan alamat memori adalah sama. Tetapi hasil skema waktu pengikatan alamat waktu eksekusi berbeda. dalam hal ini, alamat logika disebut dengan alamat maya (virtual address). Himpunan dari semua alamat logika yang dibangkitkan oleh program disebut dengan ruang alamat logika (logical address space); himpunan dari semua alamat fisik yang berhubungan dengan alamat logika disebut dengan ruang alamat fisik (physical address space).
Memory Manajement Unit (MMU) adalah perangkat keras yang memetakan alamat virtual ke alamat fisik. Pada skema MMU, nilai register relokasi ditambahkan ke setiap alamat yang dibangkitkan oleh proses user pada waktu dikirim ke memori.
Gambar 7-3 : Relokasi dinamis menggunakan register relokasi
Gambar 7-3 merupakan skema yang membutuhkan dukungan perangkat keras. Register basis disebut register relokasi. Nilai dari register relokasi ditambahkan ke setiap alamat yang dibangkitkan oleh proses user pada waktu dikirim ke memori. sebagai contoh, apabila basis 14000, maka user mencoba menempatkan ke alamat lokasi 0 dan secara dinamis direlokasi ke lokasi 14000. Pengaksesan ke lokasi logika 346, maka akan dipetakan ke lokasi 14346. Sistem operasi MS-DOS yang masih keluarga intel 80X86 menggunakan empat register relokasi ketika proses loading dan running.
User program tidak pernah melihat alamat fisik secara real. Program dapat membuat sebuah penunjuk ke lokasi 346, mengirimkan ke memory, memanipulasinya, membandingkan dengan alamat lain, semua menggunakan alamat 346. Hanya ketika digunakan sebagai alamat memory akan direlokasi secara relatif ke register basis.
SWAPPING
Sebuah proses harus berada di memori untuk dieksekusi. Proses juga dapat ditukar (swap) sementara keluar memori kebacking store dan kemudian dibawa kembali ke memori untuk melanjutkan eksekusi. Backing store berupa disk besar dengan kecepatan tinggi yang cukup untuk meletakkan copy dari semuamemory image untuk semua user, sistem juga harus menyediakan akses langsung ke memory image tersebut. Contohnya, sebuah lingkungan multiprogramming dengan penjadwalan CPU menggunakan algoritma round-robin.
Pada saat waktu kuantum berakhir, manajer memori akan memulai untuk menukar proses yang baru selesai keluar dan menukar proses lain ke dalam memori yang dibebaskan (Gambar 7-4). Pada waktu berjalan, penjadwal CPU (CPU scheduler) akan mengalokasikan sejumlah waktu untuk proses yang lain di memori. Ketika masing-masing proses menyelesaikan waktu kuantum-nya, akan ditukar dengan proses yang lain.
Gambar 7-4 : Proses swapping
Kebijakan penukaran juga dapat digunakan pada algoritma penjadwalan berbasis prioritas. Jika proses mempunyai prioritas lebih tinggi datang dan meminta layanan, memori akan swap outproses dengan prioritas lebih rendah sehingga proses dengan prioritas lebih tinggi dapat di-load dan dieksekusi.
Umumnya sebuah proses yang di-swap out akan menukar kembali ke ruang memori yang sama dengan sebelumnya. Jika proses pengikatan dilakukan pada saat load-time, maka proses tidak dapat dipindah ke lokasi yang berbeda. Tetapi, jika pengikatan pada saat execution-time , maka kemungkinan proses ditukar ke ruang memori yang berbeda, karena alamat fisik dihitung selama waktu eksekusi.
Bila CPU scheduler memutuskan untuk mengeksekusi proses, OS memanggil dispatcher. Dispatcher memeriksa untuk melihat apakah proses selanjutnya pada ready queue ada di memori. Jika tidak dan tidak terdapat cukup memori bebas, maka dispatcher swap out sebuah proses yang ada di memori dan swap in proses tersebut. Kemudian reload register ke keadaan normal. Teknik swapping yang sudah dimodifikasi ditemui pada beberapa sistem
misalnya Linux, UNIX dan Windows.
Compaction
Compaction (teknik pemadatan) yaitu memadatkan sejumlah lubang kosong menjadi satu lubang besar sehingga dapat digunakan untuk proses. Pemadatan tidak selalu dapat dipakai. Agar proses dapat dieksekusi pada lokasi baru, semua alamat internal harus direlokasi. Pemadatan hanya dilakukan pada relokasi dinamis dan dikerjakan pada waktu eksekusi. Karena relokasi membutuhkan pemindahan program dan data dan kemudian mengubah register basis (atau relokasi) yang mencerminkan alamat basis baru.
Static Partitions dan Static Partitions
Static Partitions (partisi tetap) adalah apabila memori dipartisi menjadi blok-blok yang ukurannya ditentukan dari awal. Terbagi lagi atas partisi tetap berukuran sama, dan partisi tetap berukuran berbeda.
Static Partitions (partisi dinamis) adalah memori dipartisi menjadi bagian-bagian dengan jumlah dan besar yang tidak tentu.
Monoprogramming
Monoprogramming hanya ada satu proses di memori dan sistem operasi. Manajemen memori monoprogramming sederhana mempunyai ciri-ciri berikut:
1. Hanya terdapat satu proses pada satu saat, sehingga proses baru akan menimpa proses lama yang sudah selesai eksekusi.
2. Hanya satu proses mengunakan semua memori.
3. Pemakai memusatkan program keseluruh memori dari disk atau tape.
4. Program mengambil kendali seluruh mesin. Karena hanya terdapat satu proses dan menguasai seluruh sistem, maka eksekusi memori dilakukan secara berurutan.
Multiprogramming
Multiprogramming berarti meletakan lebih dari sebuah program di main memory. Cara ini dilakukan dengan membagi main memory menjadi beberapa partisi. Tiap parisi akan menyimpan sebuah program. Foreground partitions akan berisi program dengan prioritas yang lebih tinggi sedang background partitions akan berisi program yang lebih rendah. Multiprograming akan melakukan intruksi-intruksi dari beberapa program secara bersamaan waktu, tetapi memproses sebagian intruksi dari suatu program kemudian memproses sebagian intruksi yang lain dan seterusnya. Tugas dari OS untuk menangani pemindahan (switch) pemrosesan dari program satu ke program lainnya.
Manajemen memori multiprogramming sederhana mempunyai ciri-ciri berikut:
1. Alokasi memori dengan partisi tetap untuk setiap proses.
2. Alokasi memori dengan partisi beragam sesuai besarnya proses.
3. Alokasi memori dibantu dengan disk (swap area), proses dapat berpindah dari memori ke disk
Virtual memori.
Prinsip Software I/O
Ide Dasar : mengorganisasikan software dalam beberapa layer dimana level bawah menyembunyikan akses/kepelikan hardware untuk level diatasnya. Level atas membuat interface yang baik ke user.
Tujuan Software I/O
- Konsep dalam desain software I/O.
- Penamaan yang seragam/Uniform Naming. Contoh : seluruh disks dapat dibuat dengan hirarki sistem file (menggunakan NPS).
- Penanganan kesalahan/Error Handling. Contoh : pertama controller, device driver, dst. Dan jika tidak bisa ditangani beri pesan.
- Synchronous (blocking) vs Asynchronous (Interrupt Driver) transfer.
- Sharable vs Dedicated Device. Contoh : disk untuk sharable dan printer untuk dedicated.
Interrupt Handler
Interrupt harus disembunyikan agar tidak terlihat rutin berikutnya. Device driver di blok saat perintah I/O diberikan dan menunggu interupsi. Ketika interupsi terjadi, prosedur penanganan interupsi bekerja agar device driver keluar dari state blocked.
Device Drivers
Seluruh kode device dependent terletak di device driver. Tiap device driver menangani satu tipe/satu kelas device. Tugas dari device driver untuk menerima permintaan abstrak dari software device independent diatasnya dan melakukan layanan sesuai permintaan/mengeksekusinya.
Setiap device driver menangani satu tipe peralatan. Device driver bertugas
menerima permintaan abstrak perangkat lunak device independent di atasnya
dan melakukan layanan sesuai permintaan itu.
Mekanisme kerja device driver:
- Menerjemahkan perintah-perintah abstrak menjadi perintah-perintah konkret.
- Begitu telah dapat ditentukan perintah-perintah yang harus diberikan ke pengendali, device driver mulai menulis ke register-register pengendali peralatan.
- Setelah operasi selesai dilakukan peralatan, device driver memeriksa kesalahan-kesalahan yang terjadi.
- Jika semua berjalan baik, device driver melewatkan data ke perangkat lunak device independent.
- Device melaporkan informasi status sebagai pelaporan kesalahan ke pemanggil.
Device-Independent I/O Software
I/O device-independent adalah software I/O yang tak bergantung pada perangkat keras.
Fungsi dari software I/O device-independent yang biasa dilakukan:
- Interface seragam untuk seluruh device-driver.
- Penamaan device.
- Proteksi device.
- Memberi ukuran blok device agar bersifat device-independent.
- Melakukan Buffering.
- Alokasi penyimpanan pada blok devices.
- Alokasi dan pelepasan dedicated devices.
- Pelaporan kesalahan.
User-Space I/O Software
Sebagian besar software I/O berada di dalam sistem operasi yang di link dengan user program.
System call termasuk I/O, biasanya dalam bentuk prosedur (library procedures). Contoh : count = write(fd, buffer, nbytes)
I/O prosedur dengan level lebih tinggi. Contoh : printf (memformat output dahulu kemudian panggil write)
Yang tidak mempunyai library procedure. Contoh : spooling directory dan daemon (proses khusus) pada proses mencetak, transfer file, USENET.
Kata Kunci Manajemen I/O
Block-Oriented Device ( Perangkat Berorientasi Blok )
Yaitu perangkat berorientasi blok menyimpan informasi dan menukarkan (menerima/mengirim) informasi sebagai blok-blok berukuran tetap.
Character Stream Oriented Device ( Perangkat Berorientasi Aliran Karakter )
Yaitu perangkat yang mengantarkan atau menerima aliran karakter tanpa peduli membentuk sustu struktur blok.
Clock
Yaitu perangkat yang tidak termasuk dalam kategori block-oriented device dan character stream oriented device yang artinya tidak teralamati secara blok dan juga tidak menghasilkan atau menerima aliran karakter. Clock hanya menyebabkan interupsi pada interval-interval yang didefinisikan.
Memory-Mapp
ed ScreenYaitu perangkat yang tidak tergolong dalam kategori Block-Oriented device dan Character Stream Oriented device.
I/O Device Independence
Yaitu konsep dimana membuat perangkat lunak masukkan / keluaran yang tidak bergantung perangkat keras.
I/O Programmed ( Masukkan / Keluaran Terprogram ) / polling system
Yaitu perangakat masukkan atau keluaran yang dimana pada saat menangani permintaan, perangkat men-set bit status di register status perangkat. Perangkat tidak memberitahu ke pemproses saat tugas telah selesai dilakukan. Dan proses harus selalu memeriksa register status perangkat secara priodik dan melakukan tindakan berdasar status yang dibaca.
Interrupt Driven
Yaitu suatu teknik masukkan/keluaran dituntun interupsi yang mempunyai mekanisme kerja perangkat masukkan/keluaran untuk meningkatkan efesiensi pemproses.
DMA ( Direct Memory Access )
Yaitu perangkat masukkan atau keluaran yang dikendalikan oleh interupsi lebih efisien dibanding masukkan atau kleuaran terprogram, tapi masih memerlukan intervensi aktif pemproses untuk transfer data antara memory dan buffer perangkat masukkan atau keluaran.
Device Driver
Yaitu tempat kode perangkat ditempatkan, yang bertugas menerima permintaan abstrak perangkat lunak device-independent diatasnya dan melakukan layanan sesuai permintaan.
DMA Controller
Yaitu DMA yang mengatur pengiriman informasi atau mentransfer data yang diminta dari dan ke memori secara langsung tanpa melewati pemproses.
Intelegent Device
Yaitu perangkat masukkan atau keluaran yang berintelejen setelah pemproses mengendalikan perangkat tersebut secara langsung yang dimana dari perangkat yang sederhana dikendalikan oleh mikroprosessor menjadi perangkat yang berintelejen.
Uniform Naming ( Penamaan Yang seragam )
Yaitu salah satu masalah yang ada pada manajemen masukkan atau keluaran. Misalkan nama berkas atau perangkat adalah string atau integer, tidak bergantung pada perangkat sama sekali.
Asyncrhronous Transfer
Yaitu I/O yang dimana pemproses mulai teransfer dan mengabaikan untuk melakukan kerja lain sampai interupsi tiba.
Syncrhonous Transfer
Yaitu I/O yang dimana pemproses mulai transfer dan tidak mengabaikan kerja lain saat interupsi tiba. Program pemakai sangat lebih mudah ditulis jika operasi masukkan atau keluaran berorientasi blok. Setelah perintah read, program kemudian ditunda secara otomatis sampai data tersedia di buffer.
Sharable
Yaitu perangkat yang dapat dipakai bersama pada suatu saat contohnya disk.
Dedicated
Yaitu Perangkat yang hanya satu pemakai yang dibolehkan memakai pada suatu saat. Contohnya printer.
Interrupt Handler
Interupsi harus disembunyikan agar tidak terrlihat rutin berikutnya. Device driver di blocked saat perintah masukkan atau keluara diberikan dan menunggu interupsi. Ketika interupsi terjadi, procedure penanganan interupsi bekerja agar device driver keluar dari state blocked.
Reading Ahead atau anticipated input
Yaitu teknik dimana transfer masukkan dibuat ke buffer system, ketika transfer selesai proses memindahkan blok ke ruang pemakai dan segera meminta blok lain.
Line–at–a–time mode
Yaitu proses pemakai tidak perlu ditunda untuk masukkan atau keluaran kecuali proses secepatnya mengosongkan buffer ganda.
Byte–at–a–time mode
Yaitu buffer ganda tidak member keunggulan berarti atas buffer tunggal. Double buffering mengikuti model producer-consumer.
Persistence merupakan informasi dapat bertahan meski proses yang membangkitkannya berakhir atau meskipun catu daya dihilangkan. Dengan properti ini maka file dapat di gunakan untuk menjaga hasil-hasil yang diperoleh dari suatu proses dapat di gunakan dimasa datang.
Sharability adalah yang dapat digunakan banyak proses mengakses informasi secara kongkuren.
Size adalah merupakan file umumnya berukuran besar. Memungkinkan informasi yang sangat besar disimpan.
File pile (Pile File) merupakan struktur dasar dan tak berstruktur. Struktur ini memberikan fleksibilitas penuh. Struktur ini menggunakan ruang penyimpanan dengan baik saat data berukuran dan berstruktur beragam. Struktur ini sangat jelek untuk pencarian rekord tertentu. Berbagai penggunaan dari file pile, diantaranya :
- File-file sistem
- File log ( mencatat kegiatan )
- File-file penelitian / medis
- Config.sys
File Sekuen (Sequential File) adalah sekumpulan rekam yang disimpan dalam media penyimpanan sekunder komputer yang dapat diakser secara berurutan mulai dari rekam pertama sampai rekam terakhir , rekam per rekam secara searah.
File Sekuen Berindeks (Indexed-Sequntial File) Organisasi Berkas ini mirip dengan Organisasi Berkas Sekuensial dimana setiap rekaman disusun secara beruntun di dalam file, hanya saja ada tambahan indeks yang digunakan untuk mencatat posisi atau alamat dari suatu kunci rekaman di dalam file
File Berindeks Majemuk (Multipe-Indexed File)
File ber-Hash (Hashed File) adalah Metode penempatan dan pencarian yang memanfaatkan metode Hash disebut hashing atau ‘Hash addressing’ dan fungsi yang digunakan disebut fungsi hashing / fungsi Hash. Fungsi hashing atau fungsi Hash inilah yang dapat menjadi salah satu alternatif dalam menyimpan atau mengorganisasi File dengan metode akses langsung. Fungsi Hash berupaya menciptakan “fingerprint” dari berbagai data masukan. Fungsi Hash akan mengganti atau mentransposekan data tersebut untuk menciptakan fingerprint, yang biasa disebut Hashvalue (nilai Hash).
File Multiring (Multiring File) merupakan metode pengorganisasian file yang berorientasi pada pemrosesan subset dari record secara efisien. Subset tersebut digambarkan sebagai grup dari beberapa record yang terdiri dari nilai atribut yang biasa. Contohnya “Semua pekerja yang berbicara bahasa Perancis”.
Reguler File merupakan jenis file yang mengandung informasi user.
Directoty merupakan suatu file yang berisi daftar nama file dan direktory pada suatu direktori. Direktori menyimpan informasi : nama file, pada blok-blok, sektor dan track mana file tersebut disimpan pada disk serta attribut kepemilikan direktori. Direktori merupakan suatu bentuk file yang berstruktur yang terdiri dari field dan record.
Ada dua jenis hierarki direktori yang umum digunakan, yaitu :
- Tipe direktori memuat nama, atribut berkas dan alamat disk.
- Direktori dimana berkas ditunjuk oleh pointer.
Spesial file adalah File yang berhubungan dengan peralatan I/O dan memodelkan peralatan serial, seperti Terminal, Printer, NIC.
Absolute pathname adalah nama jalur dari direktori root ke file, dimulai dari direktori root dan akan bernilai unik.
Relative Parhname adalah jalur relative terhadap direktori kerja/saat itu (working directory atau current directory).
Current Directory (Working Directory)
Sequensial Access Device adalah dapat membaca seluruh byte/record dalam suatu file, mulai dari awal, tidak boleh melompat atau keluar dari urutannya. Cocok untuk file yang disimpan pada media Magnetic Tape.
Random Access Device adalah bisa membaca byte/record untuk berbagai macam urutan pengaksesan. Cocok untuk file yang disimpan pada media Disk. Jenis ini lebih sesuai untuk berbagai aplikasi, seperti sistem database airport.