Selasa, 19 Februari 2013

SYSTEM CALL


Layanan langsung sistem operasi ke pemrograman, disebut dengan system call atau API (application programming interface). System call adalah tata cara pemanggilan di program aplikasi untuk memperoleh layanan yang disediakan oleh sistem operasi. System call berupa rutin sistem operasi untuk keperluan tertentu yang spesifik.
System Call untuk manajemen proses diperlukan untuk mengatur proses-proses yang sedang berjalan. Kita dapat melihat penggunaan system calls untuk manajemen proses pada Sistem Operasi Unix. Contoh yang paling baik untuk melihat bagaimana system call bekerja untuk manajemen proses adalah Fork.
Definisi Fork adalah satu satunya cara untuk membuat sebuah proses baru pada sistem Unix. Fork membuat duplikasi yang mirip dengan proses aslinya, termasuk file descriptor, register, dan lainnya. Setelah perintah Fork, child akan mengeksekusi kode yang berbeda dengan parentnya.
Bayangkan yang terjadi pada shell. Shell akan membaca command dari terminal, melakukan fork pada child, menunggu child untuk mengeksekusi command tersebut, dan membaca command lainnya ketika child terminate. Untuk menunggu child selesai, parent akan mengeksekusi system call waitpid, yang hanya akan menunggu sampai child selesai. Proses child harus mengeksekusi command yang dimasukkan oleh user (pada kasus shell). Proses child melakukannya dengan menggunakan system call exec.Dari ilustrasi tersebut kita dapat mengetahui bagaimana system call dipakai untuk manajemen proses.
Keuntungan dan kerugian menggunakan system call sama antarmuka untuk memanipulasi baik file dan perangkat adalah Setiap perangkat dapat diakses seolah-olah itu adalah file dalam file sistem. Karena sebagian besar penawaran kernel dengan perangkat melalui antarmuka file, relatif mudah untuk menambahkan device driver baru dengan menerapkan kode perangkat keras khusus untuk mendukung antarmuka file abstrak.
Oleh karena itu, ini manfaat pengembangan baik kode program pengguna, yang dapat bewritten untuk mengakses perangkat dan file dalam samemanner, dan perangkat sopir kode, yang dapat ditulis untuk mendukung API yang didefinisikan dengan baik. Kerugian itu dengan menggunakan antarmuka yang sama adalah bahwa mungkin akan sulit untuk menangkap fungsi peralatan tertentu dalam konteks akses file API, sehingga baik mengakibatkan hilangnya fungsi atau kerugian kinerja. Beberapa ini dapat diatasi dengan penggunaan operasi ioctl yang menyediakan antarmuka tujuan umum untuk proses untuk memanggil operasi pada perangkat.
Ada lima jenis system calls utama, yaitu:
a. Process control merupakan system calls yang mengendalikan proses-proses yang berjalan.
  • load
  • execute
  • create process
  • terminate process
  • get/set process attributes
  • wait for time, wait event, signal event
  • allocate, free memory
b. File manipulation adalah kumpulan system calls yang bertugas untuk melakukan manipulasi file seperti pembacaan, penulisan, penghapusan dan pengubahan.
  • create file, delete file
  • open, close
  • read, write, reposition
  • get/set file attributes
c. Device manipulation adalah system calls yang mengatur penggunaan peralatan-peralatan yang terhubung pada mesin tersebut.
  • request device, release device
  • read, write, reposition
  • get/set device attributes
  • logically attach or detach devices
d. Information maintenance. System calls yang menghubungkan user dengan sistem operasi dalam hal berbagi informasi.
  • get/set time or date
  • get/set system data
  • get/set process, file, or device attributes
e. Communications. Ada dua model komunikasi yaitu pertukaran informasi dilakukan melalui fasilitas komunikasi antar proses yang disediakan oleh sistem operasi (Message-Passing) dan pertukaran dengan menggunakan memori (shared-memory).
  • create, delete communication connection
  • send, receive messages
  • transfer status information
  • attach or detach remote devices

Struktur sederhana :

Tiga cara memberikan parameter dari program ke sistem operasi:
•    Melalui registers (sumber daya di CPU).
•    Menyimpan parameter pada data struktur (table) di memori, dan alamat table tsb ditunjuk oleh pointer yang disimpan di register.
•    Push (store) melalui “stack” pada memori dan OS mengambilnya melalui pop pada stack tsb

Sabtu, 09 Februari 2013

Manajemen Sistem I/O



MANAJEMEN SISTEM INPUT/OUTPUT
Manajemen Sistem M/K ( I/O)
Pekerjaan utama yang paling sering dilakukan oleh sistem komputer selain melakukan komputasi adalah Masukan/Keluaran (M/K). Dalam kenyataannya, waktu yang digunakan untuk komputasi lebih sedikit dibandingkan waktu untuk M/K. Ditambah lagi dengan banyaknya variasi perangkat M/K sehingga membuat manajemen M/K menjadi komponen yang penting bagi sebuah sistem operasi. Sistem operasi juga sering disebut device manager, karena sistem operasi mengatur berbagai macam perangkat ( device).
Fungsi-fungsi sistem operasi untuk sistem M/K:
  • Penyanggaan ( buffering). Menampung data sementara dari/ke perangkat M/K
  • Penjadwalan ( scheduling). Melakukan penjadualan pemakaian M/K sistem supaya lebih efisien.
  • Spooling. Meletakkan suatu pekerjaan program pada penyangga, agar setiap perangkat dapat mengaksesnya saat perangkat tersebut siap.
  • Menyediakan driver perangkat yang umum. Driver digunakan agar sistem operasi dapat memberi perintah untuk melakukan operasi pada perangkat keras M/K yang umum, seperti optical drive, media penyimpanan sekunder, dan layar monitor.
  • Menyediakan driver perangkat yang khusus. Driver digunakan agar sistem operasi dapat memberi perintah untuk melakukan operasi pada perangkat keras M/K tertentu, seperti kartu suara, kartu grafis, dan motherboard
Manajemen Sistem I/O
Sering disebut device manager. Menyediakan device driveryang umum sehingga operasi I/O dapat seragam (membuka, membaca, menulis,menutup). Contoh: pengguna menggunakan operasi yang sama untuk membaca berkas pada perangkat keras, CD-ROM dan floppy disk .
Manajemen sistem I/O merupakan aspek perancangan sistem operasi yang terluas disebabkan sangat beragamnya perangkat dan begitu banyaknya aplikasi dari perangkat- perangkat itu.
Sistem operasi bertanggung jawab dalam aktivitas yang berhubungan dengan manajemen sistem/perangkatI/O:
  • Mengirim perintah ke perangkat I/O agar menyediakan layanan.
  • Menangani interupsi perangakat I/O .
  • Menangani kesalahan pada perangakat I/O.
  • Menyediakan antarmuka ke pengguna.
Ada juga beberapa perangkat keras yang terdapat pada I/O manajemen yaitu :
1.      Pooling
  • Busy-waiting/ polling adalah ketika host mengalami looping yaitu membaca status register secara terus-menerus sampai status busy di-clear.
  • Pada dasarnya polling dapat dikatakan efisien. Akan tetapi polling menjadi tidak efisien ketika setelah berulang-ulang melakukan looping, hanya menemukan sedikit device yang siap untuk men-service, karena CPU processing yang tersisa belum selesai.
2. Interupsi
Mekanisme Dasar Interupsi :
  • Ketika CPU mendeteksi bahwa sebuah controller telah mengirimkan sebuah sinyal ke interrupt request line (membangkitkan sebuah interupsi), CPU kemudian menjawab interupsi tersebut (juga disebut menangkap interupsi) dengan menyimpan beberapa informasi mengenai state terkini CPU–contohnya nilai instruksi pointer, dan memanggil interrupt handler agar handler tersebut dapat melayani controller atau alat yang mengirim interupsi tersebut.
  • Fitur Tambahan pada Komputer Modern :
  • Pada arsitektur komputer modern, tiga fitur disediakan oleh CPU dan interrupt controller (pada perangkat keras) untuk dapat menangani interrupsi dengan lebih bagus. Fitur-fitur ini antara lain adalah kemampuan menghambat sebuah proses interrupt handling selama prosesi berada dalam critical state, efisiensi penanganan interupsi sehingga tidak perlu dilakukan polling untuk mencari device yang mengirimkan interupsi, dan fitur yang ketiga adalah adanya sebuah konsep multilevel interupsi sedemikian rupa sehingga terdapat prioritas dalam penanganan interupsi (diimplementasikan dengan interrupt priority level system).
Penyebab Interupsi
  • Interupsi dapat disebabkan berbagai hal, antara lain exception, page fault, interupsi yang dikirimkan oleh device controllers, dan system call Exception adalah suatu kondisi dimana terjadi sesuatu/ dari sebuah operasi didapat hasil tertentu yang dianggap khusus sehingga harus mendapat perhatian lebih, contoh nya pembagian dengan 0 (nol), pengaksesan alamat memori yang restricted atau bahkan tidak valid, dan lain-lain.
  • System call adalah sebuah fungsi pada aplikasi (perangkat lunak) yang dapat mengeksekusikan instruksi khusus berupa software interrupt atau trap.
3. DMA
  • DMA adalah sebuah prosesor khusus (special purpose processor) yang berguna untuk menghindari pembebanan CPU utama oleh program I/O (PIO).
4. Handshaking
  • Proses handshaking antara DMA controller dan device controller dilakukan melalui sepasang kabel yang disebut DMA-request dan DMA-acknowledge. Device controller mengirimkan sinyal melalui DMA-request ketika akan mentransfer data sebanyak satu word. Hal ini kemudian akan mengakibatkan DMA controller memasukkan alamat-alamat yang dinginkan ke kabel alamat memori, dan mengirimkan sinyal melalui kabel DMA-acknowledge. Setelah sinyal melalui kabel DMA-acknowledge diterima, device controller mengirimkan data yang dimaksud dan mematikan sinyal pada DMA-request.
  • Hal ini berlangsung berulang-ulang sehingga disebut handshaking. Pada saat DMA controller mengambil alih memori, CPU sementara tidak dapat mengakses memori (dihalangi), walau pun masih dapat mengaksees data pada cache primer dan sekunder. Hal ini disebut cycle stealing, yang walau pun memperlambat komputasi CPU, tidak menurunkan kinerja karena memindahkan pekerjaan data transfer ke DMA controller meningkatkan performa sistem secara keseluruhan.