Anda di halaman 1dari 92

KATA PENGANTAR

Dalam Ilmu komputer, Sistem operasi atau dalam bahasa Inggris: operating
system atau OS adalah perangkat lunak sistem yang bertugas untuk melakukan kontrol
dan manajemen perangkat keras serta operasi-operasi dasar sistem, termasuk
menjalankan software aplikasi seperti program-program pengolah kata dan browser web.
Secara umum, Sistem Operasi adalah software pada lapisan pertama yang ditaruh
pada memori komputer pada saat komputer dinyalakan. Sedangkan software-software
lainnya dijalankan setelah Sistem Operasi berjalan, dan Sistem Operasi akan melakukan
layanan inti umum untuk software-software itu. Layanan inti umum tersebut seperti akses
ke disk, manajemen memori, skeduling task, dan antar-muka user. Sehingga masing-
masing software tidak perlu lagi melakukan tugas-tugas inti umum tersebut, karena dapat
dilayani dan dilakukan oleh Sistem Operasi. Bagian kode yang melakukan tugas-tugas
inti dan umum tersebut dinamakan dengan "kernel" suatu Sistem Operasi.
Adapun di perguruan tinggi STMIK Asia Malang mata kuliah Sistem Operasi
wajib yang harus ditempuh oleh mahasiswa jurusan Sistem Komputer. Penulis mencoba
menyajikan sesuatu dengan cara sesederhana mungkin dengan bahasa yang mudah
diterima sehingga mengurangi kesulitan mahasiswa pada perkuliahan ini. Penulis
mengharapkan pembaca bisa menangkap materi dan persoalan-persoalan yang diberikan.
Diharapkan pembaca dapat menikmati permasalahan tanpa memandangnya sebagai
sesuatu yang sulit.
Penulis menyadari bahwa masih banyak kekurangan di sini, baik kesalahan
pengetikan maupun kekurangtepatan dalam penjelasan. Penulis dengan senang hati akan
menerima saran dan kritik membangun dari pembaca,.
Tidak lupa penulis mengucapkan puji syukur yang tak terhingga lepada ALLAH
SWT serta Junjungan kita Nabi Besar Muhamad SAW yang kita nantikan safaatnya di
hari akhir kelak, serta tak lupa rekan-rekan yang membantu atas terselesaikannya modul
ini.
Malang, 2009

Penulis

i
DAFTAR ISI

KATA PENGANTAR ............................................................................... i


DAFTAR ISI ............................................................................................. ii

BAB I PENDAHULUAN
1.1 Blog Diagram Komputer ............................................................ 1
1.2 Sistem Operasi Komputer ........................................................... 2
1.3 Perkembangan Sistem Operasi Komputer................................... 7
BAB II MANAJEMENT PROSES
2.1 Proses ....................................................................................... 11
2.2 Model Prose.............................................................................. 11
BAB III TEKNIK PENJADWALAN PROSESOR
3.1 Istilah-Istilah ............................................................................... 20
3.2 Siklus Kerja Prosesor................................................................... 21
BAB IV MANAJEMEN MEMORY
4.1 Mamory Manager ....................................................................... 31
4.2 Fungsi Managemen Memory ..................................................... 33
4.3 Strategi Penempatan Program Ke Partisi ........................................ 35
BAB V VIRTUAL MEMORY
5.1 Algoritma Penggantian Page .................................................. 44
BAB VI SISTEM FILE
6.1 File .............................................................................................. 51
6.2 Directory ..................................................................................... 53
BAB VII INPUT / OUTPUT
7.1 Prinsip Keras I/O ......................................................................... 77
7.2 Prinsip Sorware I/O...................................................................... 80
7.3 Disk.............................................................................................. 82
DAFTAR PUSTAKA

ii
BAB I

PENDAHULUAN

Tanpa perangkat lunak (software) sebuah komputer sebenarnya sekumpulan besi yang
tidak berguna. Dengan software sebuah komputer dapat digunakan untuk menyimpan, mengolah
data (memproses) dan mendapatkan kembali informasi yang telah disimpan, menemukan
kesalahan dalam program, memainkan games dan menggunakan banyak aktivitas lainnya yang
bernilai. Pada umumnya program komputer dapat dibagi menjadi dua kategori, yaitu :
a. Program sistem (system program). Yang berfungsi untuk mengatur operasi dari komputer itu
sendiri.
b. Program aplikasi (application program). Yang berfungsi untuk membantu menyelesaikan
masalah untuk pemakainya.

1.1. Blok Diagram Komputer

Control Unit
Masukan

Processor
Saluran
Keluaran Penghubung
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 Word Program
Game
System Processing Aplikasi
Command
Compiler Utility Program
Interpreter
Sistem Operasi (Operating System) Sistem
Bahasa Mesin (Machine Language)
Pemrograman Mikro (Microprogramming) Hardware
Perangkat Fisik (Physical Devices)

1
Gambar 2. Komponen Sistem Komputer

Keterangan :
- Perangkat keras / hardware membentuk dua atau lebih lapis. Lapis yang paling bawah
(physical devices) berisi perangkat fisik, yang terdiri dari integrasi circuit chips, kabel (wires),
power supplies, cathode ray tubes (CRT) dan perangkat lainnya yang dibuat dan sistem
kerjanya merupakan bagian insinyur elektronik.
- Lapis berikutnya, software primitive langsung mengontrol peralatan tersebut (physical
devices) dan menyediakan interface (a cleaner interface) untuk layer diatasnya dikenal
dengan microprogram yang ditempatkan dalam read-only memory (ROM). Sebenarnya
microprogram berfungsi sebagai penerjemah, mengambil (fetching) intruksi bahasa mesin,
seperti ADD, MOVE dan JUMP serta melaksanakan proses-proses kecil yang saling terkait.
Contohnya apabila melaksanakan instruksi ADD, microprogram harus menentukan dimana
angka-angka yang ditambahkan ditempatkan (disimpan sementara), mengambilnya,
menambahkannya dan menyimpan hasilnya disuatu tempat tertentu.
- Sekumpulan instruksi yang diterjemahkan microprogram disebut machine language (bahasa
mesin), yang memilikim 50 sampai 300 instruksi yang kenyataannya bukan bagian dari
perangkat mesin semuanya, tetapi pembuat komputer selalu menjelaskannya dalam
manualnya (sejenis buku panduan perangkat kerasnya), sehingga banyak orang mengira
sebagai mesin sesungguhnya. Dalam lapis ini, perangkat masukan/keluaran mengontrol
pemuatan nilai ke dalam register khusus.
- Fungsi utama dari Operating System adalah menyembunyikan semua kekomplekan /
kerumitan dan memberikan programmer sebuah kenyamanan, kemudahan, kepraktisan dari
instruksi yang digunakan untuk bekerja dengannya, contohnya, READ BLOCK FROM FILE
adalah konsep / gagasan penyederhanaan daripada harus berpikir tentang bagaimana
memindahkan head disk secara rinci, menunggu untuk menjadi tenang (posisi istirahat).
- Diatas lapis Operating System (OS) adalah untuk menempatkan software system. Dari sini
ditemukan penerjemah perintah (command interpreter/shield), compiler, editor dan application
program independent. Adalah penting untuk menyadari/merealisasikan bahwa program-
program ini dengan pasti bukan bagian dari SO, walaupun secara khas disediakan oleh
pembuat komputer. OS adalah bagian dari software yang dijalankan dalam kernel mode atau
supervisor mode. SO memproteksi dari pemakai yang menganggu pemakain hardware
- Compiler dan editors dijalankan dalam user mode. Jika seorang tidak suka sebuah compiler
khusus, pemakai bebas menulis miliknya jika dapat memilih dan tentunya tidak bebas untuk
menangani interrupt disk yang merupakan bagian dari OS dan normalnya akan memproteksi
hardware terhadap usaha pemakai untuk memodifikasinya.
- Diatas layer system program adalah application program. Program ini ditulis oleh user untuk
memecahkan masalah khusus, seperti proses pengolahan data, perhitungan rekayasa atau
memainkan sebuah permainan.

1.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)

2
 Tugas utamanya : memantau penggunaan semua resources; menerapkan aturan
(policy); mengalokasikan resources yang diminta; mengambil kembali (dealokasi)
resource
 Sumber daya pada komputer terdiri dari :
- Sumber daya fisik, misalnya : Keyboard, bar-code reader, mouse, joystick, light-
pen, touch-screen, pointing devices, floppy disk drive, harddisk, tape drive,
optical disk, CD ROM drive, CRT, LCD, printer, modem, ethernet card, PCMCIA,
RAM, cache memory, register, kamera, sound card, radio, digitizer, scanner,
plotter, dan sebagainya.
- Sumber daya abstrak, terdiri dari :Data dan Program
 Sebagai Extended Machine (Virtual Machine), penyedia layanan
 Menyembunyikan kompleksitas / kerumitan pemrograman hardware dari
programmer atau user.
 Menyajikan fasilitas yang lebih mudah dan sederhana untuk menggunakan
hardware.

 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

3
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
User Program 2 Program
Runs in
User Program 1 User Mode
Kernell Call

4
Operating System
1 3 runs in
s Kernel Mode
servis service

2 procedure
Dispatch
Table 4
Gambar 4. Struktur Sistem Monolithic

 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
5 The Operator Untuk 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
0 Processor Allocation & Multiprogramming switching multiprogramming dan
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

5
System Call

I/O Intruction CMS CMS CMS Trap


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 Term. File Mem User
Process Process Server Server … Server Server 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 Client Client Client

Kernel 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

6
 Jenis Sistem Operasi
 Aspek kegiatan
 Pemakai tunggal (single user)
 Pemakai jamak (multiuser)
 Berdasarkan jenis-jenisnya
 Linux
 MS-Dos
 MS Windows-NT
 MS Windows
 Dll

1.3. Perkembangan Sistem Operasi Komputer

 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

7
Job 3
Job 2
Job 1
Sistem operasi
 Mengenalkan Time Sharing (berbagi waktu), tiap pemakai mempunyai satu terminal
online dengan pemroses hanya memberi layana pada pemakai yang aktif secara
bergantian secara cepat. Pemakai akan merasa dilayani terus menerus. Padahal
sebenarnya secara bergantian.
 Mengenalkan SPOOLING (Simultaneous Peripheral Operation On Line), membuat
peripheral seolah-olah dapat digunakan bersamaan, dapat diaksis secara simultan
yaitu dengan cara menyediakan beberapa partisi memori. Saat terdapat permintaan
layanan peripheral, langsung diterima dan data disimpan lebih dulu di memori yang
disediakan berupa antrian kemudian dijadwalkan agar secara nyata dilayani
peripheral.
 Sistem time sharing pertama, CTSS, dikembangkan di MIT
 Usaha pengembangan ‘computer utility’ mesin yang dapat menunjang ratusan time
sharing user
 Pengembangan komputer MINI (DEC-PDP-1 s/d PDP-11)
 Ken Thompson mengembangkan versi satu pemakai (single user) dari MULTICS
(MULTIplex and Computing Services)
 UNIX (Uniplexed Information and Computing Services)

 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.

8
The End

But

To be continue……

CONTOH KASUS :
 Linux
 MS Dos
Sistem operasi MS Dos berisi :
Ibmbio.com, yaitu disk dan character I/O System
IO.sys, yaitu disk dan file manager
MSDOS.sys, yaitu command processor, shellprimitif
Sistem operasi kompatibel dengan CP/M, dengan peningkatan alokasi disk, lebih cepat dan
mendukung shell script primitif disebut batch files.
 MS Windows
Microsoft Windows 95 merupakan sistem operasi Windows yang terintegrasi dan lengkap
mulai dengan fungsi-fungsi dasar yang sekarang ada pada MS Windows, Windows dan Windows
for Workgroup.
Agar PC lebih mudah dipakai, diberikan shell baru. Plug and Play (PnP) yang terintegrasi
kedalam sistem operasi, termasuk wizard untuk memandu para pemakai melalui sistem operasi
dan memberikan interface pemakai yang konsisten untuk seluruh komponen sistem operasi dan
spasi nama. Kecepatan dan daya tambahan dari sistem operasi 32-bit modern dengan
preemptive multitasking, thread dan plaltform untuk generasi baru aplikasi 32-bit.
Windows 95 adalah sistem operasi lengkap yang tidak dibatasi oleh MS Dos dan punya
semua manfaat dari sistem operasi grafis yang lengkap yang ada pada dirinya. Dalam hal
konektivitas baik dalam LAN, WAN maupun nobile dial-up dibuat konektivitas ke sumber daya
yang bersifat remote semudah hubungan ke sumber daya lokal. Dan dimasukkan akses ke
informasi elektronik untuk surat elektronik dan layanan on-line. Dan juga Windows 95 dibuat
kompatibel dengan software dan hardware yang dimiliki pemakai pada saat ini.
Walaupun Microsoft mengeluarkan sistem operasi baru dengan format grafis dan ber-
arsitektur 32 bit, bukan berarti sistem operasi ini mutlak dipakai. Ini hanya sebagai sistem operasi
alternatif yang sudah ada, seperti UNIX, IBM OS2/Warp, Oracle, IBM AS/400, dan lain-lain.

9
PERTANYAAN :
1. Sebutkan dua fungsi utama sistem operasi ?
2. Apa yang dimaksud dengan multiprogramming ? Berikan dua alasan diadakannya
multiprogramming !
3. Apa yang dimaksud dengan spooling ? Apakah anda menganggap personal komputer
harus memiliki spooling sebagai standar dasar di masa yang akan datang?
4. Pada awal perkembangan komputer, setiap byte data yang dibaca atau yang ditulis
ditangani oleh CPU (tidak ada DMA-Direct Memory Access). Apa implikasinya struktur
seperti ini terhadap konsep multiprogramming.
5. Mengapa timesharing tidak tersebar luas pada generasi ke-2 komputer ?
6. Instruksi-instruksi manakah yang diperbolehkan dalam Mode Kernel :
a. Disable all interupts.
b. Read the time-of-day clock.
c. Set the time-of-day clock.
d. Change the memory map.
7. Sebutkan beberapa perbedaan sistem operasi pada personal komputer dengan sistem
operasi pada mainframe!
8. Bagaimana secara umum sistem operasi memberitahukan kepada direktori kerja apakah
path name untuk sebuah file adalah absolute atau relative?
9. Mengapa shell bukan bagian dari sistem operasi ?
10. Berikan sebuah contoh bagaimana mekanisme dan kebijaksanaan bisa terpisah dengan
baik dari pejadwalan. Buat sebuah mekanisme yang bisa mengijinkan sebuah parent
process untuk mengontrol kebijaksanaan penjadwalan children.
11. Model Client-Server tekenal didalam distributed systems. Dapatkah juga digunakan dalam
sistem komputer tunggal ?
12. Mengapa proses tabel membutuhkan sistem timesharing? Apakah hal ini juga dibutuhkan
dalam system personal computer yang pada suatu saat hanya terdapat satu proses yang
sedang bekerja dan mengambil alih mesin sampai proses tersebut selesai ?
Apa perbedaan mendasar diantara blok special file dan character special file.

10
BAB II
MANAJEMEN PROSES

2.1. Proses
Adalah program yang sedang di jalankan atau software yang sedang dilaksanakan termasuk sistem operasi
yang disusun menjadi sejumlah proses sequential.

Konsep dasar :
1. Multiprogramming
Melakukan proses satu persatu secara bergantian dalam waktu yang sangat cepat /
bersamaan (hardware level). Setiap proses mempunyai satu virtual CPU.
2. Pseudoparallelism
Melakukan lebih dari satu pekerjaan dalam waktu yang bersamaan / pseudoparallelism (user level).

2.2. 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 Empat Model


program counter program counter Proses
Proses

A D
C
B
C B
A
A B C D
D
Waktu
(a) (b) (c)

Keterangan :
a. multiprogramming untuk 4 program di memori
b. model konseptual untuk 4 proses independent, sequential
c. hanya 1 program yang aktif dalam 1 waktu = pseudoparalel

Hirarki Proses
Pemanggilan proses oleh proses lain disebut parallel. Sistem operasi menyediakan apa yang dibutuhkan

oleh proses. Umumnya proses diciptakan dan dihilangkan selama operasi berlangsung.

1. Create & Destroy Proses

11
Sistem operasi yang mendukung konsep proses, harus menyediakan suatu cara untuk
membuat (create) proses dan menghilangkan (destroy) proses.
2. Fork System Call
Mekanisme untuk membuat (create) proses yang identik dengan proses yang
memanggilnya.
Contoh :
Parent  children
 children  children
 children
Pada UNIX, parent dan child process running secara parallel.
Pada DOS, parent dan child process running secara bergantian (sequential). Contohnya :
MSDOS sebagai parent dan program aplikasi sebagai child.

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
1 2
3
Blocked / Ready /
terhenti siap
4
1. Proses di blok untuk melayani input karena sumber daya yang diminta belum tersedia /
meminta layanan I/O sehingga menunggu kejadian muncul.
2. Penjadwalan mengambil proses lain.
3. Penjadwalan mengambil proses ini (baru).
4. Input telah tersedia.

Implementasi Proses :
 Untuk mengimplementasikan model proses, sistem operasi menggunakan suatu
tabel / array yang disebut tabel proses dengan 1 entry per-proses.
 Setiap entry berisi tentang : status proses, program counter, stack pointer,
alokasi memori, status file, informasi schedulling / penjadwalan informasi, dll dari status kerja
ke status siap.

Contoh Tabel Proses :


Proses management Memory management File management
Register Pointer to text segment UMASK mask
Program counter Pointer to data segment Root directoy
Program status word Pointer to bss segment Working directory

12
Stack pointer Exit status File descriptiors
Process state Signal status Effective uid
Time when process started Process id Effective gid
CPU time used Parent process System call parameters
Children’s CPU time Process group Various flag bits
Time of next alarm Real uid
Message queue pointers Effective uid
Pending signal bits Real gid
Process id Effective gid
Various flag bits Bit maps for signals
Various flag bits
 Interupsi : Kerja prosesor pada suatu proses terhenti oleh pensaklaran konteks.
 Pensaklaran konteks : perubahan kegiatan prosesor dari proses ke proses yang terjadi
diantara proses sistem / proses aplikasi
 Konteks : kegiatan prosesor terhadap sesuatu hal, berasal dari sistem operasi, sistem
bahasa dan sistem utilitas.
 Blok kendali proses : suatu bagian memori untuk mencatat keadaan proses, yang terbagi
atas wilayah dimana setiap wilayah untuk mencatat informasi yang berbeda.

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.

13
b. Penata interupsi merekam semua informasi proses ke dalam blok kendali
proses.
c. Penata interupsi mengidentifikasi jenis dan asal interupsi.
d. Penata interupsi mengambil tindakan sesuai dengan yang dimaksud interupsi.
e. Penata interupsi mempersiapkan segala sesuatu untuk pelanjutan proses
yang diinterupsi.
2. Penata keliru / error handler
yaitu interupsi karena kekeliruan pada pengolahan proses dan bagian pada sistem operasi
yang menata kegiatan akibat kekeliruan adalah penata keliru.
a. Pemulihan, komputer telah dilengkapi dengan sandi penemuan dan
pemulihan kekeliruan, contohnya telah dilengkapi dengan sandi Hamming sehingga
ketika menemukan kekeliruan sandi akan mengoreksi kekeliruan itu, proses pulih ke
bentuk semula sebelum terjadi kekeliruan.
b. Pengulangan, mengatur agar proses yang membangkitkan interupsi keliru
dikerjakan ulang, jika kekeliruan dapat diatasi maka proses akan berlangsung seperti
biasa, jika tidak teratasi maka interupsi akan menempuh tindak lanjut keluar dari
proses.
c. Keluar dari proses, penata keliru menyiapkan tampilan berita keliru dari
monitor, setelah itu prosesor keluar dari proses, ini adalah tindakan terakhir jika tidak
dapat menolong proses yang keliru tersebut.

Tindak lanjut interupsi menurut Peterson & Silberschatz :


Interupsi

Rekam informasi proses

Maksud interupsi?

Rampung Keliru Bukan I/O Mulai I/O Rampung I/O

Kerja / Curah Laksanakan Mulai Tanda


Perintah Permintaan Rampung
Berikutnya

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

14
Setelah interupsi selesai dilayani, kendali prosesor dikembalikan pada proses sebelumnya,
tetapi ada kalanya prosesor ikut campur dalam kerja alat I/O sehingga pengembalian kendali
proses semula, tidak berlangsung segera / tunggu.
5. Rampung dari alat I/O
Setelah interupsi selesai dilayani dan tanda rampung dicatat, kendali prosesor dikembalikan
ke proses semula. Biasanya untuk alat I/O yang tidak diikut campuri oleh prosesor.

Catt:
1 & 2 tidak mengembalikan prosesor ke proses yang terinterupsi, sedangkan
3,4,5 mengembalikan prosesor ke proses yang terinterupsi.

Langkah-langkah yang dilakukan sistem operasi pada saat terjadi interupsi :


1. hardware memasukkan program counter, dl.l.
memasukkan ke dalam stack pencacah program
2. Hardware memuatkan (load) program counter baru dari vector interrupsi
3. Prosedur bahasa rakitan menyimpan isi register
4. Prosedur bahasa rakitan men-set stack yang baru
5. Prosedur C menandai proses servis siap (ready)
6. Scheduler / penjadwalan menentukan proses mana yang akan jalan berikutnya
7. Prosedur C kembali ke modus bahasa rakitan
8. 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

15
 Interupsi ………
 Proses B  meletakkan data yang akan di print pada slot kosong tersebut (7) dan stop (slot
kosong berikutnya adalah 7+1=8)
 : prosesor mengerjakan proses lain
 Proses A dilanjutkan  meletakkan data yang akan di print di slot (7), sehingga meng-
overwrite data proses B yang diletakkan di slot (7)
 Maka proses B tidak akan dilaksanakan, dan tidak akan terdeteksi terjadi kesalahan.

Untuk menghindari race condition maka harus diatur agar 2 proses yang mempunyai critical
section yang sama tidak memasuki critical section pada saat yang bersamaan.

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 ( );

16
}
4. Peterson’s Solution
Proses tidak akan diteruskan sampai while terpenuhi, bila interested[other] = TRUE, maka
proses akan menunggu sampai FALSE.
Kelemahannya : jika proses memanggil enter_region-nya secara hampir bersamaan, yang
disimpan di turn adalah data yang ditulis terakhir.
Contohnya :
# include “prototype.h”
# define FALSE 0
# define TRUE 1
# define N 2 /*banyaknya proses*/

int turn;
int interested [N]; /*nilai awal di-set = 0 (false)*/
void enter_region(int process) /*proses = 1 atau 0*/

{
int other; /*jumlah proses lainnya*/
other = 1 – process; /*proses lainnya*/
interested[process] = TRUE; /*menunjukkan tertarik*/
turn = process; /*set flag*/
while (turn==process && interested[other] == TRUE)
}

void leave_region(int process) /*proses yang selesai*/


{
interested[process] = FALSE; /*meninggalkan critical region*/
}
5. 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.
6. Sleep and Wake Up
Mekanismenya : proses akan di blok / tidur (sleep) apabila tidak bisa memasuki
critical_section-nya dan akan dibangunkan (wake up) / ready apabila resource yang
diperlukan telah tersedia.
SLEEP : sistem call membuat proses yang memanggil di blok (blocked)
WAKE UP : sistem call yang membuat proses yang memanggil menjasi ready
Contoh :
Procedure-Consumer Problem (bounded buffer)

17
Beberapa proses share buffer dengan ukuran tetap
Jika buffer penuh producer sleep
Jika buffer kosong consumer sleep
Jika buffer mulai kosong producer wake up
Jika buffer terisi consumer wake up
Masih ada kemungkinan terjadi race condition
7. Semaphore (Dijkstra, 1965)
Meng-cek, mengubah dan sleep 1 instruksi yang
Mengubah dan wake up tdk dpt dipisahkan
Instruksi tersebut sangat berguna untuk sinkronisasi.
Dapat diimplementasikan untuk memecahkan producer-consumer problem.
Mekanisme-nya menggunakan :
- variabel integer untuk menghitung jumlah wake up yang disimpan / tertunda
- bernilai 0 bila tidak ada wake up yang disimpan, bernilai positif bila ada wake up yang
tertunda

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).
8. Event Counters (Reed and Kanodia, 1979)
Tiga operasi terhadap event counter (E) :
1. Read (E) : return current value of E
2. Advance (E) : Atomically increment E by 1
3. Wait until E has a value of v or more
9. Monitor
- Higher level synchronization primitive.
- Kumpulan prosedur, variabel dan struktur data yang dipaket menjadi satu modul atau
paket.
- Proses bisa memanggil prosedur dalam monitor, tetapi tidak dapat mengakses langsung
struktur data internal dari monitor.
10. Message Passing
Menggunakan 2 primitive :
1. send (destination, &message)
2. receive (source, &message)
Beberapa isu pada message passing system : message lost; acknowledgement; domains;
authentication; performance

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

18
- Banyak proses berkompetisi untuk membaca dan menulis. Contohnya : airline
reservation.
- Beberapa proses boleh membaca pada saat yang sama
- Bila suatu proses sedang menulis, tidak boleh ada proses lain yang mengakses database
- Proses membaca mempunyai prioritas yang lebih tinggi daripada proses menulis

Proses dalam Sistem Terdistribusi


Thread
Computer Computer

Process Thread Program Counter


(a) (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 Kerja Selesai


2. Status proses sambil bekerja dan terhenti

Mulai Kerja Selesai

Terhenti
3. Status proses dengan status siap

Mulai Siap Kerja Terhenti


19
Terhenti
20
BAB III
TEKNIK PENJADWALAN PROSESOR

3.1. Istilah-istilah

 Pekerjaan / Job
User menyerahkan pekerjaan mereka pada komputer. Ada pekerjaan yang panjang, sedang dan pendek.
Untuk dapat diolah oleh komputer harus dianalisis dahulu untuk mengetahui bagaimana sebaiknya
pekerjaan itu dilakukan.
 Terobosan / Troughput
Pekerjaan dalam komputer dilaksanakan langkah demi langkah, sehingga dapat dikatakan bahwa
troughput adalah banyaknya pekerjaan yang dapat diselesaikan oleh sistem komputer dalam satu
satuan waktu.
 Tugas / Task
Program yang terdiri dari banyak bagian program dan bagian program yang dikerjakan merupakan
tugas bagi sistem operasi.
- Tugas yang sedang dilaksanakan, adalah tugas yang menemukan semua sumber daya
yang diperlukannya, termasuk prosesor.
- Tugas yang siap dilaksanakan, adalah tugas yang menemukan semua sumber daya
yang diperlukannya, kecuali prosesor.
- Tugas yang belum dilaksanakan, adalah tugas yang belum menemukan sumber daya
yang diperlukannya.
 Proses / Process
Tugas yang telah dijadwalkan untuk menemukan prosesor / tugas yang telah diterima oleh
penjadwalan.
Tugas Penjadwalan Proses
Prosesor

21
Gambar suatu contoh prosesor
Keterangan :
 GK = galur kendali / control bus
 GD = galur data / data bus, tempat informasi data berlalu lintas antar register
 GA = galur alamat / address bus, tempat informasi alamat memori berlalu lintas antar register karena
setiap kali hanya ada 1 informasi dalam galur ini, maka lalu lintas diatur oleh tanda waktu dari kunci
waktu. Tanda waktu dibentuk oleh basis waktu
 A = akumulator, register serba guna yang dapat menerima berbagai informasi
 SLA = satuan logika dan aritmatika / ALU, tempat pengolahan, contohnya untuk menghitung 3+4=?,
maka data 3 diletakkan di register A dan data di register B. proses penjumlahan terjadi di SLA / ALU,
hasil = 7 diletakkan kembali di register A
 B = register, register yang menerima informasi yang akan diolah bersama oleh isi register A
 PT = pencacah program / program counter, program terletak dalam memori kerja pada alamat
memori tertentu. PT menerima alamat memori awal saat diolah oleh prosesor dan juga menyaring dan
menentukan alamat memori mana saja yang isinya akan dibawa ke prosesor dan hanya alamat yang
sesuai dengan letak program yang sedang diolah yang diperbolehkan PT masuk ke prosesor. PT
mencacah dirinya sebesar 1 cacahan dan dengan cara yang sama akan melayani alamat berikutnya
sampai alamat terakhir.
 RI = register instruksi, membawa dan menerima informasi dari memori kerja dan diperiksa.
 SK = satuan kendali / control unit, menerima informasi instruksi program dan sesuai dengan isi
instruksi SK mengendalikan kegiatan dalam prosesor.
 RA = register alamat / address register, mencatat alamat memori yang isinya akan dicapai alamat itu
di memori kerja. Jika pembacaan data dari memori kerja, data / isi dari memori kerja dibaca dan
disalin ke RD, tetapi jika pada penulisan data ke memori kerja, maka isi RD disalin ke alamat memori
kerja.
 RD = register data.
 RD dan RA bekerja sama dalam kegiatan pengambilan dan pengiriman data dari dan ke memori kerja.

3.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)

22
Proses Serentak / Concurrent Process :
Yaitu prosesor menghadapi banyak tugas dan proses.
a. Multiprogramming, sistem komputer lebih dari 1 program sekaligus dalam pelaksanaan proses.
b. Multitasking, banyak bagian program yang dipersiapkan untuk diolah oleh prosesor namun belum
sempat dijadwalkan untuk memperoleh prosesor.
c. Multiprocessing, sejumlah tugas yang telah dijadwalkan untuk menggunakan prosesor.
d. Multiplexing, menggunakan pertukaran kendali dalam selang waktu terpisah-pisah.
e. Time sharing / rentang waktu, secara bersamaan sejumlah pemakai dapat menggunakan 1 sistem
komputer, sehingga setiap pemakai merasa bahwa seluruh sistem komputer seolah-olah untuk dirinya.

Proses Berurutan :
Sejumlah proses berlangsung secara berselingan dan tidak ada diantara mereka yang bertumpang tindih
waktu, sebelum 1 proses selesai, proses berikutnya belum bekerja.
A
B
C

Proses Paralel :
- pada proses tunggal, proses serentak bukan proses paralel karena proses tersebut di gali 1 demi 1,
sepenggal demi sepenggal.
- Pada proses jamak, proses dapat dilaksanakan secara serempak diantara banyak prosesor sehingga
disebut proses paralel
A
B
C

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.

23
a. Penjadwalan jangka pendek / short term scheduling / low level scheduling, yaitu
mengurus masuknya antrian siap ke prosesor serta antrian siap ke alat peripheral I/O,
yang mengurus prioritas dan preempsi.
b. Penjadwalan jangka media / medium term scheduling / intermediate level scheduling,
yaitu mengurus terhadap proses yang dikeluarkan dari prosesor yang belum rampung
dikerjakan dan melanjutkan pekerjaan proses tersebut di prosesor.
c. Penjadwalan jangka panjang / long term scheduling / high level scheduling, yaitu
mengurus masuknya pekerjaan baru berupa penentuan pekerjaan baru mana yang boleh
diterima dan tugas disini diubah menjadi proses.
 Tujuan penjadwalan / kriteria baik tidaknya suatu algoritma penjadwalan :
a. Fairness / pelayanan yang adil untuk semua pekerjaan
b. Throughput / memaksimumkan throughput
c. Efficiency / memaksimumkan pemakaian prosesor
d. Overhead / meminimumkan waktu tunggu
e. Pemakaian sumber daya seimbang
f. Tidak terjadi penundaan waktu tak hingga
g. Kegiatan sumber daya dapat dideteksi terlebih dahulu

 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.

24
Nama Proses Saat Tiba Lama Proses Saat Mulai Saat Rampung Lama Tanggap
A 0 9 0 9 9
B 0 30 9 39 39
C 0 4 39 43 43
D 0 8 43 51 51
E 0 12 51 63 63
  Ti 205
serentak Tr 41

Tr cukup besar, jika dibandingkan dengan lama tanggap dari masing-masing proses.

Nama Proses Saat Tiba Lama Proses Saat Mulai Saat Rampung Lama Tanggap
A 0 4 0 4 4
B 1 7 4 11 10
C 3 3 11 14 11
D 7 8 14 22 15
 Ti 40
Tr 10
Lama tanggap  saat rampung karena perbedaan saat tiba.

 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 Saat Tiba Lama Proses Saat Mulai Saat Rampung Lama Tanggap
A 0 11
B 0 8
C 0 10
D 0 3
E 0 5

Nama Proses Saat Tiba Lama Proses Saat Mulai Saat Rampung Lama Tanggap
D 0 3 0 3 3
E 0 5 3 8 8
B 0 8 8 16 16
C 0 10 16 26 26
A 0 11 26 37 37
   Ti 90
serentak prioritas Tr 18

Tr lebih singkat, jika dibandingkan dengan PTPD

Nama Proses Saat Tiba Lama Proses Saat Mulai Saat Rampung Lama Tanggap
A 0 5
B 3 7
C 5 2
D 6 4

Disusun urutan proses berdasarkan prioritasnya, yaitu CDAB, tetapi pada saat tiba = 0, proses terpendek C
belum datang, maka mengerjakan proses A dahulu, setelah selesai pada saat 5, proses C sudah datang,
sehingga C dikerjakan dan seterusnya seperti :

A B C D
   

25
Saat 0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18
Proses A A A A A C C D D D D B B B B B B B

Nama Saat Lama Saat Saat Rampung Lama Tanggap


Proses Tiba Proses Mulai
A 0 5 0 5 5
C 5 2 5 7 2
D 6 4 7 11 5
B 3 7 11 18 15
=18  Ti 27
Tr 6.75
Keuntungan : memperkecil rata-rata lama tanggap
Kelemahan : layanan terhadap proses panjang bisa tidak terlayani jika proses pendek datang terus.

Nama Saat Lama Saat Saat Rampung Lama Tanggap


Proses Tiba Proses Mulai
A 0 8
B 4 5
C 6 3
D 9 8
E 14 4

Nama Saat Lama Saat Saat Rampung Lama Tanggap


Proses Tiba Proses Mulai
A 0 8 0 8 8
C 6 3 8 11 5
B 4 5 11 16 12
E 14 4 16 20 6
D 9 8 20 28 19
 Ti 50
Tr 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 Saat Lama Saat Saat Rampung Lama Tanggap


Proses Tiba Proses Mulai
A 0 7
B 2 3
C 4 9
D 5 4

A B C D
   
Saat 0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23
Proses A A B B B D D D D A A A A A C C C C C C C C C

 Pada saat 0, proses A dikerjakan karena A datang pertama

26
 Pada saat 2, B datang, B=3, sisa A=5, B<A maka A dikeluarkan dari proses, B dikerjakan
 Pada saat 4, C datang, C=9, sisa A=5, sisa B=1, B<A<C, maka B dikerjakan
 Pada saat 5, D datang, D=4, sisa A=5, sisa C=9, D<A<C, maka D dikerjakan sampai selesai karena
tidak ada proses yang datang lagi
 A<C maka A dikerjakan
 C dikerjakan
 Selesai

Nama Saat Lama Saat Saat Rampung Lama Tanggap


Proses Tiba Proses Mulai
A 0 7 0 14 14
B 2 3 2 5 3
C 4 9 15 23 19
D 5 4 5 9 4
=23  Ti 40
Tr 10

Karena preempsi, PTDP lebih baik dari PTD dalam hal kecilnya Tr, tetapi untuk proses panjang lebih lama
dibandingkan PTD.

Nama Saat Lama Saat Saat Rampung Lama Tanggap


Proses Tiba Proses Mulai
A 0 8
B 2 5
C 4 7
D 5 1

Nama Saat Lama Saat Saat Rampung Lama Tanggap


Proses Tiba Proses Mulai
A 0 8 0 14 14
B 2 5 2 8 6
C 4 7 14 21 17
D 5 1 5 6 1
 Ti 38
Tr 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 Saat Lama Saat Saat Rampung Lama Tanggap


Proses Tiba Proses Mulai
A 0 4
B 1 2

27
C 2 5
D 3 8
E 4 4

Nama Proses Waktu sia-sia Rasio Penalti


B 4-1=3 (3 + 2) / 2 = 2,5 Rp>>
C 4-2=2 (2 + 5) / 5 = 1,4
D 4-3=1 (1 + 8) / 8 = 1,125
E 4-4=0 (0 + 4) / 4 = 1

Nama Proses Waktu sia-sia Rasio Penalti


C 6-2=4 (4 + 5) / 5 = 1,8 Rp>>
D 6-3=3 (3 + 8) / 8 = 1,375
E 6-4=2 (2 + 4) / 4 = 1,5

Nama Proses Waktu sia-sia Rasio Penalti


D 11 - 3 = 8 (8 + 8) / 8 = 2
E 11 - 4 = 7 (7 + 4) / 4 = 2,75 Rp>>

A B C D E
    
Saat 0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23
Proses A A A A B B C C C C C E E E E D D D D D D D D

Nama Saat Lama Saat Saat Rampung Lama Tanggap


Proses Tiba Proses Mulai
A 0 4 0 4 4
B 1 2 4 6 5
C 2 5 6 11 9
D 3 8 15 23 20
E 4 4 11 15 11
=23  Ti 49
Tr 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 Lama Saat Saat Rampung Lama Tanggap
Proses Tiba Proses Mulai
A 0 7
B 0 5
C 0 8
D 0 2
E 0 6

28
0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27

ros A A A B B B C C C D D E E E A A A B B C C C E E E A C C
e
s

Nama Proses Saat Lama Saat Mulai Saat Rampung Lama Tanggap
Tiba Proses
A 0 7 0 26 26
C 0 5 3 19 19
B 0 8 6 28 28
E 0 2 9 11 11
D 0 6 11 25 25
 = 28  Ti 109
Tr 21.8

Dengan Q = 2
Nama Saat Lama Saat Saat Rampung Lama Tanggap
Proses Tiba Proses Mulai
A 0 5
B 1 3
C 5 7
D 6 1
E 7 6

A B C D E
    
Saat 0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22
Proses A A B B A A B C C D E E A C C E E C C E E C

Nama Saat Lama Saat Saat Rampung Lama Tanggap


Proses Tiba Proses Mulai
A 0 5 0 13 13
B 1 3 2 7 6
C 5 7 7 22 17
D 6 1 9 10 4
D 7 6 10 21 14
 Ti 54
Tr 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

29
2. Penjadwalan dengan preempsi dengan prioritas berubah-ubah (PGPB = putar gelang prioritas
berubah-ubah) dimana prioritas tergantung pada proses lama dan proses baru, maka jika : a =
koefisien untuk proses lama dan b = koefisien untuk proses baru,
b/a = 1  prioritas sama
b/a = 0  prioritas lama
b/a < 1  prioritas baru < lama
b/a > 1  prioritas baru > lama

Kesimpulan :
Tanpa Dengan
Prioritas Prioritas
Tanpa PTPD PTD / RPTD
Preempsi
Dengan PG PTDP
Preempsi

Penjadwalan Multitingkat
 Proses dibedakan tingkatnya berdasarkan kepentingannya.
 Penjadwalan pada tiap tingkat dapat bermacam-macam.
 Pada antrian multi tingkat berbalikan, tingkat satu dan lainnya saling berhubungan.

 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
Tingkat 2 c/ proses pd prog. Interaktif R
O
Tingkat 3 c/ proses pd program edit S
E
Tingkat 4 c/ proses pd tumpukan S
O
Tingkat 5 c/ proses pd borongan R

 Antrian Multi Tingkat Berbalikan /


Feedback multi level queue

Tingkat 1 P Rampung
Preempsi

Tingkat 2 P Rampung
Preempsi

Tingkat 3 P Rampung

30
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 Saat tiba Lama proses
A 0 12
B 0 30
C 0 2
D 0 8
E 0 10

Dari tabel tersebut dapat kita cari :


Macam penjadwalan Rerata lama tanggap Rerata waktu sia-sia
PTPD 42,4 30
PTD 29,2 14
PG (Q=8) 38,4 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.

31
BAB IV
MANAJEMEN MEMORI

4.1. 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).

Pindah masuk
Memori Memori
dukung kerja
Pindah keluar
1 pindahan = 1 blok, makin kecil ukuran memori kerja, makin sering terjadi pindahan.

32
Alamat Memori
– Alamat memori mutlak (alamat fisik)
Sel memori pada memori kerja adalah sumber daya berbentuk fisik, sehingga untuk
mencapai sel memori ini digunakan kata pengenal. Maka disebutlah alamat fisik dan karena
nomor alamat fisik ini bersifat mutlak (nomor setiap sel adalah tetap), maka disebut juga
alamat mutlak.
– Alamat memori relatif (alamat logika)
Alamat memori yang digunakan oleh program / data berurutan / berjulat. Jika kita
menggunakan alamat 1, maka kitapun menggunakan alamat 2,3, … dan untuk 1 informasi
jika alamat awalnya 0 dan alamat lainnya relatif terhadap alamat awal 0 ini, maka dinamakan
alamat relatif. Dan alamat tersebut adalah logika dari untaian alamat yang menyimpan
informasi maka dikenal alamat memori logika.
Contoh : alamat awal relatif 0, alamat awal fisik 14726, maka selisihnya = relokasinya =
14726-0 = 14726.

Alamat relatif Alamat mutlak Relokasi


0 14726 14726
1 14727 14726
2 14728 14726
3 14729 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.

4.2. Fungsi Memory

 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

33
jika 2 macam alamat memori dibuat sama antara yang tercantum dalam program dan
yang ditempati dalam memori kerja. Contohnya pada program, alamat awal 5235 dan
subroutine = 5468 diletakkan pada alamat fisik yang sama.
b. pemuatan relokasi
alamat program tidak selalu sama dengan alamat fisik.
Contohnya alamat pangkal / fisik = 14200, alamat relative program 327, maka alamat
mutlaknya = 14200 + 327 = 14527
R(=p jika A=0)

X  Y

Keterangan:
R : relokasi P : alamat pangkal / fisik
A : alamat awal / logika Y : alamat fisik dari X
X : alamat suatu informasi tertentu (logika)

Maka : R = P – A Y=X+R=X+P–A
Jika informasi dengan alamat relative = 0, maka A = 0.
Contoh : suatu informasi beralamat awal 2100 dan informasi ini dimuat relokasikan ke
alamat pangkal 23600. Hitung besar relokasi dan hitung pula pada memori kerja dimana
bagian informasi yang beralamat 2453 terletak ?
Maka : A = 210 P = 23600 X = 2453
R = P – A = 23600-2100 = 21500
Y = X + R = 2453+21500 = 23953
c. pemuatan sambung
penyambungan antara informasi yang satu dengan yang lain terjadi pada saat pemuatan.
Sehingga membutuhkan informasi sebelum melakukan pemuatan sambung tersebut,
contohnya informasi alamat akhir dari bagian informasi yang akan disambung tersebut.
d. pemuatan dinamik / tumpang / overlay
terjadi pada program tunggal ketika ukuran program melampaui ukuran ruang memori
kerja. Dan agar dapat tertampung maka dibagi / dipenggal menjadi beberapa segmen.
Sambung / linker akan menyatukan 1 informasi dengan informasi lainnya.
2. Lama muat, ditentukan oleh kecepatan baca pada memori dukung yang berbentuk disk.

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.

34
Pemenggalan memori kerja
Contohnya alamat pagar untuk pemenggalan memori kerja untuk wilayah program monitor,
program dan data user.
 Pagar pada memori kerja
Wilayah memori telah kita penggal menjadi 2 bagian yaitu di atas alamat pagar dan di bawah
alamat pagar yang letaknya terpisah.
 Pemenggalan memori kerja
Memenggal memori ke dalam banyak penggalan dan setiap penggalan dibatasi 2 pagar,
yaitu batas bawah dan batas atas.

Batas Atas BA6 Sistem Operasi

6
Batas Bawah BB6 Batas Atas BA5

5
BA4 Batas Bawah BB5
BB4 4 BA3

BA2 3 BB3

BB2 2 BA1
1 BB1
unused

Untuk setiap penggalan memori kerja, memerlukan 2 register yaitu untuk mencatat batas
atas dan untuk mencatat batas bawah. Dan setiap alamat memerlukan dua kali perbandingan
untuk mencapai penggalan.
 Relokasi ke penggalan memori kerja
Dapat memilih penggalan yang menjadi tujuan relokasi dan harus diperiksa panjang
informasi dan ukuran penggalan memorinya.
Karena jika masuk pada penggalan yang kecil, informasi tidak dapat tertampung.
Contoh : Jika alamat awalnya = 0, alamat pangkal P maka A = 0 dan P = BB. Sehingga R =
P – A = BB
Jika alamat X tidak melampaui batas (BA-BB) maka pemuatan secara relokasi dapat
dilaksanakan yaitu dengan menambahkan alamat pangkal (BB) dari penggalan memori kerja.

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

35
 Program mengambil kendali seluruh mesin
Contoh : IBM PC menggunakan cara ketiga di mana device driver ROM ditempatkan pada blok
8K tertinggi dari address space 1M. Program pada ROM disebut BIOS (Basic Input Output
System).

Sistem Operasi Sistem Operasi Sistem Operasi

di RAM
di ROM di RAM

Program

Program Pemakai
Program
Pemakai di RAM
Pemakai
Device
di RAM Driver
di RAM
di ROMD
= RAM Driver
di ROM
= ROM

Tiga Cara Organisasi Memori Satu Proses Tunggal

 Multiprogramming Dengan Pemartisian Statis


Terbagi dua : Memori Tidak
1. Pemartisian menjadi partisi-partisi berukuran sama,Memori
yaitu Tidak
ukuran semua partisi
memori
Memori Tidakadalah sama Dipakai
Dipakai
2. Pemartisian menjadi partisi-partisi berukuran berbeda, yaitu ukuran semua partisi
memori
Dipakai adalah berbeda.

4.3. Strategi Managemenen Memory

 Satu Antrian Tunggal Untuk Semua Partisi


Keuntungan : Lebih fleksibel serta implementasi danPart
operasi lebih minimal karena
hanya mengelola satu antrian. isi 1
Kelemahan : Proses dapat ditempatkan di partisi yang banyak diboroskan, yaitu proses kecil
ditempatkan di partisi sangat besar. Partisi 2
Device Driver di

Partisi 3 ROM 50 Kbyte

36 Partisi 4

Partisi 5
Sistem Operasi
75 Kbyte

100 Kbyte

200 Kbyte

150 Kbyte

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

Par 50 Kbyte
tisi
1
75 Kbyte

Partisi 2
100 Kbyte

Partisi 3
200 Kbyte

Partisi 4 150 Kbyte

Partisi
SSSistem 5
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.
MMMemori
- Merumitkan Untuk
alokasi dan dealokasi memori MMMemori Untuk
Solusi: Sistem Operasi Sistem Operasi
Lubang-lubang kecil di antara blok-blok memori yang digunakan dapat diatasi Prose
Prose dengan pemadatan
memori yaitu menggabungkans0 semua lubang kecil menjadi satu lubang s 0 besar dengan
memindahkan semua proses agar saling berdekatan.
Bebas Proses 2

Proses 2
Proses 4
Bebas
Prose
Proses 4 s6
37
Bebas Bebas
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 B C
0 7 15 23

0 1 2 3 4 5 6 7
1 1 1 1 1 0 0 0
1 1 1 1 1 1 1 1
1 1 0 0 1 1 1 1
... ... ... ... ... ... ... ...

Peta Bit untuk Pengelolaan Pemakaian Memori

Pencatatan memakai Linked List


 P= Proses, H=Hole(lubang)

A B C
0 7 15 23

P 0 5 H 5 3 P 8 6 P 14 4

H 18 2 P 20 3

Hole Panjang=2 Proses


Start

38
Di 18
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 Urutan
Pemenggalan
4K Memori
Setiap
3K 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 128 256 512
A B 64 256 512

39
A B 64 C 128 512
128 B 64 C 128 512
128 D C 128 512
128 D C 128 512
256 C 128 512
1024

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 1K
eksternal 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.

40
BAB V
VIRTUAL MEMORY
Overlay :
Program dipecah menjadi bagian-bagian yang dapat dimuat memori, jika memori terlalu kecil
untuk menampung seluruhnya sekaligus. Overlay disimpan pada disk dan di-keluar-
masukkan dari dan ke memori oleh sistem operasi. Pembagian dilakukan oleh programmer.

Sistem Operasi
Bagian Kode dan data
pemakai yang harus selalu
tinggal di memori utama
selama eksekusi program

Daerah Overlay Fase Fase Fase


1 Inisialisasi Pemrosesan Keluaran
2
3

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.

41
CPU
card
CPU
mengirim
CC DISK
DISK
alamat
PP MEMORI
MEMORI CONTROL
CONTROL
virtual
UU LER
ke MMU
M LER
M
MM
UU
BUS
MMU mengirim alamat fisik ke memori
Posisi dan fungsi MMU

Alamat Memori
Mem Nyata
2 ori 0–4 K
0–4 K
1 4K–8 K
4K–8 K
8 K – 12 K 6 Virtu 8 K – 12 K
0 12 K – 16 K
12 K – 16 K
16 K – 20 K 4 al 16 K – 20 K
3 20 K – 24 K
20 K – 24 K
24 K – 28 K X 24 K – 28 K
28 K – 32 K X 28 K – 32 K
32 K – 36 K X
36 K – 40 K 5
40 K – 44 K X Page
7
44 K – 48 K
48 K – 52 K X fra
52 K – 56 K
56 K – 60 K
X
X
me
60 K – 64 K X Virtual
page
Relasi Antara Alamat Virtual dan Alamat Fisik
2. Tabel Page
Alamat virtual dibagi menjadi dua bagian:
- Nomer Page (bit-bit awal)
- Offset (bit-bit akhir)
Secara metematis: tabel page merupakan fungsi dgn nomer page sebagai argumen dan nomer
frame sebagai hasil.

42
0 0 1 0 0 0 0 0 0 0 0 0 0 1 0 0

Nomer page = 2 Offset 12 bit dicopy persis dari input ke output

Tabel Page 0 010 1 Present/absent bit


1 001 1
2 110 1 110
3 000 1
4 100 1
5 011 1
6 000 0
7 000 0
8 000 0
9 101 1

43
10 000 0
11 111 1
12 000 0
13 000 0
14 000 0
15 000 0

0 0 1 0 0 0 0 0 0 0 0 0 0 1 0 0
Cara Kerja Pemetaan oleh MMU

Nomer Page 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
No. page Modified Protection No. frame

1 140 1 RW 31
1 20 0 R X 38
1 130 1 RW 29
1 129 1 RW 62
1 19 0 R X 50

44
1 21 0 R X 45
1 860 1 RW 14
1 861 1 RW 75

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.

5.1. 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 1 5 2 4 5 3 2 5 2
2 2 2 2 2 2 4 4 4 2 2 2
3 3 3 3 3 3 3 3 3 3 3
1 5 5 5 5 5 5 5 5
Fault F F F F F F 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 2 4 4 4 2 2 2
3 3 3 3 3 3 3 3 3 3 3
1 5 5 5 5 5 5 5 5
Fault F F F F F F F F 8 Fault

Anomali pada FIFO (Belady’s Anomaly)


String Pengacuan 0 1 2 3 0 1 4 0 1 2 3 4
Page Termuda 0 1 2 3 0 1 4 4 4 2 3 3
0 1 2 3 0 1 1 1 4 2 2

45
Page Tertua 0 1 2 3 0 0 0 1 4 4
Fault F F F F F F F F 9 Fault
(a)

String Pengacuan 0 1 2 3 0 1 4 0 1 2 3 4
Page Termuda 0 1 2 3 3 3 4 0 1 2 3 4
0 1 2 2 2 3 4 0 1 2 3
0 1 1 1 2 3 4 0 1 2
Page Tertua 0 0 0 1 2 3 4 0 1
Fault F F F F F F F F 10 Fault
(b)

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.

Waktu load
0 3 7 8 12 14 15 18
A B C D E F G H

Page yang di-load pertama kali Page yang terakhir di-


load.
(a) Page dalam urutan FIFO

Waktu load
3 7 8 12 14 15 18 20
B C D E F G H 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

46
6. Algoritma penggantian page LRU (Least Recently Used):
Yang dikeluarkan ialah page yang sudah tidak terpakai dalam waktu paling lama.
Algoritma Penggantian Page LRU
String Pengacuan 2 3 2 1 5 2 4 5 3 2 5 2
2 2 2 2 2 2 4 4 3 3 3 3
3 3 3 5 5 5 5 5 5 5 5
1 1 1 4 4 4 2 2 2
Fault F F F F F F F 7 Fault

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

47
(a) (b) (c)
Penggantian page global vs. lokal. (a) Konfigurasi awal.
(b) Penggantian page lokal. (c) Penggantian page global.
3. Ukuran Page
o Ukuran page merupakan salah satu parameter yang ditentukan oleh perancang sistem
operasi.
o Penentuan ukuran page yang optimum harus menyeimbangkan beberapa faktor.
o Rata-rata, page terakhir hanya akan terisi setengah (fragmentasi internal), berarti page
sebaiknya kecil. Tetapi page yang kecil akan menghasilkan tabel page yang panjang.
 s (byte) = ukuran proses rata-rata
 p (byte) = ukuran page
 e (byte) = ukuran setiap page entry
 s/p = perkiraan jumlah page yang dibutuhkan per-proses
 se/p (byte) = ruang untuk tabel page
 p/2 = memori yang terbuang karena fragmentasi
 overhead = memori yang terpakai untuk tabel page dan fragmen internal.
overhead = se/p + p/2
 Ukuran tabel page besar jika ukuran page kecil. Fragmen internal besar jika ukuranb page
besar. Optimum harus ada di antaranya. Dengan mengambil penurunan pertama terhadap p
dan menyemakan dengan nol: -se/p2 + ½ = 0
 Dari persamaan ini, ukuran page optimum adalah: p = (2se)
 Sebagian besar komputer komersial menggunakan ukuran page antara 512 byte – 8K.
4. Isu Implementasi
 Instruction backup
Instruksi yang menyebabkan referensi ke page yang belum ada di memori (menyebabkan
page fault) harus diulang ketika page tersebut telah tersedia. Beberapa sistem operasi
meng-copy setiap instruksi sebelum dilaksanakan sehingga hal ini tidakmakan waktu terlalu
lama.
 Locking pages in memory
Pada saat satu proses menjalani tahap I/O, proses lain bisa dijalankan. Yang mungkin terjadi
ialah page proses I/O tersebut digantikan oleh proses yang kedua ini (jika dipakai alokasi
global). Jalan keluarnya ialah dengan me-lock page-page proses I/O.
 Shared pages
Dua atau lebih proses bisa memakai bersama page-page yang berasal dari editor yang
mereka pakai. Penutupan salah satu proses ini tanpa disengaja bisa mengosongkan juga
page yang dipakai bersama tersebut. Diperlukan suatu struktur data khusus untuk
memantau page-page yang dipakai bersama ini.
 Backing Store
Pada disk, disediakan area untuk menampung page yang dikeluarkan dari memori (paged
out) yang disebut swap area. Setiap proses memiliki swap area di disk. Swap area ada yang
statis ada juga yang dinamis.
 Paging Daemon
Untuk meyakinkan tersedianya frame bebas yang cukup banyak, banyak sistem paging yang
menggunakan proses background yang disebut paging daemon. Jika jumlah frame bebas
terlalu sedikit, paging daemon akan mengosongkan beberapa page setelah menulisnya ke
disk jika pernah dimodifikasi.
 Penanganan Page Fault

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.

48
2. Rutin kode assembly dimulai untuk men-save register-register umum dan informasi lain
yang bisa berubah, agar sistem operasi tidak merusaknya. Rutin ini memanggil sistem
operasi sebagai suatu prosedur.
3. Sistem operasi menemukan bahwa terjadi page fault, dan mencoba menemukan page
virtual mana yang diperlukan. Seringkali salah satu register hardware berisi informasi ini.
Jika tidak, sistem operasi harus menarik program counter, mengambil instruksi, dan
melakukan parsing pada software untuk mengetahui apa yang dilakukan sebelum terjadi
fault.
4. Begitu alamat virtual yang menyebabkan fault diketahui, sistem operasi memeriksa apakah
alamat ini valid dan proteksinya konsisten dengan akses. Jika tidak, proses dikirimi sinyal
atau ditutup. Jika alamat valid dan tidak ada pelanggaran proteksi, sistem berusaha untuk
mendapatkan frame page dari daftar frame bebas. Jika tidak ada frame yang bebas,
dijalankan algoritma penggantian page untuk mencari yang bisa ditukar.
5. Jika frame page yang dipilih telah dimodifikasi, page dijadwalkan untuk ditransfer ke disk,
dan terjadi pertukaran proses, menghentikan sementara proses yang fault dan
membiarkan yang lainnya berjalan hingga transfer disk selesai. Frame ditandai terpakai
untuk mencegah dipakai untuk tujuan lain.
6. Begitu frame page bersih (apakah langsung atau setelah disave ke disk), sistem operasi
menelusuri alamat disk di mana page diperlukan, dan menjadwalkan operasi disk untuk
memasukkannya. Sementara page dimasukkan, proses yang mengalami fault dihentikan
sejenak dan yang lainnya dijalankan, jika ada.
7. Ketika disk interrrupt menandai bahwa page telah ada, tabel page di-update untuk
menunjukkan posisinya, dan frame ditandai berada dalam status normal.
8. Instruksi yang menyebabkan fault di-back-up ke status mulainya dan program counter di-
reset untuk menunjuk ke instruksi tersebut.
9. Proses yang fault tersebut dijadwalkan, dan sistem operasi kembali ke rutin bahasa
assembly yang memanggilnya.
10. Rutin ini mengembalikan register dan informasi lainnya ke keadaan semula , dan kembali
ke user untuk melanjutkan eksekusi, seakan-akan tidak ada fault yang terjadi.

SEGMENTASI
Compiler bisa memiliki beberapa tabel dengan alamat virtual yang terpisah, misalnya terdiri dari
tabel-tabel untuk:
1. Source text,
2. Tabel simbol,
3. Tabel untuk semua konstanta integer dan floating point,
4. Parse tree, berisi analisis sintaksis program, dan
5. Stack yang digunakan untuk pemanggilan prosedur.

Tabel 1 s/d 4 bisa bertambah pada saat kompilasi berjalan, sehingga dengan sistem paging yang
berukuran tetap, batas satu page bisa terlampaui.

Dengan alasan ini dipakai bagian-bagian dengan alamat yang relatif independen, yang disebut
segmen. Setiap segmen mempunyai ukuran yang berbeda dengan yang lain. Panjang segmen
juga bisa berubah selama eksekusi.

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.

49
Segmen Segmen Segmen Segmen Segmen
0 1 2 3 4
0 0 0 Konstanta 0 0

4K 4K 4K 4K
Source Parse Call
text tree stack
8K 8K 8K 8K
Tabel
simbol
12K 12K 12K 12K

16K 16K

20K
Memori yang tersegmentasi memungkinkan setiap tabel bertambah atau berkurang.

Pertimbangan Paging Segmentasi


Apakah programmer harus menyadari Tidak Ya
bahwa teknik ini sedang digunakan?
Berapa banyak ruang alamat linier yang 1 Banyak
ada?
Dapatkah ruang alamat total melebihi Ya Ya
ukuran memori fisik?
Apakah tabel yang ukurannya berubah- Tidak Ya
ubah dapat diakomodasi?
Dapatkan prosedur dan data dibedakan Tidak Ya
dan diproteksi secara terpisah?
Adakah fasilitas pemakaian bersama Tidak Ya
prosedur antar user?
Mengapa teknik ini diciptakan? Untuk Untuk memungkinkan
mendapatkan program dan data dibagi
ruang alamat linier menjadi ruang alamat yang
yang besar tanpa secara logik independen
harus membeli dan untuk membantu
memori fisik pemakaian bersama dan
tambahan proteksi
Perbandingan paging dan segmentasi.

Checkerboarding: Timbulnya blok-blok memori yang kosong (hole) pada saat isi segmen
dikeluarkan. Hal ini diatasi dengan pemampatan (compaction).

Segmentasi dengan Paging : Setiap segmen dapat dianggap sebagai satu virtual memori, dan
masing-masing dibagi menjadi page-page.

Salah satu mesin yang memakai cara ini adalah MULTICS. Setiap program MULTICS memiliki
satu tabel segmen, dengan satu descriptor per segmen. Segmen descriptor berisi keterangan
apakah segmen yang bersangkutan ada di memori atau tidak.

Segmen descriptor Tabel page untuk segmen 0


36 bit Page 0 entry

50
Descriptor segmen 0 Page 1 entry Pointer-
Descriptor segmen 1 Page 2 entry pointer
Descriptor segmen 2 Page 3 entry ke page
Descriptor segmen 3
Descriptor segmen 4
Descriptor segmen 5 Tabel page untuk segmen 1
Descriptor segmen 6 Page 0 entry
Descriptor segmen 7 Page 1 entry
Page 2 entry
Page 3 entry
Page 4 entry
Page 5 entry

Virtual address MULTICS 34-bit:


Alamat di dalam segmen
Nomer segmen Nomer page Offset di dalam page
18 6 10

Nomer segmen Nomer page Offset di dalam page

Nomer
segmen
Nomer
Descriptor page
Page frame Offset

Segmen Tabel page


descriptor Word

Page
Konversi alamat MULTICS menjadi alamat memori utama.

BAB VI
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.

51
Solusi untuk semua masalah tsb adalah dengan menyimpan data pada disk atau media lain
dalam bentuk unit-unit yang disebut FILE. Data yang disimpan dalam bentuk file harus tetap tidak
berubah ketika proses dibentuk atau dihentikan. File bisa hilang hanya ketika dihapus saja.
Sistem File adalah bagian sistem operasi yang menangani masalah file.

6.1. FILE

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 Artinya
*.bak File Backup
*.bas Program source Basic
*.bin Program executable binary
*.c Program source C
*.dat File Data
*.doc File Dokumentasi
*.ftn Program source Fortran
*.hlp File Teks untuk HELP command
*.lib Library dari file .obj yang digunakan linker
*.man Online manual page
*.obj File object
*.pas Program source Pascal
*.tex Teks masukan untuk format program TEX
*.txt File teks umum

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.

52
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.

53
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 Artinya
Protection Who can access the file and in what way
Password Password needed to access the file
Creator Id of person who created the file
Owner Current owner
Read Only flag 0 for read/write, 1 for read only

54
Hidden flag 0 for normal, 1 for do not display in listings
System flag 0 for normal file, 1 for system file
Archive 0 has been backed up, 1 for needs to be backed
up
ASCII/binary flag 0 for ASCII file, 1 for binary file
Random access flag 0 for sequential access only, 1 for random access
Temporary flag 0 for normal, 1 for delete on process exit
Lock flag 0 for unlocked, nonzero for locked
Record length Number of bytes in a record
Key position Offset of the key within each record
Key length Number of bytes in the key field
Creation time Date and Time file was created
Time of last access Date and Time file was last accessed
Time of last change Date and Time file was last changed
Current size Number of bytes in the file
Maximum size Maximum size file may grow ro

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.

55
Gambar 3 (a) Proses segmentasi sebelum memetakan file ke ruang alamatnya. (b) Proses
setelah memetakan file abc ke satu segmen dan membuat segmen baru untuk file xyz.

Proses memiliki dua segmen, teks dan data. Proses melakukan sistem call COPY. Pertama,
memetakan file sumber (abc) ke sebuah segmen. Kemudian membuat segmen kosong dan
memetakannya ke file tujuan (xyz). Proses dapat mengcopy segmen sumber ke dalam segmen
tujuan menggunakan loop copy biasa, bukan Read dan Write.

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.

6.2. Directory
Untuk menjaga agar file tetap pada jalurnya dan diketahui, maka sistem file menyediakan
DIRECTORY.
2.1 Sistem Directory Hirarki
Diantara bentuk sistem directory tampak pada gambar 4

Gambar 4. Directory. (a) Atribut pada directory entry. (b) Atribut di tempat lain.

Ketika file diOpen, sistem operasi mencari directorynya sampai ditemukan nama file ybs,
kemudian mengekstrak atribut dan alamat disk langsung dari daftar directory atau dari struktur
data yang menunjukkannya, lalu meletakkan kedalam tabel didalam memory kerja.

Bentuk disain sistem file tampak pada gambar 5.

56
Gambar 5. Tiga disain sistem file. (a) Satu directory dipakai bersama oleh semua user. (b) Satu

directory per user. (c) Sembarang tree per user. Huruf-huruf menyatakan pemilik directory atau

file.

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

57
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.

58
- Kinerjanya sangat bagus, karena seluruh file dapat dibaca dari disk dalam satu operasi
saja.
Kekurangannya :
- Tidak bisa dialokasikan jika ukuran maksimum file tidak diketahui.
- Mudah terjadi fragmentasi, sisa blok yang tidak digunakan.
b. Linked List Allocation
Menyimpan file dalam skema Linked List, seperti tampak pada gambar 7.

Gambar 7. Menyimpan file sebagai linked list dari blok-blok disk.

Kelebihannya :
- Seluruh blok dapat dipakai, tidak terjadi fragmentasi.
Kekurangannya :
- Pengaksesan file secara acak akan lambat.
- Kebutuhan ukuran blok data meningkat karena pointer juga memerlukan beberapa byte.
c. Linked List Allocation menggunakan Indeks
Caranya sama seperti point b tetapi menambahkan tabel berindeks kedalam memory, seperti
pada gambar 8 berikut.

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 :

59
- Seluruh tabel harus selalu ada didalam memory, sehingga mengurangi kapasitas
memory.
d. I-node
alokasi file dengan menerapkan tabel yang berukuran kecil yang disebut i-node (index-node)
yang mendaftar atribut dan alamat disk dari blok file. Tampak pada gambar 9.

Gambar 9. I-node.

Untuk file-file yang berukuran besar, dipetakan ke blok yang disebut Single Indirect Block
(SIB) yang mengandung alamat disk tambahan. Jika masih tidak cukup maka alamat lain
dipetakan ke Double Indirect Block (DIB) yang mengandung alamat blok yang mendaftar
SIB. Setiap SIB menunjuk ke beberapa ratus blok data. Jika ternyata masih kurang lagi,
Triple Indirect Block (TIB) bisa digunakan.
- UNIX menggunakan metode alokasi ini.
- WINDOWS ???
- OS/2 ???

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.

60
- Block Count menunjukkan jumlah blok yang digunakan dari 16 blok yang disediakan.
- 16 bit terakhir berisi nomor blok disk.
b. Directory pada DOS
Sistem DOS menggunakan directory seperti tampak pada gambar 11.

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.
c. 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.

61
3.4 Pengaturan Ruang Disk
Dua cara umum menyimpan file n byte :
1. Mengalokasikan ruang disk sebanyak n byte secara berurutan.
2. Memisah file menjadi sejumlah blok yang tidak harus berkesinambungan.

Ukuran Blok
Ukuran blok berhubungan erat dengan kecepatan pembacaan/penyimpanan file dan pemakaian
ruang disk.
Contoh :

Gambar 16. Kurva yg solid (skala kiri) menggambarkan data rate disk. Garis terputus (skala
kanan) menyatakan efisiensi ruang disk. Semua file berukuran 1K.

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

62
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.

63
- melakukan incremental dumping setiap waktu.
- DOS menerapkan sebuah atribut yang disebut Archive Bit. Jika sistem file ybs dibackup,
maka archive bit dihapus (clear), tetapi bila file sedang diubah, archive bit diset secara
otomatis.

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. Bentuk konsisten
b. Blok 2 tidak muncul pada kedua tabel, dinamakan Missing Block.
c. Block 4 muncul dua kali didalam daftar blok bebas (free list).
d. Blok data yang sama muncul dalam dua atau lebih file, pada blok 5.

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.

64
- Meletakkan blok pada posisi yang berdekatan ketika diakses, sehingga mempercepat
pembacaan.

Gambar 21.

a. i-node diletakkan diawal disk, rata-rata jarak antara i-node dengan bloknya sekitar
setengah jumlah cylinder, yang memerlukan pencarian yang lama.
b. i-node diletakkan ditengah disk, akan mengurangi rata-rata pencarian antara i-node
dengan bloknya setengah kali.
Cara lain, membagi disk kedalam kelompok cylinder, setiap kelompok mempunyai i-node,
blok dan daftar bebas sendiri.

4. PENGAMANAN
4.1 Seputar Pengamanan (security)
Istilah "security" dan "protection"
Security ditujukan untuk keseluruhan masalah sedangkan Protection merupakan
mekanisme tertentu dari sistem operasi yang digunakan untuk menjaga informasi
didalam komputer.

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.

65
4.2 Beberapa Pengamanan Terkenal Yang Gagal/Rusak
Cara masuk ke UNIX tanpa melalui sistem pengamanannya dengan menghubungkan sebuah file
yang disebut core di directory kerja menuju file password. User dapat mengubah file password.
Contoh pengamanan jelek yang tidak begitu kelihatan :
mkdir foo
Untuk sistem yang lambat, kadang-kadang user dapat dengan cepat menghapus i-node directory
dan membuat link ke file password menggunakan nama foo setelah MKNOD dan sebelum
CHOWN. Setelah CHOWN dijalankan sistem, maka mkdir tsb menjadikan user sebagai owner
(pemilik) file password.

Cara mencuri file orang lain. Mencari source code editor yang banyak digunakan orang lain, lalu
dimodifikasi. Hasil modifikasi diletakkan di directory yang banyak orang akan mengaksesnya,
seperti /bin. Perubahan proses editor dapat digunakan untuk mencari hal-hal yang diinginkan.
Ide merubah program untuk melakukan hal yang tidak berkenan dan merugikan orang lain
dikenal sebagai Serangan Kuda Troya (Trojan Horse Attack).

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.

66
7. Trapdoor, meyakinkan programer untuk melewati pengecekan login/password untuk setiap
user menggunakan nama loginnya.
8. Menggunakan kelemahan sifat manusia yang memegang kendali sistem administrasi, seperti
sekretaris SysAdm.
Virus
Virus adalah suatu penggalan program yang menempel program sebenarnya dengan maksud
menjangkitkan dirinya ke program lain.
4.5 Prinsip-Prinsip Disain Pengamanan
Prinsip-prinsip umum yang digunakan untuk merancang sistem pengamanan adalah :
1. Disain sistem harus bersifat public
2. Nilai default harus tidak boleh diakses.
3. Mengecek otoritas saat itu (current authority).
4. Memberikan setiap proses kemampuan akses sesedikit mungkin.
5. Mekanisme proteksi harus sederhana, uniform dan built in ke lapisan terbawah dari sistem.
6. Skema pengamanan harus dapat diterima secara psikologis.

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 :

67
- Ada tulisan "Untuk masuk, silakan berikan contoh anda disini", user diwajibkan
memberikan urine lalu dicek dengan metode urinalysis.
- Spectrographic analysis, dengan cara user menekan jarinya diatas benda tajam, agar
diperoleh darahnya. Kemudian darahnya dianalisis, sesuai dengan data atau tidak.

5. MEKANISME PROTEKSI
5.1 Domain Proteksi
Sistem komputer mengandung berbagai object yang perlu diproteksi. Object ini dapat berupa
hardware, dan software.

Domain adalah himpunan pasangan dari (object,right). Sedangkan Right dalam hal ini adalah
kemampuan untuk membentuk suatu operasi.
Misalkan, ada 3 Domain dengan jenis Right [Read,Write,eXecute]. Printer1 berada pada dua
domain dengan satu jenis right, tapi sebenarnya bisa juga berada didua domain dengan jenis
right yang berbeda.
Pada sistem UNIX, Domain suatu proses didefinisikan oleh UID dan GID. Dengan kombinasi UID
dan GID, akan dapat membuat daftar seluruh object untuk diakses, baik Read, Write maupun
eXecute. Setiap proses di UNIX memiliki dua bagian : bagian user dan bagian kernel. Ketika
suatu proses mengerjakan sistem call, proses akan berpindah dari bagian user ke bagian kernel.
Kernel dapat mengakses object yang berbeda dari object yang diakses oleh user.
Bagaimana caranya sistem mengetahui object tertentu dimiliki oleh domain tertentu ?

DOMAI OBJECT
N
File File2 File3 File4 File5 File6 Printer Plotter
1 1 2
Read
1 Rea Write
d
Read Read
2 Read Write Write Write
Execut
e
Read
3 Write Write Write
Execu
te
Gambar 22. Matriks proteksi.

Kemudian 3 domain sebagai object pada Tabel berikut.

DOMAI OBJECT
N
File File File File4 File File6 Printer Plotter Domai Domai Domain
1 2 3 5 1 2 n1 n2 3
Rea
1 Rea d Enter
d Writ
e

68
Read Rea
2 Rea Write d Write
d Execu Writ
te e
Read
3 Write Write Write
Execu
te
Gambar 23. Matriks proteksi.dengan domain sebagai object.

Proses pada domain 1 bisa berpindah ke domain 2 tetapi jika telah pindah tidak dapat kembali ke
domain semula. Cara ini sama dengan menjalankan SETUID di UNIX.

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.

Type Rights Object


0 File R- - Pointer to File3
1 File RWX Pointer to File4
2 File RW - Pointer to File5
3 Printer -W- 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.

69
Beberapa sistem capability diatur sebagai kumpulan modul, dengan Type Manager Module
(TMM) untuk setiap jenis object. Kadang cara ini menimbulkan masalah karena TMM hanya
sebuah program, pemiliknya dapat membentuk hanya beberapa operasi saja pada file dan tidak
bisa mencapai representasi internal (misalnya i-node).
Solusinya Hydra dengan teknik Right Amplification. TMM diberi kerangka right yang lebih
kepada object daripada capability.
Masalah lain pada sistem capability adalah sulitnya menghilangkan akses ke object.
Solusinya dengan Skema uang digunakan didalam Amoeba. Setiap object mengandung angka
acak yang panjang, yang juga ada di capability. Ketika capability digunakan, kedua angka tsb
dibandingkan. Operasi boleh dijalankan bila kedua angkanya sama.

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.

Object Object
Compiler MailBox7 Secret Compiler MailBox7 Secret
Eric Read Eric Read
Execute Execute
Henry Read Read Henry Read Read
Execute Write Execute Write
Robert Read Read Robert Read R Read
Execute Write Execute e Write
a
d

(a) (b)

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.

70
Tujuan yang ingin dicapai adalah "Tidak Mungkin" Server bisa membocorkan informasi
Collaborator yang secara sah diterima dari Client. Lampson menyebut hal ini sebagai
Confinement Problem.
Dengan matriks proteksi, dapat dijamin bahwa Server tidak bisa berkomunikasi dengan
Collaborator dengan cara menulis kedalam suatu file dimana Collaborator mempunyai hak akses
read. Juga bisa dijamin bahwa Server tidak bisa berkomunikasi dengan Collaborator
menggunakan mekanisme komunikasi antar proses.
Sayangnya, channel komunikasi yang tersamar bisa ada, seperti Server bisa berkomunikasi
dengan deretan bit biner. Untuk mengirimkan bit 1, Server melakukan perhitungan (menyibukkan
diri) selama selang waktu tertentu. Untuk mengirimkan bit 0, Server tidak melakukan apa-apa
(sleep) dalam selang waktu yang sama. Collaborator bisa mendeteksi aliran bit tsb dengan
memonitor respon waktunya. Channel komunikasi ini dikenal sebagai Covert Channel.
Covert Channel merupakan channel yang penuh dengan noise, mengandung banyak informasi
tambahan, tetapi informasi sebenarnya dapat diperoleh dengan menggunakan Error Correction
Code (seperti Hamming Code).

DEADLOCK
Resource (Sumber Daya)
Ada 2 tipe resource, yaitu :
1. Preemptable resource
Resoource yang dapat dibersihkan dari proses yang menggunakannya tanpa efek yang
buruk.
Mudah diatasi dengan cara realokasi resource dari satu proses ke yang lainnya.
2. Nonpreemptable resource
Resoource yang tidak dapat dibersihkan dari proses yang menggunakannya tanpa
menyebabkan komputer fail.

Proses disebut deadlock, jika proses menunggu suatu kejadian tertentu yang tak akan pernah
terjadi atau kondisi dimana 2 proses atau lebih tidak dapat meneruskan eksekusinya.
Sekumpulan proses berkondisi deadlock, jika setiap proses yang ada dikumpulan itu menunggu
sesuatu kejadian yang hanya dapat dilakukan proses lain yang juga berada di kumpulan itu.
Proses menunggu kejadian yang tak akan pernah terjadi.

Contoh :
P0 P1
Wait(S) Wait(Q)
Wait(Q) Wait(S)
. .
. .
. .
Signal(S) Signal(Q)
Signal(Q) Signal(S)

Pada langkah pertama, kedua proses masih berjalan dengan baik. Pada langkah kedua, proses
P0 meminta Q yang ternyata masih dibawa oleh P1 dan baru akan dilepas setelah signal(Q),
demikian pula P1 meminta S yang masih dibawa oleh P0 dan baru akan dilepas setelah signal(S).
Sehingga kondisi ini akan menimbulkan deadlock.

Deadlock terjadi ketika proses-proses mengakses secara ekslusif sumber daya. Semua deadlock
yang terjadi melibatkan persaingan memperoleh sumber daya ekslusif oleh dua proses atau
lebih. Adanya deadlock akan mengakibatkan sistem menjadi kacau.

71
Startvation terjadi ketika proses-proses menunggu alokasi sumberdaya sampai tak terhingga,
karena bisa pada kebijaksanaan / strategi alokasi sumberdaya, sementara proses-proses lain
dapat memperoleh alokasi sumberdaya.

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 R 0), 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

72
Kejadian ini mengakibatkan deadlock karena sama-sama akan saling menunggu. Graph
deadlock ini akan digambarkan sebagai graph melingkar. Terjadinya deadlock ditandai
munculnya / terjadinya graph melingkar.

P0

R0 R1

P1

Karena untuk melanjutkan eksekusi memerlukan kedua sumber daya sekaligus, maka kedua
proses akan saling menunggu sumber daya lain selamanya. Tak ada proses yang dapat
melepaskan sumber daya yang telah dipegangnya karena menunggu sumber daya lain yang tak
pernah diperolehnya. Kedua proses dalam kondisi deadlock, tidak dapat membuat kemajuan
apapun.

Deadlock tidak hanya terjadi pada dua proses dan dua sumber daya, deadlock dapat terjadi
dengan melibatkan lebih dari dua proses dan dua sumber daya.
Syarat-syarat terjadinya deadlock :
1. Mutual exclution condition
Tiap sumber daya saat itu diberikan pada tepat satu proses / proses meng-klaim kontrol
eksklusif terhadap sumber daya yang dibutuhkannya.
2. Hold and wait condition / kondisi genggam dan tunggu
Proses-proses yang sedang menggenggam sumber daya yang telah dialokasikan untuknya
sementara menunggu sumber daya – sumber daya tambahan yang baru.
3. Non-preemption condition / kondisi non-preemption
Sumber daya – sumber daya yang sebelumnya diberikan tidak dapat diambil paksa dari
proses sampai sumber daya tersebut digunakan sampai selesai. Sumber daya – sumber
daya harus secara eksplisit dilepaskan dari proses yang menggenggamnya.
4. Circular wait condition / kondisi menunggu secara sirkular
Harus terdapat rantai sirkuler / satu lingkaran proses dari dua proses atau lebih dimana
setiap proses memegang satu atau lebih sumber daya yang diminta oleh proses berikutnya
pada lingkaran tersebut, masing-masing menunggu sumber daya yang digenggam oleh
anggota berikutnya pada rantai itu.

Ketiga syarat pertama merupakan syarat perlu bagi terjadinya deadlock. Keberadaan deadlock
selalu berarti terpenuhi kondisi-kondisi diatas, tidak mungkin terjadi deadlock bila tidak ada ketiga
kondisi itu. Deadlock terjadi berarti terdapat ketiga kondisi itu, tetapi adanya ketiga kondisi itu
belum berarti terjadi deadlock.

Deadlock baru benar-benar terjadi bila syarat keempat terpenuhi. Kondisi keempat merupakan
keharusan bagi terjadinya peristiwa deadlock. Bila salah satu dari kondisi tidak terpenuhi maka
deadlock tidak terjadi.

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

73
satu atau lebih proses akan menyebabkan terjadinya deadlock, proses tersebut tidak akan
dimulai sama sekali.
- tiap proses harus meminta resource yang dibutuhkan sekaligus dan tidak bisa berjalan
sampai semua di dapat (untuk “wait for”)
- jika ada resourcce yang tidak terpenuhi, yang lainnya harus dilepas (untuk “no
preemption”)
- urutkan tipe-tipe resource secara linier / linier ordering (untuk “circular wait”)
2. deadlock avoidance / metode penghindaran terjadinya deadlock
menghindarkan kondisi yang paling mungkin menimbulkan deadlock agar memperoleh
sumber daya lebih baik. Penghindaran bukan berarti menghilangkan semua kemungkinan
terjadinya deadlock. Jika sistem operasi mengetahui bahwa alokasi sumber daya
menimbulkan resiko deadlock, sistem menolak / menghindari pengaksesan itu. Dengan
demikian menghindari terjadinya deadlock. Contohnya dengan menggunakan algoritma
Banker yang diciptakan oleh Dijkstra.
3. deadlock detection and recovery / metode deteksi dan pemulihan dari deadlock
deteksi digunakan pada sistem yang mengijinkan terjadinya deadlock, dengan memeriksa
apakah terjadi deadlock dan menentukan proses dan sumber daya yang terlibat deadlock
secara presisi. Begitu telah dapat ditentukan, sistem dipulihkan dari deadlock dengan metode
pemulihan. Metode pemulihan dari deadlock sistem sehingga beroperasi kembali, bebas dari
deadlock. Proses yang terlibat deadlock mungkin dapat menyelesaikan eksekusi dan
membebaskan sumber dayanya.

Pencegahan deadlock :
1. tiap proses harus meminta semua sumber daya yang diperlukan sekaligus dan tidak berlanjut
sampai semuanya diberikan.
2. Jika proses telah sedang memegang sumber daya tertentu, untuk permintaan berikutnya
proses harus melepas dulu sumber daya yang dipegangnya. Jika diperlukan, proses
meminta kembali sekaligus dengan sumber daya yang baru.
3. Beri pengurutan linier terhadap tipe-tipe sumber daya pada semua proses, yaitu jika proses
telah dialokasikan suatu tipe sumber daya, proses hanya boleh berikutnya meminta sumber
daya tipe pada urutan yang berikutnya.

Saran pencegahan deadlock diatas merupakan cara meniadakan salah satu dari syarat perlu.
Syarat perlu pertama jelas tidak bisa ditiadakan, kalau tidak menghendaki kekacauan hasil.
Strategi Burung Onta
Strategi ini mengasumsikan kejadian deadlock jarang terjadi jika dibandingkan dengan kejadian
komputer crash. Strategi ini disebut strategi burung onta karena kabar yang telah tersebar (yang
sebenarnya tidak benar) bahwa burung onta akan menyembunyikan kepalanya ke tanah bila
mengetahui adanya bahaya yang mengancamnya. Sehingga solusi yang dilakukan justru
sebenarnya tak memperdulikan adanya masalah.
Stategi ini sebenarnya berarta adalah sama sekali tidak berusaha mengatasideadlock / tak ada
metoda sama sekali untuk mengatasi masalah deadlock.

Penghindaran deadlock
Adalah hanya memberi akses ke permintaan sumber daya yang tidak mungkin menimbulkan deadlock.

74
Keamanan Sistem

Pokok masalah keamanan sistem salah satunya disebabkan karena sistem time sharing dan
akses jarak jauh, apalagi dengan meningkatnya perkembangan jaringan komputer.

Keamanan sistem komputer adalah untuk menjamin sumber daya sistem tidak digunakan /
dimodifikasi, diinterupsi dan diganggu oleh orang yang tidak diotorisasi. Pengamanan termasuk
masalah teknis, manajerial, legalitas dan politis.

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 Tujuan
Sumber Tujuan
informa informa
informa informa
sisi sisi
Aliran
75normal
Tipe ancaman terhadap keamanan sistem komputer dapat dimodelkan dengan memandang
fungsi sistem komputeer sebagai penyedia informasi.

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 Tujuan
Sumber Tujuan
informa informa
informa informa
sisi sisi
Interupsi
2. Intersepsi / interception
Pihak tak diotorisasi dapat mengakses sumber daya. Merupakan ancaman terhadap
kerahasiaan. Pihak tak diotorissasi dapat berupa orang / program komputeer. Contohnya
penyadapan, mengcopy file tanpa diotorisasi.

Sumber Tujuan
Sumber Tujuan
informa informa
informa informa
sisi sisi

Intersepsi

3. Modifikasi / modification
Pihak tak diotorisasi tidak hanya mengakses tapi juga merusak sumber daya. Merupakan
ancaman terhadap integritas. Contohnya mengubah nilai file, mengubah program,
memodifikasi pesan

Sumber Tujuan
Sumber Tujuan
informa informa
informa informa
sisi sisi

Modifikasi
4. Fabrikasi / fabrication
Pihak tak diotorisasi menyisipkan / memasukkan objek-objek palsu ke sistem. Merupakan
ancaman terhadap integritas. Contohnya memasukkan pesan palsu ke jaringan, menambah
record file.
Sumber Tujuan
Sumber Tujuan
informa informa
informa informa
sisi sisi
76

Fabrikasi
Petunjuk prinsip-prinsip pengamanan sistem komputer, yaitu :
1. Rancangan sistem seharusnya publik
Tidak tergantung pada kerahasiaan rancangan mekanisme pengamanan. Membuat proteksi
yang bagus dengan mengasumsikan penyusup mengetahui cara kerja sistem pengamanan.
2. Dapat diterima
Mekanisme harus mudah diterima, sehingga dapat digunakan secara benar dan mekanisme
proteksi tidak mengganggu kerja pemakai dan pemenuhan kebutuhan otorisasi
pengaksesan.
3. Pemeriksaan otoritas saat itu
Banyak sisten memeriksa ijin ketika file dibuka dan setelah itu (opersi lainnya) tidak diperiksa.
4. Kewenangan serendah mungkin
Program / pemakai sistem harusnya beroperasi dengan kumpulan wewenang serendah
mungkin yang diperlukan untuk menyelesaikan tugasnya.
5. Mekanisme yang ekonomis
Mekanisme proteksi seharusnya sekecil dan sesederhana mungkin dan seragam sehingga
mudah untuk verifikasi.

Otentifikasi pemakai / user authentification adalah identifikasi pemakai ketika login.

3 cara otentifikasi :
1. Sesuatu yang diketahui pemakai, misalnya password, kombinasi kunci, nama kecil ibu
mertua, dll
Untuk password, pemakai memilih suatu kata kode, mengingatnya dan menggetikkannya
saat akan mengakses sistem komputer, saat diketikkan tidak akan terlihat dilaya kecuali
misalnya tanda *. Tetapi banyak kelemahan dan mudah ditembus karena pemakai cenderung
memilih password yang mudah diingat, misalnya nama kecil, nama panggilan, tanggal lahir,
dll.
Upaya pengamanan proteksi password :
a. Salting, menambahkan string pendek ke string password yang diberikan pemakai
sehingga mencapai panjang password tertentu
b. one time password, pemakai harus mengganti password secara teratur, misalnya
pemakai mendapat 1 buku daftar password. Setiap kali login pemakai menggunakan
password berikutnya yang terdapat pada daftar password.
c. satu daftar panjang pertanyan dan jawaban, sehingga pada saat login, komputer memilih
salah satu dari pertanyaan secara acak, menanyakan ke pemakai dan memeriksa
jawaban yang diberikan.
d. tantangan tanggapan / chalenge respone, pemakai diberikan kebebasan memilih suatu
algoritma misalnya x3, ketika login komputer menuliskan di layar angka 3, maka pemakai
harus mengetik angka 27.
2. Sesuatu yang dimiliki pemakai, misalnya bagde, kartu identitas, kunci, barcode KTM, ATM.
Kartu pengenal dengan selarik pita magnetik. Kartu ini disisipkan de suatu perangkat
pembaca kartu magnetik jika akan mengakses komputer, biasanya dikombinasikan dengan
password.
3. Sesuatu mengenai / merupakan ciri pemakai yang di sebut biometrik, misalnya sidik jari, sidik
suara, foto, tanda tangan, dll

77
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

78
BAB VII
INPUT / OUTPUT

7.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

7.2. 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.

79
Contohnya : VDT (Video Display Terminal) terdiri dari monitor,
keyboard (+mouse)
b. Perangkat yang terbaca oleh mesin (machine readable device)
Perangkat yang cocok untuk komunikasi dengan perangkat elektronik.
Contohnya : disk, tape, sensor, controller, aktuator
c. Untuk komunikasi
Perangkat yang cocok untuk komunikasi dengan perangkat jarak jauh.
Contohnya : modem

7.3. 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 Printe


r
Controller
Device
Interface

CP Memor Disk Printer ……..


Other
U y Controlle Controlle Controlle
r r r
System
Bus
Model untuk mengkoneksi / menghubungkan CPU, Memory, Controller
dan Device I/O

b. Komponen mekanik
Contohnya : head, motor stepper, printer

7.4. 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

80
setelah mengirimkan informasi itu ke DMA Controller, pemroses dapat
melanjutkan kerja lain. Pemroses mendelegasikan operasi I/O ke DMA. DMA
mentransfer seluruh data yang diminta ke / dari memori secara langsung
tanpa melewati pemroses. Ketika transfer data selesai, DMA mengirimkan
sinyal interupsi ke pemroses. Pemroses hanya dilibatkan pada awal dan
akhir transfer data.
Operasi transfer antara perangkat dan memori utama dilakukan sepenuhnya
oleh DMA, lepas dari pemroses dan hanya melakukan interupsi bila operasi
telah selesai.
Keuntungan DMA :
- peningkatan kinerja prosesor atau I/O
- meminimasikan over head
drive
Disk
CPU memor controll
y er buffer

cou DMA Register / memory


nt cou
address
nt

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 0 5 0
6 1 3 4 2 3

5 2 6 1 7 6
4 3 2 5 4 1

No Single Double
Interleaving Interleaving Interleaving

81
7.2. Prinsip Sofware I/O

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 Device Device
Drivers Controller
(Registernya)
3. Device Independent Operating System Software

82
I/O device-independent adalah : software I/O yang tak bergantung pada
perangkat keras.
Fungsi dasar dari software device-independent :
- membentuk fungsi I/O yang berlaku untuk semua device
- menyediakan interface uniform / seragam ke user level software

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

Device-independent Naming protection, blocking,


software buffering, allocation
Device-drivers Setup device register, check status

Interrupt handler Wake up driver when I/O completed

Hardware Perform I/O operation

Lapisan sistem I/O dan fungsi utama dari tiap lapisan (layer)

7.3. Disk

Tiga kelebihan disk dari main memory untuk penyimpanan :

83
1. kapasitas penyimpanan yang tersedia lebih besar
2. harga per-bit-nya lebih rendah
3. informasi tidak hilang meskipun power off

Perangkat Keras Disk


Disk diorganisasikan menjadi silinder-silinder dengan tiap permukaan
terdapat head yang ditumpuk secara vertikal. Track terbagi menjadi sektor-
sektor.

Platter Read/Write
Spindl Boo
s Head
e Struktur Disk m

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

84
7.4. Algoritma Penjadwalan Akses Lintas Disk
Pada sistem multiprogramming, banyak proses yang melakukan permintaan
read/write record disk. Proses membuat permintaan lebih cepat
dibandingkan yang dapat dilayani disk, membentuk antrian permintaan
layanan disk. Diperlukan penjadwalan disk agar memperoleh kerja optimal.
Terdapat dua tipe penjadwalan disk, yaitu :
1. Penjadwalan untuk optimasi seek, karena waktu seek lebih tinggi satu
orde dibandingkan waktu rotasi, maka kebanyakan algoritma penjadwalan
berkonsentrasi meminimumkan seek kumpulan atau antrian permintaan
layanan disk.
2. Penjadwalan untuk optimasi rotasi, penjadwalan disk melibatkan
pemeriksaan terhadap permintaan yang belum dilayani untuk menentukan
cara paling efisien melayani permintaan-perminataan, dan memeriksa
hubungan posisi di antrian permintaan. Antrian disusun kembali sehingga
permintaan akan dilayani dengan pergerakan mekanis minimum.
Adapun beberapa metode yang digunakan :
a. Algoritma Pertama Tiba Pertama Dilayani (PTPD) / First Come, First
Served (FCFS) Algorithm
Disk drive melayani satu permintaan pada sauatu saat dan melayaninya
sesuai urutan kedatangannya. Permintaan yang duluan tiba, dilayani
duluan.

Contoh : 40 silinder dengan urutan 11, 1, 36, 1, 16, 34, 9, 12


Initial Peding
position request
X X X X X X X
0 5 10 15 20 25 30 35 39

Silinde
r

Tim Pungut / Pick Up Algorithm


b. Algoritma
e
Initial
position
X X X X X X X
0 5 10 15 20 25 30 35 39

Silinde
r
Tim
c. Algoritma Waktu Cari Terpendek Dipertamakan (WCTD) / Shortest
e
Seek Time First (SSTF) Algorithm
Initial
position
X X X X X X X
0 5 10 15 20 25 30 35 39

Tim Silinde
e Sequence of r
seeks

85
d. Algoritma Lift Singkat / LOOK Algorithm
Initial
position
X X X X X X X
0 5 10 15 20 25 30 35 39

Tim Silinde
e r

e. Agoritma Lift Singkat Searah / C-LOOK Algorithm


Initial
position
X X X X X X X
0 5 10 15 20 25 30 35 39

Tim Silinde
e r

f. Algoritma Lift Lengkap / SCAN Algorithm


Initial
position
X X X X X X X
0 5 10 15 20 25 30 35 39

Tim Silinde
e r

g. Algoritma Lift Lengkap Searah / C-Scan Algorithm


Initial

X X X X X X X
0 5 10 15 20 25 30 35 39

Tim Silinde

7.5. I/O Error Handling / Penanganan Kesalahan I/O


Error yang umum terjadi adalah :
1. Error pemrograman

86
Kesalahan disebabkan pemrograman. Misalnya : request sektor yang
tidak ada. Penanganannya : pembetulan program untuk komersial
software, batalkan operasi dan berharap tidak akan terjadi lagi
2. Error checksum transient
Kesalahan disebabkan adanya debu diantara head dengan permukaan
disk. Penanganannya : lakukan operasi berulang-ulang dan menandai
sector yang rusak.
3. Error checksum permanent
Kesalahan disebabkan kerusakan disk. Misalnya harus dibuat daftar blok-
blok buruk agar data tidak ditulisi di blok-blok buruk.
4. Error seek
Kesalahan ini ditanggulangi dengan mengkalibrasi disk supaya berfungsi
kembali. Misalnya lengan harusnya ke silinder 6 ternyata ke 7.
Penanganannya : kalibrasi ulang.
5. Error controller
Kesalahan ini ditanggulangi dengan menukar pengendali yang salah
dengan pengendali yang baru. Misalnya controller menolak perintah
akses. Penanganannya : reset.
6. Track at time caching
Kontroller mempunyai memori untuk menyimpan informasi track dimana ia
berada, permintaan pembacaan blok track tersebut dilakukan tanpa
pergerakan mekanik.

7.6. 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 87
use this
memory
.
.

Operating
System

8. Terminal
Semua komputer memerlukan terminal untuk komunikasi antar peralatan.
8.2. Terminal Hardware
Terminal hardware terbagi atas 2 kategori dasar, yaitu :
Termina
ls

RS-232 Memory Mapped


interface interface

1. terminal interface melalui RS-232


HardcopRS-232 Glass
menghubungkan
Intellige keyboard,
Blit monitor Charact
menggunakan serialBit
y interface, 1ttybit dalam nt1 waktu, dan menggunakan er 25 pin konektor,
oriented
dimana 1 pin untuk transmisi data, 1 pin untuk oriented
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.
8.3. Terminal Software
Terminal Software terdiri dari :
1. Input Software
2. Output Software

Studi kasus

88
1. manajemen I/O
pada MS DOS
MS DOS mendukung beragam perangkat serial, yang diidentifikasikan
dengan nama file khusus, hanya tidak disimpan di suatu direktori tertentu,
misalnya :
a. con : perangkat konsol
b. com1 : perangkat communication port 1
c. com2 : perangkat communication port 2
d. pm : perangkat printer
e. lpt1 : perangkat line printer 1
f. lpt2 : perangkat line printer 2
g. aux : perangkat auxiliary

contoh :
copy a.txt con : tidak mengkopi file a.txt menjadi file con, tetapi
menampilkan ke konsol
copy a.txt prn : tidak mengkopi file a.txt menjadi file prn, tetapi mengalirkan
isi file a.txt ke printer sehingga printer akan mencetaknya
MS DOS memungkinkan pemakai memasang device driver sendiri setelah
sistem di boot dengan penambahan pernyataan di file config.sys, misalnya
ansi.sys, display.sys, mouse.sys, printer.sys, dll.
UNIX mengharuskan device driver dikompilasi ke kernel.

89
90

Anda mungkin juga menyukai