BACKTRACK

BACKTRACK
1. PENDAHULUAN

Backtrack biasa digunakan oleh para profesional security untuk melakukan penetrasi pada jaringan yang mereka kelola untuk melihat kelemahan yang ada pada system mereka, selain itu Backtrack juga sangat populer dikalangan pecinta dunia security, distro ini juga termasuk favorite dikalangan underground untuk digunakan dalam berbagai kesempatan dan dengan kelebihan ini maka tidak ketinggalan para cracker pun turut serta menggunakan distro ini untuk melakukan aksi-aksi brutalnya didunia Cyber.

Saat awal-awal muncul distro linux yang mengkhususkan diri sebagai distro untuk proses hacking / pen-test, yaitu backtrack security auditor lah yang paling 'pas' untuk hal ini. Satu hal yang paling dominan adalah kemampuan security auditor untuk portable, portable dalam hal pengenalan hardware dan portable sebagai distro untuk proses pengembangan. Walaupun saat itu ada beberapa jenis distro untuk lingkungan security, diantaranya whax dan phlak. Banyak yang menyukai whax karena menyediakan tools-tools yang lebih menarik. Setelah beberapa saat akhirnya security auditor dan whax bergabung dan membentuk satu distro linux untuk security dengan codename backtrack.

2. SEJARAH

Distro ini sebenarnya mempunyai sejarah yang cukup panjang. Sebelum Bactrack dilahirkan ke Cyber Word (Dunia Maya), cukup sulitnya mencari tools yang sering digunakan oleh para security profesional membuat orang-orang yang berhubungan dengan kegiatan atau pekerjaan tersebut menciptakan Sistem Operasi (OS) yang siap digunakan untuk menguji system mereka.

WHOPPIX adalah sebuah distro linux khusus untuk kalangan security profesional yang dibuat berdasarkan distro KNOPPIX, sebuah Distro Live CD yang bisa menjalankan sistem operasi langsung dari CD tanpa harus menginstal OS tersebut ke dalam Harddisk. Distro WHOPPIX Versi 3.0 telah mengambil berbagai exploit dari situs-situs Security seperti Securityfocus, Packetstorm, SecurityForest dan Milw0rm, setelah itu WHOPPIX merubah namanya menjadi WHAX karena sistem operasi yang digunakan bukan WHOPPIX lagi tapi SLAX yang dianggap lebih modular dan mudah untuk diutak-atik

Backtrack dibuat oleh Mati Aharoni yang merupakan konsultan security dari Israel dan max mosser jadi merupakan kolaborasi komunitas, backtrack sendiri merupakan merger dari whax yang mana whax ini adalah salah satu distro linux yang digunakan untuk test keamanan yang asal dari whax sendiri dari knoppix. Ketika knoppix mencapi versi 3.0 maka dinamakan dengan whax. Dengan whax kita bisa melakukan test securtity dari berbagai jaringan dimana saja . Max mosser merupakan auditor security collection yang menghususkan dirinya untuk melakukan penetrasi keamanan di linux, gabungan dari auditor dan whax ini sendiri menghasilakan 300 tool yang digunakan untuk testing security jaringan. Auditor security collection juga terdapat pada knoppix.

WHAX adalah singkatan dari White Hat and Slax, Pada zamannya ternyata WHAX bukan satu-satunya distro yang digunakan oleh para security profesional Auditor, Security Collection merupakan distro dengan tujuan yang sama persis dengan WHAX, dengan kumpulan software yang sangat banyak, bahkan jumlahnya melebihi dari distro WHAX. karena Visi dan Misi dari kedua distro ini sama, maka keduanya memutuskan bergabung, Karena alasan inilah distro linux yang dinamakan Backtrack ini menjadi terkenal dikalangan para Hacker & Cracker, karena dapat dijadikan senjata ampuh untuk melakukan kegiatan hacking yang mereka lakukan.

3. EVOLUSI DAN PERKEMBANGANNYA
Backtrack Salah satu distro linux yang merupakan turunan dari slackware yang mana merupakan merger dari whax dan auditor security collection. Pada tanggal 26 Mei 2006, Bactrack 1.0 versi non-beta dirilis ke public. Pada tanggal 13 November 2006 backtrack versi 2 beta pertama kalinya dirilis ke public, kemudian pada tanggal 19 November 2006 backtrack versi 2 beta kedua dirilis ke public, dan pada tanggal 06 Maret 2007 backtrack versi 2 final dirilis. Pada Backtrack versi 2 ini memasukkan lebih dari 300 tool security dari pengujian system keamanan jaringan.
Pada tanggal 14 desember 2007 Backtrack versi beta 3 dirilis, pada versi ini lebih difokuskan untuk support hardware. Sedangkan versi backtrack 3 final dirilis pada tanggal 19 juni 2008, pada backtrack versi 3 ini memasukkan saint dan maltego sedangkan nessus dalam tools tidak dimasukkan serta tetap memakai kernel versi 2.6.21.5. Pada tanggal 11 Januari 2010 BackTrack 4 Final dirilis, yang mana pada versi ini menawarkan kernel linux terbaru yaitu kernel 2.6.30.4 .Dilengkapi juga dengan patch untuk wireless driver untuk menanggulangi serangan wireless injection (wireless injection attacks)
Adapun beberapa tool yang terdapat dalam backtrack adalah sebagai berikut :
Ø Metasploit integration
Ø RFMON wireless drivers
Ø Kismet
Ø AutoScan-Network - AutoScan-Network is a network discovering and managing application
Ø Nmap
Ø Ettercap
Ø Wireshark (formerly known as Ethereal)
Ø Enumeration
Ø Exploit Archives •
Ø Scanners
Ø Password Attacks
Ø Fuzzers •
Ø Spoofing
Ø Sniffers
Ø Tunneling
Ø Wireless Tools
Ø Bluetooth
Ø Cisco Tools
Ø Database Tools
Ø Forensic Tools
Ø BackTrack Services
Ø Reversing
Ø Misc
Ø Selain tool jaringan backtrack dimasukkan mozilla, pidgin, k3b, xmms dll.

4. SOURCE CODE (isi Kernel wait.c)

/*
* Generic waiting primitives.
*
* (C) 2004 William Irwin, Oracle
*/
#include
#include
#include
#include
#include
#include
void init_waitqueue_head(wait_queue_head_t *q)
{
spin_lock_init(&q->lock);
INIT_LIST_HEAD(&q->task_list);
}
EXPORT_SYMBOL(init_waitqueue_head);
void add_wait_queue(wait_queue_head_t *q, wait_queue_t *wait)
{
unsigned long flags;
wait->flags &= ~WQ_FLAG_EXCLUSIVE;
spin_lock_irqsave(&q->lock, flags);
__add_wait_queue(q, wait);
spin_unlock_irqrestore(&q->lock, flags);
}
EXPORT_SYMBOL(add_wait_queue);
void add_wait_queue_exclusive(wait_queue_head_t *q, wait_queue_t *wait)
{
unsigned long flags;
wait->flags |= WQ_FLAG_EXCLUSIVE;
spin_lock_irqsave(&q->lock, flags);
__add_wait_queue_tail(q, wait);
spin_unlock_irqrestore(&q->lock, flags);
}
EXPORT_SYMBOL(add_wait_queue_exclusive);
void remove_wait_queue(wait_queue_head_t *q, wait_queue_t *wait)
{
unsigned long flags;
spin_lock_irqsave(&q->lock, flags);
__remove_wait_queue(q, wait);
spin_unlock_irqrestore(&q->lock, flags);
}
EXPORT_SYMBOL(remove_wait_queue);
/*
* Note: we use "set_current_state()" _after_ the wait-queue add,
* because we need a memory barrier there on SMP, so that any
* wake-function that tests for the wait-queue being active
* will be guaranteed to see waitqueue addition _or_ subsequent
* tests in this thread will see the wakeup having taken place.
*
* The spin_unlock() itself is semi-permeable and only protects
* one way (it only protects stuff inside the critical region and
* stops them from bleeding out - it would still allow subsequent
* loads to move into the critical region).
*/
void
prepare_to_wait(wait_queue_head_t *q, wait_queue_t *wait, int state)
{
unsigned long flags;
wait->flags &= ~WQ_FLAG_EXCLUSIVE;
spin_lock_irqsave(&q->lock, flags);
if (list_empty(&wait->task_list))
__add_wait_queue(q, wait);
set_current_state(state);
spin_unlock_irqrestore(&q->lock, flags);
}
EXPORT_SYMBOL(prepare_to_wait);
void
prepare_to_wait_exclusive(wait_queue_head_t *q, wait_queue_t *wait, int state)
{
unsigned long flags;
wait->flags |= WQ_FLAG_EXCLUSIVE;
spin_lock_irqsave(&q->lock, flags);
if (list_empty(&wait->task_list))
__add_wait_queue_tail(q, wait);
set_current_state(state);
spin_unlock_irqrestore(&q->lock, flags);
}
EXPORT_SYMBOL(prepare_to_wait_exclusive);
/*
* finish_wait - clean up after waiting in a queue
* @q: waitqueue waited on
* @wait: wait descriptor
*
* Sets current thread back to running state and remove
* the wait descriptor from the given waitqueue if still
* queued.
*/
void finish_wait(wait_queue_head_t *q, wait_queue_t *wait)
{
unsigned long flags;
__set_current_state(TASK_RUNNING);
/*
* We can check for list emptiness outside the lock
* IFF:
* - we use the "careful" check that verifies both
* the next and prev pointers, so that there cannot
* be any half-pending updates in progress on other
* CPU's that we haven't seen yet (and that might
* still change the stack area.
* and
* - all other users take the lock (ie we can only
* have _one_ other CPU that looks at or modifies
* the list).
*/
if (!list_empty_careful(&wait->task_list)) {
spin_lock_irqsave(&q->lock, flags);
list_del_init(&wait->task_list);
spin_unlock_irqrestore(&q->lock, flags);
}
}
EXPORT_SYMBOL(finish_wait);
/*
* abort_exclusive_wait - abort exclusive waiting in a queue
* @q: waitqueue waited on
* @wait: wait descriptor
* @state: runstate of the waiter to be woken
* @key: key to identify a wait bit queue or %NULL
*
* Sets current thread back to running state and removes
* the wait descriptor from the given waitqueue if still
* queued.
*
* Wakes up the next waiter if the caller is concurrently
* woken up through the queue.
*
* This prevents waiter starvation where an exclusive waiter
* aborts and is woken up concurrently and noone wakes up
* the next waiter.
*/
void abort_exclusive_wait(wait_queue_head_t *q, wait_queue_t *wait,
unsigned int mode, void *key)
{
unsigned long flags;
__set_current_state(TASK_RUNNING);
spin_lock_irqsave(&q->lock, flags);
if (!list_empty(&wait->task_list))
list_del_init(&wait->task_list);
else if (waitqueue_active(q))
__wake_up_common(q, mode, 1, 0, key);
spin_unlock_irqrestore(&q->lock, flags);
}
EXPORT_SYMBOL(abort_exclusive_wait);
int autoremove_wake_function(wait_queue_t *wait, unsigned mode, int sync, void *key)
{
int ret = default_wake_function(wait, mode, sync, key);
if (ret)
list_del_init(&wait->task_list);
return ret;
}
EXPORT_SYMBOL(autoremove_wake_function);
int wake_bit_function(wait_queue_t *wait, unsigned mode, int sync, void *arg)
{
struct wait_bit_key *key = arg;
struct wait_bit_queue *wait_bit
= container_of(wait, struct wait_bit_queue, wait);
if (wait_bit->key.flags != key->flags ||
wait_bit->key.bit_nr != key->bit_nr ||
test_bit(key->bit_nr, key->flags))
return 0;
else
return autoremove_wake_function(wait, mode, sync, key);
}
EXPORT_SYMBOL(wake_bit_function)
/*
* To allow interruptible waiting and asynchronous (i.e. nonblocking)
* waiting, the actions of __wait_on_bit() and __wait_on_bit_lock() are
* permitted return codes. Nonzero return codes halt waiting and return.
*/
int __sched
__wait_on_bit(wait_queue_head_t *wq, struct wait_bit_queue *q,
int (*action)(void *), unsigned mode)
{
int ret = 0;
do {
prepare_to_wait(wq, &q->wait, mode);
if (test_bit(q->key.bit_nr, q->key.flags))
ret = (*action)(q->key.flags);
} while (test_bit(q->key.bit_nr, q->key.flags) && !ret);
finish_wait(wq, &q->wait);
return ret;
}
EXPORT_SYMBOL(__wait_on_bit);
int __sched out_of_line_wait_on_bit(void *word, int bit,
int (*action)(void *), unsigned mode)
{
wait_queue_head_t *wq = bit_waitqueue(word, bit);
DEFINE_WAIT_BIT(wait, word, bit);
return __wait_on_bit(wq, &wait, action, mode);
}
EXPORT_SYMBOL(out_of_line_wait_on_bit);
int __sched
__wait_on_bit_lock(wait_queue_head_t *wq, struct wait_bit_queue *q,
int (*action)(void *), unsigned mode)
{
do {
int ret;
prepare_to_wait_exclusive(wq, &q->wait, mode);
if (!test_bit(q->key.bit_nr, q->key.flags))
continue;
ret = action(q->key.flags);
if (!ret)
continue;
abort_exclusive_wait(wq, &q->wait, mode, &q->key);
return ret;
} while (test_and_set_bit(q->key.bit_nr, q->key.flags));
finish_wait(wq, &q->wait);
return 0;
}
EXPORT_SYMBOL(__wait_on_bit_lock);
int __sched out_of_line_wait_on_bit_lock(void *word, int bit,
int (*action)(void *), unsigned mode)
{
wait_queue_head_t *wq = bit_waitqueue(word, bit);
DEFINE_WAIT_BIT(wait, word, bit);
return __wait_on_bit_lock(wq, &wait, action, mode);
}
EXPORT_SYMBOL(out_of_line_wait_on_bit_lock);
void __wake_up_bit(wait_queue_head_t *wq, void *word, int bit)
{
struct wait_bit_key key = __WAIT_BIT_KEY_INITIALIZER(word, bit);
if (waitqueue_active(wq))
__wake_up(wq, TASK_NORMAL, 1, &key);
}
EXPORT_SYMBOL(__wake_up_bit);
/**
* wake_up_bit - wake up a waiter on a bit
* @word: the word being waited on, a kernel virtual address
* @bit: the bit of the word being waited on
*
* There is a standard hashed waitqueue table for generic use. This
* is the part of the hashtable's accessor API that wakes up waiters
* on a bit. For instance, if one were to have waiters on a bitflag,
* one would call wake_up_bit() after clearing the bit.
*
* In order for this to function properly, as it uses waitqueue_active()
* internally, some kind of memory barrier must be done prior to calling
* this. Typically, this will be smp_mb__after_clear_bit(), but in some
* cases where bitflags are manipulated non-atomically under a lock, one
* may need to use a less regular barrier, such fs/inode.c's smp_mb(),
* because spin_unlock() does not guarantee a memory barrier.
*/
void wake_up_bit(void *word, int bit)
{
__wake_up_bit(bit_waitqueue(word, bit), word, bit);
}
EXPORT_SYMBOL(wake_up_bit);
wait_queue_head_t *bit_waitqueue(void *word, int bit)
{
const int shift = BITS_PER_LONG == 32 ? 5 : 6;
const struct zone *zone = page_zone(virt_to_page(word));
unsigned long val = (unsigned long)word <<>
return &zone->wait_table[hash_long(val, zone->wait_table_bits)];
}
EXPORT_SYMBOL(bit_waitqueue);
5. KESIMPULAN

Backtrack biasa digunakan oleh para profesional security untuk melakukan penetrasi pada jaringan yang mereka kelola untuk melihat kelemahan yang ada pada system mereka, selain itu Backtrack juga sangat populer dikalangan pecinta dunia security. Backtrack dibuat oleh Mati Aharoni yang merupakan konsultan security dari Israel dan max mosser jadi merupakan kolaborasi komunitas, backtrack sendiri merupakan merger dari whax yang mana whax ini adalah salah satu distro linux yang digunakan untuk test keamanan yang asal dari whax sendiri dari knoppix.

Backtrack Salah satu distro linux yang merupakan turunan dari slackware yang mana merupakan merger dari whax dan auditor security collection, yang kemudian pada backtrack 4 menggunakan distro turunan dari debian. Backtrack telah merilis 4 kali dari versinya, yaitu versi beta 1 backtrack, versi 2 beta backtrack, versi final backtrack 2, versi beta backtrack 3, versi final backtrack 3, versi beta backtrack 4, dan terakhir versi backtrack 4 yang dirilis pada tanggal 11 Januari 2010.

Manajemen File

Kata Kunci Pada Manajemen File

File mempunyai sifat sebagai berikut :
a. Persistence.
Informasi dapat bertahan meski proses yang membangkitkannya berakhir atau meskipun catu daya dihilangkan. Dengan properti ini maka file dapat digunakan untuk menjaga hasil-hasil yang diperoleh dari suatu proses dapat digunakaaan di masa datang.


b. Size.
File umumnya berukuran besar. Memungkinkan menyimpan informasi yang
sangat besar disimpan.
c. Sharability.
File dapat digunakan banyak proses mengakses informasi secara kongkuren.


* File pile merupakan struktur dasar dan tak berstruktur. Struktur ini memberikan fleksibilitas penuh. Struktur ini menggunakan ruang penyimpanan dengan baik saat data berukuran dan berstruktur beragam. Struktur ini sangat jelek untuk pencarian rekord tertentu. Berbagai penggunaan dari file pile, diantaranya :

1. File-file sistem
2. File log ( mencatat kegiatan)
3. File-file penelitian / medis
4. Config.sys



* File sekuen (sequential file) adalah suatu cara ataupun suatu metode penyimpanan dan pembacaan data yang dilakukan secara berurutan. Dalam hal ini, data yang ada akan disimpan sesuai dengan urutan masuknya. Data pertama dengan nomor berapapun, akan disimpan ditempat pertama, demikian pula dengan data berikutnya yang juga akan disimpan ditempat berikutnya.

* File sekuen berindeks (indexed-sequential file) adalah perpaduan terbaik dari teknik sequential dan random file. Teknik penyimpanan yang dilakukan, menggunakan suatu index yang isinya berupa bagian dari data yang sudah tersortir. Index ini diakhiri denga adanya suatu pointer (penunjuk) yang bisa menunjukkan secara jelas posisi data yang selengkapnya. Index yang ada juga merupakan record-key (kunci record), sehingga kalau record key ini dipanggil, maka seluruh data juga akan ikut terpanggil.
* File Brindeks Majemuk (Multiple Indexed File) : File indeks berisi kumpulan isian indeks untuk mengacu record di file utama. Isian indeks berisi pasangan nilai atribut kunci record dan pointer acuan untuk pengaksesan seketika record tersebut, yaitu ( nilai kunci, pointer ). Pada file berindeks majemuk, pembaruan dilakukan terhadap file utama bukan file overflow. Karena record dicari lewat indeks, maka indeks harus dinamis. Begitu terjadi pembaruan ( insert, update, delete ), maka indeks –indeks diperbarui mengikuti perubahan di file utama.

* File ber-Hash (Hashed File) adalah Metode penempatan dan pencarian yang memanfaatkan metode Hash disebut hashing atau ‘Hash addressing’ dan fungsi yang digunakan disebut fungsi hashing / fungsi Hash. Fungsi hashing atau fungsi Hash inilah yang dapat menjadi salah satu alternatif dalam menyimpan atau mengorganisasi File dengan metode akses langsung. Fungsi Hash berupaya menciptakan “fingerprint” dari berbagai data masukan. Fungsi Hash akan mengganti atau mentransposekan data tersebut untuk menciptakan fingerprint, yang biasa disebut Hashvalue (nilai Hash).

* Multiring File merupakan metode pengorganisasian file yang berorientasi pada pemrosesan subset dari record secara efisien. Subset tersebut digambarkan sebagai grup dari beberapa record yang terdiri dari nilai atribut yang biasa. Contohnya “Semua pekerja yang berbicara bahasa Perancis”. Subset dari record dihubungkan bersama secara eksplisit menggunakan pointer. Rantai penghubung ini menentukan urutan anggota dari subset. Setiap subset mempunyai record kepala yang merupakan record awal dari suatu rantai. Sebuah record kepala berisi informasi yang berhubungan dengan seluruh record anggota di bawahnya. Record-record kepala ini juga dapat dihubungkan menjadi sebuah rantai. Tipe rantai tertentu yang digunakan untuk menggambarkan hal ini dinamakan ring, yang merupakan rantai di mana pointer anggota terakhir digunakan untuk menunkuk record kepala dari rantai. Ring-ring dapat disarangkan dalam banyak level kedalaman. Dalam hal ini record anggota dari ring level ke-i record kepala ring bawahan pada level i-1. Ring level terbawah, yang berisi data terakhir, selalu dianggap berada pada level 1

* Reguler File merupakan jenis file yang mengandung informasi user.file yang berisi informasi, file ini terdiri dari file ASCII dan biner.

* Directoty merupakan suatu file yang berisi daftar nama file dan direktory pada suatu direktori. Direktori menyimpan informasi : nama file, pada blok-blok, sektor dan track mana file tersebut disimpan pada disk serta attribut kepemilikan direktori. Direktori merupakan suatu bentuk file yang berstruktur yang terdiri dari field dan record.

Ada dua jenis hierarki direktori yang umum digunakan, yaitu :
-Tipe direktori memuat nama, atribut berkas dan alamat disk.
-Direktori dimana berkas ditunjuk oleh pointer.

* Spesial file adalah File yang berhubungan dengan peralatan I/O dan memodelkan peralatan serial, seperti Terminal, Printer, NIC.

* Absolute pathname adalah nama jalur dari direktori root ke file, dimulai dari direktori root dan akan bernilai unik.

* Relative Parhname adalah jalur relative terhadap direktori kerja/saat itu (working directory atau current directory).
* Current Directory (Working Directory) adalah Directori Tempat User sedang melakukan aktivitas

* Sequensial Access Device adalah dapat membaca seluruh byte/record dalam suatu file, mulai dari awal, tidak boleh melompat atau keluar dari urutannya. Cocok untuk file yang disimpan pada media Magnetic Tape.

* Random Access Device adalah bisa membaca byte/record untuk berbagai macam urutan pengaksesan. Cocok untuk file yang disimpan pada media Disk. Jenis ini lebih sesuai untuk berbagai aplikasi, seperti sistem database airport.

Manajemen I/O

Tugas manajemen perangkat masukan /pengeluaran i/o( devive)

1.Single Buffering;

menunjukkan struktur data dari buffer dalam bentuk yang sederhana, yang terdiri dari satu record per-block dan satu buffer per-berkas, dimana buffer ini berfungsi mengisikan permintaan dari sebuah program. Struktur buffer ini berisi sebuah pointer pada alamat awal & channel program untuk berkas. Struktur dasar dari channel program untuk mengisi buffer adalah : Tunggu instruksi READ dari program Memberitahukan instruksi start I/O ke unit kontrol Tunggu hingga buffer dikosongkan Memberitahukan interupsi pada program sehingga dapat mulai membaca dari buffer Masalah yang timbul di sini adalah pemakai program menganggur pada saat menunggu buffer diisi.

2. Double Buffering;

Untuk mengurangi kemungkinan dari program menunggu, maka double buffer dapat digunakan. Dua dari tempat buffer yang ada, hanya satu yang ditetapkan untuk berkas.
Ide dasar dari double buffering adalah jika consumer mengosongkan salah satu buffer, maka producer dapat mengisikan ke dalam buffer yang lain, pada saat buffer pertama sudah kosong, maka buffer yang kedua harus dalam keadaan penuh. Kemudian consumer dapat mengkosongkan buffer yang kedua, pada saat producer mengisi buffer yang pertama, demikian seterusnya.

3. Circular buffering.


Seharusnya melembutkan aliran data antara perangkat I/O dan proses. Jika kinerja proses tertentu menjadi fokus kita, maka kita ingin agar operasi I/O mengikuti proses. Double buffering tidak mencukupi jika proses melakukan operasi I/O yang berturutan dengan cepat. Masalah sering dapat dihindari denga menggunakan lebih dari dua buffer. Ketika lebih dari dua buffer yang digunakan, kumpulan buffer itu sendiri diacu sebagai circulat buffer. Tiap buffer individu adalah satu unit di circular buffer.

Disk.
Perangkat keras dan parameter kinerja disk Disk diorganisasikan menjadi silinder-silinder dengan tiap permukaan terdapat head yang ditumpuk secara vertical. Track terbagi menjadi
sektor-sektor. Waktu yang dibutuhkan untuk membaca dan menulis disk dipengaruhi oleh :


Waktu pencarian (seek time).
Merupakan faktor yang dominan. Waktu yang diperlukan untuk sampai ke
posisi track yang dituju, yaitu : S = Sc + di , dimana :
Sc adalah waktu penyalaan awal (initial startup time).
D adalah waktu yang bergerak antar-antar track.
i adalah jarak yang ditempuh (dalam ukuran ruang antar track).
Untuk track terdekat, S1 = Sc + d lebih kecil dibanding waktu yang
diperlukan untuk satu putaran.Untuk memudahkan perhitungan maka
dipakai s rata-rata,yaitu :

j-1
S = å Si pdi,
i=1

Si adalah waktu tempuh untuk jarak ke-1.
Pdi adalah probabilitas menempuh jarak ke-1.
Seek time rata-rata biasanya diinformasikan oleh pabrik pembuat.

Waktu rotasi (rotational latency).
Waktu yang diperlukan mekanisme akses mencapai blok yang diinginkan.
Rumus untuk mendapatkan r adalah :
R=1/2*((60*1000)/rpm).
Rpm atau jumlah putaran permenit, biasa diinformasikan oleh pabrik
pembuat.

Waktu transfer (t).
Tergantung pada kecepatan rotasi dan kepadatan rekaman. Transfer rate
(t) adalah kecepatan transfer data sesaat, data ini diberikan oleh
pembuat. Maka dapat dihitung :
> Waktu transfer per rekord (TR, record transfer time).
TR (waktu untuk transfer rekord dengan panjang rekord, R), yaitu :
TR=R/t.
> Waktu transfer per blok (btt).
Bit (block transfer time,waktu yang diperlukan untuk transfer 1 blok),
yaitu : btt=B/t.
> Bulk transfer time (t').
Didalam kasus pembacaan/penulisan secara sekuens besar maka harus
melewati gap dan daerah-daerah bukan data. Pada akhir tiap silinder,
seek akan terjadi dan selama seek time, tidak ada data yang
ditransfer.
Untuk keperluan didefinisikan bulk transfer time (t'), yaitu :
t'=(R)/(((R+W)/t)+s'), dimana :
R adalah ukuran rekord.
W adalah ruang yang disiakan.
s' adalah seek time untuk sekuen.
t adalah transfer mode.

Manajemen Memori

KEY WORD


  1. Binding adalah Binding adalah proses penempatan suatu item ke dalam lokasi memori tertentu.
  2. Dynamic loading adalah salah satu konsep manajemen memori dimana tidak semua bagian program diambil kememori, hanya bagian-bagian yang diperlukan saja yang harus tetap tinggal dalam memori.
  3. Dynamic Linking adalah konsep manajemen memori dimana tidak semua bagian program diambil kememori, hanya bagian-bagian yang diperlukan saja yang harus tetap tinggal dalam memori tetapi tekanannya pada proses linking.
  4. Swapping – Overlay. Swapping adalah Proses menukarkan sebuah proses keluar dari memori untuk sementara waktu ke sebuah penyimpanan sementara dengan sebuah proses lain yang sedang membutuhkan sejumlah alokasi memori untuk dieksekusi. Overlay adalah membagi program yang besar menjadi bagian bagian yang lebih kecil dan dapat dimuat dalam memori utama. Yang harus selalu ada dalam memori utama biasanya adalah program penggeraknya, sedangkan bagian-bagian pendukungnya diletakkan dalam memori sekunder.
  5. Compaction adalah proses yang mengumpulkan dan mengemas wilayah memori yang dialokasikan ke ruang sekecil mungkin, untuk menciptakan sebanyak mungkin ruang bebas yang bersambung.
  6. Memori Maya – Memori Nyata. Memori maya adalah kemampuan mengala-mati ruang memori melebihi memori utama yang tersedia. Gagasan memori maya adalah ukuran gabu-ngan 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. Begitu bagian di disk diperlukan maka bagian di memori yang tidak diper-Lukan disingkirkan diganti bagian di diskyang diperlukan itu.
  7. Dynamic Partitions – Static Partitions. Partisi dinamis adalah memori dipartisi menjadi bagian-bagian dengan jumlah dan besar yang tidak tentu. Partisi tetap adalah apabila memori dipartisi menjadi blok-blok yang ukurannya ditentukan dari awal. Terbagi lagi atas partisi tetap berukuran sama, dan partisi yang berbeda.
  8. Monoprogramming – Multiprogramming. Monoprograming adalah Sistem komputer hanya mengijinkan satu program per pemakai berjalan pada satu waktu. Manajemen memori yang paling sederhana, tanpa menggunakan swapping.
Multiprogramming
Merupakan suatu metode yang memungkinkan dua buah program atau lebih dijalankan secara serentak dalam sebuah komputer. Bebagi sumber daya dalam waktu yang berlainan. Sebagai contoh,dalam satu waktu sebuah program sedang menggnakan CPU, sedangkan program yang lain menggunakan printer. Di dalam sistem Multiprograming, sebuah program dijalankan dalam CPU sampai terjadi suatu interupsi seperti permintaan masukan. Pada saat program meminta masukan, program berikutnya yang telah di muat dalam memory akan di jalankan sampai terjadi interupsi. Ketika pemrosesan interupsi telah berakhir, kontrol dikembalikkan ke program yang telah diinterupsi. Siklus seperti ini diulang sehingga program-program yang telah dimuat memory utamaakan diproses secara bergantian.

Tugas Penjadwalan SO

Proses

Arrival time

Bust time (ms)

Kapasitas

Prioritas

P1

0

10

150 KB

3

P2

2

4

50 KB

1

P3

4

9

51.200 Byte

1

P4

5

13

100 KB

2

a. SRF

Gant Chart

P1

P2

P1

P4

P3

0 2 6 14 23 36

Proses

Waiting Time (ms)

P1

0+(6-2) = 4

P2

2-2=0

P3

23-4=19

P4

14-5=9

AW T = (4 + 0 + 19 + 9) / 2 = 8 ms

  1. Priority Scheduling

Gant Chart

P2

P3

P4

P1

0 4 13 26 36

Proses

Waiting Time (ms)

P1

26

P2

0

P3

4

P4

13

AWT = (26 + 0 + 4 + 13 ) / 4 = 10.75 ms

c. Jadi di anatar keduanya yang menurut saya merupakan metode paling simple adalah metode SRF (Short Remaining First) karena memiliki waktu menunggu rata-rata (AWT) lebih kecil di bandingkan dengan metode Priority Scheduling.

 
powered by Blogger