Control program umumnya sebagian disimpan di main memory tepatnya di ROM. Control program ini disebut juga dengan resident program atau resident routi
Gambar oleh Pexels dari Pixabay |
Apa Definisi Control Program - Control program umumnya sebagian disimpan di main memory tepatnya di ROM. Control program ini disebut juga dengan resident program atau resident routine. Sebagian control program yang lain tersimpan di disk disebut dengan transient program atau transfer routine. Control program yang tersimpan di disk disebut dengan disk operating system atau (DOS), karena tempatnya berada di disk dan yang terletak di tape disebut dengan TOS (Tape Operating System).
Misalnya sistem operasi IBM PC-DOS (IBM Personal Computer Disk Operating System) yang digunakan pada komputer IBM PC, control program yang terletak di ROM disebut dengan ROM BIOS (Basic Input Output System) dan yang tersimpan di disket terdiri dari 2 buah file, yaitu dengan nama file IBMBIO.COM dan IBMDOS.COM.
- ROM BIOS dan IBMBIO>COM berfungsi untuk mengatur dan mengordinasikan alat-alat I/O dasar, seperti misalnya keyboard, printer, alat-alat komunikasi dan alat-alat I/O lainnya.
- IBMDOS.COM berfungsi mengatur dan mengordinasikan disk.
Bila komputer diaktifkan (booting), suatu bootstrap program atau initial program loader (IPL) yang merupakan bagian dari control program secara otomatis akan mengambil OS di disk dan meletakkannya di RAM.
Control program secara umum mempunyai fungsi sebagai pengatur dan pengkoordinasi di dalam manajemen memori (memory management), manajemen alat pengolah (processor management), manajemen alat-alat I/O (device management) dan manajemen informasi di disk (information management).
MEMORY MANAGEMENT
Memory management (manajemen memori) memegang peranan penting di disstem operasi karena semua program dan data yang akan dan sedang diproses akan menempati memori komputer (main memory). Dalam hal ini akan timbul masalah dalam alokasi memori ini yang akan ditangani oleh OS.
Tergantung dari OS dan perangkat kerasnya, manajemen memori dapat berupa:
- Single contiguous allocation (alokasi dengan batas tunggal).
- Partitioned allocation (alokasi dengan penyekat/pertisi).
- Rellocatable partitioned allocation (alokasi dengan partisi yang dapat ditempatkan kembali).
- Paged allocation (alokasi dengan halaman).
- Demand paged allocation (alokasi dengan halaman yang dibutuhkan).
- Segmented allocation (alokasi dengan segmen/bagian).
SINGLE CONTIGUOU ALLOCATION
Cara alokasi ini yang paling sederhana. OS akan menempati di bagian memori yang palong atas atau yang paling bawah dan program serta data akan menempati sisa memori berikutnya. Walaupun program serta data tersebut hanya berukuran kecil, maka akan menempati bagian memori yang kecil saja, sehingga banyak tempat memori yang tidak terpakai.
PARTITIONED ALLOCATION
Partitioned allocation dilakukan dengan cara membagi memori menjadi beberapa partisi dan masing-masing partisi atau sekat dapat berisi sebuah pekerjaan (job) OS yang melakukan alokasi memori cara seperti ini diantaranya adalah OS/360 pada komputer IBM S/360. Dengan cara ini menyebabkan beberapa program dapat sekaligus disimpan di main memory dan dikerjakan secara bersama-sama bergantian. Teknik ini dikenal dengan istilah multiprogramming atau multitasking. Kebalikan dari multiprogramming adalah serial processing, yaitu hanya sebuah pekerjaan atau program saja yang dapat dikerjakan pada suatu saat tertentu dan bila sebuah pekerjaan telah selesai baru bisa mengerjakan pekerjaan yang lainnya.
Pada multiprogramming harus ditentukan pekerjaan mana yang mempunyai prioritas lebih tinggi untuk diproses terlebih dahulu dibandingkan dengan pekerjaan yang lainnya. Masalah ini dapat diselesaikan dengan mengalokasikan memori menjadi foreground partition dan background partition. Pekerjaan yang mempunyai prioritas tinggi (high priority) diletakkan di foreground partition yang mempunyai prioritas rendah (low priority) dilettakkan pada background partition.
Masalah utama dalam alokasi memori secara partisi ini adalah kemungkinan timbulnya lubang-lubang (holes) memori atau pecahan-pecahan (fragments) memori yang tidak dapat digunakan. Misalnya beberapa pekerjaan diletakkan di memori, yaitu pekerjaan ke 1 menempati memori sebesar 20 KB, pekerjaan ke 2 sebesar 30 KB dan pekerjaan ke 3 sebesar 10 KB dan masih tersisa memori sebesar 5 KB yang belum digunakan.
Bila ada pekerjaan ke 4 yang menunggu untuk diproses, yaitu program yang membutuhkan kapasitas memori sebesar 30 KB, maka harus menunggu sebuah blok memori yang utuh minimal sebesar 30 KB untuk menampung pekerjaan tersebut.
Permasalahan holes atau fragments di memori dapat diatasi dengan cara alokasi memori yang lain, yaitu relocatable partitioned allocation dan paged alocation.
RELOCATABLE PARTITONED ALLOCATION
Bila beberapa lubang-lubang atau pecahan-pecahan memori yang tidak mencukupi untuk menampung suatu program yang baru, maka memori dapat dirapatkan dengan cara ditempatkan kembali (relocatable) mulai dari yang paling atas. Misalnya pekerjaan ke 1 dan ke 3 telah selesai, pekerjaan ke 2 digeser ke atas, sehingga pekerjaan ke 4 yang baru dapat ditempatkan pada satu blok memori yang utuh.
Dengan dilakukannya relocation (penempatan kembali), maka pekerjaan yang belum selesai akan berpindah lokasi sehingga alamat (address) dari instruksi-instruksi program yang belum selesai tersebut menjadi berubah. Misalnya di dalam pekerjaan ke 2 tersebut sebelum dilakukan relocation terdapat instruksi yang menunjukkan letak instruksi yang lainnya di main memory, umpamanya:
LOAD 31050
Maka instruksi yang berada di alamat memori 31050 yang ditunjukkan sudah bergeser 10 Kb keatas, sehingga juga harus disesuaikan. Suatu register di CPU yaitu base register digunakan untuk maksud ini dan tugas dari OS untuk menunjukkan berapa pergeseran dari posisi memori akibat relocation tersebut. Sistem komputer Honeywell 635 misalnya menggunakan cara relocatable partitioned ini.
PAGED ALLOCATION
Paging merupakan pemecahan lainnya dari masalah holes dan fragments dalam memori. Paging dilakukan dengan cara membagi memori menjadi beberapa blok yang masing-masing mempunyai panjang yang tertentu dan sama. Biasanya memori dibagi menjadi blok-blok yang masing-masing mempunyai panjang 2p word, dan umumnya P berkisar dari 8 sampai 12. Misalnya suatu memori terdiri dari 65536 word dan tiap-tiap blok terdiri dari 1024 word, maka akan terdapat sebanyak 64 blok memori.
Misalnya pekerjaan 2 yang merupakan program dengan panjang sebesar 4096 word dan lokasi memori yang kosong untuk dapat ditempati oleh pekerjaan tersebut adalah lokasi 1024 sampai dengan 2047, 4096 sampai dengan 6143 dan 8192 sampai 9215. Program yang panjangnya sebesar 4096 word ini tidak dapat menempati suatu lokasi memori yang utuh, maka dipecah-pecah menjadi beberapa halaman (page), yaitu alamat program 0-1023 ditempatkan secara phisisk di alamat memori 1024-2047, alamat program 1024-2047 di alamat memori 4096-5199, alamat program 2048-3071 di alamat memori 5120-6143 dan alamat program 3072-4095 di alamat memori 8192 - 9215. Suatu register yang berfungsi sebagai tabel peta halaman (page map table) digunakan untuk menunjukkan hubungan antara alamat program dengan alamat memori secara fisik letak dari program tersebut.
Alamat 510 di pekerjaan 2 terletak di halaman 0 untuk program tersebut. Hubungan antara halaman program dengan blok di memori terletak di page map table. Halaman program 0 ada di blok memori 1, jadi alamat 510 di program 2 menempati posisi memori secara fisik di alamat 1024 + 510 =1534. Kalau pada alamat 510 di program 2 tersebut berisi instruksi yang menunjukkan instruksi lain di alamat 2051 pada program 2, maka alamat 2051 tersebut di main memory secara fisik berada di alamat (blok memori - halaman program) x panjang tiap blok + alamat program = (5-2) x 1024 + 2051 = 5123.
DEMAND PAGED ALLOCATION
Di beberapa sistem komputer, bila program dan data yang aktif tidak dapat terseimpan semua di main memory, maka simpanan luar (misalnya disk atau tape) dapat digunaakn untuk menampung bagian sisa yang tidak dapat ditampung di main memory. Teknik ini disebut dengan istilah virtual memory atau virtual storage yang merupakan teknik penerapan dari demand paged allocation. Misalnya suatu pekerjaan yang terdiri dari program dan data dengan ukuran 6144 byte dan main memory hanya dapat menampung 3072 byte, berarti tidak semua pekerjaan daapt tersimpan di main memory. Walaupun demikian, pekerjaan sebesar 6144 byte tersebut masih dimungkinkan untuk dijalankan pada komputer dengan memori sebesar 3072 byte dengan cara demand paging. Demand paging juga menggunakan page table yang mempunyai beberapa field, yaitu sebagai berikut ini:
- Nomor halaman program (page number)
- Nomor blok memori (block number)
- Status (apakah terletak di main memory atau di simpanan luar)
- Pertimbangan (judgement), untuk mencatat halaman mana yang sering dipergunakan.
Bila tiap blok memori sebesar 1024 byte, maka kapasitas memori yang dapat menampung program sebesar 3072 terdiri dari 3 blok, sehingga pertama kali hanya 3 buah halaman dari program saja yang dapat diletakkan di main memory dan sisanya masih di simpanan luar, misalnya disk. Diasumsikan, 3 buah halaman program tersebut adalah 3 buah halaman yang pertama, yaitu halaman 0, halaman 1, dan halaman 2.
Bila di halaman 0 dari pekerjaan yang sudah menempati memori terdapat instruksi yang menunjuk ke alamat 3100 dari program dan instruksi tersebut berada di halaman 3, maka OS akan melihat ke page table pada status dari halaman 3 tersebut. Tampak di page table, status menunjukkan halaman tersebut tidak berada di memori, masih berada di simpanan luar. OS membutuhkan (demand) halaman 3 tersebut untuk diletakkan di main memory menggantikan halaman lainnya. Halaman yang akan diganti denganhalaman 3 tersebut dipilihkan pada halaman yang tidak sering digunakan untuk proses dan informasi untuk ini ada di field pertimbangan (judgement), yaitu menggantikan halman 1 di main memory. Halaman yang seirng digunakan dibiarkan tetap di main memory supaya tidak terlalu sering mengambil dari simpanan luar, sehingga waktu pemrosesan akan lebih cepat.
Komputer yang menggunakan cara ini diantaranya adalah IBM S/360 model 67, Honeywell 645, RCA 3 dan RCA 7. Demand paging juga diterapkan pada time-sharing system yang memungkinkan beberapa pemakai komputer menggunakan koputer secara bersama-sama bergantian. Bila banyak sekali program yang harus dibagi waktunya dan main memory ttidak terlalu besar, demand paging akan memperlambat waktu dari proses, karena seringnya mengganti halmaman yang dibaca dair simpanan luar berkali-kali. Untuk kasus semacam ini, sistem dikatakan mengalami proses trashing (mengkorek-korek sampah).
SEGMENTED ALLOCATION
Untuk beberapa kasus, suatu program akan terlalu besar untuk dapat diletakkan di main memory. Untuk mengatasi hal ini, beberapa sistem komputer menggunakan cara program overlays. Ketika program ditulis, dibagi-bagi menjadi suatu program utama (main program) dan beberapa program bagian yang disebut program overlay. Dan dengan cara ini, main memory juga dibagi dalam beberapa area yang disebut segment, yaitu main program area dan program overlay area. Ketika program dijalankan, program utama diletakkan di main program area dan sebuah program overlay diletakkan di program overlay area. Program utama akan selalu menempati main memory sedang program overlay bisa diganti dengan program overlay yang lainnya yang masih ada di disk bilamana dibutuhkan.
Hartono, Jogiyanto. 2000. Pengenalan Komputer. Yogyakarta: ANDI.
KOMENTAR