KONSEP MULTIPROGRAMMING - Official Site of...

46
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 : 32 Kb. Dengan besar job yang berbeda Job 1 : 15 Kb. Job 2 : 30 Kb. Job 3 : 50 Kb.

Transcript of KONSEP MULTIPROGRAMMING - Official Site of...

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 operasi2. Untuk user/pemakai3. 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 : 32 Kb. Dengan besar job yang berbeda Job 1 : 15 Kb.

Job 2 : 30 Kb. Job 3 : 50 Kb.

Berapa sisa/blank memori dan gambarkan skema memorinya?

Jawaban : SKEMA PROSESNYA : Job 1 Job 2 Job 3

WAKTU TOTAL = WAKTU CPU + WAKTU I/O

Proses CPU Proses I/O CPU I/O CPU I/O (1) (1) (2) (2) (3) (3) CPU Idle Time Idle Time (2) Idle Time (3) 0 Sis.Operasi (32 Kb) 32 Job I (15 Kb) 47 Job II (30 Kb) 77 Job II (50 Kb) 127 Blank/available 256 Sedangkan untuk proses perhitungan waktu tunggu CPU, rumusnya adalah :

1. MONOPROGRAMMING

dimana : W = Waktu menunggu (untuk Mono) Ii = Waktu menunggu I/O Ci = Waktu total CPU

2. MULTIPROGRAMMING

IiW = x 100% Ii + Ci

Waktu total CPU (Ci total) = waktu CPUn + waktu I/On

n W 1 – W n i n! ∑ W W1 = I=0 1 - W i

III

III

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(protection key)

Size Lokasi Status

12345

8 K 32 K 32 K

120 K520 K

312 K320 K352 K384 K504 K

In useIn use

Not in useNot in use

In use

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

12345

8 K32 K24 K120 K-

312 K320 K352 K376 K

-

AllocatedAllocatedAllocatedAllocated

Empty Entry

2. Tabel Status Daerah Memori yang tidak diallokasi

(Unallocated Area Status Table)

Free Area Size Location Status123

8 K520 K

-

76 K504 K

-

AvailableAvailable

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 FITPada 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 effisien2. Tak memerlukan H/W khusus yang mahal3. Algoritma yang digunakan sederhana dan mudah untuk di-

implementasi. SINGLE CONTIGIOUS ALLOCATION

Suatu bentuk pengaturan memori yang dilakukan oleh sistem (patent) dan dapat pula dilakukan dengan cara proteksi H/W.

AVAILABLE

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

Y

O. S

ACTUALLY USED BY JOB

ALLOCATED BUT UNUSED (WASTED)

ENTER

Job <= memory

Berikan memori ke job

Job selesai Deallocated memori dan dari job lain

Load & execute TPROTEKSI 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 : IllegalAddress > Fence address : Legal, disimpan untuk user program.

Keuntungan :Agar data-data yang masuk terhadap program tidak mengalami perubahan di dalam memori tersebut.

ADDRESS Y Y T

RELOCATION (RELOKASI)Untuk mengatasi jumlah/kapasitas memori dan user dalam Fence

Address (BATAS ALAMAT), perlu adanya Allokasi Monitor dan data

Fence Address

Add > F.add

CPU MEMORI

Addressing Error

Job tdk dpt di run coba job lain

dalam memory ke dalam bentuk variabel, proses ersebut dinamakan : Relokasi.

4 Kb Fence Address fence - agar penggunaan register 6 Kb monitor & user lebih fleksibel

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 AC1. MAR m : Transfer alamat ke MAR2. MBR m : Membaca ke MBR3. 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

Monitor

User

Monitor

User

Address tersebut, karena Fence Address setiap waktu dapat berubah, sehingga perlu di-compile untuk menempatkan alamat pada monitor.

MULTI-STEP PROCESSING DARI USER PROGRAM Source Program

Compiler time

Load time (loading)

execute time/run time

RELOKASI DINAMIS DGN REGISTER RELOKASI

REGISTER BASIS Alamat logika alamat fisik

0346 1746 (0346 + 1400)

BAHASA MESINNYA :Mov Ax, “ADDR” : Direct Addressing

PROGRAM

SUMBER

MODUL OBJECT

KOMPILER/ASSEMBLER

LINKAGE EDITOR

MODUL

LOAD

LOADERIN-CARE MEMORY

1400

+CPU MEMORI

Mov Ax, Bx : Register AddressingMov 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 MEMORYYaitu 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.

di-execute

VIRTUAL MEMORYManfaat 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 Routineb. Optionc. Table, hanya sebagian yang diperlukand. PMT (Address Space), MBT (Memory Buffer Table) FMT (File Map Table)e. Demand Page Interuptf. Deallokasig. Allokasi

Teknik untuk Pengaturan suatu PAGE, dapat dengan :a. Page Swappingb. Page Remoralc. Page Replacementd. Page Turninge. Page Canibalizingf. Trashing (Bila terjadi suatu page yang baru diambil dari

memori harus dimasukkan kembali)

Proses

ProsesProses

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 di-deallocated 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/VS22. Honeywell 6180 Multic3. 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

Disks Drums Tape Control : Data :

SKEMA DEMAND PAGE

Logical memory Page Table Physical Memory Backing Storage

Processor

Memory

SelectorChannel

Multiplexorchannel

Blok Multiplexor channel-2

Blok Multiplexor channel-1

Card printer

Card repeater

Printer-2

Printer-1

Frame valid/invalid 0 1 0 2 1 3 2 4 SWAP OUT 3 5 4 6

7 8 SWAP IN 9 Drums

10 11 12 13

SKEMATIS SEGMENTASI

0

6700

A

B

C

D

E

F

CPU MEMORY

LIMIT BASE

0123 04 1400 2400 3200 4300 4700 5700 6300 6700

CONTOH SEGMENTASI !!

Program Algoritma Memory 0 1. (S,D) (0,500) 0 500 0 2. Limit : 0 1000 1000 1000 3. Apakah : 500 < 1000 1500 1 4. Maka akan diletakkan 2000 0 2 pd add 1000+500=1500 100 6700

TRAP ERROR

LIMIT BASE1000 1400

400 6300

400 4300

1100 3200

1000 4700

PROGI

PROGII

SEG1

SEG2

FREE

0

FREE

3

2

4

FREE

1

FREE

MOD-1

MOD-2

MOD-3

FREE

MOD-1

MOD-2

MOD-3

FREE SPACE TABLE

1 1000 2000 2 5000 200

3 -- --

1 0 1400

1 500 960

2 2400 800

3 5700 600

1

2

3

4

5

Physical Memory Logical Memory Page Table 0 0 1 2 3 4

5 6 7 Program Frame number page number 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!! J O B PAGE TABLE PHYSICAL MEMORY 0 1 LOGICAL MEMORY 1 2 JOB-1 2 JOB-1 3 USER 1 3 4

0

1

2

3

4

5

6

1

2

3

FREE

4

FREE

5

FREE

ED-1

ED-2

ED-3

DATA

3

4

6

7

ED-1

ED-2

ED-3

DATA

ED-1

ED-2

ED-3

DATA

ED-1

ED-2

ED-3

DATA

ED-1

ED-2

ED-3

DATA-1

0 5 6 JOB-2 1 JOB-2 USER 2 7 2 2 8 9 0 JOB-3 10 USER 3 1 11 JOB-3 2 12 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 (2) trap (1) reference

ED-1

ED-2

ED-3

DATA

ED-1

ED-2

ED-3

DATA

3

4

5

6

3

4

5

6

DATA-2

DATA-3

O/S

BACKING STORAGE PAGE TABLE (6) restart LOAD (M) instruksi (5)reset page table (4) cari di free- 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)

FREE FRAME

Sehingga ditulisnya cukup diwakili : 1 4 1 6 1 6 1 6 1 6 1 1 Jadi max page perprogram = 1 ( yang paling banyak muncul )

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, 1Maka untuk FIFO page replacement adalah sebagai berikut : 7 0 1 2 0 3 0 4 2 3 1 2 3 4 * 5 6 7 8 9 0 3 2 1 2 0 1 7 0 1

10 * * 11 12 * * 13 14 15Page yang sama tidak perlu ditulis lagi, sehingga page replacement = 15

1 11 61 6 1 6 14 1 6

7 430

70

701

420

201

201

423

230

701

702

231

023

012

712

013

012

012

023

023

2. OPTIMAL REPLACEMENT Jumlah page replacement = 10 7 0 1 2 0 3 0 4 2 3 0 3 1 2 3 4 * 5 * 6 * * 7 * 2 1 2 0 1 7 0 1 * 8 * 9 * 10 * *

3. LEAST RECENTLY USEDJika 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

1 2 3 4 * 5 * 6 7 8 0 3 2 1 2 0 1 7 0 1 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.

203

203

201

201

70

701

7 203

203

243

243

243

017

017

017

013

013

213

213

203

7 70

701

201

201

203

203

403

402

432

032

032

032

132

132

102

102

107

107

107

Rumus :

II. PROPORTIONAL ALLOCATIONDimana 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 = 2,95 frameUntuk program B = 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)

Besar frame tiap program = jumlah frame Jumlah program

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 CONTROLLERYaitu 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 TIMEAdalah 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 schedullingMerupakan 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 schedullingSetelah 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 CONDITION2. DEADLY EMBRACEDEADLY 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.

A. Ganti chartnya : 0 24 27 30 (0+24) (24+3) (27+3)B. Turn Arround Time : Job-1 = 24 Job-2 = 27 Job-3 = 30C. Average Turn Arround Time : (24+27+30) / 3 = 27

JOB BURST TIME 1 24

2 3

3 3

Job-1 Job-2 Job-3

A. Ganti Chartnya :

0 3 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)

A. Ganti chartnya :

0 3 9 16 24B. Turn Arround Time Job-1 = 9 Job-2 = 3 Job-3 = 24 Job-4 = 16C. Average Turn Arround Time (3+9+24+16) / 4 = 13

JOB BURST TIME

1 24

2 3

3 3

Job-3 Job-2 Job-1

JOB BURST TIME 1 6

2 3

3 8

4 7

Job-2 Job-1 Job-4 Job-3

A. ALGORITMA PRE EMPTIVE Contoh : SCF (3) (2) (1) (4) (4) (1) (2) (3)

Tentukan dengan cara Shortest Job First :a. Ganti Chartnya: 0 1 5 10 17 26 (1+4) (5+5) (10+8) (17+9) Pre emptiveb. Turn Arround Time Job-1 = 17 Job-2 = 5 Job-3 = 26 Job-4 = 10

B. ALGORITMA NON PRE EMPTIVE

Tentukan dengan cara FCFS

a. 0 1 10 17 22 26

b. Turn arround time Job-1 = 17 Job-2 = 26 Job-3 = 10

JOB ARRIVAL TIME BURST TIME

1 0 8

2 1 4

3 2 9

4 3 5

Job Job-2 Job-4 Job-1 Job-3

Job Job-3 Job-1 Job-4 Job-2

Job-4 = 22

c. Average Turn Arround Time (1+10+17+22+24) / 4 = 19

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 WaitDimana suatu resources yang memakai resources yang lain harus menunggu, karena resources tersebut sedang dipakai proses lain.

3. Non Pre EmptiveDimana suatu resources untuk sementara tidak dapat diberikan kepada proses lain.

4. Circular WaitSuatu 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 Lock1. Dead Lock Prevention

Berkaitan dengan pengkondisian sistem agar menghilangkan kemungkinan terjadinya dead lock.

2. Dead Lock AvoidanceAdalah menghindari kondisi-kondisi yang paling mungkin menimbulkan terjadinya dead lock, agar memperoleh utilisasi sumber daya yang lebih baik.

3. Dead Lock Detection and RecoveryDigunakan 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. R12. VTK. R23. VTK. R34. VTK. R4

Proses stateP1 Menggunakan R1 Menunggu R3P2 Menggunakan R1, R2 Menunggu R3P3 Menggunakan R3

1. Dead Lock R1 R3

a.

R2 b. R1 R0 R0 R1

P1

P2

P3

P0

P1P

0

P1

2. Non Dead Lock R3 R1

R2

CLOCKDalam 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.

P1

P2

P3

P4

2. Progmaable Interval Timer (PIT)Clock yang terdiri dari Crystal Oscilator, Coventer dan holding register.

Keunggulan PIT1. 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 PIT1. One – shot mode

Mode ini hanya menghasilkan satu kejadian tunggal, diperlukan ketika clock diaktifkan berdasarkan kejadian.

2. Square Wave ModeMode 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 = 0,5 x 10-6 = 0,5 s 1 (2x106) 2Mh

Nilai yang diberikan ke Holding Register : = (10x10-3) = 20x103

(0,5x10-6) Artinya : Holding Register di set dengan nilai 20.000