KONSEP MULTIPROGRAMMING Konsep jelas diperlukan di dalam proses pengelolaan memori, dengan tujuan, yaitu untuk mengurangi dan memperkecil CPU Idle-Time. CPU Idle-Time adalah : Suatu jangka waktu, dimana CPU tidak bekerja walaupun ada satu/lebih proses yang sedang berjalan. Hal ini terjadi karena proses I/O memerlukan waktu relatif lebih lama dari pada proses CPU. Dalam konsep memori, dapat kita bagi menjadi 3 bagian, yaitu : 1. Untuk sistem operasi 2. Untuk user/pemakai 3. Tidak dipergunakan (blank) Misal : Pada tipe mesin IBM 360/65, terdapat suatu program/job, mempunyai 3 proses dimana setiap job memakai 70% waktu, dari waktu tetap dan 30% untuk proses CPU. Apabila kapasitas memori mesin tersebut : 256 Kb. Sistem operasinya sebesar Dengan besar job yang berbeda : 32 Kb. Job 1 : 15 Kb. Job 2 : 30 Kb. Job 3 : 50 Kb. Berapa sisa/blank memori dan gambarkan skema memorinya? Jawaban : WAKTU TOTAL = WAKTU CPU + WAKTU I/O SKEMA PROSESNYA : Job 1 Job 2 Proses CPU Proses I/O (1) (1) Job 3 CPU I/O CPU I/O (2) (2) (3) (3) CPU Idle Time Idle Time (2) Idle Time (3) 0 Sis.Operasi (32 Kb) 32 I II 47 Job I (15 Kb) Job II (30 Kb) 77 III Job II (50 Kb) 127 Blank/available 256 Sedangkan untuk proses perhitungan waktu tunggu CPU, rumusnya adalah : 1. MONOPROGRAMMING W= Ii Ii + Ci x 100% dimana : W = Waktu menunggu (untuk Mono) Ii = Waktu menunggu I/O Ci = Waktu total CPU Waktu total CPU (Ci total) = waktu CPUn + waktu I/On 2. MULTIPROGRAMMING n W 1–W i n 1 W = n! ∑ W I=0 1-W i dimana : W1 = waktu tunggu multi n = jumlah proses (derajat multiprogramming) W = waktu tunggu I/O yang mono i = waktu I/O PARTITIONED ALLOCATION Suatu bentuk pengaturan memori yang paling sederhana untuk Multiprogramming, dalam cara ini Main Memori/Memori Kerja dibagi dalam beberapa daerah memori (Memori Partition). Dimana tabel yang digunakan untuk mencatat status memori, berapa yang sedang “in-use”, “available”, serta ukuran dan dimana letaknya. H/W PENUNJANG Hardware dilengkapi dengan beberapa kemampuan untuk dapat mendukung konsep ini, yaitu : Bound Register Read/Wite Protect Pasangan Lock-key Write Protect (Read proses boleh walaupun di-lock dan key) S/W PENUNJANG A. STATIC PARTITIONED SPEC : Memori dibagi-bagi, baik besar dan lokasinya sebelum pemrosesan job dimulai. Contoh : Penerapan IBM OS/360 MFT (Multiprogramming with fix number of tables). Spesifikasi dapat dilakukan oleh sistem operasi atau operator terhadap region/daerah tersebut. Tabel yang dikelola : Nomor Partisi Size Lokasi Status 1 8K 312 K In use 2 32 K 320 K In use 3 32 K 352 K Not in use 4 120 K 384 K Not in use 5 520 K 504 K In use (protection key) B. DINAMIC PARTITIONED SPEC : Daerah memori dibentuk sewaktu berlangsungnya processing dengan tujuan untuk menyesuaikan dengan besarnya job. Untuk cara Dynamic, diperlukan 2 buah tabel yang berbeda yaitu : 1. Tabel Status Daerah Memori yang diallokasi (Allocation Partitioned Status Table) Partitioned Number Size Location Status 1 8K 312 K Allocated 2 32 K 320 K Allocated 3 24 K 352 K Allocated 4 120 K 376 K Allocated 5 - - Empty Entry 2. Tabel Status Daerah Memori yang tidak diallokasi (Unallocated Area Status Table) Free Area Size Location Status 1 8K 76 K Available 2 520 K 504 K Available 3 - - Empty Entry Baik secara Static maupun Dynamic, dapat dilakukan dengan variasi/cara “Minimize Allocation” (untuk memperkecil penempatan), yaitu : I . FIRST FIT Pada First Fit Free Table, disortir/diurut menurut lokasinya. Misal : Pada Free Table Area yang kosong mempunyai address lebih rendah akan diletakkan terlebih dahulu. Bila : Tabel tersebut dalam bentuk List (daftar), maka tidak perlu melakukan sort setiap terjadi addition, deletion. Keuntungan : 1. Biasanya pada saat mengadakan Deallokasi (Penempatan kembali) kita harus memeriksa apakah terdapat partisi yang kosong, karena itu bila ada 2 atau lebih partisi kosong dapat dijadikan satu. 2. Teknik ini dasarnya, memilih penggunaan memori yang mempunyai alamat lebih rendah. Akibatnya pada memori yang lebih tinggi akan terkumpul Free Space yang cukup besar. II . BEST FIT Pada Best Fit Sort dilakukan berdasarkan/menurut besarnya dan dimulai dari yang terkecil. Jadi partisi pertama, besar mencukupi dan merupakan pilihan. Keuntungan : 1. Apabila ada partisi yang sama besarnya, maka partisi ini akan dipakai. 2. Apabila kita tidak dapat menemukan partisi yang sesuai, maka partisi yang besar dapat kita pecah, untuk suatu job yang kecil. Keuntungan Multiprogramming : 1. Pemanfaatan Procesor dan I/O Device effisien 2. Tak memerlukan H/W khusus yang mahal 3. Algoritma yang implementasi. digunakan sederhana dan mudah untuk di- SINGLE CONTIGIOUS ALLOCATION Suatu bentuk pengaturan memori yang dilakukan oleh sistem (patent) dan dapat pula dilakukan dengan cara proteksi H/W. O. S ACTUALLY USED BY JOB AVAILABLE ALLOCATED BUT UNUSED (WASTED) H/W SUPPORT/PENUNJANG Tidak memerlukan H/W khusus Cukup dengan mekanisme proteksi H/W primitif untuk melindungi Sistem Operasi Bound Register (Alamat Daerah yang dilindungi). S/W SUPPORT ENTER Job <= memory T Y Berikan memori ke job Load & execute Job tdk dpt di run coba job lain Job selesai Deallocated memori dan dari job lain PROTEKSI H/W Dilakukan apabila monitor diletakkan pada Low-memory dan User Program yang akan dilaksanakan pada High-Memory. Proses Hardware tersebut berupa “Fence Address” (batas alamat), apabila : Address < Fence address : Illegal Address > Fence address : Legal, disimpan untuk user program. Keuntungan : Agar data-data yang masuk terhadap program tidak mengalami perubahan di dalam memori tersebut. Fence Address CPU ADDRESS Add > F.add T Addressing Error Y Y MEMORI RELOCATION (RELOKASI) Untuk mengatasi jumlah/kapasitas memori dan user dalam Fence Address (BATAS ALAMAT), perlu adanya Allokasi Monitor dan data dalam memory ke dalam bentuk variabel, proses ersebut dinamakan : Relokasi. Monitor 4 Kb Monitor User 6 Kb Fence Address agar penggunaan monitor & user lebih fleksibel fence register User FENCE REGISTER Merupakan isi dari alamat batas/Fence Address yang digunakan untuk mengecek alamat yang benar dari semua user program. Dimasukkan melalui sistem operasi, dengan instruksi tertentu: MAR m Transfer alamat ke MAR (Memory Accumullator Register) MBR m Membuat data (Memory Buffer Register) Operasinya / Macro (terdiri dari 3 siklus) AC + M AC 1. MAR m : Transfer alamat ke MAR 2. MBR m : Membaca ke MBR 3. AC AC + MBR : Jumlahkan isi AC dgn MBR hsl disimpan pada AC Apabila Fence Address, diketahui pada saat Compile maka akan dibangkitkan kembali : Kode Absolute pada Fence Address tersebut. Apabila Fence Address tersebut Variabel (selalu berubah), maka perlu adanya : Recompile , dimulai dari kode absolute pada Fence Address tersebut, karena Fence Address setiap waktu dapat berubah, sehingga perlu di-compile untuk menempatkan alamat pada monitor. MULTI-STEP PROCESSING DARI USER PROGRAM PROGRAM SUMBER KOMPILER/ASSEMBLER Source Program Compiler time MODUL OBJECT LINKAGE EDITOR MODUL LOAD Load time (loading) LOADER IN-CARE MEMORY execute time/run time RELOKASI DINAMIS DGN REGISTER RELOKASI 1400 Alamat logika REGISTER BASIS alamat fisik + CPU 0346 MEMORI 1746 (0346 + 1400) BAHASA MESINNYA : Mov Ax, “ADDR” : Direct Addressing Mov Ax, Bx : Register Addressing Mov Bx, 10 : Immidiate Addressing DEMAND PAGED MEMORY MANAGEMENT Merupakan salah satu teknik allokasi memori dengan cara/konsep “virtual memory”, dimana mamori yang dimanfaatkan <= 100%. Page tersebut tidak harus berada dimemori semuanya. Tidak seluruh address space selalu diperlukan. VIRTUAL MEMORY Yaitu merupakan suatu teknik yang memungkinkan pelaksanaan proses yang tidak secara lengkap berada di dalam memorinya. Virtual Memory dapat diasumsikan semacam kotak dengan melaksanakan proses execute yang secara lengkap tidak ada dalam memorinya dan suatu memori/proses akan di execute bila semua proses telah berada di memori. Proses Proses Proses di-execute VIRTUAL MEMORY Manfaat Virtual Memory : 1. User program dapat lebih besar drpd kapasitas/ukuran fisik memori. 2. Array, List dan Table, biasanya menempai lokasi di dalam memori yang jauh lebih besar. Pada Demand Page Management ini digunakan beberapa hal,sbb : a. Error Routine b. Option c. Table, hanya sebagian yang diperlukan d. PMT (Address Space), MBT (Memory Buffer Table) FMT (File Map Table) e. Demand Page Interupt f. Deallokasi g. Allokasi Teknik untuk Pengaturan suatu PAGE, dapat dengan : a. Page Swapping b. Page Remoral c. Page Replacement d. Page Turning e. Page Canibalizing f. Trashing (Bila terjadi suatu page yang baru diambil dari memori harus dimasukkan kembali) Demand Paging Memory Management, diterapkan pada Sistem Operasi : VMS pada DEC UNIX VMOS pada UNIVAC serie 70/76 VS/1, VS/2, VSE pada IBM S/370 Empat Fungsi Demand Paged menjadi lebih kompleks dan fleksibel : 1. Mengikuti Status dengan tiga tabel : a. PMT (Address Space) b. MBT (Sistem) c. FMT (File Map Table)/Sistem 2. Demand Page Interupt : Kebijakan untuk menentukan siapa yang mendapatkan memori & kapan ditentukan oleh Job Scheduller. 3. Allokasi : Kapan Block harus diallokasi, block yang available harus didapatkan dan status block harus diubah. 4. Deallokasi : Bila tidak mungkin mendapatkan block yang available untuk allokasi, salah satu block memory yang diallokasikan harus dideallocated dan dipakai kembali. Bila block selesai, semua block yang digunakan menjadi available. SEGMENTED MEMORY MANAGEMENT Adalah salah satu teknik mengallokasikan memori, dengan cara mengelompokkan informasi secara logika. Misal : Subroutine, Array, Data Area. Pada Segment, setiap job akan terdiri dari suatu kumpulan segment. Konsep Segment, digunakan pada : 1. IBM S/370 Os/VS2 2. Honeywell 6180 Multic 3. Burrough 8500 Perbedaan Segment dengan Page : A. Segment : 1. Merupakan Logical Unit dari informasi dengan ukuran bebas. 2. Dapat terlihat oleh user program. 3. Ukuran tidak tergantung user program. B. Paging : 1. Merupakan Physical unit dari informasi. 2. Tidak dapat terlihat oleh user program. 3. Ukuran tertentu. Keuntungan segmentasi : 1. Menghilangkan Fragmentasi. 2. Menyediakan Virtual Memory. 3. Pemuatan dan Penggandengan secara dinamis (Dynamic Linking & Loading). 4. Automatically Bound Checking (Pengecekan terbatas secara otomatis). 5. Shared Segment (Pemakaian bersama/prosedur). Tabel Pendukung Segmented Memory Management : 1. SMT (Segment Map Table) : 1 per address space. 2. UAT (Unallocated Area Table) : 1 pada sistem. 3. ART (Active Reference Table) : 1 per address space. 4. AST (Active Segment Table) : 1 pada sistem.