III. STRUKTUR DASAR SISTEM OPERASI
1. Sistem Monolitik
Sistem
operasi sebagai kumpulan prosedur dimana prosedur dapat saling dipanggil oleh
prosedur lain di sistem bila diperlukan. Kernel (inti sistem operasi)
berisi semua layanan yang disediakan sistem operasi oleh pemakai (user).
Menggunakan konsep kernel loadable modules guna pengembangan, pengujian dan
fleksibilitas sistem operasi.
Kelemahan
- Pengujian dan penghilangan kesalahan sulit karena tak 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 pemrograman satu bagian dari kernel menyebabkan matinya seluruh system.
Keunggulan
- Layanan dapat dilakukan sangat cepat karena terdapat di satu ruang alamat.
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 kemudian dikompilasi dan ditautkan (di-link) menjadi satu ruang alamat.
Untuk mempermudah dalam pengembangan terutama pengujian dan fleksibilitas, kebanyakan UNIX saat ini menggunakan konsep kernel loadable modules, yaitu :
- 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).
Sistem operasi dibentuk secara hirarki berdasar lapisan-lapisan, dimana lapisan-lapisan bawah memberi layanan lapisan lebih atas. Sistem operasi yang pertama kali memakai sistem berlapis adalah THE oleh Djikstra dan mahasiswa-mahasiswanya. 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.
Lapisan
|
Nama
|
Fungsi
|
0
|
Processor allocation & multiprogramming
|
Mengatur alokasi pemroses dan
switching, multiprogramming dan pengaturan prosessor.
|
1
|
Memory & drum management
|
Alokasi ruang memori atau drum.
|
2
|
Operator process communication
|
Mengatur komunikasi antar proses.
|
3
|
I/O management
|
Penyederhanaan akses I/O pada level
atas.
|
4
|
User program
|
Untuk program pemakai.
|
5
|
Operator
|
Untuk operator.
|
Keunggulan :
- Memiliki semua keunggulan rancangan modular, yaitu sistem dibagi menjadi beberapa modul dan tiap modul dirancang secara independen. Tiap lapisan dapat dirancang, dikode dan diuji secara independen.
- Pendekatan berlapis menyederhanakan rancangan, spesifikasi dan implementasi sistem operasi.
- Fungsi-fungsi sistem operasi harus diberikan ke tiap lapisan secara hati-hati.
3. Sistem dengan Mesin Maya
Awalnya struktur ini membuat seolah-olah pemakai mempunyai seluruh komputer dengan simulasi atas pemroses yang digunakan. Sistem operasi melakukan simulasi mesin nyata. Mesin hasil simulasi digunakan pemakai, mesin maya merupakan tiruan seratus persen atas mesin nyata. Semua pemakai diberi ilusi mempunyai satu mesin yang sama-sama canggih.
Pendekatan ini memberikan fleksibilitas tinggi sampai memungkinkan sistem operasi-sistem operasi berbeda dapat dijalankan di mesin-mesin maya berbeda. Implementasi yang efisien merupakan masalah sulit karena sistem menjadi besar dan kompleks.
Teknik ini mulanya digunakan pada IBM S/370. VM/370 menyediakan mesin maya untuk tiap pemakai. Bila pemakai log (masuk) sistem, VM S/370 menciptakan satu mesin maya baru untuk pemakai itu.
Teknik ini berkembang menjadi operating system emulator sehingga sistem operasi dapat menjalankan aplikasi-aplikasi untuk sistem operasi lain.
- Sistem operasi MS-Windows NT dapat menjalankan aplikasi untuk MS-DOS, OS/2 mode teks dan aplikasi Win16. Aplikasi tersebut dijalankan sebagai masukan bagi subsistem di MS-Windows NT yang mengemulasikan system calls yang dipanggil aplikasi dengan Win32 API (system calls di MS-Windows NT).
- IBM mengembangkan WABI yang mengemulasikan Win32 API sehingga diharapkan sistem operasi yang menjalankan WABI dapat menjalankan aplikasi-aplikasi untuk MS Windows.
- Para sukarelawan pengembang Linux telah membuat DOSEMU agar aplikasi-aplikasi untuk MS-DOS dapat dijalankan di Linux, WINE agar aplikasi untuk MS-Windows dapat dijalankan di Linux, iBCS agar aplikasi-aplikasi untuk SCO-UNIX dapat dijalankan di Linux, dan sebagainya.
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/meinta layanan.
Proses client yang memerlukan layanan mengirirm 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 percakapan dengan client.
Kode dapat diangkat ke level tinggi sehingga kernel dibuat sekecil mungkin dan semua tugas diangkat ke bagian proses pemakai. Kernel hanya mengatur komunikasi antara client dan server. Kernel yang kecil ini popular dengan sebutan mikrokernel.
Masalah
Tidak semua tugas dapat dijalankan di tingkat pemakai (sebagai proses pemakai).
Kesulitan ini dapat diatasi dengan antara lain :
- Proses server kritis tetap di kernel, yaitu proses yang biasanya berhubungan dengan perangkat keras.
- Mekanisme ke kernel seminimal mungkin, sehinggga pengaksesan ruang pemakai dapat dilakukan secara cepat.
Untuk sistem-sistem besar dengan banyak server dikehendaki supaya client transparan dalam meminta layanan sehingga tidak menyulitkan pemrogram.
Keunggulan :
- 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.
Kelemahan :
- Layanan dilakukan lambat karena harus melayani pertukaran pesan.
- Pertukaran pesan dapat menjadi botleneck.
5. Sistem
Berorientasi Objek
Sistem operasi yang
merealisasikan layanan sebagaikumpulan proses disebut sistem operasi bermodel proses.
Pendekatan lain impletasi layanan adalah objek-objek. Sistem operasi yang
distrukturkan menggunakan objek disebut sistem objek berorientasi objek.
Pendekatan ini bermaksud untuk mengapdopsi keunggulan teknologi berorientasi
obek.
Pada sistem operasi
berorientasi objek, layanan diimplementasikan sebagai kumpulan objek. Objek
mengapsulkan struktur data dan sekkumpulan operasi pada struktur data itu. Tiap
objek diberi tipe yang menandai properti objek seperti proses, direktori,
berkas, dan sebagainya. Dengan memanggil operasi yang di defenisikan di objek,
data yang dikapsulkan dapat diakses dan di modifikasi.
Model ini sungguh
terstruktur dan memisahkan antara layanan yang di sediakan dan implementasinya.
Contoh sistem operasi berorientasi objek, antara lain:
Contoh sistem operasi berorientasi objek, antara lain:
- Eden
- Choice
- X-kernel
- Medusa
- Clouds
- Amoeba
- Muse
- Dan sebagainya
Sistem operasi MS Windows NT telah mengadopsi
beberapa teknologi beorientasi objek tapi belum keseluruhannya.
II. A. PCB (Process Control Block)
Struktur data PCB menyimpan informasi lengkap mengenai proses sehingga dapat terjadi siklus hidup proses. Sistem operasi memerlukan banyak informasi mengenai proses guna pengelolaan proses. Informasi ini berada di PCB. Sistem berbeda akan mengorganisasikan secara berbeda.
Informasi dalam PCB :
B. Tiga kelompok informasi PCB :
1. Informasi identifikasi proses
Informasi ini esensinya terdiri dari isi register-register pemroses. Saat proses berstatus running, informasi-informasi ini berada di register-register.
Ketika proses diinterupsi, semua informasi register harus disimpan agar dapat dikembalikan saat proses dieksekusi kembali.
Informasi ini berkaitan dengan identitas proses yang berkaitan dengan tabel lainnya. Informasi tersebut meliputi :
Identifier proses
Identifier proses yang menciptakan
Identifier pemakai
2. Informasi status proses
Informasi tentang isi register-register pemroses. Saat proses berstatus running, informasi tersebut berada diregister-register. Ketika proses diinterupsi, semua informasi register harus disimpan agar dapat dikembalikan saat proses dieksekusi kembali. Jumlah dan jenis register yang terlibat tergantung arsitektur komputer. Informasi status terdiri dari :
Register-register yang terlihat pemakai, adalah register-register yang dapat ditunjuk instruksi bahasa assembly untuk diproses pemroses.
Register-register kendali dan status, Adalah register-register yang digunakan untuk mengendalikan operasi pemroses.
Pointer stack, tiap proses mempunyai satu atau lebih stack, yang digunakan untuk parameter atau alamat prosedur pemanggil dan system call. Pointer stack menunjukkan posisi paling atas dari stack.
3. Informasi kendali proses
Informasi kendali proses adalah informasi lain yang diperlukan sistem operasi untuk mengendalikan dan koordinasi beragam proses aktif. Informasi kendali terdiri dari :
Informasi penjadwalan dan status, Informasi-informasi yang digunakan untuk menjalankan fungsi penjadwalan, antara lain :
Status proses, Mendefinisikan keadaan/status proses (running, ready, blocked)
Prioritas, Menjelaskan prioritas proses.
Informasi berkaitan dengan penjadwalan, Berkaitan dengan informasi penjadwalan, seperti lama menunggu, lama proses terakhir dieksekusi.
Kejadian, Identitas kejadian yang ditunggu proses.
Penstrukturan data, satu proses dapat dikaitkan dengan proses lain dalam satu antrian atau ring, atau struktur lainnya. PCB harus memiliki pointer untuk mendukung struktur ini.
Komuikasi antar proses, beragam flag, sinyal dan pesan dapat diasosiasikan dengan komunikasi antara dua proses yang terpisah.
Manajemen memori Bagian yang berisi pointer ke tabel segmen atau page yang menyatakan memori maya (virtual memory) proses.
Kepemilikan dan utilisasi sumber daya, sumber daya yang dikendalikan proses harus diberi tanda, misalnya :
Informasi ini diperlukan oleh penjadwal.
Struktur citra proses digambarkan berurutan di satu ruang alamat. Implementasi penempatan citra proses yang sesungguhnya bergantung skema manajemen memori yang digunakan dan organisasi struktur kendali sistem operasi.
I. Satuan Tipe Data dan Struktur Data
Tipe data merupakan bagian program yang paling penting karena tipe data mempengaruhi setiap instruksi yang akan dilaksanakan oleh computer. Misalnya saja 5 dibagi 2 bisa saja menghasilkan hasil yang berbeda tergantung tipe datanya. Jika 5 dan 2 bertipe integer maka akan menghasilkan nilai 2, namun jika keduanya bertipe float maka akan menghasilkan nilai 2.5000000. Pemilihan tipe data yang tepat akan membuat proses operasi data menjadi lebih efisien dan efektif dalam manajemen memory komputer.
1.Berikut adalah satuan tipe data:
No Tipe Data Ukuran Range (Jangkauan) Format Keterangan
1 char 1 byte 128 s/d 127 %c Karakter/string
2 int 2 byte 32768 s/d 32767 %i , %d Integer/bilangan bulat
3 float 4 byte 3.4E-38 s/d 3.4E+38 %f Float/pecahan
4 double 8 byte 1.7E-308 s/d 1.7+308 %lf Pecahan presisi ganda
5 void 0 byte - - Tidak bertipe
Berikut adalah satuan tipe data boolean :
Boolean: menjelaskan nilai True atau False (T/F)
Tipe Data Lainnya
cursor: penunjuk dari kursor.
sql_variant: sebuah tipe data yang menyimpan nilai-nilai dari berbagai SQL Server.
table: tipe data khusus yang digunakan untuk menyimpan kumpulan hasil untuk diproses nantinya.
timestamp: Sejumlah database-wide unik yang akan diperbarui setiap kali berturut-turut akan diperbarui.
pointer: tipe data bahasa pemrograman yang nilainya mengacu langsung ke (atau “menunjuk ke”) nilai lain yang disimpan di tempat lain dalam memori komputer melalui alamatnya.
uniqueidentifier: sebuah identifier unik secara global (GUID)
KiloByte(KB): 1024 Byte
MegaByte(MB): 1024 KB
GigaByte(GB): 1024 MB
TeraByte(TB): 1024 GB
2.Tipe struktur data
Data merupakan salah satu hal penting yang tidak dapat ditinggalkan dalam pemakaian komputer. Data adalah sekumpulan fakta yang dapat diperoleh dari berbagai sumber, seperti dari hasil pengukuran, pengamatan di labolatorium, hasil survey, angket dan lain sebagainya.
Dengan bermacam cara data disajikan dan diolah menjadi informasi. Informasi dapat disajikan dengan tulisan ataupun lisan, informasi sangat penting karena berfungsi sebagai dasar dalam pengambilan keputusan.
Struktur data adalah suatu koleksi atau kelompok data yang dapat dikarakterisasikan oleh organisasi serta operasi yang didefinisikan terhadapnya. Pengertian struktur data adalah elemen data (mulai dari byte) yang ditentukan tipe datanya, diorganisasi (dibentuk, disusun, atau dikelompokkan) dan akan diproses sesuai dengan tipe datanya. Pada definisinya, data dapat dikategorikan menjadi :
Tipe data sederhana atau data sederhana, yang terdiri dari :
- Data sederhana tunggal, misalnya integer, real, Boolean, serta character.
- Data sederhana majemuk, misalnya string.
Tipe data ini dapat diorganisasikan menjadi berbagai struktur data dengan berbagai cara tertentu. Struktur data, meliputi :
- Struktur data sederhana, misalnya array dan record.
- Struktur data majemuk, terdiri atas :
- Linear, misalnya stack, queue, dan linear linked list.
- Nonlinear, misalnya pohon binary (binary tree), pohon cari biner (binary search tree), pohon cari m-way (m-way search tree), general tree, serta graph.
Kedua kategori diatas terutama diperuntukkan untuk data pada storage utama. Data yang diperuntukan untuk storage tambahan, memiliki struktur data yang dikenal dengan organisasi file.
Tipe organisasi file diantaranya adalah sebagai berikut :
Sequential
- Record disimpan dalam file secara beruntun berdasarkan waktu tiba dari pekerjaan yang diwakilinya, sehingga membentuk first-in-first-out (FIFO), struktur data seperti ini disebut antrean atau queue.
-Record yang masuk pertama akan memiliki indeks atau alamat yang lebih kecil daripada record yang masuk kemudian.
Indexed Sequential
- Record disimpan secara berurutan.
- Record yang masuk terlebih dahulu disimpan pada tempat yang lebih kecil.
- Untuk melakukan pencarian pada organisasi ini perlu menggunakan pencarian terlebih dahulu.
- Dengan organisasi file ini lebih fleksibel karena ukuran file disesuaikan dengan banyaknya data yang ada pada setiap file.
RelativeMultikey
Dua buah struktur data sederhana adalah array atau larik dan record. Array merupakan struktur data yang terurut dan homogen, terdiri dari data item yang membentuk satu kesatuan yang tipe datanya sama. Sedangkan record merupakan struktur data yang terdiri atas serangkaian data item dengan tipe data yang berbeda.
Pemakaian struktur data yang tepat di dalam proses pemrograman, akan mengasilkan algoritma yang lebih jelas dan tepat, sehingga menjadikan program secara keseluruhan lebih sederhana.
Suatu struktur data dicirikan dengan :
1 Jenis atau satuan data pembentuknya
2.Hubungan antara satuan tersebut.
Strukutur data terdiri dari satuan data sederhana yang cocok untuk program yang dipakainya. Hubungan antara satuan data tersebut membentuk salah satu cirri dari struktur yang bersangkutan. Jika sebuah struktur data sudah tersedia maka struktur data itu langsung dapat digunakan. Jika satuan data sederhana dapat membentuk sebuah struktur yang lebih efisien dalam penggunaan memori, maka struktur data tersebut dapat disatukan. Struktur tersebut tidak dapat langsung ditujukan kepada sebuah address, maka dari itu harus melalui proses pemrograman. Jika menggunakan penyajian secara sequential, maka komponen struktur data ditempatkan ke dalam relokasi memori secara berurutan.
METODE HASHING
Metode hashing ini digunakan untuk :
Mengatasi kerugian korespondensi satu-satu. Untuk mengurangi banyaknya ruang alamat yang digunakan untuk pemetaan dari key yang memiliki cakupan yang luas ke nilai alamat yang memiliki cakupan yang dipersempit. Output fungsi HASH adalah home address dari record yang keynya diproses.
Macam – macam fungsi metode Hash :
Fungsi : f(key) = address
Fungsi modulo : Home address dicari dengan cara mencari sisa hasil bagi nilai key dengan suatu nilai tertentu.
Fungsi: f(key) = key mod n
Dengan n adalah Banyaknya ruang alamat yang tersedia atau bilangan prima terdekat yang berada di atas nilai banyak data, setelah itu banyaknya ruang alamat disesuaikan dengan n.
Fungsi Pemotongan : Home address dicari dengan memotong nilai key ke jumlah digit tertentu yang lebih pendek. Contoh: NIM yang tadinya 8 digit, dipotong hanya menjadi 2 digit!
Fungsi Pelipatan : Dilakukan pelipatan terhadap record key dengan bagian yang sama panjang, lalu setiap bagian dijumlahkan NIM 8 digit dibagi dua digit, hingga menjadi 4 buah.Misal: 22002521, dibagi 22 00 25 21 kemudian dijumlahkan: 68.
Fungsi Pengkuadratan : Home address dicari dengan mengkuadratkan setiap digit pembentuk key, lalu semua hasilnya dijumlahkan Contoh: 22002211, semua digit dikuadratkan dan dijumlah.
Fungsi Penambahan Kode ASCII Jika key bukan kode numerik, home address dicari dengan menjumlahkan kode ASCII setiap huruf pembentuk key ADE = 65 + 68 + 69 = 192
COLLISION RESOLUTION
Karena collision dapat dipastikan akan dapat terjadi, maka output dari suatu fungsi hash tidak selalu unik, hanya berupa kemungkinan suatu alamat yang sudah ditempati, jika home address sudah ditempati oleh record lain, maka harus dicarikan address lain.
Proses pencarian address ini disebut dengan collision resolution
METODE COLLISION RESOLUTION
1.Open Addressing.
2.Chaining.
3.Coalesced Hashing.
4.Chained Progressive Overflow.
5.Bucket.
Hubungannya Dengan Manajemen Memori
1. Aljabar
Dalam pemrograman komputer, terutama pemrograman fungsional dan teori tipe, tipe data aljabar adalah jenis jenis komposit, yaitu jenis yang dibentuk dengan menggabungkan jenis lainnya. Ada dua kelas umum jenis aljabar, yaitu product type (tuples dan record), dan sum type (disebut juga tagged union atau variant type). Nilai dari tipe aljabar dianalisis dengan pencocokan pola dengan mengidentifikasi nilai oleh konstruktor atau nama field dan ekstrak data yang terdapat di dalamnya. Tipe data aljabar sangat tepat digunakan untuk sintaks yang abstrak.
Kaitannya dengan manajemen memori: Tipe data aljabar umumnya menjelaskan dengan menggunakan tumpukan. Karena ketidakkeseragamannya, tipe data aljabar lebih sulit untuk memindai.
2. Stack
Dalam ilmu komputer, stack atau tumpukan merupakan sebuah koleksi objek yang menggunakan prinsip LIFO (Last In First Out), yaitu data yang terakhr kali dimasukkan akan pertama kali keluar dari stack tersebut. Stack dapat diimplementasikan sebagai representasi berkait atau kontigu (dengan tabel fix). Ciri dari stack itu sendiri diantaranya: elemen top (puncak) diketahui, penisipan dan penghapusan elemen selalu dilakukan di TOP, dan LIFO. Ketika orang mengatakan “stack“, itu biasanya berarti pengaturan stack didukung oleh OS dan / atau prosesor.
Kaitannya dengan manajemen memori: Penempatan stack merupakan teknik penting. Control stack sangat sentral guna kinerja sistem dan selalu membutuhkan tindakan khusus.
3. Stack Frame
Stack frame atau juga dikenal sebagai record stack adalah aktivasi record yang disimpan pada stack. Dalam arsitektur berbasis register, tedapat instruksi hardware yang memfasilitasi penyimpanan register pada stack saat record aktivasi lain sedang dibuat. Instruksi seperti ini memberikan gambaran tata letak tertentu untuk aktivasi record.
Kaitannya dengan manajemen memori: Hardware mensupport penyimpanan dan restoring register, untuk stack dan addressing stack mereka akan menelaskan ukuran dan tipe data yang dapat disimpan dalam stack frame. Pengetahuan dari tata letak setiap tumpukan frame dapat membantu pengumpul garbage dalam menemukan roots.
4. Leaf Object
Leaf object atau dikenal juga dengan objek atom adalah suatu objek yang tidak berhubungan dengan objek lainnya. Dalam bahasa ketikan, compiler umumnya dapat menentukan waktu compile bahwa tipe tersebut dapat menjelaskan sebagai leaf object. Biasanya pada jenis ini, tipe data skalar atau tipe data vektor scalar, besarnya dibatasi.
Kaitannya dengan manajemen memori: Jika leaf object dapat diidentifikasi, pengumpulan garbage dapat membuat optimasi tertentu, leaf object tidak harus dipindai untuk menunjukkan barrier yang diperlukan untuk mendeteksi dan mempertahankan gambaran dalam objek.
5. Skalar
Tipe data skalar adalah jenis yang representable dalam dimensi tunggal dan objek yang hanya memiliki besaran sebagai nilai. Contoh tipe data skalar adalah: integer, angka floating-point, enumeration, dan characters.
Kaitannya dengan manajemen memori: Objek tipe data skalar data adalah leaf object. Tipe data skalar ditunjukkan lengkap menggunakan objek nilai dengan bounded magnitude.
6. Grafik
Grafik merupakan tipe data abstrak yang mengacu pada penerapan konsep grafik dan hipergraf matematika. Struktur data grafik terdiri atas kumpulan pasangan perintah terbatas (dan mungkin bisa berubah) yang disebut edges atau arcs, dan kumpulan entitas tertentu yang disebut node atau verices. Seperti halnya dalam matematika, edge (x,y) dikatakan sebagai dari x ke y. Node menjadi bagian dari struktur grafik, atau bisa sebagai gambaran entitas eksternal oleh indeks integer atau sebagai petunjuk.
Kaitannya dengan manajemen memori: Dalam manajemen memori, biasanya edges menunjukkan kenyataan bahwa suatu objek memegang petunjuk ke objek lain.
7. Vektor
Tipe data vector adalah kumpulan tipe lebih dari satu dimensi dimana objek memiliki nilai untuk masing-masing dimensi yang berasal dari jenis yang sama. Contoh tipe data vektor adalalah: string, array, dan list.
Kaitannya dengan manajemen memori: Vektor jarang menggunakan value object, tetapi dapat diwakili dengan menggunakan leaf objects jika mereka merupakan kumpulan dari tipe yang dapat diwakili oleh objek nilai. Informasi pemindaian vektor ini dapat dikodekan dengan rapi dalam hal jumlah tipe dan dimensi vektor.
Tidak ada komentar:
Posting Komentar