documentso

Upload: muhammad-faiz-prawiro-negoro

Post on 13-Jul-2015

109 views

Category:

Documents


0 download

TRANSCRIPT

TUGAS MAKALAH BASIC OPERATING

STT TELEMATIKA

NAMA : Muhammad Faiz Prawiro Negoro NIM : 11111147

STRUKTUR SISTEM OPERASI

Secara umum, Sistem Operasi adalah software pada lapisan pertama yang ditempatkan pada memori komputer pada saat komputer dinyalakan. Sedangkan software-software lainnya dijalankan setelah Sistem Operasi berjalan, dan Sistem Operasi akan melakukan layanan inti umum untuk software-software itu. Layanan inti umum tersebut seperti akses ke disk, manajemen memori, skeduling task, dan antar-muka user. Sehingga masing-masing software tidak perlu lagi melakukan tugas-tugas inti umum tersebut, karena dapat dilayani dan dilakukan oleh Sistem Operasi. Bagian kode yang melakukan tugas-tugas inti dan umum tersebut dinamakan dengan kernel suatu Sistem Operasi. Kalau sistem komputer terbagi dalam lapisan-lapisan, maka Sistem Operasi adalah penghubung antara lapisan hardware dan lapisan software. Lebih jauh daripada itu, Sistem Operasi melakukan semua tugas-tugas penting dalam komputer, dan menjamin aplikasiaplikasi yang berbeda dapat berjalan secara bersamaan dengan lancar. Sistem Operasi menjamin aplikasi software lainnya dapat menggunakan memori, melakukan input dan output terhadap peralatan lain dan memiliki akses kepada sistem file. Apabila beberapa aplikasi berjalan secara bersamaan, maka Sistem Operasi mengatur skedule yang tepat, sehingga sedapat mungkin semua proses yang berjalan mendapatkan waktu yang cukup untuk menggunakan prosesor (CPU) serta tidak saling mengganggu.

1. STRUKTUR SISTEM OPERASI Sebuah sistem yang besar dan kompleks seperti sistem operasi modern harus diatur dengan cara membagi task kedalam komponen-komponen kecil agar dapat berfungsi dengan baik dan mudah. Brikut ini adalah Struktur Sistem Operasi;y y y y y y y

Struktur Sederhana Sistem Berlapis (layered system) Kernel Mikro Modular (Modules) Mesin Maya ( Virtual Machine ) Client-Server Model Sistem Berorientasi Objek

1. Struktur Sederhana Sistem operasi sebagai kumpulan prosedur dimana prosedur dapat saling dipanggil oleh prosedur lain di sistem bila diperlukan. Banyak sistem operasi komersial yang tidak terstruktur dengan baik. Kemudian sistem operasi dimulai dari yang terkecil, sederhana dan terbatas lalu berkembang dengan ruang lingkup originalnya. Contoh dari sistem operasi ini adalah MS-DOS dan UNIX. MS-DOS merupakan sistem operasi yang menyediakan fungsional dalam ruang yang sedikit sehingga tidak dibagi menjadi beberapa modul, sedangkan UNIX menggunakan struktur monolitik dimana prosedur dapat saling dipanggil oleh prosedur lain di sistem bila diperlukan dan kernel berisi semua layanan yang disediakan sistem operasi untuk pengguna. Inisialisasi-nya terbatas pada fungsional perangkat keras yang terbagi menjadi dua bagian yaitu kernel dan sistem program. Kernel terbagi menjadi serangkaian interface dan device driver dan menyediakan sistem file, penjadwalan CPU, manajemen memori, dan fungsi-fungsi sistem operasi lainnya melalui system calls. Kelebihan Struktur Sederhana:y

Layanan dapat dilakukan sangat cepat karena terdapat di satu ruang alamat.

Kekurangan Struktur Sederhana:y y y y y

Pengujian dan penghilangan kesalahan sulit karena tidak dapat dipisahkan dan dilokalisasi. Sulit dalam menyediakan fasilitas pengamanan. Merupakan pemborosan bila setiap komputer harus menjalankan kernel monolitik sangat besar sementara sebenarnya tidak memerlukan seluruh layanan yang disediakan kernel. Tidak fleksibel. Kesalahan pemograman satu bagian dari kernel menyebabkan matinya seluruh sistem.

Evolusi : Kebanyakan UNIX sampai saat ini berstruktur monolitik. Meskipun monolitik, yaitu seluruh komponen/subsistem sistem operasi terdapat di satu ruang alamat tetapi secara rancangan adalah berlapis. Rancangan adalah berlapis yaitu secara logik satu komponen/subsistem merupakan lapisan lebih bawah dibanding lainnya dan menyediakan layanan-layanan untuk lapisan-lapisan lebih atas. Komponen-komponen tersebut kemudia dikompilasi dan dikaitkan (di-link) menjadi satu ruang alamat. Untuk mempermudah dalam pengembangan terutama pengujian dan fleksibilitas, kebanyakan UNIX saat ini menggunakan konsep kernel loadable modules,yaitu:y y

Bagian-bagian kernel terpenting berada di memori utama secara tetap. Bagian-bagian esensi lain berupa modul yang dapat ditambahkan ke kernel saat diperlukan dan dicabut begitu tidak digunakan lagi di waktu jalan (run time).

Contoh : UNIX berstruktur monolitik, MS-DOS 2. Sistem Berlapis (layered system) Sistem operasi dibentuk secara hirarki berdasar lapisan-lapisan, dimana lapisan-lapisan bawa memberi layanan lapisan lebih atas. Lapisan yang paling bawah adalah perangkat keras, dan yang paling tinggi adalah user-interface. Sebuah lapisan adalah implementasi dari obyek abstrak yang merupakan enkapsulasi dari data dan operasi yang bisa memanipulasi data tersebut. Struktur berlapis dimaksudkan untuk mengurangi kompleksitas rancangan dan implementasi sistem operasi. Tiap lapisan mempunyai fungsional dan antarmuka masukan-keluaran antara dua lapisan bersebelahan yang terdefinisi bagus. Sedangkan menurut Tanenbaum dan Woodhull, sistem terlapis terdiri dari enam lapisan, yaitu: Lapis 5 The operator Berfungsi untuk pemakai operator. Lapis 4 User programs Berfungsi untuk aplikasi program pemakai. Lapis 3 I/O management Berfungsi untuk menyederhanakan akses I/O pada level atas. Lapis 2 -Operator-operator communication Berfungsi untuk mengatur komunikasi antar proses. Lapis 1 -Memory and drum management Berfungsi untuk mengatur alokasi ruang memori atau drum magnetic. Lapis 0 -Processor allocation and multiprogramming Berfungsi untuk mengatur alokasi pemroses dan switching, multi programming dan pengaturan prosessor. Menurut Stallings, model tingkatan sistem operasi yang mengaplikasikan prinsip ini dapat dilihat pada tabel berikut, yang terdiri dari level-level dibawah ini:y

Level 1

Terdiri dari sirkuit elektronik dimana obyek yang ditangani adalah register memory cell, dan gerbang logika. Operasi pada obyek ini seperti membersihkan register atau membaca lokasi memori.y

Level 2

Pada level ini adalah set instruksi pada prosesor. Operasinya adalah instruksi bahasa-mesin, seperti menambah, mengurangi, load dan store.y

Level 3

Tambahan konsep prosedur atau subrutin ditambah operasi call atau return.y

Level 4

Mengenalkan interupsi yang menyebabkan prosesor harus menyimpan perintah yang baru dijalankan dan memanggil rutin penanganan interupsi. Empat level pertama bukan bagian sistem operasi tetapi bagian perangkat keras. Meski pun demikian beberapa elemen sistem operasi mulai tampil pada level-level ini, seperti rutin penanganan interupsi. Pada level 5, kita mulai masuk kebagian sistem operasi dan konsepnya berhubungan dengan multi-programming.y

Level 5

Level ini mengenalkan ide proses dalam mengeksekusi program. Kebutuhan-kebutuhan dasar pada sistem operasi untuk mendukung proses ganda termasuk kemampuan men-suspend dan meresume proses. Hal ini membutuhkan register perangkat keras untuk menyimpan agar eksekusi bisa ditukar antara satu proses ke proses lainnya.

y

Level 6

Mengatasi penyimpanan sekunder dari komputer. Level ini untuk menjadualkan operasi dan menanggapi permintaan proses dalam melengkapi suatu proses.y

Level 7

Membuat alamat logik untuk proses. Level ini mengatur alamat virtual ke dalam blok yang bisa dipindahkan antara memori utama dan memori tambahan. Cara-cara yang sering dipakai adalah menggunakan ukuran halaman yang tetap, menggunakan segmen sepanjang variabelnya, dan menggunakan cara keduanya. Ketika blok yang dibutuhkan tidak ada dimemori utama, alamat logis pada level ini meminta transfer dari level 6. Sampai point ini, sistem operasi mengatasi sumber daya dari prosesor tunggal. Mulai level 8, sistem operasi mengatasi obyek eksternal seperti peranti bagian luar, jaringan, dan sisipan komputer kepada jaringan.

y

Level 8

Mengatasi komunikasi informasi dan pesan-pesan antar proses. Dimana pada level 5 disediakan mekanisme penanda yang kuno yang memungkinkan untuk sinkronisasi proses, pada level ini mengatasi pembagian informasi yang lebih banyak. Salah satu peranti yang paling sesuai adalah pipe (pipa) yang menerima output suatu proses dan memberi input ke proses lain.y

Level 9

Mendukung penyimpanan jangka panjang yang disebut dengan berkas. Pada level ini, data dari penyimpanan sekunder ditampilkan pada tingkat abstrak, panjang variabel yang terpisah. Hal nini bertentangan tampilan yang berorientasikan perangkat keras dari penyimpanan sekunder.y

Level 10

Menyediakan akses ke peranti eksternal menggunakan antarmuka standar.y

Level 11

Bertanggung-jawab mempertahankan hubungan antara internal dan eksternal identifier dari sumber daya dan obyek sistem. Eksternal identifier adalah nama yang bisa dimanfaatkan oleh aplikasi atau pengguna. Internal identifier adalah alamat atau indikasi lain yang bisa digunakan oleh level yang lebih rendah untuk meletakkan dan mengontrol obyek.y

Level 12

Menyediakan suatu fasilitator yang penuh tampilan untuk mendukung proses. Hal ini merupakan lanjutan dari yang telah disediakan pada level 5. Pada level 12, semua info yang dibutuhkan untuk managemen proses dengan berurutan disediakan, termasuk alamat virtual di proses, daftar obyek dan proses yang berinteraksi dengan proses tersebut serta batasan interaksi tersebut, parameter yang harus dipenuhi proses saat pembentukan, dan karakteristik lain yang mungkin digunakan sistem operasi untuk mengontrol proses.y

Level 13

Menyediakan antarmuka dari sistem operasi dengan pengguna yang dianggap sebagai shell atau dinding karena memisahkan pengguna dengan sistem operasi dan menampilkan sistem operasi dengan sederhana sebagai kumpulan servis atau pelayanan. Dari ketiga sumber diatas dapat kita simpulkan bahwa lapisan sistem operasi secara umum terdiri atas 4 bagian, yaitu: 1. Perangkat keras Lebih berhubungan kepada perancang sistem. Lapisan ini mencakup lapisan 0 dan 1 menurut Tanenbaum, dan level 1 sampai dengan level 4 menurut Stallings.

1. Sistem operasi Lebih berhubungan kepada programer. Lapisan ini mencakup lapisan 2 menurut Tanenbaum, dan level 5 sampai dengan level 7 menurut Stallings. 1. Kelengkapan Lebih berhubungan kepada programer. Lapisan ini mencakup lapisan 3 menurut Tanenbaum, dan level 8 sampai dengan level 11 menurut Stallings. 1. Program aplikasi Lebih berhubungan kepada pengguna aplikasi komputer. Lapisan ini mencakup lapisan 4 dan lapisan 5 menurut Tanebaum, dan level 12 dan level 13 menurut Stallings. Lapisan n memberi layanan untuk lapisan n+1. Proses-proses di lapisan n dapat meminta layanan lapisan n-1 untuk membangunan layanan bagi lapisan n+1. Lapisan n dapat meminta layanan lapisan n-1. Kebalikan tidak dapat, lapisan n tidak dapat meminta layanan n+1. Masing-masing berjalan di ruang alamat-nya sendiri. Kelanjutan sistem berlapis adalah sistem berstruktur cincin seperti sistem MULTICS. Sistem MULTICS terdiri 64 lapisan cincin dimana satu lapisan berkewenangan berbeda. Lapisan n-1 mempunyai kewenangan lebih dibanding lapisan n. Untuk meminta layanan lapisan n-1, lapisan n melakukan trap. Kemudian, lapisan n-1 mengambil kendali sepenuhnya untuk melayani lapisan n. Kelebihan Sistem Berlapis (layered system):y y

Memiliki rancangan modular, yaitu sistem dibagi menjadi beberapa modul & tiap modul dirancang secara independen. Pendekatan berlapis menyederhanakan rancangan, spesifikasi dan implementasi sistem operasi.

Kekurangan Sistem Berlapis (layered system):y

Fungsi-fungsi sistem operasi diberikan ke tiap lapisan secara hati-hati.

Contoh: Sistem operasi yang menggunakan pendekatan berlapis adalah THE yang dibuat oleh Djikstra dan mahasiswa-mahasiswanya, serta sistem operasi MULTICS.

3. Kernel Mikro Metode struktur ini adalah menghilangkan komponen-komponen yang tidak diperlukan dari kernel dan mengimplementasikannya sebagai sistem dan program-program level user. Hal ini akan menghasilkan kernel yang kecil. Fungsi utama dari jenis ini adalah menyediakan fasilitas komunikasi antara program client dan bermacam pelayanan yang berjalan pada ruang user.

Kelebihan Kernel Mikro:y y y

kemudahan dalam memperluas sistem operasi mudah untuk diubah ke bentuk arsitektur baru kode yang kecil dan lebih aman

Kekurangan Kernel Mikro:y

kinerja akan berkurang selagi bertambahnya fungsi-fungsi yang digunakan.

Contoh: sistem operasi yang menggunakan metode ini adalah TRU64 UNIX, MacOSX dan QNX.

4. Modular (Modules) Kernel mempunyai kumpulan komponen-komponen inti dan secara dinamis terhubung pada penambahan layanan selama waktu boot atau waktu berjalan. Sehingga strateginya menggunakan pemanggilan modul secara dinamis (Loadable Kernel Modules). Umumnya sudah diimplementasikan oleh sistem operasi modern seperti Solaris, Linux dan MacOSX. Sistem Operasi Apple Macintosh Mac OS X menggunakan struktur hybrid. Strukturnya menggunakan teknik berlapis dan satu lapisan diantaranya menggunakan Mach microkernel.

5. Mesin Maya ( Virtual Machine ) Mesin maya mempunyai sistem timesharing yang berfungsi untuk ,menyediakan kemampuan untuk multiprogramming dan perluasan mesin dengan antarmuka yang lebih mudah. Struktur Mesin maya ( CP/CMS, VM/370 ) terdiri atas komponen dasar utama :y y

Control Program, yaitu virtual machine monitor yang mengatur fungsi ari prosessor, memori dan piranti I/O. Komponen ini berhubungan langsung dengan perangkat keras. Conventional Monitor System, yaitu sistem operasi sederhanayang mengatur fungsi dari proses, pengelolaan informasi dan pengelolaan piranti.

Kelebihan Mesin Maya ( Virtual Machine ):

y

y

Konsep mesin virtual menyediakan proteksi yang lengkap untuk sumber daya system sehingga masing-masing mesin virtual dipisahkan mesin virtual yang lain. Isolasi ini tidak memperbolehkan pembagian sumber daya secara langsung. Sistem mesin virtual adalah mesin yang sempurna untuk riset dan pengembangan system operasi. Pengembangan system dikerjakan pada mesin virtual, termasuk di dalamnya mesin fisik dan tidak mengganggu operasi system yang normal.

Kekurangan Mesin Maya ( Virtual Machine ):y

Konsep mesin virtual sangat sulit untuk mengimplementasikan kebutuhan dan duplikasi yang tepat pada mesin yang sebenarnya.

Contoh:y y

y y

Sistem operasi MS-Windows NT dapat menjalankan aplikasi untuk MS-DOS, OS/2 mode teks dan aplikasi WIN16. IBM mengembangkan WABI untuk meng-emulasikan Win32 API sehingga sistem operasi yang menjalankan WABI dapat menjalankan aplikasi-aplikasi untuk MSWindows. Para pengembang Linux membuat DOSEMU untuk menjalankan aplikas-aplikasi DOS pada sistem operasi Linux, WINE untuk menjalankan aplikasi-aplikasi MS-Windows. VMWare merupakan aplikasi komersial yang meng-abstraksikan perangkat keras intel 8086 menjadi virtual mesin dan dapat menjalan beberapa sistem operasi lain (guest operating system) di dalam sistem operasi MS-Windos atau Linux (host operating system). VirtualBox merupakan salah satu aplikasi sejenis yang opensource.

6. Client-Server Model Mengimplementasikan sebagian besar fungsi sistem operasi pada mode pengguna (user mode). Sistem operasi merupakan kumpulan proses dengan proses-proses dikategorikan sebagai server dan client, yaitu : Server, adalah proses yang menyediakan layanan. Client, adalah proses yang memerlukan/meminta layanan. Proses client yang memerlukan layanan mengirim pesan ke server dan menanti pesan jawaban. Proses server setelah melakukan tugas yang diminta, mengirim hasil dalam bentuk pesan jawaban ke proses client. Server hanya menanggapi permintaan client dan tidak memulai dengan percakapan client. Kode dapat diangkat ke level tinggi, sehingga kernel dibuat sekecil mungkin dan semua tugas diangkat ke bagian proses pemaka. Kernel hanya mengatur komunikasi antara client dan server. Kernel yang ini popular dengan sebutan mikrokernel.

Kelebihan Client-Server Model:y y

y

Pengembangan dapat dilakukan secara modular. Kesalahan (bugs) di satu subsistem (diimplementasikan sebagai satu proses) tidak merusak subsistem-subsistem lain, sehingga tidak mengakibatkan satu sistem mati secara keseluruhan. Mudah diadaptasi untuk sistem tersebar.

Kekurangan Client-Server Model:y y y

Layanan dilakukan lambat karena harus melalui pertukaran pesan. Pertukaran pesan dapat menjadi bottleneck. Tidak semua tugas dapat dijalankan di tingkat pemakai (sebagai proses pemakai).

7. Sistem Berorientasi Objek Sisten operasi merealisasikan layanan sebagai kumpulan proses disebut sistem operasi bermodel proses. Pendekatan lain implementasi layanan adalah sebagai objek-objek. Sistem operasu yang distrukturkan menggunakan objek disebut sistem operasi berorientasi objek. Pendekatan ini dimaksudkan untuk mengadopsi keunggulan teknologi berorientasi objek. Pada sistem yang berorientasi objek, layanan diimplementasikan sebagai kumpulan objek. Objek mengkapsulkan struktur data dan sekumpulan operasi pada struktur data itu. Tiap objek diberi tipe yang menandadi properti objek seperti proses, direktori, berkas, dan sebagainya. Dengan memanggil operasi yang didefinisikan di objek, data yang dikapsulkan dapat diakses dan dimodifikasi. Model ini sungguh terstruktur dan memisahkan antara layanan yang disediakan dan implementasinya. Sistem operasi MS Windows NT telah mengadopsi beberapa teknologi berorientasi objek tetapi belum keseluruhan. Kelebihan Sistem Berorientasi Objek:y

Terstruktur dan memisahkan antara layanan yang disediakan dan implementasinya.

Kekurangan Sistem Berorientasi Objek:y

Sistem operasi MS Windows NT telah mengadopsi beberapa teknologi berorientasi objek tetapi belum keseluruhan.

Contoh sistem operasi yang berorientasi objek, antara lain : eden, choices, x-kernel, medusa, clouds, amoeba, muse, dan sebagainya.

Proses sistem oprasi Sistem operasi mengeksekusi berbagai jenis program. Pada sistem batch program tersebut biasanya disebut dengan job, sedangkan pada sistem time sharing, program disebut dengan program user atau task. Beberapa buku teks menggunakan istilah job atau proses. Proses adalah program yang sedang dieksekusi. Eksekusi proses dilakukan secara berurutan. Dalam suatu proses terdapat program counter, stack dan daerah data. Status Proses Meskipun tiap-tiap proses terdiri dari suatu kesatuan yang terpisah namun adakalanya proses-proses tersebut butuh untuk saling berinteraksi. Satu proses bisa dibangkitkan dari output proses lainnya sebagai input. Pada saat proses dieksekusi, akan terjadi perubahan status. Status proses didefiniskan sebagai bagian dari aktivitas proses yang sedang berlangsung saat itu. Gambar 3-1 menunjukkan diagram status proses. Status proses terdiri dari : a. New: proses sedang dibuat. b. Running: proses sedang dieksekusi. c. Waiting: proses sedang menunggu beberapa event yang akan terjadi (seperti menunggu untuk menyelesaikan I/O atau menerima sinyal). d. Ready: proses menunggu jatah waktu dari CPU untuk diproses. e. Terminated: proses telah selesai dieksekusi.

Gambar 3-1: Perubahan status proses

Process Control Block (PCB) Masing-masing proses direpresentasikan oleh Sistem Operasi dengan menggunakan Process Control Block (PCB), seperti yang terlihat pada Gambar 3-2. Informasi yang terdapat pada setiap proses meliputi : a. Status Proses. New, ready, running, waiting dan terminated. b. Program Counter. Menunjukkan alamat berikutnya yang akan dieksekusi oleh

proses tersebut. c. CPU Registers. Register bervariasi tipe dan jumlahnya tergantung arsitektur komputer yang bersangkutan. Register-register tersebut terdiri-atas: accumulator, index register, stack pointer, dan register serbaguna dan beberapa informasi tentang kode kondisi. Selama Program Counter berjalan, status informasi harus disimpan pada saat terjadi interrupt. Gambar 3-3 menunjukkan switching proses dari satu proses ke proses berikutnya. d. Informasi Penjadwalan CPU. Informasi tersebut berisi prioritas dari suatu proses, pointer ke antrian penjadwalan, dan beberapa parameter penjadwalan yang lainnya. e. Informasi Manajemen Memori. Informasi tersebut berisi nilai (basis) dan limit register, page table, atau segment table tergantung pada sistem memory yang digunakan oleh SO. f. Informasi Accounting. Informasi tersebut berisi jumlah CPU dan real time yang digunakan, time limits, account numbers, jumlah job atau proses, dll. g. Informasi Status I/O. Informasi tersebut berisi deretan I/O device (seperti tape driver) yang dialokasikan untuk proses tersebut, deretan file yang dibuka, dll.

PENJADWALAN PROSESAntrian Penjadwalan Penjadwalan direpresentasikan dalam bentuk antrian yang disimpan sebagai linkedlist dan berisi pointer awal dan akhir PCB. Tiap-tiap PCB memiliki suatu pointer field yang menunjuk ke proses berikutnya. Jenis-jenis antrian penjadwalan adalah sebagai berikut : Job Queue. Semua proses yang masuk pada suatu sistem akan diletakkan ke dalam job queue. Ready Queue. Sedangkan proses-proses yang ada di memori utama dan menunggu untuk dieksekusi diletakkan pada suatu list yang disebut dengan ready queue. Pada antrian ini berisi Device Queue. Deretan proses yang sedang menunggu peralatan I/O tertentu disebut dengan device queue. Setiap proses dapat berpindah dari satu antrian ke antrian lain. Gambar 3-4 menunjukkan contoh ready queue dan device queue. Representasi dari penjadwalan proses dapat dilihat pada Gambar 3-5.

Gambar 3-4: Ready queue dan device queue

Gambar 3-4: representasi penjadwalan proses

Penjadwal (Scheduler) Terdapat dua bentuk penjadwal, yaitu: a. Longterm-Scheduler (job scheduler), menyeleksi proses-proses mana yang harus dibawa ke ready queue. b. Short-term Scheduler (CPU scheduler), memilih proses-proses yang siap untuk dieksekusi, dan mengakolakasikan CPU ke salah satu dari proses-proses tersebut. Selain kedua jenis penjadwal diatas terdapat satu jenis penjadwal yang disebut dengan medium-term scheduler. Gambar 3-5 merupakan medium-term scheduler.

Gambar 3-5: medium-term scheduler

Short-term scheduler terjadi sangat sering (dalam milidetik), jadi setiap proses dijadwal dengan cepat, sedangkan long-term scheduler terjadi sangat jarang (dalam detik atau menit), sehingga setiap proses dijadwal dengan lambat. Long-term scheduler digunakan untuk mengontrol tingkat multiprogramming.

Secara umum, proses dapat digambarkan sebagai : I/O bound process, yaitu proses-proses yang membutuhkan lebih banyak waktu untuk menjalankan I/O daripada melakukan komputasi, sehingga CPU burst yang dibutuhkan lebih singkat. CPU bound process, yaitu proses-proses yang membutuhkan lebih banyak waktu untuk melakukan komputasi daripada menjalankan I/O sehingga CPU burst yang dibutuhkan lebih lama. Context Switch Ketika CPU berpindah dari proses satu ke proses lainnya, sistem harus menyimpan status dari proses yang lama dan membuka state proses baru yang sudah disimpan. Contex switch adalah proses penyimpanan status proses dan mengambil status proses yang baru pada saat terjadi switching. Pada saat terjadi perpindahan proses, sistem tidak bekerja. Waktu context switch tergantung pada perangkat keras yang digunakan.

LINUX MANAGEMENT MEMORYManajemen memori merupakan salah satu bagian terpenting dalam sistem operasi. Memori perlu dikelola sebaik-baiknya agar : 1. Utilitas CPU meningkat. 2. Data dan instruksi dapat diakses dengan cepat oleh CPU. 3. Tercapai efisiensi dalam pemakaian memori yang terbatas. 4. Transfer data dari/ke memori utama ke/dari CPU dapat lebih efisien. Manajemen memori di Linux melingkupi bahasan bahasan : a. Pengalamatan memori. b. Pengalokasian memori dinamis secara kontigu dan non kontigu. c. Proses address space. MEMORY ADDRESSING Dalam mengakses isi dari sel memori programmer biasanya mengacu pada alamat memori (memory addresses). Pada microprocessor Intel 8086 memory addresses dibedakan menjadi tiga jenis address : 1. Logical Address Terdapat pada instruksi bahasa mesin untuk menspesifikkan alamat dari sebuah operan atau instruksi. Setiap logical address terdiri dari sebuah segment dan sebuah offset (displacement) yang menyatakan jarak dari awal segment ke alamat aktual. 2. Linear Address Merupakan sebuah 32-bit unsigned integer tunggal yang bisa digunakan untuk pengalamatan hingga 4 GB. Biasanya direpresentasikan dalam notasi heksadesimal. 3. Physical Address Digunakan untuk pengalamatan sel memori, terdapat pada chip memori. CPU control unit mengubah logical address ke linear address dengan menggunakan perangkat hardware yang disebut segmentation unit, dan kemudian circuit hardware kedua yang disebut paging unit mengubah linear address ke physical address.

Gambar 1 : Jenis Address Segmentation

Segmentation pada hardware Dimulai dengan model 80386, microprocessor Intel menampilkan translasi alamat dengan 2 cara berbeda, yang disebut real mode dan protected mode. Real mode untuk memelihara kompatibilitas prosesor dengan model yang lebih lama dan untuk OS agar dapat melakukan bootstrap. Segmentation Registers Logical address terdiri atas dua bagian : segment identifier dan sebuah offset yang menunjukkan alamat yang bersangkutan pada segment. Segment identifier adalah sebuah 16-bit field yang disebut segment selector. Untuk mempermudah memperoleh segment selectors dengan cepat, prosesor menyediakan segmentation register yang tujuannya hanya untuk memegang segment selectors. Ada enam segmentation register : cs, ss, ds, es, fs, dan gs. Segment Descriptor Setiap segment direpresentasikan dengan 8-byte segment descriptor yang menggambarkan karakteristik segment. Segment descriptor disimpan pada Global Descriptor Table(GDT) atau pada Local Descriptor Table(LDT). Segment Selectors Untuk mempercepat pengubahan dari logical address ke linear address, Intel menyediakan nonprogrammable register tambahan untuk setiap dari 6 programmable segmentation register. Setiap segment selector di-load pada sebuah segmentation register, segment descriptor yang bersangkutan diload dari memori ke nonprogrammable CPU register yang bersesuaian. Jadi, pengubahan dari logical address ke linear address dilakukan tanpa mengakses GDT atau LDT yang berada pada memori utama. Akses ke GDT atau LDT hanya diperlukan bila isi dari segmentation register berubah. Setiap segment selector mengandung hal-hal berikut : - Sebuah index 13-bit yang menunjukkan masukan segment descriptor yang berhubungan yang terdapat pada GDT atau LDT. - Sebuah TI (tabe indicator) flag yang menunjukkan apakah segment descriptor terdapat pada GDt (Ti = 0) atau pada LDT (TI = 1). - Sebuah RPl (requestor privilege level) 2-bit field, yang membuat current privilege level cPu tepat saat segment selector yang berhubungan di-load ke register cs. Segmentation Unit Segmentatipn Unit melakukan operasi-operasi berikut :

Memeriksa TI dari segment selector, untuk memutuskan apakah descriptor table berada pada segment descriptor. Menghitung alamat dari segment descriptor dari index filed segment selector. Menambahkan ke Base field dari segment descriptor, offset dari logical address, sehingga diperoleh linear address. Segmentation pada Linux Linux menggunakan segmentasi secara sangat terbatas. Kenyataannya, segmentasi dan paging merupakan hal yang redundan karena keduanya digunakan untuk memisahkan ruang physical address padai proses. Segmentasi bisa menugaskan sebuah ruang linear address yang berbeda, sementara paging bisa memetakan ruang linear address yang sama ke ruang physical address yang berbeda. Linux lebih menyukai paging karena alasan berikut : Manajemen memori lebih sederhana bila semua proses menggunakan nilai segment register yang sama, yaitu, pada saat saling berbagi linear addressess yang sama. Salah satu tujuan desain Linux adalah portabilitas untuk sebagian besar arsitektur populer; sementara beberapa prosesor RISC hanya mendukung segmentasi secara terbatas. Paging Paging pada hardware Paging unit mengubah linear addresses ke physical adresses. Paging unit mengecek tipe permintaan akses yang melanggar hak akses dari linear address. Jika akses memori tidak valid, maka akan menghasilkan eksepsi page fault. Untuk efisiensi, linear address dikelompokkan dalam interval fixed-length yang disebut pages; linear addressess kontigu pada sebuah page dipetakan ke physical addresses kontigu. Paging unit menganggap semua RAM terpartisi menjadi fixed-length page frames. Setiap page frame mengandung sebuah page. Struktur data yang memetakan linear ke physical addressses disebut page tables, tersimpan dalam memori utama dan harus diinisialisasi secara tepay oleh kernel sebelum memfungsikan paging unit. Regular Paging Linear address 32 bit dibagi menjadi 3 : Direktori, 10 bit most significant Tabel, 10 bit intermediet Offset, 12 bit least significant Pengubahan linear address terjadi 2 dalam 2 tahap, masing-masing berdasar pada tipe tabel translasi.

Tabel translasi yang pertama disebut page directory dan yang kedua disebut page table. Extended Paging Dimulai pada model Pentium, mikroprosesor Intel 8086 memperkenalkan extended paging, yang memungkinkan page frames berukuran 4KB atau 4 MB. Extended paging dimungkinkan dengan men-set Page Size flag dari sebuah entri Page Directory. Pada kasus ini, paging unit membagi 32 bit linear address menjadi 2 bagian: Direktori, 10 bit most significant Offset, 22 bit sisanya Entri page directory untuk extended paging sama dengan untuk paging biasa, kecuali : Page Size flag harus diset. Hanya 10 bit most signifcant pertama dari 10 bit physical address field yang signifikan Transaction Lookaside Buffers (TLB) Selain cache general purpose hardware, Intel 8086 menyediakan juga cache yang lain, disebut translation lookaside buffers (TLB) untuk meningkatkan kecepatan translasi linear address. Paging pada Linux Linux mengadopsi model three-level paging sehingga paging memungkinkan pada arsitektur 64 bit. Tiga tipe paging

VIRTUAL MEMORIMemori virtual adalah suatu teknik yang memisahkan antara memori logis dan memori fisiknya. Teknik ini menyembunyikan aspek-aspek fisik memori dari pengguna dengan menjadikan memori sebagai lokasi alamat virtual berupa byte yang tidak terbatas dan menaruh beberapa bagian dari memori virtual yang berada di memori logis. Konsep memori virtual dikemukakan pertama kali oleh John Fotheringham pada tahun 1961 dengan menggunakan dynamic storage allocation pada sistem komputer atlas di Universitas Manchester. Sedangkan istilah memori virtual dipopulerkan oleh Peter J. Denning yang mengambil istilah 'virtual' dari dunia optik.

Gambar 1 Memori virtual lebih besar ukurannya dari memori fisik Setiap program yang dijalankan harus berada di memori. Memori merupakan suatu tempat penyimpanan utama (primary storage) yang bersifat sementara (volatile). Ukuran memori yang terbatas menimbulkan masalah bagaimana menempatkan program yang berukuran lebih besar dari ukuran memori fisik dan masalah penerapan multiprogramming yang membutuhkan tempat lebih besar di memori. Dengan pengaturan oleh sistem operasi dan didukung perangkat keras, memori virtual dapat mengatasi masalah kebutuhan memori tersebut. Memori virtual melakukan pemisahan dengan menaruh memori logis ke disk sekunder dan hanya membawa halaman yang diperlukan ke memori utama. Teknik ini menjadikan seolah-olah ukuran

memori fisik yang dimiliki lebih besar dari yang sebenarnya dengan menempatkan keseluruhan program di disk sekunder dan membawa halaman-halaman yang diperlukan ke memori fisik. Jadi jika proses yang sedang berjalan membutuhkan instruksi atau data yang terdapat pada suatu halaman tertentu maka halaman tersebut akan dicari di memori utama. Jika halaman yang diinginkan tidak ada maka akan dicari di disk. Ide ini seperti menjadikan memori sebagai cache untuk disk. Beberapa keuntungan penggunaan memori virtual adalah sebagai berikut: Berkurangnya proses I/O yang dibutuhkan (lalu lintas I/O menjadi rendah). Misalnya untuk program butuh membaca dari disk dan memasukkan dalam memory setiap kali diakses. Ruang menjadi lebih leluasa karena berkurangnya memori fisik yang digunakan. Contoh, untuk program 10 MB tidak seluruh bagian dimasukkan dalam memori fisik. Pesan-pesan error hanya dimasukkan jika terjadi error. Meningkatnya respon, karena menurunnya beban I/O dan memori. Bertambahnya jumlah pengguna yang dapat dilayani. Ruang memori yang masih tersedia luas memungkinkan komputer untuk menerima lebih banyak permintaan dari pengguna. Gagasan utama dari memori virtual adalah ukuran gabungan program, data dan stack melampaui jumlah memori fisik yang tersedia. Sistem operasi menyimpan bagian-bagian proses yang sedang digunakan di memori fisik (memori utama) dan sisanya diletakkan di disk. Begitu bagian yang berada di disk diperlukan, maka bagian di memori yang tidak diperlukan akan dikeluarkan dari memori fisik (swapout) dan diganti (swap-in) oleh bagian disk yang diperlukan itu. Memori virtual diimplementasikan dalam sistem multiprogramming. Misalnya: 10 program dengan ukuran 2 Mb dapat berjalan di memori berkapasitas 4 Mb. Tiap program dialokasikan 256 Kbyte dan bagian-bagian proses swap in) masuk ke dalam memori fisik begitu diperlukan dan akan keluar (swap out) jika sedang tidak diperlukan. Dengan demikian, sistem multiprogramming menjadi lebih efisien. Prinsip dari memori virtual yang perlu diingat adalah bahwa "Kecepatan maksimum eksekusi proses di memori virtual dapat sama, tetapi tidak pernah melampaui kecepatan eksekusi proses yang sama di sistem yang tidak menggunakan memori virtual". Memori virtual dapat diimplementasikan dengan dua cara: 1. Demand paging. Menerapkan konsep pemberian halaman pada proses. 2. Demand segmentation. Lebih kompleks diterapkan karena ukuran segmen yang bervariasi. Demand segmentation tidak akan dijelaskan pada pembahasan ini. Demand Paging Demand paging adalah salah satu implementasi dari memori virtual yang paling umum digunakan. Demand paging pada prinsipnya hampir sama dengan permintaan halaman (paging) hanya saja halaman (page) tidak akan dibawa ke ke dalam memori fisik sampai ia benar-benar diperlukan. Untuk itu diperlukan bantuan perangkat keras untuk mengetahui lokasi dari halaman saat ia diperlukan. Karena demand paging merupakan implementasi dari memori virtual, maka keuntungannya sama dengan keuntungan memori virtual, yaitu: Sedikit I/O yang dibutuhkan. Sedikit memori yang dibutuhkan. Respon yang lebih cepat. Dapat melayani lebih banyak pengguna. Ada tiga kemungkinan kasus yang dapat terjadi pada saat dilakukan pengecekan pada halaman yang dibutuhkan, yaitu: halaman ada dan sudah berada di memori-statusnya valid ("1"); halaman ada tetapi masih berada di disk atau belum berada di memori (harus menunggu sampai dimasukkan)-statusnya tidak valid ("0"). Halaman tidak ada, baik di memori maupun di disk (invalid reference). Pengaturan bit dilakukan dengan:

Bit=1 berarti halaman berada di memori. Bit=0 berarti halaman tidak berada di memori. Apabila ternyata hasil dari translasi, bit halaman bernilai 0, berarti kesalahan halaman terjadi. Kesalahan halaman adalah interupsi yang terjadi ketika halaman yang diminta tidak berada di memori utama. Proses yang sedang berjalan akan mengakses tabel halaman untuk mendapatkan referensi halaman yang diinginkan. Kesalahan halaman dapat diketahui dari penggunaan skema bit valid-tidak valid. Bagian inilah yang menandakan terjadinya suatu permintaan halaman (demand paging). Jika proses mencoba mengakses halaman dengan bit yang diset tidak valid maka akan terjadi kesalahan halaman. Proses akan terhenti, sementara halaman yang diminta dicari di disk. Penanganan Kesalahan Halaman Penanganan kesalahan halaman dapat dituliskan sebagai berikut: CPU mengambil instruksi dari memori untuk dijalankan. Lakukan pengambilan instruksi dari halaman pada memori dengan mengakses tabel halaman. Pada tabel halaman bit terset tidak valid. Terjadi interupsi kesalahan halaman, maka interupsi itu menyebabkan trap pada sistem operasi. Jika referensi alamat yang diberikan ke sistem operasi ilegal atau dengan kata lain halaman yang ingin diakses tidak ada maka proses akan dihentikan. Jika referensi legal maka halaman yang diinginkan diambil dari disk. Halaman yang diinginkan dibawa ke memori fisik. Mengatur ulang tabel halaman sesuai dengan kondisi yang baru. Jika tidak terdapat ruang di memori fisik untuk menaruh halaman yang baru maka dilakukan penggantian halaman dengan memilih salah satu halaman. Penggantian halaman dilakukan menurut algoritma tertentu yang akan dibahas pada bab selanjutnya. Jika halaman yang digantikan tersebut sudah dimodifikasi oleh proses maka halaman tersebut harus ditulis kembali ke disk. Setelah halaman yang diinginkan sudah dibawa ke memori fisik maka proses dapat diulang. Kesalahan halaman menyebabkan urutan kejadian berikut: 1. Ditangkap oleh Sistem Operasi. 2. Menyimpan register pengguna dan proses. 3. Tetapkan bahwa interupsi merupakan kesalahan halaman. 4. Periksa bahwa referensi halaman adalah legal dan tentukan lokasi halaman pada disk. 5. Kembangkan pembacaan disk ke frame kosong. 6. Selama menunggu, alokasikan CPU ke pengguna lain dengan menggunakan penjadwalan CPU. 7. Terjadi interupsi dari disk bahwa I/O selesai. 8. Simpan register dan status proses untuk pengguna yang lain. 9. Tentukan bahwa interupsi berasal dari disk. 10. Betulkan tabel halaman dan tabel yang lain bahwa halaman telah berada di memori. 11. Tunggu CPU untuk untuk dialokasikan ke proses tersebut 12. Kembalikan register pengguna, status proses, tabel halaman, dan meneruskan instruksi interupsi. Pada berbagai kasus, ada tiga komponen yang kita hadapi pada saat melayani kesalahan halaman: Melayani interupsi kesalahan halaman Membaca halaman Mengulang kembali proses Kelebihan/Kekurangan

Manajemen memori dengan permintaan halaman (demand paging) memiliki kelebihan yang sama dengan manajemen memori dengan pemberian halaman, antara lain menghilangkan masalah fragmentasi eksternal sehingga tidak diperlukan pemadatan (compaction). Selain itu permintaan halaman memiliki kelebihan yang lain, yaitu: a. Memori virtual yang besar. Memori logis tidak lagi terbatas pada ukuran memori fisik. Hal ini berarti bahwa besar suatu program tidak akan terbatas hanya pada ukuran memori fisik tersedia. b. Penggunaan memori yang lebih efisien. Bagian program yang dibawa ke memori fisik hanyalah bagian program yang dibutuhkan sementara bagian lain yang jarang digunakan tidak akan dibawa. c. Meningkatkan derajat multiprogamming. Derajat multiprogramming menunjukkan banyaknya proses yang berada di memori fisik. Dengan penggunaan permintaan halaman maka ukuran suatu program di memori akan lebih kecil mengingat bahwa hanya bagian program yang diperlukan saja yang akan dibawa ke memori fisik. Penggunaan memori yang lebih kecil oleh sebuah proses memberi sisa ruang memori fisik yang lebih besar sehingga lebih banyak proses yang bisa berada di memori fisik. Hal ini berpengaruh pada utilisasi CPU dan throughput (banyaknya proses yang dapat diselesaikan dalam satu satuan waktu) yang lebih besar. d. Penggunaan I/O yang lebih sedikit. Hal ini dapat terjadi karena permintaan halaman hanya membawa bagian yang diperlukan dari suatu program. Penggunaan I/O pada permintaan halaman lebih sedikit dibandingkan dengan manajemen memori lain yang membawa seluruh memori logis sebuah program ke memori fisik. Permintaan halaman juga memiliki beberapa kekurangan, antara lain: a. Processor overhead. Interupsi kesalahan halaman memberikan kerja tambahan kepada CPU untuk mengambil halaman yang tidak berada di memori fisik pada saat diperlukan. b. Thrashing. Suatu kondisi yang terjadi akibat kesalahan halaman yang melewati batas normal. Akibat dari thrashing adalah CPU lebih banyak mengurusi kesalahan halaman daripada menangani proses itu sendiri. Hal ini dapat menurunkan kinerja dari CPU. Kinerja Demand paging Salah satu hal yang menjadi pertimbangan dalam penggunaan permintaan halaman adalah waktu akses memori menjadi lebih lambat akibat perlunya penanganan kesalahan halaman. Halaman Fault Time Lamanya waktu untuk mengatasi kesalahan halaman disebut dengan halaman fault time. Ada tiga faktor utama yang mempengaruhi halaman fault time ini, yaitu: 1. Melayani interupsi dari kesalahan halaman. Aktivitas yang dilakukan dalam melayani kesalahan halaman ini, yaitu: a. Memberitahu sistem operasi saat terjadinya kesalahan halaman. b. Menyimpan status dari proses bersangkutan. c. Memeriksa apakah referensi halaman yang diberikan legal atau tidak. Bila referensi yang diberikan legal maka dicari lokasi dari halaman tersebut di disk. 2. Pembacaan halaman. Aktivitas yang terjadi dalam pembacaan halaman ini, yaitu: a. Menunggu dalam antrian sampai mendapatkan giliran untuk membaca. b. Menunggu disk untuk membaca lokasi yang diminta. Disk melakukan kerja mekanis untuk membaca data sehingga lebih lambat dari memori. c. Mengirim halaman yang diminta ke memori fisik. 3. Pengulangan instruksi. Aktivitas yang terjadi untuk mengulangi instruksi ini, yaitu: a. Interupsi proses yang sedang berjalan untuk menandakan bahwa proses yang sebelumnya terhenti akibat kesalahan halaman telah selesai dalam membaca halaman yang diminta.

b. Menyimpan status dari proses yang sedang berjalan. c. Membetulkan tabel halaman untuk menunjukkan bahwa halaman yang ingin dibaca sudah ada di memori fisik. d. Mengambil kembali status proses bersangkutan untuk selanjutnya dijalankan di CPU. Effective Access Time Untuk mengetahui kinerja permintaan halaman dapat dilakukan dengan menghitung effective access timenya. Effective Access Time (EAT) = (1-p) x ma + p x halaman fault time - p = kemungkinan terjadi halaman fault (0 < p < 1) - ma = memory access time (10 - 200 ns) Jika p = 0 maka tidak ada kesalahan halaman, sehingga EAT = memory access time. Jika p = 1 maka semua pengaksesan mengalami kesalahan halaman. Untuk menghitung EAT, kita harus mengetahui waktu yang dibutuhkan untuk melayani kesalahan halaman. Contoh: Diketahui waktu pengaksesan memori (ma) = 100 ns, waktu kesalahan halaman (halaman fault time)=20 ms. Berapakah Effective Access Time-nya? EAT = (1-p) x ma + p x halaman fault time = (1-p) x 100 + p x 20.000.000 = 100 - 100p + 20.000.000p = 100 + 19.999.900p nanosecond Pada permintaan halaman diusahakan agar kemungkinan terjadinya halaman fault rendah karena bila EAT-nya meningkat, maka proses akan berjalan lebih lambat. Persyaratan Perangkat Keras Locality of References Jika terjadi banyak kesalahan halaman maka efisiensi sistem akan menurun. Oleh karena itu, kemungkinan terjadinya kesalahan halaman harus dikurangi atau dibatasi dengan memakai prinsip lokalitas ini. Prinsip lokalitas ini dibagi menjadi 2 bagian: temporal. Lokasi yang sekarang ditunjuk kemungkinan akan ditunjuk lagi. spatial. Kemungkinan lokasi yang dekat dengan lokasi yang sedang ditunjuk akan ditunjuk juga. Pure Demand Paging Penjalanan (running) sebuah program dimulai dengan membawa hanya satu halaman awal ke main memori. Setelah itu, setiap kali terjadi permintaan halaman, halaman tersebut baru akan dimasukkan ke dalam memori. Halaman akan dimasukkan ke dalam memori hanya bila diperlukan. Multiple Page Fault Kesalahan halaman yang terjadi karena satu instruksi memerlukan pengaksesan beberapa halaman yang tidak ada di memori utama. Kejadian seperti ini dapat mengurangi kinerja dari program. Pemberian nomor halaman melibatkan dukungan perangkat keras, sehingga ada persyaratan perangkat keras yang harus dipenuhi. Perangkat-perangkat keras tersebut sama dengan yang digunakan untuk paging dan swapping, yaitu: Tabel halaman "bit valid-tidak valid" Valid ("1") artinya halaman sudah berada di memori Tidak valid ("0") artinya halaman masih berada di disk.

Memori sekunder, digunakan untuk menyimpan proses yang belum berada di memori. Lebih lanjut, sebagai konsekuensi dari persyaratan ini, akan diperlukan pula perangkat lunak yang dapat mendukung terciptanya pemberian nomor halaman. Restart Instruction Salah satu penanganan jika terjadi kesalahan halaman adalah kebutuhan akan pengulangan instruksi. Penanganan pengulangam instruksi berbeda-beda tergantung pada kemungkinan terjadinya kesalahan halaman dan kompleksitas instruksi. 1. Jika kesalahan halaman terjadi saat pengambilan instruksi maka pengulangan proses dilakukan dengan mengambil instruksi itu lagi. Creation Process Proses berbagi pakai ini adalah proses berbagi pakai halaman memori virtual. Karena setiap proses membutuhkan halaman tersendiri maka akan dibutuhkan teknik untuk mengelola halaman dan pembuatannya. Teknik untuk mengoptimasi pembuatan dan penggunaan halaman proses adalah dengan Copy-On-Write dan Memory-Mapped-File.