Cari Blog Ini

Selasa, 12 November 2019

Tugas 4 File System

1.Jelaskan Bagaimana pengimplementasian dari sebuah direktori dalam disk?

1. Struktur Sistem File
  • File : Kumpulan informasi yang berhubungan dan tersimpan dalam secondary storage
  • Sistem File : Metode penyimpanan dan pengorganisasian file untuk mempermudah proses pencarian dan pengaksesan
Layered Sistem File
image
Ket:
  • I/O control (driver device dan interrupt handler) : Sebagai pengirim informasi antara memori dan sistem disk
  • Basic file system : memberi perintah device driver untuk membaca dan menulis blok fisik pada disk
  • File-organization module : berisi informasi tentang logical address dan physical address dari file tersebut, mengatur juga sisa disk dengan melacak alamat yang belum dialokasikan dan menyediakan alamat tersebut saat user ingin menulis file ke dalam disk
  • Logical file system : tingkat ini berisi informasi tentang simbol nama file, struktur dari direktori, proteksi dan sekuriti dari file tersebut
File Control Block
File Control Block : Informasi mengenai sebuah file yang disimpan pada struktur penyimpan
image
image
a) membuka file b) membaca file
Virtual File System(VFS)
VFS digunakan untuk mengimplementasikan berbagai sistem file dengan tipe yang berbeda dalam waktu bersamaan
Skema :
image
2. Implementasi Direktori
  • Sistem direktori berfungsi memetakan nama simbolik file (nama file dan nama jalurnya) menjadi informasi untuk menemukan blok-blok file.
  • Menggunakan daftar nama file linier dengan pointer ke blok data dan table Hash.
Algoritma Direktori:
1.Linier List (daftar nama file linier dengan pointer ke blok data)
+ : mudah diterapkan dalam program
– : memakan waktu saat akses dan eksekusi
2.Tabel hash (daftar linier dengan struktur data hash)
+ : mengurangi waktu pencarian direktori
– : berukuran tetap
Direktori pada CP/M
Direktori pada CP/M merupakan direktori entri yang mencakup nomor blok disk untuk setiap file.
image
Direktori pada MS-Dos
MS-DOS merupakan sistem direktori hierarki atau berstruktur pohon
image
Direktori pada UNIX
i-node berisi informasi tentang :
  • tipe
  • ukuran
  • waktu
  • owner
  • blok-blok di disk
image
Contoh Directory di Linux
• /bin
• /boot
• /dev
• /etc
• /lib
• /mnt
• /opt
• /sbin
• /tmp
• /usr
• /var
3. METODE ALOKASI
Metode alokasi berhubungan dengan bagaimana blok-blok pada disk dialokasikan untuk file.
  1. alokasi berurutan (contiguous allocation)
  2. alokasi berhubungan(linked allocation)
  3. alokasi berindeks (indexed allocation)
Alokasi Berurutan (Contiguous Allocation)
Setiap file menempati sekumpulan blok yang berurutan pada disk.
  • Kelebihan: Model ini sangat sederhana karena hanya membutuhkan lokasi awal (block #) dan panjang (jumlah blok), Akses pada blok disk dilakukan secara random .
  • Kekurangan: memakan banyak ruang (permasalahan dynamic storage-allocation). File yang disimpan secara berurutan tidak dapat berkembang.
Contoh Contiguous Allocation
image
Alokasi Berhubungan (Linked Allocation)
Setiap file adalah sebuah linked list dari blok-blok terpisah pada disk.
  • Kelebihan: Berhubungan mempunyai bentuk yang sederhana, hanya memerlukan alamat awal. Sistem manajemen ruang bebas pada alokasi berhubungan. Tidak memakan banyak ruang.
  • Kekurangan: tidak menggunakan random access.
Contoh Linked Allocation
image
Alokasi Berindeks (Indexed Allocation)
  • Pointer digabungkan didalam suatu blok yang dinamakan blok indeks
  • Setiap file memiliki blok indeks masing-masing
  • Direktori mengandung alamat dari blok indeks
  • Kelemahan: Jika blok indeks terlalu kecil, maka itu tidak akan bisa memuat pointer yang cukup untuk sebuah file yang besar
  • Suatu mekanisme akan dibutuhkan menangani masalah tersebut
Contoh Indexed Allocation

image
Kinerja dari Metode Alokasi
  1. Countiguous allocation: Efisien untuk file kecil. Mendukung akses secara langsung
  2. Linked allocation: Mendukung akses secara sequential
  3. Indexed allocation: Tergantung dari struktur index, ukuran file, dan posisi dari blok yang dibutuhkan
4. Manajemen Ruang Bebas
Bit Vector
  • Daftar ruang kosong diimplementasikan sebagai bit map atau bit vector
  • Setiap bit merepresentasikan 1 blok. Blok yang kosong ditandai dengan angka 1 dan blok yang ada isinya ditandai dengan angka 0
image
Perhitungan nomor blok kosong pada vektor bit ini adalah :
(jumlah bit per word)*(jumlah nilai-0 word) + offset dari bit pertama.
Kelemahan dari cara ini : pemetaan bit-nya membutuhkan ruang tambahan (blok tersendiri).
• Linked List
  1. Skema ini menghubungkan blok-blok yang masih kosong menjadi linked list
  2. Blok kosong pertama pointer menunjuk ke blok kosong kedua, dan blok kosong kedua pointer menunjuk ke blok ketiga yang kosong
image
Keunggulan : tidak membutuhkan terlalu banyak ruang khusus untuk pointer
Kelemahan : sulit untuk mendapatkan ruang kosong berurutan dengan mudah
• Grouping
Menggunakan satu blok untuk menyimpan alamat blok-blok kosong di dekatnya. Jika blok telah terisi, maka akan terhapus, dan blok alamat kembali kosong
image
• Counting
Ruang kosong list berupa urutan blok-blok kosong, maka dilakukan pendaftaran rangkaian blok kosong dengan memasukkan alamat blok kosong pertama dari rangkaian, lalu disertakan jumlah blok kosong yang bersebelahan dengannya
image
5. Efisiensi Penggunaan Space pada Disk
•Untuk memperbaiki kinerja ada beberapa cara:
  1. Menggunakan page cache
  2. Menggunakan Unified Buffer Cache
6. Perbaikan (Recovery)
•Pemeliharaan harus dijalankan untuk memastikan kegagalan sistem tidak akan terjadi saat kehilangan data atau saat data tidak konsisten
•Ada 2 jenis pemulihan :
  1. Pengecekan yang kontinu : dengan logging
  2. Backup dan Restore
7. Sistem File Log Structured
•Sistem File Log structured mencatat setiap update dari file system sebagai transaction
•Semua transactions ditulis dalam sebuah log
•Transactions dalam log ditulis secara asynchronously ke dalam file system: Ketika file system dimodifikasi,transaction dibuang dari log
•Jika files system crashes, semua sisa transactions dalam log harus tetap dijaga
•Hasil implementasinya disebut log-based transaction-oriented
8. Network File System (NFS)
• NFS : implementasi & spesifikasi dari sistem perangkat lunak untuk mengakses remote file melalui LAN (atau WAN)
• workstation yang saling berhubungan dipandang sebagai mesin independent dengan file sistem yang independent, memungkinkan sharing diantara sistem file secara transparent
• Didesain untuk operasi pada lingkungan heterogen dari mesin
Tiga Sistem File yang Independen
image
Mounting pada NFS
image

 

Sebutkan keunggulan dari file system UNIX dan Window?
- UNIX 


Sistem Operasi UNIX dan Pengertiannya
UNIX adalah sistem operasi yang mula-mula dikembangkan oleh suatu kelompok di AT & T pada laboatorium Bell. Unix banyak digunakan baik untuk server maupun workstation. Linkungan Unix dan model program client-server menunjukkan bahwa Unix lebih dikembangkan sebaga sistem operasi yang kuat di jaringan komputer dari pada sistem operasi untuk computer personal.
UNIX dirancang untuk portable, multi-tasking, dan multi-user. Konsep utama Unix antara lain banyak menggunakan file teks biasa untuk menyimpan data, menggunakan sistem file berjenjang, memperlakukan perangkat sebagai suatu file, dan menggunakan banyak program kecil yang eksekusinya pada CLI dapat digabung dengan tanda pipeline (|). Konsep yang sangat solid dan stabil membuat Unix banyak dijadikan dasar sistem operasi modern.
Sistem UNIX terdiri dari beberapa komponen yang biasanya dipaket bersama. UNIX adalah nama system operasi yang dapat diterapkan pada berbagai jenis mesin. Sistem operasi UNIX ini diperkenalkan pertama kali oleh AT&T Bell Laboratory untuk pemakaian komputer dalam bentuk jaringan khusus.

Berbagai versi UNIX
Nama
Vendor
AIX
IBM
A/UX
Apple (Macintosh)
BSD
University of California
DG/UX
Data General
HP/UX
Hawlette-Packard
MS/UX
NEC
PC/IX
Interactive System Corporation
SCO UNIX
SCO
SINIX
Siemens
ULTRIX
DEC
UNICOS
Cray Research
UNIX
AT&T, SCO, Sun microsystem
VENIX
VenturaCom, Inc
XENIX
SCO / Microsoft
UNIXWARE
CALIFORNIA

Beberapa sifat dan keistimewaan UNIX :
1.Portabilitas
sistem UNIX mudah diadaptasikan ke system komputer yang lain
2.Multiuser
Sejumlah pemakai (user) dapat menggunakan istem secara bersamaan dan berbagi sumber seperti penggunaa  printer, disk, dll.
3.  Multitasking
Kemampuan system operasi yang memungkinkan seseorang dapat melaksanakan beberapa tugas pada saat yang bersamaan
4.  Sistem File Hirarkikal
Pengorganisasian informasi atau data dalam bentuk yang mudah untuk diingat dan diakses

KEUNGGULAN DAN KELEMAHAN SISTEM OPERASI UNIX
Kelebihan : 


  • Portabilitas yaitu dapat diadaptasikan dengan mudah ke komputer lain
  • Multiuser, dapat digunakan oleh banyak pengguna sekaligus
  • Multitasking, dapat menjalankan tugas secara bersamaan dalam satu waktu
  • Sistem file hirarkikal, pengorganisasian informasi atau data dalam bentuk yang mudah untuk diingat dan diakses.
  • Sistem file stabil untuk database, server Internet, Intranet, file-server, Internet-client pengembangan Java.
  • Mempunyai kinerja yang lebih baik daripada Windows NT
  • UNIX adalah sistem operasi yang hampir gratis

- WINDOW
Keungulan Windows

Windows adalah sistem operasi yang user-friendly. Tampilannya begitu bersahabat bagi para pengguna, sehingga pengguna mudah menggunakan (End user artinya orang yang awam tentang komputer, orang biasa yang akan menjalankannya).
Selain itu, dukungan hardware yang lengkap.
Banyaknya aplikasi yang diperuntukkan bagi platform Windows. Karena hampir 80% SO Windows digunakan di dunia, sehingga banyak aplikasi yang diciptakan untuk SO ini, bahkan yang freeware pun banyak.
Bisa sharing komputer untuk di jalankan di LINUX dengan Live DVD-nya.
Compatible yaitu bisa diinstal pada PC apapun.
Jika bermasalah mudah diperbaiki karena banyak ahli yang memahami SO ini.
Pengguna bisa sharing dari data aplikasi yang lain dengan mudah.
Pengguna bisa menjalankan lebih dari satu aplikasi pada saat yang bersamaan.
Pengguna bisa membuka lebih dari satu file dalam waktu yang bersamaan


 SUMBER :

Rabu, 30 Oktober 2019

tugas 3

PENJELASAN DMA (Direct Memory Access)
A.     Pengertian Direct Memory Access (DMA)

Direct memory access (DMA) adalah metode yang memungkinkan perangkat input / output (I / O) untuk mengirim atau menerima data secara langsung ke atau dari memori utama, melewati CPU untuk mempercepat operasi memori. Proses ini dikelola oleh chip yang dikenal sebagai pengontrolDirectMemory Access Control (DMAC).

Selama transfer blok byte masukan, urutan berikut terjadi sebagai byte data dikirim dari I/O Interface ke memori:
  1.       I/O Interface mengirimkan pengontrol DMA permintaan DMA layanan.
  2.     Permintaan Bus dibuat untuk pin terus (Tinggi aktif) pada mikroprosesor 8086 dan controller kontrol keuntungan dari bus.
  3.     Dana bantuan Bus dikembalikan ke DMA controller dari Hold mengakui (HLDA) pin (aktif tinggi) pada mikroprosesor 8086.
  4.       Para DMA controller tempat isi alamat register ke bus alamat.
  5.      Controller mengirimkan I/O Interface pengakuan DMA, yang memberi tau I/O Interface untuk menempatkan data pada bus data. (Untuk output itu sinyal
  6.       Antarmuka untuk memalangi data berikutnya yang ditempatkan di bus)
  7.       Byte data ditransfer ke lokasi memori yang ditunjukkan oleh bus alamat.
  8.       I/O Interface Mengkaitkan data.
  9.       Permintaan Bus terjatuh, pin HOLD pergi rendah, dan controller melepaskan bus.
  10.       Bantuan Bus dari mikroprosesor 8086 dijatuhkan dan pin HLDA pergi Rendah.
B.     Kegunaan DMA
DMA memiliki kegunaan sebagai  berikut :
  1. Untuk membantu CPU fokus penuh untuk mengerjakan proses transfer data.  Dengan DMA,   CPU cukup memulai prosesnya dan bisa melakukan kerja lain selama proses transfer itu   berlangsung dan tinggal menunggu informasi dari DMA controller jika proses transfer sudah   selesai.
  2. membebaskan pemroses menunggui transfer data yang dilakukan perangkat I/O.

Saat pemroses ingin membaca atau menulis data, pemroses memerintahkan DMA controller dengan mengirim informasi berikut :
  • Perintah penulisan/pembacaan.
  • Alamat perangkat I/O.
  • Awal lokasi memori yang ditulis/dibaca.
  • Jumlah word (byte) yang ditulis/dibaca.

Setelah mengirim informasi-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 mengirim sinyal interupsi ke pemroses. Sehingga 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.

    3. Supaya CPU dapat  melakukan pekerjaan atau instruksi yang berbeda ketika melakukan operasi baca tulis dari perangkat peripheral. Tanpa adanya  DMA CPU akan terus sibuk melakukan operasi baca tulis (transfer data) dan tidak dapat melakukan atau menyelesaikan instruksi yang lain. Dengan adanya DMA, CPU cukup mempersiapkan DMA chip dengan cara memberikan beberapa informasi seperti jumlah data bit yang ditransfer, alamat dari device dan memory yang diperlukan dan arah dari aliran data tersebut, setelah itu DMA chip sendiri yang akan menyelesaikannya. DMA chip akan melakukan interupt, ketika pekerjaannya sudah selesai. Selama DMA chip melakukan tugasnya hingga munculnya interupt, CPU dapat menyelesaikan instruksi yang lainnya.

  4. Dma digunakan intra-chip untuk transfer data dalam multi-core, terutama dalam sistem multiprocessor-on-chip, di mana elemen-nya adalah proses yang dilengkapi dengan memori lokal (sering disebut alas memori) dalam sebuah elemen pemrosesan multi-core processor dapat mentransfer data ke dan dari memori tanpa menempati prosesor waktu, mesin dan membuat data tumpang tindih.

    5.  DMA digunakan untuk mentransfer data antara lokal memori dan memori utama. 
Komputer yang ada DMA channel dapat mentransfer data dari dan ke perangkat dengan CPU overhead jauh lebih sedikit daripada komputer tanpa saluran DMA . Demikian pula di
Seperti yang telah disebutkan , DMA ialah sebuah prosesor khusus (special purpose processor) yang berguna untuk menghindari pembebanan CPU utama oleh program I/O (PIO). Untuk memulai sebuah transfer DMA, host akan menuliskan sebuah DMA command block yang berisi pointer yang menunjuk ke sumber transfer, pointer yang menunjuk ke tujuan transfer, dan jumlah byte yang ditransfer, ke memori. CPU kemudian menuliskan alamat command block ini ke pengendali DMA, sehingga pengendali DMA dapat kemudian mengoperasikan bus memori secara langsung dengan menempatkan alamatalamat pada bus tersebut untuk melakukan transfer tanpa bantuan CPU.
DMA digunakan intra-chip untuk transfer data dalam multi-core, terutama dalam sistem multiprocessor-on-chip, di mana elemen-nya adalah proses yang dilengkapi dengan memori lokal (sering disebut alas memori) dan DMA digunakan untuk mentransfer data antara lokal memori dan memori utama. Komputer yang ada DMA channel dapat mentransfer data dari dan ke perangkat dengan CPU overhead jauh lebih sedikit daripada komputer tanpa saluran DMA . Demikian pula di dalam sebuah elemen pemrosesan multi-core processor dapat mentransfer data ke dan dari memori tanpa menempati prosesor waktu, mesin dan membuat data tumpang tindih.

C. Cara Kerja DMA
  1.        CPU mengirimkan CPU data-data berikut ini ke DMA controller:
  2.        CPU klien mengeksekusi program lain.
  3.      DMA controller mengirimkan seluruh blok data (per satu word) langsung ke        memori          tanpa melibatkan CPU)
  4.     DMA controler mengirimkan interupt ke CPU jika telah selesai.
  5.     DMA controler mengambil alih sistem bus sebanyak 1 siklus.
  6.    DMA men-transfer satu word data
  7.     Pengambil alihan bus oleh DMA bukan interrupt CPU tidak perlumenyimpan context
  8.    CPU hanya tertunda sessaat satu siklus sebelum mengakses bus yaitu sebelum operan atau        data diambil atau data ditulis diagram modul DMA
D.     Konfigurasi Modul DMA       
      Konfigurasi I
  •          Hanya menggunakan single bus
  •          DMA dan modul I/O terpisah
  •         Setiap transfer harus mengakses bus 2 kali

      Konfigurasi II
  •         Hanya menggunakan single bus
  •          DMA controller dan modul I/O terintegrasi
  •          Satu DMA controller dapat mengangani lebih dari 1 modu I/O
  •          Setiap transfer hanya perlu mengakses bus satu kali saja

      Konfigurasi III
  •         Digunakan bus I/O secara terpisah
  •        Semua modul I/O cukup dilayani dengan sebuah DMA
  •          Setiap transfer hanya perlu mengakses bus satu kali saja
E.  Jalur Transfer DMA
   Ada 3 langkah dalam transfer DMA
  1.        Prosesor menyiapkan DMA prosesor Transfer dengan menyediakan data-data dari perangkat, operasi yang akan ditampilkan, alamat memori yang akan menjadi sumber, tujuan data, dan banyaknya byte yang akan ditransfer.
  2.         Pengendali DMA memulai operasi dengan menyiapkan bus,menyediakan alamat, menulis, dan membaca data sampai seluruh blok sudah ditransfer.
  3.    Pengendali DMA menginterupsi prosesor, dimana selanjutnya akan ditentukan tindakan berikutnya.

Pada dasarnya, DMA mempunyai 2 metode untuk transfer data. 
  1. HALT atau Burst Mode DMA ialah DMA yang memegang kontroldari sistem bus dan menstransfer semua blok data dari memori ke single burst atau sebaliknya,
  2. CYCLE STEALING DMA pada metode ini mengikutsertakan pengendali DMA untuk memegang kontrol dari sistem bus untuk jangka waktu yang lebih pendek pada periode dimana mikroprosesor sibuk dengan operasi internal dan tidak membutuhkan akses ke sistem bus.

F. Kelemahan DMA

Tanpa DMA, diprogram menggunakan input / Output (PIO) mode untuk berkomunikasi dengan perangkat pinggiran, atau menggunakan / menyimpan instruksi dalam kasus multicore chips,CPU biasanya penuh diduduki untuk seluruh durasi dari operasi membaca atau menulis, dan dengandemikian tidak tersedia untuk melakukan pekerjaan lain. Dengan DMA, CPU akan melakukan transfer, lakukan operasi lainnya sementara transfer yang sedang berlangsung, dan menerima mengganggu dari DMA controller setelah operasi telah selesai. Hal ini sangat berguna dalam real-time komputasi di mana aplikasi tidak stalling belakang yg berbarengan operasi adalah penting. Dan aplikasi lain yang berhubungan dengan berbagai daerah adalah bentuk streaming pemrosesan dimana perlu ada pengolahan data dan transfer paralel, untuk mencapai throughput memadai.

G. Kelebihan DMA

Kelebihan menggunakan mode DMA sangat terasa pada sistem operasi multitasking seperti Windows, Linux, UNIX, dan sebagainya. Karena transfer data akan menghemat resource processor sehingga processor dapat mengerjakan pekerjaan lain. Keuntungan lainnya adalah kecepatan transfer data dengan menggunakan mode DMA jauh lebih cepat bila dibandingkan dengan menggunakan mode PIO.

H. Hubungan DMA dengan Input dan Output

    Hubungan antara CPU dengan main memory ataupun dengan alat-alat input atau output dilakukan dengan suatu jalur yang di sebut dengan bus. Hubungan antara CPU dengan main memory melalui jalur bus yang dilekatkan pada memory data register,           memory address register dan control unit di CPU. Sedangkan bus yang menghubungkan CPU dengan alat-alat input/output tidak dilekatkan langsung ke alat-alat input/output tersebut, tapi dapat melalui suatu alat port atau DMA controller atau channel.

Referensi:
https://taryainunhannif.blogspot.com/2014/02/normal-0-false-false-false-in-x-none-x_42.html

Selasa, 22 Oktober 2019

tugas 2

1.Batch System



Batch system adalah dimana job – job yang mirip dikumpulkan dan dijalankan secara kelompok kemudian setelah kelompok yang dijalankan tadi selesai maka secara otomatis kelompok lain dijalankan, jadi dengan kata lain adalah teknologi proses komputer dari generasi ke-2, yang jika suatu tugas sedang dikerjakan pada 1 rangkaian, akan di eksekusi secara berurutan. Pada komputer generasi ke-2 sistem komputer nya maasih blum dilengkapi oleh sebuah sistem operasi. But, dalam beberapa fungsi sistem operasi, seperti os yang tengah berkembang pada jaman sekarang ini. Contohnya adalah FMS ( Fortarn Monitoring System ) dan IBSYS.
Jadi bisa disimpulkan, bahwa komputer generasi ke-2 ini merupakan generasi pertama Sistem Operasi.
Contoh sebuah Batch System adalah sebuah e-mail dan transaksi batch processing. Dalam suatu sistem batch processing, transaksi secara individual dientri melalui peralatan terminal, dilakukan validasi tertentu, dan ditambahkan ke transaction file yang berisi transaksi lain, dan kemudian dientri ke dalam sistem secara periodik. Di waktu kemudian, selama siklus pengolahan berikutnya, transaction file dapat divalidasi lebih lanjut dan kemudian digunakan untuk meng-up date master file yang berkaitan.
Ada 2 cara dalam Batch System yaitu :
1.    Resident Monitor
·      Operator bertugas mengatur urutan job
·      Job – job yang sama cukup dicetak sekali saja, cara inilah yg disebut “Batch system”
Teknik pengurutan job secara manual begini akan menyebabkan tingginya waktu
menganggur CPU. Muncul teknik pengurutan job otomatis yg mampu mentransfer secara otomatis dari suatu proses ke proses lainnya.Program kecil dan bersifat residen dimemori serta berisi urutan2 job yg akan berpindah secara otomatis, inilah “Resident Monitor”.
2.    Overlap Operasi antara I/O dg CPU
·      Off line Processing, data yg dibaca dari card reader disimpan dulu dalam tape driver sebelum dibawa ke CPU, demikian pula informasi yg mau dicetak, disimpan dulu di tape 
·      Spooling  adalah suatu program dapat dikerjakan walaupun I/O masih mengerjakan  proses lainnya dan disk secara bersamaan menggunakan data untuk banyak proses. Pengertian multi programming adalah kegiatan menjalankan beberapa program pada memori pada satu waktu.

2. Critical Section
Dalam pemrograman bersamaan, akses bersamaan ke sumber daya bersama dapat menyebabkan perilaku yang tidak terduga atau keliru, sehingga bagian dari program di mana sumber daya bersama diakses dilindungi. Bagian yang dilindungi ini adalah bagian kritis atau wilayah kritis. Ini tidak dapat dijalankan oleh lebih dari satu proses dalam satu waktu. Biasanya, bagian kritis mengakses sumber yang dipakai bersama, seperti struktur data, perangkat periferal, atau koneksi jaringan, yang tidak akan beroperasi dengan benar dalam konteks beberapa akses bersamaan.
Kode atau proses yang berbeda dapat terdiri dari variabel yang sama atau sumber daya lain yang perlu dibaca atau ditulis tetapi hasilnya bergantung pada urutan di mana tindakan tersebut terjadi. Sebagai contoh, jika sebuah variabel ‘x’ adalah untuk dibaca oleh proses A, dan proses B memiliki untuk menulis ke variabel yang sama ‘x’ pada saat yang sama, proses A mungkin mendapatkan baik nilai lama atau baru ‘x’.
Process A:
// Process A
 .
 .
 b = x+5;                 // instruction executes at time = Tx
 .
Process B:
// Process B
.
.
x = 3+z;                 // instruction executes at time = Tx
.


Dalam kasus seperti ini, bagian penting. Dalam kasus di atas, jika A perlu membaca nilai pembaruan ‘x’, mengeksekusi Proses A dan Proses B secara bersamaan mungkin tidak memberikan hasil yang diperlukan. Untuk mencegahnya, variabel 'x' dilindungi oleh bagian penting. Pertama, B mendapat akses ke bagian. Setelah B selesai menulis nilainya, A mendapat akses ke bagian kritis dan variabel ‘x’ dapat dibaca.
Dengan hati-hati mengontrol variabel mana yang dimodifikasi di dalam dan di luar bagian kritis, akses bersamaan ke variabel yang dibagikan akan dicegah. Bagian kritis biasanya digunakan ketika program multi-berulir harus memperbarui beberapa variabel terkait tanpa utas yang terpisah membuat perubahan yang bertentangan dengan data tersebut. Dalam situasi yang terkait, bagian penting dapat digunakan untuk memastikan bahwa sumber yang dipakai bersama, misalnya, printer, hanya dapat diakses oleh satu proses dalam satu waktu.
Dalam pemrograman paralel, kode ini dibagi menjadi untaian. Variabel yang saling-baca-tulis dibagi antara utas dan setiap utas memiliki salinannya. Struktur data seperti daftar tertaut, pohon, tabel hash, dll. Memiliki variabel data yang ditautkan dan tidak dapat dipisah antara untaian dan karenanya menerapkan paralelisme sangat sulit. Untuk meningkatkan efisiensi penerapan struktur data beberapa operasi seperti penyisipan, penghapusan, pencarian harus dijalankan secara paralel. Saat melakukan operasi ini, mungkin ada skenario di mana elemen yang sama sedang dicari oleh satu utas dan dihapus oleh yang lain. Dalam kasus seperti itu, output mungkin keliru. Benang mencari elemen mungkin memiliki hit, sedangkan utas lainnya dapat menghapusnya setelah waktu itu. Skenario ini akan menyebabkan masalah dalam program berjalan dengan menyediakan data palsu. Untuk mencegah hal ini, satu metode adalah bahwa seluruh struktur data dapat disimpan di bawah bagian kritis sehingga hanya satu operasi yang ditangani pada suatu waktu. Metode lain adalah mengunci node yang digunakan di bawah bagian kritis, sehingga operasi lain tidak menggunakan node yang sama. Menggunakan bagian kritis, dengan demikian, memastikan bahwa kode memberikan output yang diharapkan.
Bagian penting juga dibutuhkan dalam jaringan komputer. Ketika data tiba di soket jaringan, mungkin tidak tiba dalam format yang dipesan. Katakanlah program ‘X’ yang dijalankan di komputer perlu mengumpulkan data dari soket, mengatur ulang dan memeriksa jika ada yang hilang. Meskipun program ini berfungsi pada data, tidak ada program lain yang harus mengakses soket yang sama untuk data tersebut. Oleh karena itu, data soket dilindungi oleh bagian penting sehingga program 'X' dapat menggunakannya secara eksklusif.
 
3. Process Control Block
Tiap proses digambarkan dalam sistem operasi oleh sebuah process control block PCB - juga disebut sebuah control block. PCB berisikan banyak bagian dari informasi yang berhubungan dengan sebuah proses yang spesifik, termasuk hal-hal dibawah ini :
1.    Status proses: status mungkin, new, ready, running, waiting, halted, dan juga banyak lagi.
2.    Program counter: suatu stack yang berisi alamat dari instruksi selanjutnya untuk dieksekusi untuk proses ini.
3.    CPU register: Register bervariasi dalam jumlah dan jenis, tergantung pada rancangan komputer. Register  tersebut termasuk accumulator , indeks register, stack pointer , general-purposes register , ditambah code information pada kondisi apa pun. Besertaan dengan program counter, keadaaan/status informasi harus disimpan ketika gangguan terjadi, untuk memungkinkan proses tersebut berjalan/bekerja dengan benar setelahnya.
4.    Informasi managemen memori: Informasi ini dapat termasuk suatu informasi sebagai nilai dari dasar dan batas register, tabel page/halaman, atau tabel segmen tergantung pada sistem memori yang digunakan oleh sistem operasi.
5.    Informasi pencatatan: Informasi ini termasuk jumlah dari CPU dan waktu riil yang digunakan, batas waktu, jumlah akun jumlah job atau proses, dan banyak lagi.
6.    Informasi status I/O: Informasi termasuk daftar dari perangkat I/O yang di gunakan pada proses ini, suatu daftar berkas-berkas yang sedang diakses dan banyak lagi.
7.    PCB hanya berfungsi sebagai tempat penyimpanan informasi yang dapat bervariasi dari proses yang satu dengan yang lain.
     Gambar Proses Control Blok

Elemen – elemen dari Process Control Block (PCB) :
1.    Identifier : menjelaskan proses yang sedang terjadi.
2.    State : kondisi yang terjadi pada proses.
3.    Priority : urutan perintah yang jelas pada suatu proses.
4.    Program counter : instruksi pada proses.
5.    Memory pointers : media penyimpanan (penunjuk alamat) pada proses.
6.    Context data : data yang berkaitan dengan proses.
7.    I/O status information : terdapat masukan dan keluaran yang diinginkan.
8.    Accounting information : memberikan informasi yang dibutuhkan.
Macam – Macam  Jenis Status Proses
Jenis status yang mungkin dapat disematkan pada suatu proses pada setiap sistem operasi dapat berbeda-beda. Tetapi paling tidak ada 3 macam status yang umum, yaitu :
1.    Ready adalah status dimana proses siap untuk dieksekusi pada giliran berikutnya.
2.    Running adalah status dimana saat ini proses sedang dieksekusi oleh prosesor.
3.    Blocked adalah status dimana proses tidak dapat dijalankan pada saat prosesor siap/bebas.
4. Distributed Processing
Pengolahan terdistribusi adalah frasa yang digunakan untuk merujuk ke berbagai sistem komputer yang menggunakan lebih dari satu komputer (atau prosesor) untuk menjalankan aplikasi. Ini termasuk pemrosesan paralel di mana satu komputer menggunakan lebih dari satu CPU untuk menjalankan program.
Lebih sering, bagaimanapun, pemrosesan terdistribusi mengacu pada jaringan area lokal (LAN) yang dirancang sehingga satu program dapat berjalan secara bersamaan di berbagai situs. Kebanyakan sistem pemrosesan terdistribusi berisi perangkat lunak canggih yang mendeteksi CPU idle di jaringan dan memilah program untuk menggunakannya.
Bentuk lain dari pemrosesan terdistribusi melibatkan basis data terdistribusi. Ini adalah basisdata tempat data disimpan di dua atau lebih sistem komputer. Sistem basis data melacak di mana data berada sehingga sifat terdistribusi dari database tidak jelas bagi pengguna.
Contoh dari Distributed Data Processing System adalah komputer yang dirancang untuk tugas-tugas melaksanakan proyek, analisis finansial, penjadwalan waktu dan akuntansi. Contoh lainnya, pengolahan data pada server yahoo yang tersebar hampir di seluruh dunia secara distribusi, setiap wilayah mempunyai server masing-masing. Seperti di indonesia mempunyai server tersendiri sehingga pengolahan data tidak di pusat melainkan di wilayah masing-masing, dll.
5. Handheld

Handheld computer adalah komputer yang cukup kecil sehingga dapat digenggam. Komputer genggam ini dapat bekerja dengan fungsi yang hampir sama dengan komputer biasa. Meskipun sangat mudah untuk dibawa, komputer genggam tidak dapat menggantikan komputer biasa (PC) karena hanya memiliki keyboard dan layar yang kecil. Beberapa produsen mencoba untuk memecahkan masalah keyboard yang terlalu kecil. Keyboard tersebut diganti dengan electronic pen. Bagaimanapun, electronic pen ini masih bergantung pada teknologi pengenalan tulisan tangan yang masih dalam tahap pengembangan.
Kelebihan dari komputer genggam ini adalah pengguna dapat menyimpan serta mengatur data dengan lebih efisien dan akurat. Biasanya komputer genggam dilengkapi dengan teknologi Bluetooth. Bluetooth memang tepat untuk mencetak secara nirkabel, menghubungkan antara komputer genggam dengan mobile printer. Tidak hanya dengan printer tetapi komputer genggam juga dapat dihubungkan dengan alat-alat lain melalui koneksi Bluetooth.
Komputer genggam dapat meningkatkan produktivitas pengguna dan memudahkan mereka untuk bekerja lebih efisien. Komputer genggam yang paling banyak digunakan adalah komputer yang khusus dirancang untuk menyediakan fungsi PIM (Personal Information Manager), seperti kalender, agenda, dan buku alamat. Contoh system handheld adalah Android, Symbian.
6. Thread
Proses itu ada 2 macem :
1.    Proses berat (heavyweight) disebut proses tradisional.
2.    Proses ringan (lightweight) disebut THREAD.
Thread adalah unit dasar dari utilitas CPU. Di dalamnya terdapat ID thread, program counter, register, dan stack. Dan saling berbagi dengan thread lain dalam proses yang sama.
Keuntungan memakai Thread :
·      Tanggap: Multi-threading mengizinkan program untuk terus berjalan walaupun pada bagian program tersebut diblock atau sedang dalam keadaan menjalankan operasi yang lama/panjang. Contohnya multithread web browser dapat mengizinkan pengguna berinteraksi dengan suatu thread ketika suatu gambar sedang diload oleh thread yang lain.
·      Pembagian sumber daya: Secara default, thread membagi memori dan sumber daya dari proses. Keuntungan dari pembagian kode adalah aplikasi mempunyai perbedaan aktifitas thread dengan alokasi.
·      Ekonomis: Mengalokasikan memori dan sumber daya untuk membuat proses itu sangat mahal. Alternatifnya thread membagi sumber daya dari proses, Jadi lebih ekonomis.
·      Pemberdayaan arsitektur multiprosesor: Keuntungann dari multithreading dapat ditingkatkan dengan arsitektur multiprosesor, dimana setiap thread dapat berjalan secara parallel pada prosesor yang berbeda. Pada arsitektur prosesor tunggal, CPU biasanya berpindah-pindah antara setiap thread dengan cepat, sehingga terdapat ilusi paralelisme, tetapi pada kenyataannya hanya satu thread yang berjalan di setiap waktu.
Selain itu :
1.    User thread adalah pengelolaan thread yang dilakukan oleh user level (pengguna).
2.    Kernel thread adalah pengelolaan thread yang dilakukan oleh kernel komputer sehingga user tidak dapat menginterupsi.
Macam – Macam Thread :
·      Single threading : proses hanya mengeksekusi satu thread dalam satu waktu.
·      Multi-threading : proses dapat mengeksekusi sejumlah thread dalam satu waktu.
 
Model Multi – Threading :
One to one : Memetakan setiap user thread ke dalam 1 kernel thread.
Kelebihan :       Model one-to-one lebih sinkron daripada model many-to-one karena mengizinkan thread lain untuk berjalan ketika suatu thread membuat pemblokingan terhadap sistem pemanggilan, hal ini juga membuat multiple thread bisa berjalan secara parallel dalam multiprosesor.
Kekurangan:     Dalam pembuatan user thread diperlukan pembuatan korespondensi thread pengguna. Karena dalam proses pembuatan kernel thread dapat mempengaruhi kinerja dari aplikasi, maka kebanyakan dari implementasi model ini membatasi jumlah thread yang didukung oleh system.
Model ini ada pada Windows NT dan OS/2.
One to Many: memetakan beberapa tingkatan thread user hanya ke satu buah kernel thread.
Kelebihan     :  Managemen proses thread dilakukan oleh (di ruang) pengguna, sehingga menjadi lebih efisien.
Kekurangan :    Multi thread tidak dapat berjalan atau bekerja secara paralel di dalam multiprosesor karena hanya satu thread saja yang bisa mengakses kernel dalam suatu waktu.
Model ini ada pada Solaris Green dan GNU Portable.
Many to Many : Membolehkan setiap tingkatan user thread dipetakan ke banyak kernel thread.
Kelebihan : 
1.    Developer dapat membuat user thread sebanyak yang diperlukan dan kernel thread yang bersangkutan dapat berjalan secara parallel pada multiprocessor.
2.    Dan ketika suatu thread menjalankan blocking system call maka kernel dapat menjadwalkan thread lain untuk melakukan eksekusi.
Kekurangan :
1.    Developer dapat membuat user thread sebanyak mungkin, tetapi konkurensi tidak dapat diperoleh karena hanya satu thread yang dapat dijadwalkan oleh kernel pada suatu waktu.
Model ini ada pada Solaris, IRIX, dan Digital UNIX.


Tugas 4 File System

1. Jelaskan Bagaimana pengimplementasian dari sebuah direktori dalam disk? 1. Struktur Sistem File File : Kumpulan informasi y...