Archive for Mei 2016
Pokok masalah keamanan sistem salah satunya disebabkan
karena sistem time sharing dan akses jarak jauh, apalagi dengan meningkatnya
perkembangan jaringan komputer.
Keamanan sistem
komputer adalah untuk menjamin sumber daya sistem tidak digunakan /
dimodifikasi, diinterupsi dan diganggu
oleh orang yang tidak diotorisasi. Pengamanan termasuk masalah teknis, manajerial, legalitas dan
politis.
3 macam keamanan
sistem, yaitu :
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 indentifikasi
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.
2 masalah penting
keamanan, yaitu :
1.
Kehilangan data / data loss
Yang disebabkan karena :
·
Bencana, contohnya kebakaran, banjir, gempa
bumi, perang, kerusuhan, tikus, dll.
·
Kesalahan perangkat keras dan perangkat lunak,
contohnya ketidak berfungsinya pemroses, disk / tape yang tidak terbaca, kesalahan
komunikasi, kesalahan program / bugs.
·
Kesalahan / kelalaian manusia, contohnya
kesalahan pemasukkan data, memasang tape / disk yang salah, kehilangan disk /
tape.
2.
Penyusup / intruder
·
Penyusup pasif, yaitu yang membaca data yang
tidak terotorisasi
·
Penyusup aktif, yaitu mengubah data yang tidak
terotorisasi.
Contohnya penyadapan oleh orang
dalam, usaha hacker dalam mencari uang, spionase militer / bisnis, lirikan pada
saat pengetikan password.
Sasaran
keamanan adalah menghindari, mencegah dan mengatasi ancaman terhadap sistem.
3 aspek kebutuhan keamanan sistem komputer, yaitu :
1.
Kerahasiaan / secrecy, diantaranya privasi
Keterjaminan bahwa informasi di
sistem komputer hanya dapat diakses oleh pihak-pihak yang terotorisasi dan
modifikasi tetap menjaga konsistensi dan keutuhan data di sistem
2.
Integritas / integrity
Keterjaminan bahwa sumber daya
sistem komputer hanya dapat dimodifikasi oleh pihak-pihak yang terotorisasi
3.
Ketersediaan / availability
Keterjaminan bahwa sumber daya
sistem komputer tersedia bagi pihak-pihak yang diotorisasi saat diperlukan
Tipe ancaman terhadap keamanan sistem komputer dapat
dimodelkan dengan memandang fungsi sistem komputeer sebagai penyedia informasi.
Berdasarkan fungsi
ini, ancaman terhadap sistem komputeer dikategorikan menjadi 4 ancaman,
yaitu :
1.
Interupsi / interuption
Sumber daya sistem komputer
dihancurkan / menjadi tak tersedia / tak
berguna. Merupakan ancaman terhadap ketersediaan. Contohnya penghancuran
harddisk, pemotongan kabel komunikasi.
2.
Intersepsi / interception
Pihak tak diotorisasi dapat mengakses sumber daya. Merupakan ancaman
terhadap kerahasiaan. Pihak tak diotorissasi dapat berupa orang / program
komputeer. Contohnya penyadapan, mengcopy file tanpa diotorisasi.
3.
Modifikasi / modification
Pihak tak diotorisasi tidak
hanya mengakses tapi juga merusak sumber daya. Merupakan ancaman terhadap
integritas. Contohnya mengubah nilai file, mengubah program, memodifikasi pesan
4.
Fabrikasi / fabrication
Pihak tak diotorisasi menyisipkan
/ memasukkan objek-objek palsu ke sistem. Merupakan ancaman terhadap
integritas. Contohnya memasukkan pesan palsu ke jaringan, menambah record file.
Petunjuk prinsip-prinsip pengamanan sistem
komputer, yaitu :
1.
Rancangan sistem seharusnya publik
Tidak tergantung pada kerahasiaan rancangan mekanisme pengamanan. Membuat
proteksi yang bagus dengan mengasumsikan penyusup mengetahui cara kerja sistem
pengamanan.
2.
Dapat diterima
Mekanisme harus mudah diterima,
sehingga dapat digunakan secara benar dan mekanisme proteksi tidak mengganggu
kerja pemakai dan pemenuhan kebutuhan otorisasi pengaksesan.
3.
Pemeriksaan otoritas saat itu
Banyak sisten memeriksa ijin
ketika file dibuka dan setelah itu (opersi lainnya) tidak diperiksa.
4.
Kewenangan serendah mungkin
Program / pemakai sistem
harusnya beroperasi dengan kumpulan wewenang serendah mungkin yang diperlukan
untuk menyelesaikan tugasnya.
5.
Mekanisme yang ekonomis
Mekanisme proteksi seharusnya sekecil dan sesederhana mungkin dan seragam
sehingga mudah untuk verifikasi.
Otentifikasi pemakai / user
authentification adalah identifikasi pemakai ketika login.
3 cara otentifikasi
:
1.
Sesuatu yang diketahui pemakai, misalnya
password, kombinasi kunci, nama kecil ibu mertua, dll
Untuk password, pemakai memilih
suatu kata kode, mengingatnya dan menggetikkannya saat akan mengakses sistem
komputer, saat diketikkan tidak akan terlihat dilaya kecuali misalnya tanda *.
Tetapi banyak kelemahan dan mudah ditembus karena pemakai cenderung memilih
password yang mudah diingat, misalnya nama kecil, nama panggilan, tanggal
lahir, dll.
Upaya pengamanan proteksi
password :
a.
Salting,
menambahkan string pendek ke string password yang diberikan pemakai sehingga
mencapai panjang password tertentu
b.
one time password, pemakai harus mengganti password
secara teratur, misalnya pemakai mendapat 1 buku daftar password. Setiap kali
login pemakai menggunakan password berikutnya yang terdapat pada daftar
password.
c.
satu daftar panjang pertanyan dan jawaban,
sehingga pada saat login, komputer memilih salah satu dari pertanyaan secara
acak, menanyakan ke pemakai dan memeriksa jawaban yang diberikan.
d.
tantangan tanggapan / chalenge respone, pemakai
diberikan kebebasan memilih suatu algoritma misalnya x3, ketika
login komputer menuliskan di layar angka 3, maka pemakai harus mengetik angka
27.
2.
Sesuatu yang dimiliki pemakai, misalnya bagde,
kartu identitas, kunci, barcode KTM, ATM.
Kartu pengenal dengan selarik pita magnetik. Kartu ini disisipkan de suatu
perangkat pembaca kartu magnetik jika akan mengakses komputer, biasanya
dikombinasikan dengan password.
3.
Sesuatu
mengenai / merupakan ciri pemakai yang di sebut biometrik, misalnya sidik jari,
sidik suara, foto, tanda tangan, dll
Pada tanda tangan, bukan membandingkan bentuk tanda tangannya (karena mudah
ditiru) tapi gerakan / arah dan tekanan pena saat menulis (sulit ditiru).
Untuk memperkecil peluang penembusan keamanan
sistem komputer harus diberikan pembatasan, misalnya :
1.
Pembatasan
login, misalnya pada terminal tertentu, pada waktu dan hari tertentu
2.
Pembatasan
dengan call back, yaitu login dapat dilakukan oleh siapapun, bila telah sukses,
sistem memutuskan koneksi dan memanggil nomor telepon yang disepakati. Penyusup
tidak dapat menghibungu lewat sembarang saluran telepon, tapi hanya pada
saluran tetepon tertentu.
3.
Pembatasan
jumlah usaha login, misalnya dibatasi sampai 3 kali, dan segera dikunci dan
diberitahukan ke administrator.
Objek yang perlu
diproteksi :
1.
Objek perangkat keras, misalnya pemroses,
segment memori, terminal, diskdrive, printer, dll
2.
Objek perangkat lunak, misalnya proses, file,
basis data, semaphore, dll
Masalah proteksi
adalah mengenai cara mencegah proses mengakses objek yang tidak diotorisasi.
Sehingga dikembangkan konsep domain. Domain adalah himpunan pasangan
(objek,hak). Tiap pasangan
menspesifikasikan objek dan suatu subset operasi yang dapat dilakukan
terhadapnya. Hak dalam konteks ini berarti ijin melakukan suatu operasi.
Cara penyimpanan informasi anggota domain beerupa
satu matrik besar, dimana
:
·
baris menunjukkan domain
·
kolom menunjukkan objek
Resource (Sumber Daya)
Ada
2 tipe resource, yaitu :
1.
Preemptable resource
Resoource yang dapat
dibersihkan dari proses yang menggunakannya tanpa efek yang buruk.
Mudah diatasi dengan cara
realokasi resource dari satu proses ke yang lainnya.
2.
Nonpreemptable resource
Resoource yang tidak dapat
dibersihkan dari proses yang menggunakannya tanpa menyebabkan komputer fail.
Proses disebut deadlock,
jika proses menunggu suatu kejadian tertentu yang tak akan pernah terjadi atau
kondisi dimana 2 proses atau lebih tidak dapat meneruskan eksekusinya.
Sekumpulan proses berkondisi deadlock, jika setiap proses yang ada dikumpulan itu menunggu
sesuatu kejadian yang hanya dapat dilakukan proses lain yang juga berada di
kumpulan itu. Proses menunggu kejadian yang tak akan pernah terjadi.
Contoh :
P0 P1
Wait(S) Wait(Q)
Wait(Q) Wait(S)
. .
. .
. .
Signal(S) Signal(Q)
Signal(Q) Signal(S)
Pada langkah pertama, kedua proses
masih berjalan dengan baik. Pada langkah kedua, proses P0 meminta Q
yang ternyata masih dibawa oleh P1 dan baru akan dilepas setelah
signal(Q), demikian pula P1 meminta S yang masih dibawa oleh P0
dan baru akan dilepas setelah signal(S). Sehingga kondisi ini akan menimbulkan
deadlock.
Deadlock terjadi
ketika proses-proses mengakses secara ekslusif sumber daya. Semua deadlock yang terjadi melibatkan
persaingan memperoleh sumber daya ekslusif oleh dua proses atau lebih. Adanya deadlock akan mengakibatkan sistem menjadi
kacau.
Startvation terjadi ketika proses-proses menunggu alokasi
sumberdaya sampai tak terhingga, karena bisa pada kebijaksanaan / strategi
alokasi sumberdaya, sementara proses-proses lain dapat memperoleh alokasi
sumberdaya.
Indefinite
postponement / indefinite blocking /
starvation :
Penundaan penjadwalan sebuah proses selama tak terhingga
sementara sistem mengadakan alokasi sumber daya untuk proses yang lain.
Penyebabnya adalah prioritas.
Cara mengatasinya dengan “aging” yaitu prioritaas naik
dengan bertambahnya waktu.
Model Deadlock
Urutan kejadian
pengoperasian perangkat I/O adalah :
- meminta
/ request : meminta palayanan I/O
- memakai / use :
memakai perangkat I/O
- melepaskan / release :
melepaskan pamakaian perangkat I/O
Model deadlock dua proses dan dua sumber daya
Deadlock dapat digambarkan sebagai graph.
Misalnya :
-
dua proses, P0 dan P1
-
dua sumber daya
kritis, R0 dan R1
-
proses P0 dan
P1 harus mengakses kedua sumber daya tersebut
kondisi berikut dapat terjadi :
-
R0 diberikan ke P0
(P0 meminta sumber daya R0), ditandai busur (edge) berarah dari proses P0
ke sumber daya R0
-
sedangkan sumber daya R1
dialokasikan ke P1, ditandai dengan busur (edge) berarah dari sumber daya R1 ke proses P1.
Skenario yang
menimbulkan deadlock
Dapat terjadi skenario sebagai berikut :
-
P0 dialokasikan R0
-
P1 dialokasikan R1
Kemudian,
-
P0
sambil masih menggenggam R0, meminta R1
-
P1
sambil masih menggenggam R1, meminta R0
Kejadian
ini mengakibatkan deadlock karena
sama-sama akan saling menunggu. Graph
deadlock ini akan digambarkan sebagai graph
melingkar. Terjadinya deadlock
ditandai munculnya / terjadinya graph melingkar.
Karena
untuk melanjutkan eksekusi memerlukan kedua sumber daya sekaligus, maka kedua
proses akan saling menunggu sumber daya lain selamanya. Tak ada proses yang
dapat melepaskan sumber daya yang telah dipegangnya karena menunggu sumber daya
lain yang tak pernah diperolehnya. Kedua proses dalam kondisi deadlock, tidak dapat membuat kemajuan
apapun.
Deadlock tidak hanya terjadi pada dua proses dan dua
sumber daya, deadlock dapat terjadi
dengan melibatkan lebih dari dua proses dan dua sumber daya.
Syarat-syarat
terjadinya deadlock :
1.
Mutual
exclution condition
Tiap sumber daya saat itu
diberikan pada tepat satu proses / proses meng-klaim kontrol eksklusif terhadap
sumber daya yang dibutuhkannya.
2.
Hold and
wait condition / kondisi genggam dan tunggu
Proses-proses yang sedang
menggenggam sumber daya yang telah dialokasikan untuknya sementara menunggu
sumber daya – sumber daya tambahan yang baru.
3.
Non-preemption condition / kondisi non-preemption
Sumber daya – sumber daya yang sebelumnya diberikan tidak dapat diambil
paksa dari proses sampai sumber daya tersebut digunakan sampai selesai. Sumber
daya – sumber daya harus secara eksplisit dilepaskan dari proses yang
menggenggamnya.
4.
Circular wait condition / kondisi menunggu secara sirkular
Harus terdapat rantai sirkuler / satu lingkaran proses dari dua proses atau
lebih dimana setiap proses memegang satu atau lebih sumber daya yang diminta
oleh proses berikutnya pada lingkaran tersebut, masing-masing menunggu sumber
daya yang digenggam oleh anggota berikutnya pada rantai itu.
Ketiga syarat
pertama merupakan syarat perlu bagi terjadinya deadlock. Keberadaan deadlock selalu berarti terpenuhi
kondisi-kondisi diatas, tidak mungkin terjadi deadlock bila tidak ada ketiga kondisi itu. Deadlock terjadi berarti terdapat ketiga kondisi itu, tetapi adanya
ketiga kondisi itu belum berarti terjadi deadlock.
Deadlock baru benar-benar terjadi bila syarat keempat terpenuhi. Kondisi keempat
merupakan keharusan bagi terjadinya peristiwa deadlock. Bila salah satu dari kondisi tidak terpenuhi maka deadlock tidak terjadi.
Metode-metode
mengatasi deadlock :
1.
deadlock
prevention / metode pencegahan terjadinya
deadlock
pengkondisian sistem agar
menghilangkan kemungkinan terjadinya deadlock.
Pencegahan merupakan solusi yang bersih dipandang dari sudut tercegahnya deadlock. Jika mulainya satu atau lebih
proses akan menyebabkan terjadinya deadlock, proses tersebut tidak akan dimulai
sama sekali.
-
tiap proses harus meminta resource yang
dibutuhkan sekaligus dan tidak bisa berjalan sampai semua di dapat (untuk “wait
for”)
-
jika ada resourcce yang tidak terpenuhi, yang
lainnya harus dilepas (untuk “no preemption”)
-
urutkan tipe-tipe resource secara linier /
linier ordering (untuk “circular wait”)
2.
deadlock
avoidance / metode penghindaran
terjadinya deadlock
menghindarkan kondisi yang
paling mungkin menimbulkan deadlock
agar memperoleh sumber daya lebih baik. Penghindaran bukan berarti
menghilangkan semua kemungkinan terjadinya deadlock.
Jika sistem operasi mengetahui bahwa alokasi sumber daya menimbulkan resiko deadlock, sistem menolak / menghindari
pengaksesan itu. Dengan demikian menghindari terjadinya deadlock. Contohnya dengan menggunakan algoritma Banker yang
diciptakan oleh Dijkstra.
3.
deadlock
detection and recovery / metode
deteksi dan pemulihan dari deadlock
deteksi digunakan pada sistem
yang mengijinkan terjadinya deadlock,
dengan memeriksa apakah terjadi deadlock
dan menentukan proses dan sumber daya yang terlibat deadlock secara presisi. Begitu telah dapat ditentukan, sistem dipulihkan dari deadlock dengan metode pemulihan. Metode pemulihan dari deadlock
sistem sehingga beroperasi kembali, bebas dari deadlock. Proses yang terlibat
deadlock mungkin dapat menyelesaikan eksekusi dan membebaskan sumber dayanya.
Pencegahan deadlock
:
1.
tiap proses harus meminta semua sumber daya yang
diperlukan sekaligus dan tidak berlanjut sampai semuanya diberikan.
2.
Jika proses telah sedang memegang sumber daya
tertentu, untuk permintaan berikutnya proses harus melepas dulu sumber daya
yang dipegangnya. Jika diperlukan,
proses meminta kembali sekaligus dengan sumber daya yang baru.
3.
Beri
pengurutan linier terhadap tipe-tipe sumber daya pada semua proses, yaitu jika
proses telah dialokasikan suatu tipe sumber daya, proses hanya boleh berikutnya
meminta sumber daya tipe pada urutan yang berikutnya.
Saran
pencegahan deadlock diatas merupakan cara meniadakan salah satu dari syarat perlu.
Syarat perlu pertama jelas tidak bisa ditiadakan, kalau tidak menghendaki
kekacauan hasil.
Strategi
Burung Onta
Strategi ini
mengasumsikan kejadian deadlock jarang terjadi jika dibandingkan dengan
kejadian komputer crash. Strategi ini disebut strategi burung onta karena kabar
yang telah tersebar (yang sebenarnya tidak benar) bahwa burung onta akan
menyembunyikan kepalanya ke tanah bila mengetahui adanya bahaya yang
mengancamnya. Sehingga solusi yang dilakukan justru sebenarnya tak
memperdulikan adanya masalah.
Stategi ini
sebenarnya berarta adalah sama sekali tidak berusaha mengatasideadlock / tak
ada metoda sama sekali untuk mengatasi masalah deadlock.
Penghindaran deadlock
Adalah hanya
memberi akses ke permintaan sumber daya yang tidak mungkin menimbulkan
deadlock.
1. Prinsip Perangkat Keras I/O
Batasan
: bagaimana hardware tersebut di program
Manajemen
perangkat I/O mempunyai beragam fungsi, diantaranya :
-
mengirimkan perintah ke perangkat I/O
agar menyediakan layanan
-
menangani interupsi perangkat I/O
- menangani kesalahan pada perangkat I/O
-
menyediakan interface ke pemakai
1.1. I/O Device
Perangkat I/O dapat dibedakan berdasarkan :
1. Sifat aliran data
Berdasarkan
aliran data dibedakan menjadi :
a. Perangkat
berorientasi blok (block-oriented devices)
Menyimpan informasi dan menukarkan
(menerima / mengirim) informasi sebagai blok-blok berukuran tetap. Tiap blok
mempunyai alamat tersendiri. Ukuran blok dapat beragam antara 128 s/d 1024
byte.
Ciri utamanya adalah : dimungkinkan
membaca / menulis blok-blok secara independent, yaitu dapat membaca atau
menulis sembarang blok tanpa harus melewati blok-blok lain.
Contohnya : disk, tape, CD ROM, Optical
disk
b. Perangkat
berorientasi karakter (character-oriented
devices)
Mengirim atau menerima karakter dan tanpa
peduli membentuk suatu struktur blok, not addresable dan tidak mempunyai
operasi seek.
Contohnya : terminals, line printer, punch
card, network interfaces, pita kertas, mouse
Klasifikasi
diatas tidak mutlak, karena ada beberapa perangkat yang tidak termasuk kategori
diatas, misalnya :
-
clock yang tidak
teramati secara blok dan juga tidak menghasilkan / menerima aliran karakter. Clock
menyebabkan interupsi pada interval-interval yang didefinisikan.
-
Memory mapped screen,
-
sensor
2. Sasaran komunikasi
Berdasarkan sasaran komunikasi dibedakan menjadi :
a.
Perangkat yang
terbaca oleh manusia (human readable
device)
Perangkat yang cocok untuk komunikasi
dengan manusia.
Contohnya : VDT (Video Display Terminal) terdiri dari
monitor, keyboard (+mouse)
b.
Perangkat yang terbaca oleh mesin (machine readable device)
Perangkat yang
cocok untuk komunikasi dengan perangkat elektronik.
Contohnya : disk,
tape, sensor, controller, aktuator
c.
Untuk komunikasi
Perangkat yang cocok untuk komunikasi dengan perangkat jarak
jauh.
Contohnya : modem
1.2. Device Controller
Unit
I/O berupa :
a. Komponen elektronik
Device
controller / adapter adalah untuk mengaktifkan perangkat eksternal dan
memberitahukan yang perlu dilakukan oleh perangkat / driver.
Contoh
: unit tape megnetik diinstruksikan untuk kembali ke posisi awal, bergerak ke
record berikutnya dan sebagainya.
a. Komponen mekanik
Contohnya
: head, motor stepper, printer
1.1. Direct Memory Access (DMA)
DMA
berfungsi membebaskan pemroses menunggui transfer data yang dilakukan I/O
device. Saat pemroses ingin membaca atau menulis data, pemroses memerintahkan
DMA Controller dengan mengirimkan informasi berikut :
-
perintah penulisan / pembacaan
-
alamat I/O device
-
awal lokasi memori yang ditulis /
dibaca
-
jumlah word / byte yang ditulis /
dibaca
setelah
mengirimkan informasi itu ke DMA Controller, pemroses dapat melanjutkan kerja
lain. Pemroses mendelegasikan operasi I/O ke DMA. DMA mentransfer seluruh data
yang diminta ke / dari memori secara langsung tanpa melewati pemroses. Ketika
transfer data selesai, DMA mengirimkan sinyal interupsi ke pemroses. Pemroses
hanya dilibatkan pada awal dan akhir transfer data.
Operasi
transfer antara perangkat dan memori utama dilakukan sepenuhnya oleh DMA, lepas
dari pemroses dan hanya melakukan interupsi bila operasi telah selesai.
Keuntungan
DMA :
-
peningkatan
kinerja prosesor atau I/O
-
meminimasikan over head
Pada
waktu data di tranfer dari controller ke memori, sektor berikut akan lewat
dibawah head dan bits sampai ke controller. Controller sederhana tidak dapat
melakukan I/O dalam waktu yang bersamaan, maka dilakukan interleaving (skip blok),
memberi waktu untuk tranfer data ke memori. Interleaving ini terjadi pada disk
bukan pada memori, seperti terlihat pada gambar di bawah ini.
2. Prinsip Software I/O
Ide
Dasar : mengorganisasikan software dalam beberapa layer dimana level bawah
menyembunyikan akses / kepelikan hardware untuk level diatasnya. Level atas
membuat interface yang baik ke user.
Tujuan Software I/O
a. Konsep dalam
desain software I/O
Device
independence / tidak bergantung pada device yang digunakan
b. Penamaan yang seragam / Uniform Naming
Penamaan
file berkas atau perangkat adalah string atau integer dan harus sederhana,
tidak bergantung pada device
Contoh
: seluruh disks dapat dibuat dengan
hirarki sistem file (menggunakan NPS)
c. Penanganan kesalahan / Error Handling
Error harus ditangani sedekat mungkin dengan hardware
Contoh : pertama controller, device driver, dst. Dan jika
tidak bisa ditangani beri pesan
d. Synchronous (blocking) vs Asynchronous
(Interrupt Driver) transfer
Kebanyakan I/O adalah asinkron. Pemroses mulai transfer
dan mengabaikan untuk melakukan kerja lain sampai interupsi tiba.
Program pemakai sangat lebih mudah ditulis jika operasi
I/O berorientasi blok. Setelah perintah read, pemrogram kemudian ditunda secara
otomatis sampai data tersedia di buffer. Terserah sistem operasi untuk
menangani operasi yang sesungguhnya interrupt driver.
e. Sharable vs Dedicated Device
Beberapa
perangkat dapat dipakai bersama seperti disk, tapi ada juga perangkat yang
hanya satu pemakai yang dibolehkan memakai pada satu saat.
Misal
: disk untuk sharable dan printer untuk dedicated
Tujuan diatas
dapat dicapai dengan memisahkan software I/O menjadi 4 layers, yaitu :
1.
Interrupt Handler
Interrupt harus disembunyikan agar tidak terlihat rutin
berikutnya. Device driver di blok saat perintah I/O diberikan dan menunggu
interupsi. Ketika interupsi terjadi, prosedur penanganan interupsi bekerja agar
device driver keluar dari state blocked.
2.
Device Drivers
Seluruh kode device dependent terletak di device driver.
Tiap device driver menangani satu tipe / satu kelas device. Tugas dari device
driver untuk menerima permintaan abstrak dari software device independent
diatasnya dan melakukan layanan sesuai permintaan / mengeksekusinya.
3.
Device
Independent Operating System Software
I/O
device-independent adalah : software I/O yang tak bergantung pada perangkat
keras.
Fungsi dasar dari software device-independent :
-
membentuk fungsi I/O yang berlaku untuk
semua device
-
menyediakan interface uniform / seragam
ke user level software
Fungsi dari software I/O
device-independent yang biasa dilakukan :
a. Interface
seragam untuk seluruh device-driver
b. Penamaan
device
c. Proteksi
device
d. Memberi
ukuran blok device agar bersifat device-independent
e. Melakukan
Buffering
f. Alokasi
penyimpanan pada blok devices
g. Alokasi
dan pelepasan dedicated devices
h. Pelaporan
kesalahan
4.
User Space
I/OSoftware
Sebagian besar software I/O berada di dalam sistem
operasi yang di link dengan user program.
System
call termasuk I/O, biasanya dalam bentuk prosedur (library procedures).
Contoh
: count = write(fd,buffer,nbytes)
I/O
prosedur dengan level lebih tinggi.
Contoh
: printf (memformat output terlebih dahulu kemudian panggil write)
Yang
tidak mempunyai library procedure, contohnya : spooling directory dan daemon
(proses khusus) pada proses mencetak, transfer file, USENET
3. Disk
Tiga
kelebihan disk dari main memory untuk penyimpanan :
1.
kapasitas penyimpanan yang tersedia
lebih besar
2.
harga per-bit-nya
lebih rendah
3.
informasi tidak hilang meskipun power
off
3.1. Perangkat Keras Disk
Disk
diorganisasikan menjadi silinder-silinder dengan tiap permukaan terdapat head
yang ditumpuk secara vertikal. Track terbagi
menjadi sektor-sektor.
Tiga faktor yang mempengaruhi waktu read/write block disk
:
1.
seek time (waktu menggerakkan lengan ke
silinder)
2.
rotational delay (waktu sector berputar
ke head)
3.
transfer time
yang
sangat dominan adalah seek time, jadi performance dapat ditingkatkan dengan
mengurangi waktu rata-rata seek
Proses
seek pada disk driver : seek ke lebih dari satu disk secara bersamaan,
read/write bersama dengan seek, read/write dalam waktu yang bersamaan dari dua
drive
3.2. Algoritma Penjadwalan Akses Lintas Disk
Pada
sistem multiprogramming, banyak proses yang melakukan permintaan read/write
record disk. Proses membuat permintaan lebih cepat dibandingkan yang dapat
dilayani disk, membentuk antrian permintaan layanan disk. Diperlukan
penjadwalan disk agar memperoleh kerja optimal.
Terdapat
dua tipe penjadwalan disk, yaitu :
1.
Penjadwalan untuk optimasi seek, karena
waktu seek lebih tinggi satu orde dibandingkan waktu rotasi, maka kebanyakan
algoritma penjadwalan berkonsentrasi meminimumkan seek kumpulan atau antrian
permintaan layanan disk.
2.
Penjadwalan untuk optimasi rotasi,
penjadwalan disk melibatkan pemeriksaan terhadap permintaan yang belum dilayani
untuk menentukan cara paling efisien melayani permintaan-perminataan, dan
memeriksa hubungan posisi di antrian permintaan. Antrian disusun kembali
sehingga permintaan akan dilayani dengan pergerakan mekanis minimum.
Adapun
beberapa metode yang digunakan :
a. Algoritma Pertama Tiba Pertama Dilayani
(PTPD) / First Come, First Served (FCFS) Algorithm
Disk
drive melayani satu permintaan pada sauatu saat dan melayaninya sesuai urutan
kedatangannya. Permintaan yang duluan tiba, dilayani duluan.
Contoh
: 40 silinder dengan urutan 11, 1, 36, 1, 16, 34, 9, 12
b. Algoritma Pungut / Pick Up Algorithm
c. Algoritma Waktu Cari Terpendek
Dipertamakan (WCTD) / Shortest Seek Time First (SSTF) Algorithm
d. Agoritma Lift Singkat / C-LOOK
Algorithm
e. Agoritma Lift Singkat Searah / C-LOOK
Algorithm
f. Algoritma Lift Lengkap / SCAN Algorithm
g. Algoritma Lift Lengkap Searah / C-Scan
Algorithm
3.3. I/O Error Handling / Penanganan
Kesalahan I/O
Error
yang umum terjadi adalah :
1.
Error pemrograman
Kesalahan
disebabkan pemrograman. Misalnya : request sektor yang tidak ada. Penanganannya
: pembetulan program untuk komersial software, batalkan operasi dan berharap
tidak akan terjadi lagi
2.
Error checksum transient
Kesalahan
disebabkan adanya debu diantara head dengan permukaan disk. Penanganannya :
lakukan operasi berulang-ulang dan menandai sector yang rusak.
3.
Error checksum permanent
Kesalahan
disebabkan kerusakan disk. Misalnya harus dibuat daftar blok-blok buruk agar
data tidak ditulisi di blok-blok buruk.
4.
Error seek
Kesalahan
ini ditanggulangi dengan mengkalibrasi disk supaya berfungsi kembali. Misalnya
lengan harusnya ke silinder 6 ternyata ke 7. Penanganannya : kalibrasi ulang.
5.
Error controller
Kesalahan
ini ditanggulangi dengan menukar pengendali yang salah dengan pengendali yang
baru. Misalnya controller menolak perintah akses. Penanganannya : reset.
6.
Track at time caching
Kontroller
mempunyai memori untuk menyimpan informasi track dimana ia berada, permintaan
pembacaan blok track tersebut dilakukan tanpa pergerakan mekanik.
3.4. RAM Disk
RAM
disk adalah disk driver yang disimulasikan pada memori akses acak (RAM). RAM
disk sepenuhnya mengeliminasi waktu tunda yang disebabkan pergerakan mekanis
dalam seek dan rotasi. RAM disk berguna untuk aplikasi yang memerlukan kinerja
disk yang tinggi.
Devices
block adalah media penyimpanan dengan 2 perintah : R (read) dan W (write). Normalnya blok-blok
disimpan di disk berputar yang memerlukan mekanisme fisik.
Idenya
adalah meniru driver dengan mengalokasikan terlebih dahulu satu bagian memori
utama untuk menyimpan blok-blok data.
Keuntungannya :
berkecepatan tinggi karena pengaksesan sesaat / instant, tidak ada waktu tunda
seek dan waktu tunda rotasi. Sangat cocok untuk menyimpan program atau data
yang sering diakses.
4.
Terminal
Semua
komputer memerlukan terminal untuk komunikasi antar peralatan.
4.1. Terminal
Hardware
Terminal hardware terbagi atas 2 kategori dasar, yaitu :
1.
terminal interface melalui RS-232
RS-232 menghubungkan keyboard, monitor menggunakan serial
interface, 1 bit dalam 1 waktu, dan menggunakan 25 pin konektor, dimana 1 pin
untuk transmisi data, 1 pin untuk receive data dan 1 pin untuk ground, 22 pin
yang lain digunakan untuk fungsi control atau ada pin yang tidak digunakan.
RS-232 dapat dikategorikan lagi menjadi :
a.
hardcopy / printer, dimana tipe
karakter dari keyboard ditransmisikan ke komputer, dan kemudian di cetak di
kertas / printer.
b.
Dumb CRT terminal / glass tty (teletype
= terminal)
c.
Intelligent CRT terminals, terdiri dari
CPU dan memory, dan untuk program yang kompek digunakan EPROM atau ROM.
d.
Blit, adalah terminal dengan powerful
microprocessor
2.
terminal memory-mapped
adalah interface melalui video RAM / video controller yang
digunakan untuk monitor.
4.2. Terminal
Software
Terminal Software terdiri dari :
1.
Input Software
2.
Output Software