Saturday, April 20, 2013

Sistem Operasi

Free Music Online
Free Music Online




Sistem Operasi

Pengertian Sistem Operasi

pengertian sistem operasi

Pengertian Sistem operasi Komputer adalah perangkat lunak komputer atau software yang bertugas untuk melakukan kontrol dan manajemen perangkat keras dan juga operasi-operasi dasar sistem, termasuk menjalankan software aplikasi seperti program-program pengolah data yang bisa digunakan untuk mempermudah kegiatan manusia. Sistem Operasi dalam bahasa Inggrisnya disebut Operating System, atau biasa di singkat dengan OS.
Sistem Operasi komputer merupakan software pada lapisan pertama yang diletakkan pada memori komputer, (memori komputer dalam hal ini ada Hardisk, bukan memory ram) pada saat komputer dinyalakan. Sedangkan software-software lainnya dijalankan setelah Sistem Operasi Komputer 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.

Sistem Operasi berfungsi sebagai penghubung antara lapisan hardware dan lapisan software. selain itu, Sistem Operasi komputer juga melakukan semua perintah perintah penting dalam komputer, serta menjamin aplikasi-aplikasi yang berbeda fungsinya dapat berjalan lancar secara bersamaan tanpa hambatan. Sistem Operasi Komputer menjamin aplikasi perangkat lunak lainnya bisa memakai memori, melakukan input serta output terhadap peralatan lain, dan mempunya akses kepada sistem file. Jika beberapa aplikasi berjalan secara bersamaan, maka Sistem Operasi Komputer akan mengatur jadwal yang tepat, sehingga sebisa mungkin semua proses pada komputer yang berjalan mendapatkan waktu yang cukup untuk menggunakan CPU dan tidak saling mengganggu dengan perangkat yang lain.

 Contoh Sistem Operasi Komputer

Contoh-contoh dari Sistem operasi Komputer misalnya adalah Windows, Linux, MacOS, dan lain lain. Di bawah ini merupakan tampilan antarmuka sistem operasi Windows 7, Linux (ubuntu), dan Mac OS X
tampilan antar muka windows 7

Pengertian Sistem Operasi Komputer

tampilan antar muka linux Ubuntu

tampilan antar muka sistem operasi ubuntu

Tampilan antar muka sistem operasi Mac OS X

tampilan antar muka sistem operasi mac os x





1.1 APAKAH SISTEM OPERASI ?
Sistem operasi adalah program yang bertindak sebagai perantara antara user
dengan perangkat keras komputer. Sistem operasi digunakan untuk mengeksekusi
program user dan memudahkan menyelesaikan permasalahan user. Selain itu dengan
adanya sistem operasi membuat sistem komputer nyaman digunakan. Sistem operasi
mempunyai tujuan untuk menggunakan perangkat keras komputer secara efisien.
Secara umum komponen sistem komputer terdiri dari :
1. Perangkat Keras, merupakan sumber daya utama untuk proses komputasi.
Perangkat keras komputer terdiri dari : CPU, memory dan perangkat input
output.
BAB 1 PENGENALAN SISTEM OPERASI 2
2. Sistem Operasi, mempunyai tugas untuk melakukan control dan koordinasi
penggunaan perangkat keras pada berbagai program aplikasi untuk user-user
yang berbeda.
3. Program Aplikasi, menentukan cara sumber daya sistem digunakan untuk
menyelesaikan permasalahan komputasi dari user, contohnya compiler, sistem
basis data, video games, program bisnis dan lain-lain.
4. User yang menggunakan sistem, terdiri dari orang, mesin atau komputer lain.
Hubungan antara komponen-komponen sistem komputer diatas dapat dilihat
pada Gambar 1-1.

Sistem operasi didefinisikan sebagai :
• Resource allocator
Sistem operasi mengatur dan mengalokasikan sumber daya – sumber daya
sistem komputer
• Program control
Gambar 1-1: Komponen-komponen sistem komputer
BAB 1 PENGENALAN SISTEM OPERASI 3
Sistem operasi melakukan control eksekusi dari program user dan operasi input
output.
• Kernel
Sistem operasi sering disebut kernel, yaitu suatu program yang berjalan
sepanjang waktu (selain program aplikasi).
1.2 SISTEM MAINFRAME
Sistem komputer pendahulu secara fisik berbentuk mesin besar yang disebut
sistem mainframe. Untuk menjalankan sistem ini dilakukan dari suatu console.
Perangkat input yang digunakan berupa card reader dan tape drive. Perangkat output
yang digunakan berupa line printer, tape drive dan card punch. Kemudian, user
menyiapkan job yang terdiri dari program, data dan beberapa informasi kontrol (control
card) dan dikirimkan ke operator komputer. Job biasanya dalam bentuk punch card.
Beberapa waktu kemudian (dalam hitungan waktu menit, jam atau hari), output
ditampilkan. Output berupa hasil program, apabila terjadi error pada program memory
dan register akan berisi kosong.
Sistem operasi pada komputer mainframe sangat sederhana. Task utama
mengirim control secara otomatis dari satu job ke job berikutnya. Sistem operasi selalu
residen di memory yang disebut dengan resident monitor. Gambar 1-2 adalah gambaran
layout memori pada sistem batch sederhana.
Untuk meningkatkan kecepatan proses, job yang sama perlu dikumpulkan
bersama (batch) dan dijalankan oleh komputer sebagai satu kelompok. Kemudian
programmer memberikan program kepada operator. Operator akan mengurut program
yang sama dan kemudian komputer akan menjalankan setiap kumpulan program
tersebut. Output dari setiap job dikirim kembali kepada programmer.
Untuk menghindari adanya waktu nganggur CPU yang cukup lama maka
dikembangkan suatu teknik mengurutan kerja job secara otomatis. Teknik ini mampu
mentrasfer kontrol secara otomatis dari suatu job ke job berikutnya. Inilah bentuk sistem
operasi pertama kali. Program kecil yang bersifat residen di memori berisi urutan-urutan
job yang akan berpindah secara oromatis inilah yang disebut dengan Resident Monitor.
BAB 1 PENGENALAN SISTEM OPERASI 4

Jika komputer dinyalakan, maka sistem akan menunjuk ke resident monitor, secara
otomatis kontrol akan menunjuk ke program tersebut.
1.3 SISTEM BATCH MULTIPROGRAM
Beberapa job dikumpulkan oleh sistem operasi pada memory utama pada waktu
yang sama, seperti pada Gambar 1-3. Kumpulan job ini merupakan bagian dari job
yang disimpan pada pool (job pool). Job pool berisi job-job yang sudah siap dieksekusi.
Jumlah job dapat disimpan bersama-sama pada memory biasanya lebih kecil daripada
jumlah job yang dapat berada pada job pool. Sistem operasi mengambil beberapa job
yang siap untuk dieksekusi untuk diletakkan di memori utama. Jika job yang sedang
dieksekusi menunggu beberapa task (seperti proses mount tape drive atau operasi I/O
yang harus diselesaikan), maka job tersebut diganti dengan job berikutnya.
Pada sistem multiprogramming, sistem operasi harus menyediakan mekanisme
untuk manajemen memori, penjadwalan CPU dan manajemen disk. Sistem operasi
multiprogram menyediakan supply untuk I/O routine. Sistem harus dapat
mengalokasikan memory untuk beberapa job. Beberapa job yang sudah siap dieksekusi
akan dipilih oleh sistem job mana yang akan dieksekusi oleh CPU. Perangkat apa saja
yang diperlukan oleh setiap job juga harus dialokasikan oleh sistem.
Gambar 1-2: Memory layout pada simple batch system
BAB 1 PENGENALAN SISTEM OPERASI 5

1.4 SISTEM TIME SHARING
Time sharing atau multitasking adalah pengembangan dari sistem multiprogram.
Beberapa job yang berada pada memory utama dieksekusi oleh CPU secara bergantian.
CPU hanya bisa menjalankan program yang berada pada memory utama. Perpindahan
antar job terjadi sangat sering sehingga user dapat berinteraksi dengan setiap program
pada saat dijalankan. Suatu job akan dipindahkan dari memori ke disk dan sebaliknya.
Sistem time sharing juga disebut dengan sistem komputasi interaktif, dimana
sistem komputer menyediakan komunikasi on-line antara user dengan sistem. User
memberikan instruksi pada sistem operasi atau program secara langsung dan menerima
respon segera. Perangkat input berupa keyboard dan perangkat output berupa display
screen, seperti cathode-ray tube (CRT) atau monitor. Bila sistem operasi selesai
mengeksekusi satu perintah, makan sistem akan mencari pernyataan berikutnya dari
user melalui keyboard. Sistem menyediakan editor interaktif untuk menulis program
dan sistem debug untuk membantu melakukan debugging program.
Agar user dapat mengakses data dan kode program dengan nyaman, sistem
menyediakan sistem file online. Suatu file adalah kumpulan informasi yang
berhubungan yang didefinisikan oleh pembuatnya. Biasanya, file berupa program (baik
Gambar 1-3: Memory layout pada sistem batch multiprogram
BAB 1 PENGENALAN SISTEM OPERASI 6
bentuk source dan object) dan data. Data file berupa teks dengan format tertentu.
Secara umum, file adalah kumpulan bit, bite, baris atau record. Sistem operasi
mengimplementasikan konsep abstrak dari file dengan mengatur perangkat penyimpan
seperti tape dan disk. File secara normal diorganisasikan dalam logical cluster atau
directory, untuk memudahkan lokasi dan akses file.
1.5 SISTEM DESKTOP
Semakin turunnya harga perangkat keras, dikembangkan sistem komputer untuk
satu user. Jenis sistem komputer ini biasanya disebut dengan personal computer (PC).
Perangkat I/O berupa keyboard dan mouse, dan perangkat output berupa display screen
atau printer yang berkecepatan tinggi.
Personal komputer dikembangkan tahun 1970-an. Sistem ini disebut dengan
mikrokomputer. Sistem operasi masih belum dikembangkan untuk multiuser maupun
multitasking. Tujuan sistem operasi adalah untuk memaksimalkan utilitas CPU dan
peripheral, serta memaksimalkan kenyamanan dan respon user. Sistem operasi yang
dikembangkan adalah Microsoft Windows dan Apple Machintosh. Sistem operasi MSDOS
dari Microsoft yang masih single tasking dikembangkan oleh IBM menjadi OS/2
yang merupakan sistem multitasking.
Berkembangnya sistem komputer dari mainframe menjadi mikrokomputer
menunjukkan bahwa sistem operasi mikrokomputer dapat mengadopsi sistem
mainframe.
Contoh perpindahan sistem operasi adalah perkembangan sistem operasi
MULTICS. MULTICS dikembangkan tahun 1965 sampai 1970 oleh Massachusetts
Institute of Technology (MIT) sebagai utilitas komputasi yang berjalan pada komputer
mainframe yang besar dan komplek. Kemudian Beel Laboratories mengembangkan
MULTICS dengan mendesain UNIX tahun 1970 untuk minikomputer PDP-11. Tahun
1980, dikembangakan sistem operasi UNIX-like untuk sistem mikrokomputer menyusul
sistem operasi lain yaitu Microsoft Windows NT, IBM OS/2 dan Machintosh.
1.6 SISTEM PARALEL
BAB 1 PENGENALAN SISTEM OPERASI 7
Sistem paralel atau sistem multiprosessor mempunyai lebih dari satu prosessor
yang dapat berkomunikasi, membagi bus, clock dan juga perangkat memory dan
peripheral. Sistem ini disebut sebagai tightly coupled system.
Sistem ini dikembangkan karena beberapa alasan. Salah satu keuntungan dari
sistem ini adalah meningkatkan jumlah proses yang dapat dijalankan pada satu waktu
(throughput). Dengan meningkatkan jumlah prosessor, diharapkan pekerjaan dapat
dikerjakan dalam waktu yang lebih pendek.
Alasan lain dari pengembangan sistem multiprosessor adalah meningkatkan
kehandalan sistem. Jika fungsi dapat didistribusikan pada beberapa prosessor, maka
kegagalan dari satu prosessor tidak akan menghentikan sistem, tetapi hanya
memperlambat sistem. Jika terdapat 10 prosessor dan satu gagal, makan sisa 9
prosessor menggantikan pekerjaan prosessor yang gagal. Keseluruhan sistem hanya
memperlambat 10 persen. Kemampuan untuk melanjutkan penyediaan layanan untuk
menyelamatkan perangkat keras disebut gracefull degradation. Sistem yang didesain
untuk gracefull degradation juga disebut faul- tolerant.
Sistem multi prosessor yang sering digunakan adalah model symmetric
multiprocessing, dimana setiap prosessor menjalankan sistem operasi yang identik dan
komunikasi antar prosesor jika diperlukan. Beberapa sistem menggunakan asymmetric
multiprocessing, dimana setiap prosessor mempunyai tugas tetentu. Prosessor master
mengontrol sistem, prosessor lain menunggu instruksi master atau mempunyai tugas
yang ditentukan oleh master. Skema ini merupakan hubungan master-slave. Prosessor
master menjadwal dan mengalokasikan pekerjaan dari prosessor slave.
Contoh symmetric multiprocessing adalah sistem UNIX versi Encore’s untuk
komputer Multimax Komputer dapat dikonfigurasikan untuk menangani satu lusin
prosessor, semua menjalankan UNIX. Keuntungan dari model ini adalah bahwa
beberapa proses dapat berjalan pada satu waktu (N proses jika terdapat N CPU) tanpa
menyebabkan pengurangan performansi. Sehingga kita dapat mengontrol I/O secara
hati-hati untuk menjamin data mendapatkan prosessor yang tepat. Arsitektur dari
symmetric multiprocessing dapat dilihat pada Gambar 1-4.

BAB 1 PENGENALAN SISTEM OPERASI 8
1.7 SISTEM TERDISTRIBUSI
Tren sistem komputer saat ini adalah mendistribusikan komputasi diantara
beberapa prosessor. Prosessor berkomunikasi dengan prosessor lain melalui saluran
komunikasi, misalnya bus kecepatan tinggi atau saluran telepon. Sistem ini disebut
loosely coupled system atau sistem terdistribusi (distributed system).
Prosessor pada sistem terdistribusi bervariasi ukuran dan fungsinya. Biasanya
terdiri dari mikroposessor, workstation, minikomputer dan sistem komputer generalpurpose.
Prosessor-prosessor ini disebut dengan site, node, komputer atau lainnya.
Keuntungan dari sistem terdistribusi adalah :
• Resource sharing
Jika sejumlah site yang berbeda dihubungkan, maka user pada site satu dapat
menggunakan sumber daya dari site lainya. Sebagai contoh, user pada site A dapat
menggunakan printer laser dari site B. Sebaliknya user B dapat mengakses file user
A.
• Meningkatkan kecepatan komputasi
Jika komputasi tertentu dapat dipartisi dalam sejumlah sub komputasi yang dapat
berjalan secara konkuren, maka sistem terdistribusi dapat mendistribusikan
komputasi pada beberapa site untuk menjalankan komputasi secara konkuren.
• Lebih handal
Jika satu site gagal pada sistem terdistribusi, sisa site dapat melanjutkan operasinya.
Jika sistem dibagi sejumlah instalasi besar, maka kegagalan salah satunya tidak
berakibat pada sisa sistem. Sebaliknya, jika sistem dibagi dalam sejumlah mesin
kecil, masing-masing bertanggung jawab pada fungsi sistem yang penting (misalnya
Gambar 1-4: Arsitektur symmetric multiprocessing
BAB 1 PENGENALAN SISTEM OPERASI 9
terminal karakter I/O atau sistem file), maka satu kegagalan dapat menghentikan
oeprasi dari keseluruhan sistem. Secara umum, jika terjadi redudansi pada sistem
(baik perangkat keras maupun perangkat lunak), sistem dapat menjalankan
operasinya meskipun beberapa site gagal.
• Komunikasi
Terdapat beberapa anggota program yang memerlukan mengganti data dengan data
lain pada satu sistem. Sistem Windows contohnya, sering terjadi membagi data atau
transfer data antara display. Jika beberapa site dihubungkan dengan lainnya dengan
jaringan komunikasi, prosessor pada site yang berbeda dapat menukar informasi.
User melakukan transfer file atau komunikasi dengan user lain melalui electronic
mail. Seorang user dapat mengirim mail ke user lain pada site yang sama atau site
yang berbeda.
Sistem terdistribusi memerlukan infrastruktur jaringan, berupa local area
network (LAN) atau wide area network (WAN). Sistem terdistribusi biasanya disebut
dengan sistem client-server atau peer-to-peer. Arsitektur dari sistem client server dapat
dilihat pada Gambar 1-5.
1.8 SISTEM TERKLASTER
Sistem terklaster (clustered system) adalah pengembangan dari sistem
terdistribusi. Perbedaan sistem terklaster dengan sistem terdistribusi adalah pada sistem
terklaster memungkinkan dua atau lebih sistem untuk membagi penyimpan sekunder
(storage) bersama-sama. Sistem ini mempunyai kehandalan sistem yang tinggi seperti
pada sistem terdistribusi.

Gambar 1-5: Arsitektur sistem client server
BAB 1 PENGENALAN SISTEM OPERASI 10
Sistem terklaster dapat berupa model asymmetric clustering dimana satu serber
menjalankan aplikasi sementara server lainnya standby. Model lainnya adalah
symmetric clustering dimana semua host menjalankan aplikasi.
1.9 SISTEM REAL TIME
Salah satu bentuk sistem operasi untuk keperluan khusus adalah sistem real
time. Sistem real time digunakan bila terdapat kebutuhan keteptan waktu pa operasi
prosessor atau aliran data sehingga sering digunakan untuk perangkat control pada suatu
aplikasi seperti mengontrol percobaan keilmuan, sistem medical imaging, sistem control
industri dan beberapa sistem display. Pada sistem real time harus didefinisikan batasan
waktu yang tetap. Pemrosesan harus dikerjakan dalam waktu tertentu atau sistem akan
gagal. Sebagai contoh, jika lengan robot tidak diinstruksikan untuk berhenti segera
maka dapat merusak robot tersebut.
Terdapat dua bentuk sistem real time. Sistem hard real time menjamin tugas
kritis diselesaikan tepat waktu. Pada sistem ini penyimpan sekunder terbatas atau tidak
digunakan, data langsung dikirim ke memory atau read-only memory (ROM) dalam
waktu singkat. Pada sistem hard real time terjadi konflik pada sistem time sharing dan
tidak didukung oleh sistem operasi tujuan umum. Bentuk lainnya adalah soft real time
dimana tugas kritis mendapatkan prioritas lebih tinggi dari tugas lain dan setelah satu
task selesai maka task berprioritas ini akan diselesaikan. Sistem ini terbatas pada
industri pengontrol robot. Sangat berguna pada aplikasi multimedia dan virtual rality
yang membutuhkan fitur sistem operasi tertentu.
1.10 SISTEM HANDHELD
Sekitar tahun 1990-an dikembangkan sistem yang lebih kecil dari
mikrokompuer yang disebut dengan sistem handheld dalam bentuk personal digital
assistants (PDA). Pada beberapa sistem terdapat telepon selular. Sistem ini
mempunyai memory yang terbatas, prosessor dengan kecepatan rendah dan display
screen yang kecil. Perkembangan sistem komputer dari sistem mainframe sampai
handheld dan perkembangan sistem operasi dapat dilihat pada Gambar 1-6.
BAB 1 PENGENALAN SISTEM OPERASI 11
LATIHAN SOAL :
1. Apa yang dimaksud sistem :
a. Batch system
b. Multiprogramming
c. Time sharing
d. Paralel (multiprocessor)
e. Terdistribusi
f. Cluster
g. Real time

Gambar 1-6: Migrasi sistem komputer dan sistem operasi

Sejarah Dan Jenis Sistem Operasi

Sejarah Sistem Operasi Komputer dan Jenisnya

Sejarah sistem operasi komputer dibagi kedalam 4 generasi yaitu :

  • Sistem operasi generasi pertama (Tahun 1945 - 1955).
    Sistem operasi generasi pertama merupakan awal perkembangan sistem komputasi elektronik sebagai pengganti sistem komputasi mekanik. Pada generasi ini belum ada yang namanya sistem operasi komputer, maka sistem komputer diberi instruksi yang harus dikerjakan secara langsung.
  • Sistem operasi generasi ke-dua (Tahun 1955 - 1965).Sistem operasi generasi ke-dua memperkenalkan BPS (batch processing sistem) yaitu pekerjaan yang di kerjakan dalam satu rangkaian, lalu di eksekusi secara berururan. Pada generasi ini sistem komputer belum dilengkapi dengan sistem operasi, tetapi beberapa fungsi sistem operasi telah ada.
  • Sistem operasi generasi ke-tiga (Tahun 1965 - 1960).
    Pada generasi ini perkembangan sistem operasi dikembangkan untuk melayani banyak pemakai sekaligus, dimana user atau penguna dapat berkomunikasi lewat terminal secara online ke komputer, maka sistem operasi menjadi multi user (Digunakan oleh banyak penguna sekaligus). Dan multi programing (Melayani banyak program sekaligus).
  • Sistem operasi generasi ke-empat (Tahun 1980an--pasca 1980an).
    Dewasa ini sistem operasi digunakan untuk jaringan komputer, dimana user menyadari keberadaan komputer - komputer yang saling terhubung satu dengan yang lain.
Nah itulah tadi sejarah sistem operasi berdasarkan generasinya. Berikutnya Kita lanjut kepada jenis - jenis sistem operasi pada komputer.

Jenis - Jenis sistem operasi komputer

Jenis sistem operasi yang bisa digunakan antara lain :
  • Posix, Unix, Ms Dos, Ms WINDOWS, Linux, Apple dll.
    Dari sekian banyak sistem operasi dapat dibagi menjadi dua berdasarkan kontak (interface) yaitu :
    • Coman line interface (CLI)
      Coman line interface (CLI) adalah kontak user dengan perangkat keras berbasis text (huruf, angka, dan simbol atau tanda baca) contonya : MS Dos, posix, linux.
    • Grafical user interface (GUI)
      Grafical user interface (GUI) adalah kontak user dengan perangkat keras berbasis gambar atau grafik. contohnya: Ms windows, unix, Linux

 Fungsi Dari sistem Operasi Komputer

Fungsi sistem operasi terbagi menjadi tiga, yaitu :
  • Sebagai pengatur penggunaan perangkat keras oleh berbagai program Aplikasi serta para user.
  • Sebagai pengawas penggunaan perangkat keras, Program aplikasi dan user (resource allocator).
  • Sebagai pengendali yang bertujuan untuk Menghindari kekeliruan (error) dan penggunaan komputer yang tidak perlu.

Sasaran sistem operasi komputer

Sistem operasi mempunyai tiga sasaran utama, yaitu :
  • Kenyamanan (Membuat user komputer menjadi lebih nyaman dalam mengunakan komputer).
  • Efisien (Penggunaan sumber dasa sistem komputer tepat tujuan "terarah dan terkendali").
  • Evolusi (Sistem Operasi harus dibagun, sehingga memungkinkan dan memudahkan pengembangan, pengujian dan menciptakan sistem operasi baru yang lebih bagus lagi.

 


 

Memory

Random Access Memory (RAM)




Read Only Memory (ROM)







MANAJEMEN MEMORI

Memori adalah pusat dari operasi pada sistem komputer modern, berfungsi sebagai tempat penyimpanan informasi yang harus diatur dan dijaga sebaik-baiknya. Memori adalah array besar dari word atau byte, yang disebut alamat. CPU mengambil instruksi dari memory berdasarkan nilai dari program counter.
Sedangkan manajemen memori adalah suatu kegiatan untuk mengelola memori komputer. Proses ini menyediakan cara mengalokasikan memori untuk proses atas permintaan mereka, membebaskan untuk digunakan kembali ketika tidak lagi diperlukan serta menjaga alokasi ruang memori bagi proses. Pengelolaan memori utama sangat penting untuk sistem komputer, penting untuk memproses dan fasilitas masukan/keluaran secara efisien, sehingga memori dapat menampung sebanyak mungkin proses dan sebagai upaya agar pemogram atau proses tidak dibatasi kapasitas memori fisik di sistem komputer.
a. Jenis Memori
• Memori Kerja
- ROM/PROM/EPROM/EEPROM
- RAM
- Cache memory
• Memori Dukung
- Floppy
- Harddisk
- CD
b. Fungsi manajemen memori :
Manajemen memori merupakan salah satu bagian terpenting dalam sistem operasi. Memori perlu dikelola sebaik-baiknya agar :
  • Utilitas CPU meningkat.
  • Data dan instruksi dapat diakses dengan cepat oleh CPU.
  • Tercapai efisiensi dalam pemakaian memori yang terbatas.
  • Transfer data dari/ke memori utama ke/dari CPU dapat lebih efisien.
  • Mengelola informasi yang dipakai dan tidak dipakai.
  • Mengalokasikan memori ke proses yang memerlukan.
  • Mendealokasikan memori dari proses telah selesai.
  • Mengelola swapping atau paging antara memori utama dan disk.
1. Isi Memori
Instruksi eksekusi yang umum, contohnya, pertama mengambil instruksi dari memori. Instruksi dikodekan dan mungkin mengambil operand dari memory. Setelah instruksi dieksekusi pada operand, hasilnya ada yang dikirim kembali ke memory. Sebagai catatan, unit memory hanya merupakan deretan alamat memory; tanpa tahu bagaimana membangkitkan (instruction counter, indexing, indirection, literal address dan lainnya) atau untuk apa (instruksi atau data). Oleh karena itu, kita dapat mengabaikan bagaimana alamat memori dibangkitkan oleh program, yang lebih menarik bagaimana deretan alamat memori dibangkitkan oleh program yang sedang berjalan.
a. Pengikatan Alamat (Address Binding)
Pengikatan alamat adalah cara instruksi dan data (yang berada di disk sebagai file yang dapat dieksekusi) dipetakan ke alamat memori. Sebagian besar sistem memperbolehkan sebuah proses user (user process) untuk meletakkan di sembarang tempat dari memori fisik. Sehingga, meskipun alamat dari komputer dimulai pada 00000, alamat pertama dari proses user tidak perlu harus dimulai 00000. Instruksi pengikatan instruksi dan data ke alamat memori dapat dilakukan pada saat :
  • Compile time
    Jika lokasi memori diketahui sejak awal, kode absolut dapat dibangkitkan, apabila terjadi perubahan alamat awal harus dilakukan kompilasi ulang.
  • Load time
    Harus membangkitkan kode relokasi jika lokasi memori tidak diketahui pada saat waktu kompilasi.
  • Execution time
    Pengikatan ditunda sampai waktu eksekusi jika proses dapat dipindahkan selama eksekusi dari satu segmen memori ke segmen memori lain.
b. Dinamic Loading
Untuk memperoleh utilitas ruang memori, dapat menggunakan dynamic loading. Dengan dynamic loading, sebuah rutin tidak disimpan di memori sampai dipanggil. Semua rutin disimpan pada disk dalam format relocatable load. Mekanisme dari dynamic loading adalah program utama di-load dahulu dan dieksekusi. Bila suatu routine perlu memanggil routine lain, routine yang dipanggil lebih dahulu diperiksa apakah rutin yang dipanggil sudah di-load. Jika tidak, relocatable linking loader dipanggil untuk me-load rutin yg diminta ke memori dan meng-ubah tabel alamat.
Keuntungan dari dynamic loading adalah rutin yang tidak digunakan tidak pernah di-load. Skema ini lebih berguna untuk kode dalam jumlah besar diperlukan untuk menangani kasus-kasus yang jarang terjadi seperti error routine. Dinamic loading tidak memerlukan dukungan khusus dari sistem operasi.
c. Dinamic Linking
Sebagian besar sistem operasi hanya men-support static linking, dimana sistem library language diperlakukan seperti obyek modul yang lain dan dikombinasikan dengan loader ke dalam binary program image. Dinamic linking biasanya digunakan dengan sistem library, seperti language subroutine library. Tanpa fasilitas ini, semua program pada sistem perlu mempunyai copy dari library language di dalam executable image. Bagaimanapun, tidak seperti dynamic loading, dynamic linking membutuhkan beberapa dukungan dari sistem operasi
d. Overlay
Sebuah proses dapat lebih besar daripada jumlah memori yang dialokasikan untuk proses, teknik overlay biasanya digunakan untuk kasus ini. Teknik Overlay biasanya digunakan untuk memungkinkan sebuah proses mempunyai jumlah yang lebih besar dari memori fisik daripada alokasi memori yang diperuntukkan. Overlay tidak membutuhkan dukungan khusus dari sistem operasi. User dapat mengimplementasikannya secara lengkap menggunakan struktur file sederhana, membaca dari file ke memori dan meloncat ke memori dan mengeksekusi instruksi read yang lebih baru.
2. RUANG ALAMAT LOGIKA DAN RUANG ALAMAT FISIK
Alamat yang dibangkitkan oleh CPU disebut alamat logika (logical address) dimana alamat terlihat sebagai uni memory yang disebut alamat fisik (physical address). Tujuan utama manajemen memori adalah konsep meletakkan ruang alamat logika ke ruang alamat fisik. Hasil skema waktu kompilasi dan waktu pengikatan alamat pada alamat logika dan alamat memori adalah sama. Tetapi hasil skema waktu pengikatan alamat waktu eksekusi berbeda. dalam hal ini, alamat logika disebut dengan alamat maya (virtual address). Himpunan dari semua alamat logika yang dibangkitkan oleh program disebut dengan ruang alamat logika (logical address space); himpunan dari semua alamat fisik yang berhubungan dengan alamat logika disebut dengan ruang alamat fisik (physical address space). Memory Manajement Unit (MMU) adalah perangkat keras yang memetakan alamat virtual ke alamat fisik. Pada skema MMU, nilai register relokasi ditambahkan ke setiap alamat yang dibangkitkan oleh proses user pada waktu dikirim ke memori.
3. SWAPPING
Swapping merupakan pemindahan proses dari memori utama ke disk dan kembali lagi. Sebuah proses harus berada di memori untuk dieksekusi. Proses juga dapat ditukar (swap) sementara keluar memori ke backing store dan kemudian dibawa kembali ke memori untuk melanjutkan eksekusi. Backing store berupa disk besar dengan kecepatan tinggi yang cukup untuk meletakkan copy dari semua memory image untuk semua user, sistem juga harus menyediakan akses langsung ke memory image tersebut.
4. ALOKASI BERURUTAN
Memori utama biasanya dibagi ke dalam dua partisi yaitu untuk
  • Sistem operasi biasanya diletakkan pada alamat memori rendah dengan vektor interupsi
  • Proses user yang diletakkan pada alamat memori tinggi.
    Alokasi proses user pada memori berupa single partition allocation atau multiple partition allocation.
a. Single Partition Allocation
Pada single partition allocation diasumsikan sistem operasi ditempatkan di memori rendah dan proses user dieksekusi di memori tinggi. Kode dan data sistem operasi harus diproteksi dari perubahan tak terduga oleh user proses.
b. Multiple Partition Allocation
Pada multiple partition allocation, mengijinkan memori user dialokasikan untuk proses yang berbeda yang berada di antrian input (input queue) yang menunggu dibawa ke memori. Terdapat dua skema yaitu partisi tetap (fixed partition) dimana memori dibagi dalam sejumlah partisi tetap dan setiap partisi berisi tepat satu proses. Jumlah partisi terbatas pada tingkat multiprogramming. Digunakan oleh IBM OS/360 yang disebut Multiprogramming with a Fixed number of Task (MFT). Skema yang kedua adalah partisi dinamis (variable partition) merupakan MFT yang digeneralisasi yang disebut Multiprogramming with a Variable number of Tasks (MVT).
c. Fragmentasi
Fragmentasi Eksternal terjadi pada situasi dimana terdapat cukup ruang memori total untuk memenuhi permintaan, tetapi tidak dapat langsung dialokasikan karena tidak berurutan. Fragmentasi eksternal dilakukan pada algoritma alokasi dinamis, terutama strategi first-fit dan best-fit. Fragmentasi Internal terjadi pada situasi dimana memori yang dialokasikan lebih besar dari pada memori yang diminta tetapi untuk satu partisi tertentu hanya berukuran kecil sehingga tidak digunakan.
5. PAGING
a. Konsep Dasar Paging
Paging merupakan kemungkinan solusi untuk permasalahan fragmentasi eksternal dimana ruang alamat logika tidak berurutan; mengijinkan sebuah proses dialokasikan pada memori fisik yang terakhir tersedia. Memori fisik dibagi ke dalam blok-blok ukuran tetap yang disebut frame.
b. Implementasi Sistem Paging
Setiap sistem operasi mempunyai metode sendiri untuk menyimpan tabel page. Beberapa sistem operasi mengalokasikan sebuah tabel page untuk setiap proses. Pointer ke tabel page disimpan dengan nilai register lainnya dari PCB. Pada dasarnya terdapat 3 metode yang berbeda untuk implementasi tabel page :
• Tabel page diimplementasikan sebagai kumpulan dari “dedicated” register.
Register berupa rangkaian logika berkecepatan sangat tinggi untuk efisiensi translasi alamat paging.
• Tabel page disimpan pada main memori dan menggunakan page table base registe” (PTBR) untuk menunjuk ke tabel page yang disimpan di main memori. Penggunakan memori untuk mengimplementasikan tabel page akan memungkinkan tabel page sangat besar (sekitar 1 juta entry).
• Menggunakan perangkat keras cache yang khusus, kecil dan cepat yang disebut associative register atau translation look-aside buffers (TLBs). Merupakan solusi standar untuk permasalahan penggunaan memori untuk implementasi tabel page.
c. Proteksi
Pada model page, proteksi memori menggunakan bit proteksi yang diasosiasikan untuk setiap frame. Biasanya bit proteksi disimpan pada tabel page. Satu bit mendifinisikan satu page untuk “read and write” atau “read-only”. Setiap acuan ke memori melalui tabel page untuk menemukan nomor frame yang benar. Level proteksi yang lebih baik dapat dicapai dengan menambah jumlah bit yang digunakan.
d. Multilevel Paging
Model multilevel paging digunakan pada sistem yang mempunyai ruang alamat logika yang sangat besar yaitu antara 232 s/d 264. Pada sistem ini, tabel page akan menjadi sangat besar. Misalnya untuk sistem dengan ruang alamat logika 32 bit dan ukuran page 4K byte, maka tabel page berisi 1 juta entry (232 / 212). Solusinya yaitu dengan melakukan partisi tabel ke beberapa beberapa bagian yang lebih kecil.
e. Shared Page
Pada skema paging, dimungkinkan untuk sharing kode umum. Bentuk ini penting terutama pada lingkungan time sharing. Satu copy read-only dibagi ke beberapa proses (misalnya editor teks, compiler dan sistem window). Kode yang dibagi harus berada pada lokasi ruang alamat logika yang sama untuk semua proses.
6. SEGMENTASI
Segmentasi adalah skema manajemen memori yang memungkinkan user untuk melihat memori tersebut. Ruang alamat logika adalah kumpulan segmen. Setiap segmen mempunyai nama dan panjang. Spesifikasi alamat berupa nama segmen dan offset. Segment diberi nomor dan disebut dengan nomor segmen (bukan nama segmen) atau segment number. Segmen dibentuk secara otomatis oleh compiler.
a. Konsep Dasar Segmentasi
Konsep segmentasi adalah user atau programmer tidak memikirkan sejumlah rutin program yang dipetakan ke main memori sebagai array linier dalam byte tetapi memori dilihat sebagai kumpulan segmen dengan ukuran berbeda-beda, tidak perlu berurutan diantara segment tersebut. Sebuah program adalah kumpulan segmen. Suatu segmen adalah unit logika seperti program utama, prosedur, fungsi, metode, obyek, variabel lokal, variabel global, blok umum, stack, tabel simbol, array dan lain-lain
.
b. Arsitektur Segmentasi
Alamat logika terdiri dari dua bagian yaitu nomor segmen (s) dan offset (d) yang dituliskan dengan .
Pemetaan alamat logika ke alamat fisik menggunakan tabel segmen (segment table), terdiri dari :
  • Segmen basis (base) berisi alamat fisik awal
  • Segmen limit merupakan panjang segmen Seperti tabel page, tabel segmen dapat berupa register atau memori berkecepatan tinggi.
  • Segment-table base register (STBR) digunakan untuk menyimpan alamat yang menunjuk ke segment table.
  • Segment-table length register (STLR) digunakan untuk menyimpan nilai jumlah segmen yang digunakan program.
  • Untuk alamat logika (s, d), pertama diperiksa apakah segment number s legal (s < STLR), kemudian tambahkan segment number ke STBR, alamat hasil (STBR + s) ke memori dari segment table.
c. Proteksi dan Sharing
Proteksi bit dapat diletakkan pada tabel segmen. Segmen instruksi dapat diproteksi sebagai segmen read-only atau execute only, segmen data dapat diproteksi sebagai segmen read-write. Pemetaan pada perangkat keras memory akan memeriksa bit proteksi untuk mencegah akses yang illegal.

VIRTUAL MEMORY
Overlay :
Program dipecah menjadi bagian-bagian yang dapat dimuat memori, jika memori terlalu kecil untuk menampung seluruhnya sekaligus. Overlay disimpan pada disk dan di-keluar-masukkan dari dan ke memori oleh sistem operasi. Pembagian dilakukan oleh programmer.


 

    Fase                    Fase                  Fase
    Inisialisasi         Pemrosesan          Keluaran   
Struktur Umum Overlay
Virtual memory (Memori maya) :
sistem operasi menyimpan bagian-bagian proses yang sedang digunakan di memori utama dan sisanya di disk.
Virtual memory dapat diimplementasikan dengan tiga cara, yaitu:
Ø  Paging
Ø  Segmentasi
Ø  Kombinasi paging dan segmentasi
1.       Paging
Sistem paging mengimplementasikan ruang alamat besar pada memori kecil menggunakan index register, base register, segment register, dll.
Istilah pada sistem paging:
-       Alamat virtual = V; Alamat yg dihasilkan dgn perhitungan menggunakan index register, base register, segment reg dsb.
-       Alamat nyata (real address = R); Alamat yang tesedia di memori utama fisik.
-       Page; Unit terkecil virtual address space.
-       Page frame; Unit terkecil memori fisik.
-       Page fault; Permintaan alokasi page ke memori yang belum dipetakan.
-       MMU (Memory Management Unit); Chip atau kumpulan chip yang memetakan alamat maya ke alamat fisik.
CPU
card
                                        CPU
                                        mengirim
                                        alamat
                                        virtual
                                        ke MMU
BUS
            MMU mengirim alamat fisik ke memori
Posisi dan fungsi MMU


 

                                                                                                                                                                       
                                                                                          Relasi Antara Alamat Virtual dan Alamat Fisik
2.         Tabel Page
Alamat virtual dibagi menjadi dua bagian:
-       Nomer Page (bit-bit awal)
-       Offset (bit-bit akhir)
Secara metematis: tabel page merupakan fungsi dgn nomer page sebagai argumen dan nomer frame sebagai hasil.
0
0
1
0
0
0
0
0
0
0
0
0
0
1
0
0
    Nomer  page = 2            Offset 12 bit dicopy persis dari input ke output
Tabel Page
0
010
1
Present/absent bit
1
001
1
2
110
1
110
3
000
1
4
100
1
5
011
1
6
000
0
7
000
0
8
000
0
9
101
1
10
000
0
11
111
1
12
000
0
13
000
0
14
000
0
15
000
0
0
0
1
0
0
0
0
0
0
0
0
0
0
1
0
0
Cara Kerja Pemetaan oleh MMU


 

3.         Memori Asosiatif
Tabel Page biasanya diletakkan di memori, dengan demikian diperlukan dua kali referensi ke memori : sekali untuk mencari page, dan sekali untuk mencari data yang akan diproses.
Solusi:
            Komputer dilengkapi dengan komponen hardware kecil untuk pemetaan alamat virtual ke alamat fisik tanpa menelusuri seluruh tabel page.
Komponen ini disebut memori asosiatif atau translation lookaside buffer, yang biasanya berada di dalam MMU, dan berisi beberapa entri.
                            Valid entry
No. page
Modified
Protection
No. frame
1
140
1
RW
31
1
20
0
R  X
38
1
130
1
RW
29
1
129
1
RW
62
1
19
0
R  X
50
1
21
0
R  X
45
1
860
1
RW
14
1
861
1
RW
75
Memori asosiatif untuk mempercepat paging
Bagian referensi memori yang dapat dipenuhi dari memori asosiatif disebbut hit ratio. Makin tinggi hit ratio, makin baik performance manajemen memori khususnya, dan komputer umumnya.
ALGORITMA PENGGANTIAN PAGE
Saat terjadi fault berarti harus diputuskan page frame yang harus diganti.
1.     Algoritma penggantian page acak:
Page yg dikeluarkan untuk memberi tempat ke yang baru ditentukan secara acak tanpa kriteria tertentu.
2.     Algoritma penggantian page optimal:
Setiap page diberi label untuk menandai berapa instruksi lagi baru dia digunakan. Page dengan label tertinggi (waktu dari sekarang sampai pemakaian berikutnya paling lama) yang akan dikeluarkan.
Algoritma Penggantian Page Optimal
String Pengacuan
2
3
2
1
5
2
4
5
3
2
5
2
2
2
2
2
2
2
4
4
4
2
2
2
3
3
3
3
3
3
3
3
3
3
3
1
5
5
5
5
5
5
5
5
                  Fault
F
F
F
F
F
F
6 Fault
3.     Algoritma penggantian page NRU (not recently used):
Setiap page diberi status bit R (referenced) dan              M (modified).
Bit bernilai 0 jika page belum direferensi/dimodifikasi, dan 1 jika sebaliknya. Dari nilai desimalnya didapat 4 kelas:
R
M
Kelas
Keterangan
0
0
0
not referenced,
not modified
0
1
1
not referenced,
modified
1
0
2
referenced,
not modified
1
1
3
referenced,
modified
Page dengan kelas terkecillah yang akan dikeluarkan
4.     Algoritma penggantian page FIFO (First In First Out):
Page yang paling dulu masuk ke memori dari semua page yang ada dikeluarkan.
Algoritma Penggantian Page FIFO
String Pengacuan
2
3
2
1
5
2
4
5
3
2
5
2
2
2
2
2
2
2
4
4
4
2
2
2
3
3
3
3
3
3
3
3
3
3
3
1
5
5
5
5
5
5
5
5
                  Fault
F
F
F
F
F
F
F
F
8 Fault
Anomali pada FIFO (Belady’s Anomaly)
String Pengacuan
0
1
2
3
0
1
4
0
1
2
3
4
Page Termuda
0
1
2
3
0
1
4
4
4
2
3
3
0
1
2
3
0
1
1
1
4
2
2
Page Tertua
0
1
2
3
0
0
0
1
4
4
                 Fault
F
F
F
F
F
F
F
F
9 Fault
(a)
String Pengacuan
0
1
2
3
0
1
4
0
1
2
3
4
Page Termuda
0
1
2
3
3
3
4
0
1
2
3
4
0
1
2
2
2
3
4
0
1
2
3
0
1
1
1
2
3
4
0
1
2
Page Tertua
0
0
0
1
2
3
4
0
1
                  Fault
F
F
F
F
F
F
F
F
10 Fault
(b)
5.     Algoritma penggantian page Modifikasi FIFO (Second Chance):
Mencari page yang berada di memori paling lama, tetapi juga tidak dipakai.
Jika sebuah page dipakai (direferensi) bit R diset. Jika sistem menemukan bahwa bit R page yang paling lama ter-set, page tersebut tidak jadi dikeluarkan, tetapi bit R-nya di-reset.
 Waktu load
0
3
7
8
12
14
15
18
A
B
C
D
E
F
G
H
Page yang di-load pertama kali                                                        Page yang terakhir di-load.
(a) Page dalam urutan FIFO
    Waktu load
3
7
8
12
14
15
18
20
B
C
D
E
F
G
H
A
A dianggap sebagai page yang baru di-load.
(b) Daftar page setelah page fault pada waktu 20 dan bit R page A dalam keadaan set.
Pada algoritma ini, daftar page bisa juga dibuat berbentuk jam (clock page replacement algorithm)
Algoritma penggantian page clock
String Pengacuan
2
3
2
1
5
2
4
5
3
2
5
2
> 
2
2
2
>2*
2*
2*
2*
>2*
>2
>2*
>2*
>2*
> 
3
3
3
5
5
5
5*
5
5
5*
5*
> 
> 
1
>1
>1
4
4
3
3
3
3
          Fault
F
F
 F
F
F
F
6 Fault
Keterangan : * adalah diacu dan > adalah ditunjuk pointer
6.     Algoritma penggantian page LRU (Least Recently Used):
Yang dikeluarkan ialah page yang sudah tidak terpakai dalam waktu paling lama.
 Algoritma Penggantian Page LRU
String Pengacuan
2
3
2
1
5
2
4
5
3
2
5
2
2
2
2
2
2
2
4
4
3
3
3
3
3
3
3
5
5
5
5
5
5
5
5
1
1
1
4
4
4
2
2
2
                  Fault
F
F
F
F
F
F
F
7 Fault
ISU DISAIN SISTEM PAGING
1.  Model Working Set
Ø  Dalam bentuk paging murni, proses dimulai dengan memori kosong, dan page-page dimasukkan ke dalamnya setelah diminta. Cara ini disebut demand paging.
Ø  Locality of reference: Kecenderungan proses untuk memakai satu set page yang sama selama beberapa saat.
Ø  Satu set page tersebut di atas membentuk working set. Dalam hal ini, yang diusahakan oleh sistem operasi adalah agar working set berada utuh di memori pada saat eksekusinya.
Ø  Jika ukuran memori terlalu kecil untuk working set, akan seringkali terjadi page fault. Hal ini disebut thrashing.
Ø  Banyak sistem paging yang mengusahakan agar working set sudah ada di memori sebelum proses dimulai. Pendekatan ini disebut model working set. Tujuannya adalah untuk memperkecil jumlah terjadinya page fault (page yang diminta tidak ada di memori).
Ø  Memasukkan page ke memori sebelum proses dimulai juga disebut prepaging.
Ø  Untuk pertama kali menentukan working set, dipakai sistem aging untuk mengetahui berapa kali jumlah pemakaian setiap page.
2. Alokasi Global dan Lokal
o    Pada sistem timesharing, isi memori bisa seperti pada Gambar a.
o    Misalkan diminta page A6. Jika dikeluarkan A5 untuk memberi tempat ke A6, berarti dilakukan alokasi lokal. Bila yang dikeluarkan adalah B3, dilakukan alokasi global.
o    Algoritma lokal berhubungan dengan pemberian jumlah frame yang sama untuk setiap proses, sementara algoritma global secara dinamis mengalokasikan frame untuk proses yang berjalan.
Age
A0
10
A0
A0
A1
7
A1
A1
A2
5
A2
A2
A3
4
A3
A3
A4
6
A4
A4
A5
3
A5 -> A6
A5
B0
9
B0
B0
B1
4
B1
B1
B2
6
B2
B2
B3
2
B3
B3 -> A6
B4
5
B4
B4
B5
6
B5
B5
B6
12
B6
B6
C1
3
C1
C1
C2
5
C2
C2
C3
6
C3
C3
                            (a)                                     (b)                                   (c)
Penggantian page global vs. lokal. (a) Konfigurasi awal.
(b) Penggantian page lokal. (c) Penggantian page global.
3.  Ukuran Page
o    Ukuran page merupakan salah satu parameter yang ditentukan oleh perancang sistem operasi.
o    Penentuan ukuran page yang optimum harus menyeimbangkan beberapa faktor.
o    Rata-rata, page terakhir hanya akan terisi setengah (fragmentasi internal), berarti page sebaiknya kecil. Tetapi page yang kecil akan menghasilkan tabel page yang panjang.
Ø  s (byte)        =     ukuran proses rata-rata
Ø  p (byte)        =     ukuran page
Ø  e (byte)        =     ukuran setiap page entry
Ø  s/p              =     perkiraan jumlah page yang dibutuhkan per-proses
Ø  se/p (byte)   =     ruang untuk tabel page
Ø  p/2              =     memori yang terbuang karena fragmentasi
Ø  overhead     =     memori yang terpakai untuk tabel page dan fragmen internal.
overhead = se/p + p/2
Ø  Ukuran tabel page besar jika ukuran page kecil. Fragmen internal besar jika ukuranb page besar. Optimum harus ada di antaranya. Dengan mengambil penurunan pertama terhadap p dan menyemakan dengan nol:             -se/p2 + ½ = 0
Ø  Dari persamaan ini, ukuran page optimum adalah: p = Ö(2se)
Ø  Sebagian besar komputer komersial menggunakan ukuran page antara 512 byte – 8K.
4.         Isu Implementasi
Ø  Instruction backup
Instruksi yang menyebabkan referensi ke page yang belum ada di memori (menyebabkan page fault) harus diulang ketika page tersebut telah tersedia. Beberapa sistem operasi meng-copy setiap instruksi sebelum dilaksanakan sehingga hal ini tidakmakan waktu terlalu lama.
Ø  Locking pages in memory
Pada saat satu proses menjalani tahap I/O, proses lain bisa dijalankan. Yang mungkin terjadi ialah page proses I/O tersebut digantikan oleh proses yang kedua ini (jika dipakai alokasi global). Jalan keluarnya ialah dengan me-lock page-page proses I/O.
Ø  Shared pages
Dua atau lebih proses bisa memakai bersama page-page yang berasal dari editor yang mereka pakai. Penutupan salah satu proses ini tanpa disengaja bisa mengosongkan juga page yang dipakai bersama tersebut. Diperlukan suatu struktur data khusus untuk memantau page-page yang dipakai bersama ini.
Ø  Backing Store
Pada disk, disediakan area untuk menampung page yang dikeluarkan dari memori (paged out) yang disebut swap area. Setiap proses memiliki swap area di disk. Swap area ada yang statis ada juga yang dinamis.
Ø  Paging Daemon
Untuk meyakinkan tersedianya frame bebas yang cukup banyak, banyak sistem paging yang menggunakan proses background yang disebut paging daemon. Jika jumlah frame bebas terlalu sedikit, paging daemon akan mengosongkan beberapa page setelah menulisnya ke disk jika pernah dimodifikasi.
Ø  Penanganan Page Fault
Urutan langkah-langkah penanganan adalah sebagai berikut:
1.       Hardware melakukan trap ke kernel, program counter di-save ke stack. Pada banyak mesin, beberapa informasi tentang status instruksi saat itu di-save di register-register khusus CPU.
2.       Rutin kode assembly dimulai untuk men-save register-register umum dan informasi lain yang bisa berubah, agar sistem operasi tidak merusaknya. Rutin ini memanggil sistem operasi sebagai suatu prosedur.
3.       Sistem operasi menemukan bahwa terjadi page fault, dan mencoba menemukan page virtual mana yang diperlukan. Seringkali salah satu register hardware berisi informasi ini. Jika tidak, sistem operasi harus menarik program counter, mengambil instruksi, dan melakukan parsing pada software untuk mengetahui apa yang dilakukan sebelum terjadi fault.
4.       Begitu alamat virtual yang menyebabkan fault diketahui, sistem operasi memeriksa apakah alamat ini valid dan proteksinya konsisten dengan akses. Jika tidak, proses dikirimi sinyal atau ditutup. Jika alamat valid dan tidak ada pelanggaran proteksi, sistem berusaha untuk mendapatkan frame page dari daftar frame bebas. Jika tidak ada frame yang bebas, dijalankan algoritma penggantian page untuk mencari yang bisa ditukar.
5.       Jika frame page yang dipilih telah dimodifikasi, page dijadwalkan untuk ditransfer ke disk, dan terjadi pertukaran proses, menghentikan sementara proses yang fault dan membiarkan yang lainnya berjalan hingga transfer disk selesai. Frame ditandai terpakai untuk mencegah dipakai untuk tujuan lain.
6.       Begitu frame page bersih (apakah langsung atau setelah disave ke disk), sistem operasi menelusuri alamat disk di mana page diperlukan, dan menjadwalkan operasi disk untuk memasukkannya. Sementara page dimasukkan, proses yang mengalami fault dihentikan sejenak dan yang lainnya dijalankan, jika ada.
7.       Ketika disk interrrupt menandai bahwa page telah ada, tabel page di-update untuk menunjukkan posisinya, dan frame ditandai berada dalam status normal.
8.       Instruksi yang menyebabkan fault di-back-up ke status mulainya dan program counter di-reset untuk menunjuk ke instruksi tersebut.
9.       Proses yang fault tersebut dijadwalkan, dan sistem operasi kembali ke rutin bahasa assembly yang memanggilnya.
10.     Rutin ini mengembalikan register dan informasi lainnya ke keadaan semula , dan kembali ke user untuk melanjutkan eksekusi, seakan-akan tidak ada fault yang terjadi.
SEGMENTASI
Compiler bisa memiliki beberapa tabel dengan alamat virtual yang terpisah, misalnya terdiri dari tabel-tabel untuk:
1.      Source text,
2.      Tabel simbol,
3.      Tabel untuk semua konstanta integer dan floating point,
4.      Parse tree, berisi analisis sintaksis program, dan
5.      Stack yang digunakan untuk pemanggilan prosedur.
Tabel 1 s/d 4 bisa bertambah pada saat kompilasi berjalan, sehingga dengan sistem paging yang berukuran tetap, batas satu page bisa terlampaui.
Dengan alasan ini dipakai bagian-bagian dengan alamat yang relatif independen, yang disebut segmen. Setiap segmen mempunyai ukuran yang berbeda dengan yang lain. Panjang segmen juga bisa berubah selama eksekusi.
Program harus menyediakan alamat yang terdiri dari dua bagian:
-        nomer segmen
-        alamat di dalam segmen
Segmentasi juga memberikan fasilitas pemakaian bersama prosedur atau data antar beberapa proses. Contoh umumnya adalah shared library.
Segmen
Segmen
Segmen
Segmen
Segmen
0
1
2
3
4
0
0
0
Konstanta
0
0
4K
4K
4K
4K
Source
Parse
Call
text
tree
stack
8K
8K
8K
8K
Tabel
simbol
12K
12K
12K
12K
16K
16K
20K
Memori yang tersegmentasi memungkinkan setiap tabel bertambah atau berkurang.
Pertimbangan
Paging
Segmentasi
Apakah programmer harus menyadari bahwa teknik ini sedang digunakan?
Tidak
Ya
Berapa banyak ruang alamat linier yang ada?
1
Banyak
Dapatkah ruang alamat total melebihi ukuran memori fisik?
Ya
Ya
Apakah tabel yang ukurannya berubah-ubah dapat diakomodasi?
Tidak
Ya
Dapatkan prosedur dan data dibedakan dan diproteksi secara terpisah?
Tidak
Ya
Adakah fasilitas pemakaian bersama prosedur antar user?
Tidak
Ya
Mengapa teknik ini diciptakan?
Untuk mendapatkan ruang alamat linier yang besar tanpa harus membeli memori fisik tambahan
Untuk memungkinkan program dan data dibagi menjadi ruang alamat yang secara logik independen dan untuk membantu pemakaian bersama dan proteksi
Perbandingan paging dan segmentasi.
Checkerboarding: Timbulnya blok-blok memori yang kosong (hole) pada saat isi segmen dikeluarkan. Hal ini diatasi dengan pemampatan (compaction).
Segmentasi dengan Paging : Setiap segmen dapat dianggap sebagai satu virtual memori, dan masing-masing dibagi menjadi page-page.
Salah satu mesin yang memakai cara ini adalah MULTICS. Setiap program MULTICS memiliki satu tabel segmen, dengan satu descriptor per segmen. Segmen descriptor berisi keterangan apakah segmen yang bersangkutan ada di memori atau tidak.
Segmen descriptor
Tabel page untuk segmen 0
36 bit
Page 0 entry
Descriptor segmen 0
Page 1 entry
Pointer-
Descriptor segmen 1
Page 2 entry
pointer
Descriptor segmen 2
Page 3 entry
ke page
Descriptor segmen 3
Descriptor segmen 4
Descriptor segmen 5
Tabel page untuk segmen 1
Descriptor segmen 6
Page 0 entry
Descriptor segmen 7
Page 1 entry
Page 2 entry
Page 3 entry
Page 4 entry
Page 5 entry






Virtual address MULTICS 34-bit:
                                                            Alamat di dalam segmen
Nomer segmen
Nomer page
Offset di dalam page
18
6
10
Nomer segmen
Nomer page
Offset di dalam page
Nomer
segmen
Nomer
Descriptor
page
Page frame
Offset
Segmen
Tabel page
descriptor
Word
Page
Konversi alamat MULTICS menjadi alamat memori utama.

 

No comments:

Post a Comment