Senin, 03 Januari 2011

Aplikasi Sistem Komputer


By: Dita Septiana/PCA-10-01/30310005
APLIKASI SISTEM KOMPUTER


Konsep Pemrograman
Pada saat sebuah program aplikasi dieksekusi pada sebuah CPU, ia melakukan beberapa fungsi, seperti fungsi akunting, fungsi banking, dan fungsi lainnya.
Programming dapat diartikan sebagai memberikan instruksi kepada komputer agar dapat bekerja seperti yang kita kehendaki.
         Yang ‘dipahami’ atau dijalankan oleh komputer : data dan instruksi dalam bentuk biner (rangkaian bit-bit bernilai ‘0’ atau ‘1’).
         Yang dipahami manusia : logika, aritmetika, algoritma, konsep, model, dan sebagainya.


Dalam bahasa pemprograman, aturan produksi biasa dinyatakan dalam bentuk regular expression.
Tahap-tahap analisis:
1.       Analisis Leksikal, merupakan analisis terhadap satuan-satuan leksikal (token, atau simbol) dari kode sumber. Dari analisis ini akan diketahui jenis-jenis token yang dibaca. Dapat diketahui juga jika terdapat token / simbol yang tidak dikenal atau salah. Proses ini biasa juga disebut sebagai scanning.
2.       Analisis Sintaktik, dilakukan setelah analisis leksikal dilalui dengan benar (tidak ada token salah atau token tak dikenal). Dalam analisis sintaktik, dilakukan pemeriksaan kesesuaian kode sumber dengan aturan produksi dari grammar bahasa tersebut. Proses ini biasa juga disebut sebagai parsing.
3.       Analisis Semantik, biasa dilakukan bersamaan dengan analisis sintaktik. Analisis semantik dapat dianggap sebagai analisis terhadap kebenaran ‘makna’ dari suatu ekspresi. Contoh analogis : kalimat ‘Panda Beli Mobil’ adalah benar secara tata bahasa, tetapi tidak benar maknanya.


Berdasarkan tingkat kedekatannya dengan bahasa mesin dan bahasa manusia, diklasifikasinya menjadi
1.       Bahasa tingkat rendah, memetakan setiap instruksi dari kode sumber kedalam satu instruksi bahasa mesin. Biasa disebut juga dengan bahasa assembly. Untuk dapat memprogram dalam bahasa assembly, diperlukan pengetahuan yang benar tentang perangkat keras, representasi data, cara kerja pemprosesan, dan instruksi-instruksi mesin komputer.
2.       Bahasa tingkat tinggi, memiliki kedekatan dengan bahasa dan cara berpikir manusia. Contoh : bahasa Pascal.
3.       Bahasa tingkat menengah, antara kedua tingkat di atas. Contoh : bahasa C.


Berdasarkan paradigma Pemprograman komputer dapat diklasifikasikan sebagai berikut:
1.       Pemrograman Prosedural
Program tersusun atas prosedur-prosedur algoritma. Pemprograman prosedural dicirikan dengan adanya sequence (urutan), branch (pencabangan), dan loop (pengulangan).
2.       Pemrograman Fungsional
Program tersusun atas fungsi-fungsi, baik yang sudah terdefinisi maupun yang dibuat sendiri oleh pengguna. Contoh : LISP.
3.       Pemrograman Deklaratif
Tersusun atas deklarasi-deklarasi logika, berupa fakta, aturan, dan sasaran. Bahasa pemprograman prosedural memiliki mekanisme inferensi, yang memungkinkan komputer menelusuri berbagai fakta dan aturan yang diberikan untuk mendapatkan hasil / jawaban dari pertanyaan tertentu.  Contoh : Prolog (programming in logic).
4.       Pemrograman Berorientasi Objek
Dalam pemprograman berorientasi objek, persoalan dan solusinya dimodelkan sebagai objek. Objek adalah segala sesuatu di alam semesta (lahiriah) yang dapat diamati. Setiap objek merupakan anggota, atau merupakan instance dari kelas objek tertentu. Setiap kelas objek minimal memiliki :
1.       nama kelas objek yang unik, membedakannya dengan kelas objek yang lain.
2.       atribut-atribut, atau data, atau properti-properti, atau sifat-sifat yang melekat pada kelas objek tersebut.
3.       perilaku, atau kemampuan, atau operasi, atau method, atau tanggung jawab yang melekat pada kelas objek tersebut.
Ciri utama dari pemprograman berorientasi objek adalah adanya encapsulation (pembungkusan), inheritance (penurunan sifat), dan polymorphism (perubahan bentuk).

Konsep Sistem Operasi


By: Dita Septiana/PCA-10-01/30310005
KONSEP SISTEM OPERASI

Sistem operasi dapat dikatakan adalah perangkat lunak yang sangat kompleks. Hal-hal yang ditangani oleh sistem operasi bukan hanya satu atau dua saja, melainkan banyak hal. Dari menangani perangkat keras, perangkat lunak atau program yang berjalan, sampai menangani pengguna. Hal tersebut menyebabkan sebuah sistem operasi memiliki banyak sekali komponen-komponen tersendiri yang memiliki fungsinya masing-masing. Seluruh komponen yang menyusun sistem operasi tersebut saling bekerjasama untuk satu tujuan, yaitu efisiensi kerja seluruh perangkat komputer dan kenyamanan dalam penggunaan sistem operasi.
Pengertian secara umum adalah pengelola seluruh sumberdaya yang terdapat pada sistem komputer dan menyediakan sekumpulan layanan ke pemakai sehingga memudahkan dan menyamankan penggunaan serta pemanfaatan sumberdaya sistem komputer.
Dari berbagai macam sistem operasi yang ada, tidak semuanya memiliki komponen-komponen penyusun yang sama. Pada umumnya sebuah sistem operasi modern akan terdiri dari komponen sebagai berikut:

        Manajemen Proses.
        Manajemen Main Memory.
        Manajemen File.
        Manajemen Sistem I/O.
        Manajemen Penyimpanan Sekunder.
        Proteksi dan Keamanan.

1)      Manajemen Proses
Proses adalah sebuah program yang sedang dieksekusi. Sedangkan program adalah kumpulan instruksi yang ditulis ke dalam bahasa yang dimengerti sistem operasi. Sebuah proses membutuhkan sejumlah sumber daya untuk menyelesaikan tugasnya. Sumber daya tersebut dapat berupa CPU time, alamat memori, berkas-berkas, dan perangkat-perangkat I/O. Sistem operasi mengalokasikan sumber daya-sumber daya tersebut saat proses itu diciptakan atau sedang diproses/dijalankan. Ketika proses tersebut berhenti dijalankan, sistem operasi akan mengambil kembali semua sumber daya agar bisa digunakankembali oleh proses lainnya.
Sistem operasi bertanggung jawab atas aktivitas-aktivitas yang berkaitan dengan manajemen proses seperti:
        Membuat dan menghapus proses pengguna dan sistem proses.
        Menunda atau melanjutkan proses. Sistem operasi akan mengatur proses apa yang harus dijalankan terlebih dahulu berdasarkan prioritas dari proses-proses yang ada. Apa bila terjadi 2 atau lebih proses yang mengantri untuk dijalankan, sistem operasi akan mendahulukan proses yang memiliki prioritas paling besar.
        Menyediakan mekanisme untuk proses sinkronisasi.
        Menyediakan mekanisme untuk proses komunikasi.
        Menyediakan mekanisme untuk penanganan deadlock. Deadlock adalah suatu keadaan dimana sistem seperti terhenti karena setiap proses memiliki sumber daya yang tidak bias dibagi dan menunggu untuk mendapatkan sumber daya yang sedang dimiliki oleh proses lain.

2)      Manajemen Main Memori
Sistem operasi memiliki tugas untuk mengatur bagian memori yang sedang digunakan dan mengalokasikan jumlah dan alamat memori yang diperlukan, baik untuk program yang akan berjalan maupun untuk sistem operasi itu sendiri. Tujuan dari manajemen main memory adalah agar utilitas CPU meningkat dan untuk meningkatkan efisiensi pemakaian memori.

3)      Manajemen File
File atau berkas adalah representasi program dan data yang berupa kumpulan informasi yang saling berhubungan dan disimpan di perangkat penyimpanan. Sistem berkas ini sangatlah penting, karena informasi atau data yang disimpan dalam berkas adalah sesuatu yang sangat berharga bagi pengguna.
Sistem operasi melakukan manajemen sistem berkas dalam beberapa hal:
        Pembuatan berkas atau direktori.
        Penghapusan berkas atau direktori.
        Pembacaan dan menulis berkas.
        Meletakkan berkas pada sistem penyimpanan sekunder.

4)      Manajemen I/O
Pekerjaan utama yang paling sering dilakukan oleh sistem komputer selain melakukan komputasi adalah Masukan/Keluaran (I/O). Dalam kenyataannya, waktu yang digunakan untuk komputasi lebih sedikit dibandingkan waktu untuk I/O. Ditambah lagi dengan banyaknya variasi perangkat I/O sehingga membuat manajemen I/O 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 I/O:
        Penyanggaan (buffering). Menampung data sementara dari/ke perangkat I/O
        Penjadwalan (scheduling). Melakukan penjadwalan pemakaian I/O 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 I/O 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 I/O tertentu, seperti kartu suara, kartu grafis, dan motherboard.

5)      Manajemen Penyimpanan Sekunder
        Penyimpanan sekunder (secondary storage) adalah sarana penyimpanan yang berada satu tingkat di bawah memori utama sebuah komputer dalam hirarki memori. Tidak seperti memori utama komputer, penyimpanan sekunder tidak memiliki hubungan langsung dengan prosesor melalui bus, sehingga harus melewati I/O.

1.       Proteksi dan Keamanan
Proteksi  adalah  mekanisme  sistem  operasi  untuk  mengontrol  akses  terhadap  beberapa  objek  yang diproteksi  dalam  sistem  operasi.  Objek-objek  tersebut  bisa  berupa  perangkat  keras  (seperti  CPU, memori, disk, printer, dll) atau perangkat lunak (seperti program, proses, berkas, basis data, dll).
Secara sederhana, mekanisme proteksi dapat digambarkan dengan konsep domain. Domain adalah himpunan yang berisi pasangan objek dan hak akses. Masing-masing pasangan domain berisi sebuah objek dan beberapa akses operasi (seperti read, write, execute) yang dapat dilakukan terhadap objek tersebut. Dalam setiap waktu, setiap proses berjalan dalam beberapa domain proteksi. Hal itu berarti terdapat beberapa objek yang dapat diakses oleh proses tersebut, dan operasi-operasi apa yang boleh dilakukan oleh proses terhadap objek tersebut. Proses juga bisa berpindah dari domain ke domain lain dalam eksekusi.

Memaksimalkan prosesor


By: Dita Septiana/PCA-10-01/30310005
MEMAKSIMALKAN PROSESOR



Dewasa ini berbagai macam cara telah dilakukan untuk meningkatkan kinerja prosesor. Dalam buku ini akan dibahas cara meningkatkan kinerja prosesor dengan cara proses paralel dan pipeline.
1)      Konsep Paralelisme

Paralelisme (parallelism) lahir dari pendekatan yang biasa dipergunakan oleh para perancang sistem untuk menerapkan konsep pemrosesan konkuren. Teknik ini meningkatkan kecepatan proses dengan cara memperbanyak jumlah modul perangkat keras yang dapat beroperasi secara simultan disertai dengan membentuk beberapa proses yang bekerja secara simultan pada modul-modul perangkat keras tersebut. Secara formal, pemrosesan paralel adalah sebuah bentuk efisien pemrosesan informasi yang menekankan pada eksploitasi dari konkurensi kejadian-kejadian dalam proses komputasi.
·         Tingkat Paralelisme
Berdasarkan tingkat paralelismenya prosesor paralel dapat dibagi menjadi beberapa tingkat sebagai berikut :
1.       Komputer Array :
a.     Prosesor array : beberapa prosesor yang bekerja sama untuk mengolah set instruksi yang sama dan data yang berbeda – beda atau biasa disebut SIMD (Single Instruction-stream Multiple Data)
b.     Prosesor vektor : beberapa prosesor yang disusun seperti pipeline.
2.       Multiprosesor, yaitu sebuah sistem yang memiliki 2 prosesor atau lebih yang saling berbagi memori.
3.       Multikomputer, yaitu sebuah sistem yang memiliki 2 prosesor atau lebih yang masing-masing prosesor memiliki memori sendiri.

·         Jenis-jenis pemrosesan paralel
Pemrosesan paralel dapat dibagi ke dalam beberapa klasifikasi, sebagai berikut :
1.    Berdasarkan simetri penjadwalannya, pemrosesan parallel dapat dibagi dalam beberapa jenis: 
a)      Asymmetric Multiprocessing (ASMP)
b)      Symmetric Multiprocessing (SMP)
c)       Clustering
2.    Berdasarkan aliran instruksi dan datanya, pemrosesan parallel dapat dibagi dalam beberapa jenis:   
a)      SISD (Single Instruction on Single Data Stream)
b)      SIMD (Single Instruction on Multiple Data Stream)
c)       MISD (Multiple Instruction on Single Data Stream)
d)      MIMD (Multiple Instruction on Multiple Data Stream)
3.    Berdasarkan kedekatan antar prosesor, pemrosesan parallel dapat dibagi dalam beberapa jenis: 
a)   Multikomputer (Loosely Coupled/ local memory) dengan memori yang terdistribusi
b)   Multiprosesor (Tightly Coupled/ global memory) dengan memori yang dapat digunakan bersama (shared memory)

·         Arsitektur Sistem Paralel
1.       Multiprocessor
Sistem multiprosesor adalah, suatu sistem dengan lebih dari satu CPU yang memiliki sebuah memori bersama, seperti sekelompok orang dalam suatu ruangan yang memili papan tulis bersama. Karena setiap CPU dapat membaca atau menulis bagian apa saja dari memori, mereka harus berkoordinasi (dalam software) agar tidak saling berebut jalurnya masing -masing.
Multiprosesor memiliki keunggulan dibanding jenis - jenis komputer paralel yaitu:
a)      Peningkatan throughput, karena lebih banyak proses / thread yang berjalan dalam satu waktu sekaligus (jika proses yang antri di ready queue sedikit). Perlu diingat hal ini tidak berarti daya komputasinya menjadi meningkat sejumlah prosesornya. Yang meningkat ialah jumlah pekerjaan yang bisa dilakukannya dalam waktu tertentu.
b)      Economy of scale (ekonomis), ekonomis dalam devices yang dibagi bersama – sama. Prosesor - prosesor terdapat dalam satu komputer dan dapat membagi peripheral (ekonomis) seperti disk dan catu daya listrik.
c)       Peningkatan kehandalan (reliabilitas), Jika satu prosesor mengalami suatu gangguan, maka proses yang terjadi masih dapat berjalan dengan baik karena tugas prosesor yang terganggu diambil alih oleh prosesor lain. Hal ini dikenal dengan istilah Graceful Degradation. Sistemnya sendiri dikenal bersifat fault tolerant atau failoft system.

2.       Multikomputer
Dalam multikomputer, setiap prosesor mempunyai modul memori untuk menyimpan dan mengambil data selama pemrosesan. Masing-masing prosesor mempunyai satu atau lebih hubungan langsung ke prosesor lain untuk transmisi data. Jika prosesor tidak mempunyai koneksi langsung ke prosesor lain, komunikasi dapat dilangsungkan melalui prosesor antara (intermediate processor) untuk mengirim data.
2)      Pipeline
Konsep pipeline menjelaskan strategi lebih jauh. Pelaksanaan instruksi sering dibagi ke dalam banyak bagian dan bukan hanya ke dalam dua bagian saja, di mana masing-masing bagian ditangani oleh seperangkat hardware khusus, dan keseluruhan bagian tersebut dapat beroperasi secara parallel.
·         Kekurangan Pipeline
o   Kekurangan structural
Kekurangan struktural  disebabkan oleh perangkat keras yang tidak mendukung adanya proses pipeline seperti yang diharapkan. Dalam analogi mobil di atas kekurangan struktural ini terjadi apabila pekerja yang mengeringkan mobil dan memoles mobil ternyata adalah orang yang sama maka dua langkah tersebut tidak bisa dipisahkan.
o   Data
Kekurangan data disebabkan adanya proses yang membutuhkan data hasil proses sebelumnya. Maka proses selanjutnya tidak bisa dimulai sebelum proses yang sedang berlangsung telah selesai. Dalam hal ini terjadi ketergantungan proses.
o   Control
Kekurangan kontrol terjadi apabila suatu langkah waktu eksekusinya berbeda-beda tergantung dari data yang diolahnya. Sebagai contoh waktu untuk mencuci menggunakan sabun untuk mobil sedan tidak akan sama dengan mobil minibus, walaupun langkah keduanya sama, yaitu mencuci mobil menggunakan sabun.

3)      Supersaklar
Prosesor Superskalar adalah istilah bagi prosesor yang mampu melakukan banyak instruksi setiap siklusnya, dengan menggunakan sebuah teknik yang disebut dengan pipelining. Prosesor superskalar umumnya menggunakan beberapa unit fungsional, menciptakan jalur paralel di mana berbagai instruksi yang berbeda dapat dieksekusi secara parallel. Dengan pengaturan tersebut, maka dimungkinkan untuk memulai eksekusi beberapa instruksi secara paralel tiap siklus detak. Tentu saja, eksekusi paralel harus mempertahankan kebenaran logikan program, sehingga hasil yang diperoleh harus sama dengan hasil dari eksekusi secara serial.