SISTEM OPERASI



BAGIAN I

PENDAHULUAN

- Komputer? Tanpa software? Segumpal mesin yang tidak berdaya guna! Dengan software?

- Komputer dapat menyimpan, memproses dan mengambil informasi, dapat menemukan kesalahan2 dalam penulisan, bermain game serta hal2 lain sesuai dengan kebutuhan dan perkembangan jaman dan manusia.

- Secara garis besar software yang telah disebutkan dibagi menjadi 2 bagian yaitu “system program” yang me-manage operasi komputer itu sendiri dan “application program” yang menyelesaikan masalah2 yang ditemui user.

- Sebagai dasar yang paling penting dari keseluruhan system program adalah “operating system” yang mengendalikan seluruh sumber daya dari sebuah komputer dan memberikan fasilitas2 untuk keperluan pembuatan aplikasi-aplikasi.

“What is an Operating System?”

• Extended machine or Virtual machine

Kesulitan mengelola sebuah komputer langsung pada hardware ditangani melalui software, dalam hal ini Operating System berperan sebagai extended machine yang memudahkan pemakai seolah2 memprogram sebuah mesin secara nyata.

• Resource manager

Seiring dengan perkembangan teknologi, alat2 tambahan yang menyertai sebuah komputer-pun bertambah. Prosesor, memori, timer, disk, terminal, network interface, printer dll akan terpasang bersama pada sebuah komputer. Apa yang terjadi bila keperluan dari masing2 peralatan tersebut tidak ada yang mengatur?

- Tugas OS dalam hal ini adalah:

1. Mengawasi status semua sumber daya yang dimiliki setiap saat

2. Membuat kebijaksanaan penjadwalan dan penjatahan pemakaian sumber daya:

- proses mana yang harus dipilih untuk mendapat sumber daya

- kapan harus mendapatkan sumber daya

- berapa banyak jatah yang didapatkan

3. Membagikan sumber daya yang sudah dialokasikan bila tiba saat yang sesuai dengan ketentuan 2.

4. Menerima atau menarik kembali sumber daya bila selesai atau tidak dimanfaatkan lagi.

• Sumber daya utama sistem komputer adalah memory, prosesor, peralatan I/O dan File

History of Operating Systems

- Dikembangkan sejak lama sejalan dengan perkembangan arsitektur pada sebuah komputer (hardware).

- Ahli matematika Inggris, Charles Babbage (1792 – 1871). “Analytical engine” rancangannya yang berupa rancangan mekanik murni, tidak pernah terwujud dikarenakan pada saat itu teknologi yang ada tidak bisa memenuhi tuntutan Babbage untuk memproduksi disk (wheel), roda gigi (gears), gigi (cog) dan kebutuhan2 mekanik lainnya dimana dibutuhkan tingkat presisi yang tinggi. Selain itu … “analytical engine” tidak mempunyai operating system.

1. Generasi pertama (1945 – 1955)

• Sangat lambat

• Program dibuat dengan instruksi mesin

• Tidak ada bahasa pemrograman

• Menggunakan plugboard untuk mengontrol fungsi dasar mesin

• S/O belum dikenal

2. Generasi kedua (1955 – 1965)

• Program direkam didalam kartu

• Assembly dan Fortran sudah dikenal

• Menggunakan batch processing karena biaya pengoperasian komputer yang mahal

• Sistem operasi FMS (Fortran Monitor System), dan IBSYS untuk IBM 7094

• Single programming

3. Generasi ketiga (1965 – 1980)

• IBM memperkenalkan system 360 dengan IC

• S/O System 360

• Multiprogramming dan time sharing

• General Electric (GE) memperkenalkan MULTICS

4. Generasi keempat (1980 – 1990)

• Mempergunakan teknologi LSI

• Menggunakan network

• Tipe software user friendly

• Distributed operating system

• S/O MSDOS & UNIX

Pengertian dan Istilah dalam Sistem Operasi

Perangkat keras (hardware)

Perangkat keras atau yang biasa disebut hardware (H/W) adalah komponen fisik komputer yang terdiri dari rangkaian elektronika dan peralatan mekanik lainnya. Contoh suatu konfigurasi perangkat keras:

Memory, (main storage, main memory) merupakan rangkaian elektronika yang dapat menyimoan kode2 biner. Instruksi dan data (berupa kode biner) yang akan diproses oleh CPU disimpan didalam memory ini, dan juga tersimpan dalam secondary storage bilamana diperlukan.

Processor, secara umum adalah rangkaian elektronika yang mempunyai kemampuan mengintepretasikan instruksi2 dan juga mengerjakan operasi2 dasar perhitungan (aritmatika) dan logika.

Perangkat Lunak (Software)

• System

- program untuk mengatur/melayani program-program lain banyak berinteraksi dengan perangkat keras

-

• Rreal-time

- perangkat lunak yang: memonitor, menganalisa, mengendalikan kejadian/peristiwa yang sedang terjadi yang memiliki waktu tanggap(response time) singkat; milidetik

• Business

- perangkat lunak aplikasi penggajian, penjualan, persediaan barang, dll; kadang terpadu menjadi satu (SIM)

• Engineering & Scientific

- aplikasi perangkat lunak yang banyak memproses angka-angka; astronomi, otomotif, peramalan cuaca, biologi, dll

• Embedded

- perangkat lunak yang tersimpan dalam rom, mengatur perangkat keras, mis mesin cuci, microwave, lemari pendingin, dll

• Personal Computer

- sangat banyak, sangat beragam, pengolah kata, lembar kerja elektronik, basis data, hiburan, dll

• Artificial Intelligent

- memanfaatkan nonnumerical algoritma, bidang pemanfaatan: patern recognition, pengenalan pola bentuk, expert system, sistem pakar, neural network, jaringan syaraf tiruan

Pengertian-pengertian

• Program (Code)

- sederetan instruksi yang disusun untuk menyelesaikan masalah

- program yang tidak segera digunakan, disimpan didalam secondary storage

• User

- pemakai/orang yang menginginkan permasalahannya diselesaikan dengan bantuan komputer

• Job

- kumpulan kegiatan yang harus dikerjakan untuk mencapai satu tujuan (keinginan)

- OS menyusun proses yang diperlukan oleh sebuah job berdasarkan sumber daya yang dimiliki

• Job-step

- pembagian lebih kecil dari sebuah job (mis, compile, link, load, execute)

• Proses (Task)

- perhitungan / komputasi yang dapat dikerjakan bersama-sama dalam koordinasi dan pengawasan OS

• Address Space

- daerah didalam memory yang terbentuk karena adanya pengerjaan program oleh CPU

• Traffic Controller

- modul OS yang melacak status prosesor dan berbagai proses yang ada di dalam sistem

• Scheduler

- modul OS yang mengatur waktu dan besar pemakaian sumber daya

• File System

- modul OS yang melacak informasi, lokasi penggunaan dan status file yang dipakai

• I/O initiator program

- modul OS yang mengawali dan mengakhiri kerja untuk peralatan I/O

• Multiprogramming

- sistem yang mempunyai kemampuan untuk menangani lebih dari satu proses yang masing-masing dalam keadaan berjalan (running / state of execution)

• State of Execution

- keadaan dimana sebuah proses sudah ada didalam pengawasan OS dan belum selesai (terminated)

• User State (Probelm State, Slave State)

- keadaan dimana prosesor hanya diperbolehkan mengerjakan non-privileged instruction

• Executive State (Supervisor State, Master State)

- prosesor dapat mengeksekusi non-privileged maupun privileged instruction

• Protection H/W

- hardware yang dipakai untuk mengendalikan akses terhadap bagian-bagian memory

• Interrupt H/W

- memungkinkan OS untuk mengkoordinasikan kegiatan-kegiatan operasi yang berjalan dan pembelokan arus jalannya sebuah program

• Interrupt

- mekanisme yang memaksakan OS untuk mempertimbangkan adanya event/keadaan baru tertentu yang harus dilaksanakan

BAGIAN II

PROCESSES

• Hampir semua jenis komputer saat ini bisa mengerjakan beberapa pekerjaan dalam waktu yang bersamaan. Sementara mengeksekusi sebuah program milik user, sebuah komputer dapat juga membaca dari disk dan mencetak pada sebuah printer.

• Pada sistem multiprogramming, CPU juga dapat switch dari sebuah program ke program yang lain, menjalankan puluhan bahkan ribuan instruksi per milisecond. Bahasan-bahasan itulah yang mendasari paralelisme dalam sebuah komputer.

Process model

Semua software yang bisa dijalankan pada sebuah komputer bisa disebut dengan sebuah proses

Sebuah proses bisa dibedakan dari program dengan melihat sebuah analogy, seorang ibu yang membuat kue ulang tahun untuk anaknya.

Resep dan dapur yang lengkap dengan peralatan dan bahan sudah tersedia. Resep disini bisa dianggap sebagai program dan proses adalah aktivitas yang meliputi membaca resep, mengambil bahan, mencampur dan akhirnya memanggang adonan roti tsb.

Bayangkan, pada saat proses pembuatan kue tsb berjalan, anak ibu tsb datang sambil menangis karena tersengat lebah, maka ibu tersebut dengan segera akan berhenti dan akan mengurus anaknya terlebih dahulu, dimana setelah selesai, dia akan melanjutkan pembuatan kue tsb.

Ide yang ada disini adalah sebuah proses adalah sebuah keigatan yang meliputi beberapa aktivitas, yakni adanya program, input, output dan tahapan2 (state)

Sebuah single processor dapat dipakai bersama diantara beberapa proses dengan menggunakan algoritma penjadwalan tertentu untuk menentukan kapan untuk berhenti dari sebuah proses dan melayani yang lainnya

Process States

Sekumpulan proses dapat digambarkan dalam sebuah state sbb:

8. Running (actually using the CPU at that instant)

9. Blocked (unable to run until some external event happens)

10. Ready (runnable; temporarily stopped to let another process run)

1. Process blocks for input

Terjadi pada saat sebuah proses menemukan bahwa dirinya tidak bisa dilanjutkan, pada beberapa sistem, proses ini harus melaksanakan sistem call, blocked, pada sistem yang lain pada saat proses tidak mendapatkan apa yang diinginkan, secara otomatis akan masuk pada state blocked.

1. Scheduler picks another process

Scheduler memutuskan bahwa sebuah proses sudah berjalan telalu lama dan sudah waktunya untuk mengambil proses yang lain.

1. Scheduler picks this process

Proses2 yang lain sudah mendapatkan jatahnya, dan tiba giliran proses yang tertunda dijalankan.

1. Input becomes available

Kejadian diluar yang sedang ditunggu sebuah proses sudah terlaksana, misal sebuah proses yang menunggu inputan dari sebuah output proses yang lain. Bila tidak ada proses yang sedang berjalan, maka transisi 3 segera dilaksanakan dan proses segera berjalan, atau menunggu di ready state sampai CPU tersedia

Implementation of Process

O/S ma-maintain sebuah tabel yang disebut Process Table untuk mengimplementasikan proses, dimana satu proses memiliki satu entry pada tabel.

Satu entry pada tabel berisi informasi yang memuat process state, program counter, stack pointer, memory allocation, status open files, scheduling information dan informasi2 lainnya yang harus disimpan pada saat proses switch dari running ke ready state sehingga sebuah proses dapat dijalankan kembali dan sebaliknya

Interprocess Communication

• Sebuah proses membutuhkan komunikasi dengan proses-proses yang lain, misalnya pada saat user process ingin membaca dari sebuah file harus memberitahukan pada file process apa yang diinginkan, kemudian file process harus menginformasikan pada disk process untuk membaca block yang diingkan dst.

Race conditions

• Pada saat sebuah proses ingin mencetak sebuah file, proses tsb memasukkan nama file ke spooler directory, proses yang lain, printer daemon, secara periodik memeriksa untuk melihat apakah terdapat file yang harus dicetak, bila ada maka akan dilaksanakan pencetakan dan akan membuang nama file dari directory tsb

• Bayangkan, spooler directory memiliki slot yang banyak, 0, 1, 2 dst dimana setiap slot mampu untuk memegang (hold) satu file. Juga terdapat 2 shared variabel, out (menunjuk file berikut yang akan dicetak) dan in (menunjuk slot yang bebas)

• Pada suatu saat, slot 0 - 3 kosong dan slot 4 - 6 penuh, lebih kurang bersamaan (simultan), proses A dan B memutuskan untuk antri mencetak masing-masing filenya. AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABBBBBBBBBBBBBBBBBBBBBBBBBB

Proses A:

Read in;

tempA := in;

put fileA ke slot yg ke tempA;

tempA := tempA + 1;

in := tempA;

Proses B:

Read in;

tempB := in;

put fileB ke slot yg ke tempB;

tempB := tempB + 1;

in := tempB;

• Bagaimana kita menghindari race conditions?? Satu kunci untuk mencegah hal tsb maupun situasi2 lainnya meliputi share memory, share file, dan share apapun adalah menemukan cara untuk mencegah lebih dari satu proses untuk membaca dan menulis pada shared data pada saat yang bersamaan dengan kata lain dibutuhkan suatu pemakaian exclusive (mutual exclusion)

Mutual exclusion

Suatu cara untuk memastikan bila sebuah proses sedang menggunakan sebuah shared variable atau file, maka proses2 yang lain harus tidak diikutsertakan/diperkenankan (excluded) untuk melakukan hal yang sama.

• Kesulitan pada contoh print spooler terjadi karena B menggunakan shared variable sebelum proses A selesai menggunakannya.

• Sebuah proses yang sedang sibuk melakukan komputasi internal dan hal2 lain yang tidak menyebabkan adanya race conditions, namun terkadang sebuah proses tsb mengakses memory atau file atau melakukan hal2 kritis lain yang dapat mengakibatkan race condition. Bagian dari program dimana terjadi pengaksesan share memory maupun file maupun share2 yang lain disebut critical section.

• Jika kita dapat membentuk program dimana tidak ada 2 proses yang berada pada critical section pada saat yang bersamaan maka race condition tidak akan pernah terjadi.

• Walaupun kebutuhan diatas terpenuhi, masih belum cukup untuk bisa melakukan proses secara paralel yang bisa bekerja sama secara benar dan efisien dalam menggunakan shared data. Dibutuhkan 4 kondisi untuk mendapatkan solusi yang baik:

1. No two processes may be simultaneously inside their critical section.

Tidak ada 2 proses yang secara simultan bersama-sama berada dalam critical section

2. No assumptions may be made about speeds or the number of CPUs.

Tidak ada asumsi yang dibuat yang berhubungan dengan kecepatan atau jumlah dari CPU

3. No process running outside its critical section may block other processes.

Tidak ada proses yang berjalan diluar critical section yang bisa mengakibatkan proses lain ter-block

4. No process should have to wait forever to enter its critical section.

Tidak ada proses yang menunggu untuk selamanya untuk bisa masuk ke critical section

Mutual Exclusion

Pada saat sebuah proses sedang sibuk untuk mengupdate shared memory pada critical section, tidak diperkenankan proses2 lain masuk juga ke critical section – nya sehingga tidak terjadi permasalahan (race conditions). Hal ini bisa diatasi dengan:

• Disabling Interrupts

- Mengharuskan setiap proses untuk disable semua interrupt segera setelah memasuki critical section dan enable kembali setelah meninggalkan critical section.

- Bila user tidak mengembalikan dari disable ke enable baik disengaja maupun tidak, akan mengakibatkan berhentinya sistem.

- Bila sistem komputer memiliki lebih dari 2 CPU, dan disable interrupt hanya pada satu CPU, maka kemungkinan terjadi race condition masih ada

- Disabling interrupt cocok diterapkan pada level mesin (kernel), tidak untuk user proses.

• Lock Variables

- Menggunakan sebuah shared lock variabel, dimana harga awalnya adalah 0.

- Pada saat proses akan masuk ke critical section maka variable ini harus dirubah menjadi 1 dan menjalankan critical section.

- Bila lock sudah berisi 1 maka proses harus menuggu sampai lock menjadi 0

- Secara garis besar, lock berisi 0 bila tidak ada proses didalam critical section, dan berisi 1 bila terdapat proses yang sedang berada pada critical section

- Bila sebuah proses A membaca variable lock dan mendapat harga 0, pada saat sebelum A merubah lock menjadi 1, proses B berjalan dan merubah lock menjadi 1

- Pada saat A berlanjut, akan merubah lock menjadi 1 (sudah berisi 1 dirubah oleh B) sehingga terdapat 2 proses lagi yang masing2 berada pada critical section, sehingga masih memungkinkan terjadi race condition

• Strict Alternation

- memanfaatkan sebuah algoritma busy waiting didalam program yang mempunyai critical section

- contoh:

turn = 0

|while (TRUE) |while (TRUE) |

|{ |{ |

|while (turn != 0); // busy waiting |while (turn != 1); // busy waiting |

|critical_section(); |critical_section(); |

|turn = 1; |turn = 0; |

|noncritical_section(); |noncritical_section(); |

|} |} |

• Job Scheduling

BAGIAN III

MEMORY

Basic Memory Management

• Secara garis besar dibagi menjadi 2 kelompok, pengelolaan dengan perpindahan proses antara main memory dengan disk (secondary memory) pada saat pelaksanaan proses (swapping & paging) dan yang tidak (tanpa swapping & paging)

Monoprogramming without Swaping or Paging

• Pengelolaan paling sederhana, hanya terdapat satu program pada suatu saat yang berada pada memory serta OS

• 3 macam penempatan program bersama OS didalam memory:

• Pada monoprogramming, dimanapun OS berada apakah pada memory bagian bawah/atas pada RAM maupun pada ROM, tetap hanya satu buah program yang bisa dilayani.

• Sebuah program yang mempunyai kebutuhan memory yang lebih besar dari memory yang tersisa akan ditolak, sedangkan bila terdapat program yang lebih kecil dari memory yang tersedia akan terjadi waste memory (tidak bisa dimanfaatkan)

Multiprogramming with Fixed Partitions / Static Partitions

• Salah satu pengelolaan multiprogramming yang sederhana, membagi memory menjadi beberapa bagian (partisi) dalam jumlah dan ukuran tertentu

• Jumlah partisi dan ukurannya ditentukan pada saat sistem komputer dinyalakan (start-up) dimana jumlah dan ukuran ini tidak akan berubah sebelum sistem komputer dimatikan (shut-down)

• Pada saat sebuah job datang, job ini dapat diletakkan pada partisi yang cukup besar untuk menampungnya, sehingga terdapat kemungkinan tidak ditempatinya sebuah partisi yang sudah disediakan

• Untuk peletakan job ke partisi bisa dipakai Separate input queue maupun Single input queue

Multiprogramming with Variable Partitions / Dynamic Partitions

• Jumlah partisi dan ukurannya berubah-ubah tergantung masuk – keluarnya job

• Pada saat sebuah job datang, job ini diletakkan pada partisi yang cukup besar untuk menampungnya dan selanjutnya akan terbentuk partisi baru (kosong) bila terdapat sisa

• Sebagai akibat yang mungkin terjadi adalah terbentuknya partisi-partisi kosong dengan ukuran kecil yang tersebar di beberapa lokasi dimana kemungkinan besar partisi ini tidak dapat dimanfaatkan

• Pada kondisi seperti ini, dibutuhkan sebuah proses compaction untuk menyatukan kembali partisi-partisi kecil tersebut

• Bila dilakukan proses compaction juga harus dilakukan proses relocation yaitu penghitungan kembali alamat-alamat partisi maupun alamat-alamat yang diperlukan oleh job/program

• Informasi (alamat awal, size, status) setiap partisi disimpan pada sebuah tabel partisi yang diimplementasikan dengan sebuah linked-list.

• Karena sangat mungkin terdapat lebih dari satu partisi yang bisa ditempati oleh sebuah job sehingga dibutuhkan sebuah algoritma untuk memilih partisi tersebut.

• Algoritma-algoritma yang dipakai adalah:

1. First Fit

• Pencarian partisi kosong (free/hole) dilakukan dari awal tabel dan bila ditemukan partisi (yang pertama kali) yang bisa menampung job maka akan dipakai

2. Next Fit

• Pencarian partisi kosong (free/hole) dilakukan dari entry tabel yang sedang ditunjuk (posisi pointer) sampai dengan ditemukan partisi yang bisa menampung job maka akan dipakai

• Bila sampai dengan akhir tabel tidak ditemukan partisi kosong, maka akan dilanjutkan ke awal tabel sampai ke posisi akhir pointer kembali

3. Best Fit

• Pencarian partisi kosong dari awal s/d akhir tabel

• Partisi kosong yang menghasilkan sisa paling kecil akan dipakai

4. Worst Fit

• Pencarian partisi kosong dari awal s/d akhir tabel

• Partisi kosong yang menghasilkan sisa paling besar akan dipakai

• Pada algoritma Best Fit dan Worst Fit akan memakan waktu proses yang cukup lama apabila jumlah partisi banyak

• Diatasi dengan cara mengurutkan secara Ascending (untuk Best Fit) dan descending (untuk Worst Fit) kemudian diterapkan algoritma First Fit.l

Swap Space Allocation

• Pada beberapa system, pada saat sebuah proses berada di memory, tidak ada alokasi space di disk

• Pada saat proses tersebut harus keluar (swapped out) dari memory, alokasi space terjadi pada swap disk, dimana alokasi tersebut bisa ditempatkan dimana saja

• Pada system yang lain, terjadi keadaan yang berbeda, pada saat proses dibentuk, alokasi space – pun terjadi sehingga kapanpun proses tersebut mengalami swaped out, proses itu akan langsung menempati alokasi space yang sudah tersedia dan pada saat proses keluar, swap space akan di-dealokasi

Virtual Memory

• Kesulitan pada saat dijumpai “program too big to fit in memory”

• Pada saat itu, diatasi dengan sistem “overlay”, dimana program harus dibagi2 menjadi bagian2 yang lebih kecil

• Metoda yang dikerjakan Fotheringham (1961), disebut virtual memory

• Memilih sejumlah ukuran yang harus menempati memory yang ada dan tetap berada pada main memory (diatur oleh O/S) dan sisanya tetap berada pada disk.

• Sebagai contoh, program dengan ukuran 1MB, dapat berjalan pada mesin dengan memory 256K dengan memilih dengan tepat 256K yang mana yang harus masuk ke main memory dari potongan2 progam yang saling bertukar (swap) antara memory dengan disk.

Paging

• Sebuah teknik yang dipakai pada virtual memory

• Program membentuk alamat memory, contoh:

MOVE REG,1000

• Memindahkan isi dari alamat memory 1000 ke REG

• Alamat yang terbentuk disebut virtual addresses dan alokasi yang terbentuk disebut virtual address space

• Untuk mapping dari virtual address ke physical address, digunakan MMU – memory management unit.

|0 – 4K |2 | | | |0 – 4K | |

|4 – 8K |1 | | | |4 – 8K | |

|8 – 12K |6 | | | |8 – 12K | |

|12 – 16K |0 | | | |12 – 16K | |

|16 – 20K |4 | | | |16 – 20K | |

|20 – 24K |3 | | | |20 – 24K | |

|24 – 28K |X | | | |24 – 28K | |

|28 – 32K |X | | | |28 – 32K | |

|32 – 36K |X | | | | | |

|36 – 40K |5 | | | | | |

|40 – 44K |X | | | | | |

|44 – 48K |7 | | | | | |

|48 – 52K |X | | | | | |

|52 – 56K |X | | | | | |

|56 – 60K |X | | | | | |

|60 – 64K |X | | | | | |

Contoh:

• MOVE REG,0 ( pindahkan isi di alamat 0 pada virtual memory

ke register REG

• Pada instruksi ini, virtual address 0 (berada pada 0 – 4095) akan dikirimkan ke MMU untuk selanjutnya akan dicari pada page frame 2 (8192 – 12387).

• Untuk keperluan proses, isi dari alamat 8192 (physical) dikirimkan ke bus dan memory board akan membacanya dari bus.

• MMU memetakan address 0 – 4095 pada virtual memory ke address 8192 – 12387 pada physical memory

• MOVE REG,8192 ( pindahkan isi di alamat 8192 pada virtual memory

ke register REG

• Mapping ke physical page frame = ?

• Alamat yang dikirim ke bus = ?

• MOVE REG,21500 ( pindahkan isi di alamat 21500 pada virtual memory ke

register REG

• Mapping ke physical page frame = ?

• Alamat yang dikirim ke bus = ?

• MOVE REG,32780 ( pindahkan isi di alamat 32780 pada virtual memory

ke register REG

• Mapping ke physical page frame = ?

• Alamat yang dikirim ke bus = ?

• Cara kerja MMU:

• MOVE REG,8196 8196 = 10000000000100

Page Replacement Algorithms

• Pada contoh pemetaan memory diatas, dapat dilihat bahwa virtual address space bisa lebih besar dari physical address space sehingga bila terjadi permintaan alokasi memory diluar physical address space akan terjadi interrupt yang disebut page fault

• Pada keadaan page fault, O/S bertugas untuk memilih page mana yang harus keluar (remove)dari memory untuk menyediakan tempat bagi page yang akan masuk.

• FIFO algorithm, First In First Out, O/S me-maintain sebuah list yang berisi semua page yang ada di dalam memory, dengan kepala (head) list berisi page yang "paling tua" (paling lama berada di list) dan ekor (tail) dari list berisi page yang "paling muda" (baru saja masuk dalam list).

• Contoh: Sebuah program dengan 5 virtual page pada memory dengan 3 page frame. Page masuk dengan urutan

0 1 2 3 0 1 4 0 1 2 3 4

Youngest01230144423301230111422Oldest0123000144FFFFFFFSSFFSBagaimana dengan 4 page frame??

%PF (Page Fault) = ( 9 / 12 ) * 100%

= 75%

%PS (Page Success) = ( 3 / 12 ) * 100%

= 25%

LRU algorithm, Least Recently Used, page yang akan dikeluarkan dipilih berdasarkan lamanya waktu page tersebut berada dalam memory semenjak terakhir digunakan (referenced) dengan pertimbangan bila suatu page dipergunakan maka kemungkinan untuk dipergunakan lagi sangat besar, sebaliknya bila sudah lama tidak digunakan, kemungkinan untuk digunakan lagi dalam waktu dekat sangat kecil

0 1 2 3 0 1 4 0 1 2 3 4

Youngest01230140123401230140123Oldest0123014012FFFFFFFSSFFFBagaimana dengan 4 page frame??

%PF (Page Fault) = ( 10 / 12 ) * 100%

= 83.33 %

%PS (Page Success) = ( 2 / 12 ) * 100%

= 16.67 %

BAGIAN IV

I/O: Deadlock

System Model

Sekumpulan proses yang saling memperebutkan sejumlah resource yang terbatas

Jenis-jenis resource:

physical : CPU, memory, CD ROM drive

logical : database records, system table entries

Preemtable: sebuah resource yang bila diambil dari sebuah proses yang sedang memilikinya tidak akan mempengaruhi hasil proses tersebut.

Nonpreemtable: sebuah resource yang bila diambil dari sebuah proses yang sedang memilikinya akan mengakibatkan hasil dari proses tidak sempurna (garbled output)

Penggunaan resource harus mengikuti tahapan-tahapan sbb:

request yang akan mengakibatkan granted/wait

use

release

How Is Deadlock Characterized?

Secara formal deadlock didefinisikan sebagai:

“A set of processes in deadlock state when every process in the set is waiting for an event that can only be caused by another process in the set”

Secara umum deadlock melibatkan multiple proses yang memperebutkan multiple resource

Deadlock model dapat digambarkan dalam bentuk direct graph dengan notasi:

untuk proses

untuk resource

Contoh:

Holding a resource Requesting a resource

Kondisi-kondisi penyebab deadlock:

Mutual exclusion, setiap resource sudah di hold oleh proses didalam set

Hold and Wait, sebuah proses yang sudah hold resource sebelumnya masih bisa melakukan request terhadap resource yang lain

No preemption, resource yang sudah di hold oleh proses hanya dapat di release oleh proses itu sendiri

Circular wait, terdapat mata rantai hold resource dan request resource pada beberapa proses

PREVENTION

Attacking 4 kondisi penyebab deadlock

MUTUAL EXCLUSION

Dengan membuat resource menjadi sharable, mis. dengan membuat sebuah file menjadi read-only

tidak selalu bisa dilakukan karena sangat tergantung dari jenis resource yang ada.

HOLD AND WAIT

Setiap proses harus request semua resource dan harus diberikan sebelum dimulai prosesnya.

Masalah:

tidak semua proses diketahui sejak awal apa saja kebutuhannya.

kebutuhan proses sering terdapat pada urutan tahapan, mis: read tape to file, sort file, print file, file to tape

Sebuah proses boleh mengajukan request dan mendapatkannya bila tidak sedang hold sebuah resource.

NO PREEMPTION

Jika sebuah resource yang diinginkan tidak tersedia, semua resource yang sedang di hold harus direlease.

Jika sebuah resource yang di request sedang di hold oleh sebuah proses yang sedang menunggu request yang lain, maka resource dibuang dari proses tersebut

CIRCULAR WAIT

Dengan memberikan id pada resource dan sebuah proses hanya dapat request resource dengan urutan ascending. Sebuah proses yang meminta sebuah resource dengan nomor kecil harus merelease resource yang bernomor lebih besar.

mis, tape drive 1

disk 2

printer 12

Masalah:

Sulit untuk mendapatkan urutan yang akan memuaskan semua user

Jumlah nomor akan banyak sekali

Banyak resource yang berjenis logical mis, database records, space/slots in system tables

RECOVERY

Recovery through Preemption

memaksa untuk mengambil resource yang sedang dihold oleh sebuah proses

membuang resource yang diperebutkan

membuat resource menjadi sharable

Recovery through Rollback

menggunakan checkpoint sebagai titik kembali bila terjadi deadlock

Recovery through Killing Process

membuang salah satu proses yang menyebabkan deadlock.

-----------------------

DISK

DRUM

MEMORY (MAIN STORAGE)

CPU

I/O PROCESSOR

I/O PROCESSOR

CONTROL UNIT

CONTROL UNIT

TAPE

PRINTER

CARD READER

2

Running

1

3

Ready

Blocked

4

Proses A

Proses B

abc

prog.c

prog.n

4

5

6

7

fileB

out = 4

in = 8

Device driver di ROM

OS di ROM

User Program

OS di RAM

OS di RAM

User Program

User Program

100

0

825

700

400

200

Partition 4 – 125K

Partition 3 – 300K

Partition 1 – 100K

Operating System

Partition 2 – 200K

825

700

400

200

Partition 4

Partition 3

Partition 1

Operating System

Partition 2

OS

A

OS

A

B

OS

A

B

C

OS

B

C

OS

B

C

D

OS

B

C

D

OS

B

D

E

E

OS

B

D

E

F

CPU

MMU

MEMORY

Disk Controller

BUS

Virtual address space dibagi menjadi unit-unit kecil, disebut page, dimana unit ini terkait pada physical memory yang disebut page frame

Page dan page frame mempunyai ukuran yang selalu sama, pada contoh tsb 4K.

010

1

001

1

110

1

000

1

100

1

011

1

000

0

000

0

000

0

101

1

000

0

000

0

000

0

000

0

111

1

000

0

0

1

2

3

4

5

6

7

8

9

12

13

14

15

11

10

1

0

0

0

0

0

0

0

0

0

0

0

1

0

0

0

0

0

0

0

0

0

0

0

0

0

1

0

1

1

110

0

100

0

D

B

A

T

U

S

R

C

Process D is holding resource T and is waiting for U

Process C is holding resource U and is waiting for T

OS

................
................

In order to avoid copyright disputes, this page is only a partial summary.

Google Online Preview   Download