Sistem Operasi Komputer BAB I PENDAHULUAN Tanpa perangkat lunak (software) sebuah komputer sebenarnya sekumpulan besi yang tidak berguna. Dengan software sebuah komputer dapat digunakan untuk menyimpan, mengolah data (memproses) dan mendapatkan kembali informasi yang telah disimpan, menemukan kesalahan dalam program, memainkan games dan menggunakan banyak aktivitas lainnya yang bernilai. Pada umumnya program komputer dapat dibagi menjadi dua kategori, yaitu : a. Program sistem (system program). Yang berfungsi untuk mengatur operasi dari komputer itu sendiri. b. Program aplikasi (application program). Yang berfungsi untuk membantu menyelesaikan masalah untuk pemakainya. 1. Blok Diagram Komputer Control Unit Masukan Processor Saluran Penghubung Keluaran Memory Memori Dukung Clock Gambar 1. Diagram Blok Komputer Dasar yang sangat penting dari semua program sistem adalah operating system yang mengontrol semua sumber daya komputer dan menyediakan landasan sehingga sebuah program aplikasi dapat ditulis atau dijalankan. Banyak cara / metode yang menyediakan pelindung (sheild) atau sesuatu yang dapat menyembunyikan programmer dari kekomplekan perangkat keras. Salah satunya dengan menentukan / membuat sebuah lapis (layer) perangkat lunak yang mengendalikan komponen pokok perangkat keras, mengatur semua bagian sistem dan menyediakan pemakai dengan antarmuak (interface) / virtual machine yang memudahkan memahami dan memprogram. Lapisan dari perangkat lunak tersebut adalah operating system. Banking Word System Processing User Game Program Aplikasi SEKOLAH TINGGI MANAJEMEN INFORMATIKA DAN KOMPUTER BUDIDARMA 1 Sistem Operasi Komputer Command Interpreter Program Bahasa Mesin (Machine Language) Pemrograman Mikro (Microprogramming) Perangkat Fisik (Physical Devices) Hardware Compiler Utility Sistem Operasi (Operating System) Sistem Gambar 2. Komponen Sistem Komputer Keterangan : - Perangkat keras / hardware membentuk dua atau lebih lapis. Lapis yang paling bawah (physical devices) berisi perangkat fisik, yang terdiri dari integrasi circuit chips, kabel (wires), power supplies, cathode ray tubes (CRT) dan perangkat lainnya yang dibuat dan sistem kerjanya merupakan bagian insinyur elektronik. - Lapis berikutnya, software primitive langsung mengontrol peralatan tersebut (physical devices) dan menyediakan interface (a cleaner interface) untuk layer diatasnya dikenal dengan microprogram yang ditempatkan dalam read-only memory (ROM). Sebenarnya microprogram berfungsi sebagai penerjemah, mengambil (fetching) intruksi bahasa mesin, seperti ADD, MOVE dan JUMP serta melaksanakan proses-proses kecil yang saling terkait. Contohnya apabila melaksanakan instruksi ADD, microprogram harus menentukan dimana angka-angka yang ditambahkan ditempatkan (disimpan sementara), mengambilnya, menambahkannya dan menyimpan hasilnya disuatu tempat tertentu. - Sekumpulan instruksi yang diterjemahkan microprogram disebut machine language (bahasa mesin), yang memilikim 50 sampai 300 instruksi yang kenyataannya bukan bagian dari perangkat mesin semuanya, tetapi pembuat komputer selalu menjelaskannya dalam manualnya (sejenis buku panduan perangkat kerasnya), sehingga banyak orang mengira sebagai mesin sesungguhnya. Dalam lapis ini, perangkat masukan/keluaran mengontrol pemuatan nilai ke dalam register khusus. - Fungsi utama dari Operating System adalah menyembunyikan semua kekomplekan / kerumitan dan memberikan programmer sebuah kenyamanan, kemudahan, kepraktisan dari instruksi yang digunakan untuk bekerja dengannya, contohnya, READ BLOCK FROM FILE adalah konsep / gagasan penyederhanaan daripada harus berpikir tentang bagaimana memindahkan head disk secara rinci, menunggu untuk menjadi tenang (posisi istirahat). - Diatas lapis Operating System (OS) adalah untuk menempatkan software system. Dari sini ditemukan penerjemah perintah (command interpreter/shield), compiler, editor dan application program independent. Adalah penting untuk menyadari/merealisasikan bahwa program-program ini dengan pasti bukan bagian dari SO, walaupun secara khas disediakan oleh pembuat komputer. OS adalah bagian dari software yang dijalankan dalam kernel mode atau supervisor mode. SO memproteksi dari pemakai yang menganggu pemakain hardware SEKOLAH TINGGI MANAJEMEN INFORMATIKA DAN KOMPUTER BUDIDARMA 2 Sistem Operasi Komputer - Compiler dan editors dijalankan dalam user mode. Jika seorang tidak suka sebuah compiler khusus, pemakai bebas menulis miliknya jika dapat memilih dan tentunya tidak bebas untuk menangani interrupt disk yang merupakan bagian dari OS dan normalnya akan memproteksi hardware terhadap usaha pemakai untuk memodifikasinya. - Diatas layer system program adalah application program. Program ini ditulis oleh user untuk memecahkan masalah khusus, seperti proses pengolahan data, perhitungan rekayasa atau memainkan sebuah permainan. 2. Sistem Operasi Komputer Pengertian Sistem Operasi Seperangkat program yang memantau dan mengatur pemakaian sumber daya komputer (processor, main memory, file, I/O device, dll). Menjembatani / penghubung antara user (program user) dengan perangkat keras komputer. Fungsi Sistem Operasi Sebagai Resource Manager /pengelola seluruh sumber daya system komputer Mengatur dan mengefisienkan penggunaan selluruh sumber daya komputer (computer resources) Tugas utamanya : memantau penggunaan semua resources; menerapkan aturan (policy); mengalokasikan resources yang diminta; mengambil kembali (dealokasi) resource Sumber daya pada komputer terdiri dari : - Sumber daya fisik, misalnya : Keyboard, bar-code reader, mouse, joystick, light-pen, touch-screen, pointing devices, floppy disk drive, harddisk, tape drive, optical disk, CD ROM drive, CRT, LCD, printer, modem, ethernet card, PCMCIA, RAM, cache memory, register, kamera, sound card, radio, digitizer, scanner, plotter, dan sebagainya. - Sumber daya abstrak, terdiri dari :Data dan Program Sebagai Extended Machine (Virtual Machine), penyedia layanan Menyembunyikan kompleksitas / kerumitan pemrograman hardware dari programmer atau user. Menyajikan fasilitas yang lebih mudah dan sederhana untuk menggunakan hardware. Konsep Sistem Operasi Proses Proses adalah program yang sedang di-eksekusi. Proses terdiri dari : Executable program; program data dan stack; program counter; dll Pada sistem timesharing secara periodik sistem operasi menggilir eksekusi proses-proses yang ada, biasanya berdasarkan porsi waktu CPU. Ketika suatu proses dihentikan untuk sementara, maka proses tersebut harus dimulai kembali pada state yang sama dengan state ketika ia dihentikan. SEKOLAH TINGGI MANAJEMEN INFORMATIKA DAN KOMPUTER BUDIDARMA 3 Sistem Operasi Komputer Semua informasi yang berkaitan dengan proses tersebut harus disimpan. Umumnya informasi tersebut disimpan pada tabel proses (array atau linked list), satu tabel untuk setiap proses. Tabel proses (process table) adalah tabel yang berisi informasi tentang semua proses yang dijalankan. Suatu proses terdiri dari : address space (core image) dan atribut / informasi pada tabel proses System call utama dalam pengaturan proses adalah yang berkaitan dengan pembuatan dan pemberhentian suatu proses. Contoh : Command interpreter atau shell akan membaca command yang diketikkan user pada terminal, dan membuat proses yang menjalankan command tersebut. Bila telah selesai, maka proses akan menjalankan system call untuk menghentikan dirinya. Suatu proses dapat men-create proses lainnya yang disebut sebagai child process. Sistem operasi dapat berkomunikasi dengan suatu proses dengan menggunakan signal. Signal juga dapat digunakan untuk komunikasi antar proses. Pada sistem multiprogramming, setiap proses memiliki user identification (uid) yang berasal dari uid pemilik proses. Files Terdiri dari : Pathname; Working directory; rwx (read, write, execute) bits protection code; File descriptor / handle; Special file (block & character); Standard input; Standard output; Standard error; Pipe. SO mendukung konsep direktori. Root Directory Directory File Gambar 3. Model Struktur File System Calls / API (Aplication Programming Interface) Suatu set tata cara pemanggilan di program aplikasi untuk memperoleh layanan system operasi. Berupa extended instructions / perluasan instruksi yang merupakan interface / layanan langsung antara program-program dengan sistem operasi. System calls meng-create, men-delete dan menggunakan objek-objek yang diatur oleh system operasi, antara lain : proses-proses dan file-file. Library procedure meletakkan parameter-parameter system call pada tempat tertentu dan memberikan instruksi trap untuk memulai sistem operasi SEKOLAH TINGGI MANAJEMEN INFORMATIKA DAN KOMPUTER BUDIDARMA 4 Sistem Operasi Komputer Trap instruction : ketika diterima oleh sistem operasi, sistem memeriksa apakah parameter tersebut valid atau tidak Return form trap : sistem operasi mengembalikan kontrol ke library procedure Contoh mekanisme system calls untuk READ pada program C. count = read (file, buffer, nbytes) Shell Shell pada Unix merupakan command interpreter yang walaupun bukan merupakan bagian dari sistem operasi, menggunakan banyak feature sistem operasi Prompt : standar input, menandakan bahwa shell siap menerima command Contoh : date date > file sort < file1 > file2 cat file1 file2 file3 | sort > /dev/lp Background job : proses yang berjalan sementara user tetap bisa terus bekerja Struktur Sistem Operasi Sistem Monolitik Konsep : “Sistem operasi sebagai kumpulan prosedur dimana prosedur dapat saling dipanggil oleh prosedur lain di sistem bila diperlukan”. Kernel berisi semua layanan yang disediakan sistem operasi untuk pemakai. Contoh : Sistem Operasi Unix menggunakan konsep kernel loadable modules, yaitu : Bagian-bagian kernel terpenting berada dimemori utama secara tetap. Bagian-bagian esensi lain berupa modul yang dapat ditambahkan ke kernel saat diperlukan dan dicabut begitu tidak digunakan lagi diwaktu jalan (runtime). The ‘big mess’ Tidak berstruktur Kernel call / supervisor call User mode Kernel mode / supervisor mode User Program User Program 2 Runs in User Program 1 User Mode Kernell Call 4 1 3 s 2 Dispatch Table servis service procedure Operating System runs in Kernel Mode Gambar 4. Struktur Sistem Monolithic SEKOLAH TINGGI MANAJEMEN INFORMATIKA DAN KOMPUTER BUDIDARMA 5 Sistem Operasi Komputer Sistem Berlapis (Layered System) Konsep : “Sistem operasi dibentuk secara hirarki berdasarkan lapisan-lapisan, dimana lapisan-lapisan memberi layanan lapisan lebih atas”. Dimaksudkan untuk mengurangi kompleksitas rancangan dan implementasi system operasi. Tiap lapisan mempunyai fungsional dan antarmuka I/O antara dua lapisan bersebelahan. Contoh : Sistem Operasi THE (Technique Hogesschool Endiche), Djikstra, 1968. Sistem Operasi MULTICS (menggunakan concentric rings). Tabel 1. Lapisan-lapisan pada Sistem Operasi THE Laye Fungsi r Function 5 The Operator Untuk operator 4 User Programs Untuk aplikasi program pemakai Untuk menyederhanakan akses I/O 3 I/O Management pada level atas Untuk mengatur komunikasi antar 2 Operator-Process Communication proses Untuk mengatur alokasi ruang 1 Memory & Drum Management memori / drum magnetic Untuk mengatur aloksi pemroses Processor Allocation & 0 dan switching multiprogramming Multiprogramming dan pengaturan prosesor Keterangan : - Lapisan n memberi layanan untuk lapisan n+1. Proses-proses di lapisan n dapat meminta layanan lapisan n-1 untuk memberikan layanan bagi lapisan n+1. Tetapi lapisan n tidak dapat meminta layanan n+1. Kelanjutan sistem berlapis adalah sistem berstruktur cincin seperti sistem MULTICS yang terdiri 64 lapisan cincin dimana satu lapisan mempunyai fungsi berbeda. Lapisan n-1 mempunyai kewenangan lebih dibanding lapisan n. Untuk meminta layanan lapisan n-1, lapisan n melakukan trap. Kemudian, lapisan n-1 mengambil kendali sepenuhnya untuk melayani lapisan n. Sistem dengan Mesin Maya (Virtual Machines) Konsep : “Awalnya struktur ini membuat seolah-olah user mempunyai seluruh komputer dengan simulasi atas pemroses yang digunakan. Sistem operasi melakukan simulasi mesin nyata. Mesin hasil simulasi digunakan user, mesin maya merupakan tiruan 100% atas mesin nyata. Semua user diberi ilusi mempunyai satu mesin yang sama-sama canggih”. Contoh : Sistem operasi MS-Windows NT dapat menjalankan aplikasi MS-Dos, OS/2 mode teks, dan Win 16. Pengembang Linux membuat DOSEMU agar aplikasi MS-Dos dapat dijalankan di Linux, WINE agar aplikasi MS-Windows dapat dijalankan di Linux, iBCS agar aplikasi SCO-Unix dapat dijalankan di Linux. CP/CMS SEKOLAH TINGGI MANAJEMEN INFORMATIKA DAN KOMPUTER BUDIDARMA 6 Sistem Operasi Komputer VM/370 Virtual Machine Monitor CMS (Conversational Monitor System) Virtual 370s I/O Intruction Trap CMS CMS VM 370 CMS 370 Bare Hardware System Call Trap Gambar 5. Sistem Virtual Mesin Sistem dengan Client-Server Konsep : “Server adalah proses yang menyediakan layanan, dan Client adalah proses yang memerlukan / meminta layanan. Proses client yang memerlukan layanan mengirim 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”. Mem Client Client Process Term. File User … Server Server Process Process Server Server Mode Kernel Mode Kernel Client obtains service messages to server processes Gambar 6. Model Client Server Model Client Server pada distributed system Client Kernel Client Kernel Client Kernel Message from client to server by sending Client Kernel NETWORK Gambar 7. Model Client Server pada Distributed System Sistem berorientasi objek Konsep : “Layanan diimplementasikan sebagai objek”. SEKOLAH TINGGI MANAJEMEN INFORMATIKA DAN KOMPUTER BUDIDARMA 7 Sistem Operasi Komputer Model ini terstruktur dan memisahkan antara layanan yang disediakan dan implementasinya. Contoh : Sistem operasi X-kernel Sistem operasi MS-Windows NT telah mengadopsi beberapa teknologi berorientasi objek, tapi belum secara keseluruhan. Layanan Sistem Operasi Komputer Layanan Otomatis : Alokasi sumberdaya; Catatan pemakaian; Proteksi; Penanganan kekeliruan; Pindah baris; Gulung jendela pada monitor Layanan permintaan pemakaian : Loading; Mengolah/run; Menyimpan/save; Menghapus/delete Jenis Sistem Operasi Aspek kegiatan Pemakai tunggal (single user) Pemakai jamak (multiuser) Berdasarkan jenis-jenisnya Linux MS-Dos MS Windows-NT MS Windows Dll 3. Sejarah Perkembangan Sistem Operasi Generasi Sistem Operasi Generasi ke-1 (1945-1955) : Vacuum Tubes dan Plugboards Analytical Engine (Charles Babbage) Calculating Engine menggunakan vacuum tubes (Howard Aitken, John von Neumann, J.P Eckert, Konrad Zuse) Beluam ada bahasa pemrograman Belum ada sistem operasi, system komputer diberi instruksi yang harus dikerjakan langsung. Operasi menggunakan plugboard Pengenalan punched card Generasi Ke-2 (1955-1965) : Transistors dan Batch System Tetap belum dilengkapi system operasi. Tetapi beberapa fungsi dasar SO sudah ada. Pengenalan transistor untuk komputer Pemisahan fungsi personil :Designer , Operator, Programmer dan Maintenance personel Pengenalan job (program atau seperangkat program) Penggunaan bahasa FORTRAN, Assembeler Penerapan Batch System Pengoperasian Off-Line Penggunaan mesin-mesin besar untuk kalkulasi sains dan engineering SEKOLAH TINGGI MANAJEMEN INFORMATIKA DAN KOMPUTER BUDIDARMA 8 Sistem Operasi Komputer Typical operating system : FMS (Fortran Monitor System) dan IBSYS (sistem operasi untuk IBM 7094) Generasi Ke-3 (1965-1980) : IC dan Multiprogramming IBM mengenalkan IBM 360 dengan sistem operasi OS/360 Menggunakan Integrated Circuit (IC) Dapat menangani komputasi sains dan komersial Mengadopsi konsep ‘one family’ Sistem operasi berukuran besar dan kompleks Mengenalkan multiuser, komputer memiliki resource yang dapat digunakan oleh banyak orang sekaligus Mengenalkan multiprogramming, komputer melayani banyak proses sekaligus pada waktu yang bersamaan dengan menerapkan partisi memori menjadi beberapa bagian memori dengan satu bagian memori untuk satu job berbeda. Saat satu job menunggu operasi I/O selesai, job lain dapat menggunakan proses. Partisi Memori Job 3 Job 2 Job 1 Sistem operasi Mengenalkan Time Sharing (berbagi waktu), tiap pemakai mempunyai satu terminal online dengan pemroses hanya memberi layana pada pemakai yang aktif secara bergantian secara cepat. Pemakai akan merasa dilayani terus menerus. Padahal sebenarnya secara bergantian. Mengenalkan SPOOLING (Simultaneous Peripheral Operation On Line), membuat peripheral seolah-olah dapat digunakan bersamaan, dapat diaksis secara simultan yaitu dengan cara menyediakan beberapa partisi memori. Saat terdapat permintaan layanan peripheral, langsung diterima dan data disimpan lebih dulu di memori yang disediakan berupa antrian kemudian dijadwalkan agar secara nyata dilayani peripheral. Sistem time sharing pertama, CTSS, dikembangkan di MIT Usaha pengembangan ‘computer utility’ mesin yang dapat menunjang ratusan time sharing user Pengembangan komputer MINI (DEC-PDP-1 s/d PDP-11) Ken Thompson mengembangkan versi satu pemakai (single user) dari MULTICS (MULTIplex and Computing Services) UNIX (Uniplexed Information and Computing Services) Generasi Ke-4 (1980-1990) : LSI, VLSI, dan Personal Computer (PC) Pengembangan LSI dan VLSI melahirkan PC dan Workstation Perangkat lunaknya ‘user friendly’ Dua sistem operasi yang dominan : MS-DOS (pada IBM-PC dengan CPU Intel 8088, 80286, 80386, 80486) UNIX (pada Non-Intel computer dan workstation) RISC Chips Network Operating System SEKOLAH TINGGI MANAJEMEN INFORMATIKA DAN KOMPUTER BUDIDARMA 9 Sistem Operasi Komputer Distributed Operating System Generasi Ke-5 (1990-sekarang) : VLSI, ULSI an teknologi Nano Second, Internet, Multimedia Pengembangan VLSI an ULSI melahirkan PC yang berbasis Pentium untuk server maupun workstation Pengembangan sistem operasi windows Pengembangan internet dan multimedia Pengembangan aplikasi yang berbasis Web atau WWW dll. The End But To be continue…… SEKOLAH TINGGI MANAJEMEN INFORMATIKA DAN KOMPUTER BUDIDARMA 10 Sistem Operasi Komputer CONTOH KASUS : Linux MS Dos Sistem operasi MS Dos berisi : Ibmbio.com, yaitu disk dan character I/O System IO.sys, yaitu disk dan file manager MSDOS.sys, yaitu command processor, shellprimitif Sistem operasi kompatibel dengan CP/M, dengan peningkatan alokasi disk, lebih cepat dan mendukung shell script primitif disebut batch files. MS Windows Microsoft Windows 95 merupakan sistem operasi Windows yang terintegrasi dan lengkap mulai dengan fungsi-fungsi dasar yang sekarang ada pada MS Windows, Windows dan Windows for Workgroup. Agar PC lebih mudah dipakai, diberikan shell baru. Plug and Play (PnP) yang terintegrasi kedalam sistem operasi, termasuk wizard untuk memandu para pemakai melalui sistem operasi dan memberikan interface pemakai yang konsisten untuk seluruh komponen sistem operasi dan spasi nama. Kecepatan dan daya tambahan dari sistem operasi 32-bit modern dengan preemptive multitasking, thread dan plaltform untuk generasi baru aplikasi 32-bit. Windows 95 adalah sistem operasi lengkap yang tidak dibatasi oleh MS Dos dan punya semua manfaat dari sistem operasi grafis yang lengkap yang ada pada dirinya. Dalam hal konektivitas baik dalam LAN, WAN maupun nobile dial-up dibuat konektivitas ke sumber daya yang bersifat remote semudah hubungan ke sumber daya lokal. Dan dimasukkan akses ke informasi elektronik untuk surat elektronik dan layanan on-line. Dan juga Windows 95 dibuat kompatibel dengan software dan hardware yang dimiliki pemakai pada saat ini. Walaupun Microsoft mengeluarkan sistem operasi baru dengan format grafis dan ber-arsitektur 32 bit, bukan berarti sistem operasi ini mutlak dipakai. Ini hanya sebagai sistem operasi alternatif yang sudah ada, seperti UNIX, IBM OS2/Warp, Oracle, IBM AS/400, dan lain-lain. SEKOLAH TINGGI MANAJEMEN INFORMATIKA DAN KOMPUTER BUDIDARMA 11 Sistem Operasi Komputer PERTANYAAN : 1. Sebutkan dua fungsi utama sistem operasi ? 2. Apa yang dimaksud dengan multiprogramming ? Berikan dua alasan diadakannya multiprogramming ! 3. Apa yang dimaksud dengan spooling ? Apakah anda menganggap personal komputer harus memiliki spooling sebagai standar dasar di masa yang akan datang? 4. Pada awal perkembangan komputer, setiap byte data yang dibaca atau yang ditulis ditangani oleh CPU (tidak ada DMA-Direct Memory Access). Apa implikasinya struktur seperti ini terhadap konsep multiprogramming. 5. Mengapa timesharing tidak tersebar luas pada generasi ke-2 komputer ? 6. Instruksi-instruksi manakah yang diperbolehkan dalam Mode Kernel : a. Disable all interupts. b. Read the time-of-day clock. c. Set the time-of-day clock. d. Change the memory map. 7. Sebutkan beberapa perbedaan sistem operasi pada personal komputer dengan sistem operasi pada mainframe! 8. Bagaimana secara umum sistem operasi memberitahukan kepada direktori kerja apakah path name untuk sebuah file adalah absolute atau relative? 9. Mengapa shell bukan bagian dari sistem operasi ? 10. Berikan sebuah contoh bagaimana mekanisme dan kebijaksanaan bisa terpisah dengan baik dari pejadwalan. Buat sebuah mekanisme yang bisa mengijinkan sebuah parent process untuk mengontrol kebijaksanaan penjadwalan children. 11. Model Client-Server tekenal didalam distributed systems. Dapatkah juga digunakan dalam sistem komputer tunggal ? 12. Mengapa proses tabel membutuhkan sistem timesharing? Apakah hal ini juga dibutuhkan dalam system personal computer yang pada suatu saat hanya terdapat satu proses yang sedang bekerja dan mengambil alih mesin sampai proses tersebut selesai ? 13. Apa perbedaan mendasar diantara blok special file dan character special file. SEKOLAH TINGGI MANAJEMEN INFORMATIKA DAN KOMPUTER BUDIDARMA 12 Sistem Operasi Komputer BAB II 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. Satu program counter A Empat program counter Proses D C B B C D Proses Model A B C D A Waktu (a) (b) Keterangan : a. multiprogramming untuk 4 program di memori b. model konseptual untuk 4 proses independent, sequential c. hanya 1 program yang aktif dalam 1 waktu = pseudoparalel SEKOLAH TINGGI MANAJEMEN INFORMATIKA DAN KOMPUTER BUDIDARMA (c) 13 Sistem Operasi Komputer 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. Contoh : Parent children children children children Pada UNIX, parent dan child process running secara parallel. Pada DOS, parent dan child process running secara bergantian (sequential). Contohnya : MSDOS sebagai parent dan program aplikasi sebagai child. Process scheduler : untuk pengaturan eksekusi proses 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 Running / kerja 2 1 3 Blocked / terhenti 4 Ready siap / SEKOLAH TINGGI MANAJEMEN INFORMATIKA DAN KOMPUTER BUDIDARMA 14 Sistem Operasi Komputer 1. 2. 3. 4. Proses di blok untuk melayani input karena sumber daya yang diminta belum tersedia / meminta layanan I/O sehingga menunggu kejadian muncul. Penjadwalan mengambil proses lain. Penjadwalan mengambil proses ini (baru). 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 Register Program counter Program status word Stack pointer Process state Time when process started CPU time used Children’s CPU time Time of next alarm Message queue pointers Pending signal bits Process id Various flag bits Memory management File management Pointer to text segment UMASK mask Pointer to data segment Root directoy Pointer to bss segment Working directory Exit status File descriptiors Signal status Effective uid Process id Effective gid Parent process System call parameters Process group Various flag bits Real uid Effective uid Real gid Effective gid 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. Interupsi langsung Berasal dari luar prosesor (peripheral / alat mengirim sinyal kepada prosesor untuk meminta pelayanan) 2. Interupsi Tanya / Polling Berasal dari prosesor (prosesor secara bergiliran mengecek apakah ada peripheral yang memerlukan pelayanan atau tidak) SEKOLAH TINGGI MANAJEMEN INFORMATIKA DAN KOMPUTER BUDIDARMA 15 Sistem Operasi Komputer Interupsi dapat di-enable dan disable tergantung pada levelnya. Pembangkit interupsi dapat berasal dari : o Program, di dalam program telah dirancang pada bagian tertentu akan terjadi pensaklaran konteks, yang menimbulkan interupsi, contohnya pada saat penggunaan alat / prosesor secara bergantian. o 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. o Satuan kendali, tugas untuk melaksanakan interupsi terletak pada satuan kendali, sehingga satuan kendali dapat membangkitkan interupsi. Misalnya kekeliruan instruksi o Kunci waktu / clock, menggunakan interupsi berkala. Misalnya pada program looping yang tak terhingga, diinterupsi pada setiap selang waktu 60 detik. o 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. o Memori, karena terjadi kekeliruan, misalnya ketika prosesor ingin mencapai alamat memori yang terletak di luar bentangan alamat memori yang ada. o 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. a. Instruksi yang sedang diolah oleh prosesor dibiarkan sampai selesai program. b. Penata interupsi merekam semua informasi proses ke dalam blok kendali proses. c. Penata interupsi mengidentifikasi jenis dan asal interupsi. d. Penata interupsi mengambil tindakan sesuai dengan yang dimaksud interupsi. e. 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. a. 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. b. Pengulangan, mengatur agar proses yang membangkitkan interupsi keliru dikerjakan ulang, jika kekeliruan dapat diatasi maka proses akan berlangsung SEKOLAH TINGGI MANAJEMEN INFORMATIKA DAN KOMPUTER BUDIDARMA 16 Sistem Operasi Komputer c. seperti biasa, jika tidak teratasi maka interupsi akan menempuh tindak lanjut keluar dari proses. 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. Tindak lanjut interupsi menurut Peterson & Silberschatz : Interupsi Rekam informasi proses Maksud interupsi? Rampung Keliru Bukan I/O Mulai I/O Kerja / Perintah Berikutnya Curah Laksanakan Mulai Permintaan Rampung I/O Tanda Rampung Interupsi Kembali ke proses sebelum interupsi Keterangan : 1. Rampung Program selesai dilaksanakan oleh prosesor sehingga penyerahan kendali proses ke pekerjaan baru / perintah baru karena proses yang dikerjakan oleh prosesor telah selesai. 2. Keliru Jika menemukan kekeliruan akan ditampilkan, kemudian kendali prosesor diserahkan pada perintah berikutnya. 3. Permintaan bukan dari alat I/O Setelah interupsi selesai dilayani, kendali prosesor dikembalikan pada proses semula, misalnya interupsi berkala. 4. Permintaan dari alat I/O Setelah interupsi selesai dilayani, kendali prosesor dikembalikan pada proses sebelumnya, tetapi ada kalanya prosesor ikut campur dalam kerja alat I/O sehingga pengembalian kendali proses semula, tidak berlangsung segera / tunggu. 5. Rampung dari alat I/O Setelah interupsi selesai dilayani dan tanda rampung dicatat, kendali prosesor dikembalikan ke proses semula. Biasanya untuk alat I/O yang tidak diikut campuri oleh prosesor. SEKOLAH TINGGI MANAJEMEN INFORMATIKA DAN KOMPUTER BUDIDARMA 17 Sistem Operasi Komputer Catt: 1 & 2 tidak mengembalikan prosesor ke proses yang terinterupsi, sedangkan 3,4,5 mengembalikan prosesor ke proses yang terinterupsi. Langkah-langkah yang dilakukan sistem operasi pada saat terjadi interupsi : 1. hardware memasukkan program counter, dl.l. memasukkan ke dalam stack pencacah program 2. Hardware memuatkan (load) program counter baru dari vector interrupsi 3. Prosedur bahasa rakitan menyimpan isi register 4. Prosedur bahasa rakitan men-set stack yang baru 5. Prosedur C menandai proses servis siap (ready) 6. Scheduler / penjadwalan menentukan proses mana yang akan jalan berikutnya 7. Prosedur C kembali ke modus bahasa rakitan 8. Prosedur bahasa rakitan memulai proses yang sedang dilaksanakan. Komunikasi antar proses (Inter Process Communinication / IPC) : Komunikasi Proses Proses Beberapa proses biasanya berkomunikasi dengan proses lainnya. Contohnya pada shell pipe line : output dari proses pertama harus diberikan kepada proses ke dua dan seterusnya. Pada beberapa sistem operasi, proses-proses yang bekerja bersama sering sharing (berbagi) media penyimpanan, dimana suatu proses dapat membaca dan menulis pada shared storage (main memory atau files) Masalah – masalah pada IPC : Race Condition : Suatu kondisi dimana dua atau lebih proses mengakses shared memory / data pada saat yang bersamaan dan hasil akhirnya tidak sesuai dengan yang dikehendaki Contoh rase condition : Print spooler Contoh : berupa kumpulan data-data yang akan di cetak. Spooler directory Mengerjakan proses lain 4 Abc Out = 4 Proses A 5 Program c 6 Program n 7 In = 7 8 Proses B Mengerjakan proses lain SEKOLAH TINGGI MANAJEMEN INFORMATIKA DAN KOMPUTER BUDIDARMA 18 Sistem Operasi Komputer Proses A cek slot input yang kosong (7) untuk mencetak suatu data dan stop Interupsi ……… Proses B meletakkan data yang akan di print pada slot kosong tersebut (7) dan stop (slot kosong berikutnya adalah 7+1=8) : prosesor mengerjakan proses lain Proses A dilanjutkan meletakkan data yang akan di print di slot (7), sehingga mengoverwrite data proses B yang diletakkan di slot (7) Maka proses B tidak akan dilaksanakan, dan tidak akan terdeteksi terjadi kesalahan. Untuk menghindari race condition maka harus diatur agar 2 proses yang mempunyai critical section yang sama tidak memasuki critical section pada saat yang bersamaan. Critical Section / seksi kritis : Bagian dari program yang mengakses shared memory, yang dapat menyebabkan terjadinya race condition. 4 kondisi untuk mencegah race condition : a. Tidak ada 2 proses yang memasuki critical sectionnya secara bersamaan / simultan b. Tidak ada asumsi yang dibuat yang berhubungan dengan kecepatan dan jumlah CPU c. Tidak ada proses yang berjalan diluar critical section-nya yang dapat memblokir proses-proses lain d. 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. SEKOLAH TINGGI MANAJEMEN INFORMATIKA DAN KOMPUTER BUDIDARMA 19 Sistem Operasi Komputer Contohnya : While (true) { while (turn != 0) /*wait*/; critical_section ( ); turn = 1; noncritical_section ( ); } while (true) { while (turn != 1) /*wait*/; critical_section ( ); turn = 0; noncritical_section ( ); } 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. Contohnya : # include “prototype.h” # define FALSE 0 # define TRUE 1 # define N 2 /*banyaknya proses*/ int turn; int interested [N]; void enter_region(int process) /*nilai awal di-set = 0 (false)*/ /*proses = 1 atau 0*/ { int other; /*jumlah proses lainnya*/ other = 1 – process; /*proses lainnya*/ interested[process] = TRUE; /*menunjukkan tertarik*/ turn = process; /*set flag*/ while (turn==process && interested[other] == TRUE) } void leave_region(int process) /*proses yang selesai*/ { interested[process] = FALSE; /*meninggalkan critical region*/ } 5. Test and Set Lock Instruction / Instruksi TSL Dengan bantuan hardware, menentukan siapa yang berhak memasuki critical_region (section) Contoh : SEKOLAH TINGGI MANAJEMEN INFORMATIKA DAN KOMPUTER BUDIDARMA 20 Sistem Operasi Komputer Enter_region : Tsl reg,flag flag = 1 Cmp reg,#0 Jnz enter_region Ret region | copy flag ke reg dan set | apakah flag = 0 |jika <> 0 loop lagi |return ke caller, masuk critical Leave_region : Mov flag, #0 |simpan 0 ke flag Ret |return ke caller 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 Contoh : Procedure-Consumer Problem (bounded buffer) 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) Meng-cek, mengubah dan sleep 1 instruksi yang Mengubah dan wake up tdk dpt dipisahkan 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) : If S >= 0 then S := S-1; Else sleep (S) End; SEKOLAH TINGGI MANAJEMEN INFORMATIKA DAN KOMPUTER BUDIDARMA 21 Sistem Operasi Komputer 2. UP(S) : S := S + 1; If S <= 0 then wakeup(S) End; 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 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 SEKOLAH TINGGI MANAJEMEN INFORMATIKA DAN KOMPUTER BUDIDARMA 22 Sistem Operasi Komputer Proses dalam Sistem Terdistribusi Thread Computer (a) Process Computer Thread (b) Program Counter Gambar (a) : - mempunyai : program counter, stack, register set, address space sendiri - independent satu sama lain dan berkomunikasi lewat IPC yang disediakan sistem, seperti : semaphore, monitor, atau message Gambar (b) : - multiple threads of control (THREAD atau lightweight Process). Thread mirip seperti little-mini process. Setiap thread berjalan sekuensial, yang mempunyai program counter dan stack sendiri. Thread juga men-share CPU seperti proses. - Thread dalam satu proses menempati address space yang sama, tidak ada proteksi penggunaan memori antar thread karena proses dimiliki oleh satu user. - Thread dapat berada pada empat state yang berbeda, seperti process (running, blocked, ready, terminated) 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 Status proses terhadap prosesor : 1. Status proses tanpa henti Selesai 2. Selesai Mulai Kerja Status proses sambil bekerja dan terhenti Mulai Kerja Terhenti SEKOLAH TINGGI MANAJEMEN INFORMATIKA DAN KOMPUTER BUDIDARMA 23 Sistem Operasi Komputer 3. Status proses dengan status siap Mulai Siap Kerja Terhenti Terhenti SEKOLAH TINGGI MANAJEMEN INFORMATIKA DAN KOMPUTER BUDIDARMA 24 Sistem Operasi Komputer BAB III TEKNIK PENJADWALAN PROSESOR Istilah-istilah : Pekerjaan / Job User menyerahkan pekerjaan mereka pada komputer. Ada pekerjaan yang panjang, sedang dan pendek. Untuk dapat diolah oleh komputer harus dianalisis dahulu untuk mengetahui bagaimana sebaiknya pekerjaan itu dilakukan. Terobosan / Troughput Pekerjaan dalam komputer dilaksanakan langkah demi langkah, sehingga dapat dikatakan bahwa troughput adalah banyaknya pekerjaan yang dapat diselesaikan oleh sistem komputer dalam satu satuan waktu. Tugas / Task Program yang terdiri dari banyak bagian program dan bagian program yang dikerjakan merupakan tugas bagi sistem operasi. - Tugas yang sedang dilaksanakan, adalah tugas yang menemukan semua sumber daya yang diperlukannya, termasuk prosesor. - Tugas yang siap dilaksanakan, adalah tugas yang menemukan semua sumber daya yang diperlukannya, kecuali prosesor. - Tugas yang belum dilaksanakan, adalah tugas yang belum menemukan sumber daya yang diperlukannya. Proses / Process Tugas yang telah dijadwalkan untuk menemukan prosesor / tugas yang telah diterima oleh penjadwalan. Tugas Penjadwalan Proses Prosesor Gambar suatu contoh prosesor Keterangan : GK = galur kendali / control bus GD = galur data / data bus, tempat informasi data berlalu lintas antar register GA = galur alamat / address bus, tempat informasi alamat memori berlalu lintas antar register karena setiap kali hanya ada 1 informasi dalam galur ini, maka lalu lintas diatur oleh tanda waktu dari kunci waktu. Tanda waktu dibentuk oleh basis waktu A = akumulator, register serba guna yang dapat menerima berbagai informasi SLA = satuan logika dan aritmatika / ALU, tempat pengolahan, contohnya untuk menghitung 3+4=?, maka data 3 diletakkan di register A dan data di register B. proses penjumlahan terjadi di SLA / ALU, hasil = 7 diletakkan kembali di register A B = register, register yang menerima informasi yang akan diolah bersama oleh isi register A SEKOLAH TINGGI MANAJEMEN INFORMATIKA DAN KOMPUTER BUDIDARMA 25 Sistem Operasi Komputer PT = pencacah program / program counter, program terletak dalam memori kerja pada alamat memori tertentu. PT menerima alamat memori awal saat diolah oleh prosesor dan juga menyaring dan menentukan alamat memori mana saja yang isinya akan dibawa ke prosesor dan hanya alamat yang sesuai dengan letak program yang sedang diolah yang diperbolehkan PT masuk ke prosesor. PT mencacah dirinya sebesar 1 cacahan dan dengan cara yang sama akan melayani alamat berikutnya sampai alamat terakhir. RI = register instruksi, membawa dan menerima informasi dari memori kerja dan diperiksa. SK = satuan kendali / control unit, menerima informasi instruksi program dan sesuai dengan isi instruksi SK mengendalikan kegiatan dalam prosesor. RA = register alamat / address register, mencatat alamat memori yang isinya akan dicapai alamat itu di memori kerja. Jika pembacaan data dari memori kerja, data / isi dari memori kerja dibaca dan disalin ke RD, tetapi jika pada penulisan data ke memori kerja, maka isi RD disalin ke alamat memori kerja. RD = register data. RD dan RA bekerja sama dalam kegiatan pengambilan dan pengiriman data dari dan ke memori kerja. 2 siklus kerja prosesor : 1. Siklus Jemput a. PT berisi alamat awal program pada memori kerja yang disesuaikan dengan isinya di memori kerja b. RA = PT, alamat memori PT diteruskan ke RA c. RA RD, isi program diambil dari memori kerja dan diletakkan di RD d. RI = RD, dari RD program diteruskan ke RI e. PT= PT + 1, pencacah untuk melanjutkan siklus berikutnya f. Go to point b 2. Siklus Kerja a. RI = SK, isi program di RI akan diteruskan ke SK, RI berisi instruksi untuk melaksanakan sesuatu b. SK seluruh kegiatan di dalam prosesor dikendalikan sehingga kerja yang dimaksud oleh bagian program itu dirampungkan. 2 jenis kerja / proses : 1. Tugas / proses sistem, berasal dari program sistem yaitu dari sistem bahasa, utilitas, operasi, dimana prosesor melayani sistem (prosesor dikuasai sistem / kontek sistem) 2. Tugas / proses aplikasi, berasal dari program aplikasi, dimana prosesor melayani aplikasi (prosesor dikuasai aplikasi / kontek aplikasi) Proses Serentak / Concurrent Process : Yaitu prosesor menghadapi banyak tugas dan proses. a. Multiprogramming, sistem komputer lebih dari 1 program sekaligus dalam pelaksanaan proses. SEKOLAH TINGGI MANAJEMEN INFORMATIKA DAN KOMPUTER BUDIDARMA 26 Sistem Operasi Komputer b. Multitasking, banyak bagian program yang dipersiapkan untuk diolah oleh prosesor namun belum sempat dijadwalkan untuk memperoleh prosesor. c. Multiprocessing, sejumlah tugas yang telah dijadwalkan untuk menggunakan prosesor. d. Multiplexing, menggunakan pertukaran kendali dalam selang waktu terpisah-pisah. e. Time sharing / rentang waktu, secara bersamaan sejumlah pemakai dapat menggunakan 1 sistem komputer, sehingga setiap pemakai merasa bahwa seluruh sistem komputer seolah-olah untuk dirinya. Proses Berurutan : Sejumlah proses berlangsung secara berselingan dan tidak ada diantara mereka yang bertumpang tindih waktu, sebelum 1 proses selesai, proses berikutnya belum bekerja. A B C Proses Paralel : - pada proses tunggal, proses serentak bukan proses paralel karena proses tersebut di gali 1 demi 1, sepenggal demi sepenggal. - Pada proses jamak, proses dapat dilaksanakan secara serempak diantara banyak prosesor sehingga disebut proses paralel A B C Proses Serentak Berpenggalan : Ada penggalan dari 1 proses yang berselingan dengan penggalan dari proses lain dan ada penggalan dari proses pertama yang bertumpang tindih waktu dengan penggalan proses kedua. A A1 A2 B B1 B2 C C1 C2 Istilah dalam penjadwalan proses : Scheduler adalah bagian sistem operasi yang mengatur penjadwalan eksekusi prosesproses. Algoritma penjadwalan (scheduling algorithm) adalah algoritma yang digunakan. Penjadwalan Proses o Antrian, karena banyak proses yang muncul secara serentak maka dibuat antrian di depan prosesor, yang berada dalam keadaan siap dan hanya ada 1 proses yang berada dalam status kerja o Prioritas, mendahulukan pada antrian proses karena tidak semua proses sama pentingnya, sehingga dibuat suatu prioritas. Dalam prioritas, pekerjaan pada prosesor diselesaikan dahulu baru proses berprioritas akan di proses o Preempsi, sama dengan prioritas, tetapi pada preempsi jika ada proses yang mendapatkan preempsi maka preemsi akan menghentikan kerja prosesor dan SEKOLAH TINGGI MANAJEMEN INFORMATIKA DAN KOMPUTER BUDIDARMA 27 Sistem Operasi Komputer mengeluarkan pekerjaan di dalam prosesor itu, sehingga proses berpreempsi dapat dilayani prosesor. Dan setelah proses berpreempsi selesai dilaksanakan, prosesor akan melaksanakan sisa proses yang dikeluarkan dari pekerjaannya tadi Jangka penjadwalan Semua antrian dan penantian (contohnya yang dikeluarkan karena preempsi. a. Penjadwalan jangka pendek / short term scheduling / low level scheduling, yaitu mengurus masuknya antrian siap ke prosesor serta antrian siap ke alat peripheral I/O, yang mengurus prioritas dan preempsi. b. Penjadwalan jangka media / medium term scheduling / intermediate level scheduling, yaitu mengurus terhadap proses yang dikeluarkan dari prosesor yang belum rampung dikerjakan dan melanjutkan pekerjaan proses tersebut di prosesor. c. Penjadwalan jangka panjang / long term scheduling / high level scheduling, yaitu mengurus masuknya pekerjaan baru berupa penentuan pekerjaan baru mana yang boleh diterima dan tugas disini diubah menjadi proses. Tujuan penjadwalan / kriteria baik tidaknya suatu algoritma penjadwalan : a. Fairness / pelayanan yang adil untuk semua pekerjaan b. Throughput / memaksimumkan throughput c. Efficiency / memaksimumkan pemakaian prosesor d. Overhead / meminimumkan waktu tunggu e. Pemakaian sumber daya seimbang f. Tidak terjadi penundaan waktu tak hingga g. Kegiatan sumber daya dapat dideteksi terlebih dahulu Perhitungan kerja prosesor t adalah lama proses pada prosesor, lama waktu sesungguhnya yang diperlukan untuk mengolah proses dalam prosesor. T adalah lama tanggap pada prosesor, lama waktu yang diperlukan oleh prosesor sejak tiba sampai dengan rampung diolah oleh prosesor, terdapat waktu tunggu dalam antrian / dalam preempsi. o Lama tanggap turn around time, yaitu memperhitungkan lama waktu yang diperlukan oleh proses untuk keluaran o Lama tanggap respon time, yaitu tidak memperhitungkan lama waktu yang diperlukan oleh proses untuk keluaran Tr adalah lama tanggap rata-rata, yaitu perbandingan lama tanggap setiap proses (Ti) dengan jumlah proses serentak yaitu Tr = Ti / N S adalah waktu sia-sia, waktu yang terbuang di dalam antrian / selama terkena preempsi yaitu selisih antara lama tanggap dengan lama proses (T-t) Rt adalah rasio tanggap, perbandingan antara lama proses terhadap lama tanggap, Rt = t / T Rp adalah rasio penalti, perbandingan antara lama tanggap terhadap lama proses, Rp = T/t dan karena t T, maka Rt < 1 dan Rp >1 Penjadwalan Prosesor Penjadwalan satu tingkat SEKOLAH TINGGI MANAJEMEN INFORMATIKA DAN KOMPUTER BUDIDARMA 28 Sistem Operasi Komputer a. Pertama Tiba Pertama Dilayani (PTPD) b. Proses Terpendek Dipertamakan (PTD) c. Proses Terpendek Dipertamakan Preempsi (PTDP) d. Rasio Penalti Tertinggi Dipertamakan (RPTD) e. Putar Gelang (PG) f. Putar Gelang Prioritas Berubah (PGPB) Penjadwalan multi tingkat a. Antrian multi tingkat b. Antrian multi tingkat berbalikan Penjadwalan Satu Tingkat Pertama Tiba Pertama Dilayani (PTPD) / First Come First Served (FCFS) Penjadwalan ini murni antrian, tanpa prioritas tanpa preempsi. Nama Proses A B C D E Saat Tiba 0 0 0 0 0 serentak Lama Proses 9 30 4 8 12 Saat Tiba 0 1 3 7 Lama Proses 4 7 3 8 Saat Mulai 0 9 39 43 51 Saat Rampung 9 39 43 51 63 Ti Tr Lama Tanggap 9 39 43 51 63 205 41 Tr cukup besar, jika dibandingkan dengan lama tanggap dari masing-masing proses. Nama Proses A B C D Saat Mulai 0 4 11 14 Saat Rampung Lama tanggap saat rampung karena perbedaan saat tiba. 4 11 14 22 Ti Tr Lama Tanggap 4 10 11 15 40 10 Proses Terpendek Dipertamakan (PTD) / Shortest Job First (SJF) Penjadwalan ini adalah antrian dengan prioritas tanpa preempsi, yang menjadi prioritas adalah proses yang terpendek (tersingkat), makin pendek proses, makin tinggi prioritasnya. SEKOLAH TINGGI MANAJEMEN INFORMATIKA DAN KOMPUTER BUDIDARMA 29 Sistem Operasi Komputer Nama Proses A B C D E Nama Proses D E B C A Saat Tiba 0 0 0 0 0 Saat Tiba 0 0 0 0 0 serentak Lama Proses 11 8 10 3 5 Saat Mulai Saat Rampung Lama Tanggap Lama Proses 3 5 8 10 11 prioritas Saat Mulai 0 3 8 16 26 Saat Rampung Lama Tanggap 3 8 16 26 37 90 18 Lama Proses 5 7 2 4 Saat Mulai Tr lebih singkat, jika dibandingkan dengan PTPD Nama Proses A B C D Saat Tiba 0 3 5 6 3 8 16 26 37 Ti Tr Saat Rampung Lama Tanggap Disusun urutan proses berdasarkan prioritasnya, yaitu CDAB, tetapi pada saat tiba = 0, proses terpendek C belum datang, maka mengerjakan proses A dahulu, setelah selesai pada saat 5, proses C sudah datang, sehingga C dikerjakan dan seterusnya seperti : A B C D Saat 0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 Proses A A A A A C C D D D D B B B B B B B Nama Proses A C D B Saat Tiba 0 5 6 3 Lama Proses 5 2 4 7 =18 Saat Mulai 0 5 7 11 Saat Rampung 5 7 11 18 Ti SEKOLAH TINGGI MANAJEMEN INFORMATIKA DAN KOMPUTER BUDIDARMA Tr Lama Tanggap 5 2 5 15 27 6.75 30 Sistem Operasi Komputer Keuntungan : memperkecil rata-rata lama tanggap Kelemahan : layanan terhadap proses panjang bisa tidak terlayani jika proses pendek datang terus. Nama Proses A B C D E Nama Proses A C B E D Saat Tiba 0 4 6 9 14 Saat Tiba 0 6 4 14 9 Lama Proses 8 5 3 8 4 Lama Proses 8 3 5 4 8 Saat Mulai Saat Rampung Lama Tanggap Saat Mulai 0 8 11 16 20 Saat Rampung Lama Tanggap 8 5 12 6 19 50 10 8 11 16 20 28 Ti Tr Proses Terpendek Dipertamakan Preempsi (PTDP) Preemptive Shortest Job First (PSJF) Penjadwalan ini dengan prioritas dengan preempsi, yang menjadi pioritas adalah sisa proses. Proses yang terpendek bisa didahulukan dengan cara membandingkan sisa waktu proses yang sedang dilaksanakan dengan proses yang tiba, dengan preempsi mengeluarkan proses yang sedang diolah untuk melaksanakan proses yang lebih pendek / singkat. Nama Proses A B C D Saat Tiba 0 2 4 5 Lama Proses 7 3 9 4 Saat Mulai Saat Rampung Lama Tanggap A B CD Sa 0 1 2 3 4 5 6 7 8 9 1 1 1 1 1 1 1 1 1 1 2 2 2 2 at 01234567890 1 23 Pro A A B B B D D D D A A A A A C C C C C C C C C ses SEKOLAH TINGGI MANAJEMEN INFORMATIKA DAN KOMPUTER BUDIDARMA 31 Sistem Operasi Komputer Pada saat 0, proses A dikerjakan karena A datang pertama Pada saat 2, B datang, B=3, sisa A=5, B<A maka A dikeluarkan dari proses, B dikerjakan Pada saat 4, C datang, C=9, sisa A=5, sisa B=1, B<A<C, maka B dikerjakan Pada saat 5, D datang, D=4, sisa A=5, sisa C=9, D<A<C, maka D dikerjakan sampai selesai karena tidak ada proses yang datang lagi A<C maka A dikerjakan C dikerjakan Selesai Nama Proses A B C D Saat Tiba 0 2 4 5 Lama Proses 7 3 9 4 =23 Saat Mulai 0 2 15 5 Saat Rampung 14 5 23 9 Ti Tr Lama Tanggap 14 3 19 4 40 10 Karena preempsi, PTDP lebih baik dari PTD dalam hal kecilnya Tr, tetapi untuk proses panjang lebih lama dibandingkan PTD. Nama Proses A B C D Nama Proses A B C D Saat Tiba 0 2 4 5 Saat Tiba 0 2 4 5 Lama Proses 8 5 7 1 Lama Proses 8 5 7 1 Saat Mulai Saat Rampung Lama Tanggap Saat Mulai 0 2 14 5 Saat Rampung Lama Tanggap 14 6 17 1 38 9.5 14 8 21 6 Ti Tr Rasio Penalti Tertinggi Dipertamakan (PTD) / Highest Penalti Ratio Next (HPRN) Penjadwalan dengan prioritas tanpa preempsi. Yang menjadi prioritas adalah besarnya rasio pinalti. Tetap mendahulukan proses pendek ditambah dengan mempertimbangkan rasio penaltinya, yang ditentukan berdasarkan lama waktu SEKOLAH TINGGI MANAJEMEN INFORMATIKA DAN KOMPUTER BUDIDARMA 32 Sistem Operasi Komputer antriannya. Sehingga prioritas proses panjang akan turut meningkat melalui peningkatan rasio pinalti, sehingga pada suatu saat proses panjang pada antrian yang telah lama menunggu akan menyusul proses pendek. S = (T-t) ; Rp = T/t = (s+t)/t Nama Proses A B C D E Nama Proses B C D E Saat Tiba 0 1 2 3 4 Nama Proses C D E Lama Proses 4 2 5 8 4 Saat Mulai Waktu sia-sia 4-1=3 4-2=2 4-3=1 4-4=0 Waktu sia-sia 6-2=4 6-3=3 6-4=2 Nama Proses D E Waktu sia-sia 11 - 3 = 8 11 - 4 = 7 Saat Rampung Rasio Penalti (3 + 2) / 2 = 2,5 (2 + 5) / 5 = 1,4 (1 + 8) / 8 = 1,125 (0 + 4) / 4 = 1 Rasio Penalti (4 + 5) / 5 = 1,8 (3 + 8) / 8 = 1,375 (2 + 4) / 4 = 1,5 Rasio Penalti (8 + 8) / 8 = 2 (7 + 4) / 4 = 2,75 A B C DE Sa 0 1 2 3 4 5 6 7 8 9 1 1 1 1 1 1 1 1 1 1 2 2 2 2 at 01234567890 1 23 Pro A A A A B B C C C C C E E E E D D D D D D D D ses Nama Proses A B C D E Saat Tiba 0 1 2 3 4 Lama Proses 4 2 5 8 4 =23 Saat Mulai 0 4 6 15 11 Saat Rampung 4 6 11 23 15 Ti SEKOLAH TINGGI MANAJEMEN INFORMATIKA DAN KOMPUTER BUDIDARMA Tr Lama Tanggap Rp>> Rp>> Rp>> Lama Tanggap 4 5 9 20 11 49 9.8 33 Sistem Operasi Komputer Putar Gelang (PG) / Round Robin (RR) Penjadwalan ini tanpa prioritas, dengan preempsi. Secara bergiliran berdasarkan antrian (tanpa prioritas) prosesor melayani sejenak setiap proses tergantung besarnya quantum waktu. Secara berturut-turut proses yang dilayani prosesor dan belum rampung akan kembali ke akhir antrian yang ada, sehingga pergiliran ini berputar seperti gelang. Dan hanya proses yang telah rampung terlayani yang meninggalkan prosesor dan antrian tersebut. Jadi setiap proses dilayani selama quantum waktu tertentu secara bergiliran. Quantum waktu : waktu sejenak yang digunakan oleh prosesor untuk melayani setiap proses. Perubahan quantum waktu membedakan hasil layanan terhadap antrian yang sama. Contoh dengan Q = 3 Nama Saat Proses Tiba A 0 B 0 C 0 D 0 E 0 Lama Proses 7 5 8 2 6 Saat Mulai Saat Rampung Lama Tanggap Saat 0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 Proses A A A B B B C C C D D E E E A A A B B C C C E E E A C C Nama Proses A C B E D Dengan Q = 2 Nama Proses A B C D E Saat Tiba 0 0 0 0 0 Saat Tiba 0 1 5 6 7 Lama Proses 7 5 8 2 6 = 28 Lama Proses 5 3 7 1 6 Saat Mulai 0 3 6 9 11 Saat Mulai Saat Rampung 26 19 28 11 25 Ti Tr Saat Rampung SEKOLAH TINGGI MANAJEMEN INFORMATIKA DAN KOMPUTER BUDIDARMA Lama Tanggap 26 19 28 11 25 109 21.8 Lama Tanggap 34 Sistem Operasi Komputer A B C DE Sa 0 1 2 3 4 5 6 7 8 9 1 1 1 1 1 1 1 1 1 1 2 2 2 at 01234567890 1 2 Pro A A B B A A B C C D E E A C C E E C C E E C ses Nama Proses A B C D D Saat Tiba 0 1 5 6 7 Lama Proses 5 3 7 1 6 Saat Mulai 0 2 7 9 10 Saat Rampung 13 7 22 10 21 Ti Tr Lama Tanggap 13 6 17 4 14 54 10,4 Pada saat 0, A dikerjakan 2x, saat 2, B sudah datang, dikerjakan 2x, saat 4, belum ada yang datang maka kerjakan A dan B lagi. Kemudian kerjakan C, D, E yang sudah datang, tetapi di antrian masih ada A, A dikerjakan kemudian E, sisa C, sisa E dan sisa C sampai selesai. Secara merata, penjadwalan putar gelang memperlambat proses yang tiba dan secara merata pula semua proses dilayani oleh prosesor, sehingga biasanya digunakan pada proses interaktif jika semua proses menuntut dikerjakan segera. Penjadwalan dengan prioritas berubah-ubah Penjadwalan yang menggunakan prioritas dapat diubah-ubah menjadi prioritas lainnya. 1. 2. Penjadwalan tanpa preempsi dengan prioritas berubah-ubah P = f(s,t,u) Dengan : p = prioritas; s = waktu sia sia; t = lama proses u = tarif sewa Penjadwalan dengan preempsi dengan prioritas berubah-ubah (PGPB = putar gelang prioritas berubah-ubah) dimana prioritas tergantung pada proses lama dan proses baru, maka jika : a = koefisien untuk proses lama dan b = koefisien untuk proses baru, b/a = 1 prioritas sama b/a = 0 prioritas lama b/a < 1 prioritas baru < lama b/a > 1 prioritas baru > lama SEKOLAH TINGGI MANAJEMEN INFORMATIKA DAN KOMPUTER BUDIDARMA 35 Sistem Operasi Komputer Kesimpulan : Tanpa Preempsi Dengan Preempsi Tanpa Prioritas PTPD Dengan Prioritas PTD / RPTD PG PTDP Penjadwalan Multitingkat Proses dibedakan tingkatnya berdasarkan kepentingannya. Penjadwalan pada tiap tingkat dapat bermacam-macam. Pada antrian multi tingkat berbalikan, tingkat satu dan lainnya saling berhubungan. Antrian Multi Tingkat (Multi level queue) Mengumpulkan proses-proses yang berkepentingan sama dalam 1 tingkat. Proses dikerjakan tingkat demi tingkat dari tingkat tertinggi sampai dengan tingkat terendah dimana setiap tingkat telah rampung dikerjakan Tingkat 1 c/ proses pd sistem operasi Tingkat 2 c/ proses pd prog. Interaktif R O S E S O R Tingkat 3 c/ proses pd program edit Tingkat 4 c/ proses pd tumpukan Tingkat 5 c/ proses pd borongan P Antrian Multi Tingkat Berbalikan / Feedback multi level queue Tingkat 1 Tingkat 2 Tingkat 3 Preempsi Preempsi Preempsi SEKOLAH TINGGI MANAJEMEN INFORMATIKA DAN KOMPUTER BUDIDARMA P Rampung P Rampung P Rampung 36 Sistem Operasi Komputer Tingkat n Rampung Metoda Evaluasi Penjadwalan evaluasi analitik a. pemodelan deterministik pekerjaan sudah ditetapkan terlebih dahulu, menerapkan berbagai penjadwalan dan dievaluasi hasilnya. Nama proses Saat tiba Lama proses A 0 12 B 0 30 C 0 2 D 0 8 E 0 10 Dari tabel tersebut dapat kita cari : Macam penjadwalan Rerata lama tanggap PTPD 42,4 PTD 29,2 PG (Q=8) 38,4 b. Rerata waktu sia-sia 30 14 28 Keuntungan : ketepatan untuk menunjukkan rata-rata lama tanggap / rata-rata waktu sia-sia Kelemahan : hasil evaluasi hanya berlaku untuk proses yang telah ditetapkan analisis model antrian menganggap sistem komputer sebagai suatu jaringan alat layan, menggunakan rumus distribusi probabilitas untuk memperkirakan bentuk antrian dan bentuk pelaksanaan proses. Sasaran rumus distribusi probabilitas adalah untuk lama proses, saat tiba dan kecepatan layan. Sehingga dapat menentukan analisis jaringan antrian, dengan ditetapkan rumus litte, yaitu : n = u . s, dengan n = rerata panjang antrian, s = rerata waktu sia-sia / waktu tunggu, u = rerata kecepatan tiba proses baru. Kelemahan : Pengambilan model cukup rumit untuk sistem tertentu dan model tidak selalu cocok dengan keadaan yang sebenarnya Metode Simulasi Metode ini berdasarkan sejumlah variabel yang disimulasikan sistem komputer yang digunakan, memerlukan data masukan melalui bilangan acak. Keuntungan : jika ditangani dengan baik maka metode ini cukup baik. Kelemahan : mahal, karena banyak menggunakan jam prosesor dan ruang memori. SEKOLAH TINGGI MANAJEMEN INFORMATIKA DAN KOMPUTER BUDIDARMA 37 Sistem Operasi Komputer Metode Implementasi Metode ini bekerja dengan cara mengamati hasil dari implementasi setiap penjadwalan / menerapkan berbagai penjadwalan pada pekerjaan yang sesungguhnya. Keuntungan : cukup cermat. Kelemahan : perubahan macam penjadwalan mengganggu pemakai komputer dan perubahan jenis pekerjaan mengganggu penjadwalan. SEKOLAH TINGGI MANAJEMEN INFORMATIKA DAN KOMPUTER BUDIDARMA 38 Sistem Operasi Komputer BAB IV 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). SEKOLAH TINGGI MANAJEMEN INFORMATIKA DAN KOMPUTER BUDIDARMA 39 Sistem Operasi Komputer Memori dukung Pindah masuk Memori kerja Pindah keluar 1 pindahan = 1 blok, makin kecil ukuran memori kerja, makin sering terjadi pindahan. 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. Contoh : alamat awal relatif 0, alamat awal fisik 14726, maka selisihnya = relokasinya = 14726-0 = 14726. Alamat relatif 0 1 2 3 … Alamat mutlak 14726 14727 14728 14729 … Relokasi 14726 14726 14726 14726 … 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. 3. 4. 5. Sistem utilitas Merupakan bagian dari sistem operasi komputer, biasanya berbentuk berkas dalam memori arsif. Inti sistem operasi Terdiri dari inti, kernel, nucleus adalah system operasi yang menetapkan dalam memori kerja. Contohnya adalah pada saat “boot / booting / bootstrap”. Sistem operasi Program sistem operasi diletakkan dalam memori, maka banyak kegiatan yang juga terletak dalam memori. Pengendali alat SEKOLAH TINGGI MANAJEMEN INFORMATIKA DAN KOMPUTER BUDIDARMA 40 Sistem Operasi Komputer 6. Terdiri dari penggerak alat / device controller dan pelaksana / device driver yang berbentuk program dan menempati ruang memori tertentu. 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. a. 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. b. 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) X Y Keterangan: R : relokasi P : alamat pangkal / fisik A : alamat awal / logika Y : alamat fisik dari X X : alamat suatu informasi tertentu (logika) Maka : R = P – A Y=X+R=X+P–A Jika informasi dengan alamat relative = 0, maka A = 0. Contoh : suatu informasi beralamat awal 2100 dan informasi ini dimuat relokasikan ke alamat pangkal 23600. Hitung besar relokasi dan hitung pula pada memori kerja dimana bagian informasi yang beralamat 2453 terletak ? Maka : A = 210 P = 23600 X = 2453 R = P – A = 23600-2100 = 21500 Y = X + R = 2453+21500 = 23953 c. 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. d. pemuatan dinamik / tumpang / overlay SEKOLAH TINGGI MANAJEMEN INFORMATIKA DAN KOMPUTER BUDIDARMA 41 Sistem Operasi Komputer 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. 2. 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. Pemenggalan memori kerja Contohnya alamat pagar untuk pemenggalan memori kerja untuk wilayah program monitor, program dan data user. Pagar pada memori kerja Wilayah memori telah kita penggal menjadi 2 bagian yaitu di atas alamat pagar dan di bawah alamat pagar yang letaknya terpisah. Pemenggalan memori kerja Memenggal memori ke dalam banyak penggalan dan setiap penggalan dibatasi 2 pagar, yaitu batas bawah dan batas atas. Batas Atas BA6 Batas Bawah BB6 Sistem Operasi 6 5 Batas Atas BA5 SEKOLAH TINGGI MANAJEMEN INFORMATIKA DAN KOMPUTER BUDIDARMA 42 Sistem Operasi Komputer BA4 BB4 BA2 BB2 4 BA3 2 1 unused BA1 BB1 3 Batas Bawah BB5 BB3 Untuk setiap penggalan memori kerja, memerlukan 2 register yaitu untuk mencatat batas atas dan untuk mencatat batas bawah. Dan setiap alamat memerlukan dua kali perbandingan untuk mencapai penggalan. 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). SEKOLAH TINGGI MANAJEMEN INFORMATIKA DAN KOMPUTER BUDIDARMA 43 Sistem Operasi Komputer Sistem Operasi di RAM Sistem Operasi Sistem Operasi di ROM di RAM Program Program Pemakai Pemakai Program di RAM Pemakai Device Driver di RAM di ROMD di RAM = RAM Driver di ROM = ROM Tiga Cara Organisasi Memori Satu Proses Tunggal Multiprogramming Dengan Pemartisian Statis Terbagi dua : Memori Tidak 1. Pemartisian menjadi partisi-partisi berukuranMemori sama, Tidak yaitu ukuran semua partisi Dipakai Memori Tidak memori adalah sama Dipakai 2. Pemartisian menjadi partisi-partisi berukuran berbeda, yaitu ukuran semua Dipakai 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 Device Driver di kecil ditempatkan di partisi sangat besar. ROM Partisi 1 Partisi 2 Partisi 3 Partisi 4 Partisi 5 Sistem Operasi 50 Kbyte 75 Kbyte 100 Kbyte 200 Kbyte 150 Kbyte Multiprogrammning dengan Pemartisian Tetap dengan Satu Antrian SEKOLAH TINGGI MANAJEMEN INFORMATIKA DAN KOMPUTER BUDIDARMA 44 Sistem Operasi Komputer 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 Partisi 1 Partisi 2 Partisi 3 Partisi 4 Partisi 5 SSSistem Operasi 50 Kbyte 75 Kbyte 100 Kbyte 200 Kbyte 150 Kbyte 100 Kbyte 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. SEKOLAH TINGGI MANAJEMEN INFORMATIKA DAN KOMPUTER BUDIDARMA 45 Sistem Operasi Komputer MMMemori Untuk Sistem Operasi MMMemori Untuk Sistem Operasi Proses 0 Proses 0 Bebas Proses 2 Proses 2 Proses 4 Bebas Proses 6 Proses 4 Bebas Bebas Proses 6 Lubang-lubang Memori dan Pemadatan Memori 2. Pencatatan Pemakaian Memori Pencatatan memakai peta bit (Bit Map) Pencatatan memakai linked list Pencatatan memakai peta bit - Nilai 0 pada peta bit berarti unit masih bebas - Nilai satu berarti unit digunakan / terisi Setelah penggalan memori rampung dipakai, maka keadaan bit akan berubah dari 1 ke 0, begitupun sebaliknya. Jika jumlah penggalan memori kerja benar, maka bit menjadi panjang dan pemeriksaan keadaan penggalan memori kerja akan lama. A 0 7 0 1 1 1 ... 1 1 1 1 ... 2 1 1 0 ... 3 1 1 0 ... 4 1 1 1 ... B 15 5 0 1 1 ... 6 0 1 1 ... C 23 7 0 1 1 ... Peta Bit untuk Pengelolaan Pemakaian Memori Pencatatan memakai Linked List P= Proses, H=Hole(lubang) SEKOLAH TINGGI MANAJEMEN INFORMATIKA DAN KOMPUTER BUDIDARMA 46 Sistem Operasi Komputer A 0 P 3. B 7 0 5 H 18 2 H 5 3 P C 15 20 3 P 8 6 P 23 14 4 Hole Panjang=2 Proses Start Di 18 Pengelolaan Pemakaian dengan Linked List 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. 5K 3K 1K 2K 4K 3K 2K Urutan Pemenggalan Memori Setiap Ukuran 6K 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. SEKOLAH TINGGI MANAJEMEN INFORMATIKA DAN KOMPUTER BUDIDARMA 47 Sistem Operasi Komputer 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. Sistem Buddy / Konco Memori di susun dalam senarai blok-blok bebas berukuran 1,2,4,8,16 Kbyte dst, sampai kapasitas memori. Permintaan : A = 70 Kb; B = 35 Kb; C = 80 Kb; D = 60 Kb A A A 128 128 128 128 B 64 B 64 B 64 D D 256 C C C C C 256 256 1024 128 128 128 128 128 1024 512 512 512 512 512 512 512 Pengelolaan Memori dengan Sistem Buddy Dari berbagai cara alokasi tersebut di atas, sebuah hole yg ditempati proses akan terbagi menjadi bagian yang dipakai proses dan memori yang tidak terpakai (fragmen). Timbulnya memori yang tidak terpakai disebut fragmentasi. 1. Fragmentasi internal Suatu informasi menempati penggalan yang lebih besar ukurannya akan menyebabkan adanya sisa dalam penggalan memori tersebut. Sisa tersebut dinamakan fragmentasi internal. 2. Fragmentasi eksternal Penggalan memori bebas yang ukurannya terlalu kecil untuk dapat menampung penggalan informasi yang akan dimuat ke penggalan memori itu. Misalnya informasi 5K akan menempati penggalan memori yang belum terisi yaitu 1K dan 2K tetapi karena ukurannya tidak sesuai maka pemuatan informasi ke penggalan memori tidak dapat dilaksanakan, maka penggalan memori 1K dan 2K(=3K) menjadi fragmentasi eksternal. SEKOLAH TINGGI MANAJEMEN INFORMATIKA DAN KOMPUTER BUDIDARMA 48 Sistem Operasi Komputer Contoh : 5K Internal eksternal 2K Terisi 2K 1K 2K 3K 1K 2k 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. SEKOLAH TINGGI MANAJEMEN INFORMATIKA DAN KOMPUTER BUDIDARMA 49 Sistem Operasi Komputer BAB V SISTEM FILE Pada proses penyimpanan dan pembacaan data bisa timbul masalah: 1. Kapasitas media penyimpanan tidak cukup (terbatas). 2. Ketika proses dihentikan, data hilang. 3. Kebutuhan mengakses data atau sebagiannya dalam waktu bersamaan. Oleh karena itu diperlukan media penyimpanan yang : 1. Mampu menyimpan data yang besar. 2. Mampu menjaga data walaupun proses yang mengaksesnya dihentikan. 3. Proses yang bersamaan dapat mengakses data secara bersama-sama, tanpa ada yang terganggu. Solusi untuk semua masalah tsb adalah dengan menyimpan data pada disk atau media lain dalam bentuk unit-unit yang disebut FILE. Data yang disimpan dalam bentuk file harus tetap tidak berubah ketika proses dibentuk atau dihentikan. File bisa hilang hanya ketika dihapus saja. Sistem File adalah bagian sistem operasi yang menangani masalah file. 1. FILE 1.1 Penamaan File File merupakan bentuk mekanisme abstrak. Karakteristik yang paling penting dari mekanisme abstrak adalah cara pemberian nama suatu obyek. Ketika proses membuat suatu file, proses akan memberi sebuah nama kepada file. Ketika proses selesai, file masih ada dan bisa diakses oleh proses lain dengan menggunakan nama file tsb. Semua sistem operasi menerima bentuk nama file yang terbuat dari 1 sampai 8 karakter. Tetapi ada beberapa sistem operasi yang membedakan huruf besar dan huruf kecil, seperti UNIX. Contoh : BARBARA, BARbara, BarBaRa ----> UNIX membedakannya ----> DOS menganggap sama ----> WINDOWS ??? ----> LINUX ??? Kebanyakan sistem operasi mampu menangani dua bagian bentuk nama file yang dipisah dengan titik (period), bagian yang terletak setelah tanda titik disebut extension, yang biasanya menggambarkan ciri khusus dari file ybs. Contoh : - DOS nama file ----> [1 sampai 8 karakter].[1 sampai 3] - UNIX ----> [1 sampai ? karakter].[1 sampai ?].[....].[....] .....sampai ? Beberapa extension file yang biasa ditemukan tampak pada tabel berikut : SEKOLAH TINGGI MANAJEMEN INFORMATIKA DAN KOMPUTER BUDIDARMA 50 Sistem Operasi Komputer Extension *.bak *.bas *.bin *.c *.dat *.doc *.ftn *.hlp *.lib *.man *.obj *.pas *.tex *.txt Artinya File Backup Program source Basic Program executable binary Program source C File Data File Dokumentasi Program source Fortran File Teks untuk HELP command Library dari file .obj yang digunakan linker Online manual page File object Program source Pascal Teks masukan untuk format program TEX File teks umum Pada kasus khusus, extension ini hanya berupa Konvensi, seperti : - data03.txt, menyatakan file dalam bentuk file teks. - program05.c menyatakan file berupa file code bahasa C, C compiler hanya mengcompile extension *.C. 1.2 Struktur File Beberapa kemungkinan bentuk struktur file tampak pada gambar 1. Gambar 1. Tiga macam file. (a) Urutan byte. (b) Urutan record. (c) Tree. a. File dibentuk dari urutan byte yang tidak terstruktur. Akibatnya : Sistem operasi tidak tahu apa yang ada didalamnya. DOS dan UNIX menerapkan bentuk ini, LINUX ?, WINDOWS ? Cara mengambil isi file dengan program. SEKOLAH TINGGI MANAJEMEN INFORMATIKA DAN KOMPUTER BUDIDARMA 51 Sistem Operasi Komputer b. File dibentuk dari urutan record dengan panjang yang sama dan struktur internal didalamnya. Operasi read akan membaca satu record. Operasi write akan overwrite/append satu record. Cocok untuk sistem operasi yang menerapkan Punch Card, karena ukurannya tetap. c. File dibentuk dari struktur organisasi tree record, ukuran record tidak harus sama, setiap record mengandung field Key pada posisi yang sama. Tree record diurutkan berdasarkan Key nya. Operasinya dengan melihat Key. Banyak diterapkan pada sistem operasi Mainframe untuk pemrosesan data komersial. 1.3 Jenis File UNIX dan DOS memiliki jenis file : a. Regular File : jenis file yang mengandung informasi user. Contoh gambar 1. b. Directory : file sistem yang mengatur struktur sistem file. c. Character Special File : File yang berhubungan dengan peralatan I/O dan memodelkan peralatan serial, seperti Terminal, Printer, NIC. d. Block Special File : File yang digunakan untuk memodelkan disk. Regular File bisa berbentuk ASCII maupun binary. Keuntungan bentuk ASCII adalah dapat ditampilkan dan dicetak seperti apa adanya dan dapat diedit menggunakan editor yang biasa dipakai. File Binary memiliki struktur internal sendiri. Magic Number : menyatakan bahwa file berupa file executable. Binary file dalam bentuk archive mengandung kumpulan library procedure (module) yang telah dicompile tapi tidak dilink. Seluruh sistem operasi paling tidak harus mengenal satu jenis file executable, miliknya sendiri. Bahkan jika file source codenya diubah, mampu melakukan compile ulang secara otomatis. Contoh perintah UNIX : make, berada didalam shellnya. 1.4 Pengaksesan File Ada dua cara : a. Sequential Access, proses dapat membaca seluruh byte/record dalam suatu file, mulai dari awal, tidak boleh melompat atau keluar dari urutannya. Cocok untuk file yang disimpan pada media Magnetic Tape. b. Random Access, bisa membaca byte/record untuk berbagai macam urutan pengaksesan. Cocok untuk file yang disimpan pada media Disk. Jenis ini lebih sesuai untuk berbagai aplikasi, seperti sistem database airport. Sistem operasi Mainframe lama banyak menggunakan kedua cara, karena memiliki dua bentuk media penyimpanan tsb. Sedangkan sistem operasi modern tidak membedakannya, otomatis semua file diakses secara acak (Random access). SEKOLAH TINGGI MANAJEMEN INFORMATIKA DAN KOMPUTER BUDIDARMA 52 Sistem Operasi Komputer 1.5 Atribut File Jenis-jenis atribut file tampak pada Tabel berikut. Field Protection Password Creator Owner Read Only flag Hidden flag System flag Archive ASCII/binary flag Random access flag Temporary flag Lock flag Record length Key position Key length Creation time Time of last access Time of last change Current size Maximum size Artinya Who can access the file and in what way Password needed to access the file Id of person who created the file Current owner 0 for read/write, 1 for read only 0 for normal, 1 for do not display in listings 0 for normal file, 1 for system file 0 has been backed up, 1 for needs to be backed up 0 for ASCII file, 1 for binary file 0 for sequential access only, 1 for random access 0 for normal, 1 for delete on process exit 0 for unlocked, nonzero for locked Number of bytes in a record Offset of the key within each record Number of bytes in the key field Date and Time file was created Date and Time file was last accessed Date and Time file was last changed Number of bytes in the file Maximum size file may grow ro 1.6 Operasi File Sistem Call yang biasa digunakan dalam hubungan dengan file : a. Create : File dibuat dan tidak berisi data. b. Delete : File dihapus karena tidak diperlukan lagi dan untuk memperbesar ruang disk sisa. Beberapa sistem operasi akan menghapus file jika tidak digunakan dalam jangka waktu tertentu. c. Open : Sebelum menggunakan file, file harus diOpen dulu. Open akan menjadikan sistem mengambil atribut dan daftar alamat disk dan meletakkan didalam memori kerja agar diperoleh akses yang cepat. d. Close : Jika akses file selesai, atribut dan alamat disk tidak diperlukan lagi, sehingga harus ditutup dan untuk memperbesar ruang tabel daftar alamat disk internal. e. Read : Data dibaca dari file. Sistem menentukan banyaknya data dan menyediakan buffer untuk menampungnya. f. Write : Data disimpan kedalam file. Jika posisi berada diakhir file, maka ukuran file bertambah. Jika posisi ditengah, data yang ada akan ditimpa. SEKOLAH TINGGI MANAJEMEN INFORMATIKA DAN KOMPUTER BUDIDARMA 53 Sistem Operasi Komputer g. Append : Menambah data setelah data terakhir. h. Seek : Mengatur posisi pointer saat itu menuju posisi yang ditentukan. i. Get Attribute : Pada UNIX, program make perlu melihat atribut file, terutama waktu modifikasinya yang terakhir. j. Set Attribute : Mengubah status atribut file. k. Rename : Merubah nama file. 1.7 Memory-Mapped File Sistem operasi melakukan pemetaan file kedalam ruang alamat disk pada alamat virtual. Pemetaan ini sangat cocok pada Segmentasi. Contoh pada gambar 3. Gambar 3 (a) Proses segmentasi sebelum memetakan file ke ruang alamatnya. (b) Proses setelah memetakan file abc ke satu segmen dan membuat segmen baru untuk file xyz. Proses memiliki dua segmen, teks dan data. Proses melakukan sistem call COPY. Pertama, memetakan file sumber (abc) ke sebuah segmen. Kemudian membuat segmen kosong dan memetakannya ke file tujuan (xyz). Proses dapat mengcopy segmen sumber ke dalam segmen tujuan menggunakan loop copy biasa, bukan Read dan Write. Kelebihan Pemetaan File : - Menghilangkan kebutuhan I/O sehingga mempermudah pemrograman. Kekurangan Pemetaan File : - Sistem sulit untuk mengetahui panjang sebenarnya dari file output (xyz). - Hasil pemetaan belum tentu sama dari sumbernya, jika terjadi modifikasi sumber, outputnya belum tentu dimodifikasi juga. - Tidak bisa memetakan ukuran file yang lebih besar dari ukuran segmen. 2. DIRECTORY Untuk menjaga agar file tetap pada jalurnya dan diketahui, maka sistem file menyediakan DIRECTORY. 2.1 Sistem Directory Hirarki SEKOLAH TINGGI MANAJEMEN INFORMATIKA DAN KOMPUTER BUDIDARMA 54 Sistem Operasi Komputer Diantara bentuk sistem directory tampak pada gambar 4 Gambar 4. Directory. (a) Atribut pada directory entry. (b) Atribut di tempat lain. Ketika file diOpen, sistem operasi mencari directorynya sampai ditemukan nama file ybs, kemudian mengekstrak atribut dan alamat disk langsung dari daftar directory atau dari struktur data yang menunjukkannya, lalu meletakkan kedalam tabel didalam memory kerja. Bentuk disain sistem file tampak pada gambar 5. Gambar 5. Tiga disain sistem file. (a) Satu directory dipakai bersama oleh semua user. (b) Satu directory per user. (c) Sembarang tree per user. Huruf-huruf menyatakan pemilik directory atau file. SEKOLAH TINGGI MANAJEMEN INFORMATIKA DAN KOMPUTER BUDIDARMA 55 Sistem Operasi Komputer 2.2 Nama Path Penamaan Path ada dua cara : a. Absolute Path Name : mengandung path dari directory root sampai file. Selalu dimulai dari Root dan bersifat Unik. Di UNIX, directory dipisah dengan tanda /, DOS dengan \. Jika karakter pertama dari nama path dimulai dengan tanda tsb, maka path termasuk jenis absolut ini. Contoh : /usr/ast/mailbox root directory mengandung subdirectory usr, dimana didalamnya ada subdirectory ast, dimana didalamnya lagi ada subdirectory mailbox. b. Relative Path Name : Untuk seluruh kasus path yang tidak dimulai dari root, diambil secara relatif ke directory kerja (working directory/current directory). Contoh : Directory kerja /usr/ast, file yang mempunyai path absolut /usr/ast/mailbox dapat diwakili dengan mailbox saja. Seperti perintah : cp /usr/ast/mailbox /usr/ast/mailbox.bak dan cp mailbox mailbox.bak adalah perintah UNIX yang menghasilkan efek yang sama. Kebanyakan sistem operasi mempunyai dua directory khusus, "." dan "..", dot dan dotdot. Dot menunjukkan directory saat itu dan Dotdot menunjukkan parent directory. Contoh gambar 6 Gambar 6. UNIX directory tree Directory kerja /usr/ast, copy file /usr/lib/dictionary ke directorynya sendiri dengan : SEKOLAH TINGGI MANAJEMEN INFORMATIKA DAN KOMPUTER BUDIDARMA 56 Sistem Operasi Komputer cp ../lib/dictionary . 2.3 Operasi Directory Beberapa operasi directory : a. Create, membuat directory yang kosong kecuali dot dan dotdot yang otomatis dimasukkan oleh sistem. b. Delete, menghapus directory, Hanya directory yang kosong yang dapat dihapus. c. OpenDir, Mendaftar seluruh file yang ada di directory ybs. d. CloseDir, Setelah selesai membaca directory, maka harus ditutup untuk memperbesar ruang tabel internal. e. ReadDir, Menghasilkan daftar directory pada directory yang sedang dibuka. f. Rename, Mengubah nama directory. g. Link, Cara agar file dapat muncul dibeberapa lokasi directory. h. UnLink, Menghilangkan Link. 3. IMPLEMENTASI SISTEM FILE Menjelaskan cara file dan directory disimpan, ruang disk diatur dan membuat segalanya efisien dan reliable. 3.1 Mengimplementasikan File Kunci masalah implementasi penyimpanan file adalah selalu mengetahui perubahan blok disk akibat ada tidaknya file. a. Contiguous Allocation Ini merupakan alokasi paling sederhana dengan menyimpan setiap file kedalam blok data yang berurutan didalam disk. Kelebihannya : - Mudah implementasinya, karena untuk mengetahui letak blok file hanya cukup mengingat satu nomor, blok yang pertama saja. - Kinerjanya sangat bagus, karena seluruh file dapat dibaca dari disk dalam satu operasi saja. Kekurangannya : - Tidak bisa dialokasikan jika ukuran maksimum file tidak diketahui. - Mudah terjadi fragmentasi, sisa blok yang tidak digunakan. b. Linked List Allocation Menyimpan file dalam skema Linked List, seperti tampak pada gambar 7. Gambar 7. Menyimpan file sebagai linked list dari blok-blok disk. Kelebihannya : - Seluruh blok dapat dipakai, tidak terjadi fragmentasi. Kekurangannya : SEKOLAH TINGGI MANAJEMEN INFORMATIKA DAN KOMPUTER BUDIDARMA 57 Sistem Operasi Komputer - Pengaksesan file secara acak akan lambat. Kebutuhan ukuran blok data meningkat karena pointer juga memerlukan beberapa byte. c. Linked List Allocation menggunakan Indeks Caranya sama seperti point b tetapi menambahkan tabel berindeks kedalam memory, seperti pada gambar 8 berikut. Gambar 8. Alokasi linked list dengan menggunakan tabel di main memory. File A menggunakan blok 4,7,2,10 dan 12. Sedangkan file B menggunakan 6,3,11 dan 14. DOS menggunakan metode alokasi ini. Kelebihannya : - Pengaksesan file secara acak akan lebih cepat. Kekurangannya : - Seluruh tabel harus selalu ada didalam memory, sehingga mengurangi kapasitas memory. d. I-node alokasi file dengan menerapkan tabel yang berukuran kecil yang disebut i-node (indexnode) yang mendaftar atribut dan alamat disk dari blok file. Tampak pada gambar 9. SEKOLAH TINGGI MANAJEMEN INFORMATIKA DAN KOMPUTER BUDIDARMA 58 Sistem Operasi Komputer Gambar 9. I-node. Untuk file-file yang berukuran besar, dipetakan ke blok yang disebut Single Indirect Block (SIB) yang mengandung alamat disk tambahan. Jika masih tidak cukup maka alamat lain dipetakan ke Double Indirect Block (DIB) yang mengandung alamat blok yang mendaftar SIB. Setiap SIB menunjuk ke beberapa ratus blok data. Jika ternyata masih kurang lagi, Triple Indirect Block (TIB) bisa digunakan. - UNIX menggunakan metode alokasi ini. - WINDOWS ??? - OS/2 ??? 3.2 Mengimplementasikan Directory a. Directory pada sistem CP/M Sistem ini hanya memiliki satu directory saja, sehingga semua file harus dicari dan dilihat dari directory ini. Tampak pada gambar 10. Gambar 10. Directory yang berisi nomer blok disk untuk setiap file. - User code digunakan untuk mengetahui nama pemilik file ybs. Extent akan diperlukan bila ukuran file lebih besar dari 16 blok, sehingga memerlukan beberapa directory. Extent berisi nomor urut. SEKOLAH TINGGI MANAJEMEN INFORMATIKA DAN KOMPUTER BUDIDARMA 59 Sistem Operasi Komputer - Block Count menunjukkan jumlah blok yang digunakan dari 16 blok yang disediakan. - 16 bit terakhir berisi nomor blok disk. b. Directory pada DOS Sistem DOS menggunakan directory seperti tampak pada gambar 11. Gambar 11. Entry directory MS-DOS. Panjangnya 32 bit yang terdiri dari nama, atribut, jam, tanggal, first block number (FBN) dan ukuran. FBN digunakan sebagai indeks tabel seperti pada gambar 11. c. Directory pada UNIX Sistem UNIX menggunakan struktur directory seperti tampak pada gambar 12. Gambar 12. Entry directory UNIX. Informasi tentang jenis, ukuran, waktu, kepemilikan, dan blok disk disimpan didalam inode. Contohnya : Cara sistem mencari file jika diberikan path /usr/ast/mbox Gambar 13. Langkah-langkah pencarian /usr/ast/ast/mbox. dengan urutan : - sistem meletakkan posisinya pada root. SEKOLAH TINGGI MANAJEMEN INFORMATIKA DAN KOMPUTER BUDIDARMA 60 Sistem Operasi Komputer - Permasalahan pada Symbolic Linking diperlukannya overhead. File yang mengandung path harus dibaca, path harus diparse dan diikuti setiap komponen per komponen, sampai i-node dicapai. Sehingga symbolic link memerlukan i-node tambahan. - Symbolic Linking menjadikan file memiliki lebih dari satu path. Operasi copy juga akan melaksanakan lebih dari satu kali. Kelebihannya : - dapat digunakan untuk menghubungkan file-file diseluruh mesin di dunia ini. 3.4 Pengaturan Ruang Disk Dua cara umum menyimpan file n byte : 1. Mengalokasikan ruang disk sebanyak n byte secara berurutan. 2. Memisah file menjadi sejumlah blok yang tidak harus berkesinambungan. Ukuran Blok Ukuran blok berhubungan erat dengan kecepatan pembacaan/penyimpanan file dan pemakaian ruang disk. Contoh : Gambar 16. Kurva yg solid (skala kiri) menggambarkan data rate disk. Garis terputus (skala kanan) menyatakan efisiensi ruang disk. Semua file berukuran 1K. Cara mengetahui Blok yang Bebas Dua cara yang banyak digunakan adalah tampak pada gambar 17. SEKOLAH TINGGI MANAJEMEN INFORMATIKA DAN KOMPUTER BUDIDARMA 61 Sistem Operasi Komputer Gambar 17. (a) Daftar blok bebas pada linked list. (b) Bit Map. a. Menggunakan Linked List, setiap blok menahan/memegang sejumlah blok bebas yang cocok dengannya. b. Bit Map. Blok bebas dinyatakan dengan 1, sedangkan blok yang telah dialokasi data dinyatakan dengan 0. Kuota Disk Tujuan : mencegah user agar tidak menggunakan ruang disk terlalu banyak, melampaui batas. Proses jalannya kuota ditampilkan pada gambar 18. Gambar 18. Kuota dicatat per user pada tabel kuota. Terdapat dua tabel yang terletak didalam memory. - Tabel pertama mendaftar atribut dan alamat disk file yang dibuka. Setiap perubahan ukuran file akan dikenakan pada kuota user yang menggunakannya. - Tabel kedua berisi record kuota untuk setiap user dengan file yang sedang dibuka. SEKOLAH TINGGI MANAJEMEN INFORMATIKA DAN KOMPUTER BUDIDARMA 62 Sistem Operasi Komputer Ketika user log in, sistem operasi akan mengecek kuota file yang digunakannya, apakah melampaui batas jumlah file atau jumlah blok disk. 3.5 Reliabilitas Sistem File Jika terjadi masalah terhadap sistem file, baik akibat bencana atau rusaknya software dan hardware komputer, maka diperlukan cara penaggulangannya. a. Pengaturan Blok Rusak (Bad Block) - Cara Hardware, menyiapkan blok cadangan. Bila sistem menemukan blok yang rusak, data akan dipetakan kelokasi blok cadangan. - Cara Software, menghapus blok yang rusak sehingga dianggap tidak ada. Pembacaan dan penyimpanan file ke blok rusak tidak akan terjadi, karena dianggap tidak ada blok tsb. b. Backup - Untuk ukuran kecil, floppy, dilakukan dengan copy. - Untuk ukuran besar, akan memerlukan waktu, sehingga perlu strategi seperti pada gambar 19. Gambar 19. Mem-backup setiap drive pada drive yang lainnya menyia-nyiakan setengah media penyimpanan. - melakukan incremental dumping setiap waktu. - DOS menerapkan sebuah atribut yang disebut Archive Bit. Jika sistem file ybs dibackup, maka archive bit dihapus (clear), tetapi bila file sedang diubah, archive bit diset secara otomatis. c. Konsistensi Sistem File Jika sistem crash dan seluruh file yang diedit belum sempat disimpan, maka sistem file berada dalam kondisi tidak konsisten. Solusinya : - Sistem komputer melengkapi program utility untuk mengecek konsistensi sistem file ketika diboot, terutama setelah terjadinya crash. Metode pengecekan konsistensi ini : - Block, Program membuat dua counter untuk setiap blok : - counter pertama mencatat berapa kali blok berada didalam file - counter kedua merekam seberapa sering blok berada di daftar yang bebas (free list table). - Cara ini tampak pada gambar 20. SEKOLAH TINGGI MANAJEMEN INFORMATIKA DAN KOMPUTER BUDIDARMA 63 Sistem Operasi Komputer Gambar 20. Status sistem file. (a) Konsisten. (b) Missing block. (c) Duplikasi blok pada daftar bebas. (d) Duplikasi blok data. a. b. c. d. Bentuk konsisten Blok 2 tidak muncul pada kedua tabel, dinamakan Missing Block. Block 4 muncul dua kali didalam daftar blok bebas (free list). Blok data yang sama muncul dalam dua atau lebih file, pada blok 5. 3.6 Kinerja Sistem File Pengaksesan ke disk jauh lebih lambat dibanding ke memory. Cara menanggulangi dengan menerapkan metode Block Cache atau Buffer Cache. Cara ini tidak dimaksudkan untuk menjaga data menetap lama didalamnya sebelum disimpan ke disk. Contoh : Ingin menulis skripsi, akan lebih cepat diakses bila diletakkan di buffer, tetapi ukuran bukunya sangat besar. Jika crash, semua yang diketik belum sempat disimpan.... ?? :(( Solusi : - System Call SYNC, diterapkan oleh UNIX. Sistem menjalankan UPDATE (menyimpan blok yang diubah kedalam disk) setiap 30 detik dengan proses background. Tidak cocok bila data disimpan di disket, apalagi berganti-ganti disket. Memang UNIX semula dirancang menggunakan media disk. - Write-Through Cache, diterapkan oleh DOS, menyimpan blok kedalam disk segera setelah ada perubahan. Cukup fleksibel menggunakan disket. - Meletakkan blok pada posisi yang berdekatan ketika diakses, sehingga mempercepat pembacaan. SEKOLAH TINGGI MANAJEMEN INFORMATIKA DAN KOMPUTER BUDIDARMA 64 Sistem Operasi Komputer Gambar 21. a. i-node diletakkan diawal disk, rata-rata jarak antara i-node dengan bloknya sekitar setengah jumlah cylinder, yang memerlukan pencarian yang lama. b. i-node diletakkan ditengah disk, akan mengurangi rata-rata pencarian antara inode dengan bloknya setengah kali. Cara lain, membagi disk kedalam kelompok cylinder, setiap kelompok mempunyai inode, blok dan daftar bebas sendiri. 4. PENGAMANAN 4.1 Seputar Pengamanan (security) Istilah "security" dan "protection" Security ditujukan untuk keseluruhan masalah sedangkan Protection merupakan mekanisme tertentu dari sistem operasi yang digunakan untuk menjaga informasi didalam komputer. Beberapa hal yang menyebabkan data hilang : 1. Bencana alam 2. Kesalahan Hardware atau Software 3. Kesalahan Manusia dalam menggunakan data. Ketiga hal diatas biasanya dapat diatasi dengan Backup. Masalah penting lainnya yaitu INTRUDER, dibagi dua : 1. Intruder Pasif, hanya melihat file yang sebenarnya bukan haknya. 2. Intruder Aktif, tidak sekedar membaca, tetapi juga merubah (merusak) data. Jenis perilaku intruder : 1. Iseng-iseng/coba sambil lalu saja. Biasa terjadi pada data yang bisa diakses semua user. 2. Snooping dari dalam. Seseorang yang masuk kedalam sistem jaringan komputer berusaha menembus pengamanan. 3. Berusaha cari keuntungan. Programer bank mencoba untuk mencuri uang. 4. Spionase/Militer. Biasanya berhubungan dengan politik. SEKOLAH TINGGI MANAJEMEN INFORMATIKA DAN KOMPUTER BUDIDARMA 65 Sistem Operasi Komputer Aspek lain dalam pengamanan adalah PRIVACY : menjaga seseorang dari penyalahgunaan data miliknya. 4.2 Beberapa Pengamanan Terkenal Yang Gagal/Rusak Cara masuk ke UNIX tanpa melalui sistem pengamanannya dengan menghubungkan sebuah file yang disebut core di directory kerja menuju file password. User dapat mengubah file password. Contoh pengamanan jelek yang tidak begitu kelihatan : mkdir foo Untuk sistem yang lambat, kadang-kadang user dapat dengan cepat menghapus i-node directory dan membuat link ke file password menggunakan nama foo setelah MKNOD dan sebelum CHOWN. Setelah CHOWN dijalankan sistem, maka mkdir tsb menjadikan user sebagai owner (pemilik) file password. Cara mencuri file orang lain. Mencari source code editor yang banyak digunakan orang lain, lalu dimodifikasi. Hasil modifikasi diletakkan di directory yang banyak orang akan mengaksesnya, seperti /bin. Perubahan proses editor dapat digunakan untuk mencari halhal yang diinginkan. Ide merubah program untuk melakukan hal yang tidak berkenan dan merugikan orang lain dikenal sebagai Serangan Kuda Troya (Trojan Horse Attack). 4.3 Internet Worm Tanggal 2 Nopember 1988, Cornell meluncurkan program worm ke internet. Akibatnya ribuan komputer mati, baik di universitas, perusahaan, laboratorium di seluruh dunia sebelum program worm tsb dapat diketahui dan dihilangkan. Secara teknis, program worm mengandung dua program : Bootstrap dan Worm, yang terdiri dari 99 baris bahasa c, yaitu ll.c. Program ini dicompile dan dijalankan oleh sistem yang diserang. Ketika berjalan, program ini dihubungkan ke mesin dari mesin datangnya program ini, mengupload worm utama dan menjalankannya. Kemudian worm melihat tabel routing untuk mencari mesin-mesin lain yang terhubung pada mesin tersebut, kemudian menyebarkannya dan membootstrap mesin-mesin itu. Ada tiga cara dalam menginfeksi mesin lain : a. Mencoba menjalankan remote shell dengan perintah rsh. Jika berhasil remote shell akan mengupload program worm dan melanjutkan untuk mencari mesin yang lain. b. Menggunakan program yang ada di sistem BSD yang dikenal dengan finger, setiap orang di dunia bisa menjalankan : finger [nama@lokasi] untuk menampilkan informasi tentang seseorang ybs. Setiap sistem BSD akan selalu menjalankan (background process) yaitu finger daemon yang menjawab query dari seluruh hubungan internet didunia. Program Worm memanggil finger dengan 536 byte string sebagai parameter. String yang panjang ini menjadikan buffer daemon overflow dan menimpa isi stacknya. Karena overflow ini, daemon mengecek dan ketika ingin kembali ke procedure utamanya, diberi request supaya belok ke procedure 536 byte yang ada didalam stack. Procedure ini mencoba untuk menjalankan /bin/sh. Jika berhasil, mesin tsb telah terjangkit worm. SEKOLAH TINGGI MANAJEMEN INFORMATIKA DAN KOMPUTER BUDIDARMA 66 Sistem Operasi Komputer c. Didalam sendmail ada bug, yang mengijinkan worm untuk mengirimkan mail berisi copy bootstrap dan menjalankannya. 4.4 Serangan Pengamanan Umum Ketika merancang sistem, harus dapat mengantisipasi bentuk serangan sbb : 1. Permintaan page memory, ruang disk atau tape dan sekedar membaca isinya. Banyak sistem yang tidak menghapus dulu lokasi yang akan digunakan, kadang-kadang masih berisi informasi yang dipakai oleh proses sebelumnya. 2. Mencoba System Call yang tidak benar atau System Call yang benar tetapi dengan parameter yang salah. 3. Mencoba Login tetapi segera setelah itu menekan tombol yang dapat menghentikan proses, seperti DEL, RUBOUT atau BREAK supaya tidak menjalankan rutin password. 4. Mencoba merubah struktur sistem operasi dan menyimpan di ruang disk user. 5. Spoof user lain dengan membuat tulisan "login :" di layar. 6. Mencari informasi yang tidak boleh dilakukan pada manual book, lalu mencobanya dengan berbagai variasi. 7. Trapdoor, meyakinkan programer untuk melewati pengecekan login/password untuk setiap user menggunakan nama loginnya. 8. Menggunakan kelemahan sifat manusia yang memegang kendali sistem administrasi, seperti sekretaris SysAdm. Virus Virus adalah suatu penggalan program yang menempel program sebenarnya dengan maksud menjangkitkan dirinya ke program lain. 4.5 Prinsip-Prinsip Disain Pengamanan Prinsip-prinsip umum yang digunakan untuk merancang sistem pengamanan adalah : 1. Disain sistem harus bersifat public 2. Nilai default harus tidak boleh diakses. 3. Mengecek otoritas saat itu (current authority). 4. Memberikan setiap proses kemampuan akses sesedikit mungkin. 5. Mekanisme proteksi harus sederhana, uniform dan built in ke lapisan terbawah dari sistem. 6. Skema pengamanan harus dapat diterima secara psikologis. 4.6 User Authentication Masalah yang berhubungan dengan identifikasi user ketika login disebut user authentication. Ini mencakup sesuatu yang diketahui, yang dimiliki dan yang digunakan oleh user. Password Bentuk autentikasi yang paling banyak digunakan adalah PASSWORD. Ketika digunakan, password dalam bentuk terenkripsi. Autentikasi password mudah untuk dipecahkan. Buktinya : Morris dan thompson (1979) meneliti password pada sistem UNIX, dengan mengcompile daftar mirip password : nama depan, nama belakang, nama jalan, nama kota, kata dari kamus, nomor plat mobil dan string pendek dari huruf acak. SEKOLAH TINGGI MANAJEMEN INFORMATIKA DAN KOMPUTER BUDIDARMA 67 Sistem Operasi Komputer Kemudian mengenkripsi menggunakan algoritma enkripsi password dan mengecek apakah ada password yang terenkripsi sama dengan daftar yang dibuatnya. Hasilnya menunjukkan bahwa lebih dari 86 % password cocok dengan daftarnya. Cara sistem menanggulangi password yang mudah dipecahkan dengan : - Memberikan peringatan ketika pembuatan password berlangsung, seperti peringatan ketika nama dan passwordnya bernilai sama. - Kadangkala sistem operasi mengharuskan untuk mengganti password dalam jangka waktu tertentu. - Tidak menampakkan tulisan aslinya ketika proses pemasukan password. - Tidak menyimpan password asli, tetapi dalam bentuk terenkripsi. - Menerapkan suatu pertanyaan dan menyimpan pertanyaan dan jawabannya, sementara passwordnya hanya diingat oleh user. - Challenge-response, menerapkan algoritma tertentu. Contohnya penggunaan "pangkat2". Komputer bertanya kepada user ketika login. Argumen komputer 7, maka user user bisa masuk kedalam sistem jika menjawab 49. Algoritma dapat diatur berubah setiap pagi, siang, malam atau beda hari atau beda minggu atau beda mesin dll. Identifikasi Fisik Ada beberapa contoh : - Cara fisik berupa kartu plastik dengan pita magnetik. Bentuk fisik ini dapat digabung bersama password sehingga user berhasil login jika mempunyai kartu dan mengetahui password. - Fingerprint (sidik jari) atau voiceprint (sidik suara) dengan metode direct visual recognition. - Signature Analysis. User membuat tanda tangan dengan pen pada terminal komputer. - Analisis Panjang jari. User memasukkan tangan kedalam alat lalu panjang jari dibaca serta dicocokkan dengan database didalam sistem. - Untuk kasus pengamanan yang extra ketat : - Ada tulisan "Untuk masuk, silakan berikan contoh anda disini", user diwajibkan memberikan urine lalu dicek dengan metode urinalysis. - Spectrographic analysis, dengan cara user menekan jarinya diatas benda tajam, agar diperoleh darahnya. Kemudian darahnya dianalisis, sesuai dengan data atau tidak. 5. MEKANISME PROTEKSI 5.1 Domain Proteksi Sistem komputer mengandung berbagai object yang perlu diproteksi. Object ini dapat berupa hardware, dan software. Domain adalah himpunan pasangan dari (object,right). Sedangkan Right dalam hal ini adalah kemampuan untuk membentuk suatu operasi. SEKOLAH TINGGI MANAJEMEN INFORMATIKA DAN KOMPUTER BUDIDARMA 68 Sistem Operasi Komputer Misalkan, ada 3 Domain dengan jenis Right [Read,Write,eXecute]. Printer1 berada pada dua domain dengan satu jenis right, tapi sebenarnya bisa juga berada didua domain dengan jenis right yang berbeda. Pada sistem UNIX, Domain suatu proses didefinisikan oleh UID dan GID. Dengan kombinasi UID dan GID, akan dapat membuat daftar seluruh object untuk diakses, baik Read, Write maupun eXecute. Setiap proses di UNIX memiliki dua bagian : bagian user dan bagian kernel. Ketika suatu proses mengerjakan sistem call, proses akan berpindah dari bagian user ke bagian kernel. Kernel dapat mengakses object yang berbeda dari object yang diakses oleh user. Bagaimana caranya sistem mengetahui object tertentu dimiliki oleh domain tertentu ? DOMAI N OBJECT 1 Rea d 2 File 1 File File 2 3 Rea d Writ e Rea d File4 File 5 Read Write Execu te Rea d Writ e 3 Gambar 22. Matriks proteksi. File6 Print er1 Plott er2 Write Read Write Write Write Exec ute Kemudian 3 domain sebagai object pada Tabel berikut. DOMA O B J E C T IN File File File 1 2 3 Rea 1 Rea d d Wri te 2 Rea File4 File 5 Read Rea Write d File6 Print er1 Write Plott er2 SEKOLAH TINGGI MANAJEMEN INFORMATIKA DAN KOMPUTER BUDIDARMA Domai Domai Domai n1 n2 n3 Enter 69 Sistem Operasi Komputer d Exec ute Wri te Read 3 Write Write Write Exec ute Gambar 23. Matriks proteksi.dengan domain sebagai object. Proses pada domain 1 bisa berpindah ke domain 2 tetapi jika telah pindah tidak dapat kembali ke domain semula. Cara ini sama dengan menjalankan SETUID di UNIX. 5.2 Daftar Kendali Akses Contoh pada gambar 4-30 akan memakan ruang disk. Cara mengatasinya dengan : Menyimpan berdasarkan Kolom. Cara ini mengandung apa yang menunjukkan setiap object daftar yang urut yang mengandung semua domain yang dapat mengakses object, dan caranya. Daftar ini disebut Access Control List (ACL). Sistem UNIX, menyediakan 3 bit, rwx, per file untuk pemilik (owner), grup pemilik (owner's group), dan lainnya (others). Skema ini berupa ACL tetapi dimampatkan menjadi 9 bit saja dan menggambarkan object yang menyatakan siapa yang dapat mengakses dan caranya bagaimana. Contoh : rwxr--r-- /usr/ast/mail 5.3 Kemampuan (Capability) Cara membagi berdasarkan Baris, dari gambar 23. Setiap proses yang ditunjuk merupakan suatu daftar object yang bisa diakses, selama bisa diakses berdasarkan operasi yang diperbolehkan didalam domainnya, Daftar ini disebut Capability List (C-List) dan setiap item didalamnya disebut Capability. Lihat Tabel berikut. 0 1 2 3 Type File File File Printer Rights R- RWX RW -W- Object Pointer to File3 Pointer to File4 Pointer to File5 Pointer to Printer1 Daftar Kemampuan (capability List) untuk domain 2 dari gambar 22. C-List harus dijaga dari user yang ingin merusaknya dengan metode : 1. Tagged Architecture, rancangan hardware dimana setiap word memory mempunyai bit tambahan (tag) yang memberitahukan bahwa word mengandung Capability atau tidak. 2. Menjaga C-List tetap berada didalam sistem operasi. SEKOLAH TINGGI MANAJEMEN INFORMATIKA DAN KOMPUTER BUDIDARMA 70 Sistem Operasi Komputer 3. Menempatkan C-List di ruang disk user, tetapi mengenkripsi setiap capability dengan kunci rahasia yang tidak diketahui oleh user. Capability biasanya mempunyai Generic Right yang dapat digunakan untuk semua object, contoh : - Copy capability : membuat capability baru untuk object sama. - Copy object : membuat duplikat object dengan capability baru. - Remove capability : menghapus masukan dari C-List, object tidak terpengaruh. - Destroy object : menghilangkan object dan capability secara permanen. Beberapa sistem capability diatur sebagai kumpulan modul, dengan Type Manager Module (TMM) untuk setiap jenis object. Kadang cara ini menimbulkan masalah karena TMM hanya sebuah program, pemiliknya dapat membentuk hanya beberapa operasi saja pada file dan tidak bisa mencapai representasi internal (misalnya i-node). Solusinya Hydra dengan teknik Right Amplification. TMM diberi kerangka right yang lebih kepada object daripada capability. Masalah lain pada sistem capability adalah sulitnya menghilangkan akses ke object. Solusinya dengan Skema uang digunakan didalam Amoeba. Setiap object mengandung angka acak yang panjang, yang juga ada di capability. Ketika capability digunakan, kedua angka tsb dibandingkan. Operasi boleh dijalankan bila kedua angkanya sama. 5.4 Model Proteksi Harrison membentuk 6 operasi primitif pada matriks proteksi, yaitu : Create Object, Delete Object, Create Domain, Delete Domain, Insert Right dan Remove Right. Keenam operasi tsb dikombinasikan kedalam Protection Command, yaitu perintahperintah proteksi dimana program user dapat menjalankannya untuk merubah matriks. Matriks menentukan apakah suatu proses didalam domain yang dapat melakukan sesuatu, bukan apakah suatu proses diberi kemampuan untuk melakukan sesuatu. Contoh sederhana pada tabel di bawah ini. Eric Henr y Robe rt Object Compile r Read Execute Read Execute Read Execute MailBox 7 Read Write Secret Read Write Eric Henry Robert Object Compile r Read Execute Read Execute Read Execute SEKOLAH TINGGI MANAJEMEN INFORMATIKA DAN KOMPUTER BUDIDARMA MailBox 7 Read Write R e a d Secret Read Write 71 Sistem Operasi Komputer (a) (b) a. Dimaksudkan untuk kebijakan proteksi. Henry bisa membaca dan menyimpan mailbox7, Robert bisa membaca dan menyimpan secret, ketiga user bisa membaca dan menjalankan compiler. Karena Robert sangat cerdas, dan bisa menemukan cara untuk menjalankan perintah sehingga matriks berubah jadi : b. Robert bisa juga mengakses mailbox7, yang sebenarnya dia tidak diberi hak. Jika Henry mencoba untuk membacanya (Read), sistem operasi akan menolak permintaan aksesnya karena sistem operasi tidak tahu bahwa kondisi matriks tsb tidak diautorisasi. 5.5 Covert Channel Model yang ada diatas ternyata sia-sia belaka. Buktinya ? Lampson (1973). Model Lampson mencakup 3 proses yang dapat diterapkan untuk sistem timesharing : Proses pertama adalah Client, yang menginginkan proses kedua (yaitu Server) untuk membentuk suatu pekerjaan. Client dan Server tidak saling percaya. Proses ketiga yaitu Collaborator, yang bekerja sama dengan server untuk mencuri data rahasia Client. Biasanya Server dan Collaborator dimiliki oleh orang yang sama. Tujuan yang ingin dicapai adalah "Tidak Mungkin" Server bisa membocorkan informasi Collaborator yang secara sah diterima dari Client. Lampson menyebut hal ini sebagai Confinement Problem. Dengan matriks proteksi, dapat dijamin bahwa Server tidak bisa berkomunikasi dengan Collaborator dengan cara menulis kedalam suatu file dimana Collaborator mempunyai hak akses read. Juga bisa dijamin bahwa Server tidak bisa berkomunikasi dengan Collaborator menggunakan mekanisme komunikasi antar proses. Sayangnya, channel komunikasi yang tersamar bisa ada, seperti Server bisa berkomunikasi dengan deretan bit biner. Untuk mengirimkan bit 1, Server melakukan perhitungan (menyibukkan diri) selama selang waktu tertentu. Untuk mengirimkan bit 0, Server tidak melakukan apa-apa (sleep) dalam selang waktu yang sama. Collaborator bisa mendeteksi aliran bit tsb dengan memonitor respon waktunya. Channel komunikasi ini dikenal sebagai Covert Channel. Covert Channel merupakan channel yang penuh dengan noise, mengandung banyak informasi tambahan, tetapi informasi sebenarnya dapat diperoleh dengan menggunakan Error Correction Code (seperti Hamming Code). BAB VI INPUT / OUTPUT 1. Prinsip Perangkat Keras I/O Batasan : bagaimana hardware tersebut di program Manajemen perangkat I/O mempunyai beragam fungsi, diantaranya : - mengirimkan perintah ke perangkat I/O agar menyediakan layanan - menangani interupsi perangkat I/O - menangani kesalahan pada perangkat I/O SEKOLAH TINGGI MANAJEMEN INFORMATIKA DAN KOMPUTER BUDIDARMA 72 Sistem Operasi Komputer - menyediakan interface ke pemakai 1.1. I/O Device Perangkat I/O dapat dibedakan berdasarkan : 1. Sifat aliran data Berdasarkan aliran data dibedakan menjadi : a. Perangkat berorientasi blok (block-oriented devices) Menyimpan informasi dan menukarkan (menerima / mengirim) informasi sebagai blok-blok berukuran tetap. Tiap blok mempunyai alamat tersendiri. Ukuran blok dapat beragam antara 128 s/d 1024 byte. Ciri utamanya adalah : dimungkinkan membaca / menulis blok-blok secara independent, yaitu dapat membaca atau menulis sembarang blok tanpa harus melewati blok-blok lain. Contohnya : disk, tape, CD ROM, Optical disk b. Perangkat berorientasi karakter (character-oriented devices) Mengirim atau menerima karakter dan tanpa peduli membentuk suatu struktur blok, not addresable dan tidak mempunyai operasi seek. Contohnya : terminals, line printer, punch card, network interfaces, pita kertas, mouse Klasifikasi diatas tidak mutlak, karena ada beberapa perangkat yang tidak termasuk kategori diatas, misalnya : - clock yang tidak teramati secara blok dan juga tidak menghasilkan / menerima aliran karakter. Clock menyebabkan interupsi pada interval-interval yang didefinisikan. - Memory mapped screen, - sensor 2. Sasaran komunikasi Berdasarkan sasaran komunikasi dibedakan menjadi : a. Perangkat yang terbaca oleh manusia (human readable device) Perangkat yang cocok untuk komunikasi dengan manusia. Contohnya : VDT (Video Display Terminal) terdiri dari monitor, keyboard (+mouse) b. Perangkat yang terbaca oleh mesin (machine readable device) Perangkat yang cocok untuk komunikasi dengan perangkat elektronik. Contohnya : disk, tape, sensor, controller, aktuator c. Untuk komunikasi Perangkat yang cocok untuk komunikasi dengan perangkat jarak jauh. Contohnya : modem 1.2. Device Controller Unit I/O berupa : a. Komponen elektronik Device controller / adapter adalah untuk mengaktifkan perangkat eksternal dan memberitahukan yang perlu dilakukan oleh perangkat / driver. SEKOLAH TINGGI MANAJEMEN INFORMATIKA DAN KOMPUTER BUDIDARMA 73 Sistem Operasi Komputer Contoh : unit tape megnetik diinstruksikan untuk kembali ke posisi awal, bergerak ke record berikutnya dan sebagainya. Disk Driver Printe r Disk Controll er Printer Controll er Controller Device Interface CP U Memor y …….. Other Controll er System Bus Model untuk mengkoneksi / menghubungkan CPU, Memory, Controller dan Device I/O b. Komponen mekanik Contohnya : head, motor stepper, printer 1.3. Direct Memory Access (DMA) DMA berfungsi membebaskan pemroses menunggui transfer data yang dilakukan I/O device. Saat pemroses ingin membaca atau menulis data, pemroses memerintahkan DMA Controller dengan mengirimkan informasi berikut : - perintah penulisan / pembacaan - alamat I/O device - awal lokasi memori yang ditulis / dibaca - jumlah word / byte yang ditulis / dibaca setelah mengirimkan informasi itu ke DMA Controller, pemroses dapat melanjutkan kerja lain. Pemroses mendelegasikan operasi I/O ke DMA. DMA mentransfer seluruh data yang diminta ke / dari memori secara langsung tanpa melewati pemroses. Ketika transfer data selesai, DMA mengirimkan sinyal interupsi ke pemroses. Pemroses hanya dilibatkan pada awal dan akhir transfer data. Operasi transfer antara perangkat dan memori utama dilakukan sepenuhnya oleh DMA, lepas dari pemroses dan hanya melakukan interupsi bila operasi telah selesai. Keuntungan DMA : - peningkatan kinerja prosesor atau I/O - meminimasikan over head SEKOLAH TINGGI MANAJEMEN INFORMATIKA DAN KOMPUTER BUDIDARMA 74 Sistem Operasi Komputer memor y CPU drive Disk controll er buffer DMA Register / memory cou address nt cou nt Tranfer DMA seluruhnya dilakukan oleh controller Pada waktu data di tranfer dari controller ke memori, sektor berikut akan lewat dibawah head dan bits sampai ke controller. Controller sederhana tidak dapat melakukan I/O dalam waktu yang bersamaan, maka dilakukan interleaving (skip blok), memberi waktu untuk tranfer data ke memori. Interleaving ini terjadi pada disk bukan pada memori, seperti terlihat pada gambar di bawah ini. 7 0 7 5 0 0 6 1 3 4 2 3 5 2 6 1 7 6 4 3 No Interleaving 2 5 Single Interleaving 4 1 Double Interleaving 2. Prinsip Software I/O Ide Dasar : mengorganisasikan software dalam beberapa layer dimana level bawah menyembunyikan akses / kepelikan hardware untuk level diatasnya. Level atas membuat interface yang baik ke user. Tujuan Software I/O a. Konsep dalam desain software I/O Device independence / tidak bergantung pada device yang digunakan b. Penamaan yang seragam / Uniform Naming Penamaan file berkas atau perangkat adalah string atau integer dan harus sederhana, tidak bergantung pada device Contoh : seluruh disks dapat dibuat dengan hirarki sistem file (menggunakan NPS) c. Penanganan kesalahan / Error Handling Error harus ditangani sedekat mungkin dengan hardware Contoh : pertama controller, device driver, dst. Dan jika tidak bisa ditangani beri pesan SEKOLAH TINGGI MANAJEMEN INFORMATIKA DAN KOMPUTER BUDIDARMA 75 Sistem Operasi Komputer d. Synchronous (blocking) vs Asynchronous (Interrupt Driver) transfer Kebanyakan I/O adalah asinkron. Pemroses mulai transfer dan mengabaikan untuk melakukan kerja lain sampai interupsi tiba. Program pemakai sangat lebih mudah ditulis jika operasi I/O berorientasi blok. Setelah perintah read, pemrogram kemudian ditunda secara otomatis sampai data tersedia di buffer. Terserah sistem operasi untuk menangani operasi yang sesungguhnya interrupt driver. e. Sharable vs Dedicated Device Beberapa perangkat dapat dipakai bersama seperti disk, tapi ada juga perangkat yang hanya satu pemakai yang dibolehkan memakai pada satu saat. Misal : disk untuk sharable dan printer untuk dedicated Tujuan diatas dapat dicapai dengan memisahkan software I/O menjadi 4 layers, yaitu : 1. Interrupt Handler Interrupt harus disembunyikan agar tidak terlihat rutin berikutnya. Device driver di blok saat perintah I/O diberikan dan menunggu interupsi. Ketika interupsi terjadi, prosedur penanganan interupsi bekerja agar device driver keluar dari state blocked. 2. Device Drivers Seluruh kode device dependent terletak di device driver. Tiap device driver menangani satu tipe / satu kelas device. Tugas dari device driver untuk menerima permintaan abstrak dari software device independent diatasnya dan melakukan layanan sesuai permintaan / mengeksekusinya. Device Drivers Device Controller (Registernya) Device 3. Device Independent Operating System Software I/O device-independent adalah : software I/O yang tak bergantung pada perangkat keras. Fungsi dasar dari software device-independent : - membentuk fungsi I/O yang berlaku untuk semua device - menyediakan interface uniform / seragam ke user level software Fungsi dari software I/O device-independent yang biasa dilakukan : a. Interface seragam untuk seluruh device-driver b. Penamaan device c. Proteksi device d. Memberi ukuran blok device agar bersifat device-independent e. Melakukan Buffering f. Alokasi penyimpanan pada blok devices g. Alokasi dan pelepasan dedicated devices h. Pelaporan kesalahan 4. User Space I/OSoftware Sebagian besar software I/O berada di dalam sistem operasi yang di link dengan user program. System call termasuk I/O, biasanya dalam bentuk prosedur (library procedures). SEKOLAH TINGGI MANAJEMEN INFORMATIKA DAN KOMPUTER BUDIDARMA 76 Sistem Operasi Komputer Contoh : count = write(fd,buffer,nbytes) I/O prosedur dengan level lebih tinggi. Contoh : printf (memformat output terlebih dahulu kemudian panggil write) Yang tidak mempunyai library procedure, contohnya : spooling directory dan daemon (proses khusus) pada proses mencetak, transfer file, USENET Layer I/O User processes request Device-independent software Device-drivers Interrupt handler Hardware I/O reply I/O functions Make I/O call; format I/O; spooling Naming protection, blocking, buffering, allocation Setup device register, check status Wake up driver when I/O completed Perform I/O operation Lapisan sistem I/O dan fungsi utama dari tiap lapisan (layer) 3. Disk Tiga kelebihan disk dari main memory untuk penyimpanan : 1. kapasitas penyimpanan yang tersedia lebih besar 2. harga per-bit-nya lebih rendah 3. informasi tidak hilang meskipun power off 3.1. Perangkat Keras Disk Disk diorganisasikan menjadi silinder-silinder dengan tiap permukaan terdapat head yang ditumpuk secara vertikal. Track terbagi menjadi sektor-sektor. Platter s Read/Write Spindl Head e Struktur Disk Boo m SEKOLAH TINGGI MANAJEMEN INFORMATIKA DAN KOMPUTER BUDIDARMA 77 Sistem Operasi Komputer Tiga faktor yang mempengaruhi waktu read/write block disk : 1. seek time (waktu menggerakkan lengan ke silinder) 2. rotational delay (waktu sector berputar ke head) 3. transfer time yang sangat dominan adalah seek time, jadi performance dapat ditingkatkan dengan mengurangi waktu rata-rata seek Transfer rate Seek time Boom Mekanisme Disk Proses seek pada disk driver : seek ke lebih dari satu disk secara bersamaan, read/write bersama dengan seek, read/write dalam waktu yang bersamaan dari dua drive 3.2. Algoritma Penjadwalan Akses Lintas Disk Pada sistem multiprogramming, banyak proses yang melakukan permintaan read/write record disk. Proses membuat permintaan lebih cepat dibandingkan yang dapat dilayani disk, membentuk antrian permintaan layanan disk. Diperlukan penjadwalan disk agar memperoleh kerja optimal. Terdapat dua tipe penjadwalan disk, yaitu : 1. Penjadwalan untuk optimasi seek, karena waktu seek lebih tinggi satu orde dibandingkan waktu rotasi, maka kebanyakan algoritma penjadwalan berkonsentrasi meminimumkan seek kumpulan atau antrian permintaan layanan disk. 2. Penjadwalan untuk optimasi rotasi, penjadwalan disk melibatkan pemeriksaan terhadap permintaan yang belum dilayani untuk menentukan cara paling efisien melayani permintaan-perminataan, dan memeriksa hubungan posisi di antrian permintaan. Antrian disusun kembali sehingga permintaan akan dilayani dengan pergerakan mekanis minimum. Adapun beberapa metode yang digunakan : a. Algoritma Pertama Tiba Pertama Dilayani (PTPD) / First Come, First Served (FCFS) Algorithm Disk drive melayani satu permintaan pada sauatu saat dan melayaninya sesuai urutan kedatangannya. Permintaan yang duluan tiba, dilayani duluan. SEKOLAH TINGGI MANAJEMEN INFORMATIKA DAN KOMPUTER BUDIDARMA 78 Sistem Operasi Komputer Contoh : 40 silinder dengan urutan 11, 1, 36, 1, 16, 34, 9, 12 Initial position 0 X Tim e 5 Peding request X XX 1 0 1 X 5 2 0 2 5 3 X X Silinde r3 3 3 X X Silinde 3 r3 0 5 9 b. Algoritma Pungut / Pick Up Algorithm Initial position 0 X Tim e 5 X XX 1 0 1 5 X 2 0 2 5 SEKOLAH TINGGI MANAJEMEN INFORMATIKA DAN KOMPUTER BUDIDARMA 0 5 9 79 Sistem Operasi Komputer c. Algoritma Waktu Cari Terpendek Dipertamakan (WCTD) / Shortest Seek Time First (SSTF) Algorithm X 0 Tim e Initial position 5 X XX 1 0 1 X 5 2 2 3 Sequence of 0 seeks5 0 X X 3 3 Silinde r 5 9 d. Algoritma Lift Singkat / LOOK Algorithm Initial position X Tim 0e 5 X XX 1 0 1 5 X 2 0 2 5 SEKOLAH TINGGI MANAJEMEN INFORMATIKA DAN KOMPUTER BUDIDARMA 3 0 X X Silinde 3 r3 5 9 80 Sistem Operasi Komputer e. Agoritma Lift Singkat Searah / C-LOOK Algorithm Initial position X Tim 0e 5 X XX 1 0 1 5 X 2 0 2 5 SEKOLAH TINGGI MANAJEMEN INFORMATIKA DAN KOMPUTER BUDIDARMA 3 0 X X Silinde 3 r3 5 9 81 Sistem Operasi Komputer f. ritma Lift Lengkap / SCAN Algorithm Initial position X Tim 0e 5 X XX 1 0 1 X 5 2 0 2 5 3 X X Silinde 3 r3 3 X X Silinde r3 3 0 5 9 g. Algoritma Lift Lengkap Searah / C-Scan Algorithm Initial position X Tim 0e 5 X XX 1 0 1 5 X 2 0 2 5 SEKOLAH TINGGI MANAJEMEN INFORMATIKA DAN KOMPUTER BUDIDARMA 0 5 9 82 Sistem Operasi Komputer 3.3. I/O Error Handling / Penanganan Kesalahan I/O Error yang umum terjadi adalah : 1. Error pemrograman Kesalahan disebabkan pemrograman. Misalnya : request sektor yang tidak ada. Penanganannya : pembetulan program untuk komersial software, batalkan operasi dan berharap tidak akan terjadi lagi 2. Error checksum transient Kesalahan disebabkan adanya debu diantara head dengan permukaan disk. Penanganannya : lakukan operasi berulang-ulang dan menandai sector yang rusak. 3. Error checksum permanent Kesalahan disebabkan kerusakan disk. Misalnya harus dibuat daftar blok-blok buruk agar data tidak ditulisi di blok-blok buruk. 4. Error seek Kesalahan ini ditanggulangi dengan mengkalibrasi disk supaya berfungsi kembali. Misalnya lengan harusnya ke silinder 6 ternyata ke 7. Penanganannya : kalibrasi ulang. 5. Error controller Kesalahan ini ditanggulangi dengan menukar pengendali yang salah dengan pengendali yang baru. Misalnya controller menolak perintah akses. Penanganannya : reset. 6. Track at time caching Kontroller mempunyai memori untuk menyimpan informasi track dimana ia berada, permintaan pembacaan blok track tersebut dilakukan tanpa pergerakan mekanik. 3.4. RAM Disk RAM disk adalah disk driver yang disimulasikan pada memori akses acak (RAM). RAM disk sepenuhnya mengeliminasi waktu tunda yang disebabkan pergerakan mekanis dalam seek dan rotasi. RAM disk berguna untuk aplikasi yang memerlukan kinerja disk yang tinggi. SEKOLAH TINGGI MANAJEMEN INFORMATIKA DAN KOMPUTER BUDIDARMA 83 Sistem Operasi Komputer Devices block adalah media penyimpanan dengan 2 perintah : R (read) dan W (write). Normalnya blok-blok disimpan di disk berputar yang memerlukan mekanisme fisik. Idenya adalah meniru driver dengan mengalokasikan terlebih dahulu satu bagian memori utama untuk menyimpan blok-blok data. Keuntungannya : berkecepatan tinggi karena pengaksesan sesaat / instant, tidak ada waktu tunda seek dan waktu tunda rotasi. Sangat cocok untuk menyimpan program atau data yang sering diakses. User Programs RAM Disk blok 1 R & W of RAM blok 0 use this memory Main Memory (RAM) RAM Disk . . . Operatin g System 4. Terminal Semua komputer memerlukan terminal untuk komunikasi antar peralatan. 4.1. Terminal Hardware Terminal hardware terbagi atas 2 kategori dasar, yaitu : Termina ls RS-232 interface Hardco py Glass tty Intellige nt Memory Mapped interface Blit SEKOLAH TINGGI MANAJEMEN INFORMATIKA DAN KOMPUTER BUDIDARMA Charact er oriented Bit oriented 84 Sistem Operasi Komputer 1. terminal interface melalui RS-232 RS-232 menghubungkan keyboard, monitor menggunakan serial interface, 1 bit dalam 1 waktu, dan menggunakan 25 pin konektor, dimana 1 pin untuk transmisi data, 1 pin untuk receive data dan 1 pin untuk ground, 22 pin yang lain digunakan untuk fungsi control atau ada pin yang tidak digunakan. RS-232 dapat dikategorikan lagi menjadi : a. hardcopy / printer, dimana tipe karakter dari keyboard ditransmisikan ke komputer, dan kemudian di cetak di kertas / printer. b. Dumb CRT terminal / glass tty (teletype = terminal) c. Intelligent CRT terminals, terdiri dari CPU dan memory, dan untuk program yang kompek digunakan EPROM atau ROM. d. Blit, adalah terminal dengan powerful microprocessor 2. terminal memory-mapped adalah interface melalui video RAM / video controller yang digunakan untuk monitor. 4.2. Terminal Software Terminal Software terdiri dari : 1. Input Software 2. Output Software Studi kasus 1. manajemen I/O pada MS DOS MS DOS mendukung beragam perangkat serial, yang diidentifikasikan dengan nama file khusus, hanya tidak disimpan di suatu direktori tertentu, misalnya : a. con : perangkat konsol b. com1 : perangkat communication port 1 c. com2 : perangkat communication port 2 d. pm : perangkat printer e. lpt1 : perangkat line printer 1 f. lpt2 : perangkat line printer 2 g. aux : perangkat auxiliary contoh : copy a.txt con : tidak mengkopi file a.txt menjadi file con, tetapi menampilkan ke konsol copy a.txt prn : tidak mengkopi file a.txt menjadi file prn, tetapi mengalirkan isi file a.txt ke printer sehingga printer akan mencetaknya MS DOS memungkinkan pemakai memasang device driver sendiri setelah sistem di boot dengan penambahan pernyataan di file config.sys, misalnya ansi.sys, display.sys, mouse.sys, printer.sys, dll. UNIX mengharuskan device driver dikompilasi ke kernel. SEKOLAH TINGGI MANAJEMEN INFORMATIKA DAN KOMPUTER BUDIDARMA 85 Sistem Operasi Komputer BAB VII DEADLOCK Resource (Sumber Daya) Ada 2 tipe resource, yaitu : 1. Preemptable resource Resoource yang dapat dibersihkan dari proses yang menggunakannya tanpa efek yang buruk. Mudah diatasi dengan cara realokasi resource dari satu proses ke yang lainnya. 2. Nonpreemptable resource Resoource yang tidak dapat dibersihkan dari proses yang menggunakannya tanpa menyebabkan komputer fail. Proses disebut deadlock, jika proses menunggu suatu kejadian tertentu yang tak akan pernah terjadi atau kondisi dimana 2 proses atau lebih tidak dapat meneruskan eksekusinya. Sekumpulan proses berkondisi deadlock, jika setiap proses yang ada dikumpulan itu menunggu sesuatu kejadian yang hanya dapat dilakukan proses lain yang juga berada di kumpulan itu. Proses menunggu kejadian yang tak akan pernah terjadi. Contoh : P0 Wait(S) Wait(Q) . . . Signal(S) Signal(Q) P1 Wait(Q) Wait(S) . . . Signal(Q) Signal(S) Pada langkah pertama, kedua proses masih berjalan dengan baik. Pada langkah kedua, proses P0 meminta Q yang ternyata masih dibawa oleh P1 dan baru akan dilepas setelah signal(Q), demikian pula P1 meminta S yang masih dibawa oleh P0 dan baru akan dilepas setelah signal(S). Sehingga kondisi ini akan menimbulkan deadlock. Deadlock terjadi ketika proses-proses mengakses secara ekslusif sumber daya. Semua deadlock yang terjadi melibatkan persaingan memperoleh sumber daya ekslusif oleh dua proses atau lebih. Adanya deadlock akan mengakibatkan sistem menjadi kacau. Startvation terjadi ketika proses-proses menunggu alokasi sumberdaya sampai tak terhingga, karena bisa pada kebijaksanaan / strategi alokasi sumberdaya, sementara proses-proses lain dapat memperoleh alokasi sumberdaya. SEKOLAH TINGGI MANAJEMEN INFORMATIKA DAN KOMPUTER BUDIDARMA 86 Sistem Operasi Komputer Indefinite postponement / indefinite blocking / starvation : Penundaan penjadwalan sebuah proses selama tak terhingga sementara sistem mengadakan alokasi sumber daya untuk proses yang lain. Penyebabnya adalah prioritas. Cara mengatasinya dengan “aging” yaitu prioritaas naik dengan bertambahnya waktu. Model Deadlock Urutan kejadian pengoperasian perangkat I/O adalah : - meminta / request : meminta palayanan I/O - memakai / use : memakai perangkat I/O - melepaskan / release : melepaskan pamakaian perangkat I/O Model deadlock dua proses dan dua sumber daya Deadlock dapat digambarkan sebagai graph. Misalnya : - dua proses, P0 dan P1 - dua sumber daya kritis, R0 dan R1 - proses P0 dan P1 harus mengakses kedua sumber daya tersebut P0 R0 R1 P1 kondisi berikut dapat terjadi : - R0 diberikan ke P0 (P0 meminta sumber daya R0), ditandai busur (edge) berarah dari proses P0 ke sumber daya R0 - sedangkan sumber daya R1 dialokasikan ke P1, ditandai dengan busur (edge) berarah dari sumber daya R1 ke proses P1. Skenario yang menimbulkan deadlock Dapat terjadi skenario sebagai berikut : - P0 dialokasikan R0 - P1 dialokasikan R1 P0 R0 R1 P1 SEKOLAH TINGGI MANAJEMEN INFORMATIKA DAN KOMPUTER BUDIDARMA 87 Sistem Operasi Komputer Kemudian, - P0 sambil masih menggenggam R0, meminta R1 - P1 sambil masih menggenggam R1, meminta R0 Kejadian ini mengakibatkan deadlock karena sama-sama akan saling menunggu. Graph deadlock ini akan digambarkan sebagai graph melingkar. Terjadinya deadlock ditandai munculnya / terjadinya graph melingkar. P0 R1 R0 P1 Karena untuk melanjutkan eksekusi memerlukan kedua sumber daya sekaligus, maka kedua proses akan saling menunggu sumber daya lain selamanya. Tak ada proses yang dapat melepaskan sumber daya yang telah dipegangnya karena menunggu sumber daya lain yang tak pernah diperolehnya. Kedua proses dalam kondisi deadlock, tidak dapat membuat kemajuan apapun. Deadlock tidak hanya terjadi pada dua proses dan dua sumber daya, deadlock dapat terjadi dengan melibatkan lebih dari dua proses dan dua sumber daya. Syarat-syarat terjadinya deadlock : 1. Mutual exclution condition Tiap sumber daya saat itu diberikan pada tepat satu proses / proses meng-klaim kontrol eksklusif terhadap sumber daya yang dibutuhkannya. 2. Hold and wait condition / kondisi genggam dan tunggu Proses-proses yang sedang menggenggam sumber daya yang telah dialokasikan untuknya sementara menunggu sumber daya – sumber daya tambahan yang baru. 3. Non-preemption condition / kondisi non-preemption Sumber daya – sumber daya yang sebelumnya diberikan tidak dapat diambil paksa dari proses sampai sumber daya tersebut digunakan sampai selesai. Sumber daya – sumber daya harus secara eksplisit dilepaskan dari proses yang menggenggamnya. 4. Circular wait condition / kondisi menunggu secara sirkular Harus terdapat rantai sirkuler / satu lingkaran proses dari dua proses atau lebih dimana setiap proses memegang satu atau lebih sumber daya yang diminta oleh proses berikutnya pada lingkaran tersebut, masing-masing menunggu sumber daya yang digenggam oleh anggota berikutnya pada rantai itu. Ketiga syarat pertama merupakan syarat perlu bagi terjadinya deadlock. Keberadaan deadlock selalu berarti terpenuhi kondisi-kondisi diatas, tidak mungkin terjadi deadlock bila tidak ada ketiga kondisi itu. Deadlock terjadi berarti terdapat ketiga kondisi itu, tetapi adanya ketiga kondisi itu belum berarti terjadi deadlock. SEKOLAH TINGGI MANAJEMEN INFORMATIKA DAN KOMPUTER BUDIDARMA 88 Sistem Operasi Komputer Deadlock baru benar-benar terjadi bila syarat keempat terpenuhi. Kondisi keempat merupakan keharusan bagi terjadinya peristiwa deadlock. Bila salah satu dari kondisi tidak terpenuhi maka deadlock tidak terjadi. Metode-metode mengatasi deadlock : 1. deadlock prevention / metode pencegahan terjadinya deadlock pengkondisian sistem agar menghilangkan kemungkinan terjadinya deadlock. Pencegahan merupakan solusi yang bersih dipandang dari sudut tercegahnya deadlock. Jika mulainya satu atau lebih proses akan menyebabkan terjadinya deadlock, proses tersebut tidak akan dimulai sama sekali. - tiap proses harus meminta resource yang dibutuhkan sekaligus dan tidak bisa berjalan sampai semua di dapat (untuk “wait for”) - jika ada resourcce yang tidak terpenuhi, yang lainnya harus dilepas (untuk “no preemption”) - urutkan tipe-tipe resource secara linier / linier ordering (untuk “circular wait”) 2. deadlock avoidance / metode penghindaran terjadinya deadlock menghindarkan kondisi yang paling mungkin menimbulkan deadlock agar memperoleh sumber daya lebih baik. Penghindaran bukan berarti menghilangkan semua kemungkinan terjadinya deadlock. Jika sistem operasi mengetahui bahwa alokasi sumber daya menimbulkan resiko deadlock, sistem menolak / menghindari pengaksesan itu. Dengan demikian menghindari terjadinya deadlock. Contohnya dengan menggunakan algoritma Banker yang diciptakan oleh Dijkstra. 3. deadlock detection and recovery / metode deteksi dan pemulihan dari deadlock deteksi digunakan pada sistem yang mengijinkan terjadinya deadlock, dengan memeriksa apakah terjadi deadlock dan menentukan proses dan sumber daya yang terlibat deadlock secara presisi. Begitu telah dapat ditentukan, sistem dipulihkan dari deadlock dengan metode pemulihan. Metode pemulihan dari deadlock sistem sehingga beroperasi kembali, bebas dari deadlock. Proses yang terlibat deadlock mungkin dapat menyelesaikan eksekusi dan membebaskan sumber dayanya. Pencegahan deadlock : 1. tiap proses harus meminta semua sumber daya yang diperlukan sekaligus dan tidak berlanjut sampai semuanya diberikan. 2. Jika proses telah sedang memegang sumber daya tertentu, untuk permintaan berikutnya proses harus melepas dulu sumber daya yang dipegangnya. Jika diperlukan, proses meminta kembali sekaligus dengan sumber daya yang baru. 3. Beri pengurutan linier terhadap tipe-tipe sumber daya pada semua proses, yaitu jika proses telah dialokasikan suatu tipe sumber daya, proses hanya boleh berikutnya meminta sumber daya tipe pada urutan yang berikutnya. Saran pencegahan deadlock diatas merupakan cara meniadakan salah satu dari syarat perlu. Syarat perlu pertama jelas tidak bisa ditiadakan, kalau tidak menghendaki kekacauan hasil. SEKOLAH TINGGI MANAJEMEN INFORMATIKA DAN KOMPUTER BUDIDARMA 89 Sistem Operasi Komputer Strategi Burung Onta Strategi ini mengasumsikan kejadian deadlock jarang terjadi jika dibandingkan dengan kejadian komputer crash. Strategi ini disebut strategi burung onta karena kabar yang telah tersebar (yang sebenarnya tidak benar) bahwa burung onta akan menyembunyikan kepalanya ke tanah bila mengetahui adanya bahaya yang mengancamnya. Sehingga solusi yang dilakukan justru sebenarnya tak memperdulikan adanya masalah. Stategi ini sebenarnya berarta adalah sama sekali tidak berusaha mengatasideadlock / tak ada metoda sama sekali untuk mengatasi masalah deadlock. Penghindaran deadlock Adalah hanya memberi akses ke permintaan sumber daya yang tidak mungkin menimbulkan deadlock. SEKOLAH TINGGI MANAJEMEN INFORMATIKA DAN KOMPUTER BUDIDARMA 90 Sistem Operasi Komputer BAB VIII Keamanan Sistem Pokok masalah keamanan sistem salah satunya disebabkan karena sistem time sharing dan akses jarak jauh, apalagi dengan meningkatnya perkembangan jaringan komputer. Keamanan sistem komputer adalah untuk menjamin sumber daya sistem tidak digunakan / dimodifikasi, diinterupsi dan diganggu oleh orang yang tidak diotorisasi. Pengamanan termasuk masalah teknis, manajerial, legalitas dan politis. 3 macam keamanan sistem, yaitu : 1. Keamanan eksternal / external security Berkaitan dengan pengamanan fasilitas komputer dari penyusup dan bencana seperti kebakaran / kebanjiran. 2. Keamanan interface pemakai / user interface security Berkaitan dengan indentifikasi pemakai sebelum pemakai diijinkan mengakses program dan data yang disimpan 3. Keamanan internal / internal security Berkaitan dengan pengamanan beragam kendali yang dibangun pada perangkat keras dan sistem operasi yang menjamin operasi yang handal dan tak terkorupsi untuk menjaga integritas program dan data. 2 masalah penting keamanan, yaitu : 1. Kehilangan data / data loss Yang disebabkan karena : Bencana, contohnya kebakaran, banjir, gempa bumi, perang, kerusuhan, tikus, dll. Kesalahan perangkat keras dan perangkat lunak, contohnya ketidak berfungsinya pemroses, disk / tape yang tidak terbaca, kesalahan komunikasi, kesalahan program / bugs. Kesalahan / kelalaian manusia, contohnya kesalahan pemasukkan data, memasang tape / disk yang salah, kehilangan disk / tape. 2. Penyusup / intruder Penyusup pasif, yaitu yang membaca data yang tidak terotorisasi Penyusup aktif, yaitu mengubah data yang tidak terotorisasi. Contohnya penyadapan oleh orang dalam, usaha hacker dalam mencari uang, spionase militer / bisnis, lirikan pada saat pengetikan password. Sasaran keamanan adalah menghindari, mencegah dan mengatasi ancaman terhadap sistem. 3 aspek kebutuhan keamanan sistem komputer, yaitu : 1. Kerahasiaan / secrecy, diantaranya privasi SEKOLAH TINGGI MANAJEMEN INFORMATIKA DAN KOMPUTER BUDIDARMA 91 Sistem Operasi Komputer Keterjaminan bahwa informasi di sistem komputer hanya dapat diakses oleh pihakpihak yang terotorisasi dan modifikasi tetap menjaga konsistensi dan keutuhan data di sistem 2. Integritas / integrity Keterjaminan bahwa sumber daya sistem komputer hanya dapat dimodifikasi oleh pihak-pihak yang terotorisasi 3. Ketersediaan / availability Keterjaminan bahwa sumber daya sistem komputer tersedia bagi pihak-pihak yang diotorisasi saat diperlukan Sumber informa si Aliran normal Tujuan informa si Tipe ancaman terhadap keamanan sistem komputer dapat dimodelkan dengan memandang fungsi sistem komputeer sebagai penyedia informasi. Berdasarkan fungsi ini, ancaman terhadap sistem komputeer dikategorikan menjadi 4 ancaman, yaitu : 1. Interupsi / interuption Sumber daya sistem komputer dihancurkan / menjadi tak tersedia / tak berguna. Merupakan ancaman terhadap ketersediaan. Contohnya penghancuran harddisk, pemotongan kabel komunikasi. Sumber informa si Interupsi Tujuan informa si 2. Intersepsi / interception Pihak tak diotorisasi dapat mengakses sumber daya. Merupakan ancaman terhadap kerahasiaan. Pihak tak diotorissasi dapat berupa orang / program komputeer. Contohnya penyadapan, mengcopy file tanpa diotorisasi. Sumber informa si 3. Modifikasi / modification Tujuan informa si Intersepsi SEKOLAH TINGGI MANAJEMEN INFORMATIKA DAN KOMPUTER BUDIDARMA 92 Sistem Operasi Komputer Pihak tak diotorisasi tidak hanya mengakses tapi juga merusak sumber daya. Merupakan ancaman terhadap integritas. Contohnya mengubah nilai file, mengubah program, memodifikasi pesan Sumber informa si Tujuan informa si 4. Fabrikasi / fabrication Modifikasi Pihak tak diotorisasi menyisipkan / memasukkan objek-objek palsu ke sistem. Merupakan ancaman terhadap integritas. Contohnya memasukkan pesan palsu ke jaringan, menambah record file. Sumber informa si Tujuan informa si Fabrikasi Petunjuk prinsip-prinsip pengamanan sistem komputer, yaitu : 1. Rancangan sistem seharusnya publik Tidak tergantung pada kerahasiaan rancangan mekanisme pengamanan. Membuat proteksi yang bagus dengan mengasumsikan penyusup mengetahui cara kerja sistem pengamanan. 2. Dapat diterima Mekanisme harus mudah diterima, sehingga dapat digunakan secara benar dan mekanisme proteksi tidak mengganggu kerja pemakai dan pemenuhan kebutuhan otorisasi pengaksesan. 3. Pemeriksaan otoritas saat itu Banyak sisten memeriksa ijin ketika file dibuka dan setelah itu (opersi lainnya) tidak diperiksa. 4. Kewenangan serendah mungkin Program / pemakai sistem harusnya beroperasi dengan kumpulan wewenang serendah mungkin yang diperlukan untuk menyelesaikan tugasnya. 5. Mekanisme yang ekonomis Mekanisme proteksi seharusnya sekecil dan sesederhana mungkin dan seragam sehingga mudah untuk verifikasi. Otentifikasi pemakai / user authentification adalah identifikasi pemakai ketika login. 3 cara otentifikasi : 1. Sesuatu yang diketahui pemakai, misalnya password, kombinasi kunci, nama kecil ibu mertua, dll SEKOLAH TINGGI MANAJEMEN INFORMATIKA DAN KOMPUTER BUDIDARMA 93 Sistem Operasi Komputer Untuk password, pemakai memilih suatu kata kode, mengingatnya dan menggetikkannya saat akan mengakses sistem komputer, saat diketikkan tidak akan terlihat dilaya kecuali misalnya tanda *. Tetapi banyak kelemahan dan mudah ditembus karena pemakai cenderung memilih password yang mudah diingat, misalnya nama kecil, nama panggilan, tanggal lahir, dll. Upaya pengamanan proteksi password : a. Salting, menambahkan string pendek ke string password yang diberikan pemakai sehingga mencapai panjang password tertentu b. one time password, pemakai harus mengganti password secara teratur, misalnya pemakai mendapat 1 buku daftar password. Setiap kali login pemakai menggunakan password berikutnya yang terdapat pada daftar password. c. satu daftar panjang pertanyan dan jawaban, sehingga pada saat login, komputer memilih salah satu dari pertanyaan secara acak, menanyakan ke pemakai dan memeriksa jawaban yang diberikan. d. tantangan tanggapan / chalenge respone, pemakai diberikan kebebasan memilih suatu algoritma misalnya x3, ketika login komputer menuliskan di layar angka 3, maka pemakai harus mengetik angka 27. 2. Sesuatu yang dimiliki pemakai, misalnya bagde, kartu identitas, kunci, barcode KTM, ATM. Kartu pengenal dengan selarik pita magnetik. Kartu ini disisipkan de suatu perangkat pembaca kartu magnetik jika akan mengakses komputer, biasanya dikombinasikan dengan password. 3. Sesuatu mengenai / merupakan ciri pemakai yang di sebut biometrik, misalnya sidik jari, sidik suara, foto, tanda tangan, dll Pada tanda tangan, bukan membandingkan bentuk tanda tangannya (karena mudah ditiru) tapi gerakan / arah dan tekanan pena saat menulis (sulit ditiru). Untuk memperkecil peluang penembusan keamanan sistem komputer harus diberikan pembatasan, misalnya : 1. Pembatasan login, misalnya pada terminal tertentu, pada waktu dan hari tertentu 2. Pembatasan dengan call back, yaitu login dapat dilakukan oleh siapapun, bila telah sukses, sistem memutuskan koneksi dan memanggil nomor telepon yang disepakati. Penyusup tidak dapat menghibungu lewat sembarang saluran telepon, tapi hanya pada saluran tetepon tertentu. 3. Pembatasan jumlah usaha login, misalnya dibatasi sampai 3 kali, dan segera dikunci dan diberitahukan ke administrator. Objek yang perlu diproteksi : 1. Objek perangkat keras, misalnya pemroses, segment memori, terminal, diskdrive, printer, dll 2. Objek perangkat lunak, misalnya proses, file, basis data, semaphore, dll Masalah proteksi adalah mengenai cara mencegah proses mengakses objek yang tidak diotorisasi. Sehingga dikembangkan konsep domain. Domain adalah himpunan pasangan SEKOLAH TINGGI MANAJEMEN INFORMATIKA DAN KOMPUTER BUDIDARMA 94 Sistem Operasi Komputer (objek,hak). Tiap pasangan menspesifikasikan objek dan suatu subset operasi yang dapat dilakukan terhadapnya. Hak dalam konteks ini berarti ijin melakukan suatu operasi. Cara penyimpanan informasi anggota domain beerupa satu matrik besar, dimana : baris menunjukkan domain kolom menunjukkan objek SEKOLAH TINGGI MANAJEMEN INFORMATIKA DAN KOMPUTER BUDIDARMA 95