Jun 23, 2023 Pemrograman Sistem

Buffering and Files

Membahas tentang apa itu buffering I/O yang berhubungan dengan file yang disimpan di perangkat I/O, dan membahas tentang spooling, keuntungan dan kekurangannya.

INPUT/OUTPUT BUFFERING

Seringkali proses pengguna menghasilkan permintaan untuk Output jauh lebih cepat daripada yang dapat ditangani oleh perangkat. Selain memiliki proses menunggu ‘permintaan-dilayani’, memanfaatkan buffer untuk menyimpan semua permintaan, lalu proses dapat melakukan hal-hal lain. Ini disebut buffering. Demikian pula untuk input, buffer dapat diisi dari perangkat; proses pengguna mengambil inputnya dari buffer; itu terpaksa menunggu hanya ketika buffer menjadi kosong. Ketika ini terjadi, sistem operasi mengisi ulang buffer dan proses berlanjut. Buffer ganda: adalah kasus ketika dua buffer digunakan. Dalam situasi produsen/konsumen, pengecualian bersama mencegah kedua proses mengakses buffer pada saat yang sama sehingga, mungkin, menyebabkan penundaan. Memberikan masing-masing proses buffernya sendiri akan mengurangi kemungkinan penundaan ini; – transfer antar buffer terjadi ketika tidak ada yang diakses oleh prosesnya.
Catatan: buffering menghaluskan puncak

FILE DEVICES

Bagaimana kita menangani file yang disimpan di perangkat I/O?
Hanya beberapa perangkat I/O yang dapat mendukung file (yaitu membaca/menulis pada area media tertentu, misalnya disk, pita magnetik, tetapi bukan printer, keyboard, vdu), perangkat ini disebut perangkat file.

  • File: area data dengan ukuran tertentu yang dapat ada di media yang dikontrol oleh perangkat.
  • File memiliki nama unik yang digunakan oleh operating system untuk menemukan lokasi file pada media yang sesuai, . . dalam direktori file
  • Mengarahkan aliran data ke/dari perangkat file: kaitkan aliran dengan nama file, bukan nama perangkat; deskripsi pekerjaan tipikal: Input1 = ‘testdata’ yaitu data aliran 1 berasal dari file ‘testdata’

MEMBUKA FILE

Stream dibuka, oprating system mencari nama file di direktori untuk mendapatkan nomor perangkat & lokasi file. Deskriptor file dibuat untuk menyimpan info untuk akses selanjutnya ke file untuk menyertakan:
Alamat deskriptor perangkat
Lokasi file di perangkat itu
Apakah membaca/menulis
Mengajukan organisasi internal
Penunjuk ke deskriptor file diletakkan di deskriptor aliran.

SPOOLING

Spooling adalah level tingkat yang lebih tinggi untuk meratakan permintaan akan sumber daya yang tidak dapat dibagikan: mis. printer. Selama periode permintaan tinggi, beberapa proses ditunda menunggu penggunaan sumber daya yang langka. Selama periode lain, perangkat yang sama ini mungkin tidak digunakan. Kumpulkan semua I/O ke perangkat ini, yaitu melainkan I/O langsung ke perangkat, lakukan pada media perantara, disk. ‘Spooler’ kemudian memindahkan data antara disk dan perangkat.

Contoh jalur printer: Suatu proses yang ingin menggunakan printer diberikan file disk untuk menyimpan semua keluarannya, yaitu file adalah printer jalur virtual. Saat aliran ditutup, file ditambahkan ke antrean. Spooler mengambil file dari antrian & mengirimkannya ke printer.

Catatan

  1. Buffer digunakan antara disk & printer.
  2. Semaphore ‘something to spool‘ ditandai (ditambah) oleh proses apa pun yang menutup jalur aliran printer, yaitu melengkapi file untuk keluaran.
  3. Keluaran sering ditangani dengan mendukung file pendek terlebih dahulu.

KEUNTUNGAN SPOOLING

  1. Meratakan tekanan pada perangkat yang sering digunakan.
  2. Mengurangi kemungkinan kebuntuan yang disebabkan oleh alokasi periferal yang tidak tepat.
  3. Lebih mudah menghasilkan beberapa salinan tanpa menjalankan kembali pekerjaan.

KERUGIAN

  1. Membutuhkan banyak ruang disk.
  2. Lalu lintas padat di saluran disk.
  3. Tidak layak untuk I/O waktu-nyata.

Mari kita simpulkan diskusi kita:

Memisahkan I/O ke dalam proses pengguna, proses I/O dan device handler membuatnya lebih mudah untuk mencapai 3 tujuan:

  • independensi kode karakter
  • Independensi perangkat
  • Keseragaman treatment perangkat

Namun, karena sifatnya yang umum, rutinitas ini terkadang lebih lambat untuk dieksekusi daripada potongan kode khusus yang dibuat khusus untuk operasi dan perangkat I/O tertentu. Oleh karena itu, perhatian yang cermat harus diberikan untuk mengoptimalkan efisiensi rutinitas ini. Kadang-kadang, demi efisiensi, prosedur I/O & penangan perangkat disatukan dan dioptimalkan untuk aplikasi tertentu dari operasi & perangkat yang dikenal.

Tinggalkan Balasan

Alamat email Anda tidak akan dipublikasikan. Ruas yang wajib ditandai *