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
(2)
(2)
(3)
CPU Idle Time
Idle Time (2)
I/O (3)
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.
CONFIGURATION TYPE SISTEM Processor
Memory
Multiplexor channel
Card repeater
Selector Channel
Blok Multiplexor channel-1
Blok Multiplexor channel-2
Printer-2
Disks Card printer
Printer-1
Drums Tape
Control : Data :
SKEMA DEMAND PAGE
Logical memory
A B
Page Table
Frame valid/invalid
Physical Memory
Backing Storage
0 1
0
2
C
1
3
D
2
4 SWAP OUT
E
3
5
F
4
6 7 8 9 10 11 12 13
SWAP IN
Drums
SKEMATIS SEGMENTASI
LIMIT BASE 0
MEMORY
CPU
6700
TRAP ERROR
0
LIMIT BASE 1000 1400
1
400
6300
2
400
4300
3
1100
3200
1000
4700
4
0 1400
FREE
2400
0 FREE
PROG I
PROG II
3200
3
4300
2
4700 SEG 1
SEG 2
5700 6300 6700
4 FREE 1 FREE
CONTOH SEGMENTASI!!
Program
Algoritma
0 500 1000 0
MOD-1 MOD-2 MOD-3
0 1 2
Memory
1. (S,D) (0,500) 2. Limit : 0 1000 3. Apakah : 500 < 1000 4. Maka akan diletakkan pd add 1000+500=1500
100
0
FREE
1000 1500
MOD-1
2000
MOD-2 MOD-3
6700
FREE SPACE TABLE 1
1000
2000
2
5000
200
3
--
--
1
0
1400
1
500
960
2
2400
800
3
5700
600
Physical Memory Logical Memory
Page Table 0 1
1 2 2 3 3
0 1 2 3 4
1
0
2 3 FREE 4
4 4 5 5 6
Program
Frame number
5
FREE
6 7
5
page number
FREE
32
SHARED PAGES Karena adanya program/job yang di-execute secara bersama-sama, maka sebagian besar dapat melaksanakan copy program terrsebut dalam masing-masing useer area. Tetapi untuk menghemat area memori tidak dicopy untuk setiap user,akan tetapi menggunakan secara bersama (Shared Code). Misal : Pada proses compiler, editor, ass, yang merupakan suatu sel program dapat dijadikan suatu shared code adalah program tersebut harus berbentuk pure code (suatu program yang self modifiable) /tidak dapat berubah selama proses execute berlangsung. CONTOH SHARED PAGES!! JOB
PAGE TABLE 0
3
ED-1
1
1
4
ED-2
2
ED-3
2
6
ED-3
3 USER 1
DATA
3
7
ED-1
0
ED-1 ED-2
JOB-1
JOB-2
1
ED-2 ED-3
2
2
DATA
DATA
4
JOB-2
ED-3
7
DATA
8
ED-1
9
ED-2
10 USER 3 11
6
ED-3
2
5
3
6
4
JOB-3
4
ED-2
5
3
LOGICAL MEMORY
5 6
3
ED-2
DATA
JOB-1
ED-1
0 1
ED-1
JOB-3
PHYSICAL MEMORY
ED-3 DATA
ED-1
DATA-1
ED-2
DATA-2
ED-3
USER 2
12
DATA-3
PAGE FAULTED HANDLING Dalam konsep multiprogramming lebih dari satu program yang di-run dalam suatu saat yang sama dan program yang akan di-execute harus sudah berada di memory. Sedangkan program lebih daripada memory, sehingga hanya sebagian saja dari program tersebut yang boleh berada di memory, maka jika program yang di-execute dan code yang berada di suatu page tersebut belum berada di memory maka kita sebut sebagai “PAGE FAULTED”. Apabila terjadi suatu page faulted, maka kita harus dapat memanggil page yang ingin kita gunakan dari backing storage ke memory. Jika jumlah page per program yang diperbolehkan berada di memory maximum, maka harus dicari suatu paged yang menggantikan disebut “PAGE REPLACEMENT”. BAGAN Page Faulted Handling : (3) cari di backing storage O/S
(2) trap
(1) reference BACKING STORAGE PAGE TABLE (6) restart LOAD (M)
instruksi (5)reset page table
(4) cari di freeFREE FRAME
frame
KETERANGAN : 1. Pada waktu proses satu instruksi atau dilakukan terlebih dahulu harus dilakukan cek, apakah page yang berintruksi sudah ada di memori. 2. Jika belum ada, beritahu o/s dan trap proses. 3. Cari di secondary memory/backing storage. 4. Setelah ketemu cari di frame free untuk menemukan page tersebut. 5. Reset page table dari invalid menjadi valid. 6. Siap untuk melanjutkan execute. Sebagai contoh : Setiap page terdiri dari 100 word. Kemudian urutan program yang akan diexecute tersebut : 0100
0432
0101
0612
0102
0103
0104
0101
0611
0102
0103
0104
0101
0610
0120
0103
0104
0101
0609
0102
0105
Maka bentuk preference string menjadi : 1 4 1 6 1 1 1 1 6 1 1 1 1 6 1 1 1 1 6 1 1 Ditanya : Berapa jumlahnya ? 21 ( diambil digit ke-2) Sehingga ditulisnya cukup diwakili : 141616161611 Jadi max page perprogram = 1 ( yang paling banyak muncul )
1
4
1
6
1
6
1
6
1
6
1
1
REPLACEMENT ALGORITHM
Algoritma Replacement ini terbagi atas : 1. FIFO Apabila terjadi page replacement, maka page yang pertama kali masuk berada di memori yang diganti. Sebagai contoh : Max 3 pages perprogram Multiprogram level = 3 ( Tingkat memory max untuk dapat menampung beberapa program ) Kita ambil contoh suatu string reference : 7, 0, 1, 2, 0, 3, 0, 4, 2, 3, 0, 3, 2, 1, 2, 0, 1, 7, 0, 1 Maka untuk FIFO page replacement adalah sebagai berikut : 7
0
1
2
0
3
0
4
2
3
7
7 0
7 0 1
2 0 1
2 0 1
2 3 1
2 3 0
4 3 0
4 2 0
4 2 3
1
2
3
4
*
5
6
7
8
9
0
3
2
1
2
0
1
7
0
1
0 2 3
0 2 3
0 2 3
0 1 3
0 1 2
0 1 2
0 1 2
7 1 2
7 0 2
7 0 1
10
*
*
11
12
*
*
13
14
15
Page yang sama tidak perlu ditulis lagi, sehingga page replacement = 15
2. OPTIMAL REPLACEMENT Jumlah page replacement = 10 7
0
1
2
0
3
0
4
2
3
0
3
7
7 0
7 0 1
2 0 1
2 0 1
2 0 3
2 0 3
2 4 3
2 4 3
2 4 3
2 0 3
2 0 3
1
2
3
4
*
5
*
6
*
*
7
*
2
1
2
0
1
7
0
1
2 0 3
2 1 3
2 1 3
0 1 3
0 1 3
0 1 7
0 1 7
0 1 7
*
8
*
9
*
10
*
*
3. LEAST RECENTLY USED Jika terjadi pengaktifan suatu page, maka page yang diganti adalah page yang paling lama sudah digunakan. Jumlah page replacement = 12 7
0
1
2
0
3
0
4
2
3
7
7 0
7 0 1
2 0 1
2 0 1
2 0 3
2 0 3
4 0 3
4 0 2
4 3 2
1
2
3
4
*
5
*
6
7
8
0
3
2
1
2
0
1
7
0
1
0 3 2
0 3 2
0 3 2
1 3 2
1 3 2
1 0 2
1 0 2
1 0 7
1 0 7
1 0 7
9
*
*
10
*
11
*
12
*
*
Untuk menentukan pengalokasian tersebut, yaitu jumlah proses atau program digunakan teknik atau algoritma alokasi.
Pengalokasian Page tersebut terbagi atas dua cara : I. EQUAL ALLOCATION Dimana jumlah setiap program akan mendapat jumlah frame yang sama besarnya. Rumus : Besar frame tiap program =
jumlah frame Jumlah program
II. PROPORTIONAL ALLOCATION Dimana setiap program akan mendapat jumlah frame yang besarnya, proporsional dengan besar programnya.
Contoh : Apabila terdapat jumlah frame (memory = 62) dimana program A terdapat 10 proses dan program B terdapat 200 proses.
Jawab : Cara equal allocation : Untuk program A = Jumlah frame Jumlah program = 62/2 = 31 frame Untuk program B =
62/2 = 31 frame
Cara Proportional Allocation : Untuk program A = 10/210 * 62 = Untuk program B = =
2,95 frame 200/210 * 62 59,05 frame
DEVICE MANAGEMENT FUNCTION
Pada device management function yang kita pelajari adalah bagaimana malakukan pengaturan suatu peralatan untuk performance dari perangkat keras komputer. Perangkat keras tersebut pada umumnya dibahas di disk dan drums. Pada disk terbagi atas klasifikasi, sebagai berikut : I.
FIXED HEAD DISK (FHD) Mempunyai suatu head untuk setiap track sehingga memungkinkan komputer untuk dapat berpindah dari suatu track ke track yang lainnya dengan cepat. FHD secara logika sama fungsinya dengan drums, namun FHD lebih mahal harganya.
II.
MONING HEAD DISK (MHD) Memerlukan perangkat/hardware untuk dapat menggerakakan head tersebut sehingga hanya perlu single head/satu head. MHD harganya relatif murah.
Sebuah drums mempunyai kecepatan transfer lebih besar daripada disk namun kapasitas drums lebih kecil daripada disk. Drums biasanya dipakai sebagai backing storage. Kebanyakan sistem device/ peralatan menggunakan teknik high speed disk atauun core memory yang bekerrja seperti drums namun kecepatan tranfer dan akses lebuh tinggi. Drum dirancang untuk menyimpan banyak file.
Hardware dari sistem disk terdiri dari dua bagian : 1. DISK DRIVE Yaitu meliputi motor yang digunakan untuk menggerakkan read, write, head. 2. DISK CONTROLLER Yaitu untuk menentukan interaksi logika dengan komputer. Sebuah disk controller akan mengambil instruksi dari CPU dan memerintahkan disk drive untuk mengeluarkan instruksi tersebut.
Kecepatan media disk terbagi atas 3 bagian : 1. SEEK TIME Adalah waktu yang diperlukan pada waktu sistem menggerakkan head ke track yang diinginkan. 2. LATENCY TIME (DELAY TIME) Adalah waktu yang diperlukan untuk mendapatkan block atau sector yang dicari. 3. TRANSFER TIME Adalah waktu yang diperlukan untuk memindahkan data antara disk dengan memory.
SISTEM PENJADWALAN DISK, dapat terbagi atas : 1. FIRST COME FIRST SERVED (FCFS)
Contoh : Apabila ada urutan trak yang diinginkan adalah 98, 183, 37, 122, 14, 124, 65 dan 67. Pada saat itu head berada pada posisi track ke 53 (posisi awal track 53).
Penjadwalan FCFS adalah sebagai berikut :
0 14
37
53 65 67
98
122 124
183
Jumlah track dengan FCFS : (98-53) + (183-98) + (183-37) + (122-37) + (122-14) + (124-14) + ( 124-65) + (67-65) = 640 track
2. SHORTEST SEEK TIME FIRST (SSTF)
0 14
37
53 65 67
98
122 124
183
Jumlah track dengan SSTF : (65-53) + (67-65) + (67-37) + (37-14) + (98-14) + (122-98) + (124-122) + (183-124) = 236 track
PROCESSOR MANAGEMENT FUNCTION Management Processor berkaitan dengan masalah pengelolaan secara fisik khususnya mengalokasikan processor untuk proses. Klasifikasi pengalokasian processor terbagi atas : 1. Penjadwalan job/ job schedulling Merupakan job schedulling yang berbentuk general manager dengan tugas-tugas sebagai berikut : a. Mengikuti status job untuk mengetahui job mana yang sedang menunggu, selain itu juga untuk mengetahui status job yang diproses. b. Menentukan job mana yang akan dimasukkan ke dalam sistem. 2. Penjadwalan proses/ proses schedulling Setelah suatu proses berubah status dari kondisii „hold‟ ke kondisi „ready‟ maka akan ada satu atau lebih proses di dalam sistem. Penjadwalan proses menentukan proses mana yang mendapatkan sumber/ resources dari kapan dan untuk berapa lama. 3. Sinkronisasi proses dengan jon (Process With Job Sinchronisasi) Pada tingkat job umumnya telah tersedia suatu mekanisme untuk mengatur pelaksanaan dari satu atau lebih dari job. Misalnya : Apabila job step-1 sebelum dilaksanakan maka pada tingkat proses harus dibuat mekanisme disebut „race condition‟.
RACE CONDITION adalah suatu keadaan yang terjadi sebagai suatu akibat dari pergantian proses komputasi dengan demikian akan terdapat ketergantungan terhadap waktu proses.
Misal : Suatu proses membutuhkan suatu printer dimana proses lain sedang
menggunakan
printer,
untuk
itu
diperlukan
suatu
mekanisme agar proses tidak tercampur, yaitu dengan cara proses 2 dikerjakan terlebih dahulu sampai selesai, baru proses 1. Pemecahan ini dilaksanakan dengan mengharuskan proses secara implisit artinya proses dikerjakan secara satu per satu.
SINKRONISASI PROSES yaitu masalah yang timbul yang diakibatkan karena resurces yang ada digunakan bersama-sama sehingga terdapat dua masalah yang harus ditanggulangi yaitu : 1. RACE CONDITION 2. DEADLY EMBRACE DEADLY EMBRACE, merupakan suatu situasi dimana terdapat dua buah proses atau lebih yang berdiri sendiri (saling tidak kenal).
CPU SCHEDULLING
Dalam pengelolaan processor berkaitan erat dengan CPU sehingga diperlukan teknik penjadwalan CPU secara benar. Adapun algoritma penjadwalan CPU : 1. First Come First Served (FCFS) Apabila job-job tersebut datanya berurutan sesuai dengan tabel, maka kita harus manggambarkan ganti chartnya. JOB BURST TIME 1 24 2
3
3
3
A. Ganti chartnya : Job-1
0
Job-2
24
(0+24)
Job-3
27 (24+3)
30 (27+3)
B. Turn Arround Time : Job-1 = 24 Job-2 = 27 Job-3 = 30 C. Average Turn Arround Time : (24+27+30) / 3 = 27
JOB BURST TIME 1
24
2
3
3
3
A. Ganti Chartnya : Job-3
0
Job-2
3
Job-1
6
30
B. Turn Arround Time Job-1 = 3 Job-2 = 6 Job-3 = 30 C. Average Turn Arround Time (3+6+30) / 3 = 39/3 = 13
2. SHORTEST JOB FIRST (SJF)
JOB BURST TIME 1 6 2
3
3
8
4
7
A. Ganti chartnya : Job-2 Job-1 Job-4 Job-3
0
3
9
16
24
B. Turn Arround Time Job-1 = 9 Job-2 = 3 Job-3 = 24 Job-4 = 16 C. Average Turn Arround Time (3+9+24+16) / 4 = 13
A. ALGORITMA PRE EMPTIVE Contoh : SCF
JOB ARRIVAL TIME BURST TIME 1
0
8
(3)
(2)
2
1
4
(1)
(4)
3
2
9
(4)
(1)
4
3
5
(2)
(3)
Tentukan dengan cara Shortest Job First : a. Ganti Chartnya: Job Job-2 Job-4 Job-1 Job-3
0
1
5 (1+4)
10
17
26
(5+5) (10+8) (17+9)
Pre emptive b. Turn Arround Time Job-1 = 17 Job-2 = 5 Job-3 = 26 Job-4 = 10
B. ALGORITMA NON PRE EMPTIVE
Tentukan dengan cara FCFS
Job Job-3 Job-1 Job-4 Job-2
a. 0
1
10
17
22
b. Turn arround time Job-1 = 17 Job-2 = 26 Job-3 = 10 Job-4 = 22
c. Average Turn Arround Time (1+10+17+22+24) / 4 = 19
26
DEAD LOCK
Suatu set dari proses dalam keadan dead lock, apabila setiap proses dalam set menunggu suatu kejadian yang disebabkan oleh proses lain dalam set tersebut. Proses dead lock terjadi karena menunggu suatu kejadian tertentu yang tak pernah terjadi. Dimana dead lock terjadi ketika proses-proses mengakses secara exclusif sumber daya yang melibatkan persaingan untuk memproses sumber daya oleh dua atau lebih proses. Proses tersebut biasanya release (pelepasan dari suatu resources dan proses menunggu adalah menunggu direleasenya suatu resources oleh proses lain. Suatu dead lock digambarkan dalam bentuk/sebagai “graph”. Sebab-sebab terjadinya dead lock : 1. Mutual Exclusion Terjadi karena proses non shahring device, misal : tape printer, card reader. 2. Hold and Wait Dimana suatu resources yang memakai resources yang lain harus menunggu, karena resources tersebut sedang dipakai proses lain. 3. Non Pre Emptive Dimana suatu resources untuk sementara tidak dapat diberikan kepada proses lain.
4. Circular Wait Suatu set waiting proses (P0, P1, P2, …….., Pn) dimana P0 menunggu resources yang sedang dipakai P1, P1 menunggu resources yang sedang dipakai P2, dan seterusnya.
Metode mengatasi Dead Lock 1. Dead Lock Prevention Berkaitan
dengan
pengkondisian
sistem
agar
menghilangkan
kemungkinan terjadinya dead lock. 2. Dead Lock Avoidance Adalah menghindari kondisi-kondisi yang paling mungkin menimbulkan terjadinya dead lock, agar memperoleh utilisasi sumber daya yang lebih baik. 3. Dead Lock Detection and Recovery Digunakan pada sistem yang mengizinkan terjadinya dead lock dan bertujuan untuk memeriksa apakah telah terjadi dead lock dan menentukan proses-proses dan sumber daya yang terlibat dead lock secara presisi (seimbang).
Contoh : Resources Allocation Graph : Set P,V,R P = {P1, P2, P3} R = {R1, R2, R3} V = { (P1, R1), (P2, R1), (R2, P1), (P2, R2), (P3, R3), (P2, R3) }
Resources Instance : 1. VTK. R1 2. VTK. R2 3. VTK. R3 4. VTK. R4
Proses state P1
Menggunakan R1 Menunggu R3
P2
Menggunakan R1, R2 Menunggu R3
P3
Menggunakan R3
1. Dead Lock
a.
R1
R3
P1
P2
P3
R2 P0
b.
R0
R1 P1 P0
R0
R1 P1
2. Non Dead Lock
R3 R1
P2
P1 P3
R2 R2 P4
CLOCK Dalam setiap komputer dilengkapi dengan komponen RTC (Real Time Clock), dimana perangkat keras clock tersebut terdiri dari : 1. Clock yang ditimbulkan impulse tegangan listrik clock ini dapat melakukan interupsi 50-60 interupt/detik sesuai dengan frekuensi listrik. 2. Progmaable Interval Timer (PIT) Clock yang terdiri dari Crystal Oscilator, Coventer dan holding register.
Keunggulan PIT 1. Mempunyai akurasi tinggi. 2. Frekuensi interupt dapat diatur secara perangkat lunak/software.
PIT digunakan sebagai: 1. Waktu sistem. 2. Pembangkit band rate (pada USART (Universal Synchonisasi Asyn chronisasi Recelver Transmitter)). 3. Penghitung kejadian. 4. Pengendali motor. 5. Pembangkit musik.
Mode Pemrograman PIT 1. One – shot mode Mode ini hanya menghasilkan satu kejadian tunggal, diperlukan ketika clock diaktifkan berdasarkan kejadian.
2. Square Wave Mode Mode ini hanya menghasilkan kejadian-kejadian interupsi timer secara periodik dilakukan secara otomatiss tanpa melibatkan proses.
Beberapa fungsi clock pada SO : 1. Mengelola waktu dan tanggal. 2. Mencegah proses berjalan lebih dari waktu yang ditetapkan. 3. Menghitung penggunaan pemrosesan. 4. Menangani sistemm call alarm, yang dibuat oleh user. 5. Mengerjakan profiling, monitoring, dan pengumpulan statistik.
Contoh kasus PIT Teori
: Apabila PIT digunakan untuk pewaktu, maka PIT akan menghasilkan interupsi secara periodik, keluaran PIT menghitung pulsa eksternal yang diberikan Cystal Oscilator dan diteruskan langsung ke IRC (Interupt Request). Periode
waktu
antara
2
interupt
timer
berurutan
dapat
diprogramkan dengan memasukkan nilai nilai holding register. Rumus : Internal Interupt perode clock x nilai holding register. Problem : Apabila dikehendaki interval pewaktu setiap 10 ms. Frekuensi cystal osilator adalah 2 MHz. Pertanyaan : Berapa nilai yang harus dimasukan ke Holding Register? Jawab
: Periode clock = 1 2Mh
1
= 0,5 x 10-6 = 0,5 s
(2x106)
Nilai yang diberikan ke Holding Register : =
(10x10-3)
= 20x103
(0,5x10-6) Artinya : Holding Register di set dengan nilai 20.000