Bab II. Perangkat Lunak Bebas
Jenis Lisensi Perangkat
Lunak
1. Perangkat Lunak Berpemilik ialah perangkat lunak yang tidak bebas atau
pun semi-bebas. Seseorang dapat dilarang, atau harus meminta izin, atau akan dikenakan
pembatasan lainnya sehingga menyulitkan jika menggunakan, mengedarkan, atau
memodifikasinya.
2. Perangkat Lunak
Semi-Bebas adalah Perangkat lunak semi-bebas adalah perangkat lunak yang
tidak bebas, tapi mengizinkan setiap orang untuk menggunakan, menyalin,
mendistribusikan, dan memodifikasinya untuk tujuan tertentu.
3. Public Domain ialah
perangkat lunak yang tanpa hak cipta.
4. Freeware adalah
paket-paket yang mengizinkan redistribusi tetapi bukan pemodifikasian (dan kode
programnya tidak tersedia).
5. Shareware ialah perangkat
lunak yang mengizinkan orang-orang untuk mendistribusikan salinannya, tetapi
mereka yang terus menggunakannya diminta untuk membayar lisensi.
6. Copylefted/
Non-Copylefted merupakan perangkat lunak bebas yang ketentuan pendistribusinya
tidak memperbolehkan untuk menambah batasan-batasan tambahan jika
mendistribusikan atau memodifikasikan perangkat lunak tersebut.
7. GNU General Public
License (GNU/GPL) merupakan sebuah kumpulan ketentuan pendistribusian tertentu
untuk meng-copyleft-akan sebuah program.
8. Sistem GNU merupakan
sistem serupa Unix yang seutuhnya bebas.
9. Perangkat Lunak GNU
merupakan perangkat lunak yang dikeluarkan oleh proyek GNU. Sebagian besar
perangkat lunak GNU merupakan copyleft, tapi tidak semuanya, namun, semua
perangkat lunak GNU harus merupakan perangkat lunak bebas
.
.
Tantangan Perangkat Lunak Bebas (PLB)
1.
Perangkat Keras Rahasia.
2.
Library Tidak Bebas.
3.
Paten Perangkat Lunak.
4.
Dokumentasi Bebas.
Bab III. Perangkat Keras Komputer
3.1 Prosesor
Sistem komputer terdiri atas CPU dan sejumlah device controller yang
terhubung melalui sebuah bus yang menyediakan akses ke memori.
3.2 Memori Utama
Memori utama dapat dilihat sebagai cache terakhir untuk secondary
strorage.
Register
Tempat penyimpanan beberapa
buah data volatile yang akan diolah langsung di prosessor yang berkecepatan
sangat tinggi. Berfungsi sebagai tempat perhitungan /komputasi data.
Cache Memory
Tempat penyimpanan sementara
(volatile) sejumlah kecil data untuk meningkatkan kecepatan pengambilan atau
penyimpanan data di memori oleh prosessor yang berkecepatan tinggi.
Random Access Memory
Tempat penyimpanan sementara
data volatile yang dapat diakses langsung oleh prosesor.
Memori Ekstensi
Tambahan memori yang
digunakan untuk membantu proses-proses dalam komputer.
Direct Memory Access
Digunakan untuk I/O device
yang dapat memindahkan data dengan kecepatan tinggi (mendekati frekuensi bus
memori).
3.3 Memori Sekunder
Media penyimpanan data yang non-volatile yang dapat berupa Flash Drive,
Optical Disc, Magnetic Disk, Magnetic Tape. Media ini biasanya daya tampungnya
cukup besar dengan harga yang relatif murah. Portability-nya juga relatif lebih
tinggi.
3.4 Memori Tersier
Memori tersier menyimpan data dalam jumlah yang besar (terabytes), tapi
waktu yang dibutuhkan untuk mengakses data biasanya dalam hitungan menit sampai
jam. Ciri-ciri memori tersier: non-volatile, offline storage, umunya dibangun
pada removable media contoh ptical disk, flash memory.
3.5 Struktur Keluaran/Masukkan
Dua tindakan jika ada operasi M/K:
Setelah proses M/K dimulai, kendali akan kembali ke user program saat
proses M/K selesai (Synchronous). Instruksi wait menyebabkan CPU idle sampai
interupsi berikutnya. Akan terjadi Wait loop (untuk menunggu akses berikutnya).
Paling banyak satu proses M/K yang berjalan dalam satu waktu.
Setelah proses M/K dimulai, kendali akan kembali ke user program tanpa
menunggu proses M/K selesai (Asynchronous). System call permintaan pada sistem
operasi untuk mengizinkan user menunggu sampai M/K selesai.Device-status table
mengandung data masukkan untuk tiap M/K device yang menjelaskan tipe, alamat,
dan keadaannya. Sistem operasi memeriksa M/K device untuk mengetahui keadaan
device dan mengubah tabel untuk memasukkan interupsi. Jika M/K device mengirim/mengambil
data ke/dari memory hal ini dikenal dengan nama Direct Memory Access (DMA).
3.5 Interupsi
Interrupt dari hardware biasanya dikirimkan melalui suatu signal
tertentu, sedangkan software mengirim interupsi dengan cara menjalankan system
call atau ajuga dikenal dengan istilah monitor call. System/Monitor call ini
akan menyebabkan trap yaitu interupsi khusus yang dihasilakan oleh software
karena adanya masalah atau permintaan terhadap layanan sistem operasi.
Bab IV. Proteksi Perangkat Keras
Sistem operasi harus memastikan operasi yang benar dari sistem komputer.
Untuk mencegah pengguna program menggangu operasi yang berjalan dalam sistem,
perangkat keras mempunyai dua mode: mode pengguna dan mode monitor. Beberapa
perintah (seperti perintah M/K dan perintah halt) adalah perintah khusus, dan
hanay dapat dijalankan dalam mode monitor. Memori juga harus dilindungi dari
modifikasi oleh pengguna. Timer mencegah terjadinya pengulangan secara terus
menerus (infinite loop). Hal-hal tersebut (dual mode, perintah khusus, pengaman
memori, timer interrupt) adalah blok bangunan dasar yang digunakan oleh sistem
operasi untuk mencapai operasi yang sesuai.
Bab V. Komponen Sistem Operasi
Tidak semua sistem operasi mempunyai struktur yang sama. Namun menurut
Avi Silberschatz, Peter Galvin, dan Greg Gagne, umumnya sebuah sistem operasi
modern mempunyai komponen sebagai berikut:
· Manajemen Proses
· Manajemen Memori Utama
· Manajemen Berkas
· Manajemen Sistem
Masukkan/Keluaran
· Manajemen Penyimpanan
Sekunder
· Sistem proteksi
· Jaringan
· Command Interpreter System
Sedangkan menurut A.S
Tanenbaum, sistem operasi mempunyai empat komponen utama, yaitu:
· Manajemen proses
· Masukkan/Keluaran
· Manajemen Memori
· Sistem Berkas
5.1 Manajemen Proses
Sistem operasi bertanggung jawab atas aktifitas-aktifitas yang berkaitan
dengan manajemen proses seperti:
· Membuat dan menghapus proses
pengguna dan sistem proses
· Menunda atau melanjutkan
proses
· Menyediakan mekanisme
untuk proses sinkronisasi
· Menyediakan mekanisme
untuk proses komunikasi
· Menyediakan mekanisme
untuk penanganan deadlock
5.2 Manajemen Memori utama
Sistem operasi bertanggung jawab atas aktifitas-aktifitas yang berkaitan
dengan manajemen memori utama seperti:
· Menjaga track dari memori
yang sedang digunakan dan siapa yang menggunakannya
· Memilih program yang akan
di-load ke memori
5.3 Manajemen Berkas
Sistem operasi bertanggung jawab dalam aktifitas yang berhubungan dengan
manajemen berkas:
· Pembuatan dan penghapusan
berkas
· Pembuatan dan penghapusan
direktori
· Mendukung manipulasi berkas
dan direktori
· Memetakan berkas ke
secondary-storage
· Mem-back-up berkas ke media
penyimpanan yang permanen (non-volatile)
5.4 Manajemen Sistem Masukkan/Keluaran
Komponen Sistem Operasi untuk sistem Masukkan/Keluaran:
· Penyangga: menampung
sementara data dari/ke perangkat Masukkan/Keluaran
· Spooling: melakukan
penjadualan pemakaian Masukkan/Keluaran sistem supaya lebih efisien
· Menyediakan driver: untuk
dapat melakukan operasi rinci untuk perangkat keras Masukkan/Keluaran tertentu.
5.5 Manajemen Penyimpanan Sekunder
Sistem operasi bertanggung jawab atas aktifitas-aktifitas yang berkaitan
dengan manajemen disk seperti:
· free-space management
· alokasi penyimpanan
· penjadualan disk
5.6 Sistem Proteksi
Sistem proteksi mengacu pada mekanisme untuk mengontrol akses yang harus
dilakukan oleh program, prosesor, atau pengguna ke sistem sumber daya.
Mekanisme proteksi harus:
· Membedakan antara pengguna
yang sudah diberi izin dan yang belum
· Menspesifikasikan kontrol
untuk dibebankan/diberi tugas
· Menyediakan alat untuk
pemberlakuan sistem
5.7 Jaringan
Sistem terdistribusi adalah sekumpulan prosesor yang tidak berbagi
memori, atau clock. Setiap prosesor mempunyai memori dan clock tersendiri.
Prosesor-prosesor tersebut terhubung melalui jaringan komunikasi. Sistem
terdistribusi menyediakan akses pengguna ke bermacam sumber daya sistem. Akses
tersebut menyebabkan peningkatan kecepatan komputasi dan meningkatkan kemampuan
penyediaan data.
5.8 Command Interpreter System
Sistem operasi menunggu instruksi dari pengguna (command driven). Program
yang membaca instruksi dan mengartikan control statements umumnya disebut
control-card interpreter. Command-Line interpreter dan terkadang dikenal sebagai
shell. Command-Interpreter System sangat bervariasi dari satu sistem operasi ke
sistem operasi yang lain dan disesuaikan dengan tujuan dan teknologi perangkat
Masukkan/Keluaran yang ada. Contohnya: CLI, Windows, Pen-based (touch), dan
lain-lain.
Bab VI. Sudut Pandang Alternatif
6.1 Layanan Sistem Operasi
Layanan sistem operasi dirancang untuk membuat pemrograman menjadi lebih
mudah.
· Pembuatan program
· Ekseskusi program
· Operasi Masukkan/Keluaran
· Manipulasi Sistem Berkas
· Komunikasi
· Deteksi error
6.2 System Program
System program menyediakan lingkungan yang memungkinkan pengembangan
program dan eksekusi berjalan dengan baik.
Dapat dikategorikan:
· Manajemen/manipulasi berkas
· Informasi status
· Modifikasi berkas
· Pendukung bahasa pemrograman
· Loading dan ekseskusi
program
· Komunikasi
Bab X. Konsep Proses
Menurut Silberschatz, suatu proses adalah lebih dari sebuah kode program,
yang terkadang disebut text section. Proses juga mencakup program counter,
yaitu sebuah stack untuk mnyimpan alamat dari instruksi yang akan dieksekusi
selanjutnya dan register. Sebuah proses pada umumnya juga memiliki sebuah stack
yang berisikan data-data yang dibutuhkan selama proses dieksekusi seperti
parameter metoda, alamat return dan variabel lokal, dan sebuah data section
yang menyimpan variabel global.
Tak jauh beda dengan
Silberschatz, Tanenbaum juga berpendapat bahwa proses adalah sebuah program
yang dieksekusi yang mencakup program counter, register, dan variabel
didalamnya. Suatu program adalah satu entitas pasif, seperti isi dari sebuah
berkas yang disimpan didalam disket. Sedangkan sebuah proses dalam suatu
entitas aktif, dengan sebuah program counter yang menyimpan alamat instruksi
selanjutnya yang akan dieksekusi dan seperangkat sumber daya (resource) yang
dibuthkan agar sebuah proses dapat dieksekusi.
10.1 Pembuatan Proses
Sebuah proses dibuat melalui system call create-process yang dilakukan oleh
parent process. Setiap proses anakan (child process) dapat juga membuat proses
baru. Ketika sebuah proses dibuat maka proses tersebut dapat memperoleh
resource (waktu CPU, memory, berkas atau perangkat I/O) secara langsung dari
sistem operasi atau proses tersebut berbagi resource dengan resource orang
tuanya. Orang tua proses tersebut dapat membagi-bagi resource yang dimilikinya
atau menggunakan secara bersama- sama resource yang dimilikinya dengan proses
anakannya. Ketika sebuah proses membuat proses baru maka terdapat dua
kemungkinan dalam pelaksanaannya:
1. orang tua proses tersebut berjalan secara konkuren dengan proses
anaknya.
2. orang tua proses tersebut menunggu hingga beberapa atau seluruh proses anakannya selesai.
2. orang tua proses tersebut menunggu hingga beberapa atau seluruh proses anakannya selesai.
Juga terdapat dua kemungkinan dalam pemberian ruang alamat (address
space) proses yang baru:
1. proses tersebut merupakan
duplikasi orang tuanya.
2. proses tersebut memiliki
program yang diload ke ruang alamatnya.
10.2 Terminasi Proses
Suatu proses diterminasi ketika proses tersebut telah selesai
mengeksekusi statement terakhir dan meminta sistem operasi untuk menghapus
statement tersebut dengan menggunakan system call exit.
Suatu parent dapat
mengakhiri eksekusi salah satu childre-nya untuk alasan-alasan seperti:
· Child melampui penggunaan
resource yang telah dialokasikan. Dalam keadaan ini, paren perlu mempunyai
mekanisme untuk memeriksa status children-nya.
· Task yang ditugaskan kepada
child tidak lagi diperlukan.
· Parent berakhir dan sistem
operasi tidak memperbolehkan suatu child untuk tetap menjalankan proses jika
parent-nya sudah tidak ada. Jadi, jika suatu proses berakhir, maka semua
children-nya juga harus diterminasi. Fenomena yang disebut cascading
termination ini biasanya dimulai oleh sistem operasi.
10.3 Status Proses
Status dari sebuah proses mencerminkan aktifitas atau keadaan dari proses
itu sendiri. Berikut ini adalah status-status yang mungkin dimiliki sebuah
proses menurut Tanenbaum:
· Running: pada saat
menggunakan CPU pada suatu waktu.
· Ready: proses diberhentikan
sementara karen menunggu proses lain untuk dieksekusi
· Blocked: tidak dijalankan
sampai event dari luar, yang berhubungan dengan proses tersebut terjadi.
Sedangkan menurut Silberschatz, terdapat lima macam jenis status yang
mungkin dimiliki oleh suatu proses:
· New: status yang dimiliki
pada saat proses baru saja dibuat.
· Running: status yang
dimiliki pada saat instruksi-instruksi dari sebuah proses dieksekusi.
· Waiting: status yang
dimiliki pada saat proses menunggu suatu event (contohnya: proses M/K).
· Ready: status yang dimiliki
pada saat proses siap untuk dieksekusi oleh prosesor.
· Terminated: status yang
dimiliki pada saat proses telah selesai dieksekusi.
10.4 Process Control Block
Process Control Block berisikan banyak bagian dari informasi yang
berhubungan dengan sebuah proses yang spesifik, termasuk hal-hal di bawah ini:
· Status proses: status
mungkin, new, ready, running, waiting, halted, dan juga banyak lagi.
· Program counter: suatu stack
yang berisi alamat dari instruksi selanjutnya untuk dieksekusi untuk proses
ini.
· CPU register: Register
bervariasi dalam jumlah dan jenis, tergantung pada rancangan komputer. Register
tersebut termasuk accumulator, register indeks, stack pointer, general-purposes
register, ditambah code information pada kondisi apa pun. Beserta dengan
program counter, keadaan/status informasi harus disimpan ketika gangguan
terjadi, untuk memungkinkan proses tersebut berjalan/bekerja dengan benar
setelahnya.
· Informasi managemen memori:
Informasi ini dapat termasuk suatu informasi sebagai nilai dari dasar dan batas
register, tabel page/halaman, atau tabel segmen tergantung pada sistem memori
yang digunakan oleh sistem operasi.
· Informasi pencatatan:
Informasi ini termasuk jumlah dari CPU dan waktu riil yang digunakan, batas
waktu, jumlah akun jumlah job atau proses, dan banyak lagi.
· Informasi status M/K:
Informasi termasuk daftar dari perangkat M/K yang di gunakan pada proses ini,
suatu daftar berkas-berkas yang sedang diakses dan banyak lagi.
· Process Control Block hanya
berfungsi sebagai tempat penyimpanan informasi yang dapat bervariasi dari
proses yang satu dengan yang lain.
Bab IVX. Penjadual CPU
Penjadualan CPU adalah basis dari multi-programming sistem operasi.
Dengan men-switch CPU diantara proses. Akibatnya sistem operasi dapat membuat
komputer produktif.
14.1 Siklus Burst CPU-M/K
Keberhasilan dari penjadualan CPU tergantung dari beberapa properti
prosesor. Pengeksekusian dari proses tersebut terdiri atas siklus CPU ekskusi
dan M/K Wait. Proses hanya akan bolak-balik dari dua state ini. Pengeksekusian
proses dimulai dengan CPU Burst, setelah itu diikuti oleh M/K burst, kemudian
CPU Burst lagi lalu M/K Burst lagi begitu seterusnya dan dilakukan secara
bergiliran. Dan, CPU Burst terakhir, akan berakhir dengan permintaan sistem
untuk mengakhiri pengeksekusian daripada melalui M/K Burst lagi. Durasi dari
CPU bust ini telah diukur secara ekstensif, walau pun mereka sangat berbeda
dari proses ke prose.
14.2 Penjadualan CPU
Kapan pun CPU menjadi idle, sistem operasi harus memilih salah satu
proses untuk masuk kedalam antrian ready (siap) untuk dieksekusi. Pemilihan
tersebut dilakukan oleh penjadual short term. Penjadualan memilih dari sekian
proses yang ada di memori yang sudah siap dieksekusi, dengan mengalokasikan CPU
untuk mengeksekusinya.
14.3 Penjadualan Preemptive
Penjadualan CPU mungkin akan dijalankan ketika proses:
· Berubah dari running ke
waiting state
· Berubah dari running ke
ready state
· Berubah dari waiting ke
ready
· Terminates
14.4 Penjadualan Non-Preemtive
Penjadualan non-preemptive terjadi ketika proses hanya:
· berjalan dari running state
sampai waiting state
· dihentikan
Ini berarti cpu menjaga
proses sampai proses itu pindah ke waiting state ataupun dihentikan (proses
tidak diinterupt). Metode ini digunakan oleh Microsoft Windows 3.1 dan Macintosh.
Ini adalah metode yang dapat digunakan untuk platforms hardware tertentu,
karena tidak memerlukan perangkat keras khusus (misalnya timer yang digunakan
untuk menginterupt pada metode penjadwalan preemptive).
14.5 Dispatcher
Komponen yang lain yang terlibat dalam penjadualan CPU adalan dispatcher.
Dispatcher adalah modul yang memberikan kontrol CPU kepada proses yang
fungsinya adalah:
· Switching context
· Switching to user mode
· Lompat dari suatu
bagian di progam user untuk mengulang progam.
Bab XV. Algoritma Penjadualan I
Proses yang belum mendapat jatah alokasi dari CPU akan mengantri di ready
queue. Di sini algoritma diperlukan untuk mengatur giliran proses-proses
tersebut. Berikut ini adalah algoritmanya.
15.1 First-Come, First-Served
Algoritma ini merupakan algoritma yang paling sederhana. Dari namanya,
kita dapat menebak kalau algoritma ini akan mendahulukan proses yang lebih dulu
datang. Jadi proses akan mengantri sesuai waktu kedatangannya.Kelemahan algoritma
ini adalah waiting time rata-rata yang cukup lama.
15.2 Shortest-Job First
Algoritma ini mempunyai cara yang berbeda untuk mengatur antrian di ready
queue. Proses diatur menurut panjang CPU burst berikutnya (lebih tepatnya
shortest next CPU burst) .Waiting time rata-rata dari algoritma ini sangat
kecil, sehingga layak disebut optimal. Perbandingan algoritma ini dengan
algoritma pertama telah kita lihat di bagian sebelumnya (shortest job first),
di mana proses yang memiliki CPU burst terkecil jika didahulukan akan
mengurangi waiting time rata-ratanya. Kelemahan algoritma ini yaitu kita tak
pernah tahu secara pasti panjang CPU burst proses berikutnya. Kita hanya dapat
mengira-ngira nilainya.
Algoritma ini dapat merupakan preemptive atau nonpreemptive. Jika
preemptive, jika ada proses datang dengan sisa CPU burst yang lebih kecil
daripada yang sedang dieksekusi, maka proses tersebut akan menggantikan proses
yang sedang dieksekusi.
15.3 Priority
Algoritma ini memberikan skala prioritas kepada tiap proses. Proses yang
mendapat prioritas terbesar akan didahulukan. Skala diberikan dalam bentuk
integer. Beberapa sistem menggunakan integer kecil untuk prioritas tertinggi,
beberapa sistem menggunakan integer besar. Kelemahan dari algoritma ini adalah
proses dengan prioritas kecil tidak akan mendapat jatah CPU. Hal ini dapat
diatasi dengan aging, yaitu semakin lama menunggu, prioritas semakin tinggi.
15.4 Round-Robin
Algoritma ini menggilir proses yang ada di antrian. Proses akan mendapat
jatah sebesar time quantum. Jika time quantum-nya habis atau proses sudah
selesai CPU akan dialokasikan ke proses berikutnya. Algoritma ini sepenuhnya
bergantung besarnya time quantum. Jika terlalu besar, algoritma ini akan sama
saja dengan algoritma first-come first-served. Jika terlalu kecil, akan semakin
banyak peralihan proses sehingga banyak waktu terbuang.
15.5 Multilevel Queue
Algoritma ini mengelompokkan antrian dalam beberapa buah antrian.
Antrian-antrian tersebut diberi prioritas.Antrian yang lebih rendah tak boleh
mendapat alokasi selama ada antrian tinggi yang belum kebagian. Tiap antrian
boleh memiliki algoritma yang berbeda. Kita juga dapat menjatah waktu CPU untuk
tiap antrian. Semakin tinggi tingkatannya, semakin besar jatah waktu CPU-nya.
15.6 Multilevel Feedback Queue
Algoritma ini mirip sekali dengan algoritma Multilevel Queue.
Perbedaannya ialah algoritma ini mengizinkan proses untuk pindah antrian. Jika
suatu proses menyita CPU terlalu lama, maka proses itu akan dipindahkan ke
antrian yang lebih rendah. Ini menguntungkan proses interaksi, karena proses
ini hanya memakai waktu CPU yang sedikit. Demikian pula dengan proses yang
menunggu terlalu lama. Proses ini akan dinaikkan tingkatannya.
Algoritma ini didefinisikan
melalui beberapa parameter, antara lain:
· Jumlah antrian
· Algoritma penjadualan tiap
antrian
· Kapan menaikkan proses ke
antrian yang lebih tinggi
· Kapan menurunkan proses ke
antrian yang lebih rendah
· Antrian mana yang akan
dimasuki proses yang membutuhkan