Dalam Ilmu komputer, Sistem operasi atau dalam bahasa Inggris: operating
system atau OS adalah perangkat lunak sistem yang bertugas untuk melakukan kontrol
dan manajemen perangkat keras serta operasi-operasi dasar sistem, termasuk
menjalankan software aplikasi seperti program-program pengolah kata dan browser web.
Secara umum, Sistem Operasi adalah software pada lapisan pertama yang ditaruh
pada memori komputer pada saat komputer dinyalakan. Sedangkan software-software
lainnya dijalankan setelah Sistem Operasi berjalan, dan Sistem Operasi akan melakukan
layanan inti umum untuk software-software itu. Layanan inti umum tersebut seperti akses
ke disk, manajemen memori, skeduling task, dan antar-muka user. Sehingga masing-
masing software tidak perlu lagi melakukan tugas-tugas inti umum tersebut, karena dapat
dilayani dan dilakukan oleh Sistem Operasi. Bagian kode yang melakukan tugas-tugas
inti dan umum tersebut dinamakan dengan "kernel" suatu Sistem Operasi.
Adapun di perguruan tinggi STMIK Asia Malang mata kuliah Sistem Operasi
wajib yang harus ditempuh oleh mahasiswa jurusan Sistem Komputer. Penulis mencoba
menyajikan sesuatu dengan cara sesederhana mungkin dengan bahasa yang mudah
diterima sehingga mengurangi kesulitan mahasiswa pada perkuliahan ini. Penulis
mengharapkan pembaca bisa menangkap materi dan persoalan-persoalan yang diberikan.
Diharapkan pembaca dapat menikmati permasalahan tanpa memandangnya sebagai
sesuatu yang sulit.
Penulis menyadari bahwa masih banyak kekurangan di sini, baik kesalahan
pengetikan maupun kekurangtepatan dalam penjelasan. Penulis dengan senang hati akan
menerima saran dan kritik membangun dari pembaca,.
Tidak lupa penulis mengucapkan puji syukur yang tak terhingga lepada ALLAH
SWT serta Junjungan kita Nabi Besar Muhamad SAW yang kita nantikan safaatnya di
hari akhir kelak, serta tak lupa rekan-rekan yang membantu atas terselesaikannya modul
ini.
Malang, 2009
Penulis
i
DAFTAR ISI
BAB I PENDAHULUAN
1.1 Blog Diagram Komputer ............................................................ 1
1.2 Sistem Operasi Komputer ........................................................... 2
1.3 Perkembangan Sistem Operasi Komputer................................... 7
BAB II MANAJEMENT PROSES
2.1 Proses ....................................................................................... 11
2.2 Model Prose.............................................................................. 11
BAB III TEKNIK PENJADWALAN PROSESOR
3.1 Istilah-Istilah ............................................................................... 20
3.2 Siklus Kerja Prosesor................................................................... 21
BAB IV MANAJEMEN MEMORY
4.1 Mamory Manager ....................................................................... 31
4.2 Fungsi Managemen Memory ..................................................... 33
4.3 Strategi Penempatan Program Ke Partisi ........................................ 35
BAB V VIRTUAL MEMORY
5.1 Algoritma Penggantian Page .................................................. 44
BAB VI SISTEM FILE
6.1 File .............................................................................................. 51
6.2 Directory ..................................................................................... 53
BAB VII INPUT / OUTPUT
7.1 Prinsip Keras I/O ......................................................................... 77
7.2 Prinsip Sorware I/O...................................................................... 80
7.3 Disk.............................................................................................. 82
DAFTAR PUSTAKA
ii
BAB I
PENDAHULUAN
Tanpa perangkat lunak (software) sebuah komputer sebenarnya sekumpulan besi yang
tidak berguna. Dengan software sebuah komputer dapat digunakan untuk menyimpan, mengolah
data (memproses) dan mendapatkan kembali informasi yang telah disimpan, menemukan
kesalahan dalam program, memainkan games dan menggunakan banyak aktivitas lainnya yang
bernilai. Pada umumnya program komputer dapat dibagi menjadi dua kategori, yaitu :
a. Program sistem (system program). Yang berfungsi untuk mengatur operasi dari komputer itu
sendiri.
b. Program aplikasi (application program). Yang berfungsi untuk membantu menyelesaikan
masalah untuk pemakainya.
Control Unit
Masukan
Processor
Saluran
Keluaran Penghubung
Memory
Memori
Dukung Clock
Dasar yang sangat penting dari semua program sistem adalah operating system yang
mengontrol semua sumber daya komputer dan menyediakan landasan sehingga sebuah program
aplikasi dapat ditulis atau dijalankan.
Banyak cara / metode yang menyediakan pelindung (sheild) atau sesuatu yang dapat
menyembunyikan programmer dari kekomplekan perangkat keras. Salah satunya dengan
menentukan / membuat sebuah lapis (layer) perangkat lunak yang mengendalikan komponen
pokok perangkat keras, mengatur semua bagian sistem dan menyediakan pemakai dengan
antarmuak (interface) / virtual machine yang memudahkan memahami dan memprogram.
Lapisan dari perangkat lunak tersebut adalah operating system.
User
Banking Word Program
Game
System Processing Aplikasi
Command
Compiler Utility Program
Interpreter
Sistem Operasi (Operating System) Sistem
Bahasa Mesin (Machine Language)
Pemrograman Mikro (Microprogramming) Hardware
Perangkat Fisik (Physical Devices)
1
Gambar 2. Komponen Sistem Komputer
Keterangan :
- Perangkat keras / hardware membentuk dua atau lebih lapis. Lapis yang paling bawah
(physical devices) berisi perangkat fisik, yang terdiri dari integrasi circuit chips, kabel (wires),
power supplies, cathode ray tubes (CRT) dan perangkat lainnya yang dibuat dan sistem
kerjanya merupakan bagian insinyur elektronik.
- Lapis berikutnya, software primitive langsung mengontrol peralatan tersebut (physical
devices) dan menyediakan interface (a cleaner interface) untuk layer diatasnya dikenal
dengan microprogram yang ditempatkan dalam read-only memory (ROM). Sebenarnya
microprogram berfungsi sebagai penerjemah, mengambil (fetching) intruksi bahasa mesin,
seperti ADD, MOVE dan JUMP serta melaksanakan proses-proses kecil yang saling terkait.
Contohnya apabila melaksanakan instruksi ADD, microprogram harus menentukan dimana
angka-angka yang ditambahkan ditempatkan (disimpan sementara), mengambilnya,
menambahkannya dan menyimpan hasilnya disuatu tempat tertentu.
- Sekumpulan instruksi yang diterjemahkan microprogram disebut machine language (bahasa
mesin), yang memilikim 50 sampai 300 instruksi yang kenyataannya bukan bagian dari
perangkat mesin semuanya, tetapi pembuat komputer selalu menjelaskannya dalam
manualnya (sejenis buku panduan perangkat kerasnya), sehingga banyak orang mengira
sebagai mesin sesungguhnya. Dalam lapis ini, perangkat masukan/keluaran mengontrol
pemuatan nilai ke dalam register khusus.
- Fungsi utama dari Operating System adalah menyembunyikan semua kekomplekan /
kerumitan dan memberikan programmer sebuah kenyamanan, kemudahan, kepraktisan dari
instruksi yang digunakan untuk bekerja dengannya, contohnya, READ BLOCK FROM FILE
adalah konsep / gagasan penyederhanaan daripada harus berpikir tentang bagaimana
memindahkan head disk secara rinci, menunggu untuk menjadi tenang (posisi istirahat).
- Diatas lapis Operating System (OS) adalah untuk menempatkan software system. Dari sini
ditemukan penerjemah perintah (command interpreter/shield), compiler, editor dan application
program independent. Adalah penting untuk menyadari/merealisasikan bahwa program-
program ini dengan pasti bukan bagian dari SO, walaupun secara khas disediakan oleh
pembuat komputer. OS adalah bagian dari software yang dijalankan dalam kernel mode atau
supervisor mode. SO memproteksi dari pemakai yang menganggu pemakain hardware
- Compiler dan editors dijalankan dalam user mode. Jika seorang tidak suka sebuah compiler
khusus, pemakai bebas menulis miliknya jika dapat memilih dan tentunya tidak bebas untuk
menangani interrupt disk yang merupakan bagian dari OS dan normalnya akan memproteksi
hardware terhadap usaha pemakai untuk memodifikasinya.
- Diatas layer system program adalah application program. Program ini ditulis oleh user untuk
memecahkan masalah khusus, seperti proses pengolahan data, perhitungan rekayasa atau
memainkan sebuah permainan.
2
Tugas utamanya : memantau penggunaan semua resources; menerapkan aturan
(policy); mengalokasikan resources yang diminta; mengambil kembali (dealokasi)
resource
Sumber daya pada komputer terdiri dari :
- Sumber daya fisik, misalnya : Keyboard, bar-code reader, mouse, joystick, light-
pen, touch-screen, pointing devices, floppy disk drive, harddisk, tape drive,
optical disk, CD ROM drive, CRT, LCD, printer, modem, ethernet card, PCMCIA,
RAM, cache memory, register, kamera, sound card, radio, digitizer, scanner,
plotter, dan sebagainya.
- Sumber daya abstrak, terdiri dari :Data dan Program
Sebagai Extended Machine (Virtual Machine), penyedia layanan
Menyembunyikan kompleksitas / kerumitan pemrograman hardware dari
programmer atau user.
Menyajikan fasilitas yang lebih mudah dan sederhana untuk menggunakan
hardware.
3
Directory File
Gambar 3. Model Struktur File
Shell
Shell pada Unix merupakan command interpreter yang walaupun bukan merupakan
bagian dari sistem operasi, menggunakan banyak feature sistem operasi
Prompt : standar input, menandakan bahwa shell siap menerima command
Contoh :
date
date > file
sort < file1 > file2
cat file1 file2 file3 | sort > /dev/lp
Background job : proses yang berjalan sementara user tetap bisa terus bekerja
Struktur Sistem Operasi
Sistem Monolitik
Konsep : “Sistem operasi sebagai kumpulan prosedur dimana prosedur dapat saling
dipanggil oleh prosedur lain di sistem bila diperlukan”.
Kernel berisi semua layanan yang disediakan sistem operasi untuk pemakai.
Contoh : Sistem Operasi Unix menggunakan konsep kernel loadable modules, yaitu :
Bagian-bagian kernel terpenting berada dimemori utama secara tetap.
Bagian-bagian esensi lain berupa modul yang dapat ditambahkan ke kernel saat
diperlukan dan dicabut begitu tidak digunakan lagi diwaktu jalan (run-time).
The ‘big mess’
Tidak berstruktur
Kernel call / supervisor call
User mode
Kernel mode / supervisor mode
User
User Program 2 Program
Runs in
User Program 1 User Mode
Kernell Call
4
Operating System
1 3 runs in
s Kernel Mode
servis service
2 procedure
Dispatch
Table 4
Gambar 4. Struktur Sistem Monolithic
5
System Call
6
Jenis Sistem Operasi
Aspek kegiatan
Pemakai tunggal (single user)
Pemakai jamak (multiuser)
Berdasarkan jenis-jenisnya
Linux
MS-Dos
MS Windows-NT
MS Windows
Dll
7
Job 3
Job 2
Job 1
Sistem operasi
Mengenalkan Time Sharing (berbagi waktu), tiap pemakai mempunyai satu terminal
online dengan pemroses hanya memberi layana pada pemakai yang aktif secara
bergantian secara cepat. Pemakai akan merasa dilayani terus menerus. Padahal
sebenarnya secara bergantian.
Mengenalkan SPOOLING (Simultaneous Peripheral Operation On Line), membuat
peripheral seolah-olah dapat digunakan bersamaan, dapat diaksis secara simultan
yaitu dengan cara menyediakan beberapa partisi memori. Saat terdapat permintaan
layanan peripheral, langsung diterima dan data disimpan lebih dulu di memori yang
disediakan berupa antrian kemudian dijadwalkan agar secara nyata dilayani
peripheral.
Sistem time sharing pertama, CTSS, dikembangkan di MIT
Usaha pengembangan ‘computer utility’ mesin yang dapat menunjang ratusan time
sharing user
Pengembangan komputer MINI (DEC-PDP-1 s/d PDP-11)
Ken Thompson mengembangkan versi satu pemakai (single user) dari MULTICS
(MULTIplex and Computing Services)
UNIX (Uniplexed Information and Computing Services)
8
The End
But
To be continue……
CONTOH KASUS :
Linux
MS Dos
Sistem operasi MS Dos berisi :
Ibmbio.com, yaitu disk dan character I/O System
IO.sys, yaitu disk dan file manager
MSDOS.sys, yaitu command processor, shellprimitif
Sistem operasi kompatibel dengan CP/M, dengan peningkatan alokasi disk, lebih cepat dan
mendukung shell script primitif disebut batch files.
MS Windows
Microsoft Windows 95 merupakan sistem operasi Windows yang terintegrasi dan lengkap
mulai dengan fungsi-fungsi dasar yang sekarang ada pada MS Windows, Windows dan Windows
for Workgroup.
Agar PC lebih mudah dipakai, diberikan shell baru. Plug and Play (PnP) yang terintegrasi
kedalam sistem operasi, termasuk wizard untuk memandu para pemakai melalui sistem operasi
dan memberikan interface pemakai yang konsisten untuk seluruh komponen sistem operasi dan
spasi nama. Kecepatan dan daya tambahan dari sistem operasi 32-bit modern dengan
preemptive multitasking, thread dan plaltform untuk generasi baru aplikasi 32-bit.
Windows 95 adalah sistem operasi lengkap yang tidak dibatasi oleh MS Dos dan punya
semua manfaat dari sistem operasi grafis yang lengkap yang ada pada dirinya. Dalam hal
konektivitas baik dalam LAN, WAN maupun nobile dial-up dibuat konektivitas ke sumber daya
yang bersifat remote semudah hubungan ke sumber daya lokal. Dan dimasukkan akses ke
informasi elektronik untuk surat elektronik dan layanan on-line. Dan juga Windows 95 dibuat
kompatibel dengan software dan hardware yang dimiliki pemakai pada saat ini.
Walaupun Microsoft mengeluarkan sistem operasi baru dengan format grafis dan ber-
arsitektur 32 bit, bukan berarti sistem operasi ini mutlak dipakai. Ini hanya sebagai sistem operasi
alternatif yang sudah ada, seperti UNIX, IBM OS2/Warp, Oracle, IBM AS/400, dan lain-lain.
9
PERTANYAAN :
1. Sebutkan dua fungsi utama sistem operasi ?
2. Apa yang dimaksud dengan multiprogramming ? Berikan dua alasan diadakannya
multiprogramming !
3. Apa yang dimaksud dengan spooling ? Apakah anda menganggap personal komputer
harus memiliki spooling sebagai standar dasar di masa yang akan datang?
4. Pada awal perkembangan komputer, setiap byte data yang dibaca atau yang ditulis
ditangani oleh CPU (tidak ada DMA-Direct Memory Access). Apa implikasinya struktur
seperti ini terhadap konsep multiprogramming.
5. Mengapa timesharing tidak tersebar luas pada generasi ke-2 komputer ?
6. Instruksi-instruksi manakah yang diperbolehkan dalam Mode Kernel :
a. Disable all interupts.
b. Read the time-of-day clock.
c. Set the time-of-day clock.
d. Change the memory map.
7. Sebutkan beberapa perbedaan sistem operasi pada personal komputer dengan sistem
operasi pada mainframe!
8. Bagaimana secara umum sistem operasi memberitahukan kepada direktori kerja apakah
path name untuk sebuah file adalah absolute atau relative?
9. Mengapa shell bukan bagian dari sistem operasi ?
10. Berikan sebuah contoh bagaimana mekanisme dan kebijaksanaan bisa terpisah dengan
baik dari pejadwalan. Buat sebuah mekanisme yang bisa mengijinkan sebuah parent
process untuk mengontrol kebijaksanaan penjadwalan children.
11. Model Client-Server tekenal didalam distributed systems. Dapatkah juga digunakan dalam
sistem komputer tunggal ?
12. Mengapa proses tabel membutuhkan sistem timesharing? Apakah hal ini juga dibutuhkan
dalam system personal computer yang pada suatu saat hanya terdapat satu proses yang
sedang bekerja dan mengambil alih mesin sampai proses tersebut selesai ?
Apa perbedaan mendasar diantara blok special file dan character special file.
10
BAB II
MANAJEMEN PROSES
2.1. Proses
Adalah program yang sedang di jalankan atau software yang sedang dilaksanakan termasuk sistem operasi
yang disusun menjadi sejumlah proses sequential.
Konsep dasar :
1. Multiprogramming
Melakukan proses satu persatu secara bergantian dalam waktu yang sangat cepat /
bersamaan (hardware level). Setiap proses mempunyai satu virtual CPU.
2. Pseudoparallelism
Melakukan lebih dari satu pekerjaan dalam waktu yang bersamaan / pseudoparallelism (user level).
Secara konsep setiap proses mempunyai 1 virtual CPU, tetapi pada kenyataannya adalah
multiprogramming. Maka akan lebih mudah menganggap kumpulan proses yang berjalan secara parallel.
A D
C
B
C B
A
A B C D
D
Waktu
(a) (b) (c)
Keterangan :
a. multiprogramming untuk 4 program di memori
b. model konseptual untuk 4 proses independent, sequential
c. hanya 1 program yang aktif dalam 1 waktu = pseudoparalel
Hirarki Proses
Pemanggilan proses oleh proses lain disebut parallel. Sistem operasi menyediakan apa yang dibutuhkan
oleh proses. Umumnya proses diciptakan dan dihilangkan selama operasi berlangsung.
11
Sistem operasi yang mendukung konsep proses, harus menyediakan suatu cara untuk
membuat (create) proses dan menghilangkan (destroy) proses.
2. Fork System Call
Mekanisme untuk membuat (create) proses yang identik dengan proses yang
memanggilnya.
Contoh :
Parent children
children children
children
Pada UNIX, parent dan child process running secara parallel.
Pada DOS, parent dan child process running secara bergantian (sequential). Contohnya :
MSDOS sebagai parent dan program aplikasi sebagai child.
Transisi Status
Running /
kerja
1 2
3
Blocked / Ready /
terhenti siap
4
1. Proses di blok untuk melayani input karena sumber daya yang diminta belum tersedia /
meminta layanan I/O sehingga menunggu kejadian muncul.
2. Penjadwalan mengambil proses lain.
3. Penjadwalan mengambil proses ini (baru).
4. Input telah tersedia.
Implementasi Proses :
Untuk mengimplementasikan model proses, sistem operasi menggunakan suatu
tabel / array yang disebut tabel proses dengan 1 entry per-proses.
Setiap entry berisi tentang : status proses, program counter, stack pointer,
alokasi memori, status file, informasi schedulling / penjadwalan informasi, dll dari status kerja
ke status siap.
12
Stack pointer Exit status File descriptiors
Process state Signal status Effective uid
Time when process started Process id Effective gid
CPU time used Parent process System call parameters
Children’s CPU time Process group Various flag bits
Time of next alarm Real uid
Message queue pointers Effective uid
Pending signal bits Real gid
Process id Effective gid
Various flag bits Bit maps for signals
Various flag bits
Interupsi : Kerja prosesor pada suatu proses terhenti oleh pensaklaran konteks.
Pensaklaran konteks : perubahan kegiatan prosesor dari proses ke proses yang terjadi
diantara proses sistem / proses aplikasi
Konteks : kegiatan prosesor terhadap sesuatu hal, berasal dari sistem operasi, sistem
bahasa dan sistem utilitas.
Blok kendali proses : suatu bagian memori untuk mencatat keadaan proses, yang terbagi
atas wilayah dimana setiap wilayah untuk mencatat informasi yang berbeda.
13
b. Penata interupsi merekam semua informasi proses ke dalam blok kendali
proses.
c. Penata interupsi mengidentifikasi jenis dan asal interupsi.
d. Penata interupsi mengambil tindakan sesuai dengan yang dimaksud interupsi.
e. Penata interupsi mempersiapkan segala sesuatu untuk pelanjutan proses
yang diinterupsi.
2. Penata keliru / error handler
yaitu interupsi karena kekeliruan pada pengolahan proses dan bagian pada sistem operasi
yang menata kegiatan akibat kekeliruan adalah penata keliru.
a. Pemulihan, komputer telah dilengkapi dengan sandi penemuan dan
pemulihan kekeliruan, contohnya telah dilengkapi dengan sandi Hamming sehingga
ketika menemukan kekeliruan sandi akan mengoreksi kekeliruan itu, proses pulih ke
bentuk semula sebelum terjadi kekeliruan.
b. Pengulangan, mengatur agar proses yang membangkitkan interupsi keliru
dikerjakan ulang, jika kekeliruan dapat diatasi maka proses akan berlangsung seperti
biasa, jika tidak teratasi maka interupsi akan menempuh tindak lanjut keluar dari
proses.
c. Keluar dari proses, penata keliru menyiapkan tampilan berita keliru dari
monitor, setelah itu prosesor keluar dari proses, ini adalah tindakan terakhir jika tidak
dapat menolong proses yang keliru tersebut.
Maksud interupsi?
Interupsi
Keterangan :
1. Rampung
Program selesai dilaksanakan oleh prosesor sehingga penyerahan kendali proses ke
pekerjaan baru / perintah baru karena proses yang dikerjakan oleh prosesor telah selesai.
2. Keliru
Jika menemukan kekeliruan akan ditampilkan, kemudian kendali prosesor diserahkan pada
perintah berikutnya.
3. Permintaan bukan dari alat I/O
Setelah interupsi selesai dilayani, kendali prosesor dikembalikan pada proses semula,
misalnya interupsi berkala.
4. Permintaan dari alat I/O
14
Setelah interupsi selesai dilayani, kendali prosesor dikembalikan pada proses sebelumnya,
tetapi ada kalanya prosesor ikut campur dalam kerja alat I/O sehingga pengembalian kendali
proses semula, tidak berlangsung segera / tunggu.
5. Rampung dari alat I/O
Setelah interupsi selesai dilayani dan tanda rampung dicatat, kendali prosesor dikembalikan
ke proses semula. Biasanya untuk alat I/O yang tidak diikut campuri oleh prosesor.
Catt:
1 & 2 tidak mengembalikan prosesor ke proses yang terinterupsi, sedangkan
3,4,5 mengembalikan prosesor ke proses yang terinterupsi.
Komunikasi
Proses Proses
Race Condition :
Suatu kondisi dimana dua atau lebih proses mengakses shared memory / data pada saat yang
bersamaan dan hasil akhirnya tidak sesuai dengan yang dikehendaki
Contoh rase condition :
Print spooler
Contoh : berupa kumpulan data-data yang akan di cetak.
Spooler directory
Mengerjakan proses lain
4 Abc Out = 4
Proses A 5 Program c
6 Program n
7 In = 7
8
Proses B Mengerjakan proses lain
Proses A cek slot input yang kosong (7) untuk mencetak suatu data dan stop
15
Interupsi ………
Proses B meletakkan data yang akan di print pada slot kosong tersebut (7) dan stop (slot
kosong berikutnya adalah 7+1=8)
: prosesor mengerjakan proses lain
Proses A dilanjutkan meletakkan data yang akan di print di slot (7), sehingga meng-
overwrite data proses B yang diletakkan di slot (7)
Maka proses B tidak akan dilaksanakan, dan tidak akan terdeteksi terjadi kesalahan.
Untuk menghindari race condition maka harus diatur agar 2 proses yang mempunyai critical
section yang sama tidak memasuki critical section pada saat yang bersamaan.
16
}
4. Peterson’s Solution
Proses tidak akan diteruskan sampai while terpenuhi, bila interested[other] = TRUE, maka
proses akan menunggu sampai FALSE.
Kelemahannya : jika proses memanggil enter_region-nya secara hampir bersamaan, yang
disimpan di turn adalah data yang ditulis terakhir.
Contohnya :
# include “prototype.h”
# define FALSE 0
# define TRUE 1
# define N 2 /*banyaknya proses*/
int turn;
int interested [N]; /*nilai awal di-set = 0 (false)*/
void enter_region(int process) /*proses = 1 atau 0*/
{
int other; /*jumlah proses lainnya*/
other = 1 – process; /*proses lainnya*/
interested[process] = TRUE; /*menunjukkan tertarik*/
turn = process; /*set flag*/
while (turn==process && interested[other] == TRUE)
}
Leave_region :
Mov flag, #0 |simpan 0 ke flag
Ret |return ke caller
Proses harus memanggil ini pada saat yang tepat.
Kelemahan utama dengan busy waiting adalah menyita banyak waktu CPU dan problem
inversi prioritas.
6. Sleep and Wake Up
Mekanismenya : proses akan di blok / tidur (sleep) apabila tidak bisa memasuki
critical_section-nya dan akan dibangunkan (wake up) / ready apabila resource yang
diperlukan telah tersedia.
SLEEP : sistem call membuat proses yang memanggil di blok (blocked)
WAKE UP : sistem call yang membuat proses yang memanggil menjasi ready
Contoh :
Procedure-Consumer Problem (bounded buffer)
17
Beberapa proses share buffer dengan ukuran tetap
Jika buffer penuh producer sleep
Jika buffer kosong consumer sleep
Jika buffer mulai kosong producer wake up
Jika buffer terisi consumer wake up
Masih ada kemungkinan terjadi race condition
7. Semaphore (Dijkstra, 1965)
Meng-cek, mengubah dan sleep 1 instruksi yang
Mengubah dan wake up tdk dpt dipisahkan
Instruksi tersebut sangat berguna untuk sinkronisasi.
Dapat diimplementasikan untuk memecahkan producer-consumer problem.
Mekanisme-nya menggunakan :
- variabel integer untuk menghitung jumlah wake up yang disimpan / tertunda
- bernilai 0 bila tidak ada wake up yang disimpan, bernilai positif bila ada wake up yang
tertunda
2. UP(S) :
S := S + 1;
If S <= 0 then wakeup(S)
End;
Operasi DOWN dan UP merupakan operasi yang bersifat Atomic (Atomic Action).
8. Event Counters (Reed and Kanodia, 1979)
Tiga operasi terhadap event counter (E) :
1. Read (E) : return current value of E
2. Advance (E) : Atomically increment E by 1
3. Wait until E has a value of v or more
9. Monitor
- Higher level synchronization primitive.
- Kumpulan prosedur, variabel dan struktur data yang dipaket menjadi satu modul atau
paket.
- Proses bisa memanggil prosedur dalam monitor, tetapi tidak dapat mengakses langsung
struktur data internal dari monitor.
10. Message Passing
Menggunakan 2 primitive :
1. send (destination, &message)
2. receive (source, &message)
Beberapa isu pada message passing system : message lost; acknowledgement; domains;
authentication; performance
18
- Banyak proses berkompetisi untuk membaca dan menulis. Contohnya : airline
reservation.
- Beberapa proses boleh membaca pada saat yang sama
- Bila suatu proses sedang menulis, tidak boleh ada proses lain yang mengakses database
- Proses membaca mempunyai prioritas yang lebih tinggi daripada proses menulis
Gambar (a) :
- mempunyai : program counter, stack, register set, address space sendiri
- independent satu sama lain dan berkomunikasi lewat IPC yang disediakan sistem, seperti :
semaphore, monitor, atau message
Gambar (b) :
- multiple threads of control (THREAD atau lightweight Process). Thread mirip seperti little-mini
process. Setiap thread berjalan sekuensial, yang mempunyai program counter dan stack
sendiri. Thread juga men-share CPU seperti proses.
- Thread dalam satu proses menempati address space yang sama, tidak ada proteksi
penggunaan memori antar thread karena proses dimiliki oleh satu user.
- Thread dapat berada pada empat state yang berbeda, seperti process (running, blocked,
ready, terminated)
Terhenti
3. Status proses dengan status siap
3.1. Istilah-istilah
Pekerjaan / Job
User menyerahkan pekerjaan mereka pada komputer. Ada pekerjaan yang panjang, sedang dan pendek.
Untuk dapat diolah oleh komputer harus dianalisis dahulu untuk mengetahui bagaimana sebaiknya
pekerjaan itu dilakukan.
Terobosan / Troughput
Pekerjaan dalam komputer dilaksanakan langkah demi langkah, sehingga dapat dikatakan bahwa
troughput adalah banyaknya pekerjaan yang dapat diselesaikan oleh sistem komputer dalam satu
satuan waktu.
Tugas / Task
Program yang terdiri dari banyak bagian program dan bagian program yang dikerjakan merupakan
tugas bagi sistem operasi.
- Tugas yang sedang dilaksanakan, adalah tugas yang menemukan semua sumber daya
yang diperlukannya, termasuk prosesor.
- Tugas yang siap dilaksanakan, adalah tugas yang menemukan semua sumber daya
yang diperlukannya, kecuali prosesor.
- Tugas yang belum dilaksanakan, adalah tugas yang belum menemukan sumber daya
yang diperlukannya.
Proses / Process
Tugas yang telah dijadwalkan untuk menemukan prosesor / tugas yang telah diterima oleh
penjadwalan.
Tugas Penjadwalan Proses
Prosesor
21
Gambar suatu contoh prosesor
Keterangan :
GK = galur kendali / control bus
GD = galur data / data bus, tempat informasi data berlalu lintas antar register
GA = galur alamat / address bus, tempat informasi alamat memori berlalu lintas antar register karena
setiap kali hanya ada 1 informasi dalam galur ini, maka lalu lintas diatur oleh tanda waktu dari kunci
waktu. Tanda waktu dibentuk oleh basis waktu
A = akumulator, register serba guna yang dapat menerima berbagai informasi
SLA = satuan logika dan aritmatika / ALU, tempat pengolahan, contohnya untuk menghitung 3+4=?,
maka data 3 diletakkan di register A dan data di register B. proses penjumlahan terjadi di SLA / ALU,
hasil = 7 diletakkan kembali di register A
B = register, register yang menerima informasi yang akan diolah bersama oleh isi register A
PT = pencacah program / program counter, program terletak dalam memori kerja pada alamat
memori tertentu. PT menerima alamat memori awal saat diolah oleh prosesor dan juga menyaring dan
menentukan alamat memori mana saja yang isinya akan dibawa ke prosesor dan hanya alamat yang
sesuai dengan letak program yang sedang diolah yang diperbolehkan PT masuk ke prosesor. PT
mencacah dirinya sebesar 1 cacahan dan dengan cara yang sama akan melayani alamat berikutnya
sampai alamat terakhir.
RI = register instruksi, membawa dan menerima informasi dari memori kerja dan diperiksa.
SK = satuan kendali / control unit, menerima informasi instruksi program dan sesuai dengan isi
instruksi SK mengendalikan kegiatan dalam prosesor.
RA = register alamat / address register, mencatat alamat memori yang isinya akan dicapai alamat itu
di memori kerja. Jika pembacaan data dari memori kerja, data / isi dari memori kerja dibaca dan
disalin ke RD, tetapi jika pada penulisan data ke memori kerja, maka isi RD disalin ke alamat memori
kerja.
RD = register data.
RD dan RA bekerja sama dalam kegiatan pengambilan dan pengiriman data dari dan ke memori kerja.
1. Siklus Jemput
a. PT berisi alamat awal program pada memori kerja yang disesuaikan dengan isinya di memori kerja
b. RA = PT, alamat memori PT diteruskan ke RA
c. RA RD, isi program diambil dari memori kerja dan diletakkan di RD
d. RI = RD, dari RD program diteruskan ke RI
e. PT= PT + 1, pencacah untuk melanjutkan siklus berikutnya
f. Go to point b
2. Siklus Kerja
a. RI = SK, isi program di RI akan diteruskan ke SK, RI berisi instruksi untuk melaksanakan sesuatu
b. SK seluruh kegiatan di dalam prosesor dikendalikan sehingga kerja yang dimaksud oleh bagian
program itu dirampungkan.
22
Proses Serentak / Concurrent Process :
Yaitu prosesor menghadapi banyak tugas dan proses.
a. Multiprogramming, sistem komputer lebih dari 1 program sekaligus dalam pelaksanaan proses.
b. Multitasking, banyak bagian program yang dipersiapkan untuk diolah oleh prosesor namun belum
sempat dijadwalkan untuk memperoleh prosesor.
c. Multiprocessing, sejumlah tugas yang telah dijadwalkan untuk menggunakan prosesor.
d. Multiplexing, menggunakan pertukaran kendali dalam selang waktu terpisah-pisah.
e. Time sharing / rentang waktu, secara bersamaan sejumlah pemakai dapat menggunakan 1 sistem
komputer, sehingga setiap pemakai merasa bahwa seluruh sistem komputer seolah-olah untuk dirinya.
Proses Berurutan :
Sejumlah proses berlangsung secara berselingan dan tidak ada diantara mereka yang bertumpang tindih
waktu, sebelum 1 proses selesai, proses berikutnya belum bekerja.
A
B
C
Proses Paralel :
- pada proses tunggal, proses serentak bukan proses paralel karena proses tersebut di gali 1 demi 1,
sepenggal demi sepenggal.
- Pada proses jamak, proses dapat dilaksanakan secara serempak diantara banyak prosesor sehingga
disebut proses paralel
A
B
C
Jangka penjadwalan
Semua antrian dan penantian (contohnya yang dikeluarkan karena preempsi.
23
a. Penjadwalan jangka pendek / short term scheduling / low level scheduling, yaitu
mengurus masuknya antrian siap ke prosesor serta antrian siap ke alat peripheral I/O,
yang mengurus prioritas dan preempsi.
b. Penjadwalan jangka media / medium term scheduling / intermediate level scheduling,
yaitu mengurus terhadap proses yang dikeluarkan dari prosesor yang belum rampung
dikerjakan dan melanjutkan pekerjaan proses tersebut di prosesor.
c. Penjadwalan jangka panjang / long term scheduling / high level scheduling, yaitu
mengurus masuknya pekerjaan baru berupa penentuan pekerjaan baru mana yang boleh
diterima dan tugas disini diubah menjadi proses.
Tujuan penjadwalan / kriteria baik tidaknya suatu algoritma penjadwalan :
a. Fairness / pelayanan yang adil untuk semua pekerjaan
b. Throughput / memaksimumkan throughput
c. Efficiency / memaksimumkan pemakaian prosesor
d. Overhead / meminimumkan waktu tunggu
e. Pemakaian sumber daya seimbang
f. Tidak terjadi penundaan waktu tak hingga
g. Kegiatan sumber daya dapat dideteksi terlebih dahulu
Penjadwalan Prosesor
Penjadwalan satu tingkat
a. Pertama Tiba Pertama Dilayani (PTPD)
b. Proses Terpendek Dipertamakan (PTD)
c. Proses Terpendek Dipertamakan Preempsi (PTDP)
d. Rasio Penalti Tertinggi Dipertamakan (RPTD)
e. Putar Gelang (PG)
f. Putar Gelang Prioritas Berubah (PGPB)
Penjadwalan multi tingkat
a. Antrian multi tingkat
b. Antrian multi tingkat berbalikan
24
Nama Proses Saat Tiba Lama Proses Saat Mulai Saat Rampung Lama Tanggap
A 0 9 0 9 9
B 0 30 9 39 39
C 0 4 39 43 43
D 0 8 43 51 51
E 0 12 51 63 63
Ti 205
serentak Tr 41
Tr cukup besar, jika dibandingkan dengan lama tanggap dari masing-masing proses.
Nama Proses Saat Tiba Lama Proses Saat Mulai Saat Rampung Lama Tanggap
A 0 4 0 4 4
B 1 7 4 11 10
C 3 3 11 14 11
D 7 8 14 22 15
Ti 40
Tr 10
Lama tanggap saat rampung karena perbedaan saat tiba.
Nama Proses Saat Tiba Lama Proses Saat Mulai Saat Rampung Lama Tanggap
A 0 11
B 0 8
C 0 10
D 0 3
E 0 5
Nama Proses Saat Tiba Lama Proses Saat Mulai Saat Rampung Lama Tanggap
D 0 3 0 3 3
E 0 5 3 8 8
B 0 8 8 16 16
C 0 10 16 26 26
A 0 11 26 37 37
Ti 90
serentak prioritas Tr 18
Nama Proses Saat Tiba Lama Proses Saat Mulai Saat Rampung Lama Tanggap
A 0 5
B 3 7
C 5 2
D 6 4
Disusun urutan proses berdasarkan prioritasnya, yaitu CDAB, tetapi pada saat tiba = 0, proses terpendek C
belum datang, maka mengerjakan proses A dahulu, setelah selesai pada saat 5, proses C sudah datang,
sehingga C dikerjakan dan seterusnya seperti :
A B C D
25
Saat 0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18
Proses A A A A A C C D D D D B B B B B B B
A B C D
Saat 0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23
Proses A A B B B D D D D A A A A A C C C C C C C C C
26
Pada saat 2, B datang, B=3, sisa A=5, B<A maka A dikeluarkan dari proses, B dikerjakan
Pada saat 4, C datang, C=9, sisa A=5, sisa B=1, B<A<C, maka B dikerjakan
Pada saat 5, D datang, D=4, sisa A=5, sisa C=9, D<A<C, maka D dikerjakan sampai selesai karena
tidak ada proses yang datang lagi
A<C maka A dikerjakan
C dikerjakan
Selesai
Karena preempsi, PTDP lebih baik dari PTD dalam hal kecilnya Tr, tetapi untuk proses panjang lebih lama
dibandingkan PTD.
27
C 2 5
D 3 8
E 4 4
A B C D E
Saat 0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23
Proses A A A A B B C C C C C E E E E D D D D D D D D
Contoh dengan Q = 3
Nama Saat Lama Saat Saat Rampung Lama Tanggap
Proses Tiba Proses Mulai
A 0 7
B 0 5
C 0 8
D 0 2
E 0 6
28
0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27
ros A A A B B B C C C D D E E E A A A B B C C C E E E A C C
e
s
Nama Proses Saat Lama Saat Mulai Saat Rampung Lama Tanggap
Tiba Proses
A 0 7 0 26 26
C 0 5 3 19 19
B 0 8 6 28 28
E 0 2 9 11 11
D 0 6 11 25 25
= 28 Ti 109
Tr 21.8
Dengan Q = 2
Nama Saat Lama Saat Saat Rampung Lama Tanggap
Proses Tiba Proses Mulai
A 0 5
B 1 3
C 5 7
D 6 1
E 7 6
A B C D E
Saat 0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22
Proses A A B B A A B C C D E E A C C E E C C E E C
Pada saat 0, A dikerjakan 2x, saat 2, B sudah datang, dikerjakan 2x, saat 4, belum ada yang datang maka
kerjakan A dan B lagi. Kemudian kerjakan C, D, E yang sudah datang, tetapi di antrian masih ada A, A
dikerjakan kemudian E, sisa C, sisa E dan sisa C sampai selesai.
Secara merata, penjadwalan putar gelang memperlambat proses yang tiba dan secara merata pula semua
proses dilayani oleh prosesor, sehingga biasanya digunakan pada proses interaktif jika semua proses
menuntut dikerjakan segera.
29
2. Penjadwalan dengan preempsi dengan prioritas berubah-ubah (PGPB = putar gelang prioritas
berubah-ubah) dimana prioritas tergantung pada proses lama dan proses baru, maka jika : a =
koefisien untuk proses lama dan b = koefisien untuk proses baru,
b/a = 1 prioritas sama
b/a = 0 prioritas lama
b/a < 1 prioritas baru < lama
b/a > 1 prioritas baru > lama
Kesimpulan :
Tanpa Dengan
Prioritas Prioritas
Tanpa PTPD PTD / RPTD
Preempsi
Dengan PG PTDP
Preempsi
Penjadwalan Multitingkat
Proses dibedakan tingkatnya berdasarkan kepentingannya.
Penjadwalan pada tiap tingkat dapat bermacam-macam.
Pada antrian multi tingkat berbalikan, tingkat satu dan lainnya saling berhubungan.
Tingkat 1 P Rampung
Preempsi
Tingkat 2 P Rampung
Preempsi
Tingkat 3 P Rampung
30
Preempsi
Tingkat n Rampung
Metode Simulasi
Metode ini berdasarkan sejumlah variabel yang disimulasikan sistem komputer yang
digunakan, memerlukan data masukan melalui bilangan acak.
Keuntungan : jika ditangani dengan baik maka metode ini cukup baik.
Kelemahan : mahal, karena banyak menggunakan jam prosesor dan ruang memori.
Metode Implementasi
Metode ini bekerja dengan cara mengamati hasil dari implementasi setiap penjadwalan /
menerapkan berbagai penjadwalan pada pekerjaan yang sesungguhnya.
Keuntungan : cukup cermat.
Kelemahan : perubahan macam penjadwalan mengganggu pemakai komputer dan perubahan
jenis pekerjaan mengganggu penjadwalan.
31
BAB IV
MANAJEMEN MEMORI
Salah satu bagian sistem operasi yang mempengaruhi dalam menentukan proses mana yang
diletakkan pada antrian.
Tanda pengenal untuk pencarian letak memori adalah alamat, lintasan / trek, sector pada suatu
disk.
Jenis Memori
- Memori Kerja
Tugas utamanya adalah menampung pekerjaan itu pada saat sebelum dan sesudah
pekerjaan itu dilaksanakan oleh prosesor dan menampung berbagai hal yang diperlukan
prosesor, contohnya system operasi, system bahasa, catatan.
Contoh memori kerja untuk memori tetap adalah :
ROM : Read Only Memory memori baca saja
PROM : Programmable ROM dapat diprogram tetapi tidak dapat dihapus
lagi
EPROM : Electrically PROM dapat diisi melalui listrik, dan dapat dihapus
EEPROM : Erasable EPROM dapat diisi dan dihapus dengan listrik, maka
ciri utamanya adalah isi tetap ada / tidak mudah dihapus meskipun
daya listrik computer terputus.
Contoh memori kerja untuk memori bebas adalah :
RAM : Random Access Memory dapat diisi dan dapat dibaca, maka ciri
utamanya adalah mengenal asas pemuktahiran yaitu dapat diisi
dengan informasi terbaru dan isi akan hilang jika catu daya padam.
Memori kerja terdiri dari sel memori yang berisi 1 kata sandi, misalnya sistem 8 bit
menggunakan 8 bit kata sandi, sistem 1 kbyte menggunakan 1024 byte kata sandi.
Cache memory
Memori berkapasitas kecil tetapi berkecepatan tinggi, yang dipasang diantara prosesor dan
memori utama. Instruksi dan data yang sering diakses oleh prosesor ditempatkan dalam
chace sehingga dapat lebih cepat diakses oleh prosesor. Hanya bila data / instruksi yang
diperlukan tidak tersedia dalam chacce barulah prosesor mencarinya dalam memori utama.
Pindah masuk
Memori Memori
dukung kerja
Pindah keluar
1 pindahan = 1 blok, makin kecil ukuran memori kerja, makin sering terjadi pindahan.
32
Alamat Memori
– Alamat memori mutlak (alamat fisik)
Sel memori pada memori kerja adalah sumber daya berbentuk fisik, sehingga untuk
mencapai sel memori ini digunakan kata pengenal. Maka disebutlah alamat fisik dan karena
nomor alamat fisik ini bersifat mutlak (nomor setiap sel adalah tetap), maka disebut juga
alamat mutlak.
– Alamat memori relatif (alamat logika)
Alamat memori yang digunakan oleh program / data berurutan / berjulat. Jika kita
menggunakan alamat 1, maka kitapun menggunakan alamat 2,3, … dan untuk 1 informasi
jika alamat awalnya 0 dan alamat lainnya relatif terhadap alamat awal 0 ini, maka dinamakan
alamat relatif. Dan alamat tersebut adalah logika dari untaian alamat yang menyimpan
informasi maka dikenal alamat memori logika.
Contoh : alamat awal relatif 0, alamat awal fisik 14726, maka selisihnya = relokasinya =
14726-0 = 14726.
Isi Memori
1. Sistem bahasa pemograman
Translator tergantung pada program yang digunakakan dan memiliki run time subroutine
yang mengatur program dari bahasa pemogramannya untuk melakukan translator.
2. Sistem utilitas
Merupakan bagian dari sistem operasi komputer, biasanya berbentuk berkas dalam memori
arsif.
3. Inti sistem operasi
Terdiri dari inti, kernel, nucleus adalah system operasi yang menetapkan dalam memori
kerja. Contohnya adalah pada saat “boot / booting / bootstrap”.
4. Sistem operasi
Program sistem operasi diletakkan dalam memori, maka banyak kegiatan yang juga terletak
dalam memori.
5. Pengendali alat
Terdiri dari penggerak alat / device controller dan pelaksana / device driver yang berbentuk
program dan menempati ruang memori tertentu.
6. Berkas pemakai
Terdiri dari berkas program dan berkas data, yang ditampung dalam memori dan pada
waktunya diteruskan ke prosesor untuk diolah.
33
jika 2 macam alamat memori dibuat sama antara yang tercantum dalam program dan
yang ditempati dalam memori kerja. Contohnya pada program, alamat awal 5235 dan
subroutine = 5468 diletakkan pada alamat fisik yang sama.
b. pemuatan relokasi
alamat program tidak selalu sama dengan alamat fisik.
Contohnya alamat pangkal / fisik = 14200, alamat relative program 327, maka alamat
mutlaknya = 14200 + 327 = 14527
R(=p jika A=0)
X Y
Keterangan:
R : relokasi P : alamat pangkal / fisik
A : alamat awal / logika Y : alamat fisik dari X
X : alamat suatu informasi tertentu (logika)
Maka : R = P – A Y=X+R=X+P–A
Jika informasi dengan alamat relative = 0, maka A = 0.
Contoh : suatu informasi beralamat awal 2100 dan informasi ini dimuat relokasikan ke
alamat pangkal 23600. Hitung besar relokasi dan hitung pula pada memori kerja dimana
bagian informasi yang beralamat 2453 terletak ?
Maka : A = 210 P = 23600 X = 2453
R = P – A = 23600-2100 = 21500
Y = X + R = 2453+21500 = 23953
c. pemuatan sambung
penyambungan antara informasi yang satu dengan yang lain terjadi pada saat pemuatan.
Sehingga membutuhkan informasi sebelum melakukan pemuatan sambung tersebut,
contohnya informasi alamat akhir dari bagian informasi yang akan disambung tersebut.
d. pemuatan dinamik / tumpang / overlay
terjadi pada program tunggal ketika ukuran program melampaui ukuran ruang memori
kerja. Dan agar dapat tertampung maka dibagi / dipenggal menjadi beberapa segmen.
Sambung / linker akan menyatukan 1 informasi dengan informasi lainnya.
2. Lama muat, ditentukan oleh kecepatan baca pada memori dukung yang berbentuk disk.
34
Pemenggalan memori kerja
Contohnya alamat pagar untuk pemenggalan memori kerja untuk wilayah program monitor,
program dan data user.
Pagar pada memori kerja
Wilayah memori telah kita penggal menjadi 2 bagian yaitu di atas alamat pagar dan di bawah
alamat pagar yang letaknya terpisah.
Pemenggalan memori kerja
Memenggal memori ke dalam banyak penggalan dan setiap penggalan dibatasi 2 pagar,
yaitu batas bawah dan batas atas.
6
Batas Bawah BB6 Batas Atas BA5
5
BA4 Batas Bawah BB5
BB4 4 BA3
BA2 3 BB3
BB2 2 BA1
1 BB1
unused
Untuk setiap penggalan memori kerja, memerlukan 2 register yaitu untuk mencatat batas
atas dan untuk mencatat batas bawah. Dan setiap alamat memerlukan dua kali perbandingan
untuk mencapai penggalan.
Relokasi ke penggalan memori kerja
Dapat memilih penggalan yang menjadi tujuan relokasi dan harus diperiksa panjang
informasi dan ukuran penggalan memorinya.
Karena jika masuk pada penggalan yang kecil, informasi tidak dapat tertampung.
Contoh : Jika alamat awalnya = 0, alamat pangkal P maka A = 0 dan P = BB. Sehingga R =
P – A = BB
Jika alamat X tidak melampaui batas (BA-BB) maka pemuatan secara relokasi dapat
dilaksanakan yaitu dengan menambahkan alamat pangkal (BB) dari penggalan memori kerja.
35
Program mengambil kendali seluruh mesin
Contoh : IBM PC menggunakan cara ketiga di mana device driver ROM ditempatkan pada blok
8K tertinggi dari address space 1M. Program pada ROM disebut BIOS (Basic Input Output
System).
di RAM
di ROM di RAM
Program
Program Pemakai
Program
Pemakai di RAM
Pemakai
Device
di RAM Driver
di RAM
di ROMD
= RAM Driver
di ROM
= ROM
36 Partisi 4
Partisi 5
Sistem Operasi
75 Kbyte
100 Kbyte
200 Kbyte
150 Kbyte
Satu Antrian Untuk Tiap Partisi (banyak antrian Untuk Seluruh Partisi)
Keuntungan : Meminimalkan pemborosan memori
Kelemahan : Dapat terjadi antrian panjang di suatu partisi sementara antrian partisi - partisi
lain kosong
Par 50 Kbyte
tisi
1
75 Kbyte
Partisi 2
100 Kbyte
Partisi 3
200 Kbyte
Partisi
SSSistem 5
Operasi
100 Kbyte
Proses 2
Proses 4
Bebas
Prose
Proses 4 s6
37
Bebas Bebas
Lubang-lubang Memori dan Pemadatan Memori
A B C
0 7 15 23
0 1 2 3 4 5 6 7
1 1 1 1 1 0 0 0
1 1 1 1 1 1 1 1
1 1 0 0 1 1 1 1
... ... ... ... ... ... ... ...
A B C
0 7 15 23
P 0 5 H 5 3 P 8 6 P 14 4
H 18 2 P 20 3
38
Di 18
Pengelolaan Pemakaian dengan Linked List
5K 3K 1K 2K Urutan
Pemenggalan
4K Memori
Setiap
3K Ukuran
2K
6K
1024
A 128 256 512
A B 64 256 512
39
A B 64 C 128 512
128 B 64 C 128 512
128 D C 128 512
128 D C 128 512
256 C 128 512
1024
Dari berbagai cara alokasi tersebut di atas, sebuah hole yg ditempati proses akan terbagi
menjadi bagian yang dipakai proses dan memori yang tidak terpakai (fragmen).
Timbulnya memori yang tidak terpakai disebut fragmentasi.
1. Fragmentasi internal
Suatu informasi menempati penggalan yang lebih besar ukurannya akan menyebabkan
adanya sisa dalam penggalan memori tersebut. Sisa tersebut dinamakan fragmentasi
internal.
2. Fragmentasi eksternal
Penggalan memori bebas yang ukurannya terlalu kecil untuk dapat menampung penggalan
informasi yang akan dimuat ke penggalan memori itu. Misalnya informasi 5K akan
menempati penggalan memori yang belum terisi yaitu 1K dan 2K tetapi karena ukurannya
tidak sesuai maka pemuatan informasi ke penggalan memori tidak dapat dilaksanakan, maka
penggalan memori 1K dan 2K(=3K) menjadi fragmentasi eksternal.
Contoh :
5K 2K
Terisi 2K
2K
3K
Internal 1K
eksternal 1K
2k
40
BAB V
VIRTUAL MEMORY
Overlay :
Program dipecah menjadi bagian-bagian yang dapat dimuat memori, jika memori terlalu kecil
untuk menampung seluruhnya sekaligus. Overlay disimpan pada disk dan di-keluar-
masukkan dari dan ke memori oleh sistem operasi. Pembagian dilakukan oleh programmer.
Sistem Operasi
Bagian Kode dan data
pemakai yang harus selalu
tinggal di memori utama
selama eksekusi program
1. Paging
Sistem paging mengimplementasikan ruang alamat besar pada memori kecil menggunakan index
register, base register, segment register, dll.
41
CPU
card
CPU
mengirim
CC DISK
DISK
alamat
PP MEMORI
MEMORI CONTROL
CONTROL
virtual
UU LER
ke MMU
M LER
M
MM
UU
BUS
MMU mengirim alamat fisik ke memori
Posisi dan fungsi MMU
Alamat Memori
Mem Nyata
2 ori 0–4 K
0–4 K
1 4K–8 K
4K–8 K
8 K – 12 K 6 Virtu 8 K – 12 K
0 12 K – 16 K
12 K – 16 K
16 K – 20 K 4 al 16 K – 20 K
3 20 K – 24 K
20 K – 24 K
24 K – 28 K X 24 K – 28 K
28 K – 32 K X 28 K – 32 K
32 K – 36 K X
36 K – 40 K 5
40 K – 44 K X Page
7
44 K – 48 K
48 K – 52 K X fra
52 K – 56 K
56 K – 60 K
X
X
me
60 K – 64 K X Virtual
page
Relasi Antara Alamat Virtual dan Alamat Fisik
2. Tabel Page
Alamat virtual dibagi menjadi dua bagian:
- Nomer Page (bit-bit awal)
- Offset (bit-bit akhir)
Secara metematis: tabel page merupakan fungsi dgn nomer page sebagai argumen dan nomer
frame sebagai hasil.
42
0 0 1 0 0 0 0 0 0 0 0 0 0 1 0 0
43
10 000 0
11 111 1
12 000 0
13 000 0
14 000 0
15 000 0
0 0 1 0 0 0 0 0 0 0 0 0 0 1 0 0
Cara Kerja Pemetaan oleh MMU
Tabel Page
3. Memori Asosiatif
Tabel Page biasanya diletakkan di memori, dengan demikian diperlukan dua kali referensi ke
memori : sekali untuk mencari page, dan sekali untuk mencari data yang akan diproses.
Solusi:
Komputer dilengkapi dengan komponen hardware kecil untuk pemetaan alamat virtual ke
alamat fisik tanpa menelusuri seluruh tabel page.
Komponen ini disebut memori asosiatif atau translation lookaside buffer, yang biasanya
berada di dalam MMU, dan berisi beberapa entri.
Valid entry
No. page Modified Protection No. frame
1 140 1 RW 31
1 20 0 R X 38
1 130 1 RW 29
1 129 1 RW 62
1 19 0 R X 50
44
1 21 0 R X 45
1 860 1 RW 14
1 861 1 RW 75
Bagian referensi memori yang dapat dipenuhi dari memori asosiatif disebbut hit ratio. Makin
tinggi hit ratio, makin baik performance manajemen memori khususnya, dan komputer umumnya.
45
Page Tertua 0 1 2 3 0 0 0 1 4 4
Fault F F F F F F F F 9 Fault
(a)
String Pengacuan 0 1 2 3 0 1 4 0 1 2 3 4
Page Termuda 0 1 2 3 3 3 4 0 1 2 3 4
0 1 2 2 2 3 4 0 1 2 3
0 1 1 1 2 3 4 0 1 2
Page Tertua 0 0 0 1 2 3 4 0 1
Fault F F F F F F F F 10 Fault
(b)
Waktu load
0 3 7 8 12 14 15 18
A B C D E F G H
Waktu load
3 7 8 12 14 15 18 20
B C D E F G H A
Pada algoritma ini, daftar page bisa juga dibuat berbentuk jam (clock page replacement
algorithm)
46
6. Algoritma penggantian page LRU (Least Recently Used):
Yang dikeluarkan ialah page yang sudah tidak terpakai dalam waktu paling lama.
Algoritma Penggantian Page LRU
String Pengacuan 2 3 2 1 5 2 4 5 3 2 5 2
2 2 2 2 2 2 4 4 3 3 3 3
3 3 3 5 5 5 5 5 5 5 5
1 1 1 4 4 4 2 2 2
Fault F F F F F F F 7 Fault
47
(a) (b) (c)
Penggantian page global vs. lokal. (a) Konfigurasi awal.
(b) Penggantian page lokal. (c) Penggantian page global.
3. Ukuran Page
o Ukuran page merupakan salah satu parameter yang ditentukan oleh perancang sistem
operasi.
o Penentuan ukuran page yang optimum harus menyeimbangkan beberapa faktor.
o Rata-rata, page terakhir hanya akan terisi setengah (fragmentasi internal), berarti page
sebaiknya kecil. Tetapi page yang kecil akan menghasilkan tabel page yang panjang.
s (byte) = ukuran proses rata-rata
p (byte) = ukuran page
e (byte) = ukuran setiap page entry
s/p = perkiraan jumlah page yang dibutuhkan per-proses
se/p (byte) = ruang untuk tabel page
p/2 = memori yang terbuang karena fragmentasi
overhead = memori yang terpakai untuk tabel page dan fragmen internal.
overhead = se/p + p/2
Ukuran tabel page besar jika ukuran page kecil. Fragmen internal besar jika ukuranb page
besar. Optimum harus ada di antaranya. Dengan mengambil penurunan pertama terhadap p
dan menyemakan dengan nol: -se/p2 + ½ = 0
Dari persamaan ini, ukuran page optimum adalah: p = (2se)
Sebagian besar komputer komersial menggunakan ukuran page antara 512 byte – 8K.
4. Isu Implementasi
Instruction backup
Instruksi yang menyebabkan referensi ke page yang belum ada di memori (menyebabkan
page fault) harus diulang ketika page tersebut telah tersedia. Beberapa sistem operasi
meng-copy setiap instruksi sebelum dilaksanakan sehingga hal ini tidakmakan waktu terlalu
lama.
Locking pages in memory
Pada saat satu proses menjalani tahap I/O, proses lain bisa dijalankan. Yang mungkin terjadi
ialah page proses I/O tersebut digantikan oleh proses yang kedua ini (jika dipakai alokasi
global). Jalan keluarnya ialah dengan me-lock page-page proses I/O.
Shared pages
Dua atau lebih proses bisa memakai bersama page-page yang berasal dari editor yang
mereka pakai. Penutupan salah satu proses ini tanpa disengaja bisa mengosongkan juga
page yang dipakai bersama tersebut. Diperlukan suatu struktur data khusus untuk
memantau page-page yang dipakai bersama ini.
Backing Store
Pada disk, disediakan area untuk menampung page yang dikeluarkan dari memori (paged
out) yang disebut swap area. Setiap proses memiliki swap area di disk. Swap area ada yang
statis ada juga yang dinamis.
Paging Daemon
Untuk meyakinkan tersedianya frame bebas yang cukup banyak, banyak sistem paging yang
menggunakan proses background yang disebut paging daemon. Jika jumlah frame bebas
terlalu sedikit, paging daemon akan mengosongkan beberapa page setelah menulisnya ke
disk jika pernah dimodifikasi.
Penanganan Page Fault
48
2. Rutin kode assembly dimulai untuk men-save register-register umum dan informasi lain
yang bisa berubah, agar sistem operasi tidak merusaknya. Rutin ini memanggil sistem
operasi sebagai suatu prosedur.
3. Sistem operasi menemukan bahwa terjadi page fault, dan mencoba menemukan page
virtual mana yang diperlukan. Seringkali salah satu register hardware berisi informasi ini.
Jika tidak, sistem operasi harus menarik program counter, mengambil instruksi, dan
melakukan parsing pada software untuk mengetahui apa yang dilakukan sebelum terjadi
fault.
4. Begitu alamat virtual yang menyebabkan fault diketahui, sistem operasi memeriksa apakah
alamat ini valid dan proteksinya konsisten dengan akses. Jika tidak, proses dikirimi sinyal
atau ditutup. Jika alamat valid dan tidak ada pelanggaran proteksi, sistem berusaha untuk
mendapatkan frame page dari daftar frame bebas. Jika tidak ada frame yang bebas,
dijalankan algoritma penggantian page untuk mencari yang bisa ditukar.
5. Jika frame page yang dipilih telah dimodifikasi, page dijadwalkan untuk ditransfer ke disk,
dan terjadi pertukaran proses, menghentikan sementara proses yang fault dan
membiarkan yang lainnya berjalan hingga transfer disk selesai. Frame ditandai terpakai
untuk mencegah dipakai untuk tujuan lain.
6. Begitu frame page bersih (apakah langsung atau setelah disave ke disk), sistem operasi
menelusuri alamat disk di mana page diperlukan, dan menjadwalkan operasi disk untuk
memasukkannya. Sementara page dimasukkan, proses yang mengalami fault dihentikan
sejenak dan yang lainnya dijalankan, jika ada.
7. Ketika disk interrrupt menandai bahwa page telah ada, tabel page di-update untuk
menunjukkan posisinya, dan frame ditandai berada dalam status normal.
8. Instruksi yang menyebabkan fault di-back-up ke status mulainya dan program counter di-
reset untuk menunjuk ke instruksi tersebut.
9. Proses yang fault tersebut dijadwalkan, dan sistem operasi kembali ke rutin bahasa
assembly yang memanggilnya.
10. Rutin ini mengembalikan register dan informasi lainnya ke keadaan semula , dan kembali
ke user untuk melanjutkan eksekusi, seakan-akan tidak ada fault yang terjadi.
SEGMENTASI
Compiler bisa memiliki beberapa tabel dengan alamat virtual yang terpisah, misalnya terdiri dari
tabel-tabel untuk:
1. Source text,
2. Tabel simbol,
3. Tabel untuk semua konstanta integer dan floating point,
4. Parse tree, berisi analisis sintaksis program, dan
5. Stack yang digunakan untuk pemanggilan prosedur.
Tabel 1 s/d 4 bisa bertambah pada saat kompilasi berjalan, sehingga dengan sistem paging yang
berukuran tetap, batas satu page bisa terlampaui.
Dengan alasan ini dipakai bagian-bagian dengan alamat yang relatif independen, yang disebut
segmen. Setiap segmen mempunyai ukuran yang berbeda dengan yang lain. Panjang segmen
juga bisa berubah selama eksekusi.
Segmentasi juga memberikan fasilitas pemakaian bersama prosedur atau data antar beberapa
proses. Contoh umumnya adalah shared library.
49
Segmen Segmen Segmen Segmen Segmen
0 1 2 3 4
0 0 0 Konstanta 0 0
4K 4K 4K 4K
Source Parse Call
text tree stack
8K 8K 8K 8K
Tabel
simbol
12K 12K 12K 12K
16K 16K
20K
Memori yang tersegmentasi memungkinkan setiap tabel bertambah atau berkurang.
Checkerboarding: Timbulnya blok-blok memori yang kosong (hole) pada saat isi segmen
dikeluarkan. Hal ini diatasi dengan pemampatan (compaction).
Segmentasi dengan Paging : Setiap segmen dapat dianggap sebagai satu virtual memori, dan
masing-masing dibagi menjadi page-page.
Salah satu mesin yang memakai cara ini adalah MULTICS. Setiap program MULTICS memiliki
satu tabel segmen, dengan satu descriptor per segmen. Segmen descriptor berisi keterangan
apakah segmen yang bersangkutan ada di memori atau tidak.
50
Descriptor segmen 0 Page 1 entry Pointer-
Descriptor segmen 1 Page 2 entry pointer
Descriptor segmen 2 Page 3 entry ke page
Descriptor segmen 3
Descriptor segmen 4
Descriptor segmen 5 Tabel page untuk segmen 1
Descriptor segmen 6 Page 0 entry
Descriptor segmen 7 Page 1 entry
Page 2 entry
Page 3 entry
Page 4 entry
Page 5 entry
Nomer
segmen
Nomer
Descriptor page
Page frame Offset
Page
Konversi alamat MULTICS menjadi alamat memori utama.
BAB VI
SISTEM FILE
51
Solusi untuk semua masalah tsb adalah dengan menyimpan data pada disk atau media lain
dalam bentuk unit-unit yang disebut FILE. Data yang disimpan dalam bentuk file harus tetap tidak
berubah ketika proses dibentuk atau dihentikan. File bisa hilang hanya ketika dihapus saja.
Sistem File adalah bagian sistem operasi yang menangani masalah file.
6.1. FILE
Beberapa extension file yang biasa ditemukan tampak pada tabel berikut :
Extension Artinya
*.bak File Backup
*.bas Program source Basic
*.bin Program executable binary
*.c Program source C
*.dat File Data
*.doc File Dokumentasi
*.ftn Program source Fortran
*.hlp File Teks untuk HELP command
*.lib Library dari file .obj yang digunakan linker
*.man Online manual page
*.obj File object
*.pas Program source Pascal
*.tex Teks masukan untuk format program TEX
*.txt File teks umum
52
Gambar 1. Tiga macam file. (a) Urutan byte. (b) Urutan record. (c) Tree.
Regular File bisa berbentuk ASCII maupun binary. Keuntungan bentuk ASCII adalah dapat
ditampilkan dan dicetak seperti apa adanya dan dapat diedit menggunakan editor yang biasa
dipakai. File Binary memiliki struktur internal sendiri, contoh dalam UNIX pada gambar 2.
53
Gambar 2. (a) File executable. (b) Archive.
Seluruh sistem operasi paling tidak harus mengenal satu jenis file executable, miliknya sendiri.
Bahkan jika file source codenya diubah, mampu melakukan compile ulang secara otomatis.
Contoh perintah UNIX : make, berada didalam shellnya.
Sistem operasi Mainframe lama banyak menggunakan kedua cara, karena memiliki dua bentuk
media penyimpanan tsb.
Sedangkan sistem operasi modern tidak membedakannya, otomatis semua file diakses secara
acak (Random access).
Field Artinya
Protection Who can access the file and in what way
Password Password needed to access the file
Creator Id of person who created the file
Owner Current owner
Read Only flag 0 for read/write, 1 for read only
54
Hidden flag 0 for normal, 1 for do not display in listings
System flag 0 for normal file, 1 for system file
Archive 0 has been backed up, 1 for needs to be backed
up
ASCII/binary flag 0 for ASCII file, 1 for binary file
Random access flag 0 for sequential access only, 1 for random access
Temporary flag 0 for normal, 1 for delete on process exit
Lock flag 0 for unlocked, nonzero for locked
Record length Number of bytes in a record
Key position Offset of the key within each record
Key length Number of bytes in the key field
Creation time Date and Time file was created
Time of last access Date and Time file was last accessed
Time of last change Date and Time file was last changed
Current size Number of bytes in the file
Maximum size Maximum size file may grow ro
55
Gambar 3 (a) Proses segmentasi sebelum memetakan file ke ruang alamatnya. (b) Proses
setelah memetakan file abc ke satu segmen dan membuat segmen baru untuk file xyz.
Proses memiliki dua segmen, teks dan data. Proses melakukan sistem call COPY. Pertama,
memetakan file sumber (abc) ke sebuah segmen. Kemudian membuat segmen kosong dan
memetakannya ke file tujuan (xyz). Proses dapat mengcopy segmen sumber ke dalam segmen
tujuan menggunakan loop copy biasa, bukan Read dan Write.
6.2. Directory
Untuk menjaga agar file tetap pada jalurnya dan diketahui, maka sistem file menyediakan
DIRECTORY.
2.1 Sistem Directory Hirarki
Diantara bentuk sistem directory tampak pada gambar 4
Gambar 4. Directory. (a) Atribut pada directory entry. (b) Atribut di tempat lain.
Ketika file diOpen, sistem operasi mencari directorynya sampai ditemukan nama file ybs,
kemudian mengekstrak atribut dan alamat disk langsung dari daftar directory atau dari struktur
data yang menunjukkannya, lalu meletakkan kedalam tabel didalam memory kerja.
56
Gambar 5. Tiga disain sistem file. (a) Satu directory dipakai bersama oleh semua user. (b) Satu
directory per user. (c) Sembarang tree per user. Huruf-huruf menyatakan pemilik directory atau
file.
Kebanyakan sistem operasi mempunyai dua directory khusus, "." dan "..", dot dan dotdot. Dot
menunjukkan directory saat itu dan Dotdot menunjukkan parent directory. Contoh gambar 6
57
Gambar 6. UNIX directory tree
58
- Kinerjanya sangat bagus, karena seluruh file dapat dibaca dari disk dalam satu operasi
saja.
Kekurangannya :
- Tidak bisa dialokasikan jika ukuran maksimum file tidak diketahui.
- Mudah terjadi fragmentasi, sisa blok yang tidak digunakan.
b. Linked List Allocation
Menyimpan file dalam skema Linked List, seperti tampak pada gambar 7.
Kelebihannya :
- Seluruh blok dapat dipakai, tidak terjadi fragmentasi.
Kekurangannya :
- Pengaksesan file secara acak akan lambat.
- Kebutuhan ukuran blok data meningkat karena pointer juga memerlukan beberapa byte.
c. Linked List Allocation menggunakan Indeks
Caranya sama seperti point b tetapi menambahkan tabel berindeks kedalam memory, seperti
pada gambar 8 berikut.
File A menggunakan blok 4,7,2,10 dan 12. Sedangkan file B menggunakan 6,3,11 dan 14.
DOS menggunakan metode alokasi ini.
Kelebihannya :
- Pengaksesan file secara acak akan lebih cepat.
Kekurangannya :
59
- Seluruh tabel harus selalu ada didalam memory, sehingga mengurangi kapasitas
memory.
d. I-node
alokasi file dengan menerapkan tabel yang berukuran kecil yang disebut i-node (index-node)
yang mendaftar atribut dan alamat disk dari blok file. Tampak pada gambar 9.
Gambar 9. I-node.
Untuk file-file yang berukuran besar, dipetakan ke blok yang disebut Single Indirect Block
(SIB) yang mengandung alamat disk tambahan. Jika masih tidak cukup maka alamat lain
dipetakan ke Double Indirect Block (DIB) yang mengandung alamat blok yang mendaftar
SIB. Setiap SIB menunjuk ke beberapa ratus blok data. Jika ternyata masih kurang lagi,
Triple Indirect Block (TIB) bisa digunakan.
- UNIX menggunakan metode alokasi ini.
- WINDOWS ???
- OS/2 ???
Gambar 10. Directory yang berisi nomer blok disk untuk setiap file.
60
- Block Count menunjukkan jumlah blok yang digunakan dari 16 blok yang disediakan.
- 16 bit terakhir berisi nomor blok disk.
b. Directory pada DOS
Sistem DOS menggunakan directory seperti tampak pada gambar 11.
Panjangnya 32 bit yang terdiri dari nama, atribut, jam, tanggal, first block number (FBN) dan
ukuran. FBN digunakan sebagai indeks tabel seperti pada gambar 11.
c. Directory pada UNIX
Sistem UNIX menggunakan struktur directory seperti tampak pada gambar 12.
Informasi tentang jenis, ukuran, waktu, kepemilikan, dan blok disk disimpan didalam i-node.
Contohnya :
Cara sistem mencari file jika diberikan path /usr/ast/mbox
dengan urutan :
- sistem meletakkan posisinya pada root.
- Permasalahan pada Symbolic Linking diperlukannya overhead. File yang mengandung path
harus dibaca, path harus diparse dan diikuti setiap komponen per komponen, sampai i-node
dicapai. Sehingga symbolic link memerlukan i-node tambahan.
- Symbolic Linking menjadikan file memiliki lebih dari satu path. Operasi copy juga akan
melaksanakan lebih dari satu kali.
Kelebihannya :
- dapat digunakan untuk menghubungkan file-file diseluruh mesin di dunia ini.
61
3.4 Pengaturan Ruang Disk
Dua cara umum menyimpan file n byte :
1. Mengalokasikan ruang disk sebanyak n byte secara berurutan.
2. Memisah file menjadi sejumlah blok yang tidak harus berkesinambungan.
Ukuran Blok
Ukuran blok berhubungan erat dengan kecepatan pembacaan/penyimpanan file dan pemakaian
ruang disk.
Contoh :
Gambar 16. Kurva yg solid (skala kiri) menggambarkan data rate disk. Garis terputus (skala
kanan) menyatakan efisiensi ruang disk. Semua file berukuran 1K.
Gambar 17. (a) Daftar blok bebas pada linked list. (b) Bit Map.
a. Menggunakan Linked List, setiap blok menahan/memegang sejumlah blok bebas yang cocok
dengannya.
b. Bit Map. Blok bebas dinyatakan dengan 1, sedangkan blok yang telah dialokasi data
dinyatakan dengan 0.
Kuota Disk
62
Tujuan : mencegah user agar tidak menggunakan ruang disk terlalu banyak, melampaui batas.
Proses jalannya kuota ditampilkan pada gambar 18.
Ketika user log in, sistem operasi akan mengecek kuota file yang digunakannya, apakah
melampaui batas jumlah file atau jumlah blok disk.
Gambar 19. Mem-backup setiap drive pada drive yang lainnya menyia-nyiakan setengah
media penyimpanan.
63
- melakukan incremental dumping setiap waktu.
- DOS menerapkan sebuah atribut yang disebut Archive Bit. Jika sistem file ybs dibackup,
maka archive bit dihapus (clear), tetapi bila file sedang diubah, archive bit diset secara
otomatis.
Gambar 20. Status sistem file. (a) Konsisten. (b) Missing block. (c) Duplikasi blok pada daftar
bebas. (d) Duplikasi blok data.
a. Bentuk konsisten
b. Blok 2 tidak muncul pada kedua tabel, dinamakan Missing Block.
c. Block 4 muncul dua kali didalam daftar blok bebas (free list).
d. Blok data yang sama muncul dalam dua atau lebih file, pada blok 5.
64
- Meletakkan blok pada posisi yang berdekatan ketika diakses, sehingga mempercepat
pembacaan.
Gambar 21.
a. i-node diletakkan diawal disk, rata-rata jarak antara i-node dengan bloknya sekitar
setengah jumlah cylinder, yang memerlukan pencarian yang lama.
b. i-node diletakkan ditengah disk, akan mengurangi rata-rata pencarian antara i-node
dengan bloknya setengah kali.
Cara lain, membagi disk kedalam kelompok cylinder, setiap kelompok mempunyai i-node,
blok dan daftar bebas sendiri.
4. PENGAMANAN
4.1 Seputar Pengamanan (security)
Istilah "security" dan "protection"
Security ditujukan untuk keseluruhan masalah sedangkan Protection merupakan
mekanisme tertentu dari sistem operasi yang digunakan untuk menjaga informasi
didalam komputer.
Aspek lain dalam pengamanan adalah PRIVACY : menjaga seseorang dari penyalahgunaan data
miliknya.
65
4.2 Beberapa Pengamanan Terkenal Yang Gagal/Rusak
Cara masuk ke UNIX tanpa melalui sistem pengamanannya dengan menghubungkan sebuah file
yang disebut core di directory kerja menuju file password. User dapat mengubah file password.
Contoh pengamanan jelek yang tidak begitu kelihatan :
mkdir foo
Untuk sistem yang lambat, kadang-kadang user dapat dengan cepat menghapus i-node directory
dan membuat link ke file password menggunakan nama foo setelah MKNOD dan sebelum
CHOWN. Setelah CHOWN dijalankan sistem, maka mkdir tsb menjadikan user sebagai owner
(pemilik) file password.
Cara mencuri file orang lain. Mencari source code editor yang banyak digunakan orang lain, lalu
dimodifikasi. Hasil modifikasi diletakkan di directory yang banyak orang akan mengaksesnya,
seperti /bin. Perubahan proses editor dapat digunakan untuk mencari hal-hal yang diinginkan.
Ide merubah program untuk melakukan hal yang tidak berkenan dan merugikan orang lain
dikenal sebagai Serangan Kuda Troya (Trojan Horse Attack).
66
7. Trapdoor, meyakinkan programer untuk melewati pengecekan login/password untuk setiap
user menggunakan nama loginnya.
8. Menggunakan kelemahan sifat manusia yang memegang kendali sistem administrasi, seperti
sekretaris SysAdm.
Virus
Virus adalah suatu penggalan program yang menempel program sebenarnya dengan maksud
menjangkitkan dirinya ke program lain.
4.5 Prinsip-Prinsip Disain Pengamanan
Prinsip-prinsip umum yang digunakan untuk merancang sistem pengamanan adalah :
1. Disain sistem harus bersifat public
2. Nilai default harus tidak boleh diakses.
3. Mengecek otoritas saat itu (current authority).
4. Memberikan setiap proses kemampuan akses sesedikit mungkin.
5. Mekanisme proteksi harus sederhana, uniform dan built in ke lapisan terbawah dari sistem.
6. Skema pengamanan harus dapat diterima secara psikologis.
Password
Bentuk autentikasi yang paling banyak digunakan adalah PASSWORD. Ketika digunakan,
password dalam bentuk terenkripsi.
Autentikasi password mudah untuk dipecahkan.
Buktinya :
Morris dan thompson (1979) meneliti password pada sistem UNIX, dengan mengcompile
daftar mirip password : nama depan, nama belakang, nama jalan, nama kota, kata dari
kamus, nomor plat mobil dan string pendek dari huruf acak. Kemudian mengenkripsi
menggunakan algoritma enkripsi password dan mengecek apakah ada password yang
terenkripsi sama dengan daftar yang dibuatnya.
Hasilnya menunjukkan bahwa lebih dari 86 % password cocok dengan daftarnya.
Identifikasi Fisik
Ada beberapa contoh :
- Cara fisik berupa kartu plastik dengan pita magnetik. Bentuk fisik ini dapat digabung bersama
password sehingga user berhasil login jika mempunyai kartu dan mengetahui password.
- Fingerprint (sidik jari) atau voiceprint (sidik suara) dengan metode direct visual recognition.
- Signature Analysis. User membuat tanda tangan dengan pen pada terminal komputer.
- Analisis Panjang jari. User memasukkan tangan kedalam alat lalu panjang jari dibaca serta
dicocokkan dengan database didalam sistem.
- Untuk kasus pengamanan yang extra ketat :
67
- Ada tulisan "Untuk masuk, silakan berikan contoh anda disini", user diwajibkan
memberikan urine lalu dicek dengan metode urinalysis.
- Spectrographic analysis, dengan cara user menekan jarinya diatas benda tajam, agar
diperoleh darahnya. Kemudian darahnya dianalisis, sesuai dengan data atau tidak.
5. MEKANISME PROTEKSI
5.1 Domain Proteksi
Sistem komputer mengandung berbagai object yang perlu diproteksi. Object ini dapat berupa
hardware, dan software.
Domain adalah himpunan pasangan dari (object,right). Sedangkan Right dalam hal ini adalah
kemampuan untuk membentuk suatu operasi.
Misalkan, ada 3 Domain dengan jenis Right [Read,Write,eXecute]. Printer1 berada pada dua
domain dengan satu jenis right, tapi sebenarnya bisa juga berada didua domain dengan jenis
right yang berbeda.
Pada sistem UNIX, Domain suatu proses didefinisikan oleh UID dan GID. Dengan kombinasi UID
dan GID, akan dapat membuat daftar seluruh object untuk diakses, baik Read, Write maupun
eXecute. Setiap proses di UNIX memiliki dua bagian : bagian user dan bagian kernel. Ketika
suatu proses mengerjakan sistem call, proses akan berpindah dari bagian user ke bagian kernel.
Kernel dapat mengakses object yang berbeda dari object yang diakses oleh user.
Bagaimana caranya sistem mengetahui object tertentu dimiliki oleh domain tertentu ?
DOMAI OBJECT
N
File File2 File3 File4 File5 File6 Printer Plotter
1 1 2
Read
1 Rea Write
d
Read Read
2 Read Write Write Write
Execut
e
Read
3 Write Write Write
Execu
te
Gambar 22. Matriks proteksi.
DOMAI OBJECT
N
File File File File4 File File6 Printer Plotter Domai Domai Domain
1 2 3 5 1 2 n1 n2 3
Rea
1 Rea d Enter
d Writ
e
68
Read Rea
2 Rea Write d Write
d Execu Writ
te e
Read
3 Write Write Write
Execu
te
Gambar 23. Matriks proteksi.dengan domain sebagai object.
Proses pada domain 1 bisa berpindah ke domain 2 tetapi jika telah pindah tidak dapat kembali ke
domain semula. Cara ini sama dengan menjalankan SETUID di UNIX.
C-List harus dijaga dari user yang ingin merusaknya dengan metode :
1. Tagged Architecture, rancangan hardware dimana setiap word memory mempunyai bit
tambahan (tag) yang memberitahukan bahwa word mengandung Capability atau tidak.
2. Menjaga C-List tetap berada didalam sistem operasi.
3. Menempatkan C-List di ruang disk user, tetapi mengenkripsi setiap capability dengan kunci
rahasia yang tidak diketahui oleh user.
Capability biasanya mempunyai Generic Right yang dapat digunakan untuk semua object, contoh
:
- Copy capability : membuat capability baru untuk object sama.
- Copy object : membuat duplikat object dengan capability baru.
- Remove capability : menghapus masukan dari C-List, object tidak terpengaruh.
- Destroy object : menghilangkan object dan capability secara permanen.
69
Beberapa sistem capability diatur sebagai kumpulan modul, dengan Type Manager Module
(TMM) untuk setiap jenis object. Kadang cara ini menimbulkan masalah karena TMM hanya
sebuah program, pemiliknya dapat membentuk hanya beberapa operasi saja pada file dan tidak
bisa mencapai representasi internal (misalnya i-node).
Solusinya Hydra dengan teknik Right Amplification. TMM diberi kerangka right yang lebih
kepada object daripada capability.
Masalah lain pada sistem capability adalah sulitnya menghilangkan akses ke object.
Solusinya dengan Skema uang digunakan didalam Amoeba. Setiap object mengandung angka
acak yang panjang, yang juga ada di capability. Ketika capability digunakan, kedua angka tsb
dibandingkan. Operasi boleh dijalankan bila kedua angkanya sama.
Object Object
Compiler MailBox7 Secret Compiler MailBox7 Secret
Eric Read Eric Read
Execute Execute
Henry Read Read Henry Read Read
Execute Write Execute Write
Robert Read Read Robert Read R Read
Execute Write Execute e Write
a
d
(a) (b)
Model Lampson mencakup 3 proses yang dapat diterapkan untuk sistem timesharing :
Proses pertama adalah Client, yang menginginkan proses kedua (yaitu Server) untuk
membentuk suatu pekerjaan. Client dan Server tidak saling percaya. Proses ketiga yaitu
Collaborator, yang bekerja sama dengan server untuk mencuri data rahasia Client. Biasanya
Server dan Collaborator dimiliki oleh orang yang sama.
70
Tujuan yang ingin dicapai adalah "Tidak Mungkin" Server bisa membocorkan informasi
Collaborator yang secara sah diterima dari Client. Lampson menyebut hal ini sebagai
Confinement Problem.
Dengan matriks proteksi, dapat dijamin bahwa Server tidak bisa berkomunikasi dengan
Collaborator dengan cara menulis kedalam suatu file dimana Collaborator mempunyai hak akses
read. Juga bisa dijamin bahwa Server tidak bisa berkomunikasi dengan Collaborator
menggunakan mekanisme komunikasi antar proses.
Sayangnya, channel komunikasi yang tersamar bisa ada, seperti Server bisa berkomunikasi
dengan deretan bit biner. Untuk mengirimkan bit 1, Server melakukan perhitungan (menyibukkan
diri) selama selang waktu tertentu. Untuk mengirimkan bit 0, Server tidak melakukan apa-apa
(sleep) dalam selang waktu yang sama. Collaborator bisa mendeteksi aliran bit tsb dengan
memonitor respon waktunya. Channel komunikasi ini dikenal sebagai Covert Channel.
Covert Channel merupakan channel yang penuh dengan noise, mengandung banyak informasi
tambahan, tetapi informasi sebenarnya dapat diperoleh dengan menggunakan Error Correction
Code (seperti Hamming Code).
DEADLOCK
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.
71
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.
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
Misalnya :
- dua proses, P0 dan P1
- dua sumber daya kritis, R0 dan R1
- proses P0 dan P1 harus mengakses kedua sumber daya tersebut
P0
R1
R0
P1
P0 R1
R0 P1
Kemudian,
- P0 sambil masih menggenggam R0, meminta R1
- P1 sambil masih menggenggam R1, meminta R0
72
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.
P0
R0 R1
P1
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.
73
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.
74
Keamanan Sistem
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.
Sasaran keamanan adalah menghindari, mencegah dan mengatasi ancaman terhadap sistem.
Sumber Tujuan
Sumber Tujuan
informa informa
informa informa
sisi sisi
Aliran
75normal
Tipe ancaman terhadap keamanan sistem komputer dapat dimodelkan dengan memandang
fungsi sistem komputeer sebagai penyedia informasi.
Sumber Tujuan
Sumber Tujuan
informa informa
informa informa
sisi sisi
Interupsi
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.
Sumber Tujuan
Sumber Tujuan
informa informa
informa informa
sisi sisi
Intersepsi
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
Sumber Tujuan
Sumber Tujuan
informa informa
informa informa
sisi sisi
Modifikasi
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.
Sumber Tujuan
Sumber Tujuan
informa informa
informa informa
sisi sisi
76
Fabrikasi
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.
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
77
Pada tanda tangan, bukan membandingkan bentuk tanda tangannya (karena mudah ditiru)
tapi gerakan / arah dan tekanan pena saat menulis (sulit ditiru).
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
78
BAB VII
INPUT / OUTPUT
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.
79
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
b. Komponen mekanik
Contohnya : head, motor stepper, printer
80
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
drive
Disk
CPU memor controll
y er buffer
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.
7 0 7 0 5 0
6 1 3 4 2 3
5 2 6 1 7 6
4 3 2 5 4 1
No Single Double
Interleaving Interleaving Interleaving
81
7.2. Prinsip Sofware I/O
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.
Device Device Device
Drivers Controller
(Registernya)
3. Device Independent Operating System Software
82
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
Lapisan sistem I/O dan fungsi utama dari tiap lapisan (layer)
7.3. Disk
83
1. kapasitas penyimpanan yang tersedia lebih besar
2. harga per-bit-nya lebih rendah
3. informasi tidak hilang meskipun power off
Platter Read/Write
Spindl Boo
s Head
e Struktur Disk m
Transfer rate
Seek time Boom
Mekanisme
Disk
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
84
7.4. 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.
Silinde
r
Silinde
r
Tim
c. Algoritma Waktu Cari Terpendek Dipertamakan (WCTD) / Shortest
e
Seek Time First (SSTF) Algorithm
Initial
position
X X X X X X X
0 5 10 15 20 25 30 35 39
Tim Silinde
e Sequence of r
seeks
85
d. Algoritma Lift Singkat / LOOK Algorithm
Initial
position
X X X X X X X
0 5 10 15 20 25 30 35 39
Tim Silinde
e r
Tim Silinde
e r
Tim Silinde
e r
X X X X X X X
0 5 10 15 20 25 30 35 39
Tim Silinde
86
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.
Main
Memory
(RAM)
User
Programs
RAM Disk .
blok 1 RAM
Disk
R & W of
RAM blok 0 87
use this
memory
.
.
Operating
System
8. Terminal
Semua komputer memerlukan terminal untuk komunikasi antar peralatan.
8.2. Terminal Hardware
Terminal hardware terbagi atas 2 kategori dasar, yaitu :
Termina
ls
Studi kasus
88
1. manajemen I/O
pada MS DOS
MS DOS mendukung beragam perangkat serial, yang diidentifikasikan
dengan nama file khusus, hanya tidak disimpan di suatu direktori tertentu,
misalnya :
a. con : perangkat konsol
b. com1 : perangkat communication port 1
c. com2 : perangkat communication port 2
d. pm : perangkat printer
e. lpt1 : perangkat line printer 1
f. lpt2 : perangkat line printer 2
g. aux : perangkat auxiliary
contoh :
copy a.txt con : tidak mengkopi file a.txt menjadi file con, tetapi
menampilkan ke konsol
copy a.txt prn : tidak mengkopi file a.txt menjadi file prn, tetapi mengalirkan
isi file a.txt ke printer sehingga printer akan mencetaknya
MS DOS memungkinkan pemakai memasang device driver sendiri setelah
sistem di boot dengan penambahan pernyataan di file config.sys, misalnya
ansi.sys, display.sys, mouse.sys, printer.sys, dll.
UNIX mengharuskan device driver dikompilasi ke kernel.
89
90