• Tidak ada hasil yang ditemukan

MODUL PERKULIAHAN Sistem Operasi

N/A
N/A
Dwi Setiawan

Academic year: 2023

Membagikan "MODUL PERKULIAHAN Sistem Operasi"

Copied!
137
0
0

Teks penuh

Komputer terdiri dari elemen-elemen dasar: prosesor, memori dan komponen I/O (Gambar 1.2) Komponen-komponen tersebut dihubungkan satu sama lain dengan cara yang sama untuk mencapai fungsi utama komputer, yaitu pelaksanaan program. Lingkungan eksternal ini terdiri dari berbagai perangkat, termasuk penyimpanan sekunder seperti hard drive, perangkat komunikasi, dan terminal. Suatu instruksi mempunyai format (tergantung jenis mesinnya) yang terdiri dari 2 bagian utama yaitu kode optik dan alamat.

Opcode adalah kode untuk operasi yang akan dilakukan sedangkan alamat adalah alamat memori tempat data disimpan. Pengontrol perangkat bertanggung jawab untuk memindahkan data antara periferal yang dikontrol dan penyimpanan buffer lokal. Driver perangkat ini memahami pengontrol perangkat dan menyediakan bagian dari sistem operasi dengan antarmuka terpadu ke perangkat.

Sistem komputer serba guna modern terdiri dari satu atau lebih prosesor dan sejumlah perangkat kontrol yang dihubungkan oleh bus bersama yang menyediakan akses ke memori bersama (Gambar 1.6). Program bootstrap akan mengenali semua aspek sistem, mulai dari register CPU hingga pengontrol perangkat dan isi memori.

Gambar 1.2. Elemen Dasar Komputer
Gambar 1.2. Elemen Dasar Komputer

MODUL PERKULIAHAN

Gambaran umum fungsi layanan sistem operasi dapat dilihat pada Gambar 3.1 di bawah ini. Di sebagian besar bahasa pemrograman, sistem pendukung runtime (serangkaian fungsi yang dibangun ke dalam perpustakaan yang disediakan oleh kompiler) menyediakan antarmuka panggilan sistem yang berfungsi sebagai tautan ke panggilan sistem yang dilakukan oleh sistem operasi. Antarmuka syscall menangkap panggilan fungsi di API dan memanggil panggilan sistem yang diperlukan di OS.

Sebuah nomor dikaitkan dengan setiap panggilan sistem, dan antarmuka panggilan sistem memelihara tabel indeks yang berisi nomor-nomor ini. Antarmuka panggilan sistem kemudian mencari panggilan sistem yang diharapkan di kernel OS dan mengembalikan status panggilan sistem dan nilai kembaliannya. Penelepon tidak perlu mengetahui segalanya tentang bagaimana panggilan sistem diimplementasikan atau apa yang dilakukan selama eksekusi.

Namun, pemanggil hanya perlu mematuhi API dan memahami apa yang akan dilakukan OS sebagai hasil dari menjalankan panggilan sistem. Hubungan antara API, antarmuka panggilan sistem, dan OS dapat dilihat pada Gambar 3.8, yang mengilustrasikan bagaimana OS mengelola aplikasi pengguna yang memerlukan panggilan sistem open().

Gambar 2.1 AMP
Gambar 2.1 AMP

Proses Control Block (PCB)

Ketika proses baru ditambahkan, OS membangun struktur data yang digunakan untuk mengelola proses dan mengalokasikan ruang alamat memori untuk proses tersebut. Misalnya, jika pengguna meminta file untuk dicetak, maka OS akan membuat proses yang akan mengelola printer. Misalnya, suatu proses di server (misalnya server cetak, server file) dapat menelurkan proses baru untuk setiap permintaan yang ditanganinya.

Ketika OS membuat proses yang berasal dari permintaan dari proses lain, tindakan ini disebut proses pemijahan. Diblokir/Menunggu Proses yang tidak dapat dieksekusi akan menunggu hingga suatu peristiwa terjadi, seperti menyelesaikan operasi I/O. Baru  Proses yang telah dibuat tetapi belum dikirim ke kumpulan proses yang dapat dieksekusi oleh OS.

Sistem operasi akan memindahkan suatu proses dari keadaan baru ke keadaan siap ketika OS siap untuk menambahkan suatu proses. Ketika suatu proses dipilih untuk dieksekusi, OS memilih salah satu proses dalam keadaan siaga. Suatu proses yang berada dalam keadaan menunggu akan berpindah ke keadaan siap jika kejadian yang ditunggunya telah terjadi.

Proses tersebut akan terdiri dari memori yang cukup untuk menampung program dan data dari proses tersebut. Setiap proses diberi pengenal berupa angka unik (integer), yang digunakan sebagai indeks untuk mengakses berbagai atribut proses. Jika suatu proses membuat proses lain, proses OS induk dapat memberikan nilai yang diperlukan sebagai bagian dari permintaan pembuatan proses.

Informasi status prosesor, diinisialisasi berdasarkan nilai default default + atribut yang diperlukan untuk suatu proses. Jika OS mengelola setiap antrian penjadwalan sebagai daftar tertaut, maka proses baru harus ditempatkan di daftar siap. Ketika suatu proses memunculkan proses anak, proses anak tersebut akan memerlukan sumber daya tertentu (waktu CPU, memori, file, perangkat I/O) untuk menyelesaikan tugasnya.

Gambar 4.3 State Proses
Gambar 4.3 State Proses

THREAD

Jika suatu proses memiliki beberapa thread kontrol, maka proses tersebut dapat melakukan banyak tugas sekaligus. Sebuah web browser mempunyai banyak thread, misalnya 1 thread untuk menampilkan gambar, 1 thread untuk menampilkan teks, 1 thread untuk mengambil data dari jaringan. Pengolah kata biasanya mempunyai 1 thread untuk menampilkan grafik, 1 thread untuk membaca penekanan tombol pengguna, 1 thread untuk melakukan pemeriksa ejaan dan stamper.

Jika server web berjalan sebagai proses single-thread, maka hanya mampu melayani satu klien pada satu waktu. Ketika server menerima permintaan, proses lain akan dibuat untuk menerima permintaan tersebut. Jika proses server web multi-threaded, server akan membuat thread lain yang tugasnya mendengarkan permintaan klien.

Setelah permintaan dibuat, server akan membuat thread baru untuk melayani permintaan tersebut dan server akan kembali mendengarkan permintaan lainnya. Ketika proses baru dibuat, thread untuk proses tersebut juga dibuat. Sebuah thread dalam suatu proses dapat memunculkan thread lain dalam proses yang sama, yang menyediakan penunjuk instruksi dan argumen ke thread baru.

Jika sebuah thread perlu menunggu suatu event, maka thread tersebut akan diblokir (menyimpan register pengguna, penghitung program, dan penunjuk tumpukan). Jika suatu peristiwa terjadi dari thread yang diblokir, maka thread tersebut dipindahkan ke antrian siap. Ketika sebuah thread berakhir, register konteks dan tumpukannya dialokasikan ke thread lain.

Eksekusi ditransfer dari satu thread ke thread lain ketika thread yang sedang berjalan diblokir atau ketika batas waktu telah habis.

Gambar  6.1  memperlihatkan  perbedaan  antara  proses  dengan  thread  tunggal  dan  multithreaded
Gambar 6.1 memperlihatkan perbedaan antara proses dengan thread tunggal dan multithreaded

YPES OF THREADS

Gambar 6.9B

Meskipun struktur data dikelola oleh pustaka thread, thread 2 dari proses B tetap dalam status berjalan. Catatan: Thread 2 sebenarnya tidak dijalankan (dieksekusi oleh prosesor), namun pustaka thread dijalankan dalam status eksekusi.

Gambar 6.9C

Gambar 6.9D

Algoritma ini menggunakan sistem rotasi terhadap dua proses yang ingin mengeksekusi bagian kritis, sehingga kedua proses tersebut harus bergantian menggunakan bagian kritis tersebut. Setelah eksekusi bagian kritis selesai, P0 akan mengubah perpindahan menjadi 1 yang berarti giliran P1 dan P1 dapat mengakses bagian kritis tersebut. Ketika belokan = 1 dan P0 ingin menggunakan bagian kritis, P0 harus menunggu hingga P1 selesai menggunakan bagian kritis dan mengubah belokan menjadi 0.

Pada algoritma ini permasalahan muncul ketika suatu proses berada dalam jalur untuk memasuki bagian kritis tetapi tidak menggunakan jalurnya sementara proses lain menginginkan akses ke bagian kritis tersebut. Kemudian P0 ingin menggunakan critical section tersebut, sehingga harus menunggu hingga P1 menggunakan critical section tersebut dan perubahannya berubah menjadi 0. Suatu proses diperbolehkan mengakses critical section tersebut jika proses lain tidak memerlukan critical section tersebut atau jika flagnya proses lainnya salah.

Namun, jika proses lain memerlukan bagian kritis (ditunjukkan dengan nilai flag yang benar), maka proses tersebut harus menunggu dan "mengizinkan" proses lain untuk menggunakan bagian kritisnya. Awalnya, tanda untuk kedua proses diinisialisasi ke false, artinya kedua proses tersebut tidak memerlukan bagian kritis apa pun. Kondisi ini menyebabkan kedua proses yang membutuhkan critical section tersebut harus saling menunggu dan “mengizinkan” satu sama lain untuk mengakses critical section, sehingga mengakibatkan tidak ada satupun yang bisa mengakses critical section tersebut.

Awalnya, tanda untuk kedua proses diinisialisasi ke false, yang berarti tidak ada proses yang memerlukan akses ke bagian kritis. Jika musuh tidak menginginkan bagian kritis (benderanya salah), proses dapat menggunakan bagian kritis tersebut dan mengubah tandanya menjadi salah setelah bagian kritis selesai digunakan. Namun jika proses adversary juga menginginkan bagian kritis tersebut, maka proses adversary dapat memasuki bagian kritis dan proses tersebut.

Namun jika P1 juga memerlukan bagian kritis karena flag[1] = true dan turn = 1, maka P1 dapat masuk ke critical section dan P0 harus menunggu sampai P1 menyelesaikan critical section dan merubah flag[1] = false, maka P0 dapat mengakses bagian kritis. Proses yang pertama kali dapat mengakses bagian kritis adalah proses yang pertama kali mengubah giliran menjadi giliran lawan. Jadi sumber daya seperti ini adalah sumber daya yang penting, dan bagian dari program yang menggunakannya adalah bagian penting dari program tersebut.

Karena semua proses mempunyai akses ke sumber daya Ra yang sama, hanya ada satu proses di bagian kritis pada satu waktu. Jika proses P1 mencoba memasuki bagian kritisnya sementara proses P2 berada dalam bagian kritisnya, untuk sumber daya yang sama, proses P1 harus menunggu.

Gambar 1. Algoritma I
Gambar 1. Algoritma I

ALGORITHMS

First Come First Serve

Ketika suatu proses memasuki antrian, PCB proses dipasang pada akhir antrian.

Round Roubin

Shortest Prosess Next (SPN)

Shortest-Remaining-Time-First

Priority Scheduling

Ada banyak sumber daya dalam sistem komputer yang hanya dapat digunakan oleh satu proses dalam satu waktu. Situasi seperti ini hanya dapat terjadi ketika mengakses sumber daya yang tidak dapat dibagikan atau tidak dapat dibagikan. Namun, karena sumber daya ini tidak tersedia atau dialokasikan ke proses lain, pada akhirnya proses yang memerlukannya tidak dapat memilikinya.

Suatu proses dapat meminta satu atau lebih sumber daya yang tersedia atau saat ini dimiliki oleh proses lain. Setelah menggunakan sumber daya untuk melakukan eksekusi, proses akan melepaskan sumber daya yang dimilikinya. Kondisi pertama adalah saling eksklusi, yaitu proses kepemilikan pribadi atas sumber daya yang digunakan.

Proses lain yang juga ingin menggunakannya harus menunggu hingga sumber daya tersebut dibebaskan oleh proses yang telah selesai menggunakannya. Kondisi kedua adalah hold and wait, yaitu beberapa proses menunggu satu sama lain sambil menahan sumber daya apa pun yang dimilikinya. Sebuah proses yang memiliki setidaknya satu sumber daya membuat permintaan lain untuk sumber daya tersebut.

Proses yang menginginkan sumber daya harus menunggu hingga sumber daya tersebut tersedia, tanpa dapat mengambilnya dari proses yang memilikinya. Oleh karena itu, kondisi pertama ini sulit dicegah karena sifat sumber daya yang tidak dapat dibagi-bagi. Atau bisa juga proses meminta dan memperoleh resource sebelum dieksekusi, sehingga tidak perlu menunggu.

Sumber daya yang dimiliki oleh proses ini akan diberikan kepada proses lain yang membutuhkan dan menunggu. “Lingkaran setan” ini dapat “diputuskan” dengan menentukan total kebutuhan semua jenis sumber daya yang ada. Setiap proses yang akan meminta sumber daya harus meminta sumber daya dalam urutan menaik.

Gambar 13.1. Multiprogramming dengan multiprocessor
Gambar 13.1. Multiprogramming dengan multiprocessor

Gambar

Gambar 1.6 Sistem computer modern
Gambar 2.6 Contoh Multiprogramming  Ilustrasi keuntungan Multiprogramming
Gambar 3.1. Layanan SIstem Operasi
Gambar 3.2. MS-DOS
+7

Referensi

Dokumen terkait

Proses adalah sebuah program yang sedang dieksekusi. Sebuah proses membutuhkan beberapa sumber daya untuk menyelesaikan tugasnya. Sumber daya tersebut dapat berupa CPU time,

Adalah user yang menggunakan komputer dengan akses terbatas biasanya via command linux saja bukan grafis, misalkan komputer digunakan untuk Web server, Mysql

 Perintah atau instruksi yang diberikan kepada komputer untuk memecahkan suatu masalah disebut program komputer.  Program komputer ini memandu kerja dari komputer yang

 Komunikasi : menyediakan mekanisme komunikasi Komunikasi : menyediakan mekanisme komunikasi antara proses, user dan sistem komputer yang. antara proses, user dan sistem

memperkenalkan Batch Processing Syste m, yaitu Job yang dikerjakan dalam satu rangkaian, lalu dieksekusi secara berurutan.Pada generasi ini sistem komputer

Thread (singkatan dari " thread of execution ") dalam ilmu komputer, diartikan sebagai sekumpulan perintah (instruksi) yang dapat dilaksanakan (dieksekusi) secara

Modul Perkuliahan Analisa Perancangan Sistem Informasi Kartika Mariskhana,S.Kom,M.Pd 5 hubungan satu unit dengan unit-unit lainnyayang saling berhubungan satu sama lainnya dan yang

Pengertian Khusus • Pengertian Sistem Operasi • Sebagai resource manager yaitu pengelola seluruh sumberdaya yang terdapat pada sistem komputer • Perangkat keras: processor, memori,