Modul Sistem Operasi

advertisement
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.
1. Blok Diagram Komputer
Control Unit
Masukan
Processor
Saluran
Penghubung
Keluaran
Memory
Memori
Dukung
Clock
Gambar 1. Diagram Blok Komputer
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
System
Word
Processing
Game
Program
Aplikasi
Compiler
Utility
Command
Interpreter
Program
Sistem Operasi (Operating System)
Sistem
Bahasa Mesin (Machine Language)
Pemrograman Mikro (Microprogramming)
Perangkat Fisik (Physical Devices)
Hardware
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. Sistem Operasi Komputer
 Pengertian Sistem Operasi
 Seperangkat program yang memantau dan mengatur pemakaian sumber daya komputer
(processor, main memory, file, I/O device, dll).
 Menjembatani / penghubung antara user (program user) dengan perangkat keras komputer.

Fungsi Sistem Operasi
 Sebagai Resource Manager /pengelola seluruh sumber daya system komputer
 Mengatur dan mengefisienkan penggunaan selluruh sumber daya komputer (computer
resources)
 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.
Konsep Sistem Operasi
 Proses
 Proses adalah program yang sedang di-eksekusi.
 Proses terdiri dari : Executable program; program data dan stack; program counter; dll
 Pada sistem timesharing secara periodik sistem operasi menggilir eksekusi proses-proses
yang ada, biasanya berdasarkan porsi waktu CPU.
 Ketika suatu proses dihentikan untuk sementara, maka proses tersebut harus dimulai kembali
pada state yang sama dengan state ketika ia dihentikan.
• Semua informasi yang berkaitan dengan proses tersebut harus disimpan. Umumnya
informasi tersebut disimpan pada tabel proses (array atau linked list), satu tabel untuk
setiap proses.
• Tabel proses (process table) adalah tabel yang berisi informasi tentang
semua proses
yang dijalankan.
• Suatu proses terdiri dari : address space (core image) dan atribut / informasi pada tabel
proses
 System call utama dalam pengaturan proses adalah yang berkaitan dengan pembuatan dan
pemberhentian suatu proses.
Contoh :
• Command interpreter atau shell akan membaca command yang diketikkan user pada
terminal, dan membuat proses yang menjalankan command tersebut.
• Bila telah selesai, maka proses akan menjalankan system call untuk menghentikan
dirinya.
 Suatu proses dapat men-create proses lainnya yang disebut sebagai child process.
 Sistem operasi dapat berkomunikasi dengan suatu proses dengan menggunakan signal.
 Signal juga dapat digunakan untuk komunikasi antar proses.
 Pada sistem multiprogramming, setiap proses memiliki user identification (uid) yang berasal
dari uid pemilik proses.
 Files
Terdiri dari : Pathname; Working directory; rwx (read, write, execute) bits protection code; File
descriptor / handle; Special file (block & character); Standard input; Standard output; Standard
error; Pipe. SO mendukung konsep direktori.
Root Directory
Directory

File
Gambar 3. Model Struktur File
System Calls / API (Aplication Programming Interface)
 Suatu set tata cara pemanggilan di program aplikasi untuk memperoleh layanan system
operasi. Berupa extended instructions / perluasan instruksi yang merupakan interface /
layanan langsung antara program-program dengan sistem operasi.
 System calls meng-create, men-delete dan menggunakan objek-objek yang diatur oleh
system operasi, antara lain : proses-proses dan file-file.
 Library procedure meletakkan parameter-parameter system call pada tempat tertentu dan
memberikan instruksi trap untuk memulai sistem operasi



Trap instruction : ketika diterima oleh sistem operasi, sistem memeriksa apakah parameter
tersebut valid atau tidak
Return form trap : sistem operasi mengembalikan kontrol ke library procedure
Contoh mekanisme system calls untuk READ pada program C.
count = read (file, buffer, nbytes)


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 2Program
User Program
Runs in
User 1Mode
User Program
Kernell Call
4
1
Operating System
runs in
Kernel Mode
3
s
2
Dispatch
Table
servis
service
procedure
Gambar 4. Struktur Sistem Monolithic

Sistem Berlapis (Layered System)
 Konsep : “Sistem operasi dibentuk secara hirarki berdasarkan lapisan-lapisan, dimana
lapisan-lapisan memberi layanan lapisan lebih atas”.
 Dimaksudkan untuk mengurangi kompleksitas rancangan dan implementasi system operasi.
Tiap lapisan mempunyai fungsional dan antarmuka I/O antara dua lapisan bersebelahan.
 Contoh :
• Sistem Operasi THE (Technique Hogesschool Endiche), Djikstra, 1968.
• Sistem Operasi MULTICS (menggunakan concentric rings).
Tabel 1. Lapisan-lapisan pada Sistem Operasi THE
Layer
Function
Fungsi
Untuk operator
5
The Operator
4
User Programs
Untuk aplikasi program pemakai
Untuk menyederhanakan akses I/O pada
3
I/O Management
level atas
2
Operator-Process Communication
Untuk mengatur komunikasi antar proses
Untuk mengatur alokasi ruang memori /
1
Memory & Drum Management
drum magnetic
Untuk mengatur aloksi pemroses dan
Processor Allocation &
0
switching multiprogramming dan
Multiprogramming
pengaturan prosesor
Keterangan :
- Lapisan n memberi layanan untuk lapisan n+1. Proses-proses di lapisan n dapat meminta
layanan lapisan n-1 untuk memberikan layanan bagi lapisan n+1. Tetapi lapisan n tidak dapat
meminta layanan n+1. Kelanjutan sistem berlapis adalah sistem berstruktur cincin seperti sistem
MULTICS yang terdiri 64 lapisan cincin dimana satu lapisan mempunyai fungsi berbeda. Lapisan
n-1 mempunyai kewenangan lebih dibanding lapisan n. Untuk meminta layanan lapisan n-1,
lapisan n melakukan trap. Kemudian, lapisan n-1 mengambil kendali sepenuhnya untuk
melayani lapisan n.

Sistem dengan Mesin Maya (Virtual Machines)
 Konsep : “Awalnya struktur ini membuat seolah-olah user mempunyai seluruh komputer
dengan simulasi atas pemroses yang digunakan. Sistem operasi melakukan simulasi mesin
nyata. Mesin hasil simulasi digunakan user, mesin maya merupakan tiruan 100% atas mesin
nyata. Semua user diberi ilusi mempunyai satu mesin yang sama-sama canggih”.
 Contoh :
• Sistem operasi MS-Windows NT dapat menjalankan aplikasi MS-Dos, OS/2 mode teks,
dan Win 16.
• Pengembang Linux membuat DOSEMU agar aplikasi MS-Dos dapat dijalankan di Linux,
WINE agar aplikasi MS-Windows dapat dijalankan di Linux, iBCS agar aplikasi SCO-Unix
dapat dijalankan di Linux.
 CP/CMS
 VM/370
 Virtual Machine Monitor
 CMS (Conversational Monitor System)
Virtual 370s
System Call
I/O Intruction
Trap
CMS
CMS
CMS
Trap
VM 370
370 Bare Hardware
Gambar 5. Sistem Virtual Mesin

Sistem dengan Client-Server
 Konsep : “Server adalah proses yang menyediakan layanan, dan Client adalah proses yang
memerlukan / meminta layanan. Proses client yang memerlukan layanan mengirim pesan ke
server dan menanti pesan jawaban. Proses server setelah melakukan tugas yang diminta,
mengirim hasil dalam bentuk pesan jawaban ke proses client. Server hanya menanggapi
permintaan client dan tidak memulai percakapan dengan client”.
Client
Client
Process Process
Process
Server
Term.
Server
…
File
Server
Mem
Server
User
Mode
Kernel
Mode
Kernel
Client obtains service by sending messages
to server processes
Gambar 6. Model Client Server

Model Client Server pada distributed system
Client
Kernel
Client
Client
Client
Kernel
Kernel
Kernel
Message from client to server
NETWORK
Gambar 7. Model Client Server pada Distributed System

Sistem berorientasi objek
 Konsep : “Layanan diimplementasikan sebagai objek”.
 Model ini terstruktur dan memisahkan antara layanan yang disediakan dan implementasinya.
 Contoh :
• Sistem operasi X-kernel
• Sistem operasi MS-Windows NT telah mengadopsi beberapa teknologi berorientasi objek,
tapi belum secara keseluruhan.

Layanan Sistem Operasi Komputer
 Layanan Otomatis : Alokasi sumberdaya; Catatan pemakaian; Proteksi; Penanganan kekeliruan;
Pindah baris; Gulung jendela pada monitor
 Layanan permintaan pemakaian : Loading; Mengolah/run; Menyimpan/save; Menghapus/delete

Jenis Sistem Operasi
 Aspek kegiatan
 Pemakai tunggal (single user)
 Pemakai jamak (multiuser)
 Berdasarkan jenis-jenisnya
 Linux
 MS-Dos
 MS Windows-NT
 MS Windows
 Dll
3. Sejarah Perkembangan Sistem Operasi
 Generasi Sistem Operasi
 Generasi ke-1 (1945-1955) : Vacuum Tubes dan Plugboards
 Analytical Engine (Charles Babbage)
 Calculating Engine menggunakan vacuum tubes (Howard Aitken, John von Neumann, J.P
Eckert, Konrad Zuse)
 Beluam ada bahasa pemrograman
 Belum ada sistem operasi, system komputer diberi instruksi yang harus dikerjakan langsung.
 Operasi menggunakan plugboard
 Pengenalan punched card

Generasi Ke-2 (1955-1965) : Transistors dan Batch System
 Tetap belum dilengkapi system operasi. Tetapi beberapa fungsi dasar SO sudah ada.
 Pengenalan transistor untuk komputer
 Pemisahan fungsi personil :Designer , Operator, Programmer dan Maintenance personel
 Pengenalan job (program atau seperangkat program)
 Penggunaan bahasa FORTRAN, Assembeler
 Penerapan Batch System
 Pengoperasian Off-Line
 Penggunaan mesin-mesin besar untuk kalkulasi sains dan engineering
 Typical operating system : FMS (Fortran Monitor System) dan IBSYS (sistem operasi untuk
IBM 7094)

Generasi Ke-3 (1965-1980) : IC dan Multiprogramming
 IBM mengenalkan IBM 360 dengan sistem operasi OS/360
 Menggunakan Integrated Circuit (IC)
 Dapat menangani komputasi sains dan komersial
 Mengadopsi konsep ‘one family’
 Sistem operasi berukuran besar dan kompleks
 Mengenalkan multiuser, komputer memiliki resource yang dapat digunakan oleh banyak
orang sekaligus
 Mengenalkan multiprogramming, komputer melayani banyak proses sekaligus pada waktu
yang bersamaan dengan menerapkan partisi memori menjadi beberapa bagian memori
dengan satu bagian memori untuk satu job berbeda. Saat satu job menunggu operasi I/O
selesai, job lain dapat menggunakan proses.
Partisi Memori
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)

Generasi Ke-4 (1980-1990) : LSI, VLSI, dan Personal Computer (PC)
 Pengembangan LSI dan VLSI melahirkan PC dan Workstation
 Perangkat lunaknya ‘user friendly’
 Dua sistem operasi yang dominan :
• MS-DOS (pada IBM-PC dengan CPU Intel 8088, 80286, 80386, 80486)
• UNIX (pada Non-Intel computer dan workstation)
 RISC Chips
 Network Operating System
 Distributed Operating System

Generasi Ke-5 (1990-sekarang) : VLSI, ULSI an teknologi Nano Second, Internet, Multimedia
 Pengembangan VLSI an ULSI melahirkan PC yang berbasis Pentium untuk server maupun
workstation
 Pengembangan sistem operasi windows
 Pengembangan internet dan multimedia
 Pengembangan aplikasi yang berbasis Web atau WWW
 dll.
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.
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 ?
13. Apa perbedaan mendasar diantara blok special file dan character special file.
MANAJEMEN PROSES
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).
Model Proses :
1. Sequential Process / bergantian
2. Multiprogramming
3. CPU Switching  peralihan prosedur dalam mengolah 1 proses ke proses lainnya.
Secara konsep setiap proses mempunyai 1 virtual CPU, tetapi pada kenyataannya adalah
multiprogramming. Maka akan lebih mudah menganggap kumpulan proses yang berjalan secara parallel.
Satu
program counter
Empat
program counter
Model
Proses
Proses
A
D
B
C
B
C
D
A
B
C
D
A
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.
1.
2.
Create & Destroy Proses
Sistem operasi yang mendukung konsep proses, harus menyediakan suatu cara untuk membuat
(create) proses dan menghilangkan (destroy) proses.
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.
Process scheduler : untuk pengaturan eksekusi proses
3 Status proses / bagian keadaan proses :
1. Running / kerja, benar-benar menggunakan CPU pada saat itu (sedang mengeksekusi instruksi
proses itu).
2. Blocked / terhenti, tidak dapat berjalan sampai kegiatan eksternal terlaksana (proses menunggu
kejadian untuk melengkapi tugasnya)
Bisa berupa proses menunggu : Selesainya operasi perangkat I/O; Tersedianya memori; Tibanya
pesan jawaban
3. Ready / siap, proses siap dikerjakan tetapi menunggu giliran dengan proses lain yang sedang
dikerjakan (bisa berjalan, sementara berhenti untuk memungkinkan proses lain dikerjakan)
Transisi Status
Running
/ kerja
2
1
3
Blocked /
terhenti
1.
2.
3.
4.
4
Ready /
siap
Proses di blok untuk melayani input karena sumber daya yang diminta belum tersedia / meminta
layanan I/O sehingga menunggu kejadian muncul.
Penjadwalan mengambil proses lain.
Penjadwalan mengambil proses ini (baru).
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.
Contoh Tabel Proses :
Proses management
Register
Program counter
Program status word
Stack pointer
Process state
Time when process started
CPU time used
Children’s CPU time
Time of next alarm
Message queue pointers
Pending signal bits
Process id
Various flag bits
Memory management
Pointer to text segment
Pointer to data segment
Pointer to bss segment
Exit status
Signal status
Process id
Parent process
Process group
Real uid
Effective uid
Real gid
Effective gid
Bit maps for signals
Various flag bits
File management
UMASK mask
Root directoy
Working directory
File descriptiors
Effective uid
Effective gid
System call parameters
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.
2 cara interupsi pada processor :
1. Interupsi langsung
Berasal dari luar prosesor (peripheral / alat mengirim sinyal kepada prosesor untuk meminta
pelayanan)
2. Interupsi Tanya / Polling
Berasal dari prosesor (prosesor secara bergiliran mengecek apakah ada peripheral yang
memerlukan pelayanan atau tidak)

Interupsi dapat di-enable dan disable tergantung pada levelnya.

Pembangkit interupsi dapat berasal dari :
o Program, di dalam program telah dirancang pada bagian tertentu akan terjadi pensaklaran
konteks, yang menimbulkan interupsi, contohnya pada saat penggunaan alat / prosesor secara
bergantian.
o Prosesor, prosesor sendiri dapat membangkitkan interupsi, yang biasa mengolah logika dan
aritmatika. Jika melampoi ukuran tampung register di dalam prosesor, maka terjadi kekeliruan
yang akan menginterupsi kerjanya sendiri dan menyerahkan kendali prosesor pada sistem
operasi. Misalnya pembagian dengan bilangan nol.
o Satuan kendali, tugas untuk melaksanakan interupsi terletak pada satuan kendali, sehingga
satuan kendali dapat membangkitkan interupsi. Misalnya kekeliruan instruksi
o Kunci waktu / clock, menggunakan interupsi berkala. Misalnya pada program looping yang tak
terhingga, diinterupsi pada setiap selang waktu 60 detik.
o Peripheral I/O, I/O jika akan bekerja memberitahukan pada prosesor dengan interupsi prosesor
dan juga ketika pekerjaan selesai atau pada saat terjadi kekeliruan paritas.
o Memori, karena terjadi kekeliruan, misalnya ketika prosesor ingin mencapai alamat memori yang
terletak di luar bentangan alamat memori yang ada.
o Sumber daya lain, misal dibangkitkan oleh operator sistem komputer yang mengerti cara
interupsi.


Interupsi vector : Berisi alamat prosedur service interupsi
Penerimaan interupsi dan interupsi berganda : ada kalanya interupsi ditolak oleh prosesor atau
interupsi yang datang tidak hanya satu sehingga diperlukan prioritas.
Tindak lanjut interupsi :
1. Penata interupsi / interrupt handler
jika terjadi interupsi, maka kendali prosesor diserahkan ke bagian penata interupsi pada sistem
operasi, maka penata interupsi inilah yang melaksanakan interupsi.
a. Instruksi yang sedang diolah oleh prosesor dibiarkan sampai selesai program.
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.
c.
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.
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.
Tindak lanjut interupsi menurut Peterson & Silberschatz :
Interupsi
Rekam informasi proses
Maksud interupsi?
Rampung
Keliru
Bukan I/O
Kerja /
Perintah
Berikutnya
Curah
Laksanakan
Mulai I/O
Mulai
Permintaan
Rampung I/O
Tanda
Rampung
Interupsi
Kembali ke proses
sebelum 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
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.
Langkah-langkah yang dilakukan sistem operasi pada saat terjadi interupsi :
1. hardware memasukkan program counter, dl.l.
memasukkan ke dalam stack pencacah program
2.
3.
4.
5.
6.
7.
8.
Hardware memuatkan (load) program counter baru dari vector interrupsi
Prosedur bahasa rakitan menyimpan isi register
Prosedur bahasa rakitan men-set stack yang baru
Prosedur C menandai proses servis siap (ready)
Scheduler / penjadwalan menentukan proses mana yang akan jalan berikutnya
Prosedur C kembali ke modus bahasa rakitan
Prosedur bahasa rakitan memulai proses yang sedang dilaksanakan.
Komunikasi antar proses
(Inter Process Communinication / IPC) :
Komunikasi
Proses



Proses
Beberapa proses biasanya berkomunikasi dengan proses lainnya.
Contohnya pada shell pipe line : output dari proses pertama harus diberikan kepada proses ke dua
dan seterusnya.
Pada beberapa sistem operasi, proses-proses yang bekerja bersama sering sharing (berbagi) media
penyimpanan, dimana suatu proses dapat membaca dan menulis pada shared storage (main
memory atau files)
Masalah – masalah pada IPC :
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
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.
Critical Section / seksi kritis :
Bagian dari program yang mengakses shared memory, yang dapat menyebabkan terjadinya race
condition.
4 kondisi untuk mencegah race condition :
a. Tidak ada 2 proses yang memasuki critical sectionnya secara bersamaan / simultan
b. Tidak ada asumsi yang dibuat yang berhubungan dengan kecepatan dan jumlah CPU
c. Tidak ada proses yang berjalan diluar critical section-nya yang dapat memblokir proses-proses lain
d. Tidak ada proses yang menunggu selamanya untuk masuk ke critical section-nya.
Mutual Exclusion (MuTex) With Busy Waiting :
Jika suatu proses sedang mengakses shared memory di critical sectionnya, tidak ada satu prosespun
yang dapat memasuki critical section (mutual exclusion) dan menyebabkan masalah.
Jenis-jenis mutual exclusion :
1. Disabling interrupt / mematikan interupsi
Dengan cara mematikan interupsi yang masuk pada saat proses sedang berada pada critical
section-nya. Cara ini kadang cukup berguna untuk kernel tetapi tidak untuk user. Dan cara inipun
tidak terlalu baik untuk CPU yang jumlahnya lebih dari satu, dimana disable interrupt hanya
mengenai CPU yang sedang menjalankan proses itu dan tidak berpengaruh terhadap CPU lain
2. Lock variables
Setiap proses yang akan mengakses ke critical section-nya harus meng-cek lock variable. Jika 0
berarti proses dapat memasuki critical section-nya dan jika 1 maka proses harus menunggu sampai
lock variable = 0. Kelemahannya adalah 2 proses masih dapat memasuki critical section-nya pada
saat yang bersamaan. Sewaktu satu proses meng-cek lock variable = 0, pada saat akan men-set 1
ada interupsi untuk melaksanakan proses lain yang juga ingin memasuki critical sectionnya, maka
akan terjadi race condition.
3. Strict alternation
Dengan mengamati variable turn untuk menentukan siapa yang akan memasuki critical section-nya
bukanlah ide yang baik jika proses lebih lambat dari yang lain.
Contohnya :
While (true)
{
while (turn != 0)
/*wait*/;
critical_section ( );
turn = 1;
noncritical_section ( );
}
while (true)
{
while (turn != 1)
/*wait*/;
critical_section ( );
turn = 0;
noncritical_section ( );
}
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];
void enter_region(int process)
/*nilai awal di-set = 0 (false)*/
/*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)
}
5.
6.
7.
void leave_region(int process)
/*proses yang selesai*/
{
interested[process] = FALSE;
/*meninggalkan critical region*/
}
Test and Set Lock Instruction / Instruksi TSL
Dengan bantuan hardware, menentukan siapa yang berhak memasuki critical_region (section)
Contoh :
Enter_region :
Tsl reg,flag
| copy flag ke reg dan set flag = 1
Cmp reg,#0
| apakah flag = 0
Jnz enter_region
|jika <> 0 loop lagi
Ret
|return ke caller, masuk critical region
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.
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)
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
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
Dua macam operasi terhadap semaphore :
1. DOWN(S) :
If S >= 0 then
S := S-1;
Else sleep (S)
End;
2. UP(S) :
S := S + 1;
If S <= 0 then wakeup(S)
End;
Operasi DOWN dan UP merupakan operasi yang bersifat Atomic (Atomic Action).
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
8.
Masalah Klasik IPC :
 The Dining Philosopher Problem
- 5 philosophers yang kerjanya hanya makan dan berfikir
- tersedia lima piring spaghetti dan lima sumpit
- untuk makan dibutuhkan bua buah sumpit
- problem-nya bagaimana cara menulis program agar setiap philosopher dapat berfikir dan makan
tanpa harus saling menunggu ?
 The Readers and Writers Problem
- Model akses database
- 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
Proses dalam Sistem Terdistribusi
Thread
Computer
Process
(a)
Computer
Thread
Program Counter
(b)
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)
Ada 3 model process pada server :
1. thread di ciptakan untuk dapat melakukan paralelisme yang dikombinasikan dengan eksekusi
sekuensial dan blocking system calls
2. single treads server, menggunakan blocking system calls, tetapi kinerja sistem tidak baik
3. finite-state machine, kinerja baik dengan melakukan parallelisme, tetapi menggunakan nonblocking
calls, sehingga sulit dalam memprogram
Status proses terhadap prosesor :
1. Status proses tanpa henti
Mulai
2.
Kerja
Selesai
Status proses sambil bekerja dan terhenti
Mulai
Kerja
Selesai
Terhenti
3.
Status proses dengan status siap
Mulai
Siap
Kerja
Terhenti
Terhenti
TEKNIK PENJADWALAN PROSESOR
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
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.
2 siklus kerja prosesor :
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.
2 jenis kerja / proses :
1. Tugas / proses sistem, berasal dari program sistem yaitu dari sistem bahasa, utilitas, operasi, dimana
prosesor melayani sistem (prosesor dikuasai sistem / kontek sistem)
2. Tugas / proses aplikasi, berasal dari program aplikasi, dimana prosesor melayani aplikasi (prosesor
dikuasai aplikasi / kontek aplikasi)
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
Proses Serentak Berpenggalan :
Ada penggalan dari 1 proses yang berselingan dengan penggalan dari proses lain dan ada penggalan
dari proses pertama yang bertumpang tindih waktu dengan penggalan proses kedua.
A
A1
A2
B
B1
B2
C
C1
C2
Istilah dalam penjadwalan proses :
 Scheduler adalah bagian sistem operasi yang mengatur penjadwalan eksekusi proses-proses.
 Algoritma penjadwalan (scheduling algorithm) adalah algoritma yang digunakan.
 Penjadwalan Proses
o Antrian, karena banyak proses yang muncul secara serentak maka dibuat antrian di depan
prosesor, yang berada dalam keadaan siap dan hanya ada 1 proses yang berada dalam status
kerja
o Prioritas, mendahulukan pada antrian proses karena tidak semua proses sama pentingnya,
sehingga dibuat suatu prioritas. Dalam prioritas, pekerjaan pada prosesor diselesaikan dahulu
baru proses berprioritas akan di proses
o Preempsi, sama dengan prioritas, tetapi pada preempsi jika ada proses yang mendapatkan
preempsi maka preemsi akan menghentikan kerja prosesor dan mengeluarkan pekerjaan di
dalam prosesor itu, sehingga proses berpreempsi dapat dilayani prosesor. Dan setelah proses
berpreempsi selesai dilaksanakan, prosesor akan melaksanakan sisa proses yang dikeluarkan
dari pekerjaannya tadi

Jangka penjadwalan
Semua antrian dan penantian (contohnya yang dikeluarkan karena preempsi.
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

Perhitungan kerja prosesor
• t adalah lama proses pada prosesor, lama waktu sesungguhnya yang diperlukan untuk mengolah
proses dalam prosesor.
• T adalah lama tanggap pada prosesor, lama waktu yang diperlukan oleh prosesor sejak tiba
sampai dengan rampung diolah oleh prosesor, terdapat waktu tunggu dalam antrian / dalam
preempsi.
o Lama tanggap turn around time, yaitu memperhitungkan lama waktu yang diperlukan oleh
proses untuk keluaran
o Lama tanggap respon time, yaitu tidak memperhitungkan lama waktu yang diperlukan oleh
proses untuk keluaran
• Tr adalah lama tanggap rata-rata, yaitu perbandingan lama tanggap setiap proses (Ti) dengan
jumlah proses serentak yaitu Tr = Σ Ti / N
• S adalah waktu sia-sia, waktu yang terbuang di dalam antrian / selama terkena preempsi yaitu
selisih antara lama tanggap dengan lama proses (T-t)
• Rt adalah rasio tanggap, perbandingan antara lama proses terhadap lama tanggap, Rt = t / T
• Rp adalah rasio penalti, perbandingan antara lama tanggap terhadap lama proses, Rp = T/t dan
karena t ≤ T, maka Rt < 1 dan Rp >1
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
Penjadwalan Satu Tingkat
 Pertama Tiba Pertama Dilayani (PTPD) / First Come First Served (FCFS)
Penjadwalan ini murni antrian, tanpa prioritas tanpa preempsi.
Nama Proses
A
B
C
D
E
Saat Tiba
0
0
0
0
0
⇓
serentak
Lama Proses
9
30
4
8
12
Saat Mulai
0
9
39
43
51
Saat Rampung
9
39
43
51
63
Σ Ti
Tr
Lama Tanggap
9
39
43
51
63
205
41
Tr cukup besar, jika dibandingkan dengan lama tanggap dari masing-masing proses.
Nama Proses
A
B
C
D
Saat Tiba
0
1
3
7
Lama Proses
4
7
3
8
Saat Mulai
0
4
11
14
Saat Rampung
4
11
14
22
Σ Ti
Tr
Lama Tanggap
4
10
11
15
40
10
Lama tanggap ≠ saat rampung karena perbedaan saat tiba.
 Proses Terpendek Dipertamakan (PTD) / Shortest Job First (SJF)
Penjadwalan ini adalah antrian dengan prioritas tanpa preempsi, yang menjadi prioritas adalah proses
yang terpendek (tersingkat), makin pendek proses, makin tinggi prioritasnya.
Nama Proses
A
B
C
D
E
Saat Tiba
0
0
0
0
0
Lama Proses
11
8
10
3
5
Saat Mulai
Saat Rampung
Lama Tanggap
Saat Tiba
0
0
0
0
0
⇓
serentak
Lama Proses
3
5
8
10
11
⇓
prioritas
Saat Mulai
0
3
8
16
26
Saat Rampung
3
8
16
26
37
Σ Ti
Tr
Lama Tanggap
3
8
16
26
37
90
18
Saat Rampung
Lama Tanggap
Nama Proses
D
E
B
C
A
Tr lebih singkat, jika dibandingkan dengan PTPD
Nama Proses
A
B
C
D
Saat Tiba
0
3
5
6
Lama Proses
5
7
2
4
Saat Mulai
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 :
Saat
Proses
A
↓
0
Nama
Proses
A
C
D
B
1
A
B
↓
3
2
A
A
Saat
Tiba
0
5
6
3
C D
↓
↓
4
5
6
7
8
9 10 11 12 13 14 15 16 17 18
A
A
C C D D
D
D
B
B
B
B
B
B
B
Lama
Proses
5
2
4
7
Σ=18
Saat
Mulai
0
5
7
11
Saat Rampung
Lama Tanggap
5
7
11
18
Σ Ti
Tr
5
2
5
15
27
6.75
Keuntungan : memperkecil rata-rata lama tanggap
Kelemahan : layanan terhadap proses panjang bisa tidak terlayani jika proses pendek datang terus.

Nama
Proses
A
B
C
D
E
Saat
Tiba
0
4
6
9
14
Lama
Proses
8
5
3
8
4
Saat
Mulai
Saat Rampung
Lama Tanggap
Nama
Proses
A
C
B
E
D
Saat
Tiba
0
6
4
14
9
Lama
Proses
8
3
5
4
8
Saat
Mulai
0
8
11
16
20
Saat Rampung
Lama Tanggap
8
11
16
20
28
Σ Ti
Tr
8
5
12
6
19
50
10
Proses Terpendek Dipertamakan Preempsi (PTDP)
Preemptive Shortest Job First (PSJF)
Penjadwalan ini dengan prioritas dengan preempsi, yang menjadi pioritas adalah sisa proses.
Proses yang terpendek bisa didahulukan dengan cara membandingkan sisa waktu proses yang
sedang dilaksanakan dengan proses yang tiba, dengan preempsi mengeluarkan proses yang
sedang diolah untuk melaksanakan proses yang lebih pendek / singkat.
Nama
Proses
A
B
C
D
S
t
Pro
s
•
•
•
•
•
•
•
Saat
Tiba
0
2
4
5
Lama
Proses
7
3
9
4
Saat
Mulai
Saat Rampung
Lama Tanggap
A
B
C D
↓
↓
↓ ↓
0 1 2 3 4 5 6 7 8 9 1 1 1 1 1 1 1 1 1 1 2 2 2 2
A A B B B DDDDA A A A A CCCCCCCCC
Pada saat 0, proses A dikerjakan karena A datang pertama
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
Nama
Proses
A
B
C
D
Saat
Tiba
0
2
4
5
Lama
Proses
7
3
9
4
Σ=23
Saat
Mulai
0
2
15
5
Saat Rampung
Lama Tanggap
14
5
23
9
Σ Ti
Tr
14
3
19
4
40
10
Karena preempsi, PTDP lebih baik dari PTD dalam hal kecilnya Tr, tetapi untuk proses panjang lebih lama
dibandingkan PTD.

Nama
Proses
A
B
C
D
Saat
Tiba
0
2
4
5
Lama
Proses
8
5
7
1
Saat
Mulai
Saat Rampung
Lama Tanggap
Nama
Proses
A
B
C
D
Saat
Tiba
0
2
4
5
Lama
Proses
8
5
7
1
Saat
Mulai
0
2
14
5
Saat Rampung
Lama Tanggap
14
8
21
6
Σ Ti
Tr
14
6
17
1
38
9.5
Rasio Penalti Tertinggi Dipertamakan (PTD) /
Highest Penalti Ratio Next (HPRN)
Penjadwalan dengan prioritas tanpa preempsi. Yang menjadi prioritas adalah besarnya rasio pinalti.
Tetap mendahulukan proses pendek ditambah dengan mempertimbangkan rasio penaltinya, yang
ditentukan berdasarkan lama waktu antriannya. Sehingga prioritas proses panjang akan turut
meningkat melalui peningkatan rasio pinalti, sehingga pada suatu saat proses panjang pada antrian
yang telah lama menunggu akan menyusul proses pendek. S = (T-t) ; Rp = T/t = (s+t)/t
Nama
Proses
A
B
C
D
E
Saat
Tiba
0
1
2
3
4
Lama
Proses
4
2
5
8
4
Saat
Mulai
Saat Rampung
Lama Tanggap
Nama Proses
B
C
D
E
Waktu sia-sia
4-1=3
4-2=2
4-3=1
4-4=0
Rasio Penalti
(3 + 2) / 2 = 2,5
(2 + 5) / 5 = 1,4
(1 + 8) / 8 = 1,125
(0 + 4) / 4 = 1
Nama Proses
C
Waktu sia-sia
6-2=4
Rasio Penalti
(4 + 5) / 5 = 1,8
Rp>>
Rp>>
D
E
Nama Proses
D
E
S
t
Pro
s
(3 + 8) / 8 = 1,375
(2 + 4) / 4 = 1,5
Waktu sia-sia
11 - 3 = 8
11 - 4 = 7
Rasio Penalti
(8 + 8) / 8 = 2
(7 + 4) / 4 = 2,75
Rp>>
A B CD E
↓ ↓ ↓ ↓ ↓
0 1 2 3 4 5 6 7 8 9 1 1 1 1 1 1 1 1 1 1 2 2 2 2
A A A A B B CCCCCE E E E DDDDDDDD
Nama
Proses
A
B
C
D
E

6-3=3
6-4=2
Saat
Tiba
0
1
2
3
4
Lama
Proses
4
2
5
8
4
Σ=23
Saat
Mulai
0
4
6
15
11
Saat Rampung
Lama Tanggap
4
6
11
23
15
Σ Ti
Tr
4
5
9
20
11
49
9.8
Putar Gelang (PG) / Round Robin (RR)
Penjadwalan ini tanpa prioritas, dengan preempsi. Secara bergiliran berdasarkan antrian (tanpa
prioritas) prosesor melayani sejenak setiap proses tergantung besarnya quantum waktu. Secara
berturut-turut proses yang dilayani prosesor dan belum rampung akan kembali ke akhir antrian yang
ada, sehingga pergiliran ini berputar seperti gelang. Dan hanya proses yang telah rampung terlayani
yang meninggalkan prosesor dan antrian tersebut. Jadi setiap proses dilayani selama quantum waktu
tertentu secara bergiliran.
Quantum waktu : waktu sejenak yang digunakan oleh prosesor untuk melayani setiap proses.
Perubahan quantum waktu membedakan hasil layanan terhadap antrian yang sama.
Contoh dengan Q = 3
Nama
Saat
Proses
Tiba
A
0
B
0
C
0
D
0
E
0
Lama
Proses
7
5
8
2
6
Saat
Mulai
Saat Rampung
Lama Tanggap
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 24 25 26 27 28
Proses 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
Nama Proses
A
C
B
E
Saat
Tiba
0
0
0
0
Lama
Proses
7
5
8
2
Saat Mulai
Saat Rampung
Lama Tanggap
0
3
6
9
26
19
28
11
26
19
28
11
D
0
Dengan Q = 2
Nama
Proses
A
B
C
D
E
S
t
Pro
s
Saat
Tiba
0
1
5
6
7
6
Σ = 28
Lama
Proses
5
3
7
1
6
11
Saat
Mulai
25
Σ Ti
Tr
Saat Rampung
25
109
21.8
Lama Tanggap
A B
CDE
↓ ↓
↓ ↓ ↓
0 1 2 3 4 5 6 7 8 9 1 1 1 1 1 1 1 1 1 1 2 2 2
A
Nama
Proses
A
B
C
D
D
A B B A A B CCDE E A CCE E CCE E C
Saat
Tiba
0
1
5
6
7
Lama
Proses
5
3
7
1
6
Saat
Mulai
0
2
7
9
10
Saat Rampung
Lama Tanggap
13
7
22
10
21
Σ Ti
Tr
13
6
17
4
14
54
10,4
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.
Penjadwalan dengan prioritas berubah-ubah
Penjadwalan yang menggunakan prioritas dapat diubah-ubah menjadi prioritas lainnya.
1.
Penjadwalan tanpa preempsi dengan prioritas berubah-ubah P = f(s,t,u)
Dengan : p = prioritas;
s = waktu sia sia;
t = lama proses u = tarif sewa
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
Tanpa
Prioritas
PTPD
Dengan
Prioritas
PTD / RPTD
Preempsi
Dengan
Preempsi
PG
PTDP
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.

Antrian Multi Tingkat (Multi level queue)
Mengumpulkan proses-proses yang berkepentingan sama dalam 1 tingkat. Proses dikerjakan tingkat
demi tingkat dari tingkat tertinggi sampai dengan tingkat terendah dimana setiap tingkat telah
rampung dikerjakan
Tingkat 1 c/ proses pd sistem operasi
P
R
O
S
E
S
O
R
Tingkat 2 c/ proses pd prog. Interaktif
Tingkat 3 c/ proses pd program edit
Tingkat 4 c/ proses pd tumpukan
Tingkat 5 c/ proses pd borongan

Antrian Multi Tingkat Berbalikan /
Feedback multi level queue
Tingkat 1
P
Rampung
P
Rampung
P
Rampung
Preempsi
Tingkat 2
Preempsi
Tingkat 3
Preempsi
Tingkat n
Rampung
Metoda Evaluasi Penjadwalan

evaluasi analitik
a. pemodelan deterministik
pekerjaan sudah ditetapkan terlebih dahulu, menerapkan berbagai penjadwalan dan dievaluasi
hasilnya.
Nama proses
A
B
C
D
E
Saat tiba
0
0
0
0
0
Dari tabel tersebut dapat kita cari :
Macam penjadwalan
Rerata lama tanggap
PTPD
42,4
PTD
29,2
PG (Q=8)
38,4
Lama proses
12
30
2
8
10
Rerata waktu sia-sia
30
14
28
Keuntungan : ketepatan untuk menunjukkan rata-rata lama tanggap / rata-rata waktu sia-sia
Kelemahan : hasil evaluasi hanya berlaku untuk proses yang telah ditetapkan
b.


analisis model antrian
menganggap sistem komputer sebagai suatu jaringan alat layan, menggunakan rumus distribusi
probabilitas untuk memperkirakan bentuk antrian dan bentuk pelaksanaan proses. Sasaran
rumus distribusi probabilitas adalah untuk lama proses, saat tiba dan kecepatan layan. Sehingga
dapat menentukan analisis jaringan antrian, dengan ditetapkan rumus litte, yaitu : n = u . s,
dengan n = rerata panjang antrian, s = rerata waktu sia-sia / waktu tunggu, u = rerata
kecepatan tiba proses baru.
Kelemahan : Pengambilan model cukup rumit untuk sistem tertentu dan model tidak selalu
cocok dengan keadaan yang sebenarnya
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.
MANAJEMEN MEMORI
Memory manager :
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.
-
Memori Dukung / backing store
Contohnya : Floppy, Harddisk, CD, dll.
Untuk mendukung memori kerja, umumnya berbentuk disk sehingga berlaku juga asas
pemuktakhiran. Setiap trek dan sektor dapat menyimpan sejumlah byte dari memori kerja. Memori
kerja dicapai melalui alamat memori dan register data memori. Dan untuk mencapai informasi di
memori dukung, isinya harus dipindahkan dulu ke memori kerja (memori dukung = memori semu =
virtual memori).
Memori
dukung
Pindah masuk
Memori
kerja
Pindah keluar
1 pindahan = 1 blok, makin kecil ukuran memori kerja, makin sering terjadi pindahan.
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.
Alamat relatif
0
1
2
3
…
Alamat mutlak
14726
14727
14728
14729
…
Relokasi
14726
14726
14726
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.
Fungsi manajemen memori :
• Mengelola informasi yang dipakai dan tidak dipakai.
• Mengalokasikan memori ke proses yang memerlukan.
• Mendealokasikan memori dari proses telah selesai.
• Mengelola swapping atau paging antara memori utama dan disk.
Pemuatan informasi ke memori :
1. Pemuat / loader, menyalin informasi ke memori kerja.
a. pemuatan mutlak
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.
Pengutipan / pembacaan isi memori :
1. Pengutipan oleh prosesor
Untuk melaksanakan pekerjaan yang dalam informasi itu, yang merupakan tugas dan proses dan
dilakukan sel memori per sel memori.
2. Pengutipan oleh memori dukung / arsif
Untuk menyimpan informasi tersebut di dalam memori dukung / arsif sehingga mereka tidak hilang
ketika catu daya dimatikan. Isi memori kerja disimpan ke dalam disk memori dukung / disket memori
arsif. Kemudian di dalam disk / disket, informasi direkam ke dalam sector, setelah 1 sektor penuh,
maka berpindah ke sektor lainnya. Pengutipan ini dilakukan blok demi blok yang biasanya merupakan
kelipatan bulat dari ukuran sektor.
3. Pengutipan oleh pencetak / printer
Untuk mencetak isi memori ke atas kertas, pengutipan secara blok demi blok.
4. Pengutipan oleh alat peripheral lainnya
Contoh pada komunikasi data melalui jaringan, pengutipan mengikuti suatu protocol tertentu,
misalnya protocol OSI (open system Interconnection) dari ISO (international standard organization)
yang terdiri dari 7 lapis / layer.
Akses memori langsung / DMA (Direct Memory Access)
Melakukan pemindahan informasi dari dan ke memori kerja tanpa campur tangan langsung dari prosesor.
Prosesor hanya diinterupsi saat akses tersebut dimulai dan selesai.
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.
Batas Atas BA6
Sistem Operasi
6
Batas Bawah BB6
Batas Atas BA5
5
BA4
BB4
4
BA3
Batas Bawah BB5
BA2
3
BB3
BB2
2
1
unused
BA1
BB1
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.
Manajemen Memori Berdasarkan Keberadaan Swapping atau Paging
Terbagi dua yaitu :
1. Manajemen tanpa swapping atau paging
2. Manajemen dengan swapping atau paging
Memori Tanpa Swapping atau Paging
 Yaitu manajemen memori tanpa pemindahan citra proses antara memori utama dan disk selama
eksekusi.
 Terdiri dari :

Monoprogramming
Ciri-ciri :
• Hanya satu proses pada satu saat
• Hanya satu proses menggunakan semua memori
• Pemakai memuatkan program ke seluruh memori dari disk atau tape
• 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).
Sistem Operasi
di RAM
Sistem Operasi
di ROM
Sistem Operasi
di RAM
Program
Pemakai
di RAM
Program
Pemakai
di RAM
Program
Pemakai
di RAM
Memori Tidak
Dipakai
Memori Tidak
Dipakai
Memori Tidak
Dipakai
Device
Driver
= RAM
= ROM
Tiga Cara Organisasi Memori Satu Proses Tunggal

Multiprogramming Dengan Pemartisian Statis
Terbagi dua :
1. Pemartisian menjadi partisi-partisi berukuran sama, yaitu ukuran semua partisi memori adalah
sama
2. Pemartisian menjadi partisi-partisi berukuran berbeda, yaitu ukuran semua partisi memori
adalah berbeda.
Strategi Penempatan Program Ke Partisi
 Satu Antrian Tunggal Untuk Semua Partisi
Keuntungan
: Lebih fleksibel serta implementasi dan operasi lebih minimal karena hanya
mengelola satu antrian.
Kelemahan : Proses dapat ditempatkan di partisi yang banyak diboroskan, yaitu proses kecil
ditempatkan di partisi sangat besar.
Partisi 1
50 Kbyte
Partisi 2
75 Kbyte
Partisi 3
100 Kbyte
200 Kbyte
Partisi 4
150 Kbyte
Partisi 5
Sistem Operasi
Multiprogrammning dengan Pemartisian Tetap dengan Satu Antrian

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
Partisi 1
50 Kbyte
Partisi 2
75 Kbyte
Partisi 3
100 Kbyte
Partisi 4
200 Kbyte
150 Kbyte
Partisi 5
SSSistem Operasi
100 Kbyte
Multiprogrammning dengan Pemartisian Tetap dengan Banyak Antrian
Multiprogramming Dengan Swapping
Swapping : pemindahan proses dari memori utama ke disk dan kembali lagi.
1. Multiprogramming dengan Pemartisisan Dinamis
Jumlah , lokasi dan ukuran proses di memori dapat beragam sepanjang waktu secara dinamis.
Kelemahan:
- Dapat terjadi lubang-lubang kecil memori di antara partisi-partisi yang dipakai.
- Merumitkan alokasi dan dealokasi memori
Solusi:
Lubang-lubang kecil di antara blok-blok memori yang digunakan dapat diatasi dengan pemadatan memori
yaitu menggabungkan semua lubang kecil menjadi satu lubang besar dengan memindahkan semua
proses agar saling berdekatan.
MMMemori Untuk
Sistem Operasi
MMMemori Untuk
Sistem Operasi
Proses 0
Proses 0
Bebas
Proses 2
Proses 2
Proses 4
Bebas
Proses 6
Proses 4
Bebas
Bebas
Proses 6
Lubang-lubang Memori dan Pemadatan Memori
2. Pencatatan Pemakaian Memori
 Pencatatan memakai peta bit (Bit Map)
 Pencatatan memakai linked list
Pencatatan memakai peta bit
- Nilai 0 pada peta bit berarti unit masih bebas
- Nilai satu berarti unit digunakan / terisi
Setelah penggalan memori rampung dipakai, maka keadaan bit akan berubah dari 1 ke 0, begitupun
sebaliknya. Jika jumlah penggalan memori kerja benar, maka bit menjadi panjang dan pemeriksaan
keadaan penggalan memori kerja akan lama.
A
0
B
C
7
0
1
1
1
...
1
1
1
1
...
2
1
1
0
...
3
1
1
0
...
15
4
1
1
1
...
5
0
1
1
...
6
0
1
1
...
23
7
0
1
1
...
Peta Bit untuk Pengelolaan Pemakaian Memori
Pencatatan memakai Linked List
• P= Proses, H=Hole(lubang)
A
0
P
B
C
7
0
5
H
H
18
2
Hole
Panjang=2
Start
Di 18
5
15
3
P
P
20
8
6
23
P
14
4
3
Proses
Pengelolaan Pemakaian dengan Linked List
3.
Strategi Alokasi Memori
Pencocokan / FIT
Karena ukuran penggalan memori tidak selalu sama besar, maka dibutuhkan pencocokan ukuran dari
memori dukung dengan ukuran penggalan memori di memori kerja.
1. Cocok pertama / First fit algorithm
Pencocokan terjadi menurut antrian informasi, informasi yang terdepan dicocokkan terlebih dahulu
dan menurut urutan penggalan, penggalan yang terdepan dicocokkan terlebih dahulu.
Contoh : Antrian informasi setiap ukuran.
5K
3K
1K
2K
4K
3K
Urutan
Pemenggalan
Memori
Setiap
Ukuran
2K
6K
2. Cocok pertama berdaur / Cyclical first fit
Pencocokan tidak harus dimulai dari urutan penggalan memori pertama.
Contoh : informasi 2K telah menempati penggalan 4 K, pencocokan cocok pertama berdaur bagi
informasi 1K tidak lagi mencoba penggalan 4K tetapi 3K dan karena penggalan memori ini dapat
menampung informasi tersebut, maka pada cocok pertama berdaur informasi 1K menempati memori
3K.
3. Cocok terbaik / best fit
Mencari penggalan memori yang dapat menampung informasi yang paling pas / tidak ada memori di
penggalan yang tersisa / sisanya yang paling kecil.
Contohnya informasi pertama 2K mencari penggalan informasi yang terpas yaitu pada penggalan
memori 2K juga / tidak ada sisa.
4. Cocok terburuk / worst fit
Kebalikan dari cocok terbaik yaitu akan menempati penggalan yang ukurannya terbesar sehingga
banyak ruang memori pada penggalan itu yang tidak terpakai.
Contohnya informasi 2K akan menempati penggalan berukuran 6K sisa yang tidak terpakai = 4K.
Sistem Buddy / Konco
Memori di susun dalam senarai blok-blok bebas berukuran 1,2,4,8,16 Kbyte dst, sampai kapasitas
memori.
Permintaan : A = 70 Kb; B = 35 Kb; C = 80 Kb; D = 60 Kb
1024
A
A
A
128
128
128
128
B
64
B
64
B
64
D
D
256
256
256
C
C
C
C
C
512
512
512
512
512
512
512
128
128
128
128
128
1024
Pengelolaan Memori dengan Sistem Buddy
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
eksternal
1K
1K
2k
Alokasi Ruang Swap pada Disk
(Penempatan proses pada disk setelah di-swap-out dari memori)
- Ruang disk tempat swap dialokasikan begitu diperlukan
- Ruang disk tempat swap dialokasikan lebih dahulu.
Algoritma untuk pengaturan ruang swap pada disk sama dengan untuk memori utama. Perbedaannya
adalah ruang pada disk harus dialokasikan sebagai kelipatan bilangan bulat dari disk block.
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
Daerah Overlay
1
2
3
Fase
Inisialisasi
Fase
Pemrosesan
Fase
Keluaran
Struktur Umum Overlay
Virtual memory (Memori maya) :
sistem operasi menyimpan bagian-bagian proses yang sedang digunakan di memori utama dan
sisanya di disk.
Virtual memory dapat diimplementasikan dengan tiga cara, yaitu:
 Paging
 Segmentasi
 Kombinasi paging dan segmentasi
1.
Paging
Sistem paging mengimplementasikan ruang alamat besar pada memori kecil menggunakan index
register, base register, segment register, dll.
Istilah pada sistem paging:
- Alamat virtual = V; Alamat yg dihasilkan dgn perhitungan menggunakan index register, base register,
segment reg dsb.
- Alamat nyata (real address = R); Alamat yang tesedia di memori utama fisik.
- Page; Unit terkecil virtual address space.
- Page frame; Unit terkecil memori fisik.
- Page fault; Permintaan alokasi page ke memori yang belum dipetakan.
- MMU (Memory Management Unit); Chip atau kumpulan chip yang memetakan alamat maya ke
alamat fisik.
CPU
card
CPU
MMU
CPU
mengirim
alamat
virtual
ke MMU
MEMORI
DISK
CONTROL
LER
BUS
MMU mengirim alamat fisik ke memori
Posisi dan fungsi MMU
Alamat
0–4 K
4K–8 K
8 K – 12 K
12 K – 16 K
16 K – 20 K
20 K – 24 K
24 K – 28 K
28 K – 32 K
32 K – 36 K
36 K – 40 K
40 K – 44 K
44 K – 48 K
48 K – 52 K
52 K – 56 K
56 K – 60 K
60 K – 64 K
Memori
Mem
2
1
6
0
4
3
X
X
X
5
X
7
X
X
X
X
0–4 K
4K–8 K
8 K – 12 K
12 K – 16 K
16 K – 20 K
20 K – 24 K
24 K – 28 K
28 K – 32 K
Page
Virtual
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.
0
0
1
0
Nomer page = 2
Tabel Page
0
0
0
0
0
0
0
0
0
0
1
0
0
1
0
0
Offset 12 bit dicopy persis dari input ke output
0
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
1
0
010
001
110
000
100
011
000
000
000
101
000
111
000
000
000
000
0
0
1
1
1
1
1
1
0
0
0
1
0
1
0
0
0
0
Present/absent bit
110
0
0
0
0
0
0
Cara Kerja Pemetaan oleh MMU
Nomer Page
0
0
Offset
Tabel Page
Nomer Frame
Offset
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
1
1
1
1
1
1
1
1
No. page
Modified
Protection
No. frame
140
20
130
129
19
21
860
861
1
0
1
1
0
0
1
1
RW
R X
RW
RW
R X
R X
RW
RW
31
38
29
62
50
45
14
75
Memori asosiatif untuk mempercepat paging
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.
ALGORITMA PENGGANTIAN PAGE
Saat terjadi fault berarti harus diputuskan page frame yang harus diganti.
1. Algoritma penggantian page acak:
Page yg dikeluarkan untuk memberi tempat ke yang baru ditentukan secara acak tanpa kriteria
tertentu.
2. Algoritma penggantian page optimal:
Setiap page diberi label untuk menandai berapa instruksi lagi baru dia digunakan. Page dengan label
tertinggi (waktu dari sekarang sampai pemakaian berikutnya paling lama) yang akan dikeluarkan.
Algoritma Penggantian Page Optimal
String Pengacuan
2
3
2
2
3
Fault
F
F
2
2
3
1
2
3
1
F
5
2
3
5
F
2
2
3
5
4
4
3
5
F
5
4
3
5
3
4
3
5
2
2
3
5
F
5
2
3
5
2
2
3
5
6 Fault
3. Algoritma penggantian page NRU (not recently used):
Setiap page diberi status bit R (referenced) dan
M (modified).
Bit bernilai 0 jika page belum direferensi/dimodifikasi, dan 1 jika sebaliknya. Dari nilai desimalnya
didapat 4 kelas:
R
M
Kelas
Keterangan
0
0
0
not referenced,
not modified
0
1
1
not referenced,
modified
1
0
2
referenced,
not modified
1
1
3
referenced,
modified
Page dengan kelas terkecillah yang akan dikeluarkan
4. Algoritma penggantian page FIFO (First In First Out):
Page yang paling dulu masuk ke memori dari semua page yang ada dikeluarkan.
Algoritma Penggantian Page FIFO
String Pengacuan
2
3
2
1
5
2
4
5
3
2
5
2
2
2
2
2
2
4
4
4
2
2
3
3
3
3
3
3
3
3
3
3
1
5
5
5
5
5
5
5
Fault
F
F
F
F
F
F
F
2
2
3
5
F
8 Fault
Anomali pada FIFO (Belady’s Anomaly)
String Pengacuan
0
1
Page Termuda
0
1
0
Page Tertua
Fault
F
F
String Pengacuan
Page Termuda
0
0
1
1
0
Page Tertua
Fault
F
F
2
2
1
0
2
2
1
0
3
3
2
1
3
3
2
1
0
0
0
3
2
F
(a)
1
1
0
3
F
4
4
1
0
F
0
4
1
0
0
3
2
1
0
F
(b)
1
3
2
1
0
F
4
4
3
2
1
F
0
0
4
3
2
1
4
1
0
F
2
2
4
1
1
1
0
4
3
F
2
2
1
0
4
3
3
2
4
F
4
3
2
4
F
9 Fault
3
3
2
1
0
F
4
4
3
2
1
F
10 Fault
5. Algoritma penggantian page Modifikasi FIFO (Second Chance):
Mencari page yang berada di memori paling lama, tetapi juga tidak dipakai.
Jika sebuah page dipakai (direferensi) bit R diset. Jika sistem menemukan bahwa bit R page yang
paling lama ter-set, page tersebut tidak jadi dikeluarkan, tetapi bit R-nya di-reset.
0
A
Waktu load
3
B
7
C
8
D
12
E
Page yang di-load pertama kali
14
F
15
G
18
H
Page yang terakhir di-load.
(a) Page dalam urutan FIFO
3
B
Waktu load
7
C
8
D
12
E
14
F
15
G
18
H
20
A
A dianggap sebagai page yang baru di-load.
(b) Daftar page setelah page fault pada waktu 20 dan bit R page A dalam keadaan set.
Pada algoritma ini, daftar page bisa juga dibuat berbentuk jam (clock page replacement algorithm)
Algoritma penggantian page clock
String
2 3 2 1
5
2
4
5
3
2
5
2
Pengacuan
> 2 2 2 >2*
2*
2*
2* >2*
>2 >2*
>2*
>2*
> 3 3 3
5
5
5
5*
5
5
5*
5*
> > 1
>1 >1 4
4
3
3
3
3
Fault
F F
F
F
F
F
6 Fault
Keterangan : * adalah diacu dan > adalah ditunjuk pointer
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
4
4
3
3
3
3
3
3
5
5
5
5
5
5
5
1
1
1
4
4
4
2
2
Fault
F
F
F
F
F
F
F
2
3
5
2
7 Fault
ISU DISAIN SISTEM PAGING
1. Model Working Set
 Dalam bentuk paging murni, proses dimulai dengan memori kosong, dan page-page dimasukkan ke
dalamnya setelah diminta. Cara ini disebut demand paging.
 Locality of reference: Kecenderungan proses untuk memakai satu set page yang sama selama
beberapa saat.
 Satu set page tersebut di atas membentuk working set. Dalam hal ini, yang diusahakan oleh sistem
operasi adalah agar working set berada utuh di memori pada saat eksekusinya.
 Jika ukuran memori terlalu kecil untuk working set, akan seringkali terjadi page fault. Hal ini disebut
thrashing.
 Banyak sistem paging yang mengusahakan agar working set sudah ada di memori sebelum proses
dimulai. Pendekatan ini disebut model working set. Tujuannya adalah untuk memperkecil jumlah
terjadinya page fault (page yang diminta tidak ada di memori).
 Memasukkan page ke memori sebelum proses dimulai juga disebut prepaging.
 Untuk pertama kali menentukan working set, dipakai sistem aging untuk mengetahui berapa kali
jumlah pemakaian setiap page.
2. Alokasi Global dan Lokal
o
Pada sistem timesharing, isi memori bisa seperti pada Gambar a.
o
Misalkan diminta page A6. Jika dikeluarkan A5 untuk memberi tempat ke A6, berarti dilakukan
alokasi lokal. Bila yang dikeluarkan adalah B3, dilakukan alokasi global.
o
Algoritma lokal berhubungan dengan pemberian jumlah frame yang sama untuk setiap proses,
sementara algoritma global secara dinamis mengalokasikan frame untuk proses yang berjalan.
Age
A0
10
A0
A0
A1
7
A1
A1
A2
5
A2
A2
A3
4
A3
A3
A4
6
A4
A4
A5
3
A5 -> A6
A5
B0
9
B0
B0
B1
4
B1
B1
B2
6
B2
B2
B3
2
B3
B3 -> A6
B4
5
B4
B4
B5
6
B5
B5
B6
12
B6
B6
C1
3
C1
C1
C2
5
C2
C2
C3
6
C3
C3
(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
 overhead



4.
=
=
memori yang terbuang karena fragmentasi
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
2
menyemakan dengan nol: -se/p + ½ = 0
Dari persamaan ini, ukuran page optimum adalah: p = √(2se)
Sebagian besar komputer komersial menggunakan ukuran page antara 512 byte – 8K.
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
Urutan langkah-langkah penanganan adalah sebagai berikut:
1.
Hardware melakukan trap ke kernel, program counter di-save ke stack. Pada banyak mesin,
beberapa informasi tentang status instruksi saat itu di-save di register-register khusus CPU.
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.
7.
8.
9.
10.
Sementara page dimasukkan, proses yang mengalami fault dihentikan sejenak dan yang lainnya
dijalankan, jika ada.
Ketika disk interrrupt menandai bahwa page telah ada, tabel page di-update untuk menunjukkan
posisinya, dan frame ditandai berada dalam status normal.
Instruksi yang menyebabkan fault di-back-up ke status mulainya dan program counter di-reset
untuk menunjuk ke instruksi tersebut.
Proses yang fault tersebut dijadwalkan, dan sistem operasi kembali ke rutin bahasa assembly yang
memanggilnya.
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 tabeltabel 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.
Program harus menyediakan alamat yang terdiri dari dua bagian:
nomer segmen
alamat di dalam segmen
Segmentasi juga memberikan fasilitas pemakaian bersama prosedur atau data antar beberapa proses.
Contoh umumnya adalah shared library.
Segmen
0
Segmen
1
0
0
4K
4K
0
Segmen
2
Konstanta
Segmen
3
0
8K
0
4K
Source
text
Segmen
4
4K
Parse
tree
Call
stack
8K
8K
8K
12K
12K
12K
Tabel
simbol
12K
16K
16K
20K
Memori yang tersegmentasi memungkinkan setiap tabel bertambah atau berkurang.
Pertimbangan
Apakah programmer harus menyadari bahwa
teknik ini sedang digunakan?
Berapa banyak ruang alamat linier yang ada?
Dapatkah ruang alamat total melebihi ukuran
memori fisik?
Apakah tabel yang ukurannya berubah-ubah
dapat diakomodasi?
Dapatkan prosedur dan data dibedakan dan
diproteksi secara terpisah?
Adakah fasilitas pemakaian bersama prosedur
antar user?
Mengapa teknik ini diciptakan?
Paging
Tidak
Segmentasi
Ya
1
Ya
Banyak
Ya
Tidak
Ya
Tidak
Ya
Tidak
Ya
Untuk mendapatkan
ruang alamat linier
yang besar tanpa
harus membeli
memori fisik
tambahan
Perbandingan paging dan segmentasi.
Untuk memungkinkan
program dan data dibagi
menjadi ruang alamat yang
secara logik independen dan
untuk membantu pemakaian
bersama dan proteksi
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 masingmasing 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.
Segmen descriptor
36 bit
Descriptor segmen 0
Descriptor segmen 1
Descriptor segmen 2
Descriptor segmen 3
Descriptor segmen 4
Descriptor segmen 5
Descriptor segmen 6
Descriptor segmen 7
Tabel page untuk segmen 0
Page 0 entry
Page 1 entry
Page 2 entry
Page 3 entry
Pointerpointer
ke page
Tabel page untuk segmen 1
Page 0 entry
Page 1 entry
Page 2 entry
Page 3 entry
Page 4 entry
Page 5 entry
Virtual address MULTICS 34-bit:
Nomer segmen
18
Alamat di dalam segmen
Nomer page
Offset di dalam page
6
10
Nomer segmen
Nomer page
Offset di dalam page
Nomer
segmen
Nomer
page
Descriptor
Page frame
Segmen
descriptor
Offset
Tabel page
Word
Page
Konversi alamat MULTICS menjadi alamat memori utama.
SISTEM FILE
Pada proses penyimpanan dan pembacaan data bisa timbul masalah:
1. Kapasitas media penyimpanan tidak cukup (terbatas).
2. Ketika proses dihentikan, data hilang.
3. Kebutuhan mengakses data atau sebagiannya dalam waktu bersamaan.
Oleh karena itu diperlukan media penyimpanan yang :
1. Mampu menyimpan data yang besar.
2. Mampu menjaga data walaupun proses yang mengaksesnya dihentikan.
3. Proses yang bersamaan dapat mengakses data secara bersama-sama, tanpa ada yang terganggu.
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.
1.
FILE
1.1
Penamaan File
File merupakan bentuk mekanisme abstrak. Karakteristik yang paling penting dari mekanisme abstrak
adalah cara pemberian nama suatu obyek. Ketika proses membuat suatu file, proses akan memberi
sebuah nama kepada file. Ketika proses selesai, file masih ada dan bisa diakses oleh proses lain dengan
menggunakan nama file tsb.
Semua sistem operasi menerima bentuk nama file yang terbuat dari 1 sampai 8 karakter. Tetapi ada
beberapa sistem operasi yang membedakan huruf besar dan huruf kecil, seperti UNIX. Contoh :
BARBARA, BARbara, BarBaRa ----> UNIX membedakannya
----> DOS menganggap sama
----> WINDOWS ???
----> LINUX ???
Kebanyakan sistem operasi mampu menangani dua bagian bentuk nama file yang dipisah dengan titik
(period), bagian yang terletak setelah tanda titik disebut extension, yang biasanya menggambarkan ciri
khusus dari file ybs. Contoh :
- DOS nama file
----> [1 sampai 8 karakter].[1 sampai 3]
- UNIX
----> [1 sampai ? karakter].[1 sampai ?].[....].[....] .....sampai ?
Beberapa extension file yang biasa ditemukan tampak pada tabel berikut :
Extension
*.bak
*.bas
*.bin
*.c
*.dat
*.doc
*.ftn
*.hlp
*.lib
*.man
*.obj
*.pas
*.tex
*.txt
Artinya
File Backup
Program source Basic
Program executable binary
Program source C
File Data
File Dokumentasi
Program source Fortran
File Teks untuk HELP command
Library dari file .obj yang digunakan linker
Online manual page
File object
Program source Pascal
Teks masukan untuk format program TEX
File teks umum
Pada kasus khusus, extension ini hanya berupa Konvensi, seperti :
- data03.txt, menyatakan file dalam bentuk file teks.
- program05.c menyatakan file berupa file code bahasa C, C compiler hanya mengcompile extension
*.C.
1.2
Struktur File
Beberapa kemungkinan bentuk struktur file tampak pada gambar 1.
Gambar 1. Tiga macam file. (a) Urutan byte. (b) Urutan record. (c) Tree.
a. File dibentuk dari urutan byte yang tidak terstruktur.
Akibatnya : Sistem operasi tidak tahu apa yang ada didalamnya. DOS dan UNIX menerapkan bentuk
ini, LINUX ?, WINDOWS ?
Cara mengambil isi file dengan program.
b. File dibentuk dari urutan record dengan panjang yang sama dan struktur internal didalamnya.
Operasi read akan membaca satu record.
Operasi write akan overwrite/append satu record.
Cocok untuk sistem operasi yang menerapkan Punch Card, karena ukurannya tetap.
c. File dibentuk dari struktur organisasi tree record, ukuran record tidak harus sama, setiap record
mengandung field Key pada posisi yang sama. Tree record diurutkan berdasarkan Key nya.
Operasinya dengan melihat Key.
Banyak diterapkan pada sistem operasi Mainframe untuk pemrosesan data komersial.
1.3
Jenis File
UNIX dan DOS memiliki jenis file :
a. Regular File : jenis file yang mengandung informasi user. Contoh gambar 1.
b. Directory : file sistem yang mengatur struktur sistem file.
c. Character Special File : File yang berhubungan dengan peralatan I/O dan memodelkan peralatan
serial, seperti Terminal, Printer, NIC.
d. Block Special File : File yang digunakan untuk memodelkan disk.
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.
Gambar 2. (a) File executable. (b) Archive.
Magic Number : menyatakan bahwa file berupa file executable.
Binary file dalam bentuk archive mengandung kumpulan library procedure (module) yang telah dicompile
tapi tidak dilink.
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.
1.4
Pengaksesan File
Ada dua cara :
a. Sequential Access, proses dapat membaca seluruh byte/record dalam suatu file, mulai dari awal,
tidak boleh melompat atau keluar dari urutannya.
Cocok untuk file yang disimpan pada media Magnetic Tape.
b. Random Access, bisa membaca byte/record untuk berbagai macam urutan pengaksesan.
Cocok untuk file yang disimpan pada media Disk.
Jenis ini lebih sesuai untuk berbagai aplikasi, seperti sistem database airport.
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).
1.5
Atribut File
Jenis-jenis atribut file tampak pada Tabel berikut.
Field
Protection
Password
Creator
Owner
Read Only flag
Artinya
Who can access the file and in what way
Password needed to access the file
Id of person who created the file
Current owner
0 for read/write, 1 for read only
Hidden flag
System flag
Archive
ASCII/binary flag
Random access flag
Temporary flag
Lock flag
Record length
Key position
Key length
Creation time
Time of last access
Time of last change
Current size
Maximum size
0 for normal, 1 for do not display in listings
0 for normal file, 1 for system file
0 has been backed up, 1 for needs to be backed
up
0 for ASCII file, 1 for binary file
0 for sequential access only, 1 for random
access
0 for normal, 1 for delete on process exit
0 for unlocked, nonzero for locked
Number of bytes in a record
Offset of the key within each record
Number of bytes in the key field
Date and Time file was created
Date and Time file was last accessed
Date and Time file was last changed
Number of bytes in the file
Maximum size file may grow ro
1.6
Operasi File
Sistem Call yang biasa digunakan dalam hubungan dengan file :
a. Create : File dibuat dan tidak berisi data.
b. Delete : File dihapus karena tidak diperlukan lagi dan untuk memperbesar ruang disk sisa.
Beberapa sistem operasi akan menghapus file jika tidak digunakan dalam jangka waktu tertentu.
c. Open : Sebelum menggunakan file, file harus diOpen dulu. Open akan menjadikan sistem mengambil
atribut dan daftar alamat disk dan meletakkan didalam memori kerja agar diperoleh akses yang cepat.
d. Close : Jika akses file selesai, atribut dan alamat disk tidak diperlukan lagi, sehingga harus ditutup
dan untuk memperbesar ruang tabel daftar alamat disk internal.
e. Read : Data dibaca dari file. Sistem menentukan banyaknya data dan menyediakan buffer untuk
menampungnya.
f. Write : Data disimpan kedalam file. Jika posisi berada diakhir file, maka ukuran file bertambah. Jika
posisi ditengah, data yang ada akan ditimpa.
g. Append : Menambah data setelah data terakhir.
h. Seek : Mengatur posisi pointer saat itu menuju posisi yang ditentukan.
i. Get Attribute : Pada UNIX, program make perlu melihat atribut file, terutama waktu modifikasinya
yang terakhir.
j. Set Attribute : Mengubah status atribut file.
k. Rename : Merubah nama file.
1.7
Memory-Mapped File
Sistem operasi melakukan pemetaan file kedalam ruang alamat disk pada alamat virtual. Pemetaan ini
sangat cocok pada Segmentasi. Contoh pada gambar 3.
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.
Kelebihan Pemetaan File :
- Menghilangkan kebutuhan I/O sehingga mempermudah pemrograman.
Kekurangan Pemetaan File :
- Sistem sulit untuk mengetahui panjang sebenarnya dari file output (xyz).
- Hasil pemetaan belum tentu sama dari sumbernya, jika terjadi modifikasi sumber, outputnya belum
tentu dimodifikasi juga.
- Tidak bisa memetakan ukuran file yang lebih besar dari ukuran segmen.
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.
Bentuk disain sistem file tampak pada gambar 5.
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.
2.2
Nama Path
Penamaan Path ada dua cara :
a. Absolute Path Name : mengandung path dari directory root sampai file.
Selalu dimulai dari Root dan bersifat Unik.
Di UNIX, directory dipisah dengan tanda /, DOS dengan \. Jika karakter pertama dari nama path
dimulai dengan tanda tsb, maka path termasuk jenis absolut ini.
Contoh : /usr/ast/mailbox
root directory mengandung subdirectory usr,
dimana didalamnya ada subdirectory ast,
dimana didalamnya lagi ada subdirectory mailbox.
b. Relative Path Name : Untuk seluruh kasus path yang tidak dimulai dari root, diambil secara relatif ke
directory kerja (working directory/current directory).
Contoh : Directory kerja /usr/ast, file yang mempunyai path absolut /usr/ast/mailbox dapat diwakili
dengan mailbox saja. Seperti perintah :
cp /usr/ast/mailbox /usr/ast/mailbox.bak
dan
cp mailbox mailbox.bak
adalah perintah UNIX yang menghasilkan efek yang sama.
Kebanyakan sistem operasi mempunyai dua directory khusus, "." dan "..", dot dan dotdot. Dot
menunjukkan directory saat itu dan Dotdot menunjukkan parent directory. Contoh gambar 6
Gambar 6. UNIX directory tree
Directory kerja /usr/ast, copy file /usr/lib/dictionary ke directorynya sendiri dengan :
cp ../lib/dictionary .
2.3
Operasi Directory
Beberapa operasi directory :
a. Create, membuat directory yang kosong kecuali dot dan dotdot yang otomatis dimasukkan oleh
sistem.
b. Delete, menghapus directory, Hanya directory yang kosong yang dapat dihapus.
c. OpenDir, Mendaftar seluruh file yang ada di directory ybs.
d. CloseDir, Setelah selesai membaca directory, maka harus ditutup untuk memperbesar ruang tabel
internal.
e. ReadDir, Menghasilkan daftar directory pada directory yang sedang dibuka.
f. Rename, Mengubah nama directory.
g. Link, Cara agar file dapat muncul dibeberapa lokasi directory.
h. UnLink, Menghilangkan Link.
3.
IMPLEMENTASI SISTEM FILE
Menjelaskan cara file dan directory disimpan, ruang disk diatur dan membuat segalanya efisien dan
reliable.
3.1
Mengimplementasikan File
Kunci masalah implementasi penyimpanan file adalah selalu mengetahui perubahan blok disk akibat ada
tidaknya file.
a. Contiguous Allocation
Ini merupakan alokasi paling sederhana dengan menyimpan setiap file kedalam blok data yang
berurutan didalam disk.
Kelebihannya :
- Mudah implementasinya, karena untuk mengetahui letak blok file hanya cukup mengingat satu
nomor, blok yang pertama saja.
- 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.
Gambar 7. Menyimpan file sebagai linked list dari blok-blok disk.
c.
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.
Linked List Allocation menggunakan Indeks
Caranya sama seperti point b tetapi menambahkan tabel berindeks kedalam memory, seperti pada
gambar 8 berikut.
Gambar 8. Alokasi linked list dengan menggunakan tabel di main memory.
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 :
- 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 ???
3.2
Mengimplementasikan Directory
a. Directory pada sistem CP/M
Sistem ini hanya memiliki satu directory saja, sehingga semua file harus dicari dan dilihat dari
directory ini. Tampak pada gambar 10.
Gambar 10. Directory yang berisi nomer blok disk untuk setiap file.
-
User code digunakan untuk mengetahui nama pemilik file ybs.
Extent akan diperlukan bila ukuran file lebih besar dari 16 blok, sehingga memerlukan beberapa
directory. Extent berisi nomor urut.
- 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.
Gambar 11. Entry directory MS-DOS.
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.
a. Directory pada UNIX
Sistem UNIX menggunakan struktur directory seperti tampak pada gambar 12.
Gambar 12. Entry directory UNIX.
Informasi tentang jenis, ukuran, waktu, kepemilikan, dan blok disk disimpan didalam i-node.
Contohnya :
Cara sistem mencari file jika diberikan path /usr/ast/mbox
Gambar 13. Langkah-langkah pencarian /usr/ast/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.
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.
Cara mengetahui Blok yang Bebas
Dua cara yang banyak digunakan adalah tampak pada gambar 17.
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
Tujuan : mencegah user agar tidak menggunakan ruang disk terlalu banyak, melampaui batas.
Proses jalannya kuota ditampilkan pada gambar 18.
Gambar 18. Kuota dicatat per user pada tabel kuota.
Terdapat dua tabel yang terletak didalam memory.
- Tabel pertama mendaftar atribut dan alamat disk file yang dibuka. Setiap perubahan ukuran file akan
dikenakan pada kuota user yang menggunakannya.
- Tabel kedua berisi record kuota untuk setiap user dengan file yang sedang dibuka.
Ketika user log in, sistem operasi akan mengecek kuota file yang digunakannya, apakah melampaui batas
jumlah file atau jumlah blok disk.
3.5
Reliabilitas Sistem File
Jika terjadi masalah terhadap sistem file, baik akibat bencana atau rusaknya software dan hardware
komputer, maka diperlukan cara penaggulangannya.
a. Pengaturan Blok Rusak (Bad Block)
- Cara Hardware, menyiapkan blok cadangan. Bila sistem menemukan blok yang rusak, data akan
dipetakan kelokasi blok cadangan.
- Cara Software, menghapus blok yang rusak sehingga dianggap tidak ada. Pembacaan dan
penyimpanan file ke blok rusak tidak akan terjadi, karena dianggap tidak ada blok tsb.
b. Backup
- Untuk ukuran kecil, floppy, dilakukan dengan copy.
- Untuk ukuran besar, akan memerlukan waktu, sehingga perlu strategi seperti pada gambar 19.
Gambar 19. Mem-backup setiap drive pada drive yang lainnya menyia-nyiakan setengah media
penyimpanan.
-
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.
c.
Konsistensi Sistem File
Jika sistem crash dan seluruh file yang diedit belum sempat disimpan, maka sistem file berada dalam
kondisi tidak konsisten.
Solusinya :
- Sistem komputer melengkapi program utility untuk mengecek konsistensi sistem file ketika diboot,
terutama setelah terjadinya crash.
Metode pengecekan konsistensi ini :
- Block, Program membuat dua counter untuk setiap blok :
- counter pertama mencatat berapa kali blok berada didalam file
- counter kedua merekam seberapa sering blok berada di daftar yang bebas (free list table).
- Cara ini tampak pada gambar 20.
Gambar 20. Status sistem file. (a) Konsisten. (b) Missing block. (c) Duplikasi blok pada daftar bebas.
(d) Duplikasi blok data.
a.
b.
c.
d.
Bentuk konsisten
Blok 2 tidak muncul pada kedua tabel, dinamakan Missing Block.
Block 4 muncul dua kali didalam daftar blok bebas (free list).
Blok data yang sama muncul dalam dua atau lebih file, pada blok 5.
3.6
Kinerja Sistem File
Pengaksesan ke disk jauh lebih lambat dibanding ke memory. Cara menanggulangi dengan menerapkan
metode Block Cache atau Buffer Cache.
Cara ini tidak dimaksudkan untuk menjaga data menetap lama didalamnya sebelum disimpan ke disk.
Contoh :
Ingin menulis skripsi, akan lebih cepat diakses bila diletakkan di buffer, tetapi ukuran bukunya
sangat besar. Jika crash, semua yang diketik belum sempat disimpan.... ?? :((
Solusi :
- System Call SYNC, diterapkan oleh UNIX. Sistem menjalankan UPDATE (menyimpan blok yang
diubah kedalam disk) setiap 30 detik dengan proses background.
Tidak cocok bila data disimpan di disket, apalagi berganti-ganti disket. Memang UNIX semula
dirancang menggunakan media disk.
- Write-Through Cache, diterapkan oleh DOS, menyimpan blok kedalam disk segera setelah ada
perubahan.
Cukup fleksibel menggunakan disket.
- 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.
Beberapa hal yang menyebabkan data hilang :
1. Bencana alam
2. Kesalahan Hardware atau Software
3. Kesalahan Manusia dalam menggunakan data.
Ketiga hal diatas biasanya dapat diatasi dengan Backup.
Masalah penting lainnya yaitu INTRUDER, dibagi dua :
1. Intruder Pasif, hanya melihat file yang sebenarnya bukan haknya.
2. Intruder Aktif, tidak sekedar membaca, tetapi juga merubah (merusak) data.
Jenis perilaku intruder :
1. Iseng-iseng/coba sambil lalu saja. Biasa terjadi pada data yang bisa diakses semua user.
2. Snooping dari dalam. Seseorang yang masuk kedalam sistem jaringan komputer berusaha
menembus pengamanan.
3. Berusaha cari keuntungan. Programer bank mencoba untuk mencuri uang.
4. Spionase/Militer. Biasanya berhubungan dengan politik.
Aspek lain dalam pengamanan adalah PRIVACY : menjaga seseorang dari penyalahgunaan data
miliknya.
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).
4.3
Internet Worm
Tanggal 2 Nopember 1988, Cornell meluncurkan program worm ke internet. Akibatnya ribuan komputer
mati, baik di universitas, perusahaan, laboratorium di seluruh dunia sebelum program worm tsb dapat
diketahui dan dihilangkan.
Secara teknis, program worm mengandung dua program :
Bootstrap dan Worm, yang terdiri dari 99 baris bahasa c, yaitu ll.c. Program ini dicompile dan dijalankan
oleh sistem yang diserang. Ketika berjalan, program ini dihubungkan ke mesin dari mesin datangnya
program ini, mengupload worm utama dan menjalankannya. Kemudian worm melihat tabel routing untuk
mencari mesin-mesin lain yang terhubung pada mesin tersebut, kemudian menyebarkannya dan
membootstrap mesin-mesin itu.
Ada tiga cara dalam menginfeksi mesin lain :
a. Mencoba menjalankan remote shell dengan perintah rsh. Jika berhasil remote shell akan mengupload
program worm dan melanjutkan untuk mencari mesin yang lain.
b. Menggunakan program yang ada di sistem BSD yang dikenal dengan finger, setiap orang di dunia
bisa menjalankan :
finger [nama@lokasi]
untuk menampilkan informasi tentang seseorang ybs.
Setiap sistem BSD akan selalu menjalankan (background process) yaitu finger daemon yang
menjawab query dari seluruh hubungan internet didunia. Program Worm memanggil finger dengan
536 byte string sebagai parameter. String yang panjang ini menjadikan buffer daemon overflow dan
menimpa isi stacknya. Karena overflow ini, daemon mengecek dan ketika ingin kembali ke procedure
utamanya, diberi request supaya belok ke procedure 536 byte yang ada didalam stack. Procedure ini
mencoba untuk menjalankan /bin/sh. Jika berhasil, mesin tsb telah terjangkit worm.
c. Didalam sendmail ada bug, yang mengijinkan worm untuk mengirimkan mail berisi copy bootstrap
dan menjalankannya.
4.4
Serangan Pengamanan Umum
Ketika merancang sistem, harus dapat mengantisipasi bentuk serangan sbb :
1. Permintaan page memory, ruang disk atau tape dan sekedar membaca isinya. Banyak sistem yang
tidak menghapus dulu lokasi yang akan digunakan, kadang-kadang masih berisi informasi yang
dipakai oleh proses sebelumnya.
2. Mencoba System Call yang tidak benar atau System Call yang benar tetapi dengan parameter yang
salah.
3. Mencoba Login tetapi segera setelah itu menekan tombol yang dapat menghentikan proses, seperti
DEL, RUBOUT atau BREAK supaya tidak menjalankan rutin password.
4. Mencoba merubah struktur sistem operasi dan menyimpan di ruang disk user.
5. Spoof user lain dengan membuat tulisan "login :" di layar.
6. Mencari informasi yang tidak boleh dilakukan pada manual book, lalu mencobanya dengan berbagai
variasi.
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.
4.6
User Authentication
Masalah yang berhubungan dengan identifikasi user ketika login disebut user authentication. Ini
mencakup sesuatu yang diketahui, yang dimiliki dan yang digunakan oleh user.
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.
Cara sistem menanggulangi password yang mudah dipecahkan dengan :
- Memberikan peringatan ketika pembuatan password berlangsung, seperti peringatan ketika nama dan
passwordnya bernilai sama.
- Kadangkala sistem operasi mengharuskan untuk mengganti password dalam jangka waktu tertentu.
- Tidak menampakkan tulisan aslinya ketika proses pemasukan password.
- Tidak menyimpan password asli, tetapi dalam bentuk terenkripsi.
- Menerapkan suatu pertanyaan dan menyimpan pertanyaan dan jawabannya, sementara
passwordnya hanya diingat oleh user.
- Challenge-response, menerapkan algoritma tertentu. Contohnya penggunaan "pangkat-2". Komputer
bertanya kepada user ketika login. Argumen komputer 7, maka user user bisa masuk kedalam sistem
jika menjawab 49. Algoritma dapat diatur berubah setiap pagi, siang, malam atau beda hari atau beda
minggu atau beda mesin dll.
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 :
- 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
N
OBJECT
File
1
1
Rea
d
File2
File3
File4
File5
Read
Write
Execut
e
Read
Write
File6
Printer
1
Plotter
2
Read
Write
2
Read
Write
Read
Write
Write
Execu
te
Gambar 22. Matriks proteksi.
3
Write
Kemudian 3 domain sebagai object pada Tabel berikut.
DOMAI
N
OBJECT
File
1
1
2
3
Rea
d
File
2
Rea
d
Writ
e
File
3
File4
File
5
File6
Printer
1
Plotter
2
Domai
n1
Domai
n2
Enter
Rea
d
Read
Write
Execu
te
Rea
d
Writ
e
Write
Read
Write
Write
Write
Execu
te
Gambar 23. Matriks proteksi.dengan domain sebagai object.
Domai
n3
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.
5.2
Daftar Kendali Akses
Contoh pada gambar 4-30 akan memakan ruang disk. Cara mengatasinya dengan :
Menyimpan berdasarkan Kolom. Cara ini mengandung apa yang menunjukkan setiap object daftar yang
urut yang mengandung semua domain yang dapat mengakses object, dan caranya. Daftar ini disebut
Access Control List (ACL).
Sistem UNIX, menyediakan 3 bit, rwx, per file untuk pemilik (owner), grup pemilik (owner's group), dan
lainnya (others). Skema ini berupa ACL tetapi dimampatkan menjadi 9 bit saja dan menggambarkan
object yang menyatakan siapa yang dapat mengakses dan caranya bagaimana.
Contoh :
rwxr--r-- /usr/ast/mail
5.3
Kemampuan (Capability)
Cara membagi berdasarkan Baris, dari gambar 23.
Setiap proses yang ditunjuk merupakan suatu daftar object yang bisa diakses, selama bisa diakses
berdasarkan operasi yang diperbolehkan didalam domainnya, Daftar ini disebut Capability List (C-List)
dan setiap item didalamnya disebut Capability.
Lihat Tabel berikut.
0
1
2
3
Type
File
File
File
Printer
Rights
R- RWX
RW -W-
Object
Pointer to File3
Pointer to File4
Pointer to File5
Pointer to Printer1
Daftar Kemampuan (capability List) untuk domain 2 dari gambar 22.
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.
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.
5.4
Model Proteksi
Harrison membentuk 6 operasi primitif pada matriks proteksi, yaitu :
Create Object, Delete Object, Create Domain, Delete Domain, Insert Right dan Remove Right.
Keenam operasi tsb dikombinasikan kedalam Protection Command, yaitu perintah-perintah proteksi
dimana program user dapat menjalankannya untuk merubah matriks.
Matriks menentukan apakah suatu proses didalam domain yang dapat melakukan sesuatu, bukan apakah
suatu proses diberi kemampuan untuk melakukan sesuatu.
Contoh sederhana pada tabel di bawah ini.
Eric
Henry
Robert
Object
Compiler
Read
Execute
Read
Execute
Read
Execute
MailBox7
Secret
Eric
Read
Write
Henry
Read
Write
(a)
Robert
Object
Compiler
Read
Execute
Read
Execute
Read
Execute
MailBox7
Read
Write
Read
Secret
Read
Write
(b)
a. Dimaksudkan untuk kebijakan proteksi.
Henry bisa membaca dan menyimpan mailbox7, Robert bisa membaca dan menyimpan secret, ketiga
user bisa membaca dan menjalankan compiler.
Karena Robert sangat cerdas, dan bisa menemukan cara untuk menjalankan perintah sehingga
matriks berubah jadi :
b. Robert bisa juga mengakses mailbox7, yang sebenarnya dia tidak diberi hak. Jika Henry mencoba
untuk membacanya (Read), sistem operasi akan menolak permintaan aksesnya karena sistem
operasi tidak tahu bahwa kondisi matriks tsb tidak diautorisasi.
5.5
Covert Channel
Model yang ada diatas ternyata sia-sia belaka. Buktinya ? Lampson (1973).
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.
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).
INPUT / OUTPUT
1. Prinsip Perangkat Keras I/O
Batasan : bagaimana hardware tersebut di program
Manajemen perangkat I/O mempunyai beragam fungsi, diantaranya :
- mengirimkan perintah ke perangkat I/O agar menyediakan layanan
- menangani interupsi perangkat I/O
- menangani kesalahan pada perangkat I/O
- menyediakan interface ke pemakai
1.1. I/O Device
Perangkat I/O dapat dibedakan berdasarkan :
1. Sifat aliran data
Berdasarkan aliran data dibedakan menjadi :
a. Perangkat berorientasi blok (block-oriented devices)
Menyimpan informasi dan menukarkan (menerima / mengirim) informasi sebagai blok-blok
berukuran tetap. Tiap blok mempunyai alamat tersendiri. Ukuran blok dapat beragam antara
128 s/d 1024 byte.
Ciri utamanya adalah : dimungkinkan membaca / menulis blok-blok secara independent, yaitu
dapat membaca atau menulis sembarang blok tanpa harus melewati blok-blok lain.
Contohnya : disk, tape, CD ROM, Optical disk
b. Perangkat berorientasi karakter (character-oriented devices)
Mengirim atau menerima karakter dan tanpa peduli membentuk suatu struktur blok, not
addresable dan tidak mempunyai operasi seek.
Contohnya : terminals, line printer, punch card, network interfaces, pita kertas, mouse
Klasifikasi diatas tidak mutlak, karena ada beberapa perangkat yang tidak termasuk kategori
diatas, misalnya :
- clock yang tidak teramati secara blok dan juga tidak menghasilkan / menerima aliran karakter.
Clock menyebabkan interupsi pada interval-interval yang didefinisikan.
- Memory mapped screen,
- sensor
2. Sasaran komunikasi
Berdasarkan sasaran komunikasi dibedakan menjadi :
a. Perangkat yang terbaca oleh manusia (human readable device)
Perangkat yang cocok untuk komunikasi dengan manusia.
Contohnya : VDT (Video Display Terminal) terdiri dari monitor, keyboard (+mouse)
b. Perangkat yang terbaca oleh mesin (machine readable device)
Perangkat yang cocok untuk komunikasi dengan perangkat elektronik.
Contohnya : disk, tape, sensor, controller, aktuator
c. Untuk komunikasi
Perangkat yang cocok untuk komunikasi dengan perangkat jarak jauh.
Contohnya : modem
1.2. Device Controller
Unit I/O berupa :
a. Komponen elektronik
Device controller / adapter adalah untuk mengaktifkan perangkat eksternal dan memberitahukan
yang perlu dilakukan oleh perangkat / driver.
Contoh : unit tape megnetik diinstruksikan untuk kembali ke posisi awal, bergerak ke record
berikutnya dan sebagainya.
Disk Driver
Printer
Disk
Controller
Printer
Controller
Controller Device
Interface
CPU
Memory
……..
Other
Controller
System Bus
Model untuk mengkoneksi / menghubungkan CPU, Memory, Controller dan Device I/O
b. Komponen mekanik
Contohnya : head, motor stepper, printer
1.3. Direct Memory Access (DMA)
DMA berfungsi membebaskan pemroses menunggui transfer data yang dilakukan I/O device. Saat
pemroses ingin membaca atau menulis data, pemroses memerintahkan DMA Controller dengan
mengirimkan informasi berikut :
- perintah penulisan / pembacaan
- alamat I/O device
- awal lokasi memori yang ditulis / dibaca
- jumlah word / byte yang ditulis / dibaca
setelah mengirimkan informasi itu ke DMA Controller, pemroses dapat melanjutkan kerja lain.
Pemroses mendelegasikan operasi I/O ke DMA. DMA mentransfer seluruh data yang diminta ke /
dari memori secara langsung tanpa melewati pemroses. Ketika transfer data selesai, DMA
mengirimkan sinyal interupsi ke pemroses. Pemroses hanya dilibatkan pada awal dan akhir transfer
data.
Operasi transfer antara perangkat dan memori utama dilakukan sepenuhnya oleh DMA, lepas dari
pemroses dan hanya melakukan interupsi bila operasi telah selesai.
Keuntungan DMA :
- peningkatan kinerja prosesor atau I/O
- meminimasikan over head
CPU
memory
Disk
controller
drive
buffer
count
DMA Register / memory address
count
Tranfer DMA seluruhnya dilakukan oleh controller
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
5
0
0
6
1
3
4
2
3
5
2
6
1
7
6
4
3
No Interleaving
2
5
Single Interleaving
4
1
Double Interleaving
2. Prinsip Software I/O
Ide Dasar : mengorganisasikan software dalam beberapa layer dimana level bawah menyembunyikan
akses / kepelikan hardware untuk level diatasnya. Level atas membuat interface yang baik ke user.
Tujuan Software I/O
a. Konsep dalam desain software I/O
Device independence / tidak bergantung pada device yang digunakan
b. Penamaan yang seragam / Uniform Naming
Penamaan file berkas atau perangkat adalah string atau integer dan harus sederhana, tidak
bergantung pada device
Contoh : seluruh disks dapat dibuat dengan hirarki sistem file (menggunakan NPS)
c. Penanganan kesalahan / Error Handling
Error harus ditangani sedekat mungkin dengan hardware
Contoh : pertama controller, device driver, dst. Dan jika tidak bisa ditangani beri pesan
d. Synchronous (blocking) vs Asynchronous (Interrupt Driver) transfer
Kebanyakan I/O adalah asinkron. Pemroses mulai transfer dan mengabaikan untuk melakukan
kerja lain sampai interupsi tiba.
Program pemakai sangat lebih mudah ditulis jika operasi I/O berorientasi blok. Setelah perintah
read, pemrogram kemudian ditunda secara otomatis sampai data tersedia di buffer. Terserah
sistem operasi untuk menangani operasi yang sesungguhnya interrupt driver.
e. Sharable vs Dedicated Device
Beberapa perangkat dapat dipakai bersama seperti disk, tapi ada juga perangkat yang hanya satu
pemakai yang dibolehkan memakai pada satu saat.
Misal : disk untuk sharable dan printer untuk dedicated
Tujuan diatas dapat dicapai dengan memisahkan software I/O menjadi 4 layers, yaitu :
1. Interrupt Handler
Interrupt harus disembunyikan agar tidak terlihat rutin berikutnya. Device driver di blok saat
perintah I/O diberikan dan menunggu interupsi. Ketika interupsi terjadi, prosedur penanganan
interupsi bekerja agar device driver keluar dari state blocked.
2. Device Drivers
Seluruh kode device dependent terletak di device driver. Tiap device driver menangani satu tipe /
satu kelas device. Tugas dari device driver untuk menerima permintaan abstrak dari software
device independent diatasnya dan melakukan layanan sesuai permintaan / mengeksekusinya.
Device Drivers
Device Controller
(Registernya)
Device
3. Device Independent Operating System Software
I/O device-independent adalah : software I/O yang tak bergantung pada perangkat keras.
Fungsi dasar dari software device-independent :
- membentuk fungsi I/O yang berlaku untuk semua device
- menyediakan interface uniform / seragam ke user level software
Fungsi dari software I/O device-independent yang biasa dilakukan :
a. Interface seragam untuk seluruh device-driver
b. Penamaan device
c. Proteksi device
d. Memberi ukuran blok device agar bersifat device-independent
e. Melakukan Buffering
f. Alokasi penyimpanan pada blok devices
g. Alokasi dan pelepasan dedicated devices
h. Pelaporan kesalahan
4. User Space I/OSoftware
Sebagian besar software I/O berada di dalam sistem operasi yang di link dengan user program.
System call termasuk I/O, biasanya dalam bentuk prosedur (library procedures).
Contoh : count = write(fd,buffer,nbytes)
I/O prosedur dengan level lebih tinggi.
Contoh : printf (memformat output terlebih dahulu kemudian panggil write)
Yang tidak mempunyai library procedure, contohnya : spooling directory dan daemon (proses
khusus) pada proses mencetak, transfer file, USENET
Layer
I/O reply I/O functions
User processes
Make I/O call; format I/O; spooling
I/O request
Device-independent
software
Device-drivers
Interrupt handler
Hardware
Naming protection, blocking, buffering,
allocation
Setup device register, check status
Wake up driver when I/O completed
Perform I/O operation
Lapisan sistem I/O dan fungsi utama dari tiap lapisan (layer)
3. Disk
Tiga kelebihan disk dari main memory untuk penyimpanan :
1. kapasitas penyimpanan yang tersedia lebih besar
2. harga per-bit-nya lebih rendah
3. informasi tidak hilang meskipun power off
3.1. Perangkat Keras Disk
Disk diorganisasikan menjadi silinder-silinder dengan tiap permukaan terdapat head yang ditumpuk
secara vertikal. Track terbagi menjadi sektor-sektor.
Platters
Spindle
Read/Write Head
Struktur Disk
Boom
Tiga faktor yang mempengaruhi waktu read/write block disk :
1. seek time (waktu menggerakkan lengan ke silinder)
2. rotational delay (waktu sector berputar ke head)
3. transfer time
yang sangat dominan adalah seek time, jadi performance dapat ditingkatkan dengan mengurangi
waktu rata-rata seek
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
3.2. Algoritma Penjadwalan Akses Lintas Disk
Pada sistem multiprogramming, banyak proses yang melakukan permintaan read/write record disk.
Proses membuat permintaan lebih cepat dibandingkan yang dapat dilayani disk, membentuk antrian
permintaan layanan disk. Diperlukan penjadwalan disk agar memperoleh kerja optimal.
Terdapat dua tipe penjadwalan disk, yaitu :
1. Penjadwalan untuk optimasi seek, karena waktu seek lebih tinggi satu orde dibandingkan waktu
rotasi, maka kebanyakan algoritma penjadwalan berkonsentrasi meminimumkan seek kumpulan
atau antrian permintaan layanan disk.
2. Penjadwalan untuk optimasi rotasi, penjadwalan disk melibatkan pemeriksaan terhadap
permintaan yang belum dilayani untuk menentukan cara paling efisien melayani permintaanperminataan, dan memeriksa hubungan posisi di antrian permintaan. Antrian disusun kembali
sehingga permintaan akan dilayani dengan pergerakan mekanis minimum.
Adapun beberapa metode yang digunakan :
a. Algoritma Pertama Tiba Pertama Dilayani (PTPD) / First Come, First Served (FCFS) Algorithm
Disk drive melayani satu permintaan pada sauatu saat dan melayaninya sesuai urutan
kedatangannya. Permintaan yang duluan tiba, dilayani duluan.
Contoh : 40 silinder dengan urutan 11, 1, 36, 1, 16, 34, 9, 12
Initial position
X
0
X
5
Peding request
X
10
X
X
15
X
20
25
30
X
35
Silinder
Time
39
b. Algoritma Pungut / Pick Up Algorithm
Initial position
X
0
X
5
X
X
10
X
15
X
20
25
30
X
35
39
Silinder
Time
c. Algoritma Waktu Cari Terpendek Dipertamakan (WCTD) / Shortest Seek Time First (SSTF)
Algorithm
Initial position
X
0
X
5
X
X
10
X
15
X
20
25
30
Time
X
35
39
Silinder
Sequence of seeks
d. Algoritma Lift Singkat / LOOK Algorithm
Initial position
X
0
X
5
X
X
10
X
15
X
20
25
30
X
35
39
Silinder
Time
e. Agoritma Lift Singkat Searah / C-LOOK Algorithm
Initial position
X
0
X
5
Time
X
10
X
X
15
X
20
25
30
X
35
Silinder
39
f. Algoritma Lift Lengkap / SCAN Algorithm
Initial position
X
0
X
5
X
X
10
X
15
X
20
25
30
X
35
39
Silinder
Time
g. Algoritma Lift Lengkap Searah / C-Scan Algorithm
Initial position
X
0
X
5
Time
X
10
X
X
15
X
20
25
30
X
35
39
Silinder
3.3. I/O Error Handling / Penanganan Kesalahan I/O
Error yang umum terjadi adalah :
1. Error pemrograman
Kesalahan disebabkan pemrograman. Misalnya : request sektor yang tidak ada. Penanganannya :
pembetulan program untuk komersial software, batalkan operasi dan berharap tidak akan terjadi
lagi
2. Error checksum transient
Kesalahan disebabkan adanya debu diantara head dengan permukaan disk. Penanganannya :
lakukan operasi berulang-ulang dan menandai sector yang rusak.
3. Error checksum permanent
Kesalahan disebabkan kerusakan disk. Misalnya harus dibuat daftar blok-blok buruk agar data
tidak ditulisi di blok-blok buruk.
4. Error seek
Kesalahan ini ditanggulangi dengan mengkalibrasi disk supaya berfungsi kembali. Misalnya
lengan harusnya ke silinder 6 ternyata ke 7. Penanganannya : kalibrasi ulang.
5. Error controller
Kesalahan ini ditanggulangi dengan menukar pengendali yang salah dengan pengendali yang
baru. Misalnya controller menolak perintah akses. Penanganannya : reset.
6. Track at time caching
Kontroller mempunyai memori untuk menyimpan informasi track dimana ia berada, permintaan
pembacaan blok track tersebut dilakukan tanpa pergerakan mekanik.
3.4. RAM Disk
RAM disk adalah disk driver yang disimulasikan pada memori akses acak (RAM). RAM disk
sepenuhnya mengeliminasi waktu tunda yang disebabkan pergerakan mekanis dalam seek dan
rotasi. RAM disk berguna untuk aplikasi yang memerlukan kinerja disk yang tinggi.
Devices block adalah media penyimpanan dengan 2 perintah : R (read) dan W (write). Normalnya
blok-blok disimpan di disk berputar yang memerlukan mekanisme fisik.
Idenya adalah meniru driver dengan mengalokasikan terlebih dahulu satu bagian memori utama
untuk menyimpan blok-blok data.
Keuntungannya : berkecepatan tinggi karena pengaksesan sesaat / instant, tidak ada waktu tunda
seek dan waktu tunda rotasi. Sangat cocok untuk menyimpan program atau data yang sering
diakses.
Main Memory
(RAM)
User
Programs
RAM Disk
blok 1
RAM
Disk
.
.
.
R & W of
RAM blok 0
use this
memory
Operating
System
4. Terminal
Semua komputer memerlukan terminal untuk komunikasi antar peralatan.
4.1. Terminal Hardware
Terminal hardware terbagi atas 2 kategori dasar, yaitu :
Terminals
RS-232
interface
Hardcopy
Glass tty
Intelligent
Memory Mapped
interface
Blit
Character
oriented
Bit
oriented
1. terminal interface melalui RS-232
RS-232 menghubungkan keyboard, monitor menggunakan serial interface, 1 bit dalam 1
waktu, dan menggunakan 25 pin konektor, dimana 1 pin untuk transmisi data, 1 pin untuk
receive data dan 1 pin untuk ground, 22 pin yang lain digunakan untuk fungsi control atau ada
pin yang tidak digunakan.
RS-232 dapat dikategorikan lagi menjadi :
a. hardcopy / printer, dimana tipe karakter dari keyboard ditransmisikan ke komputer, dan
kemudian di cetak di kertas / printer.
b. Dumb CRT terminal / glass tty (teletype = terminal)
c. Intelligent CRT terminals, terdiri dari CPU dan memory, dan untuk program yang kompek
digunakan EPROM atau ROM.
d. Blit, adalah terminal dengan powerful microprocessor
2. terminal memory-mapped
adalah interface melalui video RAM / video controller yang digunakan untuk monitor.
4.2. Terminal Software
Terminal Software terdiri dari :
1. Input Software
2. Output Software
Studi kasus
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
copy a.txt prn
: tidak mengkopi file a.txt menjadi file con, tetapi menampilkan ke konsol
: 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.
2. m
3.
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
Wait(S)
Wait(Q)
.
.
.
Signal(S)
Signal(Q)
P1
Wait(Q)
Wait(S)
.
.
.
Signal(Q)
Signal(S)
Pada langkah pertama, kedua proses masih berjalan dengan baik. Pada langkah kedua, proses P0 meminta Q
yang ternyata masih dibawa oleh P1 dan baru akan dilepas setelah signal(Q), demikian pula P1 meminta S yang
masih dibawa oleh P0 dan baru akan dilepas setelah signal(S). Sehingga kondisi ini akan menimbulkan
deadlock.
Deadlock terjadi ketika proses-proses mengakses secara ekslusif sumber daya. Semua deadlock yang terjadi
melibatkan persaingan memperoleh sumber daya ekslusif oleh dua proses atau lebih. Adanya deadlock akan
mengakibatkan sistem menjadi kacau.
Startvation terjadi ketika proses-proses menunggu alokasi sumberdaya sampai tak terhingga, karena bisa pada
kebijaksanaan / strategi alokasi sumberdaya, sementara proses-proses lain dapat memperoleh alokasi
sumberdaya.
Indefinite postponement / indefinite blocking / starvation :
Penundaan penjadwalan sebuah proses selama tak terhingga sementara sistem mengadakan alokasi sumber
daya untuk proses yang lain. Penyebabnya adalah prioritas.
Cara mengatasinya dengan “aging” yaitu prioritaas naik dengan bertambahnya waktu.
Model Deadlock
Urutan kejadian pengoperasian perangkat I/O adalah :
- meminta / request
: meminta palayanan I/O
- memakai / use
: memakai perangkat I/O
- melepaskan / release : melepaskan pamakaian perangkat I/O
Model deadlock dua proses dan dua sumber daya
Deadlock dapat digambarkan sebagai graph.
Misalnya :
- dua proses, P0 dan P1
- dua sumber daya kritis, R0 dan R1
- proses P0 dan P1 harus mengakses kedua sumber daya tersebut
P0
R1
R0
P1
kondisi berikut dapat terjadi :
- R0 diberikan ke P0 (P0 meminta sumber daya R0), ditandai busur (edge) berarah dari proses P0 ke sumber
daya R0
- sedangkan sumber daya R1 dialokasikan ke P1, ditandai dengan busur (edge) berarah dari sumber daya R1
ke proses P1.
Skenario yang menimbulkan deadlock
Dapat terjadi skenario sebagai berikut :
- P0 dialokasikan R0
- P1 dialokasikan R1
P0
R1
R0
P1
Kemudian,
- P0 sambil masih menggenggam R0, meminta R1
- P1 sambil masih menggenggam R1, meminta R0
Kejadian ini mengakibatkan deadlock karena sama-sama akan saling menunggu. Graph deadlock ini akan
digambarkan sebagai graph melingkar. Terjadinya deadlock ditandai munculnya / terjadinya graph melingkar.
P0
R1
R0
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.
Metode-metode mengatasi deadlock :
1. deadlock prevention / metode pencegahan terjadinya deadlock
pengkondisian sistem agar menghilangkan kemungkinan terjadinya deadlock. Pencegahan merupakan
solusi yang bersih dipandang dari sudut tercegahnya deadlock. Jika mulainya satu atau lebih proses akan
menyebabkan terjadinya deadlock, proses tersebut tidak akan dimulai sama sekali.
- tiap proses harus meminta resource yang dibutuhkan sekaligus dan tidak bisa berjalan sampai semua di
dapat (untuk “wait for”)
- jika ada resourcce yang tidak terpenuhi, yang lainnya harus dilepas (untuk “no preemption”)
- urutkan tipe-tipe resource secara linier / linier ordering (untuk “circular wait”)
2. deadlock avoidance / metode penghindaran terjadinya deadlock
menghindarkan kondisi yang paling mungkin menimbulkan deadlock agar memperoleh sumber daya lebih
baik. Penghindaran bukan berarti menghilangkan semua kemungkinan terjadinya deadlock. Jika sistem
operasi mengetahui bahwa alokasi sumber daya menimbulkan resiko deadlock, sistem menolak /
menghindari pengaksesan itu. Dengan demikian menghindari terjadinya deadlock. Contohnya dengan
menggunakan algoritma Banker yang diciptakan oleh Dijkstra.
3. deadlock detection and recovery / metode deteksi dan pemulihan dari deadlock
deteksi digunakan pada sistem yang mengijinkan terjadinya deadlock, dengan memeriksa apakah terjadi
deadlock dan menentukan proses dan sumber daya yang terlibat deadlock secara presisi. Begitu telah
dapat ditentukan, sistem dipulihkan dari deadlock dengan metode pemulihan. Metode pemulihan dari
deadlock sistem sehingga beroperasi kembali, bebas dari deadlock. Proses yang terlibat deadlock mungkin
dapat menyelesaikan eksekusi dan membebaskan sumber dayanya.
Pencegahan deadlock :
1. tiap proses harus meminta semua sumber daya yang diperlukan sekaligus dan tidak berlanjut sampai
semuanya diberikan.
2. Jika proses telah sedang memegang sumber daya tertentu, untuk permintaan berikutnya proses harus
melepas dulu sumber daya yang dipegangnya. Jika diperlukan, proses meminta kembali sekaligus dengan
sumber daya yang baru.
3. Beri pengurutan linier terhadap tipe-tipe sumber daya pada semua proses, yaitu jika proses telah
dialokasikan suatu tipe sumber daya, proses hanya boleh berikutnya meminta sumber daya tipe pada urutan
yang berikutnya.
Saran pencegahan deadlock diatas merupakan cara meniadakan salah satu dari syarat perlu. Syarat perlu
pertama jelas tidak bisa ditiadakan, kalau tidak menghendaki kekacauan hasil.
Strategi Burung Onta
Strategi ini mengasumsikan kejadian deadlock jarang terjadi jika dibandingkan dengan kejadian komputer crash.
Strategi ini disebut strategi burung onta karena kabar yang telah tersebar (yang sebenarnya tidak benar) bahwa
burung onta akan menyembunyikan kepalanya ke tanah bila mengetahui adanya bahaya yang mengancamnya.
Sehingga solusi yang dilakukan justru sebenarnya tak memperdulikan adanya masalah.
Stategi ini sebenarnya berarta adalah sama sekali tidak berusaha mengatasideadlock / tak ada metoda sama
sekali untuk mengatasi masalah deadlock.
Penghindaran deadlock
Adalah hanya memberi akses ke permintaan sumber daya yang tidak mungkin menimbulkan deadlock.
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.
3 macam keamanan sistem, yaitu :
1. Keamanan eksternal / external security
Berkaitan dengan pengamanan fasilitas komputer dari penyusup dan bencana seperti kebakaran /
kebanjiran.
2. Keamanan interface pemakai / user interface security
Berkaitan dengan indentifikasi pemakai sebelum pemakai diijinkan mengakses program dan data yang
disimpan
3. Keamanan internal / internal security
Berkaitan dengan pengamanan beragam kendali yang dibangun pada perangkat keras dan sistem operasi
yang menjamin operasi yang handal dan tak terkorupsi untuk menjaga integritas program dan data.
2 masalah penting keamanan, yaitu :
1. Kehilangan data / data loss
Yang disebabkan karena :
• Bencana, contohnya kebakaran, banjir, gempa bumi, perang, kerusuhan, tikus, dll.
• Kesalahan perangkat keras dan perangkat lunak, contohnya ketidak berfungsinya pemroses, disk / tape
yang tidak terbaca, kesalahan komunikasi, kesalahan program / bugs.
• Kesalahan / kelalaian manusia, contohnya kesalahan pemasukkan data, memasang tape / disk yang
salah, kehilangan disk / tape.
2. Penyusup / intruder
• Penyusup pasif, yaitu yang membaca data yang tidak terotorisasi
• Penyusup aktif, yaitu mengubah data yang tidak terotorisasi.
Contohnya penyadapan oleh orang dalam, usaha hacker dalam mencari uang, spionase militer / bisnis,
lirikan pada saat pengetikan password.
Sasaran keamanan adalah menghindari, mencegah dan mengatasi ancaman terhadap sistem.
3 aspek kebutuhan keamanan sistem komputer, yaitu :
1. Kerahasiaan / secrecy, diantaranya privasi
Keterjaminan bahwa informasi di sistem komputer hanya dapat diakses oleh pihak-pihak yang terotorisasi
dan modifikasi tetap menjaga konsistensi dan keutuhan data di sistem
2. Integritas / integrity
Keterjaminan bahwa sumber daya sistem komputer hanya dapat dimodifikasi oleh pihak-pihak yang
terotorisasi
3. Ketersediaan / availability
Keterjaminan bahwa sumber daya sistem komputer tersedia bagi pihak-pihak yang diotorisasi saat
diperlukan
Sumber
informasi
Tujuan
informasi
Aliran normal
Tipe ancaman terhadap keamanan sistem komputer dapat dimodelkan dengan memandang fungsi sistem
komputeer sebagai penyedia informasi.
Berdasarkan fungsi ini, ancaman terhadap sistem komputeer dikategorikan menjadi 4 ancaman, yaitu :
1. Interupsi / interuption
Sumber daya sistem komputer dihancurkan / menjadi tak tersedia / tak berguna. Merupakan ancaman
terhadap ketersediaan. Contohnya penghancuran harddisk, pemotongan kabel komunikasi.
Sumber
informasi
Tujuan
informasi
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
informasi
Tujuan
informasi
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
informasi
Tujuan
informasi
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
informasi
Tujuan
informasi
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.
Otentifikasi pemakai / user authentification adalah identifikasi pemakai ketika login.
3 cara otentifikasi :
1. Sesuatu yang diketahui pemakai, misalnya password, kombinasi kunci, nama kecil ibu mertua, dll
Untuk password, pemakai memilih suatu kata kode, mengingatnya dan menggetikkannya saat akan
mengakses sistem komputer, saat diketikkan tidak akan terlihat dilaya kecuali misalnya tanda *. Tetapi
banyak kelemahan dan mudah ditembus karena pemakai cenderung memilih password yang mudah diingat,
misalnya nama kecil, nama panggilan, tanggal lahir, dll.
Upaya pengamanan proteksi password :
a. Salting, menambahkan string pendek ke string password yang diberikan pemakai sehingga mencapai
panjang password tertentu
b. one time password, pemakai harus mengganti password secara teratur, misalnya pemakai mendapat 1
buku daftar password. Setiap kali login pemakai menggunakan password berikutnya yang terdapat pada
daftar password.
c. satu daftar panjang pertanyan dan jawaban, sehingga pada saat login, komputer memilih salah satu dari
pertanyaan secara acak, menanyakan ke pemakai dan memeriksa jawaban yang diberikan.
d. tantangan tanggapan / chalenge respone, pemakai diberikan kebebasan memilih suatu algoritma
3
misalnya x , ketika login komputer menuliskan di layar angka 3, maka pemakai harus mengetik angka
27.
2. Sesuatu yang dimiliki pemakai, misalnya bagde, kartu identitas, kunci, barcode KTM, ATM.
Kartu pengenal dengan selarik pita magnetik. Kartu ini disisipkan de suatu perangkat pembaca kartu
magnetik jika akan mengakses komputer, biasanya dikombinasikan dengan password.
3. Sesuatu mengenai / merupakan ciri pemakai yang di sebut biometrik, misalnya sidik jari, sidik suara, foto,
tanda tangan, dll
Pada tanda tangan, bukan membandingkan bentuk tanda tangannya (karena mudah ditiru) tapi gerakan /
arah dan tekanan pena saat menulis (sulit ditiru).
Untuk memperkecil peluang penembusan keamanan sistem komputer harus diberikan pembatasan,
misalnya :
1. Pembatasan login, misalnya pada terminal tertentu, pada waktu dan hari tertentu
2. Pembatasan dengan call back, yaitu login dapat dilakukan oleh siapapun, bila telah sukses, sistem
memutuskan koneksi dan memanggil nomor telepon yang disepakati. Penyusup tidak dapat menghibungu
lewat sembarang saluran telepon, tapi hanya pada saluran tetepon tertentu.
3. Pembatasan jumlah usaha login, misalnya dibatasi sampai 3 kali, dan segera dikunci dan diberitahukan ke
administrator.
Objek yang perlu diproteksi :
1. Objek perangkat keras, misalnya pemroses, segment memori, terminal, diskdrive, printer, dll
2. Objek perangkat lunak, misalnya proses, file, basis data, semaphore, dll
Masalah proteksi adalah mengenai cara mencegah proses mengakses objek yang tidak diotorisasi. Sehingga
dikembangkan konsep domain. Domain adalah himpunan pasangan (objek,hak). Tiap pasangan
menspesifikasikan objek dan suatu subset operasi yang dapat dilakukan terhadapnya. Hak dalam konteks ini
berarti ijin melakukan suatu operasi.
Cara penyimpanan informasi anggota domain beerupa satu matrik besar, dimana :
•
baris menunjukkan domain
•
kolom menunjukkan objek
Download