Makalah sistem operasi
A. Pengertian Sistem Operasi
Dalam Ilmu komputer, Sistem operasi atau dalam bahasa
Inggris: operating
system atau OS adalah perangkat lunak sistem yang bertugas untuk melakukan kontrol
eksekusi program aplikasi dan manajemen perangkat keras serta operasi-operasi dasar sistem,
termasuk menjalankan software aplikasi seperti program-program pengolah kata
dan browser web.
Sistem
Operasi juga bertindak sebagai antar-muka antara pengguna dengan perangkat keras komputer. Sistem
Operasi mengandung sejumlah program, dan beberapa program tergolong sebagai
utilitas. Kumpulan program ini menyediakan layanan kontrol terhadap
sumber daya komputer.Secara khusus, sistem operasi menangani kontrol dan
penggunaan sumber daya perangkat keras, seperi disc-room, memory,
processor, dan perangkat tambahan lain, seperti mouse, printer,
dan lain-lain.
Struktur
Dari Sistem Operasi
B. Sejarah Sistem Operasi
Perkembangan
sistem operasi dipengaruhi oleh perkembangan
hardware. Sistem operasi mulai dikembangkan sejak
±40 tahun lalu, yaitu:
1.
Generasi ke-nol
(1940).
·
Komponen utama tabung
hampa udara;
·
Sistem komputer belum
menggunakan sistem operasi;
·
Sistem operasi
komputer dilakukan secara manual melalui plugboard, dan hanya bisa digunakan untuk menghitung
(+,-, dan *).
2.
Generasi pertama
(1950).
·
Komponen utama
transistor;
·
Sistem operasi
berfungsi terutama sebagai pengatur pergantian antar job agar waktu instalasi
job berikutnya
lebih efisien. Dalam masa ini muncul konsep batch system (semua job
sejenis dikumpulkan jadi satu);
·
Input pemakai punch card.
3.
Generasi kedua (1960).
·
Komponen utama IC;
·
Berkembang
konsep-konsep:
·
Multiprogramming, satu
prosesor mengerjakan banyak program yang ada di memori utama;
·
Multiprosesing, satu
job dikerjakan oleh banyak prosesor berguna untuk meningkatkan utilitas;
·
Spooling Simultaneous Peripheral Operation On Line, bertindak sebagai buffer (penyangga) saja, dan mampu
menerima pesanan meskipun belum akan dikerjakan;
·
Device Indipendence,
masing-masing komponen memiliki sifat yang saling berbeda (misal: tiap-tiap
printer memiliki driver);
·
Time Sharing atau Multitasking, sistem bagi waktu yang diberikan oleh CPU terhadap
berbagai job yang sedang dijalankan.
·
Real-time system,
berguna sebagai kontrol bagi mesin-mesin.
4.
Generasi ketiga (1970)
·
Komponen utama VLSI (Very Large Scale Integrated Circuit);
·
Ditandai dengan
berkembangnya konsep general
purpose system, sehingga sistem operasi menjadi sangat kompleks,
mahal dan sulit untuk dipelajari;
5.
Generasi keempat
(pertengahan 1970-an hingga sekarang).
·
PC makin populer;
·
Ditandai dengan
berkembangnya sistem operasi untuk jaringan komputer dengan tujuan: data
sharing, hardware sharing, dan program sharing;
·
User interface semakin user friendly tanpa
harus mengorbankan unjuk kerja.
C. Tujuan dan Fungsi Sistem Operasi
Sistem operasi diharapkan mempunyai
dua tujuan yaitu:
·
Kenyamanan : suatu sistem operasi membuat komputer lebih
mudah untuk digunakan.
·
Efesien : suatu sistem operasi memungkinkan sumber daya
sistem komputer dapat digunakan dengan cara yang efesien.
Fungsi Sistem Operasi
System operasi memiliki tiga fungsi
utama yaitu manajemen proses, manajemen sumber daya dan manajemen data.
·
Manajemen proses mencakup penyiapan, penjadwalan
dan pemantauan proses pada computer. Proses adalah program yang sedang
dijalankan.
·
Manajemen sumber daya berkaitan dengan
pengendalian terhadap pemakaian sumber daya dalam system computer yang
dilakukan oleh perangkat lunak system maupun pereangkat lunak aplikasi yang
sedang dijalankan oleh computer. Yang dimaksudkan sumber daya disini adalah
komponen perangkat keras dalam computer seperti CPU, memori utama dan peranti
masukan/keluaran.
·
Manajemen data berupa pengendalian terhadap data
masukan/keluaran, termasuk dalam hal pengalokasian dalam peranti penyimpan sekunder
maupun memori utama.
Selain tiga
fungsi utama tersebut, system operasi umumnya juga mempunyai sarana untuk
mengelola keamanan. Ciri system operasi yang mempunyai fasilitas manajemen
keamanan adalah mengharuskan pemakai memasukan nama pengguna dan password (kata
rahasia) sebelum mengakses computer.
Dan secara garis besar, fungsi utama
dari sistem operasi adalah sebagai
suatu sistem yang digunakan untuk mengarahkan dan mengatur kinerja dari sebuah
komputer, menyelesaikan berbagai masalah-masalah dalam komputer, dan menjaga
bagian-bagian dari sistem agar tetap aman.
D. Macam-Macam Sistem Operasi
Dalam
perkembangan sistem operasi, sudah banyak perusahaan-perusahaan atau para
programer yang membuat dan mengembangkan sistem operasi sendiri, baik itu
personal atau general. Tapi pada saat ini terdapat beberapa sistem operasi yang
sudah sangat dikenal yaitu:
- Keluarga Microsoft Windows - yang antara lain terdiri dari Windows Desktop Environment (versi 1.x hingga versi 3.x), Windows 9x (Windows 95, 98, dan Windows ME), dan Windows NT (Windows NT 3.x, Windows NT 4.0, Windows 2000, Windows XP, Windows Server 2003, Windows Vista, Windows 7 (Seven) yang dirilis pada tahun 2009, dan Windows Orient yang akan dirilis pada tahun 2014)).
- Keluarga Unix yang menggunakan antarmuka sistem operasi POSIX, seperti SCO UNIX, keluarga BSD (Berkeley Software Distribution), GNU/Linux, MacOS/X (berbasis kernel BSD yang dimodifikasi, dan dikenal dengan nama Darwin) dan GNU/Hurd.
- Mac OS, adalah sistem operasi untuk komputer keluaran Apple yang biasa disebut Mac atau Macintosh. Sistem operasi yang terbaru adalah Mac OS X versi 10.4 (Tiger). Awal tahun 2007 direncanakan peluncuran versi 10.5 (Leopard).
4. Komputer
Mainframe, dan Super komputer
menggunakan banyak sekali sistem operasi yang berbeda-beda, umumnya merupakan
turunan dari sistem operasi UNIX yang dikembangkan oleh vendor seperti IBM AIX,
HP/UX, dll.
Terdapat pula beberapa sistem
operasi tersebut yang bisa digunakan dalam sebuah handphone atau mobile phone.
Seperti halnya system operasi pada komputer, sistem operasi ponsel adalah software
utama yang melakukan menejemen dan kontrol terhadap hardware secara
langsung serta menejemen dan mengotrol software-soft lain sehingga software-software
lain tersebut dapat bekerja. Sehingga suatu system operasi ponsel (mobile
operating system) akan bertanggung jawab dalam mengoperasikan berbagai fungsi
dan fitur yang tersedia dalam perangkat ponsel tersebut seperti, skedulling
task, keyboard, WAP, email, text message, sinkronisasi dengan aplikasi dan
perangkat lain, memutar musik, camera, dan mengontrol fitur-fitur lainnya.
Banyak perusahaan ponsel yang membenamkan system operasi dalam produknya baik
pada PDA, Smartphone maupun handphone.
Perkembangan aplikasi atau game
selular (mobile content)sangat cepat, perusahaan pembuat mobile Operating
System (OS) telah berlomba untuk memasarkan produk-produk mereka dengan
menciptakan fungsi-fungsi dan teknologi yang kian hari kian memanjakan pengguna
smartphone (selular yang ber-OS) dari segi entertainment dan fungsionalitas
penggunaan selular untuk memudahkan tugas sehari-hari. Selain berfungsi untuk
mengkontrol sumber daya hardware dan software ponsel seperti keypad, layar,
phonebook, baterai, dan koneksi ke jaringan, sistem operasi juga mengontrol
agar semua aplikasi bisa berjalan stabil dan konsisten. Sistem operasi harus
dirancang fleksibel sehingga para software developer lebih mudah menciptakan
aplikasi-aplikasi baru yang canggih. Keunggulan lain dari ponsel yang ber-OS
adalah memiliki kebebeasan lebih untuk men-download berbagai aplikasi tambahan
yang tidak disediakan oleh vendor ponsel Sistem operasi-sistem operasi tersebut
diantaranya adalah
• Sistem
operasi Symbian
• Windows
Mobile
• Sistem operasi
Palm
• Mobile
Linux
• Sistem
operasi Blackberry
Sistem operasi
Symbian adalah sistem operasi yang dikembangkan oleh Symbian Ltd. yang
dirancang untuk digunakan peralatan bergerak mobile).Symbian merupakan
perusahaan independen hasil kolaborasi vendor-vendor raksasa pada masa itu
yakni Ericsson, Nokia, Motorola, dan Psion. Nokia sebagai pemegang saham
terbesar dengan angka 47,9 persen. Banyak dari produk nokia ber-OS Symbian
(termasuk ponsel saya, NOKIA 6120 Classic, OS Symbian S60 v9.0 3rd edition).
Symbian dipandang lebih unggul karena:
1.
Sistem operasi ini sejak awal dirancang khusus
untuk ponsel. Berbeda dengan Microsoft dan Linux yang diadopsi dari komputer.
2.
2. Berkat fitur CC+, Java (J2ME) MIDP 2.0,
PersonalJava 1.1.1a, dan WAP, Sistem operasi symbian ini sangat terbuka
sehingga siapapun bisa mengembangkannya. terbukti banyak beredar
aplikasi-aplikasi tambahan untuk OS berbasis Symbian atau platform Java.
3. Symbian menyediakan suatu user interface (UI) framework yang fleksibel, sehingga supaya para vendor bisa menvariasikan produk-produknya. Ada empat jenis UI yang beredar saat ini yaitu: Series 60 (misalnya Nokia N70, N91, Siemens SX1, Samsung D700, D710, Panasonic X700, X800); Series 80 (Nokia N9210, 9210i, 9300); Series 90 (Nokia 7700 dan 7710); UIQ (Sony Ericsson P800, P900, P910, Motorola A920, A925, A1000, A1010). Symbian MOAP (Mobile Oriented Applications Platform), contohnya adalah Mitsubishi D800iDS yang memiliki dual screen yang pengoperasiannya mirip dengan Nintendo DS yaitu 2 screen dan hanya screen bagian bawah yang memiliki fungsi touch screen.
3. Symbian menyediakan suatu user interface (UI) framework yang fleksibel, sehingga supaya para vendor bisa menvariasikan produk-produknya. Ada empat jenis UI yang beredar saat ini yaitu: Series 60 (misalnya Nokia N70, N91, Siemens SX1, Samsung D700, D710, Panasonic X700, X800); Series 80 (Nokia N9210, 9210i, 9300); Series 90 (Nokia 7700 dan 7710); UIQ (Sony Ericsson P800, P900, P910, Motorola A920, A925, A1000, A1010). Symbian MOAP (Mobile Oriented Applications Platform), contohnya adalah Mitsubishi D800iDS yang memiliki dual screen yang pengoperasiannya mirip dengan Nintendo DS yaitu 2 screen dan hanya screen bagian bawah yang memiliki fungsi touch screen.
Symbian telah
mengeluarkan Operating System untuk smartphone terbaru nya yaitu versi 9.3,
Symbian menyatakan bahwa versi 9.3 ini akan lebih mempercepat, mempermurah dan
mempermudah para vendor handphone dan para operator untuk mendapatkan servis
dan fasilitas terbaik seperti mendukung WiFi, Firmware update secara online
(FOTA), dukungan HSDPA, VoIP melalui IPSec, dukungan secara native untuk Push
To Talk, dukungan Java JSR 248, Platform sekuriti yang lebih stabil dan lebih
baik untuk memproteksi dari virus dan spam, dukungan untuk fasilitas graphic 3D
yang lebih baik (vector floating point).
Adalah sistem
operasi seluler yang ditawarkan oleh Microsoft. Sistem operasi Windows Mobile
dimulai dari
• Pocket PC 2000
• Pocket PC 2002
• Windows Mobile 2003. Memiliki 4
edisi, yaitu : Windows Mobile 2003 for Pocket PC Premium Edition, Windows
Mobile 2003 for Pocket PC Professional Edition, Windows Mobile 2003 for Smartphone,
dan Windows Mobile 2003 for Pocket PC Phone Edition
• Windows Mobile 2003 Second Edition
(Windows Mobile 2003 SE)
• Windows Mobile 5
• Windows Mobile 6, memiliki 3
versi, yaitu : Windows Mobile 6 Standard for Smartphone (phone without
touchscreen), Windows Mobile 6 Professional for Pocket PC with phone
functionality, dan Windows Mobile 6 Classic for Pocket PCs without cellular
radio. Contoh: Eten Glofiish X650
menggunakan Windows Mobile 6.0 Profesional Versi terbaru yang sedang
dikembangkan Microsoft adalah Photon, yang didasarkan pada Windows Embedded CE
6.0 dan diharapkan dapat mengintegrasikan versi smartphone dan Pocket PC.
Contoh perangkat yang ber-OS Windows Mobile seperti Audiovox SMT 5600, iMate
SP3i, Samsung SCH-i600, Mio 8390, Sagem myS-7, Orange SPV C500, HP iPAQ rw6100,
Motorola MPx220, O2 Xphone, dan O2 Xphone II. PDA adalah Acer n30, ASUS My Pal
A716, HP iPAQ h5555, dan Mio 558.
Keunggulan
yang ditawarkan seperti
1.
Sebagian besar teknologi IT (information
technology) yang dipakai berbasis Windows, kecocokan dalam hal platform serta
ekstensi yang mudah dengan software komputer dipandang bahwa Microsoft dianggap
lebih ideal dibandingkan Symbian atau Linux.
2.
2. Windows Mobile menawarkan berbagai fitur
unggulan seperti Mobile Blog, GPS, menonton televisi, serta Mobile Database.
Kelemahannyan adalah Windows Mobile bersifat tertutup sehingga sulit bagi
software developer independen untuk menciptakan aplikasi-aplikasi baru.
Ponsel Linux
pertama diluncurkan oleh Motorola pada bulan Februari 2003. Motorola seri A760
yang dirilis pertama kali di Cina ini menggunakan OS kombinasi dari kernel
Linux yang didistribusikan oleh software Silicon Valley-based Monta Vista dan
software lainnya dari bahasa pemrograman Java Sun Microsystems. Sistem operasi
berbasis Linux yang dikembangkan oleh Google adalah Android. Platform software
berbasis Linux diantaranya adalah MOTOMAGX dan Qtopia. MOTOMAGX merupakan
platform Linux mobile dari Motorola. Produk pertama yang didasarkan pada
platform ini adalah ponsel MOTOROKR Z6 dan MOTORAZR2 V8. Qtopia Phone Edition
merupakan platform software dan antarmuka untuk Linux, yang dikembangkan oleh
perusahaan Trolltech. Qtopia Greenphone, merupakan perangkat pengembangan Linux
mobile yang ditujukan untuk berbagai aplikasi baru.
Kelemahannya
adalah aplikasi tambahan yang belum banyak beredar, serta Linux dibangun untuk
mengoprasikan sistem dengan tenaga besar, sehingga manajemen sumber daya
baterai masih kalah efektif dibandingkan OS lainnya.
Kelebihannya
adalah Linux sebagai OS yang ideal bagi ponsel karena dukungan oleh
perusahaan-perusahaan besar seperti IBM, Oracle, dan Intel. Selain itu, sistem
ini nilai lebih fleksibel dan menawarkan memori yang lebih kecil serta bisa
lebih dihemat.
Contoh ponsel
ber-Linux OS: Haier N60, Motorola A760, E895, NEC N900iL, dan Samsung SCH-i519.
Produk-produk PDA seperti Sharp SL-C3000, Sharp Zaurus SL-C1000, Compaq iPAQ,
IBM e-LAP reference design, dan Nokia 770 Internet Tablet.
Perusahan
telekomunikasi asal Canada, Reserch in Motion (RIM), mengembangkan perangkat
komunikasi bergerak. Awalnya produk mereka adalah memproduksi dan layanan
penyeranta (Pager) dua arah, namun dalam perkembangannya perusahaan ini membuat
terobosan baru dengan menciptakan pearangkat Blackberry yang terkenal dengan
layanan push-email, dan sekarang blackberry berubah menjadi smartphone yang
memiliki berbagai fungsi seperti, GPS, internet mobile, serta dapat mengakses
Wi-FI. RIM sebagai developer untuk sistem operasi blackberry telah mengeluarkan
sistem operasi baru dengan salah satu aplikasi yang tertanam didalamnya adalah
Document to Go versi trial buatan DataViz, suatu aplikasi yang memiliki fungsi
officeseperti Word to Go, Presenter to Go yang otomatis memiliki Sheet to Go
sebagai aplikasi Spreadsheet.
System operasi
Palm Contoh peproduk yang menanamkan sistem operasi Palm adalah Palm Treo 680
Smartphone ini menggunakan system operasi Palm, yaitu Palm OS 5.4.9 dengan
prosesor Intel PXA270, 312MHz. Beberapa fitur yang ditawarkan adalah Pocket
Express, Microsoft Media Player, Palm files, PDF viewer, Adobe Acrobat reader,
eReader, Pocket Tunes, dan Document To Go.
Sedangkan handphone yang saya
gunakan adalah NOKIA 6120 Classic. Setahun saya menggunakan handphone ini dan
saya cukup puas menikmati beberapa fitur yang disuguhkan. Nokia 6120 Classic
ini merupakan ponsel yang disokong OS Symbian S60 v9.0 3rd edition. Walaupun
tidak jauh beda dari handphone-handphone symbian 3rd lainnya, halaman muka dari
handphone ini mempertontonkan deretan menu shortcut yang menyerupai menu today
pada PDA, system yang bekerja pada handphone ini mampu berakselerasi dengan
baik meski clockspeed prosesor sekelas ARM 11 yang digunakan hanya berkisar 369
samapi 376 MHz, hal ini terbukti saya tidak mengalami hambatan saat membuka
berbagai aplikasi dalam satu waktu yang sama.
Sebagai handphone berbasis Symbian
3rd edition handphone yang saya gunakan ini telah ditanamkan software untuk
kepentingan Office yaitu Quick Office(maaf, belum saya maksimalkan
penggunaannya) dan Adobe PDF. Dengan OS symbian ini saya lebih bebas memanamkan
aplikasi lainnya seperti eBuddy (untuk Messenger), MP3 Dictaphone (untuk
mendengarkan music .mp3), Thema DIY (untuk membuat Thema dengan kreasi
sendiri), beberapa aplikasi Java lainnya seperti PD Dictionary, English Mini
Alkitab Go Bibile, NIV Go Bibile, KJV Go Bible, dan Opera Mini 4.
E. Penjadwalan Proses
Proses adalah
keadaan ketika sebuah program sedang di eksekusi. Sebuah proses membutuhkan
beberapa sumber daya untuk menyelesaikan tugasnya. sumber daya tersebut dapat
berupa CPU time, memori,
berkas-berkas, dan perangkat-perangkat I/O.
Penjadwalan
proses merupakan kumpulan kebijaksanaan dan mekanisme di sistem operasi yang
berkaitan dengan urutan kerja yang dilakukan sistem komputer.
Tujuan dari
multiprogramming adalah untuk memiliki sejumlah proses yang berjalan pada
sepanjang waktu, untuk memaksimalkan penggunaan CPU. Tujuan dari pembagian
waktu adalah untuk mengganti CPU diantara proses-proses yang begitu sering
sehingga user dapat berinteraksi dengan setiap program sambil CPU bekerja.
Untuk sistem uniprosesor, tidak akan ada lebih dari satu proses berjalan. Jika
ada proses yang lebih dari itu, yang lainnya akan harus menunggu sampai CPU
bebas dan dapat dijadwalkan kembali.
Terdapat empat jenis penjadwalan
pada sistem operasi:
·
Penjadwalan Jangka-Panjang
Penjadwalan jangka-panjang merupkan
keputusan untuk menambahkan program yang akan dieksekusi ke pool. Penjadwalan
jangka-panjang menentukan program yang mana diakui sebagai sistem untuk
diproses. Jadi, penjadwalan jangka-panjang mengontrol derajat multiprogramming
(jumlah proses yang berada di dalam memori). Sekali diakui, sebuah tugas atau
program pengguna menjadi proses dan ditambahkan ke antrian untuk
penjadwalan-pendek. Dalam beberapa sistem, proses diciptakan baru saja dimulai
pada kondisi swapped-out, dakan kasus dimana proses ditambahkan ke antrian
untuk penjadwalan jangka-menengah.
·
Penjadwalan Jangka-Menengah
Penjadwalan jangka-menengah
merupakan suatu keputusan untuk menambah banyaknya proses-proses itu secara
parsial atau secar penuh didalam memori utama. Penjadwalan jangka-menengah
menjadi bagian dari pertukaran fungsi. Umumnya, keputusan swapping-in
didasarkan pada kebutuhan untuk mengatur derajat multiprogramming. Pada sisetm
yang tidak menggunakan memori sebetulnya, manajemen memori adalah juga
merupakan suatu masalah. Jadi keputusan swapping-in akan memperlihatkan
persyaratan memori dari proses swapped-out.
·
Penjadwalan Jangka-Pendek
Penjadwalan Jangka-Pendek merupakan
keputusan sebagai proses tersedia yang mana yang akan dieksekusi oleh prosesor.
Penjadwalan tingkat tinggi mengeksekusi relatif jarang dan membuat keputusan
secar garis besar saja tnentang diambilnya atau tidaknya suatu proses baru, dan
mana yang akan diambil. Penjadwalan jangka-pendek ayng juga mengenal sebagai
dispatcher sering kali mengeksekusi dan membuat keputusan yang lebih detail
tentang tugas yang akan dieksekusi berikutnya.
a. Keadaan Proses
Sebagaimana proses bekerja, maka proses tersebut merubah state (keadaan
statis/asal). Status dari sebuah proses didefinisikan dalam bagian oleh
aktivitas yang ada dari proses tersebut. Tiap proses mungkin adalah satu dari
keadaan berikut ini:
·
New:Proses sedang dikerjakan/dibuat.
·
Running: Instruksi sednag dikerjakan.
·
Waiting:Proses sedang menunggu sejumlah kejadian
untuk terjadi (seperti sebuah penyelesaian I/O atau penerimaan sebuah
tanda/signal).
·
Ready: Proses sedang menunggu untuk ditugaskan
pada sebuah prosesor.
·
Terminated: Proses telah selsesai melaksanakan tugasnya/mengeksekusi.
Nama-nama tersebut adalah arbitrer/berdasar opini, istilah tersebut
bervariasi disepanjang sistem operasi. Keadaan yang mereka gambarkan ditemukan
pada seluruh sistem. Namun, sistem operasi tertentu juga lebih baik
menggambarkan keadaan /status proses. Adalah penting untuk menyadari bahwa
hanya satu proses dapat berjalan pada prosesor manapun pada waktu kapanpun.
Namun, banyak proses yang dapat ready atau waiting. Keadaan diagram yang
berkaitan dangan keadaan tersebut.
· Penjadwalan Antrian
Ketika proses
memasuki sistem, mereka diletakkan dalam antrian job. Antrian ini terdiri dari
seluruh proses dalam sistem. Proses yang hidup pada memori utama dan siap dan
menunggu/wait untuk mengeksekusi disimpan pada sebuah daftar bernama ready queue.
Antrian ini biasanya disimpan sebagai daftar penghubung. Sebuah header ready
queue berisikan penunjuk kepada PCB-PCB awal dan akhir. Setiap PCB memiliki
pointer field yang menunjukkan proses selanjutnya dalam ready queue.
Juga ada
antrian lain dalam sistem. Ketika sebuah proses mengalokasikan CPU, proses
tersebut berjalan/bekerja sebentar lalu berhenti, di interupsi, atau menunggu
suatu kejadian tertentu, seperti penyelesaian suatu permintaan I/O. Pada kasus
ini sebuah permintaan I/O, permintaan seperti itu mungkin untuk sebuah tape
drive yang telah diperuntukkan, atau alat yang berbagi, seperti disket. Karena
ada banyak proses dalam sistem, disket bisa jadi sibuk dengan permintaan I/O
untuk proses lainnya. Maka proses tersebut mungkin harus menunggu untuk disket
tersebut. Daftar dari proses yang menunggu untuk peralatan I/O tertentu disebut
sebuah device queue.
E. Manajement Memori
Bagian operating sistem yang
mengatur memori disebut dengan memory manager. Pemakaian memori (manajemen
memori dan organisasi) perlu dilakukan karena hal tersebut sangat mempengaruhi
kinerja komputer, sehingga memiliki fungsi dan tugas penting dan kompleks yaitu
berkaitan dengan :
a. Memori
utama sebagai sumber daya yang harus dialokasikasikan dan dipakai bersama di
antara sejumlah proses yang aktif, sehingga dapat memanfaatkan pemroses dan
fasilitas masukan/keluaran secara efisien, sehingga memori dapat menampung
sebanyak mungkin proses.
b. Upaya
agar pemogram atau proses tidak dibatasi kapasitas memori fisik di sistem
komputer.
·
Swapping
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.
Contohnya, sebuah lingkungan multiprogramming dengan penjadwalan CPU
menggunakan algoritma round-robin. Pada saat waktu kuantum berakhir,
manajer memori akan memulai untuk menukar proses yang baru selesai keluar dan
menukar proses lain ke dalam memori yang dibebaskan. Pada waktu berjalan,
penjadwal CPU (CPU scheduler) akan mengalokasikan sejumlah waktu untuk
proses yang lain di memori. Ketika masing-masing proses menyelesaikan waktu
kuantum-nya, akan ditukar dengan proses yang lain.
Kebijakan penukaran juga
dapat digunakan pada algoritma penjadwalan berbasis prioritas. Jika proses
mempunyai prioritas lebih tinggi datang dan meminta layanan, memori akan swap
out proses dengan prioritas lebih rendah sehingga proses dengan prioritas
lebih tinggi dapat di-load dan dieksekusi.
Umumnya sebuah proses yang
di-swap out akan menukar kembali ke ruang memori yang sama dengan
sebelumnya. Jika proses pengikatan dilakukan pada saatload-time, maka
proses tidak dapat dipindah ke lokasi yang berbeda. Tetapi, jika pengikatan
pada saat execution-time , maka kemungkinan proses ditukar ke ruang
memori yang berbeda, karena alamat fisik dihitung selama waktu eksekusi.
Bila CPU scheduler memutuskan
untuk mengeksekusi proses, OS memanggil dispatcher. Dispatcher memeriksa untuk
melihat apakah proses selanjutnya pada ready queue ada di memori.
Jika tidak dan tidak terdapat cukup memori bebas, maka dispatcher swap out sebuah
proses yang ada di memori dan swap in proses tersebut. Kemudian reload
register ke keadaan normal.
Teknik swapping yang sudah dimodifikasi
ditemui pada beberapa sistem misalnya Linux, UNIX dan Windows.
- 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.
- 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. Proteksi dapat dilakukan dengan
menggunakan register relokasi (relocation register) dan register limit
(limit register). Register relokasi berisi nilai dari alamat fisik
terkecil sedangkan register limit berisi jangkauan alamat logika dan
alamat logika harus lebih kecil dari register limit. MMU memetakan
alamat logika secara dinamis dengan menambah nilai pada register relokasi.
Gambar berikut adalah perangkat keras yang terdiri dari register relokasi
dan register limit.
- 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). Skema ini digunakan terutama
pada lingkungan batch.
Pada MVT, sistem operasi menyimpan tabel yang
berisi bagian memori yang tersedia dan yang digunakan. Mula-mula, semua memori
tersedia untuk proses user sebagai satu blok besar (large hole).
Lubang (hole) adalah blok yang tersedia di memori yang mempunyai ukuran
berbeda. Bila proses datang dan memerlukan memori, dicari lubang (hole)
yang cukup untuk proses tersebut. Bila ditemukan memory manager mengalokasikan
sejumlah memori yang dibutuhkan dan menyimpan sisanya untuk permintaan
berikutnya. Sistem operasi menyimpan informasi tentang partisi yang
dialokasikan dan partisi yang bebas (hole).
- 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. Pada multiple partition, fragmentasi
internal mungkin terjadi pada situasi berikut. Misalnya terdapat lubang
18464 byte, dan proses meminta 18462 byte. Alokasi dilakukan sesuai
permintaan maka sisa lubang 2 byte. Penyimpanan lubang ini akan
memerlukan memori lebih besar dari lubang itu sendiri. Pendekatannya
adalah dengan mengalokasikan lubang yang sangat kecil sebagai bagian dari
permintaan yang besar.
- Paging
- 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.
Memori logika juga dibagi ke dalam blokblok dg ukuran yang sama yang disebut page.
Semua daftar frame yang bebas disimpan. Untuk menjalankan program dengan
ukuran n page, perlu menemukan n frame bebas dan
meletakkan program pada frame tersebut. Tabel page (page table)
digunakan untuk menterjemahkan alamat logika ke alamat fisik.
Setiap alamat dibangkitkan oleh CPU dengan
membagi ke dalam 2 bagian yaitu : • Page number (p) digunakan
sebagai indeks ke dalam table page (page table). Page table berisi
alamat basis dari setiap page pada memori fisik.
• Page
offset (d) mengkombinasikan alamat basis dengan page offset untuk
mendefinisikan alamat memori fisik yang dikirim ke unit memori.
- 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 :
1.
Tabel page diimplementasikan sebagai kumpulan dari “dedicated”
register. Register berupa rangkaian logika berkecepatan sangat tinggi
untuk efisiensi translasi alamat paging. Contoh : DEC PDP-11. Alamat terdiri
dari 16 bit dan ukuran page 8K. Sehingga tabel page berisi 8 entri yang
disimpan pada register. Penggunaan register memenuhi jika tabel page kecil
(tidak lebih dari 256 entry).
2.
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). Perubahan
tabel page hanya mengubah PTBR dan menurunkan waktu context-switch.
Akan tetapi penggunaan metode ini memperlambat akses memori dengan faktor 2.
Hal ini dikarenakan untuk mengakses memori perlu dua langkah : pertama untuk
lokasi tabel page dan kedua untuk lokasi alamat fisik yang diperlukan.
3.
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. Sekumpulan associative register berupa
memori kecepatan tinggi. Setiap register terdiri dari 2 bagian yaitu key dan
value. Jika associative register memberikan item, akan
dibandingkan dengan semua key secara simultan. Jika item ditemukan nilai yang
berhubungan diberikan. Model ini menawarkan pencarian cepat tetapi perangkat
keras masih mahal. Jumlah entry pada TLB bervariasi antara 8 s/d 2048. Mekanisme
penggunaan associative register adalah sebagai berikut :
• Associative
register berisi hanya beberapa entry tabel page (sampai dengan
ukuran maksimum).
• Jika
memori logika dibangkitkan oleh CPU, nomor page berupa sekumpulan associative
register yang berisi nomor page dan nomor frame yang
berkorespondensi.
• Jika
nomor page ditemukan pada associative register, nomor frame segera
tersedia dan digunakan untuk mengakses memori.
•
Sebaliknya, jika nomor page tidak ditemukan pada associative
register, acuan memori ke tabel page harus dibuat.
• Jika
nomor frame tersedia, maka dapat menggunakannya untuk mengakses ke
memori yang tepat.
•
Kemudian ditambahkan nomor page dan nomor frame ke associative
register sehingga akan mudah ditemukan pada acuan berikutnya.
•
Setiap kali tabel page baru dipilih, TLB harus dihapus untuk menjamin
eksekusi proses berikutnya tidak menggunakan informasi translasi yang
salah.
- Segmentasi
Kerugian utama dari paging adalah terdapat
perbedaan antara pandangan user mengenai memori dan memori fisik aktual.
- 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.
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. 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.
- Arsitektur Segmentasi
Alamat
logika terdiri dari dua bagian yaitu nomor segmen (s) dan offset (d)
yang dituliskan dengan
<nomor
segmen, offset>
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. Pada program yang berisi
sejumlah segmen yang besar, maka harus menyimpan tabel page di memori.
• 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.