0% menganggap dokumen ini bermanfaat (0 suara)
10 tayangan32 halaman

Pendahuluan Sistem Operasi dan Fungsinya

Dokumen ini menjelaskan tentang sistem operasi sebagai perangkat lunak yang mengelola perangkat keras komputer dan menyediakan lingkungan untuk menjalankan program. Terdapat berbagai fungsi sistem operasi seperti manajemen proses, memori, berkas, dan I/O, serta evolusi sistem operasi dari batch processing hingga real-time systems. Selain itu, dokumen ini juga membahas layanan yang disediakan oleh sistem operasi untuk kenyamanan pengguna dan efisiensi sistem.

Diterjemahkan oleh

ScribdTranslations
Hak Cipta
© All Rights Reserved
Kami menangani hak cipta konten dengan serius. Jika Anda merasa konten ini milik Anda, ajukan klaim di sini.
Format Tersedia
Unduh sebagai PDF, TXT atau baca online di Scribd
0% menganggap dokumen ini bermanfaat (0 suara)
10 tayangan32 halaman

Pendahuluan Sistem Operasi dan Fungsinya

Dokumen ini menjelaskan tentang sistem operasi sebagai perangkat lunak yang mengelola perangkat keras komputer dan menyediakan lingkungan untuk menjalankan program. Terdapat berbagai fungsi sistem operasi seperti manajemen proses, memori, berkas, dan I/O, serta evolusi sistem operasi dari batch processing hingga real-time systems. Selain itu, dokumen ini juga membahas layanan yang disediakan oleh sistem operasi untuk kenyamanan pengguna dan efisiensi sistem.

Diterjemahkan oleh

ScribdTranslations
Hak Cipta
© All Rights Reserved
Kami menangani hak cipta konten dengan serius. Jika Anda merasa konten ini milik Anda, ajukan klaim di sini.
Format Tersedia
Unduh sebagai PDF, TXT atau baca online di Scribd

SISTEM OPERASI

CATATAN PERKULIAHAN

MODUL-1

Pendahuluan Sistem Operasi


Sistem operasi bertindak sebagai perantara antara pengguna komputer dan perangkat keras komputer.
tujuan dari sistem operasi adalah untuk menyediakan lingkungan di mana pengguna dapat menjalankan program dengan nyaman dan
cara yang efisien.
Sistem operasi adalah perangkat lunak yang mengelola perangkat keras komputer. Perangkat keras harus memberikan yang sesuai
mekanisme untuk memastikan operasi yang benar dari sistem komputer dan untuk mencegah program pengguna mengganggu
operasi yang tepat dari sistem.
Beberapa contoh sistem operasi adalah UNIX, Mach, MS-DOS, MS-Windows, Windows/NT, Chicago, OS/2,
MacOS, VMS, MVS, dan VM.
Tujuan sistem operasi:
Jalankan program pengguna dan permudah pemecahan masalah pengguna.
Buat sistem komputer mudah digunakan.
Gunakan perangkat keras komputer dengan cara yang efisien.
Komponen Sistem Komputer
Perangkat keras – menyediakan sumber daya komputasi dasar (CPU, memori, perangkat I/O).
Sistem operasi - mengontrol dan mengkoordinasikan penggunaan perangkat keras di antara berbagai aplikasi
program untuk berbagai pengguna.
Program aplikasi–Definisikan cara di mana sumber daya sistem digunakan untuk menyelesaikan komputasi
masalah pengguna (kompiler, sistem basis data, video game, program bisnis).
Pengguna (orang, mesin, komputer lain).
Tampilan Abstrak dari Komponen Sistem

Sistem Operasi–Definisi:
Sistem operasi adalah program yang mengontrol eksekusi program aplikasi dan bertindak sebagai
antarmuka antara pengguna komputer dan perangkat keras komputer.
Definisi yang lebih umum adalah bahwa sistem operasi adalah satu program yang berjalan setiap saat di
komputer (biasanya disebut kernel), dengan segala sesuatu yang lain adalah program aplikasi.
Sistem operasi berkaitan dengan pengalokasian sumber daya dan layanan, seperti memori.
prosesor, perangkat, dan informasi. Sistem operasi dengan demikian mencakup program untuk mengelola
sumber daya ini, seperti pengontrol lalu lintas, penjadwal, modul manajemen memori, program I/O, dan
sebuah sistem file.

Fungsi Sistem Operasi:


1. Manajemen Proses
Proses adalah program yang sedang dieksekusi. Proses membutuhkan sumber daya tertentu, termasuk waktu CPU, memori, file, dan
Perangkat I/O, untuk menyelesaikan tugasnya.
Sistem operasi bertanggung jawab atas kegiatan berikut sehubungan dengan manajemen proses.
Pembuatan dan penghapusan proses.
penangguhan dan kelanjutan proses.
Penyediaan mekanisme untuk:
i. sinkronisasi proses
ii. komunikasi proses
2. Manajemen Memori Utama
Memori adalah array besar dari kata atau byte, masing-masing dengan alamatnya sendiri. Ini adalah tempat penyimpanan yang dapat diakses dengan cepat.
data yang dibagikan oleh CPU dan perangkat I/O.
Memori utama adalah perangkat penyimpanan yang volatile. Itu kehilangan isinya dalam kasus kegagalan sistem.
Sistem operasi bertanggung jawab atas kegiatan berikut terkait dengan manajemen memori:
Lacak bagian mana dari memori yang saat ini sedang digunakan dan oleh siapa.
Tentukan proses mana yang akan dimuat saat ruang memori tersedia.
Alokasikan dan hapus alokasi ruang memori sesuai kebutuhan.

3. Manajemen Berkas
Sebuah file adalah kumpulan informasi terkait yang ditentukan oleh pembuatnya. Secara umum, file mewakili program (baik
bentuk sumber dan objek) dan data.
Sistem operasi bertanggung jawab atas kegiatan berikut terkait dengan manajemen file:
Pembuatan dan penghapusan file.
Pembuatan dan penghapusan direktori.
Dukungan primitif untuk memanipulasi file dan direktori.
Memetakan file ke penyimpanan sekunder.
Cadangan file di media penyimpanan yang stabil (non-volatile).
4. Manajemen Sistem I/O
Sistem I/O terdiri dari:
Sistem caching buffer
Antarmuka pengemudi perangkat umum
Driver untuk perangkat keras tertentu
5. Manajemen Penyimpanan Sekunder
Karena memori utama (penyimpanan primer) bersifat volatil dan terlalu kecil untuk menampung semua data dan program
Secara permanen, sistem komputer harus menyediakan penyimpanan sekunder untuk mencadangkan memori utama.
Sebagian besar sistem komputer modern menggunakan disket sebagai media penyimpanan daring utama, baik untuk program maupun data.
Sistem operasi bertanggung jawab untuk aktivitas berikut sehubungan dengan manajemen disk:
Manajemen ruang kosong
Alokasi penyimpanan
Jadwal disk
6. Sistem Perlindungan
Perlindungan merujuk pada mekanisme untuk mengendalikan akses oleh program, proses, atau pengguna ke sistem.
dan sumber daya pengguna.
Mekanisme perlindungan harus:
a. membedakan antara penggunaan yang sah dan yang tidak sah.
b. tentukan kontrol yang akan diterapkan.
c. menyediakan sarana penegakan hukum.
Karakteristik:

Here is a list of some of the most prominent characteristic features of OperatingSystems −


. Memory Management-Keeps track of the primary memory, i.e. what part of it is in use by whom,
bagian mana yang tidak digunakan, dll. dan mengalokasikan memori saat sebuah proses atau program memintanya.
. Manajemen Prosesor - Mengalokasikan prosesor (CPU) kepada suatu proses dan menghapus alokasinya.
prosesor ketika sudah tidak diperlukan.
. Manajemen Perangkat - Memantau semua perangkat. Ini juga disebut pengontrol I/O yang memutuskan
proses mana yang mendapatkan perangkat, kapan, dan untuk berapa lama.
. Manajemen Berkas - Mengalokasikan dan menghapus alokasi sumber daya serta memutuskan siapa yang mendapatkan sumber daya tersebut.
. Keamanan - Mencegah akses tidak sah ke program dan data melalui kata sandi dan metode lainnya
teknik yang sama.
. Pencatatan Pekerjaan - Melacak waktu dan sumber daya yang digunakan oleh berbagai pekerjaan dan/atau pengguna.
. Kontrol Terhadap Kinerja Sistem - Mencatat penundaan antara permintaan untuk layanan dan dari
sistem.
. Interaksi dengan Operator - Interaksi dapat dilakukan melalui konsol komputer di
bentuk instruksi. Sistem Operasi mengakui hal yang sama, melakukan tindakan yang sesuai,
dan memberitahukan operasi melalui layar tampilan.
. Alat Pendeteksian Kesalahan - Produksi dump, jejak, pesan kesalahan, dan pengujian lainnya
metode deteksi kesalahan.
. Koordinasi Antar Perangkat Lunak Lain dan Pengguna - Koordinasi dan penugasan kompilator,
penerjemah, perakit, dan perangkat lunak lainnya untuk berbagai pengguna sistem komputer.

Evolusi OS:
[Link] Operasi Pemrosesan Batch:
Jenis OS ini menerima lebih dari satu pekerjaan dan pekerjaan ini dikelompokkan bersama sesuai dengan mereka
persyaratan yang serupa. Ini dilakukan oleh operator komputer. Setiap kali komputer tersedia,
pekerjaan terbatch dikirim untuk dieksekusi dan secara bertahap output dikirim kembali ke pengguna.
Ini hanya mengizinkan satu program pada satu waktu.
Sistem operasi ini bertanggung jawab untuk menjadwalkan pekerjaan sesuai dengan prioritas dan sumber daya yang diperlukan.

[Link] Operasi Multiprogramming:


Jenis OS ini digunakan untuk menjalankan lebih dari satu pekerjaan secara bersamaan oleh satu prosesor. Ini meningkatkan CPU.
pemanfaatan dengan mengatur pekerjaan sehingga CPU selalu memiliki satu pekerjaan untuk dieksekusi.
Konsep multiprogramming dijelaskan sebagai berikut:
Semua pekerjaan yang masuk ke sistem disimpan di kolam pekerjaan (di disk). Sistem operasi memuat
sekelompok pekerjaan dari kolam pekerjaan ke dalam memori utama dan mulai dieksekusi.
Selama eksekusi, pekerjaan mungkin harus menunggu beberapa tugas, seperti operasi I/O, untuk selesai.
Dalam sistem multiprogramming, sistem operasi hanya beralih ke pekerjaan lain dan mengeksekusinya.
When that job needs to wait, the CPU is switched to another job, and so on.
Ketika pekerjaan pertama selesai menunggu dan mendapatkan CPU kembali.
Selama setidaknya satu pekerjaan perlu dijalankan, CPU tidak akan pernah idle.

Sistem operasi multiprogramming menggunakan mekanisme penjadwalan tugas dan penjadwalan CPU.
{"text":"[Link] Operasi Berbagi Waktu/multitasking"}
Sistem operasi berbagi waktu (atau multitasking) adalah perpanjangan logis dari multiprogramming. Ini memberikan fasilitas tambahan seperti:
Pengalihan yang lebih cepat antara beberapa pekerjaan untuk mempercepat pemrosesan.
Memungkinkan beberapa pengguna untuk berbagi sistem komputer secara bersamaan.
Pengguna dapat berinteraksi dengan setiap pekerjaan saat sedang berjalan.
Sistem ini menggunakan konsep memori virtual untuk pemanfaatan ruang memori yang efektif. Oleh karena itu, dalam OS ini, tidak ada pekerjaan
dibuang. Setiap satu dieksekusi menggunakan konsep memori virtual. Itu menggunakan penjadwalan CPU, manajemen memori, disk
manajemen dan manajemen keamanan. Contoh: CTSS, MULTICS, CAL, UNIX dll.
[Link] Operasi Multiprosesor
Sistem operasi multiprosesor juga dikenal sebagai OS paralel atau OS yang terhubung erat. Sistem operasi semacam itu
sistem memiliki lebih dari satu prosesor yang berkomunikasi dekat yang berbagi bus komputer, jam dan
kadang-kadang memori dan perangkat perifer. Ini menjalankan banyak pekerjaan pada saat yang sama dan membuat pemrosesan lebih cepat.
Sistem multiprosesor memiliki tiga keunggulan utama:

Increased throughput:By increasing the number of processors, the system performs more work in less time.
Rasio percepatan dengan N prosesor kurang dari N.

Economi skala: Sistem multiprosesor dapat menghemat lebih banyak uang dibandingkan dengan beberapa sistem prosesor tunggal.
karena mereka dapat berbagi periferal, penyimpanan massal, dan catu daya.
Peningkatan keandalan: Jika satu prosesor gagal menyelesaikan tugasnya, maka setiap prosesor yang tersisa harus mengambil alih.
membagi sebagian tugas dari prosesor yang gagal. Kegagalan satu prosesor tidak akan menghentikan sistem, hanya memperlambat
turunkan.

Kemampuan untuk terus menyediakan layanan yang proporsional dengan tingkat perangkat keras yang bertahan disebut anggun.
degradasi. Sistem yang dirancang untuk degradasi yang baik disebut toleran terhadap kesalahan.

Sistem operasi multiprosesor diklasifikasikan menjadi dua kategori:


Sistem pemrosesan simetris
Sistem multiprocessing asimetris
Dalam sistem pemrosesan simetris, setiap prosesor menjalankan salinan identik dari sistem operasi.
dan salinan ini berkomunikasi satu sama lain sesuai kebutuhan.
Dalam sistem pemrosesan asimetris, prosesor disebut prosesor master yang mengontrol yang lainnya.
prosesor yang disebut prosesor budak. Dengan demikian, itu menetapkan hubungan master-budak. Prosesor master
menjadwalkan pekerjaan dan mengelola memori untuk seluruh sistem.
[Link] Operasi Terdistribusi
Dalam sistem terdistribusi, mesin yang berbeda terhubung dalam jaringan dan setiap mesin memiliki prosesornya sendiri
dan memiliki memori lokal.
Dalam sistem ini, sistem operasi di semua mesin bekerja sama untuk mengelola jaringan kolektif
sumber.
Dapat diklasifikasikan menjadi dua kategori:
Sistem Klien-Server
Sistem Peer-to-Peer
Keuntungan dari sistem terdistribusi.
Berbagi Sumber Daya
Percepatan komputasi – berbagi beban
Keandalan
Komunikasi
Requires networking infrastructure.
Jaringan area lokal (LAN) atau jaringan area luas (WAN)
.
[Link] Desktop/Sistem Komputer Pribadi
Sistem operasi PC dirancang untuk memaksimalkan kenyamanan dan responsivitas pengguna. Sistem ini
tidak bersifat multi-pengguna maupun multitasking.
Sistem ini mencakup PC yang menjalankan Microsoft Windows dan Apple Macintosh. MS-DOS
sistem operasi dari Microsoft telah digantikan oleh berbagai versi Microsoft Windows dan
IBM telah mengupgrade MS-DOS ke sistem multitasking OS/2.
Sistem operasi Apple Macintosh telah dipindahkan ke perangkat keras yang lebih canggih, dan sekarang termasuk
fitur baru seperti memori virtual dan multitasking.
[Link] Operasi Waktu Nyata (RTOS)
Sistem operasi waktu nyata (RTOS) adalah sistem operasi multitasking yang ditujukan untuk aplikasi dengan
batas waktu tetap (komputasi waktu nyata). Aplikasi semacam itu termasuk beberapa sistem embedded kecil,
pengendali mesin otomatis, robot industri, pesawat luar angkasa, kontrol industri, dan beberapa skala besar
sistem komputasi.
Sistem operasi waktu nyata dapat diklasifikasikan menjadi dua kategori:
sistem waktu nyata keras dan
2. sistem waktu nyata lembut.
Sistem waktu nyata keras menjamin bahwa tugas-tugas kritis diselesaikan tepat waktu. Tujuan ini memerlukan bahwa semua
penundaan dalam sistem dibatasi, dari pengambilan data yang disimpan hingga waktu yang diperlukan oleh operasi
sistem untuk menyelesaikan setiap permintaan yang dibuat kepadanya. Batasan waktu seperti itu menentukan fasilitas yang tersedia di
sistem waktu nyata keras.
Sistem waktu nyata lunak adalah jenis sistem waktu nyata yang kurang ketat. Di sini, tugas waktu nyata kritis mendapatkan
prioritas atas tugas-tugas lain dan mempertahankan prioritas itu sampai selesai. Sistem waktu nyata lunak dapat dicampur
dengan jenis sistem lainnya. Karena kurangnya pembatasan, mereka berisiko untuk digunakan dalam pengendalian industri dan
robotika.

Struktur Sistem Operasi


Komponen Sistem
Layanan Sistem Operasi
Panggilan Sistem
Program Sistem
Struktur Sistem
Mesin Virtual
Desain dan Implementasi Sistem
Generasi Sistem
Komponen Sistem Umum
Manajemen Proses
Manajemen Memori Utama
Manajemen Berkas
Manajemen Sistem I/O
Manajemen Sekunder
Jaringan
Sistem Perlindungan
Sistem Penerjemah Perintah

Layanan Sistem Operasi:


Berikut adalah lima layanan yang disediakan oleh sistem operasi untuk kenyamanan pengguna.
Eksekusi Program
Tujuan sistem komputer adalah untuk memungkinkan pengguna menjalankan program. Jadi sistem operasi
menyediakan lingkungan di mana pengguna dapat dengan mudah menjalankan program. Menjalankan suatu program melibatkan pengalokasian
dan mengalokasikan memori, penjadwalan CPU dalam kasus multiproses.
I/O Operations
Setiap program memerlukan input dan menghasilkan output. Ini melibatkan penggunaan I/O. Jadi sistem operasi
memberikan I/O membuatnya nyaman bagi pengguna untuk menjalankan program.
Manipulasi Sistem Berkas
Keluaran dari sebuah program mungkin perlu ditulis ke dalam file baru atau input diambil dari beberapa file. Sistem operasi
sistem menyediakan layanan ini.
Komunikasi
Proses-proses perlu saling berkomunikasi untuk bertukar informasi selama eksekusi. Mungkin saja
antara proses yang berjalan di komputer yang sama atau berjalan di komputer yang berbeda. Komunikasi dapat dilakukan
terjadi dalam dua cara: (i) memori bersama atau (ii) pengiriman pesan
Deteksi Kesalahan
Kesalahan adalah satu bagian dari sistem yang dapat menyebabkan kerusakan pada sistem secara keseluruhan. Untuk menghindari hal tersebut

sistem operasi situasi terus memantau sistem untuk mendeteksi kesalahan. Ini meringankan pengguna dari
khawatir akan kesalahan yang menyebar ke berbagai bagian sistem dan menyebabkan malfungsi.
Berikut adalah tiga layanan yang diberikan oleh sistem operasi untuk memastikan operasi yang efisien dari
sistem itu sendiri.
Alokasi sumber daya
Ketika beberapa pengguna terhubung ke sistem atau beberapa pekerjaan berjalan secara bersamaan, sumber daya
harus dialokasikan kepada masing-masing dari mereka. Banyak jenis sumber daya yang dikelola oleh sistem operasi.
Akuntansi
Sistem operasi mencatat pengguna mana yang menggunakan berapa banyak dan jenis sumber daya komputer apa.
Pencatatan ini dapat digunakan untuk akuntansi (agar pengguna dapat ditagih) atau sekadar untuk mengumpulkan penggunaan
statistik.
Perlindungan
Ketika beberapa proses yang terpisah tidak berhubungan dijalankan secara bersamaan, seharusnya tidak mungkin bagi satu proses untuk mengganggu proses lainnya.
lainnya, atau dengan sistem operasi itu sendiri. Perlindungan melibatkan memastikan bahwa semua akses ke sumber daya sistem dikendalikan.
Keamanan sistem dari orang luar juga penting. Keamanan seperti itu dimulai dengan setiap pengguna harus mengautentikasi dirinya
ke sistem, biasanya dengan menggunakan kata sandi, untuk diizinkan mengakses sumber daya

System Call:

Panggilan sistem menyediakan antarmuka antara proses dan sistem operasi.


Panggilan sistem memungkinkan proses tingkat pengguna untuk meminta beberapa layanan dari sistem operasi yang proses
diri sendiri tidak diizinkan untuk melakukannya.

Misalnya, untuk I/O, suatu proses melibatkan panggilan sistem yang memberi tahu sistem operasi untuk membaca atau menulis tertentu.

area dan permintaan ini dipenuhi oleh sistem operasi.

Jenis-jenis berbeda dari sistem panggilan yang disediakan oleh sistem operasi:
Kontrol proses

end, abort
muat, eksekusi
create process, terminate process
ambil atribut proses, atur atribut proses
tunggu waktu
wait event, signal event
alokasi dan pembebasan memori
Manajemen file

create file, delete file


open, close
baca, tulis, posisikan ulang
get file attributes, set file attributes
Manajemen perangkat

request device, release device


baca, tulis, reposition
get device attributes, set device attributes
secara logis menghubungkan atau memutuskan perangkat

Pemeliharaan informasi

get time or date, set time or date


get system data, set system data
mengambil atribut proses, file, atau perangkat
mengatur atribut proses, file, atau perangkat
Komunikasi

create, delete communication connection


kirim, terima pesan
informasi status transfer
menyambungkan atau melepaskan perangkat jarak jauh

Mesin Virtual
Sebuah mesin virtual mengambil pendekatan berlapis hingga kesimpulan logisnya. Ini memperlakukan perangkat keras dan sistem operasi
kernel sistem seolah-olah mereka semua adalah perangkat keras.
Sebuah mesin virtual menyediakan antarmuka yang identik dengan perangkat keras dasar yang mendasarinya.
Sistem operasi menciptakan ilusi banyak proses, masing-masing dijalankan pada prosesornya sendiri dengan
memori (virtual) nya sendiri.
Sumber daya komputer fisik dibagikan untuk membuat mesin virtual.
Jadwal CPU dapat menciptakan kesan bahwa pengguna memiliki prosesor mereka sendiri.
Spooling dan sistem file dapat menyediakan pembaca kartu virtual dan printer garis virtual.
Terminal berbagi waktu pengguna normal berfungsi sebagai konsol operator mesin virtual.

Model Sistem

Mesin Non-virtual Mesin Virtual

Kelebihan/Kekurangan Mesin Virtual


Konsep mesin virtual memberikan perlindungan lengkap terhadap sumber daya sistem karena setiap mesin virtual adalah
terpisah dari semua mesin virtual lainnya. Namun, isolasi ini tidak memungkinkan adanya berbagi sumber daya secara langsung.
Sistem mesin virtual adalah kendaraan yang sempurna untuk penelitian dan pengembangan sistem operasi.
pengembangan dilakukan di mesin virtual, alih-alih di mesin fisik dan dengan demikian tidak mengganggu normal
operasi sistem.
Konsep mesin virtual sulit untuk diimplementasikan karena upaya yang diperlukan untuk menyediakan duplikat yang persis.
mesin yang mendasari.

Jadwal Proses dan CPU

Catatan Kelas.

MODUL-2
Manajemen Memori dan Memori Virtual–
Catatan Kelas.

Pengambilan Permintaan:

Sistem permintaan paging mirip dengan sistem paging dengan swapping. Secara umum, Proses berada di
memori sekunder (yang biasanya adalah disk). Ketika kita ingin menjalankan sebuah proses, kita memindahkannya ke dalam memori. Lebih tepatnya
daripada menukar seluruh proses ke memori, itu menukar halaman yang diperlukan. Ini dapat dilakukan oleh penukar malas.
Seorang penukar yang malas tidak pernah memindahkan halaman ke dalam memori kecuali halaman itu akan diperlukan. Seorang penukar mengolah
seluruh proses, sementara apageris terkait dengan halaman individu dari sebuah proses.

Metode transfer halaman:


Ketika sebuah proses akan dipindahkan masuk, pager memperkirakan halaman mana yang akan digunakan sebelum proses dipindahkan.
keluar lagi. Alih-alih mengganti seluruh proses, pager hanya membawa halaman yang diperlukan ke dalam memori. Dengan demikian,
ini menghindari membaca halaman memori yang tidak akan digunakan, mengurangi waktu tukar dan jumlah
memori fisik yang dibutuhkan.

(Transfer memori berpaging ke ruang disk kontigu)


Tabel Halaman:

Skema bit valid-tidak valid pada tabel halaman dapat digunakan untuk menunjukkan halaman mana yang saat ini
dalam ingatan.
Ketika bit ini diatur ke "valid", nilai ini menunjukkan bahwa halaman terkait adalah sah dan dalam
memori. Jika bit diatur ke "tidak valid", nilai ini menunjukkan bahwa halaman tersebut entah tidak valid atau adalah
valid tetapi saat ini ada di disk.
Entri tabel halaman untuk halaman yang dibawa ke dalam memori diatur seperti biasa, tetapi tabel halaman
entri untuk halaman yang tidak saat ini dalam memori cukup ditandai tidak valid, atau berisi alamat
dari halaman di disk.

(Tabel halaman ketika beberapa halaman tidak ada di memori utama)

Ketika sebuah halaman merujuk pada halaman yang tidak valid, maka itu disebut Kesalahan Halaman. Ini berarti bahwa halaman tersebut tidak ada di utama
memori. Prosedur untuk menangani kesalahan halaman adalah sebagai berikut:

[Link] memeriksa tabel internal untuk proses ini, untuk menentukan apakah referensi tersebut valid atau tidak valid.
akses memori.
[Link] referensi tidak valid, kami menghentikan proses. Jika itu valid, tetapi kami belum membawa itu masuk.
halaman ke dalam ingatan.
[Link] menemukan bingkai gratis (dengan mengambil satu dari daftar bingkai gratis).
[Link] menjadwalkan operasi disk untuk membaca halaman yang diinginkan ke dalam bingkai yang baru dialokasikan.
[Link] pembacaan disk selesai, kami memodifikasi tabel internal yang disimpan dengan proses dan tabel halaman untuk
tunjukkan bahwa halaman sekarang ada di memori.
[Link] memulai ulang instruksi yang terputus oleh jebakan alamat ilegal. Proses sekarang dapat mengakses
halaman seolah-olah selalu ada dalam ingatan.
(Diagram Langkah-langkah dalam menangani kesalahan halaman)

Catatan: Halaman-halaman disalin ke dalam memori, hanya ketika mereka diperlukan. Mekanisme ini disebut Pure
Pengambilan Permintaan.

Performa Paging Permintaan


Biarkan p menjadi probabilitas terjadinya kesalahan halaman (0 < p < 1). Maka waktu akses efektif adalah

Waktu akses efektif = (1 - p) x waktu akses memori + p x waktu kesalahan halaman


Dalam hal apa pun, kami dihadapkan pada tiga komponen utama dari waktu layanan kesalahan halaman:

Layani interupsi kesalahan halaman.


2. Bacalah laman itu.
3. Mulai kembali proses.

Thrashing:
Sistem menghabiskan sebagian besar waktunya untuk memindahkan halaman antara memori utama dan memori sekunder karena
kesalahan halaman yang sering. Perilaku ini dikenal sebagai thrashing.

Sebuah proses disebut thrashing jika menghabiskan lebih banyak waktu untuk melakukan paging daripada mengeksekusi. Ini mengarah pada: rendahnya pemanfaatan CPU

dan sistem operasi menganggap bahwa ia perlu meningkatkan derajat multiprogramming.

Penghancuran
Penggantian Halaman
Penggantian halaman adalah mekanisme yang memuat halaman dari disk ke memori ketika sebuah halaman dari
memori perlu dialokasikan. Penggantian halaman dapat dijelaskan sebagai berikut:

1. Temukan lokasi halaman yang diinginkan di disk.


2. Temukan frame gratis:
[Link] ada bingkai kosong, gunakanlah.
[Link] tidak ada bingkai gratis, gunakan algoritma penggantian halaman untuk memilih bingkai korban.
[Link] halaman korban ke disk; ubah tabel halaman dan tabel bingkai sesuai.
3. Baca halaman yang diinginkan ke dalam bingkai yang (baru) bebas; ubah tabel halaman dan bingkai.
4. Restart the user process.

(Diagram penggantian Halaman)

Algoritma Penggantian Halaman:


Contoh buku teks.

Pengalokasian Frame:

Ketika terjadi kesalahan halaman, ada bingkai kosong yang tersedia untuk menyimpan halaman baru ke dalam bingkai. Sementara itu
pertukaran halaman sedang terjadi, penggantian dapat dipilih, yang ditulis ke disk sebagai proses pengguna
melanjutkan untuk dieksekusi. Sistem operasi mengalokasikan semua buffer dan ruang tabelnya dari daftar frame gratis untuk
halaman baru.

Dua algoritma/skema alokasi utama.

[Link] yang sama


[Link] proporsional
[Link] yang sama: Cara termudah untuk membagi m bingkai di antara n proses adalah memberikan kepada semua orang secara merata
bagikan, m/n bingkai. Skema ini disebut alokasi yang sama.
[Link] proporsional: Di sini, ia mengalokasikan memori yang tersedia untuk setiap proses sesuai dengan ukurannya. Biarkan
ukuran memori virtual untuk prosespsayabessaya , dan mendefinisikan S= ∑ Si
Kemudian, jika jumlah total bingkai yang tersedia adalah m, kita mengalokasikan asayaframe untuk memproses psaya, di manasayaadalah
sekitari = Si/ S x m.
MODUL-3

ANTARMUKA SISTEM BERKAS


Sistem berkas menyediakan mekanisme untuk penyimpanan daring dan akses baik data maupun program.
dari sistem operasi dan semua pengguna sistem komputer. Sistem file terdiri dari dua yang berbeda
bagian: kumpulan file, masing-masing menyimpan data terkait, dan struktur direktori, yang mengatur dan menyediakan
informasi tentang semua file di sistem.

KONSEP FILE:
Sebuah file adalah kumpulan informasi terkait yang direkam di penyimpanan sekunder. Dari perspektif pengguna
perspektif, sebuah file adalah alokasi terkecil dari penyimpanan sekunder logis dan data tidak dapat ditulis ke
penyimpanan sekunder kecuali mereka berada dalam sebuah file.

Empat istilah umum yang digunakan saat membahas file: Field, Record, File, dan Database
Bidang adalah elemen dasar dari data. Sebuah bidang individu berisi satu nilai, seperti seorang karyawan's
nama belakang, tanggal, atau nilai pembacaan sensor. Ini dicirikan oleh panjang dan jenis datanya.
Arecord adalah kumpulan bidang terkait yang dapat diperlakukan sebagai unit oleh beberapa program aplikasi.
contoh, catatan karyawan akan berisi bidang-bidang seperti nama, nomor jaminan sosial, pekerjaan
klasifikasi, tanggal perekrutan, dan seterusnya.
File adalah kumpulan catatan yang serupa. File diperlakukan sebagai entitas tunggal oleh pengguna dan aplikasi.
dan dapat dirujuk dengan nama.
Basis data adalah kumpulan data yang terkait. Sebuah basis data dapat memuat semua informasi yang berkaitan dengan sebuah
organisasi atau proyek, seperti bisnis atau studi ilmiah. Basis data itu sendiri terdiri dari satu atau
lebih banyak jenis file.

Atribut File:

Sebuah file memiliki atribut berikut:

Nama: Nama file simbolis adalah satu-satunya informasi yang disimpan dalam bentuk yang dapat dibaca manusia.
Identifier:This unique tag, usually a number, identifies the file within the file system; it is the non-
nama yang dapat dibaca manusia untuk file.
Informasi ini diperlukan untuk sistem yang mendukung berbagai jenis.
Lokasi: Informasi ini adalah petunjuk ke sebuah perangkat dan lokasi file di perangkat tersebut.
Size:The current size of the file (in bytes, words, or blocks), and possibly the maximum allowed size
termasuk dalam atribut ini.
Perlindungan: Informasi kontrol akses menentukan siapa yang dapat melakukan pembacaan, penulisan, eksekusi, dan sebagainya.
Waktu, tanggal, dan identifikasi pengguna: Informasi ini mungkin disimpan untuk pembuatan, modifikasi
dan penggunaan terakhir. Data ini dapat berguna untuk perlindungan, keamanan, dan pemantauan penggunaan.
Operasi Berkas:

Sistem operasi dapat menyediakan sistem panggilan untuk membuat, menulis, membaca, memposisikan ulang, menghapus, dan
memotong file. Operasi file dijelaskan sebagai berikut:
Membuat file: Dua langkah diperlukan untuk membuat file. Pertama, ruang di sistem file harus ditemukan.
untuk file tersebut. Kedua, entri untuk file baru harus dibuat di direktori. Entri direktori mencatat
nama file dan lokasi di sistem file, dan mungkin informasi lain.
Menulis sebuah file: Untuk menulis sebuah file, kita melakukan panggilan sistem dengan menyebutkan nama file serta
informasi yang akan dituliskan ke dalam file. Mengingat nama file, sistem mencari direktori untuk menemukan
lokasi file. Sistem harus menjaga pointer untuk lokasi di file tempat berikutnya
tulisan adalah untuk terjadi. Penunjuk tulisan harus diperbarui setiap kali penulisan terjadi.
Membaca sebuah file: Untuk membaca dari sebuah file, kita menggunakan panggilan sistem yang menunjukkan nama file dan di mana
(di memori utama) blok berikutnya dari file harus ditempatkan. Sekali lagi, direktori dicari untuk
entri direktori yang terkait, dan sistem perlu menjaga pointer baca ke lokasi di dalam file di mana
bacaan berikutnya akan berlangsung. Setelah bacaan dilakukan, penunjuk bacaan diperbarui.
Reposisi dalam sebuah file: Direktori dicari untuk entri yang sesuai, dan file saat ini
posisi diatur ke nilai tertentu. Memindahkan posisi dalam file tidak perlu melibatkan I/O yang sebenarnya. Ini
operasi berkas juga dikenal sebagai pencarian berkas.
Menghapus file: Untuk menghapus file, kita mencari direktori untuk file yang bernama tersebut. Setelah menemukan yang terkait
entri direktori, kami melepaskan semua ruang file, sehingga dapat digunakan kembali oleh file lain, dan menghapus direktori
entri.
Memotong sebuah file: Pengguna mungkin ingin menghapus isi sebuah file tetapi tetap menjaga atributnya. Alih-alih
memaksa pengguna untuk menghapus file dan kemudian membuatnya kembali, fungsi ini memungkinkan semua atribut untuk tetap ada
tidak berubah - kecuali untuk panjang file - tetapi memungkinkan file diatur ulang menjadi panjang nol dan ruang filenya dirilis.

Jenis File: File diklasifikasikan ke dalam berbagai kategori sebagai berikut:

Nama dibagi menjadi dua bagian - sebuah nama dan ekstensi, Sistem menggunakan ekstensi untuk menunjukkan jenisnya
dari file dan jenis operasi yang dapat dilakukan pada file tersebut.
Metode akses:

Ketika sebuah file digunakan, informasi ini harus diakses dan dibaca ke dalam memori komputer.
informasi dalam file dapat diakses dengan beberapa cara. Ada dua metode akses utama sebagai berikut:
Akses Berurutan: Informasi dalam file diproses secara urutan, satu rekaman setelah yang lain. Operasi baca
membaca bagian berikutnya dari file dan secara otomatis memajukan penunjuk file, yang melacak lokasi I/O.
Demikian pula, sebuah penulisan menambahkan ke akhir file dan bergerak ke akhir materi yang baru ditulis.
akhir berkas baru). Akses berurutan didasarkan pada model pita dari sebuah berkas, dan juga berfungsi dengan baik pada akses berurutan
perangkat seperti halnya pada perangkat akses acak.

Akses Langsung: Sebuah file terdiri dari catatan logis dengan panjang tetap yang memungkinkan program untuk membaca dan menulis
mencatat dengan cepat tanpa urutan tertentu. Metode akses langsung didasarkan pada model disk dari sebuah file, karena disk
allow random access to any file block. For direct access, the file is viewed as a numbered sequence of blocks
atau catatan. File akses langsung memungkinkan blok sembarang untuk dibaca atau ditulis. Tidak ada batasan pada
urutan membaca atau menulis untuk file akses langsung. Untuk metode akses langsung, operasi file harus
dimodifikasi untuk menyertakan nomor blok sebagai parameter. Jadi, kami memiliki baca n, di mana n adalah nomor blok,
daripada membaca selanjutnya, dan menulis daripada menulis selanjutnya.

Struktur Direktori:

Sebuah direktori adalah objek yang berisi nama-nama objek sistem file. Sistem file memungkinkan pengguna
untuk mengatur file dan objek sistem file lainnya melalui penggunaan direktori. Struktur yang dibuat oleh
penempatan nama dalam direktori dapat mengambil beberapa bentuk: Pohon satu tingkat, Pohon dua tingkat, pohon multi-tingkat
pohon atau grafik siklik.

Direktori Tingkat Tunggal: Struktur direktori yang paling sederhana adalah direktori tingkat tunggal. Semua file terkandung
di direktori yang sama, yang mudah untuk didukung dan dipahami. Direktori tingkat tunggal memiliki signifikansi yang besar
batasan, ketika jumlah file meningkat atau ketika sistem memiliki lebih dari satu pengguna. Karena semua file adalah
di direktori yang sama, mereka harus memiliki nama yang unik.

Direktori Dua Tingkat: Dalam struktur direktori dua tingkat, setiap pengguna memiliki direktori file pengguna sendiri (UFD).
Setiap UFD memiliki struktur yang mirip, tetapi hanya mencantumkan file dari satu pengguna. Ketika pekerjaan pengguna dimulai atau seorang pengguna
Saat log in, direktori file master sistem (MFD) dicari. MFD diindeks berdasarkan nama pengguna atau akun
nomor, dan setiap entri menunjuk ke UFD untuk pengguna tersebut.
Ketika seorang pengguna merujuk ke file tertentu, hanya UFD miliknya yang dicari. Pengguna yang berbeda mungkin memiliki file yang sama.
dengan nama yang sama, selama semua nama file di dalam setiap UFD adalah unik.
Untuk membuat file untuk pengguna, sistem operasi hanya mencari UFD pengguna tersebut untuk menentukan apakah
file lain dengan nama itu sudah ada. Untuk menghapus sebuah file, sistem operasi membatasi pencariannya pada UFD lokal;
Dengan demikian, itu tidak dapat secara tidak sengaja menghapus file pengguna lain yang memiliki nama yang sama.
Direktori yang terstruktur pohon: Struktur pohon adalah pendekatan yang lebih kuat dan fleksibel untuk mengorganisir file.
dan direktori dalam hierarki. Ada direktori utama, yang memiliki di bawahnya sejumlah direktori pengguna.
Setiap direktori pengguna ini dapat memiliki sub-direktori dan file sebagai entri. Ini berlaku di setiap tingkat: Artinya,
di mana saja, sebuah direktori dapat terdiri dari entri untuk subdirektori dan/atau entri untuk file.

Direktori Graf Acyclic


Graf acyclic memungkinkan direktori memiliki subdirektori dan file yang dibagikan. File yang sama atau
subdirektori dapat berada di dua direktori yang berbeda. Graf asiklik adalah generalisasi alami dari pohon
skema direktori terstruktur.
Sebuah file (atau direktori) yang dibagikan tidak sama dengan dua salinan file tersebut. Dengan dua salinan, masing-masing
pemrogram dapat melihat salinan daripada yang asli, tetapi jika salah satu pemrogram mengubah file, perubahannya
tidak akan muncul di salinan orang lain.
File dan subdirektori yang dibagikan dapat diimplementasikan dengan beberapa cara. Salah satu cara yang umum adalah membuat sebuah
entri direktori baru yang disebut tautan. Tautan adalah penunjuk ke file atau subdirektori lain.
Direktori Grafik Umum:
Ketika kami menambahkan tautan ke direktori berstruktur pohon yang sudah ada, struktur pohon akan hancur, mengakibatkan sebuah
struktur grafik sederhana.

File Protection:

Metode yang digunakan untuk melindungi data berharga di komputer. Perlindungan file dilakukan dengan kata sandi.
melindungi sebuah file atau hanya memberikanhakkepada pengguna atau kelompok tertentu.

Struktur Sistem Berkas:

Sistem File memberikan akses yang efisien ke disk dengan memungkinkan data disimpan, ditempatkan, dan diambil.
cara yang nyaman. Sistem file harus dapat menyimpan file, menemukan file, dan mengambil file.
Sebagian besar Sistem Operasi menggunakan pendekatan berlapis untuk setiap tugas termasuk sistem berkas. Setiap lapisan
sistem berkas bertanggung jawab atas beberapa aktivitas.

Gambar yang ditunjukkan di bawah ini, menjelaskan bagaimana sistem file dibagi menjadi berbagai lapisan, dan juga fungsionalitasnya.
setiap lapisan.

Ketika sebuah program aplikasi meminta sebuah file, permintaan pertama ditujukan ke sistem file logis.
sistem file logis berisi metadata dari file dan struktur direktori. Jika program aplikasi
tidak memiliki izin yang diperlukan dari file maka lapisan ini akan menghasilkan kesalahan. Sistem file logis
juga verifikasi path ke file.
Secara umum, file dibagi menjadi berbagai blok logis. File harus disimpan di hard disk dan harus
diambil dari hard disk. Hard disk dibagi menjadi berbagai track dan sektor. Oleh karena itu, untuk dapat
Menyimpan dan mengambil berkas, blok logis perlu dipetakan ke blok fisik. Pemetaan ini dilakukan
oleh modul organisasi berkas. Ini juga bertanggung jawab untuk manajemen ruang kosong.
Setelah modul organisasi berkas memutuskan blok fisik mana yang dibutuhkan program aplikasi, ia meneruskan ini
information to basic file system. The basic file system is responsible for issuing the commands to I/O
kontrol untuk mengambil blok-blok tersebut.
Kontrol I/O mengandung kode-kode yang digunakan untuk mengakses hard disk. Kode-kode ini dikenal sebagai perangkat.
driver. Kontrol I/O juga bertanggung jawab untuk menangani interupsi.

Metode alokasi:

Sistem operasi memberikan ruang disk kepada berkas. Sistem operasi menerapkan tiga cara utama berikut untuk
alokasikan ruang disk untuk file.

Alokasi Kontigu
Alokasi Tautan
Alokasi Terindeks
Alokasi Kontigu

Setiap file menempati ruang alamat yang berdekatan di disk.


Alamat disk yang ditetapkan berada dalam urutan linier.
Mudah untuk diterapkan.
Fragmentasi eksternal adalah masalah utama dengan jenis teknik alokasi ini.
Alokasi Tautan

Setiap file membawa daftar tautan ke blok disk.


Direktori berisi tautan / penunjuk ke blok pertama dari sebuah berkas.
Tidak ada fragmentasi eksternal
Digunakan secara efektif dalam file akses berurutan.
Tidak efisien dalam hal file akses langsung.
Pengalokasian Terindeks

Memberikan solusi untuk masalah alokasi kontigu dan yang terhubung.


Sebuah blok indeks dibuat yang memiliki semua pointer ke file.
Setiap file memiliki blok indeksnya sendiri yang menyimpan alamat ruang disk yang ditempati oleh file tersebut.
Direktori berisi alamat blok indeks dari file.
(Untuk Diagram, ikuti buku teks Anda)

Manajemen Ruang Gratis:

Sistem melacak blok disk yang tersedia untuk mengalokasikan ruang ke file saat mereka dibuat. Juga, untuk digunakan kembali
ruang yang dilepaskan dari penghapusan berkas, manajemen ruang kosong menjadi krusial. Sistem mempertahankan ruang kosong
daftar ruang yang melacak blok disk yang tidak dialokasikan untuk file atau direktori tertentu. Daftar ruang kosong
dapat diimplementasikan terutama sebagai:

[Link] atau Vektor Bit–

Bitmap atau Bit Vector adalah serangkaian atau kumpulan bit di mana setiap bit sesuai dengan blok disk. Bit
dapat mengambil dua nilai: 0 dan 1: 0 menunjukkan bahwa blok dialokasikan dan 1 menunjukkan blok kosong.
Contoh blok disk yang diberikan pada disk di Gambar 1 (di mana blok hijau dialokasikan) dapat menjadi
diwakili oleh bitmap 16 bit sebagai: 0000111000000110.
Keuntungan–
Mudah dipahami.
Mencari blok gratis pertama itu efisien. Ini memerlukan pemindaian kata-kata (sekelompok 8 bit) dalam bitmap
untuk kata yang tidak nol. (Kata bernilai 0 memiliki semua bit 0). Blok gratis pertama kemudian ditemukan dengan memindai
untuk 1 bit pertama di kata non-nol.
Nomor blok dapat dihitung sebagai:

(jumlah bit per kata) *(jumlah kata dengan nilai 0) + offset dari bit pertama 1 dalam kata non-nol.

Untuk Gambar-1, kami memindai bitmap secara berurutan untuk kata non-nol pertama.
Grup pertama dari 8 bit (00001110) membentuk sebuah kata non-nol karena tidak semua bit bernilai 0. Setelah kata non-0
ditemukan, kami mencari bit 1 pertama. Ini adalah bit ke-5 dari kata non-nol. Jadi, offset = 5.
Oleh karena itu, nomor blok gratis pertama = 8*0+5 = 5.
[Link] Tautan–

Dalam pendekatan ini, blok disk kosong dihubungkan bersama, yaitu blok kosong berisi pointer ke blok berikutnya.
blok gratis. Nomor blok dari blok disk pertama disimpan di lokasi terpisah di disk dan adalah
juga disimpan di memori.
Di Gambar-2, kepala daftar ruang bebas menunjuk ke Blok 5 yang menunjuk ke Blok 6, blok bebas berikutnya dan seterusnya
blok terakhir yang gratis akan berisi pointer null yang menunjukkan akhir dari daftar gratis.
Sebuah kelemahan dari metode ini adalah I/O yang diperlukan untuk penelusuran daftar ruang kosong.
Pengelompokan –
Pendekatan ini menyimpan alamat blok kosong di blok kosong pertama. Blok kosong pertama menyimpan
alamat dari beberapa, katakanlah n blok gratis. Dari n blok ini, n-1 blok pertama sebenarnya gratis dan yang terakhir
blok mengandung yang alamat dari berikutnya gratis n blok.
Salah satu keuntungan dari pendekatan ini adalah bahwa alamat sekelompok blok disk bebas dapat ditemukan dengan mudah.
Menghitung –
Pendekatan ini menyimpan alamat dari blok disk bebas pertama dan jumlah n dari blok disk bebas yang bersebelahan.
yang mengikuti blok pertama.
Setiap entri dalam daftar akan berisi:
1. Alamat blok disk gratis pertama
2. Sebuah nomor n
Sebagai contoh, dalam Gambar-1, entri pertama dari daftar ruang kosong adalah: ([Alamat Blok 5], 2), karena 2
blok bebas yang berurutan mengikuti blok 5.

Manajemen Direktori:

Direktori adalah tempat/area/lokasi di mana sekelompok file akan disimpan. Ini adalah folder yang berisi rincian tentang
file, ukuran file dan waktu ketika mereka dibuat dan terakhir diubah. Berbagai jenis direktori dibahas
di bawah
Direktori Akar
Direktori Akar dibuat ketika kita mulai memformat disk dan mulai memasukkan file ke dalamnya. Di sini, kita bisa membuat
direktori baru yang disebut "sub-direktori". Direktori root adalah direktori tingkat tertinggi dan terlihat saat booting
sistem.
Subdirektori
Subdirektori adalah direktori di dalam direktori akar, yang pada gilirannya, dapat memiliki subdirektori lain di dalamnya.

Implementasi Direktori:

Ada sejumlah algoritma yang dapat digunakan untuk mengimplementasikan direktori. Namun,
pemilihan algoritma implementasi direktori yang tepat dapat secara signifikan mempengaruhi kinerja dari
sistem.
Algoritma implementasi direktori diklasifikasikan menurut struktur data yang mereka gunakan. Ada
ada terutama dua algoritma yang digunakan dalam hari-hari ini.

1. Daftar Linier

Dalam algoritma ini, semua berkas dalam sebuah direktori dipelihara sebagai daftar tersambung tunggal. Setiap berkas mengandung pointer
ke blok data yang ditugaskan kepadanya dan file berikutnya dalam direktori.

Karakteristik

1. Ketika sebuah file baru dibuat, maka seluruh daftar diperiksa apakah nama file baru cocok dengan sebuah
nama file yang ada atau tidak. Jika tidak ada, file dapat dibuat di awal atau di akhir.
Oleh karena itu, mencari nama yang unik adalah perhatian besar karena menjelajahi seluruh daftar memerlukan waktu.
2. Daftar perlu dilalui dalam setiap operasi (pembuatan, penghapusan, pembaruan, dll) pada file
karena itu sistem menjadi tidak efisien.

2. Tabel Hash

Untuk mengatasi kekurangan implementasi daftar terkait tunggal dari direktori, ada pendekatan alternatif.
itu adalah tabel hash. Pendekatan ini menyarankan untuk menggunakan tabel hash bersama dengan daftar terkait.

Sepasang kunci-nilai untuk setiap file di direktori dihasilkan dan disimpan dalam tabel hash. Kuncinya bisa jadi
ditentukan dengan menerapkan fungsi hash pada nama file sementara kunci mengarah ke file yang sesuai yang disimpan
di direktori.

Now, searching becomes efficient due to the fact that now, entire list will not be searched on every operating.
Hanya entri tabel hash yang diperiksa menggunakan kunci dan jika entri ditemukan, maka file yang sesuai akan diambil.
menggunakan nilai.

Efisiensi dan Kinerja:


Efisiensi bergantung pada:
alokasi disk dan algoritma direktori
tipe data yang disimpan dalam entri direktori file
Kinerja
disk cache–separate section of main memory for frequently used blocks
teknik free-behind dan read-ahead untuk mengoptimalkan akses berurutan
meningkatkan kinerja PC dengan mendedikasikan bagian dari memori sebagai cakram virtual atau cakram RAM

Masalah Bagian Kritis:


Pertimbangkan sebuah sistem yang terdiri dari n proses {P0, P1, ..., Pn-1}. Setiap proses memiliki segmen kode, yang disebut sebagai
bagian kritis, di mana proses dapat mengubah variabel bersama, memperbarui tabel, menulis file, dan
Begitu seterusnya. Fitur penting dari sistem ini adalah, ketika satu proses sedang dieksekusi di bagian kritisnya, tidak ada proses lain yang...
proses diizinkan untuk dieksekusi di bagian kritisnya. Dengan demikian, eksekusi bagian kritis oleh proses
exclusif satu sama lain dalam waktu. Masalah bagian kritis adalah merancang protokol yang dapat digunakan oleh proses-proses untuk
bekerja sama. Setiap proses harus meminta izin untuk memasuki bagian kritisnya. Bagian kode yang mengimplementasikan
permintaan ini adalah bagian entri. Bagian kritis dapat diikuti oleh bagian keluar. Sisa kode adalah
bagian sisa.

lakukan{
Bagian masuk
Bagian kritis
Bagian keluar
Bagian sisa
}sementara(1);

Sebuah solusi untuk masalah critical-section harus memenuhi tiga persyaratan berikut:

[Link] Mutual: Jika proses Pi sedang mengeksekusi di bagian kritisnya, maka tidak ada proses lain yang bisa.
menjalankan di bagian kritis mereka.
[Link]: Jika tidak ada proses yang dieksekusi di bagian kritisnya dan beberapa proses ingin memasuki bagian kritis mereka
bagian, maka hanya proses yang tidak sedang mengeksekusi di bagian sisa mereka yang dapat berpartisipasi dalam
keputusan tentang siapa yang akan memasuki bagian kritisnya berikutnya, dan pemilihan ini tidak dapat ditunda tanpa batas.
[Link] Terbatas: Terdapat batas pada jumlah kali proses lain diizinkan untuk masuk
bagian kritis mereka setelah sebuah proses mengajukan permintaan untuk memasuki bagian kritisnya dan sebelum permintaan itu
diberikan.

Perangkat Keras Sinkronisasi

Seperti halnya aspek lain dari perangkat lunak, fitur perangkat keras dapat mempermudah tugas pemrograman dan
meningkatkan efisiensi sistem. Di bagian ini, kami menyajikan beberapa instruksi perangkat keras sederhana yang tersedia
di banyak sistem, dan menunjukkan bagaimana mereka dapat digunakan secara efektif dalam menyelesaikan masalah bagian-kritis.

Definisi dari instruksi TestAndSet.

boolean TestAndSet(boolean &target)


{
boolean rv = target;
target = true;
kembalikan rv;
}
Masalah bagian kritis dapat diselesaikan dengan sederhana dalam lingkungan uniprocessor jika kita dapat melarang
interupsi dapat terjadi saat variabel bersama sedang dimodifikasi. Dengan cara ini, kami dapat memastikan bahwa saat ini
urutan instruksi akan diizinkan untuk dieksekusi sesuai urutan tanpa preemption. Instruksi lain tidak akan
dijalankan, sehingga tidak ada modifikasi yang tidak terduga dapat dilakukan pada variabel bersama.

Sayangnya, solusi ini tidak praktis dalam lingkungan multiprosesor. Menonaktifkan interupsi di sebuah
pengoperasian multiprosesor bisa memakan waktu, karena pesan tersebut diteruskan ke semua prosesor. Pengiriman pesan ini
penundaan masuk ke setiap bagian kritis, dan efisiensi sistem menurun. Juga, pertimbangkan efeknya pada sistem
jam, jika jam tersebut diperbarui oleh interupsi.

Banyak mesin oleh karena itu menyediakan instruksi perangkat keras khusus yang memungkinkan kita untuk menguji dan memodifikasi
isi dari suatu kata, atau menukar isi dari dua kata, secara atomik—yaitu, sebagai satu unit yang tidak dapat terganggu. Kita bisa
gunakan petunjuk khusus ini untuk menyelesaikan masalah bagian-kritis dengan cara yang relatif sederhana. Alih-alih
membahas satu instruksi spesifik untuk satu mesin spesifik, mari kita abstraksikan konsep utama di balik jenis ini
instruksi.

Instruksi TestAndSet dapat didefinisikan seperti yang ditunjukkan dalam kode. Karakteristik pentingnya adalah bahwa ini
instruksi dieksekusi secara atomik. Jadi, jika dua instruksi TestAndSet dieksekusi secara bersamaan (masing-masing pada a)
CPU yang berbeda), mereka akan dieksekusi secara berurutan dalam urutan sembarang.
Implementasi mutual-exclusion dengan TestAndSet
lakukan{

sementara(TestAndSet(lock));
bagian kritis
lock=false
Bagian sisa
}sementara(1);

void Tukar(boo1ean &a, boolean &b)


{
boolean temp = a;
a = b;
b = temp
}
Jika mesin mendukung instruksi TestAndSet, maka kita dapat menerapkan eksklusi mutual dengan
mendeklarasikan variabel Boolean lock, diinisialisasi dengan nilai false.
Jika mesin mendukung instruksi Swap, maka eksklusi mutual dapat disediakan sebagai berikut. A
Variabel Boolean global kunci dideklarasikan dan diinisialisasi ke false. Selain itu, setiap proses juga memiliki
Variabel boolean kunci.

Semaphore:
Solusi untuk masalah bagian kritis yang disajikan sebelumnya tidak mudah untuk digeneralisasi ke lebih banyak
masalah kompleks. Untuk mengatasi kesulitan ini, kita dapat menggunakan alat sinkronisasi yang disebut semaphore. A
semaphoreS adalah variabel integer yang, selain dari inisialisasi, hanya diakses melalui dua standar
operasi atom: tunggu dan sinyal. Operasi ini awalnya disebut P (untuk tunggu; dari bahasa Belanda
mencoba, untuk menguji) dan V (untuk sinyal; dari verhogen, untuk meningkat). Definisi klasik dari tunggu dalam
pseudocodeadalah

Tunggu(S) {
sementara (S <= 0);
// tidak ada operasi

S --;
}

Definisi klasik sinyal dalam pseudocode adalah

Sinyal(S){
S++;
}

Modifikasi nilai integer dari semafor dalam operasi tunggu dan sinyal haruslah
executed indivisibly. That is, when one process modifies the semaphore value, no other process can
secara bersamaan mengubah nilai semaphore yang sama. Selain itu, dalam kasus tunggu (S), pengujian dari
nilai bilangan bulat dari S (S 5 O), dan modifikasinya yang mungkin (S--), juga harus dieksekusi tanpa gangguan.

Usage
Kita dapat menggunakan semaphore untuk menangani masalah bagian kritis n-proses. Proses n berbagi sebuah
semaphore, mutex (singkatan dari mutual exclusion), diinisialisasi ke 1. Kita juga dapat menggunakan semaphore untuk menyelesaikan
berbagai masalah sinkronisasi. Sebagai contoh, pertimbangkan dua proses yang berjalan secara bersamaan: P1 dengan a
pernyataan S1 dan P2 dengan pernyataan S2. Misalkan kita memerlukan agar S2 dijalankan hanya setelah S1 telah
selesai. Kami dapat menerapkan skema ini dengan mudah dengan membiarkan P1 dan P2 berbagi semaphore umum synch,
diinisialisasi menjadi 0, dan dengan memasukkan pernyataan dalam proses P1, dan pernyataan

tunggu (synchronisasi) ;

s2;

dalam proses P2. Karena synch diinisialisasi ke 0, P2 hanya akan mengeksekusi S2 setelah P1 memanggil sinyal (synch),
yang setelah S1.

s1;
sinyal (sinkron)
lakukan {

tunggu (mutex);
bagian kritis
sinyal (mutex);
bagian sisa
} sementara (1);
Implementasi eksklusi mutual dengan semaphore.

Implementasi

Kekurangan utama dari solusi eksklusi mutual dan definisi semaphore yang diberikan di sini,
adalah bahwa mereka semua memerlukan menunggu sibuk. Sementara sebuah proses berada di bagian kritisnya, setiap proses lain yang mencoba untuk
masuk ke bagian kritisnya harus terus berulang dalam kode entri. Pengulangan terus-menerus ini jelas merupakan masalah
dalam sebuah sistem multiprogramming yang nyata, di mana satu CPU dibagi di antara banyak proses. Penantian sibuk membuang-buang
Siklus CPU yang mungkin bisa digunakan secara produktif oleh proses lain. Tipe semaphore ini juga disebut
aspinlock (karena proses "berputar" saat menunggu kunci). Spinlock berguna dalam multiprosesor
sistem. Keuntungan dari spinlock adalah bahwa tidak ada peralihan konteks yang diperlukan ketika sebuah proses harus menunggu pada sebuah kunci,
dan pergantian konteks mungkin memakan waktu yang cukup lama. Dengan demikian, ketika kunci diharapkan dipegang untuk waktu yang singkat,
spinlock berguna.
Untuk mengatasi kebutuhan akan penantian sibuk, kita dapat memodifikasi definisi tunggu dan sinyal.
operasi semaphore. Ketika suatu proses menjalankan operasi tunggu dan menemukan bahwa nilai semaphore tidak
positif, itu harus menunggu. Namun, daripada menunggu dengan sibuk, proses dapat memblokir dirinya sendiri. Operasi blok
menempatkan sebuah proses ke dalam antrean tunggu yang terkait dengan semafor, dan status proses tersebut dialihkan
ke keadaan menunggu. Kemudian, kontrol dialihkan ke penjadwal CPU, yang memilih proses lain untuk
eksekusi.
Sebuah proses yang terblokir, menunggu pada semaphore S, harus di-restart ketika proses lain
melaksanakan operasi sinyal. Proses dimulai kembali oleh operasi bangun, yang mengubah proses dari
status menunggu menjadi status siap. Proses kemudian ditempatkan di antrean siap. (CPU mungkin atau mungkin tidak
berpindah dari proses yang berjalan ke proses yang baru siap, tergantung pada penjadwalan CPU
algoritma.)

Untuk menerapkan semaphore di bawah definisi ini, kita mendefinisikan semaphore sebagai struktur "C":

typedef struct {
int nilai ;
struct process *L;
} semaphore;

Setiap semafor memiliki nilai integer dan daftar proses. Ketika sebuah proses harus menunggu pada semafor,
itu ditambahkan ke daftar proses. Sebuah operasi sinyal menghapus satu proses dari daftar proses yang menunggu
dan membangkitkan proses itu.

Operasi semaphore tunggu sekarang dapat didefinisikan sebagai:

void tunggu(semaphore S)
{
[Link]--;
jika ([Link] < 0)
{
tambahkan proses ini ke S.L;
}
blok() ;
}
Operasi sinyal semaphore sekarang dapat dilakukan

didefinisikan sebagai void signal(semaphore S)

{
[Link]++;
jika ([Link] <= 0) {
hapus proses P dari S.L;
}
bangun
}

Operasi blok menghentikan proses yang memanggilnya. Operasi bangun(P1) melanjutkan kembali proses tersebut.
eksekusi proses yang diblokir P. Dua operasi ini disediakan oleh sistem operasi sebagai sistem dasar
panggilan.

Semafor Biner

Konstruk semaphore yang dijelaskan di bagian sebelumnya umumnya dikenal sebagai penghitung
semaphore, karena nilai integernya dapat berkisar pada domain yang tidak terbatas. Semaphore biner adalah semaphore
dengan nilai bilangan bulat yang hanya dapat berkisar antara 0 dan 1. Semaphore biner dapat lebih sederhana untuk
mengimplementasikan daripada semaphore penghitung, tergantung pada arsitektur perangkat keras yang mendasarinya. Kami sekarang akan
tunjukkan bagaimana semaphore penghitung dapat diimplementasikan menggunakan semaphore biner. Biarkan S menjadi penghitung
semaphore.

Untuk mengimplementasikannya dalam istilah semaphore biner, kita memerlukan struktur data berikut:

semafor biner S1, S2;


int C;

Awalnya S1 = 1, S2 = 0, dan nilai integer C diatur ke nilai awal dari semaphore penghitung S. Yang
operasi tunggu pada semaphore penghitungan S dapat diimplementasikan sebagai berikut:
tunggu (S1) ;
C--;
i f (C < 0)
{
sinyal(S1); tunggu(S2);
}
sinyal(S1);

Operasi sinyal pada semaphore hitung S dapat diimplementasikan sebagai berikut:

tunggu (S1);
C++ ;
jika (C <= 0)
sinyal (S2) ;
lain
sinyal (S1) ;
Masalah Klasik Sinkronisasi:

1. Masalah Buffer Terbatas

Masalah buffer terikat umumnya digunakan untuk menggambarkan kekuatan dari primitif sinkronisasi.
Kami sekarang menyajikan struktur umum dari skema ini, tanpa mengikatkan diri pada hal tertentu
implementasi. Kami berasumsi bahwa kolam terdiri dari n buffer, masing-masing mampu menampung satu item. Mutex
semaphore menyediakan eksklusi mutual untuk akses ke kolam buffer dan diinisialisasi dengan nilai 1. Yang
semaphor kosong dan penuh menghitung jumlah buffer kosong dan penuh, masing-masing. Semafor kosong
diinisialisasi ke nilai n; semaphore penuh diinisialisasi ke nilai 0.
Kode untuk proses produsen adalah

lakukan{
produksi barang dalam nextp
...
tunggu (kosong) ;
tunggu (mutex);
...
tambahkan nextp ke buffer
...
sinyal(mutex);
signal (full) ;
} sementara (1);

Kode untuk proses konsumen adalah:

lakukan{
tunggu (penuh) ;
tunggu (mutex);
….
hapus item dari buffer ke nextc
…..
sinyal (mutex) ;
sinyal (kosong) ;
...
konsumsi barang tersebut di nextc
...
} sementara (1);

Perhatikan simetri antara produsen (p) dan konsumen (c). Kita dapat menginterpretasikan kode ini sebagai produsen
menghasilkan buffer penuh untuk konsumen, atau sebagai konsumen menghasilkan buffer kosong untuk produser.

2. The Readers- Writers Problem

Sebuah objek data (seperti file atau catatan) akan dibagikan di antara beberapa proses bersamaan. Beberapa dari
proses-proses ini mungkin hanya ingin membaca konten objek yang dibagikan, sedangkan yang lain mungkin ingin memperbarui
(artinya, untuk membaca dan menulis) objek bersama. Kami membedakan antara kedua jenis proses ini dengan merujuk
kepada proses-proses yang hanya tertarik membaca sebagai pembaca, dan kepada yang lain sebagai penulis. Jelas, jika dua
para pembaca mengakses objek data yang dibagikan secara bersamaan, tidak akan ada efek buruk yang dihasilkan. Namun, jika seorang penulis dan
beberapa proses lain (baik pembaca atau penulis) mengakses objek yang dibagi secara bersamaan, kekacauan mungkin terjadi.

Untuk memastikan bahwa kesulitan ini tidak muncul, kami memerlukan agar penulis memiliki akses eksklusif ke
objek bersama. Masalah sinkronisasi ini disebut sebagai masalah pembaca-penulis. Karena itu telah
sebagaimana dinyatakan sebelumnya, itu telah digunakan untuk menguji hampir setiap primitif sinkronisasi baru. Pembaca-penulis
masalah memiliki beberapa variasi, semua melibatkan prioritas. Yang paling sederhana, yang disebut sebagai pembaca pertama-
masalah penulis, mengharuskan bahwa tidak ada pembaca yang akan ditunggu kecuali penulis telah mendapatkan izin terlebih dahulu
untuk menggunakan objek bersama. Dengan kata lain, tidak ada pembaca yang seharusnya menunggu pembaca lain selesai hanya karena sebuah
penulis sedang menunggu. Masalah kedua pembaca-penulis membutuhkan bahwa, begitu seorang penulis siap, penulis itu
melakukan penulisannya secepat mungkin. Dengan kata lain, jika seorang penulis menunggu untuk mengakses objek, tidak ada yang baru
pembaca dapat mulai membaca.

Sebuah solusi untuk salah satu masalah dapat mengakibatkan kelaparan. Dalam kasus pertama, penulis mungkin kelaparan; dalam
kasus kedua, pembaca mungkin kelaparan. Untuk alasan ini, varian lain dari masalah ini telah diusulkan. Dalam ini
bagian, kami menyajikan solusi untuk masalah pembaca-penulis yang pertama.
Dalam solusi untuk masalah pembaca-penulis yang pertama, proses pembaca berbagi struktur data berikut:

semaphore mutex, wrt;


int readcount;

Semaphore mutex dan wrt diinisialisasi ke 1; readcount diinisialisasi ke 0. Semaphore wrt


adalah umum untuk proses pembaca dan penulis. Semaphore mutex digunakan untuk memastikan eksklusi mutual
ketika variabel readcount diperbarui. Variabel readcount mencatat berapa banyak proses yang sedang
sedang membaca objek tersebut. Semaphore berfungsi sebagai semaphore eksklusi-mutual untuk penulis.
Itu juga digunakan oleh pembaca pertama atau terakhir yang masuk atau keluar dari bagian kritis. Itu tidak digunakan oleh pembaca yang
masuk atau keluar sementara pembaca lain berada dalam bagian kritis mereka.
Kode untuk proses penulis adalah
lakukan{
tunggu (wrt);
...
penulisan dilakukan
...
sinyal(wrt);
}Sementara(1);

Kode untuk proses pembaca adalah


lakukan{
tunggu (mutex);
bacaJumlah++;
jika (jumlah baca == 1)
tunggu (wrt) ;
sinyal (mutex) ;
...
membaca dilakukan
...
tunggu (mutex);
readcount--;
jika (jumlah_baca == 0)
sinyal(wrt);
sinyal (mutex) ;
}sementara(1);

Perhatikan bahwa, jika seorang penulis berada di bagian kritis dan n pembaca sedang menunggu, maka satu pembaca sedang antre pada wrt, dan
n - 1 pembaca mengantri di mutex. Juga diperhatikan bahwa, ketika seorang penulis menjalankan sinyal (wrt), kita mungkin melanjutkan
pelaksanaan baik pembaca yang menunggu atau seorang penulis yang menunggu.
Masalah Filosof Makan

Pertimbangkan lima filsuf yang menghabiskan hidup mereka berpikir dan makan. Para filsuf berbagi sebuah
meja bulat umum dikelilingi oleh lima kursi, masing-masing milik satu filosof. Di tengah-tengah
meja adalah semangkuk nasi, dan meja disiapkan dengan lima pasang sumpit tunggal. Ketika seorang filsuf berpikir, ia melakukan
tidak berinteraksi dengan rekan-rekannya. Dari waktu ke waktu, seorang filsuf merasa lapar dan mencoba untuk mengambil kedua
sumpit yang paling dekat dengan dia (sumpit yang berada di antara dia dan tetangga kirinya dan kanannya). A
filosof dapat mengambil hanya satu sumpit pada satu waktu. Jelas, dia tidak dapat mengambil sumpit yang sedang
sudah di tangan tetangga. Ketika seorang filsuf yang lapar memiliki kedua sumpitnya pada waktu yang sama, ia
makan tanpa melepaskan sumpitnya. Ketika dia selesai makan, dia meletakkan kedua sumpitnya dan
mulai berpikir lagi.

Struktur filsuf i
lakukan {
tunggu (sumpit[i]) ;
tunggu (sumpit[(i+1) % 5] ) ;
...
makan
...
sinyal (sumpit [i]) ;
sinyal(chopstick[(i+1) % 5] );
...
pikir
...
} while (1);

Masalah filsuf yang makan dianggap sebagai masalah sinkronisasi klasik, tidak karena
pentingnya praktisnya maupun karena ilmuwan komputer tidak menyukai filsuf, tetapi karena itu adalah contoh dari
sejumlah besar masalah pengendalian konkuren. Ini adalah representasi sederhana dari kebutuhan untuk mengalokasikan beberapa
sumber daya di antara beberapa proses dengan cara yang bebas dari deadlock dan kelaparan.
Satu solusi sederhana adalah mewakili setiap sumpit dengan sebuah semaphore. Seorang filsuf mencoba untuk mengambil sumpit
dengan mengeksekusi operasi tunggu pada semaphore tersebut; ia melepaskan sumpitnya dengan mengeksekusi operasi sinyal
pada semaphore yang sesuai. Dengan demikian, data yang dibagikan adalah semaphore sumpit; di mana semua elemen dari
sumpit diinisialisasi menjadi 1.
Meskipun solusi ini menjamin bahwa tidak ada dua tetangga yang makan secara bersamaan,
Namun, itu harus ditolak karena memiliki kemungkinan menciptakan kebuntuan. Misalkan bahwa semua lima
para filsuf menjadi lapar secara bersamaan, dan masing-masing mengambil sumpit kiri mereka. Semua elemen sumpit
akan sekarang sama dengan 0. Ketika setiap filsuf mencoba mengambil sumpit kanannya, dia akan tertunda selamanya.
Gunakan solusi asimetris; yaitu, seorang filsuf ganjil terlebih dahulu mengambil sumpit kirinya dan kemudian sumpitnya yang kanan.
sumpit kanan, sementara seorang filsuf yang seimbang mengambil sumpit kanannya terlebih dahulu dan kemudian sumpit kirinya. Akhirnya,
setiap solusi yang memuaskan untuk masalah filosofi makan harus melindungi terhadap kemungkinan bahwa salah satu dari
para filsuf akan mati kelaparan.

Monitors:
Monitor adalah sebuah konstruksi sinkronisasi yang diciptakan untuk mengatasi masalah yang disebabkan oleh semaphore.
seperti kesalahan penjadwalan.

Monitors are abstract data types and contain shared data variables and procedures. The shared data variables
tidak dapat diakses langsung oleh suatu proses dan prosedur diperlukan untuk memungkinkan satu proses mengakses bersama
variabel data pada satu waktu.

Ini ditunjukkan sebagai berikut:


monitor monitorname
{
data variables:
prosedur P1(……)
{
}
Prosedur P2(……)
{

}
.
.
.
Prosedur Pn(…..)
{

}
Kode inisialisasi(…..)
{

}
}

Hanya satu proses yang dapat aktif dalam monitor pada satu waktu. Proses lain yang perlu mengakses yang dibagikan
variabel dalam pemantau harus berbaris dalam antrean dan hanya diberikan akses ketika proses sebelumnya
lepaskan variabel yang dibagikan.
Modul-4

Deadlocks - System Model, Dead locks Characterization, Methods for Handling Deadlocks
Pencegahan Deadlock, Penghindaran Deadlock, Deteksi Deadlock, dan Pemulihan dari Deadlock.

Catatan Kelas

Pemrograman Shell: Konsep shell, Jenis-jenis shell, Editor untuk pemrograman shell (mis. vi)
dasar-dasar pemrograman Shell.

Catatan LAB

Jadwal Disk:

Waktu seek adalah waktu yang dibutuhkan untuk lengan disk memindahkan kepala ke silinder yang mengandung data yang diinginkan
sektor. Latensi rotasi adalah waktu yang dihabiskan untuk menunggu disk berputar sektor yang diinginkan ke kepala disk.
Bandwidth disk adalah total jumlah byte yang ditransfer dibagi dengan total waktu antara permintaan pertama.
untuk layanan dan penyelesaian transfer terakhir.
Kita dapat meningkatkan waktu akses dan bandwidth dengan menjadwalkan pelayanan I/O disk
permintaan dalam urutan yang baik. Beberapa algoritma ada untuk menjadwalkan pelayanan permintaan I/O disk sebagai berikut:

Jadwal FCFS
Bentuk penjadwalan yang paling sederhana adalah penjadwalan first-in-first-out (FIFO), yang memproses item dari
antrian dalam urutan berurutan. Kami mengilustrasikannya dengan antrian permintaan (0-199):

98, 183, 37, 122, 14, 124, 65, 67


Pertimbangkan sekarang pointer Kepala berada di silinder 53.

(Jadwal disk FCFS)


2. Penjadwalan SSTF
Ini adalah singkatan dari algoritme shortest-seek-time-first (SSTF). Algoritme SSTF memilih permintaan dengan
waktu pencarian minimum dari posisi kepala saat ini. Karena waktu pencarian meningkat seiring dengan jumlah
silinder yang dilalui oleh kepala, SSTF memilih permintaan yang tertunda terdekat dengan posisi kepala saat ini. Kami
ilustrasikan ini dengan antrian permintaan (0-199):

98, 183, 37, 122, 14, 124, 65, 67


Pertimbangkan sekarang bahwa penunjuk Kepala berada di silinder 53.

(Jadwal disk SSTF)


3. Penjadwalan SCAN
Dalam algoritma SCAN, lengan disk mulai dari satu ujung disk dan bergerak menuju ujung yang lain,
melayani permintaan saat mencapai setiap silinder, hingga sampai ke ujung disk yang lainnya. Di ujung lainnya,
arah gerakan kepala dibalik, dan pelayanan terus berlanjut. Kepala terus-menerus memindai bolak-balik
melintasi disk. Kami menggambarkan ini dengan antrean permintaan (0-199): 98, 183, 37, 122, 14, 124, 65, 67

Pertimbangkan sekarang pointer Kepala berada di silinder 53.

(Jadwal disk SCAN)


4. Penjadwalan C-SCAN
Jadwal CircularSCAN (C-SCAN) adalah varian dari SCAN yang dirancang untuk memberikan hasil yang lebih merata.
waktu tunggu. Seperti SCAN, C-SCAN menggerakkan kepala dari satu ujung disk ke ujung lainnya, melayani permintaan
sepanjang jalan. Ketika kepala mencapai ujung yang lain, ia segera kembali ke awal disk,
tanpa melayani permintaan apa pun dalam perjalanan kembali. Algoritma penjadwalan C-SCAN pada dasarnya memperlakukan
silinder sebagai daftar melingkar yang melingkar dari silinder terakhir ke silinder pertama. Kami menggambarkan ini dengan sebuah
antrian permintaan (0-199): 98, 183, 37, 122, 14, 124, 65, 67. Sekarang pertimbangkan bahwa indikator Kepala berada di silinder 53.
(Jadwal disk C-SCAN)
5. Jadwal LOOK
Secara praktis, baik algoritma SCAN maupun C-SCAN tidak diimplementasikan dengan cara ini. Lebih umum,
lengan hanya bergerak sejauh permintaan terakhir di setiap arah. Kemudian, ia langsung membalik arah, tanpa
pergi sampai ke ujung disk. Versi SCAN dan C-SCAN ini disebut LOOK dan C-
LOOKpenjadwalan, karena mereka mencari permintaan sebelum melanjutkan bergerak ke arah yang ditentukan. Kami
ilustrasikan ini dengan antrean permintaan (0-199): 98, 183, 37, 122, 14, 124, 65, 67

Pertimbangkan sekarang Pointer Kepala berada di silinder 53.

(Jadwal disk LOOK)

Pemilihan Algoritma Penjadwalan Disk


SSTF umum dan memiliki daya tarik alami.
SCAN dan C-SCAN berkinerja lebih baik untuk sistem yang memberikan beban berat pada disk.
Kinerja tergantung pada jumlah dan jenis permintaan.
Permintaan untuk layanan disk dapat dipengaruhi oleh metode alokasi file.
Algoritma penjadwalan disk harus ditulis sebagai modul terpisah dari sistem operasi, memungkinkan
itu dapat digantikan dengan algoritma yang berbeda jika diperlukan.
Baik SSTF atau LOOK adalah pilihan yang wajar untuk algoritma default.

Anda mungkin juga menyukai