Senin, 20 Desember 2010

Suatu proses dapat menjadi status waiting pada saat kongkurensi

 Pada saat yang bersamaan terdapat lebih dari satu proses yang menggunakan variabel global yang sama serta keduanya membaca dan menulis ke variabel itu, maka urutan terjadinya pembacaan dan penulisan terhadap variable itu menjadi kritis sehinngaa proses tersebut menunggu beberapa event yang akan terjadi seperti menunggu untuk menyelesaikan I/O atau menerima sinyal. Dikarenakan  sumbar daya yang diminta  belum tersedia masih berstatus waiting.

Selasa, 09 November 2010

SISTEM OPERASI

NAMA      : TAUFAN RAHMAN BIYA
NIM          : T3109263
KELAS     : 3RC

OPERASI PADA PROSES

Sistem Operasi dalam mengelola proses dapat melakukan operasi - operasi terhadap proses, diantaranya:
Ø     Penciptaan proses (Create a Process)
Ø     Penghancuran /terminal proses (destroy a process)
Ø     Penundaan proses (suspend a process)
Ø     Pelanjutan kembali proses (resume a process)
Ø     Pengubahana prioritas proses
Ø     Memblock proses
Ø     Membangunkan proses
Ø     Menjadwalkan proses
Ø     Memungkinkan proses untuk berkomunikasi dengan proses lain.







Kamis, 28 Oktober 2010

TUGAS SISTEM OPERASI , ARISTEKTUR LINUX


ARSITEKTUR LINUX

Hardware Abstraction Layer
Lapisan abstraksi ardware (HAL) adalah lapisan abstraksi, diimplementasikan dalam perangkat lunak, antara perangkat keras fisik dari sebuah komputer dan perangkat lunak yang berjalan pada komputer itu. Fungsinya adalah untuk menyembunyikan perbedaan perangkat keras dari sebagian dari kernel sistem operasi, sehingga sebagian besar dari kode kernel-mode tidak perlu diubah untuk berjalan pada sistem dengan hardware yang berbeda. Pada PC, HAL pada dasarnya dapat dianggap sebagai driver untuk motherboard dan memungkinkan instruksi dari bahasa tingkat tinggi komputer untuk berkomunikasi dengan komponen tingkat lebih rendah, seperti secara langsung dengan hardware.

Sistem operasi Windows NT memiliki HAL dalam ruang kernel, antara hardware dan kernel, driver, jasa eksekutif. Hal ini memungkinkan portabilitas kode Windows NT kernel-mode untuk berbagai prosesor, dengan manajemen memori yang berbeda unit arsitektur, dan berbagai sistem yang berbeda dengan I / O bus arsitektur; sebagian besar kode yang berjalan tanpa perubahan sistem-sistem, ketika dikompilasi untuk set instruksi untuk sistem tersebut. Sebagai contoh, Intel SGI workstation berbasis x86 tidak IBM PC workstation yang kompatibel, namun karena HAL, Windows NT mampu berjalan pada mereka.

BSD, Mac OS X, Linux, CP / M, DOS, Solaris, dan beberapa sistem operasi portabel lainnya juga memiliki HAL, bahkan jika tidak secara eksplisit ditunjuk sebagai demikian. Beberapa sistem operasi, seperti Linux, memiliki kemampuan untuk satu menyisipkan sambil berlari, seperti Adeos. Sistem operasi NetBSD dikenal luas sebagai memiliki lapisan abstraksi perangkat keras bersih yang memungkinkan untuk sangat portabel. Sebagai bagian dari sistem ini adalah uvm (9) / pmap (9), bus_space (9), bus_dma (9) dan subsistem lainnya. Populer bus yang digunakan pada lebih dari satu arsitektur juga disarikan, seperti ISA, EISA, PCI, PCI-E, dll, memungkinkan driver juga sangat portabel dengan minimal modifikasi kode.

Sebuah "ekstrim" contoh HAL yang dapat ditemukan dalam arsitektur System/38 dan AS/400. Kebanyakan kompiler bagi sistem menghasilkan kode mesin abstrak, sedangkan Berlisensi Kode Internal, atau LIC, menerjemahkan kode mesin virtual ke dalam kode asli untuk prosesor yang sedang berjalan dan mengeksekusi kode asli yang dihasilkan. (Pengecualian adalah compiler yang menghasilkan LIC sendiri;. Mereka compiler tidak tersedia di luar IBM) ini begitu sukses sehingga perangkat lunak aplikasi dan perangkat lunak sistem operasi di atas lapisan LIC yang dikompilasi pada S/38 asli berjalan tanpa modifikasi dan tanpa kompilasi ulang pada sistem AS/400 terbaru, meskipun fakta bahwa hardware yang mendasarinya telah berubah secara dramatis, setidaknya tiga jenis prosesor telah digunakan.

lapisan abstraksi Hardware adalah dari tingkat yang lebih rendah dalam bahasa komputer daripada antarmuka pemrograman aplikasi (API) karena mereka berinteraksi langsung dengan hardware, bukan suatu kernel sistem, maka HAL membutuhkan lebih sedikit waktu pemrosesan dari API. bahasa tingkat tinggi sering menggunakan HAL dan API untuk berkomunikasi dengan komponen tingkat yang lebih rendah.

Operasi sistem yang memiliki HAL pasti, mudah dibawa di hardware yang berbeda. Hal ini sangat penting untuk embedded system yang berjalan di puluhan platform yang berbeda.

Kernel

Kernel adalah program yang dimuat saat boot yang berfungsi sebagai interface antara user-level program dengan hardware. Fungsinya seperti layaknya sistem operasi, menangani task switching dalam multitasking, menangani permintaan membaca atau menulis peralatan disk, melakukan tugas-tugas network serta mengatur penggunaan memori.

Secara teknis Linux hanyalah sebuah kernel. Program lain seperti kompiler, editor, window manager dsb yang disertakan dalam paket hanyalah sebuah distribusi (RedHat, Slackware, SuSE dsb) yang melengkapi kernel menjadi sebuah sistem operasi yang lengkap.

Kadang-kadang sebuah kernel memerlukan konfigurasi agar bisa bekerja optimal pada sebuah mesin. Kernel yang ada pada distribusi RedHat 5.1 adalah versi 2.0.34. Kernel ini pada umumnya sudah bisa langsung bekerja dibanyak komputer tanpa perlu konfigurasi ulang lagi karena didalamnya sudah dimuat dukukungan untuk beberapa device. Konfigurasi ulang bisa dilakukan bila ada tambahan device baru yang belum dimuat atau dianggap muatannya terlalu banyak sehingga memakan banyak memori.

Setelah dilakukan konfigurasi, tahap berikut adalah melakukan kompilasi untuk mendapatkan kernel yang baru. Tahap ini memerlukan beberapa tool seperti kompiler dsb. RedHat telah menyediakan tool-tool tersebut dalam distribusinya.

Tahap kompilasi ini sangat potensial menimbulkan kesalahan dan kadang membuat frustrasi bila terus-menerus mengalami kegagalan. Sebelum mengalami musibah tersebut, mempersiapkan emergency boot disk adalah langkah yang tepat karena pada umumnya kesalahan akan mengakibatkan sistem mogok.


Beberapa desain Kernel

Beberapa desain kernel sistem operasi
Sebuah kernel sistem operasi tidak harus ada dan dibutuhkan untuk menjalankan sebuah komputer. Program dapat langsung dijalankan secara langsung di dalam sebuah mesin (contohnya adalah CMOS Setup) sehingga para pembuat program tersebut membuat program tanpa adanya dukungan dari sistem operasi atau hardware abstraction. Cara kerja seperti ini, adalah cara kerja yang digunakan pada zaman awal-awal dikembangkannya komputer (pada sekitar tahun 1950). Kerugian dari diterapkannya metode ini adalah pengguna harus melakukan reset ulang komputer tersebut dan memuatkan program lainnya untuk berpindah program, dari satu program ke program lainnya. Selanjutnya, para pembuat program tersebut membuat beberapa komponen program yang sengaja ditinggalkan di dalam komputer, seperti halnya loader atau debugger, atau dimuat dari dalam ROM (Read-Only Memory). Seiring dengan perkembangan zaman komputer yang mengalami akselerasi yang signifikan, metode ini selanjutnya membentuk apa yang disebut dengan kernel sistem operasi.
Selanjutnya, para arsitek sistem operasi mengembangkan kernel sistem operasi yang pada akhirnya terbagi menjadi empat bagian yang secara desain berbeda, sebagai berikut:
  • Kernel monolitik. Kernel monolitik mengintegrasikan banyak fungsi di dalam kernel dan menyediakan lapisan abstraksi perangkat keras secara penuh terhadap perangkat keras yang berada di bawah sistem operasi.
  • Mikrokernel. Mikrokernel menyediakan sedikit saja dari abstraksi perangkat keras dan menggunakan aplikasi yang berjalan di atasnya—yang disebut dengan server—untuk melakukan beberapa fungsionalitas lainnya.
  • Kernel hibrida. Kernel hibrida adalah pendekatan desain microkernel yang dimodifikasi. Pada hybrid kernel, terdapat beberapa tambahan kode di dalam ruangan kernel untuk meningkatkan performanya.
  • Exokernel. Exokernel menyediakan hardware abstraction secara minimal, sehingga program dapat mengakses hardware secara langsung. Dalam pendekatan desain exokernel, library yang dimiliki oleh sistem operasi dapat melakukan abstraksi yang mirip dengan abstraksi yang dilakukan dalam desain monolithic kernel.

Kernel monolitik

Pendekatan kernel monolitik didefinisikan sebagai sebuah antarmuka virtual yang berada pada tingkat tinggi di atas perangkat keras, dengan sekumpulan primitif atau system call untuk mengimplementasikan layanan-layanan sistem operasi, seperti halnya manajemen proses, konkurensi (concurrency), dan manajemen memori
pada modul-modul kernel yang berjalan di dalam mode supervisor.
Meskipun jika setiap modul memiliki layanan operasi-operasi tersebut terpisah dari modul utama, integrasi kode yang terjadi di dalam monolithic kernel sangatlah kuat, dan karena semua modul berjalan di dalam address space yang sama, sebuah bug dalam salah satu modul dapat merusak keseluruhan sistem. Akan tetapi, ketika implementasi dilakukan dengan benar, integrasi komponen internal yang sangat kuat tersebut justru akan mengizinkan fitur-fitur yang dimiliki oleh sistem yang berada di bawahnya dieksploitasi secara efektif, sehingga membuat sistem operasi dengan monolithic kernel sangatlah efisien—meskipun sangat sulit dalam pembuatannya.
Pada sistem operasi modern yang menggunakan monolithic kernel, seperti halnya Linux, FreeBSD, Solaris, dan Microsoft Windows, dapat memuat modul-modul yang dapat dieksekusi pada saat kernel tersebut dijalankan sehingga mengizinkan ekstensi terhadap kemampuan kernel sesuai kebutuhan, dan tentu saja dapat membantu menjaga agar kode yang berjalan di dalam ruangan kernel (kernel-space) seminim mungkin.
Di bawah ini ada beberapa sistem operasi yang menggunakan Monolithic kernel:
Mikrokernel
Pendekatan mikrokernel berisi sebuah abstraksi yang sederhana terhadap hardware, dengan sekumpulan primitif atau system call yang dapat digunakan untuk membuat sebuah sistem operasi agar dapat berjalan, dengan layanan-layanan seperti manajemen thread, komunikasi antar address space, dan komunikasi antar proses. Layanan-layanan lainnya, yang biasanya disediakan oleh kernel, seperti halnya dukungan jaringan, pada pendekatan microkernel justru diimplementasikan di dalam ruangan pengguna (user-space), dan disebut dengan server.
Server atau disebut sebagai peladen adalah sebuah program, seperti halnya program lainnya. Server dapat mengizinkan sistem operasi agar dapat dimodifikasi hanya dengan menjalankan program atau menghentikannya. Sebagai contoh, untuk sebuah mesin yang kecil tanpa dukungan jaringan, server jaringan (istilah server di sini tidak dimaksudkan sebagai komputer pusat pengatur jaringan) tidak perlu dijalankan. Pada sistem operasi tradisional yang menggunakan monolithic kernel, hal ini dapat mengakibatkan pengguna harus melakukan rekompilasi terhadap kernel, yang tentu saja sulit untuk dilakukan oleh pengguna biasa yang awam.
Dalam teorinya, sistem operasi yang menggunakan microkernel disebut jauh lebih stabil dibandingkan dengan monolithic kernel, karena sebuah server yang gagal bekerja, tidak akan menyebabkan kernel menjadi tidak dapat berjalan, dan server tersebut akan dihentikan oleh kernel utama. Akan tetapi, dalam prakteknya, bagian dari system state dapat hilang oleh server yang gagal bekerja tersebut, dan biasanya untuk melakukan proses eksekusi aplikasi pun menjadi sulit, atau bahkan untuk menjalankan server-server lainnya.
Sistem operasi yang menggunakan microkernel umumnya secara dramatis memiliki kinerja di bawah kinerja sistem operasi yang menggunakan monolithic kernel. Hal ini disebabkan oleh adanya overhead yang terjadi akibat proses input/output dalam kernel yang ditujukan untuk mengganti konteks (context switch) untuk memindahkan data antara aplikasi dan server.
Beberapa sistem operasi yang menggunakan microkernel:

 

Kernel hibrida

Kernel hibrida aslinya adalah mikrokernel yang memiliki kode yang tidak menunjukkan bahwa kernel tersebut adalah mikrokernel di dalam ruangan kernel-nya. Kode-kode tersebut ditaruh di dalam ruangan kernel agar dapat dieksekusi lebih cepat dibandingkan jika ditaruh di dalam ruangan user. Hal ini dilakukan oleh para arsitek sistem operasi sebagai solusi awal terhadap masalah yang terjadi di dalam mikrokernel: kinerja.
Beberapa orang banyak yang bingung dalam membedakan antara kernel hibrida dan kernel monolitik yang dapat memuat modul kernel setelah proses booting, dan cenderung menyamakannya. Antara kernel hibrida dan kernel monolitik jelas berbeda. Kernel hibrida berarti bahwa konsep yang digunakannya diturunkan dari konsep desain kernel monolitik dan mikrokernel. Kernel hibrida juga memiliki secara spesifik memiliki teknologi pertukaran pesan (message passing) yang digunakan dalam mikrokernel, dan juga dapat memindahkan beberapa kode yang seharusnya bukan kode kernel ke dalam ruangan kode kernel karena alasan kinerja.
Di bawah ini adalah beberapa sistem operasi yang menggunakan kernel hibrida:
Exokernel
Sebenarnya, Exokernel bukanlah pendekatan kernel sistem operasi yang umum seperti halnya microkernel atau monolithic kernel yang populer, melainkan sebuah struktur sistem operasi yang disusun secara vertikal.
Ide di balik exokernel adalah untuk memaksa abstraksi yang dilakukan oleh developer sesedikit mungkin, sehingga membuat mereka dapat memiliki banyak keputusan tentang abstraksi hardware. Exokernel biasanya berbentuk sangat kecil, karena fungsionalitas yang dimilikinya hanya terbatas pada proteksi dan penggandaan sumber daya.
Kernel-kernel klasik yang populer seperti halnya monolithic dan microkernel melakukan abstraksi terhadap hardware dengan menyembunyikan semua sumber daya yang berada di bawah hardware abstraction layer atau di balik driver untuk hardware. Sebagai contoh, jika sistem operasi klasik yang berbasis kedua kernel telah mengalokasikan sebuah lokasi memori untuk sebuah hardware tertentu, maka hardware lainnya tidak akan dapat menggunakan lokasi memori tersebut kembali.
Exokernel mengizinkan akses terhadap hardware secara langsung pada tingkat yang rendah: aplikasi dan abstraksi dapat melakukan request sebuah alamat memori spesifik baik itu berupa lokasi alamat physical memory dan blok di dalam hard disk. Tugas kernel hanya memastikan bahwa sumber daya yang diminta itu sedang berada dalam keadaan kosong—belum digunakan oleh yang lainnya—dan tentu saja mengizinkan aplikasi untuk mengakses sumber daya tersebut. Akses hardware pada tingkat rendah ini mengizinkan para programmer untuk mengimplementasikan sebuah abstraksi yang dikhususkan untuk sebuah aplikasi tertentu, dan tentu saja mengeluarkan sesuatu yang tidak perlu dari kernel agar membuat kernel lebih kecil, dan tentu saja meningkatkan performa.
Exokernel biasanya menggunakan library yang disebut dengan libOS untuk melakukan abstraksi. libOS memungkinkan para pembuat aplikasi untuk menulis abstraksi yang berada pada level yang lebih tinggi, seperti halnya abstraksi yang dilakukan pada sistem operasi tradisional, dengan menggunakan cara-cara yang lebih fleksibel, karena aplikasi mungkin memiliki abstraksinya masing-masing. Secara teori, sebuah sistem operasi berbasis Exokernel dapat membuat sistem operasi yang berbeda seperti halnya Linux, UNIX, dan Windows dapat berjalan di atas sistem operasi tersebut.



System service

Pelayanan untuk memberikan akses ke sumber daya komputer dan fitur-fitur sistem operasi seperti memori, sistem file, perangkat, proses dan thread.

Aplikasi menggunakan fungsi system service untuk memantau dan mengelola sumber daya yang diperlukan untuk menyelesaikan pekerjaan yang sedang dilakukan sistem.


Subsistem

PCI subsistem mungkin kode yang paling kompleks Anda harus berurusan dengan selama proses port. Berkat kesamaan PCI, HyperTransport, PCI-X, Cardbus dan sistem bus lain waktu untuk memahami dengan baik diinvestasikan - dan tombol untuk membuat subsistem PCI bekerja dengan baik adalah pemahaman yang baik dari bus PCI itu sendiri, kode tata letak, dan aliran eksekusi di Linux. Seperti banyak bagian lain dari porting, Anda akan menemukan pada akhirnya, kode yang sebenarnya tertulis minimal.
PCI sudah didukung untuk Linux / MIPS sejak Linux 2.0. Lebih tepatnya port MIPS sebagian besar kiri berhubungan dengan PCI ke papan individu yang tidak menghasilkan sejumlah besar kode diduplikasi, setiap implementasi tunggal dengan itu kekurangan dan kesalahan sendiri. Pci_auto memang mencoba menyediakan kode umum untuk mengkonfigurasi bus PCI - tetapi pada saat yang sama itu menduplikasi kode fungsionalitas identik dalam drivers / pci. Sebuah usaha untuk menyatukan beberapa kode PCI lebih dimulai dengan nama CONFIG_PCI_NEW tetapi segera menjadi korban pembangunan 2.6. Karena itu akan tetap tidak lengkap. Menyelesaikan diperlukan upaya yang signifikan untuk Linux 2.6. Para maintainer MIPS laporan senang ketika mengakhiri keberadaan pci_auto's menyedihkan. Pilihan CONFIG_PCI_NEW menjadi default. Sebagian besar kode PCI ditulis ulang. Ini masih tidak bisa dianggap selesai tetapi tidak ada perubahan signifikan API harus diharapkan

Senin, 11 Oktober 2010

MAHASUSA

cerita mahasiswa dan masterpis
lokasi salah satu Universitas ternama di Gorontalo
dari kelas reguler A pada angkatannya , seorang mahasiswa hendak menelpon dosennya seorang Masterpis,berhubung kurangnya kejelasan dengan tugas yg diberikan dosennya,dengan sedikit semangat yg dibuat - buat oleh beberapa temannya , yng mrasa bhwa mraka adlh teman seklasnya akhirnya mahasiswa itu  memberanikan diri dengan keberanian yang sekedarnya , ia pun menghubungi dosennya via ponsel,

Mahasiswa  : (tanpa salam dan tanpa menyebutkan nama) Pak tugas yg diberikan  bapak  modikirim pake apa..?
Dosen Masterpis : (dengan lugas tanpa basa basi yang sebisa bisanya dibuat basi)
"tugas dikirm pake daun pisang"
Mahasiswa  : Ooww kalau begitu makasih atas sarannya pak...