SO

Resume 1-7  STIKOM SURABAYA

MANAJEMEN  PROSES

Proses :

Adalah program yang sedang di jalankan atau software yang sedang dilaksanakan termasuk sistem operasi yang disusun menjadi sejumlah proses sequential.

Konsep dasar :

1.Multiprogramming

Melakukan proses satu persatu secara bergantian dalam waktu yang sangat cepat / bersamaan (hardware level). Setiap proses mempunyai satu virtual CPU.

2.Pseudoparallelism

Melakukan lebih dari satu pekerjaan dalam waktu yang bersamaan / pseudoparallelism (user level).

Model Proses :

  1. Sequential Process / bergantian
  2. Multiprogramming
  3. CPU Switching à peralihan prosedur  dalam mengolah 1 proses ke proses lainnya.

Secara konsep setiap proses mempunyai 1 virtual CPU, tetapi pada kenyataannya adalah multiprogramming. Maka akan lebih mudah menganggap kumpulan proses yang berjalan secara parallel.

 Hirarki Proses

Pemanggilan proses oleh proses lain disebut parallel. Sistem operasi menyediakan apa yang dibutuhkan oleh proses. Umumnya proses diciptakan dan dihilangkan selama operasi berlangsung.

1.      Create & Destroy Proses : Sistem operasi yang mendukung konsep proses, harus menyediakan suatu cara untuk membuat (create) proses dan menghilangkan (destroy) proses.

2.      Fork System Call : Mekanisme untuk membuat (create) proses yang identik dengan proses yang memanggilnya.

3 Status proses / bagian keadaan proses :

  1. Running / kerja, benar-benar menggunakan CPU pada saat itu (sedang mengeksekusi instruksi proses itu).
  2. Blocked / terhenti, tidak dapat berjalan sampai kegiatan eksternal terlaksana (proses menunggu kejadian untuk melengkapi tugasnya). Bisa berupa proses menunggu : Selesainya operasi perangkat I/O; Tersedianya memori; Tibanya pesan jawaban
  3. Ready / siap, proses siap dikerjakan tetapi menunggu giliran dengan proses lain yang sedang dikerjakan (bisa berjalan, sementara berhenti untuk memungkinkan proses lain dikerjakan)

Transisi Status

  1. Proses di blok untuk melayani input karena sumber daya yang diminta belum tersedia / meminta layanan I/O sehingga menunggu kejadian muncul.
  2. Penjadwalan mengambil proses lain.
  3. Penjadwalan mengambil proses ini (baru).
  4. Input telah tersedia.

Implementasi Proses :

  • Untuk mengimplementasikan model proses, sistem operasi menggunakan suatu tabel / array yang disebut tabel proses dengan 1 entry per-proses.
  • Setiap entry berisi tentang : status proses, program counter, stack pointer, alokasi memori, status file, informasi schedulling / penjadwalan informasi, dll dari status kerja ke status siap

Contoh Tabel Proses :

Proses management

Memory management

File management

Register Pointer to text segment

UMASK mask

Program counter Pointer to data segment Root directoy
Program status word Pointer to bss segment Working directory
Stack pointer Exit status File descriptiors
Process state Signal status Effective uid
Time when process started Process id Effective gid
CPU time used Parent process System call parameters
Children’s CPU time Process group Various flag bits
Time of next alarm Real uid
Message queue pointers Effective uid
Pending signal bits Real gid
Process id Effective gid
Various flag bits Bit maps for signals
Various flag bits

Interupsi : Kerja prosesor pada suatu proses terhenti oleh pensaklaran konteks.

Pensaklaran konteks : perubahan kegiatan prosesor dari proses ke proses yang terjadi diantara proses sistem / proses aplikasi

Konteks : kegiatan prosesor terhadap sesuatu hal, berasal dari sistem operasi, sistem bahasa dan sistem utilitas.

Blok kendali proses : suatu bagian memori untuk mencatat keadaan proses, yang terbagi atas wilayah dimana setiap wilayah untuk mencatat informasi yang berbeda.

2 cara interupsi pada processor :

  1. 1.      Interupsi langsung

Berasal dari luar prosesor (peripheral / alat mengirim sinyal kepada prosesor untuk meminta pelayanan)

  1. 2.      Interupsi Tanya / Polling

Berasal dari prosesor (prosesor secara bergiliran mengecek apakah ada peripheral yang memerlukan pelayanan atau tidak)

  • Interupsi dapat di-enable dan disable tergantung pada levelnya.
  • Pembangkit interupsi dapat berasal dari :
    • Program, di dalam program telah dirancang pada bagian tertentu akan terjadi pensaklaran konteks, yang menimbulkan interupsi, contohnya pada saat penggunaan alat / prosesor secara bergantian.
    • Prosesor, prosesor sendiri dapat membangkitkan interupsi, yang biasa mengolah logika dan aritmatika. Jika melampoi ukuran tampung register di dalam prosesor, maka terjadi kekeliruan yang akan menginterupsi kerjanya sendiri dan menyerahkan kendali prosesor pada sistem operasi. Misalnya pembagian dengan bilangan nol.
    • Satuan kendali, tugas untuk melaksanakan interupsi terletak pada satuan kendali, sehingga satuan kendali dapat membangkitkan interupsi. Misalnya kekeliruan instruksi
    • Kunci waktu / clock, menggunakan interupsi berkala. Misalnya pada program looping yang tak terhingga, diinterupsi pada setiap selang waktu 60 detik.
    • Peripheral I/O, I/O jika akan bekerja memberitahukan pada prosesor dengan interupsi prosesor dan juga ketika pekerjaan selesai atau pada saat terjadi kekeliruan paritas.
    • Memori, karena terjadi kekeliruan, misalnya ketika prosesor ingin mencapai alamat memori yang terletak di luar bentangan alamat memori yang ada.
    • Sumber daya lain, misal dibangkitkan oleh operator sistem komputer yang mengerti cara interupsi.

Interupsi vector : Berisi alamat prosedur service interupsi

Penerimaan interupsi dan interupsi berganda : ada kalanya interupsi ditolak oleh prosesor atau interupsi yang datang tidak hanya satu sehingga diperlukan prioritas.

 Tindak lanjut interupsi :

1.      Penata interupsi / interrupt handler

jika terjadi interupsi, maka kendali prosesor diserahkan ke bagian penata interupsi pada sistem operasi, maka penata interupsi inilah yang melaksanakan interupsi.

  1. Instruksi yang sedang diolah oleh prosesor dibiarkan sampai selesai program.
  2. Penata interupsi merekam semua informasi proses ke dalam blok kendali proses.
  3. Penata interupsi mengidentifikasi jenis dan asal interupsi.
  4. Penata interupsi mengambil tindakan sesuai dengan yang dimaksud interupsi.
  5. Penata interupsi mempersiapkan segala sesuatu untuk pelanjutan proses yang diinterupsi.

2.      Penata keliru / error handler

yaitu interupsi karena kekeliruan pada pengolahan proses dan bagian pada sistem operasi yang menata kegiatan akibat kekeliruan adalah penata keliru.

  1.    Pemulihan, komputer telah dilengkapi dengan sandi penemuan dan pemulihan kekeliruan, contohnya telah dilengkapi dengan sandi Hamming sehingga ketika menemukan kekeliruan sandi akan mengoreksi kekeliruan itu, proses pulih ke bentuk semula sebelum terjadi kekeliruan.
  2.   Pengulangan, mengatur agar proses yang membangkitkan interupsi keliru dikerjakan ulang, jika kekeliruan dapat diatasi maka proses akan berlangsung seperti biasa, jika tidak teratasi maka interupsi akan menempuh tindak lanjut keluar dari proses.
  3.   Keluar dari proses, penata keliru menyiapkan tampilan berita keliru dari monitor, setelah itu prosesor keluar dari proses, ini adalah tindakan terakhir jika tidak dapat menolong proses yang keliru tersebut.

Langkah-langkah yang dilakukan sistem operasi pada saat terjadi interupsi :

  1. hardware memasukkan program counter, dl.l.

memasukkan ke dalam stack pencacah program

  1. Hardware memuatkan (load) program counter baru dari vector interrupsi
  2. Prosedur bahasa rakitan menyimpan isi register
  3. Prosedur bahasa rakitan men-set stack yang baru
  4. Prosedur C menandai proses servis siap (ready)
  5. Scheduler / penjadwalan menentukan proses mana yang akan jalan berikutnya
  6. Prosedur C kembali ke modus bahasa rakitan
  7. Prosedur bahasa rakitan memulai proses yang sedang dilaksanakan.

Critical Section / seksi kritis :

Bagian dari program yang mengakses shared memory, yang dapat menyebabkan terjadinya race condition.

4 kondisi untuk mencegah race condition :

  1. Tidak ada 2 proses yang memasuki critical sectionnya secara bersamaan  / simultan
  2. Tidak ada asumsi yang dibuat yang berhubungan dengan kecepatan dan jumlah CPU
  3. Tidak ada proses yang berjalan diluar critical section-nya yang dapat memblokir proses-proses lain
  4. Tidak ada proses yang menunggu selamanya untuk masuk ke critical section-nya.

Mutual Exclusion (MuTex) With Busy Waiting :

Jika suatu proses sedang mengakses shared memory di critical sectionnya, tidak ada satu prosespun yang dapat memasuki critical section (mutual exclusion) dan menyebabkan masalah.

Jenis-jenis mutual exclusion :

1.      Disabling interrupt / mematikan interupsi

Dengan cara mematikan interupsi yang masuk pada saat proses sedang berada pada critical section-nya. Cara ini kadang cukup berguna untuk kernel tetapi tidak untuk user. Dan cara inipun tidak terlalu baik untuk CPU yang jumlahnya lebih dari satu, dimana disable interrupt hanya mengenai CPU yang sedang menjalankan proses itu dan tidak berpengaruh terhadap CPU lain

2.      Lock  variables

Setiap proses yang akan mengakses ke critical section-nya harus meng-cek lock variable. Jika 0 berarti proses dapat memasuki critical section-nya dan jika 1 maka proses harus menunggu sampai lock variable = 0. Kelemahannya adalah 2 proses masih dapat memasuki critical section-nya pada saat yang bersamaan. Sewaktu satu proses meng-cek lock variable = 0, pada saat akan men-set 1 ada interupsi untuk melaksanakan proses lain yang juga ingin memasuki critical sectionnya, maka akan terjadi race condition.

3.      Strict alternation

Dengan mengamati variable turn untuk menentukan siapa yang akan memasuki critical section-nya bukanlah ide yang baik jika proses lebih lambat dari yang lain.

4.      Peterson’s Solution

Proses tidak akan diteruskan sampai while terpenuhi, bila interested[other] = TRUE, maka proses akan menunggu sampai FALSE.

Kelemahannya : jika proses memanggil enter_region-nya secara hampir bersamaan, yang disimpan di turn adalah data yang ditulis terakhir. Proses harus memanggil ini pada saat yang tepat. Kelemahan utama dengan busy waiting adalah menyita banyak waktu CPU dan problem inversi prioritas.

6.      Sleep and Wake Up

Mekanismenya : proses akan di blok / tidur (sleep) apabila tidak bisa memasuki critical_section-nya dan akan dibangunkan (wake up) / ready apabila resource yang diperlukan telah tersedia.

SLEEP : sistem call membuat proses yang memanggil di blok (blocked)

WAKE UP : sistem call yang membuat proses yang memanggil menjasi ready

Beberapa proses share buffer dengan ukuran tetap

Jika buffer penuh producer sleep

Jika buffer kosong consumer sleep

Jika buffer mulai kosong producer wake up

Jika buffer terisi consumer wake up

Masih ada kemungkinan terjadi race condition

7.      Semaphore (Dijkstra, 1965)

Instruksi tersebut sangat berguna untuk sinkronisasi.

Dapat diimplementasikan untuk memecahkan producer-consumer problem.

Mekanisme-nya menggunakan :

–             variabel integer untuk menghitung jumlah wake up yang disimpan / tertunda

–             bernilai 0 bila tidak ada wake up yang disimpan, bernilai positif bila ada wake up yang tertunda

Dua macam operasi terhadap semaphore :

  1. DOWN(S) :

Operasi DOWN dan UP merupakan operasi yang bersifat Atomic (Atomic Action).

8.      Event Counters (Reed and Kanodia, 1979)

Tiga operasi terhadap event counter (E) :

  1. Read (E) : return current value of E
  2. Advance (E) : Atomically increment E by 1
  3. Wait until E has a value of v or more
  4. 9.      Monitor

–        Higher level synchronization primitive.

–        Kumpulan prosedur, variabel dan struktur data yang dipaket menjadi satu modul atau paket.

–        Proses bisa memanggil prosedur dalam monitor, tetapi tidak dapat mengakses langsung struktur data internal dari monitor.

10.    Message Passing

Menggunakan 2 primitive :

  1. send (destination, &message)
  2. receive (source, &message)

Beberapa isu pada message passing system : message lost; acknowledgement; domains; authentication; performance

 

Masalah Klasik IPC :

The Dining Philosopher Problem

–        5 philosophers yang kerjanya hanya makan dan berfikir

–        tersedia lima piring spaghetti dan lima sumpit

–        untuk makan dibutuhkan bua buah sumpit

–        problem-nya bagaimana cara menulis program agar setiap philosopher dapat berfikir dan makan tanpa harus saling menunggu ?

The Readers and Writers Problem

–        Model akses database

–        Banyak proses berkompetisi untuk membaca dan menulis. Contohnya : airline reservation.

–        Beberapa proses boleh membaca pada saat yang sama

–        Bila suatu proses sedang menulis, tidak boleh ada proses lain yang mengakses database

–        Proses membaca mempunyai prioritas yang lebih tinggi daripada proses menulis

Ada 3 model process pada server :

  1. thread di ciptakan untuk dapat melakukan paralelisme yang dikombinasikan dengan eksekusi sekuensial dan blocking system calls
  2. single treads server, menggunakan blocking system calls, tetapi kinerja sistem tidak baik
  3. finite-state machine, kinerja baik dengan melakukan parallelisme, tetapi menggunakan nonblocking calls, sehingga sulit dalam memprogram

SINKRONISASI

LATAR BELAKANG

  • Akses-akses yang dilakukan secara bersama-sama ke data yang sama, dapat menyebabkan data menjadi tidak konsisten.
  •  Untuk menjaga agar data tetap konsisten, dibutuhkan mekanisme-mekanisme untuk memastikan pemintaan ekseskusi dari proses yang bekerja.
  •  Race Condition: Situasi dimana beberapa proses mengakses dan memanipulasi data secara bersamaan. Nilai terakhir dari data bergantung dari proses mana yang selesai terakhir.
  • Untuk menghindari Race Condition, proses-proses secara bersamaan harus disinkronisasikan.

Race Condition

adalah situasi di mana beberapa proses mengakses dan memanipulasi data bersama pada saat besamaan. Nilai akhir dari data bersama tersebut tergantung pada proses yang terakhir selesai. Untuk mencegah race condition, proses-proses yang berjalan besamaan harus di disinkronisasi.

contoh sederhana print spooler. 

Critical Condition 

 kondisi agar menghasilkan solusi yang baik:

    1. Tidak ada dua proses secara bersamaan masuk ke dalam critical section.
    2. Tidak ada asumsi mengenai kecepatan atau jumlah cpu.
    3. Tidak ada proses yang berjalan di luar critical secion yang dapat mengeblok proses lain.
    4. Tidak ada proses yang menunggu selamamya untuk masuk critical section
  • Critical Section adalah sebuah segmen kode di mana sebuah proses yang mana sumber daya bersama diakses. Terdiri dari:
  • Entry Section: kode yang digunakan untuk masuk ke dalam critical section
  • Critical Section: Kode di mana hanya ada satu proses yang dapat dieksekusi pada satu waktu
  • Exit Section: akhir dari critical section, mengizinkan proses lain
  • Remainder Section: kode istirahat setelah masuk ke critical section

Mutual Exclusion

Mutual Exclusion: jaminan hanya ada satu proses yg mengakses sumber daya pada suatu interval waktu tertentu.

Tiga kondisi untuk menentukan mutual Exclusion

  1.  Tidak ada dua proses yang pada saat bersamaan berada di critical region.
  2.  Tidak ada proses yang berjalan diluar critical region yang bisa menghambat proses lain
  3.  Tidak ada proses yang tidak bisa masuk ke critical region

Solusi

Cara-cara memecahkan masalah .Hanya dua proses, Po dan P1.Struktur umum dari proses adalah Pi (proses lain Pj)

Algoritma 1 :

Semaphore

Semaphore adalah pendekatan yang diajukan oleh Djikstra, dengan prinsip bahwa dua proses atau lebih dapat bekerja sama dengan menggunakan penanda-penanda sederhana. Seperti proses dapat dipaksa berhenti pada suatu saat, sampai proses mendapatkan penanda tertentu itu. Sembarang kebutuhan koordinasi kompleks dapat dipenuhi dengan struktur penanda yang cocok untuk kebutuhan itu. Variabel khusus untuk penanda ini disebut semaphore. 

Semaphore mempunyai dua sifat, yaitu:

  1. 1.       Semaphore dapat diinisialisasi dengan nilai non-negatif.
  2. 2.       Terdapat dua operasi terhadap semaphore, yaitu Down dan Up. Usulan asli yang disampaikan Djikstra adalah operasi P dan V.

Operasi Down

Operasi ini menurunkan nilai semaphore, jika nilai semaphore menjadi non-positif maka proses yang mengeksekusinya diblocked.

Operasi Up

Operasi Up menakkan nilai semaphore. Jika satu proses atau lebih diblocked pada semaphore itu tak dapat menyelesaikan operasi Down, maka salah satu dipilih oleh system dan menyelesaikan operasi Down-nya. Urutan proses yang dipilih tidak ditentukan oleh Djikstra, dapat dipilih secara acak.

Deadlock

Adalah suatu kondisi dimana dua proses atau lebih tidak dpt meneruskan eksekusinya oleh processor.

Deadlock terjadi karena proses mangalami starvation, yaitu suatu job yg sedang di eksekusi dan eksekusi job tersebut tidak ada hentinya, tdk diketahui kapan berhentinya sehingga job yg ada di antrian mati.

Contoh berikut ini terjadi pada sebuah persimpangan jalan. Beberapa hal yang dapat membuat deadlock pada suatu persimpangan, yaitu:

    1. Terdapat satu jalur pada jalan.
    2. Mobil digambarkan sebagai proses yang sedang menuju sumber daya.
    3. Untuk mengatasinya beberapa mobil harus preempt (mundur).
    4. Sangat memungkinkan untuk terjadinya starvation (kondisi proses tak akan mendapatkan sumber daya).

METODE MENGHADAPI DEADLOCK

Strategi untuk menghadapi deadlock dapat dibagi menjadi tiga pendekatan, yaitu:

  1.  Metode penceghan deadlock (deadlock prevention).
  2.  Metode menghindari deadlock (deadlock Avoidance).
  3.  Metode deteksi dan pemulihan dari deadlock (deadlock detection and recovery.

CONTOH METODE MENGHADAPI DEADLOCK

1.`Pendekatan metode ini adalah dengan hanya memberi kesempatan ke permintaan sumber daya yang tidak mungkin akan menyebabkan deadlock. Metode ini memeriksa dampak pemberian akses pada suatu proses, jika pemberian akses tidak mungkin menuju kepada deadlock, maka sumber daya akan diberikan pada proses yang meminta. Jika tidak aman, proses yang meminta akan di-suspend sampai suatu waktu permintaannya aman untuk diberikan. Kondisi ini terjadi ketika setelah sumber daya yang sebelumnya dipegang oleh proses lain telah dilepaskan.

2.  Kondisi aman yang dimaksudkan selanjutnya disebut sebagai safe-state, sedangkan keadaan yang tidak memungkinkan untuk diberikan sumber daya yang diminta disebut unsafe-state.

Kondisi Aman (Safe state)

n  Suatu keadaan dapat dinyatakan sebagai safe state jika tidak terjadi deadlock dan terdapat cara untuk memenuhi semua permintaan sumber daya yang ditunda tanpa menghasilkan deadlock. Dengan cara mengikuti urutan tertentu.

Kondisi Tak Aman (Unsafe state)

Suatu state dinyatakan sebagai state tak selamat (unsafe state) jika tidak terdapat cara untuk memenuhi semua permintaaan yang saat ini ditunda dengan menjalankan proses-proses dengan suatu urutan. 

Terminasi Proses

Metode ini akan menghapus proses-proses yang terlibat pada kondisi deadlock dengan mengacu pada beberapa syarat. Beberapa syarat yang termasuk dalam metode ini adalah, sebagai berikut:

  1. Menghapus semua proses yang terlibat dalam kondisi deadlock (solusi ini terlalu mahal).
  2. Menghapus satu persatu proses yang terlibat, sampai kondisi deadlock dapat diatasi (memakan banyak waktu).
  3.  Menghapus proses berdasarkan prioritas, waktu eksekusi, waktu untuk selesai, dan kedalaman dari rollback.

Resources Preemption

Metode ini lebih menekankan kepada bagaimana menghambat suatu proses dan sumber daya, agar tidak terjebak pada unsafe condition.

Beberapa langkahnya, yaitu:

  1.  Pilih salah satu – proses dan sumber daya yang akan di-preempt.
  2. Rollback ke safe state yang sebelumnya telah terjadi.
  3.  Mencegah suatu proses agar tidak terjebak pada starvation karena metode ini.

MANAJEMEN MEMORI

Memory manager :

Salah satu bagian sistem operasi yang mempengaruhi dalam menentukan proses mana yang diletakkan pada antrian.Tanda pengenal untuk pencarian letak memori adalah alamat, lintasan / trek, sector pada suatu disk.

Jenis Memori

–    Memori Kerja

Tugas utamanya adalah menampung pekerjaan itu pada saat sebelum dan sesudah pekerjaan itu dilaksanakan oleh prosesor dan menampung berbagai hal yang diperlukan prosesor, contohnya system operasi, system bahasa, catatan.

      Contoh memori kerja untuk memori tetap adalah :

ROM                   :    Read Only Memory ® memori baca saja

PROM                 :    Programmable ROM ® dapat diprogram tetapi tidak dapat dihapus lagi

EPROM               :    Electrically PROM ® dapat diisi melalui listrik, dan dapat dihapus

EEPROM            :    Erasable EPROM ® dapat diisi dan dihapus dengan listrik, maka ciri utamanya adalah isi tetap ada / tidak mudah dihapus meskipun daya listrik computer terputus.

Contoh memori kerja untuk memori bebas adalah :

RAM                   :    Random Access Memory ® dapat diisi dan dapat dibaca, maka ciri utamanya adalah mengenal asas pemuktahiran yaitu dapat diisi dengan informasi terbaru dan isi akan hilang jika catu daya padam.

Memori kerja terdiri dari sel memori yang berisi 1 kata sandi, misalnya sistem 8 bit  menggunakan 8 bit kata sandi, sistem 1 kbyte menggunakan 1024 byte kata sandi.

Cache memory

Memori berkapasitas kecil tetapi berkecepatan tinggi, yang dipasang diantara prosesor dan memori utama. Instruksi dan data yang sering diakses oleh prosesor ditempatkan dalam chace sehingga dapat lebih cepat diakses oleh prosesor. Hanya bila data / instruksi yang diperlukan tidak tersedia dalam chacce barulah prosesor mencarinya dalam memori utama.

–        Memori Dukung / backing store

Contohnya : Floppy, Harddisk, CD, dll.

Untuk mendukung memori kerja, umumnya berbentuk disk sehingga berlaku juga asas pemuktakhiran. Setiap trek dan sektor dapat menyimpan sejumlah byte dari memori kerja. Memori kerja dicapai melalui alamat memori dan register data memori. Dan untuk mencapai informasi di memori dukung, isinya harus dipindahkan dulu ke memori kerja (memori dukung = memori semu = virtual memori).

Alamat Memori

–         Alamat memori mutlak (alamat fisik)

Sel memori pada memori kerja adalah sumber daya berbentuk fisik, sehingga untuk mencapai sel memori ini digunakan kata pengenal. Maka disebutlah alamat fisik dan karena nomor alamat fisik ini bersifat mutlak (nomor setiap sel adalah tetap), maka disebut juga alamat mutlak.

–         Alamat memori relatif (alamat logika)

Alamat memori yang digunakan oleh program / data berurutan / berjulat. Jika kita menggunakan alamat 1, maka kitapun menggunakan alamat 2,3, … dan untuk 1 informasi jika alamat awalnya 0 dan alamat lainnya relatif terhadap alamat awal 0 ini, maka dinamakan alamat relatif. Dan alamat tersebut adalah logika dari untaian alamat yang menyimpan informasi maka dikenal alamat memori logika.

Isi Memori

1.    Sistem bahasa pemograman

Translator tergantung pada program yang digunakakan dan memiliki run time subroutine yang mengatur program dari bahasa pemogramannya untuk melakukan translator.

2.    Sistem utilitas

Merupakan bagian dari sistem operasi komputer, biasanya berbentuk berkas dalam memori arsif.

3.    Inti sistem operasi

Terdiri dari inti, kernel, nucleus adalah system operasi yang menetapkan dalam memori kerja. Contohnya adalah pada saat “boot / booting / bootstrap”.

4.    Sistem operasi

Program sistem operasi diletakkan dalam memori, maka banyak kegiatan yang juga terletak dalam memori.

5.    Pengendali alat

Terdiri dari penggerak alat / device controller dan pelaksana / device driver yang berbentuk program dan menempati ruang memori tertentu.

6.    Berkas pemakai

Terdiri dari berkas program dan berkas data, yang ditampung dalam memori dan pada waktunya diteruskan ke prosesor untuk diolah.

Fungsi manajemen memori :

  • 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.

Pemuatan informasi ke memori :

1.   Pemuat / loader, menyalin informasi ke memori kerja.

  1. pemuatan mutlak

jika 2 macam alamat memori dibuat sama antara yang tercantum dalam program dan yang ditempati dalam memori kerja. Contohnya pada program, alamat awal 5235 dan subroutine = 5468 diletakkan pada alamat fisik yang sama.

2.  pemuatan relokasi

alamat program tidak selalu sama dengan alamat fisik.

Contohnya alamat pangkal / fisik = 14200, alamat relative program 327, maka alamat mutlaknya = 14200 + 327 = 14527

R(=p jika A=0)

3. pemuatan sambung

penyambungan antara informasi yang satu dengan yang lain terjadi pada saat pemuatan. Sehingga membutuhkan informasi sebelum melakukan pemuatan sambung tersebut, contohnya informasi alamat akhir dari bagian informasi yang akan disambung tersebut.

4. pemuatan dinamik / tumpang / overlay

terjadi pada program tunggal ketika ukuran program melampaui ukuran ruang memori kerja. Dan agar dapat tertampung maka dibagi / dipenggal menjadi beberapa segmen.

Sambung / linker akan menyatukan 1 informasi dengan informasi lainnya.  Lama muat, ditentukan oleh kecepatan baca pada memori dukung yang berbentuk disk.

Pengutipan / pembacaan isi memori :

1.   Pengutipan oleh prosesor

Untuk melaksanakan pekerjaan yang dalam informasi itu, yang merupakan tugas dan proses dan dilakukan sel memori per sel memori.

2.   Pengutipan oleh memori dukung / arsif

Untuk menyimpan informasi tersebut di dalam memori dukung / arsif sehingga mereka tidak hilang ketika catu daya dimatikan. Isi memori kerja disimpan  ke dalam disk memori dukung / disket memori arsif. Kemudian di dalam disk / disket, informasi direkam ke dalam sector, setelah 1 sektor penuh, maka berpindah ke sektor lainnya. Pengutipan ini dilakukan blok demi blok yang biasanya merupakan kelipatan bulat dari ukuran sektor.

3.   Pengutipan oleh pencetak / printer

Untuk mencetak isi memori ke atas kertas, pengutipan secara blok demi blok.

4.   Pengutipan oleh alat peripheral lainnya

Contoh pada komunikasi data melalui jaringan, pengutipan mengikuti suatu protocol tertentu, misalnya protocol OSI (open system Interconnection) dari ISO (international standard organization) yang terdiri dari 7 lapis / layer.

Akses memori langsung / DMA (Direct Memory Access)

Melakukan pemindahan informasi dari dan ke memori kerja tanpa campur tangan langsung dari prosesor. Prosesor hanya diinterupsi saat akses tersebut dimulai dan selesai.

Relokasi ke penggalan memori kerja

Dapat memilih penggalan yang menjadi tujuan relokasi dan harus diperiksa panjang informasi dan ukuran penggalan memorinya.

Karena jika masuk pada penggalan yang kecil, informasi tidak dapat tertampung.

Contoh : Jika alamat awalnya = 0, alamat pangkal P maka A = 0 dan P = BB. Sehingga R = P – A = BB

Jika alamat X tidak melampaui batas (BA-BB) maka pemuatan secara relokasi dapat dilaksanakan yaitu dengan menambahkan alamat pangkal (BB) dari penggalan memori kerja.

Manajemen Memori Berdasarkan Keberadaan Swapping atau Paging

Terbagi dua yaitu :

  1. Manajemen tanpa swapping atau paging
  2. Manajemen dengan swapping atau paging

 Memori Tanpa Swapping atau Paging

  • Yaitu manajemen memori tanpa pemindahan citra proses antara memori utama dan disk selama eksekusi.
  • Terdiri dari :

Monoprogramming

Ciri-ciri :

  • Hanya satu proses pada satu saat
  • Hanya satu proses menggunakan semua memori
  • Pemakai memuatkan program ke seluruh memori dari disk atau tape
  • Program mengambil kendali seluruh mesin

Contoh : IBM PC menggunakan cara ketiga  di mana device driver ROM ditempatkan pada blok 8K tertinggi dari address space 1M. Program pada ROM disebut BIOS (Basic Input Output System).

 Tiga Cara Organisasi Memori Satu Proses Tunggal

Multiprogramming Dengan Pemartisian Statis

Terbagi dua :

  1. Pemartisian menjadi partisi-partisi berukuran sama, yaitu ukuran semua partisi memori adalah sama
  2. Pemartisian menjadi partisi-partisi berukuran berbeda, yaitu ukuran semua partisi memori adalah berbeda.

Strategi Penempatan Program Ke Partisi

  • Satu Antrian Tunggal Untuk Semua Partisi

Keuntungan            : Lebih fleksibel serta implementasi dan operasi lebih minimal karena hanya mengelola satu antrian.

Kelemahan : Proses dapat ditempatkan di partisi yang banyak diboroskan, yaitu proses kecil ditempatkan di partisi sangat besar.

Multiprogrammning dengan Pemartisian Tetap dengan Satu Antrian

  • Satu Antrian Untuk Tiap Partisi (banyak antrian Untuk Seluruh Partisi)

Keuntungan : Meminimalkan pemborosan memori

Kelemahan : Dapat terjadi antrian panjang di suatu partisi sementara antrian partisi – partisi lain kosong

Multiprogrammning dengan Pemartisian Tetap dengan Banyak Antrian

 Multiprogramming Dengan Swapping

Swapping : pemindahan proses dari memori utama ke disk dan kembali lagi.

1. Multiprogramming dengan Pemartisisan Dinamis

Jumlah , lokasi dan ukuran proses di memori dapat beragam sepanjang waktu secara dinamis.

Kelemahan:

–       Dapat terjadi lubang-lubang kecil memori di antara partisi-partisi yang dipakai.

–       Merumitkan alokasi dan dealokasi memori

Solusi:

Lubang-lubang kecil di antara blok-blok memori yang digunakan dapat diatasi dengan pemadatan memori yaitu menggabungkan semua lubang kecil menjadi satu lubang besar dengan memindahkan semua proses agar saling berdekatan.

3.     Strategi Alokasi Memori

Pencocokan / FIT

Karena ukuran penggalan memori tidak selalu sama besar, maka dibutuhkan pencocokan ukuran dari memori dukung dengan ukuran penggalan memori di memori kerja.

1. Cocok pertama / First fit algorithm

Pencocokan terjadi menurut antrian informasi, informasi yang terdepan dicocokkan terlebih dahulu dan menurut urutan penggalan, penggalan yang terdepan dicocokkan terlebih dahulu.

Contoh : Antrian informasi setiap ukuran.

2.   Cocok pertama berdaur / Cyclical first fit

Pencocokan tidak harus dimulai dari urutan penggalan memori pertama.

Contoh : informasi 2K telah menempati penggalan 4 K, pencocokan cocok pertama berdaur bagi informasi 1K tidak lagi mencoba penggalan 4K tetapi 3K dan karena penggalan memori ini dapat menampung informasi tersebut, maka pada cocok pertama berdaur informasi 1K menempati memori 3K.

3.   Cocok terbaik / best fit

Mencari penggalan memori yang dapat menampung informasi yang paling pas / tidak ada memori di penggalan yang tersisa / sisanya yang paling kecil.

Contohnya informasi pertama 2K mencari penggalan informasi yang terpas yaitu pada penggalan memori 2K juga / tidak ada sisa.

4.   Cocok terburuk / worst fit

Kebalikan dari cocok terbaik yaitu akan menempati penggalan yang ukurannya terbesar sehingga banyak ruang memori pada penggalan itu yang tidak terpakai.

Contohnya informasi 2K akan menempati penggalan berukuran 6K sisa yang tidak terpakai = 4K.

 Alokasi Ruang Swap pada Disk

(Penempatan proses pada disk setelah di-swap-out dari memori)

–       Ruang disk tempat swap dialokasikan begitu diperlukan

–       Ruang disk tempat swap dialokasikan lebih dahulu.

Algoritma untuk pengaturan ruang swap pada disk sama dengan untuk memori utama. Perbedaannya adalah ruang pada disk harus dialokasikan sebagai kelipatan bilangan bulat dari disk block.

 Sumber :

Sinkronisasi dan Deadlock.Ppt.Heri

Manajemen Memori.ppt.Heri

nryulia.staff.gunadarma.ac.id/…/files/…/BAB2.doc

Leave a comment