ADD THE SLIDER CODE HERE

Tuesday, April 3, 2012

Rangkuman Mata Kuliah Operating System


Bagian I. Konsep Dasar
Perangkat Komputer
Bab 1.Pendahuluan Sistem Operasi

Sebuah sistem komputer dapat dibagi ke dalam beberapa komponen utama, seperti "para pengguna","perangkat keras", serta "perangkat lunak" ."Para pengguna" (users) ini merupakan pihak yang memanfaatkan sistem komputer tersebut. Parapengguna di sini bukan saja manusia, namun mungkin berbentuk program aplikasi lain, atau pun perangkat komputer lain. "Perangkat keras" (hardware) ini berbentuk benda konkret yang dapat dilihat dan disentuh. Perangkat keras ini merupakan inti dari sebuah sistem, serta penyedia sumber daya (resources) untuk keperluan komputasi. Diantara "para pengguna" dan "perangkat keras" terdapat sebuah lapisan abstrak yang disebut dengan "perangkat lunak" (software). Secara keseluruhan, perangkat lunak membantu para pengguna untuk memanfaatkan sumber daya komputasi yang disediakan perangkat keras.



(Gambar 1.1, “Abstraksi Komponen Sistem Komputer”)

sistem operasi merupakan komponen penting dari setiap sistem komputer. Akibatnya, pelajaran "sistem operasi" selayaknya merupakan komponen penting dari sistem pendidikan berbasis "ilmu komputer". Konsep sistem operasi dapat lebih mudah dipahami, jika juga memahami jenis perangkat keras yang digunakan. Demikian pula sebaliknya. Dari sejarah diketahui bahwa sistem operasi dan perangkat keras saling mempengaruhi dan saling melengkapi. Struktur dari sebuah sistem operasi sangat tergantung pada perangkat keras yang pertama kali digunakan untuk mengembangkannya. Sedangkan perkembangan perangkat keras sangat dipengaruhi dari hal-hal yang diperlukan oleh sebuah sistem operasi. Dalam sub bagian-bagian berikut ini, akan diberikan berbagai ilustrasi perkembangan dan jenis sistem operasi beserta perangkat kerasnya.

1.2. Sejarah Perkembangan
Arsitektur perangkat keras komputer tradisional terdiri dari empat komponen utama yaitu "Prosesor", "Memori Penyimpanan", "Masukan" (Input), dan "Keluaran" (Output). Model tradisional tersebut sering dikenal dengan nama arsitektur von Neumann. Pada saat awal, komputer berukuran sangat besar sehingga komponen-komponennya dapat memenuhi sebuah ruangan yang sangat besar. Sang pengguna -- menjadi programer yang sekali gus merangkap menjadi menjadi operator komputer -- juga bekerja di dalam ruang komputer tersebut.



(Gambar 1.2, “Arsitektur Komputer von Neumann”)



Perkembangan sistem operasi dimulai dari sini, dengan memanfaatkan sistem batch  Para operator mengumpulkan job-job yang mirip yang kemudian dijalankan secara berkelompok. Umpama, job yang memerlukan kompilator Fortran akan dikumpulkan ke dalam sebuah batch bersama dengan job-job lainnya yang juga memerlukan kompilator Fortran. Setelah sebuah kelompok job rampung, maka kelompok job berikutnya akan dijalankan secara otomatis.

(Gambar 1.3,“Bagan Memori Untuk Sistem Monitor Batch Sederhana”)


                                                  (Gambar 1.4,“Van neumann")

Komputer klasik hanya memiliki satu prosesor. Keuntungan dari sistem ini ialah lebih mudah diimplementasikan karena tidak perlu memperhatikan sinkronisasi antar prosesor, kemudahan kontrol terhadap prosesor karena sistem proteksi tidak, teralu rumit, dan cenderung murah (bukan ekonomis). Perlu dicatat yang dimaksud satu buah prosesor ini ialah satu buah prosesor sebagai Central Processing Unit (CPU). Hal ini ditekankan sebab ada beberapa perangkat yang memang memiliki prosesor tersendiri di dalam perangkatnya seperti VGA Card AGPOptical Mouse, dan lain-lain.

Bab 2. Perangkat Lunak Bebas
Arti bebas yang salah, telah menimbulkan persepsi masyarakat bahwa perangkat lunak bebas
merupakan perangkat lunak yang gratis. Perangkat lunak bebas ialah perihal kebebasan, bukan
harga. Konsep kebebasan yang dapat diambil dari kata bebas pada perangkat lunak bebas adalah
seperti kebebasan berbicara bukan seperti bir gratis. Maksud dari bebas seperti kebebasan berbicara
adalah kebebasan untuk menggunakan, menyalin, menyebarluaskan, mempelajari, mengubah, dan
meningkatkan kinerja perangkat lunak. Suatu perangkat lunak dapat dimasukkan dalam kategori
perangkat lunak bebas bila setiap orang memiliki kebebasan tersebut. Hal ini berarti, setiap
pengguna perangkat lunak bebas dapat meminjamkan perangkat lunak yang dimilikinya kepada
orang lain untuk dipergunakan tanpa perlu melanggar hukum dan disebut pembajak. Kebebasan
yang diberikan perangkat lunak bebas dijamin oleh copyleft, suatu cara yang dijamin oleh hukum
untuk melindungi kebebasan para pengguna perangkat lunak bebas. Dengan adanya copyleft maka
suatu perangkat lunak bebas beserta hasil perubahan dari kode sumbernya akan selalu menjadi
perangkat lunak bebas. Kebebasan yang diberikan melalui perlindungan copyleft inilah yang
membuat suatu program dapat menjadi perangkat lunak bebas. Keuntungan yang diperoleh dari
penggunaan perangkat lunak bebas adalah karena serbaguna dan efektif dalam keanekaragaman
jenis aplikasi. Dengan pemberian source code-nya, perangkat lunak bebas dapat disesuaikan secara
khusus untuk kebutuhan pemakai. Sesuatu yang tidak mudah untuk terselesaikan dengan perangkat
lunak berpemilik. Selain itu, perangkat lunak bebas didukung oleh milis-milis pengguna yang dapat
menjawab pertanyaan yang timbul karena permasalahan pada penggunaan perangkat lunak bebas.

Bab 3. Perangkat Keras Komputer

3.1. Pendahuluan
Arsitektur Umum Komputer
GPU = Graphics Processing Unit;
AGP = Accelerated Graphics Port;
HDD = Hard Disk Drive;
FDD = Floppy Disk Drive;
FSB = Front Side Bus;
USB = Universal Serial Bus;
PCI = Peripheral Component Interconnect;
RTC = Real Time Clock;
PATA = Pararel Advanced Technology Attachment;
SATA = Serial Advanced Technology Attachment;
ISA = Industry Standard Architecture;
IDE = Intelligent Drive Electronics/Integrated Drive Electronics;
MCA = Micro Channel Architecture;
PS/2 = Sebuah port yang dibangun IBM untuk menghubungkan mouse ke PC;


3.2. Prosesor
Secara umum, sistem komputer terdiri atas CPU dan sejumlah device controller yang terhubung
melalui sebuah bus yang menyediakan akses ke memori. Umumnya, setiap device controller
bertanggung-jawab atas sebuah hardware spesisfik. Setiap device dan CPU dapat beroperasi secara
konkuren untuk mendapatkan akses ke memori. Adanya beberapa hardware ini dapat menyebabkan
masalah sinkronisasi. Karena itu untuk mencegahnya sebuah memory controller ditambahkan untuk
sinkronisasi akses memori.

3.3. Memori Utama
Dasar susunan sistem storage adalah kecepatan, biaya, sifat volatilitas. Caching menyalin informasi
ke storage media yang lebih cepat; Memori utama dapat dilihat sebagai cache terakhir untuk
secondary storage. Menggunakan memori berkecepatan tinggi untuk memegang data yang diakses
terakhir. Dibutuhkan cache management policy. Cache juga memperkenalkan tingkat lain di hirarki
storage. Hal ini memerlukan data untuk disimpan bersama-sama di lebih dari satu level agar tetap
konsisten.

Register
Tempat penyimpanan beberapa buah data volatile yang akan diolah langsung di prosesor yang
berkecepatan sangat tinggi. Register ini berada di dalam prosesor dengan jumlah yang sangat
terbatas karena fungsinya sebagai tempat perhitungan/komputasi data.

Cache Memory
Tempat penyimpanan sementara (volatile) sejumlah kecil data untuk meningkatkan kecepatan
pengambilan atau penyimpanan data di memori oleh prosesor yang berkecepatan tinggi. Dahulu
cache disimpan di luar prosesor dan dapat ditambahkan. Misalnya pipeline burst cache yang biasa
ada di komputer awal tahun 90-an. Akan tetapi seiring menurunnya biaya produksi die atau wafer
dan untuk meningkatkan kinerja, cache ditanamkan di prosesor. Memori ini biasanya dibuat
berdasarkan desain memori statik.

Random Access Memory
Tempat penyimpanan sementara sejumlah data volatile yang dapat diakses langsung oleh prosesor.
Pengertian langsung di sini berarti prosesor dapat mengetahui alamat data yang ada di memori
secara langsung. Sekarang, RAM dapat diperoleh dengan harga yang cukup murah dangan kinerja
yang bahkan dapat melewati cache pada komputer yang lebih lama.

Memori Ekstensi
Tambahan memori yang digunakan untuk membantu proses-proses dalam komputer, biasanya
berupa buffer. Peranan tambahan memori ini sering dilupakan akan tetapi sangat penting artinya
untuk efisiensi. Biasanya tambahan memori ini memberi gambaran kasar kemampuan dari perangkat
tersebut, sebagai contoh misalnya jumlah memori VGA, memori soundcard.

Register
Tempat penyimpanan beberapa buah data volatile yang akan diolah langsung di prosesor yang
berkecepatan sangat tinggi. Register ini berada di dalam prosesor dengan jumlah yang sangat
terbatas karena fungsinya sebagai tempat perhitungan/komputasi data.

Direct Memory Access
Digunakan untuk I/O device yang dapat memindahkan data dengan kecepatan tinggi (mendekati
frekuensi bus memori). Device controller memindahkan data dalam blok-blok dari buffer langsung
ke memory utama atau sebaliknya tanpa campur tangan prosesor. Interrupt hanya terjadi tiap blok
bukan tiap word atau byte data. Seluruh proses DMA dikendalikan oleh sebuah controller bernama
DMA Controller (DMAC)DMA Controller mengirimkan atau menerima signal dari memori dan
I/O device. Prosesor hanya mengirimkan alamat awal data, tujuan data, panjang data ke DMA
ControllerInterrupt pada prosesor hanya terjadi saat proses transfer selesai. Hak terhadap
penggunaan bus memory yang diperlukan DMA controller didapatkan dengan bantuan bus arbiter
yang dalam PC sekarang berupa chipset Northbridge.

3.4. Memori Sekunder

Gambar 3.4. Struktur Harddisk
Media penyimpanan data yang non-volatile yang dapat berupa Flash DriveOptical DiscMagnetic
DiskMagnetic Tape. Media ini biasanya daya tampungnya cukup besar dengan harga yang relatif
murah. Portability-nya juga relatif lebih tinggi.

3.5. Memori Tersier
Pada standar arsitektur sequential computer ada tiga level utama tingkatan penyimpaana: primer,
sekunder, and tersier. Memori tersier menyimpan data dalam jumlah yang besar (terabytes, atau 1012
bytes), tapi waktu yang dibutuhkan untuk mengakses data biasanya dalam hitungan menitsampai
jam. Saat ini, memori tersiser membutuhkan instalasi yang besar berdasarkan/bergantung pada disk
atau tapes. Memori tersier tidak butuh banyak operasi menulis tapi memori tersier tipikal-nya write
ones atau read many. Meskipun per-megabites-nya pada harga terendah, memory tersier umumnya
yang paling mahal, elemen tunggal pada modern supercomputer installations.
Ciri-ciri lain: non-volatile, off-line storage, umumnya dibangun pada removable media contoh
optical disk, flash memory.

3.6. Struktur Keluaran/Masukan (M/K)
Ada dua macam tindakan jika ada operasi M/K. Kedua macam tindakan itu adalah:
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.7. BUS
Pada sistem komputer yang lebih maju, arsitekturnya lebih kompleks. Untuk meningkatkan
performa, digunakan beberapa buah bus. Tiap bus merupakan jalur data antara beberapa device yang
berbeda. Dengan cara ini RAM, Prosesor, GPU (VGA AGP) dihubungkan oleh bus utama
berkecepatan tinggi yang lebih dikenal dengan nama FSB (Front Side Bus). Sementara perangkat
lain yang lebih lambat dihubungkan oleh bus yang berkecepatan lebih rendah yang terhubung
dengan bus lain yang lebih cepat sampai ke bus utama. Untuk komunikasi antar bus ini digunakan
sebuah bridge.
Tanggung-jawab sinkronisasi bus yang secara tak langsung juga mempengaruhi sinkronisasi
memori dilakukan oleh sebuah bus controller atau dikenal sebagai bus masterBus master akan
mengendalikan aliran data hingga pada satu waktu, bus hanya berisi data dari satu buah device. Pada
prakteknya bridge dan bus master ini disatukan dalam sebuah chipset.
Suatu jalur transfer data yang menghubungkan setiap device pada komputer. Hanya ada satu buah
device yang boleh mengirimkan data melewati sebuah bus, akan tetapi boleh lebih dari satu device
yang membaca data bus tersebut. Terdiri dari dua buah model: Synchronous bus di mana digunakan
dengan bantuan clock tetapi berkecepatan tinggi, tapi hanya untuk device berkecepatan tinggi juga;
Asynchronous bus digunakan dengan sistem handshake tetapi berkecepatan rendah, dapat digunakan
untuk berbagai macam device.

3.8. Interupsi
Kejadian ini pada komputer modern biasanya ditandai dengan munculnya interupsi dari software
atau hardware, sehingga Sistem Operasi ini disebut Interrupt-driven. Interrupt dari hardware
biasanya dikirimkan melalui suatu signal tertentu, sedangkan software mengirim interupsi dengan
cara menjalankan system call atau juga dikenal dengan istilah monitor call. System/Monitor call ini
akan menyebabkan trap yaitu interupsi khusus yang dihasilkan oleh software karena adanya
masalah atau permintaan terhadap layanan sistem operasi.
Trap ini juga sering disebut sebagai exception.
Setiap interupsi terjadi, sekumpulan kode yang dikenal sebagai ISR (Interrupt Service Routine) akan
menentukan tindakan yang akan diambil. Untuk menentukan tindakan yang harus dilakukan, dapat
dilakukan dengan dua cara yaitu polling yang membuat komputer memeriksa satu demi satu
perangkat yang ada untuk menyelidiki sumber interupsi dan dengan cara menggunakan
alamat-alamat ISR yang disimpan dalam array yang dikenal sebagai interrupt vector di mana sistem
akan memeriksa Interrupt Vector setiap kali interupsi terjadi.
Arsitektur interupsi harus mampu untuk menyimpan alamat instruksi yang di-interupsi Pada
komputer lama, alamat ini disimpan di tempat tertentu yang tetap, sedangkan pada komputer baru,
alamat itu disimpan di stack bersama-sama dengan informasi state saat itu.

3.9. Local Area Network
Muncul untuk menggantikan komputer besar. Dirancang untuk melingkupi suatu daerah yang kecil.
Menggunakan peralatan berkecepatan lebih tinggi daripada WAN. Hanya terdiri atas sejumlah kecil
komputer.

3.10. Wide Area Network
Menghubungkan daerah yang lebih luas. Lebih lambat, dihubungkan oleh router melalui jaringan
data telekomunikasi.

Bab 4. Proteksi Perangkat Keras

4.1 pendahuluan\
Sistem operasi harus memastikan operasi yang benar dari sistem komputer. Untuk mencegah
pengguna program mengganggu 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 hanya 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.

4.2. Proteksi Fisik
Proteksi fisik merupakan fungsi sistem operasi dalam menjaga, memproteksi fisik daripada
sumberdaya (perangkat keras). Misal proteksi CUP dan proteksi hardisk. Contohnya adalah dalam
kasus dual-mode operation (dibahas di sub-bab berikutnya).

4.3. Proteksi Media
Dalam keseharian kita ada beberapa jenis media yang digunakan untuk penyimpanan data, antara
lain tape, disket, CD, USB flash disk, dan lainnya. Untuk menjamin keamanan data yang tersimpan
dalam media-media tersebut, maka perlu sebuah mekanisme untuk menanganinya. Mekanisme
proteksi antara satu media dengan media yang lain tidak sama.
Sebagai contoh CD yang sering kita kenal sebagai media untuk installer memiliki mekanisme untuk
menjamin CD perangkat lunak yang digunakan oleh consumer ber-lisensi. mekanisme yang
digunakan yaitu dengan menggunakan CD key number. Cara kerja dari mekanisme ini,
ketikapengguna ingin menginstal program maka pengguna harus memasukkan kode dari key
number, jika tidak maka program tersebut tidak akan bisa diinstal. Key number bisanya didapatkan
dilabel yang disertakan pada CD atau pada dokumentasi program.

Konsep Mode Operasi Ganda (Dual Mode Operation)
Membagi sumber daya sistem yang memerlukan sistem operasi untuk menjamin bahwa program
yang salah tidak menyebabkan program lain berjalan salah juga. Menyediakan dukungan perangkat
keras untuk membedakan minimal dua mode operasi yaitu: User Mode - Eksekusi dikendalikan oleh
pengguna; Monitor/Kernel/System Mode - Eksekusi dikendalikan oleh sistem operasi. Instruksi
tertentu hanya berjalan di mode ini (Privileged Instruction). Ditambahkan sebuah bit penanda
operasi. Jika terjadi interrupt, maka perangkat keras berpindah ke monitor mode.

4.5. Proteksi Masukan/Keluaran
Semua instruksi masukan/keluaran umumnya Privileged Instruction (kecuali pada DOS, dan
program tertentu). Harus menjamin pengguna program tidak dapat mengambil alih kontrol
komputer di monitor mode.

4.6. Proteksi Memori
Harus menyediakan perlindungan terhadap memori minimal untuk interrupt vector dan interrupt
service routine. Ditambahkan dua register yang menentukan di mana alamat legal sebuah program
boleh mengakses, yaitu base register untuk menyimpan alamat awal yang legal dan limit register
untuk menyimpan ukuran memori yang boleh diakses Memori di luar jangkauan dilindungi.

4.7. Proteksi CPU
Timer melakukan interrupt setelah perioda waktu tertentu untuk menjamin kontrol sistem operasi.
Timer diturunkan setiap clock. Ketika timer mencapai nol, sebuah Interrupt terjadi. Timer biasanya
digunakan untuk mengimplementasikan pembagian waktu. Timer dapat juga digunakan untuk
menghitung waktu sekarang walaupun fungsinya sekarang ini sudah digantikan Real Time Clock
(RTC). System Clock Timer terpisah dari Pencacah Waktu. Timer sekarang secara perangkat keras
lebih dikenal sebagai System Timer/CPU TimerLoad Timer juga Privileged Instruction.

Bagian II. Konsep Dasar SistemOperasi

Bab 5. Komponen Sistem Operasi

5.1. Pendahuluan
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:
• Managemen Proses.
• Managemen Memori Utama.
• Managemen Berkas.
• Managemen Sistem Masukan/Keluaran.
• Managemen Penyimpanan Sekunder.
• Sistem Proteksi.
• Jaringan.
• Command-Interpreter System.

Sedangkan menurut A.S. Tanenbaum, sistem operasi mempunyai empat komponen utama, yaitu:
• Managemen proses,
• Masukan/Keluaran
• Managemen Memori, dan
• Sistem Berkas.

5.2. Managemen Proses
Sistem operasi bertanggung-jawab atas aktivitas-aktivitas yang berkaitan dengan managemen 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.3. Managemen Memori Utama
Sistem operasi bertanggung-jawab atas aktivitas-aktivitas yang berkaitan dengan managemen
memori seperti:
• Menjaga track dari memori yang sedang digunakan dan siapa yang menggunakannya.
• Memilih program yang akan di-load ke memori.

5.4. Managemen Berkas
Sistem operasi bertanggung-jawab dalam aktivitas yang berhubungan dengan managemen 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.5. Managemen Sistem Masukan/Keluaran
Komponen Sistem Operasi untuk sistem Masukan/Keluaran:
• Penyangga: menampung sementara data dari/ke perangkat Masukan/Keluaran.
• Spooling: melakukan penjadualan pemakaian Masukan/Keluaran sistem supaya lebih efisien
(antrian dsb.).
• Menyediakan driver: untuk dapat melakukan operasi rinci untuk perangkat keras
Masukan/Keluaran tertentu.


5.6. Managemen Penyimpanan Sekunder
Sistem operasi bertanggung-jawab atas aktivitas-aktivitas yang berkaitan dengan managemen disk
seperti:
• free-space management.
• alokasi penyimpanan.
• penjadualan disk

5.7. Sistem Proteksi
Proteksi mengacu pada mekanisme untuk mengontrol akses yang dilakukan oleh program, prosesor,
atau pengguna ke sistem sumber daya. Mekanisme proteksi harus:
• Membedakan antara penggunaan yang sudah diberi izin dan yang belum.
• Menspesifikasi kontrol untuk dibebankan/diberi tugas.
• Menyediakan alat untuk pemberlakuan sistem.

5.8. 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.9. 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 shellCommand-Interpreter System sangat
bervariasi dari satu sistem operasi ke sistem operasi yang lain dan disesuaikan dengan tujuan dan
teknologi perangkat Masukan/Keluaran yang ada. Contohnya: CLIWindowsPen-based (touch),
dan lain-lain.

Bab 6. Sudut Pandang Alternatif

6.1. Layanan Sistem Operasi
Layanan sistem operasi dirancang untuk membuat pemrograman menjadi lebih mudah.
1.     Pembuatan Program
2.     2. Eksekusi Program
3.     Operasi Masukan/Keluaran
4.     Manipulasi Sistem Berkas
5.     Komunikasi
6.     Deteksi Error
Disamping pelayanan di atas, sistem operasi juga menyediakan layanan lain. Layanan ini bukan
untuk membantu pengguna tapi lebih pada mempertahankan efisiensi sistem itu sendiri. Layanan
tambahan itu yaitu:
1.     Alokasi Sumber Daya
2.     Accounting
3.     3. Proteksi

6.2. System Program
System program menyediakan lingkungan yang memungkinkan pengembangan program dan
eksekusi berjalan dengan baik.
Dapat dikategorikan:
• Managemen/manipulasi berkas
Membuat, menghapus, copyrenameprint, memanipulasi berkas dan direktori.
• Informasi status
Beberapa program meminta informasi tentang tanggal, jam, jumlah memori dan disk yang
tersedia, jumlah pengguna dan informasi lain yang sejenis.
• Modifikasi berkas
Membuat berkas dan memodifikasi isi berkas yang disimpan pada disk atau tape.
• Pendukung bahasa pemrograman
Kadang kala compilerassemblerinterpreter dari bahasa pemrograman diberikan kepada
pengguna dengan bantuan sistem operasi.
• Loading dan eksekusi program
Ketika program di-assembly atau di-compile, program tersebut harus di-load ke dalam memori
untuk dieksekusi. Untuk itu sistem harus menyediakan absolute loadersrelocatable loaders,
linkage editors, dan overlay loaders.
• Komunikasi
Menyediakan mekanisme komunikasi antara proses, pengguna, dan sistem komputer yang
berbeda. Sehingga pengguna bisa mengirim pesan, browse web pages, mengirim e-mail, atau
mentransfer berkas.
Umumnya sistem operasi dilengkapi oleh system-utilities atau program aplikasi yang di dalamnya
termasuk web browserword prossesor dan format teks, sistem database, gamesSystem program
yang paling penting adalah command interpreter yang mengambil dan menerjemahkan
user-specified command selanjutnya.

6.3.  System Calls
Jenis System Calls
System calls yang berhubungan dengan kontrol proses antara lain ketika penghentian
pengeksekusian program. Baik secara normal (end) maupun tidak normal (abort). Selama proses
dieksekusi kadang kala diperlukan untuk me-load atau mengeksekusi program lain, disini
diperlukan lagi suatu system calls. Juga ketika membuat suatu proses baru dan menghentikan sebuah
proses. Ada juga system calls yang dipanggil ketika kita ingin meminta dan merubah atribut dari suatu proses.

6.4.  System Calls Managemen Proses
System Call untuk managemen proses diperlukan untuk mengatur proses-proses yang sedang
berjalan. Kita dapat melihat penggunaan system calls untuk managemen proses pada Sistem Operasi
Unix. Contoh yang paling baik untuk melihat bagaimana system call bekerja untuk managemen
proses adalah Fork. Fork adalah satu satunya cara untuk membuat sebuah proses baru pada sistem
Unix. Fork membuat duplikasi yang mirip dengan proses aslinya, termasuk file descriptor, register,dan lainnya.

6.5. System Calls Managemen Berkas
System calls yang berhubungan dengan berkas sangat diperlukan. Seperti ketika kita ingin membuat
atau menghapus suatu berkas. Atau ketika ingin membuka atau menutup suatu berkas yang telah
ada, membaca berkas tersebut, dan menulis berkas itu. System calls juga diperlukan ketika kita ingin
mengetahui atribut dari suatu berkas atau ketika kita juga ingin merubah atribut tersebut. Yang
termasuk atribut berkas adalah nama berkas, jenis berkas, dan lain-lain.

6.6. System Calls Managemen Peranti
Program yang sedang dijalankan kadang kala memerlukan tambahan sumber daya. Jika banyak
pengguna yang menggunakan sistem, maka jika memerlukan tambahan sumber daya maka harus
meminta peranti terlebih dahulu. Dan setelah selesai penggunakannnya harus dilepaskan kembali.
Ketika sebuah peranti telah diminta dan dialokasikan maka peranti tersebut bisa dibaca, ditulis, atau
direposisi.

6.7. System Calls Informasi Maintenance
Beberapa system calls disediakan untuk membantu pertukaran informasi antara pengguna dan sistem
operasi. Contohnya system calls untuk meminta dan mengatur waktu dan tanggal. Atau meminta
informasi tentang sistem itu sendiri, seperti jumlah pengguna, jumlah memori dan disk yang masih
bisa digunakan, dan lain-lain. Ada juga system calls untuk meminta informasi tentang proses yang
disimpan oleh sistem dan system calls untuk merubah (reset) informasi tersebut.

6.8. System Calls Komunikasi
Dua model komunikasi:
• Message-passing
Pertukaran informasi dilakukan melalui fasilitas komunikasi antar proses yang disediakan oleh
sistem operasi.
• Shared-memory
Proses menggunakan memori yang bisa digunakan oleh berbagai proses untuk pertukaran
informasi dengan membaca dan menulis data pada memori tersebut.

Bab 7. Struktur Sistem Operasi

7.1. Struktur Sederhana
Banyak sistem yang tidak terstruktur dengan baik, sehingga sistem operasi seperti ini dimulai
dengan sistem yang lebih kecil, sederhana, dan terbatas. Kemudian berkembang dengan cakupan
yang original. Contoh sistem seperti ini adalah MS-DOS, yang disusun untuk mendukung fungsi
yang banyak pada ruang yang sedikit karena keterbatasan perangkat keras untuk menjalankannya.

7.2. Pendekatan Berlapis
Sistem operasi dibagi menjadi sejumlah lapisan yang masing-masing dibangun diatas lapisan yang
lebih rendah. Lapisan yang lebih rendah menyediakan layanan untuk lapisan yang lebih tinggi.
Lapisan yang paling bawah adalah perangkat keras, dan yang paling tinggi adalah user-interface.

Salah satu kesulitan besar dalam sistem terlapis disebabkan karena sebuah lapisan hanya bisa
menggunakan lapisan-lapisan dibawahnya, misalnya: backing-store driver, normalnya diatas
penjadual CPU sedangkan pada sistem yang besar, penjadual CPU punya informasi tentang proses
yang aktif yang ada di memori. Oleh karena itu, info ini harus dimasukkan dan dikeluarkan dari
memori, sehingga membutuhkan backing-store driver dibawah penjadual CPU. Kesulitan lainnya
adalah paling tidak efisien dibandingkan tipe lain. Ketika pengguna mengeksekusi M/K, akan
mengeksekusi lapisan M/K, lapisan managemen memori, yang memanggil lapisan penjadual CPU.


7.3. Kernel-mikro
Metode ini menyusun sistem operasi dengan menghapus semua komponen yang tidak esensial dari
kernel, dan mengimplementasikannya sebagai program sistem dan level pengguna. Hasilnya kernel
yang lebih kecil. Pada umumnya mikrokernel mendukung proses dan menagemen memori yang
minimal, sebagai tambahan utnuk fasilitas komunikasi.
Fungsi utama mikrokernel adalah mendukung fasilitas komunikasi antara program klien dan
bermacam-macam layanan yang juga berjalan di user space. Komunikasi yang dilakukan secara
tidak langsung, didukung oleh sistem message passing, dengan bertukar pesan melalui mikrokernel.

7.4. Boot
Jika komputer dihidupkan, yang dikenal dengan nama booting, komputer akan menjalankan
bootstrap program yaitu sebuah program sederhana yang disimpan dalam ROM yang berbentuk
chip CMOS. (Complementary Metal Oxide Semiconductor). Chip CMOS modern biasanya bertipe
Electrically Erasable Programmable Read Only Memory (EEPROM), yaitu memori non-volatile
(tak terhapus jika power dimatikan) yang dapat ditulis dan dihapus dengan pulsa elektronik. Lalu
bootsrap program ini lebih dikenal sebagai BIOS (Basic Input Output System).
Bootstrap program utama, yang biasanya terletak pada motherboard akan memeriksa perangkat
keras utama dan melakukan inisialisasi terhadap program dalam hardware yang dikenal dengan
nama firmware.
Bootstrap program utama kemudian akan mencari dan meload kernel sistem operasi ke memori lalu
dilanjutkan dengan inisialisasi sistem operasi. Dari sini program sistem operasi akan menunggu
kejadian tertentu. Kejadian ini akan menentukan apa yang akan dilakukan sistem operasi berikutnya
(event-driven).


7.5. Tuning
Adalah mungkin untuk mendesign, mengkode, dan megimplementasikan sebuah sistem operasi
khusus untuk satu mesin di suatu site. Pada umumnya sistem operasi dibuat untuk berjalan pada
beberapa kelas mesin di berbagai site dan berbagai konfigurasi peripheral. Kemudian, sistem
dikonfigurasikan untuk masing-masing komputer, untuk site yang spesifik. Proses ini terkadang
disebut sebagai System Generation.

7.6. Kompail Kernel
Seperti yang telah diketahui, kernel adalah program yang dimuat pada saat boot yang berfungsi
sebagai interface antara user-level program dengan hardware. Secara teknis linux hanyalah sebuah
kernel. Pogram lain seperti editor, kompilator dan manager yang disertakan dalam paket (SuSE,
RedHat, Mandrake, dll.) hanyalah distribusi yang melengkapi kernel menjadi sebuah sistem operasi yang lengkap. Kernel membutuhkan konfigurasi agar dapat bekerja secara optimal.

7.7. Komputer Meja
Titik fokus perancangan sistem operasi jenis komputer meja agak berbeda dibadingkan dengan
sistem operasi "main-frame". Pertama, kinerja serta derajat kerumitan komponen perangkat keras
komputer meja jauh lebih sederhana (dan murah). Karena itu, "utilisasi" perangkat keras tidak lagi
menjadi masalah utama. Kedua, para pengguna komputer meja tidak selalu merupakan "pakar",
sehingga kemudahan penggunaan menjadi prioritas utama dalam perancangan sistem operasinya.
Ketiga, akibat dari butir kedua di atas, "keamanan" dan "perlindungan" kurang mendapatkan
perhatian. Dewasa ini (2005), "virus" dan "cacing" (worm) telah menjadi masalah utama yang
dihadapi para pengguna sistem operasi komputer meja tertentu.

7.8. Sistem Prosesor Jamak
Pada umumnya, setiap komputer dilengkapi dengan satu buah prosesor (CPU). Namun, dewasa ini
(2005) mulai umum, jika sebuat sistem komputer memiliki lebih dari satu prosesor (multi-procesor).
Terdapat dua jenis sistem prosesor jamak, yaitu Symmetric MultiProcessing (SMP) dan Asymmetric
MultiProcessing (ASMP). Dalam SMP setiap prosesor menjalankan salinan identik dari sistem
operasi dan banyak job yang dapat berjalan di suatu waktu tanpa pengurangan kinerja. Sementara itu
dalam ASMP setiap prosesor diberikan suatu tugas yang spesifik. Sebuah prosesor bertindak sebagai
Master processor yang bertugas menjadualkan dan mengalokasikan pekerjaan pada prosesor lain
yang disebut slave processors.

7.9. Sistem Terdistribusi dan Terkluster
Sistem terdistribusi merupakan kebalikan dari Sistem Operasi Prosesor Jamak. Pada sistem tersebut,
setiap prosesor memiliki memori lokal tersendiri. Kumpulan prosesornya saling berinteraksi melalui
saluran komunikasi seperti LAN dan WAN menggunakan protokol standar seperti TCP/IP. Karena
saling berkomunikasi, kumpulan prosesor tersebut mampu saling berbagi beban kerja, data, serta
sumber daya lainnya. Namun, keduanya berbagi keunggulan yang serupa seperti dibahas sebelum
ini.

7.10. Sistem Waktu Nyata
Sistem waktu nyata (Real Time Systems) ialah suatu sistem yang mengharuskan suatu komputasi
selesai dalam jangka waktu tertentu. Jika komputasi ternyata belum selesai maka sistem dianggap
gagal dalam melakukan tugasnya Sistem waktu nyata memiliki dua model dalam pelaksanaannya:
hard real time system dan soft real time system.

Hard real time system menjamin suatu proses yang paling penting dalam sistem akan selesai dalam
jangka waktu yang valid. Jaminan waktu yang ketat ini berdampak pada operasi dan perangkat keras
(hardware) yang mendukung sistem.

Soft real time system tidak memberlakukan aturan waktu seketat hard real time system. Namun,
sistem ini menjamin bahwa suatu proses terpenting selalu mendapat prioritas tertinggi untuk
diselesaikan diantara proses-proses lainnya. Sama halnya dengan hard real time system, berbagai
operasi dalam sistem tetap harus ada batas waktu maksimum.

Bab 8. Mesin Virtual Java

8.1. Konsep Mesin Virtual
Dasar logika dari konsep mesin virtual atau virtual machine adalah dengan menggunakan
pendekatan lapisan-lapisan (layers) dari sistem komputer. Sistem komputer dibangun atas
lapisan-lapisan. Urutan lapisannya mulai dari lapisan terendah sampai lapisan teratas adalah sebagai
berikut:
• Perangkat keras
• Kernel
• Sistem program
Kernel, yang berada pada lapisan kedua, menggunakan instruksi perangkat keras untuk menciptakan
seperangkat system call yang dapat digunakan oleh komponen-komponen pada level sistem
program. Sistem program kemudian dapat menggunakan system call dan perangkat keras
seolah-olah pada level yang sama. Meski sistem program berada di level tertinggi, namun program
aplikasi bisa melihat segala sesuatu di bawahnya (pada tingkatan) seakan-akan mereka adalah
bagian dari mesin. Pendekatan dengan lapisan-lapisan inilah yang kemudian menjadi kesimpulan
logis pada konsep mesin virtual atau virtual machine (VM).

Kelemahan Mesin Virtual
Kesulitan utama dari konsep VM adalah dalam hal sistem penyimpanan dan pengimplementasian\

Keunggulan Mesin Virtual
Pertama, dalam hal hal keamanan, VM memiliki perlindungan yang lengkap pada berbagai sistem
sumber daya, yaitu dengan meniadakan pembagian resources secara langsung, sehingga tidak ada
masalah proteksi dalam VM.

Kedua, dimungkinkan untuk mendefinisikan suatu jaringan dari mesin virtual, di mana tiap-tiap
bagian mengirim informasi melalui jaringan komunikasi virtual.

8.2. Konsep Bahasa Java
Sistem Operasi JavaOS
JavaOS adalah satu-satunya sistem yang mencoba untuk mengimplementasi fungsi sistem operasi
dalam bahasa Java secara lengkap. JavaOS mengimplementasi platform Java agar dapat
menjalankan aplikasi atau applet yang mengakses fasilitas dari beberapa objek. Selain itu, JavaOs juga mengimplementasikan JVM dan lapisan fungsionalitas untuk windowing, jaringan, dan sistem
berkas tanpa membutuhkan dukungan dari sistem operasi lokal. JavaOS mendefinisikan platform
seperti halnya CPU, memori, bus, dan perangkat keras lainnya. Platform independen dari sistem
operasinya disebut JavaOS runtime, sedangkan bagian platform yang non-independen dari sistem
operasinya disebut JavaOS kernel.

Kelemahan sistem operasi berbasis bahasa pemrograman
Salah satu kesulitan dalam mendesain sistem berbasis bahasa pemrograman adalah menyangkut
masalah proteksi, khususnya proteksi memori. Sistem operasi tradisional menyandarkan pada fitur
perangkat keras untuk menyediakan proteksi memori. Sistem berbasis bahasa pemrograman sendiri
memiliki ketergantungan pada fitur type-safety dari bahasa pemrograman tersebut untuk
mengimplementasikan proteksi memori. Hasilnya, sistem berbasis bahasa pemrograman
memerlukan perangkat keras yang mampu menutupi kekurangan dalam hal fitur proteksi memori.

Bab 9. Sistem GNU/Linux
Linux adalah sebuah sistem operasi yang sangat mirip dengan sistem-sistem UNIX, karena memang
tujuan utama rancangan dari proyek Linux adalah UNIX compatible. Sejarah Linux dimulai pada
tahun 1991, ketika mahasiswa Universitas Helsinki, Finlandia bernama Linus Benedict Torvalds
menulis Linux, sebuah kernel untuk prosesor 80386, prosesor 32-bit pertama dalam kumpulan CPU
intel yang cocok untuk PC.

Linux adalah sebuah sistem operasi yang sangat mirip dengan sistem-sistem UNIX, karena memang
tujuan utama desain dari proyek Linux adalah UNIX compatible. Sejarah Linux dimulai pada tahun
1991, ketika mahasiswa Universitas Helsinki, Finlandia bernama Linus Benedict Torvalds menulis
Linux, sebuah kernel untuk prosesor 80386, prosesor 32-bit pertama dalam kumpulan CPU intel
yang cocok untuk PC. Dalam rancangan keseluruhan, Linux menyerupai implementasi UNIX
nonmicrokernel yang lain. Ia adalah sistem yang multiuser, multitasking dengan seperangkat
lengkap alat-alat yang compatible dengan UNIX. Sistem berkas Linux mengikuti semantik
tradisional UNIX, dan model jaringan standar UNIX diimplementasikan secara keseluruhan. Ciri
internal desain Linux telahdipengaruhi oleh sejarah perkembangan sistem operasi ini.
Kernel Linux terdistribusi di bawah Lisensi Publik Umum GNU (GPL), di mana peraturannya
disusun oleh Free Software Foundation (FSF). Implikasi utama terhadap peraturan ini adalah bahwa
siapa saja boleh menggunakan Linux atau membuat modifikasi, namun tidak boleh membuatnya
menjadi milik sendiri.
Perkembangan sistem operasi Linux sangat cepat karena didukung pengembang di seluruh dunia
yang akan selalu memperbaiki segala fiturnya. Di negara-negara berkembang, Linux mengalami
kemajuan yang sangat pesat karena dengan menggunakan Linux mereka dapat menghemat
anggaran. Linux juga telah diterapkan pada supercomputer.
Prinsip rancangan Linux merujuk pada implementasi agar kompatibel dengan UNIX yang
merupakan sistem multiuser dan multitasking. Sistem Linux terdiri dari tiga bagian penting, yaitu
kernel, perpustakaan, dan utilitas. Kernel merupakan inti dari sistem operasi Linux. Perpustakaan
sistem Linux menyediakan berbagai fungsi yang diperlukan untuk menjalankan aplikasi UNIX atau
POSIX.
Modul kernel Linux adalah bagian dari kernel Linux yang dapat dikompilasi, dipanggil dan dihapus
secara terpisah dari bagian kernel lainnya. Terdapat tiga komponen yang menunjang kernel Linux,
di antaranya adalah Manajemen Modul Kernel Linux, Registrasi Driver, dan Resolusi Konflik.

Bagian III. Proses dan
Penjadualan

Bab 10. Konsep Proses

10.1. Definisi Proses
Secara tidak langsung, proses merupakan program yang sedang dieksekusi. Menurut Silberschatz,
suatu proses adalah lebih dari sebuah kode program, yang terkadang disebut text section. Proses
juga mencakup program counter, yaitu sebuah stack untuk menyimpan 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.

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

10.3. Terminasi Proses
Suatu proses diterminasi ketika proses tsb telah selesai mengeksekusi statement terakhir dan
meminta sistem operasi untuk menghapus statement tsb dengan menggunakan system call exit. Pada
saat itu, proses dapat mengembalikan data (output) kepada proses parent-nya (melalui system call
wait). Semua resource yang digunakan oleh proses akan dialokasikan kembali ke tempat asalnya
oleh sistem operasi.
Suatu proses dapat menyebabkan terminasi proses lain melalui system call abort. Biasanya hanya
parent dari proses yang akan diterminasi yang dapat menjalankan system call abort ini. Parent
sebaiknya mengetahui identitas dari children-nya. Pada saat suatu proses menciptakan sebuah proses
baru, identitas dari proses yang baru diciptakan ini diperoleh dari parent-nya.

10.4. Status Proses
Bila sebuah proses dieksekusi, maka statusnya akan berubah-ubah. Status dari sebuah proses
mencerminkan aktivitas 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 karena 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.5. Process Control Block
Tiap proses digambarkan dalam sistem operasi oleh sebuah process control block (PCB) - juga
disebut sebuah control block. Sebuah PCB ditunjukkan dalam Gambar 10.1, “Process Control
Block”. PCB berisikan banyak bagian dari informasi yang berhubungan dengan sebuah proses yang
Spesifik


Bab 11. Konsep Thread
Thread adalah sebuah alur kontrol dari sebuah proses. Suatu proses yang multithreaded
mengandung beberapa perbedaan alur kontrol dengan ruang alamat yang sama. Keuntungan dari
multithreaded meliputi peningkatan respon dari pengguna, pembagian sumber daya proses,
ekonomis, dan kemampuan untuk mengambil keuntungan dari arsitektur multiprosesor. Thread
tingkat pengguna adalah thread yang tampak oleh programer dan tidak diketahui oleh kernel. Thread
tingkat pengguna secara tipikal dikelola oleh sebuah library thread di ruang pengguna. Thread
tingkat kernel didukung dan dikelola oleh kernel sistem operasi. Secara umum, thread tingkat
pengguna lebih cepat dalam pembuatan dan pengelolaan dari pada kernel thread. Ada 3 perbedaan
tipe dari model yang berhubungan dengan pengguna dan kernel thread yaitu one-to one model,
many-to-one model, many-to-many model.
• Model many to one: memetakan beberapa pengguna level thread hanya ke satu buah kernel
thread.
• Model one to one: memetakan setiap thread pengguna ke dalam satu kernel thread berakhir.
• Model many to many: mengijinkan pengembang untuk membuat thread pengguna sebanyak
mungkin, konkurensi tidak dapat tercapai karena hanya satu thread yang dapat dijadualkan oleh
kernel dalam satu waktu.
Thread cancellation adalah tugas untuk memberhentikan thread sebelum ia menyelesaikan
tugasnya. Thread yang akan diberhentikan disebut target thread
Pemberhentian target thread dapat terjadi melalui 2 cara yang berbeda
• Asynchronous cancellation: suatu thread seketika itu juga memberhentikan target thread.
• Deffered cancellation: target thread secara periodik memeriksa apakah dia harus berhenti, cara
ini memperbolehkan target thread untuk memberhentikan dirinya sendiri secara terurut.
Thread Pools adalah cara kerja dengan membuat beberapa thread pada proses startup dan
menempatkan mereka ke pools.
Keuntungan Thread Pools
• Biasanya lebih cepat untuk melayani permintaan dengan thread yang ada dibanding dengan
menunggu thread baru dibuat.
• Thread pool membatasi jumlah thread yang ada pada suatu waktu. Hal ini penting pada sistem
yang tidak dapat mendukung banyak thread yang berjalan secara concurrent


Bab 12. Thread Java
Thread di Linux dianggap sebagai taskSystem call yang dipakai antara lain fork dan clone.
Perbedaan antara keduanya adalah clone selain dapat membuat duplikat dari proses induknya seperti
fork, juga dapat berbagi ruang alamat yang sama antara proses induk dengan proses anak. Seberapa
besar kedua proses tersebut dapat berbagi tergantung banyaknya flag yang ditandai.
Java adalah unik karena telah mendukung thread didalam tingkatan bahasanya. Semua program
Java sedikitnya terdiri dari kontrol sebuah thread tunggal dan mempermudah membuat kontrol
untuk multiple thread dengan program yang sama. JAVA juga menyediakan library berupa API
untuk membuat thread, termasuk method untuk suspend dan resume suatu thread, agar thread tidur
untuk jangka waktu tertentu dan menghentikan thread yang berjalan. Sebuah java thread juga
mempunyai empat kemungkinan keadaan, diantaranya: NewRunnableBlocked dan Dead.
Perbedaan API untuk mengelola thread seringkali mengganti keadaan thread itu sendiri.




Bab 13. Konsep Penjadualan
Multiprogramming bertujuan untuk memaksimalkan penggunaan CPU dengan cara mengatur
alokasi waktu yang digunakan oleh CPU, sehingga proses berjalan sepanjang waktu dan
memperkecil waktu idle. Untuk sistem yang bersifat prosesor tunggal (uniprosesor), hanya ada satu
proses yang dapat berjalan setiap waktunya. Jika proses yang ada lebih dari satu, maka proses yang
lain harus menunggu sampai CPU bebas dan siap untuk dijadualkan kembali.

13.1. Queue Scheduling
Ketika sebuah proses memasuki sistem, proses itu diletakkan di dalam job queue. Pada antrian ini
terdapat seluruh proses yang berada dalam sistem. Sedangkan proses yang berada pada memori
utama, siap dan menunggu untuk mengeksekusi disimpan dalam sebuah daftar yang bernama ready
queue. Antrian ini biasanya disimpan sebagai linked listHeader dari ready queue berisi pointer
untuk PCB pertama dan PCB terakhir pada list. Setiap PCB memiliki pointer field yang menunjuk
kepada PCB untuk proses selanjutnya dalam ready queue.

13.2. Scheduler
Sebuah proses berpindah-pindah di antara berbagai penjadualan antrian seumur hidupnya. Sistem
operasi harus memilih dan memproses antrian-antrian ini berdasarkan kategorinya dengan cara
tertentu. Oleh karena itu, proses seleksi ini harus dilakukan oleh scheduler yang tepat.
Dalam sistem batch, seringkali proses yang diserahkan lebih banyak daripada yang dapat
dilaksanakan dengan segera. Proses-proses ini disimpan pada suatu mass-storage device (disk),
dimana proses tersebut disimpan untuk eksekusi di lain waktu. Long-term scheduler, atau job
scheduler, memilih proses dari tempat ini dan mengisinya ke dalam memori. Sedangkan short-term
scheduler, atau CPU scheduler, hanya memilih proses yang sudah siap untuk melakukan eksekusi,
dan mengalokasikan CPU untuk proses tersebut.

13.3. Context Switch
Mengganti CPU ke proses lain memerlukan penyimpanan keadaan dari proses lama dan mengambil
keadaan dari proses yang baru. Hal ini dikenal dengan sebutan context switchContext switch
sebuah proses direpresentasikan dalam PCB dari suatu proses; termasuk nilai dari CPU register,
status proses (dapat dilihat pada Gambar 13.4, “Context Switch”) dan informasi managemen
memori. Ketika context switch terjadi, kernel menyimpan data dari proses lama ke dalam PCB nya
dan mengambil data dari proses baru yang telah terjadual untuk berjalan. Waktu context switch
adalah murni overhead, karena sistem melakukan pekerjaan yang tidak begitu berarti selama
melakukan pengalihan. Kecepatannya bervariasi dari mesin ke mesin, bergantung pada kecepatan
memori, jumlah register yang harus di-copy, dan ada tidaknya instruksi khusus (seperti instruksi
tunggal untuk mengisi atau menyimpan seluruh register). Tingkat kecepatan umumnya berkisar
antara 1 sampai 1000 mikro detik.

Bab 14. Penjadual CPU
Penjadualan adalah fungsi dasar dari suatu sistem operasi. Hampir semua sumber komputer
dijadualkan sebelum digunakan. CPU salah satu sumber dari komputer yang penting yang menjadi
sentral dari sentral penjadualan di sistem operasi.

Penjadualan CPU adalah pemilihan proses dari antrian ready untuk dapat dieksekusi. Algoritma
yang digunakan dalam penjadulan CPU ada bermacam-macam. Diantaranya adalah First Come
First Serve (FCFS), merupakan algoritma sederhana dimana proses yang datang duluan maka dia
yang dieksekusi pertama kalinya. Algoritma lainnya adalah Shorthest Job First (SJF), yaitu
penjadulan CPU dimana proses yang paling pendek dieksekusi terlebih dahulu.
Kelemahan algoritma SJF adalah tidak dapat menghindari starvation. Untuk itu diciptakan algoritma
Round Robin (RR). Penjadulan CPU dengan Round Robin adalah membagi proses berdasarkan
waktu tertentu yaitu waktu quantum q. Setelah proses menjalankan eksekusi selama q satuan waktu
maka akan digantikan oleh proses yang lain. Permasalahannya adalah bila waktu quantumnya besar
sedang proses hanya membutuhkan waktu sedikit maka akan membuang waktu. Sedang bila waktu
quantum kecil maka akan memakan waktu saat context-switch.
Penjadualan FCFS adalah nonpreemptive yaitu tidak dapat diinterupsi sebelum proses dieksekusi
seluruhnya. Penjadualan RR adalah preemtive yaitu dapat dieksekusi saat prosesnya masih
dieksekusi. Sedangkan penjadualan SJF dapat berupa nonpreemtive dan preemtive.

Bab 15.Algoritma Penjadualan I
Algoritma diperlukan untuk mengatur giliran proses-proses diready queue yang mengantri untuk
dialokasikan ke CPU. Terdapat berbagai macam algoritma,antara lain:
• First come first serve
Algoritma ini mendahulukan proses yang lebih dulu datang. Kelemahannya,waiting time
rata-rata cukup lama.
• Shortest job first
Algoritma ini mendahulukan proses dengan CPU burst terkecil yang akan mengurangi waiting
time rata-rata.
• Priority
Algoritma ini mendahulukan prioritas terbesar. Kelemahannya, prioritas kecil tidak mendapat
jatah CPU. Hal ini dapat diatasi dengan aging,yaitu semakin lama menunggu,prioritas semakin
tinggi.
• Round Robin
Algoritma ini menggilir proses-proses yang ada diantrian dengan jatah time quantum yang sama.
Jika waktu habis,CPU dialokasikan keproses selanjutnya.
• Multilevel Queue
Algoritma ini membagi beberapa antrian yang akan diberi prioritas berdasarkan tingkatan.
Tingkatan lebih tinggi menjadi prioritas utama.
• Multilevel Feedback Queue
Pada dasarnya sama dengan Multilevel Queue,bedanya pada algoritma ini diizinkan untuk
pindah antrian.

Bab 16. Algoritma Penjadualan II
Sistem hard real-time biasa digunakan menyelesaikan critical task dengan jaminan waktu tertentu.
Jika kebutuhan waktu tidak terpenuhi, maka aplikasi akan gagal. Sistem operasi menggunakan
mekanisme resource reservation untuk menerima atau menolak suatu permintaan proses.
Sistem soft real-time memiliki kelonggaran waktu dibandingkan sistem hard real-time. Sistem soft
real-time dapat mengakibatkan delay yang lebih lama atau dapat menyebabkan terjadinya starvation.

Bab 17. Managemen Proses Linux
Kernel Linux mengawasi dan mengatur proses berdasarkan nomor process identification number
(PID), sedangkan informasi tentang setiap proses disimpan pada deskriptor proses. Deskriptor
proses merupakan struktur data yang memiliki beberapa status, yaitu: TASK_RUNNING,
TASK_INTERRUPTIBLE, TASK_UNINTERRUPTIBLE, TASK_STOPPED, dan
TASK_ZOMBIE.
Linux menyediakan dua system call, yaitu fork dan clone. Fork memiliki fungsi untuk menduplikasi
proses di mana proses anak yang dihasilkan bersifat independen. Sedangkan fungsi clone, selain
menduplikasi dari proses induk, juga mengizinkan terjadinya proses berbagi ruang alamat antara
proses anak dengan proses induk.
Sinkronisasi kernel Linux dilakukan dengan dua solusi, yaitu:
• Dengan membuat normal kernel yang bersifat code nonpreemptible. Akan muncul salah satu
dari tiga aksi, yaitu: interupsi, page fault, atau kernel code memanggil penjadualannya sendiri.
• Dengan meniadakan interupsi pada saat critical section muncul.
Penjadualan proses Linux dilakukan dengan menggunakan teknik prioritas, sebuah alogritma yang
berdasarkan pada kupon, dengan aturan bahwa setiap proses akan memiliki kupon, di mana pada
suatu saat kupon akan habis dan mengakibatkan tertundanya proses tersebut.





No comments:

Post a Comment