Top Banner
MATERI SISTEM OPERASI MODUL 1 A. Kategori Program Komputer Program komputer dibagi menjadi dua (2) kategori : Program system berfungsi mengatur operasi dari komputer itu sendiri. Program aplikasi berfungsi membantu menyelesaikan masalah untuk user. B. Blok Diagram Komputer Yang paling penting dari semua program system adalah operating system (OS) yang mengontrol semua sumber daya komputer dan menyediakan landasan sehingga program aplikasi dapat ditulis atau dijalankan. C. Komponen Sistem Komputer D. Pengertian Sistem Operasi
19

Materi Sistem Operasi

Nov 12, 2015

Download

Documents

Kuraesin Eci

Rangkuman dari modul :)
Welcome message from author
This document is posted to help you gain knowledge. Please leave a comment to let me know what you think about it! Share it to your friends and learn new things together.
Transcript

MATERI SISTEM OPERASIMODUL 1A. Kategori Program Komputer

Program komputer dibagi menjadi dua (2) kategori : Program system berfungsi mengatur operasi dari komputer itu sendiri. Program aplikasi berfungsi membantu menyelesaikan masalah untuk user.

B. Blok Diagram Komputer

Yang paling penting dari semua program system adalah operating system (OS) yang mengontrol semua sumber daya komputer dan menyediakan landasan sehingga program aplikasi dapat ditulis atau dijalankan.

C. Komponen Sistem Komputer

D. Pengertian Sistem Operasi

Seperangkat program yang mengatur pemakaian sumber daya komputer (processor, i/o device dsb) Penghubung antar user (program user) dengan hardware.

E. Fungsi OS

Sebagai resource manager komputer Mengefisienkan penggunaan sumber daya komputer Tugas utama : Memonitor penggunaan all resource Menerapkan aturan Mengalokasikan resource Dealokasi resource Sebagai extended machine (virtual machine) penyedia layanan Menyembunyikan kerumitan pemrograman hardware Menyajikan fasilitas yang mudah dan sederhana untuk menggunakan hardware

F. Konsep OS

Proses -> program yang sedang di eksekusi. Terdiri dari : executable program, program data dan stack, program counter dsb. Pada system timesharing secara periodic OS menggilir eksekusi proses yang ada (berdasarkan porsi waktu CPU). Ketika proses dihentikan sementara, proses tersebut harus dimulai kembali pada state yang sama dengan state ketika dihentikan. System call utama dalam pengaturan proses adalah yang berkaitan dengan pembuatan dan pemberhentian suatu proses. Files Terdiri dari : pathname, working directory, rwx (read, write, execute), bits protection code, file handle, special file (block and character), standard output, standard error, pipe, OS mendukung konsep direktori. Model struktur file :

System Calls / API (Application Programming Interface) Set tata cara pemanggilan di program aplikasi u/ memperoleh layanan OS. Berupa extended instruction yang merupakan interface antara program dengan OS. Dapat mengcreate, delete dan menggunakan objek yang diatur oleh OS seperti proses dan file. Library procedure meletakkan parameter system call pada tempat tertentu dan memberi instruksi trap untuk mulai OS. Trap instruksi (ketika diterima OS,system memeriksa apakah parameter valid atau tidak. Return form trap (OS mengembalikan kontrol ke library procedure).

MANAJEMEN PROSESA. Konsep Dasar

Multiprogramming (Melakukan proses satu per satu secara bergantian dalam waktu bersamaan (hardware level). Setiap proses memiliki 1 virtual CPU). Pseudoparallelism (Melakukan lebih dari satu pekerjaan dalam waktu bersamaan (user level)).

B. Model Proses

Sequential process (bergantian) Multiprogramming CPU Switching (peralihan prosedur dalam mengolah 1 proses ke proses lain).

Secara konsep proses memiliki 1 virtual CPU, kenyataannya multiprogramming. Jadi anggaplah kumpulan proses berjalan secara parallel.

C. Hirarki Proses

Create and destroy process Fork System Call (Mekanisme create proses identik dengan proses yang memanggil) Contoh : pada unix parent and child proses running secara parallel , sedangkan DOS parent and child proses secara sequential. (DOS sbg parent and software sbg child). Terdapat 3 keadaan proses : Running / kerja (benar menggunakan CPU (sedang mengeksekusi instruksi proses)). Blocked / terhenti (tidak berjalan sampai kegiatan eksternal terlaksana (proses menunggu kejadian u/ melengkapi tugas)). Proses menunggu (selesai operasi perangkat I/O, tersedia memori dan tibanya pesan jawaban) Ready / siap (proses siapdikerjakan tapi menunggu giliran dengan proses lain yang sedang dikerjakan).

D. Implementasi Proses

OS menggunakan suatu table atau array (table proses dengan 1 entry per proses) Setiap entry berisi status proses, program counter, stack pointer, alokasi memori, status file, information schedulling dsb dari status kerja ke status siap.

Interupsi : Kerja prosesor pada suatu proses terhenti oleh pensaklaran konteks. Cara Interupsi1. Interupsi LangsungBerasal dari luar prosesor (peripheral / alat mengirim sinyal kepada prosesor untuk meminta pelayanan)

2. Interupsi Tanya / pollingBerasal dari prosesor (prosesor secara bergiliran mengecek apakah ada peripheral yang memerlukan pelayanan atau tidak)

Langkah yang dilakukan OS saat terjadi interupsi1. hardware memasukkan program counter dll2. memasukkan ke dalam stack pencacah program3. Hardware memuatkan (load) program counter baru dari vector interrupsi 4. Prosedur bahasa rakitan menyimpan isi register 5. Prosedur bahasa rakitan men-set stack yang baru 6. Prosedur C menandai proses servis siap (ready)7. Scheduler / penjadwalan menentukan proses mana yang akan jalan berikutnya 8. Prosedur C kembali ke modus bahasa rakitan 9. Prosedur bahasa rakitan memulai proses yang sedang dilaksanakan.

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.

E. Komunikasi Antar Proses

Contoh pada shell pipe line : output dari proses pertama harus diberikan pada proses kedua dan seterusnya. Pada beberapa OS, proses yang bekerja bersama sering sharing media penyimpanan. Dimana suatu proses dapat membaca dan menulis pada shared storage (main memory or files).

F. Masalah Pada IPC

Race condition : Kondisi dimanadua atau lebih proses mengakses shared memory / data saat bersamaan dan hasil akhir tidak sesuai dengan yang diinginkan. Contoh : print spooler (kumpulan data yang akan dicetak), spooler directory. Critical section : Bagian dari program yang mengakses shared memory yang bisa menyebabkan terjadi race condition. 4 kondisi untuk mencegah race condition : Tidak ada 2 proses yang memasuki critical section secara bersamaan Tidak ada asumsi yang dibuat yang berhubungan dengan kecepatan dan jumlah CPU Tidak ada proses yang berjalan diluar critical section-nya yang bisa memblokir proses lain Tidak ada proses yang menunggu selamanya untuk masuk ke critical section. Mutual exclusion (Mutex) with busy waiting : Jika suatu proses sedang mengakses shared memory di critical section, tidak ada satu proses pun yang bisa memasuki critical section (mutual exclusion) dan menyebabkan masalah.

G. Jenis Mutual Exclusion

Disabling interrupt (mematikan interupsi) Mematikan interupsi yang masuk saat proses sedang berada pada critical section-nya. Lock Variables Setiap proses yang akan mengakses critical section harus meng-clock variable. Jika 0, proses dapat memasuki critical section dan jika 1, proses harus menunggu sampai lock variable = 0. 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. Petersons solution Proses tidak akan diteruskan sampai while terpenuhi, bila interested[other] = TRUE, maka proses akan menunggu sampai FALSE. Test and set lock instruction / instruksi TSL Dengan bantuan hardware, menentukan siapa yang berhak memasuki critical_region (section) 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. Semaphore 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 Event counters Tiga operasi terhadap event counter (E) : Read (E) : return current value of E Advance (E) : Atomically increment E by 1 Wait until E has a value of v or more 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.

Message passing Menggunakan 2 primitive : send (destination, &message) receive (source, &message) Beberapa isu pada message passing system : message lost; acknowledgement; domains; authentication; performance

H. 3 Model Proccess Pada Server

thread di ciptakan untuk dapat melakukan paralelisme yang dikombinasikan dengan eksekusi sekuensial dan blocking system calls single treads server, menggunakan blocking system calls, tetapi kinerja sistem tidak baik finite-state machine, kinerja baik dengan melakukan parallelisme, tetapi menggunakan nonblocking calls, sehingga sulit dalam memprogram

I. Status Proses Terhadap Prosessor

TEKNIK PENJADWALAN PROSESORA. Istilah

Pekerjaan / job -> user menyerahkan pekerjaan (panjang, sedang, pendek) pada komputer untuk diolah oleh komputer (analisis untuk mengetahui bagaimana sebaiknya pekerjaan dilakukan) Terobosan / troughput -> pekerjaan yang dilakukan langkah demi langkah sehingga banyak pekerjaan yang dapat diselesaikan oleh system komputer dalam satu satuan waktu. Tugas / task -> program yang terdiri dari banyak bagian program yang dikerjakan merupakan tugas bagi OS. Terbagi menjadi : Tugas sedang dilaksanakan (tugas yang menemukan semua resource termasuk prosessor) Tugas siap dilaksanakan (tugas yang menemukan semua resource yang diperlukan kecuali prosesor) Tugas belum dilaksanakan (tugas yang belum menemukan resource yang diperlukan. Proses -> tugas yang telah dijadwalkan untuk menemukan prosessor (tugas yang telah diterima oleh penjadwalan.

B. Gambar prosessor

C. 2 siklus kerja prosessor

Siklus Jemput PT berisi alamat awal program pada memori kerja yang disesuaikan dengan isinya di memori kerja RA = PT, alamat memori PT diteruskan ke RA RA RD, isi program diambil dari memori kerja dan diletakkan di RD RI = RD, dari RD program diteruskan ke RI PT= PT + 1, pencacah untuk melanjutkan siklus berikutnya Go to point b Siklus Kerja RI = SK, isi program di RI akan diteruskan ke SK, RI berisi instruksi untuk melaksanakan sesuatu SK seluruh kegiatan di dalam prosesor dikendalikan sehingga kerja yang dimaksud oleh bagian program itu dirampungkan.

D. 2 jenis kerja / proses

Tugas / proses system, berasal dari program system yaitu dari system bahasa, utilitas, operasi, dimana prosesor melayani system (prosesor dikuasai system / konteks system) Tugas / proses aplikasi, berasal dari program aplikasi, dimana prosesor melayani aplikasi (prosesor dikuasai aplikasi / kontek aplikasi)

E. Proses serentak

Multiprogramming, sistem komputer lebih dari 1 program sekaligus dalam pelaksanaan proses. Multitasking, banyak bagian program yang dipersiapkan untuk diolah oleh prosesor namun belum sempat dijadwalkan untuk memperoleh prosesor. Multiprocessing, sejumlah tugas yang telah dijadwalkan untuk menggunakan prosesor. Multiplexing, menggunakan pertukaran kendali dalam selang waktu terpisah-pisah. 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.

F. Proses berurutan Proses yang berlangsung secara berselingan dan diantara mereka tidak ada yang bertumpang tindih waktu sebelum 1 proses selesai, proses berikutnya belum bekerja.

G. Proses parallel

Proses tunggal, proses yang dilakukan serentak bukan parallel karna proses ini sepenggal demi sepenggal. Proses jamak, proses yang dilakukan serempak diantara banyak prosessor sehingga disebut proses parallel

H. Proses serentak berpenggalan

Ada 1 proses berselingan dengan penggalan dari proses lain Ada penggalan dari proses pertama yang bertumpang tindih waktu dengan penggalan proses kedua.

MODUL 2TOPIC : THREAD

A. Thread

Program yang dieksekusi : Proses berat (heavy weight) -> proses tradisional Proses ringan (light weight) -> thread Terdiri dari ID thread, program counter, himpunan register dan stack. Bisa melakukan lebih dari satu pekerjaan pada waktu yang sama.

B. Keuntungan

Tanggap Resource sharing Economics Pemberdayaan arsitektur multiprocessor

C. User thread

Pengelolaan thread dilakukan oleh user level. Contoh : Posic P-Threads, Mach C-Threads, Solaris threads.

D. Kernel thread

Didukung oleh kernel. Contoh : windows 95/98/NT/2000, Solaris, Tru64 Unix, BeOS, Linux.

E. Model multithreading

Many To One Beberapa thread user level dipetakan dalam single kernel thread Penggunaannya pada system tidak memerlukan dukungan kernel thread

One To One Setiap user level thread dipetakan ke kernel thread. Contoh : windows 95/98/NT/2000, OS/2

Many To Many

Mengizinkan setiap user level thread dipetakan ke banyak kernel thread Mengizinkan OS membuat sejumlah kernel thread. Contoh : Windows NT/2000 dengan paket thread fiber, solaris 2

F. Isu threading

Semantik dari fork() dan exec() system calls. Pembatalan thread. Penanganan signal Pengelompokan thread Thread untuk data spesifik

G. Pthreads

Suatu POSIX standard (IEEE 1003.1c) API untuk pembuatan thread dan sinkronisasi synchronization. API menentukan perlakuan terhadap thread library, dan implementasi pembangunan library. Ditemui pada sistem operasi UNIX.

H. Windows 2000 threads

Implementasi menggunakan pemetaan one-to-one Setiap thread terdiri dari :1. thread id2. register set3. pembagian user dan kernel stacks4. private data storage area

I. Linux threads

Linux lebih mengacu pada tasks dibandingkan threads. Pembuatan thread dilakukan menggunakan sistem clone() system call. Clone() membolehkan child task untuk berbagi ruang alamat pada parent task (proses)

J. Java Threads

Java threads dibuat melalui : Extending Thread class Implementasi Runnable interface Java threads dikelola oleh JVM.

MODUL 3TOPIC : PENJADWALAN CPU

A. Konsep dasar

Memaksimalkan kinerja CPU melalui multiprogramming CPU, I/O burst cycle, eksekusi proses terdiri dari siklus eksekusi CPU dan I/O wait. Pendistribusian CPU burst.

Penjadwalan CPU

Algoritma schedulling (memilih dari proses yang berada di memori (ready to execute) dan member jatah CPU ke salah satu proses itu). Keputusan untuk algoritma dilakukan ketika : Saat suatu proses :1. Switch dari status running ke waiting (non-preemptive)2. Switch dari status running ke ready (preemptive)3. Switch dari status waiting ke ready (preemptive)4. Terminates (non-preemptive)

Jenis Penjadwalan

Preemptive (OS dapat mengambil (secara interrupt, preempt) CPU dari 1 proses setiap saat. Non preemptive (setiap proses secara sukarela member CPU ke OS. Contoh :1. Penjadwalan u/ switch dari running ke wait atau terminate : non preemptive2. Penjadwalan proses dari running ke ready : preemptive. (prasyarat u/ OS real time sharing).Dispatcher Modul dispatcher (mengatur dan member kontrol CPU pada proses yang dipilih oleh short term scheduler. Contoh : switching context, switching ke user mode, melompat ke lokasi yang lebih tepat dari user program u/ mulai kembali program) Dispatcher latency (terdapat waktu yang terbuang, dimana dispatcher menghentikan satu proses dan menjalankan proses lain. Contoh : save (proses lama) dan restore (proses baru))

B. Criteria penjadwalan

Memaksimumkan Utilisasi CPU (menjadikan CPU terus menerus sibuk (menggunakan CPU maksimal)) Memaksimumkan Throughput (memaksimalkan jumlah proses yang selesai dijalankan (per satuan waktu)) Meminimumkan Turn around time (minimal waktu selesai eksekusi suatu proses (sejak di submit hingga selesai)) Meminimumkan Waiting time (jumlah waktu yang dihabiskan u/ menunggu di ready queue) Meminimumkan Response time (minimalkan waktu response dari system terhadap user)

C. Algoritma penjadwalan

First come first served (FCFS) Algoritma: Proses yang request CPU pertama kali akan mendapatkan jatah CPU. Sederhana algoritma maupun struktur data: menggunakan FIFO queue (ready queue). FIFO: Non preemptive Timbul masalah waiting time terlalu lama jika didahului oleh proses yang waktu selesainya lama.1. Tidak cocok untuk time-sharing systems.2. Digunakan pada OS dengan orientasi batch job.

Shortest job first (SJF)

Penggabungan setiap proses merupakan panjang dari burst CPU berikutnya. Panjang tersebut digunakan untuk penjadualan proses pada waktu terpendek Terdapat 2 skema : Non-preemptive > CPU hanya satu kali diberikan pada suatu proses, maka proses tersebut tetap akan memakai CPU hingga proses tersebut melepaskannya preemptive > jika suatu proses tiba dengan panjang CPU burst lebih kecil dari waktu yang tersisa pada ekseksusi proses yang sedang berlangsung, maka dijalankan preemtive. Skema ini dikenal dengan Shortest-Remaining-Time-First (SRTF). SJF akan optimal, keteika rata-rata waktu tunggu minimum untuk set proses yang diberikan

Priority

Algoritma: Setiap proses akan mempunyai prioritas (bilangan integer). CPU diberikan ke proses dengan prioritas tertinggi (smallest integer highest priority). Preemptive: proses dapat di interupsi jika terdapat prioritas lebih tinggi yang memerlukan CPU. Nonpreemptive: proses dengan prioritas tinggi akan mengganti pada saat pemakain time-slice habis. SJF adalah contoh priority scheduling dimana prioritas ditentukan oleh waktu pemakaian CPU berikutnya. Problem = Starvation Proses dengan prioritas terendah mungkin tidak akan pernah dieksekusi Solution = Aging Prioritas akan naik jika proses makin lama menunggu waktu jatah CPU.

Round Robin (RR)

Setiap proses mendapat jatah waktu CPU (time slice/quantum) tertentu misalkan 10 atau 100 milidetik. Setelah waktu tersebut maka proses akan di-preempt dan dipindahkan ke ready queue. Adil dan sederhana. Jika terdapat n proses di ready queue dan waktu quantum q (milidetik), maka: Maka setiap proses akan mendapatkan 1/n dari waktu CPU. Proses tidak akan menunggu lebih lama dari: (n-1) q time units. Performance q besar FIFO q kecil q harus lebih besar dengan mengacu pada context switch, jika tidak overhead akan terlalu besar

Multilevel Queue

Kategori proses sesuai dengan sifat proses: Interaktif (response cepat) Batch dll Partisi ready queue dalam beberapa tingkat (multilevel) sesuai dengan proses: Setiap queue menggunakan algoritma schedule sendiri Foreground proses (interaktif, high prioritiy): RR Background proses (batch, low priority): FCFS Setiap queue mempunyai prioritas yang fixed.

Multilevel feedback queue

Suatu proses dapat berpindah diantara beragam antrian. Perlu feedback untuk penentuan proses naik/turun prioritasnya (dinamis): Aging dapat diimplementasikan sesuai dengan lama proses pada satu queue. Suatu proses yang menggunakan CPU sampai habis (tanpa I/O wait) => CPU-bound (bukan proses interaktif) dapat dipindahkan ke queue dengan prioritas lebih rendah

D. Penjadwalan multiple processor

Penjadwalan CPU lebih kompleks ketika ada multiple processor Processor yang homogen termasuk dalam multiprocessor Load sharing Asymmetric multiprocessing (only one processor can accesses structure the system data structures sehingga meringankan kebutuhan sharing data)

E. Penjadwalan real time

Hard real-time systems Task kritis harus selesai dengan garansi waktu tertentu OS akan melacak lamanya task tersebut dieksekusi (real time): Mengetahui lama waktu system call, fungsi dan response dari hardware Melakukan prediksi apakah task tersebut dapat dijalankan. Mudah dilakukan untuk OS khusus pada peralatan/ pemakaian khusus (single task: control system) Sulit untuk time-sharing sistim, virtual memory (faktor latency sebagian program aktif ada di disk). Soft real-time systems Membutuhkan penggunaan skema prioritas Multimedia, highly interactive graphics Prioritas tidak menurunkan over time Dispancy latency yang rendah : Penyisipan point preemsi sepanjang waktu system calls Membuat keseluruhan kernel preemptable F. Evaluasi algorithm