Category Archives: Uncategorized

Sistem Operasi Pertemuan 11

Session 21 & 22 – Virtual Memory

Definisi Virtual Memory
–  Adalah teknik pemetaan memori yang melibatkan memori sekunder, umumnya disk.
–  Teknik ini menyembunyikan aspek-aspek fisik memori dari pengguna dengan menjadikan     memori sebagai lokasi alamat virtual berupa byte yang tidak terbatas
–  Jika program akan dieksekusi , maka program tersebut harus ada di memori, tapi kenyataannya ada program dalam memori yang tidak segera digunakan, sehingga perlu membatasi program yang tidak sedang digunakan mengingat kapasitas memori terbatas
–  Secara sistem logika, ukuran memori lebih besar daripada ukuran memori utama secara fisik.
–  Melibatkan mekanisme swapping

pemetaan memori

Program-program yang sudah tidak digunakan lagi, antara lain :
– Program-program pengendali error
– Array, list atau tabel yang dialokasikan melebihi kapasitas yang digunakan
– Program dibatasi oleh memori fisik
– Beberapa pilihan program yang jarang digunakan
– Hanya sedikit I/O yang digunakan pada saat load atau swap tiap-tiap user program ke memori

Keuntungan Model Virtual Memori
– Lebih sedikit memori yang diperlukan per proses.
– Berkurangnya proses I/O yang dibutuhkan
– System response menjadi lebih cepat, karena tidak semua bagian image proses perlu dialokasikan ke memori utama.
– Proses dapat dieksekusi lebih cepat.
– Lebih banyak proses yang dapat dijalankan multiprogramming
– Memori virtual melebihi daya tampung dari memori utama yang tersedia

Konsep Dasar
– Memori virtual diimplementasikan dalam sistem multiprogramming
• Misal 10 program dengan ukuran 2 Mb dapat berjalan di memori berkapasitas 4 Mb, tiap program dialokasikan 256 Kb dan bagian-bagian proses masuk (swap in) begitu diperlukan dan swap out jika tidak diperlukan, shg sistem multiprogramming menjadi lebih efisien
– Image proses akan diinisialisasi di area swap space, yaitu suatu lokasi di media penyimpan sebagai ekstensi memori utama.
– Swap space dapat berupa suatu berkas atau partisi khusus, dan unit terkecilnya disebut page.
– Pengalihan page dari swap space ke memori utama menggunakan teknik lazy swapper, yaitu hanya page proses yang dibutuhkan yang akan dialihkan ke memori utama.

pemetaan media penyimpanan

Memori virtual dapat dilakukan dengan 2 cara:
– Demand Paging (Permintaan pemberian halaman)
– Demand Segmentation (Permintaan segmentasi)

Demand Paging

mekanisme demand paging
– Sistem demand paging sama halnya dengan sistem paging dengan swapping
– Proses-proses tersebut disimpan ke memori sekunder, jika proses akan dieksekusi maka dipindah ke memori
– Sebuah page tidak pernah ditukar ke memori kecuali page diperlukan
– Jumlah frame di memori utama tergantung tingkat multiprogramming .
– Semakin tinggi tingkat multiprogramming, semakin sedikit jatah frame untuk tiap proses
– Menggunakan bit valid/invalid di page table. Misal: bit 1 berada di memori utama, bit 0 berada di swap space
– Jika berstatus invalid, maka trap page faultakan dibangkitakan agar ditangani lebih
lanjut oleh rutin SO yaitu: page fault handler.
– Rutin page fault handler akan menangani operasi swap-in terhadap page yang
diperlukan.

Langkah-langkah swap-in :
– Mencari frame memori utama yang kosong. Jika tidak ada dipilih salah satu page dalam frame (victim page) untuk di swap-out.
– Swap-in
– Memperbarui rekaman di page table
– Mengubah validation=1
– Restart.

Keuntungan demand paging :
– Sedikit I/O yang dibutuhkan
– Sedikit memori yang dibutuhkan
– Respon yang lebih cepat
– Dapat melayani banyak user

Demand Paging butuh perangkat keras :
– Page table “valid-invalid bit”
• Valid (“1”) -> pages berada di memori
• Invalid (“0”) -> pages berada di disk
– Memori sekunder, untuk menyimpan proses yang belum ada di memori
Jika suatu proses menginginkan page, namun page tersebut belum ada pada memori utama, maka akan terjadi page fault

Cara-cara untuk mengatasi page fault:
– Mengecek tabel internal (biasanya tersimpan dalam PCB) untuk menentukan bit referensi valid atau invalid
– Jika referensi invalid, maka proses dihentikan,jika valid tapi proses belum dikenali maka page tersebut akan dikenali kemudian cari frame kosong
– Dilakukan penjadwalan operasi disk untuk membaca pageyang diinginkan ke lokasi frame yang baru
– Jika pembacaan disk sudah selesai, maka internal table diperbaiki (ubah validation bit menjadi “1” yang berarti page telah ada di memori)
– Ulangi instruksinya dari awal

mekanisme penanganan fault

Pada berbagai kasus, ada 3 komponen yang dihadapi pada saat melayani page fault :
– Melayani interupsi page fault
– Membaca page
– Mengulang kembali proses

Page Replacement

Page Replacement diperlukan pada saat dimana proses dieksekusi perlu frame bebas tambahan tetapi tidak tersedia frame bebas.

KonsepPage Replacement :
– Jika tidak ada frame yang kosong, cari frame yang tidak sedang digunakan, lalu kosongkan dengan cara menuliskanisinya ke dalam swap space, dan mengubah semua table sebagai indikasi bahwa page tersebut tidak akan berada lama di memori.

Gambar dibawah menunjukkan jika proses user dieksekusi, maka akan timbul page fault.Padahal sudah tidak ada memori yang kosong, sehingga perlu adanya page replacement

pagefault

Rutinitas Page replacement :
– Tentukan lokasi page yang diharapkan pada disk
– Carilahframe kosong
– Jika adaframe kosong, gunakan
– Jika tidak ada, gunakan algoritma page replacement untukmenyeleksi frame yang akan dikorbankan
– Simpan page yang dikorbankan ke disk, ubah page dan frame table secara berurutan
– Baca page yang diinginkan ke frame kosong; ubahpage dan frame table
– Mulai kembali user process

Langkah-langkah Page replacement :

langkahPR

Secara umum, algoritma dapat dibagi dua:
– Global Replacement -> Victim frame dapat dipilih dari semua frame yang ada
– Local Replacement -> Victim frame dapat dipilih dari frame-frame yang sedang ditempati oleh image proses bersangkutan

Algoritma Page Replacement
– Selama jumlah frame meningkat, maka jumlah page fault akan menurun. Peningkatan jumlah frame dapat terjadi jika memori fisik diperbesar
– Tujuan Algoritma Page Replacement adalah untuk mendapatkan page fault terendah
– Pemilihan algoritma yang kurang tepat dapat menyebabkan peningkatan tingkat page fault sehingga proses akan berjalan lambat

algoritma page replacement

Ada beberapa Algoritma Page Replacement :
a.  Algoritma FIFO
b.  Algoritma Optimal
c.  Algoritma LRU
d.  Algoritma Clock

a. Algoritma FIFO

algoritma fifo
– Merupakan algoritma yang paling sederhana
– Jika ada suatu page yang akan ditempatkan, maka posisi page yang paling lama yang akan digantikan

b. Algoritma Optimal

algortima optimal
– Mengganti page yang tidak digunakan dalam waktu dekat
– Mempunyai rata-rata page fault terendah
– Algoritma ini sulit diimplementasikan

c. Algoritma LRU (Least Recently Use)

algoritma lru
– Merupakan perpaduan dari FIFO dan optimal
– Page yang diganti adalah page yang telah lama tidak digunakan

d. Algoritma Clock

algoritma clock
– Algoritma Clock menggunakan prinsip Second-Chance tapi dengan antrian yang berbentuk melingkar
– Pada antrian ini terdapat pointer yang menunjuk ke halaman yang paling lama berada di antrian.
– Ketika terjadi kesalahan halaman, halaman yang ditunjuk oleh pointer akan diperiksa bit acuannya seperti pada Second-Chance.
– Jika bit acuan = 0, halaman tersebut akan langsung diganti. Jika bit acuan = 1, bit acuannya diubah menjadi 0 dan pointer akan bergerak searah jarum jam ke halaman yang berada di sebelahnya.

Alokasi Frame
– Pengalokasian tiap-tiap proses bervariasi tergantung pada tingkat multiprogramming
– Jika tingkat multiprogramming nya semakin tinggi, maka proses akan kehilangan beberapa frame
– Sebaliknya jika tingkat multiprogramming berkurang, maka proses akan mendapat
frame melebihi dari yang dibutuhkan.

Jenis Alokasi Frame :
– Alokasi sama rata (equal allocation) ->Tiap proses mendapat jumlah frame sama banyak
– Alokasi proporsional (proporsional allocation) -> Tiap proses mendapat jumlah frame sesuai dengan besarnya image proses itu.
– Alokasi berprioritas (priority allocation) ->Jumlah frame yang dialokasikan untuk tiap proses berdasarkan prioritas.

 

www.binus.ac.id

www.skyconnectiva.com

Sistem Operasi Pertemuan 10

Session 15 & 16 – File Management

File management adalah kumpulan perangkat lunak sistem yang menyediakan layanan-layanan berhubungan dengan penggunaan file ke pemakai dan/atau aplikasi.

Biasanya, satu-satunya cara pemakai atau aplikasi mengakses file adalah lewat sistem file. Pemakai atau pemrogram tidak perlu mengembangkan perangkat lunak khusus untuk mengakses data di tiap aplikasi. Sistem pun menyediakan pengendalian terhadap aset penting ini.

Beberapa sasaran sistem file adalah sebagai berikut :

  • Untuk memenuhi kebutuhan manajemen data dan kebutuhan user dalam hal penyimpanan data dan melakukan operasi terhadap file
  • Untuk menjamin data pada file adalah valid.
  • Optimasi kinerja.
  • Untuk menyediakan dukungan I/O beragam tipe perangkat penyimpan.
  • Untuk meminimalkan atau mengeliminasi potensi kehilangan atau perusakan data.
  • Untuk menyediakan sekumpulan rutin interface I/O.
  • Untuk menyediakan dukungan I/O banyak pemakai di sistem multiuser.

Fungsi file management :

  • User dan aplikasi berinteraksi dengan sistem file dengan perintah-perintah untuk operasi file (create, delete, read, write, modify)
  • Mekanisme pemakaian file secara bersama.
  • Kemampuan backup dan recovery untuk mencegah kehilangan data.
  • Pemakai dapat mengacu file dengan nama simbolik bukan menggunakan penamaan yang mengacu perangkat keras.
  • Pada lingkungan sensitif dikehendaki informasi tersimpan amana dan rahasia.
  • Sistem file harus menyediakan interface user-friendly.
  • Sistem file menyediakan enkripsi dan dekripsi untuk menjaga informasi hanya digunakan oleh pemakai yang diotorisasi saja

Pengelolaan file terdiri dari :

  • Sistem akses: berkaitan dengan bagaimana cara data disimpan pada file diakses.
  • Manajemen file: berkaitan dengan penyediaan mekanisme operasi pada file seperti: Penyimpanan, Pengacuan, Pemakaian bersama, dan pengamanan
  • Manajemen ruang penyimpanan: berkaitan dengan alokasi ruang untuk file diperangkat pentimpanan
  • Mekanisme integritas file: berkaitan dengan penjaminan informasi pada file tak terkorupsi

Program dapat mengakses file di sistem melalui sistem manajemen basis data (DBMS) ataupun secara langsung melalui fasilitas yang disediakan sistem operasi.

Umumnya sistem operasi menyediakan:

  • Manajemen file
  • Manajemen penyimpanan file
  • Mekanisme integritas

DBMS umumnya memuat bagian berikut:

  • Database engine, diantaranya berisikan mekanisme integritasi.
  • Sistem akses

Pathname

Setiap file memiliki pathname ada 2 macam pathname yaitu:

  • Pathname absolut suatu file didapat dari menelusuri path dari root directory, melewati semua direktori sampai ke file yang diinginkan. Pathname absolute diawali dengan /.
  • Pathname relatif menelusuri path dari direktori yang sedang digunakan(direktori kerja). Suatu pathname yang tidak diawali / adalah suatu pathname relatif. Seperti pathname absolute, pathname ini mendeskripsikan path melalui direktori yang dilewati.

Arsitektur Software Sistem File

arsitektur

Device Driver

  • Merupakan level paling rendah dalam arsitektur software sistem file
  • Berkomunikasi langsung dengan peripheral device
  • Tugas device driver: memulai operasi I/O pada device, memproses penyelesaian permintaan I/O
  • Contoh device: harddisk, tape drive, dll

Basic File System

  • Merupakan antarmuka utama dengan lingkungan di luar sistem komputer
  • Tugas basic file system : menangani pertukaran blok data dengan memori sekunder, yang meliputi: penempatan blok data ke dalam memori sekunder enampungan sementara (buffering) blok data di dalam memori utama
  • Tidak menangani isi data maupun struktur file yang dipertukarkan

Basic I/O Supervisor

  • Tugas I/O supervisor: bertanggung jawab terhadap semua inisiasi dan terminasi I/O file, memilih device dimana I/O file akan dilakukan, dan menangani penjadualan pengaksesan disk atau tape agar optimal
  • Menjaga control structure yang berhubungan dengan device I/O, penjadualan, dan status file

Logical I/O

  • Mengijinkan user dan aplikasi untuk mengakses record
  • Memberikan kapabilitas I/O record serbaguna
  • Menjaga data dasar dari file

Metode Akses

  • Merupakan bagian file sistem yang paling dekat dengan user
  • Bertugas untuk memberikan antar muka standar antara aplikasi dan sistem file dengan device yang menyimpan data
  • Jika metode akses berbeda berarti struktur file dan cara memproses data juga berbeda
  • Macam-macam metode akses: pile, sequential file, indexed sequential file, dan direct/hashed file

Konsep terpenting dari pengelolaan file :

1.  File

File merupakan kumpulan data yang dibuat oleh user.

Properti file :

–  Tahan lama

  • File disimpan di dalam memori sekunder dan tidak hilang ketika sistem dimatikan
  • Dapat digunakan bersama oleh sejumlah proses
  • Setiap file mempunyai nama dan hak akses sehingga dapatditentukan proses mana saja yang bisa mengaksesnya

–  Mempunyai struktur tertentu -> Setiap file mempunyai struktur internal tertentu sesuai dengan jenis aplikasi yang menggunakannya

Penamaan File

Pemakai file dengan nama simbolik. Tiap file disistem harus mempunyai nama unik agar tidak ambigu. Penamaan file berbeda sesuai sistem. Ada dua pendekatan sistem dalam penamaan file yaitu:

  • Sistem yang case-sensitive: sistem membedakan antara hurup kecil dan hurup kapital.
  • Sistem Case-insensitive : sistem tidak membedakan ntara hurup kecil dan hurup kapital.

Tipe File

Terdapat tiga tipe file dalam sistem operasi, yaitu:

  • Regular : file ini berisi informasi, dari file ASCII dan biner.File ASCII berisi baris teks. Untuk file biner hasil program aplikasi, struktur internalnya hanya diketahui program aplikasi yangmenggunakan file tersebut.
  • File Derectori : merupakan file yang dimiliki sistem untuk mengelola struktur sistem file. Berisikaninformasi-informasi mengenai file-file yang termasuk dalam direktori itu.
  • File spesial: merupakan nama logik perangkat I/O. file special ada dua macam yaitu file special karakter dan special blok

2.  Direktori

Direktori menyediakan pemetaan nama file ke file. Informasi terpenting pada direktori adalah berkaitan dengan penyimpanan, termasuk lokasi dan ukuran penyimpanan file.

Pada sistem bersama (shared system), informasi yang penting adalah informasi pengendalian akses file.Satu pemakai adalah pemilik file yang dapat memberi wewenang pengaksesan ke pemakai-pemakai lain.

Beberapa konsep penting yang dipahami oleh Pemakai:

  • Hirarki direktori ( struktur pohon)

Kebanyakan sistem menggunakan hirarki direktor atau berstruktur pohon. Terdapat satu direktori master (root) yang didalamnya dapat terdapat subdirektori-direktori.

  • Jalur pengaksesan (path-name)

Penamaan file diselesaikan dengan penamaan absolut yaitu nama jalur dari direktori root ke file.dan nama jalur relatif (relative pathname) jalur relatif terhadap direktori kerja/saat itu (working directory atau current directory) pemakai dapat menyatakan satu direktori sebagai current directory.

  • Perintah- perintah memanipulasi direktori

Yang digunakan perintah-perintah meliputi:

  • Pindah direktori
  • Penciptaan direktori
  • Penghapusan direktori

Penghapusan direktori mengisyaratkan direktori tidak sedang digunakan atau direktori telah kosong.

Terdapat perintah-perintah memanipulasi seluruh sistem file, diantaranya pembentukan sistem file, pemeriksaan sistem file, pengkopian seluruh sistem file, manipulasi lainnya.

Shared File

Shared file tidak hanya diacu oleh satu direktori (pemakai), tapi juga oleh direktori-direktori lain. Sistem file tidak lagi berupa pohon melainkan directory acyclic graph. (DAG).

Masalah yang terdapat pada shared file adalah :

  • Metode implementasi shard file
  • Metode pemberian hak akses pada shared file.
  • Metode pengendalian atau penanganan terhadap pengaksesan yang secara simultan dilakukan pemakai yang mengacu file.

Pengaksesan Perangkat Penyimpanan

  • Perangkat akses sekuen

Proses harus membaca semua byte atau rekord file secara berturutan mulai dari awal, tidak dapat meloncati dan membaca diluar urutan.Contoh tape

  • Perangkat akses acak.

Dimungkinkan dapat membaca byte atau rekord file diluar urutan atau mengakses rekord berdasar kunci bukan posisinya.

Organisasi File

Kriteria penting pada organisasi file:

  • Media penyimpan data murah : berbanding terbalik dengan kehandalan, semakin murah, maka kehandalannya semakin rendah
  • Perawatannya mudah
  • Handal (Reliability): berbanding terbalik dengan harga, semakin handal biasanya waktu akses semakin cepat dan harganya semakin mahal

Jenis Pengorganisasian File (metode akses) :

  • File pile (tumpukan)
  • File sekuensial
  • File sekuensial berindeks
  • File berindeks
  • File direct atau hashed

Implementasi Sistem Manajemen File

Masalah implementasi sistem manajemen file antara lain:

–  Penyimpanan File

  • Blocking -> Blok berisi sekumpulan byte berukuran tetap yang dipindah dari tempat penyimpanan ke memori untuk diproses dan sebaliknya.
  • Ukuran blok -> ukuran blok yang sama pada perangkat-perangkat berbeda dapat menyebabkan pemborosan ruangpenyimpanan. Ukuran-ukuran blok berbeda sungguh sangat menyulitkan penulisan program.

Terdapat tiga cara pengalamatan blok, yaitu:

  • Pengalamatan fisik disk

Terdapat enam pengalamatan secara fisik, yaitu: Nomor perangkat fisik, nomor silinder, nomor permukaa, nomor sektor atau block, nomor rekord dalam blok dan nomor field atau karakter dalam rekord

  • Pengalamatan relatif.

digunakan bilangan bulat dari 0 sampai jumalah maksimal blok. Penghitungan dilakukan oleh sistem operasi

  • Pengalamatan simbolik -> Tiap blok diberi alamat simbolik, Digunakan tabel alamat, Identifier blok bisa menggunakan bilangan bulat .

Implementasi Sistem File

Sistem manajemen file bertanggung jawab untuk alokasi blok-blok disk ke file.

Sistem file meliputi:

  • Alokasi file
  • Pencatatan ruang file
  • Shared file
  • Kehandalan sistem file
  • Kinerja sistem file

Alokasi file

Metode yang digunakan untuk pencatatan blok yang digunakan file, yaitu

–  Alokasi berturutan/kontigu (contigous allocation)

Keunggulan : sederhana dan kinerjanya luar biasa bagus.

Kelemahanya: hanya bila ukurannya maksimumdiketahui pada saat file diciptakan, terjadi fragmentasi disk.

–  Alokasi blok-blok file sebagai sebagai berkait

Keunggulan : Setiap blok disk dapat digunakan, isian/elemen direktori cukup menyimpan alamat blok pertama file

Kelemahan : Pembacaan sekuen cukup merepotkan karena harus menelusuri blok satu per satu, blok data tidak lagi berukuran 2k karena pointer memerlukan berbagai byte.

–  Alokasi blok-blok file sebagai sebagai berkait menggunakan index

Keunggulan: Pengaksesan acak lebih mudah, (tanpa pengaksesan di disk), Direktori cukup menyimpan bilangan bulat nomor blok awal

Kelemahan: Seluruh tabel (FAT) harus disimpan di disk, Jika penyimpanan berukuran besar mengakibatkan tabel berukuran besar dan harus ditarik di memori utama meskipun hanya satu file

–  i-node atau index-block chaining

  • File kecil -> Beberapa alamat disk awal disimpan di I-node itu sendiri, semua informasi yang diperlukan terdapat di I-node di disk dan disimpan di memori begitu file dibuka.
  • File lebih besar -> Untuk file lebih besar, salah satu dari field di i_node adalah Pointer ke singly indireck block yang berisi pointer ke blok yang berisi alamat blok-nlok data berikutnya.

Keunggulan: Isian direktori sederhana (bisamengimplementasikan file kecil sampai yang besar)

Kelemahan: Perlu pengaksesan disk untuk penelusuran blok-blok data file.

 

Session 17 & 18 – Input / Output Management

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
  • menyediakan interface ke pemakai

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
  1. 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

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.

Contoh : unit tape megnetik diinstruksikan untuk kembali ke posisi awal, bergerak ke record berikutnya dan sebagainya.

b.   Komponen mekanik

Contohnya : head, motor stepper, printer

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

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.

interleaving

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

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.

  1. 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.

  1. 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

  1. User Space I/O Software

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).

Contoh : count = write(fd,buffer,nbytes)

I/O prosedur dengan level lebih tinggi.

Contoh : printf (memformat output terlebih dahulu kemudian panggil write)

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

Perangkat Keras Disk

Disk diorganisasikan menjadi silinder-silinder dengan tiap permukaan terdapat head yang ditumpuk secara vertikal. Track terbagi menjadi sektor-sektor.

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

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

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.

b.  Algoritma Pungut / Pick Up Algorithm

c.  Algoritma Waktu Cari Terpendek Dipertamakan (WCTD) / Shortest Seek Time First (SSTF) Algorithm

d.  Algoritma Lift Singkat / LOOK Algorithm

e.  Agoritma Lift Singkat Searah / C-LOOK Algorithm

f.  Algoritma Lift Lengkap / SCAN Algorithm

g.  Algoritma Lift Lengkap Searah / C-Scan Algorithm


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

  1. Error checksum transient

Kesalahan disebabkan adanya debu diantara head dengan permukaan disk. Penanganannya : lakukan operasi berulang-ulang dan menandai sector yang rusak.

  1. Error checksum permanent

Kesalahan disebabkan kerusakan disk. Misalnya harus dibuat daftar blok-blok buruk agar data tidak ditulisi di blok-blok buruk.

  1. Error seek

Kesalahan ini ditanggulangi dengan mengkalibrasi disk supaya berfungsi kembali. Misalnya lengan harusnya ke silinder 6 ternyata ke 7. Penanganannya : kalibrasi ulang.

  1. Error controller

Kesalahan ini ditanggulangi dengan menukar pengendali yang salah dengan pengendali yang baru. Misalnya controller menolak perintah akses. Penanganannya : reset.

  1. Track at time caching

Kontroller mempunyai memori untuk menyimpan informasi track dimana ia berada, permintaan pembacaan blok track tersebut dilakukan tanpa pergerakan mekanik.

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.

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.

Terminal

Semua komputer memerlukan terminal untuk komunikasi antar peralatan.

Terminal Hardware

Terminal hardware terbagi atas 2 kategori dasar, yaitu :

terminal hardware

  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 :

  1. hardcopy / printer, dimana tipe karakter dari keyboard ditransmisikan ke komputer, dan kemudian di cetak di kertas / printer.
  2. Dumb CRT terminal / glass tty (teletype = terminal)
  3. Intelligent CRT terminals, terdiri dari CPU dan memory, dan untuk program yang kompek digunakan EPROM atau ROM.
  4. Blit, adalah terminal dengan powerful microprocessor
  1. Terminal memory-mapped

adalah interface melalui video RAM / video controller yang digunakan untuk monitor.

Terminal Software

Terminal Software terdiri dari :

a.  Input Software

b.  Output Software

 

Session 19 & 20 – Memory Management

Manajemen Memori

  • Manajemen memori dilakukan dengan cara membagi-bagi memori untuk mengakomodasi banyak proses
  • Manajemen memori dilakukan untuk menjamin agar setiap proses yang ready dapat segera memanfaatkan processor time

Terdapat 5 requirement manajemen memori:

  • Relocation
  • Protection
  • Sharing
  • Logical organization
  • Physical organization
  1. Relocation

Mengapa Relocation perlu ditangani?

  • Programmer tidaktahu dibagian memori yang mana program akan ditaruh pada saat dieksekusi
  • Pada saat program dieksekusi, dimungkinkan program tersebut akan di-swap ke disk dan kemudian diambil lagi dari disk untuk ditaruh di memori dengan lokasi yang berbeda dengan lokasi sebelumnya(terjadi relocation )
  • Diperlukan adanya translasi antara alamat program dengan alamat fisik memori

Mengapa relocation penting dalam manajemen memori ?

  • Jika suatu program diload ke memori, maka alamat lokasi memori(alamat absolut atau alamat fisik) yang akan ditempati harus ditentukan ditentukan
  • Alamat absolut suatu program dapat berubah-ubah sebagai akibat : Swapping dan Compaction

Jenis-jenis alamat data:

a.  Alamat Logical

  • Alamat suatu word relatif terhadap titik referensi tertentu
  • Harus dilakukan translasi terhadap alamat fisik

b.  Alamat Relatif

  • Alamat yang menunjukkan lokasi relatif terhadap alamat awal suatu program
  • Dapat terdiri dari: Alamat instruksi dalam pencabangan, Alamat instruksi call, Alamat data

c.  Alamat Fisik

  • Alamat mutlak/absolut
  • Merupakan alamat sebenarnya dari suatu memori

alamat relatif dan absolut

 

mekanisme penempatan program ke memory

 Jenis-jenis register yang digunakan:

a.  Base register

  • Alamat awal suatu proses (tiap proses berbeda-beda)
  • Ditentukan oleh sistem operasi

b.  Bound register

  • Alamat akhir suatu proses
  • Bound register = base register + panjang proses

c.  Kedua alamat di-set pada saat proses di-load atau kembali dari swap

d.  Setiap proses mempunyai nilai base register dan bound register sendiri-sendiri

Mekanisme relocation :

  • Alamat base register ditambahkan dengan alamat relatif sehingga diperoleh alamat absolute

 

  1. Protection

Mengapa Protection perlu ditangani?

  • Suatu proses tidak boleh mengakses lokasi memori proses yang lain tanpa ijin
  • Lokasi program di memori tidak tentu -> alamat mutlak pada saat compile tidak dapat diketahui
  • Penanganan proteksi memori diserahkan kepada prosesor (secara hardware ), bukan bagian sistem operasi ( software )-> Sistem operasi tidak dapat memperkirakan penggunaan semua referensi memori dari setiap program

pemeriksaan alamat relatif

Mekanisme relocation :

a.  Alamat base register ditambahkan dengan alamat relative sehingga diperoleh alamat absolut

b.  Alamat yang diperoleh dibandingkan dengan nilai-nilai pada bound register

c.  Jika nilainya berada di dalam bound -> instruksi dilanjutkan

d.  Jika nilainya di luar bound -> dihasilkan interrupt

  • Sistem operasi harus mengambil tindakan lebih lanjut
  • Merupakan mekanisme proteksi terhadap pengaksesan data proses yang lain
  1. Sharing

Mengapa Sharing perlu ditangani?

  • Harus dimungkinkan suatu lokasi memori dapat diakses oleh lebih dari satu proses (secara legal)
  • Beberapa proses yang memerlukan data yang sama, maka tidak perlu setiap proses meng-copy data dari disk ke memori, cukup sebuah copy saja
  1. Logical Organization

Mengapa Logical Organization perlu ditangani?

–   Main memory dikelompokkan secara linier atau berdimensi satu yang berupa ruang alamat yang terdiri dari deretan byte atau word

–   Sebagian besar program dibuat dalam bentuk modul -> penempatan di memori tidak linier -> diperlukan pengaturan secara logic

–   Kelebihan program dalam bentuk modul:

  • Modul dapat ditulis dan di-compile secara terpisah
  • Setiap modul dapat diberi tingkatan proteksi berbeda-beda (read-only, execute only)
  • Module dapat di-share oleh beberapa proses
  1. Physical Organization

Mengapa Physical Organization perlu ditangani?

–   Memory dikelompokkan menjadi memori utama dan memori sekunder

–   Diperlukan metode yang mengatur aliran data dari memori utama ke memori sekunder dan sebaliknya

–   Pengaturan tersebut dilakukan oleh sistem operasi, bukan programmer karena:

  • Programmer tidak tahu berapa ruang memori yang tersedia pada saat program dijalankan
  • Bila ruang memori yang tersedia tidak cukup untuk menampung program dan data -> sistem dapat melakukan overlay.
  • Overlay adalah menempatkan beberapa bagian modul/program pada area memori yang sama secara bergantian

Teknik Manajemen Memory

Beberapa teknik manajemen memori yang ada:

a.  Partisi

  • Partisi tetap( fixed ) -> Partisi berukuran sama dan Ukuran partisi berbeda-beda
  • Partisi dinamis

b.  Paging sederhana

c.  Segmentasi sederhana

d.  Virtual-memory -> terdri dari virtual-memory paging dan virtual-memory segmentation

 

Partisi Memori Tetap (Fixed)

Sebelum digunakan memori terlebih dahulu dipartisi (ukuran partisi tidak berubah)

Model ukuran partisi:

  1. Partisi berukuran sama
  • Setiap proses yang ukurannya lebih kecil atau sama dengan ukuran partisi dapat menempati partisi tersebut
  • Jika semua partisi telah terisi, maka sistem operasi akan melakukan swap terhadap proses yang sudah tidak aktif
  • Dimungkinkan adanya program yang ukurannya lebih besar daripada ukuran partisi yang tersedia -> programmer harus merancang program dengan overlay
  • Penggunaan memori sangat tidak efisien –> Misal bila ukuran partisi adalah 8 MB, maka program berukuran 2 MB akan menyisakan ruang memori sebesar 6 MB
  1. Partisi berukuran tidak sama
  • Lebih baik daripada partisi berukuran sama karena enggunaan memori lebih efisien dan tidak memerlukan overlay

jenis partisi tetap

Algoritma penempatan ( placement ) :

a.  Partisi berukuran sama

  • Algoritmanya sederhana, partisi yang mana saja asalkan kosong boleh ditempati, karena ukurannya sama

b.  Partisi berukuran berbeda

  • Setiap proses ditempatkan pada partisi yang menyisakan ruang bebas terkecil
  • Terdapat 2 model antrian : Satu antrian –satu partisi , Satu antrian –banyak partisi

model antrian

Satu partisi-satu antrian

  • Setiap proses antri pada partisi yang berukuran sedikit lebih besar atau sama dengan ukuran proses
  • Kelebihan: Dapat meminimalisir ruang memori yang terbuang
  • Kekurangan: Diperlukan penjadwalan antrian dan ada kemungkinan efisiensi secara keseluruhan tidak optimal.

Banyak partisi-satu antrian

  • Setiap proses dapat menempati di sembarang partisi yang sedang tidak digunakan
  • Dipilih partisi yang menyisakan ruang memori terkecil
  • Bila seluruh partisi telah diisi -> dilakukan swapping

Kelebihan Partisi Memori Tetap

  • Mudah diimplementasikan
  • Overhead sistem operasi hanya sedikit

Kekurangan Partisi Memori Tetap

  • Tidak efisien dalam penggunaan memori akibat terjadi fragmentasi internal. Fragmentasi internal adalah sisa ruang memori yang terjadi jika ukuran proses lebih kecil daripada partisi yang digunakan
  • Jumlah maksimum proses yang aktif adalah tetap dan terbatas (bergantung jumlah partisi)

 

Partisi Memori Dinamis

cth partisi dinamis

Keterangan:

a.  Tersedia 64 MB memori, 8 MB untuk sistem operasi

b.  Proses1 aktif dan membutuhkan 20MB

c.  Proses 2 aktif dan memerlukan 14 MB

d.  Proses 3 aktif dan memerlukan 18MB, sisa memori tinggal 4MB

e.  Proses 2 selesai

f.  Proses 4 aktif dan memerlukan 8MB -> ditempatkan di ruang memori bekas proses 2 -> terjadi fragmentasi eksternal sebesar 6 MB

g.  Proses 1 telah selesai -> tersedia ruang bebas sebesar 20 MB

h.  Proses 2 aktif lagi dan ditempatkan pada lokasi bekas proses 1 ->  terjadi fragmentasi eksternal sebesar 6 MB

 

Algoritma penempatan ( placement ) :

–  Permasalahan: Kapan saat untuk melakukan loading dan swapping?

Bila terdapat lebih dari satu blok memori yang dapat dibebaskan, blok memori yang mana yang akan di-swap?

–  Algoritma yang dapat digunakan:

  • Best-fit
  • First-fit
  • Next-fit

Algoritma Best-fit :

  • Memilih blok memori yang paling sedikit menyisakan ruang memori
  • Biasanya performansi secara keseluruhan adalah yang paling buruk karena :
  • Proses pencarian lebih lama dan membebani prosesor
  • Sisa memori berukuran kecil-kecil lebih cepat terbentuk -> Compaction harus lebih sering dilakukan dari pada algoritma yang lain

Algoritma First-fit :

  • Pencarian blok memori kosong dimulai dari awal
  • Blok memori yang dipilih adalah blok memori yang pertama kali ditemukan dan ukurannya sesuai
  • Merupakan algoritma yang paling baik karena paling cepat dan paling sederhana
  • Pencarian akan melewati sejumlah proses yang terletak pada bagian ujung awal memori sebelum menemukan blok memori yang bebas

Algoritma Next-fit :

–   Pencarian blok memori kosong dimulai lokasi placement terakhir

–   Lebih buruk dibandingkan First-fit , karena blok memori yang ditemukan sering berada pada ujung akhir memori yang merupakan blok memori berukuran paling besar.

  • Blok memori yang besar akan lebih cepat terpartisi menjadi blok memori yang lebih kecil
  • Compaction untuk memperoleh blok memori berukuran besar pada ujung akhir memori harus lebih sering dilakukan daripada First-fit

cth algoritma placement

Kelebihan Partisi Memori Dinamis :

  • Tidak terjadi fragmentasi internal
  • Penggunaan memori lebih efisien
  • Jumlah proses aktif lebih fleksibel (tidak tetap)

Kekurangan Partisi Memori Dinamis :

  • Implementasinya lebih susah
  • Dapat terjadi fragmentasi eksternal
  • Terjadi overhead penggunaan prosesor: Untuk compaction dan untuk menjalankan algoritma

 

www.binus.ac.id

www.skyconnectiva.com

Sistem Operasi Pertemuan 6

Session 11&12 – Concurrency

Concurrency digunakan untuk mengelola interaksi dari semua proses.

Concurrency hadir pada:

  • Banyak aplikasi -> Waktu sharing
  • Aplikasi terstruktur -> Ekstensi dari rancangan modular
  • Struktur sistem operasi -> Sistem operasi sendiri diimplementasikan sebagai sekumpulan proses atau thread

Masalah pada concurrency :

  • Sharing sumber daya global

->Penulisan suatu shared variable: urutan penulisan sangat penting

->Masalah besar adalah penulisan tidak lengkap

  • Pengelolaan alokasi resource secara optimal
  • Sulit menemukan error pemrograman karena hasilnya bersifat tidak deterministic and reproducible.

Contoh masalah concurrency pada multiprocessor :

cp1p2

Jika diterapkan suatu aturan yang hanya satu proses dapat memasuki fungsi tersebut pada suatu waktu, maka:

  • P1 & P2 berjalan pada processor berbeda
  • P1 memasukkan echo lebih dahulu -> P2 mencoba masuk tetapi diblok – P2 suspend
  • P1 melengkapi eksekusi -> P2 me-resume & mengeksekusi echo

Fokus Sistem Operasi

  • Menjaga track dari berbagai proses
  • Meng-alokasi-kan dan men-dealokasi-kan sumber daya
  • Melindungi data & resource dari gangguan proses lain
  • Memastikan bahwa proses & output terbebas dari kecepatan pemrosesan

Kompetisi antara proses dan resources :

  1. Mutual Exclusion -> 1 proses diberikan hak khusus untuk menggunakan resources.
  2. Deadlock -> banyak proses memperebutkan 1 resources
  3. Starvation -> setiap proses berfikir bahwa ada proses lain yang sedang memakai resources tersebut padahal sebenarnya tidak ada yang memakai.

Kerja sama antar proses:

  1. By Sharing (berbagi)
  2. By Communication (berkomunikasi)

Syarat Mutual Exclusion :

  • Hanya satu proses pada satu waktu yang dibolehkan ada dalam critical section bagi suatu resource
  • Proses yang berhenti pada noncritical section-nya harus melakukan demikian tanpa gangguan dengan proses lain
  • Tidak ada deadlock atau starvation
  • Proses harus tidak didelay akses ke suatu critical section saat tidak ada proses lain yang menggunakannya
  • Tidak ada asumsi mengenai kecepatan proses relatif atau jumlah proses
  • Proses tetap di dalam critical section-nya hanya selama waktu terbatas tertentu (finite)

Interrupt Disabling

  • Proses berjalan sampai ia meng-invoke suatu layanan SO atau sampai ia diinterupsi
  • Disabling interrupts menjamin terwujudnya mutual exclusion
  • Tidak akan bekerja pada arsitektur multiprocessor

Race Condition

  1. Race condition terjadi ketika
  • Banyak proses atau thread membaca &menulis item data
  • Hasil akhir dari aktifitas baca & tulis tersebut tergantung pada urutan eksekusi dari proses yang terlibat.
  1. Output tergantung pada siapa yang terakhir menyelesaikan race.

Semaphores

  • Suatu nilai integer (bilangan bulat) yang digunakan untuk pensinyalan (signalling)antar proses.
  • Hanya tiga operasi dapat dikerjakan pada suatu semaphore, semuanya bersifat atomik:
    • initialize
    • Decrement (semWait)
    • increment (semSignal)
  • Antrian (queue) digunakan untuk menangani proses yang menunggu (waiting) pada semaphore
  • Semaphore Kuat menggunakan FIFO
  • Semaphore Lemah tidak menentukan urutan penghapusan dari antrian

Masalah Procesur-Consumer

  • Situasi Umum:
    • Satu atau lebih producer membangkitkan data &menempatkannya dalam suatu buffer
    • Consumer tunggal mengambil item keluar buffer satu pada satu waktu
    • Hanya satu producer atau consumer yang boleh mengakses buffer pada satu waktu
    • Masalahnya:
    • Pastikan bahwa Producer tidak dapat menambahkan data ke dalam buffer yang penuh & comsumer tidak dapat menghapus data dari buffer kosong

Sleeping Barber Problem

Masalah sleeping barber menganalogikan proses dimana seorang barber bertugas menggunting rambut pelanggan, dan beristirahat jika tak ada pelanggan yang menunggu.

Masalah

Sleeping barber problem berdasar pada suatu barber shop dan barber-nya. Si barber hanya memiliki satu buah kursi untuk menggunting rambut dan beberapa kursi di ruang tunggu. Pada saat si barber telah selesai menggunting rambut seorang pelanggan, ia akan berjalan menuju ruang tunggu untuk melihat keadaannya. Jika ada pelanggan yang menunggu, ia akan membawanya ke kursi dan memotong rambutnya. Jika tidak, ia akan kembali ke ruangannya, dan beristirahat.

Setiap pelanggan ketika datang ke barber shop tersebut, harus melihat keadaan si barber terlebih dahulu. Jika si barber sedang tidur, ia akan membangunkannya dan duduk di kursi. Jika si barber sedang memotong rambut, ia akan berjalan menuju ruang tunggu, duduk dan menunggu gilirannya.

Solusi

Semua contoh permasalahan diatas dapat di dipecahkan oleh adanya mutex (mutual exclusion) yang memberi sebuah batasan dimana hanya satu unsur (si barber, atau satu pelanggan) yang dapat berubah status pada satu waktu. Si barber harus mendapatkan mutex sebelum melihat keadaan ruang tunggu, dan melepaskannya sebelum menggunting rambut dan istirahat. Setiap pelanggan wajib mendapatkan mutex sebelum masuk ke barber shop, dan melepaskannya ketika ia duduk di ruang tunggu dan kursi barber.

Dining Philosophers Problem

Masalah

Pada masalah Dining Philosophers ini, beberapa proses dianalogikan sebagai 5 orang yang berkumpul pada sebuah meja makan dengan masing-masing makanan mereka yang telah disediakan. Pada dasarnya, setiap orang hanya dapat melakukan dua hal dan hanya satu pada satu waktu, memakan dan/atau menunggu. Terdapat pula 5 buah sumpit (bukan 5 pasang) diantara setiap piring makanan, yang merupakan analogi dari shared resources.

Agar seseorang dapat makan, ia membutuhkan sepasang sumpit, dan hanya dapat mengambilnya dari sisi kiri atau sisi kanannya. Setiap orang tak pernah berbicara pada orang-orang yang lainnya, maka ada peluang yang sangat besar akan terjadi deadlock. Apabila seseorang telah mengambil sebuah sumpit, dan menunggu sumpit kedua yang sedang dipakai oleh orang lain, dan orang itu pula menunggu sumpit kedua yang sedang dipakai, dan seterusnya, hingga terjadi sebuah rantai dimana setiap keingingan orang-orang tersebut tidak dapat terpenuhi.

Masalah yang dihadapi oleh orang-orang di meja makan menjadi analogi masalah-masalah pada pemrograman komputer secara nyata, ketika program-program membutuhkan akses eksklusif kepada shared resources.

Solusi

A. Solusi Waiter: solusi sederhana ini dilakukan dengan mengadakan seorang waiter yang senantiasa mengawasi penggunaan sumpit di meja makan. Ketika empat buah (dua pasang) sumpit sedang dipakai, orang berikutnya yang ingin memakai sumpit harus meminta izin kepada sang waiter, yang hanya dapat diberi ketika salah satu sumpit telah selesai terpakai.

Contoh: Misalkan ke-lima orang tersebut dinamakan dari A sampai E secara berurutan. Ketika A dan C sedang makan, 4 buah sumpit sedang terpakai. B tidak memiliki kedua sumpit, dan D dan E memiliki satu buah sumpit diantara mereka. Apabila D ingin makan dan mengambil sumpit ke-lima, deadlock sangat mungkin terjadi. Maka waiter akan meminta D untuk menunggu, hingga pada saat salah satu sumpit telah selesai dipakai.

B. Solusi Hirarki Resource: pada intinya, resources (sumpit) di meja makan telah diberi susunan hirarki. Setiap permintaan orang terhadap sebuah sumpit harus dilakukan pada susunan tertentu, dan dikembalikan pada susunan sebaliknya. Dalam hal ini, setiap orang dapat mengambil sumpit dimanapun diatas meja. Misalkan setiap sumpit diberi nomor sebagai tingkat hirarki dari 1 sampai 5, seseorang hanya dapat mengambil sumpit dengan nomor yang paling rendah, kemudian mengambil sumpit yang setingkat lebih tinggi. Ketika ia hendak mengembalikannya, orang itu harus meletakkan sumpit dengan nomor yang lebih tinggi terlebih dahulu, lalu yang lebih rendah.

Readers-Writers Problem

Suatu area data dishare antar banyakproses

Beberapa proses hanya membaca area data, beberapa hanya menulis ke area tersebut.

Kondisi :

  • Banyak readers boleh membaca file at
  • Hanya satu writer pada satu waktu yang

dapat menulis

  • Jika suatu writer sedang menulis ke file, maka tidak ada reader yang dapat membacanya

Monitor

Monitor merupakan suatu konsepsi bahasa pemrograman yang menyediakan fungsi sama dengan semaphore & lebih mudah dikontrol.

Diimplementasikan dalam sejumlah bahasa pemrograman, termasuk Concurrent Pascal, Pascal-Plus,Modula-2, Modula-3, dan Java.

Message Passing

Digunakan untuk komunikasi antara 1 proses dengan proses lainnya.

Fungsi aktual dari message passing normalnya disediakan dalam bentuk pasangan primitif:

–   send (destination, message)

–   receive (source, message)

 

Session 13&14 – Deadlock

Deadlock

  • Pada sistem multiprogramming, beberapa proses mungkin saja harus berkompetisi untuk menggunakan sumber daya yang jumlahnya terbatas. Jika sebuah proses me-request sumber daya dan sumber daya tersebut tidak tersedia pada saat itu (sedang dipegang oleh proses lain), maka proses tersebut akan memasuki status wait (proses diblok). Status proses yang sedang menunggu tersebut bisa saja tidak akan pernah berubah karena sumber daya yang di-request proses tersebut sedang dipegang oleh proses lain yang juga sedang menunggu. Situasi demikian dinamakan sebagai deadlock.
  • Berdasarkan uraian pada poin di atas, dapat disimpulkan bahwa deadlock terjadi saat dua atau lebih proses menunggu suatu kejadian selama tak terhingga karena kejadian tersebut hanya bisa disebabkan oleh sebuah proses yang sedang menunggu.
  • Permanent blocking dari sekumpulan proses yang saling bersaing mendapatkan sumber daya sistem atau komunikasi
  • Tidak ada solusi yang efisien
  • Mencakup  kebutuhan yang bertentangan bagi sumber daya oleh dua atau lebih proses

Ilustrasi Deadlock

id

 

  1. Kejadian sebelum deadlock
  2. Kejadian setelah deadlock

Contoh Deadlock :

id2

 

Contoh tidak deadlock :

id3

Kondisi untuk Deadlock :

  • Mutual exclusion -> Hanya satu proses yang boleh menggunakan suatu sumber daya pada satu waktu
  • Hold-and-wait -> Suatu proses boleh memegang sumber daya yang dialokasikan selama menunggu assignment yang lain
  • No preemption -> tidak ada sumber daya yang dapat dipaksa dihilangkan dari suatu proses yang memegangnya
  • Circular wait -> adanya rantai tertutup (closed-chain) proses-proses, sehingga setiap proses memegang setidaknya satu sumber daya yang diperlukan oleh proses berikutnya dalam rantai tersebut

dm

Pada gambar (a) diatas merupakan gambar kemungkinan terjadinya suatu deadlock, sedangkan gambar (b) merupakan kejadian disaat deadlock sudah terjadi.

Gambar saat kondisi deadlock :

dm1

 

Solusi masalah deadlock :

dm2

 

Strategi untuk mencegah deadlock  :

  • Biarkan saja masalahnya (menurut algoritma Ostrich)
  • deteksi dan recorvery
  • Dynamic avoidance dengan pengalokasian resource dengan hati-hati.
  • Pencegahan

 

Deadlock Avoidance

  • Kebutuhan resource maksimum harus dinyatakan sebelumnya
  • Proses di bawah konsiderasi harus bersifat independen, tidak ada kebutuhan

Sinkronisasi

  • Harus ada sejumlah fix sumber daya yang akan dialokasikan
  • Tidak ada proses yang boleh exit selama memegang resource

Contoh safe state:

ss

Contoh unsafe state :

uss

Contoh safe dan unsafe state :

ssuss

Ket : a)safe state , b)safe state, c)unsafe state

Pencegahan Deadlock :

  • Mutual Exclusion -> Harus didukung oleh sistem operasi
  • Hold and Wait -> Mengharuskan suatu proses meminta (request) semua sumber daya yang dibutuhkannya pada satu waktu
  • No Preemption

-> Proses harus melepaskan sumber daya dan merequest lagi

-> SO boleh men-preempt suatu proses untuk mengharuskannya melepas sumber dayanya

  • Circular Wait -> Mendefinisikan suatu pengurutan linier dari jenis-jenis sumber daya

STARVATION

Starvation adalah sebuah algoritma untuk mengalokasikan sejumlah sumber informasi, dan mungkin memberikan shortest job first, tapi memungkinkan juga untuk terjadi penundaan waktu yg sangat panjang, meskipun tidak diblock. Maka solusi untuk mengatasi starvation adalah first-come first-serve algorithm.

Deadlock Recovery

Digunakan untuk membatalkan semua proses yg sudah deadlock (untuk proses terminasi). Untuk mencegah terjadinya interupsi sumber informasi adalah dengan :

  • memilih korbannya (mengurangi biaya)
  • rollback, artinya mengembalikan semua nilai menjadi safe state
  • starvation, proses yang sama mungkin bisa diambil dengan diambil sebagai korban

Deadlock Handling

Dengan mengkombinasikan 3 pendekatan yaitu :

  • Prevention
  • Avoidance
  • Detection

Memungkinkan untuk memilih pendekatan yang optimal untuk setiap sumber daya dalam suatu sistem. Partisi sumber informasi digambarkan dalam urutan kata dalam sistem.

Memastikan menggunakan pendekatan yang tepat dalam mengatasi deadlock dalam setiap class.

—————————————————————————————————————————————-

Contoh soal Deadlock :

Tugas dari Slide Binusmaya

1.

 a

Terdapat 3 proses yaitu proses A, proses B dan proses C.

Saldo awal di bank yaitu 3+2+2+3=10

Tapi karena sudah dipakai oleh proses A,B dan C maka sisa saldo menjadi 3.

Sekarang kita mau membuktikan apakah state tersebut safe atau non safe dan berapa nilai RB (resources bank).

Langkah pertama melihat berapa kekurangan saldo yang dibutuhkan dari masing-masing proses.

  • Proses A membutuhkan 9, sedangkan baru memiliki 3, jadi 9-3=6
  • Proses B membutuhkan 4, sedangkan baru memiliki 2, jadi 4-2=2
  • Proses C membutuhkan 7, sedangkan baru memiliki 2, jadi 7-2=5

Dari ketiga nilai tersebut maka yang memungkinkan untuk bank meminjamkan saldonya adalah proses B.

Langkah-langkahnya adalah:

  • Bank meminjamkan proses B sebanyak 2, jadi sekarang saldo di bank tersisa 1.
  • B mengembalikan pinjamannya sebesar 4, jadi sekarang saldo di bank menjadi 1+4=5
  • Bank meminjamkan C sebanyak 5, jadi sekarang saldo di bank menjadi 5-5=0
  • C mengembalikan pinjamannya sebesar 7, jadi sekarang saldo di bank menjadi 0+7=7
  • Bank meminjamkan A sebanyak 6, jadi sekarang saldo di bank menjadi 7-6=1
  • A mengembalikan pinjamannya sebesar 9, jadi sekarang saldo di bank menjadi 1+9=10

Jadi state tersebut safe dan RB nya adalah 10.

 

2. Banker’s Algorithm

2

Jawab :

a. Pembuktian

Rumusnya adalah Current allocation(A,B,C,D) + available yang kemudian dicocokan dengan resource dari masing-masing type

A = 2+0+4+1+1+1+6=15 (terbukti sama)

B= 0+1+1+0+1+0+3 = 6 (terbukti sama)

C = 2+1+0+0+0+0+5 = 9 (terbukti sama)

D = 1+1+2+1+0+1 +4 = 10(terbukti sama)

b. Need Matrix

Caranya adalah mengurangkan maximum demand dengan current allocation pada masing-masing prosess dan type

Process

A B C D

P0

7 5 3 4

P1

2 1 2

2

P2 3 4 4

2

P3

2 3 3 1
P4 4 1 2

1

P5 3 4 3

3

c. Membuktikan apakah state tersebut safe atau non safe

Saldo awal yang tersedia di bank adalah A=6, B=3, C=5, D=4.

Lalu kita melihat pada need matrix proses manakah yang memungkinkan bank untuk meminjamkan proses tersebut. Setelah ditelusuri maka ditemukan bahwa proses P0,P2 dan P5 tidak memungkinkan untuk dipinjamkan terlebih dahulu dikarenakan saldo di bank tidak mencukupi.

Maka proses yang bisa dijalankan terlebih dahulu adalah P1, P3 dan P4.

Dari ketiga proses tersebut kita dapat memilih secara bebas proses mana yang mau dijalankan terlebih dahulu.

Misalnya dimulai dari proses P1.

Keterangan

A B C D Operasi
Saldo awal bank 6 3 5 4

Dipinjam P1

2 1 2 2
Sisa saldo bank 4 2 3 2

=

P1 mengembalikan pinjamannya

2 2 3 3 +
Saldo bank 6 4 6 5

=

Dipinjam P2

3 4 4 2
Sisa saldo bank 3 0 2 3

=

P2 mengembalikan pinjamannya

7 5 5 4 +
Saldo bank 10 5 6 7

=

Dipinjam P0

7 5 3 4
Sisa saldo bank 3 0 3 3

=

P0 mengembalikan pinjamannya

9 5 5 5 +
Saldo bank 12 5 8 8

=

Dipinjam P5

3 4 3 3
Sisa saldo bank 9 1 5 5

=

P5 mengembalikan pinjamannya

4 4 4 4 +
Saldo bank 13 5 9 9

=

Dipinjam P4

4 1 2 1
Sisa saldo bank 9 4 7 8

=

P4 mengembalikan pinjamannya

5 2 2 1 +
Saldo bank 14 6 9 9

=

Dipinjam P3

2 3 3 1
Sisa saldo bank 12 3 6 8

=

P3 mengembalikan pinjamannya

3 3 3 2 +
Saldo bank 15 6 9 10

=

Jadi state tersebut safe dan RB nya adalah A=15, B=6, C=9 dan D=10

d. Diijinkan karena saldo bank mencukupi.

6

3 5 4

3

2 3 3

3 1 2 1

=

www.binus.ac.id

www.skyconnectiva.com

Sistem Operasi Pertemuan 5

Session 9 – Scheduling

Behaviour of Process

  1. Process-bound : dilihat dari proses itu sendiri
  2. I/O bound : dilihat dari input dan output

1

CPU Scheduler()

  • Algoritma  scheduling:  Memilih dari proses-proses yang berada di memori (ready to execute) dan memberikan jatah CPU ke salah satu proses tersebut.
  • CPU Scheduler berfungsi untuk menampilkan proses-proses didalam sebuah memori yang sudah siap untuk dieksekusi, dan dialokasikan ke dalam CPU.
  • CPU scheduling mempunyai 4 keputusan :
  1. berubah dari running ke waiting state
  2. berubah dari running ke ready state
  3. berubah dari waiting ke ready state
  4. terminate/mengakhiri
  • Scheduling nomor 1 dan 4 adalah non-preemptive
  • Scheduling nomor 2 dan 3 adalah preemptive

Types of Scheduler

  • Long-term scheduling -> Menyeleksi proses-proses mana yang harus dimasukkan ke dalam ready queue dan membawanya ke memori untuk dieksekusi .
  • Medium-term scheduling -> Menentukan apakah menambah sebagian jumlah proses atau seluruhnya dalam memori utama
  • Short-term -> Menentukan proses mana yang selanjutnya akan dieksekusi dan mengalokasikan CPU untuk proses tersebut, dimana pemilihan proses barunya dialokasikan sesering mungkin.
  • I/O scheduling -> I/O device yang tersedia akan menghandle proses I/O yang tertunda

Dispatcher

Dispatcher mengatur dan memberikan kontrol CPU kepada proses yang dipilih oleh “short-term scheduler”. Dispatcher melibatkan :

  • perubahan konteks
  • perubahan ke mode user
  • melompat ke lokasi yang salah dalam program user

Dispatcher latency adalah waktu yang dibutuhkan oleh dispatcher untuk menyelesaikan 1 proses dan memulai proses yang lainnya.

Scheduling Criteria :

  • CPU utilization :  untuk menjaga agar CPU tetap dalam keadaan sibuk/bekerja (menggunakan CPU semaksimal mungkin).
  • Throughput :  maksimalkan jumlah proses yang selesai dijalankan (per satuan waktu).
  • Turnaround time : meminimalkan waktu selesai eksekusi suatu proses (sejak di submit sampai selesai).
  • Waiting time : meminimalkan waktu tunggu proses  (jumlah waktu yang dihabiskan menunggu di ready queue).
  • Response time :  meminimalkan waktu respon dari sistem terhadap user (interaktif, time-sharing system), sehingga interaksi dapat berlangsung dengan cepat.

Optimization Criteria :

  • Max CPU utilization : Penggunaan CPU secara maksimal
  • Max throughput : Penyelesaian jumlah proses yang maksimal
  • Min turnaround time : Waktu yang diperlukan semakin cepat semakin baik
  • Min waiting time : Waktu menunggu seminimal mungkin
  • Min response time : Waktu untuk merespon secepat mungkin

Goal of Scheduling

  1. All system
    – Fairness : mengatur proses dalam penggunaan bersama sumber daya CPU secara adil
    – Policy enforcement :  memastikan kebijakan yang diterapkan berjalan
    – Balance : menjaga semua bagian sistem dalam keadaan sibuk
  2. Batch system
    – Throughput : memaksimalkan jumlah job per jam (jobs per hour)
    – Turn around time :  meminimalkan waktu dari mulai (submission) hingga berakhir (termination)
    – CPU utilization : mengupayakan CPU selalu sibuk sepanjang waktu
  3. Interactive system
    – Response time : merespon permintaan (request) dengan cepat
    – Proportionallity : memenuhi harapan pengguna (user’s expectation)
  4. Real time system
    – Meeting deadlines : menghindari kehilangan data
    – Predictability : menghindari penurunan kualitas dalam sistem multimedia

Batch Scheduling Algorithms

Ada beberapa metode dalam scheduling :

1.  First-Come First-Serve
Proses diassign ke dalam CPU secara urut.

Keuntungan : Mudah dimengerti dan mudah diprogram

Kelemahan  : Pekerjaan yang lebih singkat tetap harus menunggu meskipun ada pekerjaan yang lebih lama berada di depannya

.

2

2.  Shortest Job First

Pekerjaan yang lebih ringan akan dikerjakan terlebih dahulu.

Shortest Job First mempunyai 2 skema yaitu Preemptive  dan Non Preemptive.

  • Non preemptive :  saat CPU diberi proses maka harus menunggu proses tersebut sampai selesai terlebih dahulu.
  • Preemptive : Jika ada proses baru yang datang dengan jumlah CPU burst time nya lebih sedikit dibandingkan dengan sisa CPU burst time proses yang sedang berjalan maka proses yang baru datang tersebut dapat dijalankan terlebih dahulu. Skema ini juga dikenal sebagai Shortest-Remaining-Time-First (SRTF).

– Shortest Job First – Non Preemptive

3

– Shortest Job First – Preemptive

4

Contoh soal :

Tugas dari Buku Operating Systems: Internals and Design Principles: International Edition,7th Edition Halaman 447 nomor 9.2

Process

Arrival Time

Processsing Time

A
0
3
B
1
5
C
3
2
D
9
5
E
12
5

Jawab :

1. First-Come First-Serve

FCFS

Seperti yang telah dijelaskan diatas, FCFS menggunakan prinsip FIFO yaitu First In First Out.

Waktu menunggu A = 0 detik karena tidak ada proses yang berjalan sebelumnya pada saat proses A datang oleh karena itu proses A bisa langsung dikerjakan.

Waktu menunggu B = 2 detik karena arrival time proses B=1 sedangkan proses A baru selesai pada detik ke 3. Jadi waktu menunggunya adalah 3-1=2.

Waktu menunggu C = 5 detik karena arrival time proses C=3 sedangkan proses B baru selesai pada detik ke 8. Jadi waktu menunggunya adalah 8-3=5.

Waktu menunggu D = 1 detik karena arrival time proses D=9 sedangkan proses C baru selesai pada detik ke 10. Jadi waktu menunggunya adalah 10-9=1.

Waktu menunggu E = 3 detik karena arrival time proses E=12 sedangkan proses D baru selesai pada detik ke 15. Jadi waktu menunggunya adalah 15-12=3.

Jadi ..

Waktu menunggu untuk A=0, B=2, C=5, D=1, E=3

Rata-rata waktu menunggu = (0+2+5+1+3)/5 = 2,2 detik

2. Shortest Job First – Non Preemptive

np dan p

Pada Non Preemptive proses yang waktu pengerjaanya lebih cepat bisa dikerjakan terlebih dahulu dengan catatan proses yang sebelumnya harus diselesaikan terlebih dahulu.

Seperti biasa proses A dijalankan terlebih dahulu karena tidak ada proses yang berjalan sebelumnya dan waktu menunggunya adalah 0 detik.

Nah sekarang proses yang dijalankan selanjutnya adalah proses C. kenapa tidak proses B terlebih dahulu? bukannya proses B yang datang lebih dulu dibandingkan proses C? Seperti yang telah dijelaskan sebelumnya proses yang waktu pengerjaannya lebih cepat maka dijalankan terlebih dahulu. Proses C memiliki processing tme = 2 , sedangkan proses B memiliki processing time = 5. Jadi waktu menunggu proses c adalah 0 karena saat datang langsung dikerjakan.

Proses selanjutnya adalah B. Mengapa harus B? padahal proses B,D dan E memiliki processing time yang sama? alasannya adalah karena proses B datang terlebih dahulu, selanjutnya baru proses D dan E yang dijalankan.

Waktu menunggu proses B = 4, karena proses B baru dijalankan pada detik ke 5 sedangkan proses B datang pada detik ke 1. Jadi 5-1=4 detik.

Waktu menunggu proses D = 1, karena proses D baru dijalankan pada detik ke 10 sedangkan proses D datang pada detik ke 9. Jadi 10-9=1 detik

Waktu menunggu proses E = 1, karena proses D baru dijalankan pada detik ke 15 sedangkan proses D datang pada detik ke 12. Jadi 15-12=3 detik

Waktu menunggu untuk A=0, B=4, C=0, D=1, E=3

Rata-rata waktu menunggu = (0+4+0+1+3)/5 = 1,6 detik

3. Shortest Job First – Preemptive

np dan p

Kebetulan jawaban Preempive pada soal ini sama persis dengan jawaban non-preemptive, namun secara teknik pengerjaan tentu ada yang berbeda. Yang membedakan adalah pada preemptive kita bisa menghentikan proses yang sedang berjalan jika ada proses yang datang pada waktu tersebut dengan processing time yang lebih rendah.

Misalnya pada detik ke 0 datang proses A dengan processing time 4, lalu pada detik ke 2 ada proses C datang dengan processing time 1, yang dilakukan pada preemptive ini adalah menjalankan proses C terlebih dahulu dengan kata lain proses A di delay waktu pengerjaannya. Setelah proses C selesai pada detik ke 3 maka proses A bisa dilanjutkan kembali dengan waktu menunggunya adalah 1 detik (3-2=1). Namun jika ada proses baru lagi yang datang dengan processing time nya lebih rendah dari A , maka proses A bisa tertunda lagi sampai proses tersebut selesai dijalankan. Begitu juga dengan proses-prosess selanjutnya.

Jadi untuk jawaban preemptive adalah :

Waktu menunggu untuk A=0, B=4, C=0, D=1, E=3

Rata-rata waktu menunggu = (0+4+0+1+3)/5 = 1,6 detik

 

www.binus.ac.id

www.skyconnectiva.com

Sistem Operasi Pertemuan 4

Session 7 – Threads (1)

Pengertian Threads

Thread adalah sebuah pengontrol aliran program pelaksanaan program dengan menggunakan kendali tunggal.

Apa yang dimiliki oleh Thread ?

  • Status eksekusi thread (running, ready, terminated)
  • Running -> Sebuah thread yang sedang dieksekusi dan didalam control dari CPU.
  • Ready -> Thread yang sudah siap untuk dieksekusi, tetapi masih belum ada kesempatan untukmelakukannya.
  • Terminated -> Status yang dimiliki pada saat proses telah selesai dieksekusi.
  • Simpanan konteks thread (pada saat tidak running)
  • Stack eksekusi
  • Beberapa storage statis untuk menyimpan variabel lokal
  • Hak akses ke memori dan resource yang dimiliki oleh proses
    • Memori dan resource digunakan bersama-sama oleh semua thread dari sebuah proses (share)

Thread memungkinkan beberapa eksekusi berlangsung dalam lingkup proses yang sama.

2 Jenis Thread:

  • Lightweight Process

Merupakan thread yang mempunyai beberapa properti dari sebuah proses.

  • Multithreading

Merupakan kemampuan sistem operasi dalam mengeksekusi banyak thread yang berasal dari sebuah proses

Thread Model :

1

a) 1 proses 1 thread (one to one)     

b) process banyak thread (many to one)

 

2

  1. Kolom pertama berisi beberapa item yang dibagikan oleh semua thread dalam suatu proses.
  2. Kolom kedua berisi beberapa item pribadi ke setiap thread.

 

 

3

Satu proses memiliki banyak thread dan setiap thread mempunyai stacknya masing-masing.

 

4

Apa keuntungan dari penerapan Thread?

  1. Pembentukan suatu thread jauh lebih cepat daripada pembentukan proses baru.
    • Penelitian menunjukkan pembentukan thread 10 kali lebih cepat daripada pembentukan proses.
  2. Terminasi suatu thread jauh lebih cepat daripada terminasi proses.
  3. Perpindahan eksekusi antar thread jauh lebih cepat.
  4. Antar thread dapat berkomunikasi tanpa melibatkan kernel.
    • Sebagai efek dari penggunaan share memori dan file.

Implemetasi Thread

  1. User Space
  • Kernel tidak mengetahui keberadaan thread.
  • Thread management dilakukan oleh aplikasi user level/library.

5

 

 

 

 

 

Keuntungan :

  • Setiap proses mempunyai penjadwalan masing-masing.
  • Performa lebih cepat.
  • Dapat berjalan di berbagai OS.

Kerugian :

  • Membutuhkan pemanggilan non-blocking system.
  • Jika ada 1 threads yang sedang berjalan maka thread yang lain harus menunggu.
  1. Kernel Space

Thread management dilakukan oleh kernel.

6

Keuntungan :

  • Tidak membutuhkan pemanggilan non-blocking system.
  • Thread pada proses yang sama dapat dijalankan pada prosesor yang berbeda.

Kerugian :

  • Membutuhkan biaya yang besar.
  1. Hybrid

7

  • Ada sejumlah kernel level thread yang dipetakan ke sejumlah user level thread.
  • Pembuatan thread, scheduling, sinkronisasi dilakukan di user space.

 

Pop Up Thread

8

Pembuatan thread baru dilakukan pada saat pesan datang.

a) Sebelum pesan datang

b) Sesudah pesan datang

Thread Basics

 9

Thread State

  1. Spawn -> Thead muncul atau dibuat oleh proses/OS.
  2. Block – Thread menunggu sebuah event.
  3. Unblock – Ketika event yang ditunggu oleh thread muncul.
  4. Finish – Thread selesai. Register context dan stack yang digunakan dibebaskan.

Relasi antara Thread dan Process

10

 

Session 8 – Threads (2)

Thread di Linux

GNU/Linux menggunakan POSIX Standard Thread API. Dikenal dengan nama pthread. Program dengan thread harus di-compile dengan option -lpthread.

Contoh : gcc testhread.c -o thread -lpthread

Pembuatan Thread

Setiap thread dalam sebuah program diidentifikasi dengan thread ID.

Type: pthread_t

Fungsi Untuk Membuat Thread

int pthread_create(pthread_t *obj, const pthread_attr_t* attr, void * (*func) (void *), void *arg);

Parameter ke:

1 → Thread ID

2 → Thread attribute (NULL untuk default attribute)

3 → Fungsi yang ingin dijalankan

4 → Parameter untuk fungsi yang dijalankan

  • Thread ID digunakan untuk mengambil ID dari thread yang dibuat
  • Parameter attr digunakan untuk mengatur properti khusus dari thread. Contoh : penjadwalan dan prioritas.
  • Jika attr bernilai NULL, thread akan dibuat dengan penjadwalan dan prioritas default.
  • Func adalah pointer ke function. (function hanya dapat mengambil void * parameter)
  • Arg adalah void * yang mewakili argumen yang diteruskan ke function func ketika thread dieksekusi.
  • Mengembalikan nilai 0 jika sukses.

 

Setting Thread Attributes

Beberapa properti :

  • Contention Scope

Digunakan untuk mengatur properti penjadwalan baik di dalam proses atau pada sistem global.

  • Stack Size & Stack Address

Memungkinkan programmer untuk mengatur seberapa besar ukuran stack dan di mana letak memory itu berada.

  • Detach State

Dapat membuat thread terpisah atau tergabung.

  • Schedule Policy & Schedule Parameters.

Jika sistem operasi mendukung maka kita dapat melihat secara garis besar penjadwalan mana yang harus dilakukan dalam proses Light Weight Processes (LWP’s).

  • Ketika thread dibuat dengan objek atribut yang sesuai maka akan memiliki behavior yang telah ditentukan.
  • Untuk mengatur objek atribut harus memanggil function : pthread_attr_init().

Detached Threads

  • Detached threads merupakan thread yang diabaikan oleh thread yang lain.
  • Ketika thread dihentikan, maka secara otomatis dibangun kembali oleh OS.

Terminating Thread

  • pthread_exit()

Merupakan function yang berfungsi untuk mengambil pointer ke data dan dikembalikan saat thread diinisialisasikan.

Kapan Menggunakan Thread?

  • Thread cocok digunakan untuk program yang melakukan task secara bersamaan atau

memiliki sejumlah task yang dapat diselesaikan secara paralel untuk menghasilkan hasil.

  • Saat membuat program menggunakan thread, kita harus mengatur program tersebut agar berbagai task tersebut dapat dijalankan secara bersamaan.

Contoh : Masalah grafis komputer ( ray tracing ), manipulasi matriks.

www.binus.ac.id

www.skyconnectiva.com

Sistem Operasi Pertemuan 3

Session 5 – Multi Processor

Multiprocessor vs Multicore System

Multicore Systems :

  • Sebuah CPU yang terdiri dari lebih dari satu core.
  • Core bekerja sebagai yang terpisah dalam sebuah single chip.
  • Core ini berguna untuk meningkatkan performance tanpa menaikkan clock processor.

Multiprocessor :

  • Memiliki lebih dari 1 CPU.
  • Dapat mengkombinasikan 2 teknologi, yaitu multicore dan multiprocessor.

Perbedaan Multicore dengan Multiprocessor :

  • Multicore lebih hemat energi karena hanya satu CPU yang dialiri listrik.
  • Multicore lebih hemat tempat karena hanya butuh satu CPU, jadi penggunaan tempat lebih hemat.
  • Multiprocessor baik dalam performancenya karena dapat menangani banyak proses sekaligus.

Multiprocessor diklasifikasikan berdasarkan asosiasi CPU dan unit memory :

  • Uniform memory access (UMA)

Sebelumnya disebut tightly coupled multiprocessor

UMA juga disebut symmetrical multiprocessor (SMP)

Contoh: Balance system dan VAX 8800

  • Nonuniform memory access (NUMA)

Contoh : HP AlphaServer and IBMNUMA-Q

  • No-remote-memory-access (NORMA)

Merupakan sistem yang terdistribusi

Contoh : Hypercube system by Intel

UMA vs NUMA

  • Unified Memory Access (UMA)
  • Biasa disebut juga Symmetric MultiProcessors (SMP)
  • Akses memory secara seragam
  • Non-Unified Memory Access (NUMA)
  • Dibuat untuk menangani kelemahan UMA

Persamaan UMA dan NUMA :

  • Memiliki single memory space
  • Pitfall : Perbandingan antara shared memory dan distributed memory

Perbedaan UMA dan NUMA :

  • Dari sisi access time NUMA lebih cepat dibandingkan UMA
  • Jumlah processor antara UMA dan NUMA berbeda
  • UMA simestris, NUMA tidak simetris
  • Implementasi antara bus dan network

Klasifikasi Sistem Paralel :

  • SISD (Single Instruction Single Data)
  • MISD (Multiple Instruction Single Data)
  • SIMD (Single Instruction Multiple Data = DLP)
  • MIMD (Multiple Instruction Multiple Data)

Gang Scheduling

Terdapat 3 bagian dalam Gang Scheduling :

  • Thread yang berhubungan atau sejenis digabungkan sebagai satu unit gang.
  • Semua anggota gang berkerja secara simultan pada timashare CPU yang berbeda.
  • Semua anggota gang memulai dan mengakhiri time slice bersama-sama.

 Embedded System

Embedded system adalah suatu kombinasi dari hardware dan software yang didesain untuk menjalankan suatu fungsi tertentu.

Dari  berbagai kasus, embedded system merupakan bagian dari  sistem atau produk yang lebih besar , seperti dalam kasus sistem anti penguncian rem di mobil.

Contoh dari embedded system adalah microprocessor yang  mengontrol mesin automobile.

Karakteristik dari Embedded system :

  • Real time Operation

Suatu operasi yang pada waktu itu juga akan dilakukan secara langsung.

  • Reactive Operation

Suatu operasi yang akan berjalan jika di picu dengan tindakan lainnya dulu.

  • Configurability

Karena variasi dari embedded system sangat banyak, maka untuk menyesuaikan kebutuhan dapat dikonfigurasi secara kualitatif dan kuantitatif.

  • I/O Device Flexibility

Fleksibilitas antara segala macam alat input dan output.

  • Streamlined Protection Mechanism

Embedded system didesain secara terbatas dengan fungsi yang didefinisikan dengan baik.

  • Direct use of interrupts

Embedded system dapat diinterupsi oleh proses lain yang lebih penting.

Specialized Embedded Operating System :

  • Prosesnya cepat dan ringan.
  • Real time
  • Hanya butuh ukuran yang kecil karena fungsinya spesifik.
  • Respon untuk external interrup cepat.
  • Menyediakan special sequential files.
  • Maintain realtime clock.
  • Meminimize interval selama interval disable.

2 contoh dari embedded system adalah TinyOS dan eCos(embedded configurable operating system).

eCos (Embedded Configurable Operating System)

  • Open source, gratis, real time O/S untuk embedded application.

Komponen eCos :

  • HAL (hardware abstraction layer) adalah sebuah software yg menyediakan API kepada upper layers dan peta / gambaran kepada upper layers terhadap platform hardware.
  • eCos Kernel

eCos kernel dibuat dengan tujuan :

  • Low interupt latency
  • Low task switching latency
  • Small memory footprint
  • Deterministic behavior

eCos Scheduler terdiri atas 2 yaitu :

  • Bitmap scheduler : Membantu level-level prioritas, tapi hanya 1 thread yang dapat diproses dalam waktu yang sama.
  • Multilevel Queue Scheduler
    • Mendukung sampai dengan priority level 32
    • Mengijinkan banyak thread yang terdapat pada level prioritas, terbatas hanya oleh sumber data.

Session 6 – Distributed System

Client Server Computing

  • Lingkungan client/server dihuni oleh berbagai client dan server.
  • Setiap server dalam lingkungan client/server menyediakan 1 set layanan bersama dengan client.
  • Client/server merupakan komputasi terdistribusi.

Middleware

  • Middleware menyediakan lapisan software yang memungkinkan akses seragam yang berbeda.

Service Oriented Architecture :

  • Merupakan arsitektur f client/server.
  • Mengatur fungsi bisnis kedalam struktur modular.
  • Terdiri dari satu set layanan dan satu set aplikasi client yang menggunakan layanan.

SOA Architectural components

Terdiri dari 3 tipe :

  • Service Provider

Sebuah node jaringan yang menyediakan antarmuka layanan untuk aset software yang mengelola satu set tugas tertentu.

  • Service Requestor

Sebuah node jaringan yang menemukan dan memanggil layanan perangkat lunak lain untuk memberikan solusi bisnis.

  • Service Broker

Sebuah jenis service tertentu yang bertindak sebagai registry dan memungkinkan untuk pencarian interface penyedia layanan dan lokasi layanan.

Clustering

  • Yaitu sebuah pendekatan yang digunakan untuk memberikan performa dan ketersediaan yang tinggi.
  • Cluster merupakan sekelompok yang saling berhubungan, seluruh komputer bekerja sama sebagai sumber daya komputasi (bertindak sebagai satu mesin).

Keuntungan Clustering :

  • Absolute Scalability

Memungkinkan membuat cluster yang besar, bahkan dapat melampaui kekuatan mesin yang tercepat sekalipun.

  • Incremental Scalability

Sebuah cluster dikonfigurasi sedemikian rupa untuk menambah sistem baru pada cluster tersebut dengan tahap perlahan.

  • High Availability

Dalam banyak produk, software secara otomatis menangani kesalahan yang ada.

  • Superior Price/Performance

Memungkinkan untuk mengumpulkan cluster dengan daya komputasi yang sama atau lebih besar dari mesin tunggal yang besar, dengan biaya yang jauh lebih rendah.

www.binus.ac.id

www.skyconnectiva.com

Sistem Operasi Pertemuan 2

Session 3 – Process(1)

Process vs Program

Process adalah eksekusi dari sebuah program.

Program adalah terdiri dari banyak instruksi yang bisa melakukan tugas.

Karakteristik dari Proses yaitu :

  • Identifier

Untuk membedakan satu proses dengan proses yang lainnya.

  • State

Untuk menggambarkan keadaan, apakah sedang running/suspended/terminated.

  • Priority

Prioritas terhadap suatu proses.

  • Program Counter

Untuk menyimpan alamat instruksi selanjutnya.

  • Memory Pointers

Untuk menunjuk letak memory dari suatu program.

  • Context Data

Data yang disimpan pada saat execution.

  • I/O Status Information

Perangkat input output yang dimasukkan kedalam proses, daftar file yang digunakan proses dan lainnya.

  • Accounting Information

Untuk mengetahui jumlah waktu suatu komputer digunakan, waktu clock, limit dan jumlah user.

Langkah Pembuatan Suatu Proses :

  • Buat ID yang unik
  • Pastikan ada tempat untuk proses tersebut
  • Mengetahui balasan dan kegunaan dari proses tersebut
  • Mengatur hubungan yang tepat
  • Memperluas data struktur lainnya

Process Termination

  • Normal Completion
  • Time Limit Exceeded
  • Memory Unavailable
  • Bounds Violation
  • Protection Error
  • Arithmetic Error
  • Time Overrun
  • I/O Failure
  • Invalid Instructions
  • Privileged Instruction
  • Data misuse
  • Operating System Intervention
  • Parents Terminates so Child Processes Terminate
  • Parent Request

Process Table

Process table berfungsi  menyimpan informasi mengenai lokasi process, beserta atribut process.

Properti yang dibutuhkan:

  • Process ID
  • Process State
  • Location in memory

Process Location

–   Proses mencakup sekumpulan program yang akan dieksekusi :

  • Lokasi data untuk variabel lokal dan global
  • Setiap konstanta yang didefinisikan
  • Stack

–   Process Control Block

Merupakan sekumpulan atribut yang ada pada table process.

–   Process Image

Sekumpulan program, data, stack dan atribut.

Process Control Block

  • Pengidentifikasian Proses
    • Identifier -> Mengindentifikasi pengguna
  • Informasi State Prosesor
    • User-Visible Registers -> Yaitu referensi dari prosesor untuk mengeksekusi bahasa mesin.
    • Control and Status Registers -> Berbagai register prosesor yang digunakan untuk mengendalikan operasi prosesor. Terdiri dari :
      • Program Counter
      • Condition Codes
      • Status Information
    • Stack Pointers (LIFO)
  • Informasi proses control

 

Five State Process Model

5state

Merupakan kondisi model yang mungkin dialami oleh suatu process.

  1. New ->  Process baru saja di bentuk dan belum memasuki mekanisme antrian eksekusi.
  2. Ready -> Process tinggal menunggu giliran untuk dieksekusi.
  3. Running -> Process sedang dieksekusi.
  4. Blocked -> Process tidak dapat dieksekusi sampai suatu event terjadi, misalnya operasi I/O, dan kontrol atas processor diberikan ke process yang lain.
  5. Terminated/exit  -> Process berakhir.

Reason for Process Switch

  • Clock interrupt
    • Proses yang dieksekusi telah mencapai waktu yang telah ditentukan
  • I/O interrupt
  • Memory fault
    • Alamat memory terdapat di vitual memory sehingga harus dipindahkan ke memory utama
  • Trap
    • Terjadi error
    • Menyebabkan proses ke jalan keluar
  • Supervisor call
    • Seperti file terbuka

Suspended Processes

  • Processor lebih cepat dari I/O sehingga semua process dapat menunggu I/O.
  • Melakukan swap proses ke disk untuk membebaskan lebih banyak memori.
  • State yang di block menjadi suspend ketika di-swap ke disk.
  • 2 State Baru :
  • Blocked, Suspend
  • Ready, Suspend

Modes of Execution

  • User Mode
  • System mode, control mode, or kernel mode

Session 4 – Process (2)

Process Management System ~ Call – fork() 

  • Membuat proses baru (child)
  • Parent dan child dapat dieksekusi secara bersamaan
  • Setiap proses dapat berkesinambungan dengan proses yang lainnya sehingga menciptakan hirarki proses
  • Dalam sebuah proses parent dapat memilih untuk menunggu child atau mengakhiri

Fork()

  • Mengembalikan nilai -1 jika gagal
  • Mengembalikan nilai 0 pada anak
  • Mengembalikan nilai > 1 pada parentnya
  • Ketika fork ( ) dieksekusi , dapat membuat dua salinan identik dari address space
  • Kedua proses dimulai setelah eksekusi
  • Parent dan child dapat berjalan masing-masing

pc1

pc2

Tentang Fork () 

  • Perintah pelaksanaan parent dan child mungkin berbeda pada berbagai platform. Parent dan child berjalan secara independen.
  • Pada Ubuntu Linux urutannya, 1-2-3-4 (child kemudian kembali ke parent)
  • Sedangkan di Solaris, 1-3-4-2 (parent lalu child)
  • Secara umum, kita tidak pernah tahu apakah anak mulai dijalankan sebelum orang tua atau sebaliknya. Hal ini tergantung pada algoritma penjadwalan yang digunakan oleh kernel.
  • fork () dipanggil sekali tetapi return dua kali
  • Return nilai pada child adalah 0
  • Return nilai di induk adalah PID anak
  • Sebuah fork () sering diikuti dengan exec ()

System()

  • Memanggil beberapa program
  • Membuat subprocess yang berjalan dalam standar Bornue shell
  • (/bin/sh) adalah command dari shall tersebut
  • Execution : melihat fitur, pembatasan dan keamanan
  • Shell umumnya terdapat pada GNU/Linux system, atau disebut bash

System() – Contoh

#include <stdlib.h>

int main ( )

{

int return_value ;

return_value = system ( “ls -l /” );

return return_value;

}

Exec()

  • Hanya bisa memanggil 1 program
  • Process ID tidak terganti

Exec () Family System Call

  • Execvp and execlp (with p)

Menerima nama program dan mencari sebuah program dengan nama tersebut di jalur eksekusi yang sedang dilalui; fungsi yang tidak mengandung p harus diberi path lengkap dari program yang akan dieksekusi

  • Execv, execvp, and execve (with v)

Menerima daftar argumen untuk program baru sebagai NULL-terminated array dari pointer ke string

  • Execl, execlp, and execle (with l)

Menerima daftar argumen menggunakan bahasa C.

  • Execve and execle (with e)

Menerima argumen tambahan, sebuah array dari variabel lingkungan.

  • execve and execle (with e)

Execv()

  • Mengeksekusi file, merubahnya dari calling-process menjadi new process
  • Setelah eksekusi berhasil tidak ada return ke calling process

Other System Calls

  • exit()
    • Menghentikan proses secara normal
  • wait()
    • Digunakan oleh parent
    • Menunggu child menyelesaikan eksekusi
  • getpid()
    • Return child
  • getppid()
    • Return parent

www.binus.ac.id

www.skyconnectiva.com

Sistem Operasi Pertemuan 1

Session 1 – Computer and Operating System Overview

Sistem Operasi

Adalah perangkat lunak yang berfungsi sebagai antarmuka untuk perangkat keras, menjadwalkan kegiatan, mengalokasikan media penyimpanan dan menyediakan antarmuka default kepada pengguna pada saat tidak ada aplikasi yang sedang dijalankan.

4 Elemen Dasar Dalam Sistem Operasi

  • Processor

Yaitu untuk mengontrol operasi dari suatu komputer dan menampilkan fungsi pemrosesan dari suatu data.

  • Main Memory (RAM)

Yaitu tempat untuk menyimpan data. Main memory ini bersifat volatile yang artinya jika komputer mati/shut down maka data nya akan hilang karena penyimpanannya bersifat sementara.

  • I/O Modules (Secondary Memory/Hard Disk)

Yaitu berfungsi untuk memindahkan data antar komputer dan lingkungan externalnya.

  • System Bus

Berfungsi untuk memberikan jalur komunikasi antara processors, memory dan I/O modules.

 

Computer Architecture

1

 

  • Program Counter (PC) : Mencari instruksi ke memory lalu menyimpannya dan diberikan ke IR untuk dieksekusi.
  • Instruction Register (IR) : Tempat menampung instruksi yang akan dieksekusi.
  • Memory Address Register (MAR) : Menentukan alamat di memori yang
    isinya akan diambil ke MBR atau yang akan diisi dengan data yang
    terdapat di MBR.
  • Memory Buffer Register (MBR) : Berisi sebuah word yang akan disimpan di dalam memori, atau digunakan untuk menerima word dari memori.
  • Input Output Address Register (I/O AR) : Menspesifikasikan perangkat input output.
  • Input Output Buffer Register( I/O BR) : Digunakan untuk mengubah data antar modul input output dengan processor.

 

Instruction Cycle

  2

  1. Processor mengambil instruksi dari memory.
  2. Instruksi tersebut lalu dieksekusi.
  3. Setelah dieksekusi maka pemrosesan selesai.

Types of Instructions

  • Processor-memory

Untuk mentransfer data antara processor dan memory.

  • Processor-I/O

Untuk mentransfer data dari processor ke I/O modules dan sebaliknya.

  • Data Processing

Processor yang menjalankan operasi logika atau operasi aritmatika.

  • Control

Untuk mengontrol perubahan urutan dari pengeksekusian data.

Execution Cycle

Terbagi atas 2 antara lain :

  • Pipelining

3

Siklus ini terbagi atas 3 tahapan yaitu FDE ( Fetch -> Decode -> Execute ).

Fetch yaitu proses mengambil datanya, Decode yaitu proses membaca perintahnya dan yang terakhir Execute yaitu proses menjalankan perintahnya.

  • Superscalar

4

Proses dari superscalar mirip dengan pipelining namun yang membedakan yaitu terletak pada holding buffer, yaitu berfungsi untuk menampung instruksi-instruksi yang sudah di-decode.

Interrupt

Yaitu memungkinkan prosesor untuk menjalankan instruksi yang lain ketika operasi I/O sedang berlangsung. Intinya interupsi berfungsi untuk menjalankan proses yang lebih penting.

Tipe-tipe interrupt :

  • Program
  • Timer
  • I/O
  • Hardware Failure

5

Memory Hierarchy

6

Dalam memoy hierarchy terdiri dari 3 lapisan yang dimana semakin keatas maka kecepatannya semakin tinggi.

Disk Chace :

  • Tempat untuk menyimpan data sementara

Misalnya pada saat kita sedang browsing suatu website maka cache dari website itu akan tersimpan dan saat kita mengakses website itu lagi maka load nya akan lebih cepat karena data-data informasi itu sebagian sudah tersimpan dalam chache browser tersebut.

Cache Memory :

  • Tidak terlihat operating system (untuk generasi saat ini sudah tidak berlaku lagi).
  • Meningkatkan kecepatan memory.
  • Processor lebih cepat dibandingkan kecepatan memory.

Tipe-tipe Cache Memory :

  • L1 cache

Pada cache ini terbagi atas 2 bagian yaitu untuk menyimpan instruksi dan untuk meningkatkan kecepatan memory.

  • L2 chace

Yaitu fast access memory (SRAM) antara CPU dan main memory.

  • L3 cache

Untuk menghubungkan motherboard dan CPU.

Session 2 – File System Introduction

File System

  • Mengorganisir file dan manage untuk mengakses data.
  • Menjaga file agar tetap aman, mekanisme file terintegrasi.
  • Agar dapat disimpan di secondary (disk) storage.

Type File System

  • Owner and group information
  • Time
  • Permissions

6 Dasar Tipe File :

  • Regular files

File regular berisi informasi, terdiri dari file ASCII dan biner.

  • Directories

File yang berisi daftar dari file lain.

  • Links

Sistem untuk membuat file atau direktori dapat terlihat di banyak bagian dari pohon file sistem.

  • Special Files

Mekanisme yang digunakan untuk input dan output.

  • Named Pipes

Untuk menyalurkan data.

Cara Mengakses Nama File :

  • Absolute pathname

Suatu file didapat dari menelusuri path dari root directory, melewati semua direktori sampai ke file yang diinginkan. Pathname absolute diawali dengan /

  • Relative pathname

Menelusuri path dari direktori yang sedang digunakan (direktori kerja).

7

www.binus.ac.id

www.skyconnectiva.com

Laporan TFI – CB: Interpersonal Development

tfi

Nama : Daniel Muliawan

NIM : 1701327970

Halo pada kali ini saya akan membagikan pengalaman dalam melakukan project CB.  Sebelumnya perkenalkan nama saya Daniel Muliawan dari kelas LE01 jurusan Teknik Informatika Binusian 2017.

Langsung saja kepada topik pembahasan , disini kami beranggotakan 15 orang (gabungan dari 2 kelompok) dan kami melakukan kegiatan ini selama 4 hari berturut-turut di tempat dan lokasi yang sama.

Tempat yang kami kunjungi dalam melakukan sosisalisasi ini adalah sebuah sekolah dasar yang bernama “SEKOLAH DASAR NEGERI KEMANGGISAN 17 PAGI”. Sekolah ini terletak di Jl. PLN 1 RT. 002/09 Kec. Palmerah Jakarta Barat. Tujuan utama kami berkunjung ke sekolah ini yaitu untuk memberikan pengarahan/penyuluhan kepada anak-anak yang masih duduk di bangku sekolah dasar (khususnya kelas 2 dan 3) tentang bagaimana untuk menjaga kebersihan, berperilaku yang baik dan hal positif lainnya.

Pelang Sekolah

Kegiatan Hari Pertama ( 11 Mei 2015 )

Kegiatan hari pertama yaitu berlangsung pada tanggal 11 Mei 2015 dan kami melakukan kegiatan di kelas 2A. Kebetulan hari itu adalah hari senin, saat kami tiba di lokasi pukul 07.00, para siswa sedang melaksanakan upacara bendera dan kami harus menunggu mereka sampai selesai. Setelah selesai upacara bendera sekitar pukul 07.30 maka kami mulai masuk ke area sekolah dan bertemu dengan para guru untuk mengkonfirmasi kedatangan kami. Setelah mendapat ijin kami mulai masuk ke kelas 2A, kesan pertama yang kami terima saat itu adalah sangat positif sebab kami disambut dengan ramah oleh para murid dan guru. Kami mulai memperkenalkan diri dan memberitahu mereka maksud dan tujuan kami datang ke sekolah mereka.

Saat kami menyampaikan materi para siswa juga antusias dan mereka juga semangat saat kami memberikan beberapa buah pertanyaan. Tidak hanya memberikan materi, kami juga memberikan beberapa bingkisan atau snack kepada mereka ketika mereka bisa menjawab pertanyaan dari kami. Selain itu juga ada permainan agar mereka juga tidak bosan, games yang kami berikan saat itu yaitu harus mengikuti gerakan yang kami peragakan, jika salah maka siswa harus maju kedepan dan diberi hukuman. Setelah menjalani hukuman maka kami memberikan mereka snack dan mereka terlihat senang sekali.  Di penghujung acara kami memberikan mereka snack dan beberapa bingkisan sebagai tanda perpisahan dan kami senang bisa berbagi kebahagiaan dengan para siswa tersebut.

D1 - 1       D1 - 2

D1 - 3        D1 - 4

Kegiatan Hari Kedua ( 12 Mei 2015 )

Hari kedua yaitu berlangsung pada tanggal 12 Mei 2015, kami datang kembali ke sekolah tersebut dan kelas yang kami kunjungi adalah kelas 2B. Seperti hari sebelumnya kami datang dengan anggota lengkap dan mulai melakukan kegiatan kami. Pada hari ini kami menyampaikan materi tentang bagaimana cara hidup sehat dan bahaya jajan diluar sembarangan. Agar tidak membosankan kami juga menyertakan video agar mereka juga semakin jelas dan mengerti tentang apa yang kami sampaikan. Saat sesi tanya jawab murid-murid sangat antusias dan mereka berebutan untuk menjawab pertanyaan karena kami mengiming-imingi hadiah jika mereka berhasil menjawab pertanyaan dengan benar. Karena terlalu semangat ada siswa yang sampai berebutan maju untuk menjawab pertanyaan dan hal ini membuat kami merasa senang. Lalu setelah sesi tanya jawab kami juga mangadakan permainan yang membuat mereka semakin antusias. Pada akhirnya kami memberikan mereka bingkisan sebagai tanda perpisahan kami dengan para murid-murid.

D2 - 1                d2j

d2jj                d2jjj

Kegiatan Hari Ketiga ( 13 Mei 2015 )

Kegiatan hari ketiga yaitu berlangsung pada tanggal 13 Mei 2015. Belajar dari hari pertama dan kedua, kami berusaha agar dapat memberikan penyuluhan lebih baik lagi. Kelas yang kami kunjungi yaitu kelas 3A. Berbeda dengan kelas yang sebelumnya kami kunjungi, para murid di kelas ini lebih interaktif dan semangat. Ada juga murid yang nakal sehingga kami nasehati agar mereka bisa tetap tenang. Topik yang kami bawakan pada hari ini yaitu mengenai bahaya narkoba dan bahaya merokok. Tujuan kami menyampaikan materi ini yaitu agar sejak kecil di pikiran mereka tertanam hal-hal yang positif dan kami berharap setelah mereka mendapatkan informasi dapat diterapkan dalam kehidupan sehari-hari. Agar berbeda hari sebelumnya, kali ini kami mengadakan sebuah pertunjukan agar mereka semakin semangat dan tertarik. Pertunjukan yang kami adakan yaitu sulap, tentu saja dengan mudahnya kami membuat mereka “terpukau” berhubung umur mereka yang masih kecil dan pemahaman mereka yang masih dini. Tujuan kami hanya ingin mereka ceria dan senang dengan kedatangan kami, dan tentunya mereka mendapatkan sesuatu dari materi yang kami sampaikan. Seperti biasanya pada akhir acara kami memberikan kenang-kenangan berupa bingkisan dan mereka sangat senang sekali.

d3                d3j

d3jj                d3jjj

Kegiatan Hari Keempat ( 14 Mei 2015 )

Kegiatan hari keempat yaitu berlangsung pada tanggal 14 Mei 2015. Ini merupakan hari terakhir kami melakukan kegiatan sosialisasi dan kelas yang akan kami kunjungi yaitu kelas 3B. Berhubung ini merupakan hari terakhir, maka kami menyatukan semua kegiatan yang telah kami lakukan di hari pertama, kedua dan ketiga. Hari itu kami memberikan penyuluhan bagaimana menjaga agar lingkungan agar tetap asri, merawat diri dengan baik, membeli jajan yang sehat dan higenis dan bahaya akan rokok dan narkoba. Kami rasa murid kelas 3 lebih mudah untuk menangkap materi yang kami bawakan dibandingkan dengan murid kelas 2, oleh karena itu kami memberikan materi yang lebih padat kepada mereka tentunya dengan bahasa yang mudah dimengerti oleh anak sd. Setelah menyampaikan materi kami mengadakan pertunjukan, sesi tanya jawab dan permainan. Pertunjukan yang kami bawakan masih sama dengan hari kemarin yaitu sulap, namun permainan sulapnya berbeda dengan yang kemarin. Murid-murid sangat antusias untuk melihat, ini terlihat saat mereka berebutan untuk dapat melihat aksi kami. Bahkan sampai-sampai mereka naik ke atas meja dan berdiri karena pandangan mereka tertutup oleh teman mereka. Setelah itu kami mengadakan sesi tanya jawab yang berkaitan dengan materi yang telah kami sampaikan. Dari respon mereka kami dapat mengetahui bahwa mereka menyimak apa yang kami sampaikan dan kami sangat senang. Lalu setelah itu ada games yang membuat mereka sangat antusias dan semangat. Dan pada akhirnya selesailah acara kami dan memberikan mereka bingkisan sebagai tanda ucapan terima kasih dan kenang-kenangan bagi mereka.

d4                d4j

d4jj                d4jjj

Setelah kami melakukan kegiatan sosialisasi dari hari pertama sampai hari keempat kami tidak lupa juga berterima kasih kepada kepala sekolah dan guru-guru yang telah menyambut kehadiran kami dengan baik dan mengijinkan kami untuk melakukan sosialisasi di sekolah tersebut. Sebagai tanda kenang-kenangan dan perpisahan kami beserta para guru dan kepala sekolah melakukan foto bersama dan maka berakhirlah kegiatan kami di sekolah tersebut.

wg1

kel1

kel13

Harapan kami setelah melakukan kegiatan sosialisasi ini yaitu dapat memberikan manfaat kepada lingkungan sekitar khususnya anak-anak sd yang merupakan calon penerus bangsa. Dari bibit-bibit inilah maka akan tercipta generasi yang cerdas dan berintegritas jika mereka juga mendapatkan pengetahuan dan pengajaran yang positif. Akhir kata saya mengucapkan terima kasih kepada TFI yang sudah memberikan kami kesempatan untuk berkarya di tengah masyarakat. Terima kasih!