Rabu, 26 Desember 2012

Materi Sistem Operasi


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