Senin, 29 Februari 2016

Pengenalan Pemrograman Web dengan Java

Web application

Seperangkat halaman web yang dihasilkan dalam menanggapi permintaan pengguna.
Berbagai jenis aplikasi web :

  • Mesin pencari
  • Toko online
  • Auctions
  • Situs berita
  • Discussion groups
  • Games

Komponen aplikasi web



Halaman web
  • Statis
  • Dinamis


Bagaimana statis halaman web bekerja



Bagaimana dinamis halaman web bekerja


Pengenalan Java Web Programming
  • Komponen dari aplikasi web Java

  1. server harus menjalankan software web server
  2. Untuk menjalankan aplikasi Java, server juga harus menjalankan software iklan dikenal servlet / JSP engine, atau servlet / JSP container
  3. Perangkat lunak ini memungkinkan web server untuk menjalankan servlet dan JSP

  • Server Tomcat



  • JSP

  1. Sebuah JSP terdiri dari kode Java yang tertanam dalam kode HTML
  2. Ketika JSP pertama diminta, mesin JSP diterjemahkan ke servlet dan mengkompilasi. Kemudian, servlet dijalankan oleh mesin servlet

  • Servlets

  1. Sebuah servlet adalah kelas Java yang berjalan pada server dan melakukan pengolahan untuk halaman web dinamis dari aplikasi web
  2. Setelah pengolahan dilakukan, servlet dapat kembali kode HTML ke browser dengan menggunakan println metode objek keluar.


Tiga kondisi untuk servlet dan pengembangan JSP


Arsitektur untuk aplikasi web Java



  • IDE untuk mengembangkan aplikasi web Java

  1. IDE = Integrated Development Environments

  • Dua dari IDE yang paling populer untuk mengembangkan aplikasi web Java

  1. NetBeans
  2. Gerhana


  • Dua arsitektur untuk aplikasi web

-Model 1 arsitektur
  • JSP bertanggung jawab untuk menangani permintaan dan respon dari aplikasi

-Model-View-Controller (MVC) pola
  • Pola ini juga dikenal sebagai Model 2 arsitektur, dan bekerja lebih baik daripada arsitektur Model 1
  • Pola adalah pendekatan standar yang digunakan oleh programmer untuk memecahkan masalah pemrograman umum
  • model mendefinisikan lapisan bisnis aplikasi (biasanya dilaksanakan oleh JavaBeans)
  • Pandangan mendefinisikan lapisan presentasi dari aplikasi
  • controller mengatur aliran aplikasi, dan pekerjaan ini dilakukan oleh servlets


Pola desain









Selasa, 10 November 2015

Concurency
Concurency merupakan landasan umum perancangan sistem operasi.
Proses-proses disebut concurrency jika proses-proses (lebih dari satu proses) berada pada saat yang sama.

1.       Komunikasi antara proses
2.       Sharing resources
3.       Sinkronisasi beberapa proses
4.       Alokasi waktu prosesor

      Beberapa aplikasi
- Multiprogramming
      Aplikasi terstruktur
- Aplikasi dapat menjadi serangkaian proses konkuren
      Struktur sistem operasi
- Sistem operasi adalah seperangkat proses atau threads

Problems in concurency
       Sharing global resources
       Management of allocation of resources
       Programming errors difficult to locate

Semaphore
Semaphore adalah variable khusus yang digunakan untuk memberi isyarat
Semamphore juga variable yang memiliki nilai integer
Semaphore digunakan untuk menyelesaikan masalah sinkronisasi secara umum.

O/S punya beberapa concern, diantaranya:
1.       Mentrack proses-proses yang sedang aktif
2.       Mengalokasi dan mendealokasi resource-resource semacem processor time, memory, file, dan I/O devices
3.       Melindungi data dan resource
4.       Hasil dari proses harus independen terhadap kecepatan eksekusi dari proses-proses lain yang concurrent.


Ada beberapa cara untuk mencapai mutual exclusion :
1.       Dengan men-disable interrupts
2.       Memakai lock variable
3.       Menggunakan strict alteration
4.       Menggunakan Peterson’s solution

5.       Memakai instruksi TSL

Classical IPC problem :


Mutex in pthread



Quiz 








Selasa, 03 November 2015

CPU scheduler
Mengambil proses dari memory yang siap untuk dieksekusi dan mengalokasikan resource CPU ke proses tersebut

CPU scheduling terjadi ketika :

  • Pergantian dari running ke waiting state
  • Pergantian dari running ke ready state
  • Pergantian dari waiting to ready
  • Terminate
Tipe - tipe scheduler
  • Long-term scheduling ( Proses di process pool )
  • Medium-term scheduling ( Proses di main memory )
  • Short-term scheduling ( Proses di CPU )
  • I/O scheduling ( I/O device )
Dispatcher
Dispatcher adalah modul yang memberikan kontrol CPU kepada proses yang diseleksi oleh short-term scheduling. Funsi dari dispatcher seperti :
  • Menganti context
  • Menganti user mode
Scheduling criteria
  • CPU utilization ( membutat CPU sesibuk mungkin )
  • CPU throughput ( jumlah proses yang selesai dalam satuan waktu tertentu )
  • Turnaround time ( waktu untuk mengeksekusi sebuah proses tertentu )
  • Waiting time ( waktu sebuah proses menunggu di tahap ready )
  • Response time ( waktu yang diperlukan ketika request pertama di ajukan sampai menerima response untuk pertama kalinya )
Optimization criteria
  • Max CPU utilization
  • Max CPU throughput
  • Min turnaround time
  • Min waiting time
  • Min Response time
Goal of scheduling


Algoritma Batch Scheduling

First-Come First-Serve
– Proses ditugaskan CPU dalam urutan sesuai dengan permintaan proses.
* Keuntungan : Mudah dimengerti dan mudah diprogramkan.
* Kerugian : Pekerjaan pendek mungkin akan menunggu terlalu lama jika pekerjaan panjang berada di depannya.

Shortest Job First
– Penggabungan setiap proses, pecahan panjang CPU berikutnya. Gunakan panjang ini untuk menjadwalkan proses dengan waktu terpendek.- 2 skema :
* Nonpreemptive – Sekali CPU diberikan ke proses, CPU tidak dapat didahului sampai pecahan CPU selesai.
* Preemptive – Jika proses baru datang dengan panjang pecahan CPU lebih kecil dibandingkan waktu yang tersisa dari proses eksekusi saat ini, dahului. Skema ini dikenal sebagai Shortest-Remaining-Time-First (SRTF).- SJF adalah optimal – Memberikan minimum rata-rata waktu tunggu untuk sekelompok proses yang diberikan.

TUGAS
1. First-Come First-Serve
Waiting time for A=0, B=2, C=5, D=1, E=3
Average Waiting Time = (0+2+5+1+3)/5 = 2, 2
 2. Shortest Job First – Non Preemptive
Waiting time for A=0, B=4, C=0, D=1, E=3
Average Waiting Time = (0+4+0+1+3)/5 = 1, 6
 3. Shortest Job First – Preemptive
Waiting time for A=0, B=4, C=0, D=1, E=3
Average Waiting Time = (0+4+0+1+3)/5 = 1, 6


 References



Selasa, 27 Oktober 2015

Threads 

• Sebuah negara eksekusi (berjalan, siap, dll)
 • Disimpan konteks thread ketika tidak berjalan
 • Memiliki eksekusi tumpukan
 • Beberapa storage statis per-benang untuk variabel lokal
 • Akses ke memori dan sumber daya dari proses yang
          - Semua thread dari proses berbagi ini


- Threads memungkinkan beberapa eksekusi berlangsung dalam lingkungan proses yang sama
 - Proses 
         Ringan karena benang memiliki beberapa sifat dari proses
 - Multithreading 
         memungkinkan beberapa thread dalam proses yang sama

Thread Model












Manfaat Threads

• Membawa sedikit waktu untuk membuat thread baru dari suatu proses
• Kurang waktu untuk mengakhiri thread dari proses
 • Kurang waktu untuk beralih di antara dua benang dalam proses yang sama
• Sejak benang dalam memori yang sama berbagi proses dan file, mereka dapat berkomunikasi satu        sama lain tanpa melibatkan kernel

Thread Implementasi




Pop Up Thread


Pembuatan thread baru ketika pesan tiba.
(a) Sebelum pesan tiba.
(b) Setelah pesan tiba.


Thread Basics


Thread  State

Block
• Ketika thread perlu menunggu untuk sebuah acara, itu akan memblokir (menyimpan register pengguna, program counter, dan tumpukan pointer).
 • Prosesor mungkin sekarang beralih ke eksekusi benang siap lain yang sama atau proses yang berbeda.

Unblock
• Ketika acara yang thread diblokir terjadi, benang iscmoved ke antrian Siap.

Finish
• Thread akan selesai, konteks register dan tumpukan yang deallocated.



Multi threading example on a uniprocessor



Hubungan antara Threads dan Proses



Threading granularity

*Coarse Threading
      • modul individu, yang disebut sistem, yang ditugaskan untuk prosesor individu.
      • Dalam kasus mesin Sumber, ini berarti menempatkan render pada satu prosesor, AI                             (kecerdasan buatan) yang lain, fisika yang lain, dan seterusnya.
       • setiap modul utama adalah single threaded dan koordinasi kepala sekolah melibatkan                         sinkronisasi semua benang dengan benang waktu.


Posix (Portable Operating System Interface) Threads


Thread Programming


• Poin parameter obj ke struktur pthread_t, digunakan untuk menyimpan id dari benang dibuat panjang dengan rincian 
• Attr parameter poin ke obyek pthread_attr_t yang digunakan untuk mengatur sifat khusus dari benang misalnya Penjadwalan dan prioritas)
• Jika attr adalah NULL, benang akan becreated dengan penjadwalan default dan prioritas properti
• func adalah pointer ke fungsi. (Fungsi hanya dapat mengambil void * parameter) 
• Arg adalah void * yang mewakili thearguments dilewatkan ke fungsi func ketika benang dieksekusi 
• Pada keberhasilan fuction mengembalikan 0






• pthread_self () 
- Untuk obain ID-nya 
• pthread_join ()
 - Untuk bergabung atau bergabung kembali berbagai aliran kontrol 
- Ketika dipanggil, thread panggilan ditunda untl eksekusi thread target termnated 
- Sumber Pers (yaitu mencegah threads zombie)

       Example:

#include <iostream>
#include <pthread.h>
using namespace std;
int main(int argc, char** argv)
{
 pthread_t thread_a, thread_b;
 int N;
 if (argc != 2)
 {
  cout << “Error” << endl;
  return 0;
 }
 N=atoi(argv[1]);
 pthread_create(&thread_a, NULL, task1, &N);
 pthread_create(&thread_b, NULL, task2, &N);
 cout << “Waiting to join” << endl;
 pthread_join(thread_a, NULL);
 pthread_join(thread_b, NULL);
 return 0;
}

       Sample fnction for task

void* task1(void* x)
{
 int* temp = (int*) x;
 for (int count 0; count < *temp;
 count++)
{
 cout << “Thread A” << endl;
 }
cout << “Thread A Complete” << endl;
 return NULL;
 }


Setting thread attributes 

Beberapa sifat:

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 tumpukan harus dan di mana dalam memori itu harus.

Detach State
Anda dapat membuat sebuah thread sebagai terpisah atau joinable.

Jadwal Kebijakan & jadwal Parameter.
Jika sistem operasi Anda mendukungnya Anda dapat menguraikan apa penjadwalan yang harus dilakukan dalam proses antara Proses Ringan (LWP ini). Anda bahkan dapat memberikan parameter seperti prioritas.

• Ketika threads dibuat dengan objek atribut yang sesuai mereka akan memiliki perilaku yang ditentukan.
• Untuk mengatur objek atribut kita harus memanggil
pthread_attr_init ().


#include <iostream>
#include <pthread.h>
using namespace std;
int main(int argc, char** argv)
{
 pthread_t thread_a, thread_b;
 pthread_attr_t attr;
 int N;
 if (argc != 2)
 {
  cout << “Error” << endl;
  return 0;
}
 N=atoi(argv[1]);
 pthread_attr_init(&attr);
 pthread_attr_setdetachstate(&attr, PTHREAD_CREATE_DETACHED);
 pthread_create(&thread_a, &attr, task1, &N);
 pthread_create(&thread_b, NULL, task2, &N);
 cout << “Waiting to join” << endl;
 pthread_join(thread_b, NULL);
 return 0;
}


Detached threads

Sebuah threads terpisah adalah salah satu yang tidak dilayani oleh thread lain Ketika benang dihentikan, maka secara otomatis akan direklamasi oleh sistem operasi


Terminating thread

pthread_exit ()
Fungsi mengambil pointer ke data yang yang dikembalikan ketika benang bergabung


Kapan menggunakan threads ?

• Thread yang paling cocok untuk program yang membutuhkan untuk melakukan hal-hal secara bersamaan OR memiliki sejumlah tugas yang dapat diselesaikan secara paralel untuk menghasilkan hasil.
• Saat menulis program anda menggunakan threads Anda harus mengatur program menjadi tugas diskrit yang dapat dijalankan secara bersamaan.
• Contoh:
- Masalah grafis komputer misalnya Ray tracing
- Manipulasi Matrix


References




Selasa, 06 Oktober 2015

Process vs Program

Program
- Berisi instruksi untuk melakukan tugas

Proses
- Pelaksanaan program

Process characteristic

       Identifier
       State
       Priority
       Program counter
       Memory pointers
       Context data
       I/O status information
       Accounting information

Process Creation

  • Menetapkan identifier proses yang unik
  • Mengalokasikan ruang untuk proses
  • Menginisialisasi proses kontrol blok
  • Mengatur hubungan yang tepat
  • Buat dari memperluas struktur data lainnya
Process termination

  •  penyelesaian yang normal
  •  Batas waktu terlampaui
  •  memori tidak tersedia
  •  pelanggaran Bounds
  •  error perlindungan
  •  kesalahan aritmatika
  •  waktu overrun

Process Table

• Dimana proses terletak
• Atribut yang diperlukan untuk manajemen
Process ID
Process state
Location in memory

Process Location

• Proses termasuk mengatur program yang akan dijalankan
- Lokasi Data untuk variabel lokal dan global
- Setiap konstanta didefinisikan
- Stack
• blok kontrol proses
- Koleksi atribut
• gambar Proses
- Koleksi program, data, stack, dan atribut

Process Control Block

       Process identification
      Identifiers
       Processor State Information
      User-Visible Registers
       Processor State Information
      Control and Status Registers
                Processor State Information
        Stack Pointers

                Process Control Information
        Scheduling and State Information

 Five State Process Model




Cause of Process Suspension



Process Management System Call – fork()

• Menciptakan proses baru (anak)

• Induk dan anak-anak mengeksekusi secara bersamaan
• Setiap proses dapat garpu proses lain sehingga menciptakan hirarki proses
• Sebuah proses dapat memilih untuk menunggu anak untuk mengakhiri

fork()

  • Returns -1 jika tidak berhasil
  • Returns 0 pada anak
  • Returns [angka positif, anak identifier (anak PID) pada induknya


fork() - notes

       The fork() is called once but returns twice !
      Return value in the child is 0
      Return value in the parent is the child's PID
• implementasi saat ini tidak melakukan copy lengkap data orang tua, tumpukan dan tumpukan; teknik yang disebut copy on write (KK) yang digunakan untuk membuat salinan bagian dari memori dimodifikasi oleh salah proses dan wilayah memori bersama dengan orang tua dan anak dilindungi oleh kernel untuk read-only
• fork () sering diikuti dengan exec ()

system()

• Melaksanakan perintah dari dalam program
• Banyak sebagai jika perintah itu telah diketik ke shell
• Membuat sub proses menjalankan standar Bourne shell
• (/ bin / sh) dan tangan perintah ke shell bahwa untuk
• eksekusi; tunduk pada fitur, keterbatasan dan keamanan
• shell; pada kebanyakan sistem GNU / Linux, menunjuk untuk bash

exec() family system calls

• Memanggil salah satu exec () keluarga akan mengakhiri program yang sedang berjalan dan mulai mengeksekusi yang baru yang ditentukan dalam parameter exec dalam konteks proses yang ada.
• Proses id tidak berubah.

execv()
• Melaksanakan file, mengubah proses panggilan ke proses baru
• Setelah sukses eksekusi, tidak ada kembali ke proses memanggil

fork() and exec()

Other system calls

       exit()
       wait()
       getpid()
       getppid()


References

www.skyconnectiva.com