Anda di halaman 1dari 7

Dalam bab ini kita akan mempelajari bagaimana sistem operasi mengelola memori.

Ideally programmers want memory that is : large fast non volatile

Memory hierarchy : small amount of fast, expensive memory cache some medium-speed, medium price main memory gigabytes of slow, cheap disk storage

Memory manager handles the memory hierarchy

The part of the operating system that manages the memory hierarchy is called the memory manager. Its job is to keep track of which parts of memory are in use and which parts are not in use, to allocate memory to processes when they need it and deallocate it when they are done, and to manage swapping between main memory and disk when main memory is too small to hold all the processes. Bagian dari sistem operasi yang mengelola hirarki memori disebut manajer memori. Tugasnya adalah untuk melacak bagian mana dari memori yang sedang digunakan dan bagian mana yang tidak digunakan, untuk mengalokasikan memori untuk proses ketika mereka membutuhkannya dan DEALLOCATE ketika mereka selesai, dan untuk mengelola swapping antara memori utama dan disk ketika main memori terlalu kecil untuk memegang semua proses.

Skema manajemen memori paling sederhana adalah untuk menjalankan hanya satu program pada satu waktu, berbagi memori antara program dan sistem operasi. Tiga variasi pada tema ini ditunjukkan pada Gambar. 4-1 : Sistem operasi mungkin di bagian bawah memori di RAM (Random Access Memory), seperti ditunjukkan pada Gambar. 4-1 (a), Sistem operasi mungkin dalam ROM (Read-Only Memory) di bagian atas memori, seperti ditunjukkan pada Gambar. 4-1 (b), Driver perangkat mungkin di bagian atas memori dalam ROM dan seluruh sistem dalam RAM di bawah, seperti ditunjukkan pada Gambar. 4-1 (c). Model pertama sebelumnya digunakan pada mainframe dan minicomputer namun jarang digunakan lagi. Model kedua digunakan pada beberapa komputer Palmtop dan embedded system. Model ketiga digunakan oleh komputer pribadi awal (misalnya, menjalankan MS-DOS), di mana bagian dari sistem di ROM disebut BIOS (Basic Input Output System). When the system is organized in this way, only one process at a time can be running. Ketika sistem diatur dengan cara ini, hanya satu proses pada suatu waktu dapat berjalan.

4.1.2 Multiprogramming with Fixed Partitions


When a job arrives, it can be put into the input queue for the smallest partition large enough to hold it. Since the partitions are fixed in this scheme, any space in a partition not used by a job is lost. In Fig. 4-2(a) we see how this system of fixed partitions and separate input queues looks. Ketika pekerjaan tiba, dapat dimasukkan ke dalam antrian masukan untuk partisi terkecil yang cukup besar untuk menahannya. Karena partisi adalah tetap dalam skema ini, setiap ruang di partisi yang tidak digunakan oleh pekerjaan hilang. Dalam Gambar. 4-2 (a) kita melihat bagaimana sistem partisi tetap dan antrian input terpisah terlihat The disadvantage of sorting the incoming jobs into separate queues becomes apparent when the queue for a large partition is empty but the queue for a small partition is full, as is the case for partitions 1 and 3 in Fig. 4-2(a). Kerugian dari pemilahan pekerjaan yang masuk ke dalam antrian yang terpisah menjadi jelas ketika antrian untuk partisi besar kosong, tapi antrian untuk

partisi kecil penuh, seperti halnya untuk partisi 1 dan 3 dalam Gambar. 42 (a). Here small jobs have to wait to get into memory, even though plenty of memory is free. Pekerjaan kecil harus menunggu untuk masuk ke memori, meskipun banyak memori bebas. An alternative organization is to maintain a single queue as in Fig. 4-2(b). Whenever a partition becomes free, the job closest to the front of the queue that fits in it could be loaded into the empty partition and run. Since it is undesirable to waste a large partition on a small job, a different strategy is to search the whole input queue whenever a partition becomes free and pick the largest job that fits. Sebuah organisasi alternatif adalah untuk menjaga antrian tunggal seperti pada Gambar. 4-2 (b). Setiap kali partisi menjadi bebas, pekerjaan paling dekat dengan bagian depan antrian yang cocok di dalamnya dapat dimuat ke dalam partisi kosong dan lari. Karena itu tidak diinginkan untuk membuang partisi yang besar pada pekerjaan kecil, strategi yang berbeda adalah untuk mencari masukan seluruh antrian setiap kali partisi menjadi bebas dan memilih pekerjaan terbesar yang sesuai.

When multiprogramming is used, the CPU utilization can be improved. Crudely put, if the average process computes only 20 percent of the time it is sitting in memory, with five processes in memory at once, the CPU should be busy all the time. This model is unrealistically optimistic, however, since it assumes that all five processes will never be waiting for I/O at the same time.

A better model is to look at CPU usage from a probabilistic viewpoint. Suppose that a process spends a fraction p of its time waiting for I/O to complete. With n processes in memory at once, the probability that all n processes are waiting for I/O (in which case the CPU will be idle) is p n. The CPU utilization is then given by the formula

Ketika multiprogramming digunakan, penggunaan CPU dapat ditingkatkan. Kasar sederhana, jika proses rata-rata menghitung hanya 20 persen dari waktu itu duduk dalam memori, dengan lima proses dalam memori sekaligus, CPU harus sibuk sepanjang waktu. Model ini adalah realistis optimis, namun, karena mengasumsikan bahwa semua lima proses tidak akan menunggu untuk I / O pada waktu yang sama. Sebuah model yang lebih baik adalah dengan melihat penggunaan CPU dari sudut pandang probabilistik. Misalkan proses menghabiskan p sebagian kecil dari waktu menunggu untuk I / O untuk menyelesaikan. Dengan proses n di memori sekaligus, kemungkinan bahwa semua proses n menunggu untuk I / O (dalam hal ini CPU akan menganggur) adalah p n. Pemanfaatan CPU kemudian diberikan oleh rumus

Relokasi dan Perlindungan


Tidak bisa memastikan di mana program akan dimuat dalam memori alamat lokasi variabel, rutinitas kode tidak bisa absolut harus menjaga program keluar dari partisi proses lain ' Gunakan nilai-nilai dasar dan batas lokasi alamat ditambahkan ke nilai dasar untuk memetakan ke fisik addr alamat lokasi lebih besar dari nilai batas adalah kesalahan

SWAPPING

Two general approaches to memory management can be used, depending (in part) on the available hardware. The simplest strategy, called swapping, consists of bringing in each process in its entirety, running it for a while, then putting it back on the disk. The other strategy, called virtual memory, allows programs to run even when they are only partially in main memory. Below we will study swapping: in Sec. 4.3 we will examine virtual memory.
Dua pendekatan umum untuk manajemen memori dapat digunakan, tergantung (sebagian) pada perangkat keras yang tersedia. 1. Strategi yang paling sederhana, yang disebut swapping, terdiri dari membawa setiap proses secara keseluruhan, menjalankannya untuk sementara waktu, kemudian meletakkan kembali pada disk. 2. Strategi lainnya, yang disebut memori virtual, memungkinkan program untuk menjalankan bahkan ketika mereka hanya sebagian dalam memori utama. Di bawah ini kita akan mempelajari swapping: di Sec. 4.3 kita akan membahas memori virtual.

The operation of a swapping system is illustrated in Fig. 4-5. Initially only process A is in memory. Then processes B and C are created or swapped in from disk. In Fig. 4-5(d) A is swapped out to disk. Then D comes in and B goes out. Finally A comes in again. Since A is now at a different location, addresses contained in it must be relocated, either by software when it is swapped in or (more likely) by hardware during program execution.
Pengoperasian sistem swapping diilustrasikan pada Gambar. 4-5. Awalnya hanya memproses A di memori. Kemudian proses B dan C diciptakan atau bertukar dari disk. Dalam Gambar. 4-5 (d) A swap ke disk. Kemudian D datang dan B keluar. Akhirnya A datang lagi. Karena A adalah sekarang di lokasi yang berbeda, alamat yang terkandung di dalamnya harus direlokasi, baik oleh perangkat lunak saat swap di atau (lebih mungkin) oleh perangkat keras selama pelaksanaan program. Memory allocation changes as : processes come into memory leave memory

Alokasi memori perubahan sebagai : - proses datang ke memori - meninggalkan memori Shaded regions are unused memory Berbayang daerah adalah memori yang tidak terpakai

SWAPPING 2
In Fig. 4-6(a) we see a memory configuration in which space for growth has been allocated to two processes. If processes can have two growing segments, for example, the data segment being used as a heap for variables that are dynamically allocated and released and a stack segment for the normal local variables and return addresses, an alternative arrangement suggests itself, namely that of Fig. 4-6(b). In this figure we see that each process illustrated has a stack at the top of its allocated memory that is growing downward, and a data segment just beyond the program text that is growing upward the memory between them can be used for either segment. If it runs out, either the process will have to be moved to a hole with enough space, swapped out of memory until a large enough hole can be created, or killed.

Dalam Gambar. 4-6 (a) kita melihat konfigurasi memori di mana ruang untuk pertumbuhan telah dialokasikan untuk dua proses. Jika proses dapat memiliki dua segmen yang tumbuh, misalnya, segmen data yang digunakan sebagai tumpukan untuk variabel yang dialokasikan secara dinamis dan dirilis dan segmen stack untuk variabel lokal normal dan alamat kembali, pengaturan alternatif menunjukkan itu sendiri, yaitu bahwa dari Fig . 4-6 (b). Dalam gambar ini kita melihat bahwa setiap proses digambarkan memiliki tumpukan di bagian atas memori yang dialokasikan yang tumbuh ke bawah, dan segmen data hanya di luar teks program yang tumbuh meninggi memori antara mereka dapat digunakan untuk segmen baik. Jika habis, baik proses akan harus dipindahkan ke lubang dengan cukup ruang, bertukar keluar dari memori sampai sebuah lubang yang cukup besar dapat dibuat, atau dibunuh.

Memory management with linked lists


In Fig. 4-8(a) updating the list requires replacing a P by an H. In Fig. 4-8(b) and Fig. 4-8(c) two entries are coalesced into one, and the list becomes one entry shorter. In Fig. 4-8(d), three entries are merged and two items are removed from the list. Since the process table slot for the terminating process will normally point to the list entry for the process itself, it may be more convenient to have the list as a doublelinked list, rather than the single-linked list of Fig. 4-7(c). This structure makes it easier to find the previous entry and to see if a merge is possible.

Dalam Gambar. 4-8 (a) memperbarui daftar membutuhkan mengganti P oleh H. Dalam Gambar. 4-8 (b) dan Gambar. 4-8 (c) dua entri yang menyatu menjadi satu, dan daftar menjadi satu entri pendek. Dalam Gambar. 4-8 (d), tiga entri digabung dan dua item yang dihapus dari daftar. Karena tabel proses slot untuk mengakhiri proses biasanya akan menunjuk ke entri daftar untuk proses itu sendiri, mungkin lebih mudah untuk memiliki daftar sebagai daftar ganda-linked, daripada daftar tunggal-linked dari Gambar. 4-7 (c). Struktur ini membuat lebih mudah untuk menemukan entri sebelumnya dan untuk melihat apakah penggabungan adalah mungkin.

Anda mungkin juga menyukai