konsep multiprogramming

advertisement
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.
Download