1 VII. MANAJEMEN MEMORI Memori utama harus diatur sebaik mungkin agar : • meningkatkan utilitas CPU yang sebesar-besarnya • data dan instruksi dapat diakses dengan cepat oleh CPU • memori utama memiliki kapasitas yang sangat terbatas, sehingga pemakaiannya harus seefisien mungkin • transfer data dari/ke memori utama ke/dari CPU dapat efisien. Manajemen memori berkaitan dengan memori utama sebagai sumber daya yang harus dialokasikan dan dipakai bersama diantara sejumlah proses yang aktif. Manajemen memori juga berkaitan dengan usaha agar pemrogram atau pemroses tidak dibatasi oleh kapasitas memori fisik yang terdapat pada sistem komputer. Fungsi manajemen memori : • mengelola informasi memori yang terpakai dan yang tidak terpakai • mengalokasikan memori ke proses yang memerlukan • mendealokasikan memori dari proses telah selesai • mengelola swapping antara memori utama dan disk SWAPPING Suatu proses dapat dialihkan sementara dari memori ke suatu tempat penyimpanan dan dipanggil kembali ke memori jika akan melanjutkan eksekusi. Proses ini disebut swapping. Manajemen memori berdasarkan keberadaan swapping : - manajemen tanpa swapping - manajemen dengan swapping 1. Manajemen memori tanpa swapping = manajemen memori tanpa pemindahan proses antara memori utama dan disk selama eksekusi Terdiri dari : • monoprogramming • multiprogramming dengan pemartisian statis Monoprogramming Merupakan manajemen memori paling sederhana. Sstem komputer hanya mengijinkan 1 program/pemakai berjalan pada 1 waktu. Semua sumber daya sepenuhnya dikuasai proses yang sedang berjalan. Ciri-ciri manajemen memori monoprogramming : • hanya 1 proses pada 1 saat • hanya 1 proses menggunakan semua memori • pemakai memuatkan program ke seluruh memori dari disk / tape • program mengambil kendali seluruh mesin Karena hanya terdapat 1 proses dan menguasai seluruh sistem maka alokasi memori dilakukan secara berurutan. Memori utama Sistem operasi di RAM Program pemakai di RAM Memori tak dipakai
Multiprogramming dengan pemartisian statis Multiprogramming = banyak proses pada memori utama pada saat bersamaan. Alasan menggunakan multiprogramming : • mempermudah pemrogram karena pemrogram dapat memecah program menjadi 2 proses/lebih • agar dapat memberi layanan interaktif ke beberapa orang secara simultan • efisiensi penggunaan sumber daya • eksekusi lebih murah jika proses besar dipecah menjadi beberapa proses kecil • dapat mengerjakan sejumlah job secara simultan
2 Partisi Statis = memori dibagi menjadi sejumlah partisi tetap. Pada partisi tersebut proses-proses ditempatkan. Berdasarkan ukurannya, dibagi 2 : • Pemartisian dengan partisi berukuran sama Ukuran semua partisi memori adalah sama. Beberapa proses yang ukurannya kurang/sama dengan ukuran partisi dimasukkan ke sembarang partisi yang tersedia. Kelemahan : 1. Bila program berukuran lebih besar dibanding partisi yang tersedia, maka tidak dapat dimuatkan dan dijalankan. Pemrogram harus mempersiapkan overlay. Overlay adalah program dipecah menjadi bagian-bagian yang dapat dimuat ke memori. Sehingga hanya bagian program yang benar-benar dieksekusi yang dimasukkan ke memori utama dan saling bergantian. Untuk overlay diperlukan sistem operasi yang mendukung swapping. 2. Bila program lebih kecil daripada ukuran partisi yang tersedia, maka akan ada ruang yang tak dipakai, yang disebut fragmentasi internal Æ pemborosan memori. Kelemahan ini dapat dikurangi dengan membuat partisi tetap dengan ukuran yang berbeda. Sistem operasi
•
Partisi - 1
256 Kbyte
Partisi -2
256 Kbyte
Partisi -2
256 Kbyte
Pemartisian dengan partisi berukuran berbeda : ukuran semua partisi memori berbeda Sistem operasi Partisi - 1 Partisi -2 Partisi -3
100 Kbyte 256 Kbyte 350 Kbyte
Fragmentasi pada partisi statis Fragmentasi = penyiaan/pemborosan memori yang terjadi pada setiap organisasi penyimpanan. • Fragmentasi internal : proses tidak mengisi penuh partisi yang telah ditetapkan untuk proses • Fragmentasi eksternal : partisi tidak dapat digunakan karena ukuran partisi lebih kecil dibanding ukuran proses yang menunggu di antrian. 2. Manajemen memori dengan swapping = manajemen memori dengan pemindahan proses antara memori utama dan disk selama eksekusi. Diterapkan pada multiprogramming dengan pemartisian dinamis. Partisi dinamis partisi statis menyebabkan memori terlalu banyak diboroskan dengan proses-proses yang lebih kecil dibanding partisi yang ditempatinya. Dengan partisi dinamis maka jumlah, lokasi, dan ukuran proses di memori dapat beragam sepanjang waktu secara dinamis. proses yang akan masuk ke memori segera dibuatkan partisi untuknya sesuai kebutuhannya. Teknik ini meningkatkan utilitas memori. Kelemahan : • dapat terjadi lubang-lubang kecil memori di antara partisi-partisi yang dipakai • merumitkan alokasi dan dealokasi memori contoh :
3 Memori untuk Sistem operasi
Memori untuk Sistem operasi
Memori untuk Sistem operasi
Proses 0
Proses 0
Bebas
Bebas
Proses 2
Proses 2
Proses 2
Proses 3
Proses 3
Proses 0 proses 1 berakhir & membebaskan memorinya
Proses 1
proses 3 berakhir & membebaskan memorinya
Bebas
Setelah proses 3 berakhir memori dipenuhi lubang-lubang memori yang tidak terpakai. Dapat diatasi dengan cara pemadatan memori (memory compaction) yaitu operasi penggabungan semua lubang kecil menjadi lubang besar dengan memindahkan semua proses agar saling berdekatan. Contoh diatas setelah pemadatan memori : Memori untuk Sistem operasi Proses 0 Proses 2
Kelemahan pemadatan memori : - memerlukan waktu yang sangat banyak - sistem harus menghentikan sementara semua proses saat pemadatan, sehingga mengakibatkan meningkatnya waktu tanggap
Bebas
Masalah lain pada partisi dinamis adalah proses dapat tumbuh berkembang. Solusinya adalah bila proses bersebelahan dengan lubang memori tak dipakai, proses tumbuh memakai lubang itu. Masalah menjadi lebih parah bila proses bersebelahan dengan proses-proses lain. Alternatif penyelesaian : • bila masih terdapat lubang besar yang dapat memuat proses, maka proses dipindah ke lubang memori yang dapat memuat • 1 proses atau lebih diswap ke disk agar memberi lubang cukup besar untuk proses yang berkembang • jika proses tidak dapat tumbuh di memori dan daerah swap di disk telah penuh,proses harus menunggu/disingkirkan.
PENCATATAN PEMAKAIAN MEMORI Memori yang tersedia harus dikelola dengan pencatatan pemakaian memori yaitu : 1. Pencatatan memakai peta bit Memori dibagi menjadi unit-unit alokasi, berkorespondensi dengan tiap unit alokasi, yaitu 1 bit pada bit map. • nilai 0 pada peta bit berarti unit itu masih bebas • nilai 1 berarti unit sudah digunakan Masalah pada peta bit adalah penetapan mengenai ukuran unit alokasi memori, yaitu : • unit lokasi memori berukuran kecil berarti membesarkan ukuran peta bit • unit alokasi memori n berukuran besar berarti peta bit kecil tapi memori banyak disiapkan pada unit terakhir jika ukuran proses bukan kelipatan unit alokasi
4 Keunggulan : dealokasi dapat dilakukan dengan mudah, hanya tinggal mengeset bit yang berkorespondensi dengan unit yang telah tidak digunakan dengan 0. Kelemahan : • harus dilakukan penghitungan blok lubang memori saat unit memori bebas • memerlukan ukuran bit map besar untuk memori yang besar. 1
2
3
4
5
6 bebas/masih kosong
1
1
1
0
0
1
2. Pencatatan memakai senarai berkait Sistem operasi mengelola senarai berkait (linked list) untuk segmen-segmen memori yang telah dialokasikan dan bebas. Segmen memori menyatakan memori untuk proses atau memori yang bebas (lubang). Senarai segmen diurutkan sesuai alamat blok. Memori yang digunakan pada metode ini lebh kecil dibandingkan dengan peta bit. Keunggulan : • tidak harus dilakukan perhitungan blok lubang memori karena sudah tercatat di node • memori yang diperlukan relatif lebih kecil Kelemahan : Dealokasi sulit dilakukan karena terjadi berbagai operasi penggabungan node di senarai STRATEGI ALOKASI MEMORI Alokasi harus mencari sekumpulan blok memori yang ukurannya mencukupi untuk memuat proses,dimana lubang kosong yang sama atau lebih besar dibanding ukuran memori yang diperlukan oleh proses. Macam strategi : First-fit Algorithm Pencarian dimulai dari awal dan akan berhenti jika ditemukan lokasi pertama yang cukup besar untuk menempatkan proses tersebut. Contoh : terdapat partisi kosong pada memori dengan urutan dan ukuran : 4 Kb, 3 Kb, 2 Kb, 6 Kb bila datang data yang berukuran 3 Kb maka akan menempati partisi ukuran 4 Kb. Next-fit Algorithm Sama dengan first-fit hanya saja pencarian tidak dimulai dari awal, tapi dari lokasi terakhir kali menemukan segmen yang cocok dan akan berhenti jika ditemukan lokasi pertama yang cukup besar untuk menempatkan proses tersebut. Contoh : terdapat partisi pada memori dengan urutan dan ukuran : 4 Kb, 3 Kb, 2 Kb, 6 Kb bila datang data yang berukuran 3 Kb dan pencarian partisi dimulai dari urutan ketiga karena sebelumnya posisi terakhir pencarian di partisi kedua, maka data tersebut akan menempati partisi ukuran 6 Kb. Best-fit Algorithm Pencarian dimulai dari awal dan akan berhenti jika ditemukan lokasi terkecil pertama yang cukup untuk menempatkan proses tersebut. Contoh : terdapat partisi kosong pada memori dengan urutan dan ukuran : 4 Kb, 3 Kb, 2 Kb, 6 Kb bila datang data yang berukuran 3 Kb maka akan menempati partisi ukuran 3 Kb. Worst-fit Algorithm Pencarian dimulai dari awal dan akan berhenti jika ditemukan lokasi yang paling besar yang cukup untuk menempatkan proses tersebut. Contoh : terdapat partisi kosong pada memori dengan urutan dan ukuran : 4 Kb, 3 Kb, 2 Kb, 6 Kb bila datang data yang berukuran 3 Kb maka akan menempati partisi ukuran 6 Kb.
5 Quick-fit Algorithm Cara ini hanya cocok untuk pencatatan dengan linked list. Algoritma ini dirancang dengan membuat list lubang. Lubang-lubang memori dimuat di list sesuai dengan ukuran terdekatnya. sebagai contoh algoritma mengelola list lubang : 8 Kb, 12 Kb, 20 Kb, 40 Kb, 60 Kb, dst, maka jika ada lubang memori sebesar 42 Kb akan ditempatkan di list 40. Sistem Buddy Merupakan cara mengelola memori utama dengan memanfaatkan kelebihan penggunaan bilangan k biner (2 ; k = 0,1,2, ...). Pada sistem buddy, semula semua ruang pada memori kerja didefinisikan sebagai satu kesatuan utuh. Bagian ini baru dibelah apabila ada data yang menempati ruang tersebut. Sistem pembelahan 0 1 2 3 sesuai dengan pangkat bilangan biner, yaitu : 2 , 2 , 2 , 2 .... Contoh : Sebuah memori kerja dengan kapasitas 1024 Kb akan digunakan untuk menyimpan data sebesar 100 Kb dan 200 Kb maka akan didapat hasil akhir : 1024 Kb 512 Kb 256 Kb 128
Kb
128
512 Kb 256 Kb
Kb
Data 100 Kb diletakkan di ruang/blok 128 Kb dan data 200 Kb diletakkan di ruang/blok 256 Kb MEMORI MAYA Program yang dijalankan harus dimuat di memori utama. Masalah muncul ketika program lebih besar dibanding memori utama yang tersedia. Solusinya : 1. Overlay : program dipecah menjadi bagian-bagian yang dapat dimuat memori. Overlay yang belum diperlukan (tidak sedang dieksekusi) disimpan di disk. Overlay ini dimuatkan ke memori begitu diperlukan. 2. Memori maya (virtual memori) Adalah kemampuan mengalamati ruang memori melebihi memori utama yang tersedia. Gagasan memori maya adalah ukuran gabungan program, data dan stack melampaui jumlah memori fisik yang tersedia. Sistem operasi menyimpan bagian-bagian proses yang sedang digunakan di memori utama dan sisanya di disk. Bagian-bagian di disk diperlukan maka bagian memori yang tidak diperlukan disingkirkan diganti bagian di disk yang diperlukan itu. Contoh : Program 10 Mbyte dapat berjalan di mesin 2 Mbyte, yaitu memilih bagian proses sebesar 2 Mbyte secara hati-hati dan ditaruh di memori. Bagian-bagian proses di-swap antara disk dan memori saat diperlukan secara otomatis oleh sistem operasi. Memori maya dapat dilakukan dengan 3 cara yaitu : • paging • segmentasi • kombinasi paging dan segmentasi SISTEM PAGING Salah satu cara untuk mengatasi eksternal fragmentation adalah dengan teknik pengalokasian memori dengan paging, yaitu : memori fisik dibagi menjadi blok-blok dengan ukuran tertentu yang disebut dengan frame/page frame, sedangkan memori logika/maya dibagi menjadi blok-blok yang disebut page. Page fault / fault = exception untuk permintaan alokasi ‘page’ ke memori. Alamat logika dan fisik Alamat logika (logical address/virtual address) = alamat yang dihasilkan oleh CPU disebut alamat logika/alamat maya.
6 Alamat fisik (physical address) = alamat program yang sesungguhnya pada memori. Pada saat eksekusi setiap alamat logik harus dipetakan ke alamat fisik sehingga alamat logik berbeda dengan alamat fisik. Pemetaan dari alamat logik ke alamat fisik dilakukan dengan menggunakan perangkat keras yang disebut Memory Management Unit(MMU). MMU memiliki register relokasi yang berisi alamat awal proses. Nilai alamat awal ini akan ditambahkan ke setiap alamat logik pada proses untuk menciptakan alamat fisik. Sebagai contoh, bila alamat awal adalah 14000,maka pengguna yang ingin mengakses lokasi 0, secara otomatis akan dipetakan ke alamat 14000. Akses ke lokasi 346 akan dipetakan ke lokasi 14346. relocation register logical address
14000
physical address
Memory
+
CPU
14346
346 MMU
Program milik pengguna tidak akan pernah mengetahui alamat fisik ini. Program dapat menciptakan penunjuk (pointer) ke lokasi dengan alamat logik 346, menyimpannya, memanipulasinya, dan membandingkannya dengan lokasi memori lain, tetapi semuanya menggunakan alamat 346. Program hanya berhubungan dengan alamat logik. Ketika instruksi tersebut akan dieksekusi (dimasukkan ke memori) barulah terjadi pemetaan dari alamat logik ke alamat fisik. Pada sistem paging alamat logika terdiri dari 2 bagian yaitu : • nomor page p : digunakan sebagai indeks untuk page table yang berisi alamat awal f untuk setiap page pada memori • offset page d : offset page ditambahkan pada alamat awal untuk menghasilkan alamat memori sebenarnya. logical address p
CPU
d
f
346
d
Memory
physical address f
page table
Page table = tabel page untuk semua proses yang ada di memori Contoh lihat gambar berikut : Misal setiap page berukuran 4 byte, memory berukuran 32 byte (yang dapat menampung 8 page). Alamat logik 0 memiliki nomor page 0 dan offset 0. Ketika dihubungkan dengan page table, maka diketahui bahwa page 0 terletak pada frame 5. Maka alamat logik 0 akan dipetakan ke alamat fisik 20 (yang diperoleh dari (5 x 4) + 0). Untuk alamat logik 3 (dengan page 0 offset 3) maka akan dipetakan ke alamat fisik 23 (=(5 x 4) +3). Untuk alamat logik 4 (dengan page 1 offset 0) maka akan dipetakan ke alamat fisik 24 (=(6 x 4) +0).
7
0 0
1
2
3
0 1 2 3
0 1 2 3
a b c d
0 1 2 3
4 5 6 7
e f g h
0 1 2 3
8 9 10 11
i j k l
0 1 2 3
12 m 13 n 14 o 15 p
page offset
page
frame 0
frame
0
5
1
6
2
1
3
2
4
i j k l
8
m n o p
data
12
page table
frame 3
16
data
logical address
frame 5
20
a b c d
23 24
e f g h
28
physical address
ALGORITMA PENGGANTIAN PAGE Jika suatu proses menginginkan page, tapi page tersebut belum ada pada memori utama, maka akan terjadi page fault. Untuk memilih page yang dikeluarkan dari memori maka diperlukan algoritma penggantian yang akan memberikan tingkat page fault yang terendah yang mungkin. Algoritma Penggantian Page Acak Setiap terjadi page fault, page yang diganti dipilih secara acak. Teknik ini tidak memakai informasi apapun dalam menentukan page yang diganti.Semua page di memori utama mempunyai bobot sama untuk dipilih. Teknik ini dapat memilih sembarang page, termasuk page yang sedang diacu (page yang seharusnya tidak diganti). Teknik sangat buruk. Algoritma Penggantian Page FIFO (First In, First Out) Merupakan algoritma penggantian page yang paling sederhana. Ketika suatu page harus diganti, maka page terlama yang dipilih. Pada algoritma ini akan muncul Anomali Belady dimana kecepatan page fault akan bertambah jika framenya juga bertambah. String referensi
7 7
0 7 0
Fault
F
F
1 7 0 1 F
2 2 0 1 F
0 2 0 1
3 2 3 1 F
0 2 3 0 F
4 4 3 0 F
2 4 2 0 F
3 4 2 3 F
0 0 2 3 F
3 0 2 3
2 0 2 3
1 0 1 3 F
2 0 1 2 F
0 0 1 2
1 0 1 2
7 7 1 2 F
0 7 0 2 F
1 7 0 1 F
8 Anomali Belady Æ jika frame bertambah maka lebih banyak page fault String referensi
0 0
1 0 1
Fault
F
F
String referensi
0 0
1 0 1
Fault
F
F
2 0 1 2 F
3 3 1 2 F
0 3 0 2 F
1 3 0 1 F
4 4 0 1
0 4 0 1
1 4 0 1
2 4 2 1 F
3 4 2 3 F
4 4 2 3
2 0 1 2
3 0 1 2 3 F
0 0 1 2 3
1 0 1 2 3
4 4 1 2 3 F
0 4 0 2 3 F
1 4 0 1 3 F
2 4 0 1 2 F
3 3 0 1 2 F
4 3 4 1
F
Fault = 8
2 F
Fault = 10
Algoritma Penggantian Page Optimal Algoritma optimal akan mereplace/mengganti page yang tidak digunakan dalam waktu dekat. Contoh : pada referensi/penunjukan ke-4 terlihat page 7 akan direplace dengan 2 karena 7 baru akan digunakan lagi pada penunjukkan ke-18. Sedangkan page 0 akan digunakan pada penunjukan ke-5 dan page 1 pada penunjukan ke-14. 1
2
3
4
5
6
7
8
9
10 11 12
13 14
String referensi
7 7
0 7 0
4 2 4 3 F
2 2 4 3
3 2 4 3
2 2 0 3
F
3 2 0 3 F
0 2 0 3
F
2 2 0 1 F
0 2 0 1
Fault
1 7 0 1 F
0 2 0 3 F
3 2 0 3
1 2 0 1 F
15
16
2 2 0 1
0 2 0 1
17 18 19 20 1 2 0 1
7 7 0 1 F
0 7 0 1
1 7 0 1
Algoritma Penggantian Page LRU (Least Recently Used) Algoritma FIFO = memandang page dari sisi berapa lama page tersebut telah berada di memori Algoritma Optimal = memandang page pada kapan page tersebut akan digunakan lagi Algoritma LRU = perpaduan FIFO dan Optimal Æ LRU akan me-replace page yang tidak baru saja dipakai String referensi
7 7
0 7 0
Fault
F
F
1 7 0 1 F
2 2 0 1 F
0 2 0 1
3 2 0 3 F
0 2 0 3
4 4 0 3 F
2 4 0 2 F
3 4 3 2 F
0 0 3 2 F
3 0 3 2
2 0 3 2
1 1 3 2 F
2 1 3 2
0 1 0 2 F
1 1 0 2
7 1 0 7 F
0 1 0 7
1 1 0 7
SEGMENTASI Paging merupakan suatu pembagian/pemecahan suatu ruang alamat logika yang tidak beraturan (tidak tetap) menjadi potongan-potongan kecil yang berukuran tetap. Ada suatu cara yang membagi suatu ruang alamat logika menjadi potongan-potongan kecil yang sesuai dengan ukuran logika suatu objek sehingga ukuran potongan tersebut tidak tetap. Potongan tersebut disebut segment. Jadi suatu ruang alamat logika merupakan suatu kumpulan segment yang tidak membutuhkan pengurutan di antara segment. contoh :
9
segment 0 (stack)
segment 1 (subroutine)
segment 2 program utama
limit 0 1 2 3 4
segment 4 rutin lainnya
segment 3 rutin tampilan
base
1000 1400 400 6300 400 4300 1100 3200 1000 4700 segment table
ruang alamat logika
1400
2400
3200
4300 4700
segment 1
segment 4
segment 2
segment 3
segment 0
Memori fisik
5700 6300
6700
Misal : • Diberikan alamat awal segment dalam memori fisik (base) dan panjang segment (limit). Misal segment 2 mempunyai panjang 400 byte dan dimulai pada lokasi 4300, sehingga suatu referensi ke byte 53 dari segment 2 dipetakan ke lokasi : 4300 + 53 = 4353. • Suatu referensi ke segment 3, byte 852 dipetakan ke 3200 + 852 = 4052 Diasumsikan suatu sistem komputer memiliki memori utama dengan kapasitas 16 MB. Diketahui ukuran page sebesar 64 byte, maka : a. Berapa jumlah frame yang tersedia b. Jika suatu program COBA berukuran 914 byte, berapa page yang dibutuhkan. c. Apabila diketahui page table sebagai berikut : Nomor page 0 1 2 3 4 5 : :
Frame 8 2 10 22 12 1 : :
Dengan asumsi bahwa program membutuhkan page secara berurutan dari 0 sampai n, dimanakah letak alamat fisik dari alamat logika 50, 121, dan 380 Jawaban : a. Jumlah frame yang tersedia : jumlah memori utama / page = 16 Mbyte / 64byte per page = 16.777.216 byte / 64 = 262.144 page keterangan : 16 Mbyte = 16 * 1024 * 1024 = 16.777.216 byte b. COBA berukuran 914 byte sedangkan 1 page berukuran 64 byte, maka page yang dibutuhkan adalah 914 / 64 = 14,3 Æ 15 page c. 1 page = 64 byte. Menurut page table diatas page 0 akan dipetakan ke frame 8, maka alamat logika 0 akan dipetakan ke alamat fisik (8 * 64) + 0 = 512. Keadaan memori logika dapat digambarkan sebagai berikut :
10 Page
6
Memori Logika 0 : 63 64 : 127 128 : 191 192 : 255 256 : 319 320 : 383 384 :
:
:
0 1 2 3 4 5
Dari gambar tersebut dapat dilihat bahwa : • alamat logika 50 berada di page 0, offset 50 sehingga alamat fisiknya (8 * 64) + 50 = 562 • alamat logika 121 berada di page 1,offset 57 sehingga alamat fisiknya (2 * 64) + 57 = 185 • alamat logika 380 berada di page 5,offset 60 sehingga alamat fisiknya (1 * 64) + 60 = 124 Keterangan : alamat offset diperoleh dari nilai absolut alamat logika yang ditentukan dikurangi dengan alamat logika awal dari page yang diketahui. Contoh : jika alamat logika 380 berarti alamat offsetnya adalah absolut(380 – 320) = 60
11 VIII. MANAJEMEN PERANGKAT MASUKAN/KELUARAN(I/O) Fungsi manajemen perangkat I/O • mengirim perintah ke perangkat masukan/keluaran agar menyediakan layanan. • menangani interupsi perangkat masukan/keluaran • menangani kesalahan pada perangkat masukan/keluaran • menyediakan interface ke pemakai Klasifikasi Perangkat I/O Berdasarkan sifat aliran datanya : • perangkat berorientasi blok (blok oriented device) menyimpan dan menukarkan (menerima/mengirim) informasi sebagai blok-blok berukuran tetap, contoh : disk, tape, CDROM, optical disk, dll • perangkat berorientasi aliran karakter perangkat yang mengantarkan atau menerima aliran karakter tanpa peduli membentuk suatu struktur blok, contoh : terminal, line printer, pita kertas, mouse, kartu berlubang Berdasarkan sasaran komunikasi: • perangkat yang terbaca manusia (human readable devices) perangkat yang cocok untuk komunikasi dengan manusia, contoh : monitor, keyboard, mouse • perangkat yang terbaca mesin (machine readable devices) perangkat yang cocok untuk komunikasi dengan perangkat elektronik, contoh : disk dan tape, sensor, controller. • untuk komunikasi perangkat yang cocok untuk komunikasi dengan perangkat jarak jauh, contoh : modem Prinsip Manajemen Perangkat I/O Dua sasaran perancangan manajemen I/O : 1. Efisiensi (eficiency) Merupakan aspek penting karena operasi I/O sering merupakan operasi yang menimbulkan bottleneck pada sistem operasi. 2. Generalitas (generality) Manajemen perangkat i/o selain berkaitan dengan simplisitas dan bebas kesalahan, juga menangani perangkat secara seragam baik dari cara proses memandang maupun cara sistem operasi mengelola perangkat dan operasi i/o. Masalah-masalah yang terdapat dan harus diselesaikan pada perancangan manajemen i/o : 1. Penamaan yang seragam (uniform naming) nama berkas atau perangkat adalah string atau integer, tidak bergantung pada peralatan sama sekali. 2. Penanganan kesalahan (error handling) umumnya penanganan kesalahan ditangani sedekat mungkin dengan perangkat keras 3. Transfer sinkron vs asinkron Kebanyakan i/o adalah asinkron. Pemroses mulai transfer dan mengabaikannya untuk melakukan kerja lain sampai interupsi tiba. Program-program pemakai sangat lebih mudah ditulis jika operasi-operasi i/o berorientasi blok. Setelah perintah read, program kemudian secara otomatis ditunda sampai data tersedia di buffer. Terserah sistem operasi untuk membuat operasi-operasi yang sesungguhnya interrupt-driven. 4. Sharable vs dedicated beberapa perangkat dapat dipakai bersama seperti disk, tapi ada juga perangkat yang hanya satu pemakai yang dibolehkan memakai pada satu saat, contoh perangkat dedicated : printer. Hirarki Manajemen Perangkat I/O 1. Interrupt Handler Pengendali interupsi (interrupt handler) harus disembunyikan di sistem yang paling dalam agar tidak terlihat ke rutin-rutin berikutnya. 2. Device Driver Semua kode bergantung peralatan yang ditempatkan pada device driver. Tiap device driver menangani satu tipe peralatan atau satu kelas peralatan yang berhubungan. device driver
12 bertugas menerima permintaan abstrak perangkat lunak device-independent diatasnya dan melakukan layanan sesuai permintaan. Mekanisme decive driver : • Menerjemahkan perintah-perintah abstrak menjadi perintah-perintah kongkret • Setelah mendapat perintah, device driver mulai menulis ke register-register pengendali peralatan • Setelah operasi selesai dilakukan, device driver memeriksa kesalahan-kesalahan yang terjadi • Jika semua berjalan baik, device driver melewatkan data ke perangkat lunak deviceindependent • Device driver melaporkan status operasinya ke pemanggil 3. Perangkat Lunak Device Independent Fungsi utama perangkat lunak ini : • membentuk fungsi-fungsi i/o yang berlaku untuk semua perangkat • memberi interface/antarmuka seragam ke perangkat lunak tingkat pemakai Fungsi yang dilakukan antara lain: • interface seragam untuk seluruh device driver • penamaan peralatan • proteksi peralatan • memberi ukuran blok peralatan agar bersifat device independent • melakukan buffering • alokasi penyimpanan pada block-devices • alokasi dan pelepasan dedicated-devices • pelaporan kesalahan 4. Perangkat Lunak Level Pemakai Kebanyakan perangkat lunak i/o terdapat pada sistem operasi. Tidak semua perangkat lunak i/o level pemakai berisi prosedur-prosedur pemakai. Kategori penting adalah sistem spooling. Spooling merupakan cara khusus berurusan dengan peralatan i/o yang harus didedikasikan pada sistem multiprogramming. Mekanisme Perangkat Lunak I/O A. Disk Disk diorganisasikan menjadi silinder-silinder dengan track-track terdapat head yang ditumpuk secara vertikal. Tiap track terbagi menjadi sektor-sektor. Waktu yang dibutuhkan untuk membaca dan menulis disk dipengaruhi oleh : 1. Waktu seek Waktu yang diperlukan untuk sampai ke posisi track yang dituju. Waktu seek merupakan faktor yang paling dominan. 2. Waktu tunda rotasi Waktu yang diperlukan mekanisme akses mencapai blok yang diinginkan. 3. Waktu transfer data waktu tranfer data bergantung pada kecepatan rotasi dan kepadatan rekaman. Transfer rate (t) adalah kecepatan transfer data sesaat, data ini diberikan oleh pembuat perangkat keras Beberapa tipe kesalahan dapat muncul ketika operasi disk. Kesalahan-kesalahan pada disk dapat dikategorikan sebagai berikut : 1. Programming error Kesalahan yang disebabkan pemrograman, misalnya driver memerintahkan mencari track yang tak ada, membaca sector yang tak ada, dll 2. Transient checksum error Kesalahan disebabkan adanya debu diantara head dengan permukaan disk. Untuk mengeliminasi kesalahan ini maka dilakukan pengulangan operasi pada disk. 3. Permanent checksum error Kesalahan disebabkan kerusakan disk maka harus dibuat daftar blok-blok buruk agar data tidak ditulis di blok buruk. 4. Seek error Kesalahan ini ditanggulangi dengan mengkalibrasi disk supaya berfungsi kembali.
13 5. Controller error Kesalahan ini ditanggulangi dengan menukar pengendali yang salah dengan pengendali yang baru. B. Clock Perangkat keras clock mempunyai 2 tipe clock, yaitu : 1. Clock yang ditimbulkan impulse tegangan listrik 2. Programmable interval timer (PIT) Sedangkan perangkat lunak clock pada sistem operasi mempunyai beberapa fungsi, antara lain : • mengelola waktu dan tanggal (waktu nyata) • mencegah proses berjalan lebih dari waktu yang ditetapkan • menghitung pengunaan pemroses • mengerjakan monitoring dan pengumpulan statistik Alokasi Piranti Terdapat 3 cara untuk mengatur alokasi piranti, yaitu : 1. Dedicated device merupakan cara mengalokasikan piranti untuk sebuah pekerjaan selama pekerjaan berada dalam sistem. Kelemahannya adalah tidak efisien karena bila suatu pekerjaan menggunakan sekali-kali, tetapi piranti harus tetap melayani pekerjaan tersebut. 2. Shared device merupakan cara mengalokasikan piranti supaya dapat digunakan secara bergantian untuk beberapa pekerjaan. Beberapa piranti seperti cakram magnetis, drum dapat digunakan secara bergantian. 3. Virtual device Piranti yang digunakan dengan cara dedicated, misal pembaca kartu, pencetak, dapat diubah menjadi piranti shared melalui cara-cara seperti spooling. Spooling program bertugas membaca dan menyalin semua kartu masukan ke dalam cakram dengan kecepatan tinggi. Bila proses mencoba membaca kartu, spooling program mengalihkan permintaan itu dan mengubahnya menjadi membaca salinan kartu itu dari cakram. Jadi seolah-olah membaca kartu masukan, meskipun ia membaca dari cakram.
14 IX. SISTEM MANAJEMEN FILE SIFAT FILE • persistence : informasi dapat bertahan meski proses yang membangkitkannya berakhir atau meskipun catu daya dihilangkan, sehingga tetap dapat digunakan kembali di masa datang • size : umumnya berukuran besar, sehingga memungkinkan menyimpan informasi yang sangat besar disimpan • sharability : file dapat digunakan banyak proses mengakses informasi secara kongkuren SASARAN MANAJEMEN FILE 1. Memenuhi kebutuhan manajemen data bagi pemakai, termasuk penyimpanan data dan kemampuan melakukan operasi berikut : • menampilkan seluruh record data (retrieve all) • menampilkan 1 record data tertentu (retrieve one) • menampilkan 1 record data berikutnya (retrieve next) • menampilkan 1 record data sebelumnya (retrieve previous) • menyisipkan 1 record data (insert one) • menghapus 1 record data tertentu (delete one) • memperbaharui 1 record data tertentu (update one) • memperbaharui beberapa record data tertentu sesuai kriteria (update few) 2. Menjamin data pada file adalah valid 3. Optimasi kinerja : menurut sistem : meningkatkan jumlah throughput keseluruhan menurut pemakai : cepatnya waktu tanggap 4. Menyediakan dukungan masukan/keluaran beragam tipe perangkat penyimpan 5. Meminimalkan atau mengeliminasi potensi kehilangan atau perusakan data 6. Menyediakan sekumpulan rutin interface I/O 7. Menyediakan dukungan I/O bagi banyak pemakai dalam kasus sistem multiuser FUNGSI MANAJEMEN FILE 1. Pemakai dapat menciptakan, memodifikasi dan menghapus berkas 2. Pemakai dapat memakai bersama file secara terkendali 3. Mekanisme pemakaian file secara bersama, yaitu menyediakan beragam tipe pengaksesan terkendali seperti read access, write access, execute access ataupun kombinasi lain. 4. pemakai dapat menstrukturkan berkas-berkasnya sehingga menyamankan aplikasi 5. Pemakai dapat melakukan transfer informasi antar berkas 6. Kemampuan back-up dan recovery harus disediakan untuk mencegah kehilangan karena kecelakaan atau dari upaya penghancuran informasi. 7. Pemakai mengacu file dengan nama simbolik bukan menggunakan penamaan mengacu peralatan fisik 8. Pada lingkungan sensitif dimana dikehendaki informasi tersimpan aman dan rahasia 9. Menyediakan interface user-friendly ARSITEKTUR SISTEM MANAJEMEN FILE Program pemakai
Pile File
Sequential File
IndexedSequential File
Multiple Indexed File
Hashed File
Multiring File
Sistem Akses
Pustaka/System Call Manipulasi File dan Direktori Sistem File
Abstraksi File dan Direktori Sistem File Dasar Disk device driver
Tape device driver
Manajemen I/O
15 Device driver merupakan lapisan terbawah, berkomunikasi secara langsung dengan perangkat peripheral atau pengendali. Device driver bertanggung jawab memulai operasi – operasi masukan/keluaran. Pada operasi-operasi berkas, perangkat yang biasa dipakai adalah disk dan tape. Device driver merupakan bagian dari manajemen I/O. Sistem File Dasar Sistem file dasar atau tingkat masukan/keluaran merupakan interface utama dengan lingkaran di luar sistem komputer. Lapisan ini berurusan dengan blok-blok data yang dipertukarkan antara sistem dengan disk dan tape. Lapisan ini berfungsi dalam penempatan blok-blok data pada perangkat penyimpan sekunder dan dengan buffering blok-blok data itu pada memori utama. Lapisan ini tidak berkaitan dengan isi data atau struktur file yang terlibat. Abstraksi File dan Direktori Sistem file memberikan abstraksi ke pemakai berupa file dan direktori. Pemakai yaitu manusia ataupun proses tidak lagi berkaitan dengan blok-blok data melainkan beroperasi terhadap abstraksi file dan direktori. Operasi-operasi terhadap file dan direktori Kumpulan system call / pustaka untuk manipulasi file dan direktori Sistem Akses Merupakan lapisan terakhir. Lapisan ini menyediakan interface standar antara aplikasi-aplikasi dan sistem file serta perangkat yang menyimpan data. Metode-metode pengaksesan yang berbeda merefleksikan struktur file berbeda dan cara-cara pengaksesan dan pemrosesan yang berbeda.
PENAMAAN FILE Pemakai mengacu file dengan nama simbolik. Tiap file di sistem harus mempunyai nama unik agar tidak ambigu. penamaan file dengan nama direktori tempat file memberi nama unik. Tidak diperbolehka nama file yang sama di satu direktori. Penamaan file berbeda sesuai sistem. Terdapat 2 pendekatan, yaitu : • sistem yang case sensitive : sistem membedakan antara huruf kecil dan huruf kapital • sistem yang case insensitive : sistem tidak membedakan antara huruf kecil dan huruf kapital AKSES FILE Cara akses perangkat penyimpanan : 1. Perangkat akses sekuensial (sequential access devices) Proses harus membaca semua byte atau record file secara berurutan mulai dari awal, tidak dapat meloncati dan membaca di luar urutan, contoh : tape 2. Perangkat akses acak (random access devices) Dimungkinkan dapat membaca byte atau record file di luar urutan, atau mengakses rekord berdasarkan kunci, bukan posisinya. Kriteria memilih organisasi file / pengaksesan dasar file : • redudansi kecil • pengaksesan yang cepat • kemudahan dalam memperbaharui • pemeliharaan yang sederhana • kehandalan yang tinggi Organisasi file / metode akses file : 1. pile file (file pile) 2. sequential file (file sekuensial) 3. indexed sequential file (file indeks sekuensial) 4. multiple indexed file (file berindeks majemuk) 5. hashed or direct file (file ber-hash) 6. multiring file (file cincin)
16 TIPE FILE ♦ File regular : file berisi informasi terdiri dari file ASCII dan biner ♦ File direktori : merupakan file yang berisi infomrasi mengenai file-file yang termasuk dalam direktori itu. ♦ File spesial : merupakan nama logik perangkat I/O. Perangkat I/O dapat dipandang sebagai file. • file spesial karakter : berhubungan dengan perangkat I/O aliran karakter. File ini memodelkan perangkat I/O seperti terminal, printer, port jaringan, modem, dll, alat yang bukan penyimpan sekunder. • file spesial blok : berhubungan dengan perangkat I/O sebagai kumpulan blok-blok data (berorientasi blok) ATRIBUT FILE adalah informasi tambahan mengenai file untuk memperjelas dan membatasi operasi-operasi yang dapat diterapkan. Atribut digunakan untuk pengelolaan file. Field Protection Password Creator Owner Read only flag Hidden flag System flag Archive flag ASCII/binary flag Random access flag Temporary flag Lock flag Record length Key position Key length Creation time Time of last access Time of last change Current size Maximum size
Deskripsi Siapa yang dapat mengakses file dan dengan cara apa Password yang diperlukan untuk mengakses file Id orang yang menciptakan file Pemilik saat itu 0 untuk read/write, 1 untuk read only 0 untuk normal, 1 untuk tidak ditampilkan pada listing 0 untuk normal, 1 untuk file sistem 0 telah dibackup, 1 untuk perlu dibackup 0 untuk file ASCII, 1 untuk file biner 0 untuk sequential access only, 1 untuk random access 0 untuk normal, 1 untuk dihapus saat keluar (exit) 0 untuk tak terkunci, tidak nol untuk terkunci Jumlah byte pada 1 record Offset kunci pada masing-masing record Jumlah byte dari field kunci Tanggal dan waktu file diciptakan Tanggal dan waktu file diakses terakhir kali Tanggal dan waktu file diubah terakhir kali Jumlah byte dalam file Ukuran maksimum file boleh tumbuh
OPERASI FILE Operasi create delete open close Read write append seek get attributes set attributes rename
Deskripsi Menciptakan file Menghapus file Membuka file untuk penyiapan proses selanjutnya Menutup file untuk menyimpan semua informasi ke file dan mendealokasikan sumber daya yang digunakan Membaca data pada file Memodifikasi data pada berkas yaitu pada posisi yang ditunjuk Menambah data pada berkas,merupakan operasi write yang lebih spesifik, yaitu di akhir berkas Mencari lokasi tertentu, hanya berlaku untuk berkas akses acak Membaca atribut-atribut berkas Menuliskan (memodifikasi) atribut-atribut berkas Mengganti nama berkas
17 X. KEAMANAN SISTEM Keamanan sistem komputer adalah untuk menjamin sumber daya tidak digunakan atau dimodifikasi orang tak diotorisasi. Pengamanan termasuk masalah teknis, manajerial, legalitas, dan politis. Keamanan sistem dibagi 3 bagian : 1. Keamanan eksternal (external security) Berkaitan dengan pengamanan fasilitas komputer dari penyusup dan bencana seperti kebakaran, kebanjiran. 2. Keamanan interface pemakai (user interface security) Berkaitan dengan identifikasi pemakai sebelum pemakai diijinkan mengakses program dan data yang disimpan. 3. Keamanan internal (internal security) Berkaitan dengan pengamanan beragam kendali yang dibangun pada perangkat keras dan sistem operasi yang menjamin operasi yang handal dan tak terkorupsi untuk menjaga integritas program dan data. Keamanan (security) : mengacu ke seluruh masalah keamanan, mencakup aspek teknis, administratif, hukum dan etika dalam melindungi sistem komputer. Proteksi (protection) : mengacu ke mekanisme sistem yang digunakan untuk memproteksi/melindungi informasi pada sistem komputer. MASALAH KEAMANAN Dua hal penting pada masalah keamanan : 1. Kehilangan data (data loss) a. Bencana : kebakaran, banjir,gempa bumi,perang, kerusuhan,gerogotan tikus b. Kesalahan perangkat keras & lunak : ketidakberfungsian pemroses, disk/tape yang tidak terbaca, kesalahan telekomunikasi, kesalahan program (bugs) c. Kesalahan / kelalaian manusia : kesalahan pemasukan data, memasang tape/disk salah, eksekusi program yang salah, kehilangan disk/tape Diatasi dengan mengelola beberapa backup dan backup ditempatkan jauh dari data yang online. 2. Penyusup (intruder) a. Penyusup pasif : membaca data yang tak diotorisasi b. Penyusup aktif : mengubah data yang tak diotorisasi Kategori penyusupan : • Lirikan mata pemakai non teknis : pada sistem time-sharing, kerja pemakai dapat diamati orang sekelilingnya. Bila dengan lirikan itu dapat mengetahui apa yang diketik saat pengisian password, maka pemakai non teknis dapat mengakses fasilitas yang bukan haknya. • Penyadapan oleh orang dalam • Usaha hacker dalam mencari uang • Spionase militer / bisnis Ancaman Keamanan pada Sistem Komputer Sasaran/tujuan pengamanan : menghindari, mencegah, mengatasi ancaman terhadap sistem. Sistem yang aman bila 3 hal tercapai yaitu : ♦ Kerahasiaan (secrecy, diantaranya adalah privasi) Adalah keterjaminan bahwa informasi di sistem komputer hanya dapat diakses oleh pihakpihak yang diotorisasi dan modifikasi tetap menjaga konsistensi dan keutuhan data di sistem. ♦ Integritas (integrity) Keterjaminan bahwa sumber daya sistem komputer hanya dapat dimodifikasi oleh pihakpihak yang diotorisasi. ♦ Ketersediaan Adalah keterjaminan bahwa sumber daya sistem komputer tersedia bagi pihak-pihak yang diotorisasi saat diperlukan. Ancaman terhadap sistem komputer dikategorikan menjadi 4 : 1. Interupsi Sumber daya sistem komputer dihancurkan. Interupsi merupakan ancaman terhadap kesediaan. Contoh : penghancuran bagian perangkat keras, pemotongan kabel komunikasi.
18 2. Intersepsi Pihak tak diotorisasikan dapat mengakses sumber daya. Intersepsi merupakan ancaman terhadap kerahasiaan. Pihak tak diotorisasi dapat berupa orang atau program komputer. Contoh : penyadapan untuk mengambil data, mengkopi berkas tanpa otorisasi. 3. Modifikasi Pihak tak diotorisasi tidak hanya mengakses tapi juga merusak sumber daya. Modifikasi merupakan ancaman terhadap integritas. Contoh : mengubah nilai-nilai file data, mengubah program sehingga bertindak secara berbeda, memodifikasi pesan-pesan yang ditransmisikan pada jaringan. 4. Fabrikasi (fabrication) Pihak tak diotorisasi menyisipkan/memasukkan objek-obejk palsu ke sistem. Fabrikasi merupakan ancaman terhadap integritas. Contoh : memasukkan pesan palsu ke jaringan, penambahan record file. Sumber informasi
Tujuan informasi Aliran normal
Sumber informasi
Tujuan informasi
Sumber informasi
Tujuan informasi
Interupsi
Sumber informasi
Tujuan informasi
Intersepsi Sumber informasi
Tujuan informasi
Modifikasi Fabrikasi
OTENTIFIKASI PEMAKAI Kebanyakan proteksi didasarkan asumsi sistem mengetahui identitas pemakai. Masalah identifikasi pemakai ketika login disebut otentifikasi pemakai (user authentication). Metode otentifikasi didasarkan 3 cara : 1. Sesuatu yang diketahui pemakai, misal : password, kombinasi kunci, nama ibu, dll Password Pemakai memilih 1 kata kode,mengingatnya dan mengetikkan saat akan mengakses sistem komputer. Saat diketikkan komputer tidak menampilkan di layar. Teknik ini mempunyai kelemahan. Pemakai cenderung memilih password yang mudah diingat. Seseorang yang kenal dengan pemakai dapat mencoba login dengan sesuatu yang diketahuinya mengenai pemakai. Upaya untuk lebih mengamankan proteksi password : • alting : menambahkan string pendek ke string password yang diberikan pemakai sehingga mencapai panjang password tertentu. • One time password : pemakai harus mengganti password secara teratur, untuk membatasi peluang password telah diketahui atau dicoba-coba pemakai lain. • Satu daftar panjang pertanyaan dan jawaban : mengharuskan pemakai memberi satu daftar pertanyaan panjang dan jawabannya. Pada saat login komputer memilih salah satu dari pertanyaan secara acak, menanyakan ke pemakai dan mmeriksa jawaban yang diberikan. • Tanggapan-tanggapan : pemakai diberi kebebasan memilih satu algoritma, misal x3. ketika pemakai login, komputer menuliskan di layar angka 3. dalam kasus ini pemakai mengetik angka 27. algoritma dapa berbeda di pagi, sore, dan hari berbeda, dari terminal berbeda, dst. 2. Sesuatu yang dimiliki pemakai, misal : badge, kartu identitas, kunci, dsb 3. Sesuatu mengenai (merupakan ciri) pemakai misal : sidik jari, sidik suara, foto, tandatangan, dsb
19 Pembatasan Pembatasan-pembatasan dapat dilakukan sehingga memperkecil peluang penembusan oleh pemakai yang tak diotorisasi, misal : • Pembatasan login : login hanya diperbolehkan pada terminal tertentu, hanya pada waktu dan hari tertentu • Pembatasan dengan call back : login dapat dilakukan siapapun, bila telah sukses login sistem segera memutuskan koneksi dan memanggil nomor telepon yang telah disepakati. Penyusup tidak dapat menghubungi lewat sembarang saluran telepon, tapi hanya pada saluran telepon tertentu. • Pembatasan jumlah login : login dibatasi sampai 3 kali dan segera dikunci dan diberitahu ke administrator. Semua login direkam dan sistem operasi melaporkan informasi waktu pemakai login, terminal dimana pemakai login. Objek yang perlu diproteksi pada sistem komputer : 1. Objek perangkat keras : pemroses(processor), segment memori, terminal, disk drive, printer,dsb. 2. Objek perangkat lunak : proses, file, basis data, dsb PROGRAM JAHAT Ancaman canggih terhadap sistem komputer adalah program yang mengeksploitasi kelemahan sistem komputasi. Klasifikasi program jahat : 1. Bacteria Program yang mengkonsumsi sumber daya sistem dengan mereplikasi dirinya sendiri. Secara eksplisit tidak merusak file. Tujuan program ini hanya mereplikasi dirinya. Bacteria bereproduksi secara eksponensial, dengan cepat mengambil alih seluruh kapasitas pemroses, memori / ruang disk, mengakibatkan penolakan pengaksesan pemakai ke sumber daya. 2. Logic bomb logik yang ditempelkan pada program komputer agar memeriksa suatu kumpulan kondisi di sistem. Ketika kondisi yang dimaksud ditemui (misal:tgl tertentu, pemakai menjalankan aplikasi tertentu, dll) logik mengeksekusi suatu fungsi yang menghasilkan aksi-aksi tak diotorisasi, misal : mengubah/menghapus data, mesin berhenti, dll. 3. Trapdoor Titik masuk tak terdokumentasi rahasia di satu program untuk memberikan akses tanpa metode-metode otentifikasi normal. Trapdoor telah dipakai secara benar selama bertahuntahun oleh pemrogram untuk mencari kesalahan program Æ debugging dan testing : dilakukan pemogram saat mengembangkan aplikasi. Menjadi ancaman ketika digunakan pemrogram jahat untuk memperoleh pengaksesan tak diotorisasi. 4. Trojan horse adalah subprogram tak terdokumentasi rahasia ditempelkan dalam suatu program. Program tersebut mengandung yang kode tersembunyi yang ketika dijalankan melakukan suatu fungsi yang tak diinginkan. Eksekusi program menyebabkan eksekusi subprogram rahasia ini. Trojan horse digunakan untuk melakukan fungsi-fungsi secara tidak langsung dimana pemakai tak diotorisasi tidak dapat melakukannya secara langsung, contoh : untuk dapat mengakses file-file pemakai lain pada sistem yang dipakai bersama, ketika program dieksekusi akan mengubah ijin-ijin file sehingga file-file dapat dibaca oleh sembarang pemakai. Motivasi lain dari trojan horse adalah pengancuran data, misal ditempelkan pada program kalkulator. Ketika pemakai menggunakan kalkulator, secara diam-diam subprogram tersebut menghapus file-file pemakai. Trojan horse biasanya ditempelkan pada programprogram/subropgram yang diambil dari internet. 5. Virus Virus adalah kode yang ditempelkan dalam satu program yang menyebabkan pengkopian dirinya disisipkan ke satu program lain atau lebih. Program ‘menginfeksi’ program-program lain dengan memodifikasi program-program itu. 6. Worm adalah program yang mereplikasi dirinya dan mengirim kopian-kopian dari komputer ke komputer lewat hubungan jaringan. Sekali aktif di suatu sistem, worm dapat berlaku seperti virus/bacteria/menempelkan program trojan horse & bisa melakukan sejumlah aksi menjengkelkan/menghancurkan. Worm juga bisa menentukan apakah sistem sebelumnya telah diinfeksi sebelum mengirim kopian dirinya ke sistem itu.
20 VIRUS DAN ANTI VIRUS Virus adalah sama dengan program komputer lainnya. Perbedaan dengan program lain adalah virus dapat mencantolkan dirinya ke program lain dan mengeksekusi kodenya secara rahasia setiap kali program inang berjalan. Masalah yang ditimbulkan virus adalah virus sering merusak sistem komputer seperti menghapus file, partisi disk, atau mengacaukan program. Siklus hidup virus, yaitu: 1. Fase tidur (dormant phase) Virus dalam keadaan menganggur, tiba-tiba aktif pada saat tertentu. Misal tanggal tertentu, kehadiran program / file tertentu, kapasitas disk yang melewati batas/batas tertentu. Tidak semua virus mempunyai tahap ini. 2. Fase propagasi (propagation phase) Virus menempatkan kopian dirinya ke program lain atau daerah sistem tertentu di disk. Program yang terinfeksi virus akan mempunyai kloning virus. Kloning virus itu dapat kembali memasuki fase propagasi. 3. Fase pemicuan (triggering phase) Virus diaktifkan untuk melakukan fungsi yang dimaksud. Seperti pada fase tidur, fase pemicuan disebabkan beragam kejadian termasuk penghitungan jumlah kopian dirinya. 4. Fase eksekusi (execution phase) Virus menjalankan fungsinya, misal menjalankan pesan, merusak program, dll. Tipe virus 1. Paristic virus Tipe ini mencantolkan dirinya ke berkas yang berekstension exe. Virus mereplikasikan ketika program yang terinfeksi dieksekusi dengan mencari berkas-berkas exe lain untuk diinfeksi. 2. Memory resident virus Virus memuatkan diri ke memori utama sebagai bagian program yang menetap. Dengan cara ini, virus menginfeksi setiap program yang dieksekusi. 3. Boot sector virus Virus menginfeksi master boot record / boot sector dan menyebar saar sistem di-boot dari disk yang berisi virus tersebut. 4. Stealth virus Virus yang bentuknya telah dirancang agar dapat menyembunyikan diri dari deteksi perangkat lunak anti virus. 5. Polymorphic virus Virus bermutasi setiap kali melakukan infeksi. Deteksi dengan “penandaan” virus tersebut tidak dimungkinkan. Antivirus Solusi ideal terhadap ancaman virus adalah pencegahan. Setelah pencegahan terhadap masuknya virus untuk pertama kali, maka pendekatan berikutnya yang dapat dilakukan adalah : 1. Deteksi : begitu infeksi telah terjadi, tentukan bahwa infeksi memang telah terjadi dan cari lokasi virus 2. Identifikasi : begitu virus terdeteksi maka identifikasi virus yang menginfeksi program. 3. Penghilangan : setelah virus teridentifikasi maka hilangkan semua jejak virus dari program yang terinfeksi dan program dikembalikan seperti semula. Jika deteksi sukses dilakukan, tapi identifikasi atau penghilangan tidak dapat dilakukan, maka alternatif yang dilakukan adalah hapus program yang terinfeksi dan kopi kembali backup program yang masih bersih.
21